Bläddra i källkod

Merge branch 'master' of https://git.7in6.com/Minong/mes-admin-backend-ui

tty 1 år sedan
förälder
incheckning
ea9fd5dbf5

+ 46 - 0
src/api/jixiaoguanli/jitairibaobiao.js

@@ -726,6 +726,13 @@ export const chanliangEdit = (data) => {
     data
   })
 }
+export const MachineChanliangDetailEdit = (data) => {
+  return service({
+    url:'/mes_server/facility/MachineChanliangDetailEdit',
+    method: 'post',
+    data
+  })
+}
 //关联工资核算
 //设备点检->左侧菜单栏
 export const  relatedTab= (params) => {
@@ -986,4 +993,43 @@ export const ChanliangAdd = (data) => {
     method: 'post',
     data
   })
+}
+//日产量上报添加->工单资料获取
+export const ChanliangWorkorder = (params) => {
+  return service({
+    url: '/mes_server/facility/ChanliangWorkorder',
+    method: 'get',
+    params
+  })
+}
+//日产量上报->印件资料
+export const ChanliangPrintDetail = (params) => {
+  return service({
+    url: '/mes_server/facility/ChanliangPrintDetail',
+    method: 'get',
+    params
+  })
+}
+//日产量上报添加->工艺资料
+export const ChanliangProcessDetail = (params) => {
+  return service({
+    url: '/mes_server/facility/ChanliangProcessDetail',
+    method: 'get',
+    params
+  })
+}
+//班组维护->员工姓名获取
+export const EmployeeData = (params) => {
+  return service({
+    url: '/mes_server/facility/EmployeeData',
+    method: 'get',
+    params
+  })
+}
+export const RemodelDetail = (params) => {
+  return service({
+    url: '/mes_server/Facility/RemodelDetail',
+    method: 'get',
+    params
+  })
 }

+ 25 - 0
src/api/yunyin/yunying.js

@@ -864,3 +864,28 @@ export const gdAnnexDel= (params) => {
         params
     })
 }
+
+//计算员工计件工资
+export const staffSalaryCount= (data) => {
+    return service({
+        url:'/mes_server/staff_salary/staffSalaryCount',
+        method: 'post',
+        data
+    })
+}
+//引用产品资料印件、工艺资料->工单信息获取
+export const ProductCopeDetail= (params) => {
+    return service({
+        url:'/mes_server/work_order/ProductCopeDetail',
+        method: 'get',
+        params
+    })
+}
+//引用产品印件、工艺资料
+export const WorkOrderDetailListCope = (data) => {
+    return service({
+        url:'/mes_server/work_order/WorkOrderDetailListCope',
+        method: 'post',
+        data
+    })
+}

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 315 - 405
src/view/job/related/related.vue


+ 35 - 35
src/view/performance/14-overTimePayVerification/index.vue

@@ -86,7 +86,7 @@
             >
               <el-table-column
                 type="selection"
-                width="55"
+                width="40"
               />
               <!-- 使用 v-for 循环渲染每一列 -->
               <el-table-column
@@ -118,7 +118,7 @@
             >
               <el-table-column
                 type="selection"
-                width="55"
+                width="40"
               />
               <!-- 使用 v-for 循环渲染每一列 -->
               <el-table-column
@@ -168,41 +168,41 @@ getSideData()
 
 // =========== 表格控制部分 ===========
 const tableCols1 = [
-  { label: '员工编号', prop: 'bh', width: '100' },
-  { label: '员工姓名', prop: '员工姓名', width: '100' },
-  { label: '工资表类别', prop: '工资表类别', width: '150' },
-  { label: '聘用日期', prop: '聘用日期', width: '150' },
-  { label: '法定天数', prop: '法定天数', width: '100' },
-  { label: '当月定额', prop: '当月定额', width: '100' },
-  { label: '月度合计产量', prop: '月度合计产量', width: '150' },
-  { label: '个人计件工资', prop: '个人计件工资', width: '150' },
-  { label: '个人加班工资', prop: '个人加班工资', width: '150' },
-  { label: '月计时时数', prop: '月计时时数', width: '150' },
-  { label: '计时补差', prop: '计时补差', width: '150' },
+  { label: '员工编号', prop: 'bh', width: '105' },
+  { label: '员工姓名', prop: '员工姓名', width: '105' },
+  { label: '工资表类别', prop: '工资表类别', width: '120' },
+  { label: '聘用日期', prop: '聘用日期', width: '105' },
+  { label: '法定天数', prop: '法定天数', width: '105' },
+  { label: '当月定额', prop: '当月定额', width: '105' },
+  { label: '月度合计产量', prop: '月度合计产量', width: '135' },
+  { label: '个人计件工资', prop: '个人计件工资', width: '135' },
+  { label: '个人加班工资', prop: '个人加班工资', width: '135' },
+  { label: '月计时时数', prop: '月计时时数', width: '120' },
+  { label: '计时补差', prop: '计时补差', width: '120' },
 ]
 const tableCols2 = [
-  { label: '日期', prop: 'sczl_rq', width: '100' },
-  { label: '工单编号', prop: 'sczl_gdbh', width: '100' },
-  { label: '成品名称', prop: 'Gd_cpmc', width: '300' },
-  { label: '印件及工序', prop: 'sczl_type', width: '300' },
-  { label: '车头产量', prop: '班组车头产量', width: '100' },
-  { label: '机台编号', prop: 'sczl_jtbh', width: '100' },
-  { label: '产量系数', prop: '产量系数', width: '100' },
-  { label: '计件产量', prop: '计件产量', width: '100' },
-  { label: '补产产量', prop: '补产产量', width: '100' },
-  { label: '核算产量', prop: '核算产量', width: '100' },
-  { label: '日定额', prop: '日定额', width: '100' },
-  { label: '达标定额', prop: '达标定额', width: '100' },
-  { label: '千件工价', prop: '千件工价', width: '100' },
-  { label: '补产标准', prop: '补产标准', width: '100' },
-  { label: '个人计件工资', prop: '个人计件工资', width: '120' },
-  { label: '个人加班工资', prop: '个人加班工资', width: '120' },
-  { label: '个人比例', prop: '个人比例', width: '100' },
-  { label: '装版工时', prop: '装版工时', width: '100' },
-  { label: '保养工时', prop: '保养工时', width: '100' },
-  { label: '打样工时', prop: '打样工时', width: '100' },
-  { label: '分摊计时', prop: '分摊计时', width: '100' },
-  { label: '计时补差', prop: '计时补差', width: '100' },
+  { label: '日期', prop: 'sczl_rq', width: '105' },
+  { label: '工单编号', prop: 'sczl_gdbh', width: '105' },
+  { label: '成品名称', prop: 'Gd_cpmc', width: '150' },
+  { label: '印件及工序', prop: 'sczl_type', width: '150' },
+  { label: '车头产量', prop: '班组车头产量', width: '105' },
+  { label: '机台编号', prop: 'sczl_jtbh', width: '105' },
+  { label: '产量系数', prop: '产量系数', width: '105' },
+  { label: '计件产量', prop: '计件产量', width: '105' },
+  { label: '补产产量', prop: '补产产量', width: '105' },
+  { label: '核算产量', prop: '核算产量', width: '105' },
+  { label: '日定额', prop: '日定额', width: '91' },
+  { label: '达标定额', prop: '达标定额', width: '105' },
+  { label: '千件工价', prop: '千件工价', width: '105' },
+  { label: '补产标准', prop: '补产标准', width: '105' },
+  { label: '个人计件工资', prop: '个人计件工资', width: '135' },
+  { label: '个人加班工资', prop: '个人加班工资', width: '135' },
+  { label: '个人比例', prop: '个人比例', width: '105' },
+  { label: '装版工时', prop: '装版工时', width: '105' },
+  { label: '保养工时', prop: '保养工时', width: '105' },
+  { label: '打样工时', prop: '打样工时', width: '105' },
+  { label: '分摊计时', prop: '分摊计时', width: '105' },
+  { label: '计时补差', prop: '计时补差', width: '105' },
 ]
 const tableData1 = reactive([])
 const tableData2 = reactive([])

