liuhairui пре 5 месеци
родитељ
комит
eb26fecf1e

+ 151 - 106
src/view/performance/baozhuangbaogong.vue

@@ -206,7 +206,7 @@
 						<el-button type="primary" @click="cp_gdprintonClick" style="width: 130px; height: 40px; font-size: 20px; margin-left: 20px;" >  子订单详情页 </el-button>
 						<el-button type="primary" @click="add_Dialog" style="width: 100px; height: 40px; font-size: 20px; margin-left: 20px;" >报工</el-button>
 							
-					<!-- 表格数据 -->
+					  <!-- 表格数据 -->
 					  <el-tabs v-model="activeName">
 						<el-tab-pane label="报工历史记录"  name="first">
 					<el-table
@@ -229,9 +229,8 @@
 					>
 					<el-table-column type="selection" width="60" />
 						<!-- 操作列 -->
-						<el-table-column align="left" label="操作" width="150">
+						<!-- <el-table-column align="left" label="操作" width="150">
 							<template v-slot="scope">
-								<!-- 当 sys_rq、组别和 serial 不为空时显示按钮 -->
 								<el-button
 									v-if="scope.row.sys_rq && scope.row.组别 && scope.row.serial"
 									type="primary"
@@ -241,13 +240,13 @@
 									补打小票
 								</el-button>
 							</template>
-						</el-table-column>
+						</el-table-column> -->
 					
 						<!-- 报工时间 -->
-						<el-table-column align="center" label="报工时间" prop="sys_rq" width="150" />
+						<el-table-column align="center" label="报工时间" prop="sys_rq" width="155" />
 					
 						<!-- 子订单编号 -->
-						<el-table-column align="center" label="子订单编号" prop="子订单编号" width="110" />
+						<el-table-column align="center" label="子订单编号" prop="子订单编号" width="130" />
 					
 						<!-- 组别 -->
 						<el-table-column align="center" label="组别" prop="组别" width="80" />
@@ -276,7 +275,7 @@
 						<el-table-column align="left" sortable label="数量" prop="数量" width="100" />
 					
 						<!-- 流水号 -->
-						<el-table-column align="center" label="流水号" width="150">
+						<el-table-column align="center" label="流水号" width="100">
 							<template v-slot="scope">
 								<!-- 当 sys_rq、组别和 serial 不为空时显示流水号 -->
 								<div v-if="scope.row.sys_rq && scope.row.组别 && scope.row.serial">
@@ -413,7 +412,7 @@ import LuckyExcel from 'luckyexcel';
 import {Layout,LayoutSider,LayoutContent} from '@arco-design/web-vue';
 import {hiprint} from "vue-plugin-hiprint";
 import {ref,reactive,nextTick,watch,setBlockTracking} from 'vue'
-import {getSpotList,search,SubWorkOrderStatusList,getTab,SubOrderProgress,OrderAttachments,getTabByGdbh,processAdd,spotcheckdel,Mabaolist} from '@/api/mes/job'
+import {getSpotList,search,SubWorkOrderStatusList,getTab,SubOrderProgress,OrderAttachments,getTabByGdbh,processAdd,spotcheckdel,Mabaolist,Apiorderids} from '@/api/mes/job'
 import {getMachineMac} from '@/api/jixiaoguanli/jitairibaobiao'
 import {getMac} from '@/api/jixiaoguanli/baogong'
 import {ElMessage,ElMessageBox} from "element-plus";
@@ -602,6 +601,9 @@ const showPdf = async (row) => {
 		sl14: '',
 		sctotal: '',
 	});
+	
+	// 自动填充的尺码索引
+	const autoFilledSizeIndex = ref(0);
 
 	//实裁相加,直接指定要累加的属性名  
 	function updateTotal() {
@@ -637,108 +639,143 @@ const showPdf = async (row) => {
 	//尺寸列表
 	const sizeDatas = reactive([])
 	//搜索
-	const add_searchInfo = ref('')
+	const add_searchInfo = ref('DC2503291-0703,CF05,3,36,14,0,116')
 	//技术附件
 	const jstableData = reactive([])
 	const ddtableData = reactive([])
+	const progressList = ref([])
+	const order_progressList = ref([])
 	
+	const _sao_baoshu = ref('')
 	//查询
 	const add_onSubmit = async () => {
 		if(add_formData['机台号'] === ''){
 			warningres('未获取到机台')
 			return false;
 		}
-		add_searchInfo.value = add_searchInfo.value.includes(',') ? add_searchInfo.value.split(',')[0] : add_searchInfo.value;
-				
-		sizeDatas.length = 0;
-		add_tableData.length = 0;
-		if (!add_searchInfo.value.startsWith('DC')) {
-			// 如果没有以"DC"开头,则添加前缀  
-			add_searchInfo.value = 'DC' + add_searchInfo.value;
-		}
-		if (add_searchInfo.value === '' || add_searchInfo.value === undefined) {
+		if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
 			const WorkListdata = [];
 			add_tableData.splice(0, add_tableData.length, ...WorkListdata);
 			warningres('请扫描小票二维码')
-		} else {		
-			//获取报工历史记录
-			const getSpotLists = await getSpotList({order: add_searchInfo.value,code: _code,sys_sbID: add_formData['机台号']});
-			if(getSpotLists.data.code === 1){
-				warningres(getSpotLists.msg);
-				return false;
+			return false;
+		}
+		sizeDatas.length = 0;
+		add_tableData.length = 0;
+		
+		//获取报工历史记录
+		const getSpotLists = await getSpotList({order: add_searchInfo.value,code: _code,sys_sbID: add_formData['机台号']});
+		if(getSpotLists.data.code === 1){
+			warningres(getSpotLists.msg);
+			return false;
+		}
+		// console.log(getSpotLists)
+		sizeDatas.splice(0, getSpotLists.data.headers.length, ...getSpotLists.data.headers); //型号数据
+		add_tableData.splice(0, add_tableData.length, ...getSpotLists.data.records); //表格数据
+		_list.value = getSpotLists.data.list
+		
+		if (!add_searchInfo.value.includes('-') && getSpotLists.data.records.length === 0) {
+			warningres('未查询到报工历史数据')
+			return false;
+		}
+		
+		//xlsx附件
+		const searchValue = add_searchInfo.value.split('-')[0];
+		
+		const SubOrder_list = await SubOrderProgress({order:searchValue});
+		//订单编号
+		order_progressList.value = SubOrder_list.data.list.map(item => ({
+		  subOrderNo: item['订单编号'],
+		  入仓数量: item['订单总入仓数量'],
+		  裁剪数量: item['订单总裁剪数量'],
+		  percentage: parseFloat(item['订单完成率'].replace('%', ''))
+		}))
+		//子订单编号
+		progressList.value = SubOrder_list.data.result.map(item => ({
+		  subOrderNo: item['子订单编号'],
+		  入仓数量: item['入仓数量'],
+		  裁剪数量: item['裁剪数量'],
+		  percentage: parseFloat(item['完成率'].replace('%', ''))
+		}))
+		
+		const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
+		const ddOrderAttachments = await OrderAttachments({order:searchValue,desc:'订单资料附件'})
+		jstableData.splice(0,jsOrderAttachments.data.list.length,...jsOrderAttachments.data.list);
+		ddtableData.splice(0,ddOrderAttachments.data.list.length,...ddOrderAttachments.data.list);
+		
+		_yskskh.value = getSpotLists.data.list //颜色、款式、款号
+		_serial.value = String(getSpotLists.data.serial) //流水号
+		_serial_num.value  = String(getSpotLists.data.serial_num);//序号
+			console.log(_serial_num.value)
+		//获取尺码、制单数/实裁量上面信息
+		const keys1 = [
+			'cm1', 'cm2', 'cm3', 'cm4', 'cm5', 'cm6', 'cm7', 
+			'cm8', 'cm9', 'cm10', 'cm11', 'cm12', 'cm13', 'cm14'
+		];
+		const keys2 = [
+			'cmsl1', 'cmsl2', 'cmsl3', 'cmsl4', 'cmsl5', 'cmsl6', 'cmsl7',
+			'cmsl8', 'cmsl9','cmsl10','cmsl11','cmsl12','cmsl13','cmsl14', 'zdtotal',
+		];
+		const keys3 = [
+			'scsl1', 'scsl2', 'scsl3', 'scsl4', 'scsl5', 'scsl6', 'scsl7', 
+			'scsl8', 'scsl9','scsl10','scsl11','scsl12','scsl13','scsl14', 'sctotal',
+		];
+		//如果搜索是子订单编号
+		if (add_searchInfo.value.includes('-')) {
+			for (let key of keys1) {
+				if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
+					cmformdata[key] = getSpotLists.data.list[key];
+				}
 			}
-			// console.log(getSpotLists)
-			sizeDatas.splice(0, getSpotLists.data.headers.length, ...getSpotLists.data.headers); //型号数据
-			add_tableData.splice(0, add_tableData.length, ...getSpotLists.data.records); //表格数据
-			_list.value = getSpotLists.data.list
-			
-			if (!add_searchInfo.value.includes('-') && getSpotLists.data.records.length === 0) {
-				warningres('未查询到报工历史数据')
-				return false;
+			for (let key of keys2) {
+				if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
+					zdslformdata[key] = getSpotLists.data.list[key];
+				}
+			}
+			for (let key of keys3) {
+				if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
+					scslformdata[key] = getSpotLists.data.list[key];
+				}
 			}
+		} else {
+			for (let key of keys1) {
+				cmformdata[key] = '';
+			}
+			for (let key of keys2) {
+				zdslformdata[key] = '';
+			}
+		}
+		updateTotal()
+		_sao_baoshu.value = '';
+		//DC2503291-0703,CF05,3,36,14,0,116
+		if (add_searchInfo.value && add_searchInfo.value.match(/,/g)?.length >= 2) {
+			// 有两个以上的逗号
+			const arr = add_searchInfo.value.split(',')
 			
-			//xlsx附件
-			const searchValue = add_searchInfo.value.split('-')[0];
-			const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
-			const ddOrderAttachments = await OrderAttachments({order:searchValue,desc:'订单资料附件'})
-			jstableData.splice(0,jsOrderAttachments.data.list.length,...jsOrderAttachments.data.list);
-			ddtableData.splice(0,ddOrderAttachments.data.list.length,...ddOrderAttachments.data.list);
+			// 添加尺码和数量匹配逻辑
+			if (arr.length >= 4) {
+			const sizeValue = arr[3];
+			const quantityValue = arr[4];
+			_sao_baoshu.value = arr[6];
 			
-			_yskskh.value = getSpotLists.data.list //颜色、款式、款号
-			_serial.value = String(getSpotLists.data.serial) //流水号
-			_serial_num.value  = String(getSpotLists.data.serial_num);//序号
-				console.log(_serial_num.value)
-			//获取尺码、制单数/实裁量上面信息
-			const keys1 = [
-				'cm1', 'cm2', 'cm3', 'cm4', 'cm5', 'cm6', 'cm7', 
-				'cm8', 'cm9', 'cm10', 'cm11', 'cm12', 'cm13', 'cm14'
-			];
-			const keys2 = [
-				'cmsl1', 'cmsl2', 'cmsl3', 'cmsl4', 'cmsl5', 'cmsl6', 'cmsl7',
-				'cmsl8', 'cmsl9','cmsl10','cmsl11','cmsl12','cmsl13','cmsl14', 'zdtotal',
-			];
-			const keys3 = [
-				'scsl1', 'scsl2', 'scsl3', 'scsl4', 'scsl5', 'scsl6', 'scsl7', 
-				'scsl8', 'scsl9','scsl10','scsl11','scsl12','scsl13','scsl14', 'sctotal',
-			];
-			//如果搜索是子订单编号
-			if (add_searchInfo.value.includes('-')) {
-				for (let key of keys1) {
-					if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
-						cmformdata[key] = getSpotLists.data.list[key];
-					}
-				}
-				for (let key of keys2) {
-					if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
-						zdslformdata[key] = getSpotLists.data.list[key];
-					}
-				}
-				for (let key of keys3) {
-					if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
-						scslformdata[key] = getSpotLists.data.list[key];
-					}
-				}
-				setTimeout(() => {
-					const inputElement = document.getElementById('sl1');
-					if (inputElement) {
-						inputElement.focus();
-					}
-				}, 100); // 延迟100毫秒
-			} else {
-				for (let key of keys1) {
-					cmformdata[key] = '';
-				}
-				for (let key of keys2) {
-					zdslformdata[key] = '';
+			// 遍历cmformdata找到对应的尺码位置
+			for (let i = 1; i <= 14; i++) {
+				const cmKey = `cm${i}`;
+				const slKey = `sl${i}`;
+				
+				// 如果找到匹配的尺码
+				if (cmformdata[cmKey] === sizeValue) {
+				// 设置对应的上报数量
+				slformdata[slKey] = quantityValue;
+				// 记录自动填充的尺码索引
+				autoFilledSizeIndex.value = i;
+				// 更新合计
+				updateTotal();
+				break;
 				}
 			}
-			updateTotal()
-			// //历史记录
-			// if (getSpotLists.data.headers) {
-				
-			// }
+			}
 		}
-	}
+}
 	
 
 const AttendanceVisible = ref(false)
@@ -765,7 +802,7 @@ const currentSlValue = ref('')
 
 // 标志变量,用于控制按钮的可点击状态
 let isClickable = true;
-//报工
+//车缝报工
 const add_Dialog = async () => {
     // 如果按钮不可点击,直接返回
     if (!isClickable) {
@@ -791,7 +828,7 @@ const add_Dialog = async () => {
 			return fasle;
 		}
 		if (add_searchInfo.value === '') {
-			warningres('请扫描子订单编号输入数量后,再进行上报')
+			warningres('请输入数量后,再进行上报')
 			return fasle;
 		}
 		//尺码
@@ -823,8 +860,14 @@ const add_Dialog = async () => {
 		_serial_num.value  = String(getSpotLists.data.serial_num);//序号
 		
 		let paramsList = []; // 用于存储每个元素的 cm 和 sl  
-		let serialNumber = parseInt(getSpotLists.data.serial, 10);
-		
+		// 修复变量作用域问题,将声明提升到外部
+			let serialNumber;
+			if(_sao_baoshu.value === ''){
+				serialNumber = parseInt(getSpotLists.data.serial, 10);
+			}else{
+				serialNumber = parseInt(_sao_baoshu.value, 10);
+			}
+			console.log(serialNumber)
 		for (let i = 0; i < resultArrays.length; i++) {
 			if (slArray[i]) {
 				let params = {};
@@ -840,17 +883,15 @@ const add_Dialog = async () => {
 				params.sczl_bh = add_formData['组别'];
 				// 流水号(包数)
 				params.serial = padNumber(serialNumber, 3);
-				//流水号序号
-				// _serial_num.value++;
-				// params.serial_num = _serial_num.value;
-				// params.serial = _serial_num.value;
 				// 流水号序号
 				params.serial_num = serialNumber;
 				paramsList.push(params);
 				serialNumber++;
 			}
 		}
-		console.log("新增报工",paramsList)
+		
+		// console.log("新增报工",paramsList)
+		// return;
 		if (paramsList.length === 0) {
 			warningres('请填写报工尺码数量')
 			return;
@@ -890,14 +931,7 @@ const add_Dialog = async () => {
 
 			search.value = '';
 			add_searchInfo.value = ''; 
-			setTimeout(() => {
-				const inputElement = document.getElementById('searchInput');
-				if (inputElement) {
-					inputElement.focus();		
-				}
-			}, 100); // 延迟100毫秒
 			successres('报工成功')
-			
 			// 上报成功后 清空所有输入框上报数量
 			  if (slformdata) {
 			    for (let i = 1; i <= 14; i++) {
@@ -1748,4 +1782,15 @@ const warningres = (arr) => {
 	  color: #721c24;
 	  border-color: #f5c6cb;
 	}
+	
+	/* 全局修改 el-progress 的背景颜色 */
+	:deep(.progress-wrapper .el-progress-bar__outer) {
+	  background-color: Orange; /* 自定义背景色 */
+	}
+	/* ▶ 改变进度条中文字的颜色和字体大小 */
+	:deep(.el-progress-bar__innerText) {
+	  color: black !important;
+	  font-size: 20px !important;
+	  font-weight: bold;
+	}
 </style>

+ 1 - 1
src/view/performance/houdaoshougong.vue

@@ -279,7 +279,7 @@ import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
 import {hiprint} from "vue-plugin-hiprint";
 import {ref, reactive,nextTick,watch, setBlockTracking,computed } from 'vue';
 import { Search } from '@element-plus/icons-vue';
-import {getSpotList,search,getTab,OrderAttachments,getTabByGdbh,spotcheckdel,order_Patchwork,Patchwork} from '@/api/mes/job'
+import {getSpotList,search,getTab,OrderAttachments,getTabByGdbh,spotcheckdel} from '@/api/mes/job'
 import {getMachineMac} from '@/api/jixiaoguanli/jitairibaobiao'
 import {getMac} from '@/api/jixiaoguanli/baogong'
 import PrintPage from '../yunyin/shengchanguanli/components/print.vue';

+ 200 - 100
src/view/performance/zongjianbaogong.vue

@@ -206,9 +206,57 @@
 						<el-button type="primary" @click="cp_gdprintonClick" style="width: 130px; height: 40px; font-size: 20px; margin-left: 20px;" >  子订单详情页 </el-button>
 						<el-button type="primary" @click="add_Dialog" style="width: 100px; height: 40px; font-size: 20px; margin-left: 20px;" >报工</el-button>
 							
-					<!-- 表格数据 -->
+					  <!-- 表格数据 -->
 					  <el-tabs v-model="activeName">
-						<el-tab-pane label="报工历史记录"  name="first">
+						  <br><br>
+						  <el-tab-pane label="成品完成率"  name="first">
+								 <div class="progress-wrapper" >
+								   <div
+								     class="progress-row"
+								     v-for="item in order_progressList"
+								     :key="item.subOrderNo"
+								   >
+								     <div class="progress-info">
+								       <span style="font-size: 20px;"><strong>总订单进度---订单编号:</strong>{{ item.subOrderNo }}</span>
+								     </div>
+								 
+								     <el-progress
+								       :percentage="Math.min(item.percentage, 100)"
+								       :stroke-width="24" 
+								       :text-inside="true"
+								       style="flex: 1; width: 70%;"
+								       :format="() => item.percentage + '%'"
+								       :status="item.percentage >= 100 ? 'success' : 'success'"
+								     />
+								   </div>
+								 </div>
+
+								
+								<br><br>
+								
+							  <div class="progress-wrapper">
+								 <div
+								   class="progress-row"
+								   v-for="item in progressList"
+								   :key="item.subOrderNo"
+								 >
+								   <div class="progress-info">
+									 <span style='font-size: 20px;'><strong>子订单编号:</strong>{{ item.subOrderNo }}</span>
+								   </div>
+								   <el-progress
+								     :percentage="Math.min(item.percentage, 100)"
+								     :stroke-width="24"
+								     :text-inside="true"
+								     style="flex: 1; width: 70%;"
+								     :format="() => item.percentage + '%'"
+								     :status="item.percentage >= 100 ? 'success' : 'success'"
+								   />
+								 </div>
+							    </div>
+							<br>
+						  </el-tab-pane> 
+						  
+						<el-tab-pane label="报工历史记录"  name="firsts">
 					<el-table
 						ref="multipleTable"
 						style="width: 100%; height: 52vh"
@@ -229,9 +277,8 @@
 					>
 					<el-table-column type="selection" width="60" />
 						<!-- 操作列 -->
-						<el-table-column align="left" label="操作" width="150">
+						<!-- <el-table-column align="left" label="操作" width="150">
 							<template v-slot="scope">
-								<!-- 当 sys_rq、组别和 serial 不为空时显示按钮 -->
 								<el-button
 									v-if="scope.row.sys_rq && scope.row.组别 && scope.row.serial"
 									type="primary"
@@ -241,13 +288,13 @@
 									补打小票
 								</el-button>
 							</template>
-						</el-table-column>
+						</el-table-column> -->
 					
 						<!-- 报工时间 -->
-						<el-table-column align="center" label="报工时间" prop="sys_rq" width="150" />
+						<el-table-column align="center" label="报工时间" prop="sys_rq" width="155" />
 					
 						<!-- 子订单编号 -->
-						<el-table-column align="center" label="子订单编号" prop="子订单编号" width="110" />
+						<el-table-column align="center" label="子订单编号" prop="子订单编号" width="130" />
 					
 						<!-- 组别 -->
 						<el-table-column align="center" label="组别" prop="组别" width="80" />
@@ -276,7 +323,7 @@
 						<el-table-column align="left" sortable label="数量" prop="数量" width="100" />
 					
 						<!-- 流水号 -->
-						<el-table-column align="center" label="流水号" width="150">
+						<el-table-column align="center" label="流水号" width="100">
 							<template v-slot="scope">
 								<!-- 当 sys_rq、组别和 serial 不为空时显示流水号 -->
 								<div v-if="scope.row.sys_rq && scope.row.组别 && scope.row.serial">
@@ -413,7 +460,7 @@ import LuckyExcel from 'luckyexcel';
 import {Layout,LayoutSider,LayoutContent} from '@arco-design/web-vue';
 import {hiprint} from "vue-plugin-hiprint";
 import {ref,reactive,nextTick,watch,setBlockTracking} from 'vue'
-import {getSpotList,search,SubWorkOrderStatusList,getTab,SubOrderProgress,OrderAttachments,getTabByGdbh,processAdd,spotcheckdel,Mabaolist} from '@/api/mes/job'
+import {getSpotList,search,SubWorkOrderStatusList,getTab,SubOrderProgress,OrderAttachments,getTabByGdbh,processAdd,spotcheckdel,Mabaolist,Apiorderids} from '@/api/mes/job'
 import {getMachineMac} from '@/api/jixiaoguanli/jitairibaobiao'
 import {getMac} from '@/api/jixiaoguanli/baogong'
 import {ElMessage,ElMessageBox} from "element-plus";
@@ -602,6 +649,9 @@ const showPdf = async (row) => {
 		sl14: '',
 		sctotal: '',
 	});
+	
+	// 自动填充的尺码索引
+	const autoFilledSizeIndex = ref(0);
 
 	//实裁相加,直接指定要累加的属性名  
 	function updateTotal() {
@@ -637,108 +687,143 @@ const showPdf = async (row) => {
 	//尺寸列表
 	const sizeDatas = reactive([])
 	//搜索
-	const add_searchInfo = ref('')
+	const add_searchInfo = ref('DC2503291-0703,CF05,3,36,14,0,116')
 	//技术附件
 	const jstableData = reactive([])
 	const ddtableData = reactive([])
+	const progressList = ref([])
+	const order_progressList = ref([])
 	
+	const _sao_baoshu = ref('')
 	//查询
 	const add_onSubmit = async () => {
 		if(add_formData['机台号'] === ''){
 			warningres('未获取到机台')
 			return false;
 		}
-		add_searchInfo.value = add_searchInfo.value.includes(',') ? add_searchInfo.value.split(',')[0] : add_searchInfo.value;
-				
-		sizeDatas.length = 0;
-		add_tableData.length = 0;
-		if (!add_searchInfo.value.startsWith('DC')) {
-			// 如果没有以"DC"开头,则添加前缀  
-			add_searchInfo.value = 'DC' + add_searchInfo.value;
-		}
-		if (add_searchInfo.value === '' || add_searchInfo.value === undefined) {
+		if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
 			const WorkListdata = [];
 			add_tableData.splice(0, add_tableData.length, ...WorkListdata);
 			warningres('请扫描小票二维码')
-		} else {		
-			//获取报工历史记录
-			const getSpotLists = await getSpotList({order: add_searchInfo.value,code: _code,sys_sbID: add_formData['机台号']});
-			if(getSpotLists.data.code === 1){
-				warningres(getSpotLists.msg);
-				return false;
+			return false;
+		}
+		sizeDatas.length = 0;
+		add_tableData.length = 0;
+		
+		//获取报工历史记录
+		const getSpotLists = await getSpotList({order: add_searchInfo.value,code: _code,sys_sbID: add_formData['机台号']});
+		if(getSpotLists.data.code === 1){
+			warningres(getSpotLists.msg);
+			return false;
+		}
+		// console.log(getSpotLists)
+		sizeDatas.splice(0, getSpotLists.data.headers.length, ...getSpotLists.data.headers); //型号数据
+		add_tableData.splice(0, add_tableData.length, ...getSpotLists.data.records); //表格数据
+		_list.value = getSpotLists.data.list
+		
+		if (!add_searchInfo.value.includes('-') && getSpotLists.data.records.length === 0) {
+			warningres('未查询到报工历史数据')
+			return false;
+		}
+		
+		//xlsx附件
+		const searchValue = add_searchInfo.value.split('-')[0];
+		
+		const SubOrder_list = await SubOrderProgress({order:searchValue});
+		//订单编号
+		order_progressList.value = SubOrder_list.data.list.map(item => ({
+		  subOrderNo: item['订单编号'],
+		  入仓数量: item['订单总入仓数量'],
+		  裁剪数量: item['订单总裁剪数量'],
+		  percentage: parseFloat(item['订单完成率'].replace('%', ''))
+		}))
+		//子订单编号
+		progressList.value = SubOrder_list.data.result.map(item => ({
+		  subOrderNo: item['子订单编号'],
+		  入仓数量: item['入仓数量'],
+		  裁剪数量: item['裁剪数量'],
+		  percentage: parseFloat(item['完成率'].replace('%', ''))
+		}))
+		
+		const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
+		const ddOrderAttachments = await OrderAttachments({order:searchValue,desc:'订单资料附件'})
+		jstableData.splice(0,jsOrderAttachments.data.list.length,...jsOrderAttachments.data.list);
+		ddtableData.splice(0,ddOrderAttachments.data.list.length,...ddOrderAttachments.data.list);
+		
+		_yskskh.value = getSpotLists.data.list //颜色、款式、款号
+		_serial.value = String(getSpotLists.data.serial) //流水号
+		_serial_num.value  = String(getSpotLists.data.serial_num);//序号
+			console.log(_serial_num.value)
+		//获取尺码、制单数/实裁量上面信息
+		const keys1 = [
+			'cm1', 'cm2', 'cm3', 'cm4', 'cm5', 'cm6', 'cm7', 
+			'cm8', 'cm9', 'cm10', 'cm11', 'cm12', 'cm13', 'cm14'
+		];
+		const keys2 = [
+			'cmsl1', 'cmsl2', 'cmsl3', 'cmsl4', 'cmsl5', 'cmsl6', 'cmsl7',
+			'cmsl8', 'cmsl9','cmsl10','cmsl11','cmsl12','cmsl13','cmsl14', 'zdtotal',
+		];
+		const keys3 = [
+			'scsl1', 'scsl2', 'scsl3', 'scsl4', 'scsl5', 'scsl6', 'scsl7', 
+			'scsl8', 'scsl9','scsl10','scsl11','scsl12','scsl13','scsl14', 'sctotal',
+		];
+		//如果搜索是子订单编号
+		if (add_searchInfo.value.includes('-')) {
+			for (let key of keys1) {
+				if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
+					cmformdata[key] = getSpotLists.data.list[key];
+				}
 			}
-			// console.log(getSpotLists)
-			sizeDatas.splice(0, getSpotLists.data.headers.length, ...getSpotLists.data.headers); //型号数据
-			add_tableData.splice(0, add_tableData.length, ...getSpotLists.data.records); //表格数据
-			_list.value = getSpotLists.data.list
-			
-			if (!add_searchInfo.value.includes('-') && getSpotLists.data.records.length === 0) {
-				warningres('未查询到报工历史数据')
-				return false;
+			for (let key of keys2) {
+				if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
+					zdslformdata[key] = getSpotLists.data.list[key];
+				}
 			}
+			for (let key of keys3) {
+				if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
+					scslformdata[key] = getSpotLists.data.list[key];
+				}
+			}
+		} else {
+			for (let key of keys1) {
+				cmformdata[key] = '';
+			}
+			for (let key of keys2) {
+				zdslformdata[key] = '';
+			}
+		}
+		updateTotal()
+		_sao_baoshu.value = '';
+		//DC2503291-0703,CF05,3,36,14,0,116
+		if (add_searchInfo.value && add_searchInfo.value.match(/,/g)?.length >= 2) {
+			// 有两个以上的逗号
+			const arr = add_searchInfo.value.split(',')
 			
-			//xlsx附件
-			const searchValue = add_searchInfo.value.split('-')[0];
-			const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
-			const ddOrderAttachments = await OrderAttachments({order:searchValue,desc:'订单资料附件'})
-			jstableData.splice(0,jsOrderAttachments.data.list.length,...jsOrderAttachments.data.list);
-			ddtableData.splice(0,ddOrderAttachments.data.list.length,...ddOrderAttachments.data.list);
+			// 添加尺码和数量匹配逻辑
+			if (arr.length >= 4) {
+			const sizeValue = arr[3];
+			const quantityValue = arr[4];
+			_sao_baoshu.value = arr[6];
 			
-			_yskskh.value = getSpotLists.data.list //颜色、款式、款号
-			_serial.value = String(getSpotLists.data.serial) //流水号
-			_serial_num.value  = String(getSpotLists.data.serial_num);//序号
-				console.log(_serial_num.value)
-			//获取尺码、制单数/实裁量上面信息
-			const keys1 = [
-				'cm1', 'cm2', 'cm3', 'cm4', 'cm5', 'cm6', 'cm7', 
-				'cm8', 'cm9', 'cm10', 'cm11', 'cm12', 'cm13', 'cm14'
-			];
-			const keys2 = [
-				'cmsl1', 'cmsl2', 'cmsl3', 'cmsl4', 'cmsl5', 'cmsl6', 'cmsl7',
-				'cmsl8', 'cmsl9','cmsl10','cmsl11','cmsl12','cmsl13','cmsl14', 'zdtotal',
-			];
-			const keys3 = [
-				'scsl1', 'scsl2', 'scsl3', 'scsl4', 'scsl5', 'scsl6', 'scsl7', 
-				'scsl8', 'scsl9','scsl10','scsl11','scsl12','scsl13','scsl14', 'sctotal',
-			];
-			//如果搜索是子订单编号
-			if (add_searchInfo.value.includes('-')) {
-				for (let key of keys1) {
-					if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
-						cmformdata[key] = getSpotLists.data.list[key];
-					}
-				}
-				for (let key of keys2) {
-					if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
-						zdslformdata[key] = getSpotLists.data.list[key];
-					}
-				}
-				for (let key of keys3) {
-					if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
-						scslformdata[key] = getSpotLists.data.list[key];
-					}
-				}
-				setTimeout(() => {
-					const inputElement = document.getElementById('sl1');
-					if (inputElement) {
-						inputElement.focus();
-					}
-				}, 100); // 延迟100毫秒
-			} else {
-				for (let key of keys1) {
-					cmformdata[key] = '';
-				}
-				for (let key of keys2) {
-					zdslformdata[key] = '';
+			// 遍历cmformdata找到对应的尺码位置
+			for (let i = 1; i <= 14; i++) {
+				const cmKey = `cm${i}`;
+				const slKey = `sl${i}`;
+				
+				// 如果找到匹配的尺码
+				if (cmformdata[cmKey] === sizeValue) {
+				// 设置对应的上报数量
+				slformdata[slKey] = quantityValue;
+				// 记录自动填充的尺码索引
+				autoFilledSizeIndex.value = i;
+				// 更新合计
+				updateTotal();
+				break;
 				}
 			}
-			updateTotal()
-			// //历史记录
-			// if (getSpotLists.data.headers) {
-				
-			// }
+			}
 		}
-	}
+}
 	
 
 const AttendanceVisible = ref(false)
@@ -791,7 +876,7 @@ const add_Dialog = async () => {
 			return fasle;
 		}
 		if (add_searchInfo.value === '') {
-			warningres('请扫描子订单编号输入数量后,再进行上报')
+			warningres('请输入数量后,再进行上报')
 			return fasle;
 		}
 		//尺码
@@ -823,8 +908,14 @@ const add_Dialog = async () => {
 		_serial_num.value  = String(getSpotLists.data.serial_num);//序号
 		
 		let paramsList = []; // 用于存储每个元素的 cm 和 sl  
-		let serialNumber = parseInt(getSpotLists.data.serial, 10);
-		
+		// 修复变量作用域问题,将声明提升到外部
+			let serialNumber;
+			if(_sao_baoshu.value === ''){
+				serialNumber = parseInt(getSpotLists.data.serial, 10);
+			}else{
+				serialNumber = parseInt(_sao_baoshu.value, 10);
+			}
+			console.log(serialNumber)
 		for (let i = 0; i < resultArrays.length; i++) {
 			if (slArray[i]) {
 				let params = {};
@@ -840,17 +931,15 @@ const add_Dialog = async () => {
 				params.sczl_bh = add_formData['组别'];
 				// 流水号(包数)
 				params.serial = padNumber(serialNumber, 3);
-				//流水号序号
-				// _serial_num.value++;
-				// params.serial_num = _serial_num.value;
-				// params.serial = _serial_num.value;
 				// 流水号序号
 				params.serial_num = serialNumber;
 				paramsList.push(params);
 				serialNumber++;
 			}
 		}
-		console.log("新增报工",paramsList)
+		
+		// console.log("新增报工",paramsList)
+		// return;
 		if (paramsList.length === 0) {
 			warningres('请填写报工尺码数量')
 			return;
@@ -886,7 +975,7 @@ const add_Dialog = async () => {
 			});
 			sizeDatas.splice(0, getSpotLists.data.headers.length, ...getSpotLists.data.headers);
 			add_tableData.splice(0, add_tableData.length, ...getSpotLists.data.records);
-			add_printxp();
+			// add_printxp();
 
 			search.value = '';
 			add_searchInfo.value = ''; 
@@ -1741,4 +1830,15 @@ const warningres = (arr) => {
 	  color: #721c24;
 	  border-color: #f5c6cb;
 	}
+	
+	/* 全局修改 el-progress 的背景颜色 */
+	:deep(.progress-wrapper .el-progress-bar__outer) {
+	  background-color: Orange; /* 自定义背景色 */
+	}
+	/* ▶ 改变进度条中文字的颜色和字体大小 */
+	:deep(.el-progress-bar__innerText) {
+	  color: black !important;
+	  font-size: 20px !important;
+	  font-weight: bold;
+	}
 </style>

+ 9 - 1
src/view/yunyin/shengchanguanli/components/SubOrder.vue

@@ -105,7 +105,15 @@ const progressList = ref([])
 const open = async (ddzbh,gongxu) => {
 	console.log("orderid",ddzbh)
 	console.log("gx",gongxu)
-	orderid.value = ddzbh
+	
+	// 添加逻辑:如果ddzbh包含逗号,则提取逗号前的部分作为子订单编号
+	let subOrderId = ddzbh;
+	if (ddzbh.includes(',')) {
+		subOrderId = ddzbh.split(',')[0];
+	}
+	    
+	console.log("提取到的子订单编号:", subOrderId);
+	orderid.value = subOrderId
 	gx.value = gongxu
 	
 	SubWorkOrderStatusListlog.value = true