From cd84a28754fc1b3fadb7027245333d6d3ff330a3 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Mon, 19 Aug 2024 17:22:53 +0800
Subject: [PATCH] bug修改
---
src/views/hazardousChemicals/finishedBasicInfo/components/finishedBasicDialog.vue | 85 ++++
src/views/hazardousChemicals/warehouseManage/components/productTable.vue | 52 +
src/views/hazardousChemicals/accessRecords/index.vue | 13
src/views/hazardousChemicals/electronicWarehouse/components/proDetail.vue | 2
src/assets/logo/warning1.png | 0
src/api/hazardousChemicals/count.js | 8
src/views/hazardousChemicals/systemManage/user/components/userDialog.vue | 1
src/assets/logo/warning.png | 0
src/views/hazardousChemicals/electronicWarehouse/components/productTable.vue | 29
src/views/hazardousChemicals/systemManage/user/index.vue | 5
src/views/hazardousChemicals/homePage/index.vue | 206 +++++----
src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue | 17
src/views/hazardousChemicals/warehouseManage/components/proDetail.vue | 176 ++++++++
src/views/hazardousChemicals/warehouseManage/components/printCode.vue | 24 +
src/views/hazardousChemicals/warehouseManage/components/addProDialog.vue | 18
src/views/hazardousChemicals/warehouseManage/components/rawDetail.vue | 183 +++++++++
src/api/hazardousChemicals/productRecord.js | 8
src/views/hazardousChemicals/basicInfon/components/basicDialog.vue | 87 ++++
src/api/hazardousChemicals/rawRecord.js | 8
src/views/hazardousChemicals/accessRecords/components/productTable.vue | 16
src/views/hazardousChemicals/overdueWarning/index.vue | 23 +
src/views/hazardousChemicals/warehouseManage/components/rawTable.vue | 57 +
src/assets/logo/hazmat.png | 0
src/assets/logo/warehouse.png | 0
src/views/hazardousChemicals/electronicWarehouse/components/rawTable.vue | 31
src/views/hazardousChemicals/electronicWarehouse/components/rawDetail.vue | 6
src/views/hazardousChemicals/finishedBasicInfo/index.vue | 12
src/views/hazardousChemicals/warehouseManage/index.vue | 22
src/router/index.js | 26 +
src/views/components/flowDetail.vue | 8
src/views/hazardousChemicals/basicInfon/index.vue | 14
src/views/hazardousChemicals/accessRecords/components/rawTable.vue | 16
src/assets/logo/used.png | 0
src/views/hazardousChemicals/electronicWarehouse/index.vue | 12
34 files changed, 936 insertions(+), 229 deletions(-)
diff --git a/src/api/hazardousChemicals/count.js b/src/api/hazardousChemicals/count.js
index cb84b3d..3c5e491 100644
--- a/src/api/hazardousChemicals/count.js
+++ b/src/api/hazardousChemicals/count.js
@@ -36,3 +36,11 @@
data: params
})
}
+
+export function unWarningCount() {
+ return request({
+ url: '/warning/warningCount',
+ method: 'get',
+ })
+}
+
diff --git a/src/api/hazardousChemicals/productRecord.js b/src/api/hazardousChemicals/productRecord.js
index 6b264d6..8d26aaa 100644
--- a/src/api/hazardousChemicals/productRecord.js
+++ b/src/api/hazardousChemicals/productRecord.js
@@ -93,3 +93,11 @@
params: params
})
}
+
+export function getWhProDetail(params) {
+ return request({
+ url: '/product-entry-record/productlist',
+ method: 'get',
+ params: params
+ })
+}
diff --git a/src/api/hazardousChemicals/rawRecord.js b/src/api/hazardousChemicals/rawRecord.js
index 593b58d..171b1b6 100644
--- a/src/api/hazardousChemicals/rawRecord.js
+++ b/src/api/hazardousChemicals/rawRecord.js
@@ -95,3 +95,11 @@
}
+
+export function getWhRawDetail(params) {
+ return request({
+ url: '/entry-record/hazmatlist',
+ method: 'get',
+ params: params
+ })
+}
diff --git a/src/assets/logo/hazmat.png b/src/assets/logo/hazmat.png
new file mode 100644
index 0000000..485c9d3
--- /dev/null
+++ b/src/assets/logo/hazmat.png
Binary files differ
diff --git a/src/assets/logo/used.png b/src/assets/logo/used.png
new file mode 100644
index 0000000..a72404c
--- /dev/null
+++ b/src/assets/logo/used.png
Binary files differ
diff --git a/src/assets/logo/warehouse.png b/src/assets/logo/warehouse.png
new file mode 100644
index 0000000..3807a1d
--- /dev/null
+++ b/src/assets/logo/warehouse.png
Binary files differ
diff --git a/src/assets/logo/warning.png b/src/assets/logo/warning.png
new file mode 100644
index 0000000..637e49c
--- /dev/null
+++ b/src/assets/logo/warning.png
Binary files differ
diff --git a/src/assets/logo/warning1.png b/src/assets/logo/warning1.png
new file mode 100644
index 0000000..8b3eb40
--- /dev/null
+++ b/src/assets/logo/warning1.png
Binary files differ
diff --git a/src/router/index.js b/src/router/index.js
index f215420..ba0aad7 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -118,6 +118,32 @@
]
},
{
+ path: '/whRawDetail',
+ component: Layout,
+ redirect: '/whRawDetail',
+ children: [
+ {
+ path: '/whRawDetail',
+ component: () => import('@/views/hazardousChemicals/warehouseManage/components/rawDetail.vue'),
+ name: 'whRawDetail',
+ meta: { title: '危化品详情',icon: 'form', affix: true }
+ }
+ ]
+ },
+ {
+ path: '/whProDetail',
+ component: Layout,
+ redirect: '/whProDetail',
+ children: [
+ {
+ path: '/whProDetail',
+ component: () => import('@/views/hazardousChemicals/warehouseManage/components/proDetail.vue'),
+ name: 'whProDetail',
+ meta: { title: '成品详情',icon: 'form', affix: true }
+ }
+ ]
+ },
+ {
path: '/accessRecords',
component: Layout,
redirect: '/accessRecords',
diff --git a/src/views/components/flowDetail.vue b/src/views/components/flowDetail.vue
index a49ca9d..6ddfec2 100644
--- a/src/views/components/flowDetail.vue
+++ b/src/views/components/flowDetail.vue
@@ -79,7 +79,7 @@
return {
...item,
unit: item.productBasic.unit,
- description: `${item.updateTime} ${item.user.departName}部门 ${item.user.name} 进行了 ${item.state == 0 ? '批量导入' : item.state == 3 ? '标签作废' : '销售'}`,
+ description: `${item.updateTime} ${item.user.departName ? item.user.departName +'部门' : ''} ${item.user.name} 进行了 ${item.state == 0 ? '批量导入' : item.state == 3 ? '标签作废' : '销售'}`,
size: 'large',
type: 'primary',
icon: MoreFilled,
@@ -113,7 +113,7 @@
return {
...item,
unit:item.hazmatBasic.unit,
- description: `${item.updateTime} ${item.user.departName}部门 ${item.user.name} 进行了 ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''}`,
+ description: `${item.updateTime} ${item.user.departName ? item.user.departName +'部门' : ''} ${item.user.name} 进行了 ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''}`,
size: 'large',
type: 'primary',
icon: MoreFilled,
@@ -141,7 +141,7 @@
return {
...item,
unit:item.hazmatBasic.unit,
- description: `${item.updateTime} ${item.user.departName}部门 ${item.user.name} 进行了 ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''}`,
+ description: `${item.updateTime} ${item.user.departName ? item.user.departName +'部门' : ''} ${item.user.name} 进行了 ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''}`,
size: 'large',
type: 'primary',
icon: MoreFilled,
@@ -156,7 +156,7 @@
return {
...item,
unit:item.productBasic.unit,
- description: `${item.updateTime} ${item.user.departName}部门 ${item.user.name} 进行了 ${item.state == 0 ? '批量导入' : item.state == 3 ? '标签作废' : '销售'}`,
+ description: `${item.updateTime} ${item.user.departName? item.user.departName +'部门' : ''} ${item.user.name} 进行了 ${item.state == 0 ? '批量导入' : item.state == 3 ? '标签作废' : '销售'}`,
size: 'large',
type: 'primary',
icon: MoreFilled,
diff --git a/src/views/hazardousChemicals/accessRecords/components/productTable.vue b/src/views/hazardousChemicals/accessRecords/components/productTable.vue
index 82179ae..4e28a68 100644
--- a/src/views/hazardousChemicals/accessRecords/components/productTable.vue
+++ b/src/views/hazardousChemicals/accessRecords/components/productTable.vue
@@ -3,10 +3,10 @@
<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-input v-model="data.queryParams.name" placeholder="请输入品名" clearable></el-input>
+ <el-input v-model="data.queryParams.params.name" placeholder="请输入品名" clearable></el-input>
</el-form-item>
<el-form-item label="产品编号:" >
- <el-input v-model="data.queryParams.productSn" placeholder="请输入产品编号" clearable></el-input>
+ <el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
</el-form-item>
<el-form-item >
<el-button
@@ -88,8 +88,10 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
},
total: 0,
dataList: []
@@ -122,8 +124,10 @@
data.queryParams = {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
}
getList()
}
diff --git a/src/views/hazardousChemicals/accessRecords/components/rawTable.vue b/src/views/hazardousChemicals/accessRecords/components/rawTable.vue
index e067075..8ecba7f 100644
--- a/src/views/hazardousChemicals/accessRecords/components/rawTable.vue
+++ b/src/views/hazardousChemicals/accessRecords/components/rawTable.vue
@@ -3,10 +3,10 @@
<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-input v-model="data.queryParams.name" placeholder="请输入品名" clearable></el-input>
+ <el-input v-model="data.queryParams.params.name" placeholder="请输入品名" clearable></el-input>
</el-form-item>
<el-form-item label="产品编号:" >
- <el-input v-model="data.queryParams.productSn" placeholder="请输入产品编号" clearable></el-input>
+ <el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
</el-form-item>
<el-form-item >
<el-button
@@ -91,8 +91,10 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
},
total: 0,
dataList: []
@@ -132,8 +134,10 @@
data.queryParams = {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
}
getList()
}
diff --git a/src/views/hazardousChemicals/accessRecords/index.vue b/src/views/hazardousChemicals/accessRecords/index.vue
index 114e99c..107d30d 100644
--- a/src/views/hazardousChemicals/accessRecords/index.vue
+++ b/src/views/hazardousChemicals/accessRecords/index.vue
@@ -1,11 +1,11 @@
<template>
<div>
- <el-tabs v-model="data.activeName" class="demo-tabs" @click="clickTab" style="margin: 10px 10px">
+ <el-tabs v-model="data.activeName" class="demo-tabs" @tab-click="clickTab" style="margin: 10px 10px">
+ <el-tab-pane label="危化品" name="rawMaterial">
+ <raw-table ref="rawRef"></raw-table>
+ </el-tab-pane>
<el-tab-pane label="成品" name="finishPro" v-if="showFinishPro">
<pro-table ref="proRef"></pro-table>
- </el-tab-pane>
- <el-tab-pane label="原材料" name="rawMaterial">
- <raw-table ref="rawRef"></raw-table>
</el-tab-pane>
</el-tabs>
</div>
@@ -22,15 +22,16 @@
queryParams: {
pageNum: 1,
pageSize: 10,
+
},
total: 0,
dataList: [],
- activeName: 'finishPro'
+ activeName: 'rawMaterial'
})
onMounted(()=>{
showFinishPro.value = true;
- data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
+ // data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
})
const clickTab = (tab,event) =>{
console.log('tab',data.activeName)
diff --git a/src/views/hazardousChemicals/basicInfon/components/basicDialog.vue b/src/views/hazardousChemicals/basicInfon/components/basicDialog.vue
index 4aed9ba..713f83d 100644
--- a/src/views/hazardousChemicals/basicInfon/components/basicDialog.vue
+++ b/src/views/hazardousChemicals/basicInfon/components/basicDialog.vue
@@ -34,10 +34,35 @@
<el-input v-model.trim="state.form.cas" placeholder="请输入CAS"></el-input>
</el-form-item>
<el-form-item label="试剂类型:" prop="hazmatType">
- <el-input v-model.trim="state.form.hazmatType" placeholder="请输入试剂类型"></el-input>
+ <el-select
+ v-model="state.form.hazmatType"
+ placeholder="请选择试剂类型"
+ clearable
+ style="width: 100%"
+ >
+ <el-option
+ v-for="dict in state.hazmatTypeList"
+ :key="dict.id"
+ :label="dict.name"
+ :value="dict.name"
+ />
+ </el-select>
</el-form-item>
<el-form-item label="危险性质:" prop="hazmatCharacter">
- <el-input v-model.trim="state.form.hazmatCharacter" placeholder="请输入危险性质"></el-input>
+ <el-select
+ v-model="state.characterList"
+ placeholder="请选择危险性质"
+ clearable
+ multiple
+ style="width: 100%"
+ >
+ <el-option
+ v-for="dict in state.hazmatCharacterList"
+ :key="dict.id"
+ :label="dict.name"
+ :value="dict.name"
+ />
+ </el-select>
</el-form-item>
<el-form-item label="供应商:" prop="supplier">
<el-input v-model.trim="state.form.supplier" placeholder="请输入供应商"></el-input>
@@ -94,7 +119,7 @@
<el-input v-model.trim="state.form.safeNum" placeholder="请输入安全库存" oninput="value=value.replace(/^\.+|[^\d]/g,'')"></el-input>
</el-form-item>
<el-form-item label="超期阈值(小时):" prop="threshold">
- <el-input v-model.trim="state.form.threshold" placeholder="请输入超期阈值"></el-input>
+ <el-input v-model.trim="state.form.threshold" placeholder="请输入超期阈值" oninput="value=value.replace(/^\.+|[^\d]/g,'')"></el-input>
</el-form-item>
</el-form>
<template #footer>
@@ -166,6 +191,7 @@
threshold: null,
kind: ''
},
+ characterList: [],
formRules:{
name: [{ required: true, trigger: "blur", message: '请输入危化品名称', }],
cas: [{ required: true, message: '请输入cas', trigger: 'blur' }],
@@ -207,6 +233,28 @@
name: '其他'
},
],
+ hazmatTypeList: [
+ {
+ id: 0,
+ name: '耗材'
+ },
+ {
+ id: 1,
+ name: '液态'
+ },
+ {
+ id: 2,
+ name: '液体'
+ },
+ {
+ id: 3,
+ name: '气态'
+ },
+ {
+ id: 4,
+ name: '固态'
+ },
+ ],
unitList:[
{
id: 0,
@@ -233,14 +281,44 @@
name: '其他'
},
],
+ hazmatCharacterList: [
+ {
+ id: 0,
+ name: '腐蚀品'
+ },
+ {
+ id: 1,
+ name: '氧化品'
+ },
+ {
+ id: 2,
+ name: '有毒品'
+ },
+ {
+ id: 3,
+ name: '易燃品'
+ },
+ {
+ id: 4,
+ name: '非易燃品'
+ },
+ ],
unitOptions: [
{
value: 'g',
label: 'g',
},
{
+ value: 'mg',
+ label: 'mg',
+ },
+ {
value: 'ml',
label: 'ml',
+ },
+ {
+ value: 'l',
+ label: 'l',
},
]
})
@@ -251,12 +329,14 @@
title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '' ;
if(type === 'edit' || type === 'distribute') {
state.form = value;
+ state.characterList = state.form.hazmatCharacter.split(',')
startUsername.value = value.productSn
}
dialogVisible.value = true;
}
const onSubmit = async () => {
+ state.form.hazmatCharacter = state.characterList.join(",")
const valid = await busRef.value.validate();
if(valid){
if(title.value === '新增'){
@@ -318,6 +398,7 @@
threshold: null,
kind: ''
}
+ state.characterList = []
}
defineExpose({
openDialog
diff --git a/src/views/hazardousChemicals/basicInfon/index.vue b/src/views/hazardousChemicals/basicInfon/index.vue
index b62ddef..0be329d 100644
--- a/src/views/hazardousChemicals/basicInfon/index.vue
+++ b/src/views/hazardousChemicals/basicInfon/index.vue
@@ -61,10 +61,10 @@
<el-table-column label="产品编号" prop="productSn" align="center" />
<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"/>
+ <el-table-column label="危险性质" prop="hazmatCharacter" align="center" width="140"/>
<el-table-column label="供应商" prop="supplier" align="center"/>
<el-table-column label="厂家" prop="manufacturer" align="center"/>
- <el-table-column label="规格" prop="hazmatCharacter" align="center"/>
+ <el-table-column label="规格" prop="hazmatFormat" align="center"/>
<el-table-column label="包装" prop="metering" align="center">
<template #default="scope">
<span>{{scope.row.metering}}{{scope.row.unit}}</span>
@@ -122,23 +122,23 @@
dataList: [],
typeList: [
{
- id: 1,
+ id: 0,
name: '试剂'
},
{
- id: 2,
+ id: 1,
name: '原料'
},
{
- id: 3,
+ id: 2,
name: '半成品'
},
{
- id: 4,
+ id: 3,
name: '成品'
},
{
- id: 5,
+ id:4,
name: '其他'
},
]
diff --git a/src/views/hazardousChemicals/electronicWarehouse/components/proDetail.vue b/src/views/hazardousChemicals/electronicWarehouse/components/proDetail.vue
index aa3c01c..640a3f6 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/components/proDetail.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/components/proDetail.vue
@@ -44,7 +44,7 @@
<el-table-column label="CAS号" prop="productBasic.cas" align="center" />
<el-table-column label="厂家" prop="productBasic.manufacturer" align="center" />
<el-table-column label="供应商" prop="productBasic.supplier" align="center" />
- <el-table-column label="批号" prop="batchNo" align="center" width="120" />
+ <el-table-column label="二维码编号" prop="code" align="center" width="120" />
<el-table-column label="危险性质" prop="productBasic.productCharacter" align="center" />
<el-table-column label="最小包装" prop="productBasic.productSn" align="center" width="120">
<template #default="scope">
diff --git a/src/views/hazardousChemicals/electronicWarehouse/components/productTable.vue b/src/views/hazardousChemicals/electronicWarehouse/components/productTable.vue
index 084c11c..3c51d8f 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/components/productTable.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/components/productTable.vue
@@ -3,10 +3,10 @@
<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-input v-model="data.queryParams.name" placeholder="请输入品名" clearable></el-input>
+ <el-input v-model="data.queryParams.params.name" placeholder="请输入品名" clearable></el-input>
</el-form-item>
<el-form-item label="产品编号:" >
- <el-input v-model="data.queryParams.productSn" placeholder="请输入产品编号" clearable></el-input>
+ <el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
</el-form-item>
<el-form-item >
<el-button
@@ -35,15 +35,16 @@
<span>{{scope.row.productBasic.metering}}{{scope.row.productBasic.unit}} / {{scope.row.productBasic.minPackage == 0 ? '瓶' :scope.row.productBasic.minPackage == 1?'袋':scope.row.productBasic.minPackage == 2?'桶 ':scope.row.productBasic.minPackage == 3?'盒':scope.row.productBasic.minPackage == 4?'箱':'其他'}}</span>
</template>
</el-table-column>
- <el-table-column label="批号" prop="batchNo" align="center" width="120" />
+<!-- <el-table-column label="批号" prop="batchNo" align="center" width="120" />-->
<el-table-column label="当前库存" prop="stock" align="center" width="120" />
<el-table-column label="所在仓库" prop="warehouseName" align="center" >
</el-table-column>
- <el-table-column label="状态" prop="state" align="center">
- <template #default="scope">
- <span>{{scope.row.state === 0 ? '未入库' : '已入库'}}</span>
- </template>
- </el-table-column>
+ <el-table-column label="创建时间" prop="productBasic.createTime" align="center" width="120" />
+<!-- <el-table-column label="状态" prop="state" align="center">-->
+<!-- <template #default="scope">-->
+<!-- <span>{{scope.row.state === 0 ? '未入库' : '已入库'}}</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
<template #default="scope">
<el-button link type="primary" @click="getProRecord(scope.row)" >动库记录</el-button>
@@ -85,8 +86,10 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
},
total: 0,
dataList: []
@@ -126,8 +129,10 @@
data.queryParams = {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
}
getList()
}
diff --git a/src/views/hazardousChemicals/electronicWarehouse/components/rawDetail.vue b/src/views/hazardousChemicals/electronicWarehouse/components/rawDetail.vue
index ade8b00..a970615 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/components/rawDetail.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/components/rawDetail.vue
@@ -44,7 +44,7 @@
<el-table-column label="CAS号" prop="hazmatBasic.cas" align="center" />
<el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center" />
<el-table-column label="供应商" prop="hazmatBasic.supplier" align="center" />
- <el-table-column label="批号" prop="batchNo" align="center" width="120" />
+ <el-table-column label="二维码编号" prop="code" align="center" width="120" />
<el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center" />
<el-table-column label="最小包装" prop="hazmatBasic.productSn" align="center" width="120">
<template #default="scope">
@@ -54,12 +54,12 @@
<el-table-column label="入库时间" prop="updateTime" align="center" />
<el-table-column label="当前状态" prop="state" align="center">
<template #default="scope">
- <span>{{scope.row.state ===0 ? '在库' : scope.row.state === 1 ? '领用归还在库' :scope.row.state === 2? '领用中': scope.row.state === 3 ? '已用完' : scope.row.state === 4 ? '标签作废' : ''}}</span>
+ <span>{{scope.row.state ===0 || scope.row.state === 1 ? '在库' : scope.row.state === 2 ? '领用中': scope.row.state === 3 ? '已用完' : scope.row.state === 4 ? '标签作废' : ''}}</span>
</template>
</el-table-column>
<el-table-column label="在库余量" prop="remaining" align="center" >
<template #default="scope">
- <span v-if="scope.row.state === 0">{{scope.row.remaining}}{{scope.row.hazmatBasic.unit}}</span>
+ <span v-if="scope.row.state === 0 || scope.row.state === 1">{{scope.row.remaining}}{{scope.row.hazmatBasic.unit}}</span>
<span v-else>—</span>
</template>
</el-table-column>
diff --git a/src/views/hazardousChemicals/electronicWarehouse/components/rawTable.vue b/src/views/hazardousChemicals/electronicWarehouse/components/rawTable.vue
index 6b2befb..0be5cc3 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/components/rawTable.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/components/rawTable.vue
@@ -3,10 +3,10 @@
<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-input v-model="data.queryParams.name" placeholder="请输入品名" clearable></el-input>
+ <el-input v-model="data.queryParams.params.name" placeholder="请输入品名" clearable></el-input>
</el-form-item>
<el-form-item label="产品编号:" >
- <el-input v-model="data.queryParams.productSn" placeholder="请输入产品编号" clearable></el-input>
+ <el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
</el-form-item>
<el-form-item >
<el-button
@@ -35,17 +35,18 @@
<span>{{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}} / {{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="batchNo" align="center" width="120" />
+<!-- <el-table-column label="批号" prop="batchNo" align="center" width="120" />-->
<el-table-column label="当前库存" prop="stock" align="center" width="120" />
<el-table-column label="不完整归还" prop="missStock" align="center" width="120" />
<el-table-column label="安全库存" prop="hazmatBasic.safeNum" align="center" width="120" />
<el-table-column label="所在仓库" prop="warehouseName" align="center" >
</el-table-column>
- <el-table-column label="状态" prop="state" align="center">
- <template #default="scope">
- <span>{{scope.row.state === 0 ? '未入库' : '已入库'}}</span>
- </template>
- </el-table-column>
+ <el-table-column label="创建时间" prop="hazmatBasic.createTime" align="center" width="120" />
+<!-- <el-table-column label="状态" prop="state" align="center">-->
+<!-- <template #default="scope">-->
+<!-- <span>{{scope.row.state === 0 ? '未入库' : '已入库'}}</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
<template #default="scope">
<el-button link type="primary" @click="getProRecord(scope.row)" >动库记录</el-button>
@@ -88,8 +89,10 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
},
total: 0,
dataList: []
@@ -135,8 +138,10 @@
data.queryParams = {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
}
getList()
}
@@ -184,7 +189,7 @@
}
for (var i = 0; i <= arr.length; i++) {
if (arr[i] == row.basicId) {
- if (columnIndex === 9 || columnIndex === 10 || columnIndex === 11){
+ if (columnIndex === 8 || columnIndex === 9 || columnIndex === 10){
return { backgroundColor: '#FFD7CC !important',color:' red' }
}
diff --git a/src/views/hazardousChemicals/electronicWarehouse/index.vue b/src/views/hazardousChemicals/electronicWarehouse/index.vue
index afd3f77..a83ed85 100644
--- a/src/views/hazardousChemicals/electronicWarehouse/index.vue
+++ b/src/views/hazardousChemicals/electronicWarehouse/index.vue
@@ -1,11 +1,11 @@
<template>
<div>
- <el-tabs v-model="data.activeName" class="demo-tabs" @click="clickTab" style="margin: 10px 10px">
+ <el-tabs v-model="data.activeName" class="demo-tabs" @tab-click="clickTab" style="margin: 10px 10px">
+ <el-tab-pane label="危化品" name="rawMaterial">
+ <raw-table ref="rawRef"></raw-table>
+ </el-tab-pane>
<el-tab-pane label="成品" name="finishPro" v-if="showFinishPro">
<pro-table ref="proRef"></pro-table>
- </el-tab-pane>
- <el-tab-pane label="原材料" name="rawMaterial">
- <raw-table ref="rawRef"></raw-table>
</el-tab-pane>
</el-tabs>
</div>
@@ -26,7 +26,7 @@
},
total: 0,
dataList: [],
- activeName: 'finishPro'
+ activeName: 'rawMaterial'
})
onMounted(()=>{
@@ -34,7 +34,7 @@
if(Cookies.get('type')){
data.activeName = showFinishPro.value && Cookies.get('type') ==='pro' ? 'finishPro' : 'rawMaterial'
}else{
- data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
+ // data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
}
})
diff --git a/src/views/hazardousChemicals/finishedBasicInfo/components/finishedBasicDialog.vue b/src/views/hazardousChemicals/finishedBasicInfo/components/finishedBasicDialog.vue
index 4536556..d91469c 100644
--- a/src/views/hazardousChemicals/finishedBasicInfo/components/finishedBasicDialog.vue
+++ b/src/views/hazardousChemicals/finishedBasicInfo/components/finishedBasicDialog.vue
@@ -34,10 +34,35 @@
<el-input v-model.trim="state.form.cas" placeholder="请输入CAS"></el-input>
</el-form-item>
<el-form-item label="试剂类型:" prop="productType">
- <el-input v-model.trim="state.form.productType" placeholder="请输入试剂类型"></el-input>
+ <el-select
+ v-model="state.form.productType"
+ placeholder="请选择试剂类型"
+ clearable
+ style="width: 100%"
+ >
+ <el-option
+ v-for="dict in state.hazmatTypeList"
+ :key="dict.id"
+ :label="dict.name"
+ :value="dict.name"
+ />
+ </el-select>
</el-form-item>
<el-form-item label="危险性质:" prop="productCharacter">
- <el-input v-model.trim="state.form.productCharacter" placeholder="请输入危险性质"></el-input>
+ <el-select
+ v-model="state.characterList"
+ placeholder="请选择危险性质"
+ clearable
+ multiple
+ style="width: 100%"
+ >
+ <el-option
+ v-for="dict in state.hazmatCharacterList"
+ :key="dict.id"
+ :label="dict.name"
+ :value="dict.name"
+ />
+ </el-select>
</el-form-item>
<el-form-item label="供应商:" prop="supplier">
<el-input v-model.trim="state.form.supplier" placeholder="请输入供应商"></el-input>
@@ -167,6 +192,7 @@
threshold: null,
kind: ''
},
+ characterList: [],
formRules:{
name: [{ required: true, trigger: "blur", message: '请输入危化品名称', }],
cas: [{ required: true, message: '请输入cas', trigger: 'blur' }],
@@ -234,14 +260,66 @@
name: '其他'
},
],
+ hazmatTypeList: [
+ {
+ id: 0,
+ name: '耗材'
+ },
+ {
+ id: 1,
+ name: '液态'
+ },
+ {
+ id: 2,
+ name: '液体'
+ },
+ {
+ id: 3,
+ name: '气态'
+ },
+ {
+ id: 4,
+ name: '固态'
+ },
+ ],
+ hazmatCharacterList: [
+ {
+ id: 0,
+ name: '腐蚀品'
+ },
+ {
+ id: 1,
+ name: '氧化品'
+ },
+ {
+ id: 2,
+ name: '有毒品'
+ },
+ {
+ id: 3,
+ name: '易燃品'
+ },
+ {
+ id: 4,
+ name: '非易燃品'
+ },
+ ],
unitOptions: [
{
value: 'g',
label: 'g',
},
{
+ value: 'mg',
+ label: 'mg',
+ },
+ {
value: 'ml',
label: 'ml',
+ },
+ {
+ value: 'l',
+ label: 'l',
},
]
})
@@ -252,12 +330,14 @@
title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑' : '' ;
if(type === 'edit' || type === 'distribute') {
state.form = value;
+ state.characterList = state.form.productCharacter.split(',')
startUsername.value = value.productSn
}
dialogVisible.value = true;
}
const onSubmit = async () => {
+ state.form.productCharacter = state.characterList.join(",")
const valid = await busRef.value.validate();
if(valid){
if(title.value === '新增'){
@@ -319,6 +399,7 @@
threshold: null,
kind: ''
}
+ state.characterList = []
}
defineExpose({
openDialog
diff --git a/src/views/hazardousChemicals/finishedBasicInfo/index.vue b/src/views/hazardousChemicals/finishedBasicInfo/index.vue
index 3612080..dc13a2e 100644
--- a/src/views/hazardousChemicals/finishedBasicInfo/index.vue
+++ b/src/views/hazardousChemicals/finishedBasicInfo/index.vue
@@ -64,7 +64,7 @@
<el-table-column label="危险性质" prop="productCharacter" align="center"/>
<el-table-column label="供应商" prop="supplier" align="center"/>
<el-table-column label="厂家" prop="manufacturer" align="center"/>
- <el-table-column label="规格" prop="productCharacter" align="center"/>
+ <el-table-column label="规格" prop="productFormat" align="center"/>
<el-table-column label="包装" prop="metering" align="center">
<template #default="scope">
<span>{{scope.row.metering}}{{scope.row.unit}}</span>
@@ -123,23 +123,23 @@
dataList: [],
typeList: [
{
- id: 1,
+ id: 0,
name: '试剂'
},
{
- id: 2,
+ id: 1,
name: '原料'
},
{
- id: 3,
+ id: 2,
name: '半成品'
},
{
- id: 4,
+ id: 3,
name: '成品'
},
{
- id: 5,
+ id: 4,
name: '其他'
},
]
diff --git a/src/views/hazardousChemicals/homePage/index.vue b/src/views/hazardousChemicals/homePage/index.vue
index ea7e813..b2975db 100644
--- a/src/views/hazardousChemicals/homePage/index.vue
+++ b/src/views/hazardousChemicals/homePage/index.vue
@@ -43,65 +43,51 @@
</el-row>
</div>
<div>
- <el-row :gutter="20" justify="space-between" style="margin-bottom: 15px">
- <el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24">
- <el-card>
- <span style="font-size: 18px;font-weight: 600;margin-left: 45%">超期预警</span>
- <el-table height="320" v-loading="data.wloading" :data="data.warningData" style="margin-top: 15px">
- <el-table-column label="序号" type="index" align="center" width="80" />
- <el-table-column label="生成时间" prop="createTime" align="center" />
- <el-table-column label="领用人" prop="createName" align="center" />
- <el-table-column label="领用时间" prop="useTime" align="center" />
- <el-table-column label="最后流转时间" prop="updateTime" align="center" width="180" />
- <el-table-column label="处理时间" prop="handleTime" align="center" />
- <el-table-column label="状态" prop="name" align="center" >
- <template #default="scope">
- <span>{{scope.row.state === 0 ? '未处理':'已处理'}}</span>
- </template>
- </el-table-column>
- </el-table>
- <pagination
- :total="data.wTotal"
- v-model:page="data.warningQueryParams.pageNum"
- v-model:limit="data.warningQueryParams.pageSize"
- @pagination="getWarningData"
- />
+ <el-row :gutter="20" justify="space-between" >
+ <el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24" style="margin-bottom: 15px">
+ <el-card style="height: 500px;overflow: auto">
+ <span style="font-size: 18px;font-weight: 600;margin-bottom: -5px">危化品动态</span>
+ <el-divider style="margin: 15px 0"></el-divider>
+ <div style="padding: 10px;" v-if="data.hazmatData && data.hazmatData.length >0">
+ <div v-for="(item,index) in data.hazmatData" :key="index" style="display: flex;flex-direction: column">
+ <div style="display: flex">
+ <img :src="avator" style="width: 25px;height: 25px" />
+ <div style="display: flex;flex-direction: column;margin-left: 20px">
+ <span style="font-size: 16px;font-weight: 600">{{item.description}}
+ <span style="color: #03752e" v-if="item.num > 0">{{item.num >0 ? '+' + item.num: item.num}}{{item.unit}}</span>
+ <span style="color: #f6828e" v-else>{{item.num}}{{item.unit}}</span>
+ </span>
+ <span style="font-size: 14px;color: #8a8f97;margin-top: 5px">{{item.updateTime}}</span>
+ </div>
+ </div>
+ <el-divider style="margin: 15px 0" v-if="index != data.hazmatData.length-1"></el-divider>
+ </div>
+ </div>
+ <div v-else>
+ <el-empty description="暂无数据" style="margin-top: 10%"></el-empty>
+ </div>
</el-card>
-
</el-col>
<el-col :xl="12" :lg="12" :md="24" :sm="24" :xs="24">
- <el-card>
- <span style="font-size: 18px;font-weight: 600;margin-left: 45%">危化品使用</span>
- <el-table height="320" v-loading="data.hloading" :data="data.hazmatData" style="margin-top: 15px">
- <el-table-column label="名称" prop="name" align="center" />
- <el-table-column label="产品编号" prop="hazmatBasic.productSn" 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"/>
- <el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center"/>
- <el-table-column label="规格" prop="hazmatBasic.hazmatCharacter" align="center"/>
- <el-table-column label="包装" prop="hazmatBasic.metering" align="center">
- <template #default="scope">
- <span>{{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}}</span>
- </template>
- </el-table-column>
- <el-table-column label="含税售价" prop="hazmatBasic.price" align="center"/>
- <el-table-column label="每箱数量" prop="hazmatBasic.perBox" align="center"/>
- <el-table-column label="最小包装类型" prop="minPackage" align="center" width="220">
- <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="hazmatBasic.safeNum" align="center"/>
- <el-table-column label="超期阈值(小时)" prop="hazmatBasic.threshold" align="center" width="220"/>
- </el-table>
- <pagination
- :total="data.hTotal"
- v-model:page="data.hazmatQueryParams.pageNum"
- v-model:limit="data.hazmatQueryParams.pageSize"
- @pagination="getHazmatUseData"
- />
+ <el-card style="height: 500px;overflow: auto">
+ <span style="font-size: 18px;font-weight: 600;margin-bottom: -5px">超期预警</span>
+ <el-divider style="margin: 15px 0"></el-divider>
+ <div style="padding: 10px;" v-if="data.warningData && data.warningData.length >0">
+ <div v-for="(item,index) in data.warningData" :key="index" style="display: flex;flex-direction: column">
+ <div style="display: flex">
+ <img :src="avator" style="width: 25px;height: 25px" />
+ <div style="display: flex;flex-direction: column;margin-left: 20px">
+ <span style="font-size: 16px;font-weight: 600">{{item.description}}
+ </span>
+ <span style="font-size: 14px;color: #8a8f97;margin-top: 5px">{{item.useTime}}</span>
+ </div>
+ </div>
+ <el-divider style="margin: 15px 0" v-if="index != data.hazmatData.length-1"></el-divider>
+ </div>
+ </div>
+ <div v-else>
+ <el-empty description="暂无数据" style="margin-top: 10%"></el-empty>
+ </div>
</el-card>
</el-col>
</el-row>
@@ -110,7 +96,7 @@
</template>
<script setup>
import { CountTo } from 'vue3-count-to'
-import img1 from '@/assets/images/file.png'
+import avator from '@/assets/images/avator.png'
import hazmat from '@/assets/logo/hazmat.png'
import warehouse from '@/assets/logo/warehouse.png'
import warning from '@/assets/logo/warning1.png'
@@ -121,6 +107,7 @@
import {ElMessage} from "element-plus";
import {getEntryData, getHazmatUseList, getHoData, getMaxUseData, getUseData} from "@/api/hazardousChemicals/count";
import {getWarning} from "@/api/hazardousChemicals/warning";
+import {getRawFlow} from "@/api/hazardousChemicals/rawRecord";
const data = reactive({
cardList: [
{
@@ -153,6 +140,7 @@
},
],
maxUseList: [],
+ maxUseName: [],
useXData: [],
useYData: [],
entryXData: [],
@@ -160,7 +148,7 @@
warningData: [],
warningQueryParams: {
pageNum: 1,
- pageSize: 5
+ pageSize: 10
},
wTotal: 0,
wloading: false,
@@ -170,7 +158,7 @@
pageNum: 1,
pageSize: 10
},
- hazmatData: []
+ hazmatData: [],
});
const myChart = shallowRef(null)
@@ -186,25 +174,35 @@
await useData()
await maxUseData()
await getWarningData()
- await getHazmatUseData()
+ await getHazmatFlowData()
});
const getWarningData = async () => {
data.wloading = true
const res = await getWarning(data.warningQueryParams)
if(res.code == 200){
- data.warningData =res.data.list
- data.wTotal = res.data.total
+ data.warningData =res.data.list.map(item => {
+ return {
+ ...item,
+ description: `${item.createName} 领用了 ${item.hazmatBasic.name} 状态:${item.state ==0?'未处理':'已处理' }`
+ }
+ })
}else{
ElMessage.warning(res.message)
}
data.wloading = false
}
-const getHazmatUseData = async () => {
+const getHazmatFlowData = async () => {
data.hloading = true
- const res = await getHazmatUseList(data.hazmatQueryParams)
+ const res = await getRawFlow(data.hazmatQueryParams)
if(res.code == 200){
- data.hazmatData =res.data.list
- data.hTotal = res.data.total
+ data.hazmatData =res.data.list.map(item => {
+ return {
+ ...item,
+ unit:item.hazmatBasic.unit,
+ description: `${item.user.departName ? item.user.departName +'部门' : ''} ${item.user.name} 进行了 ${item.state ==0?'批量导入': item.state ==1?'取用' :item.state ==2?'归还':item.state ==3?'标签作废' :''} ${item.hazmatBasic.name}`
+ }
+ })
+ console.log('data.hazmatData',data.hazmatData)
}else{
ElMessage.warning(res.message)
}
@@ -250,6 +248,7 @@
name: item.name
}
})
+ data.maxUseName = res.data.map(item => item.name)
await getPieChart()
}else{
ElMessage.warning(res.message)
@@ -260,34 +259,39 @@
myChart.value.dispose();
}
myChart.value = echarts.init(document.getElementById(pieChart.value));
- const option = {
- title: {
- text: '近一周频繁使用的危化品量',
- left: 'center'
- },
- tooltip: {
- trigger: 'item'
- },
- legend: {
- orient: 'vertical',
- left: 'left'
- },
- series: [
- {
- name: 'Access From',
- type: 'pie',
- radius: '50%',
- data: data.maxUseList,
- emphasis: {
- itemStyle: {
- shadowBlur: 10,
- shadowOffsetX: 0,
- shadowColor: 'rgba(0, 0, 0, 0.5)'
- }
+ let option;
+ option = {
+ title: {
+ text: '近一周频繁使用的危化品量',
+ left: 'center'
+ },
+ tooltip: {
+ trigger: 'item'
+ },
+ legend: {
+ orient: 'vertical',
+ left: 'left'
+ },
+ series: [
+ {
+ name: '',
+ type: 'pie',
+ radius: '50%',
+ data: data.maxUseList,
+ emphasis: {
+ itemStyle: {
+ shadowBlur: 10,
+ shadowOffsetX: 0,
+ shadowColor: 'rgba(0, 0, 0, 0.5)'
+ }
+ },
+ // showEmptyCircle: false,
}
- }
- ]
- };
+ ]
+ };
+
+
+
// 使用刚指定的配置项和数据显示图表。
myChart.value.setOption(option,true);
//自适应宽度
@@ -422,7 +426,21 @@
}
}
-
+ ::-webkit-scrollbar {
+ width: 5px;
+ height: 5px;
+ background-color: #ffffff;
+ opacity: 0;
+ }
+ ::-webkit-scrollbar-track {
+ border-radius: 10px;
+ background-color: #ffffff;
+ }
+ ::-webkit-scrollbar-thumb {
+ border-radius: 10px;
+ /*-webkit-box-shadow: inset 0 0 6px rgba(154,154,154,.3);*/
+ background-color: #ffffff;
+ }
}
</style>
diff --git a/src/views/hazardousChemicals/overdueWarning/index.vue b/src/views/hazardousChemicals/overdueWarning/index.vue
index 4b06f26..18e9967 100644
--- a/src/views/hazardousChemicals/overdueWarning/index.vue
+++ b/src/views/hazardousChemicals/overdueWarning/index.vue
@@ -72,6 +72,7 @@
import {getCurrentInstance, onMounted, onUnmounted, reactive, ref, toRefs} from "vue";
import {ElMessage, ElMessageBox} from "element-plus";
import {delWarning, getWarning, handleWarning} from "@/api/hazardousChemicals/warning";
+import {unWarningCount} from "@/api/hazardousChemicals/count";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const dialogRef = ref();
@@ -90,6 +91,7 @@
const classHourRef = ref();
onMounted(()=>{
getList()
+ getUnCount()
})
onUnmounted(()=>{
@@ -102,10 +104,20 @@
if(res.code == 200){
data.dataList = res.data.list
data.total = res.data.total
+
}else{
ElMessage.warning(res.message)
}
loading.value = false
+}
+const getUnCount = async () => {
+ const res = await unWarningCount()
+ if(res.code == 200){
+ data.untreatedTotal = res.data
+ }else{
+ ElMessage.warning(res.message)
+ }
+
}
const openDialog = (type, value) => {
@@ -120,6 +132,7 @@
state: null
}
getList()
+ getUnCount()
}
const handleDelete = (val) => {
ElMessageBox.confirm(
@@ -135,6 +148,7 @@
if(res.code == 200){
ElMessage.success('数据删除成功')
await getList()
+ await getUnCount()
}else{
ElMessage.warning(res.message)
}
@@ -151,10 +165,17 @@
type: 'warning',
})
.then( async() => {
- const res = await handleWarning(val.id)
+ console.log("val",val)
+ const param = {
+ id: val.id,
+ state: 1,
+ companyId: val.companyId,
+ }
+ const res = await handleWarning(param)
if(res.code == 200){
ElMessage.success('处理成功')
await getList()
+ await getUnCount()
}else{
ElMessage.warning(res.message)
}
diff --git a/src/views/hazardousChemicals/systemManage/user/components/userDialog.vue b/src/views/hazardousChemicals/systemManage/user/components/userDialog.vue
index 50def4c..fe4088d 100644
--- a/src/views/hazardousChemicals/systemManage/user/components/userDialog.vue
+++ b/src/views/hazardousChemicals/systemManage/user/components/userDialog.vue
@@ -387,6 +387,7 @@
superRef.value.clearValidate();
superRef.value.resetFields()
dialogVisible.value = false;
+ emit('getList')
}
const selectValue = (val) => {
diff --git a/src/views/hazardousChemicals/systemManage/user/index.vue b/src/views/hazardousChemicals/systemManage/user/index.vue
index 6908c8a..f845f60 100644
--- a/src/views/hazardousChemicals/systemManage/user/index.vue
+++ b/src/views/hazardousChemicals/systemManage/user/index.vue
@@ -46,7 +46,7 @@
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" >
<template #default="scope">
<el-button link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button>
- <el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button>
+ <el-button link type="danger" v-if="!isAdmin" @click="handleDelete(scope.row)">删除</el-button>
<el-button link type="primary" @click="openDialog('pwd',scope.row)">修改密码</el-button>
</template>
</el-table-column>
@@ -109,10 +109,13 @@
});
+const isAdmin = ref(false)
const { queryParams, total, dataList } = toRefs(data);
const userInfo = ref()
onMounted(()=>{
userInfo.value = JSON.parse(Cookies.get('userInfo'))
+ isAdmin.value = userInfo.value.userType === 0;
+
getList()
})
diff --git a/src/views/hazardousChemicals/warehouseManage/components/addProDialog.vue b/src/views/hazardousChemicals/warehouseManage/components/addProDialog.vue
index db362a7..2ef85b4 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/addProDialog.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/addProDialog.vue
@@ -51,7 +51,7 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="最小包装数量:" prop="num" >
+ <el-form-item label="数量:" prop="num" >
<el-input v-model.trim="state.form.num" oninput="value=value.replace(/^\.+|[^\d]/g,'')" placeholder="请输入最小包装数量" @input="changeNum"></el-input>
</el-form-item>
<el-form-item label="批号:" prop="batchNo" >
@@ -97,7 +97,7 @@
},
formRules:{
- num: [{ required: true, trigger: "blur", message: '请输入最小包装数量' }],
+ num: [{ required: true, trigger: "blur", message: '请输入数量' }],
warehouseName: [{ required: true, trigger: "blur", message: '请选择入库仓库' }],
basicName: [{ required: true, trigger: "blur", message: '请选择入库成品' }],
// batchNo: [{ required: true, trigger: "blur", message: '请输入批号' }]
@@ -111,7 +111,7 @@
const openDialog = async (type, value) => {
await getProBasic("")
await getWareHouseList("")
-
+ state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑':'' ;
if(type === 'edit' ) {
state.form = value;
@@ -165,9 +165,9 @@
const valid = await busRef.value.validate();
if(valid){
if(title.value === '新增'){
- if(state.form.batchNo == ''){
- state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
- }
+ // if(state.form.batchNo == ''){
+ // state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
+ // }
const {id, ...data} = JSON.parse(JSON.stringify(state.form))
const res = await addProductRecord(data)
if(res.code === 200){
@@ -183,9 +183,9 @@
reset();
dialogVisible.value = false;
}else if(title.value === '编辑'){
- if(state.form.batchNo == ''){
- state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
- }
+ // if(state.form.batchNo == ''){
+ // state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
+ // }
const {...data} = JSON.parse(JSON.stringify(state.form))
const res = await editProductRecord(data)
if(res.code === 200){
diff --git a/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue b/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue
index 2bc3776..42daf42 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/addRawDialog.vue
@@ -51,7 +51,7 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="最小包装数量:" prop="num" >
+ <el-form-item label="数量:" prop="num" >
<el-input v-model.trim="state.form.num" oninput="value=value.replace(/^\.+|[^\d]/g,'')" placeholder="请输入最小包装数量" @input="changeNum"></el-input>
</el-form-item>
<el-form-item label="批号:" prop="batchNo" >
@@ -103,7 +103,7 @@
},
formRules:{
- num: [{ required: true, trigger: "blur", message: '请输入最小包装数量' }],
+ num: [{ required: true, trigger: "blur", message: '请输入数量' }],
warehouseName: [{ required: true, trigger: "blur", message: '请选择入库仓库' }],
basicName: [{ required: true, trigger: "blur", message: '请选择入库成品' }],
// batchNo: [{ required: true, trigger: "blur", message: '请输入批号' }]
@@ -117,6 +117,7 @@
const openDialog = async (type, value) => {
await getRawBasicList("")
await getWareHouseList("")
+ state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
title.value = type === 'add' ? '新增' : type ==='edit' ? '编辑':'' ;
if(type === 'edit' ) {
state.form = value;
@@ -170,9 +171,9 @@
const valid = await busRef.value.validate();
if(valid){
if(title.value === '新增'){
- if(state.form.batchNo == ''){
- state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
- }
+ // if(state.form.batchNo == ''){
+ // state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
+ // }
const {id, ...data} = JSON.parse(JSON.stringify(state.form))
const res = await addRawRecord(data)
if(res.code === 200){
@@ -188,9 +189,9 @@
reset();
dialogVisible.value = false;
}else if(title.value === '编辑'){
- if(state.form.batchNo == ''){
- state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
- }
+ // if(state.form.batchNo == ''){
+ // state.form.batchNo = moment(new Date()).format("YYYY-MM-DD")
+ // }
const {...data} = JSON.parse(JSON.stringify(state.form))
const res = await editRawRecord(data)
if(res.code === 200){
diff --git a/src/views/hazardousChemicals/warehouseManage/components/printCode.vue b/src/views/hazardousChemicals/warehouseManage/components/printCode.vue
index b3ed378..cfb3a63 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/printCode.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/printCode.vue
@@ -8,6 +8,24 @@
:close-on-press-escape="false"
:close-on-click-modal="false"
>
+ <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-input v-model="state.queryParams.code" placeholder="请输入条码编号" ></el-input>
+ </el-form-item>
+ <el-form-item >
+ <el-button
+ type="primary"
+ @click="getList"
+ >查询</el-button>
+ <el-button
+ type="primary"
+ plain
+ @click="reset"
+ >重置</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
<el-table v-loading="state.loading" :data="state.dataList" :border="true" :show-header="false" height="550" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column align="center" >
@@ -63,6 +81,7 @@
pageSize: 5,
warehouseId: null,
basicId: null,
+ code: ''
},
chooseList: []
@@ -103,6 +122,7 @@
pageSize: 5,
warehouseId: null,
basicId: null,
+ code: ''
}
state.total = 0
state.chooseList = []
@@ -200,6 +220,10 @@
:deep(.el-form .el-form-item__label) {
font-size: 15px;
}
+ :deep(.el-dialog__body) {
+ padding: 10px 20px 0 20px;
+ }
+
.file {
display: flex;
flex-direction: column;
diff --git a/src/views/hazardousChemicals/warehouseManage/components/proDetail.vue b/src/views/hazardousChemicals/warehouseManage/components/proDetail.vue
new file mode 100644
index 0000000..ebc966e
--- /dev/null
+++ b/src/views/hazardousChemicals/warehouseManage/components/proDetail.vue
@@ -0,0 +1,176 @@
+<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-select
+ v-model="data.queryParams.state"
+ placeholder="请选择状态"
+ style="width: 240px"
+ >
+ <el-option
+ v-for="item in data.typeList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item >
+ <el-button
+ type="primary"
+ @click="getList"
+ >查询</el-button>
+ <el-button
+ type="primary"
+ plain
+ @click="reset"
+ >重置</el-button>
+ </el-form-item>
+ </el-form>
+ <div>
+ <el-button
+ type="primary"
+ plain
+ @click="back"
+ >返回</el-button>
+ </div>
+ </div>
+ <!-- 表格数据 -->
+ <el-table v-loading="loading" :data="data.dataList" :border="true">
+ <el-table-column label="序号" type="index" align="center" width="80" />
+ <el-table-column label="品名" prop="productBasic.name" align="center" />
+ <el-table-column label="产品编号" prop="productBasic.productSn" align="center" />
+ <el-table-column label="CAS号" prop="productBasic.cas" align="center" />
+ <el-table-column label="厂家" prop="productBasic.manufacturer" align="center" />
+ <el-table-column label="供应商" prop="productBasic.supplier" align="center" />
+ <el-table-column label="二维码编号" prop="code" align="center" width="120" />
+ <el-table-column label="危险性质" prop="productBasic.productCharacter" align="center" />
+ <el-table-column label="最小包装" prop="productBasic.productSn" align="center" width="120">
+ <template #default="scope">
+ <span>{{scope.row.productBasic.metering}}{{scope.row.productBasic.unit}} / {{scope.row.productBasic.minPackage == 0 ? '瓶' :scope.row.productBasic.minPackage == 1?'袋':scope.row.productBasic.minPackage == 2?'桶 ':scope.row.productBasic.minPackage == 3?'盒':scope.row.productBasic.minPackage == 4?'箱':'其他'}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="入库时间" prop="updateTime" align="center" />
+ <el-table-column label="当前状态" prop="state" align="center">
+ <template #default="scope">
+ <span>{{scope.row.state ===0 ? '在库' : scope.row.state ===4 ? '标签作废' : scope.row.state ===5 ? '销售' : ''}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="在库余量" prop="remaining" align="center" >
+ <template #default="scope">
+ <span v-if="scope.row.state === 0">{{scope.row.remaining}}{{scope.row.productBasic.unit}}</span>
+ <span v-else>—</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="所在仓库" prop="warehouseName" align="center" />
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
+ <template #default="scope">
+ <el-button link type="primary" @click="viewQR(scope.row)">查看二维码</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ v-show="data.total > 0"
+ :total="data.total"
+ v-model:page="data.queryParams.pageNum"
+ v-model:limit="data.queryParams.pageSize"
+ @pagination="getList"
+ />
+ <viewQRcode ref="dialogRef" @getList="getList"></viewQRcode>
+ </div>
+</template>
+
+<script setup>
+import {nextTick, onMounted, reactive, ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+import {
+ getWhProDetail
+} from "@/api/hazardousChemicals/productRecord";
+import viewQRcode from '@/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue'
+import {ElMessage, ElMessageBox} from "element-plus";
+import Cookies from "js-cookie";
+const route = useRoute()
+const router = useRouter();
+const dialogRef = ref();
+const flowRef = ref();
+
+const dialogVisible = ref(false)
+const data = reactive({
+ queryParams: {
+ entryId: null,
+ state: null,
+ pageNum: 1,
+ pageSize: 10,
+ },
+ total: 0,
+ dataList: [],
+ isAdmin: false,
+ typeList: [
+ {
+ id: 0,
+ name: '在库'
+ },
+ {
+ id: 5,
+ name: '已销售'
+ },
+ {
+ id: 4,
+ name: '标签作废'
+ },
+
+ ]
+});
+const loading = ref(false);
+const backValue = ref({})
+onMounted(async ()=>{
+ if(route.query.val){
+ const val = JSON.parse(route.query.val)
+ backValue.value.pageNum =val.pageNum;
+ backValue.value.pageSize =val.pageSize;
+ data.queryParams.entryId =val.entryId
+ }
+ await getList()
+})
+const getList = async () => {
+ loading.value = true
+ const res = await getWhProDetail(data.queryParams)
+ if(res.code == 200){
+ data.dataList = res.data.list
+ data.total = res.data.total
+ }else{
+ ElMessage.warning(res.message)
+ }
+ loading.value = false
+}
+const reset = () => {
+ data.queryParams = {
+ entryId: null,
+ state: null,
+ pageNum: 1,
+ pageSize: 10,
+ }
+ getList()
+}
+
+const back = () =>{
+ const obj = {
+ pageNum: backValue.value.pageNum,
+ pageSize: backValue.value.pageSize,
+ }
+ const v = JSON.stringify(obj)
+ Cookies.set('typeWh','pro')
+ router.push({ path: "/warehouseManage", query: { val: v } });
+}
+const viewQR = (val) => {
+ dialogRef.value.openDialog('pro',val)
+}
+const handleClose = () => {
+ dialogVisible.value = false
+}
+</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 7668e43..8efee46 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/productTable.vue
@@ -11,10 +11,10 @@
>新增</el-button>
</el-form-item>
<el-form-item label="品名:" >
- <el-input v-model="data.queryParams.name" placeholder="请输入品名" clearable></el-input>
+ <el-input v-model="data.queryParams.params.name" placeholder="请输入品名" clearable></el-input>
</el-form-item>
<el-form-item label="产品编号:" >
- <el-input v-model="data.queryParams.productSn" placeholder="请输入产品编号" clearable></el-input>
+ <el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
</el-form-item>
<el-form-item >
<el-button
@@ -34,28 +34,31 @@
<el-table-column label="序号" type="index" align="center" width="80" />
<el-table-column label="品名" prop="productBasic.name" align="center" />
<el-table-column label="产品编号" prop="productBasic.productSn" align="center" />
- <el-table-column label="CAS号" prop="productBasic.cas" align="center" />
- <el-table-column label="厂家" prop="productBasic.manufacturer" align="center" />
- <el-table-column label="供应商" prop="productBasic.supplier" align="center" />
- <el-table-column label="危险性质" prop="productBasic.productCharacter" align="center" />
- <el-table-column label="最小包装" prop="productBasic.productSn" align="center" width="120">
- <template #default="scope">
- <span>{{scope.row.productBasic.metering}}{{scope.row.productBasic.unit}} / {{scope.row.productBasic.minPackage == 0 ? '瓶' :scope.row.productBasic.minPackage == 1?'袋':scope.row.productBasic.minPackage == 2?'桶 ':scope.row.productBasic.minPackage == 3?'盒':scope.row.productBasic.minPackage == 4?'箱':'其他'}}</span>
- </template>
- </el-table-column>
- <el-table-column label="批号" prop="batchNo" align="center" width="120" />
+<!-- <el-table-column label="CAS号" prop="productBasic.cas" align="center" />-->
+<!-- <el-table-column label="厂家" prop="productBasic.manufacturer" align="center" />-->
+<!-- <el-table-column label="供应商" prop="productBasic.supplier" align="center" />-->
+<!-- <el-table-column label="危险性质" prop="productBasic.productCharacter" align="center" />-->
+<!-- <el-table-column label="最小包装" prop="productBasic.productSn" align="center" width="120">-->
+<!-- <template #default="scope">-->
+<!-- <span>{{scope.row.productBasic.metering}}{{scope.row.productBasic.unit}} / {{scope.row.productBasic.minPackage == 0 ? '瓶' :scope.row.productBasic.minPackage == 1?'袋':scope.row.productBasic.minPackage == 2?'桶 ':scope.row.productBasic.minPackage == 3?'盒':scope.row.productBasic.minPackage == 4?'箱':'其他'}}</span>-->
+<!-- </template>-->
+<!-- </el-table-column>-->
+ <el-table-column label="数量" prop="num" align="center" width="120" />
<el-table-column label="所在仓库" prop="warehouseName" align="center" >
<template #default="scope">
<span>{{scope.row.warehouse.name}}</span>
</template>
</el-table-column>
+ <el-table-column label="批号" prop="batchNo" align="center" width="120" />
<el-table-column label="状态" prop="state" align="center">
<template #default="scope">
<span>{{scope.row.state === 0 ? '未入库' : '已入库'}}</span>
</template>
</el-table-column>
+ <el-table-column label="创建时间" prop="createTime" align="center" width="120" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
<template #default="scope">
+ <el-button link type="primary" v-if="scope.row.state == 1" @click="toDetail(scope.row)">查看详情</el-button>
<el-button link type="primary" v-if="scope.row.state == 0" @click="doEntry(scope.row)">入库</el-button>
<el-button link type="primary" v-if="scope.row.state == 1" @click="printCode(scope.row)">打印二维码</el-button>
<el-button link type="primary" @click="openDialog('edit',scope.row)" v-if="scope.row.state == 0">编辑</el-button>
@@ -88,16 +91,21 @@
getProWarehouseRecord
} from "@/api/hazardousChemicals/productRecord";
import {delRawRecord} from "@/api/hazardousChemicals/rawRecord";
+import {useRoute, useRouter} from "vue-router";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const dialogRef = ref();
const codeRef = ref();
+const router = useRouter()
+const route = useRoute()
const data = reactive({
queryParams: {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
},
total: 0,
dataList: []
@@ -130,8 +138,10 @@
data.queryParams = {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
}
getList()
}
@@ -178,6 +188,16 @@
codeRef.value.openDialog('pro',val);
}
+const toDetail = (val) => {
+ const obj = {
+ pageNum: data.queryParams.pageNum,
+ pageSize: data.queryParams.pageSize,
+ entryId: val.id,
+ }
+ const v = JSON.stringify(obj)
+ router.push({ path: "/whProDetail", query: { val: v } });
+}
+
defineExpose({
getList
});
diff --git a/src/views/hazardousChemicals/warehouseManage/components/rawDetail.vue b/src/views/hazardousChemicals/warehouseManage/components/rawDetail.vue
new file mode 100644
index 0000000..251aea3
--- /dev/null
+++ b/src/views/hazardousChemicals/warehouseManage/components/rawDetail.vue
@@ -0,0 +1,183 @@
+<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-select
+ v-model="data.queryParams.state"
+ placeholder="请选择状态"
+ style="width: 240px"
+ >
+ <el-option
+ v-for="item in data.typeList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item >
+ <el-button
+ type="primary"
+ @click="getList"
+ >查询</el-button>
+ <el-button
+ type="primary"
+ plain
+ @click="reset"
+ >重置</el-button>
+ </el-form-item>
+ </el-form>
+ <div>
+ <el-button
+ type="primary"
+ plain
+ @click="back"
+ >返回</el-button>
+ </div>
+ </div>
+ <!-- 表格数据 -->
+ <el-table v-loading="loading" :data="data.dataList" :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="产品编号" prop="hazmatBasic.productSn" align="center" />
+ <el-table-column label="CAS号" prop="hazmatBasic.cas" align="center" />
+ <el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center" />
+ <el-table-column label="供应商" prop="hazmatBasic.supplier" align="center" />
+ <el-table-column label="二维码编号" prop="code" align="center" width="120" />
+ <el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center" />
+ <el-table-column label="最小包装" prop="hazmatBasic.productSn" align="center" width="120">
+ <template #default="scope">
+ <span>{{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}} / {{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="updateTime" align="center" />
+ <el-table-column label="当前状态" prop="state" align="center">
+ <template #default="scope">
+ <span>{{scope.row.state ===0 || scope.row.state === 1 ? '在库' :scope.row.state === 2? '领用中': scope.row.state === 3 ? '已用完' : scope.row.state === 4 ? '标签作废' : ''}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="在库余量" prop="remaining" align="center" >
+ <template #default="scope">
+ <span v-if="scope.row.state === 0 || scope.row.state === 1">{{scope.row.remaining}}{{scope.row.hazmatBasic.unit}}</span>
+ <span v-else>—</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="所在仓库" prop="warehouseName" align="center" />
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
+ <template #default="scope">
+ <el-button link type="primary" @click="viewQR(scope.row)">查看二维码</el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+ <pagination
+ v-show="data.total > 0"
+ :total="data.total"
+ v-model:page="data.queryParams.pageNum"
+ v-model:limit="data.queryParams.pageSize"
+ @pagination="getList"
+ />
+ <viewQRcode ref="dialogRef" @getList="getList"></viewQRcode>
+ </div>
+</template>
+
+<script setup>
+import {nextTick, onMounted, reactive, ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+import {ElMessage, ElMessageBox} from "element-plus";
+import {disCardRaw, getRawDetail, getWhRawDetail} from "@/api/hazardousChemicals/rawRecord";
+import viewQRcode from '@/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue'
+import Cookies from "js-cookie";
+const route = useRoute()
+const router = useRouter();
+const dialogRef = ref();
+const dialogVisible = ref(false)
+const flowRef = ref();
+const data = reactive({
+ queryParams: {
+ entryId: null,
+ state: null,
+ pageNum: 1,
+ pageSize: 10,
+ },
+ total: 0,
+ dataList: [],
+ isAdmin: false,
+ typeList: [
+ {
+ id: 0,
+ name: '在库'
+ },
+ {
+ id: 1,
+ name: '领用归还在库'
+ },
+ {
+ id: 2,
+ name: '领用中'
+ },
+ {
+ id: 3,
+ name: '已用完'
+ },
+ {
+ id: 4,
+ name: '标签作废'
+ },
+
+ ]
+});
+const loading = ref(false);
+const backValue = ref({})
+onMounted(async ()=>{
+ if(route.query.val){
+ const val = JSON.parse(route.query.val)
+ backValue.value.pageNum =val.pageNum;
+ backValue.value.pageSize =val.pageSize;
+ data.queryParams.entryId =val.entryId
+ }
+ await getList()
+})
+const getList = async () => {
+ loading.value = true
+ const res = await getWhRawDetail(data.queryParams)
+ if(res.code == 200){
+ data.dataList = res.data.list
+ data.total = res.data.total
+ }else{
+ ElMessage.warning(res.message)
+ }
+ loading.value = false
+}
+const reset = () => {
+ data.queryParams = {
+ entryId: null,
+ state: null,
+ pageNum: 1,
+ pageSize: 10,
+ }
+ getList()
+}
+
+const back = () =>{
+ const obj = {
+ pageNum: backValue.value.pageNum,
+ pageSize: backValue.value.pageSize,
+ type: 'raw'
+ }
+ const v = JSON.stringify(obj)
+ Cookies.set('typeWh','raw')
+ router.push({ path: "/warehouseManage", query: { val: v } });
+}
+const viewQR = (val) => {
+ dialogRef.value.openDialog('raw',val)
+}
+const handleClose = () => {
+ dialogVisible.value = false
+}
+
+</script>
+
+<style scoped lang="scss">
+
+</style>
diff --git a/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue b/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue
index c2a47f9..e5f89b4 100644
--- a/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue
+++ b/src/views/hazardousChemicals/warehouseManage/components/rawTable.vue
@@ -11,10 +11,10 @@
>新增</el-button>
</el-form-item>
<el-form-item label="品名:" >
- <el-input v-model="data.queryParams.name" placeholder="请输入品名" clearable></el-input>
+ <el-input v-model="data.queryParams.params.name" placeholder="请输入品名" clearable></el-input>
</el-form-item>
<el-form-item label="产品编号:" >
- <el-input v-model="data.queryParams.productSn" placeholder="请输入产品编号" clearable></el-input>
+ <el-input v-model="data.queryParams.params.productSn" placeholder="请输入产品编号" clearable></el-input>
</el-form-item>
<el-form-item >
<el-button
@@ -34,33 +34,36 @@
<el-table-column label="序号" type="index" align="center" width="80" />
<el-table-column label="品名" prop="hazmatBasic.name" align="center" />
<el-table-column label="产品编号" prop="hazmatBasic.productSn" align="center" />
- <el-table-column label="CAS号" prop="hazmatBasic.cas" align="center" />
- <el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center" />
- <el-table-column label="供应商" prop="hazmatBasic.supplier" align="center" />
- <el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center" />
- <el-table-column label="最小包装" align="center" width="120">
- <template #default="scope">
- <span>
- {{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}} / {{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="batchNo" align="center" width="120" />
+<!-- <el-table-column label="CAS号" prop="hazmatBasic.cas" align="center" />-->
+<!-- <el-table-column label="厂家" prop="hazmatBasic.manufacturer" align="center" />-->
+<!-- <el-table-column label="供应商" prop="hazmatBasic.supplier" align="center" />-->
+<!-- <el-table-column label="危险性质" prop="hazmatBasic.hazmatCharacter" align="center" />-->
+<!-- <el-table-column label="最小包装" align="center" width="120">-->
+<!-- <template #default="scope">-->
+<!-- <span>-->
+<!-- {{scope.row.hazmatBasic.metering}}{{scope.row.hazmatBasic.unit}} / {{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="num" align="center" width="120" />
<el-table-column label="所在仓库" prop="warehouseName" align="center" >
<template #default="scope">
<span>{{scope.row.warehouse.name}}</span>
</template>
</el-table-column>
+ <el-table-column label="批号" prop="batchNo" align="center" width="120" />
<el-table-column label="状态" prop="state" align="center">
<template #default="scope">
<span>{{scope.row.state === 0 ? '未入库' : '已入库'}}</span>
</template>
</el-table-column>
+ <el-table-column label="创建时间" prop="createTime" align="center" width="120" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
<template #default="scope">
+ <el-button link type="primary" v-if="scope.row.state == 1" @click="toDetail(scope.row)">查看详情</el-button>
<el-button link type="primary" v-if="scope.row.state == 0" @click="doEntry(scope.row)">入库</el-button>
<el-button link type="primary" v-if="scope.row.state == 1" @click="printCode(scope.row)">打印二维码</el-button>
<el-button link type="primary" @click="openDialog('edit',scope.row)" v-if="scope.row.state == 0">编辑</el-button>
- <el-button link type="danger" @click="handleDelete(scope.row)" v-if="scope.row.state == 0">删除</el-button>
+ <el-button link type="danger" @click="handleDelete(scope.row)" v-if="scope.row.state == 0">删除</el-button>
</template>
</el-table-column>
</el-table>
@@ -84,16 +87,21 @@
import rawDialog from "./addRawDialog.vue";
import printcode from './printCode.vue'
import {delRawRecord, doEntryRaw, getRawRecord, getRawWarehouseRecord} from "@/api/hazardousChemicals/rawRecord";
+import {useRoute, useRouter} from "vue-router";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const dialogRef = ref();
const codeRef = ref();
+const router = useRouter()
+const route = useRoute()
const data = reactive({
queryParams: {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
},
total: 0,
dataList: []
@@ -126,8 +134,10 @@
data.queryParams = {
pageNum: 1,
pageSize: 10,
- name: '',
- productSn: ''
+ params :{
+ name: '',
+ productSn: ''
+ }
}
getList()
}
@@ -176,6 +186,17 @@
codeRef.value.openDialog('raw',val);
}
+const toDetail = (val) => {
+ const obj = {
+ pageNum: data.queryParams.pageNum,
+ pageSize: data.queryParams.pageSize,
+ entryId: val.id,
+ }
+ const v = JSON.stringify(obj)
+ router.push({ path: "/whRawDetail", query: { val: v } });
+}
+
+
defineExpose({
getList
});
diff --git a/src/views/hazardousChemicals/warehouseManage/index.vue b/src/views/hazardousChemicals/warehouseManage/index.vue
index 114e99c..a6514b9 100644
--- a/src/views/hazardousChemicals/warehouseManage/index.vue
+++ b/src/views/hazardousChemicals/warehouseManage/index.vue
@@ -1,20 +1,21 @@
<template>
<div>
- <el-tabs v-model="data.activeName" class="demo-tabs" @click="clickTab" style="margin: 10px 10px">
+ <el-tabs v-model="data.activeName" class="demo-tabs" @tab-click="clickTab" style="margin: 10px 10px">
+ <el-tab-pane label="危化品" name="rawMaterial">
+ <raw-table ref="rawRef"></raw-table>
+ </el-tab-pane>
<el-tab-pane label="成品" name="finishPro" v-if="showFinishPro">
<pro-table ref="proRef"></pro-table>
- </el-tab-pane>
- <el-tab-pane label="原材料" name="rawMaterial">
- <raw-table ref="rawRef"></raw-table>
</el-tab-pane>
</el-tabs>
</div>
</template>
<script setup>
-import {onMounted, reactive, ref} from "vue";
+import {onMounted, onUnmounted, reactive, ref} from "vue";
import proTable from './components/productTable.vue'
import rawTable from './components/rawTable.vue'
+import Cookies from "js-cookie";
const showFinishPro = ref(false)
const proRef = ref()
const rawRef = ref()
@@ -25,12 +26,19 @@
},
total: 0,
dataList: [],
- activeName: 'finishPro'
+ activeName: 'rawMaterial'
})
onMounted(()=>{
showFinishPro.value = true;
- data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
+ if(Cookies.get('typeWh')){
+ data.activeName = showFinishPro.value && Cookies.get('typeWh') ==='pro' ? 'finishPro' : 'rawMaterial'
+ }else{
+ // data.activeName = showFinishPro.value ? 'finishPro' : 'rawMaterial'
+ }
+})
+onUnmounted(()=>{
+ Cookies.remove('typeWh')
})
const clickTab = (tab,event) =>{
console.log('tab',data.activeName)
--
Gitblit v1.9.2