+ 66 - 50
src/view/performance/chejianbaogong.vue

@@ -321,7 +321,7 @@
           </el-tabs>
           </el-dialog>
 
-          <el-dialog v-model="detailShow" style="width: 140vh" lock-scroll :before-close="closeDetailShow" title="机台班组维护" destroy-on-close>
+          <el-dialog v-model="detailShow" style="width: 105vh" lock-scroll :before-close="closeDetailShow" title="机台班组维护" destroy-on-close>
             <el-table ref="multipleTable"
                         :row-style="{ height: '20px' }"
                         :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
@@ -569,8 +569,8 @@
 			</div>
 			<div style="height: 17vh; width: 15vh;margin-top: 5vh;">
 				<el-button type="text"></el-button>
-				 <el-button style="margin-bottom: 5px;" @click="addBz" >新增</el-button>
-				 <el-button  style="margin-bottom: 1vh;" @click="selectBz" >更新当前班组</el-button>
+				 <el-button style="margin-bottom: 1vh; width:10vh" @click="addBz" >新         增</el-button>
+				 <el-button  style="margin-bottom: 1vh;width:10vh" @click="selectBz" >更新当前班组</el-button>
 <!--				 <el-button style="margin-bottom: 1vh;" @click="delBz" >删除当前班组</el-button>-->
 			</div>
 			</div>
@@ -579,7 +579,7 @@
 
 
 
-		<el-dialog v-model="complaintsShow" style="width: 140vh; height:78vh;" lock-scroll :before-close="closecomplaintsShow" title="产品客诉查询" destroy-on-close>
+		<el-dialog v-model="complaintsShow" style="width: 100vh; height:78vh;" lock-scroll :before-close="closecomplaintsShow" title="产品客诉查询" destroy-on-close>
 		  <el-table ref="multipleTable"
 		           :row-style="{ height: '20px' }"
 		           :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
@@ -687,7 +687,7 @@
 		  title="设备点检记录"
 		  destroy-on-close
 		  width="150vh"
-		  style="height: 78vh;"
+		  style="width: 100vh; height:78vh;"
 		>
 		  <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
 		    <el-col :span="4" style="margin-bottom: 0px;margin-top: 0px;">
@@ -721,7 +721,7 @@
 		        highlight-current-row="true"
 				:show-overflow-tooltip="true"
 		        border  @row-click="dianjianhandle"
-		        style="width:100%; height:45vh; margin-top: 5px;"
+		        style="width:70vh; height:45vh; margin-top: 5px;"
 		        @row-dblclick="handleSelectClick"
 		        :row-class-name="rowClassName"
 		      >
@@ -786,7 +786,7 @@
 		  title="制程检验记录"
 		  destroy-on-close
 		  width="160vh"
-		  style="height: 78vh;"
+		  style="width: 100vh; height:78vh;"
 		>
 		  <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
 		    <el-col :span="5" style="margin-top=0px; margin-bottom: 0px;">
@@ -838,9 +838,9 @@
 		            :data="zhibiaoselectData"
 		            row-key="ID"
 		            highlight-current-row="true"
-		          				:show-overflow-tooltip="true"
+		          	:show-overflow-tooltip="true"
 		            border  @row-click="dianjianhandle"
-		            style="width:100%; height:40vh;"
+		            style="width:70vh; height:40vh;"
 		            @row-dblclick="handleSelectClick"
 		            :row-class-name="rowClassName"
 		          >
@@ -898,7 +898,7 @@
 		            highlight-current-row="true"
 		          				:show-overflow-tooltip="true"
 		            border  @row-click="dianjianhandle"
-		            style="width:100%; height:40vh;"
+		            style="width:70vh; height:40vh;"
 		            @row-dblclick="handleSelectClick"
 		            :row-class-name="rowClassName"
 		          >
@@ -937,7 +937,7 @@
 		  title="换型清场"
 		  destroy-on-close
 		  width="145vh"
-		  style="height: 78vh;"
+		  style="width: 100vh; height:78vh;"
 		>
       <header>
         <div style="height: 50px;margin-left: 1vh;">
@@ -959,7 +959,7 @@
 		    <div v-if="huanxingstatus" style="flex: 0; margin: 0;">
 		      <el-tabs v-model="activNames" type="card" @tab-click="handleClick">
 		        <el-tab-pane label="换型清场明细信息" @click="showTable('换型清场明细信息')"  name="first">
-					<div style="width:110vh">
+					<div style="width:70vh">
 						<el-descriptions :column="9" border>
 						  <el-descriptions-item :span="9">
 							  <el-row :gutter="24" style="margin-bottom: 0px;margin-top: 0px;">
@@ -1115,7 +1115,7 @@
 		            highlight-current-row="true"
 		          	:show-overflow-tooltip="true"
 		            border  @row-click="dianjianhandle"
-		            style="width:115vh; height:50vh;"
+		            style="width:70vh; height:50vh;"
 		            @row-dblclick="handleSelectClick"
 		            :row-class-name="rowClassName"
 		          >
@@ -1236,7 +1236,7 @@
 		  title="印版领退"
 		  destroy-on-close
 		  width="130vh"
-		  style="height: 78vh;"
+		  style="width: 120vh; height:78vh;"
 		>
       <header>
         <div style="height: 50px;margin-left: 1vh;">
@@ -1264,7 +1264,7 @@
 
 		  <div style="display: flex;">
 		    <div style="flex: 1;">
-		      <el-aside width="28vh" style="margin: 0;">
+		      <el-aside width="20vh" style="margin: 0;">
 		        <div class="JKWTree-tree" style="height: 100%; border-right: 1px solid #ebeef5;">
 		          <el-tree :data="yinbantreeData" :props="defaultProps" highlight-current="true"
 		            @node-click="yinbanNodeClick" @node-dblclick="handleNodeDoubleClick"></el-tree>
@@ -1279,7 +1279,7 @@
 		        highlight-current-row="true"
 				    :show-overflow-tooltip="true"
 		        border  @row-click="dianjianhandle"
-		        style="width:100vh; height:50vh;"
+		        style="width:90vh; height:50vh;"
 		        @row-dblclick="handleSelectClick"
 		        :row-class-name="rowClassName"
             @selection-change="handleybSelectionChange"
@@ -1359,7 +1359,7 @@
 		  title="管理人员现场巡查记录"
 		  destroy-on-close
 		  width="162vh"
-		  style="height: 78vh;"
+		  style="width: 120vh; height:78vh;"
 		>
 		  <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
 		    <el-col :span="4" style="margin-top=0px; margin-bottom: 0px;">
@@ -1435,7 +1435,7 @@
 		        row-key="ID"
 		        highlight-current-row="true"
 		        border  @row-click="dianjianhandle"
-		        style="width:138vh; height:42vh;"
+		        style="width:90vh; height:42vh;"
 		        @row-dblclick="handleSelectClick"
 		        :row-class-name="rowClassName"
 			    	:show-overflow-tooltip="true"
