From bfb838d1c3aba72fe6b3de37f065902279a7d40c Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Thu, 06 Mar 2025 08:30:56 +0800
Subject: [PATCH] 需求新增
---
src/views/hazardousChemicals/warehouseManage/components/productTable.vue | 89 ++++++++++
src/views/hazardousChemicals/useCount/index.vue | 192 ++++++++++++++++++++++++
src/layout/components/Sidebar/menu.js | 22 ++
src/views/hazardousChemicals/finishedBasicInfo/index.vue | 8
src/assets/icons/svg/alarm.svg | 1
src/assets/icons/svg/caution.svg | 1
src/router/index.js | 13 +
src/api/hazardousChemicals/useCount.js | 18 ++
src/views/hazardousChemicals/basicInfon/index.vue | 8
.env.development | 4
src/views/hazardousChemicals/avoidWarning/index.vue | 10 +
src/views/hazardousChemicals/warehouseManage/components/rawTable.vue | 90 ++++++++++
src/assets/icons/svg/warehousing.svg | 1
src/assets/icons/svg/analysis.svg | 1
14 files changed, 439 insertions(+), 19 deletions(-)
diff --git a/.env.development b/.env.development
index 19560f9..855a986 100644
--- a/.env.development
+++ b/.env.development
@@ -11,10 +11,10 @@
VITE_APP_RESOURCE_API = 'http://192.168.2.16:9000/trainexam/'
#董
-#VITE_APP_BASE_API = 'http://192.168.2.24:8083/api'
+VITE_APP_BASE_API = 'http://192.168.2.24:8083/api'
#贺
-VITE_APP_BASE_API = 'http://192.168.2.11:5812/api'
+#VITE_APP_BASE_API = 'http://192.168.2.11:5812/api'
#线上
#VITE_APP_BASE_API = 'http://47.108.222.15:8001/api'
diff --git a/src/api/hazardousChemicals/useCount.js b/src/api/hazardousChemicals/useCount.js
new file mode 100644
index 0000000..434d799
--- /dev/null
+++ b/src/api/hazardousChemicals/useCount.js
@@ -0,0 +1,18 @@
+import request from "@/utils/request";
+
+export function getUseStatistic(params) {
+ return request({
+ url: '/statistic/hazmatUseStatistic',
+ method: 'get',
+ params: params
+ })
+}
+
+export function importBaiscUse(params) {
+ return request({
+ url: '/statistic/importBaiscUse',
+ method: 'post',
+ data: params
+ })
+}
+
diff --git a/src/assets/icons/svg/alarm.svg b/src/assets/icons/svg/alarm.svg
new file mode 100644
index 0000000..b15964f
--- /dev/null
+++ b/src/assets/icons/svg/alarm.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M14 25C14 19.4772 18.4772 15 24 15C29.5228 15 34 19.4772 34 25V41H14V25Z" fill="none" stroke="#333" stroke-width="4" stroke-linejoin="round"/><path d="M24 5V8" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M35.8918 9.32823L33.9634 11.6264" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M42.2187 20.2873L39.2642 20.8083" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M5.78116 20.2874L8.73558 20.8083" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M12.1086 9.32802L14.037 11.6262" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M6 41H43" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>
\ No newline at end of file
diff --git a/src/assets/icons/svg/analysis.svg b/src/assets/icons/svg/analysis.svg
new file mode 100644
index 0000000..10f3749
--- /dev/null
+++ b/src/assets/icons/svg/analysis.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M44 5H3.99998V17H44V5Z" fill="none" stroke="#333" stroke-width="4" stroke-linejoin="round"/><path d="M3.99998 41.0301L16.1756 28.7293L22.7549 35.0301L30.7982 27L35.2786 31.368" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M44 16.1719V42.1719" stroke="#333" stroke-width="4" stroke-linecap="round"/><path d="M3.99998 16.1719V30.1719" stroke="#333" stroke-width="4" stroke-linecap="round"/><path d="M13.0155 43H44" stroke="#333" stroke-width="4" stroke-linecap="round"/><path d="M17 11H38" stroke="#333" stroke-width="4" stroke-linecap="round"/><path d="M9.99998 10.9966H11" stroke="#333" stroke-width="4" stroke-linecap="round"/></svg>
\ No newline at end of file
diff --git a/src/assets/icons/svg/caution.svg b/src/assets/icons/svg/caution.svg
new file mode 100644
index 0000000..89d2dbf
--- /dev/null
+++ b/src/assets/icons/svg/caution.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M24 5L2 43H46L24 5Z" fill="none" stroke="#333" stroke-width="4" stroke-linejoin="round"/><path d="M24 35V36" stroke="#333" stroke-width="4" stroke-linecap="round"/><path d="M24 19.0005L24.0083 29" stroke="#333" stroke-width="4" stroke-linecap="round"/></svg>
\ No newline at end of file
diff --git a/src/assets/icons/svg/warehousing.svg b/src/assets/icons/svg/warehousing.svg
new file mode 100644
index 0000000..fdce0d0
--- /dev/null
+++ b/src/assets/icons/svg/warehousing.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><svg width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M34 24L18 24" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><path d="M24 18L18 24L24 30" stroke="#333" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><circle cx="38" cy="24" r="4" fill="none" stroke="#333" stroke-width="4"/><path d="M40.706 13C39.9214 11.8109 39.0133 10.7105 38 9.71713C34.3925 6.18064 29.4509 4 24 4C12.9543 4 4 12.9543 4 24C4 35.0457 12.9543 44 24 44C29.4509 44 34.3925 41.8194 38 38.2829C39.0133 37.2895 39.9214 36.1891 40.706 35" stroke="#333" stroke-width="4" stroke-linecap="round"/></svg>
\ No newline at end of file
diff --git a/src/layout/components/Sidebar/menu.js b/src/layout/components/Sidebar/menu.js
index f86f3aa..cba7689 100644
--- a/src/layout/components/Sidebar/menu.js
+++ b/src/layout/components/Sidebar/menu.js
@@ -102,12 +102,17 @@
{
path: '/warehouseManage',
name: 'warehouseManage',
- meta: { title: '入库管理',icon: 'form',affix: true }
+ meta: { title: '入库管理',icon: 'warehousing',affix: true }
},
{
path: '/electronicWarehouse',
name: 'electronicWarehouse',
meta: { title: '电子仓库',icon: 'build',affix: true }
+ },
+ {
+ path: '/useCount',
+ name: 'useCount',
+ meta: { title: '用量统计',icon: 'analysis',affix: true }
},
// {
// path: '/detailList',
@@ -127,12 +132,12 @@
{
path: '/overdueWarning',
name: 'overdueWarning',
- meta: { title: '超期预警',icon: 'peoples',affix: true }
+ meta: { title: '超期预警',icon: 'alarm',affix: true }
},
{
path: '/avoidWarning',
name: 'avoidWarning',
- meta: { title: '危化品相忌报警',icon: 'form',affix: true }
+ meta: { title: '危化品相忌报警',icon: 'caution',affix: true }
},
{
path: '/basicInfo',
@@ -189,12 +194,17 @@
{
path: '/warehouseManage',
name: 'warehouseManage',
- meta: { title: '入库管理',icon: 'form',affix: true }
+ meta: { title: '入库管理',icon: 'warehousing',affix: true }
},
{
path: '/electronicWarehouse',
name: 'electronicWarehouse',
meta: { title: '电子仓库',icon: 'build',affix: true }
+ },
+ {
+ path: '/useCount',
+ name: 'useCount',
+ meta: { title: '用量统计',icon: 'analysis',affix: true }
},
// {
// path: '/detailList',
@@ -214,12 +224,12 @@
{
path: '/overdueWarning',
name: 'overdueWarning',
- meta: { title: '超期预警',icon: 'peoples',affix: true }
+ meta: { title: '超期预警',icon: 'alarm',affix: true }
},
{
path: '/avoidWarning',
name: 'avoidWarning',
- meta: { title: '危化品相忌报警',icon: 'form',affix: true }
+ meta: { title: '危化品相忌报警',icon: 'caution',affix: true }
},
{
path: '/basicInfo',
diff --git a/src/router/index.js b/src/router/index.js
index d963cbf..9a9c99a 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -196,6 +196,19 @@
]
},
{
+ path: '/useCount',
+ component: Layout,
+ redirect: '/useCount',
+ children: [
+ {
+ path: '/useCount',
+ component: () => import('@/views/hazardousChemicals/useCount/index.vue'),
+ name: 'useCount',
+ meta: { title: '用量统计',icon: 'form', affix: true }
+ }
+ ]
+ },
+ {
path: '/basicInfo',
component: Layout,
redirect: '/basicInfo',
diff --git a/src/views/hazardousChemicals/avoidWarning/index.vue b/src/views/hazardousChemicals/avoidWarning/index.vue
index 0502bb2..941b711 100644
--- a/src/views/hazardousChemicals/avoidWarning/index.vue
+++ b/src/views/hazardousChemicals/avoidWarning/index.vue
@@ -42,9 +42,15 @@
<el-table-column label="时间" prop="createTime" align="center" />
<el-table-column label="品名" prop="basicName" align="center" />
<el-table-column label="相忌试剂" prop="tabooBasicName" align="center" />
- <el-table-column label="储存位置" align="center" >
+ <el-table-column label="储存位置" align="center" width="160">
<template #default="scope">
- <span>{{scope.row.warehouseName}}——{{scope.row.cupboardName}}</span>
+ <span>{{scope.row.warehouseName}}—{{scope.row.cupboardName}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="当前位置" align="center" width="160">
+ <template #default="scope">
+ <span v-if="scope.row.state == 1">{{scope.row.reWarehouseName}}—{{scope.row.reCupboardName}}</span>
+ <span v-else>—</span>
</template>
</el-table-column>
<el-table-column label="风险等级" align="center" >
diff --git a/src/views/hazardousChemicals/basicInfon/index.vue b/src/views/hazardousChemicals/basicInfon/index.vue
index eac0e60..580be0c 100644
--- a/src/views/hazardousChemicals/basicInfon/index.vue
+++ b/src/views/hazardousChemicals/basicInfon/index.vue
@@ -71,7 +71,13 @@
<el-table-column label="CAS" prop="cas" align="center"/>
<el-table-column label="试剂类型" prop="hazmatType" align="center"/>
<el-table-column label="危险性质" prop="hazmatCharacter" align="center" width="140"/>
- <el-table-column label="危化品特性" prop="peculiarityType" align="center" width="140"/>
+<!-- <el-table-column label="危化品特性" prop="peculiarityType" align="center" width="140"/>-->
+ <el-table-column label="危险性类别" prop="riskType" align="center" width="140">
+ <template #default="scope">
+ <div v-html="scope.row.riskType"></div>
+ </template>
+ </el-table-column>
+ <el-table-column label="危化品分类编号" prop="peculiarityNumber" align="center" />
<el-table-column label="供应商" prop="supplier" align="center"/>
<el-table-column label="厂家" prop="manufacturer" align="center"/>
<el-table-column label="规格" prop="hazmatFormat" align="center"/>
diff --git a/src/views/hazardousChemicals/finishedBasicInfo/index.vue b/src/views/hazardousChemicals/finishedBasicInfo/index.vue
index f9d130e..23f2c50 100644
--- a/src/views/hazardousChemicals/finishedBasicInfo/index.vue
+++ b/src/views/hazardousChemicals/finishedBasicInfo/index.vue
@@ -70,7 +70,13 @@
<el-table-column label="CAS" prop="cas" align="center"/>
<el-table-column label="试剂类型" prop="productType" align="center"/>
<el-table-column label="危险性质" prop="productCharacter" align="center"/>
- <el-table-column label="危化品特性" prop="peculiarityType" align="center" width="140"/>
+<!-- <el-table-column label="危化品特性" prop="peculiarityType" align="center" width="140"/>-->
+ <el-table-column label="危险性类别" prop="riskType" align="center" width="140">
+ <template #default="scope">
+ <div v-html="scope.row.riskType"></div>
+ </template>
+ </el-table-column>
+ <el-table-column label="危化品分类编号" prop="peculiarityNumber" align="center" />
<el-table-column label="供应商" prop="supplier" align="center"/>
<el-table-column label="厂家" prop="manufacturer" align="center"/>
<el-table-column label="规格" prop="productFormat" align="center"/>
diff --git a/src/views/hazardousChemicals/useCount/index.vue b/src/views/hazardousChemicals/useCount/index.vue
new file mode 100644
index 0000000..434bb8b
--- /dev/null
+++ b/src/views/hazardousChemicals/useCount/index.vue
@@ -0,0 +1,192 @@
+<template>
+ <div class="app-container">
+ <div style="display: flex;justify-content: space-between">
+ <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
+ <el-form-item label="按时间查询:" >
+ <el-date-picker
+ v-model="state.tableData.listQuery.time"
+ type="datetimerange"
+ range-separator="~"
+ start-placeholder="开始时间"
+ end-placeholder="结束时间"
+ format="YYYY-MM-DD HH:mm:ss"
+ />
+ </el-form-item>
+ <el-form-item >
+ <el-button
+ plain
+ type="primary"
+ @click="reset"
+ >重置</el-button>
+ <el-button
+ icon="Search"
+ type="primary"
+ @click="getList"
+ >查询</el-button>
+
+<!-- <vue3-json-excel-->
+<!-- class="ml10"-->
+<!-- :json-data="state.tableData.data"-->
+<!-- :fields="fields"-->
+<!-- :name="state.tableData.excelName"-->
+<!-- >-->
+ <el-button type="primary" icon="Download" size="default" @click="downloadExcel">导出</el-button>
+<!-- </vue3-json-excel>-->
+ </el-form-item>
+ </el-form>
+ </div>
+ <el-table v-loading="loading" :data="state.tableData.data" :border="true">
+ <el-table-column label="序号" type="index" align="center" width="80" />
+ <el-table-column label="危化品品名" prop="hazmatBasic.name" align="center" />
+ <el-table-column label="CAS" prop="hazmatBasic.cas" align="center" />
+ <el-table-column label="试剂类型" prop="hazmatBasic.hazmatType" align="center" />
+ <el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center" />
+ <el-table-column label="供应商" prop="hazmatBasic.supplier" align="center" width="180" />
+ <el-table-column label="规格" prop="hazmatBasic.hazmatFormat" align="center"/>
+ <el-table-column label="最小包装类型" prop="" align="center" width="180" >
+ <template #default="scope">
+ <span> {{scope.row.hazmatBasic.minPackage == 0 ? '瓶' :scope.row.hazmatBasic.minPackage == 1?'袋':scope.row.hazmatBasic.minPackage == 2?'桶 ':scope.row.hazmatBasic.minPackage == 3?'盒':scope.row.hazmatBasic.minPackage == 4?'箱':'其他'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="用量" prop="count" align="center" />
+ </el-table>
+ <pagination
+ v-show="state.tableData.total > 0"
+ :total="state.tableData.total"
+ v-model:page="state.tableData.listQuery.pageNum"
+ v-model:limit="state.tableData.listQuery.pageSize"
+ @pagination="getList"
+ />
+ </div>
+</template>
+
+<script setup>
+import {onMounted, reactive, ref} from "vue";
+import {getUseStatistic, importBaiscUse} from "@/api/hazardousChemicals/useCount";
+import {ElMessage} from "element-plus";
+import moment from "moment";
+import axios from "axios";
+import {getToken} from "@/utils/auth";
+
+const loading = ref(false)
+const state = reactive({
+ tableData: {
+ data: [],
+ total: 0,
+ loading: false,
+ listQuery: {
+ pageNum: 1,
+ pageSize: 10,
+ startTime: null,
+ endTime: null,
+ time: [],
+ },
+ excelName: ''
+ },
+});
+const fields = ref({
+ '名称':'hazmatBasic.name',
+ 'CAS': 'hazmatBasic.cas',
+ '试剂类型':'hazmatBasic.hazmatType',
+ '危险性质':'hazmatBasic.hazmatCharacter',
+ '供应商':'hazmatBasic.supplier',
+ '规格':'hazmatBasic.hazmatFormat',
+ '最小包装': 'minPack',
+ '用量':'count',
+});
+
+onMounted(
+ () => {
+ getNowTime();
+ getList()
+ }
+);
+const getNowTime = () => {
+ let isDate = new Date()
+ let sTime = `${isDate.getFullYear()}-${isDate.getMonth()}-${isDate.getDate()}`
+ let eTime = `${isDate.getFullYear()}-${isDate.getMonth()+1}-${isDate.getDate()}`
+ sTime = `${sTime} 00:00:00`
+ eTime = `${eTime} ` + moment().format('HH:mm:ss')
+ state.tableData.listQuery.time = [sTime ,eTime];
+}
+
+const getList = async () => {
+ loading.value = true
+ state.tableData.listQuery.startTime = state.tableData.listQuery.time[0]
+ state.tableData.listQuery.endTime = state.tableData.listQuery.time[1]
+ const {time, ...data} = JSON.parse(JSON.stringify(state.tableData.listQuery))
+ const res = await getUseStatistic(data)
+ if(res.code == 200){
+ state.tableData.data = res.data.list.map(item => {
+ return {
+ ...item,
+ minPack: `${item.hazmatBasic.metering}${item.hazmatBasic.unit}/${item.hazmatBasic.minPackage == 0 ? '瓶' : item.hazmatBasic.minPackage == 1?'袋':item.hazmatBasic.minPackage == 2?'桶 ':item.hazmatBasic.minPackage == 3?'盒':item.hazmatBasic.minPackage == 4?'箱':'其他'}`
+ }
+ })
+ console.log('1',state.tableData.data)
+ state.tableData.total = res.data.total
+ }else{
+ ElMessage.warning(res.message)
+ }
+ loading.value = false
+}
+const downloadExcel = async() => {
+
+ state.tableData.listQuery.startTime = moment(state.tableData.listQuery.time[0]).format('YYYY-MM-DD HH:mm:ss').substring(0,10)
+ state.tableData.listQuery.endTime = moment(state.tableData.listQuery.time[1]).format('YYYY-MM-DD HH:mm:ss').substring(0,10)
+ console.log('time', state.tableData.listQuery.startTime, state.tableData.listQuery.endTime)
+ state.tableData.excelName = state.tableData.listQuery.startTime + '至' +state.tableData.listQuery.endTime + '__用量统计.xls'
+ // state.tableData.listQuery.startTime = state.tableData.listQuery.time[0]
+ // state.tableData.listQuery.endTime = state.tableData.listQuery.time[1]
+ const data = {
+ startTime:state.tableData.listQuery.startTime,
+ endTime: state.tableData.listQuery.endTime
+ }
+ const url = import.meta.env.VITE_APP_BASE_API + '/statistic/importBaiscUse'
+ axios(
+ {
+ method: 'get',
+ url: url,
+ responseType: 'blob',
+ params: data,
+ headers: { 'Authorization':getToken() }
+ }
+ ).then(res => {
+ if(res){
+ const link = document.createElement('a')
+ let blob = new Blob([res.data],{type: res.data.type})
+ link.style.display = "none";
+ link.href = URL.createObjectURL(blob); // 创建URL
+ link.setAttribute("download", state.tableData.excelName);
+ document.body.appendChild(link);
+ link.click();
+ document.body.removeChild(link);
+ }else {
+ ElMessage.warning('获取文件失败')
+ }
+ })
+ // const res = await importBaiscUse(data)
+ // if(res.code == 200){
+ // const link = document.createElement('a')
+ // let blob = new Blob([res.data],{type: res.data.type})
+ // link.style.display = "none";
+ // link.href = URL.createObjectURL(blob); // 创建URL
+ // link.setAttribute("download",state.tableData.excelName );
+ // document.body.appendChild(link);
+ // link.click();
+ // document.body.removeChild(link);
+ // }else{
+ // ElMessage.warning(res.message)
+ // }
+
+}
+const reset = () => {
+ getNowTime();
+ getList();
+}
+</script>
+
+
+<style scoped lang="scss">
+
+</style>
diff --git a/src/views/hazardousChemicals/warehouseManage/components/productTable.vue b/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
index 16bb840..c6854c4 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
@@ -16,6 +16,42 @@
<el-form-item label="产品编号:" >
<el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
</el-form-item>
+ <el-form-item label="仓库:" prop="warehouseName" >
+ <el-select
+ clearable
+ v-model="data.queryParams.params.warehouseName"
+ filterable
+ remote
+ reserve-keyword
+ placeholder="请输入所入仓库"
+ remote-show-suffix
+ :remote-method="getWareHouseList"
+ style="width: 100%"
+ @change="selectWareValue"
+ >
+ <el-option
+ v-for="item in data.wareHouseList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.name"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="存储柜:" prop="cupboardId" >
+ <el-select
+ clearable
+ v-model="data.queryParams.params.cupboardId"
+ placeholder="请选择存储柜"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="item in data.cupList"
+ :key="item.id"
+ :label="item.cupboardName"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
<el-form-item >
<el-button
type="primary"
@@ -84,7 +120,7 @@
import {ElMessage, ElMessageBox} from "element-plus";
import proDialog from "./addProDialog.vue";
import printcode from './printCode.vue'
-import {delWarehouse, getWarehouse} from "@/api/hazardousChemicals/warehouse";
+import {delWarehouse, getCupById, getWarehouse} from "@/api/hazardousChemicals/warehouse";
import {
delProductRecord,
doEntryPro,
@@ -105,17 +141,22 @@
pageSize: 10,
params :{
name: '',
- productSn: ''
+ productSn: '',
+ cupboardId: null,
+ warehouseId: null
}
},
total: 0,
- dataList: []
+ dataList: [],
+ wareHouseList: [],
+ cupList: []
});
const { queryParams, total, dataList } = toRefs(data);
const classHourRef = ref();
onMounted(()=>{
getList()
+ getWareHouseList("")
})
const getList = async () => {
@@ -141,10 +182,14 @@
pageSize: 10,
params :{
name: '',
- productSn: ''
+ productSn: '',
+ cupboardId: null,
+ warehouseId: null
}
}
+ data.cupList = []
getList()
+ getWareHouseList("")
}
const handleDelete = (val) => {
ElMessageBox.confirm(
@@ -198,6 +243,42 @@
const v = JSON.stringify(obj)
router.push({ path: "/whProDetail", query: { val: v } });
}
+const getWareHouseList = async (val) => {
+ let param = {}
+ if(val != ""){
+ param = {
+ name: val
+ }
+ }else {
+ param = {
+ pageNum: 1,
+ pageSize: 10
+ }
+ }
+ const res = await getWarehouse(param)
+ if(res.code == 200){
+ data.wareHouseList = res.data.list
+ }else{
+ ElMessage.warning(res.message)
+ }
+}
+const selectWareValue = (val) => {
+ data.queryParams.params.cupboardId = null
+ data.wareHouseList.forEach(item => {
+ if(item.name === val){
+ data.queryParams.params.warehouseId = item.id
+ getCupList(item.id)
+ }
+ })
+}
+const getCupList = async (val) => {
+ const res = await getCupById(val)
+ if(res.code == 200) {
+ data.cupList = res.data
+ }else {
+ ElMessage.warning(res.message)
+ }
+}
defineExpose({
getList
diff --git a/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue b/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue
index 8af5238..348c595 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue
@@ -16,6 +16,43 @@
<el-form-item label="产品编号:" >
<el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
</el-form-item>
+ <el-form-item label="仓库:" prop="warehouseName" >
+ <el-select
+ clearable
+ v-model="data.queryParams.params.warehouseName"
+ filterable
+ remote
+ reserve-keyword
+ placeholder="请输入所入仓库"
+ remote-show-suffix
+ :remote-method="getWareHouseList"
+ style="width: 100%"
+ @change="selectWareValue"
+ >
+ <el-option
+ v-for="item in data.wareHouseList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.name"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="存储柜:" prop="cupboardId" >
+ <el-select
+ clearable
+ v-model="data.queryParams.params.cupboardId"
+ placeholder="请选择存储柜"
+ style="width: 100%"
+ >
+ <el-option
+
+ v-for="item in data.cupList"
+ :key="item.id"
+ :label="item.cupboardName"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
<el-form-item >
<el-button
type="primary"
@@ -89,6 +126,7 @@
import printcode from './printCode.vue'
import {delRawRecord, doEntryRaw, getRawRecord, getRawWarehouseRecord} from "@/api/hazardousChemicals/rawRecord";
import {useRoute, useRouter} from "vue-router";
+import {getCupById, getWarehouse} from "@/api/hazardousChemicals/warehouse";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const dialogRef = ref();
@@ -101,17 +139,23 @@
pageSize: 10,
params :{
name: '',
- productSn: ''
+ productSn: '',
+ cupboardId: null,
+ warehouseId: null
}
},
total: 0,
- dataList: []
+ dataList: [],
+ wareHouseList: [],
+ cupList: []
+
});
const { queryParams, total, dataList } = toRefs(data);
const classHourRef = ref();
onMounted(()=>{
getList()
+ getWareHouseList("")
})
const getList = async () => {
@@ -137,10 +181,14 @@
pageSize: 10,
params :{
name: '',
- productSn: ''
+ productSn: '',
+ cupboardId: null,
+ warehouseId: null
}
}
+ data.cupList = []
getList()
+ getWareHouseList("")
}
const handleDelete = (val) => {
ElMessageBox.confirm(
@@ -197,6 +245,42 @@
router.push({ path: "/whRawDetail", query: { val: v } });
}
+const getWareHouseList = async (val) => {
+ let param = {}
+ if(val != ""){
+ param = {
+ name: val
+ }
+ }else {
+ param = {
+ pageNum: 1,
+ pageSize: 10
+ }
+ }
+ const res = await getWarehouse(param)
+ if(res.code == 200){
+ data.wareHouseList = res.data.list
+ }else{
+ ElMessage.warning(res.message)
+ }
+}
+const selectWareValue = (val) => {
+ data.queryParams.params.cupboardId = null
+ data.wareHouseList.forEach(item => {
+ if(item.name === val){
+ data.queryParams.params.warehouseId = item.id
+ getCupList(item.id)
+ }
+ })
+}
+const getCupList = async (val) => {
+ const res = await getCupById(val)
+ if(res.code == 200) {
+ data.cupList = res.data
+ }else {
+ ElMessage.warning(res.message)
+ }
+}
defineExpose({
getList
--
Gitblit v1.9.2