liuhairui 1 anno fa
parent
commit
270ff1b7aa

+ 250 - 0
src/view/yunyin/shengchanguanli/components/addGongYi.vue

@@ -0,0 +1,250 @@
+<template>
+  <!-- 新增工艺资料弹窗 -->
+  <el-dialog v-model="visible" :before-close="()=> visible = false" style="width: 1100px;" :title="'新增工艺资料'" destroy-on-close>
+    <el-form>
+      <div>
+        <el-form-item label="印件编号:"  class="mab" prop="keyOrder">
+          <el-select v-model="form.yjno" id="印件编号" @keydown="add_gyzlent($event, '质量隐患', '印件编号', '工序编号')" @change="changeHandle">
+            <el-option v-for="item in yjList"
+                       :label="item.name"  :value="item.no"
+            />
+          </el-select>
+        </el-form-item>
+        <div style="display: flex; gap: 0px;">
+          <el-form-item label="工序编号:" class="mab" prop="keyOrder">
+            <el-input v-model="form['工序']"  id="工序编号" @keydown="add_gyzlent($event, '印件编号', '工序编号', '重点工序')"  style="width: 100px;"/>
+          </el-form-item>
+          <el-form-item label="重点工序:"  class="mab" prop="keyOrder" label-width=" 90">
+            <el-select  v-model="form['重点工序']" id="重点工序"  @keydown="add_gyzlent($event, '', '重点工序', '开数')"  style="width: 140px;">
+              <el-option value=""></el-option>
+              <el-option value="重点工序">重点工序</el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="备选工序:"  class="mab" prop="isBanciSelected" label-width=" 90">
+            <el-checkbox v-model="form['备选工序']"></el-checkbox>
+          </el-form-item>
+          <el-form-item label="加工开数:"  class="mab" prop="keyOrder" label-width=" 125">
+            <el-input  v-model="form['开数']"  style="width: 100px;" id="开数"  @keydown="add_gyzlent($event, '重点工序  ', '开数', '联数')" />
+          </el-form-item>
+          <el-form-item label="加工联数:"  class="mab" prop="keyOrder" label-width=" 80">
+            <el-input  v-model="form['联数']"  style="width: 100px;" id="联数"  @keydown="add_gyzlent($event, '开数', '联数', '车间名称')" />
+          </el-form-item>
+        </div>
+        <div style="display: flex; gap: 0px;">
+          <el-form-item label="车间名称:"  class="mab" prop="keyOrder">
+            <el-tree-select
+                v-model="form['车间名称']"
+                :data="cjList"
+                :render-after-expand="false"
+                @change="selectHandle"
+                id="车间名称"   @keydown="add_gyzlent($event, '联数', '车间名称', '工序名称')"
+                style="width: 240px"
+            >
+            </el-tree-select>
+          </el-form-item>
+          <el-form-item label="工艺名称:"  class="mab" prop="keyOrder" label-width=" 90">
+            <el-input disabled v-model="form['工艺名称']"  style="width: 140px;"/>
+          </el-form-item>
+          <el-form-item label="工序名称:"  class="mab" prop="keyOrder" label-width=" 90">
+            <el-input  v-model="form['工序名称']"  style="width: 300px;" id="工序名称"   @keydown="add_gyzlent($event, '车间名称', '工序名称', '设备编号')" />
+          </el-form-item>
+          <el-form-item label="计损色数"  class="mab" prop="keyOrder" label-width=" 80">
+            <el-input disabled v-model="form['计损色数']" style="width: 90px;"/>
+          </el-form-item>
+        </div>
+        <el-form-item label="设备编号:"  class="mab" prop="remark">
+          <el-select v-model="form['设备编号']" multiple
+                     id="设备编号"  @keydown="add_gyzlent($event, '工序名称', '设备编号', '工序损耗')"
+                     style="flex: 1; height: auto;">
+            <el-option
+                @keydown.tab.prevent="sbbhclick"
+                @click="sbbhclick"
+                v-for="(item, index) in gdzl_MachineList_address"
+                :key="index"
+                :label="item.split('-->')[0].trim()"
+                :value="item.split('-->')[0].trim()">
+              {{ item }}
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="工序损耗:"  class="mab" prop="keyOrder" >
+          <el-input v-model="form['shdh']"  style="width: 10%;" id="工序损耗"  @keydown="add_gyzlent($event, '设备编号', '工序损耗', '装版工时')"/>
+          <el-input disabled v-model="form['工序损耗名称']"  style="width: 88.7%;margin-left: 10px"/>
+        </el-form-item>
+        <div style="display: flex; gap: 0px;">
+          <el-form-item label="损耗系数:"  class="mab" prop="keyOrder">
+            <el-input disabled v-model="form['损耗系数']"  style="flex: 1;" />
+          </el-form-item>
+          <el-form-item label="难度系数"  class="mab" prop="keyOrder">
+            <el-input disabled v-model="form['难度系数']"  style="flex: 1;" />
+          </el-form-item>
+          <el-form-item label="装版工时:"  class="mab" prop="keyOrder">
+            <el-input  v-model="form['装版工时']"  style="flex: 1;" id="装版工时"  @keydown="add_gyzlent($event, '工序损耗', '装版工时', '排产小时产能')"/>
+          </el-form-item>
+          <el-form-item label="排产小时产能:"  class="mab" prop="keyOrder" label-width=" 120px">
+            <el-input  v-model="form['小时产能']"  style="flex: 1;" id="排产小时产能"  @keydown="add_gyzlent($event, '装版工时', '排产小时产能', '备注')"/>
+          </el-form-item>
+          <el-form-item label="印刷方式"  class="mab" prop="keyOrder">
+            <el-input disabled v-model="form['印刷方式']"  style="flex: 1;"/>
+          </el-form-item>
+          <el-form-item label="版距"  class="mab" prop="keyOrder">
+            <el-input disabled v-model="form['版距']"  style="flex: 1;"/>
+          </el-form-item>
+        </div>
+        <el-form-item label="工序备注:"  class="mab" prop="remark">
+          <el-input  type="textarea" resize="none" v-model="form['备注']" rows="3" clearable   style="flex: 1;resize: none" id="备注"  @keydown="add_gyzlent($event, '排产小时产能', '备注', '质量要求')"/>
+        </el-form-item>
+        <el-form-item  label="质量要求:"  class="mab" prop="remark">
+          <el-input  type="textarea" resize="none" v-model="form['质量要求']" rows="2" clearable   style="flex: 1;resize: both;" id="质量要求"  @keydown="add_gyzlent($event, '备注', '质量要求', '质量隐患')"/>
+        </el-form-item>
+        <el-form-item label="质量隐患:"  class="mab" prop="remark">
+          <el-input  type="textarea" resize="none" v-model="form['质量隐患']" rows="2" clearable   style="flex: 1;" id="质量隐患"  @keydown="add_gyzlent($event, '质量要求', '质量隐患', '印件编号')"/>
+        </el-form-item>
+      </div>
+    </el-form>
+
+    <template #footer>
+      <div class="dialog-footer" style="text-align: right;top: auto">
+        <el-button @click="add_gdgycloseDialog">取 消</el-button>
+        <el-button type="primary" @click="add_gdgyenterDialog">确 定</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+
+<script setup>
+import {ref, reactive} from 'vue'
+import {gdzl_MachineList, PrintDetailList, getDepartName, capacityList} from "@/api/yunyin/yunying";
+
+const form = reactive({})
+const visible = ref(false)
+const id = ref()
+
+const gxList = ref([])
+const yjList = ref()
+const cjList = ref([
+  {
+    label: '标准工艺',
+    value: '标准工艺',
+    children: []
+  }
+])
+const gdzl_MachineList_address = ref()
+
+//新增工艺资料弹窗 键盘 input框跳转
+const add_gyzlent = (event,id1,id2,id3) => {
+  if (event.keyCode === 13 || event.keyCode === 40) { // Enter 或向下箭头
+    if(id3!=''){
+      document.getElementById(id3).focus()
+    }
+  } 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()
+    }
+    // console.log(document.getElementById(id2).value)
+  }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 open = async (gdbh, gxlist) => {
+  id.value = gdbh
+  const res = await PrintDetailList({workOrder: id.value})
+  const chejian = await getDepartName()
+  cjList.value = [
+    {
+      label: '标准工艺',
+      value: '标准工艺',
+      children: []
+    }
+  ]
+  initChejian(chejian.data['标准工艺'])
+  yjList.value = res.data
+  gxList.value = gxlist
+  visible.value = true
+}
+
+const selectHandle = async (value)=>{
+  function findParentInTree(tree, targetValue) {
+    for (let node of tree) {
+      // 如果找到了目标值,返回当前节点作为上级
+      if (node.value === targetValue) {
+        return node;
+      }
+
+      // 如果当前节点有子节点,递归地在子节点中查找
+      if (node.children && node.children.length > 0) {
+        let parent = findParentInTree(node.children, targetValue);
+        if (parent) return parent
+      }
+    }
+
+    // 如果没有找到目标值或其上级,返回null
+    return null;
+  }
+
+  const node = findParentInTree(cjList.value, value)
+  form['车间名称'] = node.parent
+  form['工艺名称'] = node.label
+  form['设备编号'] = []
+
+  //通过车间名称查询机台
+  const MachineList_jitai = await gdzl_MachineList({address:node.parent});
+  gdzl_MachineList_address.value = MachineList_jitai.data;
+}
+
+const initChejian = (data) => {
+  Object.keys(data).map( (name, index)=>{
+    const tmp = {
+      label: name, value: name, children: []
+    }
+    data[name].map(item => {
+      tmp.children.push({
+        label: item, value: item,parent: name,
+      })
+    })
+    cjList.value[0].children.push(tmp)
+  })
+}
+
+const changeHandle = (v) => {
+  const no = '0' + v
+  let list = gxList.value.map(item => {
+    const yj = item.split('-')[0]
+    if (yj === no) return Number(item.split('-')[1])
+  })
+  form['工序'] = (list.sort((a, b) => b-a)[0] + 1)
+}
+
+const sbbhclick = () => {
+  _capacityList();
+}
+
+
+const _capacityList = async () => {
+  if(gdgyformData['设备编号'] === ''){
+    return false;
+  }else{
+    _capacityListsbbh.value = gdgyformData['设备编号'].join(' ');
+    const editProductedit_machine = await capacityList({machine:_capacityListsbbh.value});
+    gdgyformData['小时产能'] = editProductedit_machine.data;
+  }
+
+};
+
+defineExpose({ open })
+</script>
+
+<style scoped>
+
+</style>

File diff suppressed because it is too large
+ 107 - 0
src/view/yunyin/shengchanguanli/components/print.vue


+ 12 - 90
src/view/yunyin/shengchanguanli/gongdanshengchan.vue

@@ -28,7 +28,7 @@
                 <el-button type="primary" title="给担负起那设备做生产任务排程" icon="edit"  @click="oncjsbpcClick" class="bt">车间设备制程排序</el-button>
               </div>
 
-              <el-button type="primary" title="打印生产工单" disabled icon="edit" @click="pd_gdprintonClick" class="bt">工单打印</el-button>
+              <el-button type="primary" title="打印生产工单" icon="edit" @click="pd_gdprintonClick" class="bt">工单打印</el-button>
               <el-button type="primary" icon="edit" @click="pd_gxclhconClick" class="bt">工序产量核查</el-button>
               <el-button type="primary" icon="edit" @click="pd_lcdlistonClick" class="bt">流程单查询</el-button>
 
@@ -159,54 +159,6 @@
             </div>
 
           </el-dialog>
-          <!--工单打印【弹窗】-->
-          <el-dialog v-model="print_gdlist" title="生产工单打印" style="width: 700px;height: 400px;">
-
-            <div style="border: 1px black solid;width: 600px;">
-              <el-row>
-                <el-form-item label="工单编号:" prop="currentProcess" class="mab">
-                  <el-input v-model="print_formData['gdbh']"  @keyup.enter="print_ProductValue" placeholder="" />
-                </el-form-item>
-              </el-row>
-              <el-row>
-                <el-form-item label="印件号:" prop="currentProcess" class="mab" label-width="70">
-                  <el-input v-model="print_formData['yjh']"  @keyup.enter="print_ProductValue" placeholder="" />
-                </el-form-item>
-                <el-form-item label="终止工序号:" prop="currentProcess" class="mab">
-                  <el-input v-model="print_formData['zzgxh']"  @keyup.enter="print_ProductValue" placeholder="" />
-                </el-form-item>
-              </el-row>
-              <el-row>
-                <el-form-item label="印件名称:" prop="currentProcess" class="mab">
-                  <el-input v-model="print_formData['yjmc']"  @keyup.enter="print_ProductValue" placeholder="" />
-                </el-form-item>
-              </el-row>
-              <el-row>
-                <el-form-item label="报表输出到:" prop="currentProcess">
-                  <el-radio-group v-model="status" style="margin-left: 10px;">
-                    <el-radio label="显示器">显示器</el-radio>
-                    <el-radio label="打印机">打印机</el-radio>
-                  </el-radio-group>
-                </el-form-item>
-              </el-row>
-              <el-row>
-                <el-form-item label="制单:" prop="currentProcess" class="mab" label-width="70">
-                  <el-input v-model="print_formData['zd']"  @keyup.enter="print_ProductValue" placeholder="" />
-                </el-form-item>
-              </el-row>
-              <el-row>
-                <el-form-item label="审核:" prop="currentProcess" class="mab" label-width="70">
-                  <el-input v-model="print_formData['sh']"  @keyup.enter="print_ProductValue" placeholder="" />
-                </el-form-item>
-              </el-row>
-            </div>
-            <div class="dialog-footer" style="text-align: right; margin-top: 40px;">
-              <el-button @click="print_handleCancel">取消</el-button>
-              <el-button type="primary"  @click="print_handleConfirm">确认</el-button>
-            </div>
-
-          </el-dialog>
-
 
           <!--工序产量核查【弹窗】-->
           <el-dialog v-model="pd_gxclhclist" title="工序产量核查" style="width: 100%;height: 100%;margin: 0px;padding: 0px">
@@ -449,6 +401,8 @@
 
       </layout>
     </layout>
+
+    <PrintPage ref="printPageRef" />
   </div>
 </template>
 <script>
@@ -505,8 +459,12 @@ import {
   getOrderProcessLeft,
   getOrderProcessRight
 } from "@/api/yunyin/yunying";
+
+import PrintPage from './components/print.vue'
 defineOptions({name: 'Company'})
 
+const printPageRef = ref()
+
 // =========== 左侧树侧形结构 ===========
 const sctreeData = ref([
   {
@@ -986,47 +944,6 @@ const ZP_handleChange = (arr) => {
   _ZC_xscn.value = xscn;
 }
 
-
-//==============工单打印=============
-const print_gdlist = ref(false);
-const print_formData = ref({
-  gdbh: '',
-  yjh: '',
-  zzgxh: '',
-  yjmc: '',
-  zd: '',
-  sh: '',
-  outputType: ''
-});
-//工单打印按钮
-const pd_gdprintonClick = async () => {
-  console.log(213)
-  // print_formData['gdbh'] = _Gd_gdbh.value;
-  print_formData['gdbh'] = '2310777';
-  print_gdlist.value = true;
-}
-//工单打印回车
-const print_ProductValue = async () => {
-
-}
-//工单打印确定
-const print_handleConfirm = async () => {
-  // print_gdlist.value = false;
-}
-//工单打印取消
-const print_handleCancel = async () => {
-  print_gdlist.value = false;
-}
-//调用打印接口
-const _PrintJobOrder = async () => {
-  const print_PrintJobOrder = await PrintJobOrder();
-  console.log(print_PrintJobOrder)
-  print_gdlist.value = false;
-}
-
-
-
-
 //=========工序产量核查===========
 const pd_gxclhclist = ref(false);
 const gxclhc_Data = ref([]);
@@ -1368,6 +1285,11 @@ const cjsbpcformData = reactive({
   banci: '',
   isBanciSelected: false,
 });
+
+const pd_gdprintonClick = () => {
+  printPageRef.value.open(_Gd_gdbh.value)
+}
+
 //车间设备排程【按钮】
 const oncjsbpcClick = () => {
   cjsbpcformData['sbdh'] = _machine.value;

File diff suppressed because it is too large
+ 134 - 2718
src/view/yunyin/shengchanguanli/gongdanziliao.vue


Some files were not shown because too many files changed in this diff