更新
This commit is contained in:
		
							
								
								
									
										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:
 | 
			
		||||
###
 | 
			
		||||
# 生产环境配置
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										43
									
								
								src/App.vue
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								src/App.vue
									
									
									
									
									
								
							@@ -1,28 +1,39 @@
 | 
			
		||||
<!--
 | 
			
		||||
 * @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 />
 | 
			
		||||
    <theme-picker />
 | 
			
		||||
  </div>
 | 
			
		||||
	<div id="app">
 | 
			
		||||
		<router-view />
 | 
			
		||||
		<theme-picker />
 | 
			
		||||
	</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import ThemePicker from "@/components/ThemePicker";
 | 
			
		||||
import ThemePicker from '@/components/ThemePicker';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  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
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
	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;
 | 
			
		||||
			},
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped>
 | 
			
		||||
#app .theme-picker {
 | 
			
		||||
  display: none;
 | 
			
		||||
	display: none;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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,112 +1,166 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <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="{'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>
 | 
			
		||||
      <right-panel>
 | 
			
		||||
        <settings />
 | 
			
		||||
      </right-panel>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
	<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="{ '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>
 | 
			
		||||
			<right-panel>
 | 
			
		||||
				<settings />
 | 
			
		||||
			</right-panel>
 | 
			
		||||
		</div>
 | 
			
		||||
	</div>
 | 
			
		||||
