更新
This commit is contained in:
parent
5cdd141dc4
commit
cf2a5a7861
8
.env.dev
8
.env.dev
@ -2,7 +2,7 @@
|
||||
# @Author: zwq
|
||||
# @Date: 2023-08-17 15:10:53
|
||||
# @LastEditors: zwq
|
||||
# @LastEditTime: 2024-02-26 08:44:27
|
||||
# @LastEditTime: 2024-05-11 15:03:43
|
||||
# @Description:
|
||||
###
|
||||
# 开发环境配置
|
||||
@ -12,9 +12,9 @@ ENV = 'development'
|
||||
VUE_APP_TITLE = 南京锂膜管理系统
|
||||
|
||||
# 南京锂膜管理系统/开发环境
|
||||
# VUE_APP_BASE_API = 'http://192.168.1.118:48080'
|
||||
VUE_APP_BASE_API = 'http://192.168.0.31:48081'
|
||||
# VUE_APP_BASE_API = 'http://192.168.1.26:48080'
|
||||
# VUE_APP_BASE_API = 'http://192.168.1.118:48081'
|
||||
# VUE_APP_BASE_API = 'http://192.168.0.31:48081'
|
||||
VUE_APP_BASE_API = 'http://192.168.1.20:48081'
|
||||
|
||||
# 路由懒加载
|
||||
VUE_CLI_BABEL_TRANSPILE_MODULES = true
|
||||
|
@ -2,7 +2,7 @@
|
||||
# @Author: zwq
|
||||
# @Date: 2023-08-17 15:10:53
|
||||
# @LastEditors: zwq
|
||||
# @LastEditTime: 2024-03-13 15:10:27
|
||||
# @LastEditTime: 2024-04-28 11:50:59
|
||||
# @Description:
|
||||
###
|
||||
# 生产环境配置
|
||||
|
27
src/App.vue
27
src/App.vue
@ -1,3 +1,10 @@
|
||||
<!--
|
||||
* @Author: zwq
|
||||
* @Date: 2023-08-17 15:10:52
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-04-29 14:12:16
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
<div id="app">
|
||||
<router-view />
|
||||
@ -6,19 +13,23 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import ThemePicker from "@/components/ThemePicker";
|
||||
import ThemePicker from '@/components/ThemePicker';
|
||||
|
||||
export default {
|
||||
name: "App",
|
||||
name: 'App',
|
||||
components: { ThemePicker },
|
||||
metaInfo() {
|
||||
return {
|
||||
title: this.$store.state.settings.dynamicTitle && this.$store.state.settings.title,
|
||||
titleTemplate: title => {
|
||||
return title ? `${title} - ${process.env.VUE_APP_TITLE}` : process.env.VUE_APP_TITLE
|
||||
}
|
||||
}
|
||||
}
|
||||
title:
|
||||
this.$store.state.settings.dynamicTitle &&
|
||||
this.$store.state.settings.title,
|
||||
titleTemplate: (title) => {
|
||||
return title
|
||||
? `${title} - ${process.env.VUE_APP_TITLE}`
|
||||
: process.env.VUE_APP_TITLE;
|
||||
},
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
|
25
src/api/oth/rollMessage.js
Normal file
25
src/api/oth/rollMessage.js
Normal file
@ -0,0 +1,25 @@
|
||||
/*
|
||||
* @Author: zwq
|
||||
* @Date: 2024-05-10 10:02:43
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-05-10 10:15:45
|
||||
* @Description:
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
// 获得分页
|
||||
export function getPage(query) {
|
||||
return request({
|
||||
url: '/asrs/warehouse-storehouse-goods-specification/rollMessagePage',
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
// 导出Excel
|
||||
export function exportExcel(query) {
|
||||
return request({
|
||||
url: '/asrs/warehouse-storehouse-goods-specification/exportRollMessage',
|
||||
method: 'get',
|
||||
params: query,
|
||||
responseType: 'blob'
|
||||
})
|
||||
}
|
@ -1,14 +1,34 @@
|
||||
<template>
|
||||
<div :class="classObj" class="app-wrapper" :style="{'--current-color': theme}">
|
||||
<div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"/>
|
||||
<div
|
||||
:class="classObj"
|
||||
class="app-wrapper"
|
||||
:style="{ '--current-color': theme }">
|
||||
<div
|
||||
v-if="device === 'mobile' && sidebar.opened"
|
||||
class="drawer-bg"
|
||||
@click="handleClickOutside" />
|
||||
<sidebar v-if="!sidebar.hide" class="sidebar-container" />
|
||||
<div :class="{hasTagsView:needTagsView,sidebarHide:sidebar.hide}" class="main-container">
|
||||
<div
|
||||
:class="{ hasTagsView: needTagsView, sidebarHide: sidebar.hide }"
|
||||
class="main-container">
|
||||
<div :class="{ 'fixed-header': fixedHeader }">
|
||||
<navbar />
|
||||
<tags-view v-if="needTagsView" />
|
||||
</div>
|
||||
<app-main />
|
||||
<div class="main-footer" style="color: #C7C7C7; user-select: none; font-size: 14px; letter-spacing: 1px; height: 30px; display: grid; place-content: center;">© 中建材智能自动化研究院有限公司</div>
|
||||
<div
|
||||
class="main-footer"
|
||||
style="
|
||||
color: #c7c7c7;
|
||||
user-select: none;
|
||||
font-size: 14px;
|
||||
letter-spacing: 1px;
|
||||
height: 30px;
|
||||
display: grid;
|
||||
place-content: center;
|
||||
">
|
||||
© 中建材智能自动化研究院有限公司
|
||||
</div>
|
||||
<right-panel>
|
||||
<settings />
|
||||
</right-panel>
|
||||
@ -17,11 +37,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import RightPanel from '@/components/RightPanel'
|
||||
import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components'
|
||||
import ResizeMixin from './mixin/ResizeHandler'
|
||||
import { mapState } from 'vuex'
|
||||
import variables from '@/assets/styles/variables.scss'
|
||||
import RightPanel from '@/components/RightPanel';
|
||||
import { AppMain, Navbar, Settings, Sidebar, TagsView } from './components';
|
||||
import ResizeMixin from './mixin/ResizeHandler';
|
||||
import { mapState } from 'vuex';
|
||||
import variables from '@/assets/styles/variables.scss';
|
||||
import axios from 'axios';
|
||||
|
||||
export default {
|
||||
name: 'Layout',
|
||||
@ -31,41 +52,74 @@ export default {
|
||||
RightPanel,
|
||||
Settings,
|
||||
Sidebar,
|
||||
TagsView
|
||||
TagsView,
|
||||
},
|
||||
mixins: [ResizeMixin],
|
||||
computed: {
|
||||
...mapState({
|
||||
theme: state => state.settings.theme,
|
||||
sideTheme: state => state.settings.sideTheme,
|
||||
sidebar: state => state.app.sidebar,
|
||||
device: state => state.app.device,
|
||||
needTagsView: state => state.settings.tagsView,
|
||||
fixedHeader: state => state.settings.fixedHeader
|
||||
theme: (state) => state.settings.theme,
|
||||
sideTheme: (state) => state.settings.sideTheme,
|
||||
sidebar: (state) => state.app.sidebar,
|
||||
device: (state) => state.app.device,
|
||||
needTagsView: (state) => state.settings.tagsView,
|
||||
fixedHeader: (state) => state.settings.fixedHeader,
|
||||
}),
|
||||
classObj() {
|
||||
return {
|
||||
hideSidebar: !this.sidebar.opened,
|
||||
openSidebar: this.sidebar.opened,
|
||||
withoutAnimation: this.sidebar.withoutAnimation,
|
||||
mobile: this.device === 'mobile'
|
||||
}
|
||||
mobile: this.device === 'mobile',
|
||||
};
|
||||
},
|
||||
variables() {
|
||||
return variables;
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
instance: {
|
||||
closed: true,
|
||||
}, // 通知弹窗实例
|
||||
};
|
||||
},
|
||||
created() {
|
||||
axios
|
||||
.post('http://172.22.22.190/wcs-njlm/business/wcsTask/isonline')
|
||||
.then((res) => {
|
||||
if (res.code === 500) {
|
||||
this.$notify({
|
||||
title: '设备异常',
|
||||
message: res.msg,
|
||||
type: 'warning',
|
||||
duration: 0,
|
||||
});
|
||||
} else {
|
||||
console.log('通讯正常');
|
||||
}
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('There was an error!', error);
|
||||
this.$notify({
|
||||
title: '通知',
|
||||
message: '设备不在线,请稍后重试',
|
||||
type: 'warning',
|
||||
duration: 0,
|
||||
});
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
handleClickOutside() {
|
||||
this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
|
||||
}
|
||||
}
|
||||
}
|
||||
this.$store.dispatch('app/closeSideBar', { withoutAnimation: false });
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
@import "~@/assets/styles/mixin.scss";
|
||||
@import "~@/assets/styles/variables.scss";
|
||||
@import '~@/assets/styles/mixin.scss';
|
||||
@import '~@/assets/styles/variables.scss';
|
||||
|
||||
.app-wrapper {
|
||||
@include clearfix;
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2023-08-22 15:01:54
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2023-10-13 14:45:48
|
||||
* @LastEditTime: 2024-05-09 11:29:53
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
@ -16,7 +16,7 @@
|
||||
<pieChart
|
||||
title="饼状图分析"
|
||||
ref="pieChart"
|
||||
height="600px"
|
||||
height="650px"
|
||||
v-if="tableData.totalNumber"
|
||||
:total-number="tableData.totalNumber"
|
||||
:pie-data="tableData.list" />
|
||||
|
@ -16,7 +16,7 @@
|
||||
<pieChart
|
||||
title="饼状图分析"
|
||||
ref="pieChart"
|
||||
height="600px"
|
||||
height="650px"
|
||||
v-if="tableData.totalNumber"
|
||||
:total-number="tableData.totalNumber"
|
||||
:pie-data="tableData.list" />
|
||||
|
@ -61,7 +61,7 @@ export default {
|
||||
text: '总数',
|
||||
subtext: this.totalNumber,
|
||||
top: '42%', // 控制位置
|
||||
left: '50%', // 控制位置
|
||||
left: '40%', // 控制位置
|
||||
textAlign: 'center', // 让文字居中
|
||||
textStyle: {
|
||||
color: 'rgba(203, 195, 195, 1)',
|
||||
@ -76,21 +76,25 @@ export default {
|
||||
formatter: '产品: {b}<br/>数量: {c}<br/>占比: {d}%',
|
||||
},
|
||||
legend: {
|
||||
bottom: '0%',
|
||||
left: 'center',
|
||||
type: 'scroll',
|
||||
orient: 'vertical',
|
||||
right: 10,
|
||||
top: 20,
|
||||
bottom: 20,
|
||||
},
|
||||
grid: {
|
||||
top: 40,
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '3%',
|
||||
bottom: '0%',
|
||||
containLabel: true,
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: 'pie',
|
||||
type: 'pie',
|
||||
radius: ['55%', '80%'],
|
||||
radius: ['45%', '70%'],
|
||||
center: ['40%', '50%'],
|
||||
avoidLabelOverlap: true, // 防止牵引线堆叠挤在一块
|
||||
itemStyle: {
|
||||
borderRadius: 10,
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2021-11-18 14:16:25
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-04-17 14:13:36
|
||||
* @LastEditTime: 2024-05-09 09:33:08
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
@ -24,7 +24,11 @@
|
||||
filterable
|
||||
style="display: inline-block"
|
||||
@change="setShowTrayType"
|
||||
placeholder="请选择货物名称">
|
||||
placeholder="请选择货物名称"
|
||||
remote
|
||||
:remote-method="remoteMethod"
|
||||
value-key="id"
|
||||
:loading="loading">
|
||||
<el-option
|
||||
v-for="item in productArr"
|
||||
:key="item.id"
|
||||
@ -132,7 +136,7 @@ import { getLineList } from '@/api/asrs/warehouseStorehouse';
|
||||
import { getGoodSpecificationPage } from '@/api/asrs/goodSpecification';
|
||||
|
||||
const regionArr = [
|
||||
{ name: '一次分切区域', id: 1 },
|
||||
{ name: '一次分切区域1线', id: 1 },
|
||||
{ name: '一次分拣区域', id: 2 },
|
||||
{ name: '二次分切区域', id: 3 },
|
||||
{ name: '二次分拣区域', id: 4 },
|
||||
@ -140,6 +144,9 @@ const regionArr = [
|
||||
{ name: '涂覆区域', id: 6 },
|
||||
{ name: '其他', id: 7 },
|
||||
{ name: '自动包装区域', id: 8 },
|
||||
{ name: '一次分切区域2线', id: 9 },
|
||||
{ name: '一次分切区域3线', id: 10 },
|
||||
{ name: '一次分切区域4线', id: 11 },
|
||||
];
|
||||
export default {
|
||||
mixins: [basicAdd],
|
||||
@ -175,6 +182,7 @@ export default {
|
||||
{ id: 1, name: '6臂' },
|
||||
{ id: 2, name: '12臂' },
|
||||
],
|
||||
loading: false,
|
||||
dataRule: {
|
||||
deliveryCode: [
|
||||
{ required: true, message: '出库单号不能为空', trigger: 'blur' },
|
||||
@ -205,14 +213,23 @@ export default {
|
||||
getLineList({ warehouseId: this.aId }).then((response) => {
|
||||
this.potArr = response.data;
|
||||
});
|
||||
},
|
||||
remoteMethod(query) {
|
||||
if (query !== '') {
|
||||
this.loading = true;
|
||||
const params = {
|
||||
pageSize: 100,
|
||||
pageNo: 1,
|
||||
warehouseId: this.aId,
|
||||
goodSpecificationName: query,
|
||||
// warehouseId: this.warehouseId,
|
||||
};
|
||||
getGoodSpecificationPage(params).then((response) => {
|
||||
this.loading = false;
|
||||
this.productArr = response.data.list;
|
||||
});
|
||||
} else {
|
||||
this.productArr = [];
|
||||
}
|
||||
},
|
||||
setNeedTrayNumber(val) {
|
||||
if (val === 1) {
|
||||
|
@ -1,20 +1,9 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<el-tabs v-model="activeName" @tab-click="toggleTab">
|
||||
<el-tab-pane label="单托盘出库" name="one">
|
||||
<search-bar
|
||||
:formConfigs="formConfig"
|
||||
ref="searchBarForm"
|
||||
@headBtnClick="buttonClick" />
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="多托盘出库" name="more">
|
||||
<search-bar
|
||||
:formConfigs="formConfig2"
|
||||
ref="searchBarForm2"
|
||||
@headBtnClick="buttonClick" />
|
||||
</el-tab-pane>
|
||||
</el-tabs>
|
||||
<div v-if="activeName === 'one'">
|
||||
<base-table
|
||||
v-loading="dataListLoading"
|
||||
:table-props="tableProps"
|
||||
@ -29,23 +18,6 @@
|
||||
:method-list="tableBtn"
|
||||
@clickBtn="handleClick" />
|
||||
</base-table>
|
||||
</div>
|
||||
<div v-if="activeName === 'more'">
|
||||
<base-table
|
||||
v-loading="dataListLoading"
|
||||
:table-props="tableProps2"
|
||||
:page="listQuery.pageNo"
|
||||
:limit="listQuery.pageSize"
|
||||
:table-data="tableData">
|
||||
<method-btn
|
||||
v-if="tableBtn.length"
|
||||
slot="handleBtn"
|
||||
:width="200"
|
||||
label="操作"
|
||||
:method-list="tableBtn"
|
||||
@clickBtn="handleClick" />
|
||||
</base-table>
|
||||
</div>
|
||||
<pagination
|
||||
:limit.sync="listQuery.pageSize"
|
||||
:page.sync="listQuery.pageNo"
|
||||
@ -115,6 +87,11 @@ const tableProps = [
|
||||
prop: 'lineEdgeLibraryCode',
|
||||
label: '码头位置',
|
||||
},
|
||||
{
|
||||
prop: 'region',
|
||||
label: '发货区域',
|
||||
filter: codeFilter('region'),
|
||||
},
|
||||
{
|
||||
prop: 'productQuality',
|
||||
label: '货物品质',
|
||||
@ -136,62 +113,8 @@ const tableProps = [
|
||||
width: 150,
|
||||
},
|
||||
];
|
||||
const tableProps2 = [
|
||||
{
|
||||
prop: 'deliveryCode',
|
||||
label: '出库单号',
|
||||
fixed: true,
|
||||
},
|
||||
{
|
||||
prop: 'productName',
|
||||
label: '货物名称',
|
||||
},
|
||||
{
|
||||
prop: 'needTrayNumber',
|
||||
label: '所需托盘数',
|
||||
width: 90,
|
||||
},
|
||||
{
|
||||
prop: 'alreadyOutNumber',
|
||||
label: '已补托盘数',
|
||||
width: 90,
|
||||
},
|
||||
{
|
||||
prop: 'status',
|
||||
label: '出库单状态',
|
||||
filter: codeFilter('status'),
|
||||
width: 90,
|
||||
},
|
||||
{
|
||||
prop: 'deliveryType',
|
||||
label: '出库类型',
|
||||
filter: codeFilter('deliveryType'),
|
||||
width: 95,
|
||||
},
|
||||
{
|
||||
prop: 'region',
|
||||
label: '发货区域',
|
||||
filter: codeFilter('region'),
|
||||
},
|
||||
{
|
||||
prop: 'productQuality',
|
||||
label: '货物品质',
|
||||
},
|
||||
{
|
||||
prop: 'trayType',
|
||||
label: '托盘类型',
|
||||
filter: codeFilter('trayType'),
|
||||
width: 80,
|
||||
},
|
||||
{
|
||||
prop: 'updateTime',
|
||||
label: '更新时间',
|
||||
filter: parseTime,
|
||||
width: 150,
|
||||
},
|
||||
];
|
||||
const regionArr = [
|
||||
{ name: '一次分切区域', id: 1 },
|
||||
{ name: '一次分切区域1线', id: 1 },
|
||||
{ name: '一次分拣区域', id: 2 },
|
||||
{ name: '二次分切区域', id: 3 },
|
||||
{ name: '二次分拣区域', id: 4 },
|
||||
@ -199,6 +122,9 @@ const regionArr = [
|
||||
{ name: '涂覆区域', id: 6 },
|
||||
{ name: '其他', id: 7 },
|
||||
{ name: '自动包装区域', id: 8 },
|
||||
{ name: '一次分切区域2线', id: 9 },
|
||||
{ name: '一次分切区域3线', id: 10 },
|
||||
{ name: '一次分切区域4线', id: 11 },
|
||||
];
|
||||
export default {
|
||||
mixins: [basicPage],
|
||||
@ -210,12 +136,7 @@ export default {
|
||||
},
|
||||
regionArr,
|
||||
tableProps,
|
||||
tableProps2,
|
||||
tableData: [],
|
||||
activeName: 'one',
|
||||
listQuery: {
|
||||
deliveryType: '1',
|
||||
},
|
||||
tableBtn: [
|
||||
{
|
||||
type: 'restart',
|
||||
@ -285,34 +206,6 @@ export default {
|
||||
labelField: 'lineEdgeLibraryCode',
|
||||
valueField: 'lineEdgeLibraryCode',
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
btnName: '搜索',
|
||||
name: 'search',
|
||||
color: 'primary',
|
||||
},
|
||||
{
|
||||
type: 'separate',
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
btnName: '新增',
|
||||
name: 'add',
|
||||
color: 'success',
|
||||
plain: true,
|
||||
},
|
||||
],
|
||||
formConfig2: [
|
||||
{
|
||||
type: 'select',
|
||||
label: '货物名称',
|
||||
selectOptions: [],
|
||||
param: 'productName',
|
||||
defaultSelect: '',
|
||||
filterable: true,
|
||||
labelField: 'goodSpecificationName',
|
||||
valueField: 'goodSpecificationName',
|
||||
},
|
||||
{
|
||||
type: 'select',
|
||||
label: '发货区域',
|
||||
@ -321,6 +214,12 @@ export default {
|
||||
defaultSelect: '',
|
||||
filterable: true,
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '货物品质',
|
||||
placeholder: '货物品质',
|
||||
param: 'quality',
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
btnName: '搜索',
|
||||
@ -363,13 +262,9 @@ export default {
|
||||
this.listQuery.pageNo = 1;
|
||||
this.listQuery.pageSize = 10;
|
||||
this.listQuery.productName = val.productName;
|
||||
if (this.listQuery.deliveryType === '1') {
|
||||
this.listQuery.lineEdgeLibraryCode = val.lineEdgeLibraryCode;
|
||||
this.listQuery.region = null;
|
||||
} else {
|
||||
this.listQuery.lineEdgeLibraryCode = null;
|
||||
this.listQuery.region = val.region;
|
||||
}
|
||||
this.listQuery.lineEdgeLibraryCode = val.lineEdgeLibraryCode || null;
|
||||
this.listQuery.region = val.region || null;
|
||||
this.listQuery.productQuality = val.quality || null;
|
||||
this.getDataList();
|
||||
break;
|
||||
case 'add':
|
||||
@ -381,17 +276,6 @@ export default {
|
||||
console.log(val);
|
||||
}
|
||||
},
|
||||
toggleTab() {
|
||||
if (this.activeName === 'one') {
|
||||
this.listQuery.deliveryType = '1';
|
||||
this.listQuery.region = null;
|
||||
} else {
|
||||
this.listQuery.deliveryType = '2';
|
||||
this.listQuery.lineEdgeLibraryCode = null;
|
||||
}
|
||||
this.listQuery.pageNo = 1;
|
||||
this.getDataList();
|
||||
},
|
||||
//tableBtn点击
|
||||
otherMethods(val) {
|
||||
if (val.type === 'restart') {
|
||||
|
@ -23,6 +23,7 @@ import basicPage from '../mixins/basic-page';
|
||||
import { parseTime } from '../mixins/code-filter';
|
||||
import { getDeliveryHisPage } from '@/api/oth/delivery';
|
||||
import codeFilter from '../mixins/code-filter';
|
||||
import { getLineList } from '@/api/asrs/warehouseStorehouse';
|
||||
import { getGoodSpecificationPage } from '@/api/asrs/goodSpecification';
|
||||
|
||||
const tableProps = [
|
||||
@ -86,9 +87,18 @@ const tableProps = [
|
||||
width: 150,
|
||||
},
|
||||
];
|
||||
const deliveryTypeArr = [
|
||||
{ name: '单托盘出库', id: 1 },
|
||||
{ name: '多托盘出库', id: 2 },
|
||||
const regionArr = [
|
||||
{ name: '一次分切区域1线', id: 1 },
|
||||
{ name: '一次分拣区域', id: 2 },
|
||||
{ name: '二次分切区域', id: 3 },
|
||||
{ name: '二次分拣区域', id: 4 },
|
||||
{ name: '手动包装区域', id: 5 },
|
||||
{ name: '涂覆区域', id: 6 },
|
||||
{ name: '其他', id: 7 },
|
||||
{ name: '自动包装区域', id: 8 },
|
||||
{ name: '一次分切区域2线', id: 9 },
|
||||
{ name: '一次分切区域3线', id: 10 },
|
||||
{ name: '一次分切区域4线', id: 11 },
|
||||
];
|
||||
export default {
|
||||
mixins: [basicPage],
|
||||
@ -112,11 +122,27 @@ export default {
|
||||
},
|
||||
{
|
||||
type: 'select',
|
||||
label: '出库类型',
|
||||
selectOptions: deliveryTypeArr,
|
||||
param: 'deliveryType',
|
||||
label: '发货位置',
|
||||
selectOptions: [],
|
||||
param: 'lineEdgeLibraryCode',
|
||||
defaultSelect: '',
|
||||
filterable: true,
|
||||
labelField: 'lineEdgeLibraryCode',
|
||||
valueField: 'lineEdgeLibraryCode',
|
||||
},
|
||||
{
|
||||
type: 'select',
|
||||
label: '发货区域',
|
||||
selectOptions: regionArr,
|
||||
param: 'region',
|
||||
defaultSelect: '',
|
||||
filterable: true,
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '货物品质',
|
||||
placeholder: '货物品质',
|
||||
param: 'quality',
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
@ -137,6 +163,11 @@ export default {
|
||||
getGoodSpecificationPage(params).then((response) => {
|
||||
this.formConfig[0].selectOptions = response.data.list;
|
||||
});
|
||||
getLineList({ warehouseId: this.listQuery.warehouseId }).then(
|
||||
(response) => {
|
||||
this.formConfig[1].selectOptions = response.data;
|
||||
}
|
||||
);
|
||||
},
|
||||
methods: {
|
||||
buttonClick(val) {
|
||||
@ -145,7 +176,9 @@ export default {
|
||||
this.listQuery.pageNo = 1;
|
||||
this.listQuery.pageSize = 10;
|
||||
this.listQuery.productName = val.productName;
|
||||
this.listQuery.deliveryType = val.deliveryType;
|
||||
this.listQuery.lineEdgeLibraryCode = val.lineEdgeLibraryCode || null;
|
||||
this.listQuery.region = val.region || null;
|
||||
this.listQuery.productQuality = val.quality || null;
|
||||
this.getDataList();
|
||||
break;
|
||||
default:
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2024-02-27 14:43:14
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-04-22 09:10:46
|
||||
* @LastEditTime: 2024-04-25 16:39:32
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
@ -32,7 +32,7 @@
|
||||
:popper-append-to-body="false"
|
||||
placeholder="请选择位置">
|
||||
<el-option
|
||||
v-for="item in potArr"
|
||||
v-for="item in potSArr"
|
||||
:key="item.id"
|
||||
:label="item.lineEdgeLibraryCode"
|
||||
:value="item.id" />
|
||||
@ -66,7 +66,7 @@
|
||||
:popper-append-to-body="false"
|
||||
placeholder="请选择位置">
|
||||
<el-option
|
||||
v-for="item in potArr"
|
||||
v-for="item in potEArr"
|
||||
:key="item.id"
|
||||
:label="item.lineEdgeLibraryCode"
|
||||
:value="item.id" />
|
||||
@ -83,7 +83,7 @@
|
||||
<script>
|
||||
import { getLineList, moveLine } from '@/api/asrs/warehouseStorehouse';
|
||||
const regionArr = [
|
||||
{ name: '一次分切区域', id: 1 },
|
||||
{ name: '一次分切区域1线', id: 1 },
|
||||
{ name: '一次分拣区域', id: 2 },
|
||||
{ name: '二次分切区域', id: 3 },
|
||||
{ name: '二次分拣区域', id: 4 },
|
||||
@ -91,6 +91,9 @@ const regionArr = [
|
||||
{ name: '涂覆区域', id: 6 },
|
||||
{ name: '其他', id: 7 },
|
||||
{ name: '自动包装区域', id: 8 },
|
||||
{ name: '一次分切区域2线', id: 9 },
|
||||
{ name: '一次分切区域3线', id: 10 },
|
||||
{ name: '一次分切区域4线', id: 11 },
|
||||
];
|
||||
export default {
|
||||
data() {
|
||||
@ -103,7 +106,8 @@ export default {
|
||||
targetId: undefined,
|
||||
region: undefined,
|
||||
},
|
||||
potArr: [],
|
||||
potSArr: [],
|
||||
potEArr: [],
|
||||
regionArr,
|
||||
SDisable: true,
|
||||
EDisable: true,
|
||||
@ -122,7 +126,7 @@ export default {
|
||||
getSArr(val) {
|
||||
getLineList({ region: val, warehouseId: this.warehouseId }).then(
|
||||
(response) => {
|
||||
this.potArr = response.data;
|
||||
this.potSArr = response.data;
|
||||
this.SDisable = false;
|
||||
}
|
||||
);
|
||||
@ -130,7 +134,7 @@ export default {
|
||||
getEArr(val) {
|
||||
getLineList({ region: val, warehouseId: this.warehouseId }).then(
|
||||
(response) => {
|
||||
this.potArr = response.data;
|
||||
this.potEArr = response.data;
|
||||
this.EDisable = false;
|
||||
}
|
||||
);
|
||||
|
@ -2,20 +2,15 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2024-02-27 14:43:14
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-04-22 09:10:59
|
||||
* @LastEditTime: 2024-04-25 16:39:35
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<div class="box-card">
|
||||
<div class="tip">
|
||||
码头起点
|
||||
</div>
|
||||
<div class="tip">码头起点</div>
|
||||
<el-form :inline="true" :model="startData" label-width="100px">
|
||||
<el-form-item
|
||||
label="选择区域"
|
||||
class="drawer"
|
||||
prop="region">
|
||||
<el-form-item label="选择区域" class="drawer" prop="region">
|
||||
<el-select
|
||||
v-model="startData.region"
|
||||
style="width: 100%"
|
||||
@ -29,10 +24,7 @@
|
||||
:value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="选择位置"
|
||||
class="drawer"
|
||||
prop="targetId">
|
||||
<el-form-item label="选择位置" class="drawer" prop="targetId">
|
||||
<el-select
|
||||
v-model="startData.targetId"
|
||||
:disabled="SDisable"
|
||||
@ -47,15 +39,12 @@
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-divider style="margin-bottom:36px"><i class="el-icon-bottom"></i></el-divider>
|
||||
<div class="tipe">
|
||||
码头终点
|
||||
</div>
|
||||
<el-divider style="margin-bottom: 36px">
|
||||
<i class="el-icon-bottom"></i>
|
||||
</el-divider>
|
||||
<div class="tipe">码头终点</div>
|
||||
<el-form :inline="true" :model="endData" label-width="100px">
|
||||
<el-form-item
|
||||
label="选择区域"
|
||||
class="drawer"
|
||||
prop="region">
|
||||
<el-form-item label="选择区域" class="drawer" prop="region">
|
||||
<el-select
|
||||
v-model="endData.region"
|
||||
style="width: 100%"
|
||||
@ -69,10 +58,7 @@
|
||||
:value="item.id" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
label="选择位置"
|
||||
class="drawer"
|
||||
prop="targetId">
|
||||
<el-form-item label="选择位置" class="drawer" prop="targetId">
|
||||
<el-select
|
||||
v-model="endData.targetId"
|
||||
:disabled="EDisable"
|
||||
@ -97,7 +83,7 @@
|
||||
<script>
|
||||
import { getLineList, moveLine } from '@/api/asrs/warehouseStorehouse';
|
||||
const regionArr = [
|
||||
{ name: '一次分切区域', id: 1 },
|
||||
{ name: '一次分切区域1线', id: 1 },
|
||||
{ name: '一次分拣区域', id: 2 },
|
||||
{ name: '二次分切区域', id: 3 },
|
||||
{ name: '二次分拣区域', id: 4 },
|
||||
@ -105,6 +91,9 @@ const regionArr = [
|
||||
{ name: '涂覆区域', id: 6 },
|
||||
{ name: '其他', id: 7 },
|
||||
{ name: '自动包装区域', id: 8 },
|
||||
{ name: '一次分切区域2线', id: 9 },
|
||||
{ name: '一次分切区域3线', id: 10 },
|
||||
{ name: '一次分切区域4线', id: 11 },
|
||||
];
|
||||
export default {
|
||||
data() {
|
||||
@ -134,16 +123,20 @@ export default {
|
||||
this.EDisable = true;
|
||||
},
|
||||
getSArr(val) {
|
||||
getLineList({ region: val,'warehouseId':this.warehouseId }).then((response) => {
|
||||
getLineList({ region: val, warehouseId: this.warehouseId }).then(
|
||||
(response) => {
|
||||
this.potArr = response.data;
|
||||
this.SDisable = false;
|
||||
});
|
||||
}
|
||||
);
|
||||
},
|
||||
getEArr(val) {
|
||||
getLineList({ region: val,'warehouseId':this.warehouseId }).then((response) => {
|
||||
getLineList({ region: val, warehouseId: this.warehouseId }).then(
|
||||
(response) => {
|
||||
this.potArr = response.data;
|
||||
this.EDisable = false;
|
||||
});
|
||||
}
|
||||
);
|
||||
},
|
||||
move() {
|
||||
if (this.startData.targetId && this.endData.targetId) {
|
||||
@ -180,13 +173,13 @@ export default {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
left: 100px;
|
||||
color: #409EFF;
|
||||
color: #409eff;
|
||||
}
|
||||
.tipe {
|
||||
position: absolute;
|
||||
top: 150px;
|
||||
left: 100px;
|
||||
color: #409EFF;
|
||||
color: #409eff;
|
||||
}
|
||||
.el-divider--horizontal {
|
||||
margin-bottom: 48px;
|
||||
|
@ -2,7 +2,7 @@
|
||||
/*
|
||||
* @Date: 2020-12-29 16:49:28
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-04-17 09:24:05
|
||||
* @LastEditTime: 2024-04-25 16:39:43
|
||||
* @FilePath: \basic-admin\src\filters\basicData\index.js
|
||||
* @Description:
|
||||
*/
|
||||
@ -51,6 +51,7 @@ const table = {
|
||||
taskSource: {
|
||||
1: 'mes下发',
|
||||
2: 'wms手动',
|
||||
3: '自动包装线',
|
||||
},
|
||||
cancellation: {
|
||||
1: '否',
|
||||
@ -72,7 +73,7 @@ const table = {
|
||||
5: '取消',
|
||||
},
|
||||
region: {
|
||||
1: '一次分切区域',
|
||||
1: '一次分切区域1线',
|
||||
2: '一次分拣区域',
|
||||
3: '二次分切区域',
|
||||
4: '二次分拣区域',
|
||||
@ -80,6 +81,9 @@ const table = {
|
||||
6: '涂覆区域',
|
||||
7: '其他',
|
||||
8: '自动包装区域',
|
||||
9: '一次分切区域2线',
|
||||
10: '一次分切区域3线',
|
||||
11: '一次分切区域4线',
|
||||
},
|
||||
deliveryType: {
|
||||
1: '单托盘出库',
|
||||
|
@ -2,17 +2,21 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2023-09-22 15:36:40
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2023-09-26 15:59:57
|
||||
* @LastEditTime: 2024-05-06 11:03:59
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
<div class="tableInner">
|
||||
<el-input v-model="list[itemProp]" @blur="changeInput" />
|
||||
<el-input
|
||||
v-model="list[itemProp]"
|
||||
:id="'inputFocus'+injectData._pageIndex"
|
||||
@blur="changeInput"
|
||||
@keyup.enter.native="nextInput" />
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: "InputArea",
|
||||
name: 'InputArea',
|
||||
props: {
|
||||
injectData: {
|
||||
type: Object,
|
||||
@ -29,15 +33,19 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
changeInput() {
|
||||
this.list.sType = 1
|
||||
this.$emit("emitData", this.list,1);
|
||||
this.list.sType = 1;
|
||||
this.$emit('emitData', this.list, 1);
|
||||
},
|
||||
nextInput(){
|
||||
this.list.sType = 3;
|
||||
this.$emit('emitData', this.list, 3);
|
||||
}
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.tableInner >>> .el-input__inner {
|
||||
color: #409EFF;
|
||||
color: #409eff;
|
||||
border: 1px rgb(232, 231, 231) solid;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
|
272
src/views/asrs/rollMessage/index.vue
Normal file
272
src/views/asrs/rollMessage/index.vue
Normal file
@ -0,0 +1,272 @@
|
||||
<template>
|
||||
<div class="app-container">
|
||||
<search-bar
|
||||
:formConfigs="formConfig"
|
||||
ref="searchBarForm"
|
||||
:isFold="true"
|
||||
@headBtnClick="buttonClick" />
|
||||
<base-table
|
||||
v-loading="dataListLoading"
|
||||
:table-props="tableProps"
|
||||
:page="listQuery.pageNo"
|
||||
:limit="listQuery.pageSize"
|
||||
:table-data="tableData"></base-table>
|
||||
<pagination
|
||||
:limit.sync="listQuery.pageSize"
|
||||
:page.sync="listQuery.pageNo"
|
||||
:total="listQuery.total"
|
||||
@pagination="getDataList" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import basicPage from '../mixins/basic-page';
|
||||
import { parseTime } from '../mixins/code-filter';
|
||||
import { getPage, exportExcel } from '@/api/oth/rollMessage';
|
||||
|
||||
const tableProps = [
|
||||
{
|
||||
prop: 'workOrderCode',
|
||||
label: '入库单号',
|
||||
width: 170,
|
||||
},
|
||||
{
|
||||
prop: 'process',
|
||||
label: '工序',
|
||||
},
|
||||
{
|
||||
prop: 'trayCode',
|
||||
label: '托盘编码',
|
||||
},
|
||||
{
|
||||
prop: 'warehouseCode',
|
||||
label: '库房编码',
|
||||
},
|
||||
{
|
||||
prop: 'lineId',
|
||||
label: '行号',
|
||||
},
|
||||
{
|
||||
prop: 'cureTime',
|
||||
label: '已熟化时间',
|
||||
width: 90,
|
||||
},
|
||||
{
|
||||
prop: 'inventory',
|
||||
label: '膜卷号',
|
||||
width: 167,
|
||||
},
|
||||
{
|
||||
prop: 'locationType',
|
||||
label: '货位类型',
|
||||
},
|
||||
{
|
||||
prop: 'batchCode',
|
||||
label: '批次号',
|
||||
},
|
||||
{
|
||||
prop: 'containerCode',
|
||||
label: '托盘',
|
||||
},
|
||||
{
|
||||
prop: 'subContainerCode',
|
||||
label: '悬臂',
|
||||
},
|
||||
{
|
||||
prop: 'productCode',
|
||||
label: '物料编码',
|
||||
width: 120,
|
||||
},
|
||||
{
|
||||
prop: 'description',
|
||||
label: '产品名',
|
||||
},
|
||||
{
|
||||
prop: 'planQty',
|
||||
label: '数量',
|
||||
},
|
||||
{
|
||||
prop: 'orderFrom',
|
||||
label: '产出工单',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
prop: 'finishTime',
|
||||
label: '完成日期',
|
||||
filter: parseTime,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
prop: 'customerSpName',
|
||||
label: '客户',
|
||||
},
|
||||
{
|
||||
prop: 'destPoint',
|
||||
label: '目的码头',
|
||||
},
|
||||
{
|
||||
prop: 'resources',
|
||||
label: '资源',
|
||||
},
|
||||
{
|
||||
prop: 'grade',
|
||||
label: '品质',
|
||||
},
|
||||
{
|
||||
prop: 'bugCode',
|
||||
label: '复判缺陷',
|
||||
},
|
||||
{
|
||||
prop: 'gradingExplain',
|
||||
label: '复判不良说明',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
prop: 'model',
|
||||
label: '型号',
|
||||
},
|
||||
{
|
||||
prop: 'itype',
|
||||
label: '物料类型',
|
||||
},
|
||||
{
|
||||
prop: 'itypeDes',
|
||||
label: '物料类型描述',
|
||||
width: 100,
|
||||
},
|
||||
{
|
||||
prop: 'customCode',
|
||||
label: '客户编码',
|
||||
},
|
||||
{
|
||||
prop: 'sfcCreateTime',
|
||||
label: '膜卷生产时间',
|
||||
filter: parseTime,
|
||||
width: 150,
|
||||
},
|
||||
{
|
||||
prop: 'createTime',
|
||||
label: '创建时间',
|
||||
filter: parseTime,
|
||||
width: 150,
|
||||
},
|
||||
];
|
||||
export default {
|
||||
mixins: [basicPage],
|
||||
data() {
|
||||
return {
|
||||
urlOptions: {
|
||||
getDataListURL: getPage,
|
||||
exportURL: exportExcel,
|
||||
},
|
||||
tableProps,
|
||||
tableData: [],
|
||||
formConfig: [
|
||||
{
|
||||
type: 'input',
|
||||
label: '托盘编码',
|
||||
placeholder: '托盘编码',
|
||||
param: 'code',
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '工序',
|
||||
placeholder: '工序',
|
||||
param: 'process',
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '膜卷号',
|
||||
placeholder: '膜卷号',
|
||||
param: 'rollCode',
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '产品名',
|
||||
placeholder: '产品名',
|
||||
param: 'productName',
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '品质',
|
||||
placeholder: '品质',
|
||||
param: 'grade',
|
||||
},
|
||||
{
|
||||
type: 'input',
|
||||
label: '入库单号',
|
||||
placeholder: '入库单号',
|
||||
param: 'workOrderCode',
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
btnName: '搜索',
|
||||
name: 'search',
|
||||
color: 'primary',
|
||||
},
|
||||
{
|
||||
type: 'button',
|
||||
btnName: '导出',
|
||||
name: 'export',
|
||||
color: 'primary',
|
||||
plain: true,
|
||||
},
|
||||
],
|
||||
};
|
||||
},
|
||||
components: {},
|
||||
created() {},
|
||||
methods: {
|
||||
buttonClick(val) {
|
||||
switch (val.btnName) {
|
||||
case 'search':
|
||||
this.listQuery.pageNo = 1;
|
||||
this.listQuery.pageSize = 10;
|
||||
this.listQuery.trayCode = val.code.trim() || null;
|
||||
this.listQuery.process = val.process.trim() || null;
|
||||
this.listQuery.rollCode = val.rollCode.trim() || null;
|
||||
this.listQuery.productName = val.productName.trim() || null;
|
||||
this.listQuery.grade = val.grade.trim() || null;
|
||||
this.listQuery.workOrderCode = val.workOrderCode.trim() || null
|
||||
this.getDataList();
|
||||
break;
|
||||
case 'reset':
|
||||
this.$refs.searchBarForm.resetForm();
|
||||
this.listQuery = {
|
||||
pageSize: 10,
|
||||
pageNo: 1,
|
||||
total: 1,
|
||||
};
|
||||
this.getDataList();
|
||||
break;
|
||||
case 'export':
|
||||
this.listQuery.trayCode = val.code || null;
|
||||
this.listQuery.process = val.process || null;
|
||||
this.listQuery.rollCode = val.rollCode || null;
|
||||
this.listQuery.productName = val.productName || null;
|
||||
this.listQuery.grade = val.grade || null;
|
||||
this.listQuery.workOrderCode = val.workOrderCode || null;
|
||||
this.handleExport();
|
||||
break;
|
||||
default:
|
||||
console.log(val);
|
||||
}
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
// 处理查询参数
|
||||
this.$modal
|
||||
.confirm('是否确认导出所有数据项?')
|
||||
.then(() => {
|
||||
this.exportLoading = true;
|
||||
return this.urlOptions.exportURL(this.listQuery);
|
||||
})
|
||||
.then((response) => {
|
||||
this.$download.excel(response, '膜卷信息.xls');
|
||||
this.exportLoading = false;
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
@ -2,7 +2,7 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2024-01-17 09:58:41
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-04-01 10:43:49
|
||||
* @LastEditTime: 2024-04-24 16:58:36
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
@ -17,7 +17,9 @@
|
||||
<el-tag effect="dark" color="#7362F3" style="border: none">锁</el-tag>
|
||||
</div>
|
||||
<div class="mainbody">
|
||||
<el-divider class="divider" content-position="left">二次分拣区</el-divider>
|
||||
<el-divider class="divider" content-position="left">
|
||||
二次分拣区
|
||||
</el-divider>
|
||||
<div v-for="i in 5" :key="i + 'G'">
|
||||
<el-row style="margin-bottom: 10px" type="flex" class="flex-warp">
|
||||
<div
|
||||
@ -25,8 +27,7 @@
|
||||
v-for="j in wareData
|
||||
.filter(
|
||||
(item) =>
|
||||
item.agvGroundCode.substr(1, 2) == 6 - i &&
|
||||
item.region === 4
|
||||
item.agvGroundCode.substr(1, 2) == 6 - i && item.region === 4
|
||||
)
|
||||
.reverse()"
|
||||
:key="j.id"
|
||||
@ -53,7 +54,9 @@
|
||||
</div>
|
||||
</el-row>
|
||||
</div>
|
||||
<el-divider class="divider" content-position="left">一次分拣区</el-divider>
|
||||
<el-divider class="divider" content-position="left">
|
||||
一次分拣区
|
||||
</el-divider>
|
||||
<div v-for="i in 7" :key="i + 'F'">
|
||||
<el-row style="margin-bottom: 10px" type="flex" class="flex-warp">
|
||||
<div
|
||||
@ -65,8 +68,7 @@
|
||||
v-for="j in wareData
|
||||
.filter(
|
||||
(item) =>
|
||||
item.agvGroundCode.substr(1, 2) == 8 - i &&
|
||||
item.region === 2
|
||||
item.agvGroundCode.substr(1, 2) == 8 - i && item.region === 2
|
||||
)
|
||||
.reverse()"
|
||||
:key="j.id"
|
||||
@ -122,6 +124,84 @@
|
||||
}"></div>
|
||||
</el-popover>
|
||||
</div>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<div
|
||||
class="dashboard-layout-item"
|
||||
v-for="j in wareData.filter((item) => item.region == 9).reverse()"
|
||||
:key="j.id"
|
||||
:title="j.lineEdgeLibraryCode">
|
||||
<el-popover
|
||||
placement="top-start"
|
||||
:title="j.lineEdgeLibraryCode"
|
||||
width="200"
|
||||
trigger="hover">
|
||||
<div class="point" />
|
||||
托盘编码: {{ j.trayCode }}
|
||||
<br />
|
||||
<div class="point" />
|
||||
Agv地码: {{ j.agvGroundCode }}
|
||||
<div
|
||||
slot="reference"
|
||||
class="hoverDiv"
|
||||
:style="{
|
||||
cursor:
|
||||
j.lineEdgeLibraryState === 1 ? 'not-allowed' : 'pointer',
|
||||
background: bgColor[j.lineEdgeLibraryState],
|
||||
}"></div>
|
||||
</el-popover>
|
||||
</div>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<div
|
||||
class="dashboard-layout-item"
|
||||
v-for="j in wareData.filter((item) => item.region == 10).reverse()"
|
||||
:key="j.id"
|
||||
:title="j.lineEdgeLibraryCode">
|
||||
<el-popover
|
||||
placement="top-start"
|
||||
:title="j.lineEdgeLibraryCode"
|
||||
width="200"
|
||||
trigger="hover">
|
||||
<div class="point" />
|
||||
托盘编码: {{ j.trayCode }}
|
||||
<br />
|
||||
<div class="point" />
|
||||
Agv地码: {{ j.agvGroundCode }}
|
||||
<div
|
||||
slot="reference"
|
||||
class="hoverDiv"
|
||||
:style="{
|
||||
cursor:
|
||||
j.lineEdgeLibraryState === 1 ? 'not-allowed' : 'pointer',
|
||||
background: bgColor[j.lineEdgeLibraryState],
|
||||
}"></div>
|
||||
</el-popover>
|
||||
</div>
|
||||
<el-divider direction="vertical"></el-divider>
|
||||
<div
|
||||
class="dashboard-layout-item"
|
||||
v-for="j in wareData.filter((item) => item.region == 11).reverse()"
|
||||
:key="j.id"
|
||||
:title="j.lineEdgeLibraryCode">
|
||||
<el-popover
|
||||
placement="top-start"
|
||||
:title="j.lineEdgeLibraryCode"
|
||||
width="200"
|
||||
trigger="hover">
|
||||
<div class="point" />
|
||||
托盘编码: {{ j.trayCode }}
|
||||
<br />
|
||||
<div class="point" />
|
||||
Agv地码: {{ j.agvGroundCode }}
|
||||
<div
|
||||
slot="reference"
|
||||
class="hoverDiv"
|
||||
:style="{
|
||||
cursor:
|
||||
j.lineEdgeLibraryState === 1 ? 'not-allowed' : 'pointer',
|
||||
background: bgColor[j.lineEdgeLibraryState],
|
||||
}"></div>
|
||||
</el-popover>
|
||||
</div>
|
||||
</el-row>
|
||||
<el-divider class="divider" content-position="left">
|
||||
二次分切区
|
||||
|
@ -49,7 +49,7 @@
|
||||
v-model="dataForm.number"
|
||||
:step="1"
|
||||
:min="1"
|
||||
:max="12"></el-input-number>
|
||||
step-strictly></el-input-number>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
|
@ -30,13 +30,6 @@
|
||||
label="库位编码"></el-table-column>
|
||||
<el-table-column prop="trayCode" label="托盘编码"></el-table-column>
|
||||
<el-table-column prop="process" label="工序" width="110">
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{
|
||||
scope.row.process >= 0 ? processArr[scope.row.process].name : ''
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cacheLocation" label="缓存库位" width="100">
|
||||
<template slot-scope="scope">
|
||||
@ -207,13 +200,19 @@ export default {
|
||||
param: 'quality',
|
||||
},
|
||||
{
|
||||
type: 'select',
|
||||
type: 'input',
|
||||
label: '工序',
|
||||
selectOptions: processArr,
|
||||
placeholder: '工序',
|
||||
param: 'processId',
|
||||
defaultSelect: '',
|
||||
filterable: true,
|
||||
},
|
||||
// {
|
||||
// type: 'select',
|
||||
// label: '工序',
|
||||
// selectOptions: processArr,
|
||||
// param: 'processId',
|
||||
// defaultSelect: '',
|
||||
// filterable: true,
|
||||
// },
|
||||
{
|
||||
type: 'select',
|
||||
label: '库位状态',
|
||||
|
@ -30,11 +30,6 @@
|
||||
label="库位编码"></el-table-column>
|
||||
<el-table-column prop="trayCode" label="托盘编码"></el-table-column>
|
||||
<el-table-column prop="process" label="工序" width="110">
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{ scope.row.process>=0 ? processArr[scope.row.process].name : '' }}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cacheLocation" label="缓存库位" width="100">
|
||||
<template slot-scope="scope">
|
||||
@ -203,13 +198,19 @@ export default {
|
||||
param: 'quality',
|
||||
},
|
||||
{
|
||||
type: 'select',
|
||||
type: 'input',
|
||||
label: '工序',
|
||||
selectOptions: processArr,
|
||||
placeholder: '工序',
|
||||
param: 'processId',
|
||||
defaultSelect: '',
|
||||
filterable: true,
|
||||
},
|
||||
// {
|
||||
// type: 'select',
|
||||
// label: '工序',
|
||||
// selectOptions: processArr,
|
||||
// param: 'processId',
|
||||
// defaultSelect: '',
|
||||
// filterable: true,
|
||||
// },
|
||||
{
|
||||
type: 'select',
|
||||
label: '库位状态',
|
||||
|
@ -15,8 +15,7 @@
|
||||
:model="dataForm"
|
||||
:rules="dataRule"
|
||||
label-width="100px"
|
||||
label-position="top"
|
||||
@keyup.enter.native="dataFormSubmit">
|
||||
label-position="top">
|
||||
<el-row :gutter="20">
|
||||
<el-col :span="8">
|
||||
<el-form-item label="库位编码" prop="warehouseStorehouseCode">
|
||||
@ -39,6 +38,8 @@
|
||||
<el-input
|
||||
v-model="dataForm.trayCode"
|
||||
@input="$forceUpdate()"
|
||||
@keyup.enter.native="nextTInput"
|
||||
ref="input"
|
||||
placeholder="请输入托盘编码" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
@ -221,7 +222,7 @@ const processArr = [
|
||||
},
|
||||
];
|
||||
const regionArr = [
|
||||
{ name: '一次分切区域', id: 1 },
|
||||
{ name: '一次分切区域1线', id: 1 },
|
||||
{ name: '一次分拣区域', id: 2 },
|
||||
{ name: '二次分切区域', id: 3 },
|
||||
{ name: '二次分拣区域', id: 4 },
|
||||
@ -229,6 +230,9 @@ const regionArr = [
|
||||
{ name: '涂覆区域', id: 6 },
|
||||
{ name: '其他', id: 7 },
|
||||
{ name: '自动包装区域', id: 8 },
|
||||
{ name: '一次分切区域2线', id: 9 },
|
||||
{ name: '一次分切区域3线', id: 10 },
|
||||
{ name: '一次分切区域4线', id: 11 },
|
||||
];
|
||||
export default {
|
||||
components: { productAttrAdd, SmallTitle },
|
||||
@ -285,9 +289,9 @@ export default {
|
||||
},
|
||||
init(val) {
|
||||
this.isloading = false;
|
||||
this.potDisable = true
|
||||
this.potDisable = true;
|
||||
this.updata = val;
|
||||
this.warehouseId = val.warehouseId
|
||||
this.warehouseId = val.warehouseId;
|
||||
this.dataForm.id = val.id;
|
||||
this.dataForm.warehouseStorehouseName = val.warehouseStorehouseName;
|
||||
this.dataForm.warehouseStorehouseCode = val.warehouseStorehouseCode;
|
||||
@ -300,6 +304,7 @@ export default {
|
||||
this.$nextTick(() => {
|
||||
this.$refs['dataForm'].resetFields();
|
||||
|
||||
this.$refs.input.focus();
|
||||
if (this.dataForm.id) {
|
||||
// 获取产品详情
|
||||
// 获取产品的属性列表
|
||||
@ -308,10 +313,12 @@ export default {
|
||||
});
|
||||
},
|
||||
getPotArr(val) {
|
||||
getLineList({ 'region': val,'warehouseId':this.warehouseId }).then((response) => {
|
||||
getLineList({ region: val, warehouseId: this.warehouseId }).then(
|
||||
(response) => {
|
||||
this.potArr = response.data;
|
||||
this.potDisable = false;
|
||||
});
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
getList() {
|
||||
@ -326,6 +333,11 @@ export default {
|
||||
this.listQuery.total = response.data.total;
|
||||
});
|
||||
},
|
||||
nextTInput() {
|
||||
if (this.productAttributeList.length > 0) {
|
||||
document.getElementById('inputFocus1').focus();
|
||||
}
|
||||
},
|
||||
inputChange(data) {
|
||||
switch (data.sType) {
|
||||
case 1:
|
||||
@ -338,6 +350,13 @@ export default {
|
||||
this.productAttributeList[data._pageIndex - 1][data.prop + 'Name'] =
|
||||
data.string ? data.string.split('+')[1] : '';
|
||||
break;
|
||||
case 3:
|
||||
if (data._pageIndex < this.productAttributeList.length) {
|
||||
document
|
||||
.getElementById('inputFocus' + (data._pageIndex + 1))
|
||||
.focus();
|
||||
}
|
||||
break;
|
||||
default:
|
||||
console.log(val);
|
||||
}
|
||||
|
@ -45,7 +45,11 @@
|
||||
:style="{ width: '100%' }" />
|
||||
</el-form-item>
|
||||
<el-form-item label="数量" prop="number">
|
||||
<el-input-number v-model="dataForm.number" :step="1" :min="1" :max="12"></el-input-number>
|
||||
<el-input-number
|
||||
v-model="dataForm.number"
|
||||
:step="1"
|
||||
:min="1"
|
||||
step-strictly></el-input-number>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
@ -81,12 +85,8 @@ export default {
|
||||
productInfo: [
|
||||
{ required: true, message: '产品不能为空', trigger: 'change' },
|
||||
],
|
||||
number: [
|
||||
{ required: true, message: '数量不能为空', trigger: 'blur' },
|
||||
],
|
||||
grade: [
|
||||
{ required: true, message: '品质不能为空', trigger: 'change' },
|
||||
],
|
||||
number: [{ required: true, message: '数量不能为空', trigger: 'blur' }],
|
||||
grade: [{ required: true, message: '品质不能为空', trigger: 'change' }],
|
||||
},
|
||||
};
|
||||
},
|
||||
|
@ -30,13 +30,6 @@
|
||||
label="库位编码"></el-table-column>
|
||||
<el-table-column prop="trayCode" label="托盘编码"></el-table-column>
|
||||
<el-table-column prop="process" label="工序" width="110">
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{
|
||||
scope.row.process >= 0 ? processArr[scope.row.process].name : ''
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cacheLocation" label="缓存库位" width="100">
|
||||
<template slot-scope="scope">
|
||||
@ -66,7 +59,7 @@
|
||||
v-if="scope.row.warehouseStorehouseState === 0"
|
||||
type="text"
|
||||
@click="handleClick({ data: { id: scope.row }, type: 'in' })"
|
||||
v-hasPermi="['asrs:warehouse-storehouse-storage:update']">
|
||||
v-hasPermi="['asrs:warehouse-storehouse-storage:in']">
|
||||
入库
|
||||
</el-button>
|
||||
<el-button
|
||||
@ -74,7 +67,7 @@
|
||||
v-if="scope.row.warehouseStorehouseState === 2"
|
||||
type="text"
|
||||
@click="handleClick({ data: scope.row, type: 'out' })"
|
||||
v-hasPermi="['asrs:warehouse-storehouse-storage:update']">
|
||||
v-hasPermi="['asrs:warehouse-storehouse-storage:out']">
|
||||
出库
|
||||
</el-button>
|
||||
<el-button
|
||||
@ -234,13 +227,19 @@ export default {
|
||||
param: 'quality',
|
||||
},
|
||||
{
|
||||
type: 'select',
|
||||
type: 'input',
|
||||
label: '工序',
|
||||
selectOptions: processArr,
|
||||
placeholder: '工序',
|
||||
param: 'processId',
|
||||
defaultSelect: '',
|
||||
filterable: true,
|
||||
},
|
||||
// {
|
||||
// type: 'select',
|
||||
// label: '工序',
|
||||
// selectOptions: processArr,
|
||||
// param: 'processId',
|
||||
// defaultSelect: '',
|
||||
// filterable: true,
|
||||
// },
|
||||
{
|
||||
type: 'select',
|
||||
label: '库位状态',
|
||||
|
@ -30,13 +30,6 @@
|
||||
label="库位编码"></el-table-column>
|
||||
<el-table-column prop="trayCode" label="托盘编码"></el-table-column>
|
||||
<el-table-column prop="process" label="工序" width="110">
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{
|
||||
scope.row.process >= 0 ? processArr[scope.row.process].name : ''
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="cacheLocation" label="缓存库位" width="100">
|
||||
<template slot-scope="scope">
|
||||
@ -66,7 +59,7 @@
|
||||
v-if="scope.row.warehouseStorehouseState === 0"
|
||||
type="text"
|
||||
@click="handleClick({ data: { id: scope.row }, type: 'in' })"
|
||||
v-hasPermi="['asrs:warehouse-storehouse-storage:update']">
|
||||
v-hasPermi="['asrs:warehouse-storehouse-storageb:in']">
|
||||
入库
|
||||
</el-button>
|
||||
<el-button
|
||||
@ -74,7 +67,7 @@
|
||||
v-if="scope.row.warehouseStorehouseState === 2"
|
||||
type="text"
|
||||
@click="handleClick({ data: scope.row, type: 'out' })"
|
||||
v-hasPermi="['asrs:warehouse-storehouse-storage:update']">
|
||||
v-hasPermi="['asrs:warehouse-storehouse-storageb:out']">
|
||||
出库
|
||||
</el-button>
|
||||
<el-button
|
||||
@ -235,13 +228,19 @@ export default {
|
||||
param: 'quality',
|
||||
},
|
||||
{
|
||||
type: 'select',
|
||||
type: 'input',
|
||||
label: '工序',
|
||||
selectOptions: processArr,
|
||||
placeholder: '工序',
|
||||
param: 'processId',
|
||||
defaultSelect: '',
|
||||
filterable: true,
|
||||
},
|
||||
// {
|
||||
// type: 'select',
|
||||
// label: '工序',
|
||||
// selectOptions: processArr,
|
||||
// param: 'processId',
|
||||
// defaultSelect: '',
|
||||
// filterable: true,
|
||||
// },
|
||||
{
|
||||
type: 'select',
|
||||
label: '库位状态',
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2021-11-18 14:16:25
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2024-04-22 09:09:01
|
||||
* @LastEditTime: 2024-04-25 16:39:52
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
@ -109,7 +109,7 @@ const potArr3 = [
|
||||
{ label: '4层', id: 4 },
|
||||
];
|
||||
const regionArr = [
|
||||
{ name: '一次分切区域', id: 1 },
|
||||
{ name: '一次分切区域1线', id: 1 },
|
||||
{ name: '一次分拣区域', id: 2 },
|
||||
{ name: '二次分切区域', id: 3 },
|
||||
{ name: '二次分拣区域', id: 4 },
|
||||
@ -117,6 +117,9 @@ const regionArr = [
|
||||
{ name: '涂覆区域', id: 6 },
|
||||
{ name: '其他', id: 7 },
|
||||
{ name: '自动包装区域', id: 8 },
|
||||
{ name: '一次分切区域2线', id: 9 },
|
||||
{ name: '一次分切区域3线', id: 10 },
|
||||
{ name: '一次分切区域4线', id: 11 },
|
||||
];
|
||||
export default {
|
||||
mixins: [basicAdd],
|
||||
|
@ -24,19 +24,12 @@
|
||||
<el-table-column prop="warehouseCode" label="仓库编码"></el-table-column>
|
||||
<el-table-column
|
||||
prop="warehouseStorehouseName"
|
||||
label="库位名"></el-table-column>
|
||||
label="库位名" />
|
||||
<el-table-column
|
||||
prop="warehouseStorehouseCode"
|
||||
label="库位编码"></el-table-column>
|
||||
<el-table-column prop="trayCode" label="托盘编码"></el-table-column>
|
||||
<el-table-column prop="process" label="工序" width="110">
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{
|
||||
scope.row.process >= 0 ? processArr[scope.row.process].name : ''
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="出入库时间">
|
||||
<template v-slot="scope">
|
||||
@ -45,7 +38,8 @@
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="warehouseStorehouseStorageState"
|
||||
label="出入库状态" width="100">
|
||||
label="出入库状态"
|
||||
width="100">
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{
|
||||
@ -213,6 +207,7 @@ export default {
|
||||
console.log(val);
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
};
|
||||
</script>
|
||||
@ -221,4 +216,11 @@ export default {
|
||||
padding: 0;
|
||||
height: 35px;
|
||||
}
|
||||
.el-table .warning-row {
|
||||
background: oldlace;
|
||||
}
|
||||
|
||||
.el-table .success-row {
|
||||
background: #f0f9eb;
|
||||
}
|
||||
</style>
|
||||
|
@ -30,13 +30,6 @@
|
||||
label="库位编码"></el-table-column>
|
||||
<el-table-column prop="trayCode" label="托盘编码"></el-table-column>
|
||||
<el-table-column prop="process" label="工序">
|
||||
<template slot-scope="scope">
|
||||
<span>
|
||||
{{
|
||||
scope.row.process >= 0 ? processArr[scope.row.process].name : ''
|
||||
}}
|
||||
</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="createTime" label="出入库时间">
|
||||
<template v-slot="scope">
|
||||
|
@ -61,7 +61,7 @@ export default {
|
||||
text: '总数',
|
||||
subtext: this.totalNumber,
|
||||
top: '42%', // 控制位置
|
||||
left: '50%', // 控制位置
|
||||
left: '40%', // 控制位置
|
||||
textAlign: 'center', // 让文字居中
|
||||
textStyle: {
|
||||
color: 'rgba(203, 195, 195, 1)',
|
||||
@ -75,60 +75,26 @@ export default {
|
||||
show: true, // 控制鼠标悬浮是否显示数据
|
||||
formatter: '产品: {b}<br/>数量: {c}<br/>占比: {d}%',
|
||||
},
|
||||
// legend: {
|
||||
// orient: 'vartical',
|
||||
// top: 'center',
|
||||
// left: 'right',
|
||||
// icon: 'circle',
|
||||
// itemGap: 16, //图例每项之间的间隔
|
||||
// textStyle: {
|
||||
// // 文字的样式
|
||||
// fontSize: 24, // 可控制每个legend项的间距
|
||||
// color: '#828282',
|
||||
// rich: {
|
||||
// oneone: {
|
||||
// width: 50,
|
||||
// color: '#000000',
|
||||
// fontSize: 12,
|
||||
// fontWeight: 'bolder',
|
||||
// },
|
||||
// twotwo: {
|
||||
// width: 35,
|
||||
// color: '#333',
|
||||
// fontSize: 12,
|
||||
// },
|
||||
// threethree: {
|
||||
// width: 20,
|
||||
// color: '#959595',
|
||||
// fontSize: 12,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// formatter: (name) => {
|
||||
// var target = this.pieData.find((item) => {
|
||||
// return item.name === name;
|
||||
// }).number;
|
||||
// var v = ((target / this.totalNumber) * 100).toFixed(2);
|
||||
// return `{oneone|${name}} {twotwo|${target}个} {threethree|${v}%}`;
|
||||
// },
|
||||
// },
|
||||
|
||||
legend: {
|
||||
bottom: '0%',
|
||||
left: 'center',
|
||||
type: 'scroll',
|
||||
orient: 'vertical',
|
||||
right: 10,
|
||||
top: 20,
|
||||
bottom: 20,
|
||||
},
|
||||
grid: {
|
||||
top: 40,
|
||||
left: '2%',
|
||||
right: '2%',
|
||||
bottom: '3%',
|
||||
bottom: '0%',
|
||||
containLabel: true,
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: 'pie',
|
||||
type: 'pie',
|
||||
radius: ['55%', '80%'],
|
||||
radius: ['45%', '70%'],
|
||||
center: ['40%', '50%'],
|
||||
avoidLabelOverlap: true, // 防止牵引线堆叠挤在一块
|
||||
itemStyle: {
|
||||
borderRadius: 10,
|
||||
|
@ -15,7 +15,7 @@
|
||||
<el-col :span="23">
|
||||
<pieChart
|
||||
ref="pieChart"
|
||||
height="600px"
|
||||
height="650px"
|
||||
v-if="tableData.totalNumber"
|
||||
:total-number="tableData.totalNumber"
|
||||
:pie-data="tableData.list" />
|
||||
|
@ -2,7 +2,7 @@
|
||||
* @Author: zwq
|
||||
* @Date: 2023-08-17 15:10:53
|
||||
* @LastEditors: zwq
|
||||
* @LastEditTime: 2023-10-10 11:00:56
|
||||
* @LastEditTime: 2024-04-29 14:23:14
|
||||
* @Description:
|
||||
-->
|
||||
<template>
|
||||
|
@ -197,8 +197,8 @@ export default {
|
||||
mobileCodeTimer: 0,
|
||||
loginForm: {
|
||||
loginType: 'uname',
|
||||
username: 'admin',
|
||||
password: 'admin123',
|
||||
username: '',
|
||||
password: '',
|
||||
captchaVerification: '',
|
||||
mobile: '',
|
||||
mobileCode: '',
|
||||
|
Loading…
Reference in New Issue
Block a user