Browse Source

运营管理

liuhairui 1 year ago
parent
commit
fb23012f6f

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

@@ -82,29 +82,53 @@ export const setProductStatus = (data) => {
         data
     })
 }
-//工艺方案更名
+//8.1获取产品工艺数量
+export const getGyTotal = (data) => {
+    return service({
+        url: '/mes_serve/product/getGyTotal',
+        method: 'get',
+        data
+    })
+}
+//9.工艺方案更名
 export const editGyName = (data) => {
     return service({
         url: '/mes_server/product/editGyName',
-        method: 'get',
+        method: 'post',
         data
     })
 }
-//8.1获取产品工艺数量
-export const getGyTotal = (data) => {
+//10.工艺方案附加
+export const editGyNo = (data) => {
     return service({
-        url: '/mes_serve/product/getGyTotal',
-        method: 'get',
+        url: '/mes_serve/product/editGyNo',
+        method: 'post',
+        data
+    })
+}
+//11.计损色数修正
+export const editGyMs = (data) => {
+    return service({
+        url: '/mes_serve/product/editGyMs',
+        method: 'post',
+        data
+    })
+}
+//12.质检废品系数
+export const editGyWaste = (data) => {
+    return service({
+        url: '/mes_serve/product/editGyWaste',
+        method: 'post',
         data
     })
 }
 /** 生产管理 工单资料管理*/
 // 1.工单资料菜单列表
-export const DataList = (data) => {
+export const DataList = (params) => {
     return service({
         url: '/mes_server/work_order/DataList',
         method: 'get',
-        data
+        params
     })
 }
 // 工单资料
@@ -140,6 +164,46 @@ export const Bom = (params) => {
     })
 }
 
+//工单查改->获取工单信息
+export const DataCorrection = (params) => {
+    return service({
+        url: '/mes_server/work_order/DataCorrection',
+        method: 'get',
+        params
+    })
+}
+
+
+//工单差改->修改工单信息
+export const WorkOrderEdit = (params) => {
+    return service({
+        url: '/mes_server/work_order/WorkOrderEdit',
+        method: 'get',
+        params
+    })
+}
+
+
+//引用产品资料->获取产品资料
+export const ProductInformation = (params) => {
+    return service({
+        url: '/mes_server/work_order/ProductInformation',
+        method: 'get',
+        params
+    })
+}
+
+
+//引用产品资料->修改产品资料
+export const ProductInformationEdit = (params) => {
+    return service({
+        url: '/mes_server/work_order/ProductInformationEdit',
+        method: 'post',
+        params
+    })
+}
+
+
 /**工单生产排单(排产管理)*/
 //左侧车间机台菜单
 export const workbench = (data) => {

+ 277 - 131
src/view/yunyin/chanpinziliao/chanpinziliao.vue

@@ -19,16 +19,16 @@
         <el-main>
           <!--      搜索框 -->
           <div class="gva-search-box">
-            <el-form ref="elSearchFormRef" :inline="true" :model="searchInfo" class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
+            <el-form ref="elSearchFormRef" :inline="true"  class="demo-form-inline" :rules="searchRule" @keyup.enter="onSubmit">
               <!--          左侧查询输入框 -->
-
               <el-form-item>
-                <el-input v-model="searchInfo.keyword" placeholder="搜索产品编号或产品名称" clearable style="width: 200px;"></el-input>
-
+                <el-input v-model="searchInfo" placeholder="搜索产品编号或产品名称" clearable style="width: 200px;"></el-input>
                 <el-button type="primary" icon="search" @click="onSubmit" style="margin-left: 10px">查询</el-button>
+
 <!--                <el-button icon="refresh" @click="onReset">重置</el-button>-->
 <!--                <el-button type="primary" icon="plus" @click="openDialog">新增</el-button>-->
 
+<!--            状态设置-->
                 <el-button type="primary" icon="edit" @click="onStatusClick">状态设置</el-button>
                 <el-dialog v-model="onstatuslist" title="状态设置" width="20%" style="height: 25%; position: fixed; bottom: 35%; left: 40%">
                   <div style="display: flex; flex-direction: column; align-items: center; height: 100%;">
@@ -51,6 +51,7 @@
 
 <!--                <el-button type="primary" disabled icon="edit" @click="" style="margin-left: 10px">工艺方案复制</el-button>-->
 
+<!--            工艺方案更名-->
                 <el-button type="primary" icon="edit" @click="gygmClick" style="margin-left: 10px">工艺方案更名</el-button>
                 <el-dialog v-model="gygmlist" title="工艺方案更名" width="40%" style="height: 40%; position: fixed; bottom: 30%; left: 30%">
                   <div style="display: flex; flex-direction: column;  height: 100%;">
@@ -80,30 +81,35 @@
                   </div>
                 </el-dialog>
 
+<!--             工艺方案附加 -->
                 <el-button type="primary"  icon="edit" @click="fjClick" style="margin-left: 10px">工艺方案附加</el-button>
                 <el-dialog v-model="fjlist" title="工艺方案附加" width="1400px" style="height: 740px;bottom: 6%;">
                   <div>
+
                     <div style="width: 100%; height: 60px; padding: 0px; margin: 10px 0px 0px 0px; display: flex; align-items: center;">
                       <el-form-item label="当前产品:" prop="currentProcess" style="margin-right: 20px;padding: 0px">
                         <el-input v-model="fjformData['process']" disabled :clearable="true" placeholder="" style="width: 160px;"/>
                       </el-form-item>
                       <el-input v-model="fjformData['processName']" disabled :clearable="true" placeholder="" style="flex: 1;"/>
                       <el-form-item label="工艺方案:" prop="originalName"  style="margin-left: 20px;">
-                        <el-select v-model="fjformData.originalName" placeholder="请选择" style="width: 160px;" @change="handleOriginalNameChange">
+                        <el-select v-model="fjformData.originalName" placeholder="请选择" style="width: 160px;" @click="onoriginalNameclick" @change="handleOriginalNameChange">
                           <el-option v-for="option in fjformData.originalNameOptions" :key="option" :label="option" :value="option" />
                         </el-select>
                       </el-form-item>
                     </div>
+
                     <div style="width: 100%; height: 60px; padding: 0px; margin: 10px 0px 0px 0px; display: flex; align-items: center;">
-                      <el-form-item label="当前产品:" prop="currentProcess" style="margin-right: 20px;padding: 0px">
-                        <el-input v-model="fjformData['dqprocess']"  :clearable="true" placeholder="" style="width: 160px;"/>
+                      <el-form-item label="新 产 品 :" prop="currentProcess" style="margin-right: 20px; padding: 0px">
+                        <el-input v-model="fjformData['dqprocess']"
+                                  @keyup.enter="getProductValue" :clearable="true" placeholder="输入新产品" style="width: 160px;"/>
                       </el-form-item>
-                      <el-input v-model="fjformData['dqprocessName']"  :clearable="true" placeholder="" style="flex: 1;"/>
-                      <el-form-item label="工艺方案:" prop="currentProcess" style="margin-right: 20px;padding: 0px">
-                        <el-input v-model="fjformData['dqoriginalName']"  :clearable="true" placeholder="" style="width: 160px;"/>
+                      <el-input v-model="fjformData['dqprocessName']"
+                                :disabled="!!fjformData['dqprocessName']"
+                                placeholder="点击输框获取产品名称" @click="ondqprocessNameclick" :clearable="true"  style="flex: 1;"/>
+                      <el-form-item label="工艺方案:" prop="originalName" style="margin-left: 20px;">
+                        <el-input v-model="fjformData['dqoriginalName']" :clearable="true" placeholder="" style="width: 160px;"/>
                       </el-form-item>
                     </div>
-
                         <el-table ref="multipleTable"
                                   :show-overflow-tooltip="true"
                                   :row-style="{ height: '20px' }"
@@ -111,18 +117,72 @@
                                   :header-cell-style="{ padding: '0px' }"
                                   style="width: 100%;height: 450px" border tooltip-effect="dark"
                                   :data="fjtableData" row-key="ID" @selection-change="handleSelectionChange">
-                          <el-table-column align="left" label="方案" prop="方案"  width="70"/>
-                          <el-table-column align="left" label="印件" prop="Gy0_yjno"  width="70"/>
-                          <el-table-column align="left" label="序号" prop="Gy0_gxh"  width="70"/>
-                          <el-table-column align="left" label="备注" prop="remark"  width="70"/>
-
+                          <el-table-column v-slot="scope" align="left" label=方案 width="100" >
+                            <el-input disabled v-model="scope.row.programme" :clearable="false"/>
+                          </el-table-column>
+                          <el-table-column v-slot="scope" align="left" label="印件号" width="100">
+                            <el-input v-model="scope.row.Gy0_yjno" :clearable="false"/>
+                          </el-table-column>
+                          <el-table-column v-slot="scope" align="left" label="工序号" width="100" >
+                            <el-input v-model="scope.row.Gy0_gxh" :clearable="false"/>
+                          </el-table-column>
+                          <el-table-column v-slot="scope" align="left" label="工序名称" width="340" >
+                            <el-input disabled v-model="scope.row.Add_gxmc" :clearable="false"/>
+                          </el-table-column>
+                          <el-table-column v-slot="scope" align="left" label="工价系列" width="100" >
+                            <el-input disabled v-model="scope.row.difficulty_coe" :clearable="false"/>
+                          </el-table-column>
+                          <el-table-column v-slot="scope" align="left" label="损耗系数" width="100" >
+                            <el-input disabled v-model="scope.row.loss_coe" :clearable="false"/>
+                          </el-table-column>
+                          <el-table-column v-slot="scope" align="left" label="开数" width="100" >
+                            <el-input  v-model="scope.row.Gy0_Ks" :clearable="false"/>
+                          </el-table-column>
+                          <el-table-column v-slot="scope" align="left" label="联数" width="100" >
+                            <el-input  v-model="scope.row.Gy0_ls" :clearable="false"/>
+                          </el-table-column>
+                          <el-table-column v-slot="scope" align="left" label="备注" width="200" >
+                            <el-input disabled v-model="scope.row.remark" :clearable="false"/>
+                          </el-table-column>
+                          <el-table-column v-slot="scope" align="left" label="车间" width="120" >
+                            <el-input disabled v-model="scope.row.Gy0_site" :clearable="false"/>
+                          </el-table-column>
+                          <el-table-column v-slot="scope" align="left" label="设备编号" width="100" >
+                            <el-input disabled v-model="scope.row.Gy0_sbbh" :clearable="false"/>
+                          </el-table-column>
                         </el-table>
+
                     <div class="dialog-footer" style="margin-top: 14px; margin-left: 50%;">
                       <el-button type="primary" @click="fjbzgx">附加标准工序</el-button>
                       <el-button type="primary" @click="gxdqcpgx">更新当前产品工序</el-button>
-                      <el-button type="primary" @click="fjhandleConfirm">建立工艺方案</el-button>
+                      <el-button type="primary" :disabled="!fjformData['dqoriginalName']" @click="fjhandleConfirm">建立工艺方案</el-button>
                       <el-button type="primary" @click="fjhandleCancel">放弃操作</el-button>
                     </div>
+
+                  </div>
+                </el-dialog>
+
+<!--              点击附加标准工序 显示 产品工艺流程附加选择 -->
+                  <el-dialog v-model="cpgylcfjxx" title="产品工艺流程附加选择" width="1400px" style="height: 740px;bottom: 6%;">
+                  <div>
+                    <div style="width: 100%; height: 60px; padding: 0px; margin: 10px 0px 0px 0px; display: flex; align-items: center;">
+                      <el-form-item label="新 产 品 :" prop="currentProcess" style="margin-right: 20px; padding: 0px">
+                        <el-input v-model="cpgyformData['dqprocess']"
+                                  @keyup.enter="cpgygetProductValue" :clearable="true" placeholder="输入新产品" style="width: 160px;"/>
+                      </el-form-item>
+                      <el-input v-model="cpgyformData['dqprocessName']"
+                                :disabled="!!cpgyformData['dqprocessName']"
+                                placeholder="点击输框获取产品名称" @click="cpgyondqprocessNameclick" :clearable="true"  style="flex: 1;"/>
+                      <el-form-item label="工艺方案:" prop="originalName" style="margin-left: 20px;">
+                        <el-input v-model="cpgyformData['dqoriginalName']" :clearable="true" placeholder="" style="width: 160px;"/>
+                      </el-form-item>
+                    </div>
+
+                    <div class="dialog-footer" style="margin-top: 14px; margin-left: 50%;">
+                      <el-button type="primary" @click="onfjbzgxexecute">执 行</el-button>
+                      <el-button type="primary" @click="onfjbzgxcancellation">放 弃</el-button>
+                    </div>
+
                   </div>
                 </el-dialog>
 
@@ -175,7 +235,7 @@
             </el-form>
           </div>
 
-          <!--      表格及操作按钮 -->
+          <!--   表格 -->
           <div class="gva-table-box">
             <!--        数据表格 -->
             <el-table ref="multipleTable"
@@ -222,7 +282,7 @@
 
           </div>
 
-          <!--      表格下的表格 -->
+          <!--   印件资料、工艺资料、印版资料、技术资料附件表格 -->
           <el-tabs v-model="activeName" type="card" @tab-click="handleClick">
 
             <el-tab-pane label="印件资料"  @click="showTable('印件资料')"  name="first">
@@ -310,7 +370,6 @@
             </el-table>
             </el-tab-pane>
 
-
             <el-tab-pane label="技术资料附件" @click="showTable('技术资料附件')" name="fourth">
             <el-table ref="multipleTable"
                       :row-style="{ height: '20px' }"
@@ -331,7 +390,6 @@
             </el-table>
             </el-tab-pane>
 
-
           </el-tabs>
 
           <!-- 表格弹窗 -->
@@ -408,7 +466,7 @@
             </template>
           </el-dialog>
 
-          <!-- 印件资料 修改弹窗 -->
+          <!-- 印件资料 弹窗 -->
           <el-dialog v-model="yjdialogFormVisible" :before-close="yjcloseDialog" :title="type==='create'?'添加产品基本资料':'修改产品基本资料'" destroy-on-close>
             <el-row>
               <el-scrollbar height="500px">
@@ -482,7 +540,7 @@
             </template>
           </el-dialog>
 
-          <!-- 工艺资料 修改弹窗 -->
+          <!-- 工艺资料 弹窗 -->
           <el-dialog v-model="gydialogFormVisible" :before-close="gycloseDialog" :title="type==='create'?'添加工艺产品基本资料':'修改工艺产品基本资料'" destroy-on-close>
             <el-row>
               <el-scrollbar height="500px">
@@ -590,7 +648,7 @@
             </template>
           </el-dialog>
 
-          <!-- 印版资料 修改弹窗 -->
+          <!-- 印版资料 弹窗 -->
           <el-dialog v-model="ybdialogFormVisible" :before-close="ybcloseDialog" :title="type==='create'?'添加产品印版资料':'修改产品印版资料'" destroy-on-close>
             <el-row>
               <el-scrollbar height="500px">
@@ -680,7 +738,6 @@ export default {
       if(row.状态==="停产"){
         return "warning-row"
       }
-
     },
     rowClassStyle({row,rowIndex}){
       // debugger
@@ -712,7 +769,8 @@ import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDow
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { ref, reactive } from 'vue'
 import {
-  editGyName,
+  DataList,
+  editGyName, editGyNo,
   getCustom,
   getDepartment,
   getProduct,
@@ -724,24 +782,25 @@ import {
 defineOptions({   name: 'Company'})
 
 // =========== 导出Excel表格 ===========
-//导出产品
-const cpdialogexportToExcel = ref(false)
-const cpexportToExcel = () => {
-  console.log('点击了导出产品按钮')
-  cpdialogexportToExcel.value = true;
-}
-
-//导出工艺
-const gydialogexportToExcel = ref(false)
-const gyexportToExcel = () => {
-  console.log('点击了导出工艺流程按钮')
-  gydialogexportToExcel.value = true;
-}
+// //导出产品
+// const cpdialogexportToExcel = ref(false)
+// const cpexportToExcel = () => {
+//   console.log('点击了导出产品按钮')
+//   cpdialogexportToExcel.value = true;
+// }
+//
+// //导出工艺
+// const gydialogexportToExcel = ref(false)
+// const gyexportToExcel = () => {
+//   console.log('点击了导出工艺流程按钮')
+//   gydialogexportToExcel.value = true;
+// }
 
 // =========== 状态设置 ===========
 const onstatuslist = ref(false);
 const status = ref('在产'); // 默认选择在产
 const _stacode = ref(null);
+//点击【状态设置】按钮
 const onStatusClick = () => {
   if(_product_code.value == null){
     onstatuslist.value = false;
@@ -751,12 +810,12 @@ const onStatusClick = () => {
     onstatuslist.value = true;
   }
 };
-// 状态设置放弃
+// 状态设置放弃按钮
 const handleCancel = () => {
   onstatuslist.value = false;
   console.log('点击了取消');
 };
-// 状态设置执行
+// 状态设置执行按钮
 const handleConfirm = async () => {
   onstatuslist.value = false;
     let statusCode;
@@ -774,66 +833,166 @@ handleCancel(_stacode);
 // =========== 工艺方案附加 ===========
 const fjlist = ref(false);
 const fjformData = reactive({
+  //↓当前产品数据
   process: '',//当前产品
   processName: '',//产品名称
   processfa: [],//工艺方案
   originalName: '', // 工艺方案默认选择的值
+  //↓新产品数据
+  dqprocess: '',
+  dqprocessName: '',
+  dqoriginalName: ''
 });
+const fjtableData = ref([]);
+const _originalNamev = ref(null);
+//获取选择下拉框当前方案的值
+const onoriginalNameclick = () => {
+    console.log("当前方案选择的值是:" + fjformData.originalName);
+}
+//输入新产品点击后面input获取新产品的值
+const ondqprocessNameclick = () => {
+  _originalNamev.value = fjformData['dqprocess'];
+  _ongetProductclick();
+}
+
+//新产品输入框回车事件
+const getProductValue = () => {
+  _originalNamev.value = fjformData['dqprocess'];
+  _ongetProductclick();
+}
+
+//封装获取单个产品基础数据方法[用来获取新产品名称]
+const _ongetProductclick = async ()=>{
+  let params = {}
+  params.search = _originalNamev.value;
+  params.limit = pageSize.value;
+  params.page = page.value;
+  try {
+    const WorkListdata = await getProduct(params);
+    fjformData['dqprocessName'] = WorkListdata.data.data[0]['产品名称'];
+  } catch (error) {
+    console.error(error);
+  }
+}
 
+//当前产品号通过接口查询工艺数据
+const getProductGys = async (product_code,plan) => {
+  const WorkListdata = await getProductGy({product_code:product_code,plan:plan});
+  fjtableData.value = WorkListdata.data
+};
+
+//点击【工艺方案附加】按钮
 const fjClick = () => {
-  console.log('点击了工艺方案附加');
   if(_product_code.value == null){
     fjlist.value = false;
     alert('请选择分类项目,再操作此功能');
   }else{
     fjlist.value = true;
-    fjformData.process = _product_code.value;
-    fjformData.processName = _kehu_code.value;
     if (gytableData.length === 0) {
       fjlist.value = false;
       alert('没有工艺资料');
     } else {
+      //默认新产品为空
+      fjformData.dqprocess = ''
+      fjformData.dqprocessName = ''
+      fjformData.dqoriginalName = ''
+      //将值赋值给当前产品
+      fjformData.process = _product_code.value;
+      fjformData.processName = _kehu_code.value;
+      //获取方案
       const uniqueSchemeSet = new Set();
       gytableData.forEach(item => {
         uniqueSchemeSet.add(item['方案']);
       });
       const uniqueSchemeArray = Array.from(uniqueSchemeSet);
-      fjformData.originalNameOptions = []; // 清空原有数据
+      fjformData.originalNameOptions = [];// 清空原有数据
       fjformData.originalNameOptions = fjformData.originalNameOptions.concat(uniqueSchemeArray);
       // 设置默认选择第一个选项
       if (fjformData.originalNameOptions.length > 0) {
         fjformData.originalName = fjformData.originalNameOptions[0];
       }
     }
-    // console.log(fjformData.process)
-    // console.log(fjformData.processName)
-    // console.log(fjformData.originalName)
     const product_code = fjformData.process
     const plan = fjformData.originalName
-    //编号 方案 获取到了 调用接口报错
-    // const WorkListdata = await getProductGy(product_code:product_code,plan:plan);
-    // console.log(WorkListdata)
-
+    // console.log(product_code)
+    getProductGys(product_code,plan)
   }
 };
-//附加标准工序
+
+
+//==========点击【附加标准工序】按钮=====弹出新页面==========
+const cpgyformData = reactive({
+  dqprocess: '',
+  dqprocessName: '',
+  dqoriginalName: ''
+});
+const cpgylcfjxx = ref(false);
+const _cpgyoriginalNamev = ref(null);
 const fjbzgx = async () => {
-  // let params = {}
-  // params.code = fjformData['dqprocess'];
-  // params.old_name = fjformData['dqprocessName'];
-  // params.new_name = fjformData['dqoriginalName'];
-  // console.log(params)
+  //清空输入框数据
+  cpgyformData['dqprocess'] = '';
+  cpgyformData['dqprocessName'] = '';
+  cpgyformData['dqoriginalName'] = '';
+  cpgylcfjxx.value = true;
+  // fjlist.value = false;
+}
+//输入新产品点击后面input获取新产品的值
+const cpgyondqprocessNameclick = () => {
+  _cpgyoriginalNamev.value = cpgyformData['dqprocess'];
+  _cpgyongetProductclick();
+}
+//新产品输入框回车事件
+const cpgygetProductValue = () => {
+  _cpgyoriginalNamev.value = fjformData['dqprocess'];
+  _cpgyongetProductclick();
+}
+const _cpgyongetProductclick = async ()=>{
+  let params = {}
+  params.search = _cpgyoriginalNamev.value;
+  params.limit = pageSize.value;
+  params.page = page.value;
+  try {
+    const WorkListdata = await getProduct(params);
+    cpgyformData['dqprocessName'] = WorkListdata.data.data[0]['产品名称'];
+  } catch (error) {
+    console.error(error);
+  }
+}
 
+//点击【附加标准工序执行】按钮
+const onfjbzgxexecute = async () => {
+  cpgylcfjxx.value = false;
 }
-//更新当前产品工序
+
+//点击【附加标准工序放弃】按钮
+const onfjbzgxcancellation = async () => {
+  cpgylcfjxx.value = false;
+}
+
+//点击【更新当前产品工序】按钮,更新的是表格数据
 const gxdqcpgx = async () => {
-  fjlist.value = false;
+  const rawValueArray = fjtableData._rawValue;
+  const formattedData = rawValueArray.map(item => {
+    return {
+      UniqID: item.UniqID,
+      Gy0_yjno: item.Gy0_yjno,
+      Gy0_gxh: item.Gy0_gxh,
+      Gy0_Ks: item.Gy0_Ks,
+      Gy0_ls: item.Gy0_ls
+    };
+  });
+  console.log(formattedData);
+  // const editGyNamedata = await editGyName({formattedData:formattedData});
+  // console.log(editGyNamedata);
+  // fjlist.value = false;
 };
-//建立工艺方案
+
+//点击【建立工艺方案】按钮,当前的方案建立到新产品方案中
 const fjhandleConfirm = async () => {
   fjlist.value = false;
 };
-//放弃操作
+
+//点击【工艺方案附加放弃操作】按钮
 const fjhandleCancel = () => {
   fjlist.value = false;
 };
@@ -848,8 +1007,8 @@ const gyformData = reactive({
   newName: '',
   originalName: '', // 工艺方案默认选择的值
 });
+//点击【工艺方案更名】按钮
 const gygmClick = () => {
-  // console.log('点击了工艺方案更名');
   if(_product_code.value == null){
     gygmlist.value = false;
     alert('请选择分类项目,再操作此功能');
@@ -875,11 +1034,12 @@ const gygmClick = () => {
     }
   }
 };
-// 工艺方案更名放弃
+// 点击工艺方案更名中【放弃】按钮
 const gygmhandleCancel = () => {
   gygmlist.value = false;
 };
-// 工艺方案更名执行
+
+// 点击工艺方案更名【执行】按钮
 const gygmhandleConfirm = async () => {
   gygmlist.value = false;
   let params = {}
@@ -901,6 +1061,7 @@ const gygmhandleConfirm = async () => {
     console.error(error);
   }
 };
+
 gygmhandleCancel(_gygmstacode);
 
 // =========== 左侧树侧形结构 ===========
@@ -920,6 +1081,7 @@ const tableData = reactive([])
 const _custom_code = ref(null)
 const handleNodeClick = async (node) => {
   _custom_code.value = node.客户编号;
+  searchInfo.value = '';
   _getProduct()
 };
 //印件资料
@@ -942,10 +1104,23 @@ const tableRowClick = async (row) => {
   gytableData.splice(0, gytableData.length, ...res.data.gyData);//工艺资料表格
   ybtableData.splice(0, ybtableData.length, ...res.data.ybData);//印版资料表格
 };
+// 搜索查询
+const searchInfo = ref('')
+//点击【查询】按钮
+const onSubmit = () => {
+  _custom_code.value = '';
+  _getProduct();
+};
+// 重置
+// const onReset = () => {
+//   searchInfo.value = {}
+//   getTableData()
+// }
 
-//封装的方法
+//封装获取单个产品基础数据方法
 const _getProduct = async ()=>{
   let params = {}
+  params.search = searchInfo.value;
   params.custom_code = _custom_code.value;
   params.limit = pageSize.value;
   params.page = page.value;
@@ -958,81 +1133,25 @@ const _getProduct = async ()=>{
   }
 }
 
-
 // ========分页==============
+const page = ref(1)
+const total = ref(0)
+const pageSize = ref(10)
 const handleCurrentChange = (val) => {
   page.value = val;
   _getProduct();
 };
-
 // 修改页面容量 点击多少条/页
 const handleSizeChange = (val) => {
   page.value = 15;//默认显示十条
   pageSize.value = val;
   _getProduct();
 };
-const page = ref(1)
-const total = ref(0)
-const pageSize = ref(10)
-
-
-const elFormRef = ref()
-const elSearchFormRef = ref()
-const searchInfo = ref({})
-// 搜索
-const onSubmit = () => {
-
-}
-
-// 查询
-const getTableData = async() => {
-
-}
-getTableData()
-
-// 重置
-const onReset = () => {
-  searchInfo.value = {}
-  getTableData()
-}
-
-
-
-// 验证规则
-const rule = reactive({})
-
-const searchRule = reactive({
-  createdAt: [
-    { validator: (rule, value, callback) => {
-        if (searchInfo.value.startCreatedAt && !searchInfo.value.endCreatedAt) {
-          callback(new Error('请填写结束日期'))
-        } else if (!searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt) {
-          callback(new Error('请填写开始日期'))
-        } else if (searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt && (searchInfo.value.startCreatedAt.getTime() === searchInfo.value.endCreatedAt.getTime() || searchInfo.value.startCreatedAt.getTime() > searchInfo.value.endCreatedAt.getTime())) {
-          callback(new Error('开始日期应当早于结束日期'))
-        } else {
-          callback()
-        }
-      }, trigger: 'change' }
-  ],
-})
-
-// 获取需要的字典 可能为空 按需保留
-const setOptions = async () =>{
-}
-
-// 获取需要的字典 可能为空 按需保留
-setOptions()
-
-//行为控制标记(弹窗内部需要增还是改)
-const type = ref('')
-
 //=========表格列表修改========
 let formDataTest = reactive({})
 //修改
 const updateCompanyFunc = async (row) => {
   formDataTest = row;
-  console.log(row);
   dialogFormVisible.value = true;
 };
 // 弹窗
@@ -1042,7 +1161,6 @@ const openDialog = () => {
   type.value = 'create'
   dialogFormVisible.value = true
 }
-
 // 关闭弹窗
 const closeDialog = () => {
   dialogFormVisible.value = false
@@ -1058,7 +1176,6 @@ let yjformDataTest = reactive({})
 //修改
 const yjupdateCompanyFunc = async (row) => {
   yjformDataTest = row;
-  console.log(row);
   yjdialogFormVisible.value = true;
 };
 // 弹窗
@@ -1083,9 +1200,7 @@ let gyformDataTest = reactive({})
 const gyupdateCompanyFunc = async (row) => {
   // const product_code = row.产品编号;
   const product_code = _product_code.value;
-  console.log(product_code);
   const res = await getProductGy({product_code:product_code});//接口
-  console.log(res);
   gyformDataTest = row;
   // console.log(row);
   gydialogFormVisible.value = true;
@@ -1112,7 +1227,6 @@ let ybformDataTest = reactive({})
 const ybupdateCompanyFunc = async (row) => {
   // const product_code = row.产品编号;
   const product_code = _product_code.value;
-  console.log(row);
   // const res = await getProductGy({product_code:product_code});//接口
   // console.log(res);
   ybformDataTest = row;
@@ -1136,6 +1250,38 @@ const ybcloseDialog = () => {
   }
 }
 
+const elFormRef = ref()
+const elSearchFormRef = ref()
+
+// 验证规则
+const rule = reactive({})
+
+const searchRule = reactive({
+  createdAt: [
+    { validator: (rule, value, callback) => {
+        if (searchInfo.value.startCreatedAt && !searchInfo.value.endCreatedAt) {
+          callback(new Error('请填写结束日期'))
+        } else if (!searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt) {
+          callback(new Error('请填写开始日期'))
+        } else if (searchInfo.value.startCreatedAt && searchInfo.value.endCreatedAt && (searchInfo.value.startCreatedAt.getTime() === searchInfo.value.endCreatedAt.getTime() || searchInfo.value.startCreatedAt.getTime() > searchInfo.value.endCreatedAt.getTime())) {
+          callback(new Error('开始日期应当早于结束日期'))
+        } else {
+          callback()
+        }
+      }, trigger: 'change' }
+  ],
+})
+
+// 获取需要的字典 可能为空 按需保留
+const setOptions = async () =>{
+}
+
+// 获取需要的字典 可能为空 按需保留
+setOptions()
+
+//行为控制标记(弹窗内部需要增还是改)
+const type = ref('')
+
 // 弹窗确定
 const enterDialog = async () => {
   elFormRef.value?.validate( async (valid) => {
@@ -1182,7 +1328,7 @@ const enterDialog = async () => {
   flex: 1;
 }
 .el-table .warning-row {
-  background: oldlace;
+  background: #FFFF80;
 }
 /* 选中某行时的背景色*/
 .el-table__body tr.current-row>td {

+ 170 - 78
src/view/yunyin/shengchanguanli/gongdanziliao.vue

@@ -29,6 +29,29 @@
 <!--                <el-button type="primary" icon="Download" @click="exportToExcel" style="float: right;">导出到Excel</el-button>-->
 <!--                <el-dialog v-model="dialogexportToExcel" title="导出到Excel" width="50%">-->
 
+                <el-button type="primary" icon="edit" @click="onhqcpzlclick" style="margin-left: 10px">印用产品资料</el-button>
+                <el-dialog v-model="onhqcpzllist" title="获取产品资料" width="50%">
+                  <div style="display: flex; flex-direction: column; align-items: center; height: 100%;">
+                    <!-- 其他内容 -->
+
+
+                    <el-form-item label=" " prop="processName">
+                      <el-input v-model="hqcpzlformData['gdbh']" disabled :clearable="true" placeholder="" style="width: 100%;" />
+                    </el-form-item>
+
+                    <div style="width: 100%; display: flex; justify-content: center; align-items: flex-end; height: 35%;">
+                      <div slot="footer" class="dialog-footer" style="text-align: center;">
+                        <el-button type="primary" @click="hqcpzlhandleConfirm">执行</el-button>
+                        <el-button @click="hqcpzlhandleCancel">放弃</el-button>
+                      </div>
+                    </div>
+
+                  </div>
+                </el-dialog>
+
+
+
+
 <!--                </el-dialog>-->
               </el-form-item>
             </el-form>
@@ -163,29 +186,31 @@
           </el-tabs>
 
          <!-- 弹窗 -->
-         <el-dialog v-model="dialogFormVisible" :before-close="closeDialog" style="width: 1000px;" :title="type==='create'?'添加工单资料':'修改工单资料'" destroy-on-close>
+         <el-dialog v-model="dialogFormVisible"
+                    :before-close="closeDialog"
+                    style="width: 1000px;" :title="type==='create'?'添加工单资料':'修改工单资料'" destroy-on-close>
            <el-row>
-             <el-form :model="formData" label-position="right" ref="elFormRef" :rules="rule" >
+             <el-form :model="scgdformData" label-position="right" ref="elFormRef" :rules="rule" >
 				<!-- 第一排 -->
                 <el-row :gutter="20">
                   <el-col :span="6">
                     <el-form-item label="重点工单:" prop="keyOrder">
-                      <el-input v-model="formData.keyOrder" :clearable="true" placeholder=""/>
+                      <el-input v-model="scgdformData['重点工单']" :clearable="true" placeholder=""/>
                     </el-form-item>
                   </el-col>
                   <el-col :span="7">
                     <el-form-item label="开单日期" prop="orderDate">
-                      <el-date-picker v-model="formData.orderDate" type="date" placeholder="选择日期" :clearable="true"  />
+                      <el-date-picker v-model="scgdformData['开单日期']" type="date" placeholder="选择日期" :clearable="true"  />
                     </el-form-item>
                   </el-col>
                   <el-col :span="5">
                     <el-form-item label="工单编号:" prop="orderNumber">
-                      <el-input v-model="formData.orderNumber" :clearable="true" placeholder="" />
+                      <el-input v-model="scgdformData['工单编号']" :clearable="true" placeholder="" />
                     </el-form-item>
                   </el-col>
                   <el-col :span="5">
                     <el-form-item label="生产类型:" prop="productionType">
-                      <el-input v-model="formData.productionType" :clearable="true" placeholder="" />
+                      <el-input v-model="scgdformData['生产类型']" :clearable="true" placeholder="" />
                     </el-form-item>
                   </el-col>
                 </el-row>
@@ -194,12 +219,12 @@
 				  <el-row :gutter="20">
 					<el-col :span="6">
 					  <el-form-item label="客户代号:" prop="customerCode">
-						<el-input v-model="formData.customerCode" :clearable="true" placeholder=""  />
+						<el-input v-model="scgdformData['客户代号']" :clearable="true" placeholder=""  />
 					  </el-form-item>
 					</el-col>
 					<el-col :span="14">
 					  <el-form-item label="客户名称:" prop="customerName">
-						<el-input v-model="formData.customerName" :clearable="true" placeholder=""  />
+						<el-input v-model="scgdformData['客户名称']" :clearable="true" placeholder=""  />
 					  </el-form-item>
 					</el-col>
 				  </el-row>
@@ -208,12 +233,12 @@
 				  <el-row :gutter="20">
 					<el-col :span="6">
 					  <el-form-item label="产品代码:" prop="productCode">
-						<el-input v-model="formData.productCode" :clearable="true" placeholder=""/>
+						<el-input v-model="scgdformData['产品代号']" :clearable="true" placeholder=""/>
 					  </el-form-item>
 					</el-col>
 					<el-col :span="14">
 					  <el-form-item label="产品名称:" prop="productName">
-						<el-input v-model="formData.productName" :clearable="true" placeholder="" />
+						<el-input v-model="scgdformData['产品名称']" :clearable="true" placeholder="" />
 					  </el-form-item>
 					</el-col>
 				  </el-row>
@@ -222,12 +247,12 @@
                   <el-row :gutter="20">
                     <el-col :span="6">
                       <el-form-item label="印件代码:" prop="customerCode">
-                        <el-input v-model="formData.customerCode" :clearable="true" placeholder="" />
+                        <el-input v-model="scgdformData['印件代号']" :clearable="true" placeholder="" />
                       </el-form-item>
                     </el-col>
                     <el-col :span="14">
                       <el-form-item label="印件名称:" prop="customerName">
-                        <el-input v-model="formData.customerName" :clearable="true" placeholder=""  />
+                        <el-input v-model="scgdformData['印件名称']" :clearable="true" placeholder=""  />
                       </el-form-item>
                     </el-col>
                   </el-row>
@@ -236,22 +261,22 @@
 				  <el-row :gutter="20">
 				    <el-col :span="6">
 				      <el-form-item label="订单数量:" prop="orderQuantity">
-				        <el-input v-model="formData.orderQuantity" :clearable="true" placeholder="" style="width: 140px;" />
+				        <el-input v-model="scgdformData['订单数量']" :clearable="true" placeholder="" style="width: 140px;" />
 				      </el-form-item>
 				    </el-col>
 				    <el-col :span="6">
 				      <el-form-item label="交货日期:" prop="deliveryDate">
-				        <el-input v-model="formData.deliveryDate" :clearable="true" placeholder="" style="width: 140px;" />
+				        <el-input v-model="scgdformData['交货日期']" :clearable="true" placeholder="" style="width: 140px;" />
 				      </el-form-item>
 				    </el-col>
 				    <el-col :span="6">
 				      <el-form-item label="投料率:" prop="feedRate">
-				        <el-input v-model="formData.feedRate" :clearable="true" placeholder="" style="width: 140px;" />
+				        <el-input v-model="scgdformData['投料率']" :clearable="true" placeholder="" style="width: 140px;" />
 				      </el-form-item>
 				    </el-col>
 				    <el-col :span="6">
 				      <el-form-item label="平均合格率:" prop="passRate">
-				        <el-input v-model="formData.passRate" :clearable="true" placeholder="" style="width: 140px;" />
+				        <el-input v-model="scgdformData['平均合格率']" :clearable="true" placeholder="" style="width: 140px;" />
 				      </el-form-item>
 				    </el-col>
 				  </el-row>
@@ -261,22 +286,23 @@
                   <el-row :gutter="20">
                     <el-col :span="6">
                       <el-form-item label="平张投料:" prop="flatFeed">
-                        <el-input v-model="formData.flatFeed" :clearable="true" placeholder="" style="width: 140px;" />
+                        <el-input v-model="scgdformData['平张投料']" :clearable="true" placeholder="" style="width: 140px;" />
                       </el-form-item>
                     </el-col>
                     <el-col :span="6">
                       <el-form-item label="万小张:" prop="perTenThousand">
-                        <el-input v-model="formData.perTenThousand" :clearable="true" placeholder="" style="width: 140px;" />
+                        <el-input v-model="scgdformData['万小张']" :clearable="true" placeholder="" style="width: 140px;" />
+                        <el-input v-model="scgdformData['单位']" :clearable="true" placeholder="" style="width: 140px;" />
                       </el-form-item>
                     </el-col>
                     <el-col :span="6">
                       <el-form-item label="投料大箱:" prop="feedBox">
-                        <el-input v-model="formData.feedBox" :clearable="true" placeholder="" style="width: 140px;" />
+                        <el-input v-model="scgdformData['折合大箱']" :clearable="true" placeholder="" style="width: 140px;" />
                       </el-form-item>
                     </el-col>
                     <el-col :span="6">
                       <el-form-item label="库存大箱:" prop="stockBox">
-                        <el-input v-model="formData.stockBox" :clearable="true" placeholder="" style="width: 140px;" />
+                        <el-input v-model="scgdformData['库存大箱']" :clearable="true" placeholder="" style="width: 140px;" />
                       </el-form-item>
                     </el-col>
                   </el-row>
@@ -285,7 +311,7 @@
                   <el-row :gutter="20">
                     <el-col :span="20">
                       <el-form-item label="销售订单号:" prop="salesOrder">
-                        <el-input v-model="formData.salesOrder" :clearable="true" placeholder="" />
+                        <el-input v-model="scgdformData['销售订单号']" :clearable="true" placeholder="" />
                       </el-form-item>
                     </el-col>
                   </el-row>
@@ -294,7 +320,7 @@
                   <el-row :gutter="20">
                     <el-col :span="20">
                       <el-form-item label="警语版面:" prop="warningLayout">
-                        <el-input v-model="formData.warningLayout" :clearable="true" placeholder=""  />
+                        <el-input v-model="scgdformData['警语版面']" :clearable="true" placeholder=""  />
                       </el-form-item>
                     </el-col>
                   </el-row>
@@ -303,12 +329,12 @@
                   <el-row :gutter="20">
                     <el-col :span="6">
                       <el-form-item label="版本号:" prop="versionNumber">
-                        <el-input v-model="formData.versionNumber" :clearable="true" placeholder="" />
+                        <el-input v-model="scgdformData['版本号']" :clearable="true" placeholder="" />
                       </el-form-item>
                     </el-col>
                     <el-col :span="14">
                       <el-form-item label="客户ERP编码:" prop="customerErpCode">
-                        <el-input v-model="formData.customerErpCode" :clearable="true" placeholder=""  />
+                        <el-input v-model="scgdformData['客户ERP编码']" :clearable="true" placeholder=""  />
                       </el-form-item>
                     </el-col>
                   </el-row>
@@ -317,7 +343,7 @@
                   <el-row :gutter="20">
                     <el-col :span="8">
                       <el-form-item label="码源数量:" prop="codeSourceQuantity">
-                        <el-input v-model="formData.codeSourceQuantity" :clearable="true" placeholder="" style="width: 170px;" />
+                        <el-input v-model="scgdformData['码源数量']" :clearable="true" placeholder="" style="width: 170px;" />
                       </el-form-item>
                     </el-col>
                   </el-row>
@@ -326,7 +352,7 @@
                   <el-row :gutter="20">
                     <el-col :span="20">
                       <el-form-item label="进程备注:" prop="processNote">
-                        <el-input v-model="formData.processNote" :clearable="true" placeholder=""  />
+                        <el-input v-model="scgdformData['进程备注']" :clearable="true" placeholder=""  />
                       </el-form-item>
                     </el-col>
                   </el-row>
@@ -335,7 +361,7 @@
                  <el-row :gutter="20">
                    <el-col :span="20">
                      <el-form-item label="备注说明:" prop="remark">
-                       <el-input type="textarea" v-model="formData.remark" :rows="4" :clearable="true" placeholder="请输入备注说明" style="width: 100%;" />
+                       <el-input type="textarea" v-model="scgdformData['备注']" :rows="4" :clearable="true" placeholder="请输入备注说明" style="width: 100%;" />
                      </el-form-item>
                    </el-col>
                  </el-row>
@@ -386,15 +412,56 @@ import {createCompany, deleteCompany, deleteCompanyByIds, updateCompany, findCom
 import { getDictFunc, formatDate, formatBoolean, filterDict, ReturnArrImg, onDownloadFile } from '@/utils/format'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import { ref, reactive } from 'vue'
-import {DataList, WorkList, Craft, Printed,Bom} from "@/api/yunyin/yunying";
+import {DataList, WorkList, Craft, Printed, Bom, DataCorrection, setProductStatus} from "@/api/yunyin/yunying";
 defineOptions({name: 'Company'})
 // =========== 导出Excel表格 ===========
-const exportToExcel = () => {
-  console.log('点击了导出按钮')
-  dialogexportToExcel.value = true;
-}
-// 导出Excel弹窗
-const dialogexportToExcel = ref(false)
+// const exportToExcel = () => {
+//   console.log('点击了导出按钮')
+//   dialogexportToExcel.value = true;
+// }
+// // 导出Excel弹窗
+// const dialogexportToExcel = ref(false)
+
+
+// =========== 印用产品资料 ===========
+const onhqcpzllist = ref(false);
+const hqcpzlformData = reactive({
+  gdbh: '',//当工单编号
+});
+const DataLists = async () => {
+  const DataListss = await DataList({Gd_gdbh:_Gd_gdbh.value});
+  // hqcpzlformData.gdbh = DataListss
+  console.log(DataListss)
+};
+// const onhqcpzlclick = () => {
+const onhqcpzlclick = async () => {
+  onhqcpzllist.value = true;
+  DataLists()
+  // try {
+  //   const data = await DataList(Gd_gdbh:_Gd_gdbh.value);
+  //   console.log(data);
+  // } catch (error) {
+  //   console.error(error);
+  // }
+
+
+  // if(_Gd_gdbh.value == null){
+  //   onstatuslist.value = false;
+  //   alert('请选择具体的工单后,再操作此功能');
+  // }else{
+  //   hqcpzlformData.process = _Gd_gdbh.value;
+  //   onstatuslist.value = true;
+  // }
+};
+// 获取产品资料放弃
+const hqcpzlhandleCancel = () => {
+  onhqcpzllist.value = false;
+};
+//获取产品资料执行
+const hqcpzlhandleConfirm = async () => {
+  onhqcpzllist.value = false;
+};
+
 // =========== 左侧树侧形结构 ===========
 const treeData = reactive({data:[]});
 // const treeData = reactive({});
@@ -409,7 +476,7 @@ const DataListdata = async () => {
     for(let key in data.data)
     {
       let temp = data.data[key].split('【');
-      console.log('tree data list:>>',temp)
+      // console.log('tree data list:>>',temp)
       let object = {};
       object.id = temp[0];
       object.label = data.data[key]
@@ -427,7 +494,6 @@ DataListdata();
 //点击左侧树形获取编号
 const tableData = reactive([])
 const handleNodeClick = async (node) => {
-  // const Gd_khdh = node.Gd_khdh;
   const Gd_khdh = '0201';
   try {
     const WorkListdata = await WorkList({ Gd_khdh:Gd_khdh});//接口调用函数
@@ -444,7 +510,11 @@ const yjtableData = ref([])
 const gytableData = ref([])
 //BOM资料
 const bomtableData = ref([])
+//全局调用工单编号
+const _Gd_gdbh = ref(null)
+//点击表格行 获取下方表格数据列表
 const tableRowClick = async (row) => {
+  _Gd_gdbh.value = row.工单编号;
   const Gd_gdbh = row.工单编号;
   const yjres = await Printed({ Gd_gdbh:Gd_gdbh});
   const gyres = await Craft({ Gd_gdbh:Gd_gdbh });
@@ -468,12 +538,12 @@ const handleSizeChange = (val) => {
   DataListdata();
 };
 
-// 自动化生成的字典(可能为空)以及字段
-const formData = ref({
-        address: '',
-        image: '',
-        name: '',
-        })
+// // 自动化生成的字典(可能为空)以及字段
+// const formData = ref({
+//         address: '',
+//         image: '',
+//         name: '',
+//         })
 
 // 验证规则
 const rule = reactive({
@@ -549,53 +619,75 @@ const handleSelectionChange = (val) => {
 // 行为控制标记(弹窗内部需要增还是改)
 const type = ref('')
 
-//编辑
+//=========表格列表修改========
+let scgdformData = reactive({})
 const updateCompanyFunc = async(row) => {
-  console.log(row);
-	dialogFormVisible.value = true
-}
+  const Gd_gdbh = row['工单编号'];
+  const tableCompanyList = await DataCorrection({ Gd_gdbh: Gd_gdbh})
+  scgdformData = tableCompanyList.data;
+  console.log(scgdformData);
+  console.log(scgdformData['万小张']);
 
+  dialogFormVisible.value = true
+}
 // 弹窗控制标记
 const dialogFormVisible = ref(false)
-
-// 查看详情控制标记
-const detailShow = ref(false)
-
-// 打开详情弹窗
-const openDetailShow = () => {
-  detailShow.value = true
-}
-
-// 打开详情
-const getDetails = async (row) => {
-   detailShow.value = true
-}
-
-// 关闭详情弹窗
-const closeDetailShow = () => {
-  detailShow.value = false
-  formData.value = {
-          address: '',
-          image: '',
-          name: '',
-          }
-}
-
 // 打开弹窗
 const openDialog = () => {
-    type.value = 'create'
-    dialogFormVisible.value = true
+  type.value = 'create'
+  dialogFormVisible.value = true
 }
 
 // 关闭弹窗
 const closeDialog = () => {
-    dialogFormVisible.value = false
-    formData.value = {
-        address: '',
-        image: '',
-        name: '',
-        }
+  dialogFormVisible.value = false
+  formData.value = {
+    address: '',
+    image: '',
+    name: '',
+  }
 }
+
+
+
+// // 查看详情控制标记
+// const detailShow = ref(false)
+//
+// // 打开详情弹窗
+// const openDetailShow = () => {
+//   detailShow.value = true
+// }
+//
+// // 打开详情
+// const getDetails = async (row) => {
+//    detailShow.value = true
+// }
+//
+// // 关闭详情弹窗
+// const closeDetailShow = () => {
+//   detailShow.value = false
+//   formData.value = {
+//           address: '',
+//           image: '',
+//           name: '',
+//           }
+// }
+
+// // 打开弹窗
+// const openDialog = () => {
+//     type.value = 'create'
+//     dialogFormVisible.value = true
+// }
+//
+// // 关闭弹窗
+// const closeDialog = () => {
+//     dialogFormVisible.value = false
+//     formData.value = {
+//         address: '',
+//         image: '',
+//         name: '',
+//         }
+// }
 // 弹窗确定
 const enterDialog = async () => {
      elFormRef.value?.validate( async (valid) => {