Commit c99207e4 authored by ZhangRunSong's avatar ZhangRunSong

物资草稿

parent 78ceddfc
......@@ -8,7 +8,14 @@ export function listEntry(query) {
params: query
})
}
// 查询草稿箱列表
export function listDraftEntry(query) {
return request({
url: '/psa/entry/list/draft',
method: 'get',
params: query
})
}
// 查询物品入库信息详细
export function getEntry(id) {
return request({
......@@ -33,6 +40,14 @@ export function addDraft(data) {
data: data
})
}
// 提交草稿
export function addDraftSubmit(data) {
return request({
url: '/psa/entry/add/draft',
method: 'post',
data: data
})
}
// 修改物品入库信息
export function updateEntry(data) {
return request({
......
......@@ -9,6 +9,15 @@ export function listMaterial(query) {
})
}
// 查询草稿箱列表
export function listMaterialDraft(query) {
return request({
url: '/psa/material/list/draft',
method: 'get',
params: query
})
}
// 查询物品信息详细
export function getMaterial(materialId) {
return request({
......
......@@ -82,7 +82,17 @@ const headOptions = ref([])
const managerOptions = ref([])
const membersOptions = ref([])
const data = reactive({
form: {},
form: {
typeId: null,
typeName: null,
materialName: null,
itemId: null,
stock: null,
unit: null,
remark: null,
delFlag: null,
draft: null
},
})
const { form } = toRefs(data);
......@@ -147,7 +157,8 @@ const saveDraft = () => {
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
addDraft(form).then(response => {
form.value.draft="1"
addMaterial(form.value).then(response => {
if (response.code === 200){
proxy.$modal.msgSuccess("草稿保存成功");
proxy.$router.push({ path: '/material/materialDetail' })
......
<template>
<div class="app-container">
<div class="formSearch">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="100x">
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="120x">
<el-form-item label="物品编号" prop="itemCode">
<el-input
style="width: 220px"
v-model="queryParams.itemCode"
placeholder="请输入物品编号"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="物品名称" prop="itemName">
<el-form-item label="物品名称" prop="itemId">
<el-input
v-model="queryParams.itemName"
style="width: 220px"
v-model="queryParams.itemId"
placeholder="请输入物品名称"
clearable
@keyup.enter="handleQuery"
/>
</el-form-item>
<el-form-item label="物品类型" prop="itemType">
<el-form-item label="物品类型" prop="typeId">
<el-select
style="width: 200px"
v-model="queryParams.itemType"
style="width: 220px"
v-model="queryParams.typeId"
placeholder="请选择物品类型"
>
<el-option
v-for="dict in material_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
:key="dict.id"
:label="dict.typeName"
:value="dict.id"
style="width: 100%"
/>
</el-select>
......@@ -51,43 +53,29 @@
</el-form>
</div>
<div class="contentTable" >
<div style="padding-left: 8px ;margin-bottom: 20px" >
<span class="bold-text" style="border-bottom: 3px solid #0062FF;">物资信息</span>
<span style="padding-left: 80%">
<el-button
class="el-button-primary-pain"
plain
icon="Plus"
@click="handleAdd"
v-hasPermi="['psa:material:add']"
>新增物品</el-button>
<el-tooltip content="草稿箱" placement="top">
<div style="margin-bottom: 18px ">
<span class="bold-text" style="border-bottom: 3px solid #0062FF;">草稿箱</span>
<span style="padding-left: 85%">
<el-button
type="text"
plain
@click="handleDraft"
v-hasPermi="['system:project:draft']"
><img src="../../assets/icons/common/rightone.png" height="38" width="38"/>
</el-button>
</el-tooltip>
<el-tooltip content="导出" placement="top">
<el-button
type="text"
plain
@click="handleExport"
v-hasPermi="['psa:material:export']"
><img src="../../assets/icons/common/print.png" height="38" width="38"/>
</el-button>
</el-tooltip>
icon="ArrowLeft"
class="el-button-primary-pain"
@click="resetback">返回</el-button>
</span>
</div>
<el-table v-loading="loading" :data="materialList" border style="width: 100%" >
<el-table v-loading="loading" :data="materialList" border style="width: 100%" >
<el-table-column label="物品编号" align="center" prop="itemCode" />
<el-table-column label="物品名称" align="center" prop="itemName" />
<el-table-column label="物品类型" align="center" prop="itemType" />
<el-table-column label="物品类型" align="center" prop="typeId" >
<template v-slot:default="scope">
<span>{{ material_type.find(item => item.id === scope.row.typeId)?.typeName || '未知类型' }}</span>
</template>
</el-table-column>>
<el-table-column label="物品名称" align="center" prop="itemId" >
<template v-slot:default="scope">
<span>{{ material_type_detail.find(item => item.id === scope.row.itemId)?.materialName || '未知类型' }}</span>
</template>
</el-table-column>
<el-table-column label="库存数量" align="center" prop="stock" />
<el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="备注" align="center" prop="remark" >
<template #default="scope">
<el-popover placement="right" :width="400" trigger="click">
......@@ -115,31 +103,32 @@
</el-button>
</el-tooltip>
<el-tooltip content="删除" placement="top">
<el-button link type="text" @click="handleDelete(scope.row)" v-hasPermi="['psa:material:edit']">
<el-button link type="text" @click="handleDelete(scope.row)" v-hasPermi="['psa:material:remove']">
<img src="../../assets/icons/common/delete.png" height="32" width="32"/>
</el-button>
</el-tooltip>
</template>
</el-table-column>
</el-table>
<div class="pagination-containerA">
<pagination
v-show="total>0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</div>
<div class="pagination">
<pagination
layout="prev, pager, next, sizes, jumper"
v-show="total > 0"
:total="total"
v-model:page="queryParams.pageNum"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</div>
</div>
</div>
</template>
<script setup name="MaterialDraft">
import { listMaterial, getMaterial, delMaterial } from "@/api/material/material";
<script setup name="Material">
import { listMaterial,delMaterial,listMaterialType,listMaterialTypeDetail,listMaterialDraft} from "../../api/material/material";
const { proxy } = getCurrentInstance();
const { material_type } = proxy.useDict('material_type');
const material_type = ref([]);
const material_type_detail = ref([]);
const materialList = ref([]);
const open = ref(false);
const loading = ref(true);
......@@ -180,13 +169,17 @@ const { queryParams, form, rules } = toRefs(data);
/** 查询物品信息列表 */
function getList() {
loading.value = true;
listMaterial(queryParams.value).then(response => {
listMaterialDraft(queryParams.value).then(response => {
materialList.value = response.rows;
total.value = response.total;
loading.value = false;
});
}
const resetback = () => {
// 返回项目
proxy.$router.push({ path: '/material/materialDetail' })
resetForm()
}
// 表单重置
function reset() {
......@@ -252,8 +245,27 @@ function handleExport() {
...queryParams.value
}, `material_${new Date().getTime()}.xlsx`)
}
/** 获取物品类型 */
function getTypeList() {
listMaterialType().then(response => {
material_type.value = response.data;
});
}
/** 获取类型的物品列表 */
function getTypeDetailList(){
listMaterialTypeDetail().then(response => {
material_type_detail.value = response.data;
});
}
getList();
// 在组件挂载时执行
onMounted(() => {
//获取物品类型
getTypeList();
//获取物品信息
getTypeDetailList();
});
</script>
<style scoped lang="scss">
......@@ -278,11 +290,18 @@ getList();
:deep .el-table .error-row {
--el-table-tr-bg-color: var(--el-color-warning-light-9);
}
.pagination-containerA {
//display: flex;
//justify-content: center; /* 水平居中 */
padding-right: 43%;
.contentTable {
position: relative; /* 父容器需要相对定位 */
min-height: 400px; /* 最小高度防止内容过少时变形 */
padding-bottom: 80px; /* 底部留出分页空间 */
}
.pagination {
position: absolute;
bottom: 20px; /* 距离父容器底部20px */
left: 60%; /* 水平居中关键步骤1 */
transform: translateX(-50%); /* 水平居中关键步骤2 */
margin-right: 0; /* 移除旧代码中的右侧间距 */
z-index: 1; /* 确保分页在表格上方 */
}
.el-alert {
......
......@@ -170,7 +170,9 @@ const handleSubmit = () => {
newItemName: form.value.itemId, // 传递用户修改后的物品名称
unit: form.value.unit,
stock: form.value.stock,
remark: form.value.remark
remark: form.value.remark,
draft: form.value.draft,
delFlag: form.value.delFlag
};
updateMaterial(submitData).then(response => {
if (response.code === 200) {
......@@ -221,7 +223,9 @@ function resetForm() {
updateTime: null,
createBy: null,
updateBy: null,
remark: null
remark: null,
draft: null,
delFlag: null
};
proxy.resetForm("materialRef");
}
......
......@@ -196,7 +196,9 @@ function getList() {
loading.value = false;
});
}
function handleDraft () {
proxy.$router.push({ path: '/materials/material/materialdraft' });
}
// 表单重置
function reset() {
......
This diff is collapsed.
......@@ -2,7 +2,7 @@
<div class="app-container">
<div class="content">
<div style="padding-left: 10px">
<span class="bold-text" style="border-bottom: 3px solid #0062FF;">修改入库</span>
<span class="bold-text" style="border-bottom: 3px solid #0062FF;">草稿箱</span>
</div>
<div style="padding-top: 40px">
<el-form ref="formRef" :model="form" :rules="rules" label-width="auto" >
......@@ -88,7 +88,7 @@
<script setup name="materialAdd">
import {listMaterialType,listMaterialTypeDetail} from "../../api/material/material.js";
import {addEntry, getEntry} from "../../api/material/entry.js"
import {addDraftSubmit, getEntry} from "../../api/material/entry.js"
const { proxy } = getCurrentInstance();
const { entry_type } = proxy.useDict('entry_type');
const formRef = ref()
......@@ -145,7 +145,7 @@ const rules = {
const handleSubmit = () => {
proxy.$refs["formRef"].validate(valid => {
if (valid) {
addEntry(form.value).then(response => {
addDraftSubmit(form.value).then(response => {
if (response.code === 200){
proxy.$modal.msgSuccess("新增成功");
resetForm()
......@@ -205,7 +205,7 @@ function resetForm() {
// 返回项目管理页面
const reset = () => {
// 返回项目
proxy.$router.push({ path: '/material/materialEntry' })
proxy.$router.push({ path: '/materials/entry/entrydraft' });
resetForm()
}
/** 获取 修改 数据 */
......
......@@ -235,7 +235,10 @@ function handleAdd() {
// 跳转新增物品页面
proxy.$router.push({ path: '/materials/entry/entryadd' });
}
/** 跳转草稿箱 */
function handleDraft() {
proxy.$router.push({ path: '/materials/entry/entrydraft' });
}
/** 修改按钮操作 */
function handleUpdate(row) {
reset();
......@@ -248,26 +251,7 @@ function handleUpdate(row) {
proxy.$router.push({ path: '/materials/entry/entryedit', query: { id: _id } });
}
/** 提交按钮 */
function submitForm() {
proxy.$refs["entryRef"].validate(valid => {
if (valid) {
if (form.value.id != null) {
updateEntry(form.value).then(response => {
proxy.$modal.msgSuccess("修改成功");
open.value = false;
getList();
});
} else {
addEntry(form.value).then(response => {
proxy.$modal.msgSuccess("新增成功");
open.value = false;
getList();
});
}
}
});
}
/** 删除按钮操作 */
function handleDelete(row) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment