From facea208b2fc7c8c7a0d176df06305b866c6520f Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: Wed, 17 Jun 2026 08:56:00 +0800
Subject: [PATCH] 中科大支线—申购功能
---
src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addProDialog.vue | 10
src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/detail.vue | 331 ++++++++++
src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue | 6
src/views/hazardousChemicals/avoidWarningMenu/avoidWarning/components/avoidDialog.vue | 12
src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue | 10
src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawTable.vue | 4
src/views/hazardousChemicals/subscribeApplyManage/record/components/editDialog.vue | 57 -
src/views/hazardousChemicals/systemManage/warehouse/components/cupboard.vue | 12
src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawTable.vue | 12
src/views/hazardousChemicals/systemManage/warehouse/components/warehouseDialog.vue | 20
src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/productTable.vue | 2
src/views/hazardousChemicals/subscribeApplyManage/subscribe/index.vue | 105 ++
src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue | 10
src/api/hazardousChemicals/subscribeApply.js | 48 +
src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue | 105 +--
src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/index.vue | 334 ++++++++++
src/views/tool/gen/basicInfoForm.vue | 2
src/views/hazardousChemicals/subscribeApplyManage/subscribe/components/editDialog.vue | 96 +-
src/views/hazardousChemicals/systemManage/warehouse/index.vue | 10
src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addRawDialog.vue | 10
src/router/index.js | 70 ++
src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue | 8
src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/orderDialog.vue | 301 +++++++++
src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/productTable.vue | 12
src/views/hazardousChemicals/subscribeApplyManage/record/index.vue | 172 ++++-
src/views/hazardousChemicals/subscribeApplyManage/approval/index.vue | 130 ++-
26 files changed, 1,544 insertions(+), 345 deletions(-)
diff --git a/src/api/hazardousChemicals/subscribeApply.js b/src/api/hazardousChemicals/subscribeApply.js
new file mode 100644
index 0000000..57f4a42
--- /dev/null
+++ b/src/api/hazardousChemicals/subscribeApply.js
@@ -0,0 +1,48 @@
+import request from "@/utils/request";
+
+export function getSubscribeList(params) {
+ return request({
+ url: '/system/subscribe/list',
+ method: 'post',
+ data: params
+ })
+}
+
+export function addSubscribe(data) {
+ return request({
+ url: '/system/subscribe/insert',
+ method: 'post',
+ data: data
+ })
+}
+
+export function editSubscribe(params) {
+ return request({
+ url: `/system/subscribe/update`,
+ method: 'post',
+ data: params
+ })
+}
+
+export function delSubscribe(id) {
+ return request({
+ url: `/system/subscribe/delete?id=${id}`,
+ method: 'get'
+ })
+}
+
+export function auditSubscribe(data) {
+ return request({
+ url: `/system/subscribe/audit?id=${data.id}&status=${data.status}&opinion=${data.opinion}`,
+ method: 'get',
+ })
+}
+
+export function getAuditList(params) {
+ return request({
+ url: '/system/subscribe/auditList',
+ method: 'post',
+ data: params
+ })
+}
+
diff --git a/src/router/index.js b/src/router/index.js
index 0969a5c..91ea252 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -459,6 +459,76 @@
]
},
{
+ path: '/rawDetail',
+ component: Layout,
+ hidden: true,
+ redirect: '/rawDetail',
+ children: [
+ {
+ path: '/rawDetail',
+ component: () => import('@/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue'),
+ name: 'rawDetail',
+ meta: { title: '危化品详单',icon: 'form', affix: true }
+ }
+ ]
+ },
+ {
+ path: '/proDetail',
+ component: Layout,
+ hidden: true,
+ redirect: '/proDetail',
+ children: [
+ {
+ path: '/proDetail',
+ component: () => import('@/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue'),
+ name: 'proDetail',
+ meta: { title: '成品详单',icon: 'form', affix: true }
+ }
+ ]
+ },
+ {
+ path: '/whRawDetail',
+ component: Layout,
+ hidden: true,
+ redirect: '/whRawDetail',
+ children: [
+ {
+ path: '/whRawDetail',
+ component: () => import('@/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue'),
+ name: 'whRawDetail',
+ meta: { title: '危化品详情',icon: 'form', affix: true }
+ }
+ ]
+ },
+ {
+ path: '/whRawDetailNew',
+ component: Layout,
+ hidden: true,
+ redirect: '/whRawDetailNew',
+ children: [
+ {
+ path: '/whRawDetailNew',
+ component: () => import('@/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/detail.vue'),
+ name: 'whRawDetailNew',
+ meta: { title: '危化品详情',icon: 'form', affix: true }
+ }
+ ]
+ },
+ {
+ path: '/whProDetail',
+ component: Layout,
+ hidden: true,
+ redirect: '/whProDetail',
+ children: [
+ {
+ path: '/whProDetail',
+ component: () => import('@/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue'),
+ name: 'whProDetail',
+ meta: { title: '成品详情',icon: 'form', affix: true }
+ }
+ ]
+ },
+ {
path: '/user',
component: Layout,
hidden: true,
diff --git a/src/views/hazardousChemicals/avoidWarningMenu/avoidWarning/components/avoidDialog.vue b/src/views/hazardousChemicals/avoidWarningMenu/avoidWarning/components/avoidDialog.vue
index dde3ef0..bf22850 100644
--- a/src/views/hazardousChemicals/avoidWarningMenu/avoidWarning/components/avoidDialog.vue
+++ b/src/views/hazardousChemicals/avoidWarningMenu/avoidWarning/components/avoidDialog.vue
@@ -15,14 +15,14 @@
<el-form-item label="相忌危化品:" prop="hazmatBasicName" >
<el-input disabled v-model.trim="state.form.tabooBasicName" ></el-input>
</el-form-item>
- <el-form-item label="仓库:" prop="warehouseName" >
+ <el-form-item label="主柜:" prop="warehouseName" >
<el-select
clearable
v-model="state.form.warehouseName"
filterable
remote
reserve-keyword
- placeholder="请输入所入仓库"
+ placeholder="请输入所入主柜"
remote-show-suffix
:remote-method="getWareHouseList"
style="width: 100%"
@@ -36,10 +36,10 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="存储柜:" prop="cupboardId" >
+ <el-form-item label="副柜:" prop="cupboardId" >
<el-select
v-model="state.form.cupboardId"
- placeholder="请选择存储柜"
+ placeholder="请选择副柜"
style="width: 100%"
>
<el-option
@@ -79,8 +79,8 @@
cupboardId: ''
},
formRules:{
- warehouseName: [{ required: true, trigger: "blur", message: '请选择仓库' }],
- cupboardId: [{ required: true, trigger: "blur", message: '请选择存储柜' }],
+ warehouseName: [{ required: true, trigger: "blur", message: '请选择主柜' }],
+ cupboardId: [{ required: true, trigger: "blur", message: '请选择副柜' }],
},
})
diff --git a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue
index 1e2249c..cbec6e5 100644
--- a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue
+++ b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/proDetail.vue
@@ -62,7 +62,7 @@
<span >{{scope.row.remaining}}{{scope.row.productBasic.unit}}</span>
</template>
</el-table-column>
- <el-table-column label="所在仓库" prop="warehouseName" align="center" />
+ <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="viewFlow(scope.row)">取用记录</el-button>
@@ -94,7 +94,7 @@
<script setup>
import {nextTick, onMounted, reactive, ref} from "vue";
import {useRoute, useRouter} from "vue-router";
-import flowDeail from '../../../components/flowDetail.vue'
+import flowDeail from '../../../../components/flowDetail.vue'
import {disCardPro, doEntryPro, getProDetail, getProductRecord} from "@/api/hazardousChemicals/productRecord";
import viewQRcode from './viewQR.vue'
import {ElMessage, ElMessageBox} from "element-plus";
@@ -173,7 +173,7 @@
}
const v = JSON.stringify(obj)
Cookies.set('type','pro')
- router.push({ path: "/electronicWarehouse", query: { val: v } });
+ router.push({ path: "/electronicWarehouseMenu/electronicWarehouse", query: { val: v } });
}
const viewQR = (val) => {
dialogRef.value.openDialog('pro',val)
diff --git a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/productTable.vue b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/productTable.vue
index 3c51d8f..b29dc9a 100644
--- a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/productTable.vue
+++ b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/productTable.vue
@@ -37,7 +37,7 @@
</el-table-column>
<!-- <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 label="所在主柜" prop="warehouseName" align="center" >
</el-table-column>
<el-table-column label="创建时间" prop="productBasic.createTime" align="center" width="120" />
<!-- <el-table-column label="状态" prop="state" align="center">-->
diff --git a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue
index f2233a0..851a0a0 100644
--- a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue
+++ b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawDetail.vue
@@ -63,8 +63,8 @@
</template>
</el-table-column>
- <el-table-column label="所在仓库" prop="warehouseName" align="center" />
- <el-table-column label="存储柜" prop="cupboardName" align="center" />
+ <el-table-column label="所在主柜" prop="warehouseName" align="center" />
+ <el-table-column label="副柜" prop="cupboardName" align="center" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
<template #default="scope">
@@ -118,7 +118,7 @@
<script setup>
import {nextTick, onMounted, reactive, ref} from "vue";
import {useRoute, useRouter} from "vue-router";
-import flowDeail from '../../../components/flowDetail.vue'
+import flowDeail from '../../../../components/flowDetail.vue'
import {disCardPro, getProDetail, getProductRecord} from "@/api/hazardousChemicals/productRecord";
import viewQRcode from './viewQR.vue'
import {ElMessage, ElMessageBox} from "element-plus";
@@ -214,7 +214,7 @@
}
const v = JSON.stringify(obj)
Cookies.set('type','raw')
- router.push({ path: "/electronicWarehouse", query: { val: v } });
+ router.push({ path: "/electronicWarehouseMenu/electronicWarehouse", query: { val: v } });
}
const viewQR = (val) => {
dialogRef.value.openDialog('raw',val)
diff --git a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawTable.vue b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawTable.vue
index 2ce5fb6..7b3aa2a 100644
--- a/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawTable.vue
+++ b/src/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/rawTable.vue
@@ -63,8 +63,8 @@
</template>
</el-table-column>
<el-table-column label="安全库存" prop="hazmatBasic.safeNum" align="center" width="120" />
- <el-table-column label="所在仓库" prop="warehouseName" align="center" />
- <el-table-column label="存储柜" prop="cupboardName" align="center" />
+ <el-table-column label="所在主柜" prop="warehouseName" align="center" />
+ <el-table-column label="副柜" prop="cupboardName" align="center" />
<el-table-column label="创建时间" prop="hazmatBasic.createTime" align="center" width="120" />
<!-- <el-table-column label="状态" prop="state" align="center">-->
<!-- <template #default="scope">-->
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue b/src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue
index 83a8e54..dac5306 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/approval/components/editDialog.vue
@@ -9,36 +9,25 @@
:close-on-click-modal="false"
>
<el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
- <el-form-item required label= "危化品列表" >
+ <el-form-item label= "危化品列表" >
<div style="display: flex;width: 100%;margin-top: 5px">
- <el-table :data="state.form.hazardousTargets" :border="true">
+ <el-table :data="state.form.subscribeHazmats" :border="true">
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
<el-table-column label="危化品名称" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.name'" >
- <span>{{row.name}}</span>
+ <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatName'" >
+ <span>{{row.hazmatName}}</span>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="数量" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.num'">
- <span>{{row.num}}</span>
+ <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatCount'">
+ <span>{{row.hazmatCount}}</span>
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="title !== '查看'" >
- <template #default="scope" >
- <el-button link type="danger" @click="handleDelete(scope.row)" >删除</el-button>
- </template>
- </el-table-column>
</el-table>
- <el-button
- v-if="title !== '查看'"
- style="margin-left: 20px"
- type="primary"
- @click="addObject"
- >新增</el-button>
</div>
</el-form-item>
<el-form-item label="申购文件:">
@@ -46,20 +35,20 @@
<el-link type="primary" @click="openFile(state.form.filePath)">{{state.form.fileName}}</el-link>
</div>
</el-form-item>
- <el-form-item label="审批意见:" v-if="title === '审批' && state.form.state == 0" >
+ <el-form-item label="审批意见:" v-if="title === '审批'" prop="status">
<div style="display: flex;flex-direction: column;width: 70%">
- <el-radio-group v-model="state.form.regestState">
- <el-radio :label="0">通过</el-radio>
- <el-radio :label="1">驳回</el-radio>
+ <el-radio-group v-model="state.form.status">
+ <el-radio :label="1">通过</el-radio>
+ <el-radio :label="2">驳回</el-radio>
</el-radio-group>
- <el-input v-if="state.form.regestState == 1" v-model="state.form.regest" type="textarea" :rows="5"></el-input>
+ <el-input v-if="state.form.status == 2" v-model="state.form.opinion" type="textarea" placeholder="请输入审批意见" :rows="5"></el-input>
</div>
</el-form-item>
- <el-form-item label="审批状态:" v-if="title === '查看' && state.form.state != 0">
- <span>{{state.form.state == 1 ? '审批通过' : '审批驳回' }}</span>
+ <el-form-item label="审批状态:" v-if="title === '查看' && state.form.status != 0" >
+ <span>{{state.form.status == 1 ? '审批通过' : '审批驳回' }}</span>
</el-form-item>
- <el-form-item label="审批意见:" v-if="title === '查看' && state.form.state == 2" style="width: 70%">
- <el-input v-model="state.form.regest" type="textarea" :rows="5"></el-input>
+ <el-form-item label="审批意见:" v-if="title === '查看' && state.form.status == 2" style="width: 70%" >
+ <el-input v-model="state.form.opinion" type="textarea" :rows="5"></el-input>
</el-form-item>
</el-form>
<template #footer v-if="title !=='查看'">
@@ -79,6 +68,7 @@
import {getUser} from "@/api/hazardousChemicals/user";
import {getToken} from "@/utils/auth";
import {renderAsync} from "docx-preview";
+import {auditSubscribe} from "@/api/hazardousChemicals/subscribeApply";
const dialogVisible = ref(false);
const title = ref("");
@@ -88,46 +78,40 @@
const state = reactive({
form: {
id: '',
- creditCode: '',
- name: '',
- major: '',
- phone: '',
- code: '',
- hazardousTargets:[],
+ opinion: null,
+ status: undefined,
+ subscribeHazmats:[],
},
formRules:{
- creditCode: [{ required: true, message: '请输入企业信用代码', trigger: 'blur' }],
- major:[{ required: true, message: '请输入负责人', trigger: 'blur' }],
- type: [{ required: true, message: '请选择企业类型', trigger: 'blur' }],
+ status: [{ required: true, message: '请选择审批意见', trigger: 'blur' }],
},
-
- peopleList:[],
- fileList:[],
- uploadUrl: import.meta.env.VITE_APP_BASE_API + '/system/common/uploadFile',
- header: {
- Authorization: getToken()
- },
- fileLimit: 1,
})
const openDialog = async (type, value) => {
- title.value = type === 'approval' ? '审批' : type ==='edit' ? '申购编辑' : '查看' ;
+ title.value = type === 'approval' ? '审批' : type ==='view' ? '查看' : '' ;
state.form = JSON.parse(JSON.stringify(value));
dialogVisible.value = true;
}
const onSubmit = async () => {
const valid = await busRef.value.validate();
+ if(!state.form.status){
+ ElMessage.warning('请选择审批意见!')
+ return
+ }
if(valid){
if(title.value === '审批'){
- const {id, ...data} = JSON.parse(JSON.stringify(state.form))
- data.code = data.code.toUpperCase()
- const res = await addCompany(data)
+ const {subscribeHazmats, ...data} = JSON.parse(JSON.stringify(state.form))
+ if(data.status == 2 && !data.opinion){
+ ElMessage.warning('请输入审批意见!')
+ return
+ }
+ const res = await auditSubscribe(data)
if(res.code === 200){
ElMessage({
type: 'success',
- message: '新增成功'
+ message: '审批成功'
});
}else{
ElMessage.warning(res.message)
@@ -149,29 +133,10 @@
const reset = () => {
state.form = {
id: '',
- creditCode: '',
- name: '',
- major: '',
- phone: '',
- code: ''
+ opinion:null,
+ status:undefined,
+ subscribeHazmats:[],
}
-}
-const addObject = () => {
-
- state.form.hazardousTargets.push({name:'',num:null})
-}
-const handleDelete = (val) => {
- state.form.hazardousTargets = state.form.hazardousTargets.filter(item=> item != val)
-}
-const selectValue = (val) => {
- if(!val){
- state.form.userId = null
- }
- state.peopleList.forEach(item => {
- if(item.name === val){
- state.form.userId = item.id
- }
- })
}
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/approval/index.vue b/src/views/hazardousChemicals/subscribeApplyManage/approval/index.vue
index f107b29..954e272 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/approval/index.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/approval/index.vue
@@ -2,16 +2,16 @@
<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>-->
-<!-- <el-button-->
-<!-- type="primary"-->
-<!-- plain-->
-<!-- icon="Plus"-->
-<!-- @click="openDialog('add',{})"-->
-<!-- >新增</el-button>-->
-<!-- </el-form-item>-->
+ <el-form-item>
+ <el-button
+ type="primary"
+ plain
+ icon="Plus"
+ @click="openDialog('add',{})"
+ >新增</el-button>
+ </el-form-item>
<el-form-item label="审批状态:" >
- <el-select v-model="data.queryParams.state" placeholder="请选择" >
+ <el-select v-model="data.queryParams.status" placeholder="请选择" >
<el-option
v-for="item in data.stateOptions"
:key="item.id"
@@ -20,7 +20,7 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="审批人:" prop="userId" >
+ <el-form-item label="申购人:" >
<el-select
clearable
v-model="data.userName"
@@ -28,7 +28,7 @@
remote
@change="selectValue"
reserve-keyword
- placeholder="请输入审批人名称"
+ placeholder="请输入申购人名称"
remote-show-suffix
:remote-method="getPeopleList"
style="width: 100%"
@@ -57,24 +57,62 @@
<!-- 表格数据 -->
<el-table v-loading="loading" :data="dataList" :border="true">
<el-table-column label="序号" type="index" align="center" width="80" />
- <el-table-column label="申购单号" prop="creditCode" align="center" />
- <el-table-column label="危化品名称" prop="code" align="center" />
- <el-table-column label="申购数量" prop="name" align="center" />
- <el-table-column label="申购人" prop="major" align="center" />
- <el-table-column label="审批人" prop="phone" align="center"/>
- <el-table-column label="申购文件" prop="phone" align="center">
+ <el-table-column label="申购单号" prop="subscribeNum" align="center" />
+ <el-table-column label="危化品名称" align="center" class-name="subscribe-quantity-cell" width="200">
<template #default="scope">
- <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+ <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+ <div
+ v-for="(item, index) in scope.row.subscribeHazmats"
+ :key="item.id"
+ style="
+ width: 100%;
+ text-align: center;
+ padding: 8px 0;
+ border-bottom: 1px solid #ebeef5;"
+ :style="{
+ borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+ }"
+ >
+ <span>{{ item.hazmatName }}</span>
+ </div>
+ </div>
</template>
</el-table-column>
- <el-table-column label="审批状态" prop="phone" align="center">
+ <el-table-column label="申购数量" align="center" class-name="subscribe-quantity-cell">
<template #default="scope">
- <span> {{scope.row.state == 0 ? '未审批' :scope.row.state == 1 ?'审批通过':scope.row.state == 2 ?'审批驳回':''}}</span><span></span>
+ <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+ <div
+ v-for="(item, index) in scope.row.subscribeHazmats"
+ style="
+ width: 100%;
+ text-align: center;
+ padding: 8px 0;
+ border-bottom: 1px solid #ebeef5;"
+ :style="{
+ borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+ }"
+ >
+ {{ item.hazmatCount }}
+ </div>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="申购人" prop="subscribePersonName" align="center" />
+ <el-table-column label="审批人" prop="checkName" align="center"/>
+ <el-table-column label="申购文件" prop="fileName" align="center">
+ <template #default="scope">
+ <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+ <span v-else></span>
+ </template>
+ </el-table-column>
+ <el-table-column label="审批状态" prop="status" align="center">
+ <template #default="scope">
+ <span> {{scope.row.status == 0 ? '未审批' :scope.row.status == 1 ?'审批通过':scope.row.status == 2 ?'审批驳回':''}}</span><span></span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
<template #default="scope">
- <el-button v-if="scope.row.state == 0" link type="primary" @click="openDialog('approval',scope.row)">审批</el-button>
+ <el-button v-if="scope.row.status == 0" link type="danger" @click="openDialog('approval',scope.row)">审批</el-button>
<el-button link type="primary" @click="openDialog('view',scope.row)">查看</el-button>
</template>
</el-table-column>
@@ -99,6 +137,8 @@
import editDialog from "./components/editDialog.vue";
import {getUser} from "@/api/hazardousChemicals/user";
import {renderAsync} from "docx-preview";
+import {delSubscribe, getAuditList, getSubscribeList} from "@/api/hazardousChemicals/subscribeApply";
+import Cookies from "js-cookie";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const dialogRef = ref();
@@ -106,8 +146,9 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- state: null,
- userId:null
+ status: null,
+ subscribePersonId:null,
+ checkId:null
},
total: 0,
dataList: [],
@@ -132,8 +173,11 @@
const { queryParams, total, dataList } = toRefs(data);
const classHourRef = ref();
onMounted(()=>{
+ const userInfo = JSON.parse(Cookies.get('userInfo'))
+ data.queryParams.checkId = userInfo.id
getList()
getPeopleList("")
+
})
onUnmounted(()=>{
@@ -142,13 +186,16 @@
const getList = async () => {
loading.value = true
- // const res = await getCompany(data.queryParams)
- // if(res.code == 200){
- // data.dataList = res.data.list
- // data.total = res.data.total
- // }else{
- // ElMessage.warning(res.message)
- // }
+ const res = await getAuditList(data.queryParams).catch(error => {
+ loading.value = false
+ return
+ })
+ if(res.code == 200){
+ data.dataList = res.data.list
+ data.total = res.data.total
+ }else{
+ ElMessage.warning(res.message)
+ }
loading.value = false
}
@@ -161,8 +208,9 @@
data.queryParams = {
pageNum: 1,
pageSize: 10,
- state: null,
- userId:null
+ status: null,
+ subscribePersonId:null,
+ checkId:null
}
data.userName = ''
getList()
@@ -178,7 +226,7 @@
type: 'warning',
})
.then( async() => {
- const res = await delCompany(val.id)
+ const res = await delSubscribe(val.id)
if(res.code == 200){
ElMessage.success('数据删除成功')
await getList()
@@ -190,11 +238,11 @@
const getPeopleList = async (val)=>{
let queryParams = {}
if(val != ""){
- queryParams = {
+ queryParams = {
name: val
}
}else {
- queryParams = {
+ queryParams = {
pageNum: 1,
pageSize: 10
}
@@ -208,11 +256,12 @@
}
const selectValue = (val) => {
if(!val){
- data.queryParams.userId = null
+ data.queryParams.subscribePersonId = null
}
data.peopleList.forEach(item => {
if(item.name === val){
- data.queryParams.userId = item.id
+ data.queryParams.subscribePersonId = item.id
+
}
})
}
@@ -258,5 +307,10 @@
}
}
}
-
</script>
+<style scoped>
+/* 只对申购数量这一列生效 */
+:deep(.subscribe-quantity-cell .cell) {
+ padding: 0 !important; /* 关键:把默认的padding清零,优先级拉满 */
+}
+</style>
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/record/components/editDialog.vue b/src/views/hazardousChemicals/subscribeApplyManage/record/components/editDialog.vue
index c439bd3..04a2fc7 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/record/components/editDialog.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/record/components/editDialog.vue
@@ -11,34 +11,23 @@
<el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
<el-form-item required label= "危化品列表" >
<div style="display: flex;width: 100%;margin-top: 5px">
- <el-table :data="state.form.hazardousTargets" :border="true">
+ <el-table :data="state.form.subscribeHazmats" :border="true">
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
<el-table-column label="危化品名称" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.name'" >
- <span>{{row.name}}</span>
+ <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatName'" >
+ <span>{{row.hazmatName}}</span>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="数量" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.num'">
- <span>{{row.num}}</span>
+ <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatCount'">
+ <span>{{row.hazmatCount}}</span>
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="title !== '查看'" >
- <template #default="scope" >
- <el-button link type="danger" @click="handleDelete(scope.row)" >删除</el-button>
- </template>
- </el-table-column>
</el-table>
- <el-button
- v-if="title !== '查看'"
- style="margin-left: 20px"
- type="primary"
- @click="addObject"
- >新增</el-button>
</div>
</el-form-item>
<el-form-item label="申购文件:">
@@ -47,24 +36,18 @@
</div>
</el-form-item>
<el-form-item label="申购人:" >
- <span>{{state.form.people }}</span>
+ <span>{{state.form.subscribePersonName }}</span>
</el-form-item>
<el-form-item label="审批人:" >
- <span>{{state.form.people }}</span>
+ <span>{{state.form.checkName }}</span>
</el-form-item>
<el-form-item label="审批状态:" v-if="title === '查看' ">
- <span>{{state.form.state == 1 ? '审批通过' : state.form.state == 2 ?'审批驳回': '未审批' }}</span>
+ <span>{{state.form.status == 1 ? '审批通过' : state.form.status == 2 ?'审批驳回': '未审批' }}</span>
</el-form-item>
- <el-form-item label="审批意见:" v-if="title === '查看' && state.form.state == 2" style="width: 70%">
- <el-input v-model="state.form.regest" type="textarea" :rows="5"></el-input>
+ <el-form-item label="审批意见:" v-if="title === '查看' && state.form.status == 2" style="width: 70%">
+ <el-input v-model="state.form.opinion" type="textarea" :rows="5"></el-input>
</el-form-item>
</el-form>
- <template #footer v-if="title !=='查看'">
- <span class="dialog-footer">
- <el-button @click="handleClose" size="default">取 消</el-button>
- <el-button type="primary" @click="onSubmit" size="default" v-preReClick>确认</el-button>
- </span>
- </template>
</el-dialog>
</div>
</template>
@@ -90,7 +73,7 @@
major: '',
phone: '',
code: '',
- hazardousTargets:[],
+ subscribeHazmats:[],
},
})
@@ -100,8 +83,6 @@
state.form = JSON.parse(JSON.stringify(value));
dialogVisible.value = true;
}
-
-
const handleClose = () => {
busRef.value.clearValidate();
@@ -119,23 +100,7 @@
code: ''
}
}
-const addObject = () => {
- state.form.hazardousTargets.push({name:'',num:null})
-}
-const handleDelete = (val) => {
- state.form.hazardousTargets = state.form.hazardousTargets.filter(item=> item != val)
-}
-const selectValue = (val) => {
- if(!val){
- state.form.userId = null
- }
- state.peopleList.forEach(item => {
- if(item.name === val){
- state.form.userId = item.id
- }
- })
-}
const openFile = async(path)=>{
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/record/index.vue b/src/views/hazardousChemicals/subscribeApplyManage/record/index.vue
index 15f27ae..94f325c 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/record/index.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/record/index.vue
@@ -2,16 +2,16 @@
<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>-->
-<!-- <el-button-->
-<!-- type="primary"-->
-<!-- plain-->
-<!-- icon="Plus"-->
-<!-- @click="openDialog('add',{})"-->
-<!-- >新增</el-button>-->
-<!-- </el-form-item>-->
+ <el-form-item>
+ <el-button
+ type="primary"
+ plain
+ icon="Plus"
+ @click="openDialog('add',{})"
+ >新增</el-button>
+ </el-form-item>
<el-form-item label="审批状态:" >
- <el-select v-model="data.queryParams.state" placeholder="请选择" >
+ <el-select v-model="data.queryParams.status" placeholder="请选择" >
<el-option
v-for="item in data.stateOptions"
:key="item.id"
@@ -20,7 +20,28 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="审批人:" prop="userId" >
+ <el-form-item label="申购人:" v-if="data.isAdmin">
+ <el-select
+ clearable
+ v-model="data.userNameS"
+ filterable
+ remote
+ @change="selectValueS"
+ reserve-keyword
+ placeholder="请输入申购人名称"
+ remote-show-suffix
+ :remote-method="getPeopleList"
+ style="width: 100%"
+ >
+ <el-option
+ v-for="item in data.peopleList"
+ :key="item.id"
+ :label="item.name"
+ :value="item.name"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="审批人:" >
<el-select
clearable
v-model="data.userName"
@@ -57,19 +78,57 @@
<!-- 表格数据 -->
<el-table v-loading="loading" :data="dataList" :border="true">
<el-table-column label="序号" type="index" align="center" width="80" />
- <el-table-column label="申购单号" prop="creditCode" align="center" />
- <el-table-column label="危化品名称" prop="code" align="center" />
- <el-table-column label="申购数量" prop="name" align="center" />
- <el-table-column label="申购人" prop="major" align="center" />
- <el-table-column label="审批人" prop="phone" align="center"/>
- <el-table-column label="申购文件" prop="phone" align="center">
+ <el-table-column label="申购单号" prop="subscribeNum" align="center" />
+ <el-table-column label="危化品名称" align="center" class-name="subscribe-quantity-cell" width="200">
<template #default="scope">
- <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+ <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+ <div
+ v-for="(item, index) in scope.row.subscribeHazmats"
+ :key="item.id"
+ style="
+ width: 100%;
+ text-align: center;
+ padding: 8px 0;
+ border-bottom: 1px solid #ebeef5;"
+ :style="{
+ borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+ }"
+ >
+ <span>{{ item.hazmatName }}</span>
+ </div>
+ </div>
</template>
</el-table-column>
- <el-table-column label="审批状态" prop="phone" align="center">
+ <el-table-column label="申购数量" align="center" class-name="subscribe-quantity-cell">
<template #default="scope">
- <span> {{scope.row.state == 0 ? '未审批' :scope.row.state == 1 ?'审批通过':scope.row.state == 2 ?'审批驳回':''}}</span><span></span>
+ <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+ <div
+ v-for="(item, index) in scope.row.subscribeHazmats"
+ style="
+ width: 100%;
+ text-align: center;
+ padding: 8px 0;
+ border-bottom: 1px solid #ebeef5;"
+ :style="{
+ borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+ }"
+ >
+ {{ item.hazmatCount }}
+ </div>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="申购人" prop="subscribePersonName" align="center" />
+ <el-table-column label="审批人" prop="checkName" align="center"/>
+ <el-table-column label="申购文件" prop="fileName" align="center">
+ <template #default="scope">
+ <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+ <span v-else></span>
+ </template>
+ </el-table-column>
+ <el-table-column label="审批状态" prop="status" align="center">
+ <template #default="scope">
+ <span> {{scope.row.status == 0 ? '未审批' :scope.row.status == 1 ?'审批通过':scope.row.status == 2 ?'审批驳回':''}}</span><span></span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
@@ -98,6 +157,8 @@
import editDialog from "./components/editDialog.vue";
import {getUser} from "@/api/hazardousChemicals/user";
import {renderAsync} from "docx-preview";
+import {delSubscribe, getSubscribeList} from "@/api/hazardousChemicals/subscribeApply";
+import Cookies from "js-cookie";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const dialogRef = ref();
@@ -105,16 +166,12 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- state: null,
- userId:null
+ status: null,
+ subscribePersonId:null,
+ checkId:null
},
total: 0,
- dataList: [
- {
- id:1,
- state:2
- }
- ],
+ dataList: [],
stateOptions:[
{
id: 0,
@@ -130,7 +187,9 @@
},
],
peopleList:[],
- userName:''
+ userName:'',
+ userNameS:'',
+ isAdmin:false
});
const { queryParams, total, dataList } = toRefs(data);
@@ -138,6 +197,10 @@
onMounted(()=>{
getList()
getPeopleList("")
+ const userInfo= JSON.parse(Cookies.get('userInfo'))
+ if(userInfo.userType === 0){
+ data.isAdmin = true;
+ }
})
onUnmounted(()=>{
@@ -146,13 +209,18 @@
const getList = async () => {
loading.value = true
- // const res = await getCompany(data.queryParams)
- // if(res.code == 200){
- // data.dataList = res.data.list
- // data.total = res.data.total
- // }else{
- // ElMessage.warning(res.message)
- // }
+ getSubscribeList(data.queryParams).then((res)=>{
+ if(res.code == 200){
+ data.dataList = res.data.list
+ data.total = res.data.total
+ }else{
+ ElMessage.warning(res.message)
+ }
+ }).catch(error => {
+ loading.value = false
+
+ })
+
loading.value = false
}
@@ -165,10 +233,12 @@
data.queryParams = {
pageNum: 1,
pageSize: 10,
- state: null,
- userId:null
+ status: null,
+ subscribePersonId:null,
+ checkId:null
}
data.userName = ''
+ data.userNameS = ''
getList()
getPeopleList("")
}
@@ -182,7 +252,7 @@
type: 'warning',
})
.then( async() => {
- const res = await delCompany(val.id)
+ const res = await delSubscribe(val.id)
if(res.code == 200){
ElMessage.success('数据删除成功')
await getList()
@@ -194,11 +264,11 @@
const getPeopleList = async (val)=>{
let queryParams = {}
if(val != ""){
- queryParams = {
+ queryParams = {
name: val
}
}else {
- queryParams = {
+ queryParams = {
pageNum: 1,
pageSize: 10
}
@@ -212,14 +282,25 @@
}
const selectValue = (val) => {
if(!val){
- data.queryParams.userId = null
+ data.queryParams.checkId = null
}
data.peopleList.forEach(item => {
if(item.name === val){
- data.queryParams.userId = item.id
+ data.queryParams.checkId = item.id
}
})
}
+const selectValueS = (val) => {
+ if(!val){
+ data.queryParams.subscribePersonId = null
+ }
+ data.peopleList.forEach(item => {
+ if(item.name === val){
+ data.queryParams.subscribePersonId = item.id
+ }
+ })
+}
+
const openFile = async(path)=>{
const ext = path.split('.').pop().toLowerCase();
if (ext === 'doc' || ext === 'xls' || ext === 'xlsx' || ext === 'ppt' || ext === 'pptx') {
@@ -262,5 +343,10 @@
}
}
}
-
</script>
+<style scoped>
+/* 只对申购数量这一列生效 */
+:deep(.subscribe-quantity-cell .cell) {
+ padding: 0 !important; /* 关键:把默认的padding清零,优先级拉满 */
+}
+</style>
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/subscribe/components/editDialog.vue b/src/views/hazardousChemicals/subscribeApplyManage/subscribe/components/editDialog.vue
index 0ec353e..0ae5622 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/subscribe/components/editDialog.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/subscribe/components/editDialog.vue
@@ -3,7 +3,7 @@
<el-dialog
v-model="dialogVisible"
:title="title"
- width="800px"
+ width="850px"
:before-close="handleClose"
:close-on-press-escape="false"
:close-on-click-modal="false"
@@ -11,19 +11,19 @@
<el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
<el-form-item required label= "危化品列表" >
<div style="display: flex;width: 100%;margin-top: 5px">
- <el-table :data="state.form.hazardousTargets" :border="true">
+ <el-table :data="state.form.subscribeHazmats" :border="true">
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
<el-table-column label="危化品名称" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.name'" :rules="state.formRules.name">
- <el-input :disabled="title === '查看'" type="textarea" v-model="row.name" placeholder="请输入危化品名称"></el-input>
+ <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatName'" :rules="state.formRules.hazmatName">
+ <el-input type="textarea" :rows="1" v-model="row.hazmatName" placeholder="请输入危化品名称"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column label="数量" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'hazardousTargets.' + '[' + $index + ']' + '.num'" :rules="state.formRules.num">
- <el-input :disabled="title === '查看'" v-model="row.num" @input="row.num = row.num.replace(/[^0-9]/g,'')" placeholder="请输入数量"></el-input>
+ <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatCount'" :rules="state.formRules.hazmatCount">
+ <el-input v-model="row.hazmatCount" @input="row.hazmatCount = row.hazmatCount.replace(/[^0-9]/g,'')" placeholder="请输入数量"></el-input>
</el-form-item>
</template>
</el-table-column>
@@ -41,10 +41,10 @@
>新增</el-button>
</div>
</el-form-item>
- <el-form-item label="审批人:" prop="userId" >
+ <el-form-item label="审批人:" prop="checkId" >
<el-select
clearable
- v-model="state.userName"
+ v-model="state.form.checkName"
filterable
remote
@change="selectValue"
@@ -62,19 +62,19 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="申购文件:">
- <el-upload accept=".doc,.docx,.xls,.xlsx" v-if="title!=='查看'" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file)=>handleRemove(file)" >
+ <el-form-item label="申购文件:" prop="filePath">
+ <el-upload accept=".doc,.docx,.xls,.xlsx,.pdf" v-if="title!=='查看'" :action="state.uploadUrl" :headers="state.header" method="post" :on-success="(res, uploadFile)=>handleAvatarSuccess(res, uploadFile)" :on-exceed="showTip" :limit='state.fileLimit' v-model:file-list="state.fileList" :before-upload="picSize" :on-remove="(file)=>handleRemove(file)" >
<el-button type="primary">点击上传</el-button>
<template #tip>
- <div class="el-upload__tip">支持上传.doc、.docx、.xls、.xlsx格式文档,尺寸小于50M,最多可上传1张</div>
+ <div class="el-upload__tip">支持上传.doc、.docx、.pdf、.xls、.xlsx格式文档,尺寸小于50M,最多可上传1个</div>
</template>
</el-upload>
<div v-else>
<el-link v-if="state.form.fileName" style="" type="primary" @click="openFile(state.form.filePath)">{{state.form.fileName}}</el-link>
</div>
</el-form-item>
- <el-form-item label="审批意见:" v-if="title === '查看' && state.form.state == 2" style="width: 70%">
- <el-input v-model="state.form.regest" type="textarea" :rows="2"></el-input>
+ <el-form-item label="审批意见:" v-if="title === '查看' && state.form.status == 2" style="width: 70%">
+ <el-input v-model="state.form.opinion" type="textarea" :rows="5"></el-input>
</el-form-item>
</el-form>
<template #footer v-if="title !=='查看'">
@@ -94,6 +94,7 @@
import {getUser} from "@/api/hazardousChemicals/user";
import {getToken} from "@/utils/auth";
import {renderAsync} from "docx-preview";
+import {addSubscribe, editSubscribe} from "@/api/hazardousChemicals/subscribeApply";
const dialogVisible = ref(false);
const title = ref("");
@@ -103,19 +104,17 @@
const state = reactive({
form: {
id: '',
- creditCode: '',
- name: '',
- major: '',
- phone: '',
- code: '',
- hazardousTargets:[],
+ checkId: null,
+ checkName:'',
+ filePath: '',
+ fileName: '',
+ subscribeHazmats:[],
},
formRules:{
- creditCode: [{ required: true, message: '请输入企业信用代码', trigger: 'blur' }],
- major:[{ required: true, message: '请输入负责人', trigger: 'blur' }],
- type: [{ required: true, message: '请选择企业类型', trigger: 'blur' }],
- name: [{ required: true, message: '', trigger: 'blur' }],
- num: [{ required: true, message: '', trigger: 'blur' }],
+ checkId: [{ required: true, message: '请选择审核人', trigger: 'blur' }],
+ filePath:[{ required: true, message: '请上传文件', trigger: 'blur' }],
+ hazmatName: [{ required: true, message: '', trigger: 'blur' }],
+ hazmatCount: [{ required: true, message: '', trigger: 'blur' }],
},
peopleList:[],
@@ -131,8 +130,15 @@
const openDialog = async (type, value) => {
await getPeopleList("")
title.value = type === 'add' ? '申购申请' : type ==='edit' ? '申购编辑' : '查看' ;
- if(type === 'edit') {
+ if(type === 'edit' || type === 'view') {
state.form = JSON.parse(JSON.stringify(value));
+ if(state.form.filePath) {
+ const obj = {
+ url: value.filePath,
+ name: value.fileName
+ }
+ state.fileList = [obj]
+ }
}
dialogVisible.value = true;
}
@@ -140,14 +146,13 @@
const onSubmit = async () => {
const valid = await busRef.value.validate();
if(valid){
- if(title.value === '新增'){
+ if(title.value === '申购申请'){
const {id, ...data} = JSON.parse(JSON.stringify(state.form))
- data.code = data.code.toUpperCase()
- const res = await addCompany(data)
+ const res = await addSubscribe(data)
if(res.code === 200){
ElMessage({
type: 'success',
- message: '新增成功'
+ message: '申请成功'
});
}else{
ElMessage.warning(res.message)
@@ -156,10 +161,9 @@
busRef.value.clearValidate();
reset();
dialogVisible.value = false;
- }else if(title.value === '编辑'){
+ }else if(title.value === '申购编辑'){
const {...data} = JSON.parse(JSON.stringify(state.form))
- data.code = data.code.toUpperCase()
- const res = await editCompany(data)
+ const res = await editSubscribe(data)
if(res.code === 200){
ElMessage({
type: 'success',
@@ -185,36 +189,28 @@
const reset = () => {
state.form = {
id: '',
- creditCode: '',
- name: '',
- major: '',
- phone: '',
- code: ''
+ checkId: null,
+ filePath: '',
+ fileName: '',
+ subscribeHazmats:[],
}
-}
-const requiredDurationEventMetering =(value) =>{
- let dat =
- ("" + value)
- .replace(/[^\d^\.]+/g, "")
- .replace(/^0+(\d)/, "$1")
- .replace(/^\./, "0.")
- .match(/^\d*(\.?\d{0,2})/g)[0] || "";
- return dat
+ state.fileList = []
}
const addObject = () => {
- state.form.hazardousTargets.push({name:'',num:null})
+ state.form.subscribeHazmats.push({hazmatName:'',hazmatCount:null})
}
const handleDelete = (val) => {
- state.form.hazardousTargets = state.form.hazardousTargets.filter(item=> item != val)
+ state.form.subscribeHazmats = state.form.subscribeHazmats.filter(item=> item != val)
}
const selectValue = (val) => {
if(!val){
- state.form.userId = null
+ state.form.checkId = null
}
state.peopleList.forEach(item => {
if(item.name === val){
- state.form.userId = item.id
+ state.form.checkId = item.id
+ state.form.checkName = item.name
}
})
}
diff --git a/src/views/hazardousChemicals/subscribeApplyManage/subscribe/index.vue b/src/views/hazardousChemicals/subscribeApplyManage/subscribe/index.vue
index 8539ec7..39ac05c 100644
--- a/src/views/hazardousChemicals/subscribeApplyManage/subscribe/index.vue
+++ b/src/views/hazardousChemicals/subscribeApplyManage/subscribe/index.vue
@@ -11,7 +11,7 @@
>新增</el-button>
</el-form-item>
<el-form-item label="审批状态:" >
- <el-select v-model="data.queryParams.state" placeholder="请选择" >
+ <el-select v-model="data.queryParams.status" placeholder="请选择" >
<el-option
v-for="item in data.stateOptions"
:key="item.id"
@@ -20,7 +20,7 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="审批人:" prop="userId" >
+ <el-form-item label="审批人:" >
<el-select
clearable
v-model="data.userName"
@@ -57,25 +57,63 @@
<!-- 表格数据 -->
<el-table v-loading="loading" :data="dataList" :border="true">
<el-table-column label="序号" type="index" align="center" width="80" />
- <el-table-column label="申购单号" prop="creditCode" align="center" />
- <el-table-column label="危化品名称" prop="code" align="center" />
- <el-table-column label="申购数量" prop="name" align="center" />
- <el-table-column label="申购人" prop="major" align="center" />
- <el-table-column label="审批人" prop="phone" align="center"/>
- <el-table-column label="申购文件" prop="phone" align="center">
+ <el-table-column label="申购单号" prop="subscribeNum" align="center" />
+ <el-table-column label="危化品名称" align="center" class-name="subscribe-quantity-cell" width="200">
<template #default="scope">
- <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+ <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+ <div
+ v-for="(item, index) in scope.row.subscribeHazmats"
+ :key="item.id"
+ style="
+ width: 100%;
+ text-align: center;
+ padding: 8px 0;
+ border-bottom: 1px solid #ebeef5;"
+ :style="{
+ borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+ }"
+ >
+ <span>{{ item.hazmatName }}</span>
+ </div>
+ </div>
</template>
</el-table-column>
- <el-table-column label="审批状态" prop="phone" align="center">
+ <el-table-column label="申购数量" align="center" class-name="subscribe-quantity-cell">
+ <template #default="scope">
+ <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+ <div
+ v-for="(item, index) in scope.row.subscribeHazmats"
+ style="
+ width: 100%;
+ text-align: center;
+ padding: 8px 0;
+ border-bottom: 1px solid #ebeef5;"
+ :style="{
+ borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+ }"
+ >
+ {{ item.hazmatCount }}
+ </div>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="申购人" prop="subscribePersonName" align="center" />
+ <el-table-column label="审批人" prop="checkName" align="center"/>
+ <el-table-column label="申购文件" prop="fileName" align="center">
<template #default="scope">
- <span> {{scope.row.state == 0 ? '未审批' :scope.row.state == 1 ?'审批通过':scope.row.state == 2 ?'审批驳回':''}}</span><span></span>
+ <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+ <span v-else></span>
+ </template>
+ </el-table-column>
+ <el-table-column label="审批状态" prop="status" align="center">
+ <template #default="scope">
+ <span> {{scope.row.status == 0 ? '未审批' :scope.row.status == 1 ?'审批通过':scope.row.status == 2 ?'审批驳回':''}}</span><span></span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
<template #default="scope">
- <el-button v-if="scope.row.state == 0" link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button>
- <el-button v-if="scope.row.state == 0" link type="danger" @click="handleDelete(scope.row)">删除</el-button>
+ <el-button v-if="scope.row.status == 0" link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button>
+ <el-button v-if="scope.row.status == 0" link type="danger" @click="handleDelete(scope.row)">删除</el-button>
<el-button link type="primary" @click="openDialog('view',scope.row)">查看</el-button>
</template>
</el-table-column>
@@ -100,6 +138,7 @@
import editDialog from "./components/editDialog.vue";
import {getUser} from "@/api/hazardousChemicals/user";
import {renderAsync} from "docx-preview";
+import {delSubscribe, getSubscribeList} from "@/api/hazardousChemicals/subscribeApply";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const dialogRef = ref();
@@ -107,8 +146,9 @@
queryParams: {
pageNum: 1,
pageSize: 10,
- state: null,
- userId:null
+ status: null,
+ subscribePersonId:null,
+ checkId:null
},
total: 0,
dataList: [],
@@ -143,13 +183,16 @@
const getList = async () => {
loading.value = true
- // const res = await getCompany(data.queryParams)
- // if(res.code == 200){
- // data.dataList = res.data.list
- // data.total = res.data.total
- // }else{
- // ElMessage.warning(res.message)
- // }
+ const res = await getSubscribeList(data.queryParams).catch(error => {
+ loading.value = false
+ return
+ })
+ if(res.code == 200){
+ data.dataList = res.data.list
+ data.total = res.data.total
+ }else{
+ ElMessage.warning(res.message)
+ }
loading.value = false
}
@@ -162,8 +205,9 @@
data.queryParams = {
pageNum: 1,
pageSize: 10,
- state: null,
- userId:null
+ status: null,
+ subscribePersonId:null,
+ checkId:null
}
data.userName = ''
getList()
@@ -179,7 +223,7 @@
type: 'warning',
})
.then( async() => {
- const res = await delCompany(val.id)
+ const res = await delSubscribe(val.id)
if(res.code == 200){
ElMessage.success('数据删除成功')
await getList()
@@ -209,11 +253,11 @@
}
const selectValue = (val) => {
if(!val){
- data.queryParams.userId = null
+ data.queryParams.checkId = null
}
data.peopleList.forEach(item => {
if(item.name === val){
- data.queryParams.userId = item.id
+ data.queryParams.checkId = item.id
}
})
}
@@ -259,5 +303,10 @@
}
}
}
-
</script>
+<style scoped>
+/* 只对申购数量这一列生效 */
+:deep(.subscribe-quantity-cell .cell) {
+ padding: 0 !important; /* 关键:把默认的padding清零,优先级拉满 */
+}
+</style>
diff --git a/src/views/hazardousChemicals/systemManage/warehouse/components/cupboard.vue b/src/views/hazardousChemicals/systemManage/warehouse/components/cupboard.vue
index ff92737..fd431e1 100644
--- a/src/views/hazardousChemicals/systemManage/warehouse/components/cupboard.vue
+++ b/src/views/hazardousChemicals/systemManage/warehouse/components/cupboard.vue
@@ -9,8 +9,8 @@
:close-on-click-modal="false"
>
<el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
- <el-form-item label="存储柜名:" prop="cupboardName" >
- <el-input v-model.trim="state.form.cupboardName" placeholder="请输入存储柜名"></el-input>
+ <el-form-item label="副柜名称:" prop="cupboardName" >
+ <el-input v-model.trim="state.form.cupboardName" placeholder="请输入副柜名称"></el-input>
</el-form-item>
<el-form-item label="描述:" prop="mess" >
<el-input type="textarea" v-model.trim="state.form.mess" placeholder="请输入描述"></el-input>
@@ -47,14 +47,14 @@
},
formRules:{
- cupboardName: [{ required: true, trigger: "blur", message: '请输入存储柜名' }],
+ cupboardName: [{ required: true, trigger: "blur", message: '请输入副柜名称' }],
},
})
const warehouseId = ref(null)
const openDialog = async (type, value) => {
state.form.warehouseId = value.id
- title.value = type === 'add' ? '新增存储柜' : type ==='edit' ? '编辑存储柜':'' ;
+ title.value = type === 'add' ? '新增副柜' : type ==='edit' ? '编辑副柜':'' ;
if(type === 'edit' ) {
state.form = JSON.parse(JSON.stringify(value));
}
@@ -64,7 +64,7 @@
const onSubmit = async () => {
const valid = await busRef.value.validate();
if(valid){
- if(title.value === '新增存储柜'){
+ if(title.value === '新增副柜'){
const {id, ...data} = JSON.parse(JSON.stringify(state.form))
const res = await addCupboard(data)
if(res.code === 200){
@@ -79,7 +79,7 @@
busRef.value.clearValidate();
reset();
dialogVisible.value = false;
- }else if(title.value === '编辑存储柜'){
+ }else if(title.value === '编辑副柜'){
const {createBy,createTime,delFlag,...data} = JSON.parse(JSON.stringify(state.form))
const res = await editCupboard(data)
if(res.code === 200){
diff --git a/src/views/hazardousChemicals/systemManage/warehouse/components/warehouseDialog.vue b/src/views/hazardousChemicals/systemManage/warehouse/components/warehouseDialog.vue
index 89cb169..ba23518 100644
--- a/src/views/hazardousChemicals/systemManage/warehouse/components/warehouseDialog.vue
+++ b/src/views/hazardousChemicals/systemManage/warehouse/components/warehouseDialog.vue
@@ -9,8 +9,8 @@
:close-on-click-modal="false"
>
<el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
- <el-form-item label="仓库名称:" prop="name" >
- <el-input v-model.trim="state.form.name" placeholder="请输入仓库名称"></el-input>
+ <el-form-item label="主柜名称:" prop="name" >
+ <el-input v-model.trim="state.form.name" placeholder="请输入主柜名称"></el-input>
</el-form-item>
<el-form-item label="描述:" prop="remark" >
<el-input type="textarea" v-model.trim="state.form.remark" placeholder="请输入描述"></el-input>
@@ -41,16 +41,16 @@
const startPhone = ref('');
const validateName = (rule, value, callback)=>{
if(value === ''){
- callback(new Error('请输入仓库名称'))
- }else if(title.value === '编辑仓库' && value === startUsername.value){
+ callback(new Error('请输入主柜名称'))
+ }else if(title.value === '编辑主柜' && value === startUsername.value){
callback()
}else{
let param = {}
- if(title.value === '新增仓库') {
+ if(title.value === '新增主柜') {
param = {
name:value
}
- }else if(title.value === '编辑仓库'){
+ }else if(title.value === '编辑主柜'){
param = {
name:value,
id: state.form.id
@@ -58,7 +58,7 @@
}
checkName(param).then((res)=>{
if(res.data == false){
- callback(new Error('仓库名称已被占用,请更换名称'))
+ callback(new Error('主柜名称已被占用,请更换名称'))
}else{
callback()
}
@@ -80,7 +80,7 @@
const openDialog = async (type, value) => {
- title.value = type === 'add' ? '新增仓库' : type ==='edit' ? '编辑仓库':'' ;
+ title.value = type === 'add' ? '新增主柜' : type ==='edit' ? '编辑主柜':'' ;
if(type === 'edit' ) {
state.form = JSON.parse(JSON.stringify(value));
startUsername.value = value.username
@@ -91,7 +91,7 @@
const onSubmit = async () => {
const valid = await busRef.value.validate();
if(valid){
- if(title.value === '新增仓库'){
+ if(title.value === '新增主柜'){
const {id, ...data} = JSON.parse(JSON.stringify(state.form))
const res = await addWarehouse(data)
if(res.code === 200){
@@ -106,7 +106,7 @@
busRef.value.clearValidate();
reset();
dialogVisible.value = false;
- }else if(title.value === '编辑仓库'){
+ }else if(title.value === '编辑主柜'){
const {...data} = JSON.parse(JSON.stringify(state.form))
const res = await editWarehouse(data)
if(res.code === 200){
diff --git a/src/views/hazardousChemicals/systemManage/warehouse/index.vue b/src/views/hazardousChemicals/systemManage/warehouse/index.vue
index b887376..721f444 100644
--- a/src/views/hazardousChemicals/systemManage/warehouse/index.vue
+++ b/src/views/hazardousChemicals/systemManage/warehouse/index.vue
@@ -10,8 +10,8 @@
@click="openDialog('add',{})"
>新增</el-button>
</el-form-item>
- <el-form-item label="仓库名称:" >
- <el-input v-model="data.queryParams.name" placeholder="请输仓库名称"></el-input>
+ <el-form-item label="主柜名称:" >
+ <el-input v-model="data.queryParams.name" placeholder="请输入主柜名称"></el-input>
</el-form-item>
<el-form-item >
<el-button
@@ -31,7 +31,7 @@
<el-table-column type="expand">
<template #default="props">
<el-table :data="props.row.warehouseCupboards" style="width: 90%;margin-left: 5%" :row-key="getRowKeys" border>
- <el-table-column label="存储柜名" prop="cupboardName" align="center" />
+ <el-table-column label="副柜名称" prop="cupboardName" align="center" />
<el-table-column label="描述" prop="mess" align="center" />
<el-table-column label="操作" show-overflow-tooltip width="150" >
<template #default="scope">
@@ -43,11 +43,11 @@
</template>
</el-table-column>
<el-table-column label="序号" type="index" align="center" width="80" />
- <el-table-column label="仓库名称" prop="name" align="center" />
+ <el-table-column label="主柜名称" prop="name" align="center" />
<el-table-column label="描述" prop="remark" align="center" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200" >
<template #default="scope">
- <el-button link type="primary" @click="addCupboard('add',scope.row)">新增存储柜</el-button>
+ <el-button link type="primary" @click="addCupboard('add',scope.row)">新增副柜</el-button>
<el-button link type="primary" @click="openDialog('edit',scope.row)">编辑</el-button>
<el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button>
</template>
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/detail.vue b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/detail.vue
new file mode 100644
index 0000000..b6b0fc6
--- /dev/null
+++ b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/detail.vue
@@ -0,0 +1,331 @@
+<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" :cell-style="cellStyle">
+ <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>{{scope.row.remaining}}{{scope.row.hazmatBasic.unit}}</span>
+
+ </template>
+ </el-table-column>
+ <el-table-column label="主柜" prop="warehouseName" align="center" />
+ <el-table-column label="副柜" prop="cupboardName" align="center" width="120" />
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
+ <template #default="scope">
+<!-- <el-button link type="primary" v-if="scope.row.state ===0 || scope.row.state === 1" @click="editNum(scope.row)">零头修改</el-button>-->
+ <el-button link type="primary" @click="viewFlow(scope.row)">取用记录</el-button>
+<!-- <el-button link type="danger" v-if="scope.row.state === 0 || scope.row.state === 1|| scope.row.state === 2" @click="disCard(scope.row)">标签作废</el-button>-->
+<!-- <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>
+ <el-dialog
+ v-model="dialogVisible"
+ width="650px"
+ :before-close="handleClose"
+ :close-on-press-escape="false"
+ :close-on-click-modal="false"
+ >
+ <flow-deail ref="flowRef"></flow-deail>
+ </el-dialog>
+ <el-dialog
+ v-model="editNumDialog"
+ width="650px"
+ title="余量修改"
+ :before-close="handleCloseNum"
+ :close-on-press-escape="false"
+ :close-on-click-modal="false"
+ >
+ <el-form :model="data.form" size="default" ref="busRef" :rules="data.formRules" label-width="150px" >
+ <el-form-item label="在库余量:" prop="remaining" >
+ <el-input v-model.trim="data.form.remaining" @input="requiredDurationEventMetering($event)" placeholder="请输入余量"></el-input>
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="handleCloseNum" size="default">取 消</el-button>
+ <el-button type="primary" @click="onSubmitNum" size="default" v-preReClick>确认</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+
+<script setup>
+import {nextTick, onMounted, reactive, ref} from "vue";
+import {useRoute, useRouter} from "vue-router";
+import flowDeail from '../../../../components/flowDetail.vue'
+import {ElMessage, ElMessageBox} from "element-plus";
+import {
+ changeRawRemaining,
+ delRawRecord,
+ disCardRaw,
+ getRawDetail,
+ getWhRawDetail
+} from "@/api/hazardousChemicals/rawRecord";
+import viewQRcode from '@/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/viewQR.vue'
+import Cookies from "js-cookie";
+const route = useRoute()
+const router = useRouter();
+const dialogRef = ref();
+const dialogVisible = ref(false)
+const editNumDialog = 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: '待入库'
+ },
+
+ ],
+ form: {
+ id: '',
+ remaining: ''
+ },
+ formRules: {
+ remaining: [{ required: true, trigger: "blur", message: '请输入余量' }],
+ }
+});
+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: "/warehouseManageMenu/orderWarehouse", query: { val: v } });
+}
+const viewQR = (val) => {
+ dialogRef.value.openDialog('raw',val)
+}
+const handleClose = () => {
+ dialogVisible.value = false
+}
+const disCard = async (val) => {
+ ElMessageBox.confirm(
+ '确定作废该标签?',
+ '提示',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then( async() => {
+ const res = await disCardRaw(val.id)
+ if(res.code == 200){
+ ElMessage.success('操作成功')
+ await getList()
+ }else{
+ ElMessage.warning(res.message)
+ }
+ })
+
+
+}
+const viewFlow = (val) => {
+ dialogVisible.value = true
+ nextTick(() => {
+ flowRef.value.openDialog('raw',val)
+ })
+}
+
+const cellStyle = ({ row, column,rowIndex, columnIndex }) => {
+ let arr = []
+ if (data.dataList !== null) {
+ data.dataList.filter((item, index) => {
+ arr.push(item.basicId)
+ })
+ }
+ for (let i = 0; i <= arr.length; i++) {
+ if (arr[i] == row.basicId) {
+ if(row.state === 3 && row.remaining < row.hazmatBasic.metering){
+ if (columnIndex === 11 || columnIndex === 10){
+ return { color:' red' }
+ }
+ }else if(row.remaining < row.hazmatBasic.metering){
+ if (columnIndex === 11 || columnIndex === 10){
+ return { color: '#ff9900' }
+ }
+ }
+ }
+ }
+};
+const chooseItem = ref()
+const editNum = (val) => {
+ chooseItem.value = val
+ data.form.id = val.id
+ data.form.remaining = val.remaining
+ editNumDialog.value = true
+
+}
+const handleCloseNum = () => {
+ data.form = {
+ id: '',
+ remaining: ''
+ }
+ chooseItem.value = {}
+ editNumDialog.value = false
+}
+
+const onSubmitNum = () => {
+ if(chooseItem.value.remaining < data.form.remaining){
+ ElMessage.warning('修改值不能大于等于在库余量')
+ return;
+ }
+ ElMessageBox.confirm(
+ '确定修改此条数据的余量?',
+ '提示',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then( async() => {
+ const res = await changeRawRemaining(data.form)
+ if(res.code == 200){
+ ElMessage.success('数据修改成功')
+ editNumDialog.value = false;
+ await getList()
+ }else{
+ ElMessage.warning(res.message)
+ }
+ })
+
+
+}
+const requiredDurationEventMetering =(value) =>{
+ let dat =
+ ("" + value) // 第一步:转成字符串
+ .replace(/[^\d^\.]+/g, "") // 第二步:把不是数字,不是小数点的过滤掉
+ .replace(/^0+(\d)/, "$1") // 第三步:第一位0开头,0后面为数字,则过滤掉,取后面的数字
+ .replace(/^\./, "0.") // 第四步:如果输入的第一位为小数点,则替换成 0. 实现自动补全
+ .match(/^\d*(\.?\d{0,2})/g)[0] || ""; // 第五步:最终匹配得到结果 以数字开头,只有一个小数点,而且小数点后面只能有0到2位小数
+ data.form.remaining = dat
+}
+</script>
+
+<style scoped lang="scss">
+
+</style>
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/orderDialog.vue b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/orderDialog.vue
new file mode 100644
index 0000000..1f5abf4
--- /dev/null
+++ b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/components/orderDialog.vue
@@ -0,0 +1,301 @@
+<template>
+ <div class="notice">
+ <el-dialog
+ v-model="dialogVisible"
+ :title="title"
+ width="850px"
+ :before-close="handleClose"
+ :close-on-press-escape="false"
+ :close-on-click-modal="false"
+ >
+ <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" >
+ <el-form-item required label= "申购订单列表" >
+ <el-select
+ clearable
+ v-model="state.orderName"
+ filterable
+ remote
+ reserve-keyword
+ placeholder="请输入申购订单"
+ remote-show-suffix
+ :remote-method="getOrderList"
+ style="width: 50%;margin-bottom:5px"
+ @change="selectValue"
+ >
+ <el-option
+ v-for="item in state.orderList"
+ :key="item.id"
+ :label="item.subscribeNum"
+ :value="item.subscribeNum"
+ />
+ </el-select>
+ <div style="display: flex;width: 100%;margin-top: 5px">
+ <el-table :data="state.form.subscribeHazmats" :border="true">
+ <el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
+ <el-table-column label="危化品名称" align="center" >
+ <template #default="{row,$index}">
+ <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatName'" :rules="state.formRules.hazmatName">
+ <el-input type="textarea" :rows="1" v-model="row.hazmatName" placeholder="请输入危化品名称"></el-input>
+ </el-form-item>
+ </template>
+ </el-table-column>
+ <el-table-column label="数量" align="center" >
+ <template #default="{row,$index}">
+ <el-form-item :prop="'subscribeHazmats.' + '[' + $index + ']' + '.hazmatCount'" :rules="state.formRules.hazmatCount">
+ <el-input v-model="row.hazmatCount" @input="row.hazmatCount = row.hazmatCount.replace(/[^0-9]/g,'')" placeholder="请输入数量"></el-input>
+ </el-form-item>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ </el-form-item>
+ <el-form-item label="主柜:" prop="warehouseName" >
+ <el-select
+ clearable
+ v-model="state.form.warehouseName"
+ filterable
+ remote
+ reserve-keyword
+ placeholder="请输入主柜"
+ remote-show-suffix
+ :remote-method="getWareHouseList"
+ style="width: 50%"
+ @change="selectWareValue"
+ >
+ <el-option
+ v-for="item in state.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="state.form.cupboardId"
+ placeholder="请选择副柜"
+ style="width: 50%"
+ >
+ <el-option
+
+ v-for="item in state.cupList"
+ :key="item.id"
+ :label="item.cupboardName"
+ :value="item.id"
+ />
+ </el-select>
+ </el-form-item>
+ <el-form-item label="批号:" prop="batchNo" >
+ <el-input v-model.trim="state.form.batchNo" style="width: 50%" placeholder="请输入批号"></el-input>
+ </el-form-item>
+ </el-form>
+ <template #footer v-if="title !=='查看'">
+ <span class="dialog-footer">
+ <el-button @click="handleClose" size="default">取 消</el-button>
+ <el-button type="primary" @click="onSubmit" size="default" v-preReClick>确认</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
+</template>
+<script setup>
+import {reactive, ref, toRefs} from 'vue'
+import {ElMessage, ElMessageBox} from "element-plus";
+import {addCompany, checkName, distributeCompany, editCompany} from "@/api/hazardousChemicals/company";
+import {verifyPhone, verifyPwd} from "@/utils/validate";
+import {getUser} from "@/api/hazardousChemicals/user";
+import {getToken} from "@/utils/auth";
+import {renderAsync} from "docx-preview";
+import {addSubscribe, editSubscribe, getSubscribeList} from "@/api/hazardousChemicals/subscribeApply";
+import {getCupById, getWarehouse} from "@/api/hazardousChemicals/warehouse";
+import moment from "moment";
+
+const dialogVisible = ref(false);
+const title = ref("");
+const busRef = ref();
+const length = ref()
+const emit = defineEmits(["getList"]);
+const state = reactive({
+ form: {
+ id: '',
+ checkId: null,
+ checkName:'',
+ subscribeHazmats:[],
+ },
+ orderList:[],
+ wareHouseList: [],
+ cupList: [],
+ formRules:{
+ checkId: [{ required: true, message: '请选择审核人', trigger: 'blur' }],
+ filePath:[{ required: true, message: '请上传文件', trigger: 'blur' }],
+ hazmatName: [{ required: true, message: '', trigger: 'blur' }],
+ hazmatCount: [{ required: true, message: '', trigger: 'blur' }],
+ },
+
+})
+
+
+const openDialog = async (type, value) => {
+ await getOrderList("")
+ await getWareHouseList("")
+ title.value = type === 'add' ? '申购申请' : type ==='edit' ? '申购编辑' : '查看' ;
+ if(type === 'edit' || type === 'view') {
+ state.form = JSON.parse(JSON.stringify(value));
+ if(state.form.filePath) {
+ const obj = {
+ url: value.filePath,
+ name: value.fileName
+ }
+ state.fileList = [obj]
+ }
+ }
+ state.form.batchNo = moment(new Date()).format("YYYYMMDD")
+ dialogVisible.value = true;
+}
+
+const onSubmit = async () => {
+ const valid = await busRef.value.validate();
+ if(valid){
+ if(title.value === '申购申请'){
+ const {id, ...data} = JSON.parse(JSON.stringify(state.form))
+ const res = await addSubscribe(data)
+ if(res.code === 200){
+ ElMessage({
+ type: 'success',
+ message: '申请成功'
+ });
+ }else{
+ ElMessage.warning(res.message)
+ }
+ emit("getList")
+ busRef.value.clearValidate();
+ reset();
+ dialogVisible.value = false;
+ }else if(title.value === '申购编辑'){
+ const {...data} = JSON.parse(JSON.stringify(state.form))
+ const res = await editSubscribe(data)
+ if(res.code === 200){
+ ElMessage({
+ type: 'success',
+ message: '编辑成功'
+ });
+ }else{
+ ElMessage.warning(res.message)
+ }
+ emit("getList")
+ busRef.value.clearValidate();
+ reset();
+ dialogVisible.value = false;
+ }
+ }
+}
+
+const handleClose = () => {
+ busRef.value.clearValidate();
+ reset();
+ dialogVisible.value = false;
+ emit("getList")
+}
+const reset = () => {
+ state.form = {
+ id: '',
+ checkId: null,
+ filePath: '',
+ fileName: '',
+ subscribeHazmats:[],
+ }
+}
+const selectValue = (val) => {
+ state.form.orderId = null
+ if(!val){
+ state.form.subscribeHazmats = []
+ return
+ }
+ state.orderList.forEach(item => {
+ if(item.subscribeNum === val){
+ state.form.orderId = item.id
+ state.form.subscribeHazmats = item.subscribeHazmats
+ }
+ })
+}
+const getOrderList = async (val) => {
+ let param = {}
+ if(val != ""){
+ param = {
+ name: val,
+ status: 1
+ }
+ }else {
+ param = {
+ pageNum: 1,
+ pageSize: 10,
+ status: 1
+ }
+ }
+ const res = await getSubscribeList(param)
+ if(res.code == 200){
+ state.orderList = res.data.list
+ }else{
+ ElMessage.warning(res.message)
+ }
+}
+
+const selectWareValue = (val) => {
+ state.form.cupboardId = null
+ state.wareHouseList.forEach(item => {
+ if(item.name === val){
+ state.form.warehouseId = item.id
+ getCupList(item.id)
+ }
+ })
+}
+const getCupList = async (val) => {
+ const res = await getCupById(val)
+ if(res.code == 200) {
+ state.cupList = res.data
+ }else {
+ ElMessage.warning(res.message)
+ }
+}
+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){
+ state.wareHouseList = res.data.list
+ }else{
+ ElMessage.warning(res.message)
+ }
+}
+
+
+
+defineExpose({
+ openDialog
+});
+
+
+</script>
+
+<style scoped lang="scss">
+.notice{
+ :deep(.el-form .el-form-item__label) {
+ font-size: 15px;
+ }
+ .file {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+ }
+}
+</style>
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/index.vue b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/index.vue
new file mode 100644
index 0000000..1f139ab
--- /dev/null
+++ b/src/views/hazardousChemicals/warehouseManageMenu/orderWarehouse/index.vue
@@ -0,0 +1,334 @@
+<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>
+ <el-button
+ type="primary"
+ plain
+ icon="Plus"
+ @click="openDialog('add',{})"
+ >订单入库</el-button>
+ </el-form-item>
+ <el-form-item label="申购单号:" >
+ <el-input v-model="data.queryParams.params.name" 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"
+ @click="getList"
+ >查询</el-button>
+ <el-button
+ type="primary"
+ plain
+ @click="reset"
+ >重置</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ <!-- 表格数据 -->
+ <el-table v-loading="loading" :data="dataList" :border="true">
+ <el-table-column label="序号" type="index" align="center" width="80" />
+ <el-table-column label="申购单号" prop="hazmatBasicNo" align="center" />
+ <el-table-column label="危化品名称" prop="hazmatBasic.productSn" align="center" class-name="subscribe-quantity-cell">
+ <template #default="scope">
+ <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+ <div
+ v-for="(item, index) in scope.row.subscribeHazmats"
+ :key="item.id"
+ style="
+ width: 100%;
+ text-align: center;
+ padding: 8px 0;
+ border-bottom: 1px solid #ebeef5;"
+ :style="{
+ borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+ }"
+ >
+ <span>{{ item.hazmatName }}</span>
+ </div>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="入库数量" prop="num" align="center" class-name="subscribe-quantity-cell">
+ <template #default="scope">
+ <div style="width: 100%; height: 100%;display: flex; flex-direction: column;justify-content: center;align-items: center; ">
+ <div
+ v-for="(item, index) in scope.row.subscribeHazmats"
+ style="
+ width: 100%;
+ text-align: center;
+ padding: 8px 0;
+ border-bottom: 1px solid #ebeef5;"
+ :style="{
+ borderBottom: index === scope.row.subscribeHazmats.length - 1 ? 'none' : '1px solid #ebeef5'
+ }"
+ >
+ {{ item.hazmatCount }}
+ </div>
+ </div>
+ </template>
+ </el-table-column>
+ <el-table-column label="主柜" prop="warehouseName" align="center" >
+ <template #default="scope">
+ <span>{{scope.row.name}}</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="副柜" prop="cupboard.cupboardName" align="center" width="120" />
+ <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="操作" 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>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <pagination
+ v-show="total > 0"
+ :total="total"
+ v-model:page="queryParams.pageNum"
+ v-model:limit="queryParams.pageSize"
+ @pagination="getList"
+ />
+
+ <orderDialog ref="dialogRef" @getList=getList></orderDialog>
+ </div>
+</template>
+
+<script setup>
+import {getCurrentInstance, onMounted, onUnmounted, reactive, ref, toRefs} from "vue";
+import {ElMessage, ElMessageBox} from "element-plus";
+import orderDialog from './components/orderDialog.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();
+const codeRef = ref();
+const codeMoreRef = ref();
+const router = useRouter()
+const route = useRoute()
+const dialogVisible =ref(false)
+const data = reactive({
+ queryParams: {
+ pageNum: 1,
+ pageSize: 10,
+ params :{
+ name: '',
+ productSn: '',
+ cupboardId: null,
+ warehouseId: null
+ }
+ },
+ total: 0,
+ dataList: [],
+ wareHouseList: [],
+ cupList: []
+
+});
+
+const { queryParams, total, dataList } = toRefs(data);
+const classHourRef = ref();
+onMounted(()=>{
+ getList()
+ getWareHouseList("")
+})
+
+const getList = async () => {
+ // loading.value = true
+ // const res = await getRawRecord(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 openDialog = (type, value) => {
+ dialogRef.value.openDialog(type, value);
+}
+
+/** 重置新增的表单以及其他数据 */
+function reset() {
+ data.queryParams = {
+ pageNum: 1,
+ pageSize: 10,
+ params :{
+ name: '',
+ productSn: '',
+ cupboardId: null,
+ warehouseId: null
+ }
+ }
+ data.cupList = []
+ getList()
+ getWareHouseList("")
+
+}
+const handleDelete = (val) => {
+ ElMessageBox.confirm(
+ '确定删除此条数据?',
+ '提示',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then( async() => {
+ const res = await delRawRecord(val.id)
+ if(res.code == 200){
+ ElMessage.success('数据删除成功')
+ await getList()
+ }else{
+ ElMessage.warning(res.message)
+ }
+ })
+}
+
+const doEntry = (val) => {
+ ElMessageBox.confirm(
+ '确定入库该危化品?',
+ '提示',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then( async() => {
+ const res = await doEntryRaw(val.id)
+ if(res.code == 200){
+ ElMessage.success('入库成功')
+ await getList()
+ }else{
+ ElMessage.warning(res.message)
+ }
+ })
+}
+
+const entryItem = ref()
+const printCode = (val) => {
+ console.log("val",val)
+ entryItem.value = val
+ dialogVisible.value = true
+
+ // codeRef.value.openDialog('raw',val);
+
+}
+const openPrint = (type) => {
+ if(type === 'one'){
+ codeRef.value.openDialog('raw',entryItem.value);
+ }else {
+ codeMoreRef.value.openDialog('raw',entryItem.value);
+ }
+
+}
+const toDetail = (val) => {
+ const obj = {
+ pageNum: data.queryParams.pageNum,
+ pageSize: data.queryParams.pageSize,
+ entryId: val.id,
+ }
+ const v = JSON.stringify(obj)
+ router.push({ path: "/whRawDetailNew", 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)
+ }
+}
+const handlePrintClose = () => {
+ dialogVisible.value = false
+}
+
+defineExpose({
+ getList
+});
+
+</script>
+<style scoped>
+/* 只对申购数量这一列生效 */
+:deep(.subscribe-quantity-cell .cell) {
+ padding: 0 !important; /* 关键:把默认的padding清零,优先级拉满 */
+}
+</style>
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addProDialog.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addProDialog.vue
index 31c6a3d..367c56b 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addProDialog.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addProDialog.vue
@@ -30,14 +30,14 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="仓库:" prop="warehouseName" >
+ <el-form-item label="主柜:" prop="warehouseName" >
<el-select
clearable
v-model="state.form.warehouseName"
filterable
remote
reserve-keyword
- placeholder="请输入所入仓库"
+ placeholder="请输入所入主柜"
remote-show-suffix
:remote-method="getWareHouseList"
style="width: 100%"
@@ -51,10 +51,10 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="存储柜:" prop="cupboardId" >
+ <el-form-item label="副柜:" prop="cupboardId" >
<el-select
v-model="state.form.cupboardId"
- placeholder="请选择存储柜"
+ placeholder="请选择副柜"
style="width: 100%"
>
<el-option
@@ -128,7 +128,7 @@
num: [{ required: true, trigger: "blur", validator: validateNum }],
warehouseName: [{ required: true, trigger: "blur", message: '请选择入库仓库' }],
basicName: [{ required: true, trigger: "blur", message: '请选择入库成品' }],
- cupboardId: [{ required: true, trigger: "blur", message: '请选择存储柜' }]
+ cupboardId: [{ required: true, trigger: "blur", message: '请选择副柜' }]
// batchNo: [{ required: true, trigger: "blur", message: '请输入批号' }]
},
proList: [],
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addRawDialog.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addRawDialog.vue
index f37ac11..3febf73 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addRawDialog.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/addRawDialog.vue
@@ -30,14 +30,14 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="仓库:" prop="warehouseName" >
+ <el-form-item label="主柜:" prop="warehouseName" >
<el-select
clearable
v-model="state.form.warehouseName"
filterable
remote
reserve-keyword
- placeholder="请输入所入仓库"
+ placeholder="请输入所入主柜"
remote-show-suffix
:remote-method="getWareHouseList"
style="width: 100%"
@@ -51,10 +51,10 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="存储柜:" prop="cupboardId" >
+ <el-form-item label="副柜:" prop="cupboardId" >
<el-select
v-model="state.form.cupboardId"
- placeholder="请选择存储柜"
+ placeholder="请选择副柜"
style="width: 100%"
>
<el-option
@@ -135,7 +135,7 @@
num: [{ required: true, trigger: "blur", validator: validateNum }],
warehouseName: [{ required: true, trigger: "blur", message: '请选择入库仓库' }],
basicName: [{ required: true, trigger: "blur", message: '请选择入库成品' }],
- cupboardId: [{ required: true, trigger: "blur", message: '请选择存储柜' }]
+ cupboardId: [{ required: true, trigger: "blur", message: '请选择副柜' }]
},
rawList: [],
wareHouseList: [],
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue
index d6219a6..4cc1683 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/proDetail.vue
@@ -63,8 +63,8 @@
</template>
</el-table-column>
- <el-table-column label="所在仓库" prop="warehouseName" align="center" />
- <el-table-column label="存储柜" prop="cupboardName" align="center" width="120" />
+ <el-table-column label="所在主柜" prop="warehouseName" align="center" />
+ <el-table-column label="副柜" prop="cupboardName" align="center" width="120" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
<template #default="scope">
<el-button link type="primary" @click="viewFlow(scope.row)">取用记录</el-button>
@@ -95,13 +95,13 @@
<script setup>
import {nextTick, onMounted, reactive, ref} from "vue";
-import flowDeail from '../../../components/flowDetail.vue'
+import flowDeail from '../../../../components/flowDetail.vue'
import {useRoute, useRouter} from "vue-router";
import {
disCardPro,
getWhProDetail
} from "@/api/hazardousChemicals/productRecord";
-import viewQRcode from '@/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue'
+import viewQRcode from '@/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/viewQR.vue'
import {ElMessage, ElMessageBox} from "element-plus";
import Cookies from "js-cookie";
const route = useRoute()
@@ -175,7 +175,7 @@
}
const v = JSON.stringify(obj)
Cookies.set('typeWh','pro')
- router.push({ path: "/warehouseManage", query: { val: v } });
+ router.push({ path: "/warehouseManageMenu/warehouseManage", query: { val: v } });
}
const viewQR = (val) => {
dialogRef.value.openDialog('pro',val)
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/productTable.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/productTable.vue
index 86f3b77..442d6e8 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/productTable.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/productTable.vue
@@ -16,14 +16,14 @@
<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-form-item label="主柜:" prop="warehouseName" >
<el-select
clearable
v-model="data.queryParams.params.warehouseName"
filterable
remote
reserve-keyword
- placeholder="请输入所入仓库"
+ placeholder="请输入所入主柜"
remote-show-suffix
:remote-method="getWareHouseList"
style="width: 100%"
@@ -37,11 +37,11 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="存储柜:" prop="cupboardId" >
+ <el-form-item label="副柜:" prop="cupboardId" >
<el-select
clearable
v-model="data.queryParams.params.cupboardId"
- placeholder="请选择存储柜"
+ placeholder="请选择副柜"
style="width: 100%"
>
<el-option
@@ -80,12 +80,12 @@
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="数量" prop="num" align="center" width="120" />
- <el-table-column label="所在仓库" prop="warehouseName" align="center" >
+ <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="cupboard.cupboardName" align="center" width="120" />
+ <el-table-column label="副柜" prop="cupboard.cupboardName" align="center" width="120" />
<el-table-column label="批号" prop="batchNo" align="center" width="120" />
<el-table-column label="状态" prop="state" align="center">
<template #default="scope">
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue
index 90f5913..4208d86 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawDetail.vue
@@ -63,8 +63,8 @@
</template>
</el-table-column>
- <el-table-column label="所在仓库" prop="warehouseName" align="center" />
- <el-table-column label="存储柜" prop="cupboardName" align="center" width="120" />
+ <el-table-column label="所在主柜" prop="warehouseName" align="center" />
+ <el-table-column label="副柜" prop="cupboardName" align="center" width="120" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" >
<template #default="scope">
<el-button link type="primary" v-if="scope.row.state ===0 || scope.row.state === 1" @click="editNum(scope.row)">零头修改</el-button>
@@ -117,7 +117,7 @@
<script setup>
import {nextTick, onMounted, reactive, ref} from "vue";
import {useRoute, useRouter} from "vue-router";
-import flowDeail from '../../../components/flowDetail.vue'
+import flowDeail from '../../../../components/flowDetail.vue'
import {ElMessage, ElMessageBox} from "element-plus";
import {
changeRawRemaining,
@@ -126,7 +126,7 @@
getRawDetail,
getWhRawDetail
} from "@/api/hazardousChemicals/rawRecord";
-import viewQRcode from '@/views/hazardousChemicals/electronicWarehouse/components/viewQR.vue'
+import viewQRcode from '@/views/hazardousChemicals/electronicWarehouseMenu/electronicWarehouse/components/viewQR.vue'
import Cookies from "js-cookie";
const route = useRoute()
const router = useRouter();
@@ -215,7 +215,7 @@
}
const v = JSON.stringify(obj)
Cookies.set('typeWh','raw')
- router.push({ path: "/warehouseManage", query: { val: v } });
+ router.push({ path: "/warehouseManageMenu/warehouseManage", query: { val: v } });
}
const viewQR = (val) => {
dialogRef.value.openDialog('raw',val)
diff --git a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawTable.vue b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawTable.vue
index 7c3d5b2..671054b 100644
--- a/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawTable.vue
+++ b/src/views/hazardousChemicals/warehouseManageMenu/warehouseManage/components/rawTable.vue
@@ -16,14 +16,14 @@
<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-form-item label="主柜:" prop="warehouseName" >
<el-select
clearable
v-model="data.queryParams.params.warehouseName"
filterable
remote
reserve-keyword
- placeholder="请输入所入仓库"
+ placeholder="请输入所入主柜"
remote-show-suffix
:remote-method="getWareHouseList"
style="width: 100%"
@@ -37,11 +37,11 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="存储柜:" prop="cupboardId" >
+ <el-form-item label="副柜:" prop="cupboardId" >
<el-select
clearable
v-model="data.queryParams.params.cupboardId"
- placeholder="请选择存储柜"
+ placeholder="请选择副柜"
style="width: 100%"
>
<el-option
@@ -82,12 +82,12 @@
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="数量" prop="num" align="center" width="120" />
- <el-table-column label="所在仓库" prop="warehouseName" align="center" >
+ <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="cupboard.cupboardName" align="center" width="120" />
+ <el-table-column label="副柜" prop="cupboard.cupboardName" align="center" width="120" />
<el-table-column label="批号" prop="batchNo" align="center" width="120" />
<el-table-column label="状态" prop="state" align="center">
<template #default="scope">
diff --git a/src/views/tool/gen/basicInfoForm.vue b/src/views/tool/gen/basicInfoForm.vue
index 39c8515..ecfe10c 100644
--- a/src/views/tool/gen/basicInfoForm.vue
+++ b/src/views/tool/gen/basicInfoForm.vue
@@ -3,7 +3,7 @@
<el-row>
<el-col :span="12">
<el-form-item label="表名称" prop="tableName">
- <el-input placeholder="请输入仓库名称" v-model="info.tableName" />
+ <el-input placeholder="请输入主柜名称" v-model="info.tableName" />
</el-form-item>
</el-col>
<el-col :span="12">
--
Gitblit v1.9.2