liuhairui 1 year ago
parent
commit
f1bd64d378

+ 145 - 33
src/view/performance/baozhuangbaogong.vue

@@ -93,48 +93,82 @@
 							>否</el-button>
 					</el-col>
 				</el-row>
-				
+
 				<layout-content >
 					<el-main>
-						<el-row :gutter="24" style="margin-bottom: 15px;margin-left: 0px;">
-							<div @contextmenu.prevent>
-								<el-table ref="multipleTableRef" style="width: 100%;height: 53vh"
-									:row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
-									:cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
-									:data="add_tableData" border row-key="ID" size="small"
-									highlight-current-row="true" tooltip-effect="dark"
-									@row-dblclick="add_updateCompanyFunc" @row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
-									:show-overflow-tooltip="true" @selection-change="add_xpSelectionChange">
-								<!-- <el-table-column type="selection" width="70" /> -->
-								<el-table-column sortable align="left" label="流水号" prop="serial" width="100"/>
-								<el-table-column sortable align="left" label="报工时间" prop="sys_rq" width="160"/>
-								<el-table-column sortable align="left" label="订单编号" prop="订单编号" width="130"/>
-								<el-table-column sortable align="left" label="订单子编号" prop="子订单编号" width="140"/>
-								<!-- <el-table-column sortable align="left" label="款式" prop="款式" width="140"/> -->
-								<el-table-column sortable align="left" label="色系名称" prop="颜色" width="130"/>
-								<el-table-column sortable align="left" label="尺码" prop="尺码" width="110"/>
-								<el-table-column sortable align="left" label="数量" prop="数量" width="110"/>
-								<el-table-column sortable align="left" label="上报数量" prop="上报数量" width="110"/>
-								<el-table-column sortable align="left" label="是否尾包" prop="尾包" width="130"/>
-								<el-table-column sortable align="left" label="组别" prop="组别" width="130"/>
-								</el-table>
-						</div>
+						<el-row :gutter="24" style="margin-bottom: 15px;margin-left: 8px;">
+							<!-- 表格数据 -->
+							  <el-tabs v-model="activeName">
+								<el-tab-pane label="报工历史记录"   @click="showTable('报工历史记录')" name="first">
+									<el-table ref="multipleTableRef" style="width: 100%;height: 53vh"
+										:row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
+										:cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
+										:data="add_tableData" border row-key="ID" size="small"
+										highlight-current-row="true" tooltip-effect="dark"
+										@row-dblclick="add_updateCompanyFunc" @row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
+										:show-overflow-tooltip="true" @selection-change="add_xpSelectionChange">
+									<!-- <el-table-column type="selection" width="70" /> -->
+									<el-table-column sortable align="left" label="流水号" prop="serial" width="100"/>
+									<el-table-column sortable align="left" label="报工时间" prop="sys_rq" width="160"/>
+									<el-table-column sortable align="left" label="订单编号" prop="订单编号" width="130"/>
+									<el-table-column sortable align="left" label="订单子编号" prop="子订单编号" width="140"/>
+									<!-- <el-table-column sortable align="left" label="款式" prop="款式" width="140"/> -->
+									<el-table-column sortable align="left" label="色系名称" prop="颜色" width="130"/>
+									<el-table-column sortable align="left" label="尺码" prop="尺码" width="110"/>
+									<el-table-column sortable align="left" label="数量" prop="数量" width="110"/>
+									<el-table-column sortable align="left" label="上报数量" prop="上报数量" width="110"/>
+									<el-table-column sortable align="left" label="是否尾包" prop="尾包" width="130"/>
+									<el-table-column sortable align="left" label="组别" prop="组别" width="130"/>
+									</el-table>
+								</el-tab-pane>
+								
+							  <el-tab-pane label="技术附件" @click="showTable('技术附件')" name="fourth">
+								<el-table ref="multipleTable"
+										  :row-style="{ height: '20px' }"
+										  :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+										  :header-cell-style="{ padding: '0px' }"
+										  :show-overflow-tooltip="true"
+										  :cell-class-name="planUsageCellClass"
+										  highlight-current-row="true"
+										  @row-dblclick="ExcelShow"
+										  style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="jstableData" row-key="ID" @selection-change="handleSelectionChange">
+								  <!-- <el-table-column type="selection" width="55" /> -->
+								  <el-table-column align="left" label="备注" prop="附件备注"  width="120"/>
+								  <el-table-column align="left" label="文件类型" prop="附件类型"  width="120"/>
+								  <el-table-column align="left" label="关联产品" prop="关联编号"  width="120"/>
+								  <el-table-column align="left" label="建档用户" prop="sys_id"  width="120"/>
+								  <el-table-column align="left" label="建档时间" prop="sys_rq"  width="160"/>
+								  <el-table-column align="left" label="更新时间" prop="mod_rq"  width="120"/>
+								  </el-table>
+								</el-tab-pane>
+							</el-tabs>
 						</el-row>
 					</el-main>
 				</layout-content>
 					<div class="dialog-footer" style="text-align: left;margin-right: 60px;">
-						<el-button type="primary" @click="add_Dialog" id="add_Dialog"	:disabled="add_Dialogonclick === false"  style="width: 110px;height: 60px;font-size: 20px; margin-left: 20px;">确认</el-button>
+						<el-button type="primary" @click="add_Dialog" id="add_Dialog"	:disabled="add_Dialogonclick === false"  style="width: 110px;height: 60px;font-size: 20px;margin-left: 20px;">确认</el-button>
 						<el-button type="primary" @click="gd_yulan" 	 style="width: 100px;height: 60px;font-size: 20px;">工单预览</el-button>
 					</div>
 			</div>
 		  <!-- </el-main> -->
 		</layout-content>
 	  </layout>
+	  <!-- 技术附件预览弹窗 -->
+	  <el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
+	    <div id="luckyexcel" style="width: 100%;height: 100vh;"></div>
+	  </el-dialog>
+	  
 	  <PrintPage ref="printPageRef" />
 	</div>
   </template>
 <script>
 export default {
+	data() {
+	  return {
+			currentTable: '', // 当前展示的表格
+			activeName: 'first',
+	  };
+	}, 
 	methods: {
     handleKeyDown(event, prevId, currentId, nextId) {
       const currentElement = document.getElementById(currentId);
@@ -178,10 +212,13 @@ export default {
 </script>
 <script setup>
 // 全量引入格式化工具 请按需保留
+import $script from 'scriptjs'
+import $ from 'jquery';
+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,getTab} from '@/api/mes/job'
+import {getSpotList,search,getTab,OrderAttachments} from '@/api/mes/job'
 import {getMachineMac} from '@/api/jixiaoguanli/jitairibaobiao'
 import {getMac} from '@/api/jixiaoguanli/baogong'
 import PrintPage from '../yunyin/shengchanguanli/components/print.vue';
@@ -212,9 +249,11 @@ const UniqId = ref('')
 const _gx = '7'
 //全局获取工序名称
 const _gxmc = '包装'
+
+
 //物理地址获取机台编号
 const getMachineMacdata = async () => {
-  console.log("包装机台获取物理地址",Machine.value)
+  console.log(_code,"机台获取物理地址",Machine.value)
   try {
     const data  = await getMachineMac({sys_sbID:Machine.value});
 	add_formData['机台号'] = data.data['机台号']
@@ -271,17 +310,26 @@ const activeButtonValue = ref('')
 //代表扫描两次自动保存
 const searcs = ref('')
 const _order = ref('')
-//查询询钮
+//技术附件
+const jstableData = reactive([])
+	
+//查询按钮
 const add_onSubmit = async ()=>{
   if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
     const WorkListdata = [];
     add_tableData.splice(0,add_tableData.length,...WorkListdata);
 	ElMessage({type: 'warning',message: '请扫描小票二维码' })
   }else{
-	add_formData['尺码'] = ''
-	add_formData['总数量'] = ''
-	add_formData['剩余数量'] = ''
-	add_formData['上报数量'] = ''
+	  //订单编号 获取 技术附件数据Excel
+	  const searchValue = add_searchInfo.value.split('-')[0];
+	  const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
+	  console.log(jsOrderAttachments)
+	  jstableData.splice(0,jsOrderAttachments.data.length,...jsOrderAttachments.data);
+	  
+		add_formData['尺码'] = ''
+		add_formData['总数量'] = ''
+		add_formData['剩余数量'] = ''
+		add_formData['上报数量'] = ''
 	// if(searcs.value === ''){
 		 _order.value = add_searchInfo.value;
 		 const sys_sbID = add_formData['机台号']
@@ -297,7 +345,7 @@ const add_onSubmit = async ()=>{
 		 add_searchInfo.value = ''
 		 setTimeout(() => {
 		const inputElement = document.getElementById('sbsl');
-		if (inputElement) {
+		if (add_formData['剩余数量']) {
 			inputElement.focus();		
 		}
 	}, 100); // 延迟100毫秒
@@ -307,6 +355,70 @@ const add_onSubmit = async ()=>{
 	// }
   }
 }
+
+//技术资料excel展示
+const ExcelShow = (row) =>{
+	console.log("技术资料excel展示")
+	console.log(row)
+	if(!row.附件内容) return
+	$.getScript('/luckysheet/plugins/js/plugin.js', () => {
+		$script('/luckysheet/luckysheet.umd.js', () => {
+					function dataURLtoBlob(dataUrl) {
+					    const byteString = atob(dataUrl.split(',')[1]);
+					    const ab = new ArrayBuffer(byteString.length);
+					    const ia = new Uint8Array(ab);
+
+					    for (let i = 0; i < byteString.length; i++) {
+					        ia[i] = byteString.charCodeAt(i);
+					    }
+
+					    return new Blob([ab], { type: 'application/octet-stream' });
+					}
+
+					const blob = dataURLtoBlob(row.附件内容);
+					luckyexcelVisible.value = true
+					LuckyExcel.transformExcelToLucky(blob, function(exportJson, luckysheetfile){
+						if(exportJson.sheets==null || exportJson.sheets.length==0){
+							alert("Failed to read the content of the excel file, currently does not support xls files!");
+							return;
+						}
+						if(luckyExcel) luckyExcel.destroy();
+						luckysheet.create({
+							container: 'luckyexcel', //容器的ID
+							data: exportJson.sheets,
+							title: exportJson.info.name, // 工作簿名称
+							lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
+							showtoolbar: false, // 是否显示工具栏
+							showinfobar: false, // 是否显示顶部信息栏
+							allowEdit: false, // 是否允许前台编辑
+							enableAddRow: false, // 允许增加行
+							enableAddCol: false, // 允许增加列
+							userInfo: false, // 右上角的用户信息展示样式
+							showRowBar: false, // 是否显示行号区域
+							showColumnBar: false, // 是否显示列号区域
+							sheetFormulaBar: false, // 是否显示公式栏
+							enableAddBackTop: false,//返回头部按钮
+						});
+						luckyExcel = luckysheet;
+					})
+		})
+	})
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
+
+}
+
+let luckyExcel = null
+
+const luckyexcelVisible = ref(false)
+const luckyexcelCloseDialog = () => {
+  luckyexcelVisible.value = false
+}	
+
+
+
 const AttendanceVisible=ref(false)
 //清空对象的属性值
 const gd_clearFormData = () => {

+ 196 - 71
src/view/performance/caiqiebaogong.vue

@@ -75,16 +75,16 @@
 					
 					<el-row :gutter="0">
 						<el-col :span="2.5"><el-text style="font-size: 30px;margin-left: 10px;">新增实裁数</el-text></el-col>
-						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs1" @input="updateTotal" id="scs1" readonly style="width: 65px;height: 40px;" /></el-col>
-						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs2" @input="updateTotal" id="scs2" readonly style="width: 65px;height: 40px;" /></el-col>
-						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs3" @input="updateTotal" id="scs3" readonly style="width: 65px;height: 40px;" /></el-col>
-						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs4" @input="updateTotal" id="scs4" readonly style="width: 65px;height: 40px;" /></el-col>
-						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs5" @input="updateTotal" id="scs5" readonly style="width: 65px;height: 40px;" /></el-col>
-						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs6" @input="updateTotal" id="scs6" readonly style="width: 65px;height: 40px;" /></el-col>
-						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs7" @input="updateTotal" id="scs7" readonly style="width: 65px;height: 40px;" /></el-col>
-						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs8" @input="updateTotal" id="scs8" readonly style="width: 65px;height: 40px;" /></el-col>
-						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs9" @input="updateTotal" id="scs9" readonly style="width: 65px;height: 40px;" /></el-col>
-						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs10" @input="updateTotal" id="scs10" readonly style="width: 65px;height: 40px;" /></el-col>
+						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs1" @input="updateTotal" id="scs1"  style="width: 65px;height: 40px;" /></el-col>
+						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs2" @input="updateTotal" id="scs2"  style="width: 65px;height: 40px;" /></el-col>
+						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs3" @input="updateTotal" id="scs3"  style="width: 65px;height: 40px;" /></el-col>
+						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs4" @input="updateTotal" id="scs4"  style="width: 65px;height: 40px;" /></el-col>
+						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs5" @input="updateTotal" id="scs5"  style="width: 65px;height: 40px;" /></el-col>
+						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs6" @input="updateTotal" id="scs6"  style="width: 65px;height: 40px;" /></el-col>
+						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs7" @input="updateTotal" id="scs7"  style="width: 65px;height: 40px;" /></el-col>
+						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs8" @input="updateTotal" id="scs8"  style="width: 65px;height: 40px;" /></el-col>
+						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs9" @input="updateTotal" id="scs9"  style="width: 65px;height: 40px;" /></el-col>
+						<el-col :span="1" style="padding-right: 5px;margin-right: 11px;"><el-input v-model="scsformdata.scs10" @input="updateTotal" id="scs10"  style="width: 65px;height: 40px;" /></el-col>
 						<el-col :span="1"><el-input v-model="scsformdata.sctotal" id="sctotal" readonly style="width: 65px;height: 40px;" /></el-col>
 						
 						<el-button type="primary" @click="add_Dialog"
@@ -92,45 +92,82 @@
 						<el-button type="primary" @click="gd_yulan"
 							style="width: 100px;height: 60px;font-size: 20px;margin: 0px 0 0 15px">工单预览</el-button>
 					</el-row>
-		      
-				<el-row :gutter="24" style="margin-bottom: 15px;">
-					<el-table ref="multipleTable" style="width: 100%;height: 52vh" tooltip-effect="dark"
-                      :row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
-                      :cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
-                      :data="add_tableData"  border row-key="ID"
-                      size="small" 
-                      highlight-current-row="true" @row-dblclick="updateCompanyFunc"
-                      @row-click="tableRowClick" :show-overflow-tooltip="true"
-                      @selection-change="handleSelectionChange">
-			  <!-- <el-table-column type="selection" width="55" /> -->
-			  <el-table-column  sortable  align="center" label="订单编号" prop="订单编号" width="120"/>
-              <el-table-column  sortable align="left" label="订单子编号" prop="子订单编号"  width="130"/>
-              <el-table-column  sortable  align="left" label="生产款号" prop="生产款号" width="120" />
-              <el-table-column  sortable  align="left" label="款式" prop="款式" width="110" />
-              <el-table-column  sortable  align="left" label="色系名称" prop="颜色" width="110"  />
-              <el-table-column  sortable  align="left" label="制单总数" prop="zdtotal" width="110" />
-              <el-table-column  sortable  align="left" label="实裁总数" prop="sctotal" width="110" />
-              <el-table-column  sortable  align="left" label="单位" prop="单位" width="80" />
-			  <el-table-column  sortable  align="left" label="日期" prop="Sys_rq" width="160" />
-              <el-table-column  sortable  align="left" label="验片人" prop="Sys_id" width="130" />
-            </el-table>
-			</el-row>
-
+					
+		      <el-main>
+					<!-- 表格数据 -->
+					  <el-tabs v-model="activeName">
+						<el-tab-pane label="报工历史记录"   @click="showTable('报工历史记录')" name="first">
+							<el-table ref="multipleTable" style="width: 100%;height: 52vh" tooltip-effect="dark"
+							          :row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
+							          :cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
+							          :data="add_tableData"  border row-key="ID"
+							          size="small" 
+							          highlight-current-row="true" @row-dblclick="updateCompanyFunc"
+							          @row-click="tableRowClick" :show-overflow-tooltip="true"
+							          @selection-change="handleSelectionChange">
+									  <!-- <el-table-column type="selection" width="55" /> -->
+									  <el-table-column  sortable  align="center" label="订单编号" prop="订单编号" width="120"/>
+									  <el-table-column  sortable align="left" label="订单子编号" prop="子订单编号"  width="130"/>
+									  <el-table-column  sortable  align="left" label="款号" prop="款号" width="120" />
+									  <el-table-column  sortable  align="left" label="款式" prop="款式" width="100" />
+									  <el-table-column  sortable  align="left" label="色系名称" prop="颜色" width="108"  />
+									  
+									  <el-table-column v-for="item in sizeDatas" :key="item" align="center" :label="item"
+										:prop="item" width="100" :cell-style="cellStyle">
+										<template v-slot="scope">
+											<div 
+												style="margin-left: -5px;width: 80px;"
+												@click="handleSizeClick(scope.$index, item, scope.row)">
+												{{ scope.row[item] }}
+											</div>
+										</template>
+										</el-table-column>
+										
+									  <el-table-column  sortable  align="left" label="制单总数" prop="zdtotal" width="108" />
+									  <el-table-column  sortable  align="left" label="实裁总数" prop="sctotal" width="110" />
+									  <!-- <el-table-column  sortable  align="left" label="单位" prop="单位" width="80" /> -->
+									  <el-table-column  sortable  align="left" label="日期" prop="Sys_rq" width="160" />
+									  <!-- <el-table-column  sortable  align="left" label="验片人" prop="Sys_id" width="130" /> -->
+							</el-table>
+						</el-tab-pane>
+					
+					  <el-tab-pane label="技术附件" @click="showTable('技术附件')" name="fourth">
+					  	<el-table ref="multipleTable"
+								  :row-style="{ height: '20px' }"
+								  :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+								  :header-cell-style="{ padding: '0px' }"
+								  :show-overflow-tooltip="true"
+								  :cell-class-name="planUsageCellClass"
+								  highlight-current-row="true"
+								  @row-dblclick="ExcelShow"
+								  style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="jstableData" row-key="ID" @selection-change="handleSelectionChange">
+						  <!-- <el-table-column type="selection" width="55" /> -->
+					      <el-table-column align="left" label="备注" prop="附件备注"  width="120"/>
+					      <el-table-column align="left" label="文件类型" prop="附件类型"  width="120"/>
+					      <el-table-column align="left" label="关联产品" prop="关联编号"  width="120"/>
+					      <el-table-column align="left" label="建档用户" prop="sys_id"  width="120"/>
+					      <el-table-column align="left" label="建档时间" prop="sys_rq"  width="160"/>
+					      <el-table-column align="left" label="更新时间" prop="mod_rq"  width="120"/>
+					      </el-table>
+					    </el-tab-pane>
+					</el-tabs>
+</el-main>
 			</div>
-  
-			  <!-- 是否订单尾包确认弹窗 -->
-			   <el-dialog v-model="DialogVisible" title="是否订单尾包" destroy-on-close width="30%" style="top: 20%;">
-				  <h3>请再次确认是否该订单产品已全部报工,该批为订单尾包?</h3>
-				 <div class="dialog-footer" style="text-align: right;">
-					 <el-button @click="confirmDialogVisible">取消</el-button>
-					 <el-button type="primary" @click="handleConfirm">确认</el-button>
-				 </div>
-			   </el-dialog>
-  
-         <el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
-			  <div id="luckyexcel" style="width: 100%;height: 100vh;"></div>
-			</el-dialog>
-
+			
+				<!-- 是否订单尾包确认弹窗 -->
+				<el-dialog v-model="DialogVisible" title="是否订单尾包" destroy-on-close width="30%" style="top: 20%;">
+					<h3>请再次确认是否该订单产品已全部报工,该批为订单尾包?</h3>
+					<div class="dialog-footer" style="text-align: right;">
+						<el-button @click="confirmDialogVisible">取消</el-button>
+						<el-button type="primary" @click="handleConfirm">确认</el-button>
+					</div>
+				</el-dialog>
+				
+				<!-- 查看技术附件弹窗 -->
+				<el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
+					<div id="luckyexcel" style="width: 100%;height: 100vh;"></div>
+				</el-dialog>
+				
         </layout-content>
       </layout>
 
@@ -142,11 +179,13 @@
 export default {
   data() {
     return {
-      dialogFormVisible: false,
-      formDataTest: {
-        imageUrl: '' // 添加一个字段来保存上传的图片路径
-      },
-      rule: {} // 初始化rule对象
+		currentTable: '', // 当前展示的表格
+		activeName: 'first',
+		dialogFormVisible: false,
+		formDataTest: {
+		imageUrl: '' // 添加一个字段来保存上传的图片路径
+		},
+		rule: {} // 初始化rule对象
     };
   }, 
   methods: {
@@ -192,9 +231,13 @@ export default {
 </script>
 <script setup>
 // 全量引入格式化工具 请按需保留
+import $script from 'scriptjs'
+import $ from 'jquery';
+import LuckyExcel from 'luckyexcel';
+
 import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
 import {ref, reactive} from 'vue';
-import {getSpotList,getInfo,} from '@/api/mes/job';
+import {getSpotList,getInfo,OrderAttachments} from '@/api/mes/job';
 import {getMachineMac} from '@/api/jixiaoguanli/jitairibaobiao'
 import {getMac} from '@/api/jixiaoguanli/baogong'
 import {ElMessage} from "element-plus";
@@ -203,7 +246,6 @@ defineOptions({name: 'Company'})
 const printPageRef = ref()
 const add_searchInfo = ref('')
 
-
 //全局获取code,接口接收code
 const _code = '裁切'
 //全局接口接受的物理地址
@@ -221,12 +263,12 @@ const getMachineMacdata = async () => {
 	add_formData['工序'] = data.data['生产工序']
 	add_formData['组别'] = data.data['组别']
 	add_formData['人员'] = data.data['组长']
-  setTimeout(() => {
-				const inputElement = document.getElementById('searchInput');
-				if (inputElement) {
-					inputElement.focus();		
-				}
-			}, 100); // 延迟100毫秒
+	setTimeout(() => {
+		const inputElement = document.getElementById('searchInput');
+		if (inputElement) {
+			inputElement.focus();		
+		}
+	}, 100); // 延迟100毫秒
   } catch (error) {
     console.error(error)
   }
@@ -274,6 +316,9 @@ const seconds = String(today.getSeconds()).padStart(2, '0');
 const currentDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
 const currentDates = `${year}-${month}-${day}`;
 
+//技术附件
+
+
 const add_formData = reactive({
   机台号: '',	
   工序: '',
@@ -341,34 +386,51 @@ function updateTotal() {
   scsformdata.sctotal = values.reduce((sum, value) => sum + value, 0);  
 }  
 
-const add_tableData = ref([]);
+const add_tableData = reactive([]);
 const _order = ref('');
 const _UniqId = ref('');
+//尺寸列表
+const sizeDatas = reactive([])
+//技术附件
+const jstableData = reactive([])
 
 //点击【查询】按钮
 const add_onSubmit = async ()=>{
-  if (!add_searchInfo.value.startsWith('DC')) {  
-    // 如果没有以"DC"开头,则添加前缀  
-    add_searchInfo.value = 'DC' + add_searchInfo.value;  
-  }  
+  sizeDatas.length = 0;
+  
   if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
     const WorkListdata = [];
     add_tableData.splice(0,add_tableData.length,...WorkListdata);
       ElMessage({type: 'warning',message: '搜索内容不能为空' })
   }else{
-    const order =add_searchInfo.value;
+	if (!add_searchInfo.value.startsWith('DC')) {
+		// 如果没有以"DC"开头,自动补充添加DC 
+		add_searchInfo.value = 'DC' + add_searchInfo.value;  
+	} 
+	//订单编号 获取 技术附件数据Excel
+	const searchValue = add_searchInfo.value.split('-')[0];
+	const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
+	console.log(jsOrderAttachments)
+	jstableData.splice(0,jsOrderAttachments.data.length,...jsOrderAttachments.data);
+	
+	
+	
 	_order.value =add_searchInfo.value;
-    const getSpotLists = await getSpotList({order:order,code:'裁切'});
+    const getSpotLists = await getSpotList({order:_order.value,code:'裁切'});
+	
     if(getSpotLists.data.total === 0){
       ElMessage({type: 'warning',message: '请先出库此订单再使用裁切报工' })
       return false
     }
+	
 	console.log(getSpotLists)
-	add_tableData.value = getSpotLists.data.data;
-  _UniqId.value = getSpotLists.data.list[0].UniqId
+	sizeDatas.splice(0, getSpotLists.data.headers.length, ...getSpotLists.data.headers); //表格尺码数据
+	add_tableData.splice(0, add_tableData.length, ...getSpotLists.data.table); //表格数据
+	
+	_UniqId.value = getSpotLists.data.list[0].UniqId
 	const keys1 = ['cm1', 'cm2', 'cm3', 'cm4','cm5','cm6','cm7','cm8','cm9','cm10',];
 	const keys2 = ['cmsl1', 'cmsl2', 'cmsl3', 'cmsl4','cmsl5','cmsl6','cmsl7','cmsl8','cmsl9','cmsl10','zdtotal',];
-	if(order.includes('-')){
+	if(_order.value.includes('-')){
 		for (let key of keys1) {  
 			if (getSpotLists.data.list[0].hasOwnProperty(key)) { // 确保键存在于对象中  
 				cmformdata[key] = getSpotLists.data.list[0][key];  
@@ -402,6 +464,69 @@ const add_onSubmit = async ()=>{
   }
 };
 
+
+//技术资料excel展示
+const ExcelShow = (row) =>{
+	console.log("技术资料excel展示")
+	console.log(row)
+	if(!row.附件内容) return
+	$.getScript('/luckysheet/plugins/js/plugin.js', () => {
+		$script('/luckysheet/luckysheet.umd.js', () => {
+					function dataURLtoBlob(dataUrl) {
+					    const byteString = atob(dataUrl.split(',')[1]);
+					    const ab = new ArrayBuffer(byteString.length);
+					    const ia = new Uint8Array(ab);
+
+					    for (let i = 0; i < byteString.length; i++) {
+					        ia[i] = byteString.charCodeAt(i);
+					    }
+
+					    return new Blob([ab], { type: 'application/octet-stream' });
+					}
+
+					const blob = dataURLtoBlob(row.附件内容);
+					luckyexcelVisible.value = true
+					LuckyExcel.transformExcelToLucky(blob, function(exportJson, luckysheetfile){
+						if(exportJson.sheets==null || exportJson.sheets.length==0){
+							alert("Failed to read the content of the excel file, currently does not support xls files!");
+							return;
+						}
+						if(luckyExcel) luckyExcel.destroy();
+						luckysheet.create({
+							container: 'luckyexcel', //容器的ID
+							data: exportJson.sheets,
+							title: exportJson.info.name, // 工作簿名称
+							lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
+							showtoolbar: false, // 是否显示工具栏
+							showinfobar: false, // 是否显示顶部信息栏
+							allowEdit: false, // 是否允许前台编辑
+							enableAddRow: false, // 允许增加行
+							enableAddCol: false, // 允许增加列
+							userInfo: false, // 右上角的用户信息展示样式
+							showRowBar: false, // 是否显示行号区域
+							showColumnBar: false, // 是否显示列号区域
+							sheetFormulaBar: false, // 是否显示公式栏
+							enableAddBackTop: false,//返回头部按钮
+						});
+						luckyExcel = luckysheet;
+					})
+		})
+	})
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
+
+}
+
+let luckyExcel = null
+
+const luckyexcelVisible = ref(false)
+const luckyexcelCloseDialog = () => {
+  luckyexcelVisible.value = false
+}
+
+
 //表格行点击
 const tableRowClick = async (row)=>{
   add_searchInfo.value = row.子订单编号

+ 126 - 17
src/view/performance/chafengbaogong.vue

@@ -134,18 +134,18 @@
 							style="width: 100px;height: 60px;font-size: 20px;margin: 0px 0 0 15px">打印预览</el-button>
 					</el-row>
 				
-					<hr>
-					<el-row :gutter="24" style="margin-bottom: 15px;margin-left: 0px;">
-						<el-main>
-							<div @contextmenu.prevent>
-								<el-table ref="multipleTableRef" style="width:100%; height: 40vh" tooltip-effect="dark"
-									:row-style="{ height: '40px' }"
-									:header-cell-style="{ padding: '5px', fontSize: '20px' }"
-									:cell-style="{ padding: '10px', fontSize: '20px' }"
-									:header-row-style="{ height: '20px' }" :data="add_tableData" border row-key="ID"
-									size="small" highlight-current-row="true" @row-dblclick="add_updateCompanyFunc"
-									@row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
-									:show-overflow-tooltip="true" @selection-change="add_xpSelectionChange">
+					
+							<!-- 表格数据 -->
+							  <el-tabs v-model="activeName">
+								<el-tab-pane label="报工历史记录"   @click="showTable('报工历史记录')" name="first">
+									<el-table ref="multipleTable" style="width: 100%;height: 52vh" tooltip-effect="dark"
+									          :row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
+									          :cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
+									          :data="add_tableData"  border row-key="ID"
+									          size="small" 
+									          highlight-current-row="true" @row-dblclick="updateCompanyFunc"
+									          @row-click="tableRowClick" :show-overflow-tooltip="true"
+									          @selection-change="handleSelectionChange">
 									<!-- <el-table-column type="selection" width="50" /> -->
 									<el-table-column v-slot="scope" align="left" label="操作" width="150">
 										<el-button type="primary" @click="add_bdprintxp(scope.row)"
@@ -178,10 +178,32 @@
 									<el-table-column v-slot="scope" align="left" label="流水号" width="150">
 										<div>{{ scope.row.serial }}</div>
 									</el-table-column>
-								</el-table>
-							</div>
-						</el-main>
+									</el-table>
+								</el-tab-pane>
+							
+							  <el-tab-pane label="技术附件" @click="showTable('技术附件')" name="fourth">
+							  	<el-table ref="multipleTable"
+										  :row-style="{ height: '20px' }"
+										  :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+										  :header-cell-style="{ padding: '0px' }"
+										  :show-overflow-tooltip="true"
+										  :cell-class-name="planUsageCellClass"
+										  highlight-current-row="true"
+										  @row-dblclick="ExcelShow"
+										  style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="jstableData" row-key="ID" @selection-change="handleSelectionChange">
+								  <!-- <el-table-column type="selection" width="55" /> -->
+							      <el-table-column align="left" label="备注" prop="附件备注"  width="120"/>
+							      <el-table-column align="left" label="文件类型" prop="附件类型"  width="120"/>
+							      <el-table-column align="left" label="关联产品" prop="关联编号"  width="120"/>
+							      <el-table-column align="left" label="建档用户" prop="sys_id"  width="120"/>
+							      <el-table-column align="left" label="建档时间" prop="sys_rq"  width="160"/>
+							      <el-table-column align="left" label="更新时间" prop="mod_rq"  width="120"/>
+							      </el-table>
+							    </el-tab-pane>
+							</el-tabs>
 					</el-row>
+					
+
 				</div>
 
 			   <!-- 是否订单尾包确认弹窗 -->
@@ -192,6 +214,11 @@
 				   <el-button type="primary" @click="handleConfirm">确认</el-button>
 				 </div>
 			   </el-dialog>
+			   
+			   <!-- 技术附件预览弹窗 -->
+			   <el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
+			     <div id="luckyexcel" style="width: 100%;height: 100vh;"></div>
+			   </el-dialog>
 				   
 			</layout-content>
 		</layout>
@@ -199,6 +226,12 @@
 </template>
 <script>
 	export default {
+		data() {
+		  return {
+				currentTable: '', // 当前展示的表格
+				activeName: 'first',
+		  };
+		}, 
 		methods: {
 			handleKeyDown(event, prevId, currentId, nextId) {
 				const currentElement = document.getElementById(currentId);
@@ -242,6 +275,10 @@
 </script>
 <script setup>
 	// 全量引入格式化工具 请按需保留
+	import $script from 'scriptjs'
+	import $ from 'jquery';
+	import LuckyExcel from 'luckyexcel';
+	
 	import {
 		Layout,
 		LayoutSider,
@@ -260,7 +297,8 @@
 	import {
 		getSpotList,
 		search,
-		getTab
+		getTab,
+		OrderAttachments
 	} from '@/api/mes/job'
 	import {
 		getMachineMac
@@ -450,9 +488,11 @@
 	const searcs = ref('')
 	//尺寸列表
 	const sizeDatas = reactive([])
-
 	//搜索
 	const add_searchInfo = ref('')
+	//技术附件
+	const jstableData = reactive([])
+	
 	//查询事件
 	const add_onSubmit = async () => {
 		sizeDatas.length = 0;
@@ -483,6 +523,14 @@
 				})
 				return false;
 			}
+			
+			//订单编号 获取 技术附件数据Excel
+			const searchValue = add_searchInfo.value.split('-')[0];
+			const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
+			console.log(jsOrderAttachments)
+			jstableData.splice(0,jsOrderAttachments.data.length,...jsOrderAttachments.data);
+			
+			
 			_yskskh.value = getSpotLists.data.list[0] //颜色、款式、款号
 			_serial.value = getSpotLists.data.serial //流水号
 			_serial_num.value = getSpotLists.data.serial_num //序号
@@ -536,6 +584,66 @@
 		}
 	}
 
+//技术资料excel展示
+const ExcelShow = (row) =>{
+	console.log("技术资料excel展示")
+	console.log(row)
+	if(!row.附件内容) return
+	$.getScript('/luckysheet/plugins/js/plugin.js', () => {
+		$script('/luckysheet/luckysheet.umd.js', () => {
+					function dataURLtoBlob(dataUrl) {
+					    const byteString = atob(dataUrl.split(',')[1]);
+					    const ab = new ArrayBuffer(byteString.length);
+					    const ia = new Uint8Array(ab);
+
+					    for (let i = 0; i < byteString.length; i++) {
+					        ia[i] = byteString.charCodeAt(i);
+					    }
+
+					    return new Blob([ab], { type: 'application/octet-stream' });
+					}
+
+					const blob = dataURLtoBlob(row.附件内容);
+					luckyexcelVisible.value = true
+					LuckyExcel.transformExcelToLucky(blob, function(exportJson, luckysheetfile){
+						if(exportJson.sheets==null || exportJson.sheets.length==0){
+							alert("Failed to read the content of the excel file, currently does not support xls files!");
+							return;
+						}
+						if(luckyExcel) luckyExcel.destroy();
+						luckysheet.create({
+							container: 'luckyexcel', //容器的ID
+							data: exportJson.sheets,
+							title: exportJson.info.name, // 工作簿名称
+							lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
+							showtoolbar: false, // 是否显示工具栏
+							showinfobar: false, // 是否显示顶部信息栏
+							allowEdit: false, // 是否允许前台编辑
+							enableAddRow: false, // 允许增加行
+							enableAddCol: false, // 允许增加列
+							userInfo: false, // 右上角的用户信息展示样式
+							showRowBar: false, // 是否显示行号区域
+							showColumnBar: false, // 是否显示列号区域
+							sheetFormulaBar: false, // 是否显示公式栏
+							enableAddBackTop: false,//返回头部按钮
+						});
+						luckyExcel = luckysheet;
+					})
+		})
+	})
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
+
+}
+
+let luckyExcel = null
+
+const luckyexcelVisible = ref(false)
+const luckyexcelCloseDialog = () => {
+  luckyexcelVisible.value = false
+}	
 
 	const AttendanceVisible = ref(false)
 
@@ -1330,6 +1438,7 @@ const confirmDialogVisible = () => {
 		}
 	}
 
+	//点击显示表格高亮
 	function isCellHighlighted(rowIndex, item) {
 		return highlightedCells.value.some(hc => hc.rowIndex === rowIndex && hc.item === item);
 	}

+ 142 - 31
src/view/performance/datangbaogong.vue

@@ -96,29 +96,52 @@
 
 				<layout-content >
 					<el-main>
-						<el-row :gutter="24" style="margin-bottom: 15px;margin-left: 0px;">
-							<div @contextmenu.prevent>
-								<el-table ref="multipleTableRef" style="width: 100%;height: 53vh"
-									:row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
-									:cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
-									:data="add_tableData" border row-key="ID" size="small"
-									highlight-current-row="true" tooltip-effect="dark"
-									@row-dblclick="add_updateCompanyFunc" @row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
-									:show-overflow-tooltip="true" @selection-change="add_xpSelectionChange">
-								<!-- <el-table-column type="selection" width="70" /> -->
-								<el-table-column sortable align="left" label="流水号" prop="serial" width="100"/>
-								<el-table-column sortable align="left" label="报工时间" prop="sys_rq" width="160"/>
-								<el-table-column sortable align="left" label="订单编号" prop="订单编号" width="130"/>
-								<el-table-column sortable align="left" label="订单子编号" prop="子订单编号" width="140"/>
-								<!-- <el-table-column sortable align="left" label="款式" prop="款式" width="140"/> -->
-								<el-table-column sortable align="left" label="色系名称" prop="颜色" width="130"/>
-								<el-table-column sortable align="left" label="尺码" prop="尺码" width="110"/>
-								<el-table-column sortable align="left" label="数量" prop="数量" width="110"/>
-								<el-table-column sortable align="left" label="上报数量" prop="上报数量" width="110"/>
-								<el-table-column sortable align="left" label="是否尾包" prop="尾包" width="130"/>
-								<el-table-column sortable align="left" label="组别" prop="组别" width="130"/>
-								</el-table>
-						</div>
+						<el-row :gutter="24" style="margin-bottom: 15px;margin-left: 8px;">
+							<!-- 表格数据 -->
+							  <el-tabs v-model="activeName">
+								<el-tab-pane label="报工历史记录"   @click="showTable('报工历史记录')" name="first">
+									<el-table ref="multipleTableRef" style="width: 100%;height: 53vh"
+										:row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
+										:cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
+										:data="add_tableData" border row-key="ID" size="small"
+										highlight-current-row="true" tooltip-effect="dark"
+										@row-dblclick="add_updateCompanyFunc" @row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
+										:show-overflow-tooltip="true" @selection-change="add_xpSelectionChange">
+									<!-- <el-table-column type="selection" width="70" /> -->
+									<el-table-column sortable align="left" label="流水号" prop="serial" width="100"/>
+									<el-table-column sortable align="left" label="报工时间" prop="sys_rq" width="160"/>
+									<el-table-column sortable align="left" label="订单编号" prop="订单编号" width="130"/>
+									<el-table-column sortable align="left" label="订单子编号" prop="子订单编号" width="140"/>
+									<!-- <el-table-column sortable align="left" label="款式" prop="款式" width="140"/> -->
+									<el-table-column sortable align="left" label="色系名称" prop="颜色" width="130"/>
+									<el-table-column sortable align="left" label="尺码" prop="尺码" width="110"/>
+									<el-table-column sortable align="left" label="数量" prop="数量" width="110"/>
+									<el-table-column sortable align="left" label="上报数量" prop="上报数量" width="110"/>
+									<el-table-column sortable align="left" label="是否尾包" prop="尾包" width="130"/>
+									<el-table-column sortable align="left" label="组别" prop="组别" width="130"/>
+									</el-table>
+								</el-tab-pane>
+								
+							  <el-tab-pane label="技术附件" @click="showTable('技术附件')" name="fourth">
+								<el-table ref="multipleTable"
+										  :row-style="{ height: '20px' }"
+										  :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+										  :header-cell-style="{ padding: '0px' }"
+										  :show-overflow-tooltip="true"
+										  :cell-class-name="planUsageCellClass"
+										  highlight-current-row="true"
+										  @row-dblclick="ExcelShow"
+										  style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="jstableData" row-key="ID" @selection-change="handleSelectionChange">
+								  <!-- <el-table-column type="selection" width="55" /> -->
+								  <el-table-column align="left" label="备注" prop="附件备注"  width="120"/>
+								  <el-table-column align="left" label="文件类型" prop="附件类型"  width="120"/>
+								  <el-table-column align="left" label="关联产品" prop="关联编号"  width="120"/>
+								  <el-table-column align="left" label="建档用户" prop="sys_id"  width="120"/>
+								  <el-table-column align="left" label="建档时间" prop="sys_rq"  width="160"/>
+								  <el-table-column align="left" label="更新时间" prop="mod_rq"  width="120"/>
+								  </el-table>
+								</el-tab-pane>
+							</el-tabs>
 						</el-row>
 					</el-main>
 				</layout-content>
@@ -130,11 +153,22 @@
 		  <!-- </el-main> -->
 		</layout-content>
 	  </layout>
+	  <!-- 技术附件预览弹窗 -->
+	  <el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
+	    <div id="luckyexcel" style="width: 100%;height: 100vh;"></div>
+	  </el-dialog>
+	  
 	  <PrintPage ref="printPageRef" />
 	</div>
   </template>
 <script>
 export default {
+	data() {
+	  return {
+			currentTable: '', // 当前展示的表格
+			activeName: 'first',
+	  };
+	}, 
 	methods: {
     handleKeyDown(event, prevId, currentId, nextId) {
       const currentElement = document.getElementById(currentId);
@@ -178,10 +212,13 @@ export default {
 </script>
 <script setup>
 // 全量引入格式化工具 请按需保留
+import $script from 'scriptjs'
+import $ from 'jquery';
+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,getTab} from '@/api/mes/job'
+import {getSpotList,search,getTab,OrderAttachments} from '@/api/mes/job'
 import {getMachineMac} from '@/api/jixiaoguanli/jitairibaobiao'
 import {getMac} from '@/api/jixiaoguanli/baogong'
 import PrintPage from '../yunyin/shengchanguanli/components/print.vue';
@@ -213,9 +250,10 @@ const _gx = '5'
 //全局获取工序名称
 const _gxmc = '大烫'
 
+
 //物理地址获取机台编号
 const getMachineMacdata = async () => {
-  console.log("大烫机台获取物理地址",Machine.value)
+  console.log(_code,"机台获取物理地址",Machine.value)
   try {
     const data  = await getMachineMac({sys_sbID:Machine.value});
 	add_formData['机台号'] = data.data['机台号']
@@ -272,17 +310,26 @@ const activeButtonValue = ref('')
 //代表扫描两次自动保存
 const searcs = ref('')
 const _order = ref('')
-//查询询钮
+//技术附件
+const jstableData = reactive([])
+	
+//查询按钮
 const add_onSubmit = async ()=>{
   if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
     const WorkListdata = [];
     add_tableData.splice(0,add_tableData.length,...WorkListdata);
 	ElMessage({type: 'warning',message: '请扫描小票二维码' })
   }else{
-	add_formData['尺码'] = ''
-	add_formData['总数量'] = ''
-	add_formData['剩余数量'] = ''
-	add_formData['上报数量'] = ''
+	  //订单编号 获取 技术附件数据Excel
+	  const searchValue = add_searchInfo.value.split('-')[0];
+	  const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
+	  console.log(jsOrderAttachments)
+	  jstableData.splice(0,jsOrderAttachments.data.length,...jsOrderAttachments.data);
+	  
+		add_formData['尺码'] = ''
+		add_formData['总数量'] = ''
+		add_formData['剩余数量'] = ''
+		add_formData['上报数量'] = ''
 	// if(searcs.value === ''){
 		 _order.value = add_searchInfo.value;
 		 const sys_sbID = add_formData['机台号']
@@ -298,7 +345,7 @@ const add_onSubmit = async ()=>{
 		 add_searchInfo.value = ''
 		 setTimeout(() => {
 		const inputElement = document.getElementById('sbsl');
-		if (inputElement) {
+		if (add_formData['剩余数量']) {
 			inputElement.focus();		
 		}
 	}, 100); // 延迟100毫秒
@@ -308,6 +355,70 @@ const add_onSubmit = async ()=>{
 	// }
   }
 }
+
+//技术资料excel展示
+const ExcelShow = (row) =>{
+	console.log("技术资料excel展示")
+	console.log(row)
+	if(!row.附件内容) return
+	$.getScript('/luckysheet/plugins/js/plugin.js', () => {
+		$script('/luckysheet/luckysheet.umd.js', () => {
+					function dataURLtoBlob(dataUrl) {
+					    const byteString = atob(dataUrl.split(',')[1]);
+					    const ab = new ArrayBuffer(byteString.length);
+					    const ia = new Uint8Array(ab);
+
+					    for (let i = 0; i < byteString.length; i++) {
+					        ia[i] = byteString.charCodeAt(i);
+					    }
+
+					    return new Blob([ab], { type: 'application/octet-stream' });
+					}
+
+					const blob = dataURLtoBlob(row.附件内容);
+					luckyexcelVisible.value = true
+					LuckyExcel.transformExcelToLucky(blob, function(exportJson, luckysheetfile){
+						if(exportJson.sheets==null || exportJson.sheets.length==0){
+							alert("Failed to read the content of the excel file, currently does not support xls files!");
+							return;
+						}
+						if(luckyExcel) luckyExcel.destroy();
+						luckysheet.create({
+							container: 'luckyexcel', //容器的ID
+							data: exportJson.sheets,
+							title: exportJson.info.name, // 工作簿名称
+							lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
+							showtoolbar: false, // 是否显示工具栏
+							showinfobar: false, // 是否显示顶部信息栏
+							allowEdit: false, // 是否允许前台编辑
+							enableAddRow: false, // 允许增加行
+							enableAddCol: false, // 允许增加列
+							userInfo: false, // 右上角的用户信息展示样式
+							showRowBar: false, // 是否显示行号区域
+							showColumnBar: false, // 是否显示列号区域
+							sheetFormulaBar: false, // 是否显示公式栏
+							enableAddBackTop: false,//返回头部按钮
+						});
+						luckyExcel = luckysheet;
+					})
+		})
+	})
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
+
+}
+
+let luckyExcel = null
+
+const luckyexcelVisible = ref(false)
+const luckyexcelCloseDialog = () => {
+  luckyexcelVisible.value = false
+}	
+
+
+
 const AttendanceVisible=ref(false)
 //清空对象的属性值
 const gd_clearFormData = () => {

+ 139 - 31
src/view/performance/houdaoshougong.vue

@@ -93,34 +93,55 @@
 							>否</el-button>
 					</el-col>
 				</el-row>
-				
-				
 
 				<layout-content >
 					<el-main>
-						<el-row :gutter="24" style="margin-bottom: 15px;margin-left: 0px;">
-							<div @contextmenu.prevent>
-								<el-table ref="multipleTableRef" style="width: 100%;height: 53vh"
-									:row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
-									:cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
-									:data="add_tableData" border row-key="ID" size="small"
-									highlight-current-row="true" tooltip-effect="dark"
-									@row-dblclick="add_updateCompanyFunc" @row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
-									:show-overflow-tooltip="true" @selection-change="add_xpSelectionChange">
-								<!-- <el-table-column type="selection" width="70" /> -->
-								<el-table-column sortable align="left" label="流水号" prop="serial" width="100"/>
-								<el-table-column sortable align="left" label="报工时间" prop="sys_rq" width="160"/>
-								<el-table-column sortable align="left" label="订单编号" prop="订单编号" width="130"/>
-								<el-table-column sortable align="left" label="订单子编号" prop="子订单编号" width="140"/>
-								<!-- <el-table-column sortable align="left" label="款式" prop="款式" width="140"/> -->
-								<el-table-column sortable align="left" label="色系名称" prop="颜色" width="130"/>
-								<el-table-column sortable align="left" label="尺码" prop="尺码" width="110"/>
-								<el-table-column sortable align="left" label="数量" prop="数量" width="110"/>
-								<el-table-column sortable align="left" label="上报数量" prop="上报数量" width="110"/>
-								<el-table-column sortable align="left" label="是否尾包" prop="尾包" width="130"/>
-								<el-table-column sortable align="left" label="组别" prop="组别" width="130"/>
-								</el-table>
-						</div>
+						<el-row :gutter="24" style="margin-bottom: 15px;margin-left: 8px;">
+							<!-- 表格数据 -->
+							  <el-tabs v-model="activeName">
+								<el-tab-pane label="报工历史记录"   @click="showTable('报工历史记录')" name="first">
+									<el-table ref="multipleTableRef" style="width: 100%;height: 53vh"
+										:row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
+										:cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
+										:data="add_tableData" border row-key="ID" size="small"
+										highlight-current-row="true" tooltip-effect="dark"
+										@row-dblclick="add_updateCompanyFunc" @row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
+										:show-overflow-tooltip="true" @selection-change="add_xpSelectionChange">
+									<!-- <el-table-column type="selection" width="70" /> -->
+									<el-table-column sortable align="left" label="流水号" prop="serial" width="100"/>
+									<el-table-column sortable align="left" label="报工时间" prop="sys_rq" width="160"/>
+									<el-table-column sortable align="left" label="订单编号" prop="订单编号" width="130"/>
+									<el-table-column sortable align="left" label="订单子编号" prop="子订单编号" width="140"/>
+									<!-- <el-table-column sortable align="left" label="款式" prop="款式" width="140"/> -->
+									<el-table-column sortable align="left" label="色系名称" prop="颜色" width="130"/>
+									<el-table-column sortable align="left" label="尺码" prop="尺码" width="110"/>
+									<el-table-column sortable align="left" label="数量" prop="数量" width="110"/>
+									<el-table-column sortable align="left" label="上报数量" prop="上报数量" width="110"/>
+									<el-table-column sortable align="left" label="是否尾包" prop="尾包" width="130"/>
+									<el-table-column sortable align="left" label="组别" prop="组别" width="130"/>
+									</el-table>
+								</el-tab-pane>
+								
+							  <el-tab-pane label="技术附件" @click="showTable('技术附件')" name="fourth">
+								<el-table ref="multipleTable"
+										  :row-style="{ height: '20px' }"
+										  :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+										  :header-cell-style="{ padding: '0px' }"
+										  :show-overflow-tooltip="true"
+										  :cell-class-name="planUsageCellClass"
+										  highlight-current-row="true"
+										  @row-dblclick="ExcelShow"
+										  style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="jstableData" row-key="ID" @selection-change="handleSelectionChange">
+								  <!-- <el-table-column type="selection" width="55" /> -->
+								  <el-table-column align="left" label="备注" prop="附件备注"  width="120"/>
+								  <el-table-column align="left" label="文件类型" prop="附件类型"  width="120"/>
+								  <el-table-column align="left" label="关联产品" prop="关联编号"  width="120"/>
+								  <el-table-column align="left" label="建档用户" prop="sys_id"  width="120"/>
+								  <el-table-column align="left" label="建档时间" prop="sys_rq"  width="160"/>
+								  <el-table-column align="left" label="更新时间" prop="mod_rq"  width="120"/>
+								  </el-table>
+								</el-tab-pane>
+							</el-tabs>
 						</el-row>
 					</el-main>
 				</layout-content>
@@ -132,11 +153,22 @@
 		  <!-- </el-main> -->
 		</layout-content>
 	  </layout>
+	  <!-- 技术附件预览弹窗 -->
+	  <el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
+	    <div id="luckyexcel" style="width: 100%;height: 100vh;"></div>
+	  </el-dialog>
+	  
 	  <PrintPage ref="printPageRef" />
 	</div>
   </template>
 <script>
 export default {
+	data() {
+	  return {
+			currentTable: '', // 当前展示的表格
+			activeName: 'first',
+	  };
+	}, 
 	methods: {
     handleKeyDown(event, prevId, currentId, nextId) {
       const currentElement = document.getElementById(currentId);
@@ -180,10 +212,13 @@ export default {
 </script>
 <script setup>
 // 全量引入格式化工具 请按需保留
+import $script from 'scriptjs'
+import $ from 'jquery';
+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,getTab} from '@/api/mes/job'
+import {getSpotList,search,getTab,OrderAttachments} from '@/api/mes/job'
 import {getMachineMac} from '@/api/jixiaoguanli/jitairibaobiao'
 import {getMac} from '@/api/jixiaoguanli/baogong'
 import PrintPage from '../yunyin/shengchanguanli/components/print.vue';
@@ -218,7 +253,7 @@ const _gxmc = '后道收样'
 
 //物理地址获取机台编号
 const getMachineMacdata = async () => {
-  console.log("后道机台获取物理地址",Machine.value)
+  console.log(_code,"机台获取物理地址",Machine.value)
   try {
     const data  = await getMachineMac({sys_sbID:Machine.value});
 	add_formData['机台号'] = data.data['机台号']
@@ -275,6 +310,9 @@ const activeButtonValue = ref('')
 //代表扫描两次自动保存
 const searcs = ref('')
 const _order = ref('')
+//技术附件
+const jstableData = reactive([])
+	
 //查询按钮
 const add_onSubmit = async ()=>{
   if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
@@ -282,10 +320,16 @@ const add_onSubmit = async ()=>{
     add_tableData.splice(0,add_tableData.length,...WorkListdata);
 	ElMessage({type: 'warning',message: '请扫描小票二维码' })
   }else{
-	add_formData['尺码'] = ''
-	add_formData['总数量'] = ''
-	add_formData['剩余数量'] = ''
-	add_formData['上报数量'] = ''
+	  //订单编号 获取 技术附件数据Excel
+	  const searchValue = add_searchInfo.value.split('-')[0];
+	  const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
+	  console.log(jsOrderAttachments)
+	  jstableData.splice(0,jsOrderAttachments.data.length,...jsOrderAttachments.data);
+	  
+		add_formData['尺码'] = ''
+		add_formData['总数量'] = ''
+		add_formData['剩余数量'] = ''
+		add_formData['上报数量'] = ''
 	// if(searcs.value === ''){
 		 _order.value = add_searchInfo.value;
 		 const sys_sbID = add_formData['机台号']
@@ -311,6 +355,70 @@ const add_onSubmit = async ()=>{
 	// }
   }
 }
+
+//技术资料excel展示
+const ExcelShow = (row) =>{
+	console.log("技术资料excel展示")
+	console.log(row)
+	if(!row.附件内容) return
+	$.getScript('/luckysheet/plugins/js/plugin.js', () => {
+		$script('/luckysheet/luckysheet.umd.js', () => {
+					function dataURLtoBlob(dataUrl) {
+					    const byteString = atob(dataUrl.split(',')[1]);
+					    const ab = new ArrayBuffer(byteString.length);
+					    const ia = new Uint8Array(ab);
+
+					    for (let i = 0; i < byteString.length; i++) {
+					        ia[i] = byteString.charCodeAt(i);
+					    }
+
+					    return new Blob([ab], { type: 'application/octet-stream' });
+					}
+
+					const blob = dataURLtoBlob(row.附件内容);
+					luckyexcelVisible.value = true
+					LuckyExcel.transformExcelToLucky(blob, function(exportJson, luckysheetfile){
+						if(exportJson.sheets==null || exportJson.sheets.length==0){
+							alert("Failed to read the content of the excel file, currently does not support xls files!");
+							return;
+						}
+						if(luckyExcel) luckyExcel.destroy();
+						luckysheet.create({
+							container: 'luckyexcel', //容器的ID
+							data: exportJson.sheets,
+							title: exportJson.info.name, // 工作簿名称
+							lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
+							showtoolbar: false, // 是否显示工具栏
+							showinfobar: false, // 是否显示顶部信息栏
+							allowEdit: false, // 是否允许前台编辑
+							enableAddRow: false, // 允许增加行
+							enableAddCol: false, // 允许增加列
+							userInfo: false, // 右上角的用户信息展示样式
+							showRowBar: false, // 是否显示行号区域
+							showColumnBar: false, // 是否显示列号区域
+							sheetFormulaBar: false, // 是否显示公式栏
+							enableAddBackTop: false,//返回头部按钮
+						});
+						luckyExcel = luckysheet;
+					})
+		})
+	})
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
+
+}
+
+let luckyExcel = null
+
+const luckyexcelVisible = ref(false)
+const luckyexcelCloseDialog = () => {
+  luckyexcelVisible.value = false
+}	
+
+
+
 const AttendanceVisible=ref(false)
 //清空对象的属性值
 const gd_clearFormData = () => {

+ 699 - 880
src/view/performance/yuangongrigongzi.vue

@@ -1,933 +1,752 @@
 <template>
-  <div>
-    <!-- 左侧树形结构 -->
-    <el-container>
-      <!-- <el-aside width="250px">
-        <div class="JKWTree-tree-rgz">
-          <h3>包装工序产量维护</h3>
-          <el-tree :data="treeData" :props="defaultProps" highlight-current="true"
-            @node-click="handleNodeClick"></el-tree>
-        </div>
-      </el-aside> -->
+	<div>
+	  <layout>
+		  <layout-content >
+		  <!-- <el-main> -->
+			<div class="gva-table-box">
+				<h1 id="title" style="margin: 0%;margin-bottom: 10px;">总检报工</h1>
+				<el-row :gutter="10" style="align-items: center; margin-bottom: 20px;">
+					<!-- 子订单编号输入框 -->
+					<el-col :span="4"  style="padding: 0px;margin: 0px;">
+					  <el-input v-model="add_searchInfo" placeholder="请扫描子订单编号"@keyup.enter="add_onSubmit" id="searchInput" style="width: 100%; height: 50px;"/>
+					</el-col>
+				
+					<!-- 查询按钮 -->
+					<el-col :span="1.5"  style="padding: 0px;margin: 0px;">
+					  <el-button type="primary" icon="search" @click="add_onSubmit"style="height: 50px;width: 80px;">查询</el-button>
+					</el-col>
+				
+					<el-col :span="1.5" style="padding: 0px;margin: 0px;">
+					  <el-text style="font-size: 30px;">机台号</el-text>
+					</el-col>
+					<!-- 机台号输入框 -->
+					<el-col :span="2"><el-input v-model="add_formData['机台号']" readonly style="width: 100%; height: 40px;"/></el-col>
+				   
+					<el-col :span="1.5" style="padding: 0px;margin: 0px;">
+						<el-text style="font-size: 30px;">工序</el-text>
+					</el-col>
+					<!-- 工序输入框 -->
+					<el-col :span="2"><el-input v-model="add_formData['工序']"  readonly  style="width: 100%; height: 40px;" /></el-col>
+				
+					<el-col :span="1.5" style="padding: 0px;margin: 0px;">
+						<el-text style="font-size: 30px;">组别</el-text>
+					</el-col>
+					<!-- 组别输入框 -->
+					<el-col :span="2"><el-input v-model="add_formData['组别']" readonly  style="width: 100%; height: 40px;" /></el-col>
+				
+					<el-col :span="1.5" style="padding: 0px;margin: 0px;">
+						<el-text style="font-size: 30px;">人员</el-text>
+					</el-col>
+					<!-- 人员输入框 -->
+					<el-col :span="2"><el-input v-model="add_formData['人员']" readonly style="width: 100%; height: 40px;"/></el-col>
+				</el-row>
+				
+				<el-row :gutter="10" style="align-items: center; margin-bottom: 20px;">
+					<el-col :span="1.5" style="padding: 0px;margin: 0px;">
+						<el-text style="font-size: 30px;">尺码</el-text>
+					</el-col>
+					<!-- 尺码输入框 -->
+					<el-col :span="2"><el-input v-model="add_formData['尺码']" readonly style="width: 100%; height: 40px;"/></el-col>
+					
+					<el-col :span="1.5" style="padding: 0px;margin: 0px;">
+						<el-text style="font-size: 30px;">总数量</el-text>
+					</el-col>
+					<!-- 总数量输入框 -->
+					<el-col :span="2"><el-input v-model="add_formData['总数量']" readonly style="width: 100%; height: 40px;"/></el-col>
+					
+					<el-col :span="1.5" style="padding: 0px;margin: 0px;">
+						<el-text style="font-size: 30px;">剩余数量</el-text>
+					</el-col>
+					<!--剩余数量输入框 -->
+					<el-col :span="2"><el-input v-model="add_formData['剩余数量']" readonly style="width: 100%; height: 40px;"/></el-col>
+						
+					<el-col :span="1.5" style="padding: 0px;margin: 0px;">
+						<el-text style="font-size: 30px;">上报数量</el-text>
+					</el-col>
+					<!--上报数量输入框 -->
+					<el-col :span="2"><el-input v-model="add_formData['上报数量']" readonly style="width: 100%; height: 40px;"/></el-col>
+						
+				
+					<!-- 是否尾包文本 -->
+					<el-col :span="2.5">
+					  <el-text style="font-size: 30px;">是否尾包</el-text>
+					</el-col>
+										
+					<!-- 是否尾包按钮 -->
+					<el-col :span="1">
+						<el-button
+							:class="{'info-button': activeButtonValue === '1', 'default-button': activeButtonValue !== '1'}"
+							style="margin-top:-6px; margin-right:15px; height: 50px; width: 60px; 
+							display: flex; justify-content: center; align-items: center; cursor: not-allowed; border: 1px solid #ccc;
+							 border-radius: 4px; color: #000000; font-size: 24px;"    
+							:style="{ backgroundColor: activeButtonValue === '1' ? '#ff0000' : '#808080' }"
+							>是</el-button>
+					</el-col>
+					
+					<el-col :span="1">
+						<el-button 
+							:class="{'info-button': activeButtonValue === '0', 'default-button': activeButtonValue !== '0'}"
+							style="margin-top:-6px; height: 50px; width: 60px; margin-left: 10px;
+							display: flex; justify-content: center; align-items: center; cursor: not-allowed; border: 1px solid #ccc; 
+							border-radius: 4px; color: #000000; font-size: 24px;"    
+							:style="{ backgroundColor: activeButtonValue === '0' ? '#ff0000' : '#808080' }"
+							>否</el-button>
+					</el-col>
+				</el-row>
+
+				<layout-content >
+					<el-main>
+						<el-row :gutter="24" style="margin-bottom: 15px;margin-left: 8px;">
+							<!-- 表格数据 -->
+							  <el-tabs v-model="activeName">
+								<el-tab-pane label="报工历史记录"   @click="showTable('报工历史记录')" name="first">
+									<el-table ref="multipleTableRef" style="width: 100%;height: 53vh"
+										:row-style="{ height: '50px' }" :header-cell-style="{ padding: '5px', fontSize: '20px' }"
+										:cell-style="{ padding: '10px', fontSize: '20px' }" :header-row-style="{ height: '20px' }"
+										:data="add_tableData" border row-key="ID" size="small"
+										highlight-current-row="true" tooltip-effect="dark"
+										@row-dblclick="add_updateCompanyFunc" @row-click="add_tableRowClick" @row-contextmenu="handleRightClick"
+										:show-overflow-tooltip="true" @selection-change="add_xpSelectionChange">
+									<!-- <el-table-column type="selection" width="70" /> -->
+									<el-table-column sortable align="left" label="流水号" prop="serial" width="100"/>
+									<el-table-column sortable align="left" label="报工时间" prop="sys_rq" width="160"/>
+									<el-table-column sortable align="left" label="订单编号" prop="订单编号" width="130"/>
+									<el-table-column sortable align="left" label="订单子编号" prop="子订单编号" width="140"/>
+									<!-- <el-table-column sortable align="left" label="款式" prop="款式" width="140"/> -->
+									<el-table-column sortable align="left" label="色系名称" prop="颜色" width="130"/>
+									<el-table-column sortable align="left" label="尺码" prop="尺码" width="110"/>
+									<el-table-column sortable align="left" label="数量" prop="数量" width="110"/>
+									<el-table-column sortable align="left" label="上报数量" prop="上报数量" width="110"/>
+									<el-table-column sortable align="left" label="是否尾包" prop="尾包" width="130"/>
+									<el-table-column sortable align="left" label="组别" prop="组别" width="130"/>
+									</el-table>
+								</el-tab-pane>
+								
+							  <el-tab-pane label="技术附件" @click="showTable('技术附件')" name="fourth">
+								<el-table ref="multipleTable"
+										  :row-style="{ height: '20px' }"
+										  :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+										  :header-cell-style="{ padding: '0px' }"
+										  :show-overflow-tooltip="true"
+										  :cell-class-name="planUsageCellClass"
+										  highlight-current-row="true"
+										  @row-dblclick="ExcelShow"
+										  style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="jstableData" row-key="ID" @selection-change="handleSelectionChange">
+								  <!-- <el-table-column type="selection" width="55" /> -->
+								  <el-table-column align="left" label="备注" prop="附件备注"  width="120"/>
+								  <el-table-column align="left" label="文件类型" prop="附件类型"  width="120"/>
+								  <el-table-column align="left" label="关联产品" prop="关联编号"  width="120"/>
+								  <el-table-column align="left" label="建档用户" prop="sys_id"  width="120"/>
+								  <el-table-column align="left" label="建档时间" prop="sys_rq"  width="160"/>
+								  <el-table-column align="left" label="更新时间" prop="mod_rq"  width="120"/>
+								  </el-table>
+								</el-tab-pane>
+							</el-tabs>
+						</el-row>
+					</el-main>
+				</layout-content>
+					<div class="dialog-footer" style="text-align: left;margin-right: 60px;">
+						<el-button type="primary" @click="add_Dialog" id="add_Dialog"	:disabled="add_Dialogonclick === false"  style="width: 110px;height: 60px;font-size: 20px;margin-left: 20px;">确认</el-button>
+						<el-button type="primary" @click="gd_yulan" 	 style="width: 100px;height: 60px;font-size: 20px;">工单预览</el-button>
+					</div>
+			</div>
+		  <!-- </el-main> -->
+		</layout-content>
+	  </layout>
+	  <!-- 技术附件预览弹窗 -->
+	  <el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
+	    <div id="luckyexcel" style="width: 100%;height: 100vh;"></div>
+	  </el-dialog>
 	  
-	  <layout-sider
-	    :resize-directions="['right']"
-	    :width="180"
-	    style="margin-right: 10px;"
-	  >
-	    <div
-	      class="JKWTree-tree-rgz"
-	      style="height: 70vh;"
-	    >
-	      <h3>员工日工资查询</h3>
-	      <el-tree
-	        :data="treeData"
-	        highlight-current
-	        @node-click="handleNodeClick"
-	      />
-	    </div>
-	  </layout-sider>
-
-      <el-container>
-        <el-main>
-          <!-- 按钮区域 -->
-          <div class="gva-table-box">
-            <div class="gva-btn-list">
-              <el-row :span="6">
-                <el-input v-model="searchInfo" placeholder="输入员工编号或姓名缩写"  @keyup.enter.native="onSearch" />
-              </el-row>
-              <el-button type="primary"  :icon="Search" class="bt" @click="onSearch">搜索</el-button>
-              <!-- <el-button type="primary" :icon="Refresh">重置</el-button> -->
-			  <!-- <el-button type="primary" :icon="Search" class="bt" @click="onposition">定位</el-button> -->
-			  <!-- <el-button type="primary" :icon="Search">查改</el-button> -->
-			  <el-button type="primary"  class="bt" @click="handlePrint">员工计件明细</el-button>
-              <div style="margin-left: auto;">
-                <el-button type="primary" :icon="Download" class="bt" @click="exportExcel">导出到Excel(汇总)</el-button>
-				<el-button type="primary" :icon="Download" class="bt" @click="exportExcel2">导出到Excel(明细)</el-button>
-              </div>
-            </div>
-            <!-- 数据展示 -->
-            <el-table ref="multipleTable" style="width: 100%;height: 40vh;" tooltip-effect="dark" :data="tableData" row-key="ID" 
-              highlight-current-row="true" border @selection-change="handleSelectionChange" :show-overflow-tooltip="true"
-			   :row-style="{ height: '20px' }" 
-			   :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
-			   :header-cell-style="{ padding: '0px' }" 
-			   @row-click="ontable" @row-dblclick="doubleClick">
-              <el-table-column type="selection" width="40" />
-			  <el-table-column
-			    v-for="column in tableCols1"
-			    :key="column.prop"
-			    :prop="column.prop"
-			    :label="column.label"
-			    :width="column.width"
-			    show-overflow-tooltip="true"
-			  				sortable
-			  />  
-            </el-table>
-            <!-- 分页 -->
-            <!-- <div class="gva-pagination">
-              <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="limit"
-                :page-sizes="[10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange"
-                @size-change="handleSizeChange" />
-            </div> -->
-          </div>
-		  
-		  
-		  <div class="gva-table-box">
-		    <!-- 数据展示 -->
-		    <el-table ref="multipleTable2" class="lower-table" style="width: 100%;height: 40vh;" tooltip-effect="dark" :data="tableData2" row-key="ID"
-		      highlight-current-row="true" border 
-			  :row-style="{ height: '20px' }"
-			  :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
-			  :header-cell-style="{ padding: '0px' }"
-			  @selection-change="handleSelectionChange" 
-			  :show-overflow-tooltip="true" 
-			  @row-dblclick="doubleClick">
-		      <el-table-column type="selection" width="40" />
-		  	  <el-table-column
-		  	    v-for="column in tableCols2"
-		  	    :key="column.prop"
-		  	    :prop="column.prop"
-		  	    :label="column.label"
-		  	    :width="column.width"
-		  	    :fixed="column.fixed"
-		  	    show-overflow-tooltip="true"
-		  	  				sortable
-		  	  />
-		    </el-table>
-		    <!-- 分页 -->
-		    <!-- <div class="gva-pagination">
-		      <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="limit"
-		        :page-sizes="[10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange"
-		        @size-change="handleSizeChange" />
-		    </div> -->
-		  </div>
-          <!-- 弹出框 -->
-          <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type === 'create' ? '添加' : '修改'"
-            destroy-on-close width="1200px">
-            <!-- <el-scrollbar height="500px"> -->
-            <el-form :model="formData" label-position="left" ref="elFormRef" :rules="rule">
-
-              <el-row :gutter="20">
-
-                <el-col :span="6">
-                  <el-form-item label="日期" prop="name">
-                    <el-row :gutter="20">
-                      <el-col :span="12">
-                        <el-input v-model="formData.code" :clearable="true" placeholder="ZT01733" />
-                      </el-col>
-                    </el-row>
-                  </el-form-item>
-                </el-col>
-              </el-row>
-
-                            <!-- 标题栏 -->
-                            <el-row :gutter="10">
-                              <el-col :span="3">
-                                <span>工单编号</span>
-                              </el-col>
-                              <el-col :span="3">
-                                <span>印件工序</span>
-                              </el-col>
-                              <el-col :span="3">
-                                <span>工序名称</span>
-                              </el-col>
-                              <el-col :span="9">
-                                <span>印件名称</span>
-                              </el-col>
-                              <el-col :span="2">
-                                <span>包装产量</span>
-                              </el-col>
-							  <el-col :span="2">
-							    <span>每箱数量</span>
-							  </el-col>
-							  <el-col :span="2">
-							    <span>零头</span>
-							  </el-col>
-                            </el-row>
-              
-                            <!-- 员工1 -->
-                            <el-row :gutter="5" style="margin-top: 10px;">
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
-                              </el-col>
-                              <el-col :span="9">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
-                              </el-col>
-                              <el-col :span="2">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-                              </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-                            </el-row>
-              
-                            <!-- 员工2 -->
-                            <el-row :gutter="5" style="margin-top: 10px;">
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
-                              </el-col>
-                              <el-col :span="9">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
-                              </el-col>
-                              <el-col :span="2">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-                              </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-                            </el-row>
-              
-                            <!-- 员工3 -->
-                            <el-row :gutter="5" style="margin-top: 10px;">
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
-                              </el-col>
-                              <el-col :span="9">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
-                              </el-col>
-                              <el-col :span="2">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-                              </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-                            </el-row>
-              
-                            <!-- 员工4 -->
-                            <el-row :gutter="5" style="margin-top: 10px;">
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
-                              </el-col>
-                              <el-col :span="9">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
-                              </el-col>
-                              <el-col :span="2">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-                              </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-                            </el-row>
-              
-                            <!-- 员工5 -->
-                            <el-row :gutter="5" style="margin-top: 10px;">
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
-                              </el-col>
-                              <el-col :span="9">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
-                              </el-col>
-                              <el-col :span="2">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-                              </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-                            </el-row>
-              
-                            <!-- 员工6 -->
-                            <el-row :gutter="5" style="margin-top: 10px;">
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="ZI00401" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="瞿春生" />
-                              </el-col>
-                              <el-col :span="3">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="11.0" />
-                              </el-col>
-                              <el-col :span="9">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="打包废纸" />
-                              </el-col>
-                              <el-col :span="2">
-                                <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-                              </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-							  <el-col :span="2">
-							    <el-input v-model="formData.image" :clearable="true" placeholder="是" />
-							  </el-col>
-                            </el-row>
-			  
-            </el-form>
-            <!-- </el-scrollbar> -->
-            <template #footer>
-              <div class="dialog-footer">
-                <el-button @click="closeDialog">取 消</el-button>
-                <el-button type="primary" @click="enterDialog">确 定</el-button>
-              </div>
-            </template>
-          </el-dialog>
-
-		<!-- 员工选择 -->
-		  <el-dialog v-model="YgbhVisible" title="选择"
-		    destroy-on-close width="200px" @keydown="selectYgbh($event)" >
-		    <el-table tooltip-effect="dark" :data="YgbhselectData" row-key="ID"
-		      highlight-current-row="true" border style="width:100%"
-		      :row-style="{ height: '30px' }"
-		      @row-dblclick="YgbhSelectClick"
-		  			  ref="tableYgbh"
-		    >
-		      <el-table-column prop="ygxm" label="" width="160" />		      	 
-		    </el-table>
-		  </el-dialog>
-
-          <el-dialog v-model="positioningVisibleshow" :before-close="closepositioningVisible" :title="type==='create'?'添加':'修改'" destroy-on-close>
-            <el-card>
-          				<el-form-item label="员工编号" prop="name">
-          				  <el-row :gutter="20">
-          				    <el-col :span="12">
-          				      <el-input v-model="positionvalue" :clearable="true" placeholder="ZT01733" />
-          				    </el-col>                      
-          				  </el-row>
-          				</el-form-item>
-          			</el-card>
-          			<el-button type="primary" @click="enterpositioning">确 定</el-button>
-          </el-dialog>
-         
-        </el-main>
-      </el-container>
-    </el-container>
-
-
-          <!-- 员工计件明细 -->
-          <el-dialog
-        v-model="dialogYgjjmx"
-        title="员工计件明细"
-        destroy-on-close
-      >
-        <Ygjjmx :ygbh="currentRow?.['bh']" />
-      </el-dialog>
-
-  </div>
-</template>
-
+	  <PrintPage ref="printPageRef" />
+	</div>
+  </template>
+<script>
+export default {
+	data() {
+	  return {
+			currentTable: '', // 当前展示的表格
+			activeName: 'first',
+	  };
+	}, 
+	methods: {
+    handleKeyDown(event, prevId, currentId, nextId) {
+      const currentElement = document.getElementById(currentId);
+      const isEmpty = currentElement.value === '';
+      const atStart = currentElement.selectionStart === 0;
+      const atEnd = currentElement.selectionStart === currentElement.value.length;
+      switch (event.keyCode) {
+        case 13: // Enter
+        case 40: // 向下箭头
+          if (nextId) {
+            document.getElementById(nextId).focus();
+          }
+          break;
+        case 38: // 向上箭头
+          if (prevId) {
+            document.getElementById(prevId).focus();
+          }
+          break;
+        case 8: // 删除键
+          if (prevId && (isEmpty || atStart)) {
+            document.getElementById(prevId).focus();
+          }
+          break;
+        case 37: // 向左箭头
+          if (prevId && atStart) {
+            document.getElementById(prevId).focus();
+          }
+          break;
+        case 39: // 向右箭头
+          if (nextId && atEnd) {
+            document.getElementById(nextId).focus();
+	
+          }
+          break;
+        default:
+          break;
+      }
+    },
+  },
+};
+</script>
 <script setup>
-import {
-  getList,
-  getTab,
-  dailygetTab,
-  dailygetList,
-  dailygetAllList,
-  dailygetDetail,
-  dailysearch,
-  getYg
-} from '@/api/jixiaoguanli/jitairibaobiao'
-
 // 全量引入格式化工具 请按需保留
-import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
-import { ElMessage, ElMessageBox } from 'element-plus'
-import { Search, Refresh, Download } from '@element-plus/icons-vue'
-import { ref, reactive, onMounted, nextTick, onBeforeMount } from 'vue'
-import Ygjjmx from './printYgjjmx.vue'
-import * as XLSX from "xlsx";
-import { useUserStore } from '@/pinia/modules/user'
-const userStore = useUserStore() 
-const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
-defineOptions({
-  name: '06-packingDocuments'
-})
-const tableCols1 = [
-  { label: '员工编号', prop: 'bh', width: '105' },
-  { label: '员工姓名', prop: '员工姓名', width: '105' },
-  { label: '日期', prop: 'sczl_rq', width: '120' },
-  { label: '计件工资', prop: '计件工资', width: '105' },
-  { label: '加班工资', prop: '加班工资', width: '105' },
-  { label: '计时时数', prop: '计时时数', width: '105' },
-  { label: '计时工资', prop: '计时工资', width: '135' },
-  { label: '日工资合计', prop: '日工资合计', width: '135' },
-]
-const tableCols2 = [
-  { label: '日期', prop: 'sczl_rq', width: '105', fixed: true },
-  { label: '工单编号', prop: 'sczl_gdbh', width: '105', fixed: true },
-  { label: '产品名称', prop: 'Gd_cpmc', width: '120' },
-  { label: '印件及工序', prop: 'sczl_type', width: '120' },
-  { label: '机台编号', prop: 'sczl_jtbh', width: '105' },
-  { label: '班组车头产量', prop: '班组车头产量', width: '135' },
-  { label: '班组换算产量', prop: '班组换算产量', width: '135' },
-  { label: '工序难度系数', prop: '工序难度系数', width: '135' },
-  { label: '个人计件工资', prop: '个人计件工资', width: '135' },
-  { label: '个人加班工资', prop: '个人加班工资', width: '135' },
-  { label: '装版工时', prop: '装版工时', width: '120' },
-  { label: '保养工时', prop: '保养工时', width: '105' },
-  { label: '打样工时', prop: '打样工时', width: '105' },
-  { label: '异常停机工时', prop: '异常停机工时', width: '145' },
-  { label: '车头产量占用机时', prop: '车头产量占用机时', width: '175' },
-  { label: '日定额', prop: '日定额', width: '135' },
-  { label: '达标定额', prop: '达标定额', width: '105' },
-  { label: '千件工价', prop: '千件工价', width: '105' },
-  { label: '补产标准', prop: '补产标准', width: '120' },
-  { label: '员工编号', prop: 'bh', width: '105' },
-  { label: '姓名', prop: 'xm', width: '105' },
-  { label: '比例', prop: 'Rate', width: '105' },
-]
-// 侧边栏数据请求
-const treeData = reactive([]);
-const multipleTable=ref()
-const getTabdata = async () => {
-    //接口调用函数
-    const response  = await dailygetTab();
-	
-	const transformedData = response.data.map(item => ({
-	      label: `${item.label}`,
-	      children: item.children.map(sysItem => ({
-	        label: `${sysItem.label}`,
-	        params: {
-	          date: item.label,
-	          sys_id: sysItem.label,
-	          total:'',
-	        },
-	      })),
-	    }));
-	    treeData.splice(0, treeData.length, ...transformedData);
-
-	
-	}
-	
-
-getTabdata();
-
-// 自动化生成的字典(可能为空)以及字段
-const formData = ref({
-  id: '',
-  name: '',
-  date: '',
-  group: '',
-  packingOutput: '',
-  reworkOutput: '',
-  pieceOutput: '',
-  order: '',
-  user: '',
-  createTime: '',
-  updateTime: '',
-  uniqid: '',
-})
-
-// 验证规则
-const rule = reactive({
-})
-
-const elFormRef = ref()
-const elSearchFormRef = ref()
-
-// =========== 表格控制部分 ===========
-const tableData = reactive([])
-const tableData2 = reactive([])
-const detailData = reactive([])
-const total = ref(0)
-const page = ref(1)
-const limit = ref(10)
-const searchInfo = ref('')
-const params = {
-  date: '',
-  sys_id: '',
-  page: page.value.toString(),
-  limit: limit.value.toString(),
-}
-
-// 分页设置
-const handleSizeChange = (val) => {
-  limit.value = val;
-  params.limit = val.toString();
-  getTableData();
-}
-
-// 页面跳转
-const handleCurrentChange = (val) => {
-  page.value = val
-  params.page = val.toString();
-  getTableData()
-}
-
-// 查询
-const getTableData = async () => {
-	
-	
-  const response = await dailygetList({
-	  date: params.date, department: params.sys_id,});
-  // console.log(response)
-  if (response.code === 0) {
-	   const originalData = response.data;
-	      const summaryData = generateSummaryData(originalData);
-	      // 将合计数据插入到原始数据中
-	      const combinedData = [];
-	      originalData.forEach((item, index) => {
-	        combinedData.push(item);
-	        const nextItem = originalData[index + 1];
-	        if (nextItem && nextItem['员工姓名'] !== item['员工姓名']) {
-	          // 如果下一个员工姓名与当前不同,插入合计数据
-	          const currentSummary = summaryData.shift();
-	          combinedData.push(currentSummary);
-			 
-	        }
-	      });
-		  //插入最后一个员工的合计
-		  combinedData.push(summaryData[0]);
-	      // 更新表格数据
-	      tableData.splice(0, tableData.length, ...combinedData);
+import $script from 'scriptjs'
+import $ from 'jquery';
+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,getTab,OrderAttachments} from '@/api/mes/job'
+import {getMachineMac} from '@/api/jixiaoguanli/jitairibaobiao'
+import {getMac} from '@/api/jixiaoguanli/baogong'
+import PrintPage from '../yunyin/shengchanguanli/components/print.vue';
+import {ElMessage} from "element-plus";
+import { get } from 'scriptjs';
+defineOptions({name: 'Company'})
+const printPageRef = ref()
+// =========== 全局获取当前日期 ===========
+// currentDate  年月日 时分秒
+// currentDates  年月日
+const today = new Date();
+const year = today.getFullYear();
+const month = String(today.getMonth() + 1).padStart(2, '0'); // 月份从 0 开始,需要补零
+const day = String(today.getDate()).padStart(2, '0');
+const hours = String(today.getHours()).padStart(2, '0');
+const minutes = String(today.getMinutes()).padStart(2, '0');
+const seconds = String(today.getSeconds()).padStart(2, '0');
+const currentDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+const currentDates = `${year}-${month}-${day}`;
+
+//全局获取code,接口接收code
+const _code = '总检'
+//全局接口接受的物理地址
+const Machine = ref('')
+//全局获取UniqId
+const UniqId = ref('')
+//全局获取工序
+const _gx = '6'
+//全局获取工序名称
+const _gxmc = '总检'
+
+
+//物理地址获取机台编号
+const getMachineMacdata = async () => {
+  console.log(_code,"机台获取物理地址",Machine.value)
+  try {
+    const data  = await getMachineMac({sys_sbID:Machine.value});
+	add_formData['机台号'] = data.data['机台号']
+	add_formData['工序'] = data.data['生产工序']
+	add_formData['组别'] = data.data['组别']
+	add_formData['人员'] = data.data['组长']
+  setTimeout(() => {
+				const inputElement = document.getElementById('searchInput');
+				if (inputElement) {
+					inputElement.focus();		
+				}
+			}, 100); // 延迟100毫秒
+  } catch (error) {
+    console.error(error)
   }
 }
-
-const generateSummaryData = (data) => {
-  const summaryData = [];
-  let currentName = null;
-  let currentSummary = null;
-
-  data.forEach((item) => {
-    const name = item['员工姓名'].trim(); // 获取员工姓名并去除空格
-    if (name !== currentName) {
-      // 如果员工姓名发生改变,说明需要插入合计数据
-      if (currentSummary) {
-        // 将上一个员工的合计数据插入到数组中
-        summaryData.push(currentSummary);
+//自动获取物理地址
+const GetAddr =  () => {
+  var xmlhttp = null;
+  var res;
+  if (window.XMLHttpRequest) {
+    xmlhttp = new XMLHttpRequest();
+  } else if (window.ActiveXObject) {
+    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+  }
+  // 2. 设置回调函数
+  xmlhttp.onreadystatechange = function() {
+    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
+      res = eval('('+xmlhttp.response+')');
+      let result = ''
+      for (let i = 0; i < res.macAddress.length; i++) {
+        if (i % 2 === 0 && i !== 0) {
+          result += '-' // 根据实际需求修改分隔符
+        }
+        result += res.macAddress[i]
       }
-      // 创建新的合计数据
-      currentSummary = {
-        '员工姓名': name,
-		'日期': 0,
-        '计件工资': 0,
-        '加班工资': 0,
-        '计时时数': 0,
-        '计时工资': 0,
-        '日工资合计': 0
-      };
-      currentName = name;
+	  Machine.value = result
+    getMachineMacdata(Machine.value)
     }
-
-    // 更新合计数据
-	currentSummary['日期']++;
-    currentSummary['计件工资'] += parseFloat(item['计件工资']);
-    currentSummary['加班工资'] += parseFloat(item['加班工资']);
-    currentSummary['计时时数'] += parseFloat(item['计时时数']);
-    currentSummary['计时工资'] += parseFloat(item['计时工资']);
-    currentSummary['日工资合计'] += parseFloat(item['日工资合计']);
-	currentSummary['员工姓名']='合计('+currentSummary['日期']+'天)';
-  });
-
-  // 将最后一个员工的合计数据插入到数组中
-  if (currentSummary) {
-    summaryData.push(currentSummary);
-  }
-
-  // 将日期填充到表格中
-  summaryData.forEach((summary) => {
-    summary['计件工资'] = summary['计件工资'].toFixed(2); // 保留两位小数
-	summary['加班工资'] = summary['加班工资'].toFixed(2);
-	summary['计时时数'] = summary['计时时数'].toFixed(2);
-	summary['计时工资'] = summary['计时工资'].toFixed(2);
-	summary['日工资合计'] = summary['日工资合计'].toFixed(2);
-  });
-
-  return summaryData;
-};
-const handleNodeClick = (node, check) => {
-  //存放当前节点的nodeId
-  if (node.params) {
-    params.date = node.params.date;
-    params.sys_id = node.params.sys_id;
-    total.value = node.params.total;
-    getTableData();
   }
+  // 3. 打开一个连接
+  xmlhttp.open("get", "http://127.0.0.1:8090/init")
+  // 5. 发送
+  xmlhttp.send();
 }
-
-// 定位
-function onposition() {
-  positioningVisibleshow.value=true
-}
-const enterpositioning = async () => {
- let parts = params.date.split('-')
- 
- // # 截取第一个"-"之前的内容并赋值给新变量1
- let new_variable1 = parts[0]
- 
- // # 截取第一个"-"之后到第二个"-"之前的内容并赋值给新变量2
- let new_variable2 = parts[1]
- Getlocate(new_variable1+new_variable2)
- positioningVisibleshow.value=false
-}
-let positionvalue=ref()
-const Getlocate = async () => {
-  const response = await dailysearch({
-    date: params.date,
-    search:searchInfo.value
-  })
-  if (response.code === 0) {
-	  if(response.data.length == 0){
-		  const originalData = []
-		  tableData.splice(0, tableData.length, ...originalData)
-		  return
-	  }
-	  const originalData = response.data;
+// getMachineMacdata();
+GetAddr()
+//搜索
+const add_searchInfo = ref('')
+//表格
+const add_tableData = reactive([]);
+//尾包选中值
+const activeButtonValue = ref('')
+//代表扫描两次自动保存
+const searcs = ref('')
+const _order = ref('')
+//技术附件
+const jstableData = reactive([])
+	
+//查询按钮
+const add_onSubmit = async ()=>{
+  if(add_searchInfo.value === '' || add_searchInfo.value === undefined){
+    const WorkListdata = [];
+    add_tableData.splice(0,add_tableData.length,...WorkListdata);
+	ElMessage({type: 'warning',message: '请扫描小票二维码' })
+  }else{
+	  //订单编号 获取 技术附件数据Excel
+	  const searchValue = add_searchInfo.value.split('-')[0];
+	  const jsOrderAttachments = await OrderAttachments({order:searchValue,desc:'技术附件'})
+	  console.log(jsOrderAttachments)
+	  jstableData.splice(0,jsOrderAttachments.data.length,...jsOrderAttachments.data);
 	  
-	  // // 将合计数据插入到原始数据中
-	  // const combinedData = [];
-	  // originalData.forEach((item, index) => {
-	  //   combinedData.push(item);
-	  //   const nextItem = originalData[index + 1];
-	  //   if (nextItem && nextItem['员工姓名'] !== item['员工姓名']) {
-	  //     // 如果下一个员工姓名与当前不同,插入合计数据
-	  //     const currentSummary = summaryData.shift();
-	  //     combinedData.push(currentSummary);
-	  			 
-	  //   }
-	  // });
-	  // //插入最后一个员工的合计
-	  // combinedData.push(summaryData[0]);
-	  // // 更新表格数据
-	  // tableData.splice(0, tableData.length, ...combinedData);
-	  const summaryData = generateSummaryData(originalData);
-	  originalData.push(summaryData[0]);
-    tableData.splice(0, tableData.length, ...originalData)
+		add_formData['尺码'] = ''
+		add_formData['总数量'] = ''
+		add_formData['剩余数量'] = ''
+		add_formData['上报数量'] = ''
+	// if(searcs.value === ''){
+		 _order.value = add_searchInfo.value;
+		 const sys_sbID = add_formData['机台号']
+		 //获取下面报工历史记录
+		 const getSpotLists = await getSpotList({order:add_searchInfo.value,code:_code,sys_sbID:sys_sbID});
+		 activeButtonValue.value = getSpotLists.data.result.wb
+		 UniqId.value = getSpotLists.data.result.UniqId
+		 add_formData['尺码'] = getSpotLists.data.result.cm
+		 add_formData['总数量'] = getSpotLists.data.result.sl
+		 add_formData['剩余数量'] = getSpotLists.data.result.ci_num
+		 add_tableData.splice(0,add_tableData.length,...getSpotLists.data.records);
+		//  searcs.value = 1;
+		 add_searchInfo.value = ''
+		 setTimeout(() => {
+		const inputElement = document.getElementById('sbsl');
+		if (add_formData['剩余数量']) {
+			inputElement.focus();		
+		}
+	}, 100); // 延迟100毫秒
+		 
+	// }else{
+	// 	 add_Dialog();
+	// }
   }
 }
 
-// 搜索
-function onSearch() {
-	if(!params.date){
-		ElMessage({
-		  type: 'warning',
-		  message: '请先选择车间'
+//技术资料excel展示
+const ExcelShow = (row) =>{
+	console.log("技术资料excel展示")
+	console.log(row)
+	if(!row.附件内容) return
+	$.getScript('/luckysheet/plugins/js/plugin.js', () => {
+		$script('/luckysheet/luckysheet.umd.js', () => {
+					function dataURLtoBlob(dataUrl) {
+					    const byteString = atob(dataUrl.split(',')[1]);
+					    const ab = new ArrayBuffer(byteString.length);
+					    const ia = new Uint8Array(ab);
+
+					    for (let i = 0; i < byteString.length; i++) {
+					        ia[i] = byteString.charCodeAt(i);
+					    }
+
+					    return new Blob([ab], { type: 'application/octet-stream' });
+					}
+
+					const blob = dataURLtoBlob(row.附件内容);
+					luckyexcelVisible.value = true
+					LuckyExcel.transformExcelToLucky(blob, function(exportJson, luckysheetfile){
+						if(exportJson.sheets==null || exportJson.sheets.length==0){
+							alert("Failed to read the content of the excel file, currently does not support xls files!");
+							return;
+						}
+						if(luckyExcel) luckyExcel.destroy();
+						luckysheet.create({
+							container: 'luckyexcel', //容器的ID
+							data: exportJson.sheets,
+							title: exportJson.info.name, // 工作簿名称
+							lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
+							showtoolbar: false, // 是否显示工具栏
+							showinfobar: false, // 是否显示顶部信息栏
+							allowEdit: false, // 是否允许前台编辑
+							enableAddRow: false, // 允许增加行
+							enableAddCol: false, // 允许增加列
+							userInfo: false, // 右上角的用户信息展示样式
+							showRowBar: false, // 是否显示行号区域
+							showColumnBar: false, // 是否显示列号区域
+							sheetFormulaBar: false, // 是否显示公式栏
+							enableAddBackTop: false,//返回头部按钮
+						});
+						luckyExcel = luckysheet;
+					})
 		})
-		return
-	}
-	if(searchInfo.value){
-		getYg({sczl_bh:searchInfo.value}).then(res=>{
-			if (res.code === 0) {
-			  if(res.data.length === 0){
-				  const originalData = []
-				  tableData.splice(0, tableData.length, ...originalData)
-				  return
-			  }else if(res.data.length === 1){
-				  searchInfo.value = res.data[0]['员工编号']
-			      Getlocate()
-			  }else{
-				  YgbhselectData.splice(0, YgbhselectData.length, ...res.data)
-				  setYgbhCurrent(YgbhselectData[0])
-				  YgbhVisible.value=true
-			  }
-			}
-		});
-	}else{
-		getTableData();
-	}
- 
-}
+	})
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
 
-const YgbhVisible = ref(false)
-const YgbhselectData = reactive([])
-//选择
-const YgbhSelectClick = (row, column, event) => {
-  searchInfo.value = row['员工编号']
-  YgbhVisible.value = false
-  Getlocate()
-}
-const tableYgbh=ref()
-const setYgbhCurrent = (row) => {
-  setTimeout(()=>{
-	  tableYgbh.value?.setCurrentRow(row) 
-	  searchInfo.value = row['员工编号']
-  })
-}
-const YgbhIndex = ref(0);
-const YgbhCurrent = ref(0);
-const selectYgbh = (event) => {
-    if (event.keyCode === 40) { // 向下箭头
-        if (YgbhIndex.value < YgbhselectData.length - 1) {
-            YgbhIndex.value++;
-            setYgbhCurrent(YgbhselectData[YgbhIndex.value]);
-        } else {
-            YgbhIndex.value = 0;
-            setYgbhCurrent(YgbhselectData[YgbhIndex.value]); // 到达最后一行时回到第一行			
-        }
-    } else if (event.keyCode === 38) { // 向上箭头
-        if (YgbhIndex.value > 0) {
-            YgbhIndex.value--;
-            setYgbhCurrent(YgbhselectData[YgbhIndex.value]);
-        } else {
-            YgbhIndex.value = YgbhselectData.length - 1;
-            setYgbhCurrent(YgbhselectData[YgbhIndex.value]); // 到达第一行时回到最后一行
-        }
-    } else if (event.keyCode === 13) { // 回车键
-        YgbhVisible.value = false
-		Getlocate()
-    }
 }
 
-// ============== 表格控制部分结束 ===============
+let luckyExcel = null
 
-// 获取需要的字典 可能为空 按需保留
-const setOptions = async () => {
-}
+const luckyexcelVisible = ref(false)
+const luckyexcelCloseDialog = () => {
+  luckyexcelVisible.value = false
+}	
 
-// 获取需要的字典 可能为空 按需保留
-setOptions()
 
-// 多选数据
-const multipleSelection = ref([])
-// 多选
-const handleSelectionChange = (val) => {
-  // multipleSelection.value = val
-  
-}
 
-// 批量删除控制标记
-const deleteVisible = ref(false)
+const AttendanceVisible=ref(false)
+//清空对象的属性值
+const gd_clearFormData = () => {
+	Object.keys(add_formData).forEach(key => {
+	  add_formData[key] = '';
+	});
+};
+const add_formData = reactive({
+	机台号: '',	
+	工序: '',
+	组别: '',
+	人员: '',	
+	尺码: '',
+	数量: '',
+	剩余数量: '',
+	上报数量:'',
+	是否订单尾包: '',
 
-// 多选删除
-const onDelete = async () => {
-  const ids = []
-  if (multipleSelection.value.length === 0) {
-    ElMessage({
-      type: 'warning',
-      message: '请选择要删除的数据'
-    })
-    return
-  }
-  multipleSelection.value &&
-    multipleSelection.value.map(item => {
-      ids.push(item.ID)
-    })
-  const res = await deleteCompanyByIds({ ids })
-  if (res.code === 0) {
-    ElMessage({
-      type: 'success',
-      message: '删除成功'
-    })
-    if (tableData.value.length === ids.length && page.value > 1) {
-      page.value--
-    }
-    deleteVisible.value = false
-    getTableData()
-  }
+});
+const add_Dialogonclick = ref(false)
+function baogongslpd() {    
+  // 将字符串转换为数字  
+  const reportedQuantity = parseInt(add_formData['上报数量'], 10) || 0; // 使用10作为基数表示十进制,如果转换失败则返回0  
+  const totalQuantity = parseInt(add_formData['剩余数量'], 10) || 0; // 同样处理  
+  if (reportedQuantity > totalQuantity) {  
+    ElMessage({ type: 'warning', message: '上报数量不能大于剩余数量' });  
+    add_Dialogonclick.value = false;  
+  }else if(reportedQuantity === 0){
+	add_Dialogonclick.value = false;  
+  } else {  
+    add_Dialogonclick.value = true;  
+  }  
 }
+const currentSlValue=ref('')
+//后道确认按钮
+const add_Dialog = async ()=>{
+  if(_order.value === ''){
+    ElMessage({type: 'warning',message: '请重新扫描小票二维码'})
+  }else{
+		console.log(_order.value.split(',')[0])
+		let params ={}
+		params.code = _code
+		params.order = _order.value.split(',')[0].split('-')[0]
+		params.order_id = _order.value.split(',')[0]
+		params.gx = _gx
+		params.gxmc = _gxmc
+		params.cm = _order.value.split(',')[3]
+		params.sl = _order.value.split(',')[4]
+		params.sczl_jtbh = add_formData['机台号']
+		params.sczl_bh = add_formData['组别']
+		params.wb =  _order.value.split(',')[5]
+		params.sys_id = add_formData['人员']
+		params.UniqId = UniqId.value
+		params.s_num = add_formData['上报数量']
+		params.ci_num = add_formData['剩余数量']
+		console.log(params)
+		// return false;
+		const cf_gettab = await search(params); // 调用search函数  
+		if (cf_gettab.code === 0) {
+			// const firstPart = add_searchInfo.value.split(',')[0];  
+			//上报后历史记录表格刷新
+			const lsjltable = await getTab({order_id:_order.value.split(',')[0],sczl_jtbh:add_formData['机台号']}); 
+			add_tableData.splice(0,add_tableData.length,...lsjltable.data.records);
+			// //上报后刷新表格数据
+			// const getSpotLists = await getSpotList({order:_order.value.split(',')[0],code:_code,sys_sbID:sys_sbID});
+			// add_tableData.splice(0,add_tableData.length,...getSpotLists.data.records);
+			add_searchInfo.value = '';  
+			setTimeout(() => {
+				const inputElement = document.getElementById('searchInput');
+				if (inputElement) {
+					inputElement.focus();		
+				}
+			}, 100); // 延迟100毫秒
+			// searcs.value = '';
+			add_formData['尺码']=''
+			add_formData['总数量']=''
+			add_formData['上报数量']=''
+			add_formData['剩余数量']=''
+		//  searcs.value = 1;
+		 add_searchInfo.value = ''
+			ElMessage({type: 'success', message: '报工成功'});  
+		}
 
-// 行为控制标记(弹窗内部需要增还是改)
-const type = ref('')
-
-// 更新行
-const updateCompanyFunc = async (row) => {
-  const res = await findCompany({ ID: row.ID })
-  type.value = 'update'
-  if (res.code === 0) {
-    formData.value = res.data.recompany
-    dialogFormVisible.value = true
   }
 }
 
-// 弹窗控制标记
-const dialogFormVisible = ref(false)
-const positioningVisibleshow = ref(false)
-// 打开弹窗
-const openDialog = () => {
-  type.value = 'create'
-  dialogFormVisible.value = true
-}
-
-// 关闭弹窗
-const closeDialog = () => {
-  dialogFormVisible.value = false
-  formData.value = {
-    address: '',
-    image: '',
-    name: '',
+const gd_yulan = () => {
+  if(_order.value === '' || _order.value === null){
+    ElMessage({type: 'warning',message: '请选择具体的工单后,再操作此功能'})
+    return false;
+  }else{
+    const order = _order.value.split('-')[0]
+      printPageRef.value.open(order) 
   }
 }
-// 弹窗确定
-const enterDialog = async () => {
-  elFormRef.value?.validate(async (valid) => {
-    if (!valid) return
-    let res
-    switch (type.value) {
-      case 'create':
-        res = await createCompany(formData.value)
-        break
-      case 'update':
-        res = await updateCompany(formData.value)
-        break
-      default:
-        res = await createCompany(formData.value)
-        break
-    }
-    if (res.code === 0) {
-      ElMessage({
-        type: 'success',
-        message: '创建/更改成功'
-      })
-      closeDialog()
-      getTableData()
-    }
-  })
+//单击
+const add_tableRowClick = async (row) => {
+	const orderString = `${row['子订单编号']},${row['组别']},3,${row['尺码']},${row['数量']},${row['尾包']}`;
+	add_formData['尺码'] =  row.尺码
+	add_formData['总数量'] =  row.数量
+	add_formData['剩余数量'] =  row.剩余数量
+	_order.value =  orderString
+console.log(row)
 }
-// 单击表格操作
-function ontable(row, column, event) {
-  currentRow.value = row
-  let parts = params.date.split('-')
-  
-  // # 截取第一个"-"之前的内容并赋值给新变量1
-  let new_variable1 = parts[0]
-  // # 截取第一个"-"之后到第二个"-"之前的内容并赋值给新变量2
-  let new_variable2 = parts[1]
-  if(row.bh == undefined) return
+//双击
+const add_updateCompanyFunc = async (row) => {
 
-  dailygetAllList({date:new_variable1,code:row.bh}).then(response=>{
-	  if(response.code==0){
-	  	   tableData2.splice(0, tableData2.length, ...response.data);
-        // 为匹配的行添加黄色背景
-        nextTick(() => {
-          let i = 0
-          tableData2.forEach((item, index) => {
-          const rowElement = document.querySelector(`.lower-table  .el-table__row:nth-child(${index + 1})`);
-          
-          if (rowElement) {
-            if (item.sczl_rq == row.sczl_rq) { // 替换yourProperty为实际的属性名
-              if(i == 0){
-                //第一条数据,设置这条数据到视口顶部
-                rowElement.scrollIntoView();
-                console.log(rowElement)
-              }
-              i++
-              rowElement.style.backgroundColor = 'yellow';
-            }else{
-                rowElement.style.backgroundColor = '';
-            }
-          }
-        })
-       })
-	  }
-  })
 }
+//右键
+const handleRightClick = async (row) => {
 
-// 双击表格操作
-function doubleClick(row, column, event) {
-  // updateCompanyFunc(row);
-  type.value = 'update';
-  // dialogFormVisible.value = true
+}
+//复选框
+const add_xpSelectionChange = async (selection) => {
+  console.log(selection.length)
+  selectedRows.value = selection; 
+  if (selection.length === 0) {
+	  ElMessage({type: 'warning', message: '请勾选打印的数据' });
+	  return false;
+  }else if(selection.length>0){
+	  allPrintData.value = selection.map((row) => {
+	  let weibao = row['是否尾包'] === '是' ? 1 : 0;
+	  const ewm = `${row['订单子编号']},01,${row['尺码']},${row['数量']},${weibao}`;
+	  return {
+		  emm: ewm,
+		  zddbh: row['子订单编号'],
+		  kh: row['款号'],
+		  pm: row['款式'],
+		  ys: row['颜色'],
+		  cm: row['尺码'],
+		  sl: row['数量'],
+		  zb: row['组别'],
+		  dyrq: currentDates,
+		  wb: row['尾包']
+	  };
+  });
+  }else{
+	  allPrintData.value = [];
+  }
+  console.log(allPrintData.value)
 }
 
-// 导出excel
+// =========== 删除按钮 ===========
+//记录复选框的值
+const bgSelection = ref(null)
+const baogong_del = () => {
+  if(bgSelection.value === null || bgSelection.value === ''){
+		ElMessage({type: 'warning',message: '请选择删除的数据' })
+  }else{
+	   console.log(bgSelection.value)
+  }
+}
+  
+// 保存当前选中的行数据
+const table_selectrows = ref([]);
 
-function exportExcel() {
- if(tableData.length<1){
- 	ElMessage({
- 	  type: 'error',
- 	  message: '请确认上方表格内是否存在内容'
- 	})
- }else{
- 	exportExcelFile(tableData,tableCols1)
- }
-};
-function exportExcel2() {
-if(tableData2.length<1){
-		ElMessage({
-		  type: 'error',
-		  message: '请确认上方表格内是否存在内容'
-		})
-	}else{
-		exportExcelFile(tableData2,tableCols2)
-	}
+// 表格复选框选中变化时触发
+const table_SelectionChange = (val) => {
+  table_selectrows.value = val; // 将选中的行数据保存到 table_selectrows
+}
+  
+ 
+// =========== 分页 ===========
+// 分页相关的响应式变量
+const page = ref(1)
+const total = ref(0)
+const pageSize = ref(10)
+// 分页
+const handleCurrentChange = (val) => {
+page.value = val;
+_getStaffList();
 };
-const exportExcelFile = (tableData, tableCols) => {
-  const data = tableData.map(row => {
-    const rowData = {};
-    tableCols.forEach(column => {
-      rowData[column.label] = row[column.prop];
-    });
-    return rowData;
-  });
 
-  const worksheet = XLSX.utils.json_to_sheet(data);
-  const workbook = XLSX.utils.book_new();
-  XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
-  XLSX.writeFile(workbook, 'exported_table.xlsx');
+// 修改页面容量 点击多少条/页
+const handleSizeChange = (val) => {
+page.value = 10;//默认显示
+pageSize.value = val;
+_getStaffList();
 };
-const currentRow = ref()
-const dialogYgjjmx = ref(false)
-function handlePrint() {
-  dialogYgjjmx.value = true
-}
-
-// 生命周期钩子
-onMounted(async () => {
-});
 </script>
+<style scoped>
+.form-container {
+display: flex;
+flex-wrap: wrap;
+}
 
-<style>
-.JKWTree-container {
-  display: flex;
+.form-column {
+/*flex: 1;*/
+margin-right: 15px; /* 调整列之间的间距 */
+}
+/* 左侧输入框宽度调整 */
+.form-column .el-form-item .el-input {
+width: 150px; /* 调整左侧输入框的宽度 */
 }
 
-.JKWTree-tree-rgz {
-  width: 150px;
-  background-color: #fff;
-  padding: 10px;
-  margin-right: 20px;
+/* 媒体查询,根据需要调整断点 */
+@media screen and (max-width: 768px) {
+.form-column {
+  flex: 1 0 100%; /* 在小屏幕下变成单列布局 */
+  margin-right: 0;
+}
+}
+/* 表格复选框大小调整 */
+:deep(.el-checkbox.el-checkbox--small .el-checkbox__inner) {
+  width: 30px; /* 复选框宽度 */
+  height: 20px; /* 复选框高度 */
 }
 
-.JKWTree-tree-rgz h3 {
-  font-size: 15px;
-  font-weight: 700;
-  margin: 10px 0;
+:deep(.el-checkbox.el-checkbox--small.is-checked .el-checkbox__inner::after) {
+  transform: scale(1.2) rotate(45deg); /* 调整选中后的对勾大小 */
+  top: 5%; /* 调整对勾位置 */
+  left: 40%; /* 调整对勾位置 */
+  width: 5px; /* 调整对勾宽度 */
+  height: 9px; /* 调整对勾高度 */
 }
 
+/*:deep(.el-table td .cell) {*/
+/*  line-height: 30px !important;*/
+/*}*/
+.JKWTree-container {
+display: flex;
+}
+.JKWTree-tree {
+/*width: 300px;*/
+background-color: #fff;
+padding: 10px;
+margin-right: 20px;
+}
+.JKWTree-tree h3 {
+font-size: 15px;
+font-weight: 700;
+margin: 10px 0;
+}
 .JKWTree-content {
-  flex: 1;
+flex: 1;
+}
+/* 图片上传 */
+.upload-box {
+width: 200px;
+height: 200px;
+border: 2px dashed #e2e2e2;
+display: flex;
+justify-content: center;
+align-items: center;
+position: relative;
+cursor: pointer;
+}
+.uploaded-image {
+width: 100%;
+height: 100%;
+object-fit: cover;
+}
+.upload-icon {
+font-size: 40px;
+color: #c0c4cc;
+}
+.file-input {
+display: none;
+}
+.el-table .warning-row {
+background: oldlace;
 }
 
-/* 选中某行时的背景色*/
-.el-table__body tr.current-row>td {
-  background: #ff80ff !important;
-  /* 背景颜色 */
+/* 选中某行时的背景色 */
+:deep(.el-table__body tr.current-row) > td {
+background: #ff80ff !important;
+}
+</style>
+<style scoped>
+:deep(.el-table td .cell) {
+line-height: 20px !important;
+}
+:deep(.el-tabs__header){
+margin-bottom: 0;
+}
+.search{
+margin-left: 0px !important;
+margin-right: 10px !important;
 }
-.bt {
-  margin-left: 2px !important;
-  padding: 3px !important;
-  font-size: 12px;
+.bt{
+margin-left: 2px !important;
+padding: 3px !important;
+font-size: 12px;
 }
-</style>
+.el-tabs__header{
+margin: 0px !important;
+}
+.gva-table-box{
+padding: 0px !important;
+margin-left: -10px !important;
+}
+.mab{
+margin-bottom: 5px;
+}
+/* 点击按钮改变颜色 */
+.active-button {  
+  background-color: #ff0000;
+}
+.default-button {  
+  background-color: #808080;
+}
+
+
+/* 搜索样式 */
+::v-deep .el-input__wrapper #searchInput {  
+  font-size: 16px; 
+} 
+::v-deep .el-input__wrapper #jitaihao {  
+  font-size: 18px; 
+}  
+::v-deep .el-input__wrapper #gongxu {  
+  font-size: 18px; 
+}  
+::v-deep .el-input__wrapper #zubie {  
+  font-size: 18px; 
+}  
+::v-deep .el-input__wrapper #renyuan {  
+  font-size: 18px; 
+} 
+::v-deep .el-input__wrapper #shuliang {  
+  font-size: 18px; 
+  color: red;
+} 
+::v-deep .el-input__wrapper #chima {  
+  font-size: 18px; 
+} 
+::v-deep .el-input__wrapper #sbsl {  
+  font-size: 18px; 
+  color: red;
+} 
+</style>