</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',
 | 
			
		||||
  components: {
 | 
			
		||||
    AppMain,
 | 
			
		||||
    Navbar,
 | 
			
		||||
    RightPanel,
 | 
			
		||||
    Settings,
 | 
			
		||||
    Sidebar,
 | 
			
		||||
    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
 | 
			
		||||
    }),
 | 
			
		||||
    classObj() {
 | 
			
		||||
      return {
 | 
			
		||||
        hideSidebar: !this.sidebar.opened,
 | 
			
		||||
        openSidebar: this.sidebar.opened,
 | 
			
		||||
        withoutAnimation: this.sidebar.withoutAnimation,
 | 
			
		||||
        mobile: this.device === 'mobile'
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    variables() {
 | 
			
		||||
      return variables;
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    handleClickOutside() {
 | 
			
		||||
      this.$store.dispatch('app/closeSideBar', { withoutAnimation: false })
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
	name: 'Layout',
 | 
			
		||||
	components: {
 | 
			
		||||
		AppMain,
 | 
			
		||||
		Navbar,
 | 
			
		||||
		RightPanel,
 | 
			
		||||
		Settings,
 | 
			
		||||
		Sidebar,
 | 
			
		||||
		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,
 | 
			
		||||
		}),
 | 
			
		||||
		classObj() {
 | 
			
		||||
			return {
 | 
			
		||||
				hideSidebar: !this.sidebar.opened,
 | 
			
		||||
				openSidebar: this.sidebar.opened,
 | 
			
		||||
				withoutAnimation: this.sidebar.withoutAnimation,
 | 
			
		||||
				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 });
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</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;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
	@include clearfix;
 | 
			
		||||
	position: relative;
 | 
			
		||||
	height: 100%;
 | 
			
		||||
	width: 100%;
 | 
			
		||||
 | 
			
		||||
  &.mobile.openSidebar {
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    top: 0;
 | 
			
		||||
  }
 | 
			
		||||
	&.mobile.openSidebar {
 | 
			
		||||
		position: fixed;
 | 
			
		||||
		top: 0;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.drawer-bg {
 | 
			
		||||
  background: #000;
 | 
			
		||||
  opacity: 0.3;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  height: 100%;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  z-index: 999;
 | 
			
		||||
	background: #000;
 | 
			
		||||
	opacity: 0.3;
 | 
			
		||||
	width: 100%;
 | 
			
		||||
	top: 0;
 | 
			
		||||
	height: 100%;
 | 
			
		||||
	position: absolute;
 | 
			
		||||
	z-index: 999;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fixed-header {
 | 
			
		||||
  position: fixed;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  right: 0;
 | 
			
		||||
  z-index: 9;
 | 
			
		||||
  width: calc(100% - #{$base-sidebar-width});
 | 
			
		||||
  transition: width 0.28s;
 | 
			
		||||
	position: fixed;
 | 
			
		||||
	top: 0;
 | 
			
		||||
	right: 0;
 | 
			
		||||
	z-index: 9;
 | 
			
		||||
	width: calc(100% - #{$base-sidebar-width});
 | 
			
		||||
	transition: width 0.28s;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.hideSidebar .fixed-header {
 | 
			
		||||
  width: calc(100% - 54px);
 | 
			
		||||
	width: calc(100% - 54px);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.sidebarHide .fixed-header {
 | 
			
		||||
  width: calc(100%);
 | 
			
		||||
	width: calc(100%);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.mobile .fixed-header {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
	width: 100%;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
			});
 | 
			
		||||
			const params = {
 | 
			
		||||
				pageSize: 100,
 | 
			
		||||
				pageNo: 1,
 | 
			
		||||
				warehouseId: this.aId,
 | 
			
		||||
			};
 | 
			
		||||
			getGoodSpecificationPage(params).then((response) => {
 | 
			
		||||
				this.productArr = response.data.list;
 | 
			
		||||
			});
 | 
			
		||||
		},
 | 
			
		||||
		remoteMethod(query) {
 | 
			
		||||
			if (query !== '') {
 | 
			
		||||
				this.loading = true;
 | 
			
		||||
				const params = {
 | 
			
		||||
					pageSize: 100,
 | 
			
		||||
					pageNo: 1,
 | 
			
		||||
					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() {
 | 
			
		||||
@@ -121,7 +110,7 @@ export default {
 | 
			
		||||
			regionArr,
 | 
			
		||||
			SDisable: true,
 | 
			
		||||
			EDisable: true,
 | 
			
		||||
      warehouseId: '1698950657556340737',
 | 
			
		||||
			warehouseId: '1698950657556340737',
 | 
			
		||||
		};
 | 
			
		||||
	},
 | 
			
		||||
	components: {},
 | 
			
		||||
@@ -134,16 +123,20 @@ export default {
 | 
			
		||||
			this.EDisable = true;
 | 
			
		||||
		},
 | 
			
		||||
		getSArr(val) {
 | 
			
		||||
			getLineList({ region: val,'warehouseId':this.warehouseId  }).then((response) => {
 | 
			
		||||
				this.potArr = response.data;
 | 
			
		||||
				this.SDisable = false;
 | 
			
		||||
			});
 | 
			
		||||
			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) => {
 | 
			
		||||
				this.potArr = response.data;
 | 
			
		||||
				this.EDisable = false;
 | 
			
		||||
			});
 | 
			
		||||
			getLineList({ region: val, warehouseId: this.warehouseId }).then(
 | 
			
		||||
				(response) => {
 | 
			
		||||
					this.potArr = response.data;
 | 
			
		||||
					this.EDisable = false;
 | 
			
		||||
				}
 | 
			
		||||
			);
 | 
			
		||||
		},
 | 
			
		||||
		move() {
 | 
			
		||||
			if (this.startData.targetId && this.endData.targetId) {
 | 
			
		||||
@@ -172,21 +165,21 @@ export default {
 | 
			
		||||
.box-card {
 | 
			
		||||
	padding: 50px;
 | 
			
		||||
	margin: 20px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
	text-align: center;
 | 
			
		||||
	box-shadow: 0px 0px 5px 2px gray;
 | 
			
		||||
  position: relative;
 | 
			
		||||
	position: relative;
 | 
			
		||||
}
 | 
			
		||||
.tip{
 | 
			
		||||
  position:absolute;
 | 
			
		||||
  top: 20px;
 | 
			
		||||
  left: 100px;
 | 
			
		||||
  color: #409EFF;
 | 
			
		||||
.tip {
 | 
			
		||||
	position: absolute;
 | 
			
		||||
	top: 20px;
 | 
			
		||||
	left: 100px;
 | 
			
		||||
	color: #409eff;
 | 
			
		||||
}
 | 
			
		||||
.tipe{
 | 
			
		||||
  position:absolute;
 | 
			
		||||
  top: 150px;
 | 
			
		||||
  left: 100px;
 | 
			
		||||
  color: #409EFF;
 | 
			
		||||
.tipe {
 | 
			
		||||
	position: absolute;
 | 
			
		||||
	top: 150px;
 | 
			
		||||
	left: 100px;
 | 
			
		||||
	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,45 +2,53 @@
 | 
			
		||||
 * @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" />
 | 
			
		||||
  </div>
 | 
			
		||||
	<div class="tableInner">
 | 
			
		||||
		<el-input
 | 
			
		||||
			v-model="list[itemProp]"
 | 
			
		||||
			:id="'inputFocus'+injectData._pageIndex"
 | 
			
		||||
			@blur="changeInput"
 | 
			
		||||
			@keyup.enter.native="nextInput" />
 | 
			
		||||
	</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);
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
	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);
 | 
			
		||||
		},
 | 
			
		||||
    nextInput(){
 | 
			
		||||
			this.list.sType = 3;
 | 
			
		||||
			this.$emit('emitData', this.list, 3);
 | 
			
		||||
    }
 | 
			
		||||
	},
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
<style scoped>
 | 
			
		||||
.tableInner >>> .el-input__inner {
 | 
			
		||||
  color: #409EFF;
 | 
			
		||||
  border: 1px rgb(232, 231, 231) solid;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
	color: #409eff;
 | 
			
		||||
	border: 1px rgb(232, 231, 231) solid;
 | 
			
		||||
	padding: 0;
 | 
			
		||||
	text-align: center;
 | 
			
		||||
	height: 30px;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										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,16 +17,17 @@
 | 
			
		||||
			<el-tag effect="dark" color="#7362F3" style="border: none">锁</el-tag>
 | 
			
		||||
		</div>
 | 
			
		||||
		<div class="mainbody">
 | 
			
		||||
			<el-divider class="divider" content-position="left">二次分拣区</el-divider>
 | 
			
		||||
			<div v-for="i in 5" :key="i+'G'">
 | 
			
		||||
			<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
 | 
			
		||||
						class="dashboard-layout-item"
 | 
			
		||||
						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,8 +54,10 @@
 | 
			
		||||
					</div>
 | 
			
		||||
				</el-row>
 | 
			
		||||
			</div>
 | 
			
		||||
			<el-divider class="divider" content-position="left">一次分拣区</el-divider>
 | 
			
		||||
			<div v-for="i in 7" :key="i+'F'">
 | 
			
		||||
			<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
 | 
			
		||||
						class="dashboard-layout-item"
 | 
			
		||||
@@ -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>
 | 
			
		||||
@@ -65,7 +66,7 @@
 | 
			
		||||
								<el-select
 | 
			
		||||
									v-model="dataForm.startInfo"
 | 
			
		||||
									style="width: 100%"
 | 
			
		||||
        :disabled="potDisable"
 | 
			
		||||
									:disabled="potDisable"
 | 
			
		||||
									@change="$forceUpdate()"
 | 
			
		||||
									placeholder="请选择起点位置">
 | 
			
		||||
									<el-option
 | 
			
		||||
@@ -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 },
 | 
			
		||||
@@ -243,7 +247,7 @@ export default {
 | 
			
		||||
			processArr,
 | 
			
		||||
			potArr: [],
 | 
			
		||||
			regionArr,
 | 
			
		||||
      potDisable: true,
 | 
			
		||||
			potDisable: true,
 | 
			
		||||
			dataForm: {
 | 
			
		||||
				id: null,
 | 
			
		||||
				region: undefined,
 | 
			
		||||
@@ -253,7 +257,7 @@ export default {
 | 
			
		||||
				trayCode: '',
 | 
			
		||||
				startInfo: '',
 | 
			
		||||
			},
 | 
			
		||||
      warehouseId: null,
 | 
			
		||||
			warehouseId: null,
 | 
			
		||||
			isloading: false,
 | 
			
		||||
			updata: {},
 | 
			
		||||
			listQuery: {
 | 
			
		||||
@@ -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) => {
 | 
			
		||||
				this.potArr = response.data;
 | 
			
		||||
				this.potDisable = false;
 | 
			
		||||
			});
 | 
			
		||||
			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>
 | 
			
		||||
						{{
 | 
			
		||||
@@ -186,7 +180,7 @@ export default {
 | 
			
		||||
					this.listQuery.warehouseStorehouseName = val.name;
 | 
			
		||||
					this.listQuery.warehouseStorehouseCode = val.kcode;
 | 
			
		||||
					this.listQuery.trayCode = val.tcode;
 | 
			
		||||
					this.listQuery.warehouseStorehouseStorageState =val.state;
 | 
			
		||||
					this.listQuery.warehouseStorehouseStorageState = val.state;
 | 
			
		||||
					this.listQuery.createTime = val.searchTime;
 | 
			
		||||
					this.listQuery.startTime = val.searchTime ? val.searchTime[0] : '';
 | 
			
		||||
					this.listQuery.endTime = val.searchTime ? val.searchTime[1] : '';
 | 
			
		||||
@@ -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: '',
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user