@@ -1517,7 +1517,7 @@
 		  v-model="chanliangVisible"
 		  title="日产量上报"
 		  destroy-on-close
-		  width="160vh"
+		  width="130vh"
 		  style="height: 110vh;"
 		>
 		  <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
@@ -1626,12 +1626,12 @@
 				</el-col>
 				<el-col :span="3" style="margin-top=0px; margin-bottom: 1px;">
 				<el-form-item label="联数" prop="" style="margin-top=0px; margin-bottom: 1px;">
-				  <el-input v-model="formData3.联数" id="联数" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '来料异常', '联数', '墨色')"   placeholder="" />
+				  <el-input v-model="formData3.Gy0_ls" id="联数" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '来料异常', '联数', '墨色')"   placeholder="" />
 				</el-form-item>
 				</el-col>
 				<el-col :span="3" style="margin-top=0px; margin-bottom: 1px;">
 				<el-form-item label="墨色" prop="" style="margin-top=0px; margin-bottom: 1px;">
-				  <el-input v-model="formData3.墨色" id="墨色" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '联数', '墨色', '装版总时长')"   placeholder="" />
+				  <el-input v-model="formData3.Gy0_ms" id="墨色" style="margin-top=0px; margin-bottom: 1px;" @keydown="ent($event, '联数', '墨色', '装版总时长')"   placeholder="" />
 				</el-form-item>
 				</el-col>
 			  </el-row>
@@ -1863,7 +1863,7 @@
               v-model="bzchanliangVisible"
               title="班组产量修改"
               destroy-on-close
-              width="160vh"
+              width="140vh"
               style="height: 60vh;"
           >
             <el-row :gutter="24" style="margin-top=0px; margin-bottom: 1px;">
