From 96294e88135f07c1c3794c9dc2224bd7ca3ab986 Mon Sep 17 00:00:00 2001
From: liuying <1427574514@qq.com>
Date: 周二, 23 4月 2024 21:01:38 +0800
Subject: [PATCH] 物料信息
---
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/editForm.vue | 119 +
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/editForm.vue | 70
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/editForm.vue | 63
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/excelForm.vue | 181 +
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/editForm.vue | 123 +
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/excelForm.vue | 181 +
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs | 86
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addFormContainerPackaging.vue | 246 ++
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/index.vue | 523 +++++
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/detail.vue | 604 ++++++
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/index.vue | 40
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/excelForm.vue | 181 +
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addForm.vue | 13
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/index.vue | 512 +++++
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/addForm.vue | 94 +
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/editForm.vue | 12
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addForm.vue | 25
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/addForm.vue | 12
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs | 12
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/details.vue | 107 +
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/addForm.vue | 13
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/addFormBaseCustomer.vue | 205 ++
iWare_RawMaterialWarehouse_Web/src/components/Editor/WangEditor.vue | 2
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/index.vue | 717 +++++++
/dev/null | 349 ---
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue | 12
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/index.vue | 547 +++++
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue | 285 +++
iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/WmsContainerPackagingImport.xlsx | 0
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingOutput.cs | 6
iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/excelForm.vue | 181 +
31 files changed, 5,081 insertions(+), 440 deletions(-)
diff --git a/iWare_RawMaterialWarehouse_Web/src/components/Editor/WangEditor.vue b/iWare_RawMaterialWarehouse_Web/src/components/Editor/WangEditor.vue
index 7a79a9e..f037f76 100644
--- a/iWare_RawMaterialWarehouse_Web/src/components/Editor/WangEditor.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/components/Editor/WangEditor.vue
@@ -103,7 +103,7 @@
this.editor.create() // 鐢熸垚缂栬緫鍣�
this.editor.txt.text(this.value) // 鐢熸垚缂栬緫鍣�
- this.$emit('oninit', this.editor)
+ this.$emit('ok', this.editor)
}
},
beforeCreate () {
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/addForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/addForm.vue
index d9fa354..569f83d 100644
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/addForm.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/addForm.vue
@@ -9,22 +9,22 @@
<a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-form-item label="瀹瑰櫒绫诲瀷ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨婭D" v-decorator="['containerTypeId']" />
+ <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨婭D" v-decorator="['containerTypeId', {rules: [{required: true, message: '璇疯緭鍏ュ鍣ㄧ被鍨婭D锛�'}]}]" />
</a-form-item>
<a-form-item label="瀹瑰櫒绫诲瀷鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉�" v-decorator="['containerTypeName']" />
+ <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉�" v-decorator="['containerTypeName', {rules: [{required: true, message: '璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉帮紒'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡绫诲瀷ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨婭D" v-decorator="['materialTypeId']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨婭D" v-decorator="['materialTypeId', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨婭D锛�'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡绫诲瀷缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�" v-decorator="['materialTypeCode']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�" v-decorator="['materialTypeCode', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙凤紒'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡绫诲瀷鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉�" v-decorator="['materialTypeName']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉�" v-decorator="['materialTypeName', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉帮紒'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡瀹瑰櫒瀹归噺" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欏鍣ㄥ閲�" v-decorator="['boxQty']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欏鍣ㄥ閲�" v-decorator="['boxQty', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欏鍣ㄥ閲忥紒'}]}]" />
</a-form-item>
</a-form>
</a-spin>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/editForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/editForm.vue
index eb6a7d4..175ad58 100644
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/editForm.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/editForm.vue
@@ -9,22 +9,22 @@
<a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-form-item label="瀹瑰櫒绫诲瀷ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨婭D" v-decorator="['containerTypeId']" />
+ <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨婭D" v-decorator="['containerTypeId', {rules: [{required: true, message: '璇疯緭鍏ュ鍣ㄧ被鍨婭D锛�'}]}]" />
</a-form-item>
<a-form-item label="瀹瑰櫒绫诲瀷鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉�" v-decorator="['containerTypeName']" />
+ <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉�" v-decorator="['containerTypeName', {rules: [{required: true, message: '璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉帮紒'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡绫诲瀷ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨婭D" v-decorator="['materialTypeId']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨婭D" v-decorator="['materialTypeId', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨婭D锛�'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡绫诲瀷缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�" v-decorator="['materialTypeCode']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�" v-decorator="['materialTypeCode', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙凤紒'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡绫诲瀷鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉�" v-decorator="['materialTypeName']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉�" v-decorator="['materialTypeName', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉帮紒'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡瀹瑰櫒瀹归噺" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欏鍣ㄥ閲�" v-decorator="['boxQty']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欏鍣ㄥ閲�" v-decorator="['boxQty', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欏鍣ㄥ閲忥紒'}]}]" />
</a-form-item>
<a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item>
</a-form>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/index.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/index.vue
index 4a7714f..3bc1547 100644
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/index.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsContainerPackaging/index.vue
@@ -158,14 +158,14 @@
customHeaderCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
customCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
@@ -178,14 +178,14 @@
customHeaderCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
customCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
@@ -198,14 +198,14 @@
customHeaderCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
customCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
@@ -218,14 +218,14 @@
customHeaderCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
customCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
@@ -238,14 +238,14 @@
customHeaderCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
customCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
@@ -258,14 +258,14 @@
customHeaderCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
customCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '130px'//鏈�灏忓垪瀹借缃�
}
}
},
@@ -278,14 +278,14 @@
customHeaderCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
}
}
},
customCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
}
}
},
@@ -298,14 +298,14 @@
customHeaderCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
}
}
},
customCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
}
}
},
@@ -318,14 +318,14 @@
customHeaderCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
}
}
},
customCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
}
}
},
@@ -338,14 +338,14 @@
customHeaderCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
}
}
},
customCell: () => {
return {
style: {
- 'min-width': ''//鏈�灏忓垪瀹借缃�
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
}
}
},
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue
index a916adf..0abf95b 100644
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabForm.vue
@@ -14,7 +14,7 @@
<add-form ref="addForm" @ok="handleOk" />
</a-tab-pane>
<a-tab-pane key="2" tab="鎺у埗灞炴��" force-render>
- Content of Tab Pane 2
+ <add-control-rule ref="WmsControlRule" @ok="handleOk" />
</a-tab-pane>
<a-tab-pane key="3" tab="鎵规灞炴��">
闇�姹傚緟瀹�
@@ -38,16 +38,18 @@
<script>
import { WmsMaterialAdd, GetAreas, GetStations } from '@/api/modular/main/WmsMaterialManage'
import addForm from './tabItem/addForm.vue'
-import addFormBaseCustomer from './tabItem/addFormBaseCustomer.vue'
-import addFormContainerPackaging from './tabItem/addFormContainerPackaging.vue'
-import addFormSub from './tabItem/addFormWmsSubstituteGood.vue'
+import addFormBaseCustomer from './tabItem/addFormBaseCustomer/addFormBaseCustomer.vue'
+import addFormContainerPackaging from './tabItem/WmsContainerPackaging/addFormContainerPackaging.vue'
+import addFormSub from './tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue'
+import addControlRule from './tabItem/WmsControlRule/index.vue'
export default {
components: {
addForm,
addFormBaseCustomer,
addFormContainerPackaging,
- addFormSub
+ addFormSub,
+ addControlRule
},
data() {
return {
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormContainerPackaging.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addForm.vue
similarity index 75%
rename from iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormContainerPackaging.vue
rename to iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addForm.vue
index 0fca95c..569f83d 100644
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormContainerPackaging.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addForm.vue
@@ -1,25 +1,34 @@
锘�<template>
- <!-- 鍖呰鍏崇郴鍩虹琛� -->
- <a-form :form="form">
+ <a-modal
+ title="鏂板鍖呰鍏崇郴鍩虹琛�"
+ :width="900"
+ :visible="visible"
+ :confirmLoading="confirmLoading"
+ @ok="handleSubmit"
+ @cancel="handleCancel">
+ <a-spin :spinning="confirmLoading">
+ <a-form :form="form">
<a-form-item label="瀹瑰櫒绫诲瀷ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨婭D" v-decorator="['containerTypeId']" />
+ <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨婭D" v-decorator="['containerTypeId', {rules: [{required: true, message: '璇疯緭鍏ュ鍣ㄧ被鍨婭D锛�'}]}]" />
</a-form-item>
<a-form-item label="瀹瑰櫒绫诲瀷鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉�" v-decorator="['containerTypeName']" />
+ <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉�" v-decorator="['containerTypeName', {rules: [{required: true, message: '璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉帮紒'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡绫诲瀷ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨婭D" v-decorator="['materialTypeId']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨婭D" v-decorator="['materialTypeId', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨婭D锛�'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡绫诲瀷缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�" v-decorator="['materialTypeCode']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�" v-decorator="['materialTypeCode', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙凤紒'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡绫诲瀷鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉�" v-decorator="['materialTypeName']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉�" v-decorator="['materialTypeName', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉帮紒'}]}]" />
</a-form-item>
<a-form-item label="鐗╂枡瀹瑰櫒瀹归噺" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欏鍣ㄥ閲�" v-decorator="['boxQty']" />
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欏鍣ㄥ閲�" v-decorator="['boxQty', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欏鍣ㄥ閲忥紒'}]}]" />
</a-form-item>
</a-form>
+ </a-spin>
+ </a-modal>
</template>
<script>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addFormContainerPackaging.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addFormContainerPackaging.vue
new file mode 100644
index 0000000..74d7399
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/addFormContainerPackaging.vue
@@ -0,0 +1,246 @@
+锘�<template>
+ <!-- 鍖呰鍏崇郴 -->
+ <div style="background-color: white">
+ <!-- <a-spin :spinning="loading"> -->
+ <div class="wms-task-management-detail-div">
+ <div class="drawer-content">
+ <!-- <span style="font-weight:bold;cursor:default;">
+ <a style="cursor:default;">{{ row.no }}</a>鍗曟嵁璇︽儏
+ </span> -->
+ <div style="margin-top: 10px;">
+ <a-table :columns="columns" :data-source="list" row-key="id" :pagination="false" :scroll="{ x: true }">
+ <template slot="index" slot-scope="text, record, index">{{ index + 1 }}</template>
+ <span slot="containerStatusscopedSlots" slot-scope="text">
+ <a-tag :color="text == '1' ? '#daa520' : text == '2' ? '#cd5c5c' : text == '3' ? '#add8e6' : '#696969'">{{
+ 'orderdetails_statusenum' | dictType(text)
+ }}</a-tag>
+ </span>
+
+ <span slot="action" slot-scope="text, record">
+ <a-popconfirm v-if="hasPerm('BaseCustomer:delete')" placement="topRight" title="纭鍒犻櫎锛�"
+ @confirm="() => itemDelete(record, index)">
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+ </span>
+ </a-table>
+ </div>
+ </div>
+
+ <p @click="visible = true">鏂板琛�</p>
+
+ <a-modal title="鍖呰鍏崇郴" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit"
+ @cancel="handleCancel">
+ <show-list ref="showList" @ok="handleOk" />
+ <!-- <a-spin :spinning="confirmLoading"></a-spin> -->
+ </a-modal>
+ </div>
+ </div>
+</template>
+
+<script>
+import { WmsOrderRukuDetail } from '@/api/modular/main/WmsOrderManage'
+import showList from './index.vue'
+
+export default {
+ name: 'wmsOrderRukuManagementDetailDrawer',
+ emits: ['update:visible'],
+ props: {
+ visible: {
+ type: Boolean,
+ default: false
+ },
+ row: {
+ type: Object,
+ default: function () {
+ return {}
+ }
+ }
+ },
+ components: {
+ showList
+ },
+ data() {
+ return {
+ loading: false,
+ containerStatusData: [],
+ list: [],
+ columns: [
+ {
+ dataIndex: 'index',
+ title: '搴忓彿',
+ fixed: 'left',
+ width: '60',
+ scopedSlots: { customRender: 'index' },
+ align: 'center'
+ },
+ {
+ title: '瀹瑰櫒绫诲瀷鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'containerTypeName'
+ },
+ {
+ title: '鐗╂枡绫诲瀷缂栧彿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'materialTypeCode'
+ },
+ {
+ title: '鐗╂枡绫诲瀷鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'materialTypeName'
+ },
+ {
+ title: '鐗╂枡瀹瑰櫒瀹归噺',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'boxQty'
+ },
+ ],
+ // 鍒嗛〉
+ ipagination: {
+ current: 1,
+ pageSize: 10,
+ pageSizeOptions: ['10', '20', '30', '40'],
+ showTotal: (total, range) => {
+ return range[0] + '-' + range[1] + '鍏�' + total + '鏉�'
+ },
+ showQuickJumper: true,
+ showSizeChanger: true,
+ total: 0,
+ size: 'small'
+ }
+ }
+ },
+
+ created() {
+ const containerStatusOption = this.$options
+ this.containerStatusData = containerStatusOption.filters['dictData']('orderdetails_statusenum')
+
+ this.columns.push({
+ title: '鎿嶄綔',
+ width: '150px',
+ dataIndex: 'action',
+ scopedSlots: { customRender: 'action' }
+ })
+ },
+ methods: {
+ onClose() {
+ this.close()
+ },
+ close() {
+ this.$emit('update:visible', false)
+ },
+ afterVisibleChange(visible) {
+ if (visible) {
+ this.initShow()
+ } else {
+ this.afterClsoe()
+ }
+ },
+ initShow() {
+ this.loading = true
+ this.getList(() => {
+ this.loading = false
+ })
+ },
+ getList(row) {
+ let params = { id: row.id }
+ WmsOrderRukuDetail(params)
+ .then(d => {
+ this.list = d.data.rows || []
+ this.$emit('update:visible', true)
+ // callback && callback(true)
+ })
+ .catch(() => {
+ this.$emit('update:visible', false)
+ this.list = []
+ // callback && callback(false)
+ })
+ },
+ afterClsoe() {
+ this.list = []
+ },
+ handleOk(param) {
+ this.list = param
+ },
+ handleSubmit() {
+ this.visible = false
+ },
+ handleCancel() {
+ this.visible = false
+ },
+ itemDelete(record, index) {
+ this.list.splice(index, 1)
+ }
+ }
+}
+</script>
+
+<style lang="less" scoped>
+.wms-task-management-detail-div {
+ height: 100%;
+ overflow: auto;
+
+ .drawer-content {
+ padding: 16px;
+ }
+}
+</style>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/editForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/editForm.vue
new file mode 100644
index 0000000..175ad58
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/editForm.vue
@@ -0,0 +1,119 @@
+锘�<template>
+ <a-modal
+ title="缂栬緫鍖呰鍏崇郴鍩虹琛�"
+ :width="900"
+ :visible="visible"
+ :confirmLoading="confirmLoading"
+ @ok="handleSubmit"
+ @cancel="handleCancel">
+ <a-spin :spinning="confirmLoading">
+ <a-form :form="form">
+ <a-form-item label="瀹瑰櫒绫诲瀷ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨婭D" v-decorator="['containerTypeId', {rules: [{required: true, message: '璇疯緭鍏ュ鍣ㄧ被鍨婭D锛�'}]}]" />
+ </a-form-item>
+ <a-form-item label="瀹瑰櫒绫诲瀷鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input placeholder="璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉�" v-decorator="['containerTypeName', {rules: [{required: true, message: '璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉帮紒'}]}]" />
+ </a-form-item>
+ <a-form-item label="鐗╂枡绫诲瀷ID" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨婭D" v-decorator="['materialTypeId', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨婭D锛�'}]}]" />
+ </a-form-item>
+ <a-form-item label="鐗╂枡绫诲瀷缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�" v-decorator="['materialTypeCode', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙凤紒'}]}]" />
+ </a-form-item>
+ <a-form-item label="鐗╂枡绫诲瀷鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉�" v-decorator="['materialTypeName', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉帮紒'}]}]" />
+ </a-form-item>
+ <a-form-item label="鐗╂枡瀹瑰櫒瀹归噺" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input placeholder="璇疯緭鍏ョ墿鏂欏鍣ㄥ閲�" v-decorator="['boxQty', {rules: [{required: true, message: '璇疯緭鍏ョ墿鏂欏鍣ㄥ閲忥紒'}]}]" />
+ </a-form-item>
+ <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item>
+ </a-form>
+ </a-spin>
+ </a-modal>
+</template>
+
+<script>
+import moment from 'moment'
+ import {
+ WmsContainerPackagingEdit
+ } from '@/api/modular/main/WmsBase/WmsContainerPackagingManage'
+ export default {
+ data () {
+ return {
+ Id: 0,
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 }
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 15 }
+ },
+ record: {},
+ visible: false,
+ confirmLoading: false,
+ form: this.$form.createForm(this)
+ }
+ },
+ methods: {
+ moment,
+ // 鍒濆鍖栨柟娉�
+ edit (record) {
+ this.visible = true;
+ this.Id = record.id;
+ this.$nextTick(() => {
+ });
+ //娣卞害鎷疯礉 绉婚櫎VUE鐨勭洃鍚紝闃叉INDEX椤甸潰鍊煎彉鍔�
+ this.record = JSON.parse(JSON.stringify(record))
+ this.$nextTick(() => {
+ this.form.setFieldsValue(
+ {
+ id: record.id,
+ containerTypeId: record.containerTypeId,
+ containerTypeName: record.containerTypeName,
+ materialTypeId: record.materialTypeId,
+ materialTypeCode: record.materialTypeCode,
+ materialTypeName: record.materialTypeName,
+ boxQty: record.boxQty
+ }
+ )
+ })
+ },
+ handleSubmit () {
+ const { form: { validateFields } } = this
+ this.confirmLoading = true
+ validateFields((errors, values) => {
+ if (!errors) {
+ for (const key in values) {
+ if (values[key] == null) continue
+ if (typeof (values[key]) === 'object') {
+ values[key] = JSON.stringify(values[key])
+ this.record[key] = values[key]
+ } else {
+ this.record[key] = values[key]
+ }
+ }
+ WmsContainerPackagingEdit(this.record).then((res) => {
+ if (res.success) {
+ this.$message.success('缂栬緫鎴愬姛')
+ this.confirmLoading = false
+ this.$emit('ok', this.record)
+ this.handleCancel()
+ } else {
+ this.$message.error('缂栬緫澶辫触锛�' + JSON.stringify(res.message))
+ }
+ }).finally((res) => {
+ this.confirmLoading = false
+ })
+ }else{
+ this.confirmLoading = false
+ }
+ });
+ },
+ handleCancel () {
+ this.form.resetFields()
+ this.visible = false
+ }
+ }
+ }
+</script>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/excelForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/excelForm.vue
new file mode 100644
index 0000000..23a0847
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/excelForm.vue
@@ -0,0 +1,181 @@
+锘�<template>
+ <a-modal
+ :width="850"
+ :destroyOnClose="true"
+ :visible="visible"
+ :forceRender="true"
+ title="鎵归噺瀵煎叆"
+ cancelText="鍙栨秷涓婁紶"
+ okText="寮�濮嬩笂浼�"
+ @cancel="handleCancel"
+ @ok="handleSubmit">
+ <a-spin :spinning="confirmLoading">
+ <a-row :span="24">
+ <span>璇烽�夋嫨瑕佸鍏ョ殑鏁版嵁鏂囦欢锛圗xcel鏍煎紡锛�</span>
+ </a-row>
+ <p></p>
+ <a-row>
+ <a-col :span="16">
+ <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload">
+ <a-icon style="font-size: 40px;" type="cloud-upload" />
+ </a-upload-dragger>
+ </a-col>
+ <!--<a-col :span="8">
+ <span>瀵煎叆妯″紡锛�</span>
+ <a-select
+ style="width: 130px"
+ placeholder="璇烽�夋嫨瀵煎叆妯″紡"
+ v-model="importExcelType">
+ <a-select-option
+ v-for="(item,index) in importExcelTypeData"
+ :key="index"
+ :value="item.code">{{ item.name }}
+ </a-select-option>
+ </a-select>
+ </a-col>-->
+ </a-row>
+ <a-row :span="24">
+ <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed">
+ 鐐瑰嚮鏌ョ湅鏂囦欢涓婁紶瑕佹眰
+ </a-button>-->
+ <span>銆�</span>
+ <a-button style="width: 90px;text-align: left;" @click="wmsContainerPackagingDownloadExcelTemplate" type="link">涓嬭浇瀵煎叆妯℃澘</a-button>锛屽~鍐欏苟涓婁紶
+ <span>銆�</span>
+ <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed">
+ 鏀惰捣
+ </a-button>
+ </a-row>
+ <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24">
+ <a-breadcrumb>
+ <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">鏂囦欢涓婁紶瑕佹眰</a-breadcrumb-item>
+ </a-breadcrumb>
+ </a-row>
+ <pre v-show="detailed">
+ <div v-html="demandText"></div>
+ </pre>
+ <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table>
+ <pre v-show="detailed">
+ <div v-html="columnText"></div>
+ </pre>
+ </a-spin>
+ </a-modal>
+</template>
+
+<script>
+ import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util'
+
+ import { WmsContainerPackagingImportExcel, WmsContainerPackagingDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsContainerPackagingManage'
+ import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage'
+ export default {
+ components: {
+ },
+ data() {
+ return {
+ visible: false,
+ detailed: false,
+ confirmLoading: false,
+ fileList: [],
+ importExcelTypeData: [],
+ importExcelType: '1',
+ uploadFile: null,
+ columns: [],
+ dataList: [],
+ demandText:'',
+ columnText: ''
+ }
+ },
+ methods: {
+ index() {
+ this.visible = true;
+ this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type')
+ this.demandText = parseDemandText("wmsContainerPackagingDownloadExcelTemplate")
+ window.downloadFile = this.wmsContainerPackagingDownloadExcelTemplate;
+ this.getTable();
+ },
+ showDemand() {
+ this.detailed = !this.detailed;
+ },
+ customRequest(document) {
+ this.uploadFile = document
+ },
+ getTable() {
+ sysExcelTemplateGetColumnList({className: "WmsContainerPackaging"}).then(res =>
+ {
+ if (res.success) {
+ this.columns =[];
+ this.dataList = [{}];
+ res.data.forEach(x => {
+ this.columns.push({
+ dataIndex: x.columnName,
+ key: x.columnName,
+ title: x.columnComment
+ });
+ this.dataList[0][x.columnName] = x.isRequired ? "蹇呭~" : "闈炲繀濉�"
+ });
+ this.columnText = parseExcelFieldText(res.data);
+ }
+ });
+ },
+ beforeUpload(fileInfo) {
+ let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']);
+ if (!res.success) {
+ this.$message.warning(res.msg)
+ return false
+ }
+ setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000)
+ },
+ handleChange(fileInfo) {
+ if (fileInfo.file.status === 'error') {
+ fileInfo.fileList.splice(0, 1)
+ }
+ if (fileInfo.file.status === 'done') {
+ if (fileInfo.fileList.length > 1) {
+ fileInfo.fileList.splice(0, 1)
+ }
+ this.fileList = fileInfo.file
+ }
+ },
+ handleSubmit() {
+ this.confirmLoading = true
+ const formData = new FormData()
+ formData.append('file', this.uploadFile.file)
+ WmsContainerPackagingImportExcel(formData, {importExcelType: this.importExcelType}).then(res => {
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.confirmLoading = false
+ this.$emit('ok', [])
+ this.handleCancel()
+ }).finally((res)=>{this.confirmLoading = false})
+ },
+ handleCancel() {
+ this.visible = false
+ this.detailed = false
+ },
+ wmsContainerPackagingDownloadExcelTemplate() {
+ WmsContainerPackagingDownloadExcelTemplate({version: "v2"}).then((res) => {
+ downloadFile(res);
+ }).catch((err) => {
+ this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err)
+ })
+ }
+ }
+ }
+</script>
+
+<style scoped>
+::v-deep .ant-upload.ant-upload-drag {
+ position: relative;
+ width: 140px;
+ height: 135px;
+ text-align: center;
+ background: #fafafa;
+ border: 1px dashed #d9d9d9;
+ border-radius: 2px;
+ cursor: pointer;
+ -webkit-transition: border-color 0.3s;
+ transition: border-color 0.3s;
+}
+::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) {
+ color: #ffc53d;
+ border-color: white;
+}
+</style>
\ No newline at end of file
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/index.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/index.vue
new file mode 100644
index 0000000..2ac53b4
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsContainerPackaging/index.vue
@@ -0,0 +1,523 @@
+锘�<template>
+ <div ref="boxOutWrap" class="boxOutWrap">
+ <div ref="boxForm" class="boxForm">
+ <a-card :bordered="false" :bodyStyle="tstyle">
+ <div class="table-page-search-wrapper" v-if="hasPerm('WmsContainerPackaging:page')">
+ <a-form layout="inline">
+ <a-row :gutter="48">
+ <a-col :md="8" :sm="24">
+ <a-form-item label="瀹瑰櫒绫诲瀷ID">
+ <a-input v-model="queryParam.containerTypeId" allow-clear placeholder="璇疯緭鍏ュ鍣ㄧ被鍨婭D" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="瀹瑰櫒绫诲瀷鍚嶇О">
+ <a-input v-model="queryParam.containerTypeName" allow-clear placeholder="璇疯緭鍏ュ鍣ㄧ被鍨嬪悕绉�" />
+ </a-form-item> </a-col
+ ><template v-if="advanced">
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鐗╂枡绫诲瀷ID">
+ <a-input v-model="queryParam.materialTypeId" allow-clear placeholder="璇疯緭鍏ョ墿鏂欑被鍨婭D" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鐗╂枡绫诲瀷缂栧彿">
+ <a-input v-model="queryParam.materialTypeCode" allow-clear placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬬紪鍙�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鐗╂枡绫诲瀷鍚嶇О">
+ <a-input v-model="queryParam.materialTypeName" allow-clear placeholder="璇疯緭鍏ョ墿鏂欑被鍨嬪悕绉�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鐗╂枡瀹瑰櫒瀹归噺">
+ <a-input v-model="queryParam.boxQty" allow-clear placeholder="璇疯緭鍏ョ墿鏂欏鍣ㄥ閲�" />
+ </a-form-item>
+ </a-col>
+ <!--骞存湀鏃ユ椂鍒嗙-->
+ <!--鏃堕棿鑼冨洿-->
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍒涘缓鏃堕棿">
+ <a-range-picker
+ style="width: 100%"
+ :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']"
+ :show-time="{
+ format: 'HH:mm:ss',
+ defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')]
+ }"
+ v-model="queryParam.createdTime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ @change="onChangecreatedTime"
+ />
+ </a-form-item>
+ </a-col>
+ <!--骞存湀鏃ユ椂鍒嗙-->
+ <!--鏃堕棿鑼冨洿-->
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏇存柊鏃堕棿">
+ <a-range-picker
+ style="width: 100%"
+ :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']"
+ :show-time="{
+ format: 'HH:mm:ss',
+ defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')]
+ }"
+ v-model="queryParam.updatedTime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ @change="onChangeupdatedTime"
+ />
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍒涘缓鑰呭悕绉�">
+ <a-input v-model="queryParam.createdUserName" allow-clear placeholder="璇疯緭鍏ュ垱寤鸿�呭悕绉�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="淇敼鑰呭悕绉�">
+ <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="璇疯緭鍏ヤ慨鏀硅�呭悕绉�" />
+ </a-form-item>
+ </a-col>
+ </template>
+
+ <a-col :md="8" :sm="24">
+ <span class="table-page-search-submitButtons">
+ <a-button type="primary" @click="$refs.table.refresh(true)">鏌ヨ</a-button>
+ <a-button style="margin-left: 8px" @click="() => (queryParam = {})">閲嶇疆</a-button>
+ <a @click="toggleAdvanced" style="margin-left: 8px">
+ {{ advanced ? '鏀惰捣' : '灞曞紑' }}
+ <a-icon :type="advanced ? 'up' : 'down'" />
+ </a>
+ </span>
+ </a-col>
+ </a-row>
+ </a-form>
+ </div>
+ </a-card>
+ </div>
+ <a-card :bordered="false">
+ <s-table
+ ref="table"
+ :columns="columns"
+ :data="loadData"
+ :alert="true"
+ @changeTablePage="pageInfo = $event"
+ :scroll="{ x: true, y: tableHeight }"
+ :rowKey="record => record.id"
+ :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
+ >
+ <template class="table-operator" slot="operator" v-if="hasPerm('WmsContainerPackaging:add')">
+ <!-- <div ref="actionBar" class="actionBar">
+ <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()">
+ 瀵煎叆
+ </a-button>
+ <a-button type="info" v-if="hasPerm('WmsContainerPackaging:exportExcel')" icon="download" @click="WmsContainerPackagingToExcel()">
+ 瀵煎嚭
+ </a-button>
+ <a-button type="primary" v-if="hasPerm('WmsContainerPackaging:add')" icon="plus" @click="$refs.addForm.add()">鏂板鍖呰鍏崇郴鍩虹琛�</a-button>
+ </div> -->
+ </template>
+ <!-- <span slot="action" slot-scope="text, record">
+
+ <a v-if="hasPerm('WmsContainerPackaging:edit')" @click="$refs.editForm.edit(record)">缂栬緫</a>
+ <a-divider type="vertical" v-if="hasPerm('WmsContainerPackaging:edit') & hasPerm('WmsContainerPackaging:delete')"/>
+ <a-popconfirm v-if="hasPerm('WmsContainerPackaging:delete')" placement="topRight" title="纭鍒犻櫎锛�" @confirm="() => WmsContainerPackagingDelete(record)">
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+ </span> -->
+ </s-table>
+ <add-form ref="addForm" @ok="handleOk" />
+ <edit-form ref="editForm" @ok="handleOk" />
+ <excel-form ref="excelForm" @ok="handleOk" />
+ </a-card>
+ </div>
+</template>
+<script>
+import { STable } from '@/components'
+import moment from 'moment'
+import {
+ WmsContainerPackagingPage,
+ WmsContainerPackagingDelete,
+ WmsContainerPackagingToExcel
+} from '@/api/modular/main/WmsBase/WmsContainerPackagingManage'
+//鑷畾涔塼able楂樺害
+import setTableHtMixin from '@/mixins/handleTableHt.js'
+import addForm from './addForm.vue'
+import { exportExcel } from '@/utils/exportToExcel'
+import { downloadFile } from '@/utils/util'
+import editForm from './editForm.vue'
+import excelForm from './excelForm.vue'
+export default {
+ mixins: [setTableHtMixin],
+ components: {
+ STable,
+ addForm,
+ editForm,
+ excelForm
+ },
+ data() {
+ return {
+ advanced: false, // 楂樼骇鎼滅储 灞曞紑/鍏抽棴
+ queryParam: {},
+ pageInfo: {
+ current: 1,
+ pageSize: 10
+ },
+ columns: [
+ {
+ title: '搴忓彿',
+ width: '60px',
+ align: 'center',
+ customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}`
+ },
+ {
+ title: '瀹瑰櫒绫诲瀷ID',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'containerTypeId'
+ },
+ {
+ title: '瀹瑰櫒绫诲瀷鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'containerTypeName'
+ },
+ {
+ title: '鐗╂枡绫诲瀷ID',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'materialTypeId'
+ },
+ {
+ title: '鐗╂枡绫诲瀷缂栧彿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'materialTypeCode'
+ },
+ {
+ title: '鐗╂枡绫诲瀷鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'materialTypeName'
+ },
+ {
+ title: '鐗╂枡瀹瑰櫒瀹归噺',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '130px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'boxQty'
+ },
+ {
+ title: '鍒涘缓鏃堕棿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'createdTime'
+ },
+ {
+ title: '鏇存柊鏃堕棿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'updatedTime'
+ },
+ {
+ title: '鍒涘缓鑰呭悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'createdUserName'
+ },
+ {
+ title: '淇敼鑰呭悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'updatedUserName'
+ }
+ ],
+ tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
+ // 鍔犺浇鏁版嵁鏂规硶 蹇呴』涓� Promise 瀵硅薄
+ loadData: parameter => {
+ return WmsContainerPackagingPage(Object.assign(parameter, this.switchingDate())).then(res => {
+ return res.data
+ })
+ },
+ selectedRowKeys: [],
+ selectedRows: []
+ }
+ },
+ created() {
+ // if (this.hasPerm('WmsContainerPackaging:edit') || this.hasPerm('WmsContainerPackaging:delete')) {
+ // this.columns.push({
+ // title: '鎿嶄綔',
+ // width: '150px',
+ // dataIndex: 'action',
+ // scopedSlots: { customRender: 'action' }
+ // })
+ // }
+ const path = this.$route.path
+ const columnStr = window.localStorage.getItem(path)
+ if (columnStr) {
+ var _columns = JSON.parse(columnStr)
+ this.columns.forEach(element => {
+ var fObj = _columns.find((item, index) => {
+ return item.dataIndex === element.dataIndex
+ })
+ if (fObj != undefined && fObj != null) {
+ element.checked = fObj.checked
+ }
+ })
+ }
+
+ this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害
+ window.addEventListener(
+ 'resize',
+ () => {
+ this.handleTableHt() // 鐩戝惉灞忓箷澶у皬鏀瑰彉琛ㄦ牸楂樺害
+ },
+ false
+ )
+ },
+ methods: {
+ moment,
+ /**
+ * 鏌ヨ鍙傛暟缁勮
+ */
+ switchingDate() {
+ const obj = JSON.parse(JSON.stringify(this.queryParam))
+ return obj
+ },
+ WmsContainerPackagingDelete(record) {
+ WmsContainerPackagingDelete(record).then(res => {
+ if (res.success) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.$refs.table.refresh()
+ } else {
+ this.$message.error('鍒犻櫎澶辫触') // + res.message
+ }
+ })
+ },
+
+ WmsContainerPackagingToExcel() {
+ this.loading = true
+ let entozh = {}
+ const path = this.$route.path
+ if (window.localStorage.getItem(path)) {
+ JSON.parse(window.localStorage.getItem(path)).forEach(item => {
+ if (item.dataIndex != 'action' && item.checked) {
+ entozh[item.dataIndex] = item.title
+ }
+ })
+ } else {
+ //鐩存帴鐐瑰鍑�
+ this.columns.forEach(item => {
+ if (item.dataIndex != 'action') {
+ entozh[item.dataIndex] = item.title
+ }
+ })
+ }
+ WmsContainerPackagingPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam))
+ .then(res => {
+ this.loading = false
+ //闇�瑕佹埅鍙栨棩鏈熺殑瀛楁
+ var arrDataCutout = this.columns.filter(v => v.customCutout == true)
+ res.data.rows.forEach(item => {
+ var arrKeys = Object.keys(item)
+ arrKeys.forEach(key => {
+ var strFieldDic = key + 'Data'
+ //鏋氫妇杞��
+ if (this[strFieldDic] && this[strFieldDic].length > 0) {
+ let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key]))
+ if (arrFieldDic.length > 0) {
+ item[key] = arrFieldDic[0]?.name || '娌℃湁鏋氫妇鍊�'
+ }
+ }
+ // 鏃ユ湡鎴彇
+ if (arrDataCutout.length > 0) {
+ arrDataCutout.forEach(itemIn => {
+ if (key == itemIn.dataIndex && item[key]) {
+ item[key] = item[key].split(' ')[0]
+ }
+ })
+ }
+ })
+ })
+ exportExcel(res.data.rows, entozh, 'xlsx', `${this.$route.meta.title}`)
+ })
+ .catch(err => {
+ this.loading = false
+ this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err)
+ })
+ },
+
+ toggleAdvanced() {
+ this.advanced = !this.advanced
+ this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害
+ },
+ onChangecreatedTime(date, dateString) {
+ this.queryParam.createdTime = dateString
+ },
+ onChangeupdatedTime(date, dateString) {
+ this.queryParam.updatedTime = dateString
+ },
+ handleOk() {
+ this.$refs.table.refresh()
+ },
+ onSelectChange(selectedRowKeys, selectedRows) {
+ this.selectedRowKeys = selectedRowKeys
+ this.selectedRows = selectedRows
+ this.$emit('ok', selectedRows)
+ }
+ }
+}
+</script>
+<style lang="less">
+.table-operator {
+ margin-bottom: 18px;
+}
+button {
+ margin-right: 8px;
+}
+</style>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/addForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/addForm.vue
new file mode 100644
index 0000000..3d0e4ed
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/addForm.vue
@@ -0,0 +1,94 @@
+锘�<template>
+ <a-modal
+ title="鏂板鎺у埗灞炴�ц鍒�"
+ :width="900"
+ :visible="visible"
+ :confirmLoading="confirmLoading"
+ @ok="handleSubmit"
+ @cancel="handleCancel">
+ <a-spin :spinning="confirmLoading">
+ <a-form :form="form">
+ <a-form-item label="瑙勫垯缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input placeholder="璇疯緭鍏ヨ鍒欑紪鍙�" v-decorator="['ruleCode', {rules: [{required: true, message: '璇疯緭鍏ヨ鍒欑紪鍙凤紒'}]}]" />
+ </a-form-item>
+ <a-form-item label="瑙勫垯鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input placeholder="璇疯緭鍏ヨ鍒欏悕绉�" v-decorator="['ruleName', {rules: [{required: true, message: '璇疯緭鍏ヨ鍒欏悕绉帮紒'}]}]" />
+ </a-form-item>
+ <a-form-item label="瑙勫垯鎻忚堪" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input placeholder="璇疯緭鍏ヨ鍒欐弿杩�" v-decorator="['ruleDesc']" />
+ </a-form-item>
+ <a-form-item label="鏄惁绂佺敤" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-switch v-decorator="['isDisabled',{rules: [{ required: true, message: '璇烽�夋嫨鏄惁绂佺敤锛�' }], valuePropName: 'checked'}]" />
+ </a-form-item>
+ </a-form>
+ </a-spin>
+ </a-modal>
+</template>
+
+<script>
+ import moment from 'moment'
+ import {
+ WmsControlRuleAdd
+ } from '@/api/modular/main/WmsBase/WmsControlRuleManage'
+ export default {
+ data () {
+ return {
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 }
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 15 }
+ },
+ visible: false,
+ confirmLoading: false,
+ form: this.$form.createForm(this)
+ }
+ },
+ methods: {
+ moment,
+ // 鍒濆鍖栨柟娉�
+ add (record) {
+ this.visible = true
+ this.$nextTick(() => {
+
+ });
+ },
+ /**
+ * 鎻愪氦琛ㄥ崟
+ */
+ handleSubmit () {
+ const { form: { validateFields } } = this
+ this.confirmLoading = true
+ validateFields((errors, values) => {
+ if (!errors) {
+ for (const key in values) {
+ if (typeof (values[key]) === 'object') {
+ values[key] = JSON.stringify(values[key])
+ }
+ }
+ WmsControlRuleAdd(values).then((res) => {
+ if (res.success) {
+ this.$message.success('鏂板鎴愬姛')
+ this.confirmLoading = false
+ this.$emit('ok', values)
+ this.handleCancel()
+ } else {
+ this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message))
+ }
+ }).finally((res) => {
+ this.confirmLoading = false
+ })
+ } else {
+ this.confirmLoading = false
+ }
+ })
+ },
+ handleCancel () {
+ this.form.resetFields()
+ this.visible = false
+ }
+ }
+ }
+</script>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/detail.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/detail.vue
new file mode 100644
index 0000000..98e014f
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/detail.vue
@@ -0,0 +1,604 @@
+锘�<template>
+ <div ref="boxOutWrap" class="boxOutWrap">
+ <div ref="boxForm" class="boxForm">
+ <a-card :bordered="false" :bodyStyle="tstyle">
+
+ <div class="table-page-search-wrapper" v-if="hasPerm('WmsControlRuleDetail:page')">
+ <a-form layout="inline">
+ <a-row :gutter="48">
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鎺у埗灞炴�ц鍒橧D">
+ <a-input v-model="queryParam.controlRuleId" allow-clear placeholder="璇疯緭鍏ユ帶鍒跺睘鎬ц鍒橧D"/>
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏈�楂樺簱瀛�">
+ <a-input v-model="queryParam.maxImumqty" allow-clear placeholder="璇疯緭鍏ユ渶楂樺簱瀛�"/>
+ </a-form-item>
+ </a-col><template v-if="advanced">
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏈�浣庡簱瀛�">
+ <a-input v-model="queryParam.minImumqty" allow-clear placeholder="璇疯緭鍏ユ渶浣庡簱瀛�"/>
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="瀹夊叏搴撳瓨">
+ <a-input v-model="queryParam.safeImumqty" allow-clear placeholder="璇疯緭鍏ュ畨鍏ㄥ簱瀛�"/>
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏈�灏忓簱榫�">
+ <a-input v-model="queryParam.minStorageAge" allow-clear placeholder="璇疯緭鍏ユ渶灏忓簱榫�"/>
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏈�澶у簱榫�">
+ <a-input v-model="queryParam.maxStorageAge" allow-clear placeholder="璇疯緭鍏ユ渶澶у簱榫�"/>
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏄惁鍏嶆">
+ <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isNotChek" placeholder="璇烽�夋嫨鏄惁鍏嶆">
+ <a-select-option v-for="(item,index) in isNotChekData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
+ </a-select>
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="淇濊川鏈熷ぉ鏁�">
+ <a-input v-model="queryParam.shelfLifeDays" allow-clear placeholder="璇疯緭鍏ヤ繚璐ㄦ湡澶╂暟"/>
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏄惁绂佺敤">
+ <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled" placeholder="璇烽�夋嫨鏄惁绂佺敤">
+ <a-select-option v-for="(item,index) in isDisabledData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
+ </a-select>
+ </a-form-item>
+ </a-col>
+ <!--骞存湀鏃ユ椂鍒嗙-->
+ <!--鏃堕棿鑼冨洿-->
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍒涘缓鏃堕棿">
+ <a-range-picker style="width: 100%" :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" :show-time="{
+format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime"/>
+
+ </a-form-item>
+ </a-col>
+ <!--骞存湀鏃ユ椂鍒嗙-->
+ <!--鏃堕棿鑼冨洿-->
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏇存柊鏃堕棿">
+ <a-range-picker style="width: 100%" :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" :show-time="{
+format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'),moment('23:59:59', 'HH:mm:ss')]}" v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss" format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime"/>
+
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍒涘缓鑰呭悕绉�">
+ <a-input v-model="queryParam.createdUserName" allow-clear placeholder="璇疯緭鍏ュ垱寤鸿�呭悕绉�"/>
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="淇敼鑰呭悕绉�">
+ <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="璇疯緭鍏ヤ慨鏀硅�呭悕绉�"/>
+ </a-form-item>
+ </a-col> </template>
+
+ <a-col :md="8" :sm="24" >
+ <span class="table-page-search-submitButtons">
+ <a-button type="primary" @click="$refs.table.refresh(true)" >鏌ヨ</a-button>
+ <a-button style="margin-left: 8px" @click="() => queryParam = {}">閲嶇疆</a-button>
+ <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? '鏀惰捣' : '灞曞紑' }}
+ <a-icon :type="advanced ? 'up' : 'down'"/>
+ </a>
+ </span>
+ </a-col>
+
+ </a-row>
+ </a-form>
+ </div>
+ </a-card>
+ </div>
+ <a-card :bordered="false">
+ <!-- :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" -->
+ <s-table
+ ref="table"
+ :columns="columns"
+ :data="loadData"
+ :alert="true"
+ @changeTablePage="pageInfo = $event"
+ :scroll="{x: true,y:tableHeight}"
+ :rowKey="(record) => record.id"
+ >
+ <template class="table-operator" slot="operator" v-if="hasPerm('WmsControlRuleDetail:add')" >
+ <!-- <div ref="actionBar" class="actionBar">
+ <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()">
+ 瀵煎叆
+ </a-button>
+ <a-button type="info" v-if="hasPerm('WmsControlRuleDetail:exportExcel')" icon="download" @click="WmsControlRuleDetailToExcel()">
+ 瀵煎嚭
+ </a-button>
+ <a-button type="primary" v-if="hasPerm('WmsControlRuleDetail:add')" icon="plus" @click="$refs.addForm.add()">鏂板鎺у埗灞炴�ц鍒欐槑缁�</a-button>
+ </div> -->
+ </template>
+ <span slot="isNotChekscopedSlots" slot-scope="text">
+ <div v-if="text===true ">
+ <a-tag color="green">鏄�</a-tag>
+ </div>
+ <div v-else-if="text==false">
+ <a-tag color="volcano">鍚�</a-tag>
+ </div>
+ <div v-else=""></div>
+ </span>
+ <span slot="isDisabledscopedSlots" slot-scope="text">
+ <div v-if="text===true ">
+ <a-tag color="green">鏄�</a-tag>
+ </div>
+ <div v-else-if="text==false">
+ <a-tag color="volcano">鍚�</a-tag>
+ </div>
+ <div v-else=""></div>
+ </span>
+ <!-- <span slot="action" slot-scope="text, record">
+
+ <a v-if="hasPerm('WmsControlRuleDetail:edit')" @click="$refs.editForm.edit(record)">缂栬緫</a>
+ <a-divider type="vertical" v-if="hasPerm('WmsControlRuleDetail:edit') & hasPerm('WmsControlRuleDetail:delete')"/>
+ <a-popconfirm v-if="hasPerm('WmsControlRuleDetail:delete')" placement="topRight" title="纭鍒犻櫎锛�" @confirm="() => WmsControlRuleDetailDelete(record)">
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+ </span> -->
+ </s-table>
+ <add-form ref="addForm" @ok="handleOk" />
+ <edit-form ref="editForm" @ok="handleOk" />
+ <excel-form ref="excelForm" @ok="handleOk" />
+ </a-card>
+ </div>
+</template>
+<script>
+ import { STable } from '@/components'
+ import moment from 'moment'
+ import { WmsControlRuleDetailPage, WmsControlRuleDetailDelete, WmsControlRuleDetailToExcel } from '@/api/modular/main/WmsBase/WmsControlRuleDetailManage'
+ //鑷畾涔塼able楂樺害
+ import setTableHtMixin from '@/mixins/handleTableHt.js'
+ import addForm from './addForm.vue'
+ import { exportExcel } from '@/utils/exportToExcel'
+ import { downloadFile } from '@/utils/util'
+ import editForm from './editForm.vue'
+ import excelForm from './excelForm.vue'
+ export default {
+ mixins: [setTableHtMixin],
+ components: {
+ STable,
+ addForm,
+ editForm,
+ excelForm
+ },
+ data () {
+ return {
+ advanced: false, // 楂樼骇鎼滅储 灞曞紑/鍏抽棴
+ queryParam: {},
+ pageInfo: {
+ current: 1,
+ pageSize: 10
+ },
+ columns: [
+ {
+ title:'搴忓彿',
+ width: '60px',
+ align: 'center',
+ customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}`
+ },
+ {
+ title: '鎺у埗灞炴�ц鍒橧D',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '140px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '140px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'controlRuleId'
+ },
+ {
+ title: '鏈�楂樺簱瀛�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'maxImumqty'
+ },
+ {
+ title: '鏈�浣庡簱瀛�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'minImumqty'
+ },
+ {
+ title: '瀹夊叏搴撳瓨',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'safeImumqty'
+ },
+ {
+ title: '鏈�灏忓簱榫�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'minStorageAge'
+ },
+ {
+ title: '鏈�澶у簱榫�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'maxStorageAge'
+ },
+ {
+ title: '鏄惁鍏嶆',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'isNotChek',
+ scopedSlots: { customRender: 'isNotChekscopedSlots' }
+ },
+ {
+ title: '淇濊川鏈熷ぉ鏁�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'shelfLifeDays'
+ },
+ {
+ title: '鏄惁绂佺敤',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'isDisabled',
+ scopedSlots: { customRender: 'isDisabledscopedSlots' }
+ },
+ {
+ title: '鍒涘缓鏃堕棿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'createdTime'
+ },
+ {
+ title: '鏇存柊鏃堕棿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'updatedTime'
+ },
+ {
+ title: '鍒涘缓鑰呭悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'createdUserName'
+ },
+ {
+ title: '淇敼鑰呭悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'updatedUserName'
+ }
+ ],
+ tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
+ // 鍔犺浇鏁版嵁鏂规硶 蹇呴』涓� Promise 瀵硅薄
+ loadData: parameter => {
+ return WmsControlRuleDetailPage(Object.assign(parameter, this.switchingDate())).then((res) => {
+ return res.data
+ })
+ },
+ selectedRowKeys: [],
+ selectedRows: []
+ }
+ },
+ created () {
+ if (this.hasPerm('WmsControlRuleDetail:edit') || this.hasPerm('WmsControlRuleDetail:delete')) {
+ this.columns.push({
+ title: '鎿嶄綔',
+ width: '150px',
+ dataIndex: 'action',
+ scopedSlots: { customRender: 'action' }
+ })
+ }
+ const path = this.$route.path
+ const columnStr = window.localStorage.getItem(path)
+ if(columnStr) {
+ var _columns = JSON.parse(columnStr)
+ this.columns.forEach(element => {
+ var fObj = _columns.find((item, index) => {
+ return item.dataIndex === element.dataIndex;
+ })
+ if(fObj!=undefined && fObj!=null){
+ element.checked=fObj.checked;
+ }
+ });
+ }
+ const isNotChekOption = this.$options
+ this.isNotChekData = isNotChekOption.filters['dictData']('yes_true_false')
+ const isDisabledOption = this.$options
+ this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false')
+
+ this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害
+ window.addEventListener(
+ 'resize',
+ () => {
+ this.handleTableHt() // 鐩戝惉灞忓箷澶у皬鏀瑰彉琛ㄦ牸楂樺害
+ },
+ false
+ )
+
+ },
+ methods: {
+ moment,
+ /**
+ * 鏌ヨ鍙傛暟缁勮
+ */
+ switchingDate () {
+ const obj = JSON.parse(JSON.stringify(this.queryParam))
+ return obj
+ },
+ WmsControlRuleDetailDelete (record) {
+ WmsControlRuleDetailDelete(record).then((res) => {
+ if (res.success) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.$refs.table.refresh()
+ } else {
+ this.$message.error('鍒犻櫎澶辫触') // + res.message
+ }
+ })
+ },
+
+
+ WmsControlRuleDetailToExcel() {
+ this.loading = true
+ let entozh = {};
+ const path = this.$route.path;
+ if (window.localStorage.getItem(path)) {
+ JSON.parse(window.localStorage.getItem(path)).forEach(item => {
+ if (item.dataIndex != 'action' && item.checked) {
+ entozh[item.dataIndex] = item.title
+ }
+ })
+ } else { //鐩存帴鐐瑰鍑�
+ this.columns.forEach(item => {
+ if (item.dataIndex != 'action') {
+ entozh[item.dataIndex] = item.title
+ }
+ })
+ }
+ WmsControlRuleDetailPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => {
+ this.loading = false;
+ //闇�瑕佹埅鍙栨棩鏈熺殑瀛楁
+ var arrDataCutout = this.columns.filter(v => v.customCutout == true);
+ res.data.rows.forEach(item => {
+ var arrKeys = Object.keys(item);
+ arrKeys.forEach(key => {
+ var strFieldDic = key + 'Data';
+ //鏋氫妇杞��
+ if (this[strFieldDic] && this[strFieldDic].length > 0) {
+ let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key]));
+ if (arrFieldDic.length > 0) {
+ item[key] = arrFieldDic[0]?.name || '娌℃湁鏋氫妇鍊�';
+ }
+ }
+ // 鏃ユ湡鎴彇
+ if (arrDataCutout.length > 0) {
+ arrDataCutout.forEach(itemIn => {
+ if (key == itemIn.dataIndex && item[key]) {
+ item[key] = item[key].split(" ")[0]
+ }
+ })
+ }
+ });
+ })
+ exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`)
+ }).catch((err) => {
+ this.loading = false
+ this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err)
+ })
+ },
+
+
+ toggleAdvanced () {
+ this.advanced = !this.advanced
+ this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害
+ },
+ onChangecreatedTime(date, dateString) {
+ this.queryParam.createdTime = dateString
+ },
+ onChangeupdatedTime(date, dateString) {
+ this.queryParam.updatedTime = dateString
+ },
+ handleOk () {
+ this.$refs.table.refresh()
+ },
+ onSelectChange (selectedRowKeys, selectedRows) {
+ this.selectedRowKeys = selectedRowKeys
+ this.selectedRows = selectedRows
+ }
+ }
+ }
+</script>
+<style lang="less">
+ .table-operator {
+ margin-bottom: 18px;
+ }
+ button {
+ margin-right: 8px;
+ }
+</style>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/details.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/details.vue
new file mode 100644
index 0000000..6d76bef
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/details.vue
@@ -0,0 +1,107 @@
+锘�<template>
+ <!-- @ok="handleSubmit" -->
+ <a-modal
+ title="鎺у埗灞炴�ц鍒欐槑缁�"
+ :width="900"
+ :visible="visible"
+ :confirmLoading="confirmLoading"
+ @cancel="handleCancel"
+ @ok="visible=false"
+ >
+ <a-spin :spinning="confirmLoading">
+ <control-rule-detail ref="controlRuleDetail" @ok="handleOk" />
+ </a-spin>
+ </a-modal>
+
+</template>
+
+<script>
+import moment from 'moment'
+import { WmsControlRuleEdit } from '@/api/modular/main/WmsBase/WmsControlRuleManage'
+import ControlRuleDetail from './detail.vue'
+
+export default {
+ components: {
+ ControlRuleDetail
+ },
+ data() {
+ return {
+ Id: 0,
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 }
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 15 }
+ },
+ record: {},
+ visible: false,
+ confirmLoading: false,
+ form: this.$form.createForm(this)
+ }
+ },
+ methods: {
+ moment,
+ // 鍒濆鍖栨柟娉�
+ edit(record) {
+ this.visible = true
+ this.Id = record.id
+ this.$nextTick(() => {})
+ //娣卞害鎷疯礉 绉婚櫎VUE鐨勭洃鍚紝闃叉INDEX椤甸潰鍊煎彉鍔�
+ this.record = JSON.parse(JSON.stringify(record))
+ this.$nextTick(() => {
+ this.form.setFieldsValue({
+ id: record.id,
+ ruleCode: record.ruleCode,
+ ruleName: record.ruleName,
+ ruleDesc: record.ruleDesc,
+ isDisabled: record.isDisabled
+ })
+ })
+ },
+ handleOk(){
+ alert("2")
+ },
+ handleSubmit() {
+ const {
+ form: { validateFields }
+ } = this
+ this.confirmLoading = true
+ validateFields((errors, values) => {
+ if (!errors) {
+ for (const key in values) {
+ if (values[key] == null) continue
+ if (typeof values[key] === 'object') {
+ values[key] = JSON.stringify(values[key])
+ this.record[key] = values[key]
+ } else {
+ this.record[key] = values[key]
+ }
+ }
+ WmsControlRuleEdit(this.record)
+ .then(res => {
+ if (res.success) {
+ this.$message.success('缂栬緫鎴愬姛')
+ this.confirmLoading = false
+ this.$emit('ok', this.record)
+ this.handleCancel()
+ } else {
+ this.$message.error('缂栬緫澶辫触锛�' + JSON.stringify(res.message))
+ }
+ })
+ .finally(res => {
+ this.confirmLoading = false
+ })
+ } else {
+ this.confirmLoading = false
+ }
+ })
+ },
+ handleCancel() {
+ this.form.resetFields()
+ this.visible = false
+ }
+ }
+}
+</script>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/editForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/editForm.vue
new file mode 100644
index 0000000..ea11e1c
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/editForm.vue
@@ -0,0 +1,123 @@
+锘�<template>
+ <a-modal
+ title="缂栬緫鎺у埗灞炴�ц鍒�"
+ :width="900"
+ :visible="visible"
+ :confirmLoading="confirmLoading"
+ @ok="handleSubmit"
+ @cancel="handleCancel"
+ >
+ <a-spin :spinning="confirmLoading">
+ <a-form :form="form">
+ <a-form-item label="瑙勫垯缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input
+ placeholder="璇疯緭鍏ヨ鍒欑紪鍙�"
+ v-decorator="['ruleCode', { rules: [{ required: true, message: '璇疯緭鍏ヨ鍒欑紪鍙凤紒' }] }]"
+ />
+ </a-form-item>
+ <a-form-item label="瑙勫垯鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input
+ placeholder="璇疯緭鍏ヨ鍒欏悕绉�"
+ v-decorator="['ruleName', { rules: [{ required: true, message: '璇疯緭鍏ヨ鍒欏悕绉帮紒' }] }]"
+ />
+ </a-form-item>
+ <a-form-item label="瑙勫垯鎻忚堪" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-input placeholder="璇疯緭鍏ヨ鍒欐弿杩�" v-decorator="['ruleDesc']" />
+ </a-form-item>
+ <a-form-item label="鏄惁绂佺敤" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
+ <a-switch
+ v-decorator="[
+ 'isDisabled',
+ { rules: [{ required: true, message: '璇烽�夋嫨鏄惁绂佺敤锛�' }], valuePropName: 'checked' }
+ ]"
+ />
+ </a-form-item>
+ <a-form-item v-show="false"><a-input v-decorator="['id']"/></a-form-item>
+ </a-form>
+ </a-spin>
+ </a-modal>
+
+</template>
+
+<script>
+import moment from 'moment'
+import { WmsControlRuleEdit } from '@/api/modular/main/WmsBase/WmsControlRuleManage'
+export default {
+ data() {
+ return {
+ Id: 0,
+ labelCol: {
+ xs: { span: 24 },
+ sm: { span: 5 }
+ },
+ wrapperCol: {
+ xs: { span: 24 },
+ sm: { span: 15 }
+ },
+ record: {},
+ visible: false,
+ confirmLoading: false,
+ form: this.$form.createForm(this)
+ }
+ },
+ methods: {
+ moment,
+ // 鍒濆鍖栨柟娉�
+ edit(record) {
+ this.visible = true
+ this.Id = record.id
+ this.$nextTick(() => {})
+ //娣卞害鎷疯礉 绉婚櫎VUE鐨勭洃鍚紝闃叉INDEX椤甸潰鍊煎彉鍔�
+ this.record = JSON.parse(JSON.stringify(record))
+ this.$nextTick(() => {
+ this.form.setFieldsValue({
+ id: record.id,
+ ruleCode: record.ruleCode,
+ ruleName: record.ruleName,
+ ruleDesc: record.ruleDesc,
+ isDisabled: record.isDisabled
+ })
+ })
+ },
+ handleSubmit() {
+ const {
+ form: { validateFields }
+ } = this
+ this.confirmLoading = true
+ validateFields((errors, values) => {
+ if (!errors) {
+ for (const key in values) {
+ if (values[key] == null) continue
+ if (typeof values[key] === 'object') {
+ values[key] = JSON.stringify(values[key])
+ this.record[key] = values[key]
+ } else {
+ this.record[key] = values[key]
+ }
+ }
+ WmsControlRuleEdit(this.record)
+ .then(res => {
+ if (res.success) {
+ this.$message.success('缂栬緫鎴愬姛')
+ this.confirmLoading = false
+ this.$emit('ok', this.record)
+ this.handleCancel()
+ } else {
+ this.$message.error('缂栬緫澶辫触锛�' + JSON.stringify(res.message))
+ }
+ })
+ .finally(res => {
+ this.confirmLoading = false
+ })
+ } else {
+ this.confirmLoading = false
+ }
+ })
+ },
+ handleCancel() {
+ this.form.resetFields()
+ this.visible = false
+ }
+ }
+}
+</script>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/excelForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/excelForm.vue
new file mode 100644
index 0000000..cc33122
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/excelForm.vue
@@ -0,0 +1,181 @@
+锘�<template>
+ <a-modal
+ :width="850"
+ :destroyOnClose="true"
+ :visible="visible"
+ :forceRender="true"
+ title="鎵归噺瀵煎叆"
+ cancelText="鍙栨秷涓婁紶"
+ okText="寮�濮嬩笂浼�"
+ @cancel="handleCancel"
+ @ok="handleSubmit">
+ <a-spin :spinning="confirmLoading">
+ <a-row :span="24">
+ <span>璇烽�夋嫨瑕佸鍏ョ殑鏁版嵁鏂囦欢锛圗xcel鏍煎紡锛�</span>
+ </a-row>
+ <p></p>
+ <a-row>
+ <a-col :span="16">
+ <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload">
+ <a-icon style="font-size: 40px;" type="cloud-upload" />
+ </a-upload-dragger>
+ </a-col>
+ <!--<a-col :span="8">
+ <span>瀵煎叆妯″紡锛�</span>
+ <a-select
+ style="width: 130px"
+ placeholder="璇烽�夋嫨瀵煎叆妯″紡"
+ v-model="importExcelType">
+ <a-select-option
+ v-for="(item,index) in importExcelTypeData"
+ :key="index"
+ :value="item.code">{{ item.name }}
+ </a-select-option>
+ </a-select>
+ </a-col>-->
+ </a-row>
+ <a-row :span="24">
+ <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed">
+ 鐐瑰嚮鏌ョ湅鏂囦欢涓婁紶瑕佹眰
+ </a-button>-->
+ <span>銆�</span>
+ <a-button style="width: 90px;text-align: left;" @click="wmsControlRuleDownloadExcelTemplate" type="link">涓嬭浇瀵煎叆妯℃澘</a-button>锛屽~鍐欏苟涓婁紶
+ <span>銆�</span>
+ <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed">
+ 鏀惰捣
+ </a-button>
+ </a-row>
+ <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24">
+ <a-breadcrumb>
+ <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">鏂囦欢涓婁紶瑕佹眰</a-breadcrumb-item>
+ </a-breadcrumb>
+ </a-row>
+ <pre v-show="detailed">
+ <div v-html="demandText"></div>
+ </pre>
+ <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table>
+ <pre v-show="detailed">
+ <div v-html="columnText"></div>
+ </pre>
+ </a-spin>
+ </a-modal>
+</template>
+
+<script>
+ import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util'
+
+ import { WmsControlRuleImportExcel, WmsControlRuleDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsControlRuleManage'
+ import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage'
+ export default {
+ components: {
+ },
+ data() {
+ return {
+ visible: false,
+ detailed: false,
+ confirmLoading: false,
+ fileList: [],
+ importExcelTypeData: [],
+ importExcelType: '1',
+ uploadFile: null,
+ columns: [],
+ dataList: [],
+ demandText:'',
+ columnText: ''
+ }
+ },
+ methods: {
+ index() {
+ this.visible = true;
+ this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type')
+ this.demandText = parseDemandText("wmsControlRuleDownloadExcelTemplate")
+ window.downloadFile = this.wmsControlRuleDownloadExcelTemplate;
+ this.getTable();
+ },
+ showDemand() {
+ this.detailed = !this.detailed;
+ },
+ customRequest(document) {
+ this.uploadFile = document
+ },
+ getTable() {
+ sysExcelTemplateGetColumnList({className: "WmsControlRule"}).then(res =>
+ {
+ if (res.success) {
+ this.columns =[];
+ this.dataList = [{}];
+ res.data.forEach(x => {
+ this.columns.push({
+ dataIndex: x.columnName,
+ key: x.columnName,
+ title: x.columnComment
+ });
+ this.dataList[0][x.columnName] = x.isRequired ? "蹇呭~" : "闈炲繀濉�"
+ });
+ this.columnText = parseExcelFieldText(res.data);
+ }
+ });
+ },
+ beforeUpload(fileInfo) {
+ let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']);
+ if (!res.success) {
+ this.$message.warning(res.msg)
+ return false
+ }
+ setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000)
+ },
+ handleChange(fileInfo) {
+ if (fileInfo.file.status === 'error') {
+ fileInfo.fileList.splice(0, 1)
+ }
+ if (fileInfo.file.status === 'done') {
+ if (fileInfo.fileList.length > 1) {
+ fileInfo.fileList.splice(0, 1)
+ }
+ this.fileList = fileInfo.file
+ }
+ },
+ handleSubmit() {
+ this.confirmLoading = true
+ const formData = new FormData()
+ formData.append('file', this.uploadFile.file)
+ WmsControlRuleImportExcel(formData, {importExcelType: this.importExcelType}).then(res => {
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.confirmLoading = false
+ this.$emit('ok', [])
+ this.handleCancel()
+ }).finally((res)=>{this.confirmLoading = false})
+ },
+ handleCancel() {
+ this.visible = false
+ this.detailed = false
+ },
+ wmsControlRuleDownloadExcelTemplate() {
+ WmsControlRuleDownloadExcelTemplate({version: "v2"}).then((res) => {
+ downloadFile(res);
+ }).catch((err) => {
+ this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err)
+ })
+ }
+ }
+ }
+</script>
+
+<style scoped>
+::v-deep .ant-upload.ant-upload-drag {
+ position: relative;
+ width: 140px;
+ height: 135px;
+ text-align: center;
+ background: #fafafa;
+ border: 1px dashed #d9d9d9;
+ border-radius: 2px;
+ cursor: pointer;
+ -webkit-transition: border-color 0.3s;
+ transition: border-color 0.3s;
+}
+::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) {
+ color: #ffc53d;
+ border-color: white;
+}
+</style>
\ No newline at end of file
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/index.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/index.vue
new file mode 100644
index 0000000..bf80dc2
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsControlRule/index.vue
@@ -0,0 +1,512 @@
+锘�<template>
+ <!-- 鎺у埗灞炴�ц鍒� -->
+ <div ref="boxOutWrap" class="boxOutWrap">
+ <div ref="boxForm" class="boxForm">
+ <a-card :bordered="false" :bodyStyle="tstyle">
+ <div class="table-page-search-wrapper" v-if="hasPerm('WmsControlRule:page')">
+ <a-form layout="inline">
+ <a-row :gutter="48">
+ <a-col :md="8" :sm="24">
+ <a-form-item label="瑙勫垯缂栧彿">
+ <a-input v-model="queryParam.ruleCode" allow-clear placeholder="璇疯緭鍏ヨ鍒欑紪鍙�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="瑙勫垯鍚嶇О">
+ <a-input v-model="queryParam.ruleName" allow-clear placeholder="璇疯緭鍏ヨ鍒欏悕绉�" />
+ </a-form-item> </a-col
+ ><template v-if="advanced">
+ <a-col :md="8" :sm="24">
+ <a-form-item label="瑙勫垯鎻忚堪">
+ <a-input v-model="queryParam.ruleDesc" allow-clear placeholder="璇疯緭鍏ヨ鍒欐弿杩�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏄惁绂佺敤">
+ <a-select
+ :allowClear="true"
+ style="width: 100%"
+ v-model="queryParam.isDisabled"
+ placeholder="璇烽�夋嫨鏄惁绂佺敤"
+ >
+ <a-select-option v-for="(item, index) in isDisabledData" :key="index" :value="item.code">{{
+ item.name
+ }}</a-select-option>
+ </a-select>
+ </a-form-item>
+ </a-col>
+ <!--骞存湀鏃ユ椂鍒嗙-->
+ <!--鏃堕棿鑼冨洿-->
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍒涘缓鏃堕棿">
+ <a-range-picker
+ style="width: 100%"
+ :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']"
+ :show-time="{
+ format: 'HH:mm:ss',
+ defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')]
+ }"
+ v-model="queryParam.createdTime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ @change="onChangecreatedTime"
+ />
+ </a-form-item>
+ </a-col>
+ <!--骞存湀鏃ユ椂鍒嗙-->
+ <!--鏃堕棿鑼冨洿-->
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏇存柊鏃堕棿">
+ <a-range-picker
+ style="width: 100%"
+ :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']"
+ :show-time="{
+ format: 'HH:mm:ss',
+ defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')]
+ }"
+ v-model="queryParam.updatedTime"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss"
+ @change="onChangeupdatedTime"
+ />
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍒涘缓鑰呭悕绉�">
+ <a-input v-model="queryParam.createdUserName" allow-clear placeholder="璇疯緭鍏ュ垱寤鸿�呭悕绉�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="淇敼鑰呭悕绉�">
+ <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="璇疯緭鍏ヤ慨鏀硅�呭悕绉�" />
+ </a-form-item>
+ </a-col>
+ </template>
+
+ <a-col :md="8" :sm="24">
+ <span class="table-page-search-submitButtons">
+ <a-button type="primary" @click="$refs.table.refresh(true)">鏌ヨ</a-button>
+ <a-button style="margin-left: 8px" @click="() => (queryParam = {})">閲嶇疆</a-button>
+ <a @click="toggleAdvanced" style="margin-left: 8px">
+ {{ advanced ? '鏀惰捣' : '灞曞紑' }}
+ <a-icon :type="advanced ? 'up' : 'down'" />
+ </a>
+ </span>
+ </a-col>
+ </a-row>
+ </a-form>
+ </div>
+ </a-card>
+ </div>
+ <a-card :bordered="false">
+ <s-table
+ ref="table"
+ :columns="columns"
+ :data="loadData"
+ :alert="true"
+ @changeTablePage="pageInfo = $event"
+ :scroll="{ x: true, y: tableHeight }"
+ :rowKey="record => record.id"
+ :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
+ >
+ <template class="table-operator" slot="operator" v-if="hasPerm('WmsControlRule:add')">
+ <!-- <div ref="actionBar" class="actionBar">
+ <a-button
+ type="info"
+ v-if="hasPerm('sysExcelTemplate:importExcel')"
+ icon="upload"
+ @click="$refs.excelForm.index()"
+ >
+ 瀵煎叆
+ </a-button>
+ <a-button
+ type="info"
+ v-if="hasPerm('WmsControlRule:exportExcel')"
+ icon="download"
+ @click="WmsControlRuleToExcel()"
+ >
+ 瀵煎嚭
+ </a-button>
+ <a-button type="primary" v-if="hasPerm('WmsControlRule:add')" icon="plus" @click="$refs.addForm.add()"
+ >鏂板鎺у埗灞炴�ц鍒�</a-button
+ >
+ </div> -->
+ </template>
+ <span slot="isDisabledscopedSlots" slot-scope="text">
+ <div v-if="text === true">
+ <a-tag color="green">鏄�</a-tag>
+ </div>
+ <div v-else-if="text == false">
+ <a-tag color="volcano">鍚�</a-tag>
+ </div>
+ <div v-else=""></div>
+ </span>
+ <span slot="action" slot-scope="text, record">
+ <!-- 鑷畾涔� -->
+ <a v-if="hasPerm('WmsControlRule:getdetail')" @click="$refs.detailForm.edit(record)">璇︽儏</a>
+
+ </a-popconfirm>
+ </span>
+ </s-table>
+ <add-form ref="addForm" @ok="handleOk" />
+ <edit-form ref="editForm" @ok="handleOk" />
+ <excel-form ref="excelForm" @ok="handleOk" />
+
+ <!-- 鑷畾涔� -->
+ <detail-form ref="detailForm" @ok="handleOk" />
+
+ </a-card>
+ </div>
+</template>
+<script>
+import { STable } from '@/components'
+import moment from 'moment'
+import {
+ WmsControlRulePage,
+ WmsControlRuleDelete,
+ WmsControlRuleToExcel
+} from '@/api/modular/main/WmsBase/WmsControlRuleManage'
+//鑷畾涔塼able楂樺害
+import setTableHtMixin from '@/mixins/handleTableHt.js'
+import addForm from './addForm.vue'
+import { exportExcel } from '@/utils/exportToExcel'
+import { downloadFile } from '@/utils/util'
+import editForm from './editForm.vue'
+import excelForm from './excelForm.vue'
+import detailForm from './details.vue'
+
+
+export default {
+ mixins: [setTableHtMixin],
+ components: {
+ STable,
+ addForm,
+ editForm,
+ excelForm,
+ detailForm
+ },
+ data() {
+ return {
+ advanced: false, // 楂樼骇鎼滅储 灞曞紑/鍏抽棴
+ queryParam: {},
+ pageInfo: {
+ current: 1,
+ pageSize: 10
+ },
+ columns: [
+ {
+ title: '搴忓彿',
+ width: '60px',
+ align: 'center',
+ customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}`
+ },
+ {
+ title: '瑙勫垯缂栧彿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'ruleCode'
+ },
+ {
+ title: '瑙勫垯鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'ruleName'
+ },
+ {
+ title: '瑙勫垯鎻忚堪',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'ruleDesc'
+ },
+ {
+ title: '鏄惁绂佺敤',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'isDisabled',
+ scopedSlots: { customRender: 'isDisabledscopedSlots' }
+ },
+ {
+ title: '鍒涘缓鏃堕棿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'createdTime'
+ },
+ {
+ title: '鏇存柊鏃堕棿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'updatedTime'
+ },
+ {
+ title: '鍒涘缓鑰呭悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'createdUserName'
+ },
+ {
+ title: '淇敼鑰呭悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'updatedUserName'
+ }
+ ],
+ tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
+ // 鍔犺浇鏁版嵁鏂规硶 蹇呴』涓� Promise 瀵硅薄
+ loadData: parameter => {
+ return WmsControlRulePage(Object.assign(parameter, this.switchingDate())).then(res => {
+ return res.data
+ })
+ },
+ selectedRowKeys: [],
+ selectedRows: []
+ }
+ },
+ created() {
+ if (this.hasPerm('WmsControlRule:edit') || this.hasPerm('WmsControlRule:delete')) {
+ this.columns.push({
+ title: '鎿嶄綔',
+ width: '150px',
+ dataIndex: 'action',
+ scopedSlots: { customRender: 'action' }
+ })
+ }
+ const path = this.$route.path
+ const columnStr = window.localStorage.getItem(path)
+ if (columnStr) {
+ var _columns = JSON.parse(columnStr)
+ this.columns.forEach(element => {
+ var fObj = _columns.find((item, index) => {
+ return item.dataIndex === element.dataIndex
+ })
+ if (fObj != undefined && fObj != null) {
+ element.checked = fObj.checked
+ }
+ })
+ }
+ const isDisabledOption = this.$options
+ this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false')
+
+ this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害
+ window.addEventListener(
+ 'resize',
+ () => {
+ this.handleTableHt() // 鐩戝惉灞忓箷澶у皬鏀瑰彉琛ㄦ牸楂樺害
+ },
+ false
+ )
+ },
+ methods: {
+ moment,
+ /**
+ * 鏌ヨ鍙傛暟缁勮
+ */
+ switchingDate() {
+ const obj = JSON.parse(JSON.stringify(this.queryParam))
+ return obj
+ },
+ WmsControlRuleDelete(record) {
+ WmsControlRuleDelete(record).then(res => {
+ if (res.success) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.$refs.table.refresh()
+ } else {
+ this.$message.error('鍒犻櫎澶辫触') // + res.message
+ }
+ })
+ },
+
+ WmsControlRuleToExcel() {
+ this.loading = true
+ let entozh = {}
+ const path = this.$route.path
+ if (window.localStorage.getItem(path)) {
+ JSON.parse(window.localStorage.getItem(path)).forEach(item => {
+ if (item.dataIndex != 'action' && item.checked) {
+ entozh[item.dataIndex] = item.title
+ }
+ })
+ } else {
+ //鐩存帴鐐瑰鍑�
+ this.columns.forEach(item => {
+ if (item.dataIndex != 'action') {
+ entozh[item.dataIndex] = item.title
+ }
+ })
+ }
+ WmsControlRulePage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam))
+ .then(res => {
+ this.loading = false
+ //闇�瑕佹埅鍙栨棩鏈熺殑瀛楁
+ var arrDataCutout = this.columns.filter(v => v.customCutout == true)
+ res.data.rows.forEach(item => {
+ var arrKeys = Object.keys(item)
+ arrKeys.forEach(key => {
+ var strFieldDic = key + 'Data'
+ //鏋氫妇杞��
+ if (this[strFieldDic] && this[strFieldDic].length > 0) {
+ let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key]))
+ if (arrFieldDic.length > 0) {
+ item[key] = arrFieldDic[0]?.name || '娌℃湁鏋氫妇鍊�'
+ }
+ }
+ // 鏃ユ湡鎴彇
+ if (arrDataCutout.length > 0) {
+ arrDataCutout.forEach(itemIn => {
+ if (key == itemIn.dataIndex && item[key]) {
+ item[key] = item[key].split(' ')[0]
+ }
+ })
+ }
+ })
+ })
+ exportExcel(res.data.rows, entozh, 'xlsx', `${this.$route.meta.title}`)
+ })
+ .catch(err => {
+ this.loading = false
+ this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err)
+ })
+ },
+
+ toggleAdvanced() {
+ this.advanced = !this.advanced
+ this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害
+ },
+ onChangecreatedTime(date, dateString) {
+ this.queryParam.createdTime = dateString
+ },
+ onChangeupdatedTime(date, dateString) {
+ this.queryParam.updatedTime = dateString
+ },
+ handleOk() {
+ this.$refs.table.refresh()
+ },
+ onSelectChange(selectedRowKeys, selectedRows) {
+ this.selectedRowKeys = selectedRowKeys
+ this.selectedRows = selectedRows
+ }
+ }
+}
+</script>
+<style lang="less">
+.table-operator {
+ margin-bottom: 18px;
+}
+button {
+ margin-right: 8px;
+}
+</style>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormWmsSubstituteGood.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addForm.vue
similarity index 92%
rename from iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormWmsSubstituteGood.vue
rename to iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addForm.vue
index 71d0a2d..23359a0 100644
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormWmsSubstituteGood.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addForm.vue
@@ -1,6 +1,13 @@
锘�<template>
- <!-- 鏇夸唬鍝佺鐞� -->
- <a-form :form="form">
+ <a-modal
+ title="鏂板鏇夸唬鍝佺鐞�"
+ :width="900"
+ :visible="visible"
+ :confirmLoading="confirmLoading"
+ @ok="handleSubmit"
+ @cancel="handleCancel">
+ <a-spin :spinning="confirmLoading">
+ <a-form :form="form">
<a-form-item label="鏇夸唬缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input placeholder="璇疯緭鍏ユ浛浠g紪鍙�" v-decorator="['substituteCode', {rules: [{required: true, message: '璇疯緭鍏ユ浛浠g紪鍙凤紒'}]}]" />
</a-form-item>
@@ -23,6 +30,8 @@
<a-switch v-decorator="['isDisabled',{rules: [{ required: true, message: '璇烽�夋嫨鏄惁绂佺敤锛�' }], valuePropName: 'checked'}]" />
</a-form-item>
</a-form>
+ </a-spin>
+ </a-modal>
</template>
<script>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue
new file mode 100644
index 0000000..a7029c1
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue
@@ -0,0 +1,285 @@
+锘�<template>
+ <!-- 鏇夸唬鍝佺鐞� -->
+ <div style="background-color: white">
+ <!-- <a-spin :spinning="loading"> -->
+ <div class="wms-task-management-detail-div">
+ <div class="drawer-content">
+ <!-- <span style="font-weight:bold;cursor:default;">
+ <a style="cursor:default;">{{ row.no }}</a>鍗曟嵁璇︽儏
+ </span> -->
+ <div style="margin-top: 10px;">
+ <a-table :columns="columns" :data-source="list" row-key="id" :pagination="false" :scroll="{ x: true }">
+ <template slot="index" slot-scope="text, record, index">{{ index + 1 }}</template>
+ <span slot="containerStatusscopedSlots" slot-scope="text">
+ <a-tag :color="text == '1' ? '#daa520' : text == '2' ? '#cd5c5c' : text == '3' ? '#add8e6' : '#696969'">{{
+ 'orderdetails_statusenum' | dictType(text)
+ }}</a-tag>
+ </span>
+ <span slot="action" slot-scope="text, record">
+ <a-popconfirm v-if="hasPerm('BaseCustomer:delete')" placement="topRight" title="纭鍒犻櫎锛�"
+ @confirm="() => itemDelete(record, index)">
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+ </span>
+ </a-table>
+ </div>
+ </div>
+
+ <p @click="visible = true">鏂板琛�</p>
+
+ <a-modal title="鏇夸唬鍝佸垪琛�" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit"
+ @cancel="handleCancel">
+ <show-list ref="showList" @ok="handleOk" />
+ <!-- <a-spin :spinning="confirmLoading"></a-spin> -->
+ </a-modal>
+ </div>
+ </div>
+</template>
+
+<script>
+import { WmsOrderRukuDetail } from '@/api/modular/main/WmsOrderManage'
+import showList from './index.vue'
+
+export default {
+ name: 'wmsOrderRukuManagementDetailDrawer',
+ emits: ['update:visible'],
+ props: {
+ visible: {
+ type: Boolean,
+ default: false
+ },
+ row: {
+ type: Object,
+ default: function () {
+ return {}
+ }
+ }
+ },
+ components: {
+ showList
+ },
+ data() {
+ return {
+ loading: false,
+ containerStatusData: [],
+ list: [],
+ columns: [
+ {
+ dataIndex: 'index',
+ title: '搴忓彿',
+ fixed: 'left',
+ width: '60',
+ scopedSlots: { customRender: 'index' },
+ align: 'center'
+ },
+ {
+ title: '鏇夸唬缂栧彿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'substituteCode'
+ },
+ {
+ title: '鐗╂枡缂栧彿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'materialCode'
+ },
+ {
+ title: '鐗╂枡鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'materialName'
+ },
+ {
+ title: '鏇夸唬鍝佺墿鏂欑紪鍙�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '140px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '140px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'substituteMaterialCode'
+ },
+ {
+ title: '鏇夸唬鍝佺墿鏂欏悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '140px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '140px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'substituteMaterialName'
+ },
+ {
+ title: '鏇夸唬娆″簭',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'substituteIndex'
+ },
+ ],
+ // 鍒嗛〉
+ ipagination: {
+ current: 1,
+ pageSize: 10,
+ pageSizeOptions: ['10', '20', '30', '40'],
+ showTotal: (total, range) => {
+ return range[0] + '-' + range[1] + '鍏�' + total + '鏉�'
+ },
+ showQuickJumper: true,
+ showSizeChanger: true,
+ total: 0,
+ size: 'small'
+ }
+ }
+ },
+
+ created() {
+ const containerStatusOption = this.$options
+ this.containerStatusData = containerStatusOption.filters['dictData']('orderdetails_statusenum')
+
+ this.columns.push({
+ title: '鎿嶄綔',
+ width: '150px',
+ dataIndex: 'action',
+ scopedSlots: { customRender: 'action' }
+ })
+ },
+ methods: {
+ onClose() {
+ this.close()
+ },
+ close() {
+ this.$emit('update:visible', false)
+ },
+ afterVisibleChange(visible) {
+ if (visible) {
+ this.initShow()
+ } else {
+ this.afterClsoe()
+ }
+ },
+ initShow() {
+ this.loading = true
+ this.getList(() => {
+ this.loading = false
+ })
+ },
+ getList(row) {
+ let params = { id: row.id }
+ WmsOrderRukuDetail(params)
+ .then(d => {
+ this.list = d.data.rows || []
+ this.$emit('update:visible', true)
+ // callback && callback(true)
+ })
+ .catch(() => {
+ this.$emit('update:visible', false)
+ this.list = []
+ // callback && callback(false)
+ })
+ },
+ afterClsoe() {
+ this.list = []
+ },
+ handleOk(param) {
+ this.list = param
+ },
+ handleSubmit() {
+ this.visible = false
+ },
+ handleCancel() {
+ this.visible = false
+ },
+ itemDelete(record, index) {
+ this.list.splice(index, 1)
+ }
+ }
+}
+</script>
+
+<style lang="less" scoped>
+.wms-task-management-detail-div {
+ height: 100%;
+ overflow: auto;
+
+ .drawer-content {
+ padding: 16px;
+ }
+}
+</style>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormWmsSubstituteGood.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/editForm.vue
similarity index 67%
copy from iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormWmsSubstituteGood.vue
copy to iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/editForm.vue
index 71d0a2d..c755d17 100644
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormWmsSubstituteGood.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/editForm.vue
@@ -1,6 +1,13 @@
锘�<template>
- <!-- 鏇夸唬鍝佺鐞� -->
- <a-form :form="form">
+ <a-modal
+ title="缂栬緫鏇夸唬鍝佺鐞�"
+ :width="900"
+ :visible="visible"
+ :confirmLoading="confirmLoading"
+ @ok="handleSubmit"
+ @cancel="handleCancel">
+ <a-spin :spinning="confirmLoading">
+ <a-form :form="form">
<a-form-item label="鏇夸唬缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input placeholder="璇疯緭鍏ユ浛浠g紪鍙�" v-decorator="['substituteCode', {rules: [{required: true, message: '璇疯緭鍏ユ浛浠g紪鍙凤紒'}]}]" />
</a-form-item>
@@ -22,17 +29,21 @@
<a-form-item label="鏄惁绂佺敤" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-switch v-decorator="['isDisabled',{rules: [{ required: true, message: '璇烽�夋嫨鏄惁绂佺敤锛�' }], valuePropName: 'checked'}]" />
</a-form-item>
+ <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item>
</a-form>
+ </a-spin>
+ </a-modal>
</template>
<script>
- import moment from 'moment'
+import moment from 'moment'
import {
- WmsSubstituteGoodAdd
+ WmsSubstituteGoodEdit
} from '@/api/modular/main/WmsBase/WmsSubstituteGoodManage'
export default {
data () {
return {
+ Id: 0,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
@@ -41,6 +52,7 @@
xs: { span: 24 },
sm: { span: 15 }
},
+ record: {},
visible: false,
confirmLoading: false,
form: this.$form.createForm(this)
@@ -49,41 +61,58 @@
methods: {
moment,
// 鍒濆鍖栨柟娉�
- add (record) {
- this.visible = true
+ edit (record) {
+ this.visible = true;
+ this.Id = record.id;
this.$nextTick(() => {
-
});
+ //娣卞害鎷疯礉 绉婚櫎VUE鐨勭洃鍚紝闃叉INDEX椤甸潰鍊煎彉鍔�
+ this.record = JSON.parse(JSON.stringify(record))
+ this.$nextTick(() => {
+ this.form.setFieldsValue(
+ {
+ id: record.id,
+ substituteCode: record.substituteCode,
+ materialCode: record.materialCode,
+ materialName: record.materialName,
+ substituteMaterialCode: record.substituteMaterialCode,
+ substituteMaterialName: record.substituteMaterialName,
+ substituteIndex: record.substituteIndex,
+ isDisabled: record.isDisabled
+ }
+ )
+ })
},
- /**
- * 鎻愪氦琛ㄥ崟
- */
handleSubmit () {
const { form: { validateFields } } = this
this.confirmLoading = true
validateFields((errors, values) => {
if (!errors) {
for (const key in values) {
+ if (values[key] == null) continue
if (typeof (values[key]) === 'object') {
values[key] = JSON.stringify(values[key])
+ this.record[key] = values[key]
+ } else {
+ this.record[key] = values[key]
}
}
- WmsSubstituteGoodAdd(values).then((res) => {
+ WmsSubstituteGoodEdit(this.record).then((res) => {
if (res.success) {
- this.$message.success('鏂板鎴愬姛')
+ this.$message.success('缂栬緫鎴愬姛')
this.confirmLoading = false
- this.$emit('ok', values)
+ this.$emit('ok', this.record)
this.handleCancel()
} else {
- this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message))
+ this.$message.error('缂栬緫澶辫触锛�' + JSON.stringify(res.message))
}
}).finally((res) => {
this.confirmLoading = false
})
- } else {
+ }else{
this.confirmLoading = false
- }
- })
+ }
+ });
},
handleCancel () {
this.form.resetFields()
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/excelForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/excelForm.vue
new file mode 100644
index 0000000..4c8af3c
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/excelForm.vue
@@ -0,0 +1,181 @@
+锘�<template>
+ <a-modal
+ :width="850"
+ :destroyOnClose="true"
+ :visible="visible"
+ :forceRender="true"
+ title="鎵归噺瀵煎叆"
+ cancelText="鍙栨秷涓婁紶"
+ okText="寮�濮嬩笂浼�"
+ @cancel="handleCancel"
+ @ok="handleSubmit">
+ <a-spin :spinning="confirmLoading">
+ <a-row :span="24">
+ <span>璇烽�夋嫨瑕佸鍏ョ殑鏁版嵁鏂囦欢锛圗xcel鏍煎紡锛�</span>
+ </a-row>
+ <p></p>
+ <a-row>
+ <a-col :span="16">
+ <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload">
+ <a-icon style="font-size: 40px;" type="cloud-upload" />
+ </a-upload-dragger>
+ </a-col>
+ <!--<a-col :span="8">
+ <span>瀵煎叆妯″紡锛�</span>
+ <a-select
+ style="width: 130px"
+ placeholder="璇烽�夋嫨瀵煎叆妯″紡"
+ v-model="importExcelType">
+ <a-select-option
+ v-for="(item,index) in importExcelTypeData"
+ :key="index"
+ :value="item.code">{{ item.name }}
+ </a-select-option>
+ </a-select>
+ </a-col>-->
+ </a-row>
+ <a-row :span="24">
+ <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed">
+ 鐐瑰嚮鏌ョ湅鏂囦欢涓婁紶瑕佹眰
+ </a-button>-->
+ <span>銆�</span>
+ <a-button style="width: 90px;text-align: left;" @click="wmsSubstituteGoodDownloadExcelTemplate" type="link">涓嬭浇瀵煎叆妯℃澘</a-button>锛屽~鍐欏苟涓婁紶
+ <span>銆�</span>
+ <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed">
+ 鏀惰捣
+ </a-button>
+ </a-row>
+ <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24">
+ <a-breadcrumb>
+ <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">鏂囦欢涓婁紶瑕佹眰</a-breadcrumb-item>
+ </a-breadcrumb>
+ </a-row>
+ <pre v-show="detailed">
+ <div v-html="demandText"></div>
+ </pre>
+ <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table>
+ <pre v-show="detailed">
+ <div v-html="columnText"></div>
+ </pre>
+ </a-spin>
+ </a-modal>
+</template>
+
+<script>
+ import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util'
+
+ import { WmsSubstituteGoodImportExcel, WmsSubstituteGoodDownloadExcelTemplate} from '@/api/modular/main/WmsBase/WmsSubstituteGoodManage'
+ import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage'
+ export default {
+ components: {
+ },
+ data() {
+ return {
+ visible: false,
+ detailed: false,
+ confirmLoading: false,
+ fileList: [],
+ importExcelTypeData: [],
+ importExcelType: '1',
+ uploadFile: null,
+ columns: [],
+ dataList: [],
+ demandText:'',
+ columnText: ''
+ }
+ },
+ methods: {
+ index() {
+ this.visible = true;
+ this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type')
+ this.demandText = parseDemandText("wmsSubstituteGoodDownloadExcelTemplate")
+ window.downloadFile = this.wmsSubstituteGoodDownloadExcelTemplate;
+ this.getTable();
+ },
+ showDemand() {
+ this.detailed = !this.detailed;
+ },
+ customRequest(document) {
+ this.uploadFile = document
+ },
+ getTable() {
+ sysExcelTemplateGetColumnList({className: "WmsSubstituteGood"}).then(res =>
+ {
+ if (res.success) {
+ this.columns =[];
+ this.dataList = [{}];
+ res.data.forEach(x => {
+ this.columns.push({
+ dataIndex: x.columnName,
+ key: x.columnName,
+ title: x.columnComment
+ });
+ this.dataList[0][x.columnName] = x.isRequired ? "蹇呭~" : "闈炲繀濉�"
+ });
+ this.columnText = parseExcelFieldText(res.data);
+ }
+ });
+ },
+ beforeUpload(fileInfo) {
+ let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']);
+ if (!res.success) {
+ this.$message.warning(res.msg)
+ return false
+ }
+ setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000)
+ },
+ handleChange(fileInfo) {
+ if (fileInfo.file.status === 'error') {
+ fileInfo.fileList.splice(0, 1)
+ }
+ if (fileInfo.file.status === 'done') {
+ if (fileInfo.fileList.length > 1) {
+ fileInfo.fileList.splice(0, 1)
+ }
+ this.fileList = fileInfo.file
+ }
+ },
+ handleSubmit() {
+ this.confirmLoading = true
+ const formData = new FormData()
+ formData.append('file', this.uploadFile.file)
+ WmsSubstituteGoodImportExcel(formData, {importExcelType: this.importExcelType}).then(res => {
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.confirmLoading = false
+ this.$emit('ok', [])
+ this.handleCancel()
+ }).finally((res)=>{this.confirmLoading = false})
+ },
+ handleCancel() {
+ this.visible = false
+ this.detailed = false
+ },
+ wmsSubstituteGoodDownloadExcelTemplate() {
+ WmsSubstituteGoodDownloadExcelTemplate({version: "v2"}).then((res) => {
+ downloadFile(res);
+ }).catch((err) => {
+ this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err)
+ })
+ }
+ }
+ }
+</script>
+
+<style scoped>
+::v-deep .ant-upload.ant-upload-drag {
+ position: relative;
+ width: 140px;
+ height: 135px;
+ text-align: center;
+ background: #fafafa;
+ border: 1px dashed #d9d9d9;
+ border-radius: 2px;
+ cursor: pointer;
+ -webkit-transition: border-color 0.3s;
+ transition: border-color 0.3s;
+}
+::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) {
+ color: #ffc53d;
+ border-color: white;
+}
+</style>
\ No newline at end of file
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/index.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/index.vue
new file mode 100644
index 0000000..300772c
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/WmsSubstituteGood/index.vue
@@ -0,0 +1,547 @@
+锘�<template>
+ <div ref="boxOutWrap" class="boxOutWrap">
+ <div ref="boxForm" class="boxForm">
+ <a-card :bordered="false" :bodyStyle="tstyle">
+
+ <div class="table-page-search-wrapper" v-if="hasPerm('WmsSubstituteGood:page')">
+ <a-form layout="inline">
+ <a-row :gutter="48">
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏇夸唬缂栧彿">
+ <a-input v-model="queryParam.substituteCode" allow-clear placeholder="璇疯緭鍏ユ浛浠g紪鍙�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鐗╂枡缂栧彿">
+ <a-input v-model="queryParam.materialCode" allow-clear placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�" />
+ </a-form-item>
+ </a-col><template v-if="advanced">
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鐗╂枡鍚嶇О">
+ <a-input v-model="queryParam.materialName" allow-clear placeholder="璇疯緭鍏ョ墿鏂欏悕绉�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏇夸唬鍝佺墿鏂欑紪鍙�">
+ <a-input v-model="queryParam.substituteMaterialCode" allow-clear
+ placeholder="璇疯緭鍏ユ浛浠e搧鐗╂枡缂栧彿" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏇夸唬鍝佺墿鏂欏悕绉�">
+ <a-input v-model="queryParam.substituteMaterialName" allow-clear
+ placeholder="璇疯緭鍏ユ浛浠e搧鐗╂枡鍚嶇О" />
+ </a-form-item>
+ </a-col><a-col :md="8" :sm="24">
+ <a-form-item label="鏇夸唬娆″簭">
+ <a-input-number v-model="queryParam.substituteIndex" style="width: 100%" allow-clear
+ placeholder="璇疯緭鍏ユ浛浠f搴�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏄惁绂佺敤">
+ <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled"
+ placeholder="璇烽�夋嫨鏄惁绂佺敤">
+ <a-select-option v-for="(item, index) in isDisabledData" :key="index"
+ :value="item.code">{{ item.name }}</a-select-option>
+ </a-select>
+ </a-form-item>
+ </a-col>
+ <!--骞存湀鏃ユ椂鍒嗙-->
+ <!--鏃堕棿鑼冨洿-->
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍒涘缓鏃堕棿">
+ <a-range-picker style="width: 100%" :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" :show-time="{
+ format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')]
+ }"
+ v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime" />
+
+ </a-form-item>
+ </a-col>
+ <!--骞存湀鏃ユ椂鍒嗙-->
+ <!--鏃堕棿鑼冨洿-->
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏇存柊鏃堕棿">
+ <a-range-picker style="width: 100%" :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" :show-time="{
+ format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')]
+ }"
+ v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime" />
+
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍒涘缓鑰呭悕绉�">
+ <a-input v-model="queryParam.createdUserName" allow-clear placeholder="璇疯緭鍏ュ垱寤鸿�呭悕绉�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="淇敼鑰呭悕绉�">
+ <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="璇疯緭鍏ヤ慨鏀硅�呭悕绉�" />
+ </a-form-item>
+ </a-col> </template>
+
+ <a-col :md="8" :sm="24">
+ <span class="table-page-search-submitButtons">
+ <a-button type="primary" @click="$refs.table.refresh(true)">鏌ヨ</a-button>
+ <a-button style="margin-left: 8px" @click="() => queryParam = {}">閲嶇疆</a-button>
+ <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? '鏀惰捣' : '灞曞紑' }}
+ <a-icon :type="advanced ? 'up' : 'down'" />
+ </a>
+ </span>
+ </a-col>
+
+ </a-row>
+ </a-form>
+ </div>
+ </a-card>
+ </div>
+ <a-card :bordered="false">
+ <s-table ref="table" :columns="columns" :data="loadData" :alert="true" @changeTablePage="pageInfo = $event"
+ :scroll="{ x: true, y: tableHeight }" :rowKey="(record) => record.id"
+ :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
+ <!-- <template class="table-operator" slot="operator" v-if="hasPerm('WmsSubstituteGood:add')">
+ <div ref="actionBar" class="actionBar">
+ <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload"
+ @click="$refs.excelForm.index()">
+ 瀵煎叆
+ </a-button>
+ <a-button type="info" v-if="hasPerm('WmsSubstituteGood:exportExcel')" icon="download"
+ @click="WmsSubstituteGoodToExcel()">
+ 瀵煎嚭
+ </a-button>
+ <a-button type="primary" v-if="hasPerm('WmsSubstituteGood:add')" icon="plus"
+ @click="$refs.addForm.add()">鏂板鏇夸唬鍝佺鐞�</a-button>
+ </div>
+ </template> -->
+ <span slot="isDisabledscopedSlots" slot-scope="text">
+ <div v-if="text === true">
+ <a-tag color="green">鏄�</a-tag>
+ </div>
+ <div v-else-if="text == false">
+ <a-tag color="volcano">鍚�</a-tag>
+ </div>
+ <div v-else=""></div>
+ </span>
+ <span slot="action" slot-scope="text, record">
+
+ <a v-if="hasPerm('WmsSubstituteGood:edit')" @click="$refs.editForm.edit(record)">缂栬緫</a>
+ <a-divider type="vertical"
+ v-if="hasPerm('WmsSubstituteGood:edit') & hasPerm('WmsSubstituteGood:delete')" />
+ <a-popconfirm v-if="hasPerm('WmsSubstituteGood:delete')" placement="topRight" title="纭鍒犻櫎锛�"
+ @confirm="() => WmsSubstituteGoodDelete(record)">
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+ </span>
+ </s-table>
+ <add-form ref="addForm" @ok="handleOk" />
+ <edit-form ref="editForm" @ok="handleOk" />
+ <excel-form ref="excelForm" @ok="handleOk" />
+ </a-card>
+ </div>
+</template>
+<script>
+import { STable } from '@/components'
+import moment from 'moment'
+import { WmsSubstituteGoodPage, WmsSubstituteGoodDelete, WmsSubstituteGoodToExcel } from '@/api/modular/main/WmsBase/WmsSubstituteGoodManage'
+//鑷畾涔塼able楂樺害
+import setTableHtMixin from '@/mixins/handleTableHt.js'
+import addForm from './addForm.vue'
+import { exportExcel } from '@/utils/exportToExcel'
+import { downloadFile } from '@/utils/util'
+import editForm from './editForm.vue'
+import excelForm from './excelForm.vue'
+export default {
+ mixins: [setTableHtMixin],
+ components: {
+ STable,
+ addForm,
+ editForm,
+ excelForm
+ },
+ data() {
+ return {
+ advanced: false, // 楂樼骇鎼滅储 灞曞紑/鍏抽棴
+ queryParam: {},
+ pageInfo: {
+ current: 1,
+ pageSize: 10
+ },
+ columns: [
+ {
+ title: '搴忓彿',
+ width: '60px',
+ align: 'center',
+ customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}`
+ },
+ {
+ title: '鏇夸唬缂栧彿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'substituteCode'
+ },
+ {
+ title: '鐗╂枡缂栧彿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'materialCode'
+ },
+ {
+ title: '鐗╂枡鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'materialName'
+ },
+ {
+ title: '鏇夸唬鍝佺墿鏂欑紪鍙�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '140px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '140px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'substituteMaterialCode'
+ },
+ {
+ title: '鏇夸唬鍝佺墿鏂欏悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '140px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '140px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'substituteMaterialName'
+ },
+ {
+ title: '鏇夸唬娆″簭',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'substituteIndex'
+ },
+ {
+ title: '鏄惁绂佺敤',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'isDisabled',
+ scopedSlots: { customRender: 'isDisabledscopedSlots' }
+ },
+ {
+ title: '鍒涘缓鏃堕棿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'createdTime'
+ },
+ {
+ title: '鏇存柊鏃堕棿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'updatedTime'
+ },
+ {
+ title: '鍒涘缓鑰呭悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'createdUserName'
+ },
+ {
+ title: '淇敼鑰呭悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'updatedUserName'
+ }
+ ],
+ tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
+ // 鍔犺浇鏁版嵁鏂规硶 蹇呴』涓� Promise 瀵硅薄
+ loadData: parameter => {
+ return WmsSubstituteGoodPage(Object.assign(parameter, this.switchingDate())).then((res) => {
+ return res.data
+ })
+ },
+ selectedRowKeys: [],
+ selectedRows: []
+ }
+ },
+ created() {
+ if (this.hasPerm('WmsSubstituteGood:edit') || this.hasPerm('WmsSubstituteGood:delete')) {
+ this.columns.push({
+ title: '鎿嶄綔',
+ width: '150px',
+ dataIndex: 'action',
+ scopedSlots: { customRender: 'action' }
+ })
+ }
+ const path = this.$route.path
+ const columnStr = window.localStorage.getItem(path)
+ if (columnStr) {
+ var _columns = JSON.parse(columnStr)
+ this.columns.forEach(element => {
+ var fObj = _columns.find((item, index) => {
+ return item.dataIndex === element.dataIndex;
+ })
+ if (fObj != undefined && fObj != null) {
+ element.checked = fObj.checked;
+ }
+ });
+ }
+ const isDisabledOption = this.$options
+ this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false')
+
+ this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害
+ window.addEventListener(
+ 'resize',
+ () => {
+ this.handleTableHt() // 鐩戝惉灞忓箷澶у皬鏀瑰彉琛ㄦ牸楂樺害
+ },
+ false
+ )
+
+ },
+ methods: {
+ moment,
+ /**
+ * 鏌ヨ鍙傛暟缁勮
+ */
+ switchingDate() {
+ const obj = JSON.parse(JSON.stringify(this.queryParam))
+ return obj
+ },
+ WmsSubstituteGoodDelete(record) {
+ WmsSubstituteGoodDelete(record).then((res) => {
+ if (res.success) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.$refs.table.refresh()
+ } else {
+ this.$message.error('鍒犻櫎澶辫触') // + res.message
+ }
+ })
+ },
+
+
+ WmsSubstituteGoodToExcel() {
+ this.loading = true
+ let entozh = {};
+ const path = this.$route.path;
+ if (window.localStorage.getItem(path)) {
+ JSON.parse(window.localStorage.getItem(path)).forEach(item => {
+ if (item.dataIndex != 'action' && item.checked) {
+ entozh[item.dataIndex] = item.title
+ }
+ })
+ } else { //鐩存帴鐐瑰鍑�
+ this.columns.forEach(item => {
+ if (item.dataIndex != 'action') {
+ entozh[item.dataIndex] = item.title
+ }
+ })
+ }
+ WmsSubstituteGoodPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => {
+ this.loading = false;
+ //闇�瑕佹埅鍙栨棩鏈熺殑瀛楁
+ var arrDataCutout = this.columns.filter(v => v.customCutout == true);
+ res.data.rows.forEach(item => {
+ var arrKeys = Object.keys(item);
+ arrKeys.forEach(key => {
+ var strFieldDic = key + 'Data';
+ //鏋氫妇杞��
+ if (this[strFieldDic] && this[strFieldDic].length > 0) {
+ let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key]));
+ if (arrFieldDic.length > 0) {
+ item[key] = arrFieldDic[0]?.name || '娌℃湁鏋氫妇鍊�';
+ }
+ }
+ // 鏃ユ湡鎴彇
+ if (arrDataCutout.length > 0) {
+ arrDataCutout.forEach(itemIn => {
+ if (key == itemIn.dataIndex && item[key]) {
+ item[key] = item[key].split(" ")[0]
+ }
+ })
+ }
+ });
+ })
+ exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`)
+ }).catch((err) => {
+ this.loading = false
+ this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err)
+ })
+ },
+
+
+ toggleAdvanced() {
+ this.advanced = !this.advanced
+ this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害
+ },
+ onChangecreatedTime(date, dateString) {
+ this.queryParam.createdTime = dateString
+ },
+ onChangeupdatedTime(date, dateString) {
+ this.queryParam.updatedTime = dateString
+ },
+ handleOk() {
+ this.$refs.table.refresh()
+ },
+ onSelectChange(selectedRowKeys, selectedRows) {
+ this.selectedRowKeys = selectedRowKeys
+ this.selectedRows = selectedRows
+ this.$emit('ok', selectedRows)
+ }
+ }
+}
+</script>
+<style lang="less">.table-operator {
+ margin-bottom: 18px;
+}
+
+button {
+ margin-right: 8px;
+}</style>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/addForm.vue
similarity index 94%
rename from iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer.vue
rename to iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/addForm.vue
index a2bfea8..98ee481 100644
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/addForm.vue
@@ -1,6 +1,13 @@
锘�<template>
- <!-- 鏂板瀹㈡埛妗f -->
- <a-form :form="form">
+ <a-modal
+ title="鏂板瀹㈡埛妗f"
+ :width="900"
+ :visible="visible"
+ :confirmLoading="confirmLoading"
+ @ok="handleSubmit"
+ @cancel="handleCancel">
+ <a-spin :spinning="confirmLoading">
+ <a-form :form="form">
<a-form-item label="瀹㈡埛缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input placeholder="璇疯緭鍏ュ鎴风紪鍙�" v-decorator="['custCode', {rules: [{required: true, message: '璇疯緭鍏ュ鎴风紪鍙凤紒'}]}]" />
</a-form-item>
@@ -44,6 +51,8 @@
<a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" />
</a-form-item>
</a-form>
+ </a-spin>
+ </a-modal>
</template>
<script>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/addFormBaseCustomer.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/addFormBaseCustomer.vue
new file mode 100644
index 0000000..e07f210
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/addFormBaseCustomer.vue
@@ -0,0 +1,205 @@
+锘�<template>
+ <div style="background-color: white">
+ <!-- <a-spin :spinning="loading"> -->
+ <div class="wms-task-management-detail-div">
+ <div class="drawer-content">
+ <!-- <span style="font-weight:bold;cursor:default;">
+ <a style="cursor:default;">{{ row.no }}</a>鍗曟嵁璇︽儏
+ </span> -->
+ <div style="margin-top: 10px;">
+ <a-table :columns="columns" :data-source="list" row-key="id" :pagination="false" :scroll="{ x: true }">
+ <template slot="index" slot-scope="text, record, index">{{ index + 1 }}</template>
+ <span slot="containerStatusscopedSlots" slot-scope="text">
+ <a-tag :color="text == '1' ? '#daa520' : text == '2' ? '#cd5c5c' : text == '3' ? '#add8e6' : '#696969'">{{
+ 'orderdetails_statusenum' | dictType(text)
+ }}</a-tag>
+ </span>
+
+ <span slot="action" slot-scope="text, record">
+ <a-popconfirm v-if="hasPerm('BaseCustomer:delete')" placement="topRight" title="纭鍒犻櫎锛�"
+ @confirm="() => itemDelete(record, index)">
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+ </span>
+ </a-table>
+ </div>
+ </div>
+
+ <p @click="visible = true">鏂板琛�</p>
+
+ <a-modal title="瀹㈡埛鍒楄〃" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit"
+ @cancel="handleCancel">
+ <show-list ref="showList" @ok="handleOk" />
+ <!-- <a-spin :spinning="confirmLoading"></a-spin> -->
+ </a-modal>
+ </div>
+ </div>
+</template>
+
+<script>
+import { WmsOrderRukuDetail } from '@/api/modular/main/WmsOrderManage'
+import showList from './index.vue'
+
+export default {
+ name: 'wmsOrderRukuManagementDetailDrawer',
+ emits: ['update:visible'],
+ props: {
+ visible: {
+ type: Boolean,
+ default: false
+ },
+ row: {
+ type: Object,
+ default: function () {
+ return {}
+ }
+ }
+ },
+ components: {
+ showList
+ },
+ data() {
+ return {
+ loading: false,
+ containerStatusData: [],
+ list: [],
+ columns: [
+ {
+ dataIndex: 'index',
+ title: '搴忓彿',
+ fixed: 'left',
+ width: '60',
+ scopedSlots: { customRender: 'index' },
+ align: 'center'
+ },
+ {
+ title: '瀹㈡埛缂栧彿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'custCode'
+ },
+ {
+ title: '瀹㈡埛涓枃鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px' //鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'custChinaName'
+ }
+ ],
+ // 鍒嗛〉
+ ipagination: {
+ current: 1,
+ pageSize: 10,
+ pageSizeOptions: ['10', '20', '30', '40'],
+ showTotal: (total, range) => {
+ return range[0] + '-' + range[1] + '鍏�' + total + '鏉�'
+ },
+ showQuickJumper: true,
+ showSizeChanger: true,
+ total: 0,
+ size: 'small'
+ }
+ }
+ },
+
+ created() {
+ const containerStatusOption = this.$options
+ this.containerStatusData = containerStatusOption.filters['dictData']('orderdetails_statusenum')
+
+ this.columns.push({
+ title: '鎿嶄綔',
+ width: '150px',
+ dataIndex: 'action',
+ scopedSlots: { customRender: 'action' }
+ })
+ },
+ methods: {
+ onClose() {
+ this.close()
+ },
+ close() {
+ this.$emit('update:visible', false)
+ },
+ afterVisibleChange(visible) {
+ if (visible) {
+ this.initShow()
+ } else {
+ this.afterClsoe()
+ }
+ },
+ initShow() {
+ this.loading = true
+ this.getList(() => {
+ this.loading = false
+ })
+ },
+ getList(row) {
+ let params = { id: row.id }
+ WmsOrderRukuDetail(params)
+ .then(d => {
+ this.list = d.data.rows || []
+ this.$emit('update:visible', true)
+ // callback && callback(true)
+ })
+ .catch(() => {
+ this.$emit('update:visible', false)
+ this.list = []
+ // callback && callback(false)
+ })
+ },
+ afterClsoe() {
+ this.list = []
+ },
+ handleOk(param) {
+ this.list = param
+ },
+ handleSubmit() {
+ this.visible = false
+ },
+ handleCancel() {
+ this.visible = false
+ },
+ itemDelete(record, index) {
+ this.list.splice(index, 1)
+ }
+ }
+}
+</script>
+
+<style lang="less" scoped>
+.wms-task-management-detail-div {
+ height: 100%;
+ overflow: auto;
+
+ .drawer-content {
+ padding: 16px;
+ }
+}
+</style>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/editForm.vue
similarity index 70%
copy from iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer.vue
copy to iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/editForm.vue
index a2bfea8..56a3beb 100644
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer.vue
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/editForm.vue
@@ -1,6 +1,13 @@
锘�<template>
- <!-- 鏂板瀹㈡埛妗f -->
- <a-form :form="form">
+ <a-modal
+ title="缂栬緫瀹㈡埛妗f"
+ :width="900"
+ :visible="visible"
+ :confirmLoading="confirmLoading"
+ @ok="handleSubmit"
+ @cancel="handleCancel">
+ <a-spin :spinning="confirmLoading">
+ <a-form :form="form">
<a-form-item label="瀹㈡埛缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-input placeholder="璇疯緭鍏ュ鎴风紪鍙�" v-decorator="['custCode', {rules: [{required: true, message: '璇疯緭鍏ュ鎴风紪鍙凤紒'}]}]" />
</a-form-item>
@@ -43,17 +50,21 @@
<a-form-item label="鏄惁绂佺敤" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
<a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" />
</a-form-item>
+ <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item>
</a-form>
+ </a-spin>
+ </a-modal>
</template>
<script>
- import moment from 'moment'
+import moment from 'moment'
import {
- BaseCustomerAdd
+ BaseCustomerEdit
} from '@/api/modular/main/WmsBase/BaseCustomerManage'
export default {
data () {
return {
+ Id: 0,
labelCol: {
xs: { span: 24 },
sm: { span: 5 }
@@ -62,6 +73,7 @@
xs: { span: 24 },
sm: { span: 15 }
},
+ record: {},
visible: false,
confirmLoading: false,
form: this.$form.createForm(this)
@@ -70,41 +82,65 @@
methods: {
moment,
// 鍒濆鍖栨柟娉�
- add (record) {
- this.visible = true
+ edit (record) {
+ this.visible = true;
+ this.Id = record.id;
this.$nextTick(() => {
-
});
+ //娣卞害鎷疯礉 绉婚櫎VUE鐨勭洃鍚紝闃叉INDEX椤甸潰鍊煎彉鍔�
+ this.record = JSON.parse(JSON.stringify(record))
+ this.$nextTick(() => {
+ this.form.setFieldsValue(
+ {
+ id: record.id,
+ custCode: record.custCode,
+ custChinaName: record.custChinaName,
+ custEnglishName: record.custEnglishName,
+ mnemonicCode: record.mnemonicCode,
+ custType: record.custType,
+ custTypeName: record.custTypeName,
+ linkMan: record.linkMan,
+ phone: record.phone,
+ email: record.email,
+ zipCode: record.zipCode,
+ province: record.province,
+ city: record.city,
+ address: record.address,
+ isDisabled: record.isDisabled
+ }
+ )
+ })
},
- /**
- * 鎻愪氦琛ㄥ崟
- */
handleSubmit () {
const { form: { validateFields } } = this
this.confirmLoading = true
validateFields((errors, values) => {
if (!errors) {
for (const key in values) {
+ if (values[key] == null) continue
if (typeof (values[key]) === 'object') {
values[key] = JSON.stringify(values[key])
+ this.record[key] = values[key]
+ } else {
+ this.record[key] = values[key]
}
}
- BaseCustomerAdd(values).then((res) => {
+ BaseCustomerEdit(this.record).then((res) => {
if (res.success) {
- this.$message.success('鏂板鎴愬姛')
+ this.$message.success('缂栬緫鎴愬姛')
this.confirmLoading = false
- this.$emit('ok', values)
+ this.$emit('ok', this.record)
this.handleCancel()
} else {
- this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message))
+ this.$message.error('缂栬緫澶辫触锛�' + JSON.stringify(res.message))
}
}).finally((res) => {
this.confirmLoading = false
})
- } else {
+ }else{
this.confirmLoading = false
- }
- })
+ }
+ });
},
handleCancel () {
this.form.resetFields()
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/excelForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/excelForm.vue
new file mode 100644
index 0000000..3f7ba25
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/excelForm.vue
@@ -0,0 +1,181 @@
+锘�<template>
+ <a-modal
+ :width="850"
+ :destroyOnClose="true"
+ :visible="visible"
+ :forceRender="true"
+ title="鎵归噺瀵煎叆"
+ cancelText="鍙栨秷涓婁紶"
+ okText="寮�濮嬩笂浼�"
+ @cancel="handleCancel"
+ @ok="handleSubmit">
+ <a-spin :spinning="confirmLoading">
+ <a-row :span="24">
+ <span>璇烽�夋嫨瑕佸鍏ョ殑鏁版嵁鏂囦欢锛圗xcel鏍煎紡锛�</span>
+ </a-row>
+ <p></p>
+ <a-row>
+ <a-col :span="16">
+ <a-upload-dragger accept=".xlsx,.xls" :multiple="false" :customRequest="customRequest" @change="handleChange" :beforeUpload="beforeUpload">
+ <a-icon style="font-size: 40px;" type="cloud-upload" />
+ </a-upload-dragger>
+ </a-col>
+ <!--<a-col :span="8">
+ <span>瀵煎叆妯″紡锛�</span>
+ <a-select
+ style="width: 130px"
+ placeholder="璇烽�夋嫨瀵煎叆妯″紡"
+ v-model="importExcelType">
+ <a-select-option
+ v-for="(item,index) in importExcelTypeData"
+ :key="index"
+ :value="item.code">{{ item.name }}
+ </a-select-option>
+ </a-select>
+ </a-col>-->
+ </a-row>
+ <a-row :span="24">
+ <!--<a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="!detailed">
+ 鐐瑰嚮鏌ョ湅鏂囦欢涓婁紶瑕佹眰
+ </a-button>-->
+ <span>銆�</span>
+ <a-button style="width: 90px;text-align: left;" @click="baseCustomerDownloadExcelTemplate" type="link">涓嬭浇瀵煎叆妯℃澘</a-button>锛屽~鍐欏苟涓婁紶
+ <span>銆�</span>
+ <a-button @click="showDemand" style="width: 150px;text-align: left;" type="link" v-show="detailed">
+ 鏀惰捣
+ </a-button>
+ </a-row>
+ <a-row v-show="detailed" style="background: #fef4e8; height: 30px;" :span="24">
+ <a-breadcrumb>
+ <a-breadcrumb-item style="line-height: 30px;color: #faad14;margin-left: 18px;">鏂囦欢涓婁紶瑕佹眰</a-breadcrumb-item>
+ </a-breadcrumb>
+ </a-row>
+ <pre v-show="detailed">
+ <div v-html="demandText"></div>
+ </pre>
+ <a-table v-show="detailed" :columns="columns" :data-source="dataList" :rowKey="(record) => record.processID" :pagination="false"></a-table>
+ <pre v-show="detailed">
+ <div v-html="columnText"></div>
+ </pre>
+ </a-spin>
+ </a-modal>
+</template>
+
+<script>
+ import { downloadFile, checkFile, parseExcelFieldText, parseDemandText } from '@/utils/util'
+
+ import { BaseCustomerImportExcel, BaseCustomerDownloadExcelTemplate} from '@/api/modular/main/WmsBase/BaseCustomerManage'
+ import { sysExcelTemplateGetColumnList } from '@/api/modular/system/excelTemplateManage'
+ export default {
+ components: {
+ },
+ data() {
+ return {
+ visible: false,
+ detailed: false,
+ confirmLoading: false,
+ fileList: [],
+ importExcelTypeData: [],
+ importExcelType: '1',
+ uploadFile: null,
+ columns: [],
+ dataList: [],
+ demandText:'',
+ columnText: ''
+ }
+ },
+ methods: {
+ index() {
+ this.visible = true;
+ this.importExcelTypeData = this.$options.filters['dictData']('import_excel_type')
+ this.demandText = parseDemandText("baseCustomerDownloadExcelTemplate")
+ window.downloadFile = this.baseCustomerDownloadExcelTemplate;
+ this.getTable();
+ },
+ showDemand() {
+ this.detailed = !this.detailed;
+ },
+ customRequest(document) {
+ this.uploadFile = document
+ },
+ getTable() {
+ sysExcelTemplateGetColumnList({className: "BaseCustomer"}).then(res =>
+ {
+ if (res.success) {
+ this.columns =[];
+ this.dataList = [{}];
+ res.data.forEach(x => {
+ this.columns.push({
+ dataIndex: x.columnName,
+ key: x.columnName,
+ title: x.columnComment
+ });
+ this.dataList[0][x.columnName] = x.isRequired ? "蹇呭~" : "闈炲繀濉�"
+ });
+ this.columnText = parseExcelFieldText(res.data);
+ }
+ });
+ },
+ beforeUpload(fileInfo) {
+ let res = checkFile(fileInfo, 1073741824, ['.xlsx', '.xls']);
+ if (!res.success) {
+ this.$message.warning(res.msg)
+ return false
+ }
+ setTimeout(() => {this.uploadFile.onSuccess(this.uploadFile.file)}, 1000)
+ },
+ handleChange(fileInfo) {
+ if (fileInfo.file.status === 'error') {
+ fileInfo.fileList.splice(0, 1)
+ }
+ if (fileInfo.file.status === 'done') {
+ if (fileInfo.fileList.length > 1) {
+ fileInfo.fileList.splice(0, 1)
+ }
+ this.fileList = fileInfo.file
+ }
+ },
+ handleSubmit() {
+ this.confirmLoading = true
+ const formData = new FormData()
+ formData.append('file', this.uploadFile.file)
+ BaseCustomerImportExcel(formData, {importExcelType: this.importExcelType}).then(res => {
+ this.$message.success('鎿嶄綔鎴愬姛')
+ this.confirmLoading = false
+ this.$emit('ok', [])
+ this.handleCancel()
+ }).finally((res)=>{this.confirmLoading = false})
+ },
+ handleCancel() {
+ this.visible = false
+ this.detailed = false
+ },
+ baseCustomerDownloadExcelTemplate() {
+ BaseCustomerDownloadExcelTemplate({version: "v2"}).then((res) => {
+ downloadFile(res);
+ }).catch((err) => {
+ this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err)
+ })
+ }
+ }
+ }
+</script>
+
+<style scoped>
+::v-deep .ant-upload.ant-upload-drag {
+ position: relative;
+ width: 140px;
+ height: 135px;
+ text-align: center;
+ background: #fafafa;
+ border: 1px dashed #d9d9d9;
+ border-radius: 2px;
+ cursor: pointer;
+ -webkit-transition: border-color 0.3s;
+ transition: border-color 0.3s;
+}
+::v-deep .ant-btn:focus:not(.ant-btn-primary):not(.ant-btn-danger), .ant-btn:hover:not(.ant-btn-primary):not(.ant-btn-danger) {
+ color: #ffc53d;
+ border-color: white;
+}
+</style>
\ No newline at end of file
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/index.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/index.vue
new file mode 100644
index 0000000..060d952
--- /dev/null
+++ b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsBase/WmsMaterial/tabItem/addFormBaseCustomer/index.vue
@@ -0,0 +1,717 @@
+锘�<template>
+ <div ref="boxOutWrap" class="boxOutWrap">
+ <div ref="boxForm" class="boxForm">
+ <a-card :bordered="false" :bodyStyle="tstyle">
+
+ <div class="table-page-search-wrapper" v-if="hasPerm('BaseCustomer:page')">
+ <a-form layout="inline">
+ <a-row :gutter="48">
+ <a-col :md="8" :sm="24">
+ <a-form-item label="瀹㈡埛缂栧彿">
+ <a-input v-model="queryParam.custCode" allow-clear placeholder="璇疯緭鍏ュ鎴风紪鍙�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="瀹㈡埛涓枃鍚嶇О">
+ <a-input v-model="queryParam.custChinaName" allow-clear placeholder="璇疯緭鍏ュ鎴蜂腑鏂囧悕绉�" />
+ </a-form-item>
+ </a-col><template v-if="advanced">
+ <a-col :md="8" :sm="24">
+ <a-form-item label="瀹㈡埛鑻辨枃鍚嶇О">
+ <a-input v-model="queryParam.custEnglishName" allow-clear placeholder="璇疯緭鍏ュ鎴疯嫳鏂囧悕绉�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍔╄鐮�">
+ <a-input v-model="queryParam.mnemonicCode" allow-clear placeholder="璇疯緭鍏ュ姪璁扮爜" />
+ </a-form-item>
+ </a-col><a-col :md="8" :sm="24">
+ <a-form-item label="绫诲瀷">
+ <a-input-number v-model="queryParam.custType" style="width: 100%" allow-clear
+ placeholder="璇疯緭鍏ョ被鍨�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="绫诲瀷鍚嶇О">
+ <a-input v-model="queryParam.custTypeName" allow-clear placeholder="璇疯緭鍏ョ被鍨嬪悕绉�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鑱旂郴浜�">
+ <a-input v-model="queryParam.linkMan" allow-clear placeholder="璇疯緭鍏ヨ仈绯讳汉" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鐢佃瘽">
+ <a-input v-model="queryParam.phone" allow-clear placeholder="璇疯緭鍏ョ數璇�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鐢靛瓙閭欢">
+ <a-input v-model="queryParam.email" allow-clear placeholder="璇疯緭鍏ョ數瀛愰偖浠�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="閭紪">
+ <a-input v-model="queryParam.zipCode" allow-clear placeholder="璇疯緭鍏ラ偖缂�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鐪佷唤">
+ <a-input v-model="queryParam.province" allow-clear placeholder="璇疯緭鍏ョ渷浠�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍩庡競">
+ <a-input v-model="queryParam.city" allow-clear placeholder="璇疯緭鍏ュ煄甯�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍦板潃">
+ <a-input v-model="queryParam.address" allow-clear placeholder="璇疯緭鍏ュ湴鍧�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏄惁绂佺敤">
+ <a-select :allowClear="true" style="width: 100%" v-model="queryParam.isDisabled"
+ placeholder="璇烽�夋嫨鏄惁绂佺敤">
+ <a-select-option v-for="(item, index) in isDisabledData" :key="index"
+ :value="item.code">{{ item.name }}</a-select-option>
+ </a-select>
+ </a-form-item>
+ </a-col>
+ <!--骞存湀鏃ユ椂鍒嗙-->
+ <!--鏃堕棿鑼冨洿-->
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍒涘缓鏃堕棿">
+ <a-range-picker style="width: 100%" :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" :show-time="{
+ format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')]
+ }"
+ v-model="queryParam.createdTime" value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss" @change="onChangecreatedTime" />
+
+ </a-form-item>
+ </a-col>
+ <!--骞存湀鏃ユ椂鍒嗙-->
+ <!--鏃堕棿鑼冨洿-->
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鏇存柊鏃堕棿">
+ <a-range-picker style="width: 100%" :placeholder="['寮�濮嬫椂闂�', '缁撴潫鏃堕棿']" :show-time="{
+ format: 'HH:mm:ss', defaultValue: [moment('00:00:00', 'HH:mm:ss'), moment('23:59:59', 'HH:mm:ss')]
+ }"
+ v-model="queryParam.updatedTime" value-format="YYYY-MM-DD HH:mm:ss"
+ format="YYYY-MM-DD HH:mm:ss" @change="onChangeupdatedTime" />
+
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="8" :sm="24">
+ <a-form-item label="鍒涘缓鑰呭悕绉�">
+ <a-input v-model="queryParam.createdUserName" allow-clear placeholder="璇疯緭鍏ュ垱寤鸿�呭悕绉�" />
+ </a-form-item>
+ </a-col>
+ <a-col :md="8" :sm="24">
+ <a-form-item label="淇敼鑰呭悕绉�">
+ <a-input v-model="queryParam.updatedUserName" allow-clear placeholder="璇疯緭鍏ヤ慨鏀硅�呭悕绉�" />
+ </a-form-item>
+ </a-col> </template>
+
+ <a-col :md="8" :sm="24">
+ <span class="table-page-search-submitButtons">
+ <a-button type="primary" @click="$refs.table.refresh(true)">鏌ヨ</a-button>
+ <a-button style="margin-left: 8px" @click="() => queryParam = {}">閲嶇疆</a-button>
+ <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? '鏀惰捣' : '灞曞紑' }}
+ <a-icon :type="advanced ? 'up' : 'down'" />
+ </a>
+ </span>
+ </a-col>
+
+ </a-row>
+ </a-form>
+ </div>
+ </a-card>
+ </div>
+ <a-card :bordered="false">
+ <s-table ref="table" :columns="columns" :data="loadData" :alert="true" @changeTablePage="pageInfo = $event"
+ :scroll="{ x: true, y: tableHeight }" :rowKey="(record) => record.id"
+ :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }">
+ <template class="table-operator" slot="operator" v-if="hasPerm('BaseCustomer:add')">
+ <!-- <div ref="actionBar" class="actionBar">
+ <a-button type="info" v-if="hasPerm('sysExcelTemplate:importExcel')" icon="upload" @click="$refs.excelForm.index()">
+ 瀵煎叆
+ </a-button>
+ <a-button type="info" v-if="hasPerm('BaseCustomer:exportExcel')" icon="download" @click="BaseCustomerToExcel()">
+ 瀵煎嚭
+ </a-button>
+ <a-button type="primary" v-if="hasPerm('BaseCustomer:add')" icon="plus" @click="$refs.addForm.add()">鏂板瀹㈡埛妗f</a-button>
+ </div> -->
+ </template>
+ <span slot="isDisabledscopedSlots" slot-scope="text">
+ <div v-if="text === true">
+ <a-tag color="green">鏄�</a-tag>
+ </div>
+ <div v-else-if="text == false">
+ <a-tag color="volcano">鍚�</a-tag>
+ </div>
+ <div v-else=""></div>
+ </span>
+ <span slot="action" slot-scope="text, record">
+
+ <a v-if="hasPerm('BaseCustomer:edit')" @click="$refs.editForm.edit(record)">缂栬緫</a>
+ <a-divider type="vertical" v-if="hasPerm('BaseCustomer:edit') & hasPerm('BaseCustomer:delete')" />
+ <a-popconfirm v-if="hasPerm('BaseCustomer:delete')" placement="topRight" title="纭鍒犻櫎锛�"
+ @confirm="() => BaseCustomerDelete(record)">
+ <a>鍒犻櫎</a>
+ </a-popconfirm>
+ </span>
+ </s-table>
+ <add-form ref="addForm" @ok="handleOk" />
+ <edit-form ref="editForm" @ok="handleOk" />
+ <excel-form ref="excelForm" @ok="handleOk" />
+ </a-card>
+ </div>
+</template>
+<script>
+import { STable } from '@/components'
+import moment from 'moment'
+import { BaseCustomerPage, BaseCustomerDelete, BaseCustomerToExcel } from '@/api/modular/main/WmsBase/BaseCustomerManage'
+//鑷畾涔塼able楂樺害
+import setTableHtMixin from '@/mixins/handleTableHt.js'
+import addForm from './addForm.vue'
+import { exportExcel } from '@/utils/exportToExcel'
+import { downloadFile } from '@/utils/util'
+import editForm from './editForm.vue'
+import excelForm from './excelForm.vue'
+export default {
+ mixins: [setTableHtMixin],
+ components: {
+ STable,
+ addForm,
+ editForm,
+ excelForm
+ },
+ data() {
+ return {
+ advanced: false, // 楂樼骇鎼滅储 灞曞紑/鍏抽棴
+ queryParam: {},
+ pageInfo: {
+ current: 1,
+ pageSize: 10
+ },
+ columns: [
+ {
+ title: '搴忓彿',
+ width: '60px',
+ align: 'center',
+ customRender: (text, record, index) => `${index + 1 + (this.pageInfo.current - 1) * this.pageInfo.pageSize}`
+ },
+ {
+ title: '瀹㈡埛缂栧彿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'custCode'
+ },
+ {
+ title: '瀹㈡埛涓枃鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'custChinaName'
+ },
+ {
+ title: '瀹㈡埛鑻辨枃鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'custEnglishName'
+ },
+ {
+ title: '鍔╄鐮�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'mnemonicCode'
+ },
+ {
+ title: '绫诲瀷',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '80px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '80px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'custType'
+ },
+ {
+ title: '绫诲瀷鍚嶇О',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'custTypeName'
+ },
+ {
+ title: '鑱旂郴浜�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'linkMan'
+ },
+ {
+ title: '鐢佃瘽',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'phone'
+ },
+ {
+ title: '鐢靛瓙閭欢',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'email'
+ },
+ {
+ title: '閭紪',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'zipCode'
+ },
+ {
+ title: '鐪佷唤',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'province'
+ },
+ {
+ title: '鍩庡競',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'city'
+ },
+ {
+ title: '鍦板潃',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'address'
+ },
+ {
+ title: '鏄惁绂佺敤',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'isDisabled',
+ scopedSlots: { customRender: 'isDisabledscopedSlots' }
+ },
+ {
+ title: '鍒涘缓鏃堕棿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'createdTime'
+ },
+ {
+ title: '鏇存柊鏃堕棿',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'updatedTime'
+ },
+ {
+ title: '鍒涘缓鑰呭悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'createdUserName'
+ },
+ {
+ title: '淇敼鑰呭悕绉�',
+ align: 'center',
+ customHeaderCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ customCell: () => {
+ return {
+ style: {
+ 'min-width': '120px'//鏈�灏忓垪瀹借缃�
+ }
+ }
+ },
+ sorter: true,
+ dataIndex: 'updatedUserName'
+ }
+ ],
+ tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
+ // 鍔犺浇鏁版嵁鏂规硶 蹇呴』涓� Promise 瀵硅薄
+ loadData: parameter => {
+ return BaseCustomerPage(Object.assign(parameter, this.switchingDate())).then((res) => {
+ return res.data
+ })
+ },
+ selectedRowKeys: [],
+ selectedRows: []
+ }
+ },
+ created() {
+ if (this.hasPerm('BaseCustomer:edit') || this.hasPerm('BaseCustomer:delete')) {
+ this.columns.push({
+ title: '鎿嶄綔',
+ width: '150px',
+ dataIndex: 'action',
+ scopedSlots: { customRender: 'action' }
+ })
+ }
+ const path = this.$route.path
+ const columnStr = window.localStorage.getItem(path)
+ if (columnStr) {
+ var _columns = JSON.parse(columnStr)
+ this.columns.forEach(element => {
+ var fObj = _columns.find((item, index) => {
+ return item.dataIndex === element.dataIndex;
+ })
+ if (fObj != undefined && fObj != null) {
+ element.checked = fObj.checked;
+ }
+ });
+ }
+ const isDisabledOption = this.$options
+ this.isDisabledData = isDisabledOption.filters['dictData']('yes_true_false')
+
+ this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害
+ window.addEventListener(
+ 'resize',
+ () => {
+ this.handleTableHt() // 鐩戝惉灞忓箷澶у皬鏀瑰彉琛ㄦ牸楂樺害
+ },
+ false
+ )
+
+ },
+ methods: {
+ moment,
+ /**
+ * 鏌ヨ鍙傛暟缁勮
+ */
+ switchingDate() {
+ const obj = JSON.parse(JSON.stringify(this.queryParam))
+ return obj
+ },
+ BaseCustomerDelete(record) {
+ BaseCustomerDelete(record).then((res) => {
+ if (res.success) {
+ this.$message.success('鍒犻櫎鎴愬姛')
+ this.$refs.table.refresh()
+ } else {
+ this.$message.error('鍒犻櫎澶辫触') // + res.message
+ }
+ })
+ },
+
+
+ BaseCustomerToExcel() {
+ this.loading = true
+ let entozh = {};
+ const path = this.$route.path;
+ if (window.localStorage.getItem(path)) {
+ JSON.parse(window.localStorage.getItem(path)).forEach(item => {
+ if (item.dataIndex != 'action' && item.checked) {
+ entozh[item.dataIndex] = item.title
+ }
+ })
+ } else { //鐩存帴鐐瑰鍑�
+ this.columns.forEach(item => {
+ if (item.dataIndex != 'action') {
+ entozh[item.dataIndex] = item.title
+ }
+ })
+ }
+ BaseCustomerPage(Object.assign({ pageSize: 100000, pageIndex: 1 }, this.queryParam)).then((res) => {
+ this.loading = false;
+ //闇�瑕佹埅鍙栨棩鏈熺殑瀛楁
+ var arrDataCutout = this.columns.filter(v => v.customCutout == true);
+ res.data.rows.forEach(item => {
+ var arrKeys = Object.keys(item);
+ arrKeys.forEach(key => {
+ var strFieldDic = key + 'Data';
+ //鏋氫妇杞��
+ if (this[strFieldDic] && this[strFieldDic].length > 0) {
+ let arrFieldDic = this[strFieldDic].filter(v => String(v.code) == String(item[key]));
+ if (arrFieldDic.length > 0) {
+ item[key] = arrFieldDic[0]?.name || '娌℃湁鏋氫妇鍊�';
+ }
+ }
+ // 鏃ユ湡鎴彇
+ if (arrDataCutout.length > 0) {
+ arrDataCutout.forEach(itemIn => {
+ if (key == itemIn.dataIndex && item[key]) {
+ item[key] = item[key].split(" ")[0]
+ }
+ })
+ }
+ });
+ })
+ exportExcel(res.data.rows, entozh, "xlsx", `${this.$route.meta.title}`)
+ }).catch((err) => {
+ this.loading = false
+ this.$message.error('涓嬭浇閿欒锛氳幏鍙栨枃浠舵祦閿欒' + err)
+ })
+ },
+
+
+ toggleAdvanced() {
+ this.advanced = !this.advanced
+ this.handleTableHt() //璁剧疆涓昏〃琛ㄦ牸楂樺害
+ },
+ onChangecreatedTime(date, dateString) {
+ this.queryParam.createdTime = dateString
+ },
+ onChangeupdatedTime(date, dateString) {
+ this.queryParam.updatedTime = dateString
+ },
+ handleOk() {
+ this.$refs.table.refresh()
+ },
+ onSelectChange(selectedRowKeys, selectedRows) {
+ this.selectedRowKeys = selectedRowKeys
+ this.selectedRows = selectedRows
+ this.$emit('ok', selectedRows)
+ }
+ }
+}
+</script>
+<style lang="less">
+.table-operator {
+ margin-bottom: 18px;
+}
+
+button {
+ margin-right: 8px;
+}</style>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsMaterial/addForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsMaterial/addForm.vue
deleted file mode 100644
index eba364c..0000000
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsMaterial/addForm.vue
+++ /dev/null
@@ -1,260 +0,0 @@
-<template>
- <a-modal
- title="鏂板鐗╂枡淇℃伅"
- :width="900"
- :visible="visible"
- :confirmLoading="confirmLoading"
- @ok="handleSubmit"
- @cancel="handleCancel"
- >
- <a-spin :spinning="confirmLoading">
- <a-form :form="form" :labelCol="labelCol" :wrapperCol="wrapperCol">
- <a-row>
- <a-col :span="12">
- <a-form-item label="鐗╂枡缂栧彿" has-feedback>
- <a-input
- placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�"
- v-decorator="['materialNo', { rules: [{ required: true, message: '璇疯緭鍏ョ墿鏂欑紪鍙凤紒' }] }]"
- />
- </a-form-item>
- </a-col>
-
- <a-col :span="12">
- <a-form-item label="鐗╂枡鍚嶇О" has-feedback>
- <a-input
- placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"
- v-decorator="['materialName', { rules: [{ required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉帮紒' }] }]"
- />
- </a-form-item>
- </a-col>
-
- <a-col :span="12">
- <a-form-item label="鐗╂枡绫诲埆">
- <a-select
- style="width: 100%"
- placeholder="璇烽�夋嫨鐗╂枡绫诲埆"
- v-decorator="['materialType', { rules: [{ required: true, message: '璇烽�夋嫨鐗╂枡绫诲埆锛�' }] }]"
- >
- <a-select-option v-for="(item, index) in materialTypeData" :key="index" :value="item.code">{{
- item.name
- }}</a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鐗╂枡灏哄" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欏昂瀵�" v-decorator="['materialSpec']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鐗╂枡瀵嗗害" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欏瘑搴�" v-decorator="['materialDensity']" />
- </a-form-item>
- </a-col>
-
- <!-- <a-form-item label="搴撳尯鍙傛暟" has-feedback>
- <a-select mode="multiple" style="width: 100%" placeholder="璇烽�夋嫨搴撳尯鍙傛暟" v-decorator="['areas']">
- <a-select-option v-for="(item,index) in areaNameParameterData" :key="index" :value="item.areaId">{{ item.areaName }}</a-select-option>
- </a-select>
- </a-form-item>
- <a-form-item label="宸ヤ綔鍖哄弬鏁�" has-feedback>
- <a-select mode="multiple" style="width: 100%" placeholder="璇烽�夋嫨宸ヤ綔鍖哄弬鏁�" v-decorator="['stations']">
- <a-select-option v-for="(item,index) in stationNameParameterData" :key="index" :value="item.stationId">{{ item.stationName }}</a-select-option>
- </a-select>
- </a-form-item> -->
-
- <a-col :span="12">
- <a-form-item label="鐗╂枡鎵规" has-feedback>
- <a-input
- placeholder="璇疯緭鍏ョ墿鏂欐壒娆�"
- v-decorator="['materialBatch', { rules: [{ required: true, message: '璇疯緭鍏ョ墿鏂欐壒娆★紒' }] }]"
- />
- </a-form-item>
- </a-col>
-
- <a-col :span="12">
- <a-form-item label="鐗╂枡妫�楠�" has-feedback>
- <a-select
- style="width: 100%"
- placeholder="璇烽�夋嫨鐗╂枡妫�楠�"
- v-decorator="['inspectionMethod', { rules: [{ required: true, message: '璇烽�夋嫨鐗╂枡妫�楠岋紒' }] }]"
- >
- <a-select-option v-for="(item, index) in inspectionMethodData" :key="index" :value="item.code">{{
- item.name
- }}</a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鐗╂枡鍗曚綅" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欏崟浣�" v-decorator="['materialUnit']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="瀹夊叏瀛橀噺" has-feedback>
- <a-input type="number" min="1" placeholder="璇疯緭鍏ュ畨鍏ㄥ瓨閲�" v-decorator="['safeqty']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鏈�澶у瓨閲�" has-feedback>
- <a-input type="number" min="1" placeholder="璇疯緭鍏ユ渶澶у瓨閲�" v-decorator="['maxImumqty']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鏈�灏忓簱榫�" has-feedback>
- <a-input type="number" min="1" placeholder="璇疯緭鍏ユ渶灏忓簱榫�" v-decorator="['minstorageAge']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鏈�澶у簱榫�" has-feedback>
- <a-input type="number" min="1" placeholder="璇疯緭鍏ユ渶澶у簱榫�" v-decorator="['maxstorageAge']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鎻忚堪" has-feedback>
- <a-textarea :rows="4" placeholder="璇疯緭鍏ユ弿杩�" v-decorator="['description']"></a-textarea>
- </a-form-item>
- </a-col>
-
- <!-- <a-form-item label="搴撳尯Ids" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ簱鍖篒ds" v-decorator="['areaIds']" />
- </a-form-item> -->
- <!-- <a-form-item label="搴撳尯鍙傛暟" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ簱鍖哄弬鏁�" v-decorator="['areaNameParameter']" />
- </a-form-item> -->
- <!-- <a-form-item label="宸ヤ綔鍖篒ds" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ伐浣滃尯Ids" v-decorator="['stationIds']" />
- </a-form-item> -->
- <!-- <a-form-item label="宸ヤ綔鍖哄弬鏁�" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ伐浣滃尯鍙傛暟" v-decorator="['stationNameParameter']" />
- </a-form-item> -->
- <!-- <a-form-item label="宸ユ" has-feedback>
- <a-input placeholder="璇疯緭鍏ュ伐娈�" v-decorator="['lesWorkshopSection']" />
- </a-form-item> -->
-
- <!-- <a-form-item label="绛炬牳鐘舵��" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ鏍哥姸鎬�" v-decorator="['issueState']" />
- </a-form-item> -->
-
- <!-- <a-form-item label="鐔熷寲鏃堕棿" has-feedback>
- <a-input-number placeholder="璇疯緭鍏ョ啛鍖栨椂闂�" style="width: 100%" v-decorator="['maturationTime']" />
- </a-form-item> -->
- <!-- <a-form-item label="鏄惁闇�瑕佺啛鍖�" >
- <a-switch v-decorator="['isMaturation', { valuePropName: 'checked' }]" />
- </a-form-item> -->
- </a-row>
- </a-form>
- </a-spin>
- </a-modal>
-</template>
-
-<script>
-import { WmsMaterialAdd, GetAreas, GetStations } from '@/api/modular/main/WmsMaterialManage'
-export default {
- data() {
- return {
- labelCol: {
- // xs: { span: 24 },
- // sm: { span: 5 }
- span: 8
- },
- wrapperCol: {
- // xs: { span: 24 },
- // sm: { span: 15 }
- span: 13
- },
- inspectionMethodData: [],
- materialTypeData: [],
- areaNameParameterData: [],
- stationNameParameterData: [],
- visible: false,
- confirmLoading: false,
- form: this.$form.createForm(this)
- }
- },
- methods: {
- // 鍒濆鍖栨柟娉�
- add(record) {
- this.visible = true
- this.$nextTick(() => {
- this.getSelects()
- })
- const materialTypeOption = this.$options
- this.materialTypeData = materialTypeOption.filters['dictData']('material_type')
- const inspectionMethodOption = this.$options
- this.inspectionMethodData = inspectionMethodOption.filters['dictData']('material_inspection')
- },
- getSelects() {
- if (this.areaNameParameterData.length <= 0 || this.stationNameParameterData.length <= 0) {
- this.confirmLoading = true
- Promise.all([GetAreas(), GetStations()])
- .then(response => {
- this.areaNameParameterData = response[0].data || []
- this.stationNameParameterData = response[1].data || []
- this.confirmLoading = false
- })
- .catch(() => {
- this.confirmLoading = false
- })
- }
- },
- /**
- * 鎻愪氦琛ㄥ崟
- */
- handleSubmit() {
- const {
- form: { validateFields }
- } = this
- this.confirmLoading = true
- validateFields((errors, values) => {
- if (!errors) {
- if (this.$getObjectType(values.areas) === 'array') {
- values.areaIds = values.areas.join(',')
- values.areaNameParameterArr = values.areas.map(val => {
- return this.parseSelectName(val, 'areaId', 'areaName', 'areaNameParameterData')
- })
- values.areaNameParameter = values.areaNameParameterArr.join(',')
- }
- if (this.$getObjectType(values.stations) === 'array') {
- values.stationIds = values.stations.join(',')
- values.stationNameParameterArr = values.stations.map(val => {
- return this.parseSelectName(val, 'stationId', 'stationName', 'stationNameParameterData')
- })
- values.stationNameParameter = values.stationNameParameterArr.join(',')
- }
- WmsMaterialAdd(values)
- .then(res => {
- if (res.success) {
- this.$message.success('鏂板鎴愬姛')
- this.confirmLoading = false
- this.$emit('ok', values)
- this.handleCancel()
- } else {
- this.$message.error('鏂板澶辫触锛�' + JSON.stringify(res.message))
- }
- })
- .finally(res => {
- this.confirmLoading = false
- })
- } else {
- this.confirmLoading = false
- }
- })
- },
- parseSelectName(val, field, nfield, pfield) {
- let res = val
- for (let i = 0; i < this[pfield].length; i++) {
- if (val === this[pfield][i][field]) {
- res = this[pfield][i][nfield]
- break
- }
- }
- return res
- },
- handleCancel() {
- this.form.resetFields()
- this.visible = false
- }
- }
-}
-</script>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsMaterial/editForm.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsMaterial/editForm.vue
deleted file mode 100644
index 01953b1..0000000
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsMaterial/editForm.vue
+++ /dev/null
@@ -1,263 +0,0 @@
-<template>
- <a-modal
- title="缂栬緫鐗╂枡淇℃伅"
- :width="900"
- :visible="visible"
- :confirmLoading="confirmLoading"
- @ok="handleSubmit"
- @cancel="handleCancel">
- <a-spin :spinning="confirmLoading">
- <a-form :form="form" :labelCol="labelCol" :wrapperCol="wrapperCol">
-
- <a-row>
- <a-col :span="12">
- <a-form-item label="鐗╂枡缂栧彿" has-feedback>
- <a-input
- placeholder="璇疯緭鍏ョ墿鏂欑紪鍙�"
- disabled v-decorator="['materialNo', { rules: [{ required: true, message: '璇疯緭鍏ョ墿鏂欑紪鍙凤紒' }] }]"
- />
- </a-form-item>
- </a-col>
-
- <a-col :span="12">
- <a-form-item label="鐗╂枡鍚嶇О" has-feedback>
- <a-input
- placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"
- v-decorator="['materialName', { rules: [{ required: true, message: '璇疯緭鍏ョ墿鏂欏悕绉帮紒' }] }]"
- />
- </a-form-item>
- </a-col>
-
- <a-col :span="12">
- <a-form-item label="鐗╂枡绫诲埆">
- <a-select
- style="width: 100%"
- placeholder="璇烽�夋嫨鐗╂枡绫诲埆"
- v-decorator="['materialType', { rules: [{ required: true, message: '璇烽�夋嫨鐗╂枡绫诲埆锛�' }] }]"
- >
- <a-select-option v-for="(item, index) in materialTypeData" :key="index" :value="item.code">{{
- item.name
- }}</a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鐗╂枡灏哄" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欏昂瀵�" v-decorator="['materialSpec']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鐗╂枡瀵嗗害" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欏瘑搴�" v-decorator="['materialDensity']" />
- </a-form-item>
- </a-col>
-
- <!-- <a-form-item label="搴撳尯鍙傛暟" has-feedback>
- <a-select mode="multiple" style="width: 100%" placeholder="璇烽�夋嫨搴撳尯鍙傛暟" v-decorator="['areas']">
- <a-select-option v-for="(item,index) in areaNameParameterData" :key="index" :value="item.areaId">{{ item.areaName }}</a-select-option>
- </a-select>
- </a-form-item>
- <a-form-item label="宸ヤ綔鍖哄弬鏁�" has-feedback>
- <a-select mode="multiple" style="width: 100%" placeholder="璇烽�夋嫨宸ヤ綔鍖哄弬鏁�" v-decorator="['stations']">
- <a-select-option v-for="(item,index) in stationNameParameterData" :key="index" :value="item.stationId">{{ item.stationName }}</a-select-option>
- </a-select>
- </a-form-item> -->
-
- <a-col :span="12">
- <a-form-item label="鐗╂枡鎵规" has-feedback>
- <a-input
- disabled placeholder="璇疯緭鍏ョ墿鏂欐壒娆�"
- v-decorator="['materialBatch', { rules: [{ required: true, message: '璇疯緭鍏ョ墿鏂欐壒娆★紒' }] }]"
- />
- </a-form-item>
- </a-col>
-
- <a-col :span="12">
- <a-form-item label="鐗╂枡妫�楠�" has-feedback>
- <a-select
- style="width: 100%"
- placeholder="璇烽�夋嫨鐗╂枡妫�楠�"
- v-decorator="['inspectionMethod', { rules: [{ required: true, message: '璇烽�夋嫨鐗╂枡妫�楠岋紒' }] }]"
- >
- <a-select-option v-for="(item, index) in inspectionMethodData" :key="index" :value="item.code">{{
- item.name
- }}</a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鐗╂枡鍗曚綅" has-feedback>
- <a-input placeholder="璇疯緭鍏ョ墿鏂欏崟浣�" v-decorator="['materialUnit']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="瀹夊叏瀛橀噺" has-feedback>
- <a-input type="number" min="1" placeholder="璇疯緭鍏ュ畨鍏ㄥ瓨閲�" v-decorator="['safeqty']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鏈�澶у瓨閲�" has-feedback>
- <a-input type="number" min="1" placeholder="璇疯緭鍏ユ渶澶у瓨閲�" v-decorator="['maxImumqty']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鏈�灏忓簱榫�" has-feedback>
- <a-input type="number" min="1" placeholder="璇疯緭鍏ユ渶灏忓簱榫�" v-decorator="['minstorageAge']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鏈�澶у簱榫�" has-feedback>
- <a-input type="number" min="1" placeholder="璇疯緭鍏ユ渶澶у簱榫�" v-decorator="['maxstorageAge']" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="鎻忚堪" has-feedback>
- <a-textarea :rows="4" placeholder="璇疯緭鍏ユ弿杩�" v-decorator="['description']"></a-textarea>
- </a-form-item>
- </a-col>
- </a-row>
- <!-- <a-form-item label="鐔熷寲鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback>
- <a-input-number placeholder="璇疯緭鍏ョ啛鍖栨椂闂�" style="width: 100%" v-decorator="['maturationTime']" />
- </a-form-item>
- <a-form-item label="鏄惁闇�瑕佺啛鍖�" :labelCol="labelCol" :wrapperCol="wrapperCol">
- <a-switch v-decorator="['isMaturation', { valuePropName: 'checked' }]" />
- </a-form-item> -->
- <a-form-item v-show="false"><a-input v-decorator="['id']" /></a-form-item>
- </a-form>
- </a-spin>
- </a-modal>
-</template>
-
-<script>
- import {
- WmsMaterialEdit,GetAreas,GetStations
- } from '@/api/modular/main/WmsMaterialManage'
- export default {
- data () {
- return {
- Id: 0,
- labelCol: {
- // xs: { span: 24 },
- // sm: { span: 5 }
- span: 8
- },
- wrapperCol: {
- // xs: { span: 24 },
- // sm: { span: 15 }
- span: 13
- },
- record: {},
- inspectionMethodData: [],
- materialTypeData: [],
- areaNameParameterData: [],
- stationNameParameterData: [],
- visible: false,
- confirmLoading: false,
- form: this.$form.createForm(this)
- }
- },
- methods: {
- // 鍒濆鍖栨柟娉�
- edit (record) {
- this.visible = true;
- this.Id = record.id;
- this.$nextTick(() => {
- this.getSelects()
- });
- //娣卞害鎷疯礉 绉婚櫎VUE鐨勭洃鍚紝闃叉INDEX椤甸潰鍊煎彉鍔�
- this.record = JSON.parse(JSON.stringify(record))
- const materialTypeOption = this.$options
- this.materialTypeData = materialTypeOption.filters['dictData']('material_type')
- const inspectionMethodOption = this.$options
- this.inspectionMethodData = inspectionMethodOption.filters['dictData']('material_inspection')
-
- this.$nextTick(() => {
- let {areas, stations, ...rest } = record
- this.form.setFieldsValue(
- {
- ...rest,
- // id: record.id,
- // materialNo: record.materialNo,
- // materialName: record.materialName,
- // materialType: record.materialType,
- // materialSpec: record.materialSpec,
- // materialDensity: record.materialDensity,
- // maxImumqty: record.maxImumqty,
- areas: record.areaIds?record.areaIds.split(','):[],
- stations: record.stationIds?record.stationIds.split(','):[],
- // maturationTime: record.maturationTime,
- // isMaturation: record.isMaturation
- }
- )
- })
- },
- getSelects(){
- if (this.areaNameParameterData.length<=0 || this.stationNameParameterData.length<=0) {
- this.confirmLoading = true
- Promise.all([
- GetAreas(),
- GetStations()
- ]).then(response=>{
- this.areaNameParameterData = response[0].data || []
- this.stationNameParameterData = response[1].data || []
- this.confirmLoading = false
- }).catch(()=>{
- this.confirmLoading = false
- })
- }
- },
- handleSubmit () {
- const { form: { validateFields } } = this
- this.confirmLoading = true
- validateFields((errors, values) => {
- if (!errors) {
- let params = {...this.record,...values}
- if (this.$getObjectType(values.areas)==='array') {
- params.areaIds = values.areas.join(',')
- params.areaNameParameterArr = values.areas.map((val)=>{
- return this.parseSelectName(val,'areaId','areaName','areaNameParameterData')
- })
- params.areaNameParameter = params.areaNameParameterArr.join(',')
- }
- if (this.$getObjectType(values.stations)==='array'){
- params.stationIds = values.stations.join(',')
- params.stationNameParameterArr = values.stations.map((val)=>{
- return this.parseSelectName(val,'stationId','stationName','stationNameParameterData')
- })
- params.stationNameParameter = params.stationNameParameterArr.join(',')
- }
-
- WmsMaterialEdit(params).then((res) => {
- if (res.success) {
- this.$message.success('缂栬緫鎴愬姛')
- this.confirmLoading = false
- this.$emit('ok', params)
- this.handleCancel()
- } else {
- this.$message.error('缂栬緫澶辫触锛�' + JSON.stringify(res.message))
- }
- }).finally((res) => {
- this.confirmLoading = false
- })
- }else{
- this.confirmLoading = false
- }
- });
- },
- parseSelectName(val,field,nfield,pfield){
- let res = val;
- for (let i=0;i<this[pfield].length;i++) {
- if (val===this[pfield][i][field]) {
- res = this[pfield][i][nfield]
- break
- }
- }
- return res
- },
- handleCancel () {
- this.form.resetFields()
- this.visible = false
- }
- }
- }
-</script>
diff --git a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsMaterial/index.vue b/iWare_RawMaterialWarehouse_Web/src/views/main/WmsMaterial/index.vue
deleted file mode 100644
index b67f90d..0000000
--- a/iWare_RawMaterialWarehouse_Web/src/views/main/WmsMaterial/index.vue
+++ /dev/null
@@ -1,349 +0,0 @@
-锘�<template>
- <div>
- <a-card :bordered="false" :bodyStyle="tstyle">
- <div class="table-page-search-wrapper" v-if="hasPerm('WmsMaterial:page')">
- <a-form layout="inline">
- <a-row :gutter="48">
- <a-col :md="8" :sm="24">
- <a-form-item label="鐗╂枡鍚嶇О">
- <a-input v-model="queryParam.materialName" allow-clear placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"/>
- </a-form-item>
- </a-col>
- <a-col :md="8" :sm="24">
- <a-form-item label="鐗╂枡绫诲埆">
- <a-select :allowClear="true" style="width: 100%" v-model="queryParam.materialType" placeholder="璇烽�夋嫨鐗╂枡绫诲埆">
- <a-select-option v-for="(item,index) in materialTypeData" :key="index" :value="item.code">{{ item.name }}</a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <template v-if="advanced">
- <a-col :md="8" :sm="24">
- <a-form-item label="鐗╂枡灏哄">
- <a-input v-model="queryParam.materialSpec" allow-clear placeholder="璇疯緭鍏ョ墿鏂欏昂瀵�"/>
- </a-form-item>
- </a-col>
- <!-- <a-col :md="8" :sm="24">
- <a-form-item label="鐗╂枡瀵嗗害">
- <a-input v-model="queryParam.materialDensity" allow-clear placeholder="璇疯緭鍏ョ墿鏂欏瘑搴�"/>
- </a-form-item>
- </a-col> -->
- </template>
- <a-col :md="8" :sm="24" >
- <span class="table-page-search-submitButtons">
- <a-button type="primary" @click="$refs.table.refresh(true)" >鏌ヨ</a-button>
- <a-button style="margin-left: 8px" @click="() => queryParam = {}">閲嶇疆</a-button>
- <a @click="toggleAdvanced" style="margin-left: 8px"> {{ advanced ? '鏀惰捣' : '灞曞紑' }}
- <a-icon :type="advanced ? 'up' : 'down'"/>
- </a>
- </span>
- </a-col>
- </a-row>
- </a-form>
- </div>
- </a-card>
- <a-card :bordered="false">
- <a-spin :spinning="loading">
- <!-- :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" -->
- <s-table
- ref="table"
- :columns="columns"
- :data="loadData"
- :alert="true"
- :scroll="{x: true}"
- :rowKey="(record) => record.id"
- >
- <template class="table-operator" slot="operator" v-if="hasPerm('WmsMaterial:add')" >
- <a-button type="primary" v-if="hasPerm('WmsMaterial:add')" icon="plus" @click="$refs.addForm.add()">鏂板</a-button>
- </template>
- <template class="table-operator" slot="operator" >
-
- <!-- <span>
- <a-popconfirm v-if="hasPerm('WmsMaterial:tongbu')" placement="topRight" title="纭鍚屾锛�" @confirm="() => handleSubmit()">
- <a class="tongbubut">鍚屾Desk鏁版嵁</a>
- </a-popconfirm>
- </span> -->
- <!-- <a-button class="tongbubut" @click="handleSubmit">鍚屾Desk鏁版嵁</a-button> -->
- </template>
-
-
- <span slot="inspectionMethodscopedSlots" slot-scope="text">
- {{ 'material_inspection' | dictType(text) }}
- </span>
-
-
- <span slot="materialTypescopedSlots" slot-scope="text">
- {{ 'material_type' | dictType(text) }}
- </span>
-
-
- <span slot="action" slot-scope="text, record">
- <a v-if="hasPerm('WmsMaterial:edit')" @click="$refs.editForm.edit(record)">缂栬緫</a>
- <a-divider type="vertical" v-if="hasPerm('WmsMaterial:edit') & hasPerm('WmsMaterial:delete')"/>
- <a-popconfirm v-if="hasPerm('WmsMaterial:delete')" placement="topRight" title="纭鍒犻櫎锛�" @confirm="() => WmsMaterialDelete(record)">
- <a>鍒犻櫎</a>
- </a-popconfirm>
- </span>
- </s-table>
- </a-spin>
- <add-form ref="addForm" @ok="handleOk" />
- <edit-form ref="editForm" @ok="handleOk" />
- </a-card>
- </div>
-</template>
-<script>
- import { STable } from '@/components'
- import { WmsMaterialPage, WmsMaterialDelete,Getdeskdata } from '@/api/modular/main/WmsMaterialManage'
- import addForm from './addForm.vue'
- import editForm from './editForm.vue'
- export default {
- components: {
- STable,
- addForm,
- editForm
- },
- data () {
- return {
- loading:false,
- advanced: false, // 楂樼骇鎼滅储 灞曞紑/鍏抽棴
- queryParam: {},
- columns: [
- {
- title: '鐗╂枡缂栧彿',
- align: 'center',
-sorter: true,
- dataIndex: 'materialNo',
- width:"100px",
- ellipsis:true
- },
- {
- title: '鐗╂枡鍚嶇О',
- align: 'center',
- dataIndex: 'materialName',
- width:"100px",
- ellipsis:true
- },
- {
- title: '鐗╂枡鎵规',
- align: 'center',
-sorter: true,
- dataIndex: 'materialBatch',
- width:"100px",
- ellipsis:true
- },
- {
- title: '鐗╂枡绫诲埆',
- align: 'center',
- dataIndex: 'materialType',
- scopedSlots: { customRender: 'materialTypescopedSlots' },
- width:"100px"
- },
- {
- title: '鐗╂枡灏哄',
- align: 'center',
- dataIndex: 'materialSpec',
- width:"100px"
- },
- {
- title: '鐗╂枡瀵嗗害',
- align: 'center',
- dataIndex: 'materialDensity',
- width:"100px"
- },
- // {
- // title: '搴撳尯鍙傛暟',
- // align: 'center',
- // dataIndex: 'areaNameParameter',
- // width:"100px"
- // // scopedSlots: { customRender: 'areaNameParameterscopedSlots' }
- // },
- // {
- // title: '宸ヤ綔鍖哄弬鏁�',
- // align: 'center',
- // dataIndex: 'stationNameParameter',
- // width:"120px"
- // // scopedSlots: { customRender: 'stationNameParameterscopedSlots' }
- // },
- {
- title: '鐗╂枡妫�楠�',
- align: 'center',
- dataIndex: 'inspectionMethod',
- scopedSlots: { customRender: 'inspectionMethodscopedSlots' },
- width:"100px"
- },
- {
- title: '鐗╂枡鍗曚綅',
- align: 'center',
-sorter: true,
- dataIndex: 'materialUnit',
- width:"100px"
- },
-// {
-// title: '搴撳尯Ids',
-// align: 'center',
-// sorter: true,
-// dataIndex: 'areaIds'
-// },
-// {
-// title: '宸ヤ綔鍖篒ds',
-// align: 'center',
-// sorter: true,
-// dataIndex: 'stationIds'
-// },
-// {
-// title: '宸ユ',
-// align: 'center',
-// sorter: true,
-// dataIndex: 'lesWorkshopSection',
-// width:"100px"
-// },
- {
- title: '鎻忚堪',
- align: 'center',
-sorter: true,
- dataIndex: 'description',
- width:"100px"
- },
- {
- title: '瀹夊叏瀛橀噺',
- align: 'center',
-sorter: true,
- dataIndex: 'safeqty',
- width:"100px"
- },
- {
- title: '鏈�澶у瓨閲�',
- align: 'center',
-sorter: true,
- dataIndex: 'maxImumqty',
- width:"100px"
- },
- {
- title: '鏈�灏忓簱榫�',
- align: 'center',
-sorter: true,
- dataIndex: 'minstorageAge',
- width:"100px"
- },
- {
- title: '鏈�澶у簱榫�',
- align: 'center',
-sorter: true,
- dataIndex: 'maxstorageAge',
- width:"100px"
- },
-// {
-// title: '绛炬牳鐘舵��',
-// align: 'center',
-// sorter: true,
-// dataIndex: 'issueState'
-// }
-
- // {
- // title: '鐔熷寲鏃堕棿',
- // align: 'center',
- // dataIndex: 'maturationTime'
- // },
- // {
- // title: '鏄惁闇�瑕佺啛鍖�',
- // align: 'center',
- // customRender: (value) => (value ? <a-tag color="#87d068">鏄�</a-tag> : <a-tag color="gray">鍚�</a-tag>),
- // dataIndex: 'isMaturation'
- // }
- ],
- tstyle: { 'padding-bottom': '0px', 'margin-bottom': '10px' },
- // 鍔犺浇鏁版嵁鏂规硶 蹇呴』涓� Promise 瀵硅薄
- loadData: parameter => {
- return WmsMaterialPage(Object.assign(parameter, this.queryParam)).then((res) => {
- res.data.rows = res.data.rows.map((_obj)=>{
- _obj.materialType= _obj.materialType.toString()
- return _obj;
- })
- return res.data
- })
- },
- inspectionMethodData: [],
- materialTypeData: [],
- selectedRowKeys: [],
- selectedRows: []
- }
- },
- created () {
- if (this.hasPerm('WmsMaterial:edit') || this.hasPerm('WmsMaterial:delete')) {
- this.columns.push({
- title: '鎿嶄綔',
- width: '150px',
- dataIndex: 'action',
- fixed: 'right',
- scopedSlots: { customRender: 'action' }
- })
- }
- const materialTypeOption = this.$options
- this.materialTypeData = materialTypeOption.filters['dictData']('material_type')
- const inspectionMethodOption = this.$options
- this.inspectionMethodData = inspectionMethodOption.filters['dictData']('material_inspection')
- },
- methods: {
- /**
- * 鏌ヨ鍙傛暟缁勮
- */
- switchingDate () {
- const obj = JSON.parse(JSON.stringify(this.queryParam))
- return obj
- },
- WmsMaterialDelete (record) {
- WmsMaterialDelete(record).then((res) => {
- if (res.success) {
- this.$message.success('鍒犻櫎鎴愬姛')
- this.$refs.table.refresh()
- } else {
- this.$message.error('鍒犻櫎澶辫触') // + res.message
- }
- })
- },
- handleSubmit() {
- this.loading = true;
- Getdeskdata().then((res) => {
- console.log('res',res)
- if (res.success) {
- this.$message.success('鍚屾鎴愬姛')
- this.$refs.table.refresh()
- this.loading = false;
- } else {
- this.$message.error('鍚屾澶辫触锛�' + res.message)
- this.loading = false;
- }
- }).catch((err) => {
- this.$message.error('鍚屾閿欒锛�' + err.message)
- this.loading = false;
- })
- },
- toggleAdvanced () {
- this.advanced = !this.advanced
- },
- handleOk () {
- this.$refs.table.refresh()
- },
- onSelectChange (selectedRowKeys, selectedRows) {
- this.selectedRowKeys = selectedRowKeys
- this.selectedRows = selectedRows
- }
- }
- }
-</script>
-<style lang="less">
- .table-operator {
- margin-bottom: 18px;
- }
- .tongbubut{
- border-radius: 2px;
- padding: 6px 10px 8px 10px;
- background-color: dodgerblue;color: #fff;
- }
- .tongbubut:hover{
- opacity: 0.8;
- background-color: dodgerblue;color: #fff;
- }
- button {
- margin-right: 8px;
- }
-</style>
diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs
index dab796a..e969b70 100644
--- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs
+++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingInput.cs
@@ -127,32 +127,38 @@
/// <summary>
/// 瀹瑰櫒绫诲瀷ID
/// </summary>
- public virtual long? ContainerTypeId { get; set; }
+ [Required(ErrorMessage = "瀹瑰櫒绫诲瀷ID涓嶈兘涓虹┖")]
+ public virtual long ContainerTypeId { get; set; }
/// <summary>
/// 瀹瑰櫒绫诲瀷鍚嶇О
/// </summary>
+ [Required(ErrorMessage = "瀹瑰櫒绫诲瀷鍚嶇О涓嶈兘涓虹┖")]
public virtual string ContainerTypeName { get; set; }
/// <summary>
/// 鐗╂枡绫诲瀷ID
/// </summary>
- public virtual long? MaterialTypeId { get; set; }
+ [Required(ErrorMessage = "鐗╂枡绫诲瀷ID涓嶈兘涓虹┖")]
+ public virtual long MaterialTypeId { get; set; }
/// <summary>
/// 鐗╂枡绫诲瀷缂栧彿
/// </summary>
+ [Required(ErrorMessage = "鐗╂枡绫诲瀷缂栧彿涓嶈兘涓虹┖")]
public virtual string MaterialTypeCode { get; set; }
/// <summary>
/// 鐗╂枡绫诲瀷鍚嶇О
/// </summary>
+ [Required(ErrorMessage = "鐗╂枡绫诲瀷鍚嶇О涓嶈兘涓虹┖")]
public virtual string MaterialTypeName { get; set; }
/// <summary>
/// 鐗╂枡瀹瑰櫒瀹归噺
/// </summary>
- public virtual decimal? BoxQty { get; set; }
+ [Required(ErrorMessage = "鐗╂枡瀹瑰櫒瀹归噺涓嶈兘涓虹┖")]
+ public virtual decimal BoxQty { get; set; }
}
diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingOutput.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingOutput.cs
index bcea1eb..e46ff7a 100644
--- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingOutput.cs
+++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/Dto/WmsContainerPackagingOutput.cs
@@ -11,7 +11,7 @@
/// <summary>
/// 瀹瑰櫒绫诲瀷ID
/// </summary>
- public long? ContainerTypeId { get; set; }
+ public long ContainerTypeId { get; set; }
/// <summary>
/// 瀹瑰櫒绫诲瀷鍚嶇О
@@ -21,7 +21,7 @@
/// <summary>
/// 鐗╂枡绫诲瀷ID
/// </summary>
- public long? MaterialTypeId { get; set; }
+ public long MaterialTypeId { get; set; }
/// <summary>
/// 鐗╂枡绫诲瀷缂栧彿
@@ -36,7 +36,7 @@
/// <summary>
/// 鐗╂枡瀹瑰櫒瀹归噺
/// </summary>
- public decimal? BoxQty { get; set; }
+ public decimal BoxQty { get; set; }
/// <summary>
/// Id涓婚敭
diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs
index c2759c1..75de536 100644
--- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs
+++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs
@@ -253,6 +253,12 @@
#region 楠岃瘉
+
+ if (string.IsNullOrEmpty(_ContainerTypeId))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾瀹瑰櫒绫诲瀷ID]{_ContainerTypeId}涓嶈兘涓虹┖锛�");
+ }
+
if(!string.IsNullOrEmpty(_ContainerTypeId))
{
if (!long.TryParse(_ContainerTypeId, out long outContainerTypeId)&&!string.IsNullOrEmpty(_ContainerTypeId))
@@ -269,10 +275,22 @@
}
}
+
+ if (string.IsNullOrEmpty(_ContainerTypeName))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾瀹瑰櫒绫诲瀷鍚嶇О]{_ContainerTypeName}涓嶈兘涓虹┖锛�");
+ }
+
if(!string.IsNullOrEmpty(_ContainerTypeName))
{
addItem.ContainerTypeName = (string)_ContainerTypeName;
}
+
+ if (string.IsNullOrEmpty(_MaterialTypeId))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷ID]{_MaterialTypeId}涓嶈兘涓虹┖锛�");
+ }
+
if(!string.IsNullOrEmpty(_MaterialTypeId))
{
if (!long.TryParse(_MaterialTypeId, out long outMaterialTypeId)&&!string.IsNullOrEmpty(_MaterialTypeId))
@@ -289,14 +307,32 @@
}
}
+
+ if (string.IsNullOrEmpty(_MaterialTypeCode))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷缂栧彿]{_MaterialTypeCode}涓嶈兘涓虹┖锛�");
+ }
+
if(!string.IsNullOrEmpty(_MaterialTypeCode))
{
addItem.MaterialTypeCode = (string)_MaterialTypeCode;
}
+
+ if (string.IsNullOrEmpty(_MaterialTypeName))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷鍚嶇О]{_MaterialTypeName}涓嶈兘涓虹┖锛�");
+ }
+
if(!string.IsNullOrEmpty(_MaterialTypeName))
{
addItem.MaterialTypeName = (string)_MaterialTypeName;
}
+
+ if (string.IsNullOrEmpty(_BoxQty))
+ {
+ throw Oops.Oh($"绗瑊index}琛孾鐗╂枡瀹瑰櫒瀹归噺]{_BoxQty}涓嶈兘涓虹┖锛�");
+ }
+
if(!string.IsNullOrEmpty(_BoxQty))
{
if (!decimal.TryParse(_BoxQty, out decimal outBoxQty)&&!string.IsNullOrEmpty(_BoxQty))
@@ -369,13 +405,29 @@
+ bool isExist = false;
+ if (!isEdit)//鏂板
+ {
+ //鏁版嵁鏄惁瀛樺湪閲嶅
+ isExist = await _wmsContainerPackagingRep.AnyAsync(u =>
+ u.ContainerTypeId.Equals(input.ContainerTypeId)
+ ,false);
+ }
+ else//缂栬緫
+ {
+ //褰撳墠缂栬緫鏁版嵁浠ュ鏄惁瀛樺湪閲嶅
+ isExist = await _wmsContainerPackagingRep.AnyAsync(u =>
+ u.Id != input.Id
+ &&u.ContainerTypeId.Equals(input.ContainerTypeId)
+ ,false);
+ }
- //娌℃湁閰嶇疆鑱斿悎涓婚敭锛屼笉闇�瑕侀獙閲�
+ if (isExist) throw Oops.Oh(ErrorCode.E0001);
}
/// <summary>
@@ -386,10 +438,42 @@
private async Task CheckExisitForImport(List<WmsContainerPackaging> inputs)
{
//鏍规嵁鑱斿悎涓婚敭楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
+ if (inputs?.Count <= 0)
+ {
+ throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
+ }
+ //鏁版嵁鏄惁閲嶅
+ var existExcelItem = inputs.GroupBy(g => new {
+ g.ContainerTypeId
+ })
+ .Where(g => g.Count() > 1)
+ .Select(s => new {
+ s.Key.ContainerTypeId
+ }).FirstOrDefault();
+ if (existExcelItem != null)
+ {
+ var wmsContainerPackaging = existExcelItem.Adapt<WmsContainerPackaging>();
+ var item= existExcelItem.Adapt<WmsContainerPackaging>();
+ throw Oops.Oh($"瀵煎叆鐨勮〃鏍间腑,瀹瑰櫒绫诲瀷ID[{item.ContainerTypeId}]宸插瓨鍦�");
+ }
+ //鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
+ var existDBItem = await _wmsContainerPackagingRep.DetachedEntities.FirstOrDefaultAsync(w=>
+ inputs.Select(s=>""
+ +s.ContainerTypeId
+ )
+ .Contains(""
+ +w.ContainerTypeId
+ ));
+ if (existDBItem != null)
+ {
+ var wmsContainerPackaging = existExcelItem.Adapt<WmsContainerPackaging>();
+ var item= existExcelItem.Adapt<WmsContainerPackaging>();
+ throw Oops.Oh($"绯荤粺涓�,瀹瑰櫒绫诲瀷ID[{item.ContainerTypeId}]宸插瓨鍦�");
+ }
}
#endregion
diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/WmsContainerPackagingImport.xlsx b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/WmsContainerPackagingImport.xlsx
index 37c540e..743ed8a 100644
--- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/WmsContainerPackagingImport.xlsx
+++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Web.Entry/wwwroot/ExcelTemplateFile/WmsContainerPackagingImport.xlsx
Binary files differ
--
Gitblit v1.9.3