|
@@ -1,148 +1,235 @@
|
|
|
+<!--库存明细-->
|
|
|
+<!--企业画像-->
|
|
|
<template>
|
|
|
- <div class="common-dialog">
|
|
|
- <div class="common-dialog-content">
|
|
|
- <div class="common-dialog-title-box">
|
|
|
- <h3 class="common-dialog-title">查看详情</h3>
|
|
|
- </div>
|
|
|
- <div class="common-dialog-box">
|
|
|
- <el-form ref="eventFormRef" :model="formData" :rules="rules" label-width="120px">
|
|
|
- <el-form-item label="仓库编号:" prop="warehouse_number">
|
|
|
- <el-input v-model="formData.warehouse_number" placeholder="请输入仓库编号" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="采购单号:" prop="purchase_order_id">
|
|
|
- <el-input v-model="formData.purchase_order_id" placeholder="请输入采购单号" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="是否捐赠(是、否):" prop="is_donation">
|
|
|
- <el-select v-model="formData.is_donation" placeholder="请选择是否捐赠">
|
|
|
- <el-option label="是" value="是"></el-option>
|
|
|
- <el-option label="否" value="否"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="运单号:" prop="tracking_number">
|
|
|
- <el-input v-model="formData.tracking_number" placeholder="请输入运单号" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="捐赠人联系电话:" prop="donor_phone">
|
|
|
- <el-input v-model="formData.donor_phone" placeholder="请输入捐赠人联系电话" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="捐赠人姓名:" prop="donor_name">
|
|
|
- <el-input v-model="formData.donor_name" placeholder="请输入捐赠人姓名" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="审核人:" prop="auditor">
|
|
|
- <el-input v-model="formData.auditor" placeholder="请输入审核人" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="企业名称:" prop="company_name">
|
|
|
- <el-input v-model="formData.company_name" placeholder="请输入企业名称" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="企业编号:" prop="company_id">
|
|
|
- <el-input v-model="formData.company_id" placeholder="请输入企业编号" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="分级信息:" prop="grade_info">
|
|
|
- <el-input v-model="formData.grade_info" placeholder="请输入分级信息" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="类型(1_调拨入库、2_归还入库、3_回收入库):" prop="type">
|
|
|
- <el-select v-model="formData.type" placeholder="请选择类型">
|
|
|
- <el-option label="调拨入库" value="1"></el-option>
|
|
|
- <el-option label="归还入库" value="2"></el-option>
|
|
|
- <el-option label="回收入库" value="3"></el-option>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="供应商名称:" prop="supplier_name">
|
|
|
- <el-input v-model="formData.supplier_name" placeholder="请输入供应商名称" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="创建时间:" prop="create_time">
|
|
|
- <el-date-picker v-model="formData.create_time" type="datetime" placeholder="请选择创建时间" style="width: 468px;"></el-date-picker>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="备注:" prop="remarks">
|
|
|
- <el-input v-model="formData.remarks" placeholder="请输入备注" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="供应商编号:" prop="supplier_id">
|
|
|
- <el-input v-model="formData.supplier_id" placeholder="请输入供应商编号" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="完成时间:" prop="completion_time">
|
|
|
- <el-date-picker v-model="formData.completion_time" type="datetime" placeholder="请选择完成时间" style="width: 468px;"></el-date-picker>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="计划完成时间:" prop="planned_completion_time">
|
|
|
- <el-date-picker v-model="formData.planned_completion_time" type="datetime" placeholder="请选择计划完成时间" style="width: 468px;"></el-date-picker>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="仓库名称:" prop="warehouse_name">
|
|
|
- <el-input v-model="formData.warehouse_name" placeholder="请输入仓库名称" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="库房名称:" prop="storage_room_name">
|
|
|
- <el-input v-model="formData.storage_room_name" placeholder="请输入库房名称" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="入库单号:" prop="inbound_order_id">
|
|
|
- <el-input v-model="formData.inbound_order_id" placeholder="请输入入库单号" style="width: 468px;" />
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="新增时间:" prop="add_time">
|
|
|
- <el-date-picker v-model="formData.add_time" type="datetime" placeholder="请选择新增时间" style="width: 468px;"></el-date-picker>
|
|
|
- </el-form-item>
|
|
|
- </el-form>
|
|
|
- <div class="common-dialog-footer">
|
|
|
- <el-button type="primary" @click="closeDialog">返回</el-button>
|
|
|
- </div>
|
|
|
+ <div>
|
|
|
+ <div v-show="!BussinessAddState.show && !BussinessEditState.show" class="app-container">
|
|
|
+ <div>
|
|
|
+ <transition name="fade">
|
|
|
+ <div v-show="showSearch" class="mb-[10px]">
|
|
|
+ <el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
|
|
+ <el-form-item :span="5" label="商品信息:" prop="area_code" label-width="auto">
|
|
|
+ <el-input v-model="queryParams.keyword1" placeholder="请输入物资ID" clearable @keyup.enter="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :span="5" label="出入库单号:" prop="keyword" label-width="auto">
|
|
|
+ <el-input v-model="queryParams.keyword2" placeholder="请输入出入库单号" clearable @keyup.enter="handleQuery" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item :span="5" prop="keyword" label-width="auto">
|
|
|
+ <el-select v-model="queryParams.type" placeholder="全部" clearable>
|
|
|
+ <el-option v-for="item in type" :key="item.value" :label="item.label" :value="item.value"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button icon="Refresh" @click="resetQuery">重置</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ <!-- <el-row :gutter="10" class="mb8">-->
|
|
|
+ <!-- <el-col :span="1.5">-->
|
|
|
+ <!-- <el-button type="primary" icon="Plus" @click="handleAdd">新建</el-button>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- <el-col :span="1.5">-->
|
|
|
+ <!-- <el-button type="danger" plain :disabled="multiple" icon="Delete" @click="handleDelete(selectedRow)"> 删除 </el-button>-->
|
|
|
+ <!-- </el-col>-->
|
|
|
+ <!-- </el-row>-->
|
|
|
+ </div>
|
|
|
+ </transition>
|
|
|
+ <el-table
|
|
|
+ ref="multipleTable"
|
|
|
+ v-loading="loading"
|
|
|
+ :data="tableData"
|
|
|
+ border
|
|
|
+ :max-height="maxHeight"
|
|
|
+ style="width: 96%"
|
|
|
+ @selection-change="handleSelectionChange"
|
|
|
+ >
|
|
|
+ <el-table-column type="selection" width="55" align="center" fixed />
|
|
|
+ <el-table-column label="商品信息" align="center" prop="goods_information" fixed show-overflow-tooltip />
|
|
|
+ <el-table-column label="出入库单号" align="center" prop="odd_numbers" show-overflow-tooltip />
|
|
|
+ <el-table-column label="入库/出库" align="center" prop="type" show-overflow-tooltip />
|
|
|
+ <el-table-column label="变动库存" align="center" prop="change_inventory" show-overflow-tooltip />
|
|
|
+ <el-table-column label="剩余库存" align="center" prop="remaining_inventory" show-overflow-tooltip />
|
|
|
+ <el-table-column label="创建时间" align="center" prop="created_time" show-overflow-tooltip />
|
|
|
+ <!-- <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">-->
|
|
|
+ <!-- <template #default="scope">-->
|
|
|
+ <!-- <el-button type="text" class="common-btn-text-primary" @click="handleedit(scope.row)">编辑</el-button>-->
|
|
|
+ <!-- <el-button type="text" class="common-btn-text-primary" @click="handleDelete(scope.row)">移除</el-button>-->
|
|
|
+ <!-- </template>-->
|
|
|
+ <!-- </el-table-column>-->
|
|
|
+ </el-table>
|
|
|
+ <pagination v-show="total > 0" v-model:page="queryParams.page" v-model:limit="queryParams.pageSize" :total="total" @pagination="tableData" />
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <BussinessAdd v-if="BussinessAddState.show" @close="handleCancel" />
|
|
|
+ <BussinessEdit v-if="BussinessEditState.show" :event-id="BussinessEditState.eventId" @close="handleCancel" />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import { ref, watch } from 'vue';
|
|
|
-
|
|
|
-const emits = defineEmits(['close']);
|
|
|
-const props = defineProps<{
|
|
|
- eventId: string | number;
|
|
|
-}>();
|
|
|
+import { ref, reactive, onMounted, onBeforeUnmount } from 'vue';
|
|
|
+import { companyDelete, getCompanyList } from '@/api/riskPrevention/BusinessPortraits';
|
|
|
+import BussinessAdd from '@/views/riskPrevention/SafetyProductionManagement/BussinessAdd.vue';
|
|
|
+// import BussinessEdit from "./BussinessEdit.vue";
|
|
|
+import { to } from 'await-to-js';
|
|
|
+
|
|
|
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
+const showSearch = ref(true);
|
|
|
+// const tableData = ref();
|
|
|
+const multiple = ref(true);
|
|
|
+const ids = ref<Array<number | string>>([]);
|
|
|
+const single = ref(true);
|
|
|
+// 定义响应式变量
|
|
|
+const loading = ref(false);
|
|
|
+const maxHeight = ref(window.innerHeight * 0.8);
|
|
|
+const total = ref();
|
|
|
+// 处理窗口大小变化
|
|
|
+const handleResize = () => {
|
|
|
+ maxHeight.value = window.innerHeight * 0.8;
|
|
|
+};
|
|
|
+const initFormData = reactive({
|
|
|
+ goods_information: '',
|
|
|
+ odd_numbers: '',
|
|
|
+ type: '',
|
|
|
+ change_inventory: '',
|
|
|
+ remaining_inventory: '',
|
|
|
+ created_time: ''
|
|
|
+});
|
|
|
+const data = reactive({
|
|
|
+ form: { ...initFormData },
|
|
|
+ queryParams: {
|
|
|
+ page: '1',
|
|
|
+ pageSize: '10',
|
|
|
+ type: '',
|
|
|
+ keycode1: '',
|
|
|
+ keyword2: ''
|
|
|
+ },
|
|
|
+ selectedRow: null,
|
|
|
+ selectedRowKeys: []
|
|
|
+});
|
|
|
+const tableData = ref([
|
|
|
+ {
|
|
|
+ 'goods_information': '苹果 iPhone 13 Pro Max 256GB 石墨色',
|
|
|
+ 'odd_numbers': 'WH20230401001',
|
|
|
+ 'type': '入库',
|
|
|
+ 'change_inventory': 50,
|
|
|
+ 'remaining_inventory': 200,
|
|
|
+ 'created_time': '2023-04-01T10:30:00Z'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'goods_information': '华为 MateBook X Pro 笔记本电脑',
|
|
|
+ 'odd_numbers': 'WH20230401002',
|
|
|
+ 'type': '出库',
|
|
|
+ 'change_inventory': -10,
|
|
|
+ 'remaining_inventory': 190,
|
|
|
+ 'created_time': '2023-04-01T11:15:00Z'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'goods_information': '小米 Redmi Note 11 Pro+ 5G 手机',
|
|
|
+ 'odd_numbers': 'WH20230401003',
|
|
|
+ 'type': '入库',
|
|
|
+ 'change_inventory': 30,
|
|
|
+ 'remaining_inventory': 150,
|
|
|
+ 'created_time': '2023-04-01T13:45:00Z'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'goods_information': '三星 Galaxy S22 Ultra 5G 手机',
|
|
|
+ 'odd_numbers': 'WH20230401004',
|
|
|
+ 'type': '出库',
|
|
|
+ 'change_inventory': -5,
|
|
|
+ 'remaining_inventory': 55,
|
|
|
+ 'created_time': '2023-04-01T15:00:00Z'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ 'goods_information': '戴尔 XPS 13 9310 笔记本电脑',
|
|
|
+ 'odd_numbers': 'WH20230402001',
|
|
|
+ 'type': '入库',
|
|
|
+ 'change_inventory': 15,
|
|
|
+ 'remaining_inventory': 30,
|
|
|
+ 'created_time': '2023-04-02T09:00:00Z'
|
|
|
+ }
|
|
|
+]);
|
|
|
+
|
|
|
+const { queryParams, form } = toRefs(data);
|
|
|
+
|
|
|
+const type = [
|
|
|
+ { value: '', label: '全部' },
|
|
|
+ { value: '0', label: '出库' },
|
|
|
+ { value: '1', label: '入库' }
|
|
|
+];
|
|
|
+
|
|
|
+const handleQuery = () => {
|
|
|
+ queryParams.value.page = 1;
|
|
|
+ // fetchWorkrData();
|
|
|
+};
|
|
|
+const resetQuery = () => {
|
|
|
+ queryParams.value = { page: 1, pageSize: 10, area_code: '', keycode: '' };
|
|
|
+ handleQuery();
|
|
|
+};
|
|
|
+const BussinessAddState = reactive({
|
|
|
+ show: false // 初始化show为false
|
|
|
+});
|
|
|
|
|
|
-// 模拟的数据
|
|
|
-const formData = ref({
|
|
|
- warehouse_number: 'WH001', // 仓库编号
|
|
|
- purchase_order_id: 'PO123456', // 采购单号
|
|
|
- is_donation: '否', // 是否捐赠(是、否)
|
|
|
- tracking_number: 'TN789012', // 运单号
|
|
|
- donor_phone: '13800138000', // 捐赠人联系电话
|
|
|
- donor_name: '张三', // 捐赠人姓名
|
|
|
- auditor: '李四', // 审核人
|
|
|
- company_name: '某某企业有限公司', // 企业名称
|
|
|
- company_id: 'ENT001', // 企业编号
|
|
|
- grade_info: 'A级', // 分级信息
|
|
|
- type: '1', // 类型(1_调拨入库、2_归还入库、3_回收入库)
|
|
|
- supplier_name: '供应商甲', // 供应商名称
|
|
|
- create_time: '2023-10-01T08:00:00Z', // 创建时间(ISO 8601格式)
|
|
|
- remarks: '这是备注信息', // 备注
|
|
|
- supplier_id: 'SPL001', // 供应商编号
|
|
|
- completion_time: '2023-10-05T16:00:00Z', // 完成时间
|
|
|
- planned_completion_time: '2023-10-04T16:00:00Z', // 计划完成时间
|
|
|
- warehouse_name: '一号仓库', // 仓库名称
|
|
|
- storage_room_name: 'A区库房', // 库房名称
|
|
|
- inbound_order_id: 'IO765432', // 入库单号
|
|
|
- add_time: '2023-09-30T10:00:00Z' // 新增时间
|
|
|
+const BussinessEditState = reactive({
|
|
|
+ show: false
|
|
|
});
|
|
|
|
|
|
-const closeDialog = () => {
|
|
|
- emits('close');
|
|
|
+const handleAdd = () => {
|
|
|
+ BussinessAddState.show = true;
|
|
|
+};
|
|
|
+
|
|
|
+const handleDelete = async (row) => {
|
|
|
+ let id = [];
|
|
|
+ if (row) {
|
|
|
+ id = [row.id];
|
|
|
+ } else {
|
|
|
+ id = ids.value;
|
|
|
+ }
|
|
|
+ const [err] = await to(proxy?.$modal.confirm('是否确认删除选择的数据项?') as any);
|
|
|
+ if (!err) {
|
|
|
+ await companyDelete(id);
|
|
|
+ proxy.$modal.msgSuccess('删除成功');
|
|
|
+ fetchWorkrData();
|
|
|
+ }
|
|
|
+};
|
|
|
+const handleedit = (row) => {
|
|
|
+ BussinessEditState.eventId = row.id + '';
|
|
|
+ BussinessEditState.show = true;
|
|
|
+};
|
|
|
+
|
|
|
+const handleCancel = () => {
|
|
|
+ BussinessAddState.show = false;
|
|
|
+ BussinessEditState.show = false;
|
|
|
+};
|
|
|
+
|
|
|
+const fetchWorkrData = () => {
|
|
|
+ // loading.value = true;
|
|
|
+ // getCompanyList(queryParams.value)
|
|
|
+ // .then((res) => {
|
|
|
+ // tableData.value = res.data;
|
|
|
+ // total.value = res.total;
|
|
|
+ // })
|
|
|
+ // .finally(() => {
|
|
|
+ // loading.value = false;
|
|
|
+ // });
|
|
|
};
|
|
|
-</script>
|
|
|
|
|
|
-<style scoped></style>
|
|
|
+const handleSelectionChange = (selection) => {
|
|
|
+ ids.value = selection.map((item) => item.id);
|
|
|
+ selectedRow.value = selection.length === 1 ? selection[0] : null;
|
|
|
+ single.value = selection.length != 1;
|
|
|
+ multiple.value = !selection.length;
|
|
|
+};
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ window.addEventListener('resize', handleResize);
|
|
|
+ fetchWorkrData();
|
|
|
+});
|
|
|
|
|
|
+// 在组件卸载前移除窗口大小变化监听器
|
|
|
+onBeforeUnmount(() => {
|
|
|
+ window.removeEventListener('resize', handleResize);
|
|
|
+});
|
|
|
+</script>
|
|
|
|
|
|
+<style lang="scss" scoped></style>
|