@@ -2645,27 +2645,14 @@ const SetMachineTeams = async(row) => {
   }
 }
 const clickybupdate = async (row) => {
-  formData.value.班组Id=row.ID
-  BZMC.value=row.班组号
-  console.log(row)
-  let sczl_bhkey=''
-  let sczl_namekey=''
-  for (let i = 1; i <= 10; i++) {
-    sczl_bhkey = `sczl_bh${i}`
-    sczl_namekey = `sczl_name${i}`
-    formData.value[sczl_bhkey] = '';
-    formData.value[sczl_namekey] = '';
-  }
-  for (let i = 0; i < Object.keys(row).length-4; i++) {
-    sczl_bhkey=`sczl_bh${i+1}`
-    sczl_namekey=`sczl_name${i+1}`
-    formData.value[sczl_bhkey] =row[i].split(' ')[0];
-    formData.value[sczl_namekey] = row[i].split(' ')[1];
-    console.log(formData)
-
-  }
-  console.log(formData)
-
+	
+	ElMessageBox.confirm('确定切换当前班组人员为工作班组人员吗?', '提示', {
+	    confirmButtonText: '确定',
+	    cancelButtonText: '取消',
+	    type: 'warning'
+	}).then(() => {
+	        setTeams(row)
+	    })
   // const response = await facilityWorklist({machine:JTMC});
   // if (response.code === 0) {
   //   sbzyData.splice(0, sbzyData.length, ...response.data);
@@ -2684,6 +2671,32 @@ const clickybupdate = async (row) => {
   //   }
   // }
 }
+const setTeams = async(row) => {
+	
+	
+	
+	formData.value.班组Id=row.ID
+	BZMC.value=row.班组号
+	console.log(row)
+	let sczl_bhkey=''
+	let sczl_namekey=''
+	for (let i = 1; i <= 10; i++) {
+	  sczl_bhkey = `sczl_bh${i}`
+	  sczl_namekey = `sczl_name${i}`
+	  formData.value[sczl_bhkey] = '';
+	  formData.value[sczl_namekey] = '';
+	}
+	for (let i = 0; i < Object.keys(row).length-4; i++) {
+	  sczl_bhkey=`sczl_bh${i+1}`
+	  sczl_namekey=`sczl_name${i+1}`
+	  formData.value[sczl_bhkey] =row[i].split(' ')[0];
+	  formData.value[sczl_namekey] = row[i].split(' ')[1];
+	  console.log(formData)
+	
+	}
+	console.log(formData)
+
+}
 //检验记录
 const InspectionRecord = async () => {
   JYData=[]
@@ -3232,7 +3245,8 @@ function oncomplaints() {
 const Complaints = async() => {
 	complaintsData.value=[]
 	selectedRowData.value={}
-    const res = await ComplaintRecord({productCode :formData.value.productCode})
+    // const res = await ComplaintRecord({productCode :formData.value.productCode})
+	const res = await ComplaintRecord({productCode :100601011})
     if (res.msg === '成功') {
 		complaintsData.value=res.data;
 		selectedRowData.value=complaintsData.value[0]
@@ -3488,8 +3502,8 @@ const GetMachineMac = async (addr) => {
   // const response = await getMachineMac({ addr: '68-ED-A4-26-60-D1' });
   if (response.code === 0) {
     if(response.data===null){
-      JTMC = 'MQ07#';
-      CJMC='烫模车间';
+      JTMC = 'JY01#';
+      CJMC='胶印车间';
       FacilityProduction(addr);
     }else{
       // 将接口返回的数据添加到树型结构中
@@ -3634,6 +3648,8 @@ const ReportInfo = async () => {
       sczl_rate8: classInfo.sczl_rate8,
       sczl_rate9: classInfo.sczl_rate9,
       sczl_rate10: classInfo.sczl_rate10,
+	  Gy0_ms:order_info.Gy0_ms,
+	  Gy0_ls:order_info.Gy0_ls,
     };
     formData3.value = { ...formData3.value, ...newData };
 	chanliangselectData.splice(0, chanliangselectData.length, ...response.data.bom)
@@ -3690,8 +3706,8 @@ const SubmitDailyProduction = async () => {
 	sczl_zccp: formData3.value.制程次品,
 	last_fp: formData3.value.前工序废,
 	less_sl: formData3.value.来料异常,
-	sczl_ls: formData3.value.联数,
-	sczl_ms: formData3.value.墨色,
+	sczl_ls: formData3.value.Gy0_ls,
+	sczl_ms: formData3.value.Gy0_ms,
 	zb_time: formData3.value.装版总时长,
 	dy_time: formData3.value.打样总工时,
 	run_time: formData3.value.通电工时,
@@ -4099,8 +4115,8 @@ const formData3= ref({
 	制程次品:'',
 	前工序废:'',
 	来料异常:'',
-	联数:'',
-	墨色:'',
+	Gy0_ms:'',
+	Gy0_ls:'',
 	装版总工时:'',
 	打样总工时:'',
 	通电工时:'',

+ 151 - 0
src/view/performance/jjgzzhys.vue

@@ -0,0 +1,151 @@
+<template>
+  <div style="border: 1px black solid; width: 30%; height: 33%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);">
+    <div style="margin-top: 55px">
+      <el-form-item label="考勤年月:" class="mab" prop="keyOrder" label-width="100">
+        <el-input v-model="jjgzzhysformData.date" @keyup.enter="jgzzhysProductValue" style="width: 130px;"/>
+      </el-form-item>
+
+      <el-form-item label="从:" class="mab" prop="keyOrder" label-width="100">
+        <el-date-picker v-model="jjgzzhysformData.start_date" type="date" placeholder="选择日期" style="width: 130px;">
+        </el-date-picker>
+        &nbsp;到:&nbsp;&nbsp;
+        <el-date-picker v-model="jjgzzhysformData.end_date" type="date" placeholder="选择日期" style="width: 130px;">
+        </el-date-picker>
+      </el-form-item>
+
+      <el-form-item label="法定假日1从:" class="mab" prop="keyOrder" label-width="100">
+        <el-date-picker v-model="jjgzzhysformData.vacation_one_start" type="date" placeholder="选择日期" style="width: 130px;">
+        </el-date-picker>
+        &nbsp;&nbsp;~:&nbsp;&nbsp;
+        <el-date-picker v-model="jjgzzhysformData.vacation_one_end" type="date" placeholder="选择日期" style="width: 130px;">
+        </el-date-picker>
+      </el-form-item>
+
+      <el-form-item label="法定假日2从:" class="mab" prop="keyOrder" label-width="100">
+        <el-date-picker v-model="jjgzzhysformData.vacation_two_start" type="date" placeholder="选择日期" style="width: 130px;">
+        </el-date-picker>
+        &nbsp;&nbsp;~:&nbsp;&nbsp;
+        <el-date-picker v-model="jjgzzhysformData.vacation_two_end" type="date" placeholder="选择日期" style="width: 130px;">
+        </el-date-picker>
+      </el-form-item>
+
+
+      <div class="dialog-footer" style="text-align: right; margin-top: auto; margin-right: 20px;">
+        <el-button type="primary" @click="jjgzzhysclick">继 续</el-button>
+      </div>
+    </div>
+  </div>
+</template>
+<script setup>
+import {ref, reactive} from 'vue'
+import {
+  staffSalaryCount,
+} from '@/api/yunyin/yunying'
+import { ElMessage } from 'element-plus'
+const form = reactive({})
+const visible = ref(true)
+const jjgzzhysformData = reactive({
+  date: '',
+  start_date: '',
+  end_date: '',
+  vacation_one_start: '',
+  vacation_one_end: '',
+  vacation_two_start: '',
+  vacation_two_end: '',
+});
+//=============页面默认加载获取=========
+// 获取当前日期
+const currentDate = new Date();
+// 获取当前年份和月份
+const year = currentDate.getFullYear();
+const month = currentDate.getMonth() + 1;
+// 如果月份小于 10,补零
+const formattedMonth = month < 10 ? '0' + month : month;
+// 组合年月
+jjgzzhysformData.date = year.toString() + formattedMonth.toString();
+
+// 封装日期格式化和处理月份范围的逻辑为一个函数
+const formatAndSetDates = (yearMonth) => {
+  // 提取年份和月份
+  const yearPart = yearMonth.slice(0, 4);
+  const monthPart = yearMonth.slice(4);
+  // 构建开始日期和结束日期的字符串
+  const startDateString = `${yearPart}-${monthPart}-01`;
+  const endDateString = `${yearPart}-${monthPart}-${new Date(yearPart, monthPart, 0).getDate()}`;
+  // 设置开始日期和结束日期
+  jjgzzhysformData.start_date = startDateString;
+  jjgzzhysformData.end_date = endDateString;
+};
+
+// 初始化时调用一次
+formatAndSetDates(jjgzzhysformData.date);
+
+// 考勤年月回车时调用
+const jgzzhysProductValue = () => {
+  formatAndSetDates(jjgzzhysformData.date);
+};
+
+//考勤年月按钮 继续
+const jjgzzhysclick = async () => {
+  // console.log(jjgzzhysformData.start_date)
+  function formatDate(dateString) {
+    if (dateString === null || dateString === '') {
+      return '';
+    }
+
+    const formattedDate = new Date(dateString);
+    const year = formattedDate.getFullYear();
+    const month = String(formattedDate.getMonth() + 1).padStart(2, '0');
+    const day = String(formattedDate.getDate()).padStart(2, '0');
+
+    return `${year}-${month}-${day}`;
+  }
+  const formattedData = {
+    date: jjgzzhysformData.date,
+    start_date: formatDate(jjgzzhysformData.start_date),
+    end_date: formatDate(jjgzzhysformData.end_date),
+    vacation_one_start: formatDate(jjgzzhysformData.vacation_one_start),
+    vacation_one_end: formatDate(jjgzzhysformData.vacation_one_end),
+    vacation_two_start: formatDate(jjgzzhysformData.vacation_two_start),
+    vacation_two_end: formatDate(jjgzzhysformData.vacation_two_end)
+  };
+  console.log(formattedData)
+  //目前没有接口,先不用调用
+  // const staffSalaryCount_add = await staffSalaryCount(formattedData);
+  // if (staffSalaryCount_add.code === 0) {
+  //   ElMessage({type: 'success',message: '更新成功'})
+  // } else {
+  //   ElMessage({type: 'error',message: '更新失败'})
+  // }
+};
+</script>
+<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;
+}
+.el-tabs__header{
+  margin: 0px !important;
+}
+.gva-table-box{
+  padding: 0px !important;
+}
+.el-pagination{
+  margin-top: 0px !important;
+}
+.mab{
+  margin-bottom: 5px;
+}
+</style>
+

+ 39 - 32
src/view/performance/yuangongrigongzi.vue

@@ -50,15 +50,16 @@
               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="55" />
-			  <el-table-column align="left" sortable label="员工编号" prop="bh" width="120"/>
-              <el-table-column align="left" sortable label="员工姓名" prop="员工姓名" width="120"/>
-              <el-table-column align="left" sortable label="日期" prop="sczl_rq" width="120"/>
-              <el-table-column align="left" sortable label="计件工资" prop="计件工资" width="120"/>
-              <el-table-column align="left" sortable label="加班工资" prop="加班工资" width="160"/>
-			  <el-table-column align="left" sortable label="计时时数" prop="计时" width="160"/>
-              <el-table-column align="left" sortable label="计时工资" prop="计时工资" width="160"/>
+			   :header-cell-style="{ padding: '0px' }" 
+			   @row-click="ontable" @row-dblclick="doubleClick">
+              <el-table-column type="selection" width="40" />
+			  <el-table-column align="left" sortable label="员工编号" prop="bh" width="105"/>
+              <el-table-column align="left" sortable label="员工姓名" prop="员工姓名" width="105"/>
+              <el-table-column align="left" sortable label="日期" prop="sczl_rq" width="105"/>
+              <el-table-column align="left" sortable label="计件工资" prop="计件工资" width="105"/>
+              <el-table-column align="left" sortable label="加班工资" prop="加班工资" width="105"/>
+			  <el-table-column align="left" sortable label="计时时数" prop="计时时数" width="105"/>
+              <el-table-column align="left" sortable label="计时工资" prop="计时工资" width="105"/>
               <el-table-column align="left" sortable label="日工资合计" prop="日工资合计" width="120"/>
             </el-table>
             <!-- 分页 -->
@@ -72,31 +73,37 @@
 		  
 		  <div class="gva-table-box">
 		    <!-- 数据展示 -->
-		    <el-table ref="multipleTable" style="width: 100%" tooltip-effect="dark" :data="tableData2" row-key="ID"
-		      highlight-current-row="true" border @selection-change="handleSelectionChange" :show-overflow-tooltip="true" @row-dblclick="doubleClick">
-		      <el-table-column type="selection" width="55" />
-		  	  <el-table-column align="left" sortable label="日期" prop="sczl_rq" width="120"/>
-		      <el-table-column align="left" sortable label="工单编号" prop="sczl_gdbh" width="120"/>
+		    <el-table ref="multipleTable" 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 align="left" sortable label="日期" prop="sczl_rq" width="105"/>
+		      <el-table-column align="left" sortable label="工单编号" prop="sczl_gdbh" width="105"/>
 		      <el-table-column align="left" sortable label="产品名称" prop="Gd_cpmc" width="120"/>
 		      <el-table-column align="left" sortable label="印件及工序" prop="sczl_type" width="120"/>
-		      <el-table-column align="left" sortable label="机台编号" prop="sczl_jtbh" width="160"/>
-		      <el-table-column align="left" sortable label="班组车头产量" prop="班组车头产量" width="160"/>
-		      <el-table-column align="left" sortable label="班组换算产量" prop="班组换算产量" width="120"/>
-			  <el-table-column align="left" sortable label="工序难度系数" prop="工序难度系数" width="120"/>
-			  <el-table-column align="left" sortable label="个人计件工资" prop="个人计件工资" width="120"/>
-			  <el-table-column align="left" sortable label="个人加班工资" prop="个人加班工资" width="120"/>
-			  <el-table-column align="left" sortable label="装版工时" prop="装版工时" width="120"/>
-			  <el-table-column align="left" sortable label="保养工时" prop="保养工时" width="160"/>
-			  <el-table-column align="left" sortable label="打样工时" prop="打样工时" width="160"/>
-			  <el-table-column align="left" sortable label="异常停机工时" prop="异常停机工时" width="120"/>
-			  <el-table-column align="left" sortable label="车头产量占用机时" prop="车头产量占用机时" width="120"/>
-			  <el-table-column align="left" sortable label="日定额" prop="日定额" width="120"/>
-			  <el-table-column align="left" sortable label="达标定额" prop="达标定额" width="120"/>
-			  <el-table-column align="left" sortable label="千件工价" prop="千件工价" width="120"/>
-			  <el-table-column align="left" sortable label="补产标准" prop="补产标准" width="160"/>
-			  <el-table-column align="left" sortable label="员工编号" prop="bh" width="160"/>
-			  <el-table-column align="left" sortable label="姓名" prop="xm" width="120"/>
-			  <el-table-column align="left" sortable label="比例" prop="Rate" width="120"/>
+		      <el-table-column align="left" sortable label="机台编号" prop="sczl_jtbh" width="105"/>
+		      <el-table-column align="left" sortable label="班组车头产量" prop="班组车头产量" width="135"/>
+		      <el-table-column align="left" sortable label="班组换算产量" prop="班组换算产量" width="135"/>
+			  <el-table-column align="left" sortable label="工序难度系数" prop="工序难度系数" width="135"/>
+			  <el-table-column align="left" sortable label="个人计件工资" prop="个人计件工资" width="135"/>
+			  <el-table-column align="left" sortable label="个人加班工资" prop="个人加班工资" width="135"/>
+			  <el-table-column align="left" sortable label="装版工时" prop="装版工时" width="105"/>
+			  <el-table-column align="left" sortable label="保养工时" prop="保养工时" width="105"/>
+			  <el-table-column align="left" sortable label="打样工时" prop="打样工时" width="105"/>
+			  <el-table-column align="left" sortable label="异常停机工时" prop="异常停机工时" width="135"/>
+			  <el-table-column align="left" sortable label="车头产量占用机时" prop="车头产量占用机时" width="165"/>
+			  <el-table-column align="left" sortable label="日定额" prop="日定额" width="91"/>
+			  <el-table-column align="left" sortable label="达标定额" prop="达标定额" width="105"/>
+			  <el-table-column align="left" sortable label="千件工价" prop="千件工价" width="105"/>
+			  <el-table-column align="left" sortable label="补产标准" prop="补产标准" width="105"/>
+			  <el-table-column align="left" sortable label="员工编号" prop="bh" width="105"/>
+			  <el-table-column align="left" sortable label="姓名" prop="xm" width="105"/>
+			  <el-table-column align="left" sortable label="比例" prop="Rate" width="78"/>
 		    </el-table>
 		    <!-- 分页 -->
 		    <!-- <div class="gva-pagination">

+ 29 - 30
src/view/yunyin/shengchanguanli/gongdanshengchan.vue

@@ -6,7 +6,7 @@
           <!--          按钮部分-->
           <el-form ref="elSearchFormRef"  :model="searchInfo" class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
             <el-form-item>
-              <!--按钮 clearable-->
+              <!--按钮-->
               <el-input v-model="searchInfo" placeholder="搜索工单编号"  style="width: 180px;"></el-input>
               <el-button type="primary" title="搜索" icon="search"  @click="onSubmit"></el-button>
               <el-button type="primary" title="设置工单的状态-->【计划中】 【生产中】 【已完成】" icon="edit" @click="onStatusClick" class="bt">工单状态设置</el-button>
@@ -27,11 +27,9 @@
                 <el-button type="primary" title="可【批量设置】所选择的生产任务的生产机台" icon="edit"  @click="onjztzClick" class="bt">机组调整</el-button>
                 <el-button type="primary" title="给担负起那设备做生产任务排程" icon="edit"  @click="oncjsbpcClick" class="bt">车间设备制程排序</el-button>
               </div>
-
               <el-button type="primary" title="打印生产工单" icon="edit" @click="pd_gdprintonClick" class="bt">工单打印</el-button>
               <el-button type="primary" icon="edit" @click="pd_gxclhconClick" class="bt">工序产量核查</el-button>
               <el-button type="primary" icon="edit" @click="pd_lcdlistonClick" class="bt">流程单查询</el-button>
-
             </el-form-item>
           </el-form>
 
@@ -93,7 +91,6 @@
               </template>
             </el-table>
           </el-dialog>
-
           <!--机组调整【弹窗】-->
           <el-dialog v-model="jizuDisplay" title="机组调整" style="width: 600px;">
             <el-row class="">
@@ -174,7 +171,6 @@
             </div>
 
           </el-dialog>
-
           <!--工序产量核查【弹窗】-->
           <el-dialog v-model="pd_gxclhclist" title="工序产量核查" style="width: 100%;height: 100%;margin: 0px;padding: 0px">
             <el-button type="" @click="gxclhcCancel">退出</el-button>
@@ -204,7 +200,6 @@
               </template>
             </el-table>
           </el-dialog>
-
           <!--流程单查询【弹窗】-->
           <el-dialog v-model="pd_lcdlist" title="工单工序生产进程" style="width: 100%;height: 100%;margin: 0px;padding: 0px;">
             <div style="width: 100%;height: 100%;">
@@ -241,19 +236,18 @@
             </div>
           </el-dialog>
 
-
         </div>
       </layout-header>
 
       <layout>
         <layout-sider :resize-directions="['right']" :width="190" style="margin-right: 10px;">
           <div class="JKWTree-tree" style="height: 200px">
-            <el-tree :data="treeData" :props="defaultProps" :current-node-key="currentNodeKey" @node-click="handleNodeClick"></el-tree>
+            <el-tree :data="treeData" :props="defaultProps" class="treecolor"  :current-node-key="currentNodeKey" @node-click="handleNodeClick"></el-tree>
           </div>
         </layout-sider>
         <layout-content>
           <el-main>
-
+<!--          customTree 排程 制程  dataTree // 计划中,排产中 ,dataTree 车间-->
             <div class="gva-table-box"  v-if="treeType === 'customTree'">
               <el-table ref="multipleTable" style="width: 100%;height: 25vh"
                         :row-style="{ height: '20px' }" :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
@@ -350,6 +344,7 @@
                         :header-cell-style="{ padding: '0px' }" :highlight-current-row="true"  @row-click="chejianRowClick"
                         style="width: 100%;height: 25vh" border tooltip-effect="dark" :data="chejianData" row-key="ID" @selection-change="PC_handleChange"
               >
+                <!-- 排程列表-->
                 <el-table-column type="selection" width="30" />
                 <template v-for="item in [
                   { align:'left', title: '工单编号', prop: '工单编号', width: 85  },
@@ -366,13 +361,14 @@
                   { align:'left', title: '工序名称', prop: '工序名称', width: 120  },
                   { align:'left', title: '机组', prop: '机组', width: 90  },
                   { align:'left', title: '设备编号', prop: '设备编号', width: 90  },
-                  { align:'left', title: 'UNIQID', prop: 'UNIQID', width: 90  },
-                  { align:'left', title: '印件号', prop: '印件号', width: 90  },
-                  { align:'left', title: '工序号', prop: '工序号', width: 90  },
+                  { align:'left', title: 'GYUID', prop: 'GYUID', width: 90  },
+                  { align:'left', title: '印件号', prop: 'yjno', width: 90  },
+                  { align:'left', title: '工序号', prop: 'gxh', width: 90  },
               ]">
                   <el-table-column :align="item.align" :label="item.title" :prop="item.prop" :width="item.width" />
                 </template>
               </el-table>
+              <!-- 制程列表-->
               <el-table ref="chejianfuRef"
                         :show-overflow-tooltip="true" :row-style="{ height: '20px' }"
                         :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
@@ -405,8 +401,8 @@
                   { align:'left', title: '设备编号', prop: '设备编号', width: 90  },
                   { align:'left', title: '车间名称', prop: '车间名称', width: 90  },
                   { align:'left', title: 'GYUID', prop: 'GYUID', width: 90  },
-                  { align:'left', title: '印件号', prop: '印件号', width: 90  },
-                  { align:'left', title: '工序号', prop: '工序号', width: 90  },
+                  { align:'left', title: '印件号', prop: 'yjno', width: 90  },
+                  { align:'left', title: '工序号', prop: 'gxh', width: 90  },
               ]">
                   <el-table-column :align="item.align" :label="item.title" :prop="item.prop" :width="item.width" />
                 </template>
@@ -689,24 +685,30 @@ const tableData = ref([]);
 const _machine = ref(null);
 const treeType = ref('customTree') // dataTree // 计划中,排产中 ,dataTree 车间
 const handleNodeClick = async (node) => {
-  // console.log(node)
-  // console.log(node['$treeNodeId'])
+  // 取消所有节点的颜色
+  const allNodes = document.querySelectorAll('.treecolor .el-tree-node');
+  allNodes.forEach(node => {
+    node.querySelector('.el-tree-node__label').style.color = '';
+  });
+  // 获取点击的节点
+  const clickedNodeId = node['$treeNodeId'];
+  const clickedNode = document.querySelector(`.treecolor .el-tree-node[data-key="${clickedNodeId}"]`);
+  if (clickedNode) {
+    // 给当前点击的节点改变颜色
+    clickedNode.querySelector('.el-tree-node__label').style.color = 'red';
+  }
+
   if (node.type && node.type === '__customer') {
     treeType.value = 'customTree'
     schandleNodeClick(node)
   } else if (!node.children) {
     treeType.value = 'dataTree'
-    const custom_code = node.label;
     // 使用字符串分割获取#前面的数据
-    const dataBeforeHash = custom_code.split('#')[0].trim();
-    _machine.value = dataBeforeHash + '#';
-    // if(_machine.value && node['$treeNodeId']){
-    //   console.log(_machine.value)
-    //   console.log(node['$treeNodeId'])
-    //   return 'el-background-color';
-    // }
-    console.log('机台' + _machine.value)
+    _machine.value = node.label.split('#')[0].trim() + '#';
+    console.log('点击了机台-------' + _machine.value)
     const zhubiao = await MachineWorkOrderList({ machine:_machine.value})
+    console.log("获取出来的数据【排程↑】【制程↓】↓↓↓↓↓↓↓↓↓↓↓↓↓")
+    console.log(zhubiao)
     chejianData.value = zhubiao.data['排程'];
     chejianfuData.value = zhubiao.data['制程'];
   }
@@ -731,7 +733,7 @@ const schandleNodeClick = async (node) => {
   bottomData.value = []
   yjtableData.value = []
   gytableData.value = []
-  console.log(node.number)
+  console.log('点击了-------' + node.number)
   switch (node.number) {
     case "计划中":
       const jhz_Projectdata = await Project({status:currentNode.value,search:'',page:1,limit:30});
@@ -1613,10 +1615,7 @@ const rowContextMenu = (row) => {
 :deep(.hui-plan-usage-low div) {
   color: #8c939d !important;
 }
-/*点击车间机台*/
-:deep(.el-background-color) {
-  color: red !important;
-}
+
 /*工序状态更正颜色【蓝色】*/
 :deep(.lan-plan-usage-low div) {
   color: blue !important;

+ 188 - 72
src/view/yunyin/shengchanguanli/gongdanziliao.vue

@@ -114,7 +114,7 @@
           <el-dialog v-model="onyycpzllist" title="获取工单资料">
             <div style=" padding: 0px; align-items: center;">
               <el-form-item label="工单编号" prop="processName" class="mab">
-                <el-input v-model="yycpzlformData['gdbh']" @keyup.enter="yycpzlProductValue" style="width: 23%;" />
+                <el-input v-model="yycpzlformData['gdbh']" ref="fanganRef" @click="yycpzlProductValue({ code: 'Tab'})" @keydown="yycpzlProductValue" style="width: 23%;" />
               </el-form-item>
               <el-form-item label="客户代号" prop="processName" class="mab">
                 <el-input v-model="yycpzlformData['khdh']" disabled style="width: 23%;" />
@@ -129,6 +129,9 @@
               <el-form-item label="创建选择" class="mab" >
                 <el-checkbox disabled v-model="yycpzlformData['yjzl']">获取印件资料</el-checkbox>
                 <el-checkbox disabled v-model="yycpzlformData['gyap']">获取工艺安排</el-checkbox>
+                <el-form-item label="" prop="processName" class="mab" label-width="100" >
+                  <el-input v-model="yycpzlformData['fangan']" />
+                </el-form-item>
               </el-form-item>
             </div>
             <div slot="footer" class="dialog-footer" style="text-align: right;margin-left: 25%">
@@ -137,6 +140,19 @@
             </div>
           </el-dialog>
 
+          <el-dialog v-model="openFangan" title="请选择方案" style="width: 300px;" destroy-on-close>
+            <el-tree
+                :data="WorkOrderDetailCopesFangan"
+                :props="{ children: 'children', label: '方案'}" style="border: 1px solid #efefef; padding: 5px;"
+                node-key="方案"
+                highlight-current
+                :current-node-key="defaultSelectionFangan"
+                @node-click="setFangan"
+            >
+
+            </el-tree>
+          </el-dialog>
+
           <!--工序产量核算-->
           <el-dialog v-model="gxclhslist"   title="印件投料核算"  style="width: 20%;position: fixed; bottom: 35%; left: 35%">
             <div style="display: flex; flex-direction: column;  height: 100%;">
@@ -393,6 +409,7 @@
           <div class="JKWTree-tree" style="height: 200px">
             <h3>工单管理</h3>
             <el-tree :data="treeData.data"  @node-click="handleNodeClick"></el-tree>
+<!--            <el-tree :data="treeData.data" class="treecolor"  @node-click="handleNodeClick"></el-tree>-->
           </div>
         </layout-sider>
 
@@ -873,12 +890,14 @@
                 <div>
                   <el-form-item label="关键字:"  class="mab" prop="keyOrder">
                     <el-space>
-                      <el-input v-model="cpdh_keyword" @keyup.enter="cpdh_ProductValue" style="width: 100%;"/>
+                      <el-input v-model="cpdh_keyword" @keyup.enter="cpdh_ProductValue" style="width: 100%;" ref="addgdzlcpdhInput"/>
                       <el-button @click="gongdanSearchHandle(cpdh_keyword, '产品代号')">刷新</el-button>
                     </el-space>
                   </el-form-item>
                   <div style="border:1px solid #eee; width:100%; height: 400px; overflow-y: auto">
-                    <el-tree :data="cpdhDataList" :props="{children: 'children',label: 'name', value: '产品编号'}" @node-click="selectGongDanNode($event, '产品代号')" />
+                    <el-tree :data="cpdhDataList"
+                             :props="{children: 'children',label: 'name', value: '产品编号'}"
+                             @node-click="selectGongDanNode($event, '产品代号')" />
                   </div>
                 </div>
               </el-form>
@@ -1277,7 +1296,7 @@ import {
   getProduct, getProductGy, ProductInformationEdit, workOrderListDetail, editProduct, getOrderProcessCount, StatusEdit,
   PrintDetailDel, ProcessDetailDel,WorkOrderDetailCope,
   getGdAnnexTable,
-  gdAnnexAdd,
+  gdAnnexAdd,ProductCopeDetail,WorkOrderDetailListCope,
   gdAnnexDel,
 } from "@/api/yunyin/yunying";
 import PrintPage from './components/print.vue'
@@ -1914,15 +1933,12 @@ const selectGongDanNode = (node, type) => {
 }
 
 const xzgdzlInput =ref()
+const addgdzlcpdhInput =ref()
 const xzgdzlTree = ref()
 const currentNodeKey = ref('')
 
 //新增工单资料弹窗 键盘 input框跳转
 const add_gdzlent = async (event,id1,id2,id3) => {
-  if (id2 === '产品代号' && event.key==='Tab' || id2 === '产品代号' && event.key=== 'Enter') {
-    await _ProductCodeList()
-    cpdhModal.value = true
-  }
   if(event.keyCode === 40){
     if(id3!=''){
       document.getElementById(id3).focus()
@@ -1967,58 +1983,72 @@ const add_gdzlent = async (event,id1,id2,id3) => {
       }, 200)
     })
   }
-}
 
+  if (id2 === '产品代号' && event.key==='Tab' || id2 === '产品代号' && event.key=== 'Enter') {
+    await _ProductCodeList()
+    cpdhModal.value = true
+    //自动获取光标
+    await nextTick(() => {
+      setTimeout(() => {
+        addgdzlcpdhInput.value.focus()
+      }, 200)
+    })
+  }
+}
+let isdeFun = false
 watch(() => khdhModal.value, async v => {
   await nextTick(() => {
     if (xzgdzlTree.value !== undefined) {
-      if (v === true) {
-        document.body.addEventListener('keydown', e => {
-          if (e.code === 'Enter' && currentNodeKey.value !== '') {
-            selectGongDanNode(khdhDataList.value.find(item => item['客户编号'] == currentNodeKey.value), '客户代号')
-            return
-          }
-          if (e.code === 'ArrowDown') {
-            if (currentNodeKey.value === '') {
-              currentNodeKey.value = khdhDataList.value[0].客户编号
-            } else {
-              for(let i = 0; i < khdhDataList.value.length; i++) {
-                const item = khdhDataList.value[i]
-                if (item['客户编号'] == currentNodeKey.value) {
-                  if (khdhDataList.value[i + 1]) {
-                    currentNodeKey.value = khdhDataList.value[i + 1].客户编号
-                    break;
-                  } else {
-                    currentNodeKey.value = khdhDataList.value[0].客户编号
-                  }
+      const defun = (e) => {
+        isdeFun = true
+        if (e.code === 'Enter' && currentNodeKey.value !== '') {
+          selectGongDanNode(khdhDataList.value.find(item => item['客户编号'] == currentNodeKey.value), '客户代号')
+          return
+        }
+        if (e.code === 'ArrowDown') {
+          if (currentNodeKey.value === '') {
+            currentNodeKey.value = khdhDataList.value[0].客户编号
+          } else {
+            console.log(khdhDataList.value)
+            for(let i = 0; i < khdhDataList.value.length; i++) {
+              const item = khdhDataList.value[i]
+              if (item['客户编号'] == currentNodeKey.value) {
+                if (khdhDataList.value[i + 1]) {
+                  currentNodeKey.value = khdhDataList.value[i + 1].客户编号
+                  break;
+                } else {
+                  currentNodeKey.value = khdhDataList.value[0].客户编号
                 }
               }
             }
           }
-          if (e.code === 'ArrowUp') {
-            if (currentNodeKey.value === '') {
-              currentNodeKey.value = khdhDataList.value[khdhDataList.value.length - 1].客户编号
-            } else {
-              for(let i = 0; i < khdhDataList.value.length; i++) {
-                const item = khdhDataList.value[i]
-                if (item['客户编号'] == currentNodeKey.value) {
-                  if (khdhDataList.value[i - 1]) {
-                    currentNodeKey.value = khdhDataList.value[i - 1].客户编号
-                    break;
-                  } else {
-                    currentNodeKey.value = khdhDataList.value[khdhDataList.value.length - 1].客户编号
-                  }
+        }
+        if (e.code === 'ArrowUp') {
+          if (currentNodeKey.value === '') {
+            currentNodeKey.value = khdhDataList.value[khdhDataList.value.length - 1].客户编号
+          } else {
+            for(let i = 0; i < khdhDataList.value.length; i++) {
+              const item = khdhDataList.value[i]
+              if (item['客户编号'] == currentNodeKey.value) {
+                if (khdhDataList.value[i - 1]) {
+                  currentNodeKey.value = khdhDataList.value[i - 1].客户编号
+                  break;
+                } else {
+                  currentNodeKey.value = khdhDataList.value[khdhDataList.value.length - 1].客户编号
                 }
               }
             }
           }
-        })
+        }
+      }
+      if (v === true) {
+        isdeFun || document.body.addEventListener('keydown', defun)
+        isdeFun && document.body.removeEventListener('keydown', defun)
       } else {
-        document.body.removeEventListener('keydown')
+        document.body.removeEventListener('keydown', defun)
       }
     }
   })
-
 })
 
 // =========== 新增印件资料 ===========
@@ -2684,8 +2714,10 @@ const yycpzlformData = reactive({
   yjzl:true,
   gyap: true,
   gyfa: '',
+  fangan: 'A',
 });
 const onyycpzllist = ref(false);
+const fanganRef = ref()
 //引用产品资料【按钮】
 const onyycpzlclick = () => {
   if(_Gd_gdbh.value == null){
@@ -2698,55 +2730,124 @@ const onyycpzlclick = () => {
   }
 };
 //引用产品资料【回车】
-const yycpzlProductValue = async () => {
-  if(yycpzlformData['gdbh'] == null || yycpzlformData['gdbh'] == ''){
-    ElMessage({type: 'warning',message: '工单那不能为空'})
-    return false;
+const yycpzlProductValue = async (e) => {
+  if (e.code === 'Tab') {
+    if (yycpzlformData['gdbh'] == null || yycpzlformData['gdbh'] == '') {
+      ElMessage({ type: 'warning', message: '工单那不能为空' })
+      return false;
+    }
+    await _WorkOrderDetailCopedata();
+    fanganKeyDown()
   }
-  _WorkOrderDetailCopedata();
 };
+
+const yyzltableData = ref([]);
+const WorkOrderDetailCopesFangan = ref([])
+const defaultSelectionFangan = ref()
 //引用产品资料->获取产品资料
 const _WorkOrderDetailCopedata = async ()=>{
   let search = yycpzlformData['gdbh'];
-  console.log(search)
-  // const ProductInformations = await ProductInformation({workOrder:search});
-  const WorkOrderDetailCopes = await WorkOrderDetailCope({search:search});
-  console.log(WorkOrderDetailCopes);
-  // if(ProductInformations.msg === '未找到工单信息'){
-  //   yycpzlformData['khdh'] = '';
-  //   yycpzlformData['khmc'] = '';
-  //   yycpzlformData['cpdh'] = '';
-  //   yycpzlformData['cpmc'] =  '';
-  //   ElMessage({type: 'warning',message: '未找到工单信息'})
-  //   return false;
-  // }else{
-  //   yycpzlformData['gdbh'] = ProductInformations.data['工单编号'];
-  //   yycpzlformData['khdh'] = ProductInformations.data['客户代号'];
-  //   yycpzlformData['khmc'] = ProductInformations.data['客户名称'];
-  //   yycpzlformData['cpdh'] = ProductInformations.data['产品代号'];
-  //   yycpzlformData['cpmc'] = ProductInformations.data['产品名称'];
-  // }
+  // 2403725 是带两个方案的
+  const WorkOrderDetailCopes = await ProductCopeDetail({workorder:search});
+  console.log(WorkOrderDetailCopes)
+  fanganRef.value.focus()
+  if(WorkOrderDetailCopes.msg === '未找到工单信息'){
+    yycpzlformData['khdh'] = '';
+    yycpzlformData['khmc'] = '';
+    yycpzlformData['cpdh'] = '';
+    yycpzlformData['cpmc'] =  '';
+    ElMessage({type: 'warning',message: '未找到工单信息'})
+    return false;
+  }else{
+    yycpzlformData['gdbh'] = WorkOrderDetailCopes.data['工单编号'];
+    yycpzlformData['khdh'] = WorkOrderDetailCopes.data['客户编号'];
+    yycpzlformData['khmc'] = WorkOrderDetailCopes.data['客户名称'];
+    yycpzlformData['cpdh'] = WorkOrderDetailCopes.data['产品编号'];
+    yycpzlformData['cpmc'] = WorkOrderDetailCopes.data['产品名称'];
+    yycpzlformData['fangan'] = WorkOrderDetailCopes.data['方案'][0]['方案'];
+    defaultSelectionFangan.value = WorkOrderDetailCopes.data['方案'][0]['方案']
+    WorkOrderDetailCopesFangan.value = WorkOrderDetailCopes.data['方案']
+  }
+}
+
+const setFangan = (node) => {
+  yycpzlformData['fangan'] = node['方案']
+  defaultSelectionFangan.value = node['方案']
+  document.removeEventListener('keydown', () => {})
+  openFangan.value = false
+}
+
+const openFangan = ref(false)
+const fanganKeyDown = () => {
+  //2403725
+  if (WorkOrderDetailCopesFangan.value.length > 1) {
+    openFangan.value = true
+    document.addEventListener('keydown', (e) => {
+      let currentIndex
+      WorkOrderDetailCopesFangan.value.map( (item, index) => {
+        if (item['方案'] === defaultSelectionFangan.value[0]) {
+          currentIndex = index
+        }
+      })
+      if (e.code === 'ArrowDown') {
+        if (WorkOrderDetailCopesFangan.value[currentIndex + 1]) {
+          defaultSelectionFangan.value = WorkOrderDetailCopesFangan.value[currentIndex + 1]['方案']
+        } else {
+          defaultSelectionFangan.value = WorkOrderDetailCopesFangan.value[0]['方案']
+        }
+      }
+      if (e.code === 'ArrowUp') {
+        if (WorkOrderDetailCopesFangan.value[currentIndex - 1]) {
+          defaultSelectionFangan.value = WorkOrderDetailCopesFangan.value[currentIndex - 1]['方案']
+        } else {
+          defaultSelectionFangan.value = WorkOrderDetailCopesFangan.value[WorkOrderDetailCopesFangan.value.length - 1]['方案']
+        }
+      }
+      if (e.code === 'Enter') {
+        yycpzlformData['fangan'] = defaultSelectionFangan.value
+        document.removeEventListener('keydown', (e) => {
+          console.log(e)
+        })
+        openFangan.value = false
+      }
+    })
+  }
 }
-//引用产品资料【执行】
+//引用产品资料【执行】按钮
 const yycpzlhandleConfirm = async () => {
   _ProductInformationEdit();
 };
 //引用产品资料->获取产品资料
 const _ProductInformationEdit = async ()=>{
+  console.log(yycpzlformData)
+  if(yycpzlformData['gdbh'] === null || yycpzlformData['gdbh'] === undefined){
+    ElMessage({type: 'warning', message: '工单编号为空'});
+    return false;
+  }
+  if(yycpzlformData['cpdh'] === null || yycpzlformData['cpdh'] === undefined){
+    ElMessage({type: 'warning', message: '产品代号为空'});
+    return false;
+  }
+  if(yycpzlformData['fangan'] === null || yycpzlformData['fangan'] === undefined){
+    ElMessage({type: 'warning', message: '工艺方案为空'});
+    return false;
+  }
   let params = {}
-  params.oldWorkOrder = _Gd_gdbh.value;
-  params.newWorkOrder = yycpzlformData['gdbh'];
+  params.workorder = yycpzlformData['gdbh'];
+  params.productCode = yycpzlformData['cpdh'];
+  params.option = yycpzlformData['fangan'];
+  console.log(params)
   try {
-    const ProductInformationEditdata = await ProductInformationEdit(params);
+    const ProductInformationEditdata = await WorkOrderDetailListCope(params);
     if (ProductInformationEditdata.code === 0) {
       ElMessage({type: 'success', message: '更新成功'})
+      onyycpzllist.value = false;
     } else {
       ElMessage({type: 'error',message: '更新失败'})
     }
   } catch (error) {
     console.error(error);
   }
-  onyycpzllist.value = false;
 }
 //引用产品资料【放弃】
 const yycpzlhandleCancel = () => {onyycpzllist.value = false;};
@@ -2783,6 +2884,21 @@ DataListdata();
 const tableData = reactive([])
 const _Gd_khdh = ref(null)
 const handleNodeClick = async (node) => {
+  // // 取消所有节点的颜色
+  // const allNodes = document.querySelectorAll('.treecolor .el-tree-node');
+  // allNodes.forEach(node => {
+  //   node.querySelector('.el-tree-node__label').style.color = '';
+  // });
+  // // 获取点击的节点
+  // const clickedNodeId = node['$treeNodeId'];
+  // console.log(clickedNodeId);
+  // const clickedNode = document.querySelector(`.treecolor .el-tree-node[data-key="${clickedNodeId}"]`);
+  // if (clickedNode) {
+  //   console.log(clickedNode);
+  //   // 给当前点击的节点改变颜色
+  //   clickedNode.querySelector('.el-tree-node__label').style.color = 'red';
+  // }
+
   searchInfo.value = '';
   gytableData.value = [];
   yjtableData.value = [];

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 385 - 260
src/view/yunyin/shengchanguanli/shebeiyunxing.vue


Vissa filer visades inte eftersom för många filer har ändrats