From d08b9a2fd8826a5d8d87ed52208e6be6dbc69d3a Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期三, 24 四月 2024 22:40:53 +0800
Subject: [PATCH] feat: 入库登记
---
src/views/system/goodsIn/components/detailForm.vue | 122 +++++++++++++++++++---------------------
package.json | 12 ++--
2 files changed, 65 insertions(+), 69 deletions(-)
diff --git a/package.json b/package.json
index 92dbaab..eea6ca1 100644
--- a/package.json
+++ b/package.json
@@ -32,7 +32,7 @@
"pinia": "2.0.22",
"screenfull": "6.0.0",
"vform3-builds": "3.0.8",
- "vue": "3.4.21",
+ "vue": "3.4.25",
"vue-cropper": "1.0.3",
"vue-i18n": "9.2.2",
"vue-router": "4.1.4",
@@ -49,9 +49,9 @@
"@types/path-browserify": "^1.0.0",
"@typescript-eslint/eslint-plugin": "5.56.0",
"@typescript-eslint/parser": "5.56.0",
- "@unocss/preset-attributify": "^0.50.6",
- "@unocss/preset-icons": "^0.50.6",
- "@unocss/preset-uno": "^0.50.6",
+ "@unocss/preset-attributify": "^0.50.8",
+ "@unocss/preset-icons": "^0.50.8",
+ "@unocss/preset-uno": "^0.50.8",
"@vitejs/plugin-vue": "5.0.4",
"@vue/compiler-sfc": "3.2.45",
"autoprefixer": "10.4.14",
@@ -65,11 +65,11 @@
"prettier": "2.8.6",
"sass": "1.56.1",
"typescript": "4.9.5",
- "unocss": "^0.50.6",
+ "unocss": "^0.50.8",
"unplugin-auto-import": "0.13.0",
"unplugin-icons": "0.15.1",
"unplugin-vue-components": "0.23.0",
- "vite": "^5.1.6",
+ "vite": "^5.2.10",
"vite-plugin-compression": "0.5.1",
"vite-plugin-svg-icons": "2.0.1",
"unplugin-vue-setup-extend-plus": "0.4.9",
diff --git a/src/views/system/goodsIn/components/detailForm.vue b/src/views/system/goodsIn/components/detailForm.vue
index ecf470f..bad5c0c 100644
--- a/src/views/system/goodsIn/components/detailForm.vue
+++ b/src/views/system/goodsIn/components/detailForm.vue
@@ -2,33 +2,30 @@
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px">
<el-form ref="detailFormRef" :model="formData" :rules="goodsInRules" v-loading="formLoading" label-width="80px">
<el-form-item label="柜号" prop="cabinetCode">
- <el-input v-model="formData.cabinetCode" placeholder="请输入柜号"/>
+ <el-input v-model="formData.cabinetCode" placeholder="请输入柜号" />
</el-form-item>
<el-form-item label="门号" prop="doorCode">
- <el-input v-model="formData.doorCode" placeholder="请输入门号"/>
+ <el-input v-model="formData.doorCode" placeholder="请输入门号" />
</el-form-item>
<el-form-item label="物品名称" prop="goodsName">
- <el-input v-model="formData.goodsName" placeholder="请输入物品名称"/>
+ <el-input v-model="formData.goodsName" placeholder="请输入物品名称" />
</el-form-item>
<el-form-item label="物品编码" prop="goodsCode">
- <el-input v-model="formData.goodsCode" placeholder="请输入物品编码"/>
+ <el-input v-model="formData.goodsCode" placeholder="请输入物品编码" />
</el-form-item>
<el-form-item label="入库数量" prop="inAmount">
- <el-input v-model="formData.inAmount" placeholder="请输入入库数量"/>
+ <el-input v-model="formData.inAmount" placeholder="请输入入库数量" />
</el-form-item>
<el-form-item label="库存数量" prop="repAmount">
- <el-input v-model="formData.repAmount" placeholder="请输入库存数量"/>
+ <el-input v-model="formData.repAmount" placeholder="请输入库存数量" />
</el-form-item>
<el-form-item label="入库时间" prop="inTime">
- <el-date-picker clearable
- v-model="formData.inTime"
- type="datetime"
- value-format="YYYY-MM-DD HH:mm:ss"
+ <el-date-picker clearable v-model="formData.inTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
placeholder="请选择入库时间">
</el-date-picker>
</el-form-item>
<el-form-item label="入库人" prop="inOperator">
- <el-input v-model="formData.inOperator" placeholder="请输入入库人"/>
+ <el-input v-model="formData.inOperator" placeholder="请输入入库人" />
</el-form-item>
</el-form>
<template #footer>
@@ -42,117 +39,116 @@
<script setup lang="ts">
// 模块导入
-import {goodsInRules} from "@/views/system/goodsIn/typing/rules";
-import {GoodsInForm} from "@/api/system/goodsIn/types";
-import {addGoodsIn, getGoodsIn, updateGoodsIn} from "@/api/system/goodsIn";
+import { goodsInRules } from "@/views/system/goodsIn/typing/rules";
+import { GoodsInForm } from "@/api/system/goodsIn/types";
+import { addGoodsIn, getGoodsIn, updateGoodsIn } from "@/api/system/goodsIn";
+import { FormInstance } from "element-plus";
+import { ref } from "vue";
// 接收父组件传入属性
-const props = defineProps({})
+const props = defineProps({});
/** 当前组件的属性 */
-const {proxy} = getCurrentInstance() as ComponentInternalInstance;
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
// 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
-const formLoading = ref(false)
+const formLoading = ref(false);
// 表单的类型:add - 新增;edit - 修改
-const formType = ref('add')
+const formType = ref("add");
// 对话框 弹出增加、修改
const dialog = reactive<DialogOption>({
visible: false,
- title: ''
+ title: ""
});
// 窗体 Ref
-const detailFormRef = ref()
+const detailFormRef = ref<FormInstance>();
// 数据表单
const formData = ref<GoodsInForm>({
- inId: '',
- cabinetCode: '',
- doorCode: '',
- goodsName: '',
- goodsCode: '',
+ inId: "",
+ cabinetCode: "",
+ doorCode: "",
+ goodsName: "",
+ goodsCode: "",
inAmount: 0,
repAmount: 0,
- inTime: '',
- inOperator: ''
-})
+ inTime: "",
+ inOperator: ""
+});
// 当前组件方法
/** 提交按钮 */
const submitForm = async () => {
// 校验表单
- if (!detailFormRef) return
+ if (!detailFormRef.value) return;
// 输入项校验
- const valid = await detailFormRef.value.validate()
- if (!valid) return
+ const valid = await detailFormRef.value?.validate();
+ if (!valid) return;
// 提交请求
- formLoading.value = true
+ formLoading.value = true;
try {
- const data = formData.value as unknown as GoodsInForm
- if (formType.value === 'edit') {
- await updateGoodsIn(data)
+ const data = formData as unknown as GoodsInForm;
+ if (formType.value === "edit") {
+ await updateGoodsIn(data);
proxy?.$modal.msgSuccess("修改成功");
} else {
- await addGoodsIn(data)
+ await addGoodsIn(data);
proxy?.$modal.msgSuccess("增加成功");
}
- dialog.visible = false
+ dialog.visible = false;
// 发送操作成功的事件
- emits('success')
+ emits("success");
} finally {
- formLoading.value = false
+ formLoading.value = false;
}
-}
+};
/** 取消按钮 */
const cancel = () => {
resetForm();
dialog.visible = false;
-}
+};
/** 重置表单 */
const resetForm = () => {
formData.value = {
- inId: '',
- cabinetCode: '',
- doorCode: '',
- goodsName: '',
- goodsCode: '',
+ inId: "",
+ cabinetCode: "",
+ doorCode: "",
+ goodsName: "",
+ goodsCode: "",
inAmount: 0,
repAmount: 0,
- inTime: '',
- inOperator: ''
- }
- detailFormRef.value?.resetFields()
-}
+ inTime: "",
+ inOperator: ""
+ };
+ detailFormRef.value?.resetFields();
+};
/** 查询入库登记列表 */
const openForm = async (act: string, id?: number) => {
- act==='add'?dialog.title='增加入库记录':dialog.title='修改入库记录'
- dialog.visible = true
- formType.value = act
+ act === "add" ? dialog.title = "增加入库记录" : dialog.title = "修改入库记录";
+ dialog.visible = true;
+ formType.value = act;
resetForm();
// 修改时,设置数据
if (id) {
- formLoading.value = true
+ formLoading.value = true;
try {
const res = await getGoodsIn(id);
Object.assign(formData.value, res.data);
- // formData.value = await getGoodsIn(id)
} finally {
- formLoading.value = false
+ formLoading.value = false;
}
} else {
//formData.value.ownerUserId = userId
}
-}
+};
// 传回给父组件的属性与方法
-defineExpose({openForm})
+defineExpose({ openForm });
// 触发父组件的事件
-const emits = defineEmits(['success'])
+const emits = defineEmits<{ (e: "success"): void }>();
// 初始化
</script>
-<style scoped lang="scss">
-
-</style>
+<style scoped lang="scss"></style>
--
Gitblit v1.8.0