zck2422052614 преди 1 година
родител
ревизия
89074f55ef

+ 694 - 0
src/view/DecisionSupport/shengchanzhouqi/shengchanzhouqitongji.vue

@@ -0,0 +1,694 @@
+<template>
+    <div>
+      <layout>
+        <layout-header>
+          <div class="">
+            <!--          按钮部分-->
+            <el-form ref="elSearchFormRef"   class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
+              <el-form-item>
+                <el-input v-model="searchInfo" placeholder="搜索员工编号或员工姓名" clearable style="width: 200px;margin: 5px"></el-input>
+                <el-button type="primary" icon="search" @click="onSubmit" style="margin: 5px">查询</el-button>
+                <el-button type="primary"  @click="onAttendance" style="margin: 5px">月度公休记录维护</el-button>
+			          <el-button type="primary" icon="edit"   @click="cp_gdprintonClick" class="bt" title="打印生产工单" >工单打印</el-button>
+                <el-button disabled type="primary" icon="Download" @click="exportToExcel" style="margin: 5px;float: right;">导出到Excel</el-button>
+			          <el-button type="primary" icon="edit"   @click="gd_gxclhconClick"  class="bt" title="工序产量核查">工序产量核查</el-button>
+                <el-dialog v-model="dialogexportToExcel" disabled title="员工基本资料导出" width="50%">
+                </el-dialog>
+              </el-form-item>
+            </el-form>
+          </div>
+        </layout-header>
+  
+  
+        <layout>
+          <!--    左侧树侧形结构-->
+          <layout-sider :resize-directions="['right']" :width="190" style="margin-right: 10px;">
+          <div class="JKWTree-tree" style="height: 200px">
+            <h3>日期</h3>
+            <el-tree :data="treeData" class="treecolor"   @node-click="handleNodeClick"></el-tree>
+          </div>
+        </layout-sider>
+  
+          <!-- 右侧区域 -->
+          <layout-content >
+          <el-main>
+            <div class="gva-table-box">
+              <!-- 表格数据 -->
+              <el-table ref="multipleTable" style="width: 100%;height: 65vh" tooltip-effect="dark"
+                        :row-style="{ height: '20px' }"  :header-cell-style="{ padding: '0px' }"
+                        :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+                        :data="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  sortable align="center" label="生产分类" prop="生产分类"  width="120" />
+                <el-table-column  sortable align="left" label="工单编号" prop="工单编号"  width="120"/>
+                <el-table-column  sortable  align="center" 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="订单数量" width="110"  />
+                <el-table-column  sortable  align="left" label="实际投料" prop="实际投料" width="100" />
+                <el-table-column  sortable  align="left" label="计量单位" prop="计量单位" width="100" />
+                <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="120" />
+                <el-table-column  sortable  align="left" label="检验公休" prop="检验公休" width="120" />
+                <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="120" />
+                <el-table-column  sortable  align="left" label="接单日期" prop="接单日期" width="120" />
+                <el-table-column  sortable  align="left" label="生产开工日期" prop="生产开工日期" width="125" />
+                <el-table-column  sortable  align="left" label="模切开工日期" prop="模切开工日期" width="125" />
+                <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="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="110" />
+              </el-table>
+  
+              <!-- 分页 -->
+              <div class="gva-pagination">
+                <el-pagination layout="total" :current-page="page" :page-size="pageSize"
+                 :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
+  <!--              <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="pageSize" :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="'修改员工基本资料'" destroy-on-close>
+              <el-form :model="formDataTest" label-position="right" ref="elFormRef" :rules="rule" label-width="100px">
+                <div class="form-container">
+                  <!-- 左侧部分 -->
+                  <div class="form-column" style="width: 36%;">
+                    <el-form-item label="员工编号:" prop="employeeId" class="mab" >
+                      <el-input v-model="formDataTest['员工编号']"  placeholder="" style="width: 190px;"
+                                id="员工编号" @keydown="handleKeyDown($event, '员工编号', '在职状态', '性别')" />
+                    </el-form-item>
+                    <el-form-item label="性别:" prop="gender" class="mab">
+                      <el-input v-model="formDataTest['性别']"  placeholder="" style="width: 190px;"
+                                id="性别" @keydown="handleKeyDown($event, '性别', '员工编号', '身份证号')" />
+                    </el-form-item>
+                    <el-form-item label="身份证号:" prop="gender" class="mab">
+                      <el-input v-model="formDataTest['身份证号']"  placeholder="" style="width: 190px;"
+                                id="身份证号"  @keydown="handleKeyDown($event, '身份证号', '性别', '所在部门')" />
+                    </el-form-item>
+                    <el-form-item label="部门名称:" prop="gender"  class="mab">
+                      <el-input v-model="formDataTest['所在部门']"  placeholder="" style="width: 190px;"
+                                id="所在部门" @keydown="handleKeyDown($event, '所在部门', '身份证号', '聘用日期')" />
+                    </el-form-item>
+                    <el-form-item label="入职日期:" prop="joinDate" class="mab">
+                      <el-input v-model="formDataTest['聘用日期']"  placeholder="" style="width: 190px;"
+                                id="聘用日期" @keydown="handleKeyDown($event, '聘用日期', '所在部门', '人员类别')" />
+                    </el-form-item>
+                    <el-form-item label="人员类别:" prop="joinDate" >
+                      <el-select v-model="formDataTest['人员类别']" placeholder="" style="width: 190px;" id="人员类别"
+                                 @keydown="handleKeyDown($event, '人员类别', '聘用日期', '班次类型')"
+                      >
+                        <el-option label="生产" value="生产"></el-option>
+                        <el-option label="行政" value="行政"></el-option>
+                      </el-select>
+                    </el-form-item>
+                    <el-form-item label="班次类型:" prop="joinDate" class="mab">
+                      <el-input v-model="formDataTest['班次类型']"  placeholder="" style="width: 190px;"
+                                id="班次类型" @keydown="handleKeyDown($event, '班次类型', '人员类别', '工资表类别')" />
+                    </el-form-item>
+                    <el-form-item label="工资表类别:" prop="joinDate" class="mab">
+                      <el-select v-model="formDataTest['工资表类别']" placeholder="" style="width: 190px;"
+                                 id="工资表类别" @keydown="handleKeyDown($event, '工资表类别', '班次类型', 'U8在职')"
+                      >
+                        <el-option label="职员级计时工资表" value="职员级计时工资表"></el-option>
+                        <el-option label="另发工资" value="另发工资"></el-option>
+                        <el-option label="操作级计件工资表" value="操作级计件工资表"></el-option>
+                        <el-option label="操作级计时工资表" value="操作级计时工资表"></el-option>
+                      </el-select>
+                    </el-form-item>
+                    <el-form-item label="U8在职:" prop="joinDate" class="mab">
+                      <el-input v-model="formDataTest['U8在职']"   placeholder="" style="width: 190px;"
+                                id="U8在职" @keydown="handleKeyDown($event, 'U8在职', '工资表类别', '员工姓名')" />
+                    </el-form-item>
+                  </div>
+  
+                  <!-- 中间部分 -->
+                  <div class="form-column">
+                    <el-form-item label="员工姓名:" prop="name" class="mab" label-width="100">
+                      <el-input v-model="formDataTest['员工姓名']"  placeholder="" style="width: 190px;"
+                                id="员工姓名" @keydown="handleKeyDown($event, '员工姓名', 'U8在职', '出生日期')" />
+                    </el-form-item>
+                    <el-form-item label="出生日期:" prop="birthDate" class="mab" label-width="100">
+                      <el-input v-model="formDataTest['出生日期']"  placeholder="" style="width: 190px;"
+                                id="出生日期" @keydown="handleKeyDown($event, '出生日期', '员工姓名', '职称职务')" />
+                    </el-form-item>
+                    <el-form-item label="职务:" prop="position" class="mab" label-width="100">
+                      <el-input v-model="formDataTest['职称职务']" placeholder="" style="width: 190px;"
+                                id="职称职务" @keydown="handleKeyDown($event, '职称职务', '出生日期', '部门编码')" />
+                    </el-form-item>
+                    <el-form-item label="部门编号:" prop="position" class="mab" label-width="100">
+                      <el-input v-model="formDataTest['部门编码']" placeholder="" style="width: 190px;"
+                                id="部门编码" @keydown="handleKeyDown($event, '部门编码', '职称职务', '转正日期')" />
+                    </el-form-item>
+                    <el-form-item label="转正日期:" prop="departmentId" class="mab" label-width="100">
+                      <el-input v-model="formDataTest['转正日期']" placeholder="" style="width: 190px;"
+                                id="转正日期" @keydown="handleKeyDown($event, '转正日期', '部门编码', '扣减司龄')" />
+                    </el-form-item>
+                    <el-form-item label="扣减司龄:" prop="departmentId" class="mab" label-width="100">
+                      <el-input v-model="formDataTest['扣减司龄']" placeholder="" style="width: 190px;"
+                                id="扣减司龄" @keydown="handleKeyDown($event, '扣减司龄', '转正日期', '人员性质')" />
+                    </el-form-item>
+                    <el-form-item label="人员性质:" prop="departmentId" class="mab" label-width="100">
+                      <el-select v-model="formDataTest['人员性质']" placeholder="" style="width: 190px;"
+                                 id="人员性质" @keydown="handleKeyDown($event, '人员性质', '扣减司龄', '薪酬核算分组')"
+                      >
+                        <el-option label="退休返聘" value="退休返聘"></el-option>
+                        <el-option label="劳动合同工" value="劳动合同工"></el-option>
+                        <el-option label="借用" value="借用"></el-option>
+                        <el-option label="劳务派遣" value="劳务派遣"></el-option>
+                        <el-option label="实习生" value="实习生"></el-option>
+                      </el-select>
+                    </el-form-item>
+                    <el-form-item label="工资核算分组:" prop="joinDate" class="mab" label-width="100" >
+                      <el-input v-model="formDataTest['薪酬核算分组']"  placeholder="" style="width: 190px;"
+                                id="薪酬核算分组" @keydown="handleKeyDown($event, '薪酬核算分组', '人员性质', '在职状态')" />
+                    </el-form-item>
+                    <el-form-item label="在职状态:" prop="joinDate" class="mab" label-width="100"  >
+                      <el-input v-model="formDataTest['在职状态']" placeholder="" style="width: 190px;"
+                                id="在职状态" @keydown="handleKeyDown($event, '在职状态', '薪酬核算分组', '员工编号')" />
+                    </el-form-item>
+                  </div>
+                </div>
+  
+              </el-form>
+              <!-- 添加编辑页面取消确定按钮 -->
+                <div  style="text-align: right; ">
+                  <el-button @click="closeDialog">取消</el-button>
+                  <el-button type="primary"  @click="enterDialog">确定</el-button>
+                </div>
+            </el-dialog>
+  
+            <el-dialog v-model="AttendanceVisible" title="考勤建立" destroy-on-close width="800px" >
+              <el-row :gutter="24">
+                <el-col :span="7">
+                  <el-form-item label="年月份" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+                      <el-input v-model="Attendancevalue['month']"  style="margin-top:0px; margin-bottom: 1px;" id="年月份" @keydown="handleKeyDown($event, '法定天数', 'C类', '法定天数')" placeholder="" />
+                  </el-form-item>
+                </el-col>
+  
+                  <el-col :span="7" style="margin-top:0px; margin-bottom: 1px;">
+                  <el-form-item label="法定天数" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+                      <el-input v-model="Attendancevalue['day']"  style="margin-top:0px; margin-bottom: 1px;" @blur="getdays()" id="法定天数" @keydown="handleKeyDown($event, '法定天数', '年月份', 'A类')" placeholder="" />
+                  </el-form-item>
+                  </el-col>
+              </el-row>
+  
+  
+  
+  
+              <el-row :gutter="24">
+  
+  
+                  <el-col :span="7" style="margin-top:0px; margin-bottom: 1px;">
+                  <el-form-item label="A类(双休版)" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+                      <el-input v-model="Attendancevalue['typeA']" id="A类" @keydown="handleKeyDown($event, 'A类', '法定天数', 'B类')" style="margin-top:0px; margin-bottom: 1px;"  placeholder="" />
+                  </el-form-item>
+                  </el-col>
+              </el-row>
+  
+  
+              <el-row :gutter="24">
+  
+  
+                  <el-col :span="7" style="margin-top:0px; margin-bottom: 1px;">
+                  <el-form-item label="B类(7.5小时班)" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+                      <el-input v-model="Attendancevalue['typeB']" id="B类" @keydown="handleKeyDown($event, 'B类', 'A类', 'C类')" style="margin-top:0px; margin-bottom: 1px;"  placeholder="" />
+                  </el-form-item>
+                  </el-col>
+              </el-row>
+  
+  
+              <el-row :gutter="24">
+  
+  
+                  <el-col :span="7" style="margin-top:0px; margin-bottom: 1px;">
+                  <el-form-item label="C类(11小时班)" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+                      <el-input v-model="Attendancevalue['typeC']" id="C类" @keydown="handleKeyDown($event, 'C类', 'B类', '年月份')" style="margin-top:0px; margin-bottom: 1px;"  placeholder="" />
+                  </el-form-item>
+                  </el-col>
+              </el-row>
+  
+  
+              <template #footer>
+                <div class="dialog-footer">
+                  <el-button @click="closeDialog">取 消</el-button>
+                  <el-button type="primary" @click="AttendanceDialog">确 定</el-button>
+                </div>
+              </template>
+            </el-dialog>
+  
+  
+          </el-main>
+        </layout-content>
+        </layout>
+      </layout>
+      	<!-- 工单打印 -->
+	<PrintPage ref="printPageRef" />
+    </div>
+  </template>
+  <script>
+  export default {
+    data() {
+      return {
+        dialogFormVisible: false,
+        formDataTest: {
+          imageUrl: '' // 添加一个字段来保存上传的图片路径
+        },
+        rule: {} // 初始化rule对象
+      };
+    },
+    methods: {
+      handleKeyDown(event, currentId, prevId, 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;
+        }
+      },
+      closeDialog() {
+        // 关闭对话框的逻辑
+        this.dialogFormVisible = false;
+      },
+      enterDialog() {
+        // 确定按钮的逻辑
+        // 在这里可以执行提交表单的逻辑
+      },
+      handleFileUpload(event) {
+        // 处理文件上传逻辑
+        const file = event.target.files[0];
+        console.log(file)
+        // 模拟上传并保存文件路径
+        // 在实际应用中,您需要将文件上传到服务器并保存路径
+        this.formDataTest.imageUrl = URL.createObjectURL(file);
+        // 手动触发Vue的更新
+        this.$forceUpdate();
+      }
+    }
+  };
+  
+  </script>
+  <script setup>
+  // 全量引入格式化工具 请按需保留
+  import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
+  
+  import {ref, reactive} from 'vue'
+  import {getCustom, getDepartment, getProductData,getStaffInfo, getStaffList, ygjbzledit,clockUpdate} from '@/api/yunyin/yunying'
+  import {ElMessage} from "element-plus";
+  defineOptions({name: 'Company'})
+
+
+//=========工单打印===========
+const printPageRef = ref()
+const cp_gdprintonClick = () => {
+  printPageRef.value.open(_Gd_gdbh.value)
+}
+
+
+  // =========== 导出Excel表格 ===========
+  const exportToExcel = () => {
+    console.log('点击了导出按钮')
+    dialogexportToExcel.value = true;
+  }
+  // 导出Excel弹窗
+  const dialogexportToExcel = ref(false)
+  
+  
+  //=========工序产量核查===========
+
+
+  // 工序产量核查按钮
+const gd_gxclhconClick = async () => {
+  // if(_Gd_gdbh.value === '' || _Gd_gdbh.value === null){
+  //   ElMessage({type: 'warning',message: '请选择具体的工单,在进行操作'})
+  //   return false;
+  // }
+  // gxclhcformData['gdbh'] = _Gd_gdbh.value;
+  // gxclhcformData['yjno'] = 1;
+  // gd_gxclhclist.value = true;
+  // const response = await PrintDetailList ({workOrder:_Gd_gdbh.value});
+  // console.log(response)
+  // gdwhformData.yjno = response.data[0].no
+  // inputCpmc.value = response.data[0].name
+  // if (response.code === 0) {
+	//   const noFields = response.data.map(item => item.no);
+	//   gdwhformData.yinjian = noFields
+	// } else {
+	//   console.error('查询失败:', response.msg);
+	// }
+  // _getOrderProcessCount();
+};
+  // =========== 获取左侧树侧形结构 ===========
+  
+  const AttendanceVisible=ref(false)
+  const treeData = ref({})
+  const _department_code = ref(null)
+
+  //左侧日期数据接口
+//   const getDepartmentdata = async () => {
+//     try {
+//       const data  = await getDepartment();
+//       console.log(data)
+//       treeData.value = data.data;
+//     } catch (error) {
+//       console.error(error)
+//     }
+//   }
+//   getDepartmentdata();
+  
+  //点击左侧树形 获取右侧table列表
+  const tableData = reactive([]);
+  const _u8 = ref(null);  // U8系统的值
+  const _mes = ref(null); // MES系统的值
+
+  //点击左侧树形图
+//   const handleNodeClick = async (node) => {
+//     // 如果节点名称为 '离职工资结算中'
+//     if (node['名称'] === '离职工资结算中') {
+//       _u8.value = 1;
+//       _mes.value = 2;
+//       _department_code.value = '';
+//     }
+//     // 如果节点名称为 '离职清单'
+//     else if (node['名称'] === '离职清单') {
+//       _u8.value = 2;
+//       _mes.value = 2;
+//       _department_code.value = '';
+//     }
+//     // 对于其他情况
+//     else {
+//       _department_code.value = node['编号'];  // 设置部门编号
+//       _u8.value = 1;  // 设置U8系统的值
+//       _mes.value = 1;  // 设置MES系统的值
+//     }
+  
+//     searchInfo.value = '';  // 清空搜索信息
+//     _getStaffList();  // 执行获取员工列表的函数
+//   };
+  
+
+  
+  // 搜索
+  const searchInfo = ref('')
+  //点击【查询】按钮
+  const onSubmit = () => {
+    _department_code.value = '';
+    if(searchInfo.value === ''){
+      tableData.length = 0;
+    }else{
+      _getStaffList();
+    }
+  };
+  
+  //获取右侧表格列表
+  const _getStaffList = async ()=>{
+    // let params = {}
+    // params.search = searchInfo.value;
+    // params.department_code = _department_code.value;
+    // params.mes_online = _u8.value;
+    // params.u8_online = _mes.value ;
+    // params.limit = 200;
+    // params.page = 1;
+    // // console.log(params)
+    //   try {
+    //   const WorkListdata = await getStaffList(params);
+    //   // console.log(WorkListdata)
+    //   tableData.splice(0,tableData.length,...WorkListdata.data.list);
+    //   total.value = WorkListdata.data.total;
+    // } catch (error) {
+    //   console.error(error);
+    // }
+  }
+  
+  // 分页相关的响应式变量
+  const page = ref(1)
+  const total = ref(0)
+  const pageSize = ref(10)
+  // 分页
+  const handleCurrentChange = (val) => {
+    page.value = val;
+    _getStaffList();
+  };
+  
+  // 修改页面容量 点击多少条/页
+  const handleSizeChange = (val) => {
+    page.value = 10;//默认显示
+    pageSize.value = val;
+    _getStaffList();
+  };
+  
+  // 弹窗控制标记
+  const dialogFormVisible = ref(false)
+  //修改
+  const formDataTest = ref({})
+  
+  const updateCompanyFunc = async (row) => {
+    let code = row['员工编号'];
+    const getStaffInfo_data = await getStaffInfo({code:code});
+    formDataTest.value = getStaffInfo_data.data;
+    dialogFormVisible.value = true;
+  };
+  const Attendancevalue = ref({})
+  //考勤建立弹窗确定
+   const AttendanceDialog = async () => {
+    _clockUpdate()
+   }
+   //设置法定天数
+   const _clockUpdate = async ()=>{
+     const formattedData = {
+      month:Attendancevalue.value['month'],
+      number:Attendancevalue.value['day'],
+      typeA:Attendancevalue.value['typeA'],
+      typeB:Attendancevalue.value['typeB'],
+      typeC:Attendancevalue.value['typeC'],
+      sys_id:'[1010/郑梅芳]'
+     };
+     console.log(formattedData)
+     const response = await clockUpdate(formattedData);
+     if (response.code === 0) {
+            ElMessage({
+              type: 'success',
+              message: '成功'
+            })
+           AttendanceVisible.value=false
+      }else{
+            ElMessage({
+              type: 'error',
+              message: '失败'
+            })
+      }
+   }
+   //获取小时数
+   const getdays = () => {
+       console.log(Attendancevalue.value['day'])
+       if(Attendancevalue.value['day']!=''){
+          Attendancevalue.value['typeA']=Attendancevalue.value['day']*7.5
+          Attendancevalue.value['typeB']=Attendancevalue.value['day']*8
+          Attendancevalue.value['typeC']=Attendancevalue.value['day']*8
+      }else{
+          ElMessage({
+            type: 'error',
+            message: '请输入法定天数'
+          })
+      }
+   }
+  // 修改关闭弹窗
+  const closeDialog = () => {dialogFormVisible.value = false,AttendanceVisible.value=false}
+  
+  // 弹窗确定
+  const enterDialog = async () => {
+      console.log(formDataTest.value['出生日期'])
+      if(formDataTest.value['出生日期'] === '' || formDataTest.value['出生日期'] === null){
+          ElMessage({
+            type: 'error',
+            message: '出生日期不能为空'
+          })
+          return false;
+      }
+      if(formDataTest.value['身份证号'] === '' || formDataTest.value['身份证号'] === null){
+          ElMessage({
+            type: 'error',
+            message: '身份证号不能为空'
+          })
+          return false;
+      }
+    _ygjbzledit();
+  }
+  //修改员工资料
+  const _ygjbzledit = async ()=>{
+    const formattedData = {
+      '员工编号': formDataTest.value['员工编号'],
+      '员工姓名': formDataTest.value['员工姓名'],
+      '性别': formDataTest.value['性别'],
+      '出生日期': formDataTest.value['出生日期'],
+      '身份证号': formDataTest.value['身份证号'],
+      '职称职务': formDataTest.value['职称职务'],
+      '所在部门': formDataTest.value['所在部门'],
+      '聘用日期': formDataTest.value['聘用日期'],
+      '转正日期': formDataTest.value['转正日期'],
+      '扣减司龄': formDataTest.value['扣减司龄'] ? formDataTest.value['扣减司龄'] : '0',
+      '人员类别': formDataTest.value['人员类别'],
+      '人员性质': formDataTest.value['人员性质'],
+      '班次类型': formDataTest.value['班次类型'],
+      '薪酬核算分组': formDataTest.value['薪酬核算分组'],
+      '工资表类别': formDataTest.value['工资表类别'],
+      'U8在职': formDataTest.value['U8在职'],
+      '在职状态': formDataTest.value['在职状态'],
+      '部门编码': formDataTest.value['部门编码'],
+    };
+    try {
+      const ygjbzledit_eddt = await ygjbzledit(formattedData);
+      if (ygjbzledit_eddt .code === 0) {
+        dialogFormVisible.value = false;
+        ElMessage({type: 'success',message: '更新成功'})
+      } else {
+        console.log(ygjbzledit_eddt);
+        ElMessage({ type: 'error',message: '更新失败'})
+      }
+    } catch (error) {
+      console.error(error);
+    }
+  }
+  
+  </script>
+  
+  <style scoped>
+  .form-container {
+    display: flex;
+    flex-wrap: wrap;
+  }
+  
+  .form-column {
+    /*flex: 1;*/
+    margin-right: 15px; /* 调整列之间的间距 */
+  }
+  
+  /* 左侧输入框宽度调整 */
+  .form-column .el-form-item .el-input {
+    width: 150px; /* 调整左侧输入框的宽度 */
+  }
+  
+  /* 媒体查询,根据需要调整断点 */
+  @media screen and (max-width: 768px) {
+    .form-column {
+      flex: 1 0 100%; /* 在小屏幕下变成单列布局 */
+      margin-right: 0;
+    }
+  }
+  /*: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;
+  }
+  /* 图片上传 */
+  .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;
+  }
+  
+  /* 选中某行时的背景色 */
+  :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;
+  }
+  .el-tabs__header{
+    margin: 0px !important;
+  }
+  .gva-table-box{
+    padding: 0px !important;
+  }
+  .mab{
+    margin-bottom: 5px;
+  }
+  </style>
+  

+ 596 - 0
src/view/DecisionSupport/yuangongjiangfaziliao/jiangfaziliaoA.vue

@@ -0,0 +1,596 @@
+<template>
+    <div>
+      <layout>
+        <layout-header>
+          <div class="">
+            <!--          按钮部分-->
+            <el-form ref="elSearchFormRef"   class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
+              <el-form-item>
+                <el-input v-model="searchInfo" placeholder="搜索员工编号或员工姓名" clearable style="width: 200px;margin: 5px"></el-input>
+                <el-button type="primary" icon="search" @click="onSubmit" style="margin: 5px">查询</el-button>
+                <el-button disabled type="primary" icon="Download" @click="exportToExcel" style="margin: 5px;float: right;">导出到Excel</el-button>
+			    <el-button type="primary" icon="edit"   @click="gd_gxclhconClick"  class="bt" title="资料筛选">资料筛选</el-button>
+                <el-dialog v-model="dialogexportToExcel" disabled title="员工基本资料导出" width="50%">
+                </el-dialog>
+              </el-form-item>
+            </el-form>
+          </div>
+        </layout-header>
+  
+  
+        <layout>
+          <!--    左侧树侧形结构-->
+          <layout-sider :resize-directions="['right']" :width="190" style="margin-right: 10px;">
+          <div class="JKWTree-tree" style="height: 200px">
+            <h3>年份</h3>
+            <el-tree :data="treeData" class="treecolor"   @node-click="handleNodeClick"></el-tree>
+          </div>
+        </layout-sider>
+  
+          <!-- 右侧区域 -->
+          <layout-content >
+          <el-main>
+            <div class="gva-table-box">
+              <!-- 表格数据 -->
+              <el-table ref="multipleTable" style="width: 100%;height: 65vh" tooltip-effect="dark"
+                        :row-style="{ height: '20px' }"  :header-cell-style="{ padding: '0px' }"
+                        :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+                        :data="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  sortable align="center" label="员工编号" prop="员工编号"  width="120" />
+                <el-table-column  sortable align="left" label="员工姓名" prop="员工姓名"  width="100"/>
+                <el-table-column  sortable  align="center" 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="在职状态" width="110"  />
+                <el-table-column  sortable  align="left" label="加分合计" prop="加分合计" width="100" />
+                <el-table-column  sortable  align="left" label="扣分合计" prop="扣分合计" width="100" />
+                <el-table-column  sortable  align="left" label="加分01月" prop="加分01月" width="110" />
+                <el-table-column  sortable  align="left" label="加分02月" prop="加分02月" width="110" />
+                <el-table-column  sortable  align="left" label="加分03月" prop="加分03月" width="110" />
+                <el-table-column  sortable  align="left" label="加分04月" prop="加分04月" width="110" />
+                <el-table-column  sortable  align="left" label="加分05月" prop="加分05月" width="110" />
+                <el-table-column  sortable  align="left" label="加分06月" prop="加分06月" width="110" />
+                <el-table-column  sortable  align="left" label="加分07月" prop="加分07月" width="110" />
+                <el-table-column  sortable  align="left" label="加分08月" prop="加分08月" width="110" />
+                <el-table-column  sortable  align="left" label="加分09月" prop="加分09月" width="110" />
+                <el-table-column  sortable  align="left" label="加分010月" prop="加分010月" width="110" />
+                <el-table-column  sortable  align="left" label="加分011月" prop="加分011月" width="110" />
+                <el-table-column  sortable  align="left" label="加分012月" prop="加分012月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分01月" prop="扣分01月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分02月" prop="扣分02月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分03月" prop="扣分03月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分04月" prop="扣分04月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分05月" prop="扣分05月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分06月" prop="扣分06月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分07月" prop="扣分07月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分08月" prop="扣分08月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分09月" prop="扣分09月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分010月" prop="扣分010月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分011月" prop="扣分011月" width="110" />
+                <el-table-column  sortable  align="left" label="扣分012月" prop="扣分012月" width="110" />
+              </el-table>
+  
+              <!-- 分页 -->
+              <div class="gva-pagination">
+                <el-pagination layout="total" :current-page="page" :page-size="pageSize"
+                 :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" />
+  <!--              <el-pagination layout="total, sizes, prev, pager, next, jumper" :current-page="page" :page-size="pageSize" :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="'修改员工基本资料'" destroy-on-close>
+              <el-form :model="formDataTest" label-position="right" ref="elFormRef" :rules="rule" label-width="100px">
+                <div class="form-container">
+                  <!-- 左侧部分 -->
+                  <div class="form-column" style="width: 36%;">
+                    <el-form-item label="员工编号:" prop="employeeId" class="mab" >
+                      <el-input v-model="formDataTest['员工编号']"  placeholder="" style="width: 190px;"
+                                id="员工编号" @keydown="handleKeyDown($event, '员工编号', '在职状态', '性别')" />
+                    </el-form-item>
+
+
+
+                  </div>
+  
+                  <!-- 中间部分 -->
+                  <div class="form-column">
+                    <el-form-item label="人员性质:" prop="departmentId" class="mab" label-width="100">
+                      <el-select v-model="formDataTest['人员性质']" placeholder="" style="width: 190px;"
+                        id="人员性质" @keydown="handleKeyDown($event, '人员性质', '扣减司龄', '薪酬核算分组')">
+                        <el-option label="退休返聘" value="退休返聘"></el-option>
+                        <el-option label="劳动合同工" value="劳动合同工"></el-option>
+                        <el-option label="借用" value="借用"></el-option>
+                        <el-option label="劳务派遣" value="劳务派遣"></el-option>
+                        <el-option label="实习生" value="实习生"></el-option>
+                      </el-select>
+                    </el-form-item>
+                  </div>
+                </div>
+  
+              </el-form>
+              <!-- 添加编辑页面取消确定按钮 -->
+                <div  style="text-align: right; ">
+                  <el-button @click="closeDialog">取消</el-button>
+                  <el-button type="primary"  @click="enterDialog">确定</el-button>
+                </div>
+            </el-dialog>
+  
+            <el-dialog v-model="AttendanceVisible" title="考勤建立" destroy-on-close width="800px" >
+              <el-row :gutter="24">
+                <el-col :span="7">
+                  <el-form-item label="年月份" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+                      <el-input v-model="Attendancevalue['month']"  style="margin-top:0px; margin-bottom: 1px;" id="年月份" @keydown="handleKeyDown($event, '法定天数', 'C类', '法定天数')" placeholder="" />
+                  </el-form-item>
+                </el-col>
+  
+                  <el-col :span="7" style="margin-top:0px; margin-bottom: 1px;">
+                  <el-form-item label="法定天数" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+                      <el-input v-model="Attendancevalue['day']"  style="margin-top:0px; margin-bottom: 1px;" @blur="getdays()" id="法定天数" @keydown="handleKeyDown($event, '法定天数', '年月份', 'A类')" placeholder="" />
+                  </el-form-item>
+                  </el-col>
+              </el-row>
+  
+  
+  
+  
+              <el-row :gutter="24">
+  
+  
+                  <el-col :span="7" style="margin-top:0px; margin-bottom: 1px;">
+                  <el-form-item label="A类(双休版)" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+                      <el-input v-model="Attendancevalue['typeA']" id="A类" @keydown="handleKeyDown($event, 'A类', '法定天数', 'B类')" style="margin-top:0px; margin-bottom: 1px;"  placeholder="" />
+                  </el-form-item>
+                  </el-col>
+              </el-row>
+  
+  
+              <el-row :gutter="24">
+  
+  
+                  <el-col :span="7" style="margin-top:0px; margin-bottom: 1px;">
+                  <el-form-item label="B类(7.5小时班)" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+                      <el-input v-model="Attendancevalue['typeB']" id="B类" @keydown="handleKeyDown($event, 'B类', 'A类', 'C类')" style="margin-top:0px; margin-bottom: 1px;"  placeholder="" />
+                  </el-form-item>
+                  </el-col>
+              </el-row>
+  
+  
+              <el-row :gutter="24">
+  
+  
+                  <el-col :span="7" style="margin-top:0px; margin-bottom: 1px;">
+                  <el-form-item label="C类(11小时班)" prop="id" style="margin-top:0px; margin-bottom: 1px;">
+                      <el-input v-model="Attendancevalue['typeC']" id="C类" @keydown="handleKeyDown($event, 'C类', 'B类', '年月份')" style="margin-top:0px; margin-bottom: 1px;"  placeholder="" />
+                  </el-form-item>
+                  </el-col>
+              </el-row>
+  
+  
+              <template #footer>
+                <div class="dialog-footer">
+                  <el-button @click="closeDialog">取 消</el-button>
+                  <el-button type="primary" @click="AttendanceDialog">确 定</el-button>
+                </div>
+              </template>
+            </el-dialog>
+  
+  
+          </el-main>
+        </layout-content>
+        </layout>
+      </layout>
+    </div>
+  </template>
+  <script>
+  export default {
+    data() {
+      return {
+        dialogFormVisible: false,
+        formDataTest: {
+          imageUrl: '' // 添加一个字段来保存上传的图片路径
+        },
+        rule: {} // 初始化rule对象
+      };
+    },
+    methods: {
+      handleKeyDown(event, currentId, prevId, 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;
+        }
+      },
+      closeDialog() {
+        // 关闭对话框的逻辑
+        this.dialogFormVisible = false;
+      },
+      enterDialog() {
+        // 确定按钮的逻辑
+        // 在这里可以执行提交表单的逻辑
+      },
+      handleFileUpload(event) {
+        // 处理文件上传逻辑
+        const file = event.target.files[0];
+        console.log(file)
+        // 模拟上传并保存文件路径
+        // 在实际应用中,您需要将文件上传到服务器并保存路径
+        this.formDataTest.imageUrl = URL.createObjectURL(file);
+        // 手动触发Vue的更新
+        this.$forceUpdate();
+      }
+    }
+  };
+  
+  </script>
+  <script setup>
+  // 全量引入格式化工具 请按需保留
+  import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
+  import {ref, reactive} from 'vue'
+  import {getCustom, getDepartment, getProductData,getStaffInfo, getStaffList, ygjbzledit,clockUpdate} from '@/api/yunyin/yunying'
+  import {ElMessage} from "element-plus";
+  defineOptions({name: 'Company'})
+
+
+
+
+
+  // =========== 导出Excel表格 ===========
+  const exportToExcel = () => {
+    console.log('点击了导出按钮')
+    dialogexportToExcel.value = true;
+  }
+  // 导出Excel弹窗
+  const dialogexportToExcel = ref(false)
+  
+  
+  //=========资料筛选===========
+
+
+  // 资料筛选按钮
+const gd_gxclhconClick = async () => {
+  // if(_Gd_gdbh.value === '' || _Gd_gdbh.value === null){
+  //   ElMessage({type: 'warning',message: '请选择具体的工单,在进行操作'})
+  //   return false;
+  // }
+  // gxclhcformData['gdbh'] = _Gd_gdbh.value;
+  // gxclhcformData['yjno'] = 1;
+  // gd_gxclhclist.value = true;
+  // const response = await PrintDetailList ({workOrder:_Gd_gdbh.value});
+  // console.log(response)
+  // gdwhformData.yjno = response.data[0].no
+  // inputCpmc.value = response.data[0].name
+  // if (response.code === 0) {
+	//   const noFields = response.data.map(item => item.no);
+	//   gdwhformData.yinjian = noFields
+	// } else {
+	//   console.error('查询失败:', response.msg);
+	// }
+  // _getOrderProcessCount();
+};
+  // =========== 获取左侧树侧形结构 ===========
+  
+  const AttendanceVisible=ref(false)
+  const treeData = ref({})
+  const _department_code = ref(null)
+
+  //左侧日期数据接口
+//   const getDepartmentdata = async () => {
+//     try {
+//       const data  = await getDepartment();
+//       console.log(data)
+//       treeData.value = data.data;
+//     } catch (error) {
+//       console.error(error)
+//     }
+//   }
+//   getDepartmentdata();
+  
+  //点击左侧树形 获取右侧table列表
+  const tableData = reactive([]);
+  const _u8 = ref(null);  // U8系统的值
+  const _mes = ref(null); // MES系统的值
+
+  //点击左侧树形图
+//   const handleNodeClick = async (node) => {
+//     // 如果节点名称为 '离职工资结算中'
+//     if (node['名称'] === '离职工资结算中') {
+//       _u8.value = 1;
+//       _mes.value = 2;
+//       _department_code.value = '';
+//     }
+//     // 如果节点名称为 '离职清单'
+//     else if (node['名称'] === '离职清单') {
+//       _u8.value = 2;
+//       _mes.value = 2;
+//       _department_code.value = '';
+//     }
+//     // 对于其他情况
+//     else {
+//       _department_code.value = node['编号'];  // 设置部门编号
+//       _u8.value = 1;  // 设置U8系统的值
+//       _mes.value = 1;  // 设置MES系统的值
+//     }
+  
+//     searchInfo.value = '';  // 清空搜索信息
+//     _getStaffList();  // 执行获取员工列表的函数
+//   };
+  
+
+  
+  // 搜索
+  const searchInfo = ref('')
+  //点击【查询】按钮
+  const onSubmit = () => {
+    _department_code.value = '';
+    if(searchInfo.value === ''){
+      tableData.length = 0;
+    }else{
+      _getStaffList();
+    }
+  };
+  
+  //获取右侧表格列表
+  const _getStaffList = async ()=>{
+    // let params = {}
+    // params.search = searchInfo.value;
+    // params.department_code = _department_code.value;
+    // params.mes_online = _u8.value;
+    // params.u8_online = _mes.value ;
+    // params.limit = 200;
+    // params.page = 1;
+    // // console.log(params)
+    //   try {
+    //   const WorkListdata = await getStaffList(params);
+    //   // console.log(WorkListdata)
+    //   tableData.splice(0,tableData.length,...WorkListdata.data.list);
+    //   total.value = WorkListdata.data.total;
+    // } catch (error) {
+    //   console.error(error);
+    // }
+  }
+  
+  // 分页相关的响应式变量
+  const page = ref(1)
+  const total = ref(0)
+  const pageSize = ref(10)
+  // 分页
+  const handleCurrentChange = (val) => {
+    page.value = val;
+    _getStaffList();
+  };
+  
+  // 修改页面容量 点击多少条/页
+  const handleSizeChange = (val) => {
+    page.value = 10;//默认显示
+    pageSize.value = val;
+    _getStaffList();
+  };
+  
+  // 弹窗控制标记
+  const dialogFormVisible = ref(false)
+  //修改
+  const formDataTest = ref({})
+  
+  const updateCompanyFunc = async (row) => {
+    let code = row['员工编号'];
+    const getStaffInfo_data = await getStaffInfo({code:code});
+    formDataTest.value = getStaffInfo_data.data;
+    dialogFormVisible.value = true;
+  };
+  const Attendancevalue = ref({})
+  //考勤建立弹窗确定
+   const AttendanceDialog = async () => {
+    _clockUpdate()
+   }
+
+   //获取小时数
+   const getdays = () => {
+       console.log(Attendancevalue.value['day'])
+       if(Attendancevalue.value['day']!=''){
+          Attendancevalue.value['typeA']=Attendancevalue.value['day']*7.5
+          Attendancevalue.value['typeB']=Attendancevalue.value['day']*8
+          Attendancevalue.value['typeC']=Attendancevalue.value['day']*8
+      }else{
+          ElMessage({
+            type: 'error',
+            message: '请输入法定天数'
+          })
+      }
+   }
+  // 修改关闭弹窗
+  const closeDialog = () => {dialogFormVisible.value = false,AttendanceVisible.value=false}
+  
+  // 弹窗确定
+  const enterDialog = async () => {
+      console.log(formDataTest.value['出生日期'])
+      if(formDataTest.value['出生日期'] === '' || formDataTest.value['出生日期'] === null){
+          ElMessage({
+            type: 'error',
+            message: '出生日期不能为空'
+          })
+          return false;
+      }
+      if(formDataTest.value['身份证号'] === '' || formDataTest.value['身份证号'] === null){
+          ElMessage({
+            type: 'error',
+            message: '身份证号不能为空'
+          })
+          return false;
+      }
+    _ygjbzledit();
+  }
+  //修改员工资料
+  const _ygjbzledit = async ()=>{
+    const formattedData = {
+      '员工编号': formDataTest.value['员工编号'],
+      '员工姓名': formDataTest.value['员工姓名'],
+      '性别': formDataTest.value['性别'],
+      '出生日期': formDataTest.value['出生日期'],
+      '身份证号': formDataTest.value['身份证号'],
+      '职称职务': formDataTest.value['职称职务'],
+      '所在部门': formDataTest.value['所在部门'],
+      '聘用日期': formDataTest.value['聘用日期'],
+      '转正日期': formDataTest.value['转正日期'],
+      '扣减司龄': formDataTest.value['扣减司龄'] ? formDataTest.value['扣减司龄'] : '0',
+      '人员类别': formDataTest.value['人员类别'],
+      '人员性质': formDataTest.value['人员性质'],
+      '班次类型': formDataTest.value['班次类型'],
+      '薪酬核算分组': formDataTest.value['薪酬核算分组'],
+      '工资表类别': formDataTest.value['工资表类别'],
+      'U8在职': formDataTest.value['U8在职'],
+      '在职状态': formDataTest.value['在职状态'],
+      '部门编码': formDataTest.value['部门编码'],
+    };
+    try {
+      const ygjbzledit_eddt = await ygjbzledit(formattedData);
+      if (ygjbzledit_eddt .code === 0) {
+        dialogFormVisible.value = false;
+        ElMessage({type: 'success',message: '更新成功'})
+      } else {
+        console.log(ygjbzledit_eddt);
+        ElMessage({ type: 'error',message: '更新失败'})
+      }
+    } catch (error) {
+      console.error(error);
+    }
+  }
+  
+  </script>
+  
+  <style scoped>
+  .form-container {
+    display: flex;
+    flex-wrap: wrap;
+  }
+  
+  .form-column {
+    /*flex: 1;*/
+    margin-right: 15px; /* 调整列之间的间距 */
+  }
+  
+  /* 左侧输入框宽度调整 */
+  .form-column .el-form-item .el-input {
+    width: 150px; /* 调整左侧输入框的宽度 */
+  }
+  
+  /* 媒体查询,根据需要调整断点 */
+  @media screen and (max-width: 768px) {
+    .form-column {
+      flex: 1 0 100%; /* 在小屏幕下变成单列布局 */
+      margin-right: 0;
+    }
+  }
+  /*: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;
+  }
+  /* 图片上传 */
+  .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;
+  }
+  
+  /* 选中某行时的背景色 */
+  :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;
+  }
+  .el-tabs__header{
+    margin: 0px !important;
+  }
+  .gva-table-box{
+    padding: 0px !important;
+  }
+  .mab{
+    margin-bottom: 5px;
+  }
+  </style>
+  

+ 528 - 0
src/view/DecisionSupport/yuangongjiangfaziliao/jiangfaziliaoB.vue

@@ -0,0 +1,528 @@
+<template>
+    <div>
+      <layout>
+        <layout-header>
+          <div class="">
+            <!--          按钮部分-->
+            <el-form ref="elSearchFormRef"   class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
+              <el-form-item>
+                <el-input v-model="searchInfo" placeholder="搜索员工编号或员工姓名" clearable style="width: 200px;margin: 5px"></el-input>
+                <el-button  type="primary" icon="Download" @click="exportToExcel" style="margin: 5px;float: right;">导出到Excel</el-button>
+              </el-form-item>
+            </el-form>
+          </div>
+        </layout-header>
+        <layout>
+          <!-- 左侧树形结构 -->
+          <layout-sider :resize-directions="['right']" :width="190" style="margin-right: 10px;">
+            <div class="JKWTree-tree" style="height: 200px">
+              <h3>年份</h3>
+              <el-tree :data="treeData" class="treecolor"   @node-click="handleNodeClick"></el-tree>
+            </div>
+          </layout-sider>
+  
+          <!-- 右侧内容区域 -->
+          <layout-content >
+            <el-main>
+  
+              <!-- 工单表格列表 -->
+              <div class="gva-table-box">
+                <el-table ref="multipleTable"
+                          style="width: 100%;height: 28vh"
+                          id="tab"
+                          border
+                          :row-style="{ height: '20px' }"
+                          :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+                          :header-cell-style="{ padding: '0px' }"
+                          tooltip-effect="dark"
+                          :data="tabledate2" row-key="ID"
+                          @row-click="tableRowClick"
+                          highlight-current-row="true"
+                          :cell-class-name="tableDataCellClass"
+                          @row-dblclick="updateCompanyFunc"
+                          @selection-change="handleSelectionChange"
+                          :show-overflow-tooltip="true">
+                          <!-- 多选框 -->
+                          <!-- <el-table-column type="selection" width="30" /> -->
+                    <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="110"/>
+                    <el-table-column  sortable align="left" label="分类" prop="分类"  width="100"/>
+                    <el-table-column  sortable align="left" label="年度合计" prop="年度合计"  width="110"/>
+                    <el-table-column  sortable align="left" label="01月" prop="01月"  width="100"/>
+                    <el-table-column  sortable align="left" label="02月" prop="02月"  width="100"/>
+                    <el-table-column  sortable align="left" label="03月" prop="03月"  width="100"/>
+                    <el-table-column  sortable align="left" label="04月" prop="04月"  width="100"/>
+                    <el-table-column  sortable align="left" label="05月" prop="05月"  width="100"/>
+                    <el-table-column  sortable align="left" label="06月" prop="06月"  width="100"/>
+                    <el-table-column  sortable align="left" label="07月" prop="07月"  width="100"/>
+                    <el-table-column  sortable align="left" label="08月" prop="08月"  width="100"/>
+                    <el-table-column  sortable align="left" label="09月" prop="09月"  width="100"/>
+                    <el-table-column  sortable align="left" label="010月" prop="010月"  width="100"/>
+                    <el-table-column  sortable align="left" label="011月" prop="011月"  width="100"/>
+                    <el-table-column  sortable align="left" label="012月" prop="012月"  width="100"/>
+                    <el-table-column  sortable align="left" label="部门编码" prop="部门编码"  width="110"/>
+
+  
+                  <el-table-column :label="item.slice(5,10)" align="center" v-for="item in datelist" :key="item.label" :prop= "item" >
+                  </el-table-column>
+  
+                </el-table>
+                <!-- 分页 -->
+                <div class="gva-pagination">
+                  <el-pagination
+                      @size-change="handleSizeChange"
+                      @current-change="handleCurrentChange"
+                      :current-page="page"
+                      :page-sizes="[10, 30, 50, 100]"
+                      layout="total, sizes, prev, pager, next, jumper"
+                      :total="total">
+                  </el-pagination>
+                </div>
+              </div>
+  
+              <!-- 月度设备运行统计->机台生产工单数据详情列表  -->
+              <el-tabs v-model="activeName" @tab-click="handleClick">
+                  <el-table ref="multipleTable"
+                            id="tab2"
+                            :row-style="{ height: '20px' }"
+                            :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+                            :header-cell-style="{ padding: '0px' }"
+                            :show-overflow-tooltip="true"
+                            highlight-current-row="true"
+                            @selection-change="selectionChange($event, '印件资料')"
+                            style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="jqtabledata" row-key="ID">
+                            <!-- 多选框 -->
+                    <!-- <el-table-column type="selection" width="30" /> -->
+                    <el-table-column align="left" sortable label="员工编号" prop="工单编号"  width="110"/>
+                    <el-table-column align="left" sortable label="日期" prop="日期"  width="110"/>
+                    <el-table-column align="left" sortable label="绩效加分" prop="绩效加分"  width="110"/>
+                    <el-table-column align="left" sortable label="绩效奖励" prop="绩效奖励"  width="110"/>
+                    <el-table-column align="center" sortable label="原因备注" prop="原因备注"  width="600"/>
+                    <el-table-column align="left" sortable label="分类" prop="分类"  width="110"/>
+                    <el-table-column align="left" sortable label="执法人" prop="执法人"  width="110"/>
+                    <el-table-column align="left" sortable label="创建用户" prop="创建用户"  width="110"/>
+                    <el-table-column align="left" sortable label="创建用户" prop="创建用户"  width="110"/>
+                    <el-table-column align="left" sortable label="创建用户" prop="创建用户"  width="110"/>
+                    <el-table-column align="left" sortable label="UNIQID" prop="UNIQID"  width="110"/>
+
+                  </el-table>
+              </el-tabs>
+            </el-main>
+          </layout-content>
+        </layout>
+      </layout>
+  
+      <PrintPage ref="printPageRef" />
+  
+      <AddGongYi ref="addGongYiRef" />
+    </div>
+  </template>
+  <script>
+  //点击按钮显示下方表格
+  export default {
+    data() {
+      return {
+        currentTable: '', // 当前展示的表格
+        activeName: 'first',
+      };
+    },
+    methods: {
+      showTable(tableName) {
+        this.currentTable = tableName;
+      },
+      showTableChange() {
+        // 处理表格选中事件
+      },
+    }
+  };
+  </script>
+  <script setup>
+  // 全量引入格式化工具 请按需保留
+  import $script from 'scriptjs'
+  import $ from 'jquery';
+  import * as XLSX from 'xlsx'
+  import FileSaver from 'file-saver'
+  import LuckyExcel from 'luckyexcel';
+  import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
+  import { ElMessage, ElMessageBox } from 'element-plus'
+  import { ref, reactive, computed, nextTick, watch,onMounted } from 'vue'
+  import {OutputSstatisticsMenu,MachineProductDetail,MachineProduction} from "@/api/DecisionSupport/decision.js"
+  import { useUserStore } from '@/pinia/modules/user'
+  defineOptions({name: 'Company'})
+  const userStore = useUserStore()
+  const _username = ref('')
+  _username.value = userStore.userInfo.userName + '/' + userStore.userInfo.nickName
+  const printPageRef = ref()
+  const addGongYiRef = ref()
+  onMounted(()=>{
+           })
+  //导出到EXCEL
+  const exportToExcel = ()=>{
+    // const el = document.getElementById('tab');
+    // // 文件名
+    // const filename = '导出到EXCEL(汇总).xlsx';
+    // const wb = XLSX.utils.table_to_book(el, { raw: true });
+    // const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' });
+    // try {
+    //   FileSaver.saveAs(new Blob([wbout], { type: 'application/octet-stream' }), filename);
+    // } catch (e) {
+    //   console.log(e);
+    // }
+    // return wbout;
+  }
+ 
+  // =========== 左侧树侧形结构 ===========
+  const treeData = ref([]);
+  
+  //左侧树状图列表
+  const DataListdata = async () => {
+//     try {
+//       const response = await OutputSstatisticsMenu();
+//       const dataList = response.data;
+//       dataList.forEach((item) => {
+//       let obj = {};
+//       obj.label = item.date;
+//       obj.children = [];
+//       item.sbbh.forEach((child) => {
+//           obj.children.push({
+//               label: child,
+//               parentDate: item.date // 添加上级日期并避免重复
+//           });
+//       });
+//       console.log(obj)
+//       treeData.value.push(obj);
+//   });
+//     } catch (error) {
+//       console.error(error);
+//     }
+  };
+  
+  // const DataListdata = async () => {
+  //   try {
+  //     const data = await DataList();
+  //     for (let key in data.data) {
+  //       // 忽略 "productingAll" 和 "progressAll"
+  //       if (key !== "productingAll" && key !== "progressAll") {
+  //         let temp = data.data[key];
+  //         let object = {};
+  //         object.id = temp[0];
+  //         object.label = data.data[key];
+  //         object.children = [];
+  //         treeData.data.push(object);
+  //       }
+  //     }
+  //   } catch (error) {
+  //     console.error(error);
+  //   }
+  // };
+  DataListdata();
+  
+  //点击左侧树形获取编号
+  const tableData = reactive([])
+  const _Gd_khdh = ref(null)
+  const params = ref({})
+  const params2 = ref({})
+  const tabledate2 = ref([])
+  const datelist = ref()
+  const jqtabledata = ref()
+  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'];
+    const clickedNode = document.querySelector(`.treecolor .el-tree-node[data-key="${clickedNodeId}"]`);
+    if (clickedNode) {
+      // 给当前点击的节点改变颜色
+      clickedNode.querySelector('.el-tree-node__label').style.color = 'red';
+    }
+      console.log(node)
+      
+    tabledate2.value=[]
+    if(node.children !==undefined ){
+        params.value.mouth= node.parentDate
+      // params.value.mouth= node.label
+    }
+   if (node.children === undefined){
+     params.value.sist = node.label
+     params.value.mouth= node.parentDate
+      ProductList(params.value)
+   }
+    // _WorkList_page(); 
+  };
+    const ProductList = async(params)=>{
+    try {
+      const ProductListData = await MachineProduction(params);
+      datelist.value = ProductListData.data.head
+  
+      let data = ProductListData.data.total
+  
+      data.forEach(item => {
+         item.forEach(element => {
+          tabledate2.value.push(element)
+         });
+      });
+      tabledate2.value = tabledate2.value.map(item => {  
+      // 使用扩展运算符(...)来合并原始对象(排除day_total)和day_total对象  
+      return {  
+          ...item, // 保留原始对象中的所有属性(除了day_total)  
+          ...item.day_total, // 将day_total对象的所有属性添加到结果对象中  
+      };  
+  }).map(item => {  
+      // 删除可能残留的day_total键(如果原始对象中有其他不相关的day_total属性)  
+      delete item.day_total;  
+      return item;  
+  });  
+    
+  
+    } catch (error) {
+      console.error(error);
+    }
+    }
+  //查询
+  const searchInfo = ref('')
+  //查询按钮
+  const onSubmit = () => {
+//     _cha_WorkList();
+//   };
+//   const handleSearch = () => {
+//     console.log(1231)
+//     _cha_WorkList();
+//   };
+  
+//   const _cha_WorkList = async (node) => {
+//     if(searchInfo.value === ''){
+//       ElMessage({type: 'warning',message: '请输入搜索的信息'})
+//       return false;
+//     }
+//     const search = searchInfo.value;
+//     var regex = /^[a-zA-Z0-9]+$/;
+//     try {
+//       if (regex.test(search)) {
+//         // 符合条件,执行搜索操作
+//         console.log('搜索内容为纯数字加字母');
+//         const WorkListdata = await WorkList({search:search,limit:100,page:1});//接口调用函数
+//         if(WorkListdata.data.total === 0){
+//           ElMessage({type: 'warning',message: '未搜索具体查询条件'})
+//         }
+//         tableData.splice(0,tableData.length,...WorkListdata.data.data);//表格数据
+//         total.value = WorkListdata.data.total;//共多少条
+//       } else {
+//         // 不符合条件,给出提示
+//         console.log('搜索内容包含非字母和数字的字符');
+//         const WorkListdata = await WorkList({Gd_khdh:'',search:search,limit:100,page:1});//接口调用函数
+//         if(WorkListdata.data.total === 0){
+//           ElMessage({type: 'warning',message: '未搜索具体查询条件'})
+//         }
+//         tableData.splice(0,tableData.length,...WorkListdata.data.data);//表格数据
+//         total.value = WorkListdata.data.total;//共多少条
+//       }
+//     } catch (error) {
+//       console.error(error);
+//     }
+  };
+  
+  // 分页
+  const page = ref(1)
+  const total = ref(0)
+  const pageSize = ref(50)
+  const handleCurrentChange = (val) => {
+    page.value = val;
+    _WorkList_page();
+  };
+  
+  // 修改页面容量 点击多少条/页
+  const handleSizeChange = (val) => {
+    // page.value = 10;
+    pageSize.value = val;
+    _WorkList_page();
+  };
+  
+  //点击表格行获取下方表格数据列表
+  //印件资料
+  const yjtableData = ref([])
+
+  //机台生产工单
+  const tableRowClick = async (row) => {
+  
+    jqtabledata.value=null
+    params2.value.machine= row.sczl_jtbh
+    params2.value.mouth = params.value.mouth
+    params2.value.team = row.sczl_bzdh
+     const Machineoutput = await MachineProductDetail (params2.value)
+     jqtabledata.value = Machineoutput.data
+     console.log(jqtabledata.value);
+    let tmp = yjtableData.value.map(item => item.印件号)
+    tmp = tmp.sort((a,b)=>b-a)
+    yjzuidahaoma.value = Number(tmp[0]) + 1
+  };
+
+  //=========表格列表修改========
+  let scgdformData = ref({})
+  //双击修改
+  const updateCompanyFunc = async(row) => {
+    console.log(row)
+    // if(row['status'] === '*'){
+    //   ElMessage({ type: 'warning', message: '未找到该工单印件资料' });
+    //   return false;
+    // }else{
+      const DataCorrection_list = await DataCorrection({ Gd_gdbh:row['工单编号']});
+      console.log(DataCorrection_list)
+      scgdformData.value = DataCorrection_list.data;
+      dialogFormVisible.value = true
+    // }
+  }
+  // 弹窗控制标记
+  const dialogFormVisible = ref(false)
+  // 修改工单资料确定
+  const enterDialog = async () => {
+//     const zdgx = /^[A-Za-z0-9\u4e00-\u9fa5\s]*$/.test(scgdformData.value['重点工单']);
+//     if (!zdgx) {
+//       ElMessage({ type: 'warning', message: '重点工单数据中 只允许出现中文、数字、空格' });
+//       return false;
+//     }
+//     const kdrqdeliveryDate = new Date(scgdformData.value['开单日期']);
+//     const kdrq = kdrqdeliveryDate.getFullYear() + '-' +
+//         (kdrqdeliveryDate.getMonth() + 1).toString().padStart(2, '0') + '-' +
+//         kdrqdeliveryDate.getDate().toString().padStart(2, '0') + ' ' +
+//         kdrqdeliveryDate.getHours().toString().padStart(2, '0') + ':' +
+//         kdrqdeliveryDate.getMinutes().toString().padStart(2, '0') + ':' +
+//         kdrqdeliveryDate.getSeconds().toString().padStart(2, '0');
+//     const jhrqdeliveryDate = new Date(scgdformData.value['交货日期']);
+//     const jhrq = jhrqdeliveryDate.getFullYear() + '-' +
+//         (jhrqdeliveryDate.getMonth() + 1).toString().padStart(2, '0') + '-' +
+//         jhrqdeliveryDate.getDate().toString().padStart(2, '0') + ' ' +
+//         jhrqdeliveryDate.getHours().toString().padStart(2, '0') + ':' +
+//         jhrqdeliveryDate.getMinutes().toString().padStart(2, '0') + ':' +
+//         jhrqdeliveryDate.getSeconds().toString().padStart(2, '0');
+//     const formattedData = {
+//       lx: scgdformData.value['重点工单'],
+//       kdrq: kdrq,
+//       gdbh: scgdformData.value['工单编号'],
+//       scfl: scgdformData.value['生产类型'],
+//       khdh: scgdformData.value['客户代号'],
+//       khmc: scgdformData.value['客户名称'],
+//       cpdh: scgdformData.value['产品代号'],
+//       cpmc: scgdformData.value['产品名称'],
+//       ddsl: scgdformData.value['订单数量'],
+//       jhrq: jhrq,
+//       tll: scgdformData.value['投料率'],
+//       jhtl: scgdformData.value['平张投料'],
+//       sjtl: scgdformData.value['万小张'],
+//       jldw: scgdformData.value['单位'],
+//       tldx: scgdformData.value['投料大箱'],
+//       xsddh: scgdformData.value['销售订单号'],
+//       jymb: scgdformData.value['警语版面'],
+//       bbh: scgdformData.value['版本号'],
+//       erp: scgdformData.value['客户ERP编码'],
+//       ymsl: scgdformData.value['码源数量'],
+//       jcbz: scgdformData.value['进程备注'],
+//       desc: scgdformData.value['备注'],
+//       Uniqid: scgdformData.value['Uniqid'],
+//       yjdh: scgdformData.value['印件代号'],
+//       yjmc: scgdformData.value['印件名称'],
+//       kc: scgdformData.value['库存大箱'],
+//       avg:scgdformData.value['平均合格率'] === undefined ? '' : scgdformData.value['平均合格率'],
+//       printID: scgdformData.value['印件ID'],
+//     };
+//     console.log(formattedData)
+//     const WorkOrderEdit_edit = await WorkOrderEdit(formattedData);
+//     if (WorkOrderEdit_edit.code === 0) {
+//       dialogFormVisible.value = false
+//       ElMessage({type: 'success',message: '更新成功' })
+//     } else {
+//       ElMessage({type: 'error', message: '更新失败'})
+//     }
+  }
+  
+  
+  
+ 
+  </script>
+  <style scoped>
+  /* 在样式表中使用媒体查询 */
+  @media (max-width: 768px) {
+    /* 在小屏幕下的样式设置 */
+    .dialog-footer {
+      text-align: center;
+    }
+  }
+ 
+  
+  /*背景颜色*/
+  /*印件背景颜色变黄*/
+  :deep(.el-table__body .warning-row) {
+    background: #FFFF80 !important;
+  }
+
+  /* 选中某行时的背景色 */
+  :deep(.el-table__body tr.current-row) > td {
+    background: #ff80ff !important;
+  }
+  /*文字颜色*/
+  /*bom计划用量文字变色【表格中单独文字变色】*/
+  :deep(.plan-usage-low div) {
+    color: red !important;
+  }
+ 
+  /* 在样式表中添加以下样式 */
+  .el-input__textarea {
+    resize: none; /* 禁止调整大小 */
+  }
+  .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;
+  }
+  /*关闭拖拽功能*/
+  .el-textarea textarea {
+    resize: none !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;
+  }
+  .el-tabs__header{
+    margin: 0px !important;
+  }
+  .gva-table-box{
+    padding: 0px !important;
+  }
+  .el-pagination{
+    margin-top: 0px !important;
+  }
+  .mab{
+    margin-bottom: 5px;
+  }
+  </style>
+  

+ 9 - 1
src/view/performance/Dayreports.vue

@@ -2786,7 +2786,15 @@ const ongdwhfanclick = async() => {
 
 //工序产量核查回车
 const gxclhcProductValue = async () => {
-	console.log("工序产量核查回车")
+  const response = await PrintDetailList ({workOrder:gxclhcformData['gdbh']});
+  gdwhformData.yjno = response.data[0].no
+  inputCpmc.value = response.data[0].name
+  if (response.code === 0) {
+	  const noFields = response.data.map(item => item.no);
+	  gdwhformData.yinjian = noFields
+	} else {
+	  console.error('查询失败:', response.msg);
+	}
   _getOrderProcessCount();
   _PrintDetailList();
 }

+ 145 - 38
src/view/yunyin/shengchanguanli/chengpinrucang.vue

@@ -2,7 +2,7 @@
   <div>
     <!-- 左侧树形结构 -->
     <el-container>
-      <el-aside width="250px">
+      <el-aside width="250px" class="aside-container">
         <div class="JKWTree-tree">
           <h3>成品入仓管理</h3>
           <el-tree :data="treeData" :props="defaultProps" highlight-current="true"
@@ -27,7 +27,7 @@
               </div>
             </el-form-item>
             <!-- 数据展示 -->
-            <el-table ref="multipleTable" style="width: 100%" tooltip-effect="dark" :data="tableData" row-key="ID" @row-click="Click"
+            <el-table ref="multipleTable" height=70vh style="width: 100%" tooltip-effect="dark" :data="tableData" row-key="ID" @row-click="Click"
               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="入仓类型" width="120"/>
@@ -59,12 +59,12 @@
 			  <el-table-column align="left" sortable label="UNIQID" prop="UniqId" width="120"/>
             </el-table>
             <!-- 分页 -->
-            <div class="gva-pagination">
+            <!-- <div class="gva-pagination">
               <el-pagination layout="total, sizes, prev, pager, next, jumper" v-model:current-page="page"
                 v-model:page-size="limit"
                 :page-sizes="[10, 30, 50, 100]" :total="total" @current-change="handleCurrentChange"
                 @size-change="handleSizeChange" />
-            </div>
+            </div> -->
           </div>
           <!-- 弹出框 -->
           <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" :title="type === 'create' ? '添加' : '详情'"
@@ -322,16 +322,17 @@
 		  
 		  <el-dialog v-model="SMVisible" title="选择" destroy-on-close style='height: 100%;margin: 0px;' width="100%">
 			<div class="block">
-				<span class="demonstration">月份选择:</span>
-				<el-date-picker v-model="ExcelformData['rq']" type="month" placeholder="选择月份"style='width: 10%;'></el-date-picker>
-				<el-button type="primary" @click="ExcelonSubmit" style='margin-left: 10px;'>查询</el-button>
+				<!-- <span class="demonstration">月份选择:</span> -->
+				<!-- <el-date-picker v-model="ExcelformData['rq']" type="month" placeholder="选择月份"style='width: 10%;'></el-date-picker> -->
+        <el-input v-model="searchInfo" placeholder="搜索产品编号或产品名称"  style="width: 180px;"></el-input>
+				<el-button type="primary" @click="dwonSubmit" style='margin-left: 10px;'>定位</el-button>
 				<el-button type="primary" class="bt" icon="download" @click="exportToExcel" >导出Excel</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>
 			</div>
-		    <el-table tooltip-effect="dark" :data="SMselectData"
-			style="width: 100%;height: 80vh"
-			row-key="ID" highlight-current-row="true" 
+		    <el-table tooltip-effect="dark"  ref="tableRef" :data="SMselectData"
+			style="width: 100%;height: 80vh" 
+			row-key="Yj_Gdbh" highlight-current-row="true" 
 			borderstyle="width:180%"height="100%"
 			@row-dblclick="SMSelectClick"
 			@row-click="MBRowClick"
@@ -494,7 +495,7 @@ import * as XLSX from 'xlsx'
 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, onBeforeMount } from 'vue'
+import { ref, reactive, onMounted, onBeforeMount,nextTick } from 'vue'
 import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
 import { TRUE } from 'sass'
 import { exportExcelFile } from '@/utils/excel'
@@ -603,6 +604,7 @@ const total = ref(0)
 const page = ref(1)
 const limit = ref(10)
 const searchInfo = ref('')
+const tableRef = ref(null); // 表格的引用
 const params = {
   type: '',
   date: '',
@@ -610,33 +612,33 @@ const params = {
   gdbh: '',
 }
 
-// 分页设置
-const handleSizeChange = (val) => {
-  switch (params.type) {
-    case 'getTableData':
-      getTableData()
-      break
-    case 'getLocateTable':
-      GetmachineLocate()
-      break
-    default:
-      break
-  }
-}
-
-// 页面跳转
-const handleCurrentChange = (val) => {
-  switch (params.type) {
-    case 'getTableData':
-      getTableData()
-      break
-    case 'getLocateTable':
-      GetmachineLocate()
-      break
-    default:
-      break
-  }
-}
+// // 分页设置
+// const handleSizeChange = (val) => {
+//   switch (params.type) {
+//     case 'getTableData':
+//       getTableData()
+//       break
+//     case 'getLocateTable':
+//       GetmachineLocate()
+//       break
+//     default:
+//       break
+//   }
+// }
+
+// // 页面跳转
+// const handleCurrentChange = (val) => {
+//   switch (params.type) {
+//     case 'getTableData':
+//       getTableData()
+//       break
+//     case 'getLocateTable':
+//       GetmachineLocate()
+//       break
+//     default:
+//       break
+//   }
+// }
 
 
 const ExcelformData = ref({})
@@ -769,6 +771,67 @@ const gdwhformData = reactive({
 const inputCpmc = ref('')
 
 
+const dwonSubmit = () => {
+   const searchValue = searchInfo.value.trim();
+      if (searchValue) {
+        const matchedRow = SMselectData.value.find(row => row.Yj_Gdbh === searchValue);
+        if (matchedRow) {
+          nextTick(() => {
+            // 设置当前行以高亮显示
+            tableRef.value.setCurrentRow(matchedRow);
+ 
+            // 查找表格体的滚动容器
+            const tableBodyWrapper = tableRef.value.$el.querySelector('.el-table__body-wrapper tbody');
+            if (tableBodyWrapper) {
+              // 由于 Element UI 不提供直接获取行 DOM 元素的方法,我们需要遍历所有行来找到匹配的那一行
+              const rows = tableBodyWrapper.querySelectorAll('.el-table__row');
+              const targetRow = Array.from(rows).find(row => {
+                // 注意:这里我们假设每行都有一个唯一的 key 属性与数据匹配,但实际情况可能不同
+                // 如果您的表格行有 `row-key` 属性,并且这个 key 映射到了 DOM 的某个属性上(比如 data-row-key),
+                // 那么您应该使用那个属性来找到目标行。但是,Element UI 并不默认这样做。
+                // 一种解决方案是在渲染行时手动添加一个 ref 或 data 属性来存储行的 key。
+                // 由于这个示例中没有这样的设置,我们假设您无法通过 DOM 属性直接找到目标行。
+                // 因此,这里我们使用了一个不太优雅的方法:通过比较行的数据与匹配的数据来找到目标行。
+                // 这通常不是最佳实践,因为它依赖于行的渲染顺序和数据结构的一致性。
+                const rowData = JSON.parse(row.dataset.rowData || '{}'); // 假设您在某处将行数据作为 JSON 字符串存储在了 data-row-data 属性中(这不是 Element UI 的默认行为)
+                return rowData.Yj_Gdbh === matchedRow.Yj_Gdbh;
+              });
+ 
+              // 如果找到了目标行,滚动到它
+              if (targetRow) {
+                targetRow.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
+              } else {
+                ElMessage.warning('未找到对应的行数据(在 DOM 中)');
+              }
+            } else {
+              ElMessage.warning('未找到表格体');
+            }
+          });
+        } else {
+          ElMessage.warning('未找到匹配的工单编号');
+        }
+      } else {
+        ElMessage.warning('请输入搜索内容');
+      }
+};
+// const dwonSubmit = () => {
+//   const searchValue = searchInfo.value.trim();
+//   if (searchValue) {
+//     const matchedRow = SMselectData.value.find(row => row.Yj_Gdbh === searchValue);
+//     if (matchedRow) {
+//       nextTick(() => {
+//         tableRef.value.setCurrentRow(matchedRow);
+//       });
+//     } else {
+//       // 你可以使用 Element Plus 的消息组件或其他方式来显示警告
+//       // 例如:ElMessage.warning('未找到匹配的工单编号');
+//       console.warn('未找到匹配的工单编号');
+//     }
+//   } else {
+//     console.warn('请输入搜索内容');
+//   }
+// };
+
 //导出excel表
 const exportToExcel = () => {
 	const tableCols1 = [
@@ -831,6 +894,15 @@ const ongdwhfanclick = async() => {
 
 //工序产量核查回车
 const gxclhcProductValue = async () => {
+  const response = await PrintDetailList ({workOrder:gxclhcformData['gdbh']});
+  gdwhformData.yjno = response.data[0].no
+  inputCpmc.value = response.data[0].name
+  if (response.code === 0) {
+	  const noFields = response.data.map(item => item.no);
+	  gdwhformData.yinjian = noFields
+	} else {
+	  console.error('查询失败:', response.msg);
+	}
   _getOrderProcessCount();
   _PrintDetailList();
 }
@@ -1530,7 +1602,9 @@ onMounted(async () => {
   margin: 0px !important;
 }
 .gva-table-box{
+  position: relative;
   padding: 0px !important;
+  z-index: 2;
 }
 .mab{
   margin-bottom: 5px;
@@ -1540,4 +1614,37 @@ onMounted(async () => {
   color: blue !important;
   font-weight: bold;
 }
+.aside-container {
+  height: 80vh; /* 设置你希望的高度 */
+  overflow-y: auto; /* 允许垂直滚动 */
+}
+ 
+.JKWTree-tree {
+  /* 确保内部内容不会撑破 aside 容器 */
+  height: calc(100% - 40px);
+  max-height: 100%; /* 或设置为 calc(100% - 某个值),如果需要考虑标题的高度等 */
+}
+
+/* .aside-header {
+  position: absolute;
+  top: 0; 
+  left: 0;
+  right: 0; 
+  height: 40px;
+  line-height: 40px;
+  background-color: #f5f5f5;
+  padding: 0 10px;
+  box-sizing: border-box; 
+  z-index: 1; 
+} */
+
+/* 如果需要,可以为 h3 也设置样式,以确保它在滚动区域外或包含在内 */
+.JKWTree-tree h3 {
+  /* position: absolute;
+  top: 0;  */
+  margin: 0; /* 移除默认的 margin */
+  padding: 10px; /* 添加一些 padding,如果需要 */
+  background-color: #f5f5f5; /* 可选:添加背景色 */
+  z-index: 1; 
+}
 </style>

+ 9 - 0
src/view/yunyin/shengchanguanli/gongdanshengchan.vue

@@ -1054,6 +1054,15 @@ const ongdwhfanclick = async() => {
 
 //工序产量核查回车
 const gxclhcProductValue = async () => {
+  const response = await PrintDetailList ({workOrder:gxclhcformData['gdbh']});
+  gdwhformData.yjno = response.data[0].no
+  inputCpmc.value = response.data[0].name
+  if (response.code === 0) {
+	  const noFields = response.data.map(item => item.no);
+	  gdwhformData.yinjian = noFields
+	} else {
+	  console.error('查询失败:', response.msg);
+	}
   _getOrderProcessCount();
   _PrintDetailList();
 }

+ 11 - 2
src/view/yunyin/shengchanguanli/gongdanziliao.vue

@@ -503,7 +503,7 @@
                 <el-table-column align="center" type="selection" width="30"/>
                 <el-table-column align="left" label="获取状态"   prop="status"  width="81" />
                 <el-table-column align="left" sortable label="工单编号"   prop="工单编号"  width="110" />
-                <el-table-column align="left" sortable label="生产分类"   prop="生产分类" width="110" />
+                <el-table-column align="left" sortable label="工单状态"    prop="工单状态" width="110" />
                 <el-table-column align="left" sortable label="销售订单号" prop="销售订单号" width="120" />
                 <el-table-column align="left" sortable label="成品代号"   prop="产品代号"  width="110" />
                 <el-table-column align="left" sortable label="成品名称"   prop="产品名称" width="370" />
@@ -514,8 +514,8 @@
                 <el-table-column align="left" sortable label="平均合格率"  prop="平均合格率" width="120" />
                 <el-table-column align="left" sortable label="开单日期"    prop="开单日期" width="110" />
                 <el-table-column align="left" sortable label="交货日期"    prop="交货日期" width="110" />
+                <el-table-column align="left" sortable label="生产分类"   prop="生产分类" width="110" />
                 <el-table-column align="left" sortable label="工单类型"    prop="工单类型" width="110" />
-                <el-table-column align="left" sortable label="工单状态"    prop="工单状态" width="110" />
                 <el-table-column align="left" sortable label="当前生产工序" prop="当前生产工序" width="140" />
                 <el-table-column align="left" sortable label="产量提交时间" prop="产量提交时间" width="140" />
                 <el-table-column align="left" sortable label="建档用户"    prop="建档用户" width="130" />
@@ -1778,6 +1778,15 @@ const ongdwhfanclick = async() => {
 
 //工序产量核查回车
 const gxclhcProductValue = async () => {
+  const response = await PrintDetailList ({workOrder:gxclhcformData['gdbh']});
+  gdwhformData.yjno = response.data[0].no
+  inputCpmc.value = response.data[0].name
+  if (response.code === 0) {
+	  const noFields = response.data.map(item => item.no);
+	  gdwhformData.yinjian = noFields
+	} else {
+	  console.error('查询失败:', response.msg);
+	}
   _getOrderProcessCount();
   _PrintDetailList();
 }

+ 468 - 0
src/view/yunyin/shengchanguanli/rucangjincheng.vue

@@ -0,0 +1,468 @@
+<template>
+    <div>
+      <!-- 左侧树形结构 -->
+      <el-container>
+  
+        <el-container>
+          <el-main>
+            <!-- 按钮区域 -->
+            <div class="gva-table-box">
+              <el-form-item>
+                <el-input v-model="positionvalue" placeholder="输入工单编号或产品名称" style="width: 180px;"/>
+                <el-button type="primary" class="search" icon="search" @click="onSearch"></el-button>
+                <el-button type="primary" class="bt" icon="Download" @click="exportExcel">导出到Excel</el-button>
+                <el-button type="primary" class="bt" @click="onSMB">定位</el-button>
+                <el-button type="primary" class="bt" @click="onSMB">工序产量核查</el-button>
+                <el-button type="primary" class="bt" @click="onSMB">流程单查询</el-button>
+                <!-- <el-button type="primary" class="bt" @click="onSMB">退出</el-button> -->
+                <!-- <el-button type="primary" class="bt" @click="onDel">删除</el-button>
+                <el-button type="primary" class="bt" @click="onSMB">入仓末板数据统计</el-button>
+                <el-button type="primary" class="bt" @click="onDay">各日统计</el-button>
+                <el-button type="primary" class="bt" @click="onAdd">新增</el-button> -->
+                
+                <!-- <div style="margin-left: auto;">			
+                  
+                </div> -->
+              </el-form-item>
+              <!-- 数据展示 -->
+              <el-table ref="multipleTable" style="width: 100%;height: 100%;" tooltip-effect="dark" :data="tableData" row-key="ID" @row-click="Click"
+                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="入仓类型" 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="jjcp_num" width="140"/>
+                <el-table-column align="left" sortable  label="印件投料" prop="jjcp_gdbh" width="160"/>
+                <el-table-column align="left" sortable  label="包装产量" prop="jjcp_yjno" width="160"/>
+                <el-table-column align="left" sortable  label="入仓数量" prop="jjcp_sl" width="120"/>
+                <el-table-column align="left" sortable  label="缺数" prop="jjcp_sls" width="140"/>
+                <el-table-column align="left" sortable label="完工" prop="订单数量" width="120"/>
+                <el-table-column align="left" sortable label="最近入仓时间" prop="完成率" width="120"/>
+              </el-table>
+              <!-- 分页 -->
+              <div class="gva-pagination">
+                <el-pagination layout="total, sizes, prev, pager, next, jumper" v-model:current-page="page"
+                  v-model: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="800px">
+              <!-- <el-scrollbar height="500px"> -->
+              <el-form :model="formData" label-position="right" label-width="75px" ref="elFormRef" :rules="rule">
+  
+                <el-row :gutter="24">
+               <el-col :span="7">
+                 <el-form-item label="入仓类型" prop="id">
+                   <el-input v-model="formData.入仓类型" id="入仓类型"  @keydown="ent($event, '入仓备注', '入仓类型', '仓库编号')" :clearable="true" style="width: 120px;" />
+                 </el-form-item>
+               </el-col>
+               <el-col :span="17">
+                 <el-form-item label="仓库" prop="name" label-width="40px">
+                       <el-input v-model="formData.仓库编号" id="仓库编号"  @keydown="ent($event, '入仓类型', '仓库编号', '仓库名称')"   :clearable="true" style="width: 120px;" />
+                       <el-input v-model="formData.仓库名称" id="仓库名称"  @keydown="ent($event, '仓库编号', '仓库名称', '单据编号')" :clearable="true" style="width: 120px;" />
+                 </el-form-item>
+               </el-col>
+             </el-row> 
+             
+             
+             <el-row :gutter="24">
+               <el-col :span="7">
+                 <el-form-item label="单据编号" prop="id">
+                   <el-input v-model="formData.jjcp_num"  id="单据编号"  @keydown="ent($event, '仓库名称', '单据编号', '工单编号')" :clearable="true"  style="width: 120px;"  />
+                 </el-form-item>
+               </el-col>
+             </el-row> 
+             
+             
+             
+             <el-row :gutter="24">
+               <el-col :span="7">
+                 <el-form-item label="工单编号" prop="id">
+                   <el-input v-model="formData.jjcp_gdbh" id="工单编号"  @keydown="ent($event, '单据编号', '工单编号', '客户料号')" :clearable="true"  style="width: 120px;"  />
+                 </el-form-item>
+               </el-col>
+               <el-col :span="5">
+                 <el-form-item label="印件号" prop="name" label-width="55px">
+                      <el-input v-model="formData.jjcp_yjno" id="印件号" disabled :clearable="true"   style="width: 50px;" />
+                 </el-form-item>	   
+               </el-col>
+               <el-col :span="12">
+                 <el-form-item label="订单编号" prop="name">
+                       <el-input v-model="formData.订单编号" id="订单编号" disabled :clearable="true"  style="width: 120px;"  />
+                 </el-form-item>
+               </el-col>
+             </el-row> 
+             
+             <el-row :gutter="24">
+               <el-col :span="24">
+                 <el-form-item label="印件编号" prop="id">
+                   <el-input v-model="formData.jjcp_cpdh" id="印件编号" disabled :clearable="true"  style="width: 120px;"  />
+                  <el-input v-model="formData.jjcp_cpmc"  id="jjcp_cpmc" disabled :clearable="true"  style="width: 500px; margin-left: 10px;" />
+                 </el-form-item>
+               </el-col>
+             </el-row> 
+              
+              
+              <el-row :gutter="24">
+               <el-col :span="24">
+                 <el-form-item label="产品编号" prop="id">
+                   <el-input v-model="formData.成品编码" id="产品编号" disabled :clearable="true"   style="width: 120px;" />
+                      <el-input v-model="formData.成品名称" id="成品名称" disabled :clearable="true"   style="width: 500px; margin-left: 10px;" />
+                 </el-form-item>
+               </el-col>
+              </el-row> 
+  
+              <el-row :gutter="24">
+               <el-col :span="7">
+                 <el-form-item label="客户料号" prop="id">
+                   <el-input v-model="formData.客户料号" id="客户料号"  @keydown="ent($event, '工单编号', '客户料号', '首末板')" :clearable="true"  style="width: 120px;" />
+                 </el-form-item>
+               </el-col>
+              </el-row> 
+                
+                <el-row :gutter="24">
+                 <el-col :span="7">
+                   <el-form-item label="首末板" prop="id">
+                       <el-input v-model="formData.jjcp_smb" id="首末板"  @keydown="ent($event, '客户料号', '首末板', '入仓时间')" :clearable="true"   style="width: 120px;" />
+                   </el-form-item>
+                 </el-col>
+                 <el-col :span="17">
+                      <el-form-item label="入仓时间" prop="id">
+                          <el-date-picker v-model="formData.jjcp_sj" type="datetime"  format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"id="入仓时间"   @keydown="ent($event, '首末板', '入仓时间', '入仓数量')"  style="width: 200px;"/>
+                          
+                          <!-- <el-input type="datetime" v-model="formData.jjcp_sj"  id="入仓时间"   @keydown="ent($event, '首末板', '入仓时间', '入仓数量')" :clearable="true" style="width: 120px;" />	 -->
+                      </el-form-item>
+                 </el-col>
+                </el-row> 
+                
+                
+                <el-row :gutter="24">
+                 <el-col :span="7">
+                   <el-form-item label="入仓数量" prop="id">
+                     <el-input v-model="formData.jjcp_sl" id="入仓数量"  @keydown="ent($event, '入仓时间', '入仓数量', '入仓单位')" :clearable="true" style="width: 120px;" />
+                   </el-form-item>
+                 </el-col>
+                 <el-col :span="17">
+                    <el-form-item label="入仓单位" prop="id">
+                 <el-input v-model="formData.jjcp_dw" id="入仓单位"  @keydown="ent($event, '入仓数量', '入仓单位', '订单数量')" :clearable="true" style="width: 120px;" />	
+                  </el-form-item>
+                 </el-col>
+                </el-row> 
+                
+                
+                <el-row :gutter="24">
+                 <el-col :span="7">
+                   <el-form-item label="订单数量" prop="id">
+                     <el-input v-model="formData.订单数量" id="订单数量" @blur="" @keydown="ent($event, '入仓单位', '订单数量', '已完工')" :clearable="true" style="width: 120px;" />
+                   </el-form-item>
+                 </el-col>
+                 <el-col :span="7">
+                    <el-form-item label="已完工" prop="id">
+                 <el-input v-model="formData.jjcp_sls" id="已完工"  @keydown="ent($event, '订单数量', '已完工', '机型备注')" :clearable="true" style="width: 120px;" />	
+                  </el-form-item>
+                 </el-col>
+                 <el-col :span="8">
+                                   <el-form-item label="机型备注" prop="id">
+                 <el-input v-model="formData.机型备注" id="机型备注"  @keydown="ent($event, '已完工', '机型备注', '入仓备注')" :clearable="true"  style="width: 300px;"/>	
+                  </el-form-item>
+                 </el-col>
+                </el-row> 
+                
+                
+                <el-row :gutter="24">
+                   <el-col :span="22">
+                     <el-form-item label="入仓备注" prop="id">
+                       <el-input v-model="formData.jjcp_desc"  id="入仓备注"  @keydown="ent($event, '机型备注', '入仓备注', '入仓类型')":clearable="true"  />
+                     </el-form-item>
+                   </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="CKVisible" title="选择"
+              destroy-on-close width="600px" @keydown="selectCK($event)" >
+              <el-table tooltip-effect="dark"
+                :data="CKselectData" row-key="ID"
+                highlight-current-row="true" border style="width:100%"
+                @row-dblclick="CKSelectClick"
+                ref="table2"
+              >
+                <el-table-column prop="编号" label="编号" width="200" />
+                <el-table-column prop="名称" label="名称" width="200" />		      	 
+              </el-table>
+            </el-dialog>
+            
+            <!-- 入仓类型选择 -->
+            <el-dialog v-model="RCVisible" title="选择"
+              destroy-on-close width="400px" @keydown="selectRC($event)" >
+              <el-table tooltip-effect="dark"
+                :data="RCselectData" row-key="ID"
+                highlight-current-row="true" border style="width:100%"
+                @row-dblclick="RCSelectClick"
+                          ref="tableRC"
+              >
+                <el-table-column prop="入仓类型" label="入仓类型" width="360" />		      	 
+              </el-table>
+            </el-dialog>
+            
+            <!-- 首末板选择 -->
+            <el-dialog v-model="SMBVisible" title="选择"
+              destroy-on-close width="200px" @keydown="selectSMB($event)" >
+              <el-table tooltip-effect="dark" :data="SMBselectData" row-key="ID"
+                highlight-current-row="true" border style="width:100%"
+                :row-style="{ height: '30px' }"
+                @row-dblclick="SMBSelectClick"
+                          ref="tableSMB"
+              >
+                <el-table-column prop="jjcp_smb" label="" width="160" />		      	 
+              </el-table>
+            </el-dialog>
+            
+            <el-dialog v-model="GDVisible" title="选择" destroy-on-close width="600px" @keydown="selectGD($event)" >
+              <el-table tooltip-effect="dark" :data="GDselectData"
+                row-key="ID" highlight-current-row="true" border
+                style="width:100%" @row-dblclick="GDSelectClick"
+                ref="table3"
+              >
+              <el-table-column prop="gdyj" label="工单印件" width="560" />
+              </el-table>
+            </el-dialog>
+            
+            
+            <el-dialog
+              v-model="TJVisible"
+              title="各日统计"
+              destroy-on-close
+              width="80%px;"
+              style="height: 80%;"
+              
+                        >
+              <el-row :gutter="20">
+              <el-col :span="41">
+                <el-form-item label="关键字" prop="id">
+                <el-input v-model="keywords" :clearable="true" placeholder="2023.12.14" />
+                </el-form-item>
+              </el-col>
+               </el-row> 
+              <el-table
+                tooltip-effect="dark"
+                :data="TJselectData"
+                row-key="ID"
+                highlight-current-row="true"
+                border
+                style="width:100%"
+                height="300px"
+                @row-dblclick="TJSelectClick"
+              >
+                <el-table-column
+                  prop="jjcp_sj"
+                  label="完工日期"
+                  width="200"
+                />
+                <el-table-column
+                  prop="jjcp_gdbh"
+                  label="工单编号"
+                  width="200"
+                />
+                <el-table-column
+                  prop="jjcp_cpmc"
+                  label="印件(产品名称)"
+                  width="200"
+                />
+                <el-table-column
+                  prop="实际投料"
+                  label="实际投料"
+                  width="200"
+                />
+                <el-table-column
+                  prop="入仓数量"
+                  label="入仓数量"
+                  width="200"
+                />
+                <el-table-column
+                  prop="投入产出率"
+                  label="投入产出率"
+                  width="200"
+                />
+              </el-table>
+            </el-dialog>
+            
+            
+            <el-dialog
+              v-model="SMVisible"
+              title="选择"
+              destroy-on-close
+              width="1200px"
+              
+                        >
+              <el-table
+                tooltip-effect="dark"
+                :data="SMselectData"
+                row-key="ID"
+                highlight-current-row="true"
+                border
+                style="width:180%"
+                height="500px"
+                @row-dblclick="SMSelectClick"
+              >
+                  <el-table-column
+                    prop="Yj_Gdbh"
+                    label="工单编号"
+                    width="180"
+                  />
+                <el-table-column
+                  prop="yj_Yjno"
+                  label="印件号"
+                  width="200"
+                />
+                <el-table-column
+                  prop="yj_yjmc"
+                  label="印件名称"
+                  width="200"
+                />
+                <el-table-column
+                  prop="yj_成品数量"
+                  label="计划交货数量"
+                  width="200"
+                />
+                <el-table-column
+                  prop="yj_实际投料"
+                  label="印件投料"
+                  width="200"
+                />
+                <el-table-column
+                  prop="jjcp_sls"
+                  label="包装产量"
+                  width="200"
+                />
+                <el-table-column
+                  prop="sczl_cls"
+                  label="入仓数量"
+                  width="200"
+                />
+                <el-table-column
+                  prop="jjcp_smb"
+                  label="缺数"
+                  width="200"
+                />
+                <el-table-column
+                  prop="客户料号"
+                  label="完工"
+                  width="200"
+                />
+                <el-table-column
+                  prop="jjcp_sj"
+                  label="最近入仓时间"
+                  width="200"
+                />
+              </el-table>
+            </el-dialog>
+            
+          </el-main>
+        </el-container>
+      </el-container>
+  
+    </div>
+  </template>
+  
+  <script setup>
+  import {
+    finishedTab,
+    finishedTabByGdbh,
+    finishedList,
+    finishedlocate,
+    finishedInfo,
+    finishedgetCk,
+    finishedgetGd,
+    finishedgetGdsl,
+    finisheddel,
+    getDayList,
+    mbList,
+    finishedadd,
+    finishedEdit
+  } 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, onBeforeMount } from 'vue'
+  import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
+  import { TRUE } from 'sass'
+  import { useUserStore } from '@/pinia/modules/user'
+  const userStore = useUserStore() 
+  const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
+  defineOptions({
+    name: '06-packingDocuments'
+  })
+  
+
+  </script>
+  
+  <style>
+  .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;
+  }
+  
+  /* 选中某行时的背景色*/
+  .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: 5px !important;
+    padding: 5px !important;
+    font-size: 15px;
+  }
+  .el-tabs__header{
+    margin: 0px !important;
+  }
+  .gva-table-box{
+    padding: 0px !important;
+  }
+  .mab{
+    margin-bottom: 5px;
+  }
+  </style>

+ 9 - 0
src/view/yunyin/shengchanguanli/shebeiyunxing.vue

@@ -6205,6 +6205,15 @@ const ongdwhfanclick = async() => {
 
 //工序产量核查回车
 const gxclhcProductValue = async () => {
+  const response = await PrintDetailList ({workOrder:gxclhcformData['gdbh']});
+  gdwhformData.yjno = response.data[0].no
+  inputCpmc.value = response.data[0].name
+  if (response.code === 0) {
+	  const noFields = response.data.map(item => item.no);
+	  gdwhformData.yinjian = noFields
+	} else {
+	  console.error('查询失败:', response.msg);
+	}
   _getOrderProcessCount();
   _PrintDetailList();
 }

+ 87 - 2
src/view/yunyin/shengchanguanli/shengchanjincheng.vue

@@ -12,6 +12,7 @@
 			  <el-button type="primary" icon="edit"   @click="cp_gdprintonClick" class="bt" title="打印生产工单" >工单打印</el-button>
 			  <el-button type="primary" title="设置工单的状态-->【计划中】 【生产中】 【已完成】" icon="edit" @click="onStatusClick" class="bt">工单状态设置</el-button>
 			  <el-button type="primary" icon="edit"   @click="gd_gxclhconClick"  class="bt" title="工序产量核查">工序产量核查</el-button>
+        <el-button type="primary" class="bt" icon="download" @click="jcToExcel" >进程导出</el-button>
             </el-form-item>
           </el-form>
 		  
@@ -151,6 +152,7 @@ import {
 	getOrderProcessCount,
   PrintDetailList
 	} from '@/api/yunyin/yunying'
+import { exportExcelFile } from '@/utils/excel'
 import PrintPage from './components/print.vue'
 import {ElMessage} from "element-plus";
 defineOptions({name: 'Company'})
@@ -312,7 +314,15 @@ const ongdwhfanclick = async() => {
 
 //工序产量核查回车
 const gxclhcProductValue = async () => {
-	console.log("工序产量核查回车")
+  const response = await PrintDetailList ({workOrder:gxclhcformData['gdbh']});
+  gdwhformData.yjno = response.data[0].no
+  inputCpmc.value = response.data[0].name
+  if (response.code === 0) {
+	  const noFields = response.data.map(item => item.no);
+	  gdwhformData.yinjian = noFields
+	} else {
+	  console.error('查询失败:', response.msg);
+	}
   _getOrderProcessCount();
   _PrintDetailList();
 }
@@ -383,6 +393,81 @@ const gxbgCellClass = ({row, column, rowIndex, columnIndex}) =>{
   return 'lan-plan-usage-lows';  
 }
 
+const jcToExcel = () => {
+  const tableCols1 = [
+    { label: '工单编号', prop: '工单编号', width: '110', sortable: 'sortable', fixed: 'fixed', align: 'left' },
+    { label: '印件代号', prop: '印件代号', width: '110', sortable: 'sortable', fixed: 'fixed', align: 'left' },
+    { label: '印件名称', prop: '印件名称', width: '800', sortable: 'sortable', fixed: 'fixed', align: 'left' },
+    { label: '联数', prop: '联数', width: '110', sortable: 'sortable', fixed: 'fixed', align: 'left' },
+    { label: '投料大箱', prop: '投料大箱', width: '110', sortable: 'sortable', fixed: 'fixed', align: 'left' },
+    { label: '计划投料', prop: '计划投料', width: '110', sortable: 'sortable', fixed: 'fixed', align: 'left' },
+    { label: '生产进度', prop: '生产进度', width: '2000', sortable: 'sortable', fixed: 'fixed', align: 'center' }, // 增加了宽度以适应可能的长文本
+  ];
+ 
+  const headers = tableCols1.map(item => ({
+    label: item.label,
+    prop: item.prop,
+  }));
+ 
+  // 假设工序的键是从 '工序1' 到 '工序10'
+  const processSteps = ['工序1', '工序2', '工序3', '工序4', '工序5', '工序6', '工序7', '工序8', '工序9', '工序10','工序11','工序12','工序13','工序14','工序15','工序16','工序17',];
+ 
+  // 处理数据
+  const data = tableData.map(item => {
+    let productionProgress = '';
+    processSteps.forEach(step => {
+      if (item[step]) {
+        productionProgress += item[step] + ' --> ';
+      }
+    });
+    // 移除最后一个 ' --> '
+    if (productionProgress.endsWith(' --> ')) {
+      productionProgress = productionProgress.slice(0, -5);
+    }
+ 
+    const row = {};
+    headers.forEach(({ prop }) => {
+      if (prop === '生产进度') {
+        row[prop] = productionProgress;
+      } else {
+        row[prop] = item[prop];
+      }
+    });
+    return row;
+  });
+
+  exportExcelFile(data, headers.map(h => h.label)); // 可能需要传递列名作为第二个参数
+};
+
+// //导出excel表
+// const jcToExcel = () => {
+// 	const tableCols1 = [
+// 		{ label: '工单编号', prop: '工单编号',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+// 		{ label: '印件代号', prop: '印件代号',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+// 		{ label: '印件名称', prop: '印件名称',  width: '600',sortable:'sortable',fixed:'fixed',align:'left'},
+// 		{ label: '联数', prop: '联数',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+// 		{ label: '投料大箱', prop: '投料大箱',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+// 		{ label: '计划投料', prop: '计划投料',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+// 		{ label: '生产进度', prop: 'jjcp_sls',  width: '110',sortable:'sortable',fixed:'fixed',align:'left'},
+// 	]
+ 
+// 	const headers = tableCols1.map(item => ({
+// 		label: item.label,
+// 		prop: item.prop
+// 	}));
+
+// 	//tableData._value table中data属性
+//   const data = tableData._value.map(item => {
+//     const row = {};
+//     headers.forEach(({ prop }) => {
+//       row[headers.find(h => h.prop === prop).label] = item[prop];
+//     });
+//     return row;
+//   });
+// 	//引入import { exportExcelFile } from '@/utils/excel'
+//   exportExcelFile(data);
+// };
+
 
 // 搜索默认为空
 const searchInfo = ref('')
@@ -408,7 +493,7 @@ const _workOrderDetailList = async ()=>{
     const workOrderDetaildata = await workOrderDetail(params);
     console.log(workOrderDetaildata)
     tableData.splice(0,tableData.length,...workOrderDetaildata.data);
-    total.value = WorkListdata.data.total;
+    total.value = workOrderDetaildata.data.length;
   } catch (error) {
     console.error(error);
   }