Lexie 1 éve
szülő
commit
cf4e15d590

+ 2 - 1
package.json

@@ -38,7 +38,8 @@
         "vue-contextmenu": "^1.5.11",
         "vue-echarts": "^6.6.8",
         "vue-plugin-hiprint": "^0.0.56",
-        "vue-router": "^4.2.4"
+        "vue-router": "^4.2.4",
+        "xlsx": "^0.18.5"
     },
     "devDependencies": {
         "@arco-design/web-vue": "^2.54.3",

+ 22 - 0
src/utils/excel.js

@@ -0,0 +1,22 @@
+import { utils, writeFile } from "xlsx";
+
+/**
+ * 导出 excel 文件
+ * @param array JSON 数组
+ * @param sheetName 第一张表名
+ * @param fileName 文件名
+ */
+export function exportExcelFile(
+  array = [],
+  sheetName = "sheet1",
+  fileName = "example.xlsx"
+) {
+  const jsonWorkSheet = utils.json_to_sheet(array);
+  const workBook = {
+    SheetNames: [sheetName],
+    Sheets: {
+      [sheetName]: jsonWorkSheet,
+    },
+  };
+  return writeFile(workBook, fileName);
+}

+ 4 - 1
src/view/login/index.vue

@@ -265,6 +265,7 @@ const GetAddr = () => {
 GetAddr();
 
 
+
 const formdata=ref({
 	username: "JY01#",
 	password: "123456",
@@ -280,4 +281,6 @@ const formdata=ref({
 //   captchaId: "0FZfnUtAOrdXvTETkJRc",
 //   openCaptcha: false,
 // });
-</script>
+</script>
+
+

+ 5 - 5
src/view/performance/12-orderAccounting/componets/gdcjstj.vue

@@ -74,11 +74,11 @@ const handlePrint1 = async() => {
       'sjtl': `${parseFloat(data['实际投料']).toFixed(4)} 万张`,
       'rcrq': data['warehousing_date'],
       'rchj': data['warehousing_num'],
-      'clf': data['material_waste'],
-      'wff': data['waste_out'],
-      'ltcl': data['minor_processing'],
+      'clf': data['材料废'],
+      'wff': data['外发废'],
+      'ltcl': data['零头处理'],
       'zcf': data['zcfp'],
-      'zjf': data['waste_quality'],
+      'zjf': data['工单质检废'],
       'wxs': data['intangible_loss'],
       'mbhgl': data['target_rate'],
       'sjhgl': data['real_rate'],
@@ -88,7 +88,7 @@ const handlePrint1 = async() => {
       'total4': data['total']['waste_intangible'],
       'total5': data['total']['total_waste'],
       'total6': data['total']['loss'],
-      // 'total7': data['total'][''],
+      'total7': data['total']['reward'],
       'table': data['gy_data'].map(item => ({
         'gxmc': `${item.Gy0_yjno}${item.Gy0_gxh === '' ? '' : '-' + item.Gy0_gxh}${item.Gy0_gxmc === '' ? '' : '-' + item.Gy0_gxmc}${item.Add_gxmc === '' ? '' : '-' + item.Add_gxmc}`.substring(0, 20),
         'jhcl': item['Gy0_计划接货数'],

+ 37 - 0
src/view/performance/12-orderAccounting/index.vue

@@ -95,6 +95,14 @@
               >流程单查询
               </el-button>
 
+              <el-button
+                type="primary"
+                icon="edit"
+                class="bt"
+                @click="testExcel"
+              >导出测试
+              </el-button>
+
             </el-form-item>
           </el-form>
 
@@ -359,6 +367,7 @@ import Detail from '@/view/performance/12-orderAccounting/componets/detail.vue'
 import Hjfpfb from './componets/hjfpfb.vue'
 import PrintPage from '@/view/yunyin/shengchanguanli/components/print.vue'
 import { reactive } from 'vue'
+import { exportExcelFile } from '@/utils/excel'
 
 // 弹窗
 const dialogGdcjstj = ref(false)
@@ -553,6 +562,34 @@ const pd_lcd_handleNodeClick = async(node) => {
   console.log(getOrderProcessRight_list)
   processList.value = getOrderProcessRight_list.data
 }
+
+const testExcel = () => {
+  const data = [
+  {
+      '第一列': '111',
+      '第二列': '222',
+      '第三列': '333',
+      '第四列': '444',
+    },
+    {
+      '第一列': '111',
+      '第二列': '222',
+      '第三列': '333',
+    },
+    {
+      '第一列': '111',
+      '第二列': '222',
+      '第三列': '333',
+    },
+    {
+      '第一列': '111',
+      '第二列': '222',
+      '第三列': '333',
+    },
+
+  ]
+  exportExcelFile(data);
+}
 </script>
 
 <style scoped>

+ 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([])

+ 6 - 6
src/view/performance/jjgzzhys.vue

@@ -111,12 +111,12 @@ const jjgzzhysclick = async () => {
   };
   console.log(formattedData)
   //目前没有接口,先不用调用
-  // const staffSalaryCount_add = await staffSalaryCount(formattedData);
-  // if (staffSalaryCount_add.code === 0) {
-  //   ElMessage({type: 'success',message: '更新成功'})
-  // } else {
-  //   ElMessage({type: 'error',message: '更新失败'})
-  // }
+  const staffSalaryCount_add = await staffSalaryCount(formattedData);
+  if (staffSalaryCount_add.code === 0) {
+    ElMessage({type: 'success',message: '更新成功'})
+  } else {
+    ElMessage({type: 'error',message: '更新失败'})
+  }
 };
 </script>
 <style scoped>

+ 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">

+ 6 - 13
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,12 +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>
 
@@ -94,7 +91,6 @@
               </template>
             </el-table>
           </el-dialog>
-
           <!--机组调整【弹窗】-->
           <el-dialog v-model="jizuDisplay" title="机组调整" style="width: 600px;">
             <el-row class="">
@@ -175,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>
@@ -205,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%;">
@@ -253,7 +247,7 @@
         </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' }"
@@ -698,10 +692,8 @@ const handleNodeClick = async (node) => {
   });
   // 获取点击的节点
   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';
   }
@@ -713,9 +705,10 @@ const handleNodeClick = async (node) => {
     treeType.value = 'dataTree'
     // 使用字符串分割获取#前面的数据
     _machine.value = node.label.split('#')[0].trim() + '#';
-    console.log('机台-------' + _machine.value)
+    console.log('点击了机台-------' + _machine.value)
     const zhubiao = await MachineWorkOrderList({ machine:_machine.value})
-    // console.log(zhubiao)
+    console.log("获取出来的数据【排程↑】【制程↓】↓↓↓↓↓↓↓↓↓↓↓↓↓")
+    console.log(zhubiao)
     chejianData.value = zhubiao.data['排程'];
     chejianfuData.value = zhubiao.data['制程'];
   }
@@ -740,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});

+ 23 - 9
src/view/yunyin/shengchanguanli/gongdanziliao.vue

@@ -890,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>
@@ -1889,7 +1891,9 @@ const cpdh_ProductValue = async (v) => {
 const _gClientList = async (v = '')=>{
   try {
       const ClientListdata = await ClientList({search: v});
-      khdhDataList.value = ClientListdata.data
+    console.log("客户列表数据↓↓↓↓↓↓↓↓")
+    console.log(ClientListdata)
+    khdhDataList.value = ClientListdata.data
   } catch (error) {
     console.error(error);
   }
@@ -1898,7 +1902,9 @@ const _gClientList = async (v = '')=>{
 const _ProductCodeList = async (v = '')=>{
   try {
       const ProductCodeListdata = await ProductCodeList({cilent: v});
-      cpdhDataList.value = ProductCodeListdata.data
+    console.log("产品代号列表数据↓↓↓↓↓↓↓↓")
+    console.log(ProductCodeListdata)
+    cpdhDataList.value = ProductCodeListdata.data
   } catch (error) {
     console.error(error);
   }
@@ -1931,15 +1937,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,6 +1970,7 @@ const add_gdzlent = async (event,id1,id2,id3) => {
   }
 
   if (id2 === '客户代号' && event.key==='Tab' || id2 === '客户代号' && event.key=== 'Enter') {
+    khdhModal.value = true
     await _gClientList(add_gdscgdformData['客户代号'])
     if (khdhDataList.value != null) {
       const row = khdhDataList.value.find(item => item.客户编号 === add_gdscgdformData['客户代号'])
@@ -1984,6 +1988,17 @@ 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 => {
@@ -2039,7 +2054,6 @@ watch(() => khdhModal.value, async v => {
       }
     }
   })
-
 })
 
 // =========== 新增印件资料 ===========