This commit is contained in:
朱文强 2023-10-10 16:06:53 +08:00
parent 51f101ea4e
commit 78796203f6
38 changed files with 487 additions and 438 deletions

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-09-06 14:31:37 * @Date: 2023-09-06 14:31:37
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-10-07 16:47:35 * @LastEditTime: 2023-10-10 15:09:23
* @Description: * @Description:
*/ */
import request from '@/utils/request' import request from '@/utils/request'
@ -25,6 +25,21 @@ export function updateFinishProductWarehouse(data) {
}) })
} }
// 入库
export function inFinishProductWarehouse(data) {
return request({
url: '/fpw/finish-product-warehouse/in',
method: 'put',
data: data
})
}
// 出库
export function outFinishProductWarehouse(id) {
return request({
url: '/fpw/finish-product-warehouse/out?id=' + id,
method: 'get',
})
}
// 删除成品库 // 删除成品库
export function deleteFinishProductWarehouse(id) { export function deleteFinishProductWarehouse(id) {
return request({ return request({

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-10-08 10:45:09 * @LastEditTime: 2023-10-09 16:01:44
* @Description: * @Description:
--> -->
<template> <template>
@ -12,48 +12,62 @@
ref="dataForm" ref="dataForm"
@keyup.enter.native="dataFormSubmit()" @keyup.enter.native="dataFormSubmit()"
label-width="120px"> label-width="120px">
<el-form-item label="产品编码" prop="goodSpecificationCode"> <el-row :gutter="20">
<el-input <el-col :span="12">
v-model="dataForm.goodSpecificationCode" <el-form-item label="产品编码" prop="goodSpecificationCode">
clearable <el-input
placeholder="请输入产品编码" /> v-model="dataForm.goodSpecificationCode"
</el-form-item> clearable
<el-form-item label="产品名称" prop="goodSpecificationName"> placeholder="请输入产品编码" />
<el-input </el-form-item>
v-model="dataForm.goodSpecificationName" </el-col>
clearable <el-col :span="12">
placeholder="请输入产品名称" /> <el-form-item label="产品名称" prop="goodSpecificationName">
</el-form-item> <el-input
<el-form-item label="产品规格" prop="specification"> v-model="dataForm.goodSpecificationName"
<el-select clearable
v-model="dataForm.specification" placeholder="请输入产品名称" />
clearable </el-form-item>
placeholder="请选择产品规格"> </el-col>
<el-option <el-col :span="12">
v-for="item in options" <el-form-item label="产品规格" prop="specification">
:key="item.value" <el-select
:label="item.label" v-model="dataForm.specification"
:value="item.value"></el-option> clearable
</el-select> placeholder="请选择产品规格">
</el-form-item> <el-option
<el-form-item label="需要熟化时间" prop="cureTime"> v-for="item in options"
<el-input-number :key="item.value"
v-model="dataForm.cureTime" :label="item.label"
controls-position="right" :value="item.value"></el-option>
:min="0"></el-input-number> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否需要熟化" prop="cure"> </el-col>
<el-switch <el-col :span="12">
v-model="dataForm.cure" <el-form-item label="需要熟化时间" prop="cureTime">
:active-value="1" <el-input-number
:inactive-value="0"></el-switch> v-model="dataForm.cureTime"
</el-form-item> controls-position="right"
<el-form-item label="是否启用" prop="deactivate"> :min="0"></el-input-number>
<el-switch </el-form-item>
v-model="dataForm.deactivate" </el-col>
:active-value="1" <el-col :span="12">
:inactive-value="0"></el-switch> <el-form-item label="是否需要熟化" prop="cure">
</el-form-item> <el-switch
v-model="dataForm.cure"
:active-value="1"
:inactive-value="0"></el-switch>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否启用" prop="deactivate">
<el-switch
v-model="dataForm.deactivate"
:active-value="1"
:inactive-value="0"></el-switch>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
</template> </template>

View File

@ -13,7 +13,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -29,7 +29,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>

View File

@ -13,7 +13,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -29,7 +29,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2022-08-24 11:19:43 * @Date: 2022-08-24 11:19:43
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-09-26 14:00:22 * @LastEditTime: 2023-10-10 15:29:31
* @Description: * @Description:
*/ */
export default { export default {
@ -155,16 +155,16 @@ export default {
this.getDataList() this.getDataList()
}, },
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport(id) {
// 处理查询参数 // 处理查询参数
let params = { ...this.queryParams }; let params = { warehouseId:id };
params.pageNo = undefined; params.pageNo = undefined;
params.pageSize = undefined; params.pageSize = undefined;
this.$modal.confirm('是否确认导出所有数据项?').then(() => { this.$modal.confirm('是否确认导出所有数据项?').then(() => {
this.exportLoading = true; this.exportLoading = true;
return this.urlOptions.exportURL(params); return this.urlOptions.exportURL(params);
}).then(response => { }).then(response => {
this.$download.excel(response, '工厂.xls'); this.$download.excel(response, '导出.xls');
this.exportLoading = false; this.exportLoading = false;
}).catch(() => { }); }).catch(() => { });
} }

View File

@ -2,11 +2,12 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-24 14:47:58 * @Date: 2023-08-24 14:47:58
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-10-07 14:33:42 * @LastEditTime: 2023-10-09 16:20:11
* @Description: * @Description:
--> -->
<template> <template>
<div class="app-container"> <div>
<!-- <div class="app-container"> -->
<base-table <base-table
v-loading="dataListLoading" v-loading="dataListLoading"
:table-props="propType==='1'? :table-props="propType==='1'?

View File

@ -13,7 +13,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -29,7 +29,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-21 14:26:23 * @Date: 2023-08-21 14:26:23
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-10-07 16:45:47 * @LastEditTime: 2023-10-10 16:05:52
* @Description: * @Description:
--> -->
<template> <template>
@ -12,9 +12,9 @@
ref="searchBarForm" ref="searchBarForm"
@headBtnClick="buttonClick" /> @headBtnClick="buttonClick" />
<div class="tips"> <div class="tips">
<el-tag effect="dark"></el-tag> <el-tag effect="dark" color="#7362F3" style="border:none"></el-tag>
<el-tag type="success" effect="dark"></el-tag> <el-tag effect="dark" color="#16DC09" style="border:none"></el-tag>
<el-tag type="warning" effect="dark"></el-tag> <el-tag effect="dark" color="#FFA08F" style="border:none"></el-tag>
</div> </div>
<div class="mainbody"> <div class="mainbody">
<div v-for="a in listQuery.total" :key="a"> <div v-for="a in listQuery.total" :key="a">
@ -25,11 +25,11 @@
class="dashboard-layout-item" class="dashboard-layout-item"
v-for="a in wareData.one" v-for="a in wareData.one"
:key="a.id+a.warehouseStorehouseCode" :key="a.id+a.warehouseStorehouseCode"
:style="{background: bgColor[a.warehouseStorehouseState], float: 'left'}"> style="background: #FFF8E8; float: left">
<!-- <div <div
class="dashboard-layout-item-cricle" class="dashboard-layout-item-cricle"
style="background: #16dc09" /> --> :style="{background: bgColor[a.warehouseStorehouseState]}" />
{{ a.warehouseStorehouseCode }} {{ a.warehouseStorehouseName }}
</div> </div>
</el-row> </el-row>
<el-row> <el-row>
@ -37,11 +37,11 @@
class="dashboard-layout-item" class="dashboard-layout-item"
v-for="b in wareData.two" v-for="b in wareData.two"
:key="b.id+b.warehouseStorehouseCode" :key="b.id+b.warehouseStorehouseCode"
:style="{background: bgColor[b.warehouseStorehouseState], float: 'left'}"> style="background: #FFF8E8; float: left">
<!-- <div <div
class="dashboard-layout-item-cricle" class="dashboard-layout-item-cricle"
style="background: #16dc09" /> --> :style="{background: bgColor[b.warehouseStorehouseState]}" />
{{ b.warehouseStorehouseCode }} {{ b.warehouseStorehouseName }}
</div> </div>
</el-row> </el-row>
</el-col> </el-col>
@ -54,11 +54,11 @@
class="dashboard-layout-item" class="dashboard-layout-item"
v-for="c in wareData.there" v-for="c in wareData.there"
:key="c.id+c.warehouseStorehouseCode" :key="c.id+c.warehouseStorehouseCode"
:style="{background: bgColor[c.warehouseStorehouseState], float: 'left'}"> style="background: #FFF8E8; float: left">
<!-- <div <div
class="dashboard-layout-item-cricle" class="dashboard-layout-item-cricle"
style="background: #16dc09" /> --> :style="{background: bgColor[c.warehouseStorehouseState]}" />
{{ c.warehouseStorehouseCode }} {{ c.warehouseStorehouseName }}
</div> </div>
</el-row> </el-row>
<el-row> <el-row>
@ -66,11 +66,11 @@
class="dashboard-layout-item" class="dashboard-layout-item"
v-for="d in wareData.four" v-for="d in wareData.four"
:key="d.id+d.warehouseStorehouseCode" :key="d.id+d.warehouseStorehouseCode"
:style="{background: bgColor[d.warehouseStorehouseState], float: 'left'}"> style="background: #FFF8E8; float: left">
<!-- <div <div
class="dashboard-layout-item-cricle" class="dashboard-layout-item-cricle"
style="background: #16dc09" /> --> :style="{background: bgColor[d.warehouseStorehouseState]}" />
{{ d.warehouseStorehouseCode }} {{ d.warehouseStorehouseName }}
</div> </div>
</el-row> </el-row>
</el-col> </el-col>
@ -82,7 +82,7 @@
<script> <script>
import basicPage from '../mixins/basic-page'; import basicPage from '../mixins/basic-page';
import { getWarehouseStorehouseList } from '@/api/asrs/warehouseStorehouse'; import { getWarehouseStorehouseList,exportWarehouseStorehouseExcel } from '@/api/asrs/warehouseStorehouse';
export default { export default {
mixins: [basicPage], mixins: [basicPage],
@ -90,6 +90,7 @@ export default {
return { return {
urlOptions: { urlOptions: {
getDataListURL: getWarehouseStorehouseList, getDataListURL: getWarehouseStorehouseList,
exportURL: exportWarehouseStorehouseExcel,
}, },
listQuery: { listQuery: {
wareLayer: 1, wareLayer: 1,
@ -101,7 +102,7 @@ export default {
there: [], there: [],
four: [], four: [],
}, },
bgColor:['#37d97f','#ffbd02','#0b58ff'], bgColor:['#16DC09','#FFA08F','#7362F3'],
formConfig: [ formConfig: [
{ {
type: 'select', type: 'select',
@ -123,6 +124,13 @@ export default {
name: 'search', name: 'search',
color: 'primary', color: 'primary',
}, },
{
type: 'button',
btnName: '下载',
name: 'export',
plain: true,
color: 'primary',
},
], ],
}; };
}, },
@ -161,6 +169,9 @@ export default {
this.listQuery.wareLayer = val.value; this.listQuery.wareLayer = val.value;
this.getDataList(); this.getDataList();
break; break;
case 'export':
this.handleExport(this.aId);
break;
default: default:
console.log(val); console.log(val);
} }
@ -176,13 +187,12 @@ export default {
flex-direction: column; flex-direction: column;
} }
.dashboard-layout-item { .dashboard-layout-item {
color: white; width: 80px;
width: 3.3%;
text-align: center; text-align: center;
height: 40px; height: 32px;
box-shadow: 0px 3px 6px 0px rgba(166, 174, 190, 0.8); box-shadow: 0px 3px 6px 0px rgba(166, 174, 190, 0.8);
border-radius: 2px 4px 4px 2px; border-radius: 2px 4px 4px 2px;
margin-bottom: 4px; margin-bottom: 8px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@ -194,11 +204,12 @@ export default {
margin-right: 6px; margin-right: 6px;
} }
&:hover { &:hover {
background-color: rgba(85, 136, 253, 0.8) !important;
color: #ffffff;
cursor: pointer; cursor: pointer;
transform: scaleY(1.3) translateZ(0); transform: scale(1.3) translateZ(0);
} }
&:nth-child(2n) {
margin-right: 24px;
}
} }
.el-divider--horizontal { .el-divider--horizontal {
margin: 10px 0; margin: 10px 0;
@ -209,6 +220,6 @@ export default {
.tips { .tips {
position: absolute; position: absolute;
top: 22px; top: 22px;
left: 370px; right: 120px;
} }
</style> </style>

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-21 14:26:23 * @Date: 2023-08-21 14:26:23
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-10-07 16:45:37 * @LastEditTime: 2023-10-10 15:41:01
* @Description: * @Description:
--> -->
<template> <template>
@ -12,9 +12,9 @@
ref="searchBarForm" ref="searchBarForm"
@headBtnClick="buttonClick" /> @headBtnClick="buttonClick" />
<div class="tips"> <div class="tips">
<el-tag effect="dark"></el-tag> <el-tag type="info" color="#D8E5FF"></el-tag>
<el-tag type="success" effect="dark"></el-tag> <el-tag type="info" color="#FFF8E8"></el-tag>
<el-tag type="warning" effect="dark"></el-tag> <el-tag type="info" color="#F6F6F6"></el-tag>
</div> </div>
<div class="mainbody"> <div class="mainbody">
<div v-for="a in listQuery.total" :key="a"> <div v-for="a in listQuery.total" :key="a">
@ -29,7 +29,7 @@
<!-- <div <!-- <div
class="dashboard-layout-item-cricle" class="dashboard-layout-item-cricle"
style="background: #16dc09" /> --> style="background: #16dc09" /> -->
{{ a.warehouseStorehouseCode }} {{ a.warehouseStorehouseName }}
</div> </div>
</el-row> </el-row>
<el-row> <el-row>
@ -41,7 +41,7 @@
<!-- <div <!-- <div
class="dashboard-layout-item-cricle" class="dashboard-layout-item-cricle"
style="background: #16dc09" /> --> style="background: #16dc09" /> -->
{{ b.warehouseStorehouseCode }} {{ b.warehouseStorehouseName }}
</div> </div>
</el-row> </el-row>
</el-col> </el-col>
@ -58,7 +58,7 @@
<!-- <div <!-- <div
class="dashboard-layout-item-cricle" class="dashboard-layout-item-cricle"
style="background: #16dc09" /> --> style="background: #16dc09" /> -->
{{ c.warehouseStorehouseCode }} {{ c.warehouseStorehouseName }}
</div> </div>
</el-row> </el-row>
<el-row> <el-row>
@ -70,7 +70,7 @@
<!-- <div <!-- <div
class="dashboard-layout-item-cricle" class="dashboard-layout-item-cricle"
style="background: #16dc09" /> --> style="background: #16dc09" /> -->
{{ d.warehouseStorehouseCode }} {{ d.warehouseStorehouseName }}
</div> </div>
</el-row> </el-row>
</el-col> </el-col>
@ -82,7 +82,7 @@
<script> <script>
import basicPage from '../mixins/basic-page'; import basicPage from '../mixins/basic-page';
import { getWarehouseStorehouseList } from '@/api/asrs/warehouseStorehouse'; import { getWarehouseStorehouseList,exportWarehouseStorehouseExcel } from '@/api/asrs/warehouseStorehouse';
export default { export default {
mixins: [basicPage], mixins: [basicPage],
@ -90,6 +90,7 @@ export default {
return { return {
urlOptions: { urlOptions: {
getDataListURL: getWarehouseStorehouseList, getDataListURL: getWarehouseStorehouseList,
exportURL: exportWarehouseStorehouseExcel,
}, },
listQuery: { listQuery: {
wareLayer: 1, wareLayer: 1,
@ -101,7 +102,7 @@ export default {
there: [], there: [],
four: [], four: [],
}, },
bgColor:['#37d97f','#ffbd02','#0b58ff'], bgColor:['#FFF8E8','#F6F6F6','#D8E5FF'],
formConfig: [ formConfig: [
{ {
type: 'select', type: 'select',
@ -123,6 +124,13 @@ export default {
name: 'search', name: 'search',
color: 'primary', color: 'primary',
}, },
{
type: 'button',
btnName: '下载',
name: 'export',
plain: true,
color: 'primary',
},
], ],
}; };
}, },
@ -162,6 +170,9 @@ export default {
this.listQuery.wareLayer = val.value; this.listQuery.wareLayer = val.value;
this.getDataList(); this.getDataList();
break; break;
case 'export':
this.handleExport(this.bId);
break;
default: default:
console.log(val); console.log(val);
} }
@ -177,7 +188,6 @@ export default {
flex-direction: column; flex-direction: column;
} }
.dashboard-layout-item { .dashboard-layout-item {
color: white;
width: 3.3%; width: 3.3%;
text-align: center; text-align: center;
height: 40px; height: 40px;
@ -195,10 +205,8 @@ export default {
margin-right: 6px; margin-right: 6px;
} }
&:hover { &:hover {
background-color: rgba(85, 136, 253, 0.8) !important;
color: #ffffff;
cursor: pointer; cursor: pointer;
transform: scaleY(1.3) translateZ(0); transform: scale(1.3) translateZ(0);
} }
} }
.el-divider--horizontal { .el-divider--horizontal {
@ -210,6 +218,6 @@ export default {
.tips { .tips {
position: absolute; position: absolute;
top: 22px; top: 22px;
left: 370px; right: 120px;
} }
</style> </style>

View File

@ -13,7 +13,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -29,7 +29,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>
@ -63,24 +63,29 @@ const tableProps = [
{ {
prop: 'wareRow', prop: 'wareRow',
label: '排', label: '排',
width: 70,
}, },
{ {
prop: 'wareColumn', prop: 'wareColumn',
label: '列', label: '列',
width: 70,
}, },
{ {
prop: 'wareLayer', prop: 'wareLayer',
label: '层', label: '层',
width: 70,
}, },
{ {
prop: 'cacheLocation', prop: 'cacheLocation',
label: '缓存库位', label: '缓存库位',
filter: codeFilter('isOrno'), filter: codeFilter('isOrno'),
width: 100,
}, },
{ {
prop: 'deactivate', prop: 'deactivate',
label: '是否停用', label: '是否停用',
filter: codeFilter('deactivate'), filter: codeFilter('deactivate'),
width: 100,
}, },
{ {
prop: 'notes', prop: 'notes',

View File

@ -13,7 +13,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -29,7 +29,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>
@ -63,24 +63,29 @@ const tableProps = [
{ {
prop: 'wareRow', prop: 'wareRow',
label: '排', label: '排',
width: 70,
}, },
{ {
prop: 'wareColumn', prop: 'wareColumn',
label: '列', label: '列',
width: 70,
}, },
{ {
prop: 'wareLayer', prop: 'wareLayer',
label: '层', label: '层',
width: 70,
}, },
{ {
prop: 'cacheLocation', prop: 'cacheLocation',
label: '缓存库位', label: '缓存库位',
filter: codeFilter('isOrno'), filter: codeFilter('isOrno'),
width: 100,
}, },
{ {
prop: 'deactivate', prop: 'deactivate',
label: '是否停用', label: '是否停用',
filter: codeFilter('deactivate'), filter: codeFilter('deactivate'),
width: 100,
}, },
{ {
prop: 'notes', prop: 'notes',

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-22 15:01:55 * @Date: 2023-08-22 15:01:55
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-10-07 14:39:56 * @LastEditTime: 2023-10-10 10:43:39
* @Description: * @Description:
--> -->
<template> <template>
@ -26,28 +26,27 @@
@keyup.enter.native="dataFormSubmit"> @keyup.enter.native="dataFormSubmit">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="库编码" prop="warehouseCode"> <el-form-item label="编码" prop="warehouseStorehouseCode">
<el-input <el-input
v-model="dataForm.warehouseCode" v-model="dataForm.warehouseStorehouseCode"
readonly readonly
placeholder="请输入库编码" /> placeholder="请输入编码" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="库名" prop="warehouseName"> <el-form-item label="名" prop="warehouseStorehouseName">
<el-input <el-input
v-model="dataForm.warehouseName" v-model="dataForm.warehouseStorehouseName"
readonly readonly
placeholder="请输入库名" /> placeholder="请输入名" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row :gutter="20">
<el-col :span="12"> <el-col :span="12">
<el-form-item label="工序" prop="process"> <el-form-item label="工序" prop="process">
<el-select <el-select
v-model="dataForm.process" v-model="dataForm.process"
style="width: 100%" style="width: 100%"
@change="$forceUpdate()"
placeholder="请选择工序"> placeholder="请选择工序">
<el-option <el-option
v-for="item in processArr" v-for="item in processArr"
@ -57,6 +56,14 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="托盘编码" prop="trayCode">
<el-input
v-model="dataForm.trayCode"
@input="$forceUpdate()"
placeholder="请输入托盘编码" />
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -79,7 +86,7 @@
:table-data="productAttributeList"> :table-data="productAttributeList">
<method-btn <method-btn
slot="handleBtn" slot="handleBtn"
:width="120" :width="70"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -132,21 +139,25 @@ const tableProps = [
prop: 'specification', prop: 'specification',
label: '产品规格', label: '产品规格',
filter: codeFilter('specification'), filter: codeFilter('specification'),
width:90
}, },
{ {
prop: 'number', prop: 'number',
label: '数量', label: '数量',
subcomponent: inputArea, subcomponent: inputArea,
width:100
}, },
{ {
prop: 'quality', prop: 'quality',
label: '品质', label: '品质',
filter: codeFilter('quality'), filter: codeFilter('quality'),
subcomponent: selectQuality, subcomponent: selectQuality,
width:110
}, },
{ {
prop: 'cureTime', prop: 'cureTime',
label: '需要熟化时间(小时)', label: '需要熟化时间(小时)',
width:150
}, },
]; ];
@ -185,8 +196,8 @@ export default {
processArr, processArr,
dataForm: { dataForm: {
id: null, id: null,
warehouseName: '', warehouseStorehouseName: '',
warehouseCode: '', warehouseStorehouseCode: '',
process: '', process: '',
}, },
listQuery: { listQuery: {
@ -315,12 +326,15 @@ export default {
.drawer >>> .el-form-item__label { .drawer >>> .el-form-item__label {
padding: 0; padding: 0;
} }
.drawer >>> .el-form-item {
margin: 0;
}
.drawer >>> .el-drawer__header { .drawer >>> .el-drawer__header {
margin: 0; margin: 0;
padding: 32px 32px 24px; padding: 32px 32px 24px;
border-bottom: 1px solid #dcdfe6; border-bottom: 1px solid #dcdfe6;
margin-bottom: 30px; margin-bottom: 10px;
} }
.drawer >>> .content { .drawer >>> .content {

View File

@ -29,19 +29,19 @@
prop="warehouseStorehouseCode" prop="warehouseStorehouseCode"
label="库位编码"></el-table-column> label="库位编码"></el-table-column>
<el-table-column prop="trayCode" label="托盘编码"></el-table-column> <el-table-column prop="trayCode" label="托盘编码"></el-table-column>
<el-table-column prop="process" label="工序"> <el-table-column prop="process" label="工序" width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
{{ scope.row.process>=0 ? processArr[scope.row.process].name : '' }} {{ scope.row.process>=0 ? processArr[scope.row.process].name : '' }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="cacheLocation" label="缓存库位"> <el-table-column prop="cacheLocation" label="缓存库位" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.cacheLocation === 0 ? '否' : '是' }}</span> <span>{{ scope.row.cacheLocation === 0 ? '否' : '是' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="warehouseStorehouseState" label="库状态"> <el-table-column prop="warehouseStorehouseState" label="状态" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
{{ {{
@ -53,7 +53,7 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作" width="70">
<template v-slot="scope"> <template v-slot="scope">
<el-button <el-button
size="mini" size="mini"

View File

@ -29,19 +29,19 @@
prop="warehouseStorehouseCode" prop="warehouseStorehouseCode"
label="库位编码"></el-table-column> label="库位编码"></el-table-column>
<el-table-column prop="trayCode" label="托盘编码"></el-table-column> <el-table-column prop="trayCode" label="托盘编码"></el-table-column>
<el-table-column prop="process" label="工序"> <el-table-column prop="process" label="工序" width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
{{ scope.row.process>=0 ? processArr[scope.row.process].name : '' }} {{ scope.row.process>=0 ? processArr[scope.row.process].name : '' }}
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="cacheLocation" label="缓存库位"> <el-table-column prop="cacheLocation" label="缓存库位" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.cacheLocation === 0 ? '否' : '是' }}</span> <span>{{ scope.row.cacheLocation === 0 ? '否' : '是' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="warehouseStorehouseState" label="库状态"> <el-table-column prop="warehouseStorehouseState" label="状态" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
{{ {{
@ -53,7 +53,7 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作" width="70">
<template v-slot="scope"> <template v-slot="scope">
<el-button <el-button
size="mini" size="mini"

View File

@ -2,7 +2,7 @@
<el-drawer <el-drawer
:visible.sync="visible" :visible.sync="visible"
:show-close="false" :show-close="false"
:destroy-on-close="true" :destroy-on-close="true"
:wrapper-closable="false" :wrapper-closable="false"
class="drawer" class="drawer"
size="60%"> size="60%">
@ -18,29 +18,28 @@
label-position="top" label-position="top"
@keyup.enter.native="dataFormSubmit"> @keyup.enter.native="dataFormSubmit">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="8">
<el-form-item label="仓库编码" prop="code"> <el-form-item label="库位编码" prop="warehouseStorehouseCode">
<el-input <el-input
v-model="dataForm.code" v-model="dataForm.warehouseStorehouseCode"
readonly readonly
placeholder="请输入库编码" /> placeholder="请输入编码" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="8">
<el-form-item label="仓库名" prop="name"> <el-form-item label="库位名" prop="warehouseStorehouseName">
<el-input <el-input
v-model="dataForm.name" v-model="dataForm.warehouseStorehouseName"
readonly readonly
placeholder="请输入库名" /> placeholder="请输入名" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="8">
<el-row :gutter="20"> <el-form-item label="工序" prop="process">
<el-col :span="12">
<el-form-item label="工序" prop="processId">
<el-select <el-select
v-model="dataForm.processId" v-model="dataForm.process"
style="width: 100%" style="width: 100%"
@change="$forceUpdate()"
placeholder="请选择工序"> placeholder="请选择工序">
<el-option <el-option
v-for="item in processArr" v-for="item in processArr"
@ -50,6 +49,31 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8">
<el-form-item label="托盘编码" prop="trayCode">
<el-input
v-model="dataForm.trayCode"
@input="$forceUpdate()"
placeholder="请输入托盘编码" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item
label="选择入库位置"
prop="inWarehouseStorehouseName">
<el-select
v-model="dataForm.inWarehouseStorehouseName"
style="width: 100%"
@change="$forceUpdate()"
placeholder="请选择入库位置">
<el-option
v-for="item in potArr"
:key="item.id"
:label="item.warehouseStorehouseName"
:value="item.id" />
</el-select>
</el-form-item>
</el-col>
</el-row> </el-row>
</el-form> </el-form>
@ -57,24 +81,25 @@
style="margin: 16px 0; padding-left: 8px" style="margin: 16px 0; padding-left: 8px"
:no-padding="true"> :no-padding="true">
产品信息 产品信息
<el-alert title="产品信息新增和修改后,需点击最下方保存按钮确定修改" type="warning" show-icon></el-alert> <el-alert
title="产品信息新增和修改后,需点击最下方保存按钮确定修改"
type="warning"
show-icon></el-alert>
</small-title> </small-title>
<div class="attr-list"> <div class="attr-list">
<base-table <base-table
:table-props=" :table-props="tableProps"
tableProps
"
:page="listQuery.pageNo" :page="listQuery.pageNo"
:limit="listQuery.pageSize" :limit="listQuery.pageSize"
:add-button-show="addButtonShow" :add-button-show="addButtonShow"
@emitButtonClick="addNew" @emitButtonClick="addNew"
@emitFun="inputChange" @emitFun="inputChange"
:height="400" :height="400"
:table-data="productAttributeList"> :table-data="productAttributeList">
<method-btn <method-btn
slot="handleBtn" slot="handleBtn"
:width="120" :width="70"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -99,14 +124,13 @@
</template> </template>
<script> <script>
import { import { updateProduct } from '@/api/core/base/product';
updateProduct,
} from '@/api/core/base/product';
import { import {
getWarehouseStorehouseGoodsSpecificationPage, getWarehouseStorehouseGoodsSpecificationPage,
deleteWarehouseStorehouseGoodsSpecification, deleteWarehouseStorehouseGoodsSpecification,
} from '@/api/asrs/warehouseStorehouseGoodsSpecification'; } from '@/api/asrs/warehouseStorehouseGoodsSpecification';
import { getWarehouseStorehouseList } from '@/api/asrs/warehouseStorehouse';
import productAttrAdd from './attr-add'; import productAttrAdd from './attr-add';
import inputArea from '../mixins/inputArea'; import inputArea from '../mixins/inputArea';
import selectQuality from '../mixins/selectQuality'; import selectQuality from '../mixins/selectQuality';
@ -133,21 +157,25 @@ const tableProps = [
prop: 'specification', prop: 'specification',
label: '产品规格', label: '产品规格',
filter: codeFilter('specification'), filter: codeFilter('specification'),
width: 90,
}, },
{ {
prop: 'number', prop: 'number',
label: '数量', label: '数量',
subcomponent: inputArea, subcomponent: inputArea,
width: 100,
}, },
{ {
prop: 'quality', prop: 'quality',
label: '品质', label: '品质',
filter: codeFilter('quality'), filter: codeFilter('quality'),
subcomponent: selectQuality, subcomponent: selectQuality,
width: 110,
}, },
{ {
prop: 'cureTime', prop: 'cureTime',
label: '需要熟化时间(小时)', label: '需要熟化时间(小时)',
width: 150,
}, },
]; ];
@ -184,11 +212,13 @@ export default {
productAttributeList: [], productAttributeList: [],
addButtonShow: '新增', addButtonShow: '新增',
processArr, processArr,
potArr: [],
dataForm: { dataForm: {
id: null, id: null,
name: '', warehouseStorehouseName: '',
code: '', warehouseStorehouseCode: '',
processId: '', process: '',
inWarehouseStorehouseName: '',
}, },
listQuery: { listQuery: {
pageSize: 10, pageSize: 10,
@ -214,7 +244,9 @@ export default {
this.dataForm = val; this.dataForm = val;
this.initData(); this.initData();
this.visible = true; this.visible = true;
getWarehouseStorehouseList().then((response) => {
this.potArr = response.data;
});
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['dataForm'].resetFields(); this.$refs['dataForm'].resetFields();
@ -281,7 +313,7 @@ export default {
dataFormSubmit() { dataFormSubmit() {
this.productAttributeList.forEach((item) => { this.productAttributeList.forEach((item) => {
item.id = ''; item.id = '';
item.warehouseStorehouseId = this.dataForm.id item.warehouseStorehouseId = this.dataForm.id;
item.warehouseId = ''; item.warehouseId = '';
}); });
this.$refs['dataForm'].validate((valid) => { this.$refs['dataForm'].validate((valid) => {
@ -326,12 +358,14 @@ export default {
.drawer >>> .el-form-item__label { .drawer >>> .el-form-item__label {
padding: 0; padding: 0;
} }
.drawer >>> .el-form-item {
margin: 0;
}
.drawer >>> .el-drawer__header { .drawer >>> .el-drawer__header {
margin: 0; margin: 0;
padding: 32px 32px 24px; padding: 32px 32px 24px;
border-bottom: 1px solid #dcdfe6; border-bottom: 1px solid #dcdfe6;
margin-bottom: 30px; margin-bottom: 10px;
} }
.drawer >>> .content { .drawer >>> .content {

View File

@ -29,7 +29,7 @@
prop="warehouseStorehouseCode" prop="warehouseStorehouseCode"
label="库位编码"></el-table-column> label="库位编码"></el-table-column>
<el-table-column prop="trayCode" label="托盘编码"></el-table-column> <el-table-column prop="trayCode" label="托盘编码"></el-table-column>
<el-table-column prop="process" label="工序"> <el-table-column prop="process" label="工序" width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
{{ {{
@ -38,12 +38,12 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="cacheLocation" label="缓存库位"> <el-table-column prop="cacheLocation" label="缓存库位" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.cacheLocation === 0 ? '否' : '是' }}</span> <span>{{ scope.row.cacheLocation === 0 ? '否' : '是' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="warehouseStorehouseState" label="库状态"> <el-table-column prop="warehouseStorehouseState" label="状态" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
{{ {{
@ -55,7 +55,7 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作" width="100">
<template v-slot="scope"> <template v-slot="scope">
<el-button <el-button
size="mini" size="mini"

View File

@ -29,7 +29,7 @@
prop="warehouseStorehouseCode" prop="warehouseStorehouseCode"
label="库位编码"></el-table-column> label="库位编码"></el-table-column>
<el-table-column prop="trayCode" label="托盘编码"></el-table-column> <el-table-column prop="trayCode" label="托盘编码"></el-table-column>
<el-table-column prop="process" label="工序"> <el-table-column prop="process" label="工序" width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
{{ {{
@ -38,12 +38,12 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="cacheLocation" label="缓存库位"> <el-table-column prop="cacheLocation" label="缓存库位" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ scope.row.cacheLocation === 0 ? '否' : '是' }}</span> <span>{{ scope.row.cacheLocation === 0 ? '否' : '是' }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="warehouseStorehouseState" label="库状态"> <el-table-column prop="warehouseStorehouseState" label="状态" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
{{ {{
@ -55,7 +55,7 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作" width="100">
<template v-slot="scope"> <template v-slot="scope">
<el-button <el-button
size="mini" size="mini"

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-09-04 15:47:46 * @LastEditTime: 2023-10-09 15:49:08
* @Description: * @Description:
--> -->
<template> <template>
@ -20,7 +20,7 @@
<el-option <el-option
v-for="item in potArr" v-for="item in potArr"
:key="item.id" :key="item.id"
:label="item.warehouseName" :label="item.warehouseStorehouseName"
:value="item.id" /> :value="item.id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
@ -29,7 +29,7 @@
<script> <script>
import basicAdd from '../mixins/basic-add'; import basicAdd from '../mixins/basic-add';
import { getWarehouseStorehousePage,moveStorehouse } from "@/api/asrs/warehouseStorehouse"; import { getWarehouseStorehouseList,moveStorehouse } from "@/api/asrs/warehouseStorehouse";
export default { export default {
mixins: [basicAdd], mixins: [basicAdd],
@ -55,12 +55,8 @@ export default {
this.visible = true; this.visible = true;
this.$nextTick(() => { this.$nextTick(() => {
this.$refs["dataForm"].resetFields(); this.$refs["dataForm"].resetFields();
const params = { getWarehouseStorehouseList().then((response) => {
pageSize: 100, this.potArr = response.data;
pageNo: 1,
};
getWarehouseStorehousePage(params).then((response) => {
this.potArr = response.data.list;
}); });
}); });
}, },

View File

@ -29,7 +29,7 @@
prop="warehouseStorehouseCode" prop="warehouseStorehouseCode"
label="库位编码"></el-table-column> label="库位编码"></el-table-column>
<el-table-column prop="trayCode" label="托盘编码"></el-table-column> <el-table-column prop="trayCode" label="托盘编码"></el-table-column>
<el-table-column prop="process" label="工序"> <el-table-column prop="process" label="工序" width="110">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
{{ {{
@ -45,7 +45,7 @@
</el-table-column> </el-table-column>
<el-table-column <el-table-column
prop="warehouseStorehouseStorageState" prop="warehouseStorehouseStorageState"
label="出入库状态"> label="出入库状态" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
<span> <span>
{{ {{

View File

@ -13,7 +13,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -29,7 +29,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>

View File

@ -396,12 +396,14 @@ export default {
.drawer >>> .el-form-item__label { .drawer >>> .el-form-item__label {
padding: 0; padding: 0;
} }
.drawer >>> .el-form-item {
margin: 0;
}
.drawer >>> .el-drawer__header { .drawer >>> .el-drawer__header {
margin: 0; margin: 0;
padding: 32px 32px 24px; padding: 32px 32px 24px;
border-bottom: 1px solid #dcdfe6; border-bottom: 1px solid #dcdfe6;
margin-bottom: 30px; margin-bottom: 10px;
} }
.drawer >>> .content { .drawer >>> .content {

View File

@ -19,7 +19,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />

View File

@ -13,7 +13,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -29,7 +29,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>

View File

@ -13,7 +13,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -29,7 +29,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>

View File

@ -13,7 +13,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -29,7 +29,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2021-11-18 14:16:25 * @Date: 2021-11-18 14:16:25
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-08-31 16:35:40 * @LastEditTime: 2023-10-09 16:03:51
* @Description: * @Description:
--> -->
<template> <template>
@ -12,44 +12,66 @@
ref="dataForm" ref="dataForm"
@keyup.enter.native="dataFormSubmit()" @keyup.enter.native="dataFormSubmit()"
label-width="120px"> label-width="120px">
<el-form-item label="产品编码" prop="goodSpecificationCode"> <el-row :gutter="20">
<el-input <el-col :span="12">
v-model="dataForm.goodSpecificationCode" <el-form-item label="产品编码" prop="goodSpecificationCode">
clearable <el-input
placeholder="请输入产品编码" /> v-model="dataForm.goodSpecificationCode"
</el-form-item> clearable
<el-form-item label="产品名称" prop="goodSpecificationName"> placeholder="请输入产品编码" />
<el-input </el-form-item>
v-model="dataForm.goodSpecificationName" </el-col>
clearable <el-col :span="12">
placeholder="请输入产品名称" /> <el-form-item label="产品名称" prop="goodSpecificationName">
</el-form-item> <el-input
<el-form-item label="是否启用" prop="deactivate"> v-model="dataForm.goodSpecificationName"
<el-switch clearable
v-model="dataForm.deactivate" placeholder="请输入产品名称" />
:active-value="1" </el-form-item>
:inactive-value="0"></el-switch> </el-col>
</el-form-item> <el-col :span="12">
<el-form-item label="产品规格" prop="specification">
<el-select
v-model="dataForm.specification"
clearable
placeholder="请选择产品规格">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否启用" prop="deactivate">
<el-switch
v-model="dataForm.deactivate"
:active-value="1"
:inactive-value="0"></el-switch>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
</template> </template>
<script> <script>
import basicAdd from '../mixins/basic-add'; import basicAdd from '../mixins/basic-add';
import { import {
createFinishGoodSpecification, createFinishGoodSpecification,
updateFinishGoodSpecification, updateFinishGoodSpecification,
getFinishGoodSpecification, getFinishGoodSpecification,
getCode getCode,
} from "@/api/fpw/finishGoodSpecification"; } from '@/api/fpw/finishGoodSpecification';
export default { export default {
mixins: [basicAdd], mixins: [basicAdd],
data() { data() {
return { return {
urlOptions: { urlOptions: {
isGetCode: true, isGetCode: true,
codeURL: getCode, codeURL: getCode,
codeName: 'goodSpecificationCode', codeName: 'goodSpecificationCode',
createURL: createFinishGoodSpecification, createURL: createFinishGoodSpecification,
updateURL: updateFinishGoodSpecification, updateURL: updateFinishGoodSpecification,
infoURL: getFinishGoodSpecification, infoURL: getFinishGoodSpecification,
@ -58,8 +80,19 @@ export default {
id: undefined, id: undefined,
goodSpecificationCode: undefined, goodSpecificationCode: undefined,
goodSpecificationName: undefined, goodSpecificationName: undefined,
specification: undefined,
deactivate: undefined, deactivate: undefined,
}, },
options: [
{
value: 2,
label: '卷',
},
{
value: 1,
label: '箱',
},
],
dataRule: { dataRule: {
goodSpecificationCode: [ goodSpecificationCode: [
{ required: true, message: '产品编码不能为空', trigger: 'blur' }, { required: true, message: '产品编码不能为空', trigger: 'blur' },

View File

@ -20,7 +20,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -36,7 +36,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>

View File

@ -20,7 +20,7 @@
<method-btn <method-btn
v-if="tableBtn.length" v-if="tableBtn.length"
slot="handleBtn" slot="handleBtn"
:width="120" :width="100"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -36,7 +36,7 @@
@cancel="handleCancel" @cancel="handleCancel"
@confirm="handleConfirm" @confirm="handleConfirm"
:before-close="handleCancel" :before-close="handleCancel"
width="70%"> width="50%">
<add-or-update <add-or-update
ref="addOrUpdate" ref="addOrUpdate"
@refreshDataList="successSubmit"></add-or-update> @refreshDataList="successSubmit"></add-or-update>

View File

@ -19,19 +19,19 @@
@keyup.enter.native="dataFormSubmit"> @keyup.enter.native="dataFormSubmit">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="8"> <el-col :span="8">
<el-form-item label="库编码" prop="finishProductCode"> <el-form-item label="编码" prop="finishProductCode">
<el-input <el-input
v-model="dataForm.finishProductCode" v-model="dataForm.finishProductCode"
readonly readonly
placeholder="请输入库编码" /> placeholder="请输入编码" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="库名" prop="finishProductName"> <el-form-item label="名" prop="finishProductName">
<el-input <el-input
v-model="dataForm.finishProductName" v-model="dataForm.finishProductName"
readonly readonly
placeholder="请输入库名" /> placeholder="请输入名" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="8">
@ -63,7 +63,7 @@
:table-data="productAttributeList"> :table-data="productAttributeList">
<method-btn <method-btn
slot="handleBtn" slot="handleBtn"
:width="80" :width="70"
label="操作" label="操作"
:method-list="tableBtn" :method-list="tableBtn"
@clickBtn="handleClick" /> @clickBtn="handleClick" />
@ -74,9 +74,8 @@
<div style="position: absolute; bottom: 24px; right: 24px"> <div style="position: absolute; bottom: 24px; right: 24px">
<el-button style="margin-right: 10px" @click="goback()">返回</el-button> <el-button style="margin-right: 10px" @click="goback()">返回</el-button>
<span>
<el-button type="primary" @click="dataFormSubmit()">保存</el-button> <el-button type="primary" @click="dataFormSubmit()">保存</el-button>
</span> <el-button type="success" @click="inWare()">入库</el-button>
</div> </div>
<product-attr-add <product-attr-add
@ -90,6 +89,7 @@
<script> <script>
import { import {
updateFinishProductWarehouse, updateFinishProductWarehouse,
inFinishProductWarehouse
} from '@/api/fpw/finishProductWarehouse'; } from '@/api/fpw/finishProductWarehouse';
import { import {
@ -97,6 +97,7 @@ import {
} from '@/api/fpw/finishProductWarehouseGoods'; } from '@/api/fpw/finishProductWarehouseGoods';
import productAttrAdd from './attr-add'; import productAttrAdd from './attr-add';
import selectQuality from '../mixins/selectQuality'; import selectQuality from '../mixins/selectQuality';
import inputArea from '../mixins/inputArea';
import { parseTime } from '../mixins/code-filter'; import { parseTime } from '../mixins/code-filter';
import codeFilter from '../mixins/code-filter'; import codeFilter from '../mixins/code-filter';
import SmallTitle from './SmallTitle'; import SmallTitle from './SmallTitle';
@ -116,20 +117,23 @@ const tableProps = [
prop: 'goodsCode', prop: 'goodsCode',
label: '产品编码', label: '产品编码',
}, },
{
prop: 'boxCode',
label: '箱子编码',
},
{ {
prop: 'specification', prop: 'specification',
label: '产品规格', label: '产品规格',
filter: codeFilter('specification'), filter: codeFilter('specification'),
width: 100,
},
{
prop: 'boxCode',
label: '箱子编码',
subcomponent: inputArea,
}, },
{ {
prop: 'quality', prop: 'quality',
label: '品质', label: '品质',
filter: codeFilter('quality'), filter: codeFilter('quality'),
subcomponent: selectQuality, subcomponent: selectQuality,
width: 110,
}, },
]; ];
@ -261,6 +265,26 @@ export default {
} }
}); });
}, },
inWare() {
this.productAttributeList.forEach((item) => {
item.id = '';
item.finishProductWarehouseId = this.dataForm.id
});
this.$refs['dataForm'].validate((valid) => {
if (valid) {
this.dataForm.list = this.productAttributeList;
//
if (this.dataForm.id) {
inFinishProductWarehouse(this.dataForm).then((response) => {
this.$modal.msgSuccess('修改成功');
this.visible = false;
this.$emit('refreshDataList');
});
return;
}
}
});
},
// / // /
addNew(index) { addNew(index) {
this.addOrUpdateVisible = true; this.addOrUpdateVisible = true;
@ -288,12 +312,14 @@ export default {
.drawer >>> .el-form-item__label { .drawer >>> .el-form-item__label {
padding: 0; padding: 0;
} }
.drawer >>> .el-form-item {
margin: 0;
}
.drawer >>> .el-drawer__header { .drawer >>> .el-drawer__header {
margin: 0; margin: 0;
padding: 32px 32px 24px; padding: 32px 32px 24px;
border-bottom: 1px solid #dcdfe6; border-bottom: 1px solid #dcdfe6;
margin-bottom: 30px; margin-bottom: 10px;
} }
.drawer >>> .content { .drawer >>> .content {

View File

@ -39,7 +39,7 @@
</span> </span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作" width="100">
<template v-slot="scope"> <template v-slot="scope">
<el-button <el-button
size="mini" size="mini"
@ -49,14 +49,19 @@
v-hasPermi="['asrs:warehouse-storehouse-storage:update']"> v-hasPermi="['asrs:warehouse-storehouse-storage:update']">
入库 入库
</el-button> </el-button>
<el-button <el-popconfirm
size="mini" @confirm="setShipment(scope.row.id)"
v-else-if="scope.row.finishProductWarehouseState === 1" placement="top"
type="text" :title="'你确定要把 <'+ scope.row.finishProductName +'> 库位出货吗?'">
@click="handleClick({ data: scope.row, type: 'out' })" <el-button
v-hasPermi="['asrs:warehouse-storehouse-storage:update']"> slot="reference"
出库 size="mini"
</el-button> v-if="scope.row.finishProductWarehouseState === 1"
type="text"
v-hasPermi="['asrs:warehouse-storehouse-storage:update']">
出库
</el-button>
</el-popconfirm>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
@ -70,28 +75,16 @@
ref="drawerRef" ref="drawerRef"
:prop-type="2" :prop-type="2"
@refreshDataList="getDataList" /> @refreshDataList="getDataList" />
<base-dialog
:dialogTitle="addOrEditTitle"
:dialogVisible="addOrUpdateVisible"
@cancel="handleCancel"
@confirm="handleConfirm"
:before-close="handleCancel"
width="50%">
<out-or-move
ref="addOrUpdate"
@refreshDataList="successSubmit"></out-or-move>
</base-dialog>
</div> </div>
</template> </template>
<script> <script>
import AddOrUpdate from './add-or-updata'; import AddOrUpdate from './add-or-updata';
import outOrMove from './out-or-move';
import product from '../product-mini'; import product from '../product-mini';
import basicPage from '../mixins/basic-page'; import basicPage from '../mixins/basic-page';
import { parseTime } from '../mixins/code-filter'; import { parseTime } from '../mixins/code-filter';
import { getFinishProductWarehousePage } from '@/api/fpw/finishProductWarehouse'; import { getFinishProductWarehousePage,outFinishProductWarehouse } from '@/api/fpw/finishProductWarehouse';
const warehouseStorehouseState = [ const warehouseStorehouseState = [
{ {
@ -175,7 +168,6 @@ export default {
components: { components: {
AddOrUpdate, AddOrUpdate,
product, product,
outOrMove,
}, },
created() {}, created() {},
methods: { methods: {
@ -192,7 +184,8 @@ export default {
val.warehouseStorehouseStateId; val.warehouseStorehouseStateId;
Object.keys(this.listQuery).forEach( Object.keys(this.listQuery).forEach(
(key) => (key) =>
this.listQuery[key] === null || (this.listQuery[key] === '' && delete this.listQuery[key]) this.listQuery[key] === null ||
(this.listQuery[key] === '' && delete this.listQuery[key])
); );
this.getDataList(); this.getDataList();
break; break;
@ -220,17 +213,6 @@ export default {
}, },
otherMethods(val) { otherMethods(val) {
if (val.type === 'out') { if (val.type === 'out') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = '出库';
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id, 0);
});
} else if (val.type === 'move') {
this.addOrUpdateVisible = true;
this.addOrEditTitle = '移库';
this.$nextTick(() => {
this.$refs.addOrUpdate.init(val.data.id, 1);
});
} else if (val.type === 'in') { } else if (val.type === 'in') {
this.drawerVisible = true; this.drawerVisible = true;
this.$nextTick(() => { this.$nextTick(() => {
@ -240,6 +222,12 @@ export default {
console.log(11); console.log(11);
} }
}, },
setShipment(id) {
outFinishProductWarehouse(id).then((response) => {
this.$modal.msgSuccess('出库成功');
this.getDataList();
});
},
}, },
}; };
</script> </script>

View File

@ -1,82 +0,0 @@
<!--
* @Author: zwq
* @Date: 2021-11-18 14:16:25
* @LastEditors: zwq
* @LastEditTime: 2023-09-04 15:47:46
* @Description:
-->
<template>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmit()"
label-width="150px">
<el-form-item :label="type?'选择移库位置':'选择出库到货位置'" prop="targetId">
<el-select
v-model="dataForm.targetId"
style="width: 100%"
placeholder="请选择位置">
<el-option
v-for="item in potArr"
:key="item.id"
:label="item.warehouseName"
:value="item.id" />
</el-select>
</el-form-item>
</el-form>
</template>
<script>
import basicAdd from '../mixins/basic-add';
import { getWarehouseStorehousePage,moveStorehouse } from "@/api/asrs/warehouseStorehouse";
export default {
mixins: [basicAdd],
data() {
return {
urlOptions: {
},
dataForm: {
sourceId: undefined,
targetId: undefined,
},
potArr: [],
type: 0,
dataRule: {
targetId: [{ required: true, message: "位置不能为空", trigger: "blur" }],
}
};
},
methods: {
init(id,type) {
this.dataForm.sourceId = id || "";
this.type = type
this.visible = true;
this.$nextTick(() => {
this.$refs["dataForm"].resetFields();
const params = {
pageSize: 100,
pageNo: 1,
};
getWarehouseStorehousePage(params).then((response) => {
this.potArr = response.data.list;
});
});
},
//
dataFormSubmit() {
this.$refs["dataForm"].validate((valid) => {
if (!valid) {
return false;
}
moveStorehouse(this.dataForm.sourceId,this.dataForm.targetId).then(response => {
this.$modal.msgSuccess("修改成功");
this.visible = false;
this.$emit("refreshDataList");
});
});
},
},
};
</script>

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2022-08-24 11:19:43 * @Date: 2022-08-24 11:19:43
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-09-27 09:30:22 * @LastEditTime: 2023-10-10 15:26:13
* @Description: * @Description:
*/ */
export default { export default {
@ -154,14 +154,14 @@ export default {
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
// 处理查询参数 // 处理查询参数
let params = { ...this.queryParams }; let params = { };
params.pageNo = undefined; params.pageNo = undefined;
params.pageSize = undefined; params.pageSize = undefined;
this.$modal.confirm('是否确认导出所有数据项?').then(() => { this.$modal.confirm('是否确认导出所有数据项?').then(() => {
this.exportLoading = true; this.exportLoading = true;
return this.urlOptions.exportURL(params); return this.urlOptions.exportURL(params);
}).then(response => { }).then(response => {
this.$download.excel(response, '工厂.xls'); this.$download.excel(response, '导出.xls');
this.exportLoading = false; this.exportLoading = false;
}).catch(() => { }); }).catch(() => { });
} }

View File

@ -2,7 +2,7 @@
/* /*
* @Date: 2020-12-29 16:49:28 * @Date: 2020-12-29 16:49:28
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-10-08 15:48:34 * @LastEditTime: 2023-10-09 14:33:36
* @FilePath: \basic-admin\src\filters\basicData\index.js * @FilePath: \basic-admin\src\filters\basicData\index.js
* @Description: * @Description:
*/ */
@ -25,6 +25,10 @@ const table = {
1: 'B', 1: 'B',
0: 'A', 0: 'A',
}, },
specification:{
1: '箱',
2: '卷',
},
} }
// 日期格式化 // 日期格式化

View File

@ -0,0 +1,46 @@
<!--
* @Author: zwq
* @Date: 2023-09-22 15:36:40
* @LastEditors: zwq
* @LastEditTime: 2023-09-26 15:59:57
* @Description:
-->
<template>
<div class="tableInner">
<el-input v-model="list[itemProp]" @blur="changeInput" />
</div>
</template>
<script>
export default {
name: "InputArea",
props: {
injectData: {
type: Object,
default: () => ({}),
},
itemProp: {
type: String,
},
},
data() {
return {
list: this.injectData,
};
},
methods: {
changeInput() {
this.list.sType = 1
this.$emit("emitData", this.list,1);
},
},
};
</script>
<style scoped>
.tableInner >>> .el-input__inner {
color: #409EFF;
border: 1px rgb(232, 231, 231) solid;
padding: 0;
text-align: center;
height: 30px;
}
</style>

View File

@ -2,11 +2,11 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-24 14:47:58 * @Date: 2023-08-24 14:47:58
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-10-08 15:35:04 * @LastEditTime: 2023-10-09 16:21:07
* @Description: * @Description:
--> -->
<template> <template>
<div class="app-container"> <div>
<base-table <base-table
v-loading="dataListLoading" v-loading="dataListLoading"
:table-props="propType===2? :table-props="propType===2?

View File

@ -2,7 +2,7 @@
* @Author: zwq * @Author: zwq
* @Date: 2023-08-21 14:26:23 * @Date: 2023-08-21 14:26:23
* @LastEditors: zwq * @LastEditors: zwq
* @LastEditTime: 2023-10-08 09:20:40 * @LastEditTime: 2023-10-10 10:39:41
* @Description: * @Description:
--> -->
<template> <template>
@ -195,10 +195,8 @@ export default {
margin-right: 6px; margin-right: 6px;
} }
&:hover { &:hover {
background-color: rgba(85, 136, 253, 0.8) !important;
color: #ffffff;
cursor: pointer; cursor: pointer;
transform: scaleY(1.3) translateZ(0); transform: scale(1.3) translateZ(0);
} }
} }
.el-divider--horizontal { .el-divider--horizontal {

View File

@ -1,98 +1,29 @@
<!--
* @Author: zwq
* @Date: 2023-08-17 15:10:53
* @LastEditors: zwq
* @LastEditTime: 2023-10-10 11:00:56
* @Description:
-->
<template> <template>
<div class="dashboard-editor-container"> <div class="app-container">
南京锂膜管理系统
<panel-group @handleSetLineChartData="handleSetLineChartData" />
<el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
<line-chart :chart-data="lineChartData" />
</el-row>
<el-row :gutter="32">
<el-col :xs="24" :sm="24" :lg="8">
<div class="chart-wrapper">
<raddar-chart />
</div>
</el-col>
<el-col :xs="24" :sm="24" :lg="8">
<div class="chart-wrapper">
<pie-chart />
</div>
</el-col>
<el-col :xs="24" :sm="24" :lg="8">
<div class="chart-wrapper">
<bar-chart />
</div>
</el-col>
</el-row>
</div> </div>
</template> </template>
<script> <script>
import PanelGroup from './dashboard/PanelGroup'
import LineChart from './dashboard/LineChart'
import RaddarChart from './dashboard/RaddarChart'
import PieChart from './dashboard/PieChart'
import BarChart from './dashboard/BarChart'
const lineChartData = {
newVisitis: {
expectedData: [100, 120, 161, 134, 105, 160, 165],
actualData: [120, 82, 91, 154, 162, 140, 145]
},
messages: {
expectedData: [200, 192, 120, 144, 160, 130, 140],
actualData: [180, 160, 151, 106, 145, 150, 130]
},
purchases: {
expectedData: [80, 100, 121, 104, 105, 90, 100],
actualData: [120, 90, 100, 138, 142, 130, 130]
},
shoppings: {
expectedData: [130, 140, 141, 142, 145, 150, 160],
actualData: [120, 82, 91, 154, 162, 140, 130]
}
}
export default { export default {
name: 'Index', name: 'Index',
components: { components: {
PanelGroup,
LineChart,
RaddarChart,
PieChart,
BarChart
}, },
data() { data() {
return { return {
lineChartData: lineChartData.newVisitis
} }
}, },
methods: { methods: {
handleSetLineChartData(type) {
this.lineChartData = lineChartData[type]
}
} }
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.dashboard-editor-container {
padding: 32px;
background-color: #e9e9e9;
position: relative;
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;
margin-bottom: 32px;
}
}
@media (max-width:1024px) {
.chart-wrapper {
padding: 8px;
}
}
</style> </style>

View File

@ -55,9 +55,9 @@
<el-tab-pane label="修改密码" name="resetPwd"> <el-tab-pane label="修改密码" name="resetPwd">
<resetPwd :user="user" /> <resetPwd :user="user" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="社交信息" name="userSocial"> <!-- <el-tab-pane label="社交信息" name="userSocial">
<userSocial :user="user" :getUser="getUser" :setActiveTab="setActiveTab" /> <userSocial :user="user" :getUser="getUser" :setActiveTab="setActiveTab" />
</el-tab-pane> </el-tab-pane> -->
</el-tabs> </el-tabs>
</el-card> </el-card>
</el-col> </el-col>