zck 5 месяцев назад
Родитель
Сommit
8b36c62a7b
2 измененных файлов с 512 добавлено и 219 удалено
  1. 419 127
      src/view/performance/baozhuangbaogong.vue
  2. 93 92
      src/view/performance/zongjianbaogong.vue

+ 419 - 127
src/view/performance/baozhuangbaogong.vue

@@ -208,6 +208,68 @@
 							
 					  <!-- 表格数据 -->
 					  <el-tabs v-model="activeName">
+						  <br><br>
+						  <!-- <el-tab-pane label="成品完成率"  name="first">
+							<div style="display: flex; align-items: center;">
+								<el-tag type="info" style="width: 40px; height: 40px; margin-right: 10px;"><h2>包数</h2></el-tag>
+								<h2 style="margin: 0 20px 0 0;">白格子图标表示“已有包”</h2>
+								<el-tag type="success" style="width: 40px; height: 40px; margin-right: 10px;"><h2>包数</h2></el-tag>
+								<h2 style="margin: 0 20px 0 0;">绿格子图标表示“已完成包”</h2>
+								<el-tag type="danger" style="width: 40px; height: 40px; margin-right: 10px;"><h2>包数</h2></el-tag>
+								<h2 style="margin: 0;">红格子图标表示“废弃包”</h2>
+							</div>
+
+							<div class="number-container">
+								<div 
+								v-for="(item, index) in Mabaolistform" 
+								:key="index" 
+								:class="getBoxClass(item)">
+								{{ typeof item === 'object' ? item.value : item }}
+								</div>
+							</div>
+							<br>
+
+							<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="first">
 					<el-table
 						ref="multipleTable"
@@ -346,6 +408,88 @@
 				   <el-button type="primary" @click="handleConfirm">确认</el-button>
 				 </div>
 			   </el-dialog>
+
+			   <!-- 订单选择弹窗 -->
+			   <el-dialog 
+    v-model="orderDialogVisible" 
+    title="选择订单" 
+    width="900px"
+    :before-close="() => { orderDialogVisible = false; orderList = []; subOrderList = []; selectedOrder = ''; }">
+    
+    <div style="display: flex; height: 450px;">
+        <!-- 左侧:订单列表 -->
+        <div style="flex: 1; border-right: 1px solid #e0e0e0; padding-right: 10px;">
+            <h4>订单列表 (点击选择)</h4>
+            <div style="height: 400px; overflow-y: auto;">
+				<div 
+            v-for="order in orderList" 
+            :key="order.订单编号"
+            @click="handleOrderSelect(order)"
+            :style="{
+                padding: '12px',
+                margin: '8px 0',
+                borderRadius: '6px',
+                cursor: 'pointer',
+                backgroundColor: selectedOrder === order.订单编号 ? '#e6f7ff' : '#f5f5f5',
+                border: selectedOrder === order.订单编号 ? '1px solid #1890ff' : '1px solid #d9d9d9'
+            }">
+            <div style="font-size: 16px; font-weight: 700; margin-bottom: 6px;">
+                <strong>订单编号:</strong> {{ order.订单编号 }}
+            </div>
+            <div style="font-size: 16px; font-weight: 700; margin-bottom: 6px;">
+                <strong>生产款号:</strong> {{ order.生产款号 }}
+            </div>
+            <div style="font-size: 16px; font-weight: 700;">
+                <strong>款式:</strong> {{ order.款式 }}
+            </div>
+        </div>
+            </div>
+        </div>
+        
+        <!-- 右侧:子订单列表 -->
+		<div style="flex: 1; padding-left: 10px;">
+    <h4 style="font-size: 20px; font-weight: 600;">子订单列表 (点击选择)</h4>
+    <div style="height: 400px; overflow-y: auto;">
+        <div 
+            v-for="subOrder in subOrderList" 
+            :key="subOrder.子订单编号"
+            @click="handleSubOrderDoubleClick(subOrder.子订单编号)"
+            style="
+                padding: 12px;
+                margin: 8px 0;
+                border: 1px solid #d9d9d9;
+                border-radius: 6px;
+                cursor: pointer;
+                background-color: #f9f9f9;
+            "
+            @mouseenter="e => e.target.style.backgroundColor = '#e6f7ff'"
+            @mouseleave="e => e.target.style.backgroundColor = '#f9f9f9'">
+            <div style="font-size: 16px; font-weight: 700; margin-bottom: 6px;">
+                <strong>子订单编号:</strong> {{ subOrder.子订单编号 }}
+            </div>
+            <div style="font-size: 16px; font-weight: 700; margin-bottom: 6px;">
+                <strong>PO号:</strong> {{ subOrder.款号 }}
+            </div>
+            <div style="font-size: 16px; font-weight: 700;">
+                <strong>颜色备注:</strong> {{ subOrder.颜色备注 }}
+            </div>
+        </div>
+        <div v-if="subOrderList.length === 0 && selectedOrder" style="text-align: center; color: #999; margin-top: 50px; font-size: 16px; font-weight: 500;">
+            暂无子订单数据
+        </div>
+        <div v-else-if="!selectedOrder" style="text-align: center; color: #999; margin-top: 50px; font-size: 16px; font-weight: 500;">
+            请先选择左侧订单
+        </div>
+    </div>
+</div>
+    </div>
+    
+    <template #footer>
+        <span class="dialog-footer">
+            <el-button @click="orderDialogVisible = false; orderList = []; subOrderList = []; selectedOrder = '';">取消</el-button>
+        </span>
+    </template>
+</el-dialog>
 			   
 			   <SubOrderPage ref="SubOrderPageRef" />
 			   <PrintPage ref="printPageRef" />
@@ -412,7 +556,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,Apiorderids} from '@/api/mes/job'
+import {getSpotList,search,SubWorkOrderStatusList,getTab,SubOrderProgress,OrderAttachments,getTabByGdbh,processAdd,spotcheckdel,Mabaolist,Apiorder,Apiorderids} from '@/api/mes/job'
 import {getMachineMac} from '@/api/jixiaoguanli/jitairibaobiao'
 import {getMac} from '@/api/jixiaoguanli/baogong'
 import {ElMessage,ElMessageBox} from "element-plus";
@@ -647,135 +791,262 @@ const showPdf = async (row) => {
 	const order_progressList = ref([])
 	
 	const _sao_baoshu = ref('')
-	//查询
-	const add_onSubmit = async () => {
-		if(add_formData['机台号'] === ''){
-			warningres('未获取到机台')
-			return false;
-		}
-		if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
-			const WorkListdata = [];
-			add_tableData.splice(0, add_tableData.length, ...WorkListdata);
-			warningres('请扫描小票二维码')
-			return false;
-		}
-		sizeDatas.length = 0;
-		add_tableData.length = 0;
+
+	const orderDialogVisible = ref(false); // 控制弹窗显示
+const orderList = ref([]); // 存储订单列表
+const subOrderList = ref([]); // 存储子订单列表
+const selectedOrder = ref(''); // 选中的订单
+
+
+//查询按钮
+const add_onSubmit = async() => {
+	if(add_formData['机台号'] === ''){
+		warningres('未获取到机台')
+		return false;
+	}
+	if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
+		const WorkListdata = [];
+		add_tableData.splice(0, add_tableData.length, ...WorkListdata);
+		warningres('请扫描小票二维码')
+		return false;
+	}
+	//清空所有输入框上报数量
+	if (slformdata) {
+			    for (let i = 1; i <= 14; i++) {
+			      slformdata['sl' + i] = '';
+			    }
+			    // 清空总和
+			    slformdata.sctotal = '';
+			  } else {
+			    console.error('未定义');
+			  }
 		
-		//获取报工历史记录
-		const getSpotLists = await getSpotList({order: add_searchInfo.value,code: _code,sys_sbID: add_formData['机台号']});
-		if(getSpotLists.data.code === 1){
-			warningres(getSpotLists.msg);
-			return false;
+
+	// 判断是否为子订单(包含DC并且有-)
+    if (add_searchInfo.value.includes('DC') && add_searchInfo.value.includes('-')) {
+		onseatch(add_searchInfo.value);
+
+    } else {
+        console.log('模糊输入')
+
+        // 调用模糊搜索订单接口
+        const getApiorder = await Apiorder({ search: add_searchInfo.value, code: _code });
+        if (getApiorder.data.code === 1) {
+            warningres(getApiorder.msg);
+            return false;
+        }
+        console.log(getApiorder);
+		if (getApiorder.data.list.length > 0) {
+            // 多条数据,显示弹窗让用户选择
+            orderList.value = getApiorder.data.list;
+            orderDialogVisible.value = true;
+        } else {
+            warningres('未找到相关订单');
+        }
+    }
+
+	
+}
+
+
+//查询搜索
+const onseatch = async (searchval) => {
+
+console.log(6666);
+console.log(searchval);
+add_searchInfo.value = searchval;
+
+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('%', ''))
+}))
+baoshulist(add_searchInfo.value)
+
+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];
 		}
-		
-		//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];
-				}
-			}
-			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] = '';
-			}
+	}
+	for (let key of keys3) {
+		if (getSpotLists.data.list.hasOwnProperty(key)) { // 确保键存在于对象中  
+			scslformdata[key] = getSpotLists.data.list[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(',')
-			
-			// 添加尺码和数量匹配逻辑
-			if (arr.length >= 4) {
-			const sizeValue = arr[3];
-			const quantityValue = arr[4];
-			_sao_baoshu.value = arr[6];
-			
-			// 遍历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;
-				}
-			}
-			}
+	}
+} 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(',')
+	
+	// 添加尺码和数量匹配逻辑
+	if (arr.length >= 4) {
+	const sizeValue = arr[3];
+	const quantityValue = arr[4];
+	_sao_baoshu.value = arr[6];
+	
+	// 遍历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();
+		baoshulist(arr[0]);
+		break;
 		}
+	}
+	}
+}
 }
+
+const multipleTable = ref(null);
+const Mabaolistform = reactive([]);
+const baoshulist = async (order) => {
+	const orderMabaolist = await Mabaolist({ order: order, process:add_formData['工序']});
+	console.log(orderMabaolist);
+	// 初始化所有包的数据,将 chefeng 转换为对象以便标记状态
+	Mabaolistform.splice(
+	0,
+	Mabaolistform.length,
+	...orderMabaolist.data.zong.map((item) => ({ value: item, status: 'default' }))
+	);
+	// 遍历完成包数,将状态标记为 complete
+	orderMabaolist.data.complete.forEach((completed) => {
+	const target = Mabaolistform.find((item) => item.value === completed);
+	if (target) {
+		target.status = 'complete';
+	}
+	});
+	// 遍历废掉包数,将状态标记为 deleted
+	orderMabaolist.data.delete.forEach((deleted) => {
+	const target = Mabaolistform.find((item) => item.value === deleted);
+	if (target) {
+		target.status = 'deleted';
+	}
+	});
+};
+// 动态获取样式类
+const getBoxClass = (item) => {
+	if (item && item.status === 'complete') {
+		return 'number-box green'; // 完成包数
+	} else if (item && item.status === 'deleted') {
+		return 'number-box red'; // 废弃包数
+	}
+		return 'number-box'; // 默认状态
+};
+
+
+// 获取子订单的方法
+const getSubOrders = async (orderNumber) => {
+    try {
+        const response = await Apiorderids({ order: orderNumber, code: _code });
+        if (response.code === 0) {
+            subOrderList.value = response.data.list;
+        } else {
+            warningres('获取子订单失败');
+            subOrderList.value = [];
+        }
+    } catch (error) {
+        console.error('获取子订单错误:', error);
+        warningres('获取子订单时发生错误');
+        subOrderList.value = [];
+    }
+};
+
+// 双击子订单的处理函数
+const handleSubOrderDoubleClick = (subOrderNumber) => {
+    add_searchInfo.value = subOrderNumber;
+	onseatch(add_searchInfo.value);
+    orderDialogVisible.value = false; // 关闭弹窗
+    // 清空临时数据
+    orderList.value = [];
+    subOrderList.value = [];
+    selectedOrder.value = '';
+};
+
+// 选择订单时的处理
+const handleOrderSelect = (order) => {
+    selectedOrder.value = order.订单编号;
+    // 获取该订单的子订单
+    getSubOrders(order.订单编号);
+};
 	
 
 const AttendanceVisible = ref(false)
@@ -802,7 +1073,7 @@ const currentSlValue = ref('')
 
 // 标志变量,用于控制按钮的可点击状态
 let isClickable = true;
-//车缝报工
+//报工
 const add_Dialog = async () => {
     // 如果按钮不可点击,直接返回
     if (!isClickable) {
@@ -931,10 +1202,12 @@ const add_Dialog = async () => {
 			add_tableData.splice(0, add_tableData.length, ...getSpotLists.data.records);
 			// add_printxp();
 
+
+			successres('报工成功')
+			baoshulist(add_searchInfo.value.split(',')[0]);
 			search.value = '';
 			add_searchInfo.value = ''; 
-			successres('报工成功')
-			// 上报成功后 清空所有输入框上报数量
+			//清空所有输入框上报数量
 			  if (slformdata) {
 			    for (let i = 1; i <= 14; i++) {
 			      slformdata['sl' + i] = '';
@@ -1784,6 +2057,25 @@ const warningres = (arr) => {
 	  color: #721c24;
 	  border-color: #f5c6cb;
 	}
+
+	:deep(.number-box.green) {
+	 /* 完成包数(绿色) */
+  background-color: palegreen !important;
+  color: #155724;
+  border-color: #c3e6cb;
+}
+
+:deep(.number-box.red) {
+  background-color: red !important;
+  color: #721c24;
+  border-color: #f5c6cb;
+}
+:deep(.el-table__body .status-plan-usage-low) {
+  background: #ff80ff !important;
+}
+:deep(.el-table__body .status-plan-usage-lows) {
+  background: white !important;
+}
 	
 	/* 全局修改 el-progress 的背景颜色 */
 	:deep(.progress-wrapper .el-progress-bar__outer) {

+ 93 - 92
src/view/performance/zongjianbaogong.vue

@@ -413,63 +413,75 @@
 <el-dialog 
     v-model="orderDialogVisible" 
     title="选择订单" 
-    width="800px"
+    width="900px"
     :before-close="() => { orderDialogVisible = false; orderList = []; subOrderList = []; selectedOrder = ''; }">
     
-    <div style="display: flex; height: 400px;">
+    <div style="display: flex; height: 450px;">
         <!-- 左侧:订单列表 -->
         <div style="flex: 1; border-right: 1px solid #e0e0e0; padding-right: 10px;">
             <h4>订单列表 (点击选择)</h4>
-            <div style="height: 360px; overflow-y: auto;">
-                <div 
-                    v-for="order in orderList" 
-                    :key="order.订单编号"
-                    @click="handleOrderSelect(order)"
-                    :style="{
-                        padding: '8px',
-                        margin: '4px 0',
-                        borderRadius: '4px',
-                        cursor: 'pointer',
-                        backgroundColor: selectedOrder === order.订单编号 ? '#e6f7ff' : '#f5f5f5',
-                        border: selectedOrder === order.订单编号 ? '1px solid #1890ff' : '1px solid #d9d9d9'
-                    }">
-                    <div><strong>订单编号:</strong> {{ order.订单编号 }}</div>
-                    <div><strong>生产款号:</strong> {{ order.生产款号 }}</div>
-                    <div><strong>款式:</strong> {{ order.款式 }}</div>
-                </div>
+            <div style="height: 400px; overflow-y: auto;">
+				<div 
+            v-for="order in orderList" 
+            :key="order.订单编号"
+            @click="handleOrderSelect(order)"
+            :style="{
+                padding: '12px',
+                margin: '8px 0',
+                borderRadius: '6px',
+                cursor: 'pointer',
+                backgroundColor: selectedOrder === order.订单编号 ? '#e6f7ff' : '#f5f5f5',
+                border: selectedOrder === order.订单编号 ? '1px solid #1890ff' : '1px solid #d9d9d9'
+            }">
+            <div style="font-size: 16px; font-weight: 700; margin-bottom: 6px;">
+                <strong>订单编号:</strong> {{ order.订单编号 }}
+            </div>
+            <div style="font-size: 16px; font-weight: 700; margin-bottom: 6px;">
+                <strong>生产款号:</strong> {{ order.生产款号 }}
+            </div>
+            <div style="font-size: 16px; font-weight: 700;">
+                <strong>款式:</strong> {{ order.款式 }}
+            </div>
+        </div>
             </div>
         </div>
         
         <!-- 右侧:子订单列表 -->
-        <div style="flex: 1; padding-left: 10px;">
-            <h4>子订单列表 (双击选择)</h4>
-            <div style="height: 360px; overflow-y: auto;">
-                <div 
-                    v-for="subOrder in subOrderList" 
-                    :key="subOrder.子订单编号"
-                    @dblclick="handleSubOrderDoubleClick(subOrder.子订单编号)"
-                    style="
-                        padding: 8px;
-                        margin: 4px 0;
-                        border: 1px solid #d9d9d9;
-                        border-radius: 4px;
-                        cursor: pointer;
-                        background-color: #f9f9f9;
-                    "
-                    @mouseenter="e => e.target.style.backgroundColor = '#e6f7ff'"
-                    @mouseleave="e => e.target.style.backgroundColor = '#f9f9f9'">
-                    <div><strong>子订单编号:</strong> {{ subOrder.子订单编号 }}</div>
-					<div><strong>PO号:</strong> {{ subOrder.款号 }}</div>
-					<div><strong>颜色备注:</strong> {{ subOrder.颜色备注 }}</div>
-                </div>
-                <div v-if="subOrderList.length === 0 && selectedOrder" style="text-align: center; color: #999; margin-top: 50px;">
-                    暂无子订单数据
-                </div>
-                <div v-else-if="!selectedOrder" style="text-align: center; color: #999; margin-top: 50px;">
-                    请先选择左侧订单
-                </div>
+		<div style="flex: 1; padding-left: 10px;">
+    <h4 style="font-size: 20px; font-weight: 600;">子订单列表 (点击选择)</h4>
+    <div style="height: 400px; overflow-y: auto;">
+        <div 
+            v-for="subOrder in subOrderList" 
+            :key="subOrder.子订单编号"
+            @click="handleSubOrderDoubleClick(subOrder.子订单编号)"
+            style="
+                padding: 12px;
+                margin: 8px 0;
+                border: 1px solid #d9d9d9;
+                border-radius: 6px;
+                cursor: pointer;
+                background-color: #f9f9f9;
+            "
+            @mouseenter="e => e.target.style.backgroundColor = '#e6f7ff'"
+            @mouseleave="e => e.target.style.backgroundColor = '#f9f9f9'">
+            <div style="font-size: 16px; font-weight: 700; margin-bottom: 6px;">
+                <strong>子订单编号:</strong> {{ subOrder.子订单编号 }}
+            </div>
+            <div style="font-size: 16px; font-weight: 700; margin-bottom: 6px;">
+                <strong>PO号:</strong> {{ subOrder.款号 }}
             </div>
+            <div style="font-size: 16px; font-weight: 700;">
+                <strong>颜色备注:</strong> {{ subOrder.颜色备注 }}
+            </div>
+        </div>
+        <div v-if="subOrderList.length === 0 && selectedOrder" style="text-align: center; color: #999; margin-top: 50px; font-size: 16px; font-weight: 500;">
+            暂无子订单数据
         </div>
+        <div v-else-if="!selectedOrder" style="text-align: center; color: #999; margin-top: 50px; font-size: 16px; font-weight: 500;">
+            请先选择左侧订单
+        </div>
+    </div>
+</div>
     </div>
     
     <template #footer>
@@ -766,26 +778,21 @@ const showPdf = async (row) => {
 		}
 		return str;
 	}
-	// 代表扫描两次自动保存
-	// const searcs = ref('')
-	//尺寸列表
-	const sizeDatas = reactive([])
-	//搜索
-	const add_searchInfo = ref('')
-	//技术附件
-	const jstableData = reactive([])
-	const ddtableData = reactive([])
-	const progressList = ref([])
-	const order_progressList = ref([])
-	
-	const _sao_baoshu = ref('')
-
-	const orderDialogVisible = ref(false); // 控制弹窗显示
+//尺寸列表
+const sizeDatas = reactive([])
+//搜索
+const add_searchInfo = ref('')
+//技术附件
+const jstableData = reactive([])
+const ddtableData = reactive([])
+const progressList = ref([])
+const order_progressList = ref([])
+const _sao_baoshu = ref('')
+const orderDialogVisible = ref(false); // 控制弹窗显示
 const orderList = ref([]); // 存储订单列表
 const subOrderList = ref([]); // 存储子订单列表
 const selectedOrder = ref(''); // 选中的订单
 
-
 //查询按钮
 const add_onSubmit = async() => {
 	if(add_formData['机台号'] === ''){
@@ -800,47 +807,41 @@ const add_onSubmit = async() => {
 	}
 	//清空所有输入框上报数量
 	if (slformdata) {
-			    for (let i = 1; i <= 14; i++) {
-			      slformdata['sl' + i] = '';
-			    }
-			    // 清空总和
-			    slformdata.sctotal = '';
-			  } else {
-			    console.error('未定义');
-			  }
+		for (let i = 1; i <= 14; i++) {
+			slformdata['sl' + i] = '';
+		}
+		// 清空总和
+		slformdata.sctotal = '';
+	} else {
+		console.error('未定义');
+	}
 		
-
-	// 判断是否为子订单(包含DC并且有-)
+	// 判断是否为小票二维码数据 或者 子订单编号(包含DC并且有-)
     if (add_searchInfo.value.includes('DC') && add_searchInfo.value.includes('-')) {
 		onseatch(add_searchInfo.value);
 
     } else {
-        console.log('模糊输入')
+        console.log('模糊输入查询订单')
 
-        // 调用模糊搜索订单接口
-        const getApiorder = await Apiorder({ search: add_searchInfo.value, code: _code });
-        if (getApiorder.data.code === 1) {
-            warningres(getApiorder.msg);
-            return false;
-        }
-        console.log(getApiorder);
-		if (getApiorder.data.list.length > 0) {
-            // 多条数据,显示弹窗让用户选择
-            orderList.value = getApiorder.data.list;
-            orderDialogVisible.value = true;
-        } else {
-            warningres('未找到相关订单');
-        }
+	// 调用模糊搜索订单接口
+	const getApiorder = await Apiorder({ search: add_searchInfo.value, code: _code });
+	if (getApiorder.data.code === 1) {
+		warningres(getApiorder.msg);
+		return false;
+	}
+	console.log(getApiorder);
+	if (getApiorder.data.list.length > 0) {
+		// 多条数据,显示弹窗让用户选择
+		orderList.value = getApiorder.data.list;
+		orderDialogVisible.value = true;
+	} else {
+		warningres('未找到相关订单');
+	}
     }
-
-	
 }
 
-
 //查询搜索
 const onseatch = async (searchval) => {
-
-console.log(6666);
 console.log(searchval);
 add_searchInfo.value = searchval;