更新
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: | ||||
| ### | ||||
| # 生产环境配置 | ||||
|   | ||||
							
								
								
									
										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="{'fixed-header':fixedHeader}"> | ||||
| 		<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) { | ||||
| @@ -176,17 +169,17 @@ export default { | ||||
| 	box-shadow: 0px 0px 5px 2px gray; | ||||
| 	position: relative; | ||||
| } | ||||
| .tip{ | ||||
|   position:absolute; | ||||
| .tip { | ||||
| 	position: absolute; | ||||
| 	top: 20px; | ||||
| 	left: 100px; | ||||
|   color: #409EFF; | ||||
| 	color: #409eff; | ||||
| } | ||||
| .tipe{ | ||||
|   position:absolute; | ||||
| .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,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> | ||||
| @@ -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> | ||||
| 						{{ | ||||
| @@ -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: '', | ||||
|   | ||||
		Referens i nytt ärende
	
	Block a user