From ecaf70a4e7d72ecc1c18302fef31b3baab8e6513 Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期四, 13 十月 2022 11:01:23 +0800
Subject: [PATCH] 1.看板新增自动刷新2小时一次

---
 src/views/kb/bzcj.vue   |    7 
 src/views/kb/zpcj.vue   |    7 
 /dev/null               | 2394 ----------------------------------------------
 src/views/scgl/cngh.vue |  675 ++++++++++++
 src/views/kb/cgdd.vue   |    5 
 src/views/kb/ckgl.vue   |    5 
 src/views/kb/dccj.vue   |    7 
 src/views/kb/zhkb.vue   |    5 
 src/router/index.js     |    6 
 9 files changed, 714 insertions(+), 2,397 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index 11b18f9..8dc5096 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -455,6 +455,12 @@
         code: '1074',
         component: () => import('@/views/scgl/gdplgb'),
         meta: { code: '1074', title: 'MES宸ュ崟鎵归噺鍏抽棴', icon: '', keepAlive: true }
+      }, {
+        path: 'cngh',
+        name: 'CNGHCancel',
+        code: '1075',
+        component: () => import('@/views/scgl/cngh'),
+        meta: { code: '1075', title: '浜ц兘瑙勫垝', icon: '', keepAlive: true }
       }
     ]
   },
diff --git a/src/views/kb/bzcj.vue b/src/views/kb/bzcj.vue
index 9e0a854..cdb18ff 100644
--- a/src/views/kb/bzcj.vue
+++ b/src/views/kb/bzcj.vue
@@ -3,7 +3,7 @@
     <div class="kb_dashboard">
       <div class="kb_header">
         <div class="flex_c_c kb_header_text">
-          杞﹂棿缁煎悎鐪嬫澘
+          鍖呰杞﹂棿鐪嬫澘
         </div>
         <div class="kb_headerPic" />
         <div class="kb_headTime">
@@ -354,6 +354,11 @@
 
   created() {
     setInterval(this.getNowTime, 1000)
+
+    // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+    setInterval(() => {
+      window.location.reload()
+    }, 1000 * 60 * 120)
   },
   mounted() {
     // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
diff --git a/src/views/kb/cgdd.vue b/src/views/kb/cgdd.vue
index ddae73d..3c48a08 100644
--- a/src/views/kb/cgdd.vue
+++ b/src/views/kb/cgdd.vue
@@ -284,6 +284,11 @@
 
   created() {
     setInterval(this.getNowTime, 1000)
+
+    // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+    setInterval(() => {
+      window.location.reload()
+    }, 1000 * 60 * 120)
   },
   mounted() {
     window.addEventListener('online', this.updateOnlineStatus)
diff --git a/src/views/kb/ckgl.vue b/src/views/kb/ckgl.vue
index dc0064d..40e9ddd 100644
--- a/src/views/kb/ckgl.vue
+++ b/src/views/kb/ckgl.vue
@@ -349,6 +349,11 @@
 
   created() {
     setInterval(this.getNowTime, 1000)
+
+    // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+    setInterval(() => {
+      window.location.reload()
+    }, 1000 * 60 * 120)
   },
   mounted() {
     window.addEventListener('online', this.updateOnlineStatus)
diff --git a/src/views/kb/dccj.vue b/src/views/kb/dccj.vue
index d61d182..047a598 100644
--- a/src/views/kb/dccj.vue
+++ b/src/views/kb/dccj.vue
@@ -3,7 +3,7 @@
     <div class="kb_dashboard">
       <div class="kb_header">
         <div class="flex_c_c kb_header_text">
-          杞﹂棿缁煎悎鐪嬫澘
+          鐢垫睜杞﹂棿鐪嬫澘
         </div>
         <div class="kb_headerPic" />
         <div class="kb_headTime">
@@ -354,6 +354,11 @@
 
   created() {
     setInterval(this.getNowTime, 1000)
+
+    // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+    setInterval(() => {
+      window.location.reload()
+    }, 1000 * 60 * 120)
   },
   mounted() {
     // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
diff --git a/src/views/kb/zhkb.vue b/src/views/kb/zhkb.vue
index dd93c2e..1e27266 100644
--- a/src/views/kb/zhkb.vue
+++ b/src/views/kb/zhkb.vue
@@ -354,6 +354,11 @@
 
   created() {
     setInterval(this.getNowTime, 1000)
+
+    // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+    setInterval(() => {
+      window.location.reload()
+    }, 1000 * 60 * 120)
   },
   mounted() {
     // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
diff --git a/src/views/kb/zpcj.vue b/src/views/kb/zpcj.vue
index 4ba6d3f..91b0a6f 100644
--- a/src/views/kb/zpcj.vue
+++ b/src/views/kb/zpcj.vue
@@ -3,7 +3,7 @@
     <div class="kb_dashboard">
       <div class="kb_header">
         <div class="flex_c_c kb_header_text">
-          杞﹂棿缁煎悎鐪嬫澘
+          瑁呴厤杞﹂棿鐪嬫澘
         </div>
         <div class="kb_headerPic" />
         <div class="kb_headTime">
@@ -354,6 +354,11 @@
 
   created() {
     setInterval(this.getNowTime, 1000)
+
+    // 涓ゅ皬鏃剁湅鏉垮埛鏂颁竴娆�
+    setInterval(() => {
+      window.location.reload()
+    }, 1000 * 60 * 120)
   },
   mounted() {
     // 鐩戝惉缃戠粶鏄惁鍦ㄧ嚎
diff --git a/src/views/scgl/cngh.vue b/src/views/scgl/cngh.vue
new file mode 100644
index 0000000..342b692
--- /dev/null
+++ b/src/views/scgl/cngh.vue
@@ -0,0 +1,675 @@
+<template>
+  <div>
+    <div class="body" :style="{height:mainHeight+'px'}">
+      <div class="bodyTopButtonGroup" style="justify-content: space-between">
+        <el-button type="primary" icon="el-icon-setting" @click="setting('setting')">璁剧疆</el-button>
+        <!--        <el-button type="primary" icon="el-icon-circle-plus-outline" @click="add('add')">鏂板</el-button>-->
+        <!--        <el-button icon="el-icon-download" @click="upload">瀵煎叆</el-button>-->
+      </div>
+
+      <div class="bodyTopFormGroup">
+        <el-form
+          ref="form"
+          :model="form"
+          label-width="100px"
+          inline
+          style="display: flex;justify-content: space-between"
+        >
+          <div class="elForm" style="justify-content: flex-start">
+            <el-form-item label-width="70px" label="鐢熶骇杞﹂棿" style=" display: flex;">
+              <el-select v-model="form.OrgType" style="width: 200px" placeholder="璇烽�夋嫨">
+                <el-option
+                  v-for="item in OrgTypeArr"
+                  :key="item.code"
+                  :label="item.name"
+                  :value="item.code"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item label="鐢熶骇鍗曞厓" style=" display: flex;">
+              <el-input v-model="form.OrgName" placeholder="璇疯緭鍏�" style="width: 200px" />
+            </el-form-item>
+            <el-form-item label="鏈夋晥鐘舵��" style=" display: flex;">
+              <el-select v-model="form.OrgType" style="width: 200px" placeholder="璇烽�夋嫨">
+                <el-option
+                  v-for="item in OrgTypeArr"
+                  :key="item.code"
+                  :label="item.name"
+                  :value="item.code"
+                />
+              </el-select>
+            </el-form-item>
+
+          </div>
+          <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened?'5%':'10%'}">
+            <el-button type="primary" icon="el-icon-search" @click="search">鏌ヨ</el-button>
+            <el-button type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
+          </div>
+        </el-form>
+        <div
+          class="bodyTopFormExpand"
+        >
+          <!--          <svg-icon-->
+          <!--            v-show="mouseHoverType==='mouseout'"-->
+          <!--            style="cursor: pointer"-->
+          <!--            :icon-class="!isExpandForm?'doubleDown3':'doubleUp3'"-->
+          <!--            @mouseenter="mouseHoverType=$event.type"-->
+          <!--          />-->
+          <!--          <svg-icon-->
+          <!--            v-show="mouseHoverType==='mouseenter'"-->
+          <!--            style="cursor: pointer"-->
+          <!--            :icon-class="!isExpandForm?'doubleDown':'doubleUp'"-->
+          <!--            @click="isExpandForm=!isExpandForm"-->
+          <!--            @mouseout="mouseHoverType=$event.type"-->
+          <!--          />-->
+        </div>
+      </div>
+
+      <div class="elTableDiv">
+        <el-table
+          ref="tableDataRef"
+          class="tableFixed"
+          :data="tableData"
+          :style="{width: 100+'%',height:tableHeight+'px'}"
+          border
+          :height="tableHeight+'px'"
+          :row-class-name="tableRowClassName"
+          highlight-current-row
+          :header-cell-style="this.$headerCellStyle"
+          :cell-style="this.$cellStyle"
+          @sort-change="sortChange"
+        >
+          <el-table-column
+            prop="xh"
+            width="50"
+            fixed
+            label="搴忓彿"
+          />
+          <el-table-column
+            prop="sccj"
+            label="鐢熶骇杞﹂棿"
+            sortable="custom"
+            width="160"
+          />
+          <el-table-column
+            prop="scdy"
+            label="鐢熶骇鍗曞厓"
+            width="160"
+            sortable="custom"
+          />
+          <el-table-column
+            prop="mrfa"
+            label="榛樿鏂规"
+            sortable="custom"
+            width="240"
+          >
+            <template slot-scope="{row}">
+              <div style="display: flex;" @click="mrfaSearch(row)">
+                <el-input
+                  v-model="row.mrfa"
+                  readonly
+                />
+                <el-button
+                  type="primary"
+                  style="padding: 0 10px;margin-left: 5px"
+                  class="el-icon-search"
+                />
+              </div>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="gzrl"
+            label="宸ヤ綔鏃ュ巻"
+            sortable="custom"
+          >
+            <template slot-scope="{row}">
+              <!--              <div style="width: 100%;" @click="gzrlClick(row)">-->
+              <!--                <el-input-->
+              <!--                  v-model="row.gzrl"-->
+              <!--                  readonly-->
+              <!--                />-->
+              <!--              </div>-->
+              <!--              <div style="width: 100%;" @click="gzrlClick(row)">-->
+              <!--                <el-date-picker-->
+              <!--                  :ref="'datePicker'+row.xh"-->
+              <!--                  v-model="row.gzrl"-->
+              <!--                  :class="'datePicker'+row.xh"-->
+              <!--                  style="width: 100%;"-->
+              <!--                  type="dates"-->
+              <!--                  placeholder="璇烽�夋嫨涓�涓垨澶氫釜鏃ユ湡"-->
+              <!--                  align="left"-->
+              <!--                  format="yyyy-MM-dd"-->
+              <!--                  value-format="yyyy-MM-dd"-->
+              <!--                  :clearable="false"-->
+              <!--                  :picker-options="pickerOptions"-->
+              <!--                  @focus="val=>datePickerFocus(val,row)"-->
+              <!--                  @blur="val=>datePickerBlur(val,row)"-->
+              <!--                  @change="val=>datePickerChange(val,row)"-->
+              <!--                />-->
+              <!--              </div>-->
+              <!--              <date-picker v-model="row.gzrl"-->
+              <!--                           :rowData='row'-->
+              <!--                           :CapacityPlanningSearch='CapacityPlanningSearch'></date-picker>-->
+
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="czry"
+            label="鍒涘缓浜哄憳"
+            sortable="custom"
+            width="160"
+          />
+          <el-table-column
+            prop="czsj"
+            width="160"
+            label="鍒涘缓鏃堕棿"
+            sortable="custom"
+          />
+
+          <el-table-column
+            prop="yxzt"
+            width="160"
+            label="鏈夋晥鐘舵��"
+            sortable="custom"
+          />
+
+          <!--          <el-table-column-->
+          <!--            label="鎿嶄綔"-->
+          <!--            width="120"-->
+          <!--            fixed="right"-->
+          <!--          >-->
+          <!--            <template slot-scope="{row}">-->
+          <!--              <div class="operationClass">-->
+          <!--                <el-tooltip class="item" effect="dark" content="缂栬緫" placement="top">-->
+          <!--                  <i class="el-icon-edit-outline" @click="edit('edit',row)" />-->
+          <!--                </el-tooltip>-->
+          <!--                <el-tooltip v-del-tab-index class="item" effect="dark" content="鍒犻櫎" placement="top">-->
+          <!--                  <i class="el-icon-delete" @click="del(row)" />-->
+          <!--                </el-tooltip>-->
+          <!--              </div>-->
+          <!--            </template>-->
+          <!--          </el-table-column>-->
+        </el-table>
+      </div>
+      <!--鍒嗛〉-->
+      <pagination
+        :total="total"
+        :page.sync="form.page"
+        :limit.sync="form.rows"
+        align="right"
+        layout="total,prev, pager, next,sizes"
+        popper-class="select_bottom"
+        @pagination="getOrganizationSearch"
+      />
+    </div>
+
+    <!--    :title="operation==='add'?'鏂板':'缂栬緫'"-->
+    <el-dialog
+      title="璁剧疆"
+      :visible.sync="dialogVisible"
+      width="800px"
+      :close-on-click-modal="false"
+      top="15vh"
+      @closed="handleClose"
+      @close="handleClose"
+    >
+      <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
+        <el-form-item label="缁勭粐缂栫爜" prop="OrgCode">
+          <el-input v-model="dialogForm.OrgCode" :disabled="operation!=='add'" style="width: 200px" />
+        </el-form-item>
+        <el-form-item label="缁勭粐鍚嶇О" prop="OrgName">
+          <el-input v-model="dialogForm.OrgName" style="width: 200px" />
+        </el-form-item>
+
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <div class="footerButton">
+          <el-button @click="dialogVisibleCancel">鍙� 娑�</el-button>
+          <el-button type="primary" @click="dialogVisibleConfirm">纭� 瀹�</el-button>
+        </div>
+      </span>
+    </el-dialog>
+
+    <!--瀵煎叆缁勪欢-->
+    <import-picker
+      ref="importPickerFunc"
+      class="importPickerClass"
+      :shows.sync="shows"
+      :title="title_value"
+      :colos="colos"
+      :code="code"
+    />
+
+  </div>
+</template>
+
+<script>
+import Pagination from '@/components/Pagination'
+import { AddUpdateOrganization, DeleteOrganization, OrganizationSearch, PrentOrganization } from '@/api/jcsz'
+import { getCookie } from '@/utils/auth'
+import ImportPicker from '@/components/ImportPicker'
+import { validateCode } from '@/utils/global'
+import $ from 'jquery'
+
+export default {
+  name: 'Zzjg',
+  components: {
+    Pagination, ImportPicker
+  },
+  data() {
+    return {
+      mouseHoverType: 'mouseout',
+      isExpandForm: false,
+      mainHeight: 0,
+      tableHeight: 0,
+      form: {
+        OrgCode: '', // 缁勭粐鏋舵瀯浠g爜
+        OrgName: '', // 缁勭粐鏋舵瀯鍚嶇О
+        OrgType: '', // 缁勭粐绫诲瀷
+        UserName: '', // 鍒涘缓浜哄憳
+        createdate: '',
+        prop: 'lm_date', // 鎺掑簭瀛楁
+        order: 'desc', // 鎺掑簭瀛楁
+        page: 1, // 绗嚑椤�
+        rows: 20 // 姣忛〉澶氬皯鏉�
+      },
+      OrgTypeArr: [
+        { label: '鏄�', value: 'Y' },
+        { label: '鍚�', value: 'N' }
+      ],
+
+      total: 10,
+      tableData: [
+        {
+          xh: 1,
+          sccj: '鏈哄姞001',
+          scdy: '鏈哄姞浜х嚎C01-L01',
+          mrfa: '',
+          gzrl: '',
+          czry: 'Admin',
+          czsj: '2022-10-12 10:00:00',
+          yxzt: '鏈夋晥'
+        }, {
+          xh: 2,
+          sccj: '鏈哄姞001',
+          scdy: '鏈哄姞浜х嚎C01-L01',
+          mrfa: '',
+          gzrl: '',
+          czry: 'Admin',
+          czsj: '2022-10-12 10:00:00',
+          yxzt: '鏈夋晥'
+        }, {
+          xh: 3,
+          sccj: '鏈哄姞001',
+          scdy: '鏈哄姞浜х嚎C01-L01',
+          mrfa: '',
+          gzrl: '',
+          czry: 'Admin',
+          czsj: '2022-10-12 10:00:00',
+          yxzt: '鏈夋晥'
+        }
+      ],
+      dialogVisible: false,
+      dialogForm: {
+        OrgType: '',
+        OrgCode: '',
+        OrgName: '',
+        SupUnit: ''// 涓婄骇鍗曚綅
+      },
+      operation: '',
+      dialogFormRules: {
+        OrgType: [
+          { required: true, message: '璇疯緭鍏ラ�夋嫨绫诲瀷', trigger: ['blur', 'change'] }
+        ],
+        OrgCode: [
+          { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+        ],
+        OrgName: [
+          { required: true, message: '璇疯緭鍏ュ悕绉�', trigger: ['blur', 'change'] }
+        ]
+
+      },
+
+      pickerOptions: {
+        disabledDate(time) {
+          // return time.getTime() > Date.now();  // 鍙�夊巻鍙插ぉ銆佸彲閫夊綋鍓嶅ぉ銆佷笉鍙�夋湭鏉ュぉ
+          // return time.getTime() > Date.now() - 8.64e7;  // 鍙�夊巻鍙插ぉ銆佷笉鍙�夊綋鍓嶅ぉ銆佷笉鍙�夋湭鏉ュぉ
+          return time.getTime() < Date.now() - 8.64e7 // 涓嶅彲閫夊巻鍙插ぉ銆佸彲閫夊綋鍓嶅ぉ銆佸彲閫夋湭鏉ュぉ
+          // return time.getTime() < Date.now(); // 涓嶅彲閫夊巻鍙插ぉ銆佷笉鍙�夊綋鍓嶅ぉ銆佸彲閫夋湭鏉ュぉ
+        }
+      },
+      popoverVisible: false,
+
+      title_value: '鏁版嵁瀵煎叆 / 鐐规閮ㄤ綅',
+      code: '4',
+      shows: false
+
+    }
+  },
+  watch: {
+    shows() {
+      if (!this.shows) {
+        this.getOrganizationSearch()
+      }
+    }
+  },
+  created() {
+    this.getOrganizationSearch()
+  },
+  mounted() {
+    window.addEventListener('resize', this.getHeight)
+    this.getHeight()
+  },
+  methods: {
+    async getOrganizationSearch() {
+
+    },
+    mrfaSearch(row) {
+      console.log(row)
+      this.setting()
+    },
+    gzrlClick(row) {
+      console.log(row, 1)
+      // console.log($('1'))
+    },
+    datePickerChange(val, row) {
+      // console.log(this.$refs.datePicker, 8)
+      // console.log(val, 2)
+    },
+    datePickerFocus(val, row) {
+      const that = this
+      // console.log(val, 3)
+      // console.log(this.$refs['datePicker' + row.xh], 3333)
+      // console.log(val.pickerVisible, 3)
+      this.$nextTick(() => {
+        // console.log($('.el-date-table'), 9)
+        // console.log($('.el-date-table')[0], 9)
+        // console.log($('.el-date-table')[0].querySelectorAll('.available'), 9)
+        // console.log($('.el-date-table')[0].querySelectorAll('.next-month'), 10)
+
+        // console.log($('div').wrap($('.el-picker-panel')))
+
+        const available = $('.el-date-table')[0].querySelectorAll('.available')
+        const nextMonth = $('.el-date-table')[0].querySelectorAll('.next-month')
+
+        available.forEach(item => {
+          const date = item.querySelectorAll('div>span')[0].innerText
+          $(item).bind('dblclick', { date }, function(event) {
+            // 闃绘榛樿浜嬩欢
+            event.preventDefault()
+            // 闃绘浜嬩欢鍐掓场
+            event.stopPropagation()
+            console.log(event)
+            console.log(event.data.date)
+            console.log(that.$message.info('鍙屽嚮浜�'))
+            // that.setting()
+          }, {
+            'mouseenter': function() {
+            },
+            'mouseleave': function() {
+            }
+          })
+
+          // $(item).unbind('dblclick').dblclick(e => {
+          //   // console.log(i, 'i-index', index)
+          //   console.log(e, 1)
+          // })
+        })
+
+        // this.$refs['datePicker' + row.xh]
+        // console.log(this.$refs['datePicker' + row.xh].$children[0], 88)
+        // console.log(this.$refs['datePicker' + row.xh].$children[0].nativeInputValue = '2022-10-20', 88)
+        // console.log(this.$refs['datePicker' + row.xh].$children[0].nativeInputValue = '2022-10-20', 88)
+        // console.log(this.$refs['datePicker' + row.xh].$children[0].value = '2022-10-20', 88)
+      })
+    },
+    datePickerBlur(val, row) {
+      console.log(val, 4)
+      console.log(val.pickerVisible, 4)
+      // val.pickerVisible = true
+    },
+    // 鎺掑簭鏀瑰彉鏃�
+    sortChange({ column, prop, order }) {
+      if (order === 'descending') {
+        order = 'desc'
+      } else if (order === 'ascending') {
+        order = 'asc'
+      } else {
+        order = 'desc'
+      }
+      this.form.order = order
+      this.form.prop = prop
+      this.getOrganizationSearch()
+    },
+    // 鏌ヨ
+    search() {
+      this.getOrganizationSearch()
+    },
+    // 瀵煎叆鎸夐挳
+    upload() {
+      this.shows = true
+      this.$refs.importPickerFunc.newDataFunc()
+    },
+    colos() {
+      this.shows = false
+    },
+    // 閲嶇疆
+    reset() {
+      this.form.OrgCode = ''
+      this.form.OrgName = ''
+      this.form.OrgType = ''
+      this.form.UserName = ''
+      this.getOrganizationSearch()
+    },
+    setting(operation) {
+      this.operation = operation
+      this.dialogVisible = true
+    },
+    // 鏂板鎸夐挳
+    add(operation) {
+      this.operation = operation
+      this.dialogVisible = true
+    },
+    // 淇敼鎸夐挳
+    edit(operation, row) {
+      this.operation = operation
+      this.dialogVisible = true
+
+      this.$nextTick(() => {
+        this.dialogForm.OrgCode = row.org_code
+        this.dialogForm.OrgName = row.org_name
+        this.dialogForm.SupUnit = row.parent_id
+      })
+    },
+    // 鍒犻櫎鎸夐挳
+    async del(row) {
+      this.$confirm('鏄惁纭鍒犻櫎?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        DeleteOrganization({ orgid: row.code }).then(res => {
+          if (res.code === '200') {
+            this.$message.success('鍒犻櫎鎴愬姛!')
+            if (this.form.page > 1 && this.tableData.length === 1) {
+              this.form.page--
+            }
+            this.getOrganizationSearch()
+          }
+        })
+      }).catch(() => {
+        this.$message.info('宸插彇娑堝垹闄�')
+      })
+    },
+    // 瀵硅瘽妗嗗叧闂簨浠�
+    handleClose() {
+      this.dialogForm.OrgType = ''
+      this.dialogForm.OrgCode = ''
+      this.dialogForm.OrgName = ''
+      this.dialogForm.SupUnit = ''
+      this.$refs.dialogForm.clearValidate()
+    },
+    // 瀵硅瘽妗嗗彇娑�
+    dialogVisibleCancel() {
+      this.dialogVisible = false
+    },
+    // 瀵硅瘽妗嗙‘璁�
+    dialogVisibleConfirm() {
+      this.$refs.dialogForm.validate(valid => {
+        if (valid) {
+          const data = {
+            OrganCode: this.dialogForm.OrgCode,
+            OrganName: this.dialogForm.OrgName,
+            OperType: this.operation === 'add' ? 'Add' : 'Update',
+            Operator: getCookie('admin')
+          }
+          AddUpdateOrganization(data).then(res => {
+            if (res.code === '200') {
+              this.$message.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
+              this.dialogVisible = false
+              this.getOrganizationSearch()
+            } else {
+              this.$message.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
+            }
+          })
+        }
+      })
+    },
+    // 鑾峰彇椤甸潰楂樺害
+    getHeight() {
+      this.$nextTick(() => {
+        this.mainHeight = window.innerHeight - 85
+        this.tableHeight = this.mainHeight - 195
+        this.$refs.tableDataRef.doLayout()
+      })
+    },
+    tableRowClassName({ row, rowIndex }) {
+      return 'custom-row'
+    }
+  }
+}
+</script>
+
+<!--鍏叡椤甸潰鏍峰紡-->
+<style lang="scss" scoped>
+$main_color: #42b983;
+::v-deep .el-button--text {
+  font-size: 14px;
+  cursor: pointer;
+}
+
+.el-icon-share, .el-icon-delete, .el-icon-edit-outline {
+  color: $main_color;
+  cursor: pointer;
+}
+
+.el-icon-edit-outline {
+  margin-right: 15px;
+}
+
+::v-deep .el-button--primary, .el-button--default, .el-button--info {
+  height: 34px;
+  display: flex;
+  align-items: center;
+  padding: 0 15px;
+}
+
+::v-deep .el-button--primary {
+  //background-color: $main_color !important;
+}
+
+::v-deep .el-button--default {
+  background-color: #f8f8fa;
+  border: none;
+}
+
+::v-deep .el-input__inner {
+  height: 34px;
+  line-height: 34px;
+  //color: #a7a7a7;
+}
+
+::v-deep .el-dialog__body {
+  padding: 20px 100px !important;
+}
+
+::v-deep .dialogVisibleRoles .el-dialog__body {
+  padding: 20px 20px !important;
+}
+
+::v-deep .importPickerClass .el-dialog__body {
+  padding: 20px 20px !important;
+}
+
+::v-deep .el-dialog__footer {
+  display: flex;
+  justify-content: flex-end;
+}
+
+::v-deep .el-table .caret-wrapper {
+  transform: scale(0.8);
+}
+
+::v-deep .cell {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+::v-deep .el-table::before {
+  height: 0;
+}
+
+::v-deep .el-table__body-wrapper {
+  background-color: #f8f8fa;
+}
+
+::v-deep .el-table__body .el-table__row.hover-row td {
+  background-color: #eaecef;
+}
+
+::v-deep .el-form--inline .el-form-item__label {
+  color: #a7a7a7;
+}
+
+.body ::v-deep .el-divider {
+  border: 1px solid #eee;
+  width: 99%;
+  margin: 10px auto;
+}
+
+.body ::v-deep .el-form-item {
+  margin-bottom: 0;
+}
+
+.userDialogVisible ::v-deep .el-form-item {
+  margin-bottom: 0;
+}
+
+::v-deep .el-select__caret {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.tableFixed {
+  ::v-deep .el-table__fixed-right {
+    height: 100% !important;
+  }
+
+  ::v-deep .el-table__fixed {
+    height: 100% !important;
+  }
+
+  ::v-deep .el-input__icon {
+    line-height: 35px;
+  }
+
+}
+</style>
+<style>
+
+.el-table .custom-row {
+  background: #f8f8fa;
+}
+</style>
diff --git a/src/views/scgl/sckbg_back.vue b/src/views/scgl/sckbg_back.vue
deleted file mode 100644
index 4e96092..0000000
--- a/src/views/scgl/sckbg_back.vue
+++ /dev/null
@@ -1,2394 +0,0 @@
-<template>
-  <div>
-    <div class="body" style="padding-top: 10px;" :style="{height:mainHeight+'px'}">
-      <el-tabs ref="elTabs" v-model="activeName" type="border-card" @tab-click="tabClick">
-        <el-tab-pane label="鐢熶骇鍒楄〃">
-          <div style="margin-left: 10px;margin-top:10px;display: flex;justify-content: space-between">
-            <div style="display: flex;align-items: center">
-              <div style="width: 90px">鎵弿鏉$爜锛�</div>
-              <!--              oninput="value=value.replace(/[^0-9a-zA-Z;_]/g,'')"-->
-              <el-input
-                id="keyWords"
-                v-model="form.orderstepqrcode"
-                name="produceCode"
-                style="width: 300px"
-                @keyup.enter.native="val=>enterNative(val,'produceCode')"
-              />
-            </div>
-            <div v-if="false" style="display: flex;padding-right: 10px">
-              <el-button @click="ZZstart">
-                <svg-icon icon-class="start_time" style="margin-right: 2px" />
-                寮�濮�
-              </el-button>
-              <el-button @click="ZZreport">
-                <svg-icon icon-class="report_work" style="margin-right: 2px" />
-                鎶ュ伐
-              </el-button>
-            </div>
-          </div>
-          <el-divider />
-          <div class="elTableDiv">
-            <el-table
-              :data="tableData"
-              :height="isIpad? (tableHeight+50):tableHeight"
-              border
-              :row-class-name="tableRowClassName"
-              :style="{width: 100+'%',height:tableHeight+'px',}"
-              highlight-current-row
-              :header-cell-style="this.$headerCellStyle"
-              :cell-style="this.$cellStyle"
-              @sort-change="sortChange"
-            >
-              <!--              <el-table-column-->
-              <!--                width="50"-->
-              <!--                fixed-->
-              <!--              >-->
-              <!--                <template slot-scope="{row}">-->
-              <!--                  <el-radio-->
-              <!--                    v-model="radioSelected"-->
-              <!--                    :label="row.wo"-->
-              <!--                    style="color: #fff;padding-left: 10px; margin-right: -25px;"-->
-              <!--                    @change.native="getCurrentRow(row.wo)"-->
-              <!--                  />-->
-              <!--                </template>-->
-              <!--              </el-table-column>-->
-              <el-table-column
-                prop="RowNum"
-                width="50"
-                label="搴忓彿"
-                fixed
-              />
-              <el-table-column
-                prop="status"
-                label="鐘舵��"
-                sortable="custom"
-                width="80"
-              >
-                <template slot-scope="{row}">
-                  <div v-if="row.status==='NEW'">鏂拌鍗�</div>
-                  <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
-                  <div v-if="row.status==='START'">寮�宸�</div>
-                  <div v-if="row.status==='CLOSED'">瀹屽伐</div>
-                </template>
-              </el-table-column>
-              <el-table-column
-                prop="wo_code"
-                label="宸ュ崟鍙�"
-                width="160"
-                show-tooltip-when-overflow
-                sortable="custom"
-              />
-              <el-table-column
-                prop="partcode"
-                label="浜у搧缂栫爜"
-                min-width="110"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="partname"
-                width="160"
-                show-tooltip-when-overflow
-                label="浜у搧鍚嶇О"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="stepname"
-                label="宸ュ簭"
-                show-tooltip-when-overflow
-                width="120"
-                sortable="custom"
-              />
-              <!--              <el-table-column-->
-              <!--                prop="descr"-->
-              <!--                label="宸ュ簭鎻忚堪"-->
-              <!--                min-width="150"-->
-              <!--                sortable="custom"-->
-              <!--              >-->
-              <!--                <template slot-scope="{row}">-->
-              <!--                  <div v-if="row.descr">{{ row.descr }}</div>-->
-              <!--                  <div v-else>/</div>-->
-              <!--                </template>-->
-              <!--              </el-table-column>-->
-              <el-table-column
-                prop="plan_qty"
-                label="浠诲姟鏁伴噺"
-                width="110"
-                sortable="custom"
-              />
-              <el-table-column
-                label="鏈姤宸ユ暟閲�"
-                width="120"
-              >
-                <!--                sortable="custom"-->
-                <template slot-scope="{row}">
-                  <div>{{ row.plan_qty - row.good_qty - row.ng_qty }}</div>
-                </template>
-              </el-table-column>
-              <el-table-column
-                prop="good_qty"
-                label="宸叉姤宸ユ暟閲�"
-                sortable="custom"
-                width="160"
-              />
-              <el-table-column
-                prop="ng_qty"
-                label="涓嶈壇鏁伴噺"
-                width="150"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="bad_qty"
-                label="宸叉姤搴熸暟閲�"
-                width="120"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="plan_startdate"
-                label="璁″垝寮�宸ユ棩鏈�"
-                width="150"
-                sortable="custom"
-              >
-                <template slot-scope="{row}">
-                  <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0,11) }}</div>
-                  <div v-else>/</div>
-                </template>
-              </el-table-column>
-              <el-table-column
-                prop="plan_enddate"
-                label="璁″垝瀹屽伐鏃ユ湡"
-                width="150"
-                sortable="custom"
-                fixed="right"
-              >
-                <template slot-scope="{row}">
-                  <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0,11) }}</div>
-                  <div v-else>/</div>
-                </template>
-              </el-table-column>
-              <!--              <el-table-column-->
-              <!--                label="鎿嶄綔"-->
-              <!--                width="150"-->
-              <!--                fixed="right"-->
-              <!--              >-->
-              <!--                <template slot-scope="{row}">-->
-              <!--                  <div class="operationClass">-->
-              <!--                    <el-button type="text" @click="edit('edit',row)">缂栬緫</el-button>-->
-              <!--                    <el-button type="text" @click="del(row)">鍒犻櫎</el-button>-->
-              <!--                  </div>-->
-              <!--                </template>-->
-              <!--              </el-table-column>-->
-            </el-table>
-          </div>
-          <!--鍒嗛〉-->
-          <pagination
-            :total="total"
-            :page.sync="form.page"
-            :limit.sync="form.rows"
-            align="right"
-            layout="total,prev, pager, next,sizes"
-            popper-class="select_bottom"
-            @pagination="getMesOrderStepSearch"
-          />
-        </el-tab-pane>
-        <el-tab-pane label="澶栧崗鍒楄〃">
-          <div style="margin-left: 10px;margin-top:10px;display: flex;justify-content: space-between">
-            <div style="display: flex;align-items: center">
-              <div style="width: 90px;">澶栧崗绫诲瀷锛�</div>
-              <el-select
-                v-model="WXSelected"
-                filterable
-                style="width: 200px"
-                placeholder="璇烽�夋嫨"
-              >
-                <el-option
-                  v-for="item in WXSelectArr"
-                  :key="item.code"
-                  :label="item.name"
-                  :value="item.code"
-                />
-              </el-select>
-              <div style="width: 90px;margin-left: 20px">鎵弿鏉$爜锛�</div>
-              <el-input
-                v-model="WXform.orderstepqrcode"
-                name="WXproduceCode"
-                style="width: 300px"
-                @keyup.enter.native="val=>enterNative(val,'WXproduceCode')"
-              />
-            </div>
-            <div v-if="false" style="display: flex;padding-right: 10px">
-              <el-button @click="WXsend">
-                <svg-icon icon-class="start_time" style="margin-right: 2px" />
-                鍙戞枡
-              </el-button>
-              <el-button @click="WXback">
-                <svg-icon icon-class="report_work" style="margin-right: 2px" />
-                鏀舵枡
-              </el-button>
-            </div>
-          </div>
-          <el-divider />
-          <div class="elTableDiv">
-            <el-table
-              :data="WXtableData"
-              :height="isIpad? (tableHeight+50):tableHeight"
-              border
-              :row-class-name="tableRowClassName"
-              :style="{width: 100+'%',height:tableHeight+'px',}"
-              highlight-current-row
-              :header-cell-style="this.$headerCellStyle"
-              :cell-style="this.$cellStyle"
-              @sort-change="WXsortChange"
-            >
-              <!--              <el-table-column-->
-              <!--                width="50"-->
-              <!--                fixed-->
-              <!--              >-->
-              <!--                <template slot-scope="{row}">-->
-              <!--                  <el-radio-->
-              <!--                    v-model="radioSelected"-->
-              <!--                    :label="row.wo_code"-->
-              <!--                    style="color: #fff;padding-left: 10px; margin-right: -25px;"-->
-              <!--                    @change.native="getWXCurrentRow(row.wo_code)"-->
-              <!--                  />-->
-              <!--                </template>-->
-              <!--              </el-table-column>-->
-              <el-table-column
-                prop="RowNum"
-                width="50"
-                label="搴忓彿"
-                fixed
-              />
-              <el-table-column
-                prop="status"
-                label="鐘舵��"
-                sortable="custom"
-                width="80"
-              >
-                <template slot-scope="{row}">
-                  <div v-if="row.status==='NEW'">鏂拌鍗�</div>
-                  <div v-if="row.status==='ALLO'">宸叉淳鍙�</div>
-                  <div v-if="row.status==='START'">宸插彂鏂�</div>
-                  <div v-if="row.status==='CLOSED'">宸叉敹鏂�</div>
-                </template>
-              </el-table-column>
-              <el-table-column
-                prop="wo_code"
-                label="宸ュ崟鍙�"
-                width="160"
-                show-tooltip-when-overflow
-                sortable="custom"
-              />
-              <el-table-column
-                prop="partcode"
-                label="浜у搧缂栫爜"
-                width="110"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="partname"
-                label="浜у搧鍚嶇О"
-                width="160"
-                show-tooltip-when-overflow
-                sortable="custom"
-              />
-              <el-table-column
-                prop="stepname"
-                label="宸ュ簭"
-                width="120"
-                sortable="custom"
-              />
-              <!--              <el-table-column-->
-              <!--                prop="descr"-->
-              <!--                label="宸ュ簭鎻忚堪"-->
-              <!--                min-width="150"-->
-              <!--                sortable="custom"-->
-              <!--              >-->
-              <!--                <template slot-scope="{row}">-->
-              <!--                  <div v-if="row.descr">{{ row.descr }}</div>-->
-              <!--                  <div v-else>/</div>-->
-              <!--                </template>-->
-              <!--              </el-table-column>-->
-              <el-table-column
-                prop="plan_qty"
-                label="浠诲姟鏁伴噺"
-                width="110"
-                sortable="custom"
-              />
-              <el-table-column
-                label="鏈姤宸ユ暟閲�"
-                width="120"
-              >
-                <!--                sortable="custom"-->
-                <template slot-scope="{row}">
-                  <div>{{ row.plan_qty - row.good_qty - row.ng_qty }}</div>
-                </template>
-              </el-table-column>
-              <el-table-column
-                prop="good_qty"
-                label="宸叉敹鏂欐暟閲�"
-                sortable="custom"
-                width="160"
-              />
-              <el-table-column
-                prop="ng_qty"
-                label="涓嶈壇鏁伴噺"
-                width="150"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="bad_qty"
-                label="宸叉姤搴熸暟閲�"
-                min-width="120"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="plan_startdate"
-                label="璁″垝寮�宸ユ棩鏈�"
-                width="150"
-                sortable="custom"
-              >
-                <template slot-scope="{row}">
-                  <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0,11) }}</div>
-                  <div v-else>/</div>
-                </template>
-              </el-table-column>
-              <el-table-column
-                prop="plan_enddate"
-                label="璁″垝瀹屽伐鏃ユ湡"
-                width="150"
-                sortable="custom"
-                fixed="right"
-              >
-                <template slot-scope="{row}">
-                  <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0,11) }}</div>
-                  <div v-else>/</div>
-                </template>
-              </el-table-column>
-              <!--              <el-table-column-->
-              <!--                label="鎿嶄綔"-->
-              <!--                width="150"-->
-              <!--                fixed="right"-->
-              <!--              >-->
-              <!--                <template slot-scope="{row}">-->
-              <!--                  <div class="operationClass">-->
-              <!--                    <el-button type="text" @click="edit('edit',row)">缂栬緫</el-button>-->
-              <!--                    <el-button type="text" @click="del(row)">鍒犻櫎</el-button>-->
-              <!--                  </div>-->
-              <!--                </template>-->
-              <!--              </el-table-column>-->
-            </el-table>
-          </div>
-          <!--鍒嗛〉-->
-          <pagination
-            :total="WXtotal"
-            :page.sync="WXform.page"
-            :limit.sync="WXform.rows"
-            align="right"
-            layout="total,prev, pager, next,sizes"
-            popper-class="select_bottom"
-            @pagination="getMesOrderStepSearch"
-          />
-        </el-tab-pane>
-        <el-tab-pane label="涓嶈壇寰呭鐞嗗垪琛�">
-          <div style="margin-left: 10px;margin-top:10px;display: flex;justify-content: space-between">
-            <div style="display: flex;align-items: center">
-              <div style="width: 90px">鎵弿鏉$爜锛�</div>
-              <!--              oninput="value=value.replace(/[^0-9a-zA-Z;_]/g,'')"-->
-
-              <el-input
-                v-model="badForm.orderstepqrcode"
-                name="badProduceCode"
-                style="width: 300px"
-                @keyup.enter.native="val=>enterNative(val,'badProduceCode')"
-              />
-            </div>
-          </div>
-          <el-divider />
-          <div class="elTableDiv">
-            <el-table
-              :data="badTableData"
-              :height="isIpad? (tableHeight+50):tableHeight"
-              border
-              :row-class-name="tableRowClassName"
-              :style="{width: 100+'%',height:tableHeight+'px',}"
-              highlight-current-row
-              :header-cell-style="this.$headerCellStyle"
-              :cell-style="this.$cellStyle"
-              @sort-change="badSortChange"
-            >
-              <el-table-column
-                prop="RowNum"
-                width="50"
-                label="搴忓彿"
-                fixed
-              />
-              <el-table-column
-                prop="wo_code"
-                label="宸ュ崟鍙�"
-                min-width="160"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="partcode"
-                label="浜у搧缂栫爜"
-                min-width="110"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="partname"
-                min-width="160"
-                label="浜у搧鍚嶇О"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="stepname"
-                label="宸ュ簭"
-                min-width="120"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="plan_qty"
-                label="浠诲姟鏁伴噺"
-                width="110"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="good_qty"
-                label="宸叉姤宸ユ暟閲�"
-                sortable="custom"
-                min-width="160"
-              />
-              <el-table-column
-                prop="ng_qty"
-                label="涓嶈壇鏁伴噺"
-                width="150"
-                sortable="custom"
-              />
-              <el-table-column
-                prop="bad_qty"
-                label="宸叉姤搴熸暟閲�"
-                width="120"
-                sortable="custom"
-              />
-              <el-table-column
-                label="鎿嶄綔"
-                width="120"
-                fixed="right"
-              >
-                <template slot-scope="{row}">
-                  <div class="operationClass">
-                    <el-button type="text" @click="repairHandle(row)">缁翠慨澶勭悊</el-button>
-                  </div>
-                </template>
-              </el-table-column>
-
-            </el-table>
-          </div>
-          <!--鍒嗛〉-->
-          <pagination
-            :total="badTotal"
-            :page.sync="badForm.page"
-            :limit.sync="badForm.rows"
-            align="right"
-            layout="total,prev, pager, next,sizes"
-            popper-class="select_bottom"
-            @pagination="getBadList"
-          />
-        </el-tab-pane>
-      </el-tabs>
-
-    </div>
-
-    <el-dialog
-      :title="dialogTitle"
-      :visible.sync="dialogVisible"
-      width="850px"
-      class="dialogVisible"
-      :top="dialogTitle==='鑷埗鎶ュ伐'?'5vh':'15vh'"
-      :close-on-click-modal="false"
-      @close="handleClose"
-      @closed="handleClose"
-    >
-      <el-form
-        ref="dialogForm"
-        inline
-        :rules="dialogFormRules"
-        :model="dialogForm"
-        label-width="110px"
-      >
-        <el-form-item label="宸ュ崟缂栧彿锛�">
-          <div style="width: 200px">{{ dialogForm.wo_code }}</div>
-        </el-form-item>
-        <el-form-item label="浜у搧缂栫爜锛�">
-          <div style="width: 200px">{{ dialogForm.partcode }}</div>
-        </el-form-item>
-        <el-form-item label="浜у搧鍚嶇О锛�">
-          <div style="width: 200px">{{ dialogForm.partname }}</div>
-        </el-form-item>
-        <el-form-item label="浜у搧瑙勬牸锛�">
-          <div style="width: 200px">{{ dialogForm.partspec }}</div>
-        </el-form-item>
-        <el-form-item label="褰撳墠宸ュ簭锛�">
-          <div style="width: 200px">{{ dialogForm.stepname }}</div>
-        </el-form-item>
-        <el-form-item v-if="false" label="宸ュ簭鎻忚堪锛�">
-          <!--          <el-tooltip   class="item" effect="dark" content="鍘熸潗鏂欏垏鎸夋潗鏂欏垏鎸夋潗鏂欏垏鎸夋椂鎵撳崱鏁版嵁鐨勫崱" placement="top-start">-->
-          <div style="width: 200px;white-space: nowrap;text-overflow: ellipsis;overflow: hidden;">
-            {{ dialogForm.stepdesc }}
-          </div>
-          <!--          </el-tooltip>-->
-        </el-form-item>
-        <el-form-item label="浠诲姟鏁伴噺锛�">
-          <div style="width: 200px">{{ dialogForm.planqty }}</div>
-        </el-form-item>
-
-        <el-form-item v-if="dialogTitle==='鑷埗寮�濮�'" label="鏈紑/宸插紑锛�">
-          <div style="width: 200px">{{ dialogForm.noreportqty }}/{{ dialogForm.reportqty }}</div>
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='鑷埗鎶ュ伐'" label="鏈姤/宸叉姤锛�">
-          <div style="width: 200px">{{ dialogForm.noreportqty }}/{{ dialogForm.reportqty }}</div>
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='澶栧崗鍙戞枡'" label="鏈彂/宸插彂锛�">
-          <div style="width: 200px">{{ dialogForm.noreportqty }}/{{ dialogForm.reportqty }}</div>
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='澶栧崗鏀舵枡'" label="鏈敹/宸叉敹锛�">
-          <div style="width: 200px">{{ dialogForm.noreportqty }}/{{ dialogForm.reportqty }}</div>
-        </el-form-item>
-        <!--鑷埗寮�濮�-->
-        <el-form-item v-if="dialogTitle==='鑷埗寮�濮�'" label="寮�宸ユ暟閲忥細">
-          <div style="width: 200px">{{ dialogForm.startqty }}</div>
-          <!--          <div style="width: 200px">{{  dialogForm.noreportqty }}</div>-->
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='鑷埗寮�濮�'" prop="eqpcode" label="鐢熶骇璁惧锛�">
-          <el-select
-            v-model="dialogForm.eqpcode"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in ZZeqpArr"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"
-            />
-          </el-select>
-        </el-form-item>
-        <!--     鑷埗鎶ュ伐   -->
-        <el-form-item v-if="dialogTitle==='鑷埗鎶ュ伐'" label="涓嬮亾宸ュ簭锛�">
-          <div style="width: 200px">{{ dialogForm.nextstepname }}</div>
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='鑷埗鎶ュ伐'" prop="usergroupcode" label="鐢熶骇鐝粍锛�">
-          <el-select
-            v-model="dialogForm.usergroupcode"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-            @change="usergroupChange"
-          >
-            <el-option
-              v-for="item in ZZtreams"
-              :key="item.group_code"
-              :label="item.group_name"
-              :value="item.group_code"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='鑷埗鎶ュ伐'" label="璁惧鍚嶇О锛�" prop="eqpcode">
-          <el-select
-            v-model="dialogForm.eqpcode"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in ZZeqpArr"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='鑷埗鎶ュ伐'" label="鎶ュ伐鏁伴噺锛�" prop="startqty">
-          <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />
-          <!--          <el-input v-model="dialogForm.noreportqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />-->
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='鑷埗鎶ュ伐'" label="涓嶈壇鏁伴噺锛�">
-          <el-input v-model="dialogForm.noputqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='鑷埗鎶ュ伐'" label="涓嶈壇鍘熷洜锛�">
-          <el-select
-            v-model="dialogForm.badcode"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"
-            multiple
-          >
-            <el-option
-              v-for="item in badArr"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"
-            />
-          </el-select>
-        </el-form-item>
-        <!--        <el-form-item v-if="dialogTitle==='鑷埗鎶ュ伐'" label="鎶ュ伐浜哄憳锛�">-->
-        <!--          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />-->
-        <!--        </el-form-item>-->
-        <el-form-item v-if="dialogTitle==='鑷埗鎶ュ伐'" label="鎶ュ伐浜猴細">
-          <el-select
-            v-model="dialogForm.operation"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in OperationArr"
-              :key="item.usercode"
-              :label="item.username"
-              :value="item.usercode"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='鑷埗鎶ュ伐'" label="澶囨敞锛�">
-          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />
-        </el-form-item>
-        <div v-if="dialogTitle==='鑷埗鎶ュ伐'">
-          <i class="el-icon-s-operation" style="color:#42b983;" /> 浜哄憳鍒楄〃
-          <el-button type="primary" style="margin: 10px 0" @click="userAdd">澧炶</el-button>
-          <el-table
-            :data="userTableData"
-            border
-            :row-class-name="tableRowClassName"
-            :header-cell-style="this.$headerCellStyle"
-            :cell-style="this.$cellStyle"
-            height="180"
-            highlight-current-row
-            style="width: 100%"
-          >
-            <el-table-column
-              width="100"
-              label="搴忓彿"
-              type="index"
-              fixed
-            />
-            <el-table-column
-              prop="username"
-              label="浜哄憳鍚嶇О"
-            >
-              <template slot-scope="{row}">
-                <div v-if="row.isVisible===0">{{ row.username }}</div>
-                <el-select
-                  v-if="row.isVisible===1"
-                  v-model="row.username"
-                  style="width: 200px;"
-                  placeholder="璇烽�夋嫨"
-                  @change="val=>usernameChange(val,row)"
-                >
-                  <el-option
-                    v-for="item in ZZuserArr"
-                    :key="item.usercode"
-                    :label="item.username"
-                    :value="item.usercode"
-                  />
-                </el-select>
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="RowNum"
-              label="鎿嶄綔"
-              fixed="right"
-            >
-              <template slot-scope="{row}">
-                <div class="operationClass">
-                  <el-button v-if="row.isVisible===0" type="text" @click="userDel(row)">鍒犻櫎</el-button>
-                  <el-button v-if="row.isVisible===1&&!userIsSave" type="text" @click="userSave(row)">淇濆瓨</el-button>
-                  <el-button v-if="row.isVisible===1" type="text" @click="userCancel(row)">鍙栨秷</el-button>
-                </div>
-              </template>
-            </el-table-column>
-          </el-table>
-          <!--鍒嗛〉-->
-          <pagination
-            :total="UserTotal"
-            :page.sync="Userform.page"
-            :limit.sync="Userform.rows"
-            align="right"
-            layout="total,prev, pager, next,sizes"
-            popper-class="select_bottom"
-            @pagination="getMesOrderStepSearch"
-          />
-        </div>
-        <!--     澶栧崗鍙戞枡-->
-        <el-form-item
-          v-if="dialogTitle==='澶栧崗鍙戞枡'"
-          label="澶栧崗渚涙柟锛�"
-          prop="wxcode"
-        >
-          <el-select
-            v-model="dialogForm.wxcode"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-            filterable
-          >
-            <el-option
-              v-for="item in WXouterprovide"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          v-if="dialogTitle==='澶栧崗鍙戞枡'"
-          label="鍙戞枡浜哄憳锛�"
-          prop="outuser"
-        >
-          <el-select
-            v-model="dialogForm.outuser"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-            filterable
-          >
-            <el-option
-              v-for="item in WXoutuser"
-              :key="item.usercode"
-              :label="item.username"
-              :value="item.usercode"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          v-if="dialogTitle==='澶栧崗鍙戞枡'"
-          label="鍙戞枡鏁伴噺锛�"
-          prop="fqty"
-        >
-          <el-input v-model="dialogForm.fqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />
-        </el-form-item>
-        <!--     澶栧崗鏀舵枡-->
-        <el-form-item
-          v-if="dialogTitle==='澶栧崗鏀舵枡'"
-          label="涓嬮亾宸ュ簭锛�"
-        >
-          <div style="width: 200px">{{ dialogForm.nextstepname }}</div>
-        </el-form-item>
-        <el-form-item
-          v-if="dialogTitle==='澶栧崗鏀舵枡'"
-          label="澶栧崗渚涙柟锛�"
-          prop="wxcode"
-        >
-          <el-select
-            v-model="dialogForm.wxcode"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in WXouterprovide"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          v-if="dialogTitle==='澶栧崗鏀舵枡'"
-          label="鏀舵枡浜哄憳锛�"
-          prop="inuser"
-        >
-          <el-select
-            v-model="dialogForm.inuser"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in WXoutuser"
-              :key="item.usercode"
-              :label="item.username"
-              :value="item.usercode"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          v-if="dialogTitle==='澶栧崗鏀舵枡'"
-          label="鏀舵枡鏁伴噺锛�"
-          prop="sqty"
-        >
-          <el-input
-            v-model="dialogForm.sqty"
-            style="width: 200px"
-            oninput="value=value.replace(/[^0-9.]/g,'')"
-          />
-        </el-form-item>
-        <el-form-item
-          v-if="dialogTitle==='澶栧崗鏀舵枡'"
-          label="涓嶈壇鏁伴噺锛�"
-          prop="noputqty"
-        >
-          <el-input
-            v-model="dialogForm.noputqty"
-            style="width: 200px"
-            oninput="value=value.replace(/[^0-9.]/g,'')"
-          />
-        </el-form-item>
-        <el-form-item
-          v-if="dialogTitle==='澶栧崗鏀舵枡'"
-          label="涓嶈壇鍘熷洜锛�"
-        >
-          <!--          prop="badcode"-->
-          <el-select
-            v-model="dialogForm.badcode"
-            style="width: 200px;"
-            multiple
-            :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in badArr"
-              :key="item.code"
-              :label="item.name"
-              :value="item.code"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='澶栧崗鏀舵枡'" label="鏀舵枡浜猴細">
-          <el-select
-            v-model="dialogForm.operation"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in OperationArr"
-              :key="item.usercode"
-              :label="item.username"
-              :value="item.usercode"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="dialogTitle==='澶栧崗鏀舵枡'" label="澶囨敞锛�">
-          <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />
-        </el-form-item>
-      </el-form>
-      <span slot="footer" class="dialog-footer">
-        <div class="footerButton">
-          <el-button @click="dialogVisibleCancel">鍙� 娑�</el-button>
-          <el-button v-if="dialogTitle==='鑷埗寮�濮�'" type="primary" @click="dialogVisibleConfirm">寮� 宸�</el-button>
-          <el-button v-if="dialogTitle==='鑷埗鎶ュ伐'" type="primary" @click="dialogVisibleConfirm">鎻愪氦/鎵撳嵃</el-button>
-          <el-button v-if="dialogTitle==='澶栧崗鍙戞枡'" type="primary" @click="dialogVisibleConfirm">鍙戞枡</el-button>
-          <el-button v-if="dialogTitle==='澶栧崗鏀舵枡'" type="primary" @click="dialogVisibleConfirm">鏀舵枡/鎵撳嵃</el-button>
-        </div>
-      </span>
-    </el-dialog>
-
-    <!--鎵撳嵃棰勮椤甸潰  灏忔爣绛�-->
-    <el-dialog
-      title="棰勮"
-      :visible.sync="dialogVisible2"
-      width="1140"
-      top="10vh"
-      :close-on-click-modal="false"
-      @close="dialogVisible2Close"
-    >
-      <!-- 瑕佹墦鍗扮殑鍖哄煙 -->
-      <div id="printMe2" style="padding: 30px;">
-        <div
-          style="display: flex;width: 280px;height: 150px;border: 1px solid #000;text-align: center;font-size: 10px;"
-        >
-
-          <div style="width: 90px;display: flex;flex-direction: column;border-right: 1px solid #000">
-            <div
-              style="display: flex;height: 90px;border-bottom:1px solid #000;
-              justify-content: center;align-items: center;position: relative"
-            >
-              <div id="qrCode2" ref="qrCodeDiv2" style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" />
-            </div>
-            <div style="display: flex;height: 30px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center">
-              <div style="margin-left: 5px;width: 28px">鏁伴噺:</div>
-              {{ qrForm.startqty }}
-            </div>
-            <div style="display: flex;height: 30px;justify-content: flex-start;align-items: center">
-              <div style="margin-left: 5px;width: 42px">澶勭悊浜�:</div>
-              {{ qrForm.operator }}
-            </div>
-          </div>
-
-          <div style="width:190px;display: flex;flex-direction: column">
-            <div
-              style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center;text-align: left"
-            >
-              <div style="width: 60px;margin-left: 5px;">宸ュ崟缂栧彿:</div>
-              <div>{{ qrForm.wo_code }}</div>
-            </div>
-            <div
-              style="display: flex;height: 20%;border-bottom:1px solid #000;justify-content: flex-start;align-items: center ;text-align: left"
-            >
-              <div style="width: 60px;margin-left: 5px;">浜у搧缂栫爜:</div>
-              <div>{{ qrForm.partcode }}</div>
-            </div>
-            <div
-              style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
-            >
-              <div style="width:60px;margin-left: 5px;">浜у搧鍚嶇О:</div>
-              <div>{{ qrForm.partname }}</div>
-            </div>
-            <div
-              style="display: flex;height: 20%;border-bottom:1px solid #000 ;justify-content: flex-start;align-items: center;text-align: left"
-            >
-              <div style="width:60px;margin-left: 5px;">涓嬮亾宸ュ簭:</div>
-              <div>{{ qrForm.nextstepname }}</div>
-            </div>
-            <div style="display: flex;height: 20%;justify-content: flex-start;align-items: center;text-align: left">
-              <div style="width: 60px;margin-left: 5px;">澶勭悊鏃堕棿:</div>
-              <div>{{ qrForm.operatorTime }}</div>
-            </div>
-
-          </div>
-
-        </div>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <div class="footerButton">
-          <el-button @click="dialogVisible2 = false">鍙� 娑�</el-button>
-          <el-button v-print="printObj2" type="primary">纭� 瀹�</el-button>
-        </div>
-      </span>
-    </el-dialog>
-
-    <!--    涓嶈壇澶勭悊鍒楄〃瀵硅瘽妗�-->
-    <el-dialog
-      title="缁翠慨澶勭悊"
-      :visible.sync="badDialogVisible"
-      width="990px"
-      class="badDialogVisible"
-      top="10vh"
-      :close-on-click-modal="false"
-      @close="handleCloseBad"
-      @closed="handleCloseBad"
-    >
-      <el-form
-        inline
-        :model="badDialogForm"
-        label-width="110px"
-      >
-        <el-form-item label="宸ュ崟缂栧彿锛�">
-          <div style="width: 200px">{{ badDialogForm.wo_code }}</div>
-        </el-form-item>
-        <el-form-item label="浜у搧缂栫爜锛�">
-          <div style="width: 200px">{{ badDialogForm.partcode }}</div>
-        </el-form-item>
-        <el-form-item label="浜у搧鍚嶇О锛�">
-          <div style="width: 200px">{{ badDialogForm.partname }}</div>
-        </el-form-item>
-        <el-form-item label="浜у搧瑙勬牸锛�">
-          <div style="width: 200px">{{ badDialogForm.partspec }}</div>
-        </el-form-item>
-        <el-form-item label="褰撳墠宸ュ簭锛�">
-          <div style="width: 200px">{{ badDialogForm.stepname }}</div>
-        </el-form-item>
-        <el-form-item label="涓嬮亾宸ュ簭锛�">
-          <div style="width: 200px">{{ badDialogForm.nextstepname }}</div>
-        </el-form-item>
-        <el-form-item label="浠诲姟鏁伴噺锛�">
-          <div style="width: 200px">{{ badDialogForm.plan_qty }}</div>
-        </el-form-item>
-        <el-form-item label="鎶ュ伐鏁伴噺锛�">
-          <div style="width: 200px">{{ badDialogForm.good_qty }}</div>
-        </el-form-item>
-        <el-form-item label="涓嶈壇鏁伴噺锛�">
-          <div style="width: 200px">{{ badDialogForm.ng_qty }}</div>
-        </el-form-item>
-
-        <el-form-item label="缁翠慨浜哄憳锛�">
-          <el-select
-            v-model="badDialogForm.operation"
-            style="width: 200px;"
-            placeholder="璇烽�夋嫨"
-          >
-            <el-option
-              v-for="item in OperationArr"
-              :key="item.usercode"
-              :label="item.username"
-              :value="item.usercode"
-            />
-          </el-select>
-        </el-form-item>
-
-      </el-form>
-      <div style="margin-bottom:20px">
-        <i class="el-icon-s-operation" style="color:#42b983;" /> 涓嶈壇淇℃伅鏄庣粏锛�
-      </div>
-      <div class="elTableDiv">
-        <el-table
-          :data="badTableDataDialog"
-          :height="isIpad? (tableHeight-350):(tableHeight-400)"
-          border
-          :row-class-name="tableRowClassName"
-          :style="{width: 100+'%',height:(tableHeight-400)+'px',}"
-          highlight-current-row
-          :header-cell-style="this.$headerCellStyle"
-          :cell-style="this.$cellStyle"
-        >
-          <el-table-column
-            type="index"
-            width="50"
-            label="搴忓彿"
-            fixed
-          />
-          <el-table-column
-            prop="step_code"
-            label="宸ュ簭缂栫爜"
-            min-width="80"
-          />
-          <el-table-column
-            prop="stepname"
-            label="宸ュ簭鍚嶇О"
-            min-width="80"
-          />
-
-          <el-table-column
-            prop="plan_qty"
-            label="浠诲姟鏁伴噺"
-            width="80"
-          />
-          <el-table-column
-            label="鎶ュ伐鏁伴噺"
-            width="80"
-            prop="report_qty"
-          />
-          <el-table-column
-            prop="ng_qty"
-            label="涓嶈壇鏁伴噺"
-            width="80"
-          />
-          <el-table-column
-            prop="badqty"
-            label="宸叉姤搴熸暟閲�"
-            width="100"
-          />
-          <el-table-column
-            prop="defect_name"
-            label="涓嶈壇鍘熷洜"
-            show-tooltip-when-overflow
-            width="80"
-          />
-          <el-table-column
-            prop="repair_qty"
-            label="缁翠慨鍚堟牸鏁伴噺"
-            width="110"
-          >
-            <template slot-scope="{row}">
-              <!--              {{ row.repair_qty }}-->
-              <div v-if="row.isVisible===0">{{ row.repair_qty }}</div>
-              <el-input v-if="row.isVisible===1" v-model="row.repair_qty" oninput="value=value.replace(/[^0-9]/g,'')" />
-            </template>
-          </el-table-column>
-          <el-table-column
-            prop="bad_qty"
-            label="鎶ュ簾鏁伴噺"
-            width="90"
-          >
-            <!--            oninput="value=value.replace(/[0-9]/g,'')"-->
-            <template slot-scope="{row}">
-              <div v-if="row.isVisible===0">{{ row.bad_qty }}</div>
-              <el-input v-if="row.isVisible===1" v-model="row.bad_qty" oninput="value=value.replace(/[^0-9]/g,'')" />
-            </template>
-          </el-table-column>
-          <el-table-column
-            label="鎿嶄綔"
-            width="100"
-          >
-            <template slot-scope="{row}">
-              <div class="operationClass">
-                <el-button v-if="row.isVisible===0" type="text" @click="badEdit(row)">缂栬緫</el-button>
-                <el-button v-if="row.isVisible===0" type="text" @click="badDel(row)">鍒犻櫎</el-button>
-
-                <el-button v-if="row.isVisible===1" type="text" @click="badSave(row)">纭</el-button>
-                <el-button v-if="row.isVisible===1" type="text" @click="badCancel(row)">鍙栨秷</el-button>
-              </div>
-            </template>
-          </el-table-column>
-
-        </el-table>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <div class="footerButton">
-          <el-button @click="badDialogVisibleCancel">鍙� 娑�</el-button>
-          <el-button type="primary" @click="badDialogVisibleConfirm ">淇� 瀛�/鎵� 鍗�</el-button>
-        </div>
-      </span>
-    </el-dialog>
-
-  </div>
-</template>
-
-<script>
-import Pagination from '@/components/Pagination'
-import $ from 'jquery'
-import {
-  MesOrderGroupSelectUser,
-  MesOrderSelectUser,
-  MesOrderStepReportSelectUserGroup,
-  MesOrderStepSearch,
-  MesOrderStepStart,
-  MesOrderStepStartSelectEqp,
-  MesOrderWxStepSearch,
-  MesOrderStepSelectWX,
-  SavaMesOrderStepOut,
-  MesOrderStepSelectCause,
-  SavaMesOrderStepIn,
-  SavaMesOrderStepStart,
-  SavaMesOrderStepReport, MesOrderNgStepSearch, MesOrderNgSubStepSearch, EditOrderNgStepSeave
-} from '@/api/scgl'
-import { urlAddRandomNo, webapp_ws_ajax_run, webapp_ws_autoupdate } from '@/utils/grwebapp'
-import QRCode from 'qrcodejs2'
-import { getCookie } from '@/utils/auth'
-import { handleDatetime2 } from '@/utils/global'
-
-const SER_HZ = /^[\u4e00-\u9fa5]+$/
-export default {
-  name: 'SCKBG',
-  components: {
-    Pagination
-  },
-  data() {
-    const validateName = (rule, value, callback) => {
-      if (!value) {
-        return callback(new Error('璇疯緭鍏ョ紪鐮�'))
-      } else {
-        if (SER_HZ.test(value)) {
-          return callback(new Error('缂栫爜涓嶈兘涓轰腑鏂�'))
-        } else {
-          callback()
-        }
-      }
-    }
-    const validateTypeCode = (rule, value, callback) => {
-      if (!value) {
-        return callback(new Error('璇烽�夋嫨涓婄骇'))
-      } else {
-        callback()
-      }
-    }
-    return {
-      mainHeight: 0,
-      tableHeight: 0,
-      isIpad: false,
-      // produceCode: '', // 宸ュ簭鐮�
-      // WXproduceCode: '', // 澶栧崗宸ュ簭鐮�
-      radioSelected: '', // 宸ュ簭閫変腑
-      WXradioSelected: '', // 宸ュ簭閫変腑
-      form: {
-        orderstepqrcode: '', // 鎵弿鐨勪簩缁寸爜淇℃伅
-        prop: 'wo_code', // 鎺掑簭瀛楁
-        order: 'asc', // 鎺掑簭瀛楁
-        page: 1, // 绗嚑椤�
-        rows: 20 // 姣忛〉澶氬皯鏉�
-      },
-      total: 10,
-      tableData: [],
-      WXform: { // 澶栧崗琛ㄥ崟
-        orderstepqrcode: '', // 鎵弿鐨勪簩缁寸爜淇℃伅
-        prop: 'wo_code', // 鎺掑簭瀛楁z
-        order: 'asc', // 鎺掑簭瀛楁
-        page: 1, // 绗嚑椤�
-        rows: 20 // 姣忛〉澶氬皯鏉�
-      },
-      WXtotal: 10, // 澶栧崗琛ㄥ崟鎬绘暟
-      WXtableData: [], // 澶栧崗琛�
-
-      WXSelectArr: [// 澶栧崗绫诲瀷涓嬫媺鍒楄〃
-        { code: 'OUT', name: '鍙戞枡' },
-        { code: 'IN', name: '鏀舵枡' }
-      ],
-      WXSelected: 'OUT', // 澶栧崗涓嬫媺鍒楄〃閫変腑鍊�
-      dialogVisible: false,
-      dialogTitle: '', // 鑷埗寮�濮嬨�佽嚜鍒舵姤宸ャ�佸鍗忓彂鏂欍�佸鍗忔敹鏂�
-      dialogForm: {
-        wo_code: '', // 宸ュ崟缂栧彿
-        partcode: '', // 浜у搧缂栫爜
-        partname: '', // 浜у搧鍚嶇О
-        partspec: '', // 浜у搧瑙勬牸
-        stepseq: '', // 宸ュ簭搴忓彿
-        stepcode: '', // 宸ュ簭缂栫爜
-        stepname: '', // 褰撳墠宸ュ簭鍚�
-        nextstepname: '', // 涓嬩竴閬撳伐搴忓悕
-        stepdesc: '', // 宸ュ簭鎻忚堪
-        planqty: '', // 浠诲姟鏁伴噺
-        reportqty: '', // 宸叉姤鏁伴噺
-        noreportqty: '', // 鏈姤鏁伴噺
-        startqty: '', // 寮�(鎶�)宸ユ暟閲�
-
-        wxcode: '', // 澶栧崗渚涘簲鍟嗙紪鐮�
-        outuser: '', // 鍙戞枡浜哄憳
-        taskqty: '', // 浠诲姟鏁伴噺
-        fqty: '', // 鍙戞枡鏁伴噺
-
-        inuser: '', // 鏀舵枡浜哄憳
-        sqty: '', // 鏀舵枡鏁伴噺
-        ngqty: '', // 涓嶈壇鏁伴噺
-        badcode: '', // 涓嶈壇鍘熷洜缂栫爜
-
-        noputqty: '', // 涓嶈壇鏁伴噺
-
-        eqpcode: '', // 鐢熶骇璁惧缂栫爜
-
-        usergroupcode: '', // 鐝粍缂栫爜
-        reportuser: '', // 鎶ュ伐浜哄憳
-
-        startqtySum: '', // 涓嶈兘瓒呰繃鐨勬暟鍊�
-
-        operation: getCookie('navTabId'), // 鎶ュ伐浜猴紙鏀舵枡浜猴級
-        remarks: ''// 澶囨敞
-
-      },
-      ZZuserArr: [], // 鑷埗鐢ㄦ埛鎵�鏈�
-      ZZtreams: [], // 鑷埗鐢熶骇鐝粍鏁扮粍
-      ZZeqpArr: [], // 鑷埗璁惧鍚嶇О
-      badArr: [], // 涓嶈壇鍘熷洜鏁扮粍
-      WXouterprovide: [], // 澶栧崗渚涙柟鏁扮粍
-      WXoutuser: [], // 鍙戞枡浜哄憳鏁扮粍
-      userTableData: [], // 浜哄憳鍒楄〃
-      UserTotal: 0,
-      Userform: {},
-      userIsSave: false, // 姝や汉鍛樻槸鍚﹀彲淇濇寔
-      dialogFormRules: {
-        outuser: [
-          { required: true, message: '璇烽�夋嫨鍙戞枡浜哄憳', trigger: ['blur', 'change'] }
-        ],
-        fqty: [
-          { required: true, message: '璇疯緭鍏ュ彂鏂欐暟閲�', trigger: ['blur', 'change'] }
-        ],
-        wxcode: [
-          { required: true, message: '璇烽�夋嫨澶栧崗渚涙柟', trigger: ['blur', 'change'] }
-        ],
-        inuser: [
-          { required: true, message: '璇烽�夋嫨鏀舵枡浜哄憳', trigger: ['blur', 'change'] }
-        ],
-        sqty: [
-          { required: true, message: '璇疯緭鍏ユ敹鏂欐暟閲�', trigger: ['blur', 'change'] }
-        ],
-        // noputqty: [
-        //   { required: true, message: '璇疯緭鍏ヤ笉鑹暟閲�', trigger: ['blur', 'change'] }
-        // ],
-        // badcode: [
-        //   { required: true, message: '璇烽�夋嫨涓嶈壇鍘熷洜', trigger: ['blur', 'change'] }
-        // ]
-        eqpcode: [
-          { required: true, message: '璇烽�夋嫨鐢熶骇璁惧', trigger: ['blur', 'change'] }
-        ],
-        usergroupcode: [
-          { required: true, message: '璇烽�夋嫨鐢熶骇鐝粍', trigger: ['blur', 'change'] }
-        ],
-        startqty: [
-          { required: true, message: '璇疯緭鍏ユ姤宸ユ暟閲�', trigger: ['blur', 'change'] }
-        ]
-      },
-      activeName: '',
-      dialogVisible2: false,
-      printObj2: {
-        id: 'printMe2',
-        popTitle: '鎵撳嵃妯℃澘',
-        preview: false,
-        extraHead: '<meta http-equiv="Content-Language" content="zh-cn"/>',
-        closeCallback(vue) { // 鍏抽棴鎵撳嵃鐨勫洖璋冧簨浠讹紙鏃犳硶纭畾鐐瑰嚮鐨勬槸纭杩樻槸鍙栨秷锛�
-          console.log('11212', vue)
-          // vue.dialogVisible = false
-          vue.dialogVisible2 = false
-          vue.dialogVisible = false
-        },
-        beforeOpenCallback(vue) {
-          vue.printLoading = true
-          console.log('鎵撳紑涔嬪墠')
-          console.log()
-        },
-        openCallback(vue) {
-          vue.printLoading = false
-          console.log('鎵ц浜嗘墦鍗�')
-        }
-      },
-      qrForm: { // 鎵撳嵃鍐呭
-        qrvalue: '',
-        startqty: '',
-        wo_code: '',
-        partcode: '',
-        partname: '',
-        nextstepname: '',
-        operator: '', // 鎿嶄綔浜�
-        operatorTime: ''// 鎿嶄綔鏃堕棿
-      },
-      badForm: {
-        orderstepqrcode: '', // 鎵弿鐨勪簩缁寸爜
-        prop: 'wo_code',
-        order: 'asc',
-        page: 1,
-        rows: 20
-      },
-      badTableData: [], // 涓嶈壇澶勭悊鍒楄〃table鏁版嵁
-      badTotal: 0,
-      badDialogVisible: false,
-      badDialogForm: {
-        operation: getCookie('navTabId')
-      },
-      badTableDataDialog: [], // 涓嶈壇瀵硅瘽妗唗able琛ㄦ牸
-      OperationArr: [], // 浜哄憳鏁扮粍
-      sendButtonIsDisabled: false // 涓嬭揪鎸夐挳鏄惁鍙偣鍑�
-    }
-  },
-  watch: {
-    'form.orderstepqrcode': {
-      handler(newValue) {
-        this.form.orderstepqrcode = newValue
-
-        // 鍦ㄨ繖閲岃皟鐢紝骞舵墽琛宼his.fnThrottle(this.search, 500, 2000)();
-        this.fnThrottle(this.enterNative, 500, 2000, 'produceCode')()
-      }
-    },
-    'WXform.orderstepqrcode': {
-      handler(newValue) {
-        this.form.orderstepqrcode = newValue
-
-        // 鍦ㄨ繖閲岃皟鐢紝骞舵墽琛宼his.fnThrottle(this.search, 500, 2000)();
-        this.fnThrottle(this.enterNative, 500, 2000, 'WXproduceCode')()
-      }
-    },
-    'badForm.orderstepqrcode': {
-      handler(newValue) {
-        this.form.orderstepqrcode = newValue
-
-        // 鍦ㄨ繖閲岃皟鐢紝骞舵墽琛宼his.fnThrottle(this.search, 500, 2000)();
-        this.fnThrottle(this.enterNative, 500, 2000, 'badProduceCode')()
-      }
-    }
-  },
-  // computed: {
-  //   qrLink: function() {
-  //     return this.$store.getters.getPreviewUrl
-  //   }
-  // },
-  // watch: {
-  //   qrLink: function(newVal, oldNew) {
-  //     if (newVal !== oldNew) {
-  //       this.$nextTick(() => {
-  //         this.bindQRCode(newVal)
-  //       })
-  //     }
-  //   }
-  // },
-  created() {
-    this.getMesOrderStepSearch()
-    this.tabClick()
-  },
-  mounted() {
-    window.addEventListener('resize', this.getHeight)
-    this.getHeight()
-
-    this.$nextTick(() => {
-      $("input[name='produceCode']")[0].focus()
-      // this.bindQRCode('10001;001')
-    })
-    // webapp_urlprotocol_startup()
-    // webapp_ws_autoupdate(true)
-
-    this.getMesOrderSelectUserAll() // 鑾峰彇鎵�鏈変汉鍛�
-  },
-  methods: {
-    // 闃叉姈      //鎵爜鐢ㄧ殑鏄槻鎶�
-    fnThrottle(method, delay, duration, belong) {
-      var that = this
-      var timer = this.timer
-      var begin = new Date().getTime()
-      return function() {
-        var current = new Date().getTime()
-        clearTimeout(timer)
-        if (current - begin >= duration) {
-          // method()
-          // that.VALUE()
-          begin = current
-        } else {
-          that.timer = setTimeout(function() {
-            // method()
-            if (belong === 'produceCode') {
-              that.enterNative(that.form.orderstepqrcode, belong)
-            }
-            if (belong === 'WXproduceCode') {
-              that.enterNative(that.WXform.orderstepqrcode, belong)
-            }
-            if (belong === 'badProduceCode') {
-              that.enterNative(that.badForm.orderstepqrcode, belong)
-            }
-          }, delay)
-        }
-      }
-    },
-    tableRowClassName({ row, rowIndex }) {
-      return 'custom-row'
-    },
-    async getMesOrderStepSearch() {
-      const res = await MesOrderStepSearch(this.form)
-      if (res.code === '200') {
-        this.tableData = res.data
-        this.total = res.count
-      }
-    },
-    async getMesOrderWxStepSearch() {
-      const res = await MesOrderWxStepSearch(this.WXform)
-      if (res.code === '200') {
-        this.WXtableData = res.data
-      }
-    },
-    // 鎺掑簭鏀瑰彉鏃�
-    sortChange({ column, prop, order }) {
-      if (order === 'descending') {
-        order = 'desc'
-      } else if (order === 'ascending') {
-        order = 'asc'
-      } else {
-        order = 'desc'
-      }
-      this.form.order = order
-      this.form.prop = prop
-      this.getMesOrderStepSearch()
-    },
-    // WX鎺掑簭鏀瑰彉鏃�
-    WXsortChange({ column, prop, order }) {
-      if (order === 'descending') {
-        order = 'desc'
-      } else if (order === 'ascending') {
-        order = 'asc'
-      } else {
-        order = 'desc'
-      }
-      this.WXform.order = order
-      this.WXform.prop = prop
-      this.getMesOrderWxStepSearch()
-    },
-    badSortChange({ column, prop, order }) {
-      if (order === 'descending') {
-        order = 'desc'
-      } else if (order === 'ascending') {
-        order = 'asc'
-      } else {
-        order = 'desc'
-      }
-      this.badForm.order = order
-      this.badForm.prop = prop
-      this.getBadList()
-    },
-    // 鑷埗椤电鍘熺偣鐐瑰嚮
-    getCurrentRow(val) {
-
-    },
-    // 澶栧崗椤电鍘熺偣鐐瑰嚮
-    getWXCurrentRow(val) {
-      console.log(val)
-      this.WXradioSelected = val
-    },
-    // tab鎸夐挳鍒囨崲榧犳爣鑷姩鑱氱劍
-    tabClick(val, d) {
-      if (this.$refs.elTabs.currentName === '0') {
-        this.$nextTick(() => {
-          this.getMesOrderStepSearch()
-          $("input[name='produceCode']")[0].focus()
-          this.WXform.orderstepqrcode = ''
-        })
-      }
-      if (this.$refs.elTabs.currentName === '1') {
-        this.$nextTick(() => {
-          this.getMesOrderWxStepSearch()
-          $("input[name='WXproduceCode']")[0].focus()
-          this.form.orderstepqrcode = ''
-        })
-      }
-      if (this.$refs.elTabs.currentName === '2') {
-        this.$nextTick(() => {
-          this.getBadList()
-          $("input[name='badProduceCode']")[0].focus()
-          this.badForm.orderstepqrcode = ''
-        })
-      }
-    },
-    // 鎵爜閿洏鍥炶溅浜嬩欢
-    async enterNative(val, belong) {
-      console.log(val, belong)
-      // 寮�宸ワ細code="200"  count=0
-      // 鎶ュ伐锛歝ode="200"  count=1
-      // 鍙戞枡锛歝ode="200"  count=2
-      // 鏀舵枡锛歝ode="200"  count=3
-      // 璧板垪琛ㄥ舰寮� code="200"  count=4
-      if (belong === 'produceCode') {
-        const orderstepqrcode = this.form.orderstepqrcode
-        const data = {
-          OperType: 'ZZ',
-          orderstepqrcode: orderstepqrcode,
-          SelectType: ''
-        }
-        const res = await MesOrderStepStart(data)
-        if (res.code === '200' && res.count === 0) {
-          await this.ZZstart(res.data)
-        }
-        if (res.code === '200' && res.count === 1) {
-          await this.ZZreport(res.data)
-        }
-      }
-      if (belong === 'WXproduceCode') {
-        const orderstepqrcode = this.WXform.orderstepqrcode
-        const data = {
-          OperType: 'WX',
-          orderstepqrcode: orderstepqrcode,
-          SelectType: this.WXSelected// OUT銆両N
-        }
-        const res = await MesOrderStepStart(data)
-        if (res.code === '200' && res.count === 2) {
-          await this.WXsend(res.data)
-        }
-        if (res.code === '200' && res.count === 3) {
-          await this.WXback(res.data)
-        }
-      }
-
-      if (belong === 'badProduceCode') {
-        // this.badForm.orderstepqrcode=
-        await this.getBadList()
-        await this.repairHandle(this.badForm.orderstepqrcode)
-        this.badDialogVisible = true
-      }
-    },
-    // 鏌ヨ
-    search() {
-      this.getMesOrderStepSearch()
-    },
-    // 鑷埗寮�濮�
-    async ZZstart(obj) {
-      // if (!this.ZZisExecutable) {
-      //   return this.$message.info('璇峰厛鎵爜宸ュ簭浜岀淮鐮侊紒')
-      // }
-      this.dialogTitle = '鑷埗寮�濮�'
-      this.dialogVisible = true
-
-      this.$nextTick(() => {
-        this.dialogForm.wo_code = obj.wo_code
-        this.dialogForm.partcode = obj.partnumber
-        this.dialogForm.partname = obj.partname
-        this.dialogForm.partspec = obj.partspec
-        this.dialogForm.stepseq = obj.seq
-        this.dialogForm.stepcode = obj.stepcode
-        this.dialogForm.stepname = obj.stepname
-        this.dialogForm.stepdesc = obj.stepdesc
-        this.dialogForm.planqty = obj.planqty
-        this.dialogForm.reportqty = obj.reportqty
-        this.dialogForm.noreportqty = obj.noreportqty
-        // this.dialogForm.startqty = obj.startqty
-        this.dialogForm.startqty = obj.noreportqty
-      })
-
-      await this.getMesOrderStepStartSelectEqp()
-    },
-    // 鑷埗鎶ュ伐
-    async ZZreport(obj) {
-      // if (!this.ZZisExecutable) {
-      //   return this.$message.info('璇峰厛鎵爜宸ュ簭浜岀淮鐮侊紒')
-      // }
-      this.dialogTitle = '鑷埗鎶ュ伐'
-      this.dialogVisible = true
-
-      this.$nextTick(() => {
-        this.dialogForm.wo_code = obj.wo_code
-        this.dialogForm.partcode = obj.partnumber
-        this.dialogForm.partname = obj.partname
-        this.dialogForm.partspec = obj.partspec
-        this.dialogForm.stepseq = obj.seq
-        this.dialogForm.stepcode = obj.stepcode
-        this.dialogForm.stepname = obj.stepname
-        this.dialogForm.stepdesc = obj.stepdesc
-        this.dialogForm.planqty = obj.planqty
-        this.dialogForm.reportqty = obj.reportqty
-        this.dialogForm.noputqty = obj.noputqty
-        this.dialogForm.noreportqty = obj.noreportqty
-        // this.dialogForm.startqty = obj.startqty
-        this.dialogForm.startqty = obj.noreportqty
-
-        this.dialogForm.nextstepname = obj.nextstepname
-        this.dialogForm.nextstepcode = obj.nextstepcode
-
-        this.dialogForm.startqtySum = obj.noreportqty
-      })
-
-      await this.getMesOrderStepStartSelectEqp()
-      await this.getMesOrderStepReportSelectUserGroup()
-      await this.getMesOrderStepSelectCause('ZZ')
-      await this.getMesOrderSelectUserZZ()
-    },
-    // 澶栧崗鍙戞枡
-    async WXsend(obj) {
-      // if (this.WXradioSelected.length < 1 && obj.length < 1) {
-      //   return this.$message.info('璇峰厛閫夋嫨宸ュ簭锛�')
-      // }
-      // console.log(this.WXform.orderstepqrcode === '', 6)
-      // if (this.WXform.orderstepqrcode === '') {
-      //   return this.$message.info('璇峰厛杈撳叆宸ュ簭锛�')
-      // }
-      this.dialogTitle = '澶栧崗鍙戞枡'
-      this.dialogVisible = true
-
-      this.$nextTick(() => {
-        this.dialogForm.wo_code = obj.wo_code
-        this.dialogForm.partcode = obj.partnumber
-        this.dialogForm.partname = obj.partname
-        this.dialogForm.partspec = obj.partspec
-        this.dialogForm.stepname = obj.stepname
-        this.dialogForm.stepdesc = obj.stepdesc
-        this.dialogForm.planqty = obj.planqty
-        this.dialogForm.reportqty = obj.reportqty
-        this.dialogForm.noreportqty = obj.noreportqty
-        this.dialogForm.fqty = obj.startqty
-        this.dialogForm.stepcode = obj.stepcode
-        this.dialogForm.stepseq = obj.seq
-      })
-
-      await this.getMesOrderStepSelectWX()
-      await this.getMesOrderSelectUser()
-    },
-    // 澶栧崗鏀舵枡
-    async WXback(obj) {
-      // if (this.WXform.orderstepqrcode === '') {
-      //   return this.$message.info('璇峰厛杈撳叆宸ュ簭锛�')
-      // }
-      this.dialogTitle = '澶栧崗鏀舵枡'
-      this.dialogVisible = true
-
-      this.$nextTick(() => {
-        this.dialogForm.wo_code = obj.wo_code
-        this.dialogForm.partcode = obj.partnumber
-        this.dialogForm.partname = obj.partname
-        this.dialogForm.partspec = obj.partspec
-        this.dialogForm.stepname = obj.stepname
-        this.dialogForm.stepdesc = obj.stepdesc
-        this.dialogForm.planqty = obj.planqty
-        this.dialogForm.reportqty = obj.reportqty
-        this.dialogForm.noreportqty = obj.noreportqty
-        this.dialogForm.stepcode = obj.stepcode
-
-        this.dialogForm.nextstepname = obj.nextstepname
-        this.dialogForm.nextstepcode = obj.nextstepcode
-
-        this.dialogForm.noputqty = obj.noputqty
-        this.dialogForm.stepseq = obj.seq
-        this.dialogForm.sqty = obj.startqty
-
-        this.dialogForm.startqtySum = obj.startqty
-      })
-      await this.getMesOrderStepSelectWX()
-      await this.getMesOrderSelectUser()
-      await this.getMesOrderStepSelectCause('WX')
-    },
-    // 鐢熶骇鐝粍涓嬫媺鏀瑰彉
-    usergroupChange(val) {
-      this.dialogForm.usergroupcode = val
-      this.getMesOrderSelectUserZZ2()
-    },
-    // 鑾峰彇鑷埗鎶ュ伐鐢熶骇鐝粍涓嬫媺鍒楄〃
-    async getMesOrderStepReportSelectUserGroup() {
-      const { data: res } = await MesOrderStepReportSelectUserGroup()
-      this.ZZtreams = res
-    },
-    // 鑾峰彇鑷埗鎶ュ伐琛ㄦ牸user鎵�鏈�
-    async getMesOrderSelectUserZZ() {
-      const { data: res } = await MesOrderSelectUser({ usercode: this.dialogForm.usergroupcode })
-      this.ZZuserArr = res
-    },
-    async getMesOrderSelectUserZZ2() {
-      const { data: res } = await MesOrderSelectUser({ usercode: '' })
-      this.ZZuserArr = res
-      await this.getUserTableData()
-    },
-    // 鑾峰彇鑷埗鐢熶骇璁惧涓嬫媺
-    async getMesOrderStepStartSelectEqp() {
-      const { data: res } = await MesOrderStepStartSelectEqp({ orderstepqrcode: this.form.orderstepqrcode })
-      this.ZZeqpArr = res
-    },
-    // 鑾峰彇WX渚涙柟鎺ュ彛
-    async getMesOrderStepSelectWX() {
-      const { data: res } = await MesOrderStepSelectWX({ orderstepqrcode: this.WXform.orderstepqrcode })
-      this.WXouterprovide = res
-    },
-    // 鑾峰彇鏀跺彂鏂欎汉鍛樹笅鎷夋帴鍙�
-    async getMesOrderSelectUser() {
-      const { data: res } = await MesOrderSelectUser({ usercode: this.dialogForm.outuser })
-      this.WXoutuser = res
-    },
-    // 鑾峰彇鏀舵枡涓嶈壇鍘熷洜涓嬫媺
-    async getMesOrderStepSelectCause(val) {
-      let orderstepqrcode = ''
-      if (val === 'WX') {
-        orderstepqrcode = this.WXform.orderstepqrcode
-      }
-      if (val === 'ZZ') {
-        orderstepqrcode = this.form.orderstepqrcode
-      }
-      const { data: res } = await MesOrderStepSelectCause({ orderstepqrcode: orderstepqrcode })
-      this.badArr = res
-    },
-    // 鎶ュ伐鏌ヨ鐢ㄦ埛琛�
-    async getUserTableData() {
-      const { data: res } = await MesOrderGroupSelectUser({ usergroupcode: this.dialogForm.usergroupcode })
-      this.userTableData = res
-      this.userTableData.forEach(item => {
-        let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
-        number = number === 0 ? (10 + Math.random()) : number
-        item.isVisible = 0
-        item.number = number
-      })
-
-      this.ZZuserArr = [...this.ZZuserArr].filter(x => [...this.userTableData].every(y => y.usercode !== x.usercode))
-    },
-    // 鐢ㄦ埛娣诲姞
-    userAdd() {
-      let number = Math.random() * Math.random()// 浣滀负鍒犻櫎鏃剁殑鏍囪瘑绗�
-      number = number === 0 ? (10 + Math.random()) : number
-      console.log(this.userTableData, 6)
-      this.userTableData.unshift({ usercode: '', username: '', isVisible: 1, number: number })
-    },
-    // 鐢ㄦ埛鍒楄〃鍒犻櫎
-    userDel(row) {
-      this.ZZuserArr.splice(0, 0, {
-        usercode: row.usercode,
-        username: row.username
-      })
-
-      this.userTableData.forEach((item, index) => {
-        if (item.number === row.number) {
-          this.userTableData.splice(index, 1)
-        }
-      })
-    },
-    // 鐢ㄦ埛鍒楄〃淇濆瓨
-    userSave(row) {
-      console.log(row, 123)
-      if (row.usercode === '') {
-        return this.$message.info('浜哄憳鍚嶇О涓嶈兘涓虹┖锛�')
-      }
-
-      this.ZZuserArr.forEach((item, index) => {
-        if (item.usercode === row.usercode) {
-          this.ZZuserArr.splice(index, 1)
-        }
-      })
-
-      this.userTableData.forEach(item => {
-        if (item.number === row.number) {
-          item.isVisible = 0
-        }
-      })
-    },
-    // 鐢ㄦ埛鍒楄〃鍙栨秷
-    userCancel(row) {
-      this.userTableData.forEach((item, index) => {
-        if (item.number === row.number) {
-          this.userTableData.splice(index, 1)
-        }
-      })
-    },
-    // 鐢ㄦ埛鍒楄〃浜哄憳鍚嶇О鍊奸�変腑
-    usernameChange(val, row) {
-      this.userTableData.forEach(item => {
-        if (item.usercode === val) {
-          this.userIsSave = true
-          return this.$message.info('姝や汉鍛樺凡鍦ㄥ垪涓紒')
-        }
-        if (item.number === row.number) {
-          this.userIsSave = false
-          item.usercode = val
-          item.username = this.ZZuserArr.find(item => item.usercode === val).username
-        }
-      })
-    },
-    // 瀵硅瘽妗嗗叧闂簨浠�
-    handleClose() {
-      this.form.orderstepqrcode = ''
-      this.WXform.orderstepqrcode = ''
-      this.badForm.orderstepqrcode = ''
-
-      this.dialogForm.wo_code = '', // 宸ュ崟缂栧彿
-      this.dialogForm.partcode = '', // 浜у搧缂栫爜
-      this.dialogForm.partname = '', // 浜у搧鍚嶇О
-      this.dialogForm.partspec = '', // 浜у搧瑙勬牸
-      this.dialogForm.stepseq = '', // 宸ュ簭搴忓彿
-      this.dialogForm.stepcode = '', // 宸ュ簭缂栫爜
-      this.dialogForm.stepname = '', // 褰撳墠宸ュ簭鍚�
-      this.dialogForm.nextstepname = '', // 涓嬩竴閬撳伐搴忓悕
-      this.dialogForm.stepdesc = '', // 宸ュ簭鎻忚堪
-      this.dialogForm.planqty = '', // 浠诲姟鏁伴噺
-      this.dialogForm.reportqty = '', // 宸叉姤鏁伴噺
-      this.dialogForm.noreportqty = '', // 鏈姤鏁伴噺
-      this.dialogForm.startqty = '', // 寮�(鎶�)宸ユ暟閲�
-
-      this.dialogForm.wxcode = '', // 澶栧崗渚涘簲鍟嗙紪鐮�
-      this.dialogForm.outuser = '', // 鍙戞枡浜哄憳
-      this.dialogForm.taskqty = '', // 浠诲姟鏁伴噺
-      this.dialogForm.fqty = '', // 鍙戞枡鏁伴噺
-
-      this.dialogForm.inuser = '', // 鏀舵枡浜哄憳
-      this.dialogForm.sqty = '', // 鏀舵枡鏁伴噺
-      this.dialogForm.ngqty = '', // 涓嶈壇鏁伴噺
-      this.dialogForm.badcode = '', // 涓嶈壇鍘熷洜缂栫爜
-
-      this.dialogForm.noputqty = '', // 涓嶈壇鏁伴噺
-
-      this.dialogForm.eqpcode = '', // 鐢熶骇璁惧缂栫爜
-
-      this.dialogForm.usergroupcode = '', // 鐝粍缂栫爜
-      this.dialogForm.reportuser = '', // 鎶ュ伐浜哄憳
-
-      this.dialogForm.startqtySum = '' // 涓嶈兘瓒呰繃鐨勬暟鍊�
-
-      this.dialogForm.nextstepcode = '' // 涓嬮亾宸ュ簭缂栫爜
-
-      this.dialogForm.remarks = '' // 澶囨敞
-      this.dialogForm.operation = getCookie('navTabId') // 鎶ュ伐浜猴紙鏀舵枡浜猴級
-      this.userTableData = [] // 浜哄憳鍒楄〃
-
-      this.$refs.dialogForm.clearValidate()
-    },
-    // 瀵硅瘽妗嗗彇娑�
-    dialogVisibleCancel() {
-      this.dialogVisible = false
-      this.tabClick()
-    },
-    // 瀵硅瘽妗嗙‘璁�
-    dialogVisibleConfirm() {
-      this.$refs.dialogForm.validate(valid => {
-        if (valid) {
-          if (this.dialogTitle === '澶栧崗鍙戞枡') {
-            if (parseFloat(this.dialogForm.fqty) > parseFloat(this.dialogForm.noreportqty)) {
-              return this.$message.info('鍙戞枡鏁伴噺涓嶈兘澶т簬鏈彂鏁伴噺!')
-            }
-            const data = {
-              mesordercode: this.dialogForm.wo_code, // 宸ュ崟缂栧彿
-              partcode: this.dialogForm.partcode, // 浜у搧缂栫爜
-              stepseq: this.dialogForm.stepseq, // 宸ュ簭搴忓彿   鏆傛椂缂�
-              stepcode: this.dialogForm.stepcode, // 宸ュ簭缂栫爜
-              wxcode: this.dialogForm.wxcode, // 澶栧崗渚涘簲鍟嗙紪鐮�
-              outuser: this.dialogForm.outuser, // 鍙戞枡浜哄憳
-              taskqty: this.dialogForm.planqty, // 浠诲姟鏁伴噺
-              fqty: this.dialogForm.fqty // 鍙戞枡鏁伴噺
-            }
-            SavaMesOrderStepOut(data).then(res => {
-              if (res.code === '200') {
-                this.$message.success('鍙戞枡鎴愬姛锛�')
-                this.dialogVisible = false
-                this.tabClick()
-              } else {
-                this.$message.error('鍙戞枡澶辫触!')
-              }
-            })
-          }
-
-          if (this.dialogTitle === '澶栧崗鏀舵枡') {
-            if (parseFloat(this.dialogForm.startqtySum) < parseFloat(this.dialogForm.sqty) + parseFloat(this.dialogForm.noputqty)) {
-              return this.$message.info('鏀舵枡鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庝簡鏈敹鏁伴噺!')
-            }
-
-            if (parseFloat(this.dialogForm.noputqty) > 0) {
-              if (this.dialogForm.badcode.length < 1) {
-                return this.$message.info('璇烽�夋嫨涓嶈壇鍘熷洜锛�')
-              }
-            }
-
-            const data = {
-              mesordercode: this.dialogForm.wo_code, // 宸ュ崟缂栧彿
-              partcode: this.dialogForm.partcode, // 浜у搧缂栫爜
-              stepseq: this.dialogForm.stepseq, // 宸ュ簭搴忓彿
-              stepcode: this.dialogForm.stepcode, // 宸ュ簭缂栫爜
-              wxcode: this.dialogForm.wxcode, // 澶栧崗渚涘簲鍟嗙紪鐮�
-              inuser: this.dialogForm.inuser, // 鍙戞枡浜哄憳
-              taskqty: this.dialogForm.planqty, // 浠诲姟鏁伴噺
-              sqty: this.dialogForm.sqty, // 鏀舵枡鏁伴噺
-              remarks: this.dialogForm.remarks, // 澶囨敞
-              ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 涓嶈壇鏁伴噺
-              badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 涓嶈壇鍘熷洜
-            }
-            SavaMesOrderStepIn(data).then(res => {
-              if (res.code === '200') {
-                this.$message.success('鏀舵枡鎴愬姛锛�')
-
-                if (this.dialogForm.nextstepcode === '') {
-                  this.WXprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.operation).username)
-                  this.dialogVisible2 = true
-                }
-                this.dialogVisible = false
-                this.tabClick()
-              } else {
-                this.$message.error('鏀舵枡澶辫触!')
-              }
-            })
-          }
-
-          if (this.dialogTitle === '鑷埗寮�濮�') {
-            const data = {
-              mesordercode: this.dialogForm.wo_code, // 宸ュ崟缂栧彿
-              partcode: this.dialogForm.partcode, // 浜у搧缂栫爜
-              stepseq: this.dialogForm.stepseq, // 宸ュ簭搴忓彿   鏆傛椂缂�
-              stepcode: this.dialogForm.stepcode, // 宸ュ簭缂栫爜
-              eqpcode: this.dialogForm.eqpcode, // 鐢熶骇璁惧
-              taskqty: this.dialogForm.planqty, // 浠诲姟鏁伴噺
-              startqty: this.dialogForm.startqty// 寮�濮嬫暟閲�
-            }
-            SavaMesOrderStepStart(data).then(res => {
-              if (res.code === '200') {
-                this.$message.success('寮�宸ユ垚鍔燂紒')
-                this.dialogVisible = false
-                this.tabClick()
-              } else {
-                this.$message.error('寮�宸ュけ璐�!')
-              }
-            })
-          }
-
-          if (this.dialogTitle === '鑷埗鎶ュ伐') {
-            if (parseFloat(this.dialogForm.startqtySum) < parseFloat(this.dialogForm.startqty) + parseFloat(this.dialogForm.noputqty)) {
-              return this.$message.info('鎶ュ伐鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庝簡鏈姤鏁伴噺!')
-            }
-            if (this.userTableData.length < 1) {
-              return this.$message.info('浜哄憳鍒楄〃涓嶈兘涓虹┖!')
-            }
-
-            if (parseFloat(this.dialogForm.noputqty) > 0) {
-              if (this.dialogForm.badcode.length < 1) {
-                return this.$message.info('璇烽�夋嫨涓嶈壇鍘熷洜锛�')
-              }
-            }
-            // this.userTableData = [...new Set(this.userTableData)]// 鏁扮粍鍘婚噸
-            this.userTableData = this.userTableData.filter(item => item.usercode !== '')
-            // 鏁扮粍涓璞$浉鍚岀殑鍘婚噸
-            this.userTableData = this.userTableData.filter((currentValue, currentIndex, selfArr) => {
-              return selfArr.findIndex(item => item.usercode === currentValue.usercode) === currentIndex
-            })
-            // console.log(this.userTableData, 1)
-            const reportuser = this.userTableData.map(item => item.usercode).join(';')
-            const data = {
-              mesordercode: this.dialogForm.wo_code, // 宸ュ崟缂栧彿
-              partcode: this.dialogForm.partcode, // 浜у搧缂栫爜
-              stepseq: this.dialogForm.stepseq, // 宸ュ簭搴忓彿
-              stepcode: this.dialogForm.stepcode, // 宸ュ簭缂栫爜
-              eqpcode: this.dialogForm.eqpcode, // 璁惧缂栫爜
-              usergroupcode: this.dialogForm.usergroupcode, // 鐝粍缂栫爜
-              reportuser: reportuser, // 鎶ュ伐浜哄憳
-              taskqty: this.dialogForm.planqty, // 浠诲姟鏁伴噺
-              // startqty: this.dialogForm.startqty, // 寮�宸ユ暟閲�
-              startqty: this.dialogForm.reportqty, // 寮�宸ユ暟閲�
-              // reportqty: this.dialogForm.reportqty, // 鎶ュ伐鏁伴噺
-              reportqty: this.dialogForm.startqty, // 鎶ュ伐鏁伴噺
-              remarks: this.dialogForm.remarks, // 澶囨敞
-              ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 涓嶈壇鏁伴噺
-              badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 涓嶈壇鍘熷洜
-            }
-
-            SavaMesOrderStepReport(data).then(res => {
-              if (res.code === '200') {
-                this.$message.success('鎶ュ伐鎴愬姛锛�')
-
-                if (this.dialogForm.nextstepcode === '') {
-                  this.ZZprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.operation).username)
-                  this.dialogVisible2 = true
-                }
-                this.dialogVisible = false
-                this.tabClick()
-              } else {
-                this.$message.error('鎶ュ伐澶辫触!')
-              }
-            })
-          }
-        }
-      })
-    },
-    // 鐢熸垚浜岀淮鐮�
-    bindQRCode(text) {
-      new QRCode(this.$refs.qrCodeDiv2, {
-        text: text,
-        // width: 50,
-        width: 60,
-        // height: 50,
-        height: 60,
-        colorDark: '#000', // 浜岀淮鐮侀鑹�
-        colorLight: '#ffffff', // 浜岀淮鐮佽儗鏅壊
-        correctLevel: QRCode.CorrectLevel.L// 瀹归敊鐜囷紝L/M/H
-      })
-    },
-    ZZprint2(username) {
-      this.qrForm.qrvalue = this.dialogForm.wo_code + ';' + this.dialogForm.nextstepcode
-      this.qrForm.startqty = this.dialogForm.startqty
-      this.qrForm.wo_code = this.dialogForm.wo_code
-      this.qrForm.partcode = this.dialogForm.partcode
-      this.qrForm.partname = this.dialogForm.partname
-      this.qrForm.nextstepname = this.dialogForm.nextstepname
-      this.qrForm.operator = username
-      this.qrForm.operatorTime = handleDatetime2(new Date())
-      this.$nextTick(() => {
-        this.bindQRCode(this.qrForm.qrvalue)
-      })
-    },
-    WXprint2(username) {
-      this.qrForm.qrvalue = this.dialogForm.wo_code + ';' + this.dialogForm.nextstepcode
-      this.qrForm.startqty = this.dialogForm.sqty
-      this.qrForm.wo_code = this.dialogForm.wo_code
-      this.qrForm.partcode = this.dialogForm.partcode
-      this.qrForm.partname = this.dialogForm.partname
-      this.qrForm.nextstepname = this.dialogForm.nextstepname
-      this.qrForm.operator = username
-      this.qrForm.operatorTime = handleDatetime2(new Date())
-      this.$nextTick(() => {
-        this.bindQRCode(this.qrForm.qrvalue)
-      })
-    },
-    dialogVisible2Close() {
-      this.qrForm.qrvalue = ''
-      this.qrForm.startqty = ''
-      this.qrForm.wo_code = ''
-      this.qrForm.partcode = ''
-      this.qrForm.partname = ''
-      this.qrForm.nextstepname = ''
-      this.qrForm.operator = ''
-      this.qrForm.operatorTime = ''
-      // this.$refs.qrCodeDiv2 = ''
-    },
-
-    // 鑾峰彇椤甸潰楂樺害
-    getHeight() {
-      this.$nextTick(() => {
-        this.mainHeight = window.innerHeight - 85
-        this.tableHeight = this.mainHeight - 220
-        this.isIpad = window.innerHeight < 769
-        if (window.innerHeight < 769) {
-          this.tableHeight = this.tableHeight - 50
-        }
-      })
-    },
-
-    // 鑾峰彇涓嶈壇澶勭悊鍒楄〃
-    async getBadList() {
-      const res = await MesOrderNgStepSearch(this.badForm)
-      this.badTableData = res.data
-      this.badTotal = res.count
-    },
-    badDialogVisibleCancel() {
-      this.badDialogVisible = false
-    },
-    badDialogVisibleConfirm() {
-      const data = {
-        Data: this.badTableDataDialog
-      }
-      EditOrderNgStepSeave(data, this.badDialogForm.operation).then(res => {
-        if (res.code === '200' || res.code === '301') {
-          this.getBadList()
-          this.badDialogVisible = false
-          this.badPrint(this.OperationArr.find(item => item.usercode === this.badDialogForm.operation).username)
-          this.dialogVisible2 = true
-          return this.$message.success('淇濆瓨鎴愬姛锛�')
-        }
-      })
-    },
-    badPrint(username) {
-      this.qrForm.qrvalue = this.badDialogForm.wo_code + ';' + this.badDialogForm.nextstepcode
-      this.qrForm.startqty = this.badDialogForm.plan_qty
-      this.qrForm.wo_code = this.badDialogForm.wo_code
-      this.qrForm.partcode = this.badDialogForm.partcode
-      this.qrForm.partname = this.badDialogForm.partname
-      this.qrForm.nextstepname = this.badDialogForm.nextstepname
-      this.qrForm.operator = username
-      this.qrForm.operatorTime = handleDatetime2(new Date())
-      console.log(this.qrForm, 22)
-      this.$nextTick(() => {
-        this.bindQRCode(this.qrForm.qrvalue)
-      })
-    },
-
-    handleCloseBad() {
-      this.badDialogForm = {}
-      this.badDialogForm.operation = getCookie('navTabId')
-      this.badTableDataDialog = []
-    },
-    async  getMesOrderSelectUserAll() {
-      const { data: res } = await MesOrderSelectUser({ usercode: '' })
-      this.OperationArr = res
-    },
-    // 鐐瑰嚮缁翠慨澶勭悊鎸夐挳  鎴�  鎵弿鏉$爜鐨勬壂鎻忓洖杞︿簨浠�
-    async repairHandle(row) {
-      let data
-      if (row.wo_code) {
-        data = {
-          orderstepqrcode: row.wo_code + ';' + row.stepcode
-        }
-      } else {
-        data = {
-          orderstepqrcode: row
-        }
-      }
-
-      const { data: res } = await MesOrderNgSubStepSearch(data)
-
-      this.$nextTick(() => {
-        this.badDialogForm.wo_code = res.data1.wo_code
-        this.badDialogForm.partcode = res.data1.partnumber
-        this.badDialogForm.partname = res.data1.partname
-        this.badDialogForm.partspec = res.data1.partspec
-        this.badDialogForm.stepname = res.data1.stepname
-        this.badDialogForm.nextstepcode = res.data1.nextstepcode
-        this.badDialogForm.nextstepname = res.data1.nextstepname
-        this.badDialogForm.plan_qty = res.data1.planqty
-        this.badDialogForm.good_qty = res.data1.noreportqty // 鎶ュ伐鏁伴噺
-        this.badDialogForm.ng_qty = res.data1.noputqty // 涓嶈壇鏁伴噺
-
-        this.badTableDataDialog = res.data2
-
-        this.badTableDataDialog.forEach(item => {
-          item.repair_qty = 0
-          item.bad_qty = 0
-          item.isVisible = 0
-          // item.defect_code = [...new Set(item.defect_code.split(','))].join(',')
-          // item.defect_name = [...new Set(item.defect_name.split(','))].join(',')
-        })
-        console.log(this.badTableDataDialog, 321)
-        this.badDialogVisible = true
-      })
-    },
-    badEdit(row) {
-      console.log(row)
-      this.badTableDataDialog.forEach((item, index) => {
-        if (item.id === row.id && item.m_id === row.m_id) {
-          this.badTableDataDialog.splice(index, 1, {
-            bad_qty: row.bad_qty,
-            repair_qty: row.repair_qty,
-            isVisible: 1,
-            defect_code: row.defect_code,
-            defect_name: row.defect_name,
-            badqty: row.badqty,
-            id: row.id,
-            m_id: row.m_id,
-            materiel_code: row.materiel_code,
-            ng_qty: row.ng_qty,
-            plan_qty: row.plan_qty,
-            report_qty: row.report_qty,
-            seq: row.seq,
-            step_code: row.step_code,
-            stepname: row.stepname,
-            style: row.style,
-            wo_code: row.wo_code
-          })
-        }
-      })
-    },
-    badSave(row) {
-      if (parseFloat(row.bad_qty) + parseFloat(row.repair_qty) > parseFloat(row.ng_qty)) {
-        this.badCancel(row)
-        return this.$message.info('缁翠慨鏁伴噺涓庢姤搴熸暟閲忎箣鍜屼笉鑳藉ぇ浜庝笉鑹暟閲忥紒')
-      }
-      this.badTableDataDialog.forEach((item, index) => {
-        if (item.id === row.id && item.m_id === row.m_id) {
-          this.badTableDataDialog.splice(index, 1, {
-            bad_qty: parseFloat(row.bad_qty),
-            repair_qty: parseFloat(row.repair_qty),
-            isVisible: 0,
-            defect_code: row.defect_code,
-            defect_name: row.defect_name,
-            id: row.id,
-            m_id: row.m_id,
-            badqty: row.badqty,
-            materiel_code: row.materiel_code,
-            ng_qty: row.ng_qty,
-            plan_qty: row.plan_qty,
-            report_qty: row.report_qty,
-            seq: row.seq,
-            step_code: row.step_code,
-            stepname: row.stepname,
-            style: row.style,
-            wo_code: row.wo_code
-          })
-        }
-      })
-    },
-    badCancel(row) {
-      this.badTableDataDialog.forEach((item, index) => {
-        if (item.id === row.id && item.m_id === row.m_id) {
-          this.badTableDataDialog.splice(index, 1, {
-            // bad_qty: row.bad_qty,
-            // repair_qty: row.repair_qty,
-            bad_qty: 0,
-            repair_qty: 0,
-            isVisible: 0,
-            defect_code: row.defect_code,
-            defect_name: row.defect_name,
-            id: row.id,
-            m_id: row.m_id,
-            badqty: row.badqty,
-            materiel_code: row.materiel_code,
-            ng_qty: row.ng_qty,
-            plan_qty: row.plan_qty,
-            report_qty: row.report_qty,
-            seq: row.seq,
-            step_code: row.step_code,
-            stepname: row.stepname,
-            style: row.style,
-            wo_code: row.wo_code
-          })
-        }
-      })
-    },
-
-    badDel(row) {
-      this.badTableDataDialog.forEach((item, index) => {
-        if (item.id === row.id && item.m_id === row.m_id) {
-          this.badTableDataDialog.splice(index, 1)
-        }
-      })
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-$main_color: #42b983;
-.el-button--text {
-  font-size: 14px;
-  cursor: pointer;
-}
-
-.operationClass {
-  height: 23px;
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-}
-
-::v-deep .el-checkbox.is-bordered + .el-checkbox.is-bordered {
-  margin: 10px 30px 0px 0;
-}
-
-::v-deep .el-radio__input.is-checked + .el-radio__label {
-  color: $main_color;
-}
-
-::v-deep .el-radio.is-bordered + .el-radio.is-bordered {
-  margin: 10px 30px 0px 0;
-}
-
-//.dialogVisible{
-::v-deep .el-select .el-input .el-select__caret {
-  display: flex;
-  align-items: center;
-  justify-content: center;
-}
-
-//}
-.elTableDiv {
-  ::v-deep .el-radio__label {
-    display: none;
-  }
-}
-</style>
-<style media="print">
-/*@media print {*/
-@page {
-  size: auto;
-  margin: 3mm;
-  font-size: 10px;
-}
-
-</style>
-<!--鍏叡椤甸潰鏍峰紡-->
-<style lang="scss" scoped>
-$main_color: #42b983;
-::v-deep .el-button--text {
-  font-size: 14px;
-  cursor: pointer;
-}
-
-.el-icon-share, .el-icon-delete, .el-icon-edit-outline {
-  color: $main_color;
-  cursor: pointer;
-}
-
-.el-icon-edit-outline {
-  margin-right: 15px;
-}
-
-::v-deep .el-button--primary, .el-button--default, .el-button--info {
-  height: 34px;
-  display: flex;
-  align-items: center;
-  padding: 0 15px;
-}
-
-::v-deep .el-button--primary {
-  //background-color: $main_color !important;
-}
-
-::v-deep .el-button--default {
-  background-color: #f8f8fa;
-  border: none;
-}
-
-::v-deep .el-input__inner {
-  height: 34px;
-  line-height: 34px;
-  //color: #a7a7a7;
-}
-
-::v-deep .el-dialog__body {
-  padding: 20px 100px !important;
-}
-
-::v-deep .dialogVisibleRoles .el-dialog__body {
-  padding: 20px 20px !important;
-}
-
-::v-deep .importPickerClass .el-dialog__body {
-  padding: 20px 20px !important;
-}
-
-::v-deep .badDialogVisible .el-dialog__body {
-  padding: 20px 20px !important;
-}
-
-::v-deep .el-dialog__footer {
-  display: flex;
-  justify-content: flex-end;
-}
-
-::v-deep .el-table .caret-wrapper {
-  transform: scale(0.8);
-}
-
-::v-deep .cell {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-}
-
-::v-deep .el-table::before {
-  height: 0;
-}
-
-::v-deep .el-table__body-wrapper {
-  background-color: #f8f8fa;
-}
-
-::v-deep .el-table__body .el-table__row.hover-row td {
-  background-color: #eaecef;
-}
-
-::v-deep .el-form--inline .el-form-item__label {
-  color: #a7a7a7;
-}
-
-.body ::v-deep .el-divider {
-  border: 1px solid #eee;
-  width: 99%;
-  margin: 10px auto;
-}
-
-.body ::v-deep .el-form-item {
-  margin-bottom: 0;
-}
-
-</style>
-<style>
-
-.el-table .custom-row {
-  background: #f8f8fa;
-}
-</style>

--
Gitblit v1.9.3