Эх сурвалжийг харах

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

曹鹤洋 1 жил өмнө
parent
commit
57a4204d88
38 өөрчлөгдсөн 2208 нэмэгдсэн , 1127 устгасан
  1. 2 1
      package.json
  2. 14 0
      src/api/jixiaoguanli/jitairibaobiao.js
  3. 64 2
      src/api/mes/job.js
  4. 9 1
      src/api/user.js
  5. 8 0
      src/api/yunyin/yunying.js
  6. 3 0
      src/main.js
  7. 103 5
      src/pinia/modules/user.js
  8. 22 0
      src/utils/excel.js
  9. 19 15
      src/utils/request.js
  10. 3 1
      src/view/job/job/job.vue
  11. 3 1
      src/view/job/piece/piece.vue
  12. 3 1
      src/view/job/process/process.vue
  13. 3 1
      src/view/job/related/related.vue
  14. 575 113
      src/view/job/rewards/rewards.vue
  15. 23 15
      src/view/job/sampling/sampling.vue
  16. 3 2
      src/view/layout/index.vue
  17. 131 131
      src/view/login/index.vue
  18. 37 16
      src/view/performance/06-packingDocuments/index.vue
  19. 10 8
      src/view/performance/07-otherDocuments/index.vue
  20. 20 18
      src/view/performance/08-timesheet/index.vue
  21. 45 14
      src/view/performance/09-workOrderVerification/index.vue
  22. 5 5
      src/view/performance/12-orderAccounting/componets/gdcjstj.vue
  23. 70 30
      src/view/performance/12-orderAccounting/index.vue
  24. 3 0
      src/view/performance/14-overTimePayVerification/index.vue
  25. 7 4
      src/view/performance/Dayreportattached.vue
  26. 5 2
      src/view/performance/Dayreports.vue
  27. 5 2
      src/view/performance/MachineDocuments.vue
  28. 5 2
      src/view/performance/Manualdocuments.vue
  29. 8 5
      src/view/performance/Packagingoutput.vue
  30. 41 53
      src/view/performance/chejianbaogong.vue
  31. 13 6
      src/view/performance/jjgzzhys.vue
  32. 4 1
      src/view/performance/yuangongrigongzi.vue
  33. 402 400
      src/view/yunyin/chanpinziliao/chanpinziliao.vue
  34. 127 4
      src/view/yunyin/renliziyuan/renyuanjibenziliao.vue
  35. 6 4
      src/view/yunyin/shengchanguanli/chengpinrucang.vue
  36. 177 177
      src/view/yunyin/shengchanguanli/gongdanshengchan.vue
  37. 133 60
      src/view/yunyin/shengchanguanli/gongdanziliao.vue
  38. 97 27
      src/view/yunyin/shengchanguanli/shebeiyunxing.vue

+ 2 - 1
package.json

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

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

@@ -994,6 +994,20 @@ export const ChanliangAdd = (data) => {
     data
   })
 }
+export const AdditionalInspectionRecordAdd = (data) => {
+  return service({
+    url:'/mes_server/facility/AdditionalInspectionRecordAdd',
+    method: 'post',
+    data
+  })
+}
+export const ProcessInspectionRecordsItemAdd = (data) => {
+  return service({
+    url:'/mes_server/facility/ProcessInspectionRecordsItemAdd',
+    method: 'post',
+    data
+  })
+}
 //日产量上报添加->工单资料获取
 export const ChanliangWorkorder = (params) => {
   return service({

+ 64 - 2
src/api/mes/job.js

@@ -129,8 +129,70 @@ export const getRewardTabByGd = (params) => {
     params
   })
 }
-
-
+// 大废品奖惩工单编号获取
+export const JunkWorkOrderList = (params) => {
+  return service({
+    url: '/mes_server/large_waste_reward_punish/JunkWorkOrderList',
+    method: 'get',
+    params
+  })
+}
+// 大废品奖惩印件编号获取
+export const PrintCodeList = (params) => {
+  return service({
+    url: '/mes_server/large_waste_reward_punish/PrintCodeList',
+    method: 'get',
+    params
+  })
+}
+// 大废品奖惩工单工艺获取
+export const ProcessList = (params) => {
+  return service({
+    url: '/mes_server/large_waste_reward_punish/ProcessList',
+    method: 'get',
+    params
+  })
+}
+// 大废品奖惩获取机组员工编号
+export const MachineClassList = (params) => {
+  return service({
+    url: '/mes_server/large_waste_reward_punish/MachineClassList',
+    method: 'get',
+    params
+  })
+}
+// 大废品奖惩机台编号获取
+export const MachineList = (params) => {
+  return service({
+    url: '/mes_server/large_waste_reward_punish/MachineList',
+    method: 'get',
+    params
+  })
+}
+// 大废品奖惩大废品数据删除
+export const JunkDetailDel = (params) => {
+  return service({
+    url: '/mes_server/large_waste_reward_punish/JunkDetailDel',
+    method: 'get',
+    params
+  })
+}
+// 大废品奖惩大废品数据修改
+export const JunkDetailEdit = (data) => {
+  return service({
+    url: '/mes_server/large_waste_reward_punish/JunkDetailEdit',
+    method: 'post',
+    data
+  })
+}
+// 大废品奖惩大废品数据添加
+export const JunkDetailAdd = (data) => {
+  return service({
+    url: '/mes_server/large_waste_reward_punish/JunkDetailAdd',
+    method: 'post',
+    data
+  })
+}
 export const getDocumentData = (params) => {
   return service({
     url: '/mes_server/process_document/getData',

+ 9 - 1
src/api/user.js

@@ -11,6 +11,14 @@ export const login = (data) => {
   })
 }
 
+export const login2 = (data) => {
+  return service({
+    url: '/base/autologin',
+    method: 'post',
+    data: data
+  })
+}
+
 // @Summary 获取验证码
 // @Produce  application/json
 // @Param data body {username:"string",password:"string"}
@@ -163,4 +171,4 @@ export const resetPassword = (data) => {
     method: 'post',
     data: data
   })
-}
+}

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

@@ -33,6 +33,14 @@ export const ygjbzledit = (data) => {
         data
     })
 }
+//4.设置法定天数
+export const clockUpdate = (data) => {
+    return service({
+        url: '/mes_server/staff/clockUpdate',
+        method: 'post',
+        data
+    })
+}
 
 /** 产品管理 */
 //1.获取客户信息

+ 3 - 0
src/main.js

@@ -15,6 +15,9 @@ import { store } from '@/pinia'
 import App from './App.vue'
 import { initDom } from './utils/positionToCode'
 
+
+
+
 initDom()
 /**
  * @description 导入加载进度条,防止首屏加载时间过长,用户等待

+ 103 - 5
src/pinia/modules/user.js

@@ -1,10 +1,11 @@
-import { login, getUserInfo, setSelfInfo } from '@/api/user'
+import { login, getUserInfo, setSelfInfo,login2 } from '@/api/user'
 import { jsonInBlacklist } from '@/api/jwt'
 import router from '@/router/index'
 import { ElLoading, ElMessage } from 'element-plus'
 import { defineStore } from 'pinia'
 import { ref, computed, watch } from 'vue'
 import { useRouterStore } from './router'
+import { getMachineMac } from "@/api/jixiaoguanli/jitairibaobiao";
 
 export const useUserStore = defineStore('user', () => {
   const loadingInstance = ref(null)
@@ -40,11 +41,14 @@ export const useUserStore = defineStore('user', () => {
       ...value
     }
   }
+  
+  
   /* 获取用户信息*/
   const GetUserInfo = async() => {
     const res = await getUserInfo()
     if (res.code === 0) {
       setUserInfo(res.data.userInfo)
+	  console.log(res)
     }
     return res
   }
@@ -60,14 +64,13 @@ export const useUserStore = defineStore('user', () => {
 	  console.log(res)
       if (res.code === 0) {
         setUserInfo(res.data.user)
-        setToken(res.data.token)
+        setToken(res.data.token)		
         const routerStore = useRouterStore()
         await routerStore.SetAsyncRouter()
         const asyncRouters = routerStore.asyncRouters
         asyncRouters.forEach(asyncRouter => {
           router.addRoute(asyncRouter)
         })
-
         if (!router.hasRoute(userInfo.value.authority.defaultRouter)) {
           ElMessage.error('请联系管理员进行授权')
         } else {
@@ -75,7 +78,7 @@ export const useUserStore = defineStore('user', () => {
         }
 
         loadingInstance.value.close()
-
+        
         const isWin = ref(/windows/i.test(navigator.userAgent))
         if (isWin.value) {
           window.localStorage.setItem('osType', 'WIN')
@@ -89,6 +92,99 @@ export const useUserStore = defineStore('user', () => {
     }
     loadingInstance.value.close()
   }
+  const LoginIn2 = async(loginInfo) => {
+    loadingInstance.value = ElLoading.service({
+      fullscreen: true,
+      text: '登录中,请稍候...',
+    })
+    try {
+      const res = await login2(loginInfo)
+	  console.log(loginInfo)
+	  console.log(res)
+      if (res.code === 0) {
+        setUserInfo(res.data.user)
+        setToken(res.data.token)
+        const routerStore = useRouterStore()
+        await routerStore.SetAsyncRouter()
+        const asyncRouters = routerStore.asyncRouters
+        asyncRouters.forEach(asyncRouter => {
+          router.addRoute(asyncRouter)
+        })
+		// A4-B1-C1-D4-74-02
+        // const response = await getMachineMac({ addr:'68-ED-A4-26-5F-37'});
+		const response = await getMachineMac({ addr:MAC});
+        console.log(response)
+        if(response.data===null){
+        	// ElMessage.error('请输入账号密码')
+        }else{
+		if (!router.hasRoute(userInfo.value.authority.defaultRouter)) {
+		  ElMessage.error('请联系管理员进行授权')
+		} else {
+		  await router.replace({ name: userInfo.value.authority.defaultRouter })
+		}
+		
+		loadingInstance.value.close()
+		
+		const isWin = ref(/windows/i.test(navigator.userAgent))
+		if (isWin.value) {
+		  window.localStorage.setItem('osType', 'WIN')
+		} else {
+		  window.localStorage.setItem('osType', 'MAC')
+		}
+		
+		return true;
+        }
+      }
+    } catch (e) {
+      loadingInstance.value.close()
+    }
+    loadingInstance.value.close()
+  }
+  
+let MAC=ref()
+const GetAddr = () => {
+var xmlhttp = null;
+var res;
+if (window.XMLHttpRequest) {
+  xmlhttp = new XMLHttpRequest();
+} else if (window.ActiveXObject) {
+  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+}
+// 设置回调函数
+xmlhttp.onreadystatechange = function () {
+  if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
+	res = eval("(" + xmlhttp.response + ")");
+	let result = "";
+	for (let i = 0; i < res.macAddress.length; i++) {
+	  if (i % 2 === 0 && i !== 0) {
+		result += "-"; // 根据实际需求修改分隔符
+	  }
+	  result += res.macAddress[i];
+	}
+	MAC=result
+	// console.log(result);
+  // 68-ED-A4-26-5F-37
+  }
+};
+// 打开一个连接
+xmlhttp.open("get", "http://127.0.0.1:8090/init");
+// 发送请求
+xmlhttp.send();
+};
+GetAddr()  
+
+  
+const GetMachineMac = async (addr) => {
+const response = await getMachineMac({ addr: '68-ED-A4-26-5F-37' });
+console.log(response)
+if(response.data===null){
+	LoginOut()
+}else{
+	
+}
+// console.log(loginFormData2)
+}
+  
   /* 登出*/
   const LoginOut = async() => {
     const res = await jsonInBlacklist()
@@ -98,6 +194,7 @@ export const useUserStore = defineStore('user', () => {
       localStorage.clear()
       router.push({ name: 'Login', replace: true })
       window.location.reload()
+	  
     }
   }
   /* 清理数据 */
@@ -152,6 +249,7 @@ export const useUserStore = defineStore('user', () => {
     ResetUserInfo,
     GetUserInfo,
     LoginIn,
+    LoginIn2,
     LoginOut,
     changeSideMode,
     mode,
@@ -162,4 +260,4 @@ export const useUserStore = defineStore('user', () => {
     loadingInstance,
     ClearStorage
   }
-})
+})

+ 22 - 0
src/utils/excel.js

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

+ 19 - 15
src/utils/request.js

@@ -106,21 +106,25 @@ service.interceptors.response.use(
 
     switch (error.response.status) {
       case 500:
-        ElMessageBox.confirm(`
-        <p>检测到接口错误${error}</p>
-        <p>错误码<span style="color:red"> 500 </span>:此类错误内容常见于后台panic,请先查看后台日志,如果影响您正常使用可强制登出清理缓存</p>
-        `, '接口报错', {
-          dangerouslyUseHTMLString: true,
-          distinguishCancelAndClose: true,
-          confirmButtonText: '清理缓存',
-          cancelButtonText: '取消'
-        })
-          .then(() => {
-            const userStore = useUserStore()
-            userStore.token = ''
-            localStorage.clear()
-            router.push({ name: 'Login', replace: true })
-          })
+        // ElMessageBox.confirm(`
+        // <p>检测到接口错误${error}</p>
+        // <p>错误码<span style="color:red"> 500 </span>:此类错误内容常见于后台panic,请先查看后台日志,如果影响您正常使用可强制登出清理缓存</p>
+        // `, '接口报错', {
+        //   dangerouslyUseHTMLString: true,
+        //   distinguishCancelAndClose: true,
+        //   confirmButtonText: '清理缓存',
+        //   cancelButtonText: '取消'
+        // })
+        //   .then(() => {
+        //     const userStore = useUserStore()
+        //     userStore.token = ''
+        //     localStorage.clear()
+        //     router.push({ name: 'Login', replace: true })
+        //   })
+		ElMessage({
+		  type: 'error',
+		  message: '请稍后重试'
+		})
         break
       case 404:
         ElMessageBox.confirm(`

+ 3 - 1
src/view/job/job/job.vue

@@ -226,7 +226,9 @@ import {
 import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { ref, reactive } from 'vue'
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
     name: 'Company'
 })

+ 3 - 1
src/view/job/piece/piece.vue

@@ -210,7 +210,9 @@ import {
 import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { ref, reactive } from 'vue'
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
     name: 'Company'
 })

+ 3 - 1
src/view/job/process/process.vue

@@ -185,7 +185,9 @@ import {
 import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { ref, reactive } from 'vue'
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
     name: 'Company'
 })

+ 3 - 1
src/view/job/related/related.vue

@@ -347,7 +347,9 @@ import { ref, reactive, onMounted, onBeforeMount, nextTick } from 'vue'
 import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
 import { Value } from 'sass'
 import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '06-packingDocuments'
 })

+ 575 - 113
src/view/job/rewards/rewards.vue

@@ -59,6 +59,16 @@
                   icon="search"
                   @click="onSubmit"
                 >查询</el-button>
+				<el-button
+				  type="primary"
+				  icon="search"
+				  @click="onAdd"
+				>新增</el-button>
+				<el-button
+				  type="primary"
+				  icon="search"
+				  @click="onDel"
+				>删除</el-button>
                 <el-button
                   icon="refresh"
                   @click="onReset"
@@ -82,6 +92,7 @@
               :header-cell-style="{ padding: '0px' }"
               @selection-change="handleSelectionChange"
               @row-dblclick="handleDoubleClick"
+			  @row-click="Click"
             >
               <el-table-column
                 type="selection"
@@ -91,7 +102,7 @@
                 align="left"
                 label="工单编号"
                 prop="sczl_gdbh"
-                width="90" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
@@ -109,67 +120,67 @@
                 align="left"
                 label="流程单备注"
                 prop="sczl_numDesc"
-                width="100" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="联数"
                 prop="sczl_ls"
-                width="70" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="责任部门"
                 prop="责任部门"
-                width="90" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="大废品数"
                 prop="sczl_cl"
-                width="90" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="废品类型"
                 prop="sczl_fplxA"
-                width="100" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="废品来源"
                 prop="sczl_fplxB"
-                width="90" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="奖励班组"
                 prop="Jl_bzdh"
-                width="90" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="检验员工"
                 prop="JL_bh1"
-                width="90" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="责任班组"
                 prop="sczl_bzdh"
-                width="90" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="责任员工1"
                 prop="sczl_bh1"
-                width="90" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="责任员工2"
                 prop="sczl_bh2"
-                width="90" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
@@ -187,7 +198,7 @@
                 align="left"
                 label="UNIQID"
                 prop="UniqId"
-                width="80" sortable
+                width="120" sortable
               />
             </el-table>
             <div class="gva-pagination">
@@ -205,7 +216,7 @@
           <el-dialog
             v-model="dialogFormVisible"
             :before-close="closeDialog"
-            title="详情"
+            :title="type === 'create' ? '新增' : '修改'"
             destroy-on-close
             style="width: 1020px;position: fixed; top: 35%; left: 50%; transform: translate(-50%, -50%);"
           >
@@ -218,7 +229,7 @@
                 label-position="right"
                 :rules="rule"
                 label-width="80px"
-                aria-readonly="true"
+                aria-="true"
               >
                 <el-form-item
                   label="工单编号:"
@@ -227,7 +238,8 @@
                 >
                   <el-input
                     v-model="detailData.sczl_gdbh"
-                    readonly
+                    @keydown="ent1($event)"
+					@blur="getCPMCsubmit()"
                     style="width: 120px;"
                   />
                 </el-form-item>
@@ -237,7 +249,7 @@
                 >
                   <el-input
                     v-model="detailData.Gd_cpmc"
-                    readonly
+                    @keydown="ent1($event)"
                     placeholder="请输入产品名称"
                     style="width: 450px;"
                   />
@@ -258,7 +270,8 @@
                 >
                   <el-input
                     v-model="detailData.sczl_yjno"
-                    readonly
+                    @keydown="ent1($event)"
+					@blur="getYJMCsubmit()"
                     style="width: 120px;"
                   />
                 </el-form-item>
@@ -268,7 +281,7 @@
                 >
                   <el-input
                     v-model="detailData.yj_yjmc"
-                    readonly
+                    @keydown="ent1($event)"
                     style="width: 450px;"
                   />
                 </el-form-item>
@@ -287,14 +300,15 @@
                 >
                   <el-input
                     v-model="detailData.sczl_gxmc"
-                    readonly
+                    @blur="getGXsubmit()"
+					 @keydown="ent1($event)"
                     style="width: 300px;"
                   />
                 </el-form-item>
                 <el-form-item prop="image">
                   <el-input
                     v-model="detailData.sczl_gxh"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 50px;"
                   />
                 </el-form-item>
@@ -304,7 +318,7 @@
                 >
                   <el-input
                     v-model="detailData.sczl_numDesc"
-                    readonly
+                     @keydown="ent1($event)"
                   />
                 </el-form-item>
               </el-form>
@@ -323,7 +337,7 @@
                 >
                   <el-input
                     v-model="detailData.sczl_rq"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 120px;"
                   />
                 </el-form-item>
@@ -333,7 +347,7 @@
                 >
                   <el-input
                     v-model="detailData.sczl_cl"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 120px;"
                   />
                 </el-form-item>
@@ -343,7 +357,7 @@
                 >
                   <el-input
                     v-model="detailData.sczl_ls"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 120px;"
                   />
                 </el-form-item>
@@ -362,7 +376,7 @@
                 >
                   <el-input
                     v-model="detailData.sczl_fplxA"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 300px;"
                   />
                 </el-form-item>
@@ -370,6 +384,7 @@
                   <el-checkbox
                     v-model="detailData"
                     style="width: 30px;"
+					 @keydown="ent1($event)"
                   >制程废</el-checkbox>
                 </el-form-item>
                 <el-form-item
@@ -378,7 +393,7 @@
                 >
                   <el-input
                     v-model="detailData.责任部门"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 250px;"
                   />
                 </el-form-item>
@@ -444,57 +459,59 @@
                   <div class="sub-title">奖励班组:</div>
                   <el-input
                     v-model="detailData.Jl_bzdh"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 45px;"
                   />
                   <el-input
                     v-model="detailData.jl_jtbh"
-                    readonly
+                     @blur="getJtbhsubmit('1')"
+					 @keydown="ent1($event)"
+					id="jt"
                     style="width: 65px;"
                   />
                   <el-input
                     v-model="detailData.JL_bh1"
-                    readonly
+                    id="bh1"  @keydown="ent($event, 'jt', 'bh1', 'bh2')" @keyup.enter.native="GetYg($event, '1')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_bh2"
-                    readonly
+                    id="bh2"  @keydown="ent($event, 'bh1', 'bh2', 'bh3')" @keyup.enter.native="GetYg($event, '2')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_bh3"
-                    readonly
+                    id="bh3"  @keydown="ent($event, 'bh2', 'bh3', 'bh4')" @keyup.enter.native="GetYg($event, '3')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_bh4"
-                    readonly
+                    id="bh4"  @keydown="ent($event, 'bh3', 'bh4', 'bh5')" @keyup.enter.native="GetYg($event, '4')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_bh5"
-                    readonly
+                    id="bh5"  @keydown="ent($event, 'bh4', 'bh5', 'bh6')" @keyup.enter.native="GetYg($event, '5')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_bh6"
-                    readonly
+                    id="bh6"  @keydown="ent($event, 'bh5', 'bh6', 'bh7')" @keyup.enter.native="GetYg($event, '6')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_bh7"
-                    readonly
+                    id="bh7"  @keydown="ent($event, 'bh6', 'bh7', 'bh8')" @keyup.enter.native="GetYg($event, '7')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_bh8"
-                    readonly
+                    id="bh8"  @keydown="ent($event, 'bh7', 'bh8', 'bh9')" @keyup.enter.native="GetYg($event, '8')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_bh9"
-                    readonly
+                    id="bh9"  @keydown="ent($event, 'bh8', 'bh9', 'name1')" @keyup.enter.native="GetYg($event, '9')"
                     style="width: 85px;"
                   />
                 </el-form-item>
@@ -513,47 +530,48 @@
                   />
                   <el-input
                     v-model="detailData.jlname1"
-                    readonly
+                    id="name1"
+					 @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.jlname2"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.jlname3"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.jlname4"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.jlname5"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.jlname6"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.jlname7"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.jlname8"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.jlname9"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                 </el-form-item>
@@ -572,47 +590,47 @@
                   >奖励金额:</div>
                   <el-input
                     v-model="detailData.JL_Je1"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_Je2"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_Je3"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_Je4"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_Je5"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_Je6"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_Je7"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_Je8"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.JL_Je9"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                 </el-form-item>
@@ -678,57 +696,59 @@
                   <div class="sub-title">责任班组:</div>
                   <el-input
                     v-model="detailData.sczl_bzdh"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 45px;"
                   />
                   <el-input
                     v-model="detailData.sczl_jtbh"
-                    readonly
+                    id="jt2"
+					 @blur="getJtbhsubmit('2')"
+					 @keydown="ent1($event)"
                     style="width: 65px;"
                   />
                   <el-input
                     v-model="detailData.sczl_bh1"
-                    readonly
+                    id="dh1"  @keydown="ent($event, 'jt2', 'dh1', 'dh2')" @keyup.enter.native="GetYg($event, '10')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_bh2"
-                    readonly
+                    id="dh2"  @keydown="ent($event, 'dh1', 'dh2', 'dh3')" @keyup.enter.native="GetYg($event, '11')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_bh3"
-                    readonly
+                   id="dh3"  @keydown="ent($event, 'dh2', 'dh3', 'dh4')" @keyup.enter.native="GetYg($event, '12')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_bh4"
-                    readonly
+                   id="dh4"  @keydown="ent($event, 'dh3', 'dh4', 'dh5')" @keyup.enter.native="GetYg($event, '13')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_bh5"
-                    readonly
+                    id="dh5"  @keydown="ent($event, 'dh4', 'dh5', 'dh6')" @keyup.enter.native="GetYg($event, '14')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_bh6"
-                    readonly
+                    id="dh6"  @keydown="ent($event, 'dh5', 'dh6', 'dh7')" @keyup.enter.native="GetYg($event, '15')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_bh7"
-                    readonly
+                    id="dh7"  @keydown="ent($event, 'dh6', 'dh7', 'dh8')" @keyup.enter.native="GetYg($event, '16')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_bh8"
-                    readonly
+                   id="dh8"  @keydown="ent($event, 'dh7', 'dh8', 'dh9')" @keyup.enter.native="GetYg($event, '17')"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_bh9"
-                    readonly
+                    id="dh9"  @keydown="ent($event, 'dh8', 'dh9', 'name2')" @keyup.enter.native="GetYg($event, '18')"
                     style="width: 85px;"
                   />
                 </el-form-item>
@@ -747,47 +767,48 @@
                   />
                   <el-input
                     v-model="detailData.zrname1"
-                    readonly
+                    id="name2"
+					 @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.zrname2"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.zrname3"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.zrname4"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.zrname5"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.zrname6"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.zrname7"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.zrname8"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.zrname9"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                 </el-form-item>
@@ -806,47 +827,47 @@
                   >处罚金额:</div>
                   <el-input
                     v-model="detailData.sczl_je1"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_je2"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_je3"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_je4"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_je5"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_je6"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_je7"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_je8"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                   <el-input
                     v-model="detailData.sczl_je9"
-                    readonly
+                     @keydown="ent1($event)"
                     style="width: 85px;"
                   />
                 </el-form-item>
@@ -862,6 +883,32 @@
               </div>
             </template>
           </el-dialog>
+		  
+		  
+		  
+		  <el-dialog v-model="dialogSelectVisible" title="选择" destroy-on-close width="800px" @keydown="selectGX($event)">
+		    <el-table tooltip-effect="dark" :data="selectData" row-key="ID" 
+			highlight-current-row="true" border style="width:100%" @row-dblclick="handleSelectClick" ref="table2">
+		      <el-table-column label="工序名称" width="225">
+		        <template v-slot="{ row }">
+		          {{ row }}
+		        </template>
+		      </el-table-column>
+		    </el-table>
+		  </el-dialog>
+		  
+		  
+		  <el-dialog v-model="JtbhVisible" title="选择" destroy-on-close width="800px" >
+		    <el-table tooltip-effect="dark" :data="selectDataJtbh" row-key="ID"
+		      highlight-current-row="true" border style="width:100%"
+		      @row-dblclick="SelectClickJtbh"
+		    >
+		      <el-table-column prop="设备编号" label="设备编号" width="150" />			        	 			        	 
+		    </el-table>
+		  </el-dialog>
+
+
+		  
 
           <el-dialog
             v-model="detailShow"
@@ -898,13 +945,17 @@
 </template>
 
 <script setup>
-import { getRewardDetail, getRewardList, getRewardTab, getRewardTabByGd } from '@/api/mes/job'
+import { getRewardDetail, getRewardList, getRewardTab, getRewardTabByGd,JunkWorkOrderList,PrintCodeList,
+ProcessList,MachineClassList,MachineList,JunkDetailDel,JunkDetailEdit,JunkDetailAdd} from '@/api/mes/job'
+import {getYg} from '@/api/jixiaoguanli/jitairibaobiao'
 import { createCompany, deleteCompany, deleteCompanyByIds, findCompany, updateCompany } from '@/api/company'
 import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
 // 全量引入格式化工具 请按需保留
 import { ElMessage, ElMessageBox } from 'element-plus'
-import { reactive, ref } from 'vue'
-
+import { ref, reactive, nextTick, onMounted, onBeforeMount } from 'vue'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: 'Company'
 })
@@ -1019,6 +1070,7 @@ const handleCurrentChange = (val) => {
 // 查看详情
 const detailData = reactive({})
 const handleDoubleClick = async(row) => {
+  type.value = 'update';
   const { UniqId } = row
   console.log(UniqId)
   const res = await getRewardDetail({ UniqId })
@@ -1029,7 +1081,12 @@ const handleDoubleClick = async(row) => {
     dialogFormVisible.value = true
   }
 }
-
+let lastCellValue=ref()
+// 单击表格操作
+function Click(row, column, event) {
+    lastCellValue= row['UniqId'];
+	console.log(lastCellValue)
+}
 // 查询
 const getTableData = async() => {
   const table = await getRewardList(params)
@@ -1038,9 +1095,143 @@ const getTableData = async() => {
     total.value = table.data.total
   }
 }
-
+const ADD=ref('0')
+//新增
+function onAdd() {
+	ADD.value='新增'
+	type.value = 'create'
+	GetInfo(lastCellValue)
+	// Productionadd()
+}
 // getTableData()
-
+//获取详细信息
+const GetInfo = async (value) => {
+  const res = await getRewardDetail({ UniqId:value })
+  if (res.code === 0) {
+	 console.log(res)
+	 Object.assign(detailData, res.data[0])
+	 dialogFormVisible.value = true
+  }
+}
+//工单编号回车事件
+const getCPMCsubmit = () => {
+	if(detailData.sczl_gdbh!=''){
+		JunkWorkOrderList({search:detailData.sczl_gdbh}).then(response=>{
+		  if (response.code === 0) {
+			  detailData.Gd_cpmc = response.data[0].产品名称			  
+			}else{
+				detailData.Gd_cpmch = '';
+			}
+		});
+		PrintCodeList({workorder:detailData.sczl_gdbh}).then(response=>{
+		  if (response.code === 0) {
+			  detailData.sczl_yjno = response.data[0].印件号	
+			  detailData.yj_yjmc = response.data[0].印件名称	
+			}else{
+				detailData.sczl_yjno = ''
+				detailData.yj_yjmc = ''
+			}
+		});
+	}else{
+		ElMessage({
+		  type: 'error',
+		  message: '请注意, 工单编号输入空置, 除非有特殊需要!'
+		})
+	}
+}
+//印件号失去焦点事件
+// const getYJMCsubmit = () => {
+//  if(detailData.sczl_gdbh!='' && formData.value.sczl_yjno!=''){
+//  	//获取印件名称
+// 	productionYjmc({gdbh:formData.value.sczl_gdbh,yjno:formData.value.sczl_yjno}).then(response=>{
+//  	  if (response.code === 0) {
+//  		  formData.value.yj_yjmc = response.data.yj_yjmc
+//  		  gxmc.value = response.data.gxmc
+// 		  formData.value.sczl_gxmc = gxmc.value.sczl_gxmc;
+// 		  setColorReadonly('印件名称')
+		  
+//  		}else{
+//  			ElMessage({
+//  			  type: 'error',
+//  			  message: '印件编号不存在, 将恢复默认值, 请仔细确认数据准确性!'
+//  			})
+//  			formData.value.sczl_yjno = yjnoArr.value[0];
+//  			formData.value.yj_yjmc = '';
+// 			gxmc.value = '';
+//  		}
+//  	});
+//  }else{
+//  	ElMessage({
+//  	  type: 'error',
+//  	  message: '印件编号不存在, 将恢复默认值, 请仔细确认数据准确性!'
+//  	})
+// 	formData.value.sczl_yjno = yjnoArr.value[0];
+// 	formData.value.yj_yjmc = '';
+// 	gxmc.value = '';
+//  }
+// }
+const dialogSelectVisible=ref(false)
+const selectData=reactive([])
+//工序失去焦点事件
+const getGXsubmit = () => {
+	//弹出选择
+	ProcessList({workorder:detailData.sczl_gdbh,yjno: detailData.sczl_yjno}).then(response=>{
+		if (response.code === 0) {
+			  selectData.splice(0, selectData.length, ...response.data)
+			  console.log(selectData)
+			  dialogSelectVisible.value=true			
+		  }
+	})		
+}
+// 工单选择框
+const handleSelectClick = (row, column, event) => {
+  console.log(row)
+  detailData.sczl_gxmc=row
+  dialogSelectVisible.value=false
+}
+//机台选择
+const selectDataJtbh = reactive([])
+const JtbhVisible = ref(false)
+const SelectClickJtbh = (row, column, event) => {
+  const {设备编号 } = row
+ if(jtbh.value==='JL'){
+ 	detailData.jl_jtbh=row.设备编号
+ }else if(jtbh.value==='ZR'){
+ 	detailData.sczl_jtbh=row.设备编号
+ }
+  JtbhVisible.value = false
+}
+const jtbh=ref()
+//机台失去焦点事件
+const getJtbhsubmit = (value) => {
+	if(value==='1'){
+		jtbh.value='JL'
+	}else if(value==='2'){
+		jtbh.value='ZR'
+	}
+	console.log(jtbh.value)
+	MachineList().then(response=>{
+		if (response.code === 0) {			
+		selectDataJtbh.splice(0, selectDataJtbh.length, ...response.data)
+		JtbhVisible.value=true				  
+		}
+	})
+}
+//获取员工信息
+const GetYg = (event, inputName) => {
+    if (event.target.value !== '') {
+        getYg({ sczl_bh: event.target.value }).then(response => {
+            if (response.code === 0) {
+                // 设置值
+                if (inputName >= 1 && inputName <= 9) {
+                    detailData['jlname' + inputName] = response.data.ygxm;
+                } else if (inputName >= 10 && inputName <= 18) {
+                    detailData['zrname' + (inputName - 9)] = response.data.ygxm;
+                }
+            }
+        });
+    }
+}
 // ============== 表格控制部分结束 ===============
 
 // 获取需要的字典 可能为空 按需保留
@@ -1147,7 +1338,27 @@ const closeDetailShow = () => {
     name: '',
   }
 }
-
+//删除
+function onDel() {
+	Del()
+}
+// 删除
+const Del = async() => {
+	
+    const res = await JunkDetailDel({ UniqId:lastCellValue})
+    if (res.code === 0) {
+    ElMessage({
+      type: 'success',
+      message: '成功'
+    })
+	getTableData()
+    }else{
+	ElMessage({
+	  type: 'error',
+	  message: '失败'
+	})
+	}
+}
 // 打开弹窗
 const openDialog = () => {
   type.value = 'create'
@@ -1165,31 +1376,282 @@ const closeDialog = () => {
 }
 // 弹窗确定
 const enterDialog = async() => {
-  elFormRef.value?.validate(async(valid) => {
-    if (!valid) return
-    let res
-    switch (type.value) {
-      case 'create':
-        res = await createCompany(detailData.value)
-        break
-      case 'update':
-        res = await updateCompany(detailData.value)
-        break
-      default:
-        res = await createCompany(detailData.value)
-        break
+	if (type.value === 'update') {
+		  SubmitDailyProduction()
+	} else if (type.value === 'create') {
+		  add()   
+	}
+	// SubmitDailyProduction()
+  // elFormRef.value?.validate(async(valid) => {
+  //   if (!valid) return
+  //   let res
+  //   switch (type.value) {
+  //     case 'create':
+  //       res = await createCompany(detailData.value)
+  //       break
+  //     case 'update':
+  //       res = await updateCompany(detailData.value)
+  //       break
+  //     default:
+  //       res = await createCompany(detailData.value)
+  //       break
+  //   }
+  //   if (res.code === 0) {
+  //     ElMessage({
+  //       type: 'success',
+  //       message: '创建/更改成功'
+  //     })
+  //     closeDialog()
+  //     getTableData()
+  //   }
+  // })
+}
+ //日报表上传
+ const SubmitDailyProduction = async () => {
+ 
+   
+   const restoredData = {
+	   
+     sczl_gdbh:detailData.sczl_gdbh,
+     sczl_yjno:detailData.sczl_yjno,
+     sczl_gxh:detailData.sczl_gxh,
+     sczl_gxmc: detailData.sczl_gxmc,
+    sczl_numDesc: detailData.sczl_numDesc,
+    sczl_bh1: detailData.sczl_bh1,
+    sczl_bh2: detailData.sczl_bh2,
+    sczl_bh3: detailData.sczl_bh3,
+    sczl_bh4: detailData.sczl_bh4,
+    sczl_bh5: detailData.sczl_bh5,
+    sczl_bh6: detailData.sczl_bh6,
+    sczl_bh7: detailData.sczl_bh7,
+    sczl_bh8: detailData.sczl_bh8,
+    sczl_bh9: detailData.sczl_bh9,
+    sczl_bh10: '',
+	
+	sczl_je1: detailData.sczl_je1,
+	sczl_je2: detailData.sczl_je2,
+	sczl_je3: detailData.sczl_je3,
+	sczl_je4: detailData.sczl_je4,
+	sczl_je5: detailData.sczl_je5,
+	sczl_je6: detailData.sczl_je6,
+	sczl_je7: detailData.sczl_je7,
+	sczl_je8: detailData.sczl_je8,
+	sczl_je9: detailData.sczl_je9,
+	sczl_je10: '',
+	
+	JL_bh1: detailData.JL_bh1,
+	JL_bh2: detailData.JL_bh2,
+	JL_bh3: detailData.JL_bh3,
+	JL_bh4: detailData.JL_bh4,
+	JL_bh5: detailData.JL_bh5,
+	JL_bh6: detailData.JL_bh6,
+	JL_bh7: detailData.JL_bh7,
+	JL_bh8: detailData.JL_bh8,
+	JL_bh9: detailData.JL_bh9,
+	JL_bh10:'',
+	
+	JL_Je1: detailData.JL_Je1,
+	JL_Je2: detailData.JL_Je2,
+	JL_Je3: detailData.JL_Je3,
+	JL_Je4: detailData.JL_Je4,
+	JL_Je5: detailData.JL_Je5,
+	JL_Je6: detailData.JL_Je6,
+	JL_Je7: detailData.JL_Je7,
+	JL_Je8: detailData.JL_Je8,
+	JL_Je9: detailData.JL_Je9,
+	JL_Je10: '',
+
+    sczl_rq: detailData.sczl_rq,
+	sczl_ls: detailData.sczl_ls,
+	sczl_fplxA: detailData.sczl_fplxA,
+	sczl_fplxB: '0',
+	责任部门: detailData.责任部门,
+	sczl_cl: detailData.sczl_cl,
+	jl_jtbh: detailData.jl_jtbh,
+	Jl_bzdh: detailData.Jl_bzdh,
+	sczl_jtbh: detailData.sczl_jtbh,
+	sczl_bzdh: detailData.sczl_bzdh,
+	sys_id: sys_id,  
+	UniqId:lastCellValue
+   }
+   console.log(restoredData)
+   // console.log(formData3.value.formattedArray)
+   const response = await JunkDetailEdit(restoredData);
+   console.log(response)
+   if (response.code === 0) {
+ 	  ElMessage({
+ 	    type: 'success',
+ 	    message: '成功'
+ 	  })
+   }
+   detailShow.value = false
+   getTableData()
+ }
+ const add = async () => {
+ 	const restoredData = {
+ 		   
+ 	  sczl_gdbh:detailData.sczl_gdbh,
+ 	  sczl_yjno:detailData.sczl_yjno,
+ 	  sczl_gxh:detailData.sczl_gxh,
+ 	  sczl_gxmc: detailData.sczl_gxmc,
+ 	 sczl_numDesc: detailData.sczl_numDesc,
+ 	 sczl_bh1: detailData.sczl_bh1,
+ 	 sczl_bh2: detailData.sczl_bh2,
+ 	 sczl_bh3: detailData.sczl_bh3,
+ 	 sczl_bh4: detailData.sczl_bh4,
+ 	 sczl_bh5: detailData.sczl_bh5,
+ 	 sczl_bh6: detailData.sczl_bh6,
+ 	 sczl_bh7: detailData.sczl_bh7,
+ 	 sczl_bh8: detailData.sczl_bh8,
+ 	 sczl_bh9: detailData.sczl_bh9,
+ 	 sczl_bh10: '',
+ 		
+ 		sczl_je1: detailData.sczl_je1,
+ 		sczl_je2: detailData.sczl_je2,
+ 		sczl_je3: detailData.sczl_je3,
+ 		sczl_je4: detailData.sczl_je4,
+ 		sczl_je5: detailData.sczl_je5,
+ 		sczl_je6: detailData.sczl_je6,
+ 		sczl_je7: detailData.sczl_je7,
+ 		sczl_je8: detailData.sczl_je8,
+ 		sczl_je9: detailData.sczl_je9,
+ 		sczl_je10: '',
+ 		
+ 		JL_bh1: detailData.JL_bh1,
+ 		JL_bh2: detailData.JL_bh2,
+ 		JL_bh3: detailData.JL_bh3,
+ 		JL_bh4: detailData.JL_bh4,
+ 		JL_bh5: detailData.JL_bh5,
+ 		JL_bh6: detailData.JL_bh6,
+ 		JL_bh7: detailData.JL_bh7,
+ 		JL_bh8: detailData.JL_bh8,
+ 		JL_bh9: detailData.JL_bh9,
+ 		JL_bh10:'',
+ 		
+ 		JL_Je1: detailData.JL_Je1,
+ 		JL_Je2: detailData.JL_Je2,
+ 		JL_Je3: detailData.JL_Je3,
+ 		JL_Je4: detailData.JL_Je4,
+ 		JL_Je5: detailData.JL_Je5,
+ 		JL_Je6: detailData.JL_Je6,
+ 		JL_Je7: detailData.JL_Je7,
+ 		JL_Je8: detailData.JL_Je8,
+ 		JL_Je9: detailData.JL_Je9,
+ 		JL_Je10: '',
+ 	
+ 	 sczl_rq: detailData.sczl_rq,
+ 		sczl_ls: detailData.sczl_ls,
+ 		sczl_fplxA: detailData.sczl_fplxA,
+ 		sczl_fplxB: '0',
+ 		责任部门: detailData.责任部门,
+ 		sczl_cl: detailData.sczl_cl,
+ 		jl_jtbh: detailData.jl_jtbh,
+ 		Jl_bzdh: detailData.Jl_bzdh,
+ 		sczl_jtbh: detailData.sczl_jtbh,
+ 		sczl_bzdh: detailData.sczl_bzdh,
+ 		sys_id: sys_id,  
+ 	}
+ 	console.log(restoredData)
+ 	// console.log(formData3.value.formattedArray)
+ 	const response = await JunkDetailAdd(restoredData);
+ 	console.log(response)
+ 	if (response.code === 0) {
+ 	 	  ElMessage({
+ 	 	    type: 'success',
+ 	 	    message: '成功'
+ 	 	  })
+ 	}
+ 	detailShow.value = false
+ 	getTableData()
+ }
+//键盘 input框跳转
+const ent = (event,id1,id2,id3) => {
+  if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
+	if(id3!=''){
+      document.getElementById(id3).focus()
     }
-    if (res.code === 0) {
-      ElMessage({
-        type: 'success',
-        message: '创建/更改成功'
-      })
-      closeDialog()
-      getTableData()
+  } else if (event.keyCode === 38) { // 向上箭头
+    if(id1!=''){
+      document.getElementById(id1).focus()
     }
-  })
+  }else if (event.keyCode === 8) { // 删除箭头
+    if(id1!='' && document.getElementById(id2).value===''){
+      document.getElementById(id1).focus()
+    }
+  }else if (event.keyCode === 37) { // 向左箭头
+    if(id1!='' && document.getElementById(id2).selectionStart==0){
+      document.getElementById(id1).focus()
+    }
+  }else if (event.keyCode === 39) { // 向右箭头
+    if(id3!='' && document.getElementById(id2).selectionStart == document.getElementById(id2).value.length){
+      document.getElementById(id3).focus()
+    }
+  }
 }
 
+const ent1 = (event) => {
+  const inputs = document.getElementsByTagName('input');
+  const currentIndex = Array.from(inputs).indexOf(event.target);
+  
+  if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
+    for (let i = currentIndex + 1; i < inputs.length; i++) {
+      if (!inputs[i].readOnly) {
+        nextTick(()=>{
+          inputs[i].focus();
+          inputs[i].select();
+        })
+        break;
+      }
+    }
+  } else if (event.keyCode === 38) { // 向上箭头
+    for (let i = currentIndex - 1; i >= 0; i--) {
+      if (!inputs[i].readOnly) {
+        nextTick(()=>{
+          inputs[i].focus();
+          inputs[i].select();
+        })
+        break;
+      }
+    }
+  } else if (event.keyCode === 8) { // 删除箭头
+    if (event.target.selectionStart === 0) {
+      for (let i = currentIndex - 1; i >= 0; i--) {
+        if (!inputs[i].readOnly) {
+          nextTick(()=>{
+            inputs[i].focus();
+            inputs[i].setSelectionRange(0, 0);
+            inputs[i].select(); // 全选输入框内容
+          })
+          break;
+        }
+      }
+    }
+  } else if (event.keyCode === 37) { // 向左箭头
+    if (event.target.selectionStart === 0) {
+      for (let i = currentIndex - 1; i >= 0; i--) {
+        if (!inputs[i].readOnly) {
+          nextTick(()=>{
+            inputs[i].focus();
+            inputs[i].select();
+          })
+          break;
+        }
+      }
+    }
+  } else if (event.keyCode === 39) { // 向右箭头
+    if (event.target.selectionStart === event.target.value.length) {
+      for (let i = currentIndex + 1; i < inputs.length; i++) {
+        if (!inputs[i].readOnly) {
+          nextTick(()=>{
+            inputs[i].focus();
+            inputs[i].select();
+          })
+          break;
+        }
+      }
+    }
+  }
+}
 </script>
 
 <style scoped>

+ 23 - 15
src/view/job/sampling/sampling.vue

@@ -57,11 +57,13 @@
                 <el-button
                   type="primary"
                   icon="search"
+				  class="bt"
                   @click="handlerSearch"
                 >查询</el-button>
 				<el-button
 				   type="primary"
-				   :icon="Search"
+				   
+				   class="bt" icon="plus"
 				   @click="handleShowAdd"
 				 >新增
 				 </el-button>
@@ -115,21 +117,21 @@
                 align="left"
                 label="员工编号"
                 prop="Sczl_bh"
-                width="90"
+                width="120"
 				sortable
               />
               <el-table-column
                 align="left"
                 label="员工姓名"
                 prop="name"
-                width="90"
+                width="120"
 				sortable
               />
               <el-table-column
                 align="left"
                 label="工单编号"
                 prop="Sczl_gdbh"
-                width="90"
+                width="120"
 				sortable
               />
               <el-table-column
@@ -143,54 +145,54 @@
                 align="left"
                 label="工序名称"
                 prop="Sczl_gxmc"
-                width="95"
+                width="120"
 				sortable
               />
               <el-table-column
                 align="left"
                 label="印件号"
                 prop="sczl_yjno"
-                width="70"
+                width="120"
 				sortable
               />
               <el-table-column
                 align="left"
                 label="工序号"
                 prop="sczl_gxh"
-                width="70"
+                width="120"
 				sortable
               />
               <el-table-column
                 align="left"
                 label="流程单号"
                 prop="Sczl_num"
-                width="85"
+                width="120"
 				sortable
               />
               <el-table-column
                 align="left"
                 label="抽检数"
                 prop="Sczl_抽检数"
-                width="70"
+                width="120"
 				sortable
               />
               <el-table-column
                 align="left"
                 label="A类废"
                 prop="sczl_A类废"
-                width="70" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
                 label="B类废"
                 prop="sczl_B类废"
-                width="70"  sortable
+                width="120"  sortable
               />
               <el-table-column
                 align="left"
                 label="C类废"
                 prop="sczl_C类废"
-                width="70" sortable
+                width="120" sortable
               />
               <el-table-column
                 align="left"
@@ -220,7 +222,7 @@
                 align="left"
                 label="UNIQID"
                 prop="UniqId"
-                width="75" sortable
+                width="120" sortable
               />
             </el-table>
             <div class="gva-pagination">
@@ -519,7 +521,9 @@ import{getYg}from '@/api/mes_api_gty/myapi'
 // 全量引入格式化工具 请按需保留
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { reactive, ref,nextTick ,onMounted, onBeforeMount} from 'vue'
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: 'Sampling'
 })
@@ -972,7 +976,11 @@ const ent1 = (event) => {
 :deep(.el-table__body tr.current-row) > td {
   background: #ff80ff !important;
 }
-
+.bt{
+  margin-left: 2px !important;
+  padding: 3px !important;
+  font-size: 12px;
+}
 :deep(.el-table td .cell) {
   line-height: 30px !important;
 }

+ 3 - 2
src/view/layout/index.vue

@@ -283,8 +283,9 @@ onMounted(() => {
   }
 })
 
-const userStore = useUserStore()
-
+const userStore = useUserStore() 
+// console.log(userStore.userInfo.authority.authorityName )
+// console.log(userStore.userInfo.nickName )
 const asideWidth = () => {
   if (isMobile.value) {
     return isCollapse.value ? '0px' : '220px'

+ 131 - 131
src/view/login/index.vue

@@ -1,26 +1,26 @@
 <template>
-  <div
-    id="userLayout"
-    class="w-full h-full relative"
-  >
+  <div id="userLayout" class="w-full h-full relative">
     <div
       class="rounded-lg flex items-center justify-evenly w-full h-full bg-white md:w-screen md:h-screen md:bg-[#194bfb]"
     >
       <div class="md:w-3/5 w-10/12 h-full flex items-center justify-evenly">
-        <div class="oblique h-[130%] w-3/5 bg-white transform -rotate-12 absolute -ml-52" />
+        <div
+          class="oblique h-[130%] w-3/5 bg-white transform -rotate-12 absolute -ml-52"
+        />
         <!-- 分割斜块 -->
-        <div class="z-[999] pt-12 pb-10 md:w-96 w-full  rounded-lg flex flex-col justify-between box-border">
+        <div
+          class="z-[999] pt-12 pb-10 md:w-96 w-full rounded-lg flex flex-col justify-between box-border"
+        >
           <div>
             <div class="flex items-center justify-center">
-              <img
-                class="w-24"
-                :src="$GIN_VUE_ADMIN.appLogo"
-                alt
-              >
+              <img class="w-24" :src="$GIN_VUE_ADMIN.appLogo" alt />
             </div>
             <div class="mb-9">
-              <p class="text-center text-4xl font-bold">{{ $GIN_VUE_ADMIN.appName }}</p>
-              <p class="text-center text-sm font-normal text-gray-500 mt-2.5">A management platform using Golang and Vue
+              <p class="text-center text-4xl font-bold">
+                {{ $GIN_VUE_ADMIN.appName }}
+              </p>
+              <p class="text-center text-sm font-normal text-gray-500 mt-2.5">
+                A management platform using Golang and Vue
               </p>
             </div>
             <el-form
@@ -30,10 +30,7 @@
               :validate-on-rule-change="false"
               @keyup.enter="submitForm"
             >
-              <el-form-item
-                prop="username"
-                class="mb-6"
-              >
+              <el-form-item prop="username" class="mb-6">
                 <el-input
                   v-model="loginFormData.username"
                   size="large"
@@ -41,10 +38,7 @@
                   suffix-icon="user"
                 />
               </el-form-item>
-              <el-form-item
-                prop="password"
-                class="mb-6"
-              >
+              <el-form-item prop="password" class="mb-6">
                 <el-input
                   v-model="loginFormData.password"
                   show-password
@@ -72,7 +66,7 @@
                       :src="picPath"
                       alt="请输入验证码"
                       @click="loginVerify()"
-                    >
+                    />
                   </div>
                 </div>
               </el-form-item>
@@ -82,61 +76,38 @@
                   type="primary"
                   size="large"
                   @click="submitForm"
-                >登 录</el-button>
+                  >登 录</el-button
+                >
               </el-form-item>
-
             </el-form>
           </div>
         </div>
       </div>
-      <div class="hidden md:block w-1/2 h-full float-right bg-[#194bfb]"><img
-        class="h-full"
-        src="@/assets/login_right_banner.jpg"
-        alt="banner"
-      ></div>
+      <div class="hidden md:block w-1/2 h-full float-right bg-[#194bfb]">
+        <img
+          class="h-full"
+          src="@/assets/login_right_banner.jpg"
+          alt="banner"
+        />
+      </div>
     </div>
 
-    <BottomInfo class="left-0 right-0 absolute bottom-3 mx-auto  w-full z-20">
+    <BottomInfo class="left-0 right-0 absolute bottom-3 mx-auto w-full z-20">
       <div class="links items-center justify-center gap-2 hidden md:flex">
-        <a
-          href="http://doc.henrongyi.top/"
-          target="_blank"
-        >
-          <img
-            src="@/assets/docs.png"
-            class="w-8 h-8"
-            alt="文档"
-          >
+        <a href="http://doc.henrongyi.top/" target="_blank">
+          <img src="@/assets/docs.png" class="w-8 h-8" alt="文档" />
         </a>
-        <a
-          href="https://support.qq.com/product/371961"
-          target="_blank"
-        >
-          <img
-            src="@/assets/kefu.png"
-            class="w-8 h-8"
-            alt="客服"
-          >
+        <a href="https://support.qq.com/product/371961" target="_blank">
+          <img src="@/assets/kefu.png" class="w-8 h-8" alt="客服" />
         </a>
         <a
           href="https://github.com/flipped-aurora/gin-vue-admin"
           target="_blank"
         >
-          <img
-            src="@/assets/github.png"
-            class="w-8 h-8"
-            alt="github"
-          >
+          <img src="@/assets/github.png" class="w-8 h-8" alt="github" />
         </a>
-        <a
-          href="https://space.bilibili.com/322210472"
-          target="_blank"
-        >
-          <img
-            src="@/assets/video.png"
-            class="w-8 h-8"
-            alt="视频站"
-          >
+        <a href="https://space.bilibili.com/322210472" target="_blank">
+          <img src="@/assets/video.png" class="w-8 h-8" alt="视频站" />
         </a>
       </div>
     </BottomInfo>
@@ -144,111 +115,115 @@
 </template>
 
 <script setup>
-import { captcha } from '@/api/user'
-import { checkDB } from '@/api/initdb'
-import BottomInfo from '@/view/layout/bottomInfo/bottomInfo.vue'
-import { reactive, ref } from 'vue'
-import { ElMessage } from 'element-plus'
-import { useRouter } from 'vue-router'
-import { useUserStore } from '@/pinia/modules/user'
+import { captcha } from "@/api/user";
+import { checkDB } from "@/api/initdb";
+import BottomInfo from "@/view/layout/bottomInfo/bottomInfo.vue";
+import { reactive, ref } from "vue";
+import { ElMessage } from "element-plus";
+import { useRouter } from "vue-router";
+import { useUserStore } from "@/pinia/modules/user";
+import { getMachineMac } from "@/api/jixiaoguanli/jitairibaobiao";
+
+
+
 
 defineOptions({
-  name: 'Login',
-})
+  name: "Login",
+});
 
-const router = useRouter()
+const router = useRouter();
 // 验证函数
 const checkUsername = (rule, value, callback) => {
   if (value.length < 3) {
-    return callback(new Error('请输入正确的用户名'))
+    return callback(new Error("请输入正确的用户名"));
   } else {
-    callback()
+    callback();
   }
-}
+};
 const checkPassword = (rule, value, callback) => {
   if (value.length < 6) {
-    return callback(new Error('请输入正确的密码'))
+    return callback(new Error("请输入正确的密码"));
   } else {
-    callback()
+    callback();
   }
-}
+};
 
 // 获取验证码
 const loginVerify = () => {
-  captcha({}).then(async(ele) => {
+  captcha({}).then(async (ele) => {
     rules.captcha.push({
       max: ele.data.captchaLength,
       min: ele.data.captchaLength,
       message: `请输入${ele.data.captchaLength}位验证码`,
-      trigger: 'blur',
-    })
-    picPath.value = ele.data.picPath
-    loginFormData.captchaId = ele.data.captchaId
-    loginFormData.openCaptcha = ele.data.openCaptcha
-	console.log()
-  })
-}
-loginVerify()
+      trigger: "blur",
+    });
+    picPath.value = ele.data.picPath;
+    loginFormData.captchaId = ele.data.captchaId;
+    loginFormData.openCaptcha = ele.data.openCaptcha;
+    console.log();
+  });
+};
+loginVerify();
 
 // 登录相关操作
-const loginForm = ref(null)
-const picPath = ref('')
+const loginForm = ref(null);
+const picPath = ref("");
 const loginFormData = reactive({
-  username: '',
-  password: '',
-  captcha: '',
-  captchaId: '',
+  username: "",
+  password: "",
+  captcha: "",
+  captchaId: "",
   openCaptcha: false,
-})
+});
 const rules = reactive({
-  username: [{ validator: checkUsername, trigger: 'blur' }],
-  password: [{ validator: checkPassword, trigger: 'blur' }],
+  username: [{ validator: checkUsername, trigger: "blur" }],
+  password: [{ validator: checkPassword, trigger: "blur" }],
   captcha: [
     {
-      message: '验证码格式不正确',
-      trigger: 'blur',
+      message: "验证码格式不正确",
+      trigger: "blur",
     },
   ],
-})
+});
 
-const userStore = useUserStore()
-const login = async() => {
-  return await userStore.LoginIn(loginFormData)
-}
+const userStore = useUserStore();
+const login = async () => {
+  return await userStore.LoginIn(loginFormData);
+};
 const submitForm = () => {
-  loginForm.value.validate(async(v) => {
+  loginForm.value.validate(async (v) => {
     if (v) {
-      const flag = await login()
+      const flag = await login();
       if (!flag) {
-        loginVerify()
+        loginVerify();
       }
     } else {
       ElMessage({
-        type: 'error',
-        message: '请正确填写登录信息',
+        type: "error",
+        message: "请正确填写登录信息",
         showClose: true,
-      })
-      loginVerify()
-      return false
+      });
+      loginVerify();
+      return false;
     }
-  })
-}
+  });
+};
 
 // 跳转初始化
-const checkInit = async() => {
-  const res = await checkDB()
+const checkInit = async () => {
+  const res = await checkDB();
   if (res.code === 0) {
     if (res.data?.needInit) {
-      userStore.NeedInit()
-      router.push({ name: 'Init' })
+      userStore.NeedInit();
+      router.push({ name: "Init" });
     } else {
       ElMessage({
-        type: 'info',
-        message: '已配置数据库信息,无法初始化',
-      })
+        type: "info",
+        message: "已配置数据库信息,无法初始化",
+      });
     }
   }
-}
+};
 
 const GetAddr = () => {
   var xmlhttp = null;
@@ -259,28 +234,53 @@ const GetAddr = () => {
     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   }
   // 设置回调函数
-  xmlhttp.onreadystatechange = function() {
+  xmlhttp.onreadystatechange = function () {
     if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
-      res = eval('('+xmlhttp.response+')');
-      let result = '';
+      res = eval("(" + xmlhttp.response + ")");
+      let result = "";
       for (let i = 0; i < res.macAddress.length; i++) {
         if (i % 2 === 0 && i !== 0) {
-          result += '-'; // 根据实际需求修改分隔符
+          result += "-"; // 根据实际需求修改分隔符
         }
         result += res.macAddress[i];
       }
-      console.log(result);
-      loginAndRedirect(result); // 获取MAC地址后调用自动登录函数
+	   
     }
-  }
+  };
   // 打开一个连接
   xmlhttp.open("get", "http://127.0.0.1:8090/init");
   // 发送请求
   xmlhttp.send();
 };
-
 // 在页面加载时获取MAC地址并进行自动登录
-GetAddr();
+// GetAddr();
+
 
+// const GetMachineMac = async (addr) => {
+// 	const response = await getMachineMac({ addr: '68-ED-A4-26-5F-37' });
+// 	console.log(response)
+// 	if (response.code === 0) {	
+// 		cosole.log(response.data['设备编号'])
+// 		// userStore.LoginIn2({
+// 		//   username: response.data['设备编号'],
+// 		//   password: "123456",
+// 		//   captcha: "443188",
+// 		//   captchaId: "0FZfnUtAOrdXvTETkJRc",
+// 		//   openCaptcha: false,
+// 		// });
+// 	}
+// 	// console.log(loginFormData2)
+// }
 
+
+
+userStore.LoginIn2({
+	   username: "JY01#",
+	   password: "123456",
+	   captcha: "443188",
+	   captchaId: "0FZfnUtAOrdXvTETkJRc",
+	   openCaptcha: false,	   
+	 }); 	
 </script>
+
+

+ 37 - 16
src/view/performance/06-packingDocuments/index.vue

@@ -334,8 +334,7 @@
             >
               <el-table-column
                 type="selection"
-                width="55"
-				
+                width="55"			
               />
               <!-- 循环渲染列 -->
               <el-table-column
@@ -343,7 +342,7 @@
                 :key="column.prop"
                 :prop="column.prop"
                 :label="column.label"
-                :width="column.width"
+                width="110"
 				sortable
               />
             </el-table>
@@ -374,7 +373,9 @@ import { ElMessage, ElMessageBox, dayjs } from 'element-plus'
 // import { Download, Search, Delete } from '@element-plus/icons-vue'
 import { reactive, ref } from 'vue'
 import { getGxMc, getInfo, getLocate, getPackingSideTable, getPackingTable, updatePackingTable, getYg, DeletePackingTable, addPackingTable, getDedh } from '@/api/mes_api_gty/myapi'
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '06PackingDocuments',
 })
@@ -598,10 +599,8 @@ const getTableInfo = async(id) => {
     const response = await getInfo({ UniqId: id })
     if (response.code === 0) {
       const { sczl_rq, sczl_bh, name, sczl_bzdh, sczl_jsss, sczl_冲定额, sczl_desc, ...rest } = response.data
-      // 直接赋值基础属性
       Object.assign(detailData, { sczl_rq, sczl_bh, name, sczl_bzdh, sczl_jsss, sczl_冲定额, sczl_desc })
-      // 生成表格数据
-      detailData.table = Array.from({ length: 6 }, (_, i) => i + 1) // 创建一个长度为6的数组 [1, 2, 3, 4, 5, 6]
+      detailData.table = Array.from({ length: 6 }, (_, i) => i + 1)
         .map(num => {
           return {
             sczl_gdbh: rest[`sczl_gdbh${num}`],
@@ -616,21 +615,42 @@ const getTableInfo = async(id) => {
             sczl_dedh: rest[`sczl_dedh${num}`],
           }
         })
-        // .filter(item => item.sczl_gdbh !== '') // 过滤掉空的工单编号
-      detailData.UniqId = id
-      dialogFormVisible.value = true
 
-      // 在 setTimeout 中获取元素,确保在 DOM 渲染完毕后执行
-      setTimeout(() => {
-        formElements = document.getElementById('detail-form').elements
-        formElements[0].focus()
-      }, 0)
+      if (type.value === '新增') {
+		  console.log(detailData)
+		  detailData.name=''
+		  detailData.sczl_bh=''
+		  detailData.sczl_bzdh=''
+		  detailData.sczl_desc=''
+		  detailData.sczl_jsss=''
+		  detailData.sczl_rq=''
+        detailData.table.forEach(row => {
+          for (const key in row) {
+            row[key] = '' // 清空每行的内容
+          }
+        })
+      }else{
+		  detailData.UniqId = id
+		  dialogFormVisible.value = true
+	  }
+
+      if (type.value === '新增' || type.value === '编辑') {
+        detailData.UniqId = id
+        dialogFormVisible.value = true
+
+        // 在 setTimeout 中获取元素,确保在 DOM 渲染完毕后执行
+        setTimeout(() => {
+          formElements = document.getElementById('detail-form').elements
+          formElements[0].focus()
+        }, 0)
+      }
     }
   } catch (e) {
     console.log(e)
   }
 }
 
+
 // 获取工序名称
 const getTableGxMc = async(index, row) => {
   try {
@@ -691,6 +711,7 @@ const updateDetailData = async() => {
 // 新增数据
 const handleShowAdd = async() => {
   type.value = '新增'
+  
   await getTableInfo(currentRow.value?.UniqId)
   // 默认日期为前一天的日期
   const date = dayjs().subtract(1, 'day').format('YYYY-MM-DD')
@@ -698,7 +719,7 @@ const handleShowAdd = async() => {
 }
 const addDetailData = async() => {
   const restoredData = {
-    sys_id: params.sys_id,
+    sys_id:sys_id,
     sczl_rq: detailData.sczl_rq,
     sczl_bh: detailData.sczl_bh,
     // name: detailData.name,

+ 10 - 8
src/view/performance/07-otherDocuments/index.vue

@@ -357,7 +357,9 @@ import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/w
 import { ElMessage, dayjs } from 'element-plus'
 import { ref, reactive } from 'vue'
 import { getSide, getTable, getYg, getGdmc, getDedh, getGxMc, updateData, add } from '@/api/mes_api_gty/otherDocuments'
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '07OtherDocuments'
 })
@@ -386,17 +388,17 @@ const elFormRef = ref()
 
 // ============== 表格页面 ==============
 const tableColumns = [
-  { prop: 'sczl_Type', label: '计件类型', width: '100' },
+  { prop: 'sczl_Type', label: '计件类型', width: '120' },
   { prop: 'Sczl_rq', label: '日期', width: '100' },
-  { prop: 'Sczl_bh1', label: '员工编号', width: '100' },
-  { prop: 'name', label: '员工姓名', width: '100' },
-  { prop: 'sczl_gdbh', label: '工单编号', width: '100' },
+  { prop: 'Sczl_bh1', label: '员工编号', width: '120' },
+  { prop: 'name', label: '员工姓名', width: '120' },
+  { prop: 'sczl_gdbh', label: '工单编号', width: '120' },
   { prop: 'Gd_cpmc', label: '产品名称', width: '300' },
   { prop: 'Sczl_cl', label: '产量', width: '100' },
-  { prop: '', label: '千件工价', width: '100' }, // prop 属性值需要补充
+  { prop: '', label: '千件工价', width: '120' }, // prop 属性值需要补充
   { prop: 'sys_mc', label: '工价备注', width: '200' }, // prop 属性值需要补充
   { prop: 'Sczl_desc', label: '备注', width: '100' },
-  { prop: 'Sczl_gxmc', label: '工序名称', width: '100' },
+  { prop: 'Sczl_gxmc', label: '工序名称', width: '120' },
   { prop: 'sczl_yjno', label: '印件号', width: '100' },
   { prop: 'sczl_gxh', label: '工序号', width: '100' },
   { prop: 'sys_id', label: '创建用户', width: '150' },
@@ -627,7 +629,7 @@ const enterDialog = async() => {
 // 新增
 const addDetailData = async() => {
   const restoredData = {
-    Sys_id: '[1009/李美芬]',
+    Sys_id: sys_id,
     Sczl_bh1: detailData.Sczl_bh1,
     sczl_Type: detailData.sczl_Type,
     // name: detailData.name,

+ 20 - 18
src/view/performance/08-timesheet/index.vue

@@ -455,7 +455,9 @@ import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/w
 import { ElMessage, dayjs } from 'element-plus'
 import { ref, reactive } from 'vue'
 import { getSide, getTable, getDetail, updateData, getLocate, createData, getYg } from '@/api/mes_api_gty/timesheet'
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '08Timesheet'
 })
@@ -482,28 +484,28 @@ const elFormRef = ref()
 // ============== 表格页面 ==============
 const tableColumns = [
   { prop: 'wgjs_rq', label: '日期', width: 100 },
-  { prop: 'wgjs_bh1', label: '员工编号1', width: 100 },
+  { prop: 'wgjs_bh1', label: '员工编号1', width: 120 },
   { prop: 'name1', label: '姓名1', width: 100 },
-  { prop: 'department', label: '所在部门', width: 100 },
+  { prop: 'department', label: '所在部门', width: 120 },
   { prop: 'wgjs_js1', label: '计时1', width: 100 },
   { prop: 'wgjs_yy1', label: '原因1', width: 100 },
-  { prop: 'wgjs_bh2', label: '员工编号2', width: 100 },
+  { prop: 'wgjs_bh2', label: '员工编号2', width: 120 },
   { prop: 'name2', label: '姓名2', width: 100 },
   { prop: 'wgjs_js2', label: '计时2', width: 100 },
   { prop: 'wgjs_yy2', label: '原因2', width: 100 },
-  { prop: 'wgjs_bh3', label: '员工编号3', width: 100 },
+  { prop: 'wgjs_bh3', label: '员工编号3', width: 120 },
   { prop: 'name3', label: '姓名3', width: 100 },
   { prop: 'wgjs_js3', label: '计时3', width: 100 },
   { prop: 'wgjs_yy3', label: '原因3', width: 100 },
-  { prop: 'wgjs_bh4', label: '员工编号4', width: 100 },
+  { prop: 'wgjs_bh4', label: '员工编号4', width: 120 },
   { prop: 'name4', label: '姓名4', width: 100 },
   { prop: 'wgjs_js4', label: '计时4', width: 100 },
   { prop: 'wgjs_yy4', label: '原因4', width: 100 },
-  { prop: 'wgjs_bh5', label: '员工编号5', width: 100 },
-  { prop: 'name5', label: '姓名5', width: 100 },
+  { prop: 'wgjs_bh5', label: '员工编号5', width: 120},
+  { prop: 'name5', label: '姓名5', width: 120 },
   { prop: 'wgjs_js5', label: '计时5', width: 100 },
   { prop: 'wgjs_yy5', label: '原因5', width: 100 },
-  { prop: 'wgjs_bh6', label: '员工编号6', width: 100 },
+  { prop: 'wgjs_bh6', label: '员工编号6', width: 120 },
   { prop: 'name6', label: '姓名6', width: 100 },
   { prop: 'wgjs_js6', label: '计时6', width: 100 },
   { prop: 'wgjs_yy6', label: '原因6', width: 100 },
@@ -613,17 +615,17 @@ const handleShowDetail = async() => {
 
 // 新增数据
 const handleShowAdd = async() => {
-  const { wgjs_rq, wgjs_bh1 } = currentRow.value
-  const res = await getDetail({ wgjs_rq, wgjs_bh1 })
-  if (res.code === 0) {
-    type.value = 'add'
-    Object.assign(detailData, res.data)
+  // const { wgjs_rq, wgjs_bh1 } = currentRow.value
+  // const res = await getDetail({ wgjs_rq, wgjs_bh1 })
+  // if (res.code === 0) {
+  //   type.value = 'add'
+  //   Object.assign(detailData, res.data)
 
-    detailData['wgjs_rq'] = dayjs().format('YYYY-MM-DD')
+  //   detailData['wgjs_rq'] = dayjs().format('YYYY-MM-DD')
 
-    // dialogFormVisible.value = true
-    showDialog()
-  }
+  //   // dialogFormVisible.value = true   
+  // }
+  showDialog()
 }
 
 // 更新数据

+ 45 - 14
src/view/performance/09-workOrderVerification/index.vue

@@ -47,24 +47,28 @@
               <el-button
                 type="primary"
                 :icon="Search"
+				class="bt"
                 @click="handleSearch"
               >搜索
               </el-button>
               <el-button
                 type="primary"
-                :icon="Search"
+                icon="copy-document"
+				class="bt"
                 @click="dialogMrhjtj = true"
               >每日核检统计
               </el-button>
               <el-button
                 type="primary"
-                :icon="Search"
+                icon="copy-document"
+				class="bt"
                 @click="showGdzjfptj"
               >工单质检废品统计
               </el-button>
               <el-button
                 type="primary"
-                :icon="Search"
+                
+				class="bt" icon="plus"
                 @click="handleShowAdd"
               >新增
               </el-button>
@@ -72,6 +76,7 @@
                 <el-button
                   type="primary"
                   :icon="Download"
+				  class="bt"
                   @click="exportExcel"
                 >导出到Excel</el-button>
               </div>
@@ -500,6 +505,9 @@ import Meirihejiantongji from '@/view/performance/09-workOrderVerification/compo
 import Gongdanzhijianfeipintongji from '@/view/performance/09-workOrderVerification/componets/gongdanzhijianfeipintongji.vue'
 import Shebeizhuangtai from '@/view/performance/09-workOrderVerification/componets/shebeizhuangtai.vue'
 import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '06PackingDocuments'
 })
@@ -534,12 +542,12 @@ const elSearchFormRef = ref()
 
 // =========== 表格控制部分 ===========
 const tableColumns = [
-  { label: '工单编号', prop: 'qczl_gdbh', width: '100' },
+  { label: '工单编号', prop: 'qczl_gdbh', width: '120' },
   { label: '印件号', prop: 'qczl_yjno', width: '100' },
   { label: '印件名称', prop: 'Gd_cpmc', width: '400' },
   { label: '日期', prop: 'qczl_rq', width: '100' },
-  { label: '流程单号', prop: 'qczl_num', width: '100' },
-  { label: '流程单备注', prop: 'qczl_NumDesc', width: '100' },
+  { label: '流程单号', prop: 'qczl_num', width: '120' },
+  { label: '流程单备注', prop: 'qczl_NumDesc', width: '120' },
   { label: '总废品', prop: 'qczl_fp', width: '100' },
   { label: '废品1', prop: 'sl_lb1', width: '250' },
   { label: '废品2', prop: 'sl_lb2', width: '250' },
@@ -658,7 +666,7 @@ const handleCurrentChange = () => {
 
 // ============== 详情页面 ==============
 const detailData = reactive({})
-const selectData = reactive([])
+// const selectData = reactive([])
 const selectColumns = [
   { label: '', prop: 'sczl_gxmc', width: '500' },
   { label: '', prop: 'sczl_jtbh', width: '100' },
@@ -792,8 +800,9 @@ const handleFplbClick = (node, check) => {
   }
 }
 
-// 废品数量回车
-const handleFpslEnter = async(index, row) => {
+let selectData = [] // 将const改为let
+
+const handleFpslEnter = async (index, row) => {
   if (row.fp_sl === '0') {
     detailData.table[index].fp_gxmc = ''
     detailData.table[index].fp_bz = ''
@@ -816,12 +825,30 @@ const handleFpslEnter = async(index, row) => {
     console.log(e)
     return
   }
-  selectIndex = index
-  Object.assign(selectData, res.data)
+
+  // 解译乱码并填充到selectData
+  const decodedData = res.data.map(item => {
+    return {
+      sczl_gxmc: decodeEntities(item.sczl_gxmc), // 解译乱码函数
+      sczl_bzdh: item.sczl_bzdh,
+      sczl_jtbbh: item.sczl_jtbh,
+      sczl_bh1: item.sczl_bh1,
+      name: item.name.trim() // 去除姓名两端的空格
+    }
+  })
+
+  selectData = decodedData // 对selectData进行赋值
+
   setCurrent(selectData[0])
   dialogSelectVisible2.value = true
 }
 
+// 解译HTML实体编码的函数
+function decodeEntities(encodedString) {
+  const textArea = document.createElement('textarea')
+  textArea.innerHTML = encodedString
+  return textArea.value
+}
 // 双击表格操作
 function doubleClick(row, column, event) {
   type.value = '查改'
@@ -910,7 +937,7 @@ const addDetailData = async () => {
     qczl_NumDesc6: detailData.qczl_NumDesc6,
     qczl_NumDesc7: detailData.qczl_NumDesc7,
     qczl_NumDesc8: detailData.qczl_NumDesc8,
-    sys_id: '[1003/洪桂芬]'
+    sys_id: sys_id
   };
 
   detailData.table.forEach((item, index) => {
@@ -1033,7 +1060,7 @@ const closeDialog = () => {
 // 导出excel
 function exportExcel() {
   console.log('导出到excel')
-  dialogSbyxgl.value = true
+  // dialogSbyxgl.value = true
 }
 
 const dialogMrhjtj = ref(false)
@@ -1138,7 +1165,11 @@ const moveFocus = (event) => {
 .JKWTree-content {
   flex: 1;
 }
-
+.bt{
+  margin-left: 2px !important;
+  padding: 3px !important;
+  font-size: 12px;
+}
 /* 选中某行时的背景色 */
 :deep(.el-table__body tr.current-row) > td {
   background: #ff80ff !important;

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

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

+ 70 - 30
src/view/performance/12-orderAccounting/index.vue

@@ -95,6 +95,14 @@
               >流程单查询
               </el-button>
 
+             <!-- <el-button
+                type="primary"
+                icon="edit"
+                class="bt"
+                @click="testExcel"
+              >导出测试
+              </el-button> -->
+
             </el-form-item>
           </el-form>
 
@@ -246,7 +254,7 @@
             class="JKWTree-tree"
             style="height: 70vh;"
           >
-            <h3> 产品管理</h3>
+            <h3> 工单超节损核算</h3>
             <el-tree
               :data="treeData"
               highlight-current
@@ -359,6 +367,10 @@ import Detail from '@/view/performance/12-orderAccounting/componets/detail.vue'
 import Hjfpfb from './componets/hjfpfb.vue'
 import PrintPage from '@/view/yunyin/shengchanguanli/components/print.vue'
 import { reactive } from 'vue'
+import { exportExcelFile } from '@/utils/excel'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 
 // 弹窗
 const dialogGdcjstj = ref(false)
@@ -397,44 +409,44 @@ getSideData()
 
 // 表格数据
 const tableCols1 = [
-  { label: '超损工单', prop: 'csgd', width: '90' },
-  { label: '工单编号', prop: 'Gd_gdbh', width: '100' },
+  { label: '超损工单', prop: 'csgd', width: '120' },
+  { label: '工单编号', prop: 'Gd_gdbh', width: '120' },
   { label: '印件号', prop: 'jjcp_yjno', width: '100' },
   { label: '联数', prop: 'yj_ls', width: '80' },
   { label: '产品代号', prop: '成品编码', width: '150' },
   { label: '产品名称', prop: '成品名称', width: '250' },
-  { label: '实际投料', prop: '实际投料', width: '100' },
-  { label: '计量单位', prop: '计量单位', width: '100' },
+  { label: '实际投料', prop: '实际投料', width: '120' },
+  { label: '计量单位', prop: '计量单位', width: '120' },
   { label: '入仓日期', prop: 'warehousing_date', width: '120' },
-  { label: '入仓数量', prop: 'warehousing_num', width: '100' },
-  { label: '目标合格率', prop: 'target_rate', width: '100' },
-  { label: '实际合格率', prop: 'real_rate', width: '100' },
-  { label: '奖惩系数', prop: 'reward_rate', width: '100' },
-  { label: '奖罚金额合计', prop: '', width: '120' },
-  { label: '废品合计', prop: '废品合计', width: '100' },
-  { label: '工单无形损', prop: '工单无形损', width: '100' },
-  { label: '材料废', prop: '材料废', width: '100' },
-  { label: '零头处理', prop: '零头处理', width: '100' },
-  { label: '处发废', prop: '外发废', width: '100' },
-  { label: '外摊废', prop: '分摊废', width: '100' },
-  { label: '工单计划损耗', prop: '工单计划损耗', width: '120' },
-  { label: '工单制程废', prop: '', width: '100' },
-  { label: '工单检验废', prop: '工单质检废', width: '100' },
-  { label: '年月', prop: 'date', width: '100' },
+  { label: '入仓数量', prop: 'warehousing_num', width: '120' },
+  { label: '目标合格率', prop: 'target_rate', width: '120' },
+  { label: '实际合格率', prop: 'real_rate', width: '120' },
+  { label: '奖惩系数', prop: 'reward_rate', width: '120' },
+  { label: '奖罚金额合计', prop: '', width: '140' },
+  { label: '废品合计', prop: '废品合计', width: '120' },
+  { label: '工单无形损', prop: '工单无形损', width: '120' },
+  { label: '材料废', prop: '材料废', width: '120' },
+  { label: '零头处理', prop: '零头处理', width: '120' },
+  { label: '处发废', prop: '外发废', width: '120' },
+  { label: '外摊废', prop: '分摊废', width: '120' },
+  { label: '工单计划损耗', prop: '工单计划损耗', width: '140' },
+  { label: '工单制程废', prop: '', width: '120' },
+  { label: '工单检验废', prop: '工单质检废', width: '120' },
+  { label: '年月', prop: 'date', width: '120' },
 ]
 const tableCols2 = [
-  { label: '工单编号', prop: 'Gy0_gdbh', width: '100' },
-  { label: '印件及工序', prop: 'Gy0_yjno', width: '100' },
+  { label: '工单编号', prop: 'Gy0_gdbh', width: '120' },
+  { label: '印件及工序', prop: 'Gy0_yjno', width: '120' },
   { label: '工序名称', prop: 'Gy0_gxmc', width: '200' },
   { label: '联数', prop: 'Gy0_ls', width: '80' },
-  { label: '基础损耗', prop: 'Gy0_Rate0', width: '100' },
-  { label: '损耗率', prop: 'Gy0_Rate1', width: '100' },
-  { label: '损耗系数', prop: '损耗系数', width: '100' },
-  { label: '计损色数', prop: 'Gy0_ms', width: '100' },
-  { label: '计划产量', prop: 'Gy0_计划接货数', width: '100' },
-  { label: '计划损耗', prop: 'Gy0_计划损耗', width: '100' },
-  { label: '上报产量', prop: 'total_cl', width: '100' },
-  { label: '制程废', prop: 'total_fp', width: '100' },
+  { label: '基础损耗', prop: 'Gy0_Rate0', width: '120' },
+  { label: '损耗率', prop: 'Gy0_Rate1', width: '120' },
+  { label: '损耗系数', prop: '损耗系数', width: '120' },
+  { label: '计损色数', prop: 'Gy0_ms', width: '120' },
+  { label: '计划产量', prop: 'Gy0_计划接货数', width: '120' },
+  { label: '计划损耗', prop: 'Gy0_计划损耗', width: '120' },
+  { label: '上报产量', prop: 'total_cl', width: '120' },
+  { label: '制程废', prop: 'total_fp', width: '120' },
 ]
 const tableData1 = ref([])
 const tableData2 = ref([])
@@ -553,6 +565,34 @@ const pd_lcd_handleNodeClick = async(node) => {
   console.log(getOrderProcessRight_list)
   processList.value = getOrderProcessRight_list.data
 }
+//导出
+// const testExcel = () => {
+//   const data = [
+//   {
+//       '第一列': '111',
+//       '第二列': '222',
+//       '第三列': '333',
+//       '第四列': '444',
+//     },
+//     {
+//       '第一列': '111',
+//       '第二列': '222',
+//       '第三列': '333',
+//     },
+//     {
+//       '第一列': '111',
+//       '第二列': '222',
+//       '第三列': '333',
+//     },
+//     {
+//       '第一列': '111',
+//       '第二列': '222',
+//       '第三列': '333',
+//     },
+
+//   ]
+//   exportExcelFile(data);
+// }
 </script>
 
 <style scoped>

+ 3 - 0
src/view/performance/14-overTimePayVerification/index.vue

@@ -147,6 +147,9 @@ import { Download, Refresh, Search } from '@element-plus/icons-vue'
 import { reactive, ref } from 'vue'
 import { getDownData, getSide, getUpData } from '@/api/mes_api_gty/overTimePayVerification'
 import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '06PackingDocuments',
 })

+ 7 - 4
src/view/performance/Dayreportattached.vue

@@ -169,7 +169,10 @@ 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 { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '06-packingDocuments'
 })
@@ -207,7 +210,7 @@ const formData = ref({
              sczl_bzdh: '',
              sczl_设备运行工时: '0.00',
              sczl_desc: '',
-			 sys_id:'[1002/郑小丽]',
+			 sys_id:sys_id,
 })
 const initFormData = () => {
 	formData.value = {
@@ -217,7 +220,7 @@ const initFormData = () => {
 		 sczl_bzdh: '',
 		 sczl_设备运行工时: '0.00',
 		 sczl_desc: '',
-		 sys_id:'[1002/郑小丽]',
+		 sys_id:sys_id,
 	};
 }
 
@@ -606,7 +609,7 @@ const updateDetailData = async() => {
 	sczl_bzdh:formData.value.sczl_bzdh,
 	sczl_设备运行工时:formData.value.sczl_设备运行工时,
 	sczl_desc:formData.value.sczl_desc,
-	sys_id:'[1002/郑小丽]',
+	sys_id:sys_id,
   }
  if(ADD.value=='新增'){
 	 const response = await reportadd(restoredData);

+ 5 - 2
src/view/performance/Dayreports.vue

@@ -477,7 +477,10 @@ import { ElMessage, ElMessageBox } from 'element-plus'
 import { Search, Refresh, Download } from '@element-plus/icons-vue'
 import { ref, reactive, nextTick, onMounted, onBeforeMount } from 'vue'
 import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
-import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '06-packingDocuments'
 })
@@ -1868,7 +1871,7 @@ const updateDetailData = async() => {
    sczl_rate8: formData.value.sczl_rate8,
    sczl_rate9: formData.value.sczl_rate9,
    sczl_rate10: formData.value.sczl_rate10,
-   sys_id:'[1002/郑小丽]',
+   sys_id:sys_id,
   }
   // detailData.table.forEach((item, index, array) => {
   //   const num = index + 1

+ 5 - 2
src/view/performance/MachineDocuments.vue

@@ -303,7 +303,10 @@ import { Search, Refresh, Download } from '@element-plus/icons-vue'
 import { ref, reactive, nextTick, onMounted, onBeforeMount } from 'vue'
 import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
 import { login } from '@/api/user'
-import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '06-packingDocuments'
 })
@@ -1052,7 +1055,7 @@ const updateDetailData = async() => {
 	sczl_rate7: formData.value.sczl_rate7,
 	sczl_rate8: formData.value.sczl_rate8,
 	sczl_desc: formData.value.sczl_desc,
-	sys_id:'[1008/姜剑娟]',
+	sys_id:sys_id,
   }
   // detailData.table.forEach((item, index, array) => {
   //   const num = index + 1

+ 5 - 2
src/view/performance/Manualdocuments.vue

@@ -301,7 +301,10 @@ import { ElMessage, ElMessageBox } from 'element-plus'
 import { Search, Refresh, Download } from '@element-plus/icons-vue'
 import { ref, reactive, nextTick, onMounted, onBeforeMount } from 'vue'
 import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
-import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '06-packingDocuments'
 })
@@ -1489,7 +1492,7 @@ const updateDetailData = async() => {
    sczl_fp10: formData.value.sczl_fp10,
    sczl_fp11: formData.value.sczl_fp11,
    sczl_fp12: formData.value.sczl_fp12,
-   sys_id:'[1013/洪丽]',
+   sys_id:sys_id,
   }
   if(ADD.value=='新增'){
   	 const response = await inspectadd(restoredData);

+ 8 - 5
src/view/performance/Packagingoutput.vue

@@ -178,7 +178,10 @@ import { ElMessage, ElMessageBox, LAST_KEYS } from 'element-plus'
 import { Search, Refresh, Download } from '@element-plus/icons-vue'
 import { ref, reactive, nextTick, onMounted, onBeforeMount } from 'vue'
 import { getPackingSideTable, getPackingTable } from '@/api/mes_api_gty/myapi'
-import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '06-packingDocuments'
 })
@@ -644,7 +647,7 @@ const updateDetailData = async() => {
 		 sczl_clAdd4: formData.value.sczl_clAdd4,
 		 sczl_clAdd5:formData.value.sczl_clAdd5,
 		 sczl_clAdd6: formData.value.sczl_clAdd6,
-		 sys_id:'[1084/胡庆司]',
+		 sys_id:sys_id,
 	}
   
   if(ADD.value=='新增'){
@@ -771,9 +774,9 @@ const ADD=ref('0')
 function onAdd() {
 	ADD.value='新增'
 	type.value = 'create'
-	if(typeof(lastCellValue)=='number'){
-		getpickInfo(lastCellValue)
-	}
+	// if(typeof(lastCellValue)=='number'){
+	// 	getpickInfo(lastCellValue)
+	// }
 	initFormData()
 	dialogFormVisible.value = true
 	// Productionadd()

+ 41 - 53
src/view/performance/chejianbaogong.vue

@@ -834,59 +834,44 @@
 		      <el-tabs v-model="activNames" type="card" @tab-click="handleClick">
 		        <el-tab-pane label="指标检验"  @click="showTable('指标检验')"  name="first">
 		          <el-table
-		            tooltip-effect="dark"
-		            :data="zhibiaoselectData"
-		            row-key="ID"
-		            highlight-current-row="true"
-		          	:show-overflow-tooltip="true"
-		            border  @row-click="dianjianhandle"
-		            style="width:70vh; height:40vh;"
-		            @row-dblclick="handleSelectClick"
-		            :row-class-name="rowClassName"
+		              tooltip-effect="dark"
+		              :data="zhibiaoselectData"
+		              row-key="ID"
+		              highlight-current-row="true"
+		              :show-overflow-tooltip="true"
+		              border
+		              style="width:70vh; height:310px;"
+		              :row-class-name="rowClassName"
 		          >
-		            <el-table-column
-		              prop="检验项目"
-		              label="检验项目"
-		              width="270"
-		            />
-					<el-table-column
-					  v-slot="scope"
-					  label="不检测"
-					  width="70"
-					>
-					   <el-checkbox v-model="scope.row.notjc" @click="notjcClick(scope.row)"></el-checkbox>
-					</el-table-column>
-		            <el-table-column
-		              v-slot="scope"
-		              label="合格"
-		              width="60"
-		            >
-
-		             <el-checkbox v-model="scope.row.zc" @click="zcClick(scope.row)"></el-checkbox>
-
-		            </el-table-column>
-		            <el-table-column
-		              v-slot="scope"
-		              label="不合格"
-		              width="70"
-		            >
-		               <el-checkbox v-model="scope.row.yc" @click="ycClick(scope.row)"></el-checkbox>
-		            </el-table-column>
-					<el-table-column
-					  prop="检测方法"
-					  label="检测方法"
-					  width="90"
-					/>
-					<el-table-column
-					  prop="检验频率"
-					  label="检验频率"
-					  width="150"
-					/>
-					<el-table-column
-					  prop="相关标准"
-					  label="相关标准"
-					  width="180"
-					/>
+		              <el-table-column prop="检验项目" label="检验项目" width="110" />
+		              
+		              <el-table-column label="不检测" width="70">
+		                  <template v-slot="scope">
+		                      <el-radio v-model="scope.row.selected" label="不检测">
+		                          <span style="visibility: hidden;">不检测</span>
+		                      </el-radio>
+		                  </template>
+		              </el-table-column>
+		              
+		              <el-table-column label="合格" width="60">
+		                  <template v-slot="scope">
+		                      <el-radio v-model="scope.row.selected" label="合格">
+		                          <span style="visibility: hidden;">合格</span>
+		                      </el-radio>
+		                  </template>
+		              </el-table-column>
+		              
+		              <el-table-column label="不合格" width="70">
+		                  <template v-slot="scope">
+		                      <el-radio v-model="scope.row.selected" label="不合格">
+		                          <span style="visibility: hidden;">不合格</span>
+		                      </el-radio>
+		                  </template>
+		              </el-table-column>
+		              
+		              <el-table-column prop="检测方法" label="检测方法" width="90" />
+		              <el-table-column prop="检验频率" label="检验频率" width="150" />
+		              <el-table-column prop="相关标准" label="相关标准" width="180" />
 		          </el-table>
 		        </el-tab-pane>
 
@@ -2252,7 +2237,9 @@ import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDow
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { ref, reactive } from 'vue'
 import Shebeizhuangtai from '@/view/performance/09-workOrderVerification/componets/shebeizhuangtai.vue'
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 const dialogSbyxgl=ref(false)
 const zhichengstatus=ref(false)
 const yinbanselectData = ref([])
@@ -3818,6 +3805,7 @@ const processInspectionRecordsItem = async (value) => {
 		 item.flow=xunchaData.value.lcdh
 		 item.team=BZMC.value
 		 item.machine=JTMC.split("#")[0]
+		 item.selected = '不检测';
 		 return item
 	 })
 	 fujiaselectData.value=response.data.首件.附加.map(item=>{

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

@@ -42,6 +42,11 @@ import {
   staffSalaryCount,
 } from '@/api/yunyin/yunying'
 import { ElMessage } from 'element-plus'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore()
+const _username = ref('')
+_username.value = userStore.userInfo.userName + '/' + userStore.userInfo.nickName
+
 const form = reactive({})
 const visible = ref(true)
 const jjgzzhysformData = reactive({
@@ -53,6 +58,7 @@ const jjgzzhysformData = reactive({
   vacation_two_start: '',
   vacation_two_end: '',
 });
+
 //=============页面默认加载获取=========
 // 获取当前日期
 const currentDate = new Date();
@@ -101,6 +107,7 @@ const jjgzzhysclick = async () => {
     return `${year}-${month}-${day}`;
   }
   const formattedData = {
+    sys_id: _username.value,
     date: jjgzzhysformData.date,
     start_date: formatDate(jjgzzhysformData.start_date),
     end_date: formatDate(jjgzzhysformData.end_date),
@@ -111,12 +118,12 @@ const jjgzzhysclick = async () => {
   };
   console.log(formattedData)
   //目前没有接口,先不用调用
-  // const staffSalaryCount_add = await staffSalaryCount(formattedData);
-  // if (staffSalaryCount_add.code === 0) {
-  //   ElMessage({type: 'success',message: '更新成功'})
-  // } else {
-  //   ElMessage({type: 'error',message: '更新失败'})
-  // }
+  const staffSalaryCount_add = await staffSalaryCount(formattedData);
+  if (staffSalaryCount_add.code === 0) {
+    ElMessage({type: 'success',message: '更新成功'})
+  } else {
+    ElMessage({type: 'error',message: '更新失败'})
+  }
 };
 </script>
 <style scoped>

+ 4 - 1
src/view/performance/yuangongrigongzi.vue

@@ -365,7 +365,10 @@ 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 { Layout, LayoutContent, LayoutHeader, LayoutSider } from '@arco-design/web-vue'
-import Ygjjmx from './printYgjjmx.vue'
+import Ygjjmx from './printYgjjmx.vue'
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 defineOptions({
   name: '06-packingDocuments'
 })

+ 402 - 400
src/view/yunyin/chanpinziliao/chanpinziliao.vue

@@ -605,19 +605,19 @@
                       @row-click="tableRowClick"
                       :show-overflow-tooltip="true">
               <el-table-column type="selection" width="30" />
-              <el-table-column   align="left" label="产品编号" prop="产品编号" width="115" />
-              <el-table-column   align="left" label="产品名称" prop="产品名称" width="340" />
-              <el-table-column   align="left" label="版本号" prop="版本号" width="100"/>
-              <el-table-column   align="left" label="成品规格" prop="成品规格" width="100" />
-              <el-table-column   align="left" label="单位" prop="计量单位" width="100"/>
-              <el-table-column   align="left" label="产品分类" prop="产品类别" width="100" />
-              <el-table-column   align="left" label="最近接单时间" prop="receiveDate" width="160" />
-              <el-table-column   align="left" label="印件数" prop="yjData" width="100" />
-              <el-table-column   align="left" label="工艺" prop="gyData" width="100"/>
-              <el-table-column   align="left" label="当前状态" prop="状态"  width="100"/>
-              <el-table-column   align="left" label="最后修改" prop="Sys_id" width="160" />
-              <el-table-column   align="left" label="建档日期" prop="Sys_rq" width="160" />
-              <el-table-column    align="left" label="更新日期" prop="Mod_rq" width="160" />
+              <el-table-column  sortable align="left" label="产品编号" prop="产品编号" width="115" />
+              <el-table-column  sortable align="left" label="产品名称" prop="产品名称" width="340" />
+              <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="100"/>
+              <el-table-column  sortable align="left" label="产品分类" prop="产品类别" width="100" />
+              <el-table-column  sortable align="left" label="最近接单时间" prop="receiveDate" width="160" />
+              <el-table-column  sortable align="left" label="印件数" prop="yjData" width="100" />
+              <el-table-column  sortable align="left" label="工艺" prop="gyData" width="100"/>
+              <el-table-column  sortable align="left" label="当前状态" prop="状态"  width="100"/>
+              <el-table-column  sortable align="left" label="最后修改" prop="Sys_id" width="160" />
+              <el-table-column  sortable align="left" label="建档日期" prop="Sys_rq" width="160" />
+              <el-table-column   sortable align="left" label="更新日期" prop="Mod_rq" width="160" />
             </el-table>
             <div class="gva-pagination">
               <el-pagination
@@ -645,19 +645,19 @@
                         @row-dblclick="yjupdateCompanyFunc"
                         style="width: 100%;height: 40vh" border tooltip-effect="dark" :data="yjtableData" row-key="ID" @selection-change="handleSelectionChange">
                 <el-table-column  type="selection" width="30" />
-                <el-table-column  align="left" label="印件号" prop="yj_yjno"  width="80"/>
-                <el-table-column  align="left" label="印件代号" prop="yj_yjdh" width="100" />
-                <el-table-column  align="left" label="印件名称" prop="yj_yjmc" width="540" />
-                <el-table-column  align="left" label="纸张单号" prop="yj_zzdh" width="100"/>
-                <el-table-column  align="left" label="纸张名称" prop="yj_zzmc" width="340"/>
-                <el-table-column  align="left" label="投料规格" prop="yj_tlgg" width="240"/>
-                <el-table-column  align="left" label="开料规格" prop="yj_klgg" width="100"/>
-                <el-table-column  align="left" label="开数" prop="yj_ks" width="80" />
-                <el-table-column  align="left" label="联数" prop="yj_ls" width="80" />
-                <el-table-column  align="left" label="备注" prop="yj_desc" width="200" />
-                <el-table-column  align="left" label="建档用户" prop="sys_id" width="130" />
-                <el-table-column  align="left" label="建档日期" prop="sys_rq" width="160" />
-                <el-table-column  align="left" label="更新日期" prop="mod_rq" width="160"/>
+                <el-table-column  align="left" sortable label="印件号" prop="yj_yjno"  width="100"/>
+                <el-table-column  align="left" sortable label="印件代号" prop="yj_yjdh" width="110" />
+                <el-table-column  align="left" sortable label="印件名称" prop="yj_yjmc" width="540" />
+                <el-table-column  align="left" sortable label="纸张单号" prop="yj_zzdh" width="110"/>
+                <el-table-column  align="left" sortable label="纸张名称" prop="yj_zzmc" width="340"/>
+                <el-table-column  align="left" sortable label="投料规格" prop="yj_tlgg" width="240"/>
+                <el-table-column  align="left" sortable label="开料规格" prop="yj_klgg" width="110"/>
+                <el-table-column  align="left" sortable label="开数" prop="yj_ks" width="100" />
+                <el-table-column  align="left" sortable label="联数" prop="yj_ls" width="100" />
+                <el-table-column  align="left" sortable label="备注" prop="yj_desc" width="200" />
+                <el-table-column  align="left" sortable label="建档用户" prop="sys_id" width="130" />
+                <el-table-column  align="left" sortable label="建档日期" prop="sys_rq" width="160" />
+                <el-table-column  align="left" sortable label="更新日期" prop="mod_rq" width="160"/>
               </el-table>
             </el-tab-pane>
 
@@ -673,27 +673,27 @@
                         style="width: 100%;height: 40vh" border tooltip-effect="dark" :data="gytableData" row-key="ID" @selection-change="handleSelectionChange"
                         @row-click="clickybupdate">
                 <el-table-column type="selection" width="30" />
-                <el-table-column align="left"   label="方案" prop="方案"  width="70"/>
-                <el-table-column align="left"   label="印件" prop="Gy0_yjno" width="80" />
-                <el-table-column align="left"   label="工序" prop="Gy0_gxh" width="70" />
-                <el-table-column align="left"   label="工序名称" prop="gy0_gxmc" width="120" />
-                <el-table-column align="left"   label="工序名称" prop="add_gxmc" width="340" />
-                <el-table-column align="left"   label="开数" prop="Gy0_Ks" width="70" />
-                <el-table-column align="left"   label="联数" prop="Gy0_ls" width="70" />
-                <el-table-column align="left"   label="备注" prop="备注" width="150" />
-                <el-table-column align="left"   label="工价系数" prop="工价系数" width="100" />
-                <el-table-column align="left"   label="损耗系数" prop="损耗系数" width="100" />
-                <el-table-column align="left"   label="计损色数" prop="Gy0_Ms" width="100" />
-                <el-table-column align="left"   label="人工检_正品版" prop="人工检_正品版" width="120" />
-                <el-table-column align="left"   label="人工检_次品版" prop="人工检_正品版" width="120" />
-                <el-table-column align="left"   label="人工检_废检" prop="人工检_废检" width="120"/>
-                <el-table-column align="left"   label="机检_正品版" prop="机检_正品版" width="120"/>
-                <el-table-column align="left"   label="机检_次品检" prop="机检_次品检" width="120"/>
-                <el-table-column align="left"   label="机检_废检" prop="机检_废检" width="120"/>
-                <el-table-column align="left"   label="设备编号" prop="Gy0_sbmc" width="100"/>
-                <el-table-column align="left"   label="最后修改" prop="最后修改" width="160"/>
-                <el-table-column align="left"   label="建档日期" prop="建档日期" width="160"/>
-                <el-table-column align="left"   label="更新日期" prop="更新日期" width="160"/>
+                <el-table-column align="left" sortable   label="方案" prop="方案"  width="110"/>
+                <el-table-column align="left" sortable   label="印件" prop="Gy0_yjno" width="110" />
+                <el-table-column align="left" sortable   label="工序" prop="Gy0_gxh" width="110" />
+                <el-table-column align="left" sortable   label="工序名称" prop="gy0_gxmc" width="120" />
+                <el-table-column align="left" sortable   label="工序名称" prop="add_gxmc" width="340" />
+                <el-table-column align="left" sortable   label="开数" prop="Gy0_Ks" width="110" />
+                <el-table-column align="left" sortable   label="联数" prop="Gy0_ls" width="110" />
+                <el-table-column align="left" sortable   label="备注" prop="备注" width="150" />
+                <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="Gy0_Ms" width="110" />
+                <el-table-column align="left" sortable   label="人工检_正品版" prop="人工检_正品版" width="150" />
+                <el-table-column align="left" sortable   label="人工检_次品版" prop="人工检_正品版" width="150" />
+                <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="140"/>
+                <el-table-column align="left" sortable   label="机检_废检" prop="机检_废检" width="140"/>
+                <el-table-column align="left" sortable   label="设备编号" prop="Gy0_sbmc" width="110"/>
+                <el-table-column align="left" sortable   label="最后修改" prop="最后修改" width="160"/>
+                <el-table-column align="left" sortable   label="建档日期" prop="建档日期" width="160"/>
+                <el-table-column align="left" sortable   label="更新日期" prop="更新日期" width="160"/>
               </el-table>
             </el-tab-pane>
 
@@ -708,46 +708,46 @@
                         style="width: 100%;height: 40vh" border tooltip-effect="dark" :data="ybtableData" row-key="ID" @selection-change="handleSelectionChange"
               >
                 <el-table-column type="selection" width="30" />
-                <el-table-column align="left"  label="方案" prop="YB_方案"  width="70"/>
-                <el-table-column align="left"  label="印件号" prop="YB_Yjno" width="80" />
-                <el-table-column align="left"  label="印版类别" prop="印版类别" width="100" />
-                <el-table-column align="left"  label="存货编码" prop="存货编码" width="100"/>
-                <el-table-column align="left"  label="印版名称" prop="印版名称"  width="440"/>
-                <el-table-column align="left"  label="考核印数" prop="考核印数" width="100"/>
-                <el-table-column align="left"  label="建档用户" prop="Sys_id" width="120" />
-                <el-table-column align="left"  label="建档日期" prop="建档日期" width="160" />
-                <el-table-column align="left"  label="更新日期" prop="更新日期" width="160" />
+                <el-table-column align="left" sortable  label="方案" prop="YB_方案"  width="100"/>
+                <el-table-column align="left" sortable  label="印件号" prop="YB_Yjno" width="100" />
+                <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="440"/>
+                <el-table-column align="left" sortable  label="考核印数" prop="考核印数" width="110"/>
+                <el-table-column align="left" sortable  label="建档用户" prop="Sys_id" width="120" />
+                <el-table-column align="left" sortable  label="建档日期" prop="建档日期" width="160" />
+                <el-table-column align="left" sortable  label="更新日期" prop="更新日期" width="160" />
               </el-table>
             </el-tab-pane>
 
-            <el-tab-pane label="技术资料附件" @click="showTable('技术资料附件')" name="fourth">
-				<el-table ref="multipleTable"
-                        :row-style="{ height: '20px' }"
-                        :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
-                        :header-cell-style="{ padding: '0px' }"
-                        :show-overflow-tooltip="true"
-                        highlight-current-row="true"
-                        style="width: 100%;height: 40vh" 
-						border tooltip-effect="dark" 
-						:data="jstableData" 
-						row-key="ID" 
-						@row-dblclick="ExcelShow"
-						@selection-change="handleSelectionChange">
-                <!--              <el-table-column type="selection" width="55" />-->
-                <el-table-column align="left"  label="序号" prop="序号"  width="120"/>
-                <el-table-column align="left"  label="适用工序" prop="适用工序" width="120" />
-                <el-table-column align="left"  label="备注" prop="附件备注" width="120" />
-                <el-table-column align="left"  label="文件类型" prop="附件类型" width="120"/>
-                <el-table-column align="left"  label="关联产品" prop="关联产品"  width="360"/>
-                <el-table-column align="left"  label="建档用户" prop="sys_id" width="120"/>
-                <el-table-column align="left"  label="建档日期" prop="sys_rq" width="160" />
-                <el-table-column align="left"  label="更新日期" prop="mod_rq" width="160" />
-				<el-table-column fixed="right" label="操作" width="100">
-				    <template v-slot="{ row }">
-				      <button @click="jsfj_del(row)">删除</button>
-				    </template>
-				  </el-table-column>
-              </el-table>
+            <el-tab-pane label="技术资料附件" @click="showTable('技术资料附件')" name="fourth">
+				<el-table ref="multipleTable"
+                        :row-style="{ height: '20px' }"
+                        :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
+                        :header-cell-style="{ padding: '0px' }"
+                        :show-overflow-tooltip="true"
+                        highlight-current-row="true"
+                        style="width: 100%;height: 40vh"
+						border tooltip-effect="dark"
+						:data="jstableData"
+						row-key="ID"
+						@row-dblclick="ExcelShow"
+						@selection-change="handleSelectionChange">
+                <!--              <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="附件类型" width="120"/>
+                <el-table-column align="left" sortable  label="关联产品" prop="关联产品"  width="360"/>
+                <el-table-column align="left" sortable  label="建档用户" prop="sys_id" width="120"/>
+                <el-table-column align="left" sortable  label="建档日期" prop="sys_rq" width="160" />
+                <el-table-column align="left" sortable  label="更新日期" prop="mod_rq" width="160" />
+				<el-table-column fixed="right" label="操作" width="100">
+				    <template v-slot="{ row }">
+				      <button @click="jsfj_del(row)">删除</button>
+				    </template>
+				  </el-table-column>
+              </el-table>
             </el-tab-pane>
           </el-tabs>
 
@@ -1457,44 +1457,44 @@
               </div>
             </el-form>
           </el-dialog>
-
+
 		<!-- 技术附件 -->
           <el-dialog v-model="jsfjdialogFormVisible" :before-close="jsfjcloseDialog" :title="产品技术附件资料" style="margin-top: 40px" height="500px" width="800px" destroy-on-close>
 			  <el-form :model="jsfjformdata" label-position="right" ref="elFormRef" :rules="rule" label-width="75px">
-				<el-row :gutter="24">
-					<el-col :span="6">
-					  <el-form-item label="序号:" prop="address" class="mab">
-						<el-input v-model="jsfjformdata.序号"  id="序号" style="width: 140px;"  />
-					  </el-form-item>
-					</el-col>
-					<el-col :span="18">
-					  <el-form-item label="附件备注:" prop="address" class="mab">
-						<el-input v-model="jsfjformdata.附件备注"  id="附件备注" />
-					  </el-form-item>
-					</el-col>
-				</el-row>
-				<el-row :gutter="24">
-					<el-col :span="24">
-						<el-form-item label="适用工序:" prop="address" class="mab">
-							<el-input v-model="jsfjformdata.适用工序"  id="适用工序" />
-						</el-form-item>
-					</el-col>
-				</el-row>
-				<el-row :gutter="24">
+				<el-row :gutter="24">
+					<el-col :span="6">
+					  <el-form-item label="序号:" prop="address" class="mab">
+						<el-input v-model="jsfjformdata.序号"  id="序号" style="width: 140px;"  />
+					  </el-form-item>
+					</el-col>
+					<el-col :span="18">
+					  <el-form-item label="附件备注:" prop="address" class="mab">
+						<el-input v-model="jsfjformdata.附件备注"  id="附件备注" />
+					  </el-form-item>
+					</el-col>
+				</el-row>
+				<el-row :gutter="24">
+					<el-col :span="24">
+						<el-form-item label="适用工序:" prop="address" class="mab">
+							<el-input v-model="jsfjformdata.适用工序"  id="适用工序" />
+						</el-form-item>
+					</el-col>
+				</el-row>
+				<el-row :gutter="24">
 					<el-col :span="24">
 					  <el-form-item label="关联产品:" prop="address" class="mab">
 						<el-input v-model="jsfjformdata.关联产品"  id="关联产品" />
 					  </el-form-item>
-					</el-col>
-				</el-row>
-				<el-row :gutter="24">
-					<el-col :span="6"></el-col>
-					<el-col :span="12">
-						<input style="font-size:16px;" type="file" @change="uploadExcel" >
-					</el-col>
-					<el-col :span="6">
-						<el-button @click="yulan">预览</el-button>
-					</el-col>
+					</el-col>
+				</el-row>
+				<el-row :gutter="24">
+					<el-col :span="6"></el-col>
+					<el-col :span="12">
+						<input style="font-size:16px;" type="file" @change="uploadExcel" >
+					</el-col>
+					<el-col :span="6">
+						<el-button @click="yulan">预览</el-button>
+					</el-col>
 				</el-row>
 			  </el-form>
 			  <template #footer>
@@ -1504,10 +1504,10 @@
 				</div>
 			  </template>
 			</el-dialog>
-
+
 <el-dialog v-model="luckyexcelVisible" :before-close="luckyexcelCloseDialog" width="100%" top="0vh">
   <div id="luckyexcel" style="width: 100%;height: 90vh;"></div>
-</el-dialog>
+</el-dialog>
 
         </layout-content>
 
@@ -1555,7 +1555,7 @@ export default {
 </script>
 <script setup>
 // 全量引入格式化工具 请按需保留
-import $script from 'scriptjs'
+import $script from 'scriptjs'
 import $ from 'jquery';
 import LuckyExcel from 'luckyexcel';
 import { ElMessage, ElMessageBox } from 'element-plus'
@@ -1593,13 +1593,16 @@ import {
   copyProductGy,
   getProductYbMaterialList,
   getProductYbInfo,
-  addProductYbInfo,
-  getAnnexTable,
-  annexAdd,
+  addProductYbInfo,
+  getAnnexTable,
+  annexAdd,
   annexDel,
 } from '@/api/yunyin/yunying'
 defineOptions({   name: 'Company'})
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore()
+const _username = ref('')
+_username.value = userStore.userInfo.userName + '/' + userStore.userInfo.nickName
 // =========== 导出Excel表格 ===========
 // //导出产品
 // const cpdialogexportToExcel = ref(false)
@@ -2466,7 +2469,7 @@ const tableRowClick = async (row) => {
   const res = await getProductData({product_code:_product_code.value});
   yjtableData.splice(0, yjtableData.length, ...res.data.yjData);
   gytableData.splice(0, gytableData.length, ...res.data.gyData);
-  ybtableData.splice(0, ybtableData.length, ...res.data.ybData);
+  ybtableData.splice(0, ybtableData.length, ...res.data.ybData);
   jstableData.splice(0, jstableData.length, ...res.data.jsData);
   if(yjtableData.length==0){
 	   yjzuidahaoma.value = 1
@@ -2777,7 +2780,7 @@ const add_gdyjenterDialog = () => {
     yj_ks: add_yjzlformdata['ks'],
     yj_ls: add_yjzlformdata['ls'],
     yj_desc: add_yjzlformdata['desc'],
-    sys_id  : "[1020/邢醉育]",
+    sys_id  : _username.value,
     // 万小张: add_yjzlformdata['万小张'],
   };
   console.log(formattedData)
@@ -2855,7 +2858,7 @@ const add_gyformData = reactive({
   工序备注: '',
   质量要求: '',
   质量隐患: '',
-  Sys_id: '',
+  Sys_id: _username.value,
   标准损耗2:'',
 });
 const getcjmc = (code) => {
@@ -2968,7 +2971,7 @@ const addgyenterDialog = () => {
     工序备注:add_gyformData['工序备注'],
     质量要求: add_gyformData['质量要求'],
     质量隐患: add_gyformData['质量隐患'],
-    Sys_id  : "[1020/邢醉育]",
+    Sys_id  : _username.value,
     // 万小张: add_yjzlformdata['万小张'],
   };
   console.log(formattedData)
@@ -3045,12 +3048,11 @@ const addtbenterDialog = async () => {
     YB_gxh: add_ybformDataTest.YB_gxh,
     存货编码: add_ybformDataTest.物料代码,
     印版名称: add_ybformDataTest.物料名称,
-    Sys_id: '[1016/邹训敏]',
+    Sys_id: _username.value,
     // 印版备注: add_ybformDataTest.ybbz,
   };
-  // console.log(formattedData)
+  console.log(formattedData)
   const addProductYbInfo_add = await addProductYbInfo(formattedData);
-  console.log(addProductYbInfo_add)
   if(addProductYbInfo_add.code === 0) {
     ElMessage({type: 'success',message: '更新成功'})
     addybdialogFormVisible.value = false;
@@ -3304,297 +3306,297 @@ const tableDataCellClass = ({row, column, rowIndex, columnIndex}) =>{
   if (column.property === 'gyData' || column.property === 'yjData') {
     return 'plan-usage-low';
   }
-}
-
+}
+
 //点击技术附件按钮
 const jsfjClick = () => {
 	if(_Gd_gdbh.value == null){
 	  cgugdlist.value = false;
 	  ElMessage({type: 'warning',message: '请选择具体的工单后,再操作此功能'})
 	}else{
-	  initJsfjformdata();
+	  initJsfjformdata();
 	  jsfjformdata.value.关联产品 = _Gd_gdbh.value
 	  jsfjdialogFormVisible.value = true
 	}
-}
-//技术附件弹窗
-const jsfjdialogFormVisible = ref(false)
-const jsfjformdata = ref({
-	sys_id: '[272/超级用户]',
-	序号: '',
-	附件备注: '',
-	附件内容: '',
-	附件类型: '',
-	适用工序: '',
+}
+//技术附件弹窗
+const jsfjdialogFormVisible = ref(false)
+const jsfjformdata = ref({
+	sys_id: _username.value,
+	序号: '',
+	附件备注: '',
+	附件内容: '',
+	附件类型: '',
+	适用工序: '',
 	关联产品: '',
-});
+});
 //技术附件弹窗取消
 const initJsfjformdata = () => {
-  jsfjformdata.value = {
-	sys_id: '[272/超级用户]',
-	序号: '',
-	附件备注: '',
-	附件内容: '',
-	附件类型: '',
-	适用工序: '',
-	关联产品: '',
-  }
-}
+  jsfjformdata.value = {
+	sys_id: _username.value,
+	序号: '',
+	附件备注: '',
+	附件内容: '',
+	附件类型: '',
+	适用工序: '',
+	关联产品: '',
+  }
+}
 //技术附件弹窗取消
 const jsfjcloseDialog = () => {
   jsfjdialogFormVisible.value = false
-}
-const uploadExcel = (event) =>{
-	const files = event.target.files;
-	let suffixArr = name.split("."), suffix = suffixArr[suffixArr.length-1];
-	// if(suffix!="xlsx"){
-	// 	alert("Currently only supports the import of xlsx files");
-	// 	return;
-	// }
-	jsfjformdata.value.附件内容 = files[0]
-	jsfjformdata.value.附件类型 = 'XLSX'
-}
-
-const yulan = (event) =>{
-	if(!jsfjformdata.value.附件内容) return
-	$.getScript('/luckysheet/plugins/js/plugin.js', () => {
-			$script('/luckysheet/luckysheet.umd.js', () => {
-			luckyexcelVisible.value = true
-			LuckyExcel.transformExcelToLucky(jsfjformdata.value.附件内容, function(exportJson, luckysheetfile){
-				if(exportJson.sheets==null || exportJson.sheets.length==0){
-					alert("Failed to read the content of the excel file, currently does not support xls files!");
-					return;
-				}
-				if(luckyExcel) luckyExcel.destroy();
-				luckysheet.create({
-					container: 'luckyexcel', //容器的ID
-					data: exportJson.sheets,
-					title: exportJson.info.name, // 工作簿名称
-					lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
-					showtoolbar: false, // 是否显示工具栏
-					showinfobar: false, // 是否显示顶部信息栏
-					allowEdit: false, // 是否允许前台编辑
-					enableAddRow: false, // 允许增加行
-					enableAddCol: false, // 允许增加列
-					userInfo: false, // 右上角的用户信息展示样式
-					showRowBar: false, // 是否显示行号区域
-					showColumnBar: false, // 是否显示列号区域
-					sheetFormulaBar: false, // 是否显示公式栏
-					enableAddBackTop: false,//返回头部按钮
-				});
-				luckyExcel = luckysheet;
-			})
-		})
-		})
-		$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
-		$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
-		$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
-		$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
-	
-}
-const jsfj_del = (row) =>{
-	ElMessageBox.confirm('确定要删除吗?', '提示', {
-	    confirmButtonText: '确定',
-	    cancelButtonText: '取消',
-	    type: 'warning'
-	}).then(() => {
-		annexDel({'UniqId':row.UniqId,'cpdh':_Gd_gdbh.value}).then(response => {
-			 if(response.code==0){
-				 ElMessage({
-				   type: 'success',
-				   message: '删除成功',
-				 })
-				 let row = {
-					 'UniqID':_UniqID.value,
-					 '产品编号':_product_code.value,
-					 '产品名称':_kehu_code.value,
-				 }
-				 tableRowClick (row)
-			  }
-		   })
-	})
-	
-}
-
-//技术附件弹窗确定
-const jsfjenterDialog = () => {
-	if(jsfjformdata.value.序号==''){
-		ElMessage({
-			type: 'error',
-			message: '请填写序号'
-		});
-		return;
-	}
-	if(jsfjformdata.value.附件备注==''){
-		ElMessage({
-			type: 'error',
-			message: '请填写附件备注'
-		});
-		return;
-	}
-	if(jsfjformdata.value.附件内容==''){
-		ElMessage({
-			type: 'error',
-			message: '请上传文件'
-		});
-		return;
-	}
-	if(jsfjformdata.value.适用工序==''){
-		ElMessage({
-			type: 'error',
-			message: '请填写适用工序'
-		});
-		return;
-	}
-	if(jsfjformdata.value.关联产品==''){
-		ElMessage({
-			type: 'error',
-			message: '请填写关联产品'
-		});
-		return;
-	}
-	
-	let fr = new FileReader();
-	fr.readAsDataURL(jsfjformdata.value.附件内容);
-	fr.onload = function () {
-	  const restoredData = new FormData();
-	  restoredData.append('sys_id', jsfjformdata.value.sys_id);
-	  restoredData.append('序号', jsfjformdata.value.序号);
-	  restoredData.append('附件备注', jsfjformdata.value.附件备注);
-	  restoredData.append('附件内容', fr.result);
-	  restoredData.append('附件类型', jsfjformdata.value.附件类型);
-	  restoredData.append('适用工序', jsfjformdata.value.适用工序);
-	  restoredData.append('关联产品', jsfjformdata.value.关联产品);
-			
-	   annexAdd(restoredData).then(response => {
-		 if(response.code==0){
-			 ElMessage({
-			   type: 'success',
-			   message: '新增成功',
-			 })
-			 jsfjdialogFormVisible.value = false
-			 let row = {
-				 'UniqID':_UniqID.value,
-				 '产品编号':_product_code.value,
-				 '产品名称':_kehu_code.value,
-			 }
-			 tableRowClick (row)
-		 }
-	   })
-	}
-}
-
-//技术资料excel展示
-const ExcelShow = (row) =>{
-	if(!row.附件内容) return
-	$.getScript('/luckysheet/plugins/js/plugin.js', () => {
-		$script('/luckysheet/luckysheet.umd.js', () => {
-					console.log(row.附件内容)
-					function dataURLtoBlob(dataUrl) {
-					    const byteString = atob(dataUrl.split(',')[1]);
-					    const ab = new ArrayBuffer(byteString.length);
-					    const ia = new Uint8Array(ab);
-					
-					    for (let i = 0; i < byteString.length; i++) {
-					        ia[i] = byteString.charCodeAt(i);
-					    }
-					
-					    return new Blob([ab], { type: 'application/octet-stream' });
-					}
-					
-					const blob = dataURLtoBlob(row.附件内容);
-					luckyexcelVisible.value = true
-					LuckyExcel.transformExcelToLucky(blob, function(exportJson, luckysheetfile){
-						if(exportJson.sheets==null || exportJson.sheets.length==0){
-							alert("Failed to read the content of the excel file, currently does not support xls files!");
-							return;
-						}
-						if(luckyExcel) luckyExcel.destroy();
-						luckysheet.create({
-							container: 'luckyexcel', //容器的ID
-							data: exportJson.sheets,
-							title: exportJson.info.name, // 工作簿名称
-							lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
-							showtoolbar: false, // 是否显示工具栏
-							showinfobar: false, // 是否显示顶部信息栏
-							allowEdit: false, // 是否允许前台编辑
-							enableAddRow: false, // 允许增加行
-							enableAddCol: false, // 允许增加列
-							userInfo: false, // 右上角的用户信息展示样式
-							showRowBar: false, // 是否显示行号区域
-							showColumnBar: false, // 是否显示列号区域
-							sheetFormulaBar: false, // 是否显示公式栏
-							enableAddBackTop: false,//返回头部按钮
-						});
-						luckyExcel = luckysheet;
-					})
-		})
-	})
-	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
-	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
-	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
-	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
-	
-}
-
-let luckyExcel = null
-
-const luckyexcelVisible = ref(false)
+}
+const uploadExcel = (event) =>{
+	const files = event.target.files;
+	let suffixArr = name.split("."), suffix = suffixArr[suffixArr.length-1];
+	// if(suffix!="xlsx"){
+	// 	alert("Currently only supports the import of xlsx files");
+	// 	return;
+	// }
+	jsfjformdata.value.附件内容 = files[0]
+	jsfjformdata.value.附件类型 = 'XLSX'
+}
+
+const yulan = (event) =>{
+	if(!jsfjformdata.value.附件内容) return
+	$.getScript('/luckysheet/plugins/js/plugin.js', () => {
+			$script('/luckysheet/luckysheet.umd.js', () => {
+			luckyexcelVisible.value = true
+			LuckyExcel.transformExcelToLucky(jsfjformdata.value.附件内容, function(exportJson, luckysheetfile){
+				if(exportJson.sheets==null || exportJson.sheets.length==0){
+					alert("Failed to read the content of the excel file, currently does not support xls files!");
+					return;
+				}
+				if(luckyExcel) luckyExcel.destroy();
+				luckysheet.create({
+					container: 'luckyexcel', //容器的ID
+					data: exportJson.sheets,
+					title: exportJson.info.name, // 工作簿名称
+					lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
+					showtoolbar: false, // 是否显示工具栏
+					showinfobar: false, // 是否显示顶部信息栏
+					allowEdit: false, // 是否允许前台编辑
+					enableAddRow: false, // 允许增加行
+					enableAddCol: false, // 允许增加列
+					userInfo: false, // 右上角的用户信息展示样式
+					showRowBar: false, // 是否显示行号区域
+					showColumnBar: false, // 是否显示列号区域
+					sheetFormulaBar: false, // 是否显示公式栏
+					enableAddBackTop: false,//返回头部按钮
+				});
+				luckyExcel = luckysheet;
+			})
+		})
+		})
+		$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
+		$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
+		$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
+		$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
+
+}
+const jsfj_del = (row) =>{
+	ElMessageBox.confirm('确定要删除吗?', '提示', {
+	    confirmButtonText: '确定',
+	    cancelButtonText: '取消',
+	    type: 'warning'
+	}).then(() => {
+		annexDel({'UniqId':row.UniqId,'cpdh':_Gd_gdbh.value}).then(response => {
+			 if(response.code==0){
+				 ElMessage({
+				   type: 'success',
+				   message: '删除成功',
+				 })
+				 let row = {
+					 'UniqID':_UniqID.value,
+					 '产品编号':_product_code.value,
+					 '产品名称':_kehu_code.value,
+				 }
+				 tableRowClick (row)
+			  }
+		   })
+	})
+
+}
+
+//技术附件弹窗确定
+const jsfjenterDialog = () => {
+	if(jsfjformdata.value.序号==''){
+		ElMessage({
+			type: 'error',
+			message: '请填写序号'
+		});
+		return;
+	}
+	if(jsfjformdata.value.附件备注==''){
+		ElMessage({
+			type: 'error',
+			message: '请填写附件备注'
+		});
+		return;
+	}
+	if(jsfjformdata.value.附件内容==''){
+		ElMessage({
+			type: 'error',
+			message: '请上传文件'
+		});
+		return;
+	}
+	if(jsfjformdata.value.适用工序==''){
+		ElMessage({
+			type: 'error',
+			message: '请填写适用工序'
+		});
+		return;
+	}
+	if(jsfjformdata.value.关联产品==''){
+		ElMessage({
+			type: 'error',
+			message: '请填写关联产品'
+		});
+		return;
+	}
+
+	let fr = new FileReader();
+	fr.readAsDataURL(jsfjformdata.value.附件内容);
+	fr.onload = function () {
+	  const restoredData = new FormData();
+	  restoredData.append('sys_id', jsfjformdata.value.sys_id);
+	  restoredData.append('序号', jsfjformdata.value.序号);
+	  restoredData.append('附件备注', jsfjformdata.value.附件备注);
+	  restoredData.append('附件内容', fr.result);
+	  restoredData.append('附件类型', jsfjformdata.value.附件类型);
+	  restoredData.append('适用工序', jsfjformdata.value.适用工序);
+	  restoredData.append('关联产品', jsfjformdata.value.关联产品);
+
+	   annexAdd(restoredData).then(response => {
+		 if(response.code==0){
+			 ElMessage({
+			   type: 'success',
+			   message: '新增成功',
+			 })
+			 jsfjdialogFormVisible.value = false
+			 let row = {
+				 'UniqID':_UniqID.value,
+				 '产品编号':_product_code.value,
+				 '产品名称':_kehu_code.value,
+			 }
+			 tableRowClick (row)
+		 }
+	   })
+	}
+}
+
+//技术资料excel展示
+const ExcelShow = (row) =>{
+	if(!row.附件内容) return
+	$.getScript('/luckysheet/plugins/js/plugin.js', () => {
+		$script('/luckysheet/luckysheet.umd.js', () => {
+					console.log(row.附件内容)
+					function dataURLtoBlob(dataUrl) {
+					    const byteString = atob(dataUrl.split(',')[1]);
+					    const ab = new ArrayBuffer(byteString.length);
+					    const ia = new Uint8Array(ab);
+
+					    for (let i = 0; i < byteString.length; i++) {
+					        ia[i] = byteString.charCodeAt(i);
+					    }
+
+					    return new Blob([ab], { type: 'application/octet-stream' });
+					}
+
+					const blob = dataURLtoBlob(row.附件内容);
+					luckyexcelVisible.value = true
+					LuckyExcel.transformExcelToLucky(blob, function(exportJson, luckysheetfile){
+						if(exportJson.sheets==null || exportJson.sheets.length==0){
+							alert("Failed to read the content of the excel file, currently does not support xls files!");
+							return;
+						}
+						if(luckyExcel) luckyExcel.destroy();
+						luckysheet.create({
+							container: 'luckyexcel', //容器的ID
+							data: exportJson.sheets,
+							title: exportJson.info.name, // 工作簿名称
+							lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
+							showtoolbar: false, // 是否显示工具栏
+							showinfobar: false, // 是否显示顶部信息栏
+							allowEdit: false, // 是否允许前台编辑
+							enableAddRow: false, // 允许增加行
+							enableAddCol: false, // 允许增加列
+							userInfo: false, // 右上角的用户信息展示样式
+							showRowBar: false, // 是否显示行号区域
+							showColumnBar: false, // 是否显示列号区域
+							sheetFormulaBar: false, // 是否显示公式栏
+							enableAddBackTop: false,//返回头部按钮
+						});
+						luckyExcel = luckysheet;
+					})
+		})
+	})
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/css/pluginsCss.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/plugins/plugins.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/css/luckysheet.css'));
+	$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', '/luckysheet/assets/iconfont/iconfont.css'));
+
+}
+
+let luckyExcel = null
+
+const luckyexcelVisible = ref(false)
 const luckyexcelCloseDialog = () => {
   luckyexcelVisible.value = false
-}
+}
 /**
  * 只读版luckyExcel 创建
  */
-const createROLuckyExcel = (files) => {
-	LuckyExcel.transformExcelToLucky(files, function (exportJson, luckysheetfile) {
-		if (exportJson.sheets == null || exportJson.sheets.length == 0) {
-		  alert("Failed to read the content of the excel file, currently does not support xls files!");
-		  return;
-		}
-		if(luckyExcel) luckyExcel.destroy();
-			nextTick(() => {
-				$(function () {
-					luckysheet.create({
-						container: 'luckyexcel', //容器的ID
-						data: exportJson.sheets,
-						title: exportJson.info.name, // 工作簿名称
-						lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
-						// allowCopy: false, // 是否允许拷贝
-						showtoolbar: false, // 是否显示工具栏
-						showinfobar: false, // 是否显示顶部信息栏
-						// showsheetbar: false, // 是否显示底部sheet页按钮
-						// showstatisticBar: false, // 是否显示底部计数栏
-						// sheetBottomConfig: false, // sheet页下方的添加行按钮和回到顶部按钮配置
-						allowEdit: false, // 是否允许前台编辑
-						enableAddRow: false, // 允许增加行
-						enableAddCol: false, // 允许增加列
-						userInfo: false, // 右上角的用户信息展示样式
-						showRowBar: false, // 是否显示行号区域
-						showColumnBar: false, // 是否显示列号区域
-						sheetFormulaBar: false, // 是否显示公式栏
-						enableAddBackTop: false,//返回头部按钮
-						// rowHeaderWidth: 0,//纵坐标
-						// columnHeaderHeight: 0,//横坐标
-						// showstatisticBarConfig: {
-						// count:false,
-						// view:false,
-						// zoom:false,
-						// },
-						// showsheetbarConfig: {
-						// add: false, //新增sheet
-						// menu: false, //sheet管理菜单
-						// sheet: false, //sheet页显示
-						// },
-						// hook: {
-						// cellMousedown:this.cellMousedown,//绑定鼠标事件
-						// },
-						// forceCalculation: true,//强制计算公式
-					});
-					luckyExcel = luckysheet;
-				});
-			});
-		
+const createROLuckyExcel = (files) => {
+	LuckyExcel.transformExcelToLucky(files, function (exportJson, luckysheetfile) {
+		if (exportJson.sheets == null || exportJson.sheets.length == 0) {
+		  alert("Failed to read the content of the excel file, currently does not support xls files!");
+		  return;
+		}
+		if(luckyExcel) luckyExcel.destroy();
+			nextTick(() => {
+				$(function () {
+					luckysheet.create({
+						container: 'luckyexcel', //容器的ID
+						data: exportJson.sheets,
+						title: exportJson.info.name, // 工作簿名称
+						lang: "zh", // 设定表格语言 国际化设置,允许设置表格的语言,支持中文("zh")和英文("en")
+						// allowCopy: false, // 是否允许拷贝
+						showtoolbar: false, // 是否显示工具栏
+						showinfobar: false, // 是否显示顶部信息栏
+						// showsheetbar: false, // 是否显示底部sheet页按钮
+						// showstatisticBar: false, // 是否显示底部计数栏
+						// sheetBottomConfig: false, // sheet页下方的添加行按钮和回到顶部按钮配置
+						allowEdit: false, // 是否允许前台编辑
+						enableAddRow: false, // 允许增加行
+						enableAddCol: false, // 允许增加列
+						userInfo: false, // 右上角的用户信息展示样式
+						showRowBar: false, // 是否显示行号区域
+						showColumnBar: false, // 是否显示列号区域
+						sheetFormulaBar: false, // 是否显示公式栏
+						enableAddBackTop: false,//返回头部按钮
+						// rowHeaderWidth: 0,//纵坐标
+						// columnHeaderHeight: 0,//横坐标
+						// showstatisticBarConfig: {
+						// count:false,
+						// view:false,
+						// zoom:false,
+						// },
+						// showsheetbarConfig: {
+						// add: false, //新增sheet
+						// menu: false, //sheet管理菜单
+						// sheet: false, //sheet页显示
+						// },
+						// hook: {
+						// cellMousedown:this.cellMousedown,//绑定鼠标事件
+						// },
+						// forceCalculation: true,//强制计算公式
+					});
+					luckyExcel = luckysheet;
+				});
+			});
+
 	})
 }
 </script>

+ 127 - 4
src/view/yunyin/renliziyuan/renyuanjibenziliao.vue

@@ -8,6 +8,7 @@
             <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 disabled type="primary" icon="Download" @click="exportToExcel" style="margin: 5px;float: right;">导出到Excel</el-button>
               <el-dialog v-model="dialogexportToExcel" disabled title="员工基本资料导出" width="50%">
               </el-dialog>
@@ -185,6 +186,67 @@
                 <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>
@@ -265,7 +327,7 @@ export default {
 import { Layout, LayoutSider, LayoutContent } from '@arco-design/web-vue';
 
 import {ref, reactive} from 'vue'
-import {getCustom, getDepartment, getProductData,getStaffInfo, getStaffList, ygjbzledit} from '@/api/yunyin/yunying'
+import {getCustom, getDepartment, getProductData,getStaffInfo, getStaffList, ygjbzledit,clockUpdate} from '@/api/yunyin/yunying'
 import {ElMessage} from "element-plus";
 defineOptions({name: 'Company'})
 // =========== 导出Excel表格 ===========
@@ -278,6 +340,8 @@ const dialogexportToExcel = ref(false)
 
 
 // =========== 获取左侧树侧形结构 ===========
+
+const AttendanceVisible=ref(false)
 const treeData = ref({})
 const _department_code = ref(null)
 const getDepartmentdata = async () => {
@@ -356,7 +420,22 @@ const _getStaffList = async ()=>{
     console.error(error);
   }
 }
-
+//点击【考勤建立】按钮
+const onAttendance = () => {
+	Attendancevalue.value['day']=22
+	const currentDate = new Date();
+	// 获取当前年份和月份
+	const year = currentDate.getFullYear();
+	const month = currentDate.getMonth() + 1;
+	// 如果月份小于 10,补零
+	const formattedMonth = month < 10 ? '0' + month : month;
+	console.log(year)
+	console.log(month)
+	
+	Attendancevalue.value['month']=year.toString() + formattedMonth.toString();
+	Attendancevalue.value['day']=22
+  AttendanceVisible.value=true
+};
 // 分页相关的响应式变量
 const page = ref(1)
 const total = ref(0)
@@ -378,15 +457,59 @@ const handleSizeChange = (val) => {
 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:'202403',
+	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}
+const closeDialog = () => {dialogFormVisible.value = false,AttendanceVisible.value=false}
 
 // 弹窗确定
 const enterDialog = async () => {

+ 6 - 4
src/view/yunyin/shengchanguanli/chengpinrucang.vue

@@ -39,7 +39,7 @@
               <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="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-column align="left" sortable label="单位" prop="jjcp_dw" width="120"/>
@@ -53,7 +53,7 @@
 			  <el-table-column align="left" sortable label="备注" prop="jjcp_desc" width="160"/>
 			  <el-table-column align="left" sortable label="客户编号" prop="客户编号" width="160"/>
 			  <el-table-column align="left" sortable label="客户名称" prop="Gd_客户名称" width="120"/>
-			  <el-table-column align="left" sortable label="最近入仓日期" prop="最近入仓日期" width="120"/>
+			  <el-table-column align="left" sortable label="最近入仓日期" prop="最近入仓日期" width="140"/>
 			  <el-table-column align="left" sortable label="机型备注" prop="机型备注" width="120"/>
 			  <el-table-column align="left" sortable label="创建用户" prop="Sys_id" width="120"/>
 			  <el-table-column align="left" sortable label="创建时间" prop="sys_rq" width="160"/>
@@ -493,7 +493,9 @@ 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'
 })
@@ -945,7 +947,7 @@ const enterDialog = async () => {
 const updateDetailData = async() => {
   const restoredData = {
    UniqId: lastCellValue, 
-   Sys_id:'[1035/刘晓庆]',
+   Sys_id:sys_id,
    入仓类型:formData.value.入仓类型,
    仓库编号:formData.value.仓库编号,
    仓库名称:formData.value.仓库名称,

+ 177 - 177
src/view/yunyin/shengchanguanli/gongdanshengchan.vue

@@ -257,7 +257,7 @@
                         @selection-change="handleSelectionChange" :show-overflow-tooltip="true">
 
                 <template v-for="item in tableFields[currentNode]">
-                  <el-table-column :align="item.align" :label="item.title"  :prop="item.prop" :width="item.width" />
+                  <el-table-column :align="item.align" :label="item.title"  :prop="item.prop" :width="item.width" :sortable="item.sortable"  />
                 </template>
               </el-table>
               <!-- 分页 -->
@@ -280,20 +280,20 @@
                           :cell-style="{ padding: '0px' }" :header-row-style="{ height: '20px' }"
                           :header-cell-style="{ padding: '0px' }" highlight-current-row="true"
                           style="width: 100%;height: 42vh" border tooltip-effect="dark" :data="gytableData" row-key="ID" @selection-change="handleSelectionChange">
-                  <el-table-column align="left"  label="工单编号" prop="工单编号"  width="90"/>
-                  <el-table-column align="left"  label="重点工序" prop="重点工序"  width="90"/>
-                  <el-table-column align="left"  label="印件工序及名称" prop="印件工序及名称"  width="500"/>
-                  <el-table-column align="left"  label="工序备注" prop="工序备注"  width="150"/>
-                  <el-table-column align="left"  label="机组" prop="机组"  width="80"/>
-                  <el-table-column align="left"  label="小时产能" prop="小时产能"  width="90"/>
-                  <el-table-column align="left"  label="生产工时" prop="生产工时"  width="90"/>
-                  <el-table-column align="left"  label="辅助工时" prop="辅助工时"  width="90"/>
-                  <el-table-column align="left"  label="印刷方式" prop="印刷方式"  width="90"/>
-                  <el-table-column align="left"  label="版距" prop="版距"  width="70"/>
-                  <el-table-column align="left"  label="创建用户" prop="创建用户"  width="100"/>
-                  <el-table-column align="left"  label="创建时间" prop="创建时间"  width="110"/>
-                  <el-table-column align="left"  label="修改时间" prop="修改时间"  width="110"/>
-                  <el-table-column align="left"  label="UNIQID" prop="UNIQID"  width="90"/>
+                  <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="500"/>
+                  <el-table-column align="left" sortable label="工序备注" prop="工序备注"  width="150"/>
+                  <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="100"/>
+                  <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-tab-pane>
 
@@ -303,22 +303,22 @@
                           :header-cell-style="{ padding: '0px' }" :show-overflow-tooltip="true"
                           :highlight-current-row="true"
                           style="width: 100%;height: 42vh" border tooltip-effect="dark" :data="yjtableData" row-key="ID" @selection-change="handleSelectionChange">
-                  <el-table-column align="left"  label="工单编号" prop="工单编号"  width="90"/>
-                  <el-table-column align="left"  label="印件号" prop="印件号"  width="70"/>
-                  <el-table-column align="left"  label="印件代号" prop="印件代号"  width="100"/>
-                  <el-table-column align="left"  label="印件名称" prop="印件名称"  width="240"/>
-                  <el-table-column align="left"  label="纸张名称" prop="纸张名称"  width="230"/>
-                  <el-table-column align="left"  label="投料规格" prop="投料规格"  width="100"/>
-                  <el-table-column align="left"  label="成品数量" prop="成品数量"  width="90"/>
-                  <el-table-column align="left"  label="实际投料" prop="实际投料"  width="90"/>
-                  <el-table-column align="left"  label="投料单位" prop="投料单位"  width="85"/>
-                  <el-table-column align="left"  label="平张投料" prop="平张投料"  width="90"/>
-                  <el-table-column align="left"  label="联数" prop="联数"  width="70"/>
-                  <el-table-column align="left"  label="开数" prop="开数"  width="70"/>
-                  <el-table-column align="left"  label="创建用户" prop="创建用户"  width="110"/>
-                  <el-table-column align="left"  label="创建时间" prop="创建时间"  width="110"/>
-                  <el-table-column align="left"  label="修改时间" prop="修改时间"  width="110"/>
-                  <el-table-column align="left"  label="UNIQID" prop="UNIQID"  width="90"/>
+                  <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="240"/>
+                  <el-table-column align="left" sortable label="纸张名称" prop="纸张名称"  width="230"/>
+                  <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="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-tab-pane>
             </el-tabs>
@@ -332,7 +332,7 @@
                         :cell-class-name="pczc_planUsageCellClass"
                         style="width: 100%;height: 42vh" border tooltip-effect="dark" :data="bottomData" row-key="ID" @selection-change="handleSelectionChange">
                 <template v-for="item in bottomTableF[currentNode]">
-                  <el-table-column :align="item.align" :label="item.title"  :prop="item.prop" :width="item.width" />
+                  <el-table-column :align="item.align" :label="item.title"  :prop="item.prop" :width="item.width" :sortable="item.sortable" />
                 </template>
               </el-table>
             </div>
@@ -347,25 +347,25 @@
                 <!-- 排程列表-->
                 <el-table-column type="selection" width="30" />
                 <template v-for="item in [
-                  { align:'left', title: '工单编号', prop: '工单编号', width: 85  },
-                  { align:'left', title: '销售订单号', prop: '销售订单号', width: 200  },
-                  { align:'left', title: '印件名称', prop: '印件名称', width: 320  },
-                  { align:'left', title: '印件工序及名称', prop: '印件工序及名称', width: 200  },
-                  { align:'left', title: '工序产量', prop: '工序产量', width: 90  },
-                  { align:'left', title: '已完成产量', prop: '已完成产量', width: 100  },
-                  { align:'left', title: '产品名称', prop: '产品名称', width: 320  },
-                  { align:'left', title: '订单数量', prop: '订单数量', width: 120  },
-                  { align:'left', title: '计量单位', prop: '计量单位', width: 120  },
-                  { align:'left', title: '交货日期', prop: '交货日期', width: 115  },
-                  { align:'left', title: '产品代号', prop: '产品代号', width: 140  },
-                  { align:'left', title: '工序名称', prop: '工序名称', width: 120  },
-                  { align:'left', title: '机组', prop: '机组', width: 90  },
-                  { align:'left', title: '设备编号', prop: '设备编号', width: 90  },
-                  { align:'left', title: 'GYUID', prop: 'GYUID', width: 90  },
-                  { align:'left', title: '印件号', prop: 'yjno', width: 90  },
-                  { align:'left', title: '工序号', prop: 'gxh', width: 90  },
+                  { align:'left', title: '工单编号', prop: '工单编号', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '销售订单号', prop: '销售订单号', width: 200  , sortable: 'sortable', },
+                  { align:'left', title: '印件名称', prop: '印件名称', width: 320  , sortable: 'sortable', },
+                  { align:'left', title: '印件工序及名称', prop: '印件工序及名称', width: 200  , sortable: 'sortable', },
+                  { align:'left', title: '工序产量', prop: '工序产量', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '已完成产量', prop: '已完成产量', width: 120  , sortable: 'sortable', },
+                  { align:'left', title: '产品名称', prop: '产品名称', width: 320  , sortable: 'sortable', },
+                  { align:'left', title: '订单数量', prop: '订单数量', width: 120  , sortable: 'sortable', },
+                  { align:'left', title: '计量单位', prop: '计量单位', width: 120  , sortable: 'sortable', },
+                  { align:'left', title: '交货日期', prop: '交货日期', width: 115  , sortable: 'sortable', },
+                  { align:'left', title: '产品代号', prop: '产品代号', width: 140  , sortable: 'sortable', },
+                  { align:'left', title: '工序名称', prop: '工序名称', width: 120  , sortable: 'sortable', },
+                  { align:'left', title: '机组', prop: '机组', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '设备编号', prop: '设备编号', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: 'GYUID', prop: 'GYUID', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '印件号', prop: 'yjno', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '工序号', prop: 'gxh', width: 110  , sortable: 'sortable', },
               ]">
-                  <el-table-column :align="item.align" :label="item.title" :prop="item.prop" :width="item.width" />
+                  <el-table-column :align="item.align" :label="item.title" :prop="item.prop" :width="item.width" :sortable="item.sortable" />
                 </template>
               </el-table>
               <!-- 制程列表-->
@@ -376,35 +376,35 @@
                         style="width: 100%;height: 49vh;margin-top: 10px" border tooltip-effect="dark" :data="chejianfuData" row-key="ID" @selection-change="ZP_handleChange">
                 <el-table-column type="selection" width="30" />
                 <template v-for="item in [
-                  { align:'left', title: '工单编号', prop: '工单编号', width: 85  },
-                  { align:'left', title: '销售订单号', prop: '销售订单号', width: 200  },
-                  { align:'left', title: '印件名称', prop: '印件名称', width: 320  },
-                  { align:'left', title: '印件工序及名称', prop: '印件工序及名称', width: 200  },
-                  { align:'left', title: '工序产量', prop: '工序产量', width: 90  },
-                  { align:'left', title: '已完成产量', prop: '已完成产量', width: 100  },
-                  { align:'left', title: '小时产能', prop: '小时产能', width: 90  },
-                  { align:'left', title: '产能系数', prop: '产能系数', width: 90  },
-                  { align:'left', title: '生产工时', prop: '生产工时', width: 90  },
-                  { align:'left', title: '辅助工时', prop: '辅助工时', width: 90  },
-                  { align:'left', title: '最早开工时间', prop: '最早开工时间', width: 160  },
-                  { align:'left', title: '计划开工时间', prop: '计划开工时间', width: 160  },
-                  { align:'left', title: '计划完工时间', prop: '计划完工时间', width: 160  },
-                  { align:'left', title: '班次安排', prop: '班次安排', width: 90  },
-                  { align:'left', title: '排单备注', prop: '排单备注', width: 120  },
-                  { align:'left', title: '产品名称', prop: '产品名称', width: 180  },
-                  { align:'left', title: '订单数量', prop: '订单数量', width: 120  },
-                  { align:'left', title: '计量单位', prop: '计量单位', width: 120  },
-                  { align:'left', title: '交货日期', prop: '交货日期', width: 115  },
-                  { align:'left', title: '优先次序', prop: '优先次序', width: 90  },
-                  { align:'left', title: '产品代号', prop: '产品代号', width: 100  },
-                  { align:'left', title: '工序名称', prop: '工序名称', width: 120  },
-                  { align:'left', title: '设备编号', prop: '设备编号', width: 90  },
-                  { align:'left', title: '车间名称', prop: '车间名称', width: 90  },
-                  { align:'left', title: 'GYUID', prop: 'GYUID', width: 90  },
-                  { align:'left', title: '印件号', prop: 'yjno', width: 90  },
-                  { align:'left', title: '工序号', prop: 'gxh', width: 90  },
+                  { align:'left', title: '工单编号', prop: '工单编号', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '销售订单号', prop: '销售订单号', width: 200  , sortable: 'sortable', },
+                  { align:'left', title: '印件名称', prop: '印件名称', width: 320  , sortable: 'sortable', },
+                  { align:'left', title: '印件工序及名称', prop: '印件工序及名称', width: 200  , sortable: 'sortable', },
+                  { align:'left', title: '工序产量', prop: '工序产量', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '已完成产量', prop: '已完成产量', width: 120  , sortable: 'sortable', },
+                  { align:'left', title: '小时产能', prop: '小时产能', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '产能系数', prop: '产能系数', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '生产工时', prop: '生产工时', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '辅助工时', prop: '辅助工时', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '最早开工时间', prop: '最早开工时间', width: 160  , sortable: 'sortable', },
+                  { align:'left', title: '计划开工时间', prop: '计划开工时间', width: 160  , sortable: 'sortable', },
+                  { align:'left', title: '计划完工时间', prop: '计划完工时间', width: 160  , sortable: 'sortable', },
+                  { align:'left', title: '班次安排', prop: '班次安排', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '排单备注', prop: '排单备注', width: 120  , sortable: 'sortable', },
+                  { align:'left', title: '产品名称', prop: '产品名称', width: 180  , sortable: 'sortable', },
+                  { align:'left', title: '订单数量', prop: '订单数量', width: 120  , sortable: 'sortable', },
+                  { align:'left', title: '计量单位', prop: '计量单位', width: 120  , sortable: 'sortable', },
+                  { align:'left', title: '交货日期', prop: '交货日期', width: 115  , sortable: 'sortable', },
+                  { align:'left', title: '优先次序', prop: '优先次序', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '产品代号', prop: '产品代号', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '工序名称', prop: '工序名称', width: 120  , sortable: 'sortable', },
+                  { align:'left', title: '设备编号', prop: '设备编号', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '车间名称', prop: '车间名称', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: 'GYUID', prop: 'GYUID', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '印件号', prop: 'yjno', width: 110  , sortable: 'sortable', },
+                  { align:'left', title: '工序号', prop: 'gxh', width: 110  , sortable: 'sortable', },
               ]">
-                  <el-table-column :align="item.align" :label="item.title" :prop="item.prop" :width="item.width" />
+                  <el-table-column :align="item.align" :label="item.title" :prop="item.prop" :width="item.width" :sortable="item.sortable" />
                 </template>
               </el-table>
             </div>
@@ -496,119 +496,119 @@ const sctreeData = ref([
 //上方表格
 const tableFields = ref({
   "计划中": [
-    { title:'获取状态', prop: 'statusColumn', width: 80, align:'center'},
-    { title:'生产分类', prop: '生产分类', width: 80, align:'left', },
-    { title: '工单编号', prop: '工单编号', width: 80, align:'center', },
-    { title: '产品代号', prop: '产品代号', width: 90, align:'center', },
-    { title: '产品名称', prop: '产品名称', width: 280, align:'left', },
-    { title: '接单日期', prop: '接单日期', width: 110, align:'left', },
-    { title: '交货日期', prop: '交货日期', width: 110, align:'left', },
-    { title: '订单数量', prop: '订单数量', width: 80, align:'left', },
-    { title: '计量单位', prop: '计量单位', width: 80, align:'center', },
-    { title: '客户名称', prop: '客户名称', width: 200, align:'left', },
-    { title: '客户编号', prop: '客户编号', width: 80, align:'center', },
-    { title: '备注', prop: '备注', width: 230, align:'left', },
-    { title: '客户料号', prop: '客户料号', width: 120, align:'left', },
-    { title: '创建用户', prop: '创建用户', width: 110, align:'left', },
-    { title: '创建时间', prop: '创建时间', width: 110, align:'left', },
-    { title: '修改时间', prop: '修改时间', width: 110, align:'left', },
-    { title: 'UNIQID', prop: 'UNIQID', width: 80  , align:'left', },
-    { title: '投料率', prop: '投料率', width: 100, align:'left', },
-    { title: '销售订单号', prop: '销售订单号', width: 120, align:'left', },
+    { title:'获取状态', prop: 'statusColumn', width: 100, align:'center',sortable: 'sortable', },
+    { title:'生产分类', prop: '生产分类', width: 100, align:'left',sortable: 'sortable', },
+    { title: '工单编号', prop: '工单编号', width: 100, align:'center', sortable: 'sortable', },
+    { title: '产品代号', prop: '产品代号', width: 100, align:'center', sortable: 'sortable', },
+    { title: '产品名称', prop: '产品名称', width: 280, align:'left', sortable: 'sortable', },
+    { title: '接单日期', prop: '接单日期', width: 110, align:'left', sortable: 'sortable', },
+    { title: '交货日期', prop: '交货日期', width: 110, align:'left', sortable: 'sortable', },
+    { title: '订单数量', prop: '订单数量', width: 100, align:'left', sortable: 'sortable', },
+    { title: '计量单位', prop: '计量单位', width: 100, align:'center', sortable: 'sortable', },
+    { title: '客户名称', prop: '客户名称', width: 200, align:'left', sortable: 'sortable', },
+    { title: '客户编号', prop: '客户编号', width: 100, align:'center', sortable: 'sortable', },
+    { title: '备注', prop: '备注', width: 230, align:'left', sortable: 'sortable', },
+    { title: '客户料号', prop: '客户料号', width: 120, align:'left', sortable: 'sortable', },
+    { title: '创建用户', prop: '创建用户', width: 110, align:'left', sortable: 'sortable', },
+    { title: '创建时间', prop: '创建时间', width: 110, align:'left', sortable: 'sortable', },
+    { title: '修改时间', prop: '修改时间', width: 110, align:'left', sortable: 'sortable', },
+    { title: 'UNIQID', prop: 'UNIQID', width: 100  , align:'left', sortable: 'sortable', },
+    { title: '投料率', prop: '投料率', width: 100, align:'left', sortable: 'sortable', },
+    { title: '销售订单号', prop: '销售订单号', width: 120, align:'left', sortable: 'sortable', },
   ],
   "排程中": [
     // { title: '最早开工时间', prop: '最早开工时间', width: 120, align:'left', },
-    { title: '工单编号', prop: '工单编号', width: 80, align:'left', },
-    { title: '产品代号', prop: '产品代号', width: 90, align:'left', },
-    { title: '产品名称', prop: '产品名称', width: 340, align:'left', },
-    { title: '接单日期', prop: '接单日期', width: 110, align:'left', },
-    { title: '交货日期', prop: '交货日期', width: 110, align:'left', },
-    { title: '订单数量', prop: '订单数量', width: 80, align:'left', },
-    { title: '计量单位', prop: '计量单位', width: 80, align:'left', },
-    { title: '销售订单号', prop: '销售订单号', width: 200, align:'left', },
-    // { title: '排程类型', prop: '排程类型', width: 120, align:'left', },
-    { title: '客户编号', prop: '客户编号', width: 120, align:'left', },
-    { title: '客户名称', prop: '客户名称', width: 230, align:'left', },
-    { title: '创建用户', prop: '创建用户', width: 120, align:'left', },
-    // { title: 'GDUID', prop: 'GDUID', width: 120, align:'left', },
-    { title: 'GYUID', prop: 'GYUID', width: 100, align:'left', },
+    { title: '工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '产品代号', prop: '产品代号', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '产品名称', prop: '产品名称', width: 340, align:'left',  sortable: 'sortable', },
+    { title: '接单日期', prop: '接单日期', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '交货日期', prop: '交货日期', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '订单数量', prop: '订单数量', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '计量单位', prop: '计量单位', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '销售订单号', prop: '销售订单号', width: 200, align:'left',  sortable: 'sortable', },
+    // { title: '排程类型', prop: '排程类型', width: 120, align:'left',  sortable: 'sortable', },
+    { title: '客户编号', prop: '客户编号', width: 120, align:'left',  sortable: 'sortable', },
+    { title: '客户名称', prop: '客户名称', width: 230, align:'left',  sortable: 'sortable', },
+    { title: '创建用户', prop: '创建用户', width: 120, align:'left',  sortable: 'sortable', },
+    // { title: 'GDUID', prop: 'GDUID', width: 120, align:'left',  sortable: 'sortable', },
+    { title: 'GYUID', prop: 'GYUID', width: 100, align:'left',  sortable: 'sortable', },
   ],
   "制程中": [
-    // { title: '最早开工时间', prop: '最早开工时间', width: 120, align:'left', },
-    { title: '工单编号', prop: '工单编号', width: 80, align:'left', },
-    { title: '产品代号', prop: '产品代号', width: 90, align:'left', },
-    { title: '产品名称', prop: '产品名称', width: 340, align:'left', },
-    { title: '接单日期', prop: '接单日期', width: 110, align:'left', },
-    { title: '交货日期', prop: '交货日期', width: 110, align:'left', },
-    { title: '订单数量', prop: '订单数量', width: 80, align:'left', },
-    { title: '计量单位', prop: '计量单位', width: 80, align:'left', },
-    { title: '销售订单号', prop: '销售订单号', width: 200, align:'left', },
-    // { title: '排程类型', prop: '排程类型', width: 120, align:'left', },
-    { title: '客户编号', prop: '客户编号', width: 120, align:'left', },
-    { title: '客户名称', prop: '客户名称', width: 120, align:'left', },
-    { title: '客户料号', prop: '客户料号', width: 160, align:'left', },
-    // { title: 'GDUID', prop: 'GDUID', width: 120, align:'left', },
-    { title: 'GYUID', prop: 'GYUID', width: 100, align:'left', },
+    // { title: '最早开工时间', prop: '最早开工时间', width: 120, align:'left',  sortable: 'sortable', },
+    { title: '工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '产品代号', prop: '产品代号', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '产品名称', prop: '产品名称', width: 340, align:'left',  sortable: 'sortable', },
+    { title: '接单日期', prop: '接单日期', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '交货日期', prop: '交货日期', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '订单数量', prop: '订单数量', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '计量单位', prop: '计量单位', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '销售订单号', prop: '销售订单号', width: 200, align:'left',  sortable: 'sortable', },
+    // { title: '排程类型', prop: '排程类型', width: 120, align:'left',  sortable: 'sortable', },
+    { title: '客户编号', prop: '客户编号', width: 120, align:'left',  sortable: 'sortable', },
+    { title: '客户名称', prop: '客户名称', width: 120, align:'left',  sortable: 'sortable', },
+    { title: '客户料号', prop: '客户料号', width: 160, align:'left',  sortable: 'sortable', },
+    // { title: 'GDUID', prop: 'GDUID', width: 120, align:'left',  sortable: 'sortable', },
+    { title: 'GYUID', prop: 'GYUID', width: 100, align:'left',  sortable: 'sortable', },
   ],
   "已完工": [
-    { title: '工单编号', prop: '工单编号', width: 80, align:'left', },
-    { title: '产品代号', prop: '产品代号', width: 110, align:'left', },
-    { title: '产品名称', prop: '产品名称', width: 340, align:'left', },
-    { title: '接单日期', prop: '接单日期', width: 110, align:'left', },
-    { title: '交货日期', prop: '交货日期', width: 110, align:'left', },
-    { title: '订单数量', prop: '订单数量', width: 80, align:'left', },
-    { title: '计量单位', prop: '计量单位', width: 80, align:'left', },
-    { title: '销售订单号', prop: '销售订单号', width: 120, align:'left', },
-    { title: '客户编号', prop: '客户编号', width: 80, align:'left', },
-    { title: '客户名称', prop: '客户名称', width: 120, align:'left', },
-    { title: '客户料号', prop: '客户料号', width: 120, align:'left', },
-    // { title: '排程类型', prop: '排程类型', width: 120, align:'left', },
-    { title: 'GDUID', prop: 'GDUID', width: 80, align:'left', },
+    { title: '工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '产品代号', prop: '产品代号', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '产品名称', prop: '产品名称', width: 340, align:'left',  sortable: 'sortable', },
+    { title: '接单日期', prop: '接单日期', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '交货日期', prop: '交货日期', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '订单数量', prop: '订单数量', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '计量单位', prop: '计量单位', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '销售订单号', prop: '销售订单号', width: 120, align:'left',  sortable: 'sortable', },
+    { title: '客户编号', prop: '客户编号', width: 110, align:'left',  sortable: 'sortable', },
+    { title: '客户名称', prop: '客户名称', width: 120, align:'left',  sortable: 'sortable', },
+    { title: '客户料号', prop: '客户料号', width: 120, align:'left',  sortable: 'sortable', },
+    // { title: '排程类型', prop: '排程类型', width: 120, align:'left',  sortable: 'sortable', },
+    { title: 'GDUID', prop: 'GDUID', width: 110, align:'left',  sortable: 'sortable', },
   ]
 })
 //排程中、制程中下方表格列表
 const bottomTableF = ref({
   "排程中": [
-    { title:'工单编号', prop: '工单编号', width: 90, align:'left', },
-    { title:'印件工序及名称', prop: '印件工序及名称', width: 160, align:'left', },
-    { title:'机组', prop: '机组', width: 120, align:'left', },
-    { title:'设备编号', prop: '设备编号', width: 120, align:'left', },
-    { title:'工序产量', prop: '工序产量', width: 120, align:'left', },
-    { title:'已完成产量', prop: '产量', width: 120, align:'left', },
-    { title:'剩余产量', prop: '剩余产量', width: 120, align:'left', },
-    { title:'小时产能', prop: '小时产能', width: 120, align:'left', },
-    { title:'产能系数', prop: '产能系数', width: 120, align:'left', },
-    { title:'生产工时', prop: '生产工时', width: 120, align:'left', },
-    { title:'辅助工时', prop: '辅助工时', width: 120, align:'left', },
-    { title:'最早开工时间', prop: '最早开工时间', width: 120, align:'left', },
-    { title:'计划开工时间', prop: '计划开工时间', width: 120, align:'left', },
-    { title:'计划完工时间', prop: '计划完工时间', width: 120, align:'left', },
-    { title:'班次安排', prop: '班次安排', width: 120, align:'left', },
-    { title:'设备名称', prop: '设备名称', width: 120, align:'left', },
-    { title:'排单备注', prop: '排单备注', width: 120, align:'left', },
-    { title:'工序完工', prop: '工序完工', width: 160, align:'left', },
-    { title:'UNIQID', prop: 'UNIQID', width: 120, align:'left', },
+    { title:'工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable', },
+    { title:'印件工序及名称', prop: '印件工序及名称', width: 160, align:'left',  sortable: 'sortable', },
+    { title:'机组', prop: '机组', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'设备编号', prop: '设备编号', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'工序产量', prop: '工序产量', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'已完成产量', prop: '产量', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'剩余产量', prop: '剩余产量', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'小时产能', prop: '小时产能', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'产能系数', prop: '产能系数', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'生产工时', prop: '生产工时', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'辅助工时', prop: '辅助工时', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'最早开工时间', prop: '最早开工时间', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'计划开工时间', prop: '计划开工时间', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'计划完工时间', prop: '计划完工时间', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'班次安排', prop: '班次安排', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'设备名称', prop: '设备名称', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'排单备注', prop: '排单备注', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'工序完工', prop: '工序完工', width: 160, align:'left',  sortable: 'sortable', },
+    { title:'UNIQID', prop: 'UNIQID', width: 120, align:'left',  sortable: 'sortable', },
   ],
   "制程中": [
-    { title:'工单编号', prop: '工单编号', width: 90, align:'left', },
-    { title:'印件工序及名称', prop: '印件工序及名称', width: 160, align:'left', },
-    { title:'机组', prop: '机组', width: 120, align:'left', },
-    { title:'设备编号', prop: '设备编号', width: 120, align:'left', },
-    { title:'工序产量', prop: '工序产量', width: 120, align:'left', },
-    { title:'已完成产量', prop: '产量', width: 120, align:'left', },
-    { title:'剩余产量', prop: '剩余产量', width: 120, align:'left', },
-    { title:'小时产能', prop: '小时产能', width: 120, align:'left', },
-    { title:'产能系数', prop: '产能系数', width: 120, align:'left', },
-    { title:'生产工时', prop: '生产工时', width: 120, align:'left', },
-    { title:'辅助工时', prop: '辅助工时', width: 120, align:'left', },
-    { title:'最早开工时间', prop: '最早开工时间', width: 120, align:'left', },
-    { title:'计划开工时间', prop: '计划开工时间', width: 120, align:'left', },
-    { title:'计划完工时间', prop: '计划完工时间', width: 120, align:'left', },
-    { title:'班次安排', prop: '班次安排', width: 120, align:'left', },
-    { title:'设备名称', prop: '设备名称', width: 120, align:'left', },
-    { title:'排单备注', prop: '排单备注', width: 120, align:'left', },
-    { title:'工序完工', prop: '工序完工', width: 160, align:'left', },
-    { title:'UNIQID', prop: 'UNIQID', width: 120, align:'left', },
+    { title:'工单编号', prop: '工单编号', width: 110, align:'left',  sortable: 'sortable', },
+    { title:'印件工序及名称', prop: '印件工序及名称', width: 160, align:'left',  sortable: 'sortable', },
+    { title:'机组', prop: '机组', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'设备编号', prop: '设备编号', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'工序产量', prop: '工序产量', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'已完成产量', prop: '产量', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'剩余产量', prop: '剩余产量', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'小时产能', prop: '小时产能', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'产能系数', prop: '产能系数', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'生产工时', prop: '生产工时', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'辅助工时', prop: '辅助工时', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'最早开工时间', prop: '最早开工时间', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'计划开工时间', prop: '计划开工时间', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'计划完工时间', prop: '计划完工时间', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'班次安排', prop: '班次安排', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'设备名称', prop: '设备名称', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'排单备注', prop: '排单备注', width: 120, align:'left',  sortable: 'sortable', },
+    { title:'工序完工', prop: '工序完工', width: 160, align:'left',  sortable: 'sortable', },
+    { title:'UNIQID', prop: 'UNIQID', width: 120, align:'left',  sortable: 'sortable', },
   ],
 })
 //左侧左边栏

+ 133 - 60
src/view/yunyin/shengchanguanli/gongdanziliao.vue

@@ -114,7 +114,10 @@
           <el-dialog v-model="onyycpzllist" title="获取工单资料">
             <div style=" padding: 0px; align-items: center;">
               <el-form-item label="工单编号" prop="processName" class="mab">
-                <el-input v-model="yycpzlformData['gdbh']" ref="fanganRef" @click="yycpzlProductValue({ code: 'Tab'})" @keydown="yycpzlProductValue" style="width: 23%;" />
+<!--                @click="yycpzlProductValue({ code: 'Tab'})"-->
+                <el-input v-model="yycpzlformData['gdbh']" ref="fanganRef"  @keydown="yycpzlProductValue" style="width: 23%;" />
+<!--                <el-button type="primary" @click="yycppshuaxin_click" style="margin-left: 10px">刷新</el-button>-->
+                &nbsp;&nbsp;<span style="color:red">(模糊搜索工单编号或名称)</span>
               </el-form-item>
               <el-form-item label="客户代号" prop="processName" class="mab">
                 <el-input v-model="yycpzlformData['khdh']" disabled style="width: 23%;" />
@@ -130,7 +133,7 @@
                 <el-checkbox disabled v-model="yycpzlformData['yjzl']">获取印件资料</el-checkbox>
                 <el-checkbox disabled v-model="yycpzlformData['gyap']">获取工艺安排</el-checkbox>
                 <el-form-item label="" prop="processName" class="mab" label-width="100" >
-                  <el-input v-model="yycpzlformData['fangan']" />
+                  <el-input v-model="yycpzlformData['fangan']" @keydown="fanganProductValue" />
                 </el-form-item>
               </el-form-item>
             </div>
@@ -138,8 +141,35 @@
               <el-button @click="yycpzlhandleCancel">放弃</el-button>
               <el-button type="primary" @click="yycpzlhandleConfirm">执行</el-button>
             </div>
+            <el-table ref="multipleTable"
+                                            :show-overflow-tooltip="true"
+                                            :row-style="{ height: '0px' }"
+                                            :cell-style="{ padding: '0px' }"
+                                            :header-row-style="{ height: '0px' }"
+                                            :header-cell-style="{ padding: '0px' }"
+                                            @row-click="yyzltableRowClick"
+                                            highlight-current-row="true"
+                                            style="width: 100%;height: 30vh;" border tooltip-effect="dark"
+                                            :data="yyzltableData" row-key="ID">
+                            <el-table-column align="left" label="工单编号" width="100">
+                              <template v-slot="{ row }"><span>{{ row.工单编号 }}</span></template>
+                            </el-table-column>
+                            <el-table-column align="left" label="客户编号" width="100">
+                              <template v-slot="{ row }"><span>{{ row.客户编号 }}</span></template>
+                            </el-table-column>
+                            <el-table-column align="left" label="客户名称" width="120">
+                              <template v-slot="{ row }"><span>{{ row.客户名称 }}</span></template>
+                            </el-table-column>
+                            <el-table-column align="left" label="产品编号" width="100">
+                              <template v-slot="{ row }"><span>{{ row.产品编号 }}</span></template>
+                            </el-table-column>
+                            <el-table-column align="left" label="产品名称">
+                              <template v-slot="{ row }"><span>{{ row.产品名称 }}</span></template>
+                            </el-table-column>
+                          </el-table>
           </el-dialog>
 
+
           <el-dialog v-model="openFangan" title="请选择方案" style="width: 300px;" destroy-on-close>
             <el-tree
                 :data="WorkOrderDetailCopesFangan"
@@ -435,25 +465,25 @@
                         :show-overflow-tooltip="true">
 <!--                <el-table-column align="center" type="selection" width="30"/>-->
                 <el-table-column align="left" label="获取状态"   prop="status"  width="81" />
-                <el-table-column align="left" label="工单编号"   prop="工单编号"  width="81" />
-                <el-table-column align="left" label="生产分类"   prop="生产分类" width="81" />
-                <el-table-column align="left" label="销售订单号" prop="销售订单号" width="100" />
-                <el-table-column align="left" label="产品代号"   prop="产品代号"  width="99" />
-                <el-table-column align="left" label="产品名称"   prop="产品名称" width="370" />
-                <el-table-column align="left" label="订单数量"   prop="订单数量" width="100" />
-                <el-table-column align="left" label="单位"       prop="单位"   width="54"/>
-                <el-table-column align="left" label="折合大箱"   prop="折合大箱" width="81" />
-                <el-table-column align="left" label="投料率"     prop="投料率" width="80" />
-                <el-table-column align="left" label="平均合格率"  prop="平均合格率" width="95" />
-                <el-table-column align="left" label="开单日期"    prop="开单日期" width="98" />
-                <el-table-column align="left" label="交货日期"    prop="交货日期" width="98" />
-                <el-table-column align="left" label="工单类型"    prop="工单类型" width="98" />
-                <el-table-column align="left" label="工单状态"    prop="工单状态" width="85" />
-                <el-table-column align="left" label="当前生产工序" prop="当前生产工序" width="110" />
-                <el-table-column align="left" label="产量提交时间" prop="产量提交时间" width="110" />
-                <el-table-column align="left" label="建档用户"    prop="建档用户" width="130" />
-                <el-table-column align="left" label="建档时间"    prop="建档时间" width="115" />
-                <el-table-column align="left" label="更新时间"    prop="更新时间" width="160" />
+                <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" />
+                <el-table-column align="left" sortable label="订单数量"   prop="订单数量" width="110" />
+                <el-table-column align="left" sortable label="单位"       prop="单位"   width="100"/>
+                <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="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" />
+                <el-table-column align="left" sortable label="建档时间"    prop="建档时间" width="115" />
+                <el-table-column align="left" sortable label="更新时间"    prop="更新时间" width="160" />
               </el-table>
               <!-- 分页 -->
               <div class="gva-pagination">
@@ -481,18 +511,18 @@
                           @selection-change="selectionChange($event, '印件资料')"
                           style="width: 100%;height: 36vh" border tooltip-effect="dark" :data="yjtableData" row-key="ID">
                   <el-table-column type="selection" width="30" />
-                  <el-table-column align="left" label="印件号" prop="印件号"  width="70"/>
-                  <el-table-column align="left" label="印件代号" prop="印件代号"  width="98"/>
-                  <el-table-column align="left" label="印件名称" prop="印件名称"  width="340"/>
-                  <el-table-column align="left" label="纸张代号" prop="纸张代号"  width="98"/>
-                  <el-table-column align="left" label="纸张名称" prop="纸张名称"  width="340"/>
-                  <el-table-column align="left" label="投料规格" prop="投料规格"  width="90"/>
-                  <el-table-column align="left" label="平张投料" prop="平张投料"  width="90"/>
-                  <el-table-column align="left" label="开料规格" prop="开料规格"  width="90"/>
-                  <el-table-column align="left" label="开数*联数" prop="开数*联数"  width="90"/>
-                  <el-table-column align="left" label="建档用户" prop="建档用户"  width="100"/>
-                  <el-table-column align="left" label="建档时间" prop="建档时间"  width="160"/>
-                  <el-table-column align="left" label="更新时间" prop="更新时间"  width="160"/>
+                  <el-table-column align="left" sortable label="印件号" prop="印件号"  width="100"/>
+                  <el-table-column align="left" sortable label="印件代号" prop="印件代号"  width="110"/>
+                  <el-table-column align="left" sortable label="印件名称" prop="印件名称"  width="340"/>
+                  <el-table-column align="left" sortable label="纸张代号" prop="纸张代号"  width="110"/>
+                  <el-table-column align="left" sortable label="纸张名称" prop="纸张名称"  width="340"/>
+                  <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="160"/>
+                  <el-table-column align="left" sortable label="更新时间" prop="更新时间"  width="160"/>
                 </el-table>
               </el-tab-pane>
 
@@ -748,6 +778,7 @@
                         <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-input v-model="add_gdscgdformData['重点工单']"  style="width: 110px;"  id="重点工单"  @keydown="add_gdzlent($event, '备注', '重点工单', '开单日期')" />-->
                     </el-form-item>
@@ -1051,7 +1082,7 @@
                     <el-input disabled v-model="add_yjzlformdata.万小张" style="width: 80px;"/>
                   </el-form-item>
                   <el-form-item label="纸张规格:" class="mab" prop="keyOrder">
-                    <el-input disabled v-model="add_yjzlformdata.tlgg" style="width: 240px;"/>
+                    <el-input  v-model="add_yjzlformdata.tlgg" style="width: 240px;"/>
                   </el-form-item>
                 </div>
                 <div style="display: flex; gap: 0px;">
@@ -1180,7 +1211,7 @@
                       <el-input v-model="gdgyformData['难度系数']"  style="flex: 1;" id="难度系数"  @keydown="gyzlent($event, '设备编号', '难度系数', '小时产能')"/>
                     </el-form-item>
                     <el-form-item label="装版工时:"  class="mab" prop="keyOrder">
-                      <el-input disabled v-model="gdgyformData['装版工时']"  style="flex: 1;"/>
+                      <el-input disabled v-model="gdgyformData['辅助工时']"  style="flex: 1;"/>
                     </el-form-item>
                     <el-form-item label="排产小时产能:"  class="mab" prop="keyOrder" label-width=" 120px">
                       <el-input  v-model="gdgyformData['小时产能']"  style="flex: 1;" id="小时产能"  @keydown="gyzlent($event, '难度系数', '小时产能', '')"/>
@@ -1302,6 +1333,10 @@ import {
 import PrintPage from './components/print.vue'
 import AddGongYi from './components/addGongYi.vue'
 defineOptions({name: 'Company'})
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore()
+const _username = ref('')
+_username.value = userStore.userInfo.userName + '/' + userStore.userInfo.nickName
 
 const printPageRef = ref()
 const addGongYiRef = ref()
@@ -1891,7 +1926,9 @@ const cpdh_ProductValue = async (v) => {
 const _gClientList = async (v = '')=>{
   try {
       const ClientListdata = await ClientList({search: v});
-      khdhDataList.value = ClientListdata.data
+    console.log("客户列表数据↓↓↓↓↓↓↓↓")
+    console.log(ClientListdata)
+    khdhDataList.value = ClientListdata.data
   } catch (error) {
     console.error(error);
   }
@@ -1900,7 +1937,9 @@ const _gClientList = async (v = '')=>{
 const _ProductCodeList = async (v = '')=>{
   try {
       const ProductCodeListdata = await ProductCodeList({cilent: v});
-      cpdhDataList.value = ProductCodeListdata.data
+    console.log("产品代号列表数据↓↓↓↓↓↓↓↓")
+    console.log(ProductCodeListdata)
+    cpdhDataList.value = ProductCodeListdata.data
   } catch (error) {
     console.error(error);
   }
@@ -1966,6 +2005,7 @@ const add_gdzlent = async (event,id1,id2,id3) => {
   }
 
   if (id2 === '客户代号' && event.key==='Tab' || id2 === '客户代号' && event.key=== 'Enter') {
+    khdhModal.value = true
     await _gClientList(add_gdscgdformData['客户代号'])
     if (khdhDataList.value != null) {
       const row = khdhDataList.value.find(item => item.客户编号 === add_gdscgdformData['客户代号'])
@@ -2124,14 +2164,14 @@ const add_gdyjenterDialog =  async  () => {
     ElMessage({type: 'warning',message: '印件号不能为空'})
     return false;
   }
-  if(add_yjzlformdata['yjdh'] === ''){
-    ElMessage({type: 'warning',message: '印件代号不能为空'})
-    return false;
-  }
-  if(add_yjzlformdata['zzdh'] === ''){
-    ElMessage({type: 'warning',message: '纸张编号不能为空'})
-    return false;
-  }
+  // if(add_yjzlformdata['yjdh'] === ''){
+  //   ElMessage({type: 'warning',message: '印件代号不能为空'})
+  //   return false;
+  // }
+  // if(add_yjzlformdata['zzdh'] === ''){
+  //   ElMessage({type: 'warning',message: '纸张编号不能为空'})
+  //   return false;
+  // }
   const formattedData = {
     Yj_Gdbh: _Gd_gdbh.value,
     yj_cpdh: _Gd_cpdh.value,
@@ -2156,7 +2196,7 @@ const add_gdyjenterDialog =  async  () => {
     yj_ks: add_yjzlformdata['ks'],
     yj_ls: add_yjzlformdata['ls'],
     yj_desc: add_yjzlformdata['desc'],
-    Sys_id  : "[1031/谭鸿忠]",
+    Sys_id  : _username.value,
   };
   const PrintDetailAdd_add = await PrintDetailAdd(formattedData);
   if(PrintDetailAdd_add.code === 0) {
@@ -2717,7 +2757,9 @@ const yycpzlformData = reactive({
   fangan: 'A',
 });
 const onyycpzllist = ref(false);
-const fanganRef = ref()
+const fanganRef = ref();
+const yyzltableData = ref([]);
+
 //引用产品资料【按钮】
 const onyycpzlclick = () => {
   if(_Gd_gdbh.value == null){
@@ -2725,23 +2767,33 @@ const onyycpzlclick = () => {
     ElMessage({type: 'warning',message: '请选择具体的工单后,再操作此功能'})
   }else{
     yycpzlformData['gdbh'] = _Gd_gdbh.value;
+    yyzltableData.value = [];
     _WorkOrderDetailCopedata();
     onyycpzllist.value = true;
   }
 };
-//引用产品资料【回车】
+//引用产品资料工单编号【回车】
 const yycpzlProductValue = async (e) => {
-  if (e.code === 'Tab') {
+  if (e.code === 'Enter') {
     if (yycpzlformData['gdbh'] == null || yycpzlformData['gdbh'] == '') {
-      ElMessage({ type: 'warning', message: '工单不能为空' })
+      ElMessage({ type: 'warning', message: '工单编号不能为空' })
       return false;
     }
-    await _WorkOrderDetailCopedata();
+    await _DetailCope();
+  }
+  if (e.code === 'Tab') {
+    await  _WorkOrderDetailCopedata()
     fanganKeyDown()
   }
 };
+// const fanganProductValue = async (e) => {
+//   if (e.code === 'Tab') {
+//     console.log(123)
+//     await  _WorkOrderDetailCopedata()
+//     fanganRef.value.focus()
+//   }
+// };
 
-const yyzltableData = ref([]);
 const WorkOrderDetailCopesFangan = ref([])
 const defaultSelectionFangan = ref()
 //引用产品资料->获取产品资料
@@ -2750,13 +2802,13 @@ const _WorkOrderDetailCopedata = async ()=>{
   // 2403725 是带两个方案的
   const WorkOrderDetailCopes = await ProductCopeDetail({workorder:search});
   console.log(WorkOrderDetailCopes)
-  fanganRef.value.focus()
+  // fanganRef.value.focus()
   if(WorkOrderDetailCopes.msg === '未找到工单信息'){
     yycpzlformData['khdh'] = '';
     yycpzlformData['khmc'] = '';
     yycpzlformData['cpdh'] = '';
     yycpzlformData['cpmc'] =  '';
-    ElMessage({type: 'warning',message: '未找到工单信息'})
+    // ElMessage({type: 'warning',message: '未找到工单信息'})
     return false;
   }else{
     yycpzlformData['gdbh'] = WorkOrderDetailCopes.data['工单编号'];
@@ -2770,6 +2822,25 @@ const _WorkOrderDetailCopedata = async ()=>{
   }
 }
 
+// const yycppshuaxin_click = async ()=>{
+//   let search = yycpzlformData['gdbh'];
+//   console.log(search)
+//   const WorkOrderDetailCope_table = await WorkOrderDetailCope({search:search});
+//   console.log(WorkOrderDetailCope_table)
+//   yyzltableData.value = WorkOrderDetailCope_table.data
+// }
+const _DetailCope = async (row)=>{
+  let search = yycpzlformData['gdbh'];
+  console.log(search)
+  const WorkOrderDetailCope_table = await WorkOrderDetailCope({search:search});
+  console.log(WorkOrderDetailCope_table)
+  yyzltableData.value = WorkOrderDetailCope_table.data
+}
+const yyzltableRowClick = async (row)=>{
+  yycpzlformData['gdbh'] = row['工单编号'];
+  _WorkOrderDetailCopedata();
+}
+
 const setFangan = (node) => {
   yycpzlformData['fangan'] = node['方案']
   defaultSelectionFangan.value = node['方案']
@@ -2805,6 +2876,7 @@ const fanganKeyDown = () => {
       }
       if (e.code === 'Enter') {
         yycpzlformData['fangan'] = defaultSelectionFangan.value
+        console.log(12312312312312321321321321)
         document.removeEventListener('keydown', (e) => {
           console.log(e)
         })
@@ -3300,6 +3372,7 @@ const gdgyupdateCompanyFunc = async(row) => {
   gdgyformData['设备编号'] = []
   //通过车间名称查询机台
   const MachineList_jitai = await gdzl_MachineList({address:_cjmc.value});
+  console.log(MachineList_jitai)
   if(MachineList_jitai.data === null || MachineList_jitai.data === ''){
     ElMessage({type: 'warning', message: '未找到该车间机台'})
     return false;
@@ -3359,10 +3432,10 @@ const gdgyupdateCompanyFunc = async(row) => {
 const gdgyenterDialog = async () => {
   if(_Gd_gdbh.value){
     const selectedValuesAsString = gdgyformData['设备编号'].join(' ');
-    if(gdgyformData['shdh'] === ''){
-      ElMessage({type: 'warning', message: '工序损耗不能为空'})
-      return false;
-    }
+    // if(gdgyformData['shdh'] === ''){
+    //   ElMessage({type: 'warning', message: '工序损耗不能为空'})
+    //   return false;
+    // }
     if(gdgyformData['小时产能'] === '' || gdgyformData['小时产能'] === "0"){
       ElMessage({type: 'warning', message: '排产小时产能 不能为空或0'})
       return false;
@@ -3593,7 +3666,7 @@ const jsfjClick = () => {
 //技术附件弹窗
 const jsfjdialogFormVisible = ref(false)
 const jsfjformdata = ref({
-	sys_id: '[272/超级用户]',
+	sys_id: _username.value,
 	附件备注: '',
 	附件内容: '',
 	附件类型: '',
@@ -3602,7 +3675,7 @@ const jsfjformdata = ref({
 //技术附件弹窗取消
 const initJsfjformdata = () => {
   jsfjformdata.value = {
-	sys_id: '[272/超级用户]',
+	sys_id: _username.value,
 	附件备注: '',
 	附件内容: '',
 	附件类型: '',

+ 97 - 27
src/view/yunyin/shengchanguanli/shebeiyunxing.vue

@@ -1876,7 +1876,9 @@ import {
    ChanliangPrintDetail,
    ChanliangProcessDetail,
    EmployeeData,
-   RemodelDetail
+   RemodelDetail,
+   AdditionalInspectionRecordAdd,
+   ProcessInspectionRecordsItemAdd
 } from '@/api/jixiaoguanli/jitairibaobiao'
 
 import {
@@ -1887,7 +1889,9 @@ import Shebeizhuangtai from '@/view/performance/09-workOrderVerification/compone
 import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { ref, reactive } from 'vue'
-
+import { useUserStore } from '@/pinia/modules/user'
+const userStore = useUserStore() 
+const sys_id='['+userStore.userInfo.userName+'/'+userStore.userInfo.nickName+']'
 
 defineOptions({
     name: 'Company'
@@ -2388,7 +2392,94 @@ const processInspectionRecordsItem = async (value) => {
 	  })
     
   }
-};
+};
+const zhichengDialog = async () => {
+	console.log(fujiaselectData.value)
+	let arr =[]
+	zhibiaoselectData.value.map(item=>{
+		if(item.zc==true){
+			item.result='合格'
+			item.item=item.检验项目
+			item.instrument=item.检测方法
+			item.standard=item.相关标准
+			delete item.notjc
+			delete item.zc
+			delete item.yc
+			delete item.检验项目
+			delete item.检测方法
+			delete item.相关标准
+			delete item.检验频率
+			arr.push(item)
+			return item
+		}
+		if(item.yc==true){
+			item.result='不合格'
+			item.item=item.检验项目
+			item.instrument=item.检测方法
+			item.standard=item.相关标准
+			delete item.notjc
+			delete item.zc
+			delete item.yc
+			delete item.检验项目
+			delete item.检测方法
+			delete item.相关标准
+			delete item.检验频率
+			arr.push(item)
+			return item
+		}
+		if(item.notjc==true){
+			item.result='不检测'
+			item.item=item.检验项目
+			item.instrument=item.检测方法
+			item.standard=item.相关标准
+			delete item.notjc
+			delete item.zc
+			delete item.yc
+			delete item.检验项目
+			delete item.检测方法
+			delete item.相关标准
+			delete item.检验频率
+			// arr.push(item)
+			return item
+		}
+
+	})
+	let arrs=[]
+	let fujiastatus=0
+	fujiaselectData.value.map(item=>{
+		if(item.notjc==true){
+			return item
+		}else{
+			fujiastatus=1
+			item.remark=item.缺陷备注
+			delete item.notjc
+			delete item.缺陷备注
+			delete item.编号
+			arrs.push(item)
+			return item
+		}
+
+	})
+	if(fujiastatus==1){
+		const responses = await AdditionalInspectionRecordAdd(arrs);
+		fujiastatus=0
+	}
+	// const response = await ProcessInspectionRecordsItemAdd(arr);
+	const response = await ProcessInspectionRecordsItemAdd(zhibiaoselectData.value);
+	// const responses = await AdditionalInspectionRecordAdd(zhibiaoselectData.value);
+	if (response.code === 0) {
+		  ElMessage({
+		    type: 'success',
+		    message: '成功'
+		  })
+		  zhichengVisible.value=false
+		  zhibiaoselectData.value=[]
+		  fujiaselectData.value=[]
+	}
+}
+const closezhichengDialog = async () => {
+	zhichengVisible.value=false
+}
 //设置机台状态
 const dialogSbyxgl=ref(false)
 function onstatus() {
@@ -3211,28 +3302,7 @@ const MachineChanliang = async(value) => {
 		 		}
 		 	})
 	 }
-	
-	 
-	 
-	 
-	 
-	 // const propertyName = `组员${inputName}['编号']`;
-	 // console.log(propertyName)
-	 // console.log(formdata3.value.组员1['编号'])
-	 // console.log(formdata3.value[propertyName])
-	 // const value = eval('formdata3.value.' + propertyName);
-	 // console.log(value); // 输出:ZM01074
- 	// if(formdata3.value[propertyName]!=''){
- 	// 	EmployeeData({code:formdata3.value.组员+inputName+['编号']}).then(response=>{
- 	// 		if (response.code === 0) {
- 	// 			//设置比例
- 	// 			// formdata3.value.组员1['姓名'] = response.data.ygxm;
-		// 		// formdata3.value.组员+inputName+['姓名'] = response.data[0].员工姓名;
- 	// 		}else{
- 	// 			// formdata3.value['sczl_bh'+inputName+'_name'] = '';
- 	// 		}
- 	// 	})
- 	// }
+
  }
  //追加字体颜色和不可输入
  const setColorReadonly = (id) => {
@@ -3300,7 +3370,7 @@ const MachineChanliang = async(value) => {
 	开工时间:formdata3.value.starttime,
 	码开始行:formdata3.value.码开始行,
 	码结束行:formdata3.value.码结束行,
-	sys_id:"[68-ED-A4-26-5F-37/JY01#]",
+	sys_id:sys_id,
 	sczl_装版工时:formdata3.value.装版补产工时,
 	sczl_打样工时:formdata3.value.打样补产工时,
 	sczl_异常类型1:formdata3.value.异常类型,
@@ -3383,7 +3453,7 @@ const MachineChanliang = async(value) => {
     开工时间:"2024-03-12 08:30:00",
     码开始行:formdata3.value.码开始行,
     码结束行:formdata3.value.码结束行,
-    sys_id:"[68-ED-A4-26-5F-37/JY01#]",
+    sys_id:sys_id,
     sczl_装版工时:formdata3.value.装版补产工时,
     sczl_打样工时:formdata3.value.打样补产工时,
     sczl_异常类型1:formdata3.value.异常类型,