1
This commit is contained in:
@ -1,16 +1,20 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||||
|
:leave-active-class="proxy?.animate.searchAnimate.leave">
|
||||||
<div v-show="showSearch" class="mb-[10px]">
|
<div v-show="showSearch" class="mb-[10px]">
|
||||||
<el-card shadow="hover">
|
<el-card shadow="hover">
|
||||||
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
<el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
||||||
<el-form-item label="材料名称" prop="materialsName">
|
<el-form-item label="材料名称" prop="materialsName">
|
||||||
<el-input v-model="queryParams.materialsName" placeholder="请输入材料名称" clearable @keyup.enter="handleQuery" />
|
<el-input v-model="queryParams.materialsName" placeholder="请输入材料名称" clearable
|
||||||
|
@keyup.enter="handleQuery" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" v-hasPermi="['materials:materialsInventory:list']" icon="Search" @click="handleQuery">搜索</el-button>
|
<el-button type="primary" v-hasPermi="['materials:materialsInventory:list']" icon="Search"
|
||||||
|
@click="handleQuery">搜索</el-button>
|
||||||
|
|
||||||
<el-button icon="Refresh" v-hasPermi="['materials:materialsInventory:list']" @click="resetQuery">重置</el-button>
|
<el-button icon="Refresh" v-hasPermi="['materials:materialsInventory:list']"
|
||||||
|
@click="resetQuery">重置</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
@ -21,7 +25,8 @@
|
|||||||
<template #header>
|
<template #header>
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['materials:materialsInventory:export']">
|
<el-button type="warning" plain icon="Download" @click="handleExport"
|
||||||
|
v-hasPermi="['materials:materialsInventory:export']">
|
||||||
导出
|
导出
|
||||||
</el-button>
|
</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
@ -29,8 +34,23 @@
|
|||||||
</el-row>
|
</el-row>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<el-table v-loading="loading" :data="materialsInventoryList" @selection-change="handleSelectionChange">
|
<el-table v-loading="loading" :data="materialsInventoryList" @expand-change="handleExpandChange">
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="expand">
|
||||||
|
<template #default="props">
|
||||||
|
<div style="margin-left: 60px">
|
||||||
|
<el-table :data="materialsUseRecordList" border v-loading="loadingChild">
|
||||||
|
<el-table-column label="序号" align="center" type="index" width="60" />
|
||||||
|
<el-table-column label="使用数量" align="center" prop="useNumber" />
|
||||||
|
<el-table-column label="剩余量" align="center" prop="residueNumber" />
|
||||||
|
<el-table-column label="使用部位" align="center" prop="usePart" />
|
||||||
|
<el-table-column label="备注" align="center" prop="remark" />
|
||||||
|
</el-table>
|
||||||
|
<pagination v-show="totalChild > 0" :total="totalChild" v-model:page="queryParamsChild.pageNum"
|
||||||
|
v-model:limit="queryParamsChild.pageSize" @pagination="getListChild" />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<!-- <el-table-column type="selection" width="55" align="center" /> -->
|
||||||
<el-table-column label="序号" type="index" width="60" align="center" />
|
<el-table-column label="序号" type="index" width="60" align="center" />
|
||||||
<el-table-column label="物资名称" align="center" prop="materialsName" />
|
<el-table-column label="物资名称" align="center" prop="materialsName" />
|
||||||
<el-table-column label="计划数量" align="center" prop="quantityCount" />
|
<el-table-column label="计划数量" align="center" prop="quantityCount" />
|
||||||
@ -95,7 +115,8 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column> -->
|
</el-table-column> -->
|
||||||
</el-table>
|
</el-table>
|
||||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
</el-card>
|
</el-card>
|
||||||
<!-- 添加或修改材料出/入库对话框 -->
|
<!-- 添加或修改材料出/入库对话框 -->
|
||||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||||
@ -109,7 +130,8 @@
|
|||||||
<el-input v-model="form.number" placeholder="请输入出/入库的数量" />
|
<el-input v-model="form.number" placeholder="请输入出/入库的数量" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="出/入库操作时间" prop="outPutTime">
|
<el-form-item label="出/入库操作时间" prop="outPutTime">
|
||||||
<el-date-picker clearable v-model="form.outPutTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" placeholder="请选择出/入库操作时间">
|
<el-date-picker clearable v-model="form.outPutTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
|
||||||
|
placeholder="请选择出/入库操作时间">
|
||||||
</el-date-picker>
|
</el-date-picker>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="剩余库存数量" prop="residue">
|
<el-form-item label="剩余库存数量" prop="residue">
|
||||||
@ -154,7 +176,9 @@ import {
|
|||||||
} from '@/api/materials/materialsInventory';
|
} from '@/api/materials/materialsInventory';
|
||||||
import { MaterialsInventoryForm, MaterialsInventoryQuery, MaterialsInventoryVO } from '@/api/materials/materialsInventory/types';
|
import { MaterialsInventoryForm, MaterialsInventoryQuery, MaterialsInventoryVO } from '@/api/materials/materialsInventory/types';
|
||||||
import { useUserStoreHook } from '@/store/modules/user';
|
import { useUserStoreHook } from '@/store/modules/user';
|
||||||
|
import {
|
||||||
|
listMaterialsUseRecord,
|
||||||
|
} from '@/api/materials/materialsUseRecord';
|
||||||
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
||||||
const { out_put_type } = toRefs<any>(proxy?.useDict('out_put_type'));
|
const { out_put_type } = toRefs<any>(proxy?.useDict('out_put_type'));
|
||||||
|
|
||||||
@ -170,7 +194,9 @@ const ids = ref<Array<string | number>>([]);
|
|||||||
const single = ref(true);
|
const single = ref(true);
|
||||||
const multiple = ref(true);
|
const multiple = ref(true);
|
||||||
const total = ref(0);
|
const total = ref(0);
|
||||||
|
const loadingChild = ref(true);
|
||||||
|
const totalChild = ref(0);
|
||||||
|
const materialsUseRecordList = ref<any[]>([]);
|
||||||
const queryFormRef = ref<ElFormInstance>();
|
const queryFormRef = ref<ElFormInstance>();
|
||||||
const materialsInventoryFormRef = ref<ElFormInstance>();
|
const materialsInventoryFormRef = ref<ElFormInstance>();
|
||||||
|
|
||||||
@ -194,7 +220,7 @@ const initFormData: MaterialsInventoryForm = {
|
|||||||
shipper: undefined,
|
shipper: undefined,
|
||||||
remark: undefined
|
remark: undefined
|
||||||
};
|
};
|
||||||
const data = reactive<PageData<MaterialsInventoryForm, MaterialsInventoryQuery>>({
|
const data = reactive({
|
||||||
form: { ...initFormData },
|
form: { ...initFormData },
|
||||||
queryParams: {
|
queryParams: {
|
||||||
pageNum: 1,
|
pageNum: 1,
|
||||||
@ -212,14 +238,38 @@ const data = reactive<PageData<MaterialsInventoryForm, MaterialsInventoryQuery>>
|
|||||||
shipper: undefined,
|
shipper: undefined,
|
||||||
params: {}
|
params: {}
|
||||||
},
|
},
|
||||||
|
queryParamsChild: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
inventoryId: undefined,
|
||||||
|
usePart: undefined,
|
||||||
|
useNumber: undefined,
|
||||||
|
residueNumber: undefined
|
||||||
|
},
|
||||||
rules: {
|
rules: {
|
||||||
id: [{ required: true, message: '主键id不能为空', trigger: 'blur' }],
|
id: [{ required: true, message: '主键id不能为空', trigger: 'blur' }],
|
||||||
materialsId: [{ required: true, message: '材料id不能为空', trigger: 'blur' }]
|
materialsId: [{ required: true, message: '材料id不能为空', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
const { queryParams, form, rules } = toRefs(data);
|
const { queryParams, form, rules, queryParamsChild } = toRefs(data);
|
||||||
const materialsOptions = ref([]);
|
const materialsOptions = ref([]);
|
||||||
|
/** 处理外层表格展开/折叠:记录当前展开行的inventoryId */
|
||||||
|
const handleExpandChange = (row: any) => {
|
||||||
|
queryParamsChild.value.inventoryId = row.id;
|
||||||
|
getListChild();
|
||||||
|
};
|
||||||
|
/** 查询材料子级登记列表(内层列表) */
|
||||||
|
const getListChild = async () => {
|
||||||
|
loadingChild.value = true;
|
||||||
|
try {
|
||||||
|
const res = await listMaterialsUseRecord(queryParamsChild.value);
|
||||||
|
materialsUseRecordList.value = res.rows;
|
||||||
|
totalChild.value = res.total;
|
||||||
|
} finally {
|
||||||
|
loadingChild.value = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/** 查询材料出/入库列表 */
|
/** 查询材料出/入库列表 */
|
||||||
const getList = async () => {
|
const getList = async () => {
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave"> </transition>
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter"
|
||||||
|
:leave-active-class="proxy?.animate.searchAnimate.leave"> </transition>
|
||||||
<el-card shadow="never">
|
<el-card shadow="never">
|
||||||
<template #header>
|
<template #header>
|
||||||
<el-row :gutter="10" class="mb8">
|
<el-row :gutter="10" class="mb8">
|
||||||
@ -18,7 +19,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<!-- 外层表格:添加ref用于控制展开状态 -->
|
<!-- 外层表格:添加ref用于控制展开状态 -->
|
||||||
<el-table ref="outerTableRef" v-loading="loading" :data="materialsUseInventoryList" @expand-change="handleExpandChange" border>
|
<el-table ref="outerTableRef" v-loading="loading" :data="materialsUseInventoryList"
|
||||||
|
@expand-change="handleExpandChange" border>
|
||||||
<el-table-column type="expand">
|
<el-table-column type="expand">
|
||||||
<template #default="props">
|
<template #default="props">
|
||||||
<div style="margin-left: 60px">
|
<div style="margin-left: 60px">
|
||||||
@ -30,25 +32,13 @@
|
|||||||
<el-table-column label="备注" align="center" prop="remark" />
|
<el-table-column label="备注" align="center" prop="remark" />
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button
|
<el-button link type="primary" icon="delete" v-if="scope.row.ishow" @click="handleDelete(scope.row)"
|
||||||
link
|
v-hasPermi="['materials:materialsUseRecord:remove']">删除</el-button>
|
||||||
type="primary"
|
|
||||||
icon="delete"
|
|
||||||
v-if="scope.row.ishow"
|
|
||||||
@click="handleDelete(scope.row)"
|
|
||||||
v-hasPermi="['materials:materialsUseRecord:remove']"
|
|
||||||
>删除</el-button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<pagination
|
<pagination v-show="totalChild > 0" :total="totalChild" v-model:page="queryParamsChild.pageNum"
|
||||||
v-show="totalChild > 0"
|
v-model:limit="queryParamsChild.pageSize" @pagination="getListChild" />
|
||||||
:total="totalChild"
|
|
||||||
v-model:page="queryParamsChild.pageNum"
|
|
||||||
v-model:limit="queryParamsChild.pageSize"
|
|
||||||
@pagination="getListChild"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
@ -63,13 +53,13 @@
|
|||||||
<el-table-column label="备注" align="center" prop="remark" />
|
<el-table-column label="备注" align="center" prop="remark" />
|
||||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)" v-hasPermi="['materials:materialsUseRecord:add']"
|
<el-button link type="primary" icon="Plus" @click="handleAdd(scope.row)"
|
||||||
>添加登记</el-button
|
v-hasPermi="['materials:materialsUseRecord:add']">添加登记</el-button>
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
<pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum"
|
||||||
|
v-model:limit="queryParams.pageSize" @pagination="getList" />
|
||||||
</el-card>
|
</el-card>
|
||||||
<!-- 添加或修改材料使用登记对话框 -->
|
<!-- 添加或修改材料使用登记对话框 -->
|
||||||
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
||||||
|
Reference in New Issue
Block a user