From a0d3821eb497fdb48c35aa22eb190cd3ad989720 Mon Sep 17 00:00:00 2001
From: chenhaozhe <cgz@hz-kingdee.com>
Date: 星期二, 18 十一月 2025 16:34:37 +0800
Subject: [PATCH] Merge branch 'master' of http://101.37.171.70:10101/r/MES-WEB-VUEUI

---
 src/views/ProductInBill/Kf_ProductInBillList.vue           |  873 +++++++++++++++
 src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue |   22 
 src/views/sell/sellOut/sellOutBillEdit.vue                 |   24 
 src/views/system/user/xtUserRightQuery.vue                 |  342 ++++++
 src/store/modules/permission.js                            |  101 +
 src/views/system/user/xtUserList.vue                       |   64 
 src/router/index.js                                        |   80 +
 src/views/system/user/xtUserListEdit.vue                   |  695 ++++++++++++
 src/views/ProductInBill/Kf_ProductInBillEdit.vue           | 1056 +++++++++++++++++++
 9 files changed, 3,190 insertions(+), 67 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index 5d1bf90..066f75a 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -102,7 +102,7 @@
     children: [
       {
         path: "/sell/sellOut/sellOutBill",
-        component: () => import("@/views/sell/sellOut/sellOutBill"),
+        component: () => import("@/views/sell/sellOut/sellOutBill.vue"),
         name: "SellOutBill",
         meta: { title: "閿�鍞嚭搴撳崟", activeMenu: "sell/sellOut" },
       },
@@ -121,7 +121,7 @@
     children: [
       {
         path: "/sell/sellOut/sellOutBillEdit",
-        component: () => import("@/views/sell/sellOutBill/edit"),
+        component: () => import("@/views/sell/sellOut/sellOutBillEdit.vue"),
         name: "SellOutBillEdit",
         meta: { title: "閿�鍞嚭搴撳崟缂栬緫", activeMenu: "sell/sellOut" },
       },
@@ -712,6 +712,82 @@
 
 
 
+  //鏉冮檺鏌ヨ
+  {
+    path: "/system/user/xtUserRightQuery",
+    component: Layout,
+    hidden: true,
+    redirect: "noredirect",
+    meta: {
+      breadcrumb: false, // 濡傛灉璁剧疆涓篺alse锛屽垯涓嶄細鍦╞readcrumb闈㈠寘灞戜腑鏄剧ず
+      activeMenu: "/system/user/xtUserRightQuery", // 褰撹矾鐢辫缃簡璇ュ睘鎬э紝鍒欎細楂樹寒鐩稿搴旂殑渚ц竟鏍忋��
+    },
+    children: [
+      {
+        path: "/system/user/xtUserRightQuery",
+        component: () => import("@/views/system/user/xtUserRightQuery.vue"),
+        name: "XtUserRightQuery",
+        meta: { title: "鏉冮檺鏌ヨ", activeMenu: "system/user" },
+      },
+    ],
+  },
+  //鏉冮檺鏌ヨ
+  {
+    path: "/system/user/xtUserRightQuery",
+    component: Layout,
+    hidden: true,
+    redirect: "noredirect",
+    meta: {
+      breadcrumb: false, // 濡傛灉璁剧疆涓篺alse锛屽垯涓嶄細鍦╞readcrumb闈㈠寘灞戜腑鏄剧ず
+      activeMenu: "/system/user/xtUserRightQuery", // 褰撹矾鐢辫缃簡璇ュ睘鎬э紝鍒欎細楂樹寒鐩稿搴旂殑渚ц竟鏍忋��
+    },
+    children: [
+      {
+        path: "/system/user/xtUserRightQuery",
+        component: () => import("@/views/system/user/xtUserRightQuery.vue"),
+        name: "XtUserRightQuery",
+        meta: { title: "鏉冮檺鏌ヨ", activeMenu: "system/user" },
+      },
+    ],
+  },
+  //鐢熶骇鍏ュ簱鍗曞垪琛�
+  {
+    path: "/purchase/ProductInBill/ProductInBillList",
+    component: Layout,
+    hidden: true,
+    redirect: "noredirect",
+    meta: {
+      breadcrumb: false, // 濡傛灉璁剧疆涓篺alse锛屽垯涓嶄細鍦╞readcrumb闈㈠寘灞戜腑鏄剧ず
+      activeMenu: "/purchase/ProductInBill", // 褰撹矾鐢辫缃簡璇ュ睘鎬э紝鍒欎細楂樹寒鐩稿搴旂殑渚ц竟鏍忋��
+    },
+    children: [
+      {
+        path: "/purchase/ProductInBill/ProductInBillList",
+        component: () => import("@/views/ProductInBill/Kf_ProductInBillList.vue"),
+        name: "ProductInBillList",
+        meta: { title: "鐢熶骇鍏ュ簱鍗曞垪琛�", activeMenu: "/purchase/ProductInBill" },
+      },
+    ],
+  },
+  //鐢熶骇鍏ュ簱鍗�
+  {
+    path: "/purchase/ProductInBill/ProductInBillEdit",
+    component: Layout,
+    hidden: true,
+    redirect: "noredirect",
+    meta: {
+      breadcrumb: false, // 濡傛灉璁剧疆涓篺alse锛屽垯涓嶄細鍦╞readcrumb闈㈠寘灞戜腑鏄剧ず
+      activeMenu: "/purchase/ProductInBill", // 褰撹矾鐢辫缃簡璇ュ睘鎬э紝鍒欎細楂樹寒鐩稿搴旂殑渚ц竟鏍忋��
+    },
+    children: [
+      {
+        path: "/purchase/ProductInBill/ProductInBillEdit",
+        component: () => import("@/views/ProductInBill/Kf_ProductInBillEdit.vue"),
+        name: "ProductInBillEdit",
+        meta: { title: "鐢熶骇鍏ュ簱鍗�", activeMenu: "/purchase/ProductInBill" },
+      },
+    ],
+  },
 ];
 
 // 鍔ㄦ�佽矾鐢憋紝鍩轰簬鐢ㄦ埛鏉冮檺鍔ㄦ�佸幓鍔犺浇
diff --git a/src/store/modules/permission.js b/src/store/modules/permission.js
index 1fb42ea..00b4b99 100644
--- a/src/store/modules/permission.js
+++ b/src/store/modules/permission.js
@@ -123,7 +123,9 @@
                       title: "閿�鍞鍗�",
                     },
                     component: () =>
-                      import("@/views/sell/xsSeOrderBill/xsSeOrderBillEdit.vue"),
+                      import(
+                        "@/views/sell/xsSeOrderBill/xsSeOrderBillEdit.vue"
+                      ),
                     hidden: false,
                     name: "XsSeOrderBillEdit",
                     path: "xsSeOrderBillEdit",
@@ -529,46 +531,41 @@
                 ],
               },
               {
-                alwaysShow: true,
-                component: "Layout",
                 meta: {
                   icon: "build",
                   link: null,
                   noCache: false,
-                  title: "绯荤粺绠$悊",
+                  title: "鐢熶骇鍏ュ簱缁存姢",
                 },
                 hidden: false,
-                name: "System",
-                path: "/system",
+                name: "ProductInBill",
+                path: "ProductInBill",
                 redirect: "noRedirect",
+                component: "Layout",
                 children: [
                   {
                     meta: {
                       icon: "build",
                       link: null,
                       noCache: false,
-                      title: "鐢ㄦ埛绠$悊",
+                      title: "鐢熶骇鍏ュ簱鍒楄〃",
                     },
+                    component: () => import("@/views/ProductInBill/Kf_ProductInBillList.vue"),
                     hidden: false,
-                    name: "User",
-                    path: "user",
-                    redirect: "noRedirect",
-                    component: "Layout",
-                    children: [
-                      {
-                        meta: {
-                          icon: "build",
-                          link: null,
-                          noCache: false,
-                          title: "鐢ㄦ埛鍒楄〃",
-                        },
-                        component: () =>
-                          import("@/views/system/user/xtUserList.vue"),
-                        hidden: false,
-                        name: "XtUserList",
-                        path: "xtUserList",
-                      },
-                    ],
+                    name: "ProductInBillList",
+                    path: "ProductInBillList",
+                  },
+                  {
+                    meta: {
+                      icon: "build",
+                      link: null,
+                      noCache: false,
+                      title: "鐢熶骇鍏ュ簱鍗�",
+                    },
+                    component: () => import("@/views/ProductInBill/Kf_ProductInBillEdit.vue"),
+                    hidden: false,
+                    name: "ProductInBillEdit",
+                    path: "ProductInBillEdit",
                   },
                 ],
               },
@@ -624,6 +621,45 @@
                     hidden: false,
                     name: "ScICMOBillEdit",
                     path: "scICMOBillEdit",
+                  },
+                ],
+              },
+              {
+                meta: {
+                  icon: "build",
+                  link: null,
+                  noCache: false,
+                  title: "鐢熶骇鍏ュ簱缁存姢",
+                },
+                hidden: false,
+                name: "ProductInBill",
+                path: "ProductInBill",
+                redirect: "noRedirect",
+                component: "Layout",
+                children: [
+                  {
+                    meta: {
+                      icon: "build",
+                      link: null,
+                      noCache: false,
+                      title: "鐢熶骇鍏ュ簱鍒楄〃",
+                    },
+                    component: () => import("@/views/ProductInBill/Kf_ProductInBillList.vue"),
+                    hidden: false,
+                    name: "ProductInBillList",
+                    path: "ProductInBillList",
+                  },
+                  {
+                    meta: {
+                      icon: "build",
+                      link: null,
+                      noCache: false,
+                      title: "鐢熶骇鍏ュ簱鍗�",
+                    },
+                    component: () => import("@/views/ProductInBill/Kf_ProductInBillEdit.vue"),
+                    hidden: false,
+                    name: "ProductInBillEdit",
+                    path: "ProductInBillEdit",
                   },
                 ],
               },
@@ -772,6 +808,19 @@
                     name: "XtUserList",
                     path: "xtUserList",
                   },
+                  {
+                    meta: {
+                      icon: "build",
+                      link: null,
+                      noCache: false,
+                      title: "鏉冮檺鏌ヨ",
+                    },
+                    component: () =>
+                      import("@/views/system/user/xtUserRightQuery.vue"),
+                    hidden: false,
+                    name: "XtUserRightQuery",
+                    path: "xtUserRightQuery",
+                  },
                 ],
               },
             ],
diff --git a/src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue b/src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue
index f47dfc5..1b1a2e0 100644
--- a/src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue
+++ b/src/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillList.vue
@@ -147,6 +147,9 @@
       <el-col :span="1.5">
         <el-button type="primary" icon="el-icon-printer" size="mini" @click="get_PrintReport">鎵撳嵃</el-button>
       </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_BarCodeDetail">鏉$爜鏄庣粏</el-button>
+      </el-col>
     </el-row>
     <div class="tableBox" v-loading="loading">
       <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries"
@@ -190,6 +193,8 @@
           HModName='Kf_POStockInBillList' @rowEditClose="rowSetClose" v-if="printListShow" />
         <!-- <div>111</div> -->
       </el-dialog>
+      <!-- 鏉$爜鏄庣粏 -->
+      <BarCodeDetail :visible.sync="barCodeDetailShow" ref="barcodeDetail"/>
     </div>
   </div>
 </template>
@@ -199,11 +204,12 @@
 import moment from 'moment';                                              //瀵煎嚭缁勪欢
 import RowSettings from '@/views/component/rowSettings'                   //鍒楄缃粍浠�
 import PrintList from '@/views/component/printList'                       //鎵撳嵃缁勪欢
+import BarCodeDetail from '@/views/component/BarCodeDetail'               //鏉$爜鏄庣粏缁勪欢
 import Edit from '@/views/CaiGouGuanLi/CaiGouRuKu/Kf_POStockInBillEdit'   //缂栬緫椤甸潰缁勪欢
 
 export default {
   name: 'Kf_POStockInBillList',
-  components: { RowSettings, Edit, PrintList },
+  components: { RowSettings, Edit, PrintList,BarCodeDetail },
   data() {
     return {
       baseURL: process.env.VUE_APP_BASE_API,                //鍚庣鎺ュ彛鍓嶇紑(鍚庣鏈嶅姟鍣╥p鍦板潃)
@@ -258,6 +264,7 @@
       btnHideShow: false,                                   //鎸夐挳缁勪欢鏄剧ず鏍囪
       openRowHide: false,                                   //鍒楄缃粍浠舵樉绀烘爣璁�
       rowHideShow: false,                                   //鍒楄缃粍浠跺鍣ㄦ樉绀烘爣璁�
+      barCodeDetailShow: false,                             //鏉$爜鏄庣粏缁勪欢瀹瑰櫒鏄剧ず鏍囪
       
       
       
@@ -843,6 +850,19 @@
     },
     //#endregion
 
+    //#region 鏉$爜鏄庣粏
+    get_BarCodeDetail() {
+      // if (this.selectedRow.length !== 1) {
+      //   this.$message.warning('璇烽�夋嫨涓�琛屾暟鎹煡鐪嬫潯鐮佹槑缁嗭紒')
+      //   return
+      // }
+      this.barCodeDetailShow = true
+      this.$nextTick(() => {
+        this.$refs.barcodeDetail.open(this.rowForm)
+      })
+		},
+    //#endregion
+
     //#region 閫�鍑�
     close() {
       // this.reset()
diff --git a/src/views/ProductInBill/Kf_ProductInBillEdit.vue b/src/views/ProductInBill/Kf_ProductInBillEdit.vue
new file mode 100644
index 0000000..baa8422
--- /dev/null
+++ b/src/views/ProductInBill/Kf_ProductInBillEdit.vue
@@ -0,0 +1,1056 @@
+<template>
+  <div v-loading="formLoading" v-if="formShow">
+    <div style=" margin-bottom: 10px; border-bottom: 1px solid #f6f6f6;">
+      <el-button type="primary" @click="handleAdd(OperationType = 1)" v-if="addBtnShow">鏂板</el-button>
+      <el-button type="primary" @click="submitForm" :disabled="subDisabled">淇� 瀛�</el-button>
+      <el-button type="primary" @click="set_CheckBill(0, form)">瀹� 鏍�</el-button>
+      <el-button type="primary" @click="close">閫� 鍑�</el-button>
+      <!-- <el-button @click="cancel">鍙� 娑�</el-button> -->
+    </div>
+    <div style="margin: 10px; font-size: 28px; font-weight: bold; text-align: center;">鐢熶骇鍏ュ簱鍗�</div>
+    <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+      <el-tabs v-model="activeName" type="card">
+        <el-tab-pane label="鍩烘湰淇℃伅" name="first">
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="鍗曟嵁缂栧彿" prop="HBillNo">
+                <el-input v-model="form.HBillNo" placeholder="璇疯緭鍏ュ崟鎹紪鍙�" disabled="true" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="鏃ユ湡" prop="HDate">
+                <el-date-picker v-model="form.HDate" type="date" placeholder="閫夋嫨鏃ユ湡" value-format="yyyy-MM-ddT">
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="淇濈鍛�" prop="HKeeperName">
+                <el-input v-model="form.HKeeperName" placeholder="璇疯緭鍏ヤ繚绠″憳" disabled>
+                  <el-button slot="append" icon="el-icon-search"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="浠撳簱" prop="HWHName">
+                <el-input v-model="form.HWHName" placeholder="璇疯緭鍏ヤ粨搴�">
+                  <el-button slot="append" icon="el-icon-search"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="甯佸埆" prop="HCurName">
+                <el-input v-model="form.HCurName" placeholder="璇疯緭鍏ュ竵鍒�">
+                  <el-button slot="append" icon="el-icon-search"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="姹囩巼" prop="HExRate">
+                <el-input-number v-model="form.HExRate" placeholder="" disabled="true"></el-input-number>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="楠屾敹鍛�" prop="HSecManagerName">
+                <el-input v-model="form.HSecManagerName" placeholder="璇疯緭鍏ラ獙鏀跺憳" disabled>
+                  <el-button slot="append" icon="el-icon-search"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="閮ㄩ棬" prop="HDeptName">
+                <el-input v-model="form.HDeptName" placeholder="璇疯緭鍏ラ儴闂�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(1)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="婧愬崟绫诲瀷" prop="HSourceBillType">
+                <el-select v-model="form.HSourceBillType" @change="sourceBillTypeChange" >
+                  <el-option v-for="(item, index) in sourceBillTypeList" :key="index" :label="item.HSourceBillTypeName" :value="item.HSourceBillType">
+                </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-form-item label="澶囨敞" prop="HRemark">
+            <el-input v-model="form.HRemark" placeholder="璇疯緭鍏ュ娉�" />
+          </el-form-item>
+          <el-form-item label="缁勭粐" prop="HOrgID">
+            <el-select v-model="form.HOrgID" placeholder="璇烽�夋嫨缁勭粐" @change="organizationChange" :disabled="zzSelDis">
+              <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-tab-pane>
+        <el-tab-pane label="鍒跺崟淇℃伅" name="third">
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="鍒跺崟浜�" prop="HMaker">
+                <el-input v-model="form.HMaker" placeholder="璇疯緭鍏ュ埗鍗曚汉" disabled />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="淇敼浜�" prop="HUpDater">
+                <el-input v-model="form.HUpDater" placeholder="璇疯緭鍏ヤ慨鏀逛汉" disabled />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀹℃牳浜�" prop="HChecker">
+                <el-input v-model="form.HChecker" placeholder="璇疯緭鍏ュ鏍镐汉" disabled />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="鍏抽棴浜�" prop="HCloseMan">
+                <el-input v-model="form.HCloseMan" placeholder="璇疯緭鍏ュ叧闂汉" disabled />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="鍒跺崟鏃ユ湡" prop="HMakeDate">
+                <el-date-picker v-model="form.HMakeDate" type="date" placeholder="閫夋嫨鍒跺崟鏃ユ湡" disabled>
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="淇敼鏃ユ湡" prop="HUpDateDate">
+                <el-date-picker v-model="form.HUpDateDate" type="date" placeholder="閫夋嫨瀹℃牳鏃ユ湡" disabled>
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀹℃牳鏃ユ湡" prop="HCheckDate">
+                <el-date-picker v-model="form.HCheckDate" type="date" placeholder="閫夋嫨瀹℃牳鏃ユ湡" disabled>
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="鍏抽棴鏃ユ湡" prop="HCloseDate">
+                <el-date-picker v-model="form.HCloseDate" type="date" placeholder="閫夋嫨鍏抽棴鏃ユ湡" disabled>
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="浣滃簾浜�" prop="HDeleteMan">
+                <el-input v-model="form.HDeleteMan" placeholder="璇疯緭鍏ヤ綔搴熶汉" disabled />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="浣滃簾鏃ユ湡" prop="HDeleteDate">
+                <el-date-picker v-model="form.HDeleteDate" type="date" placeholder="閫夋嫨浣滃簾鏃ユ湡" disabled>
+                </el-date-picker>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-tab-pane>
+      </el-tabs>
+      <div style="margin-bottom: 10px;">
+        <el-button type="success" plain icon="el-icon-plus" @click="handleAddSysZb()" size="mini">澧炲姞涓�琛�</el-button>
+        <el-button type="success" plain icon="el-icon-plus" @click="handleAddSysZb(zbIndex, 1)"
+          size="mini">鎻掑叆涓�琛�</el-button>
+        <el-button type="success" plain icon="el-icon-plus" @click="handleCopyZbRow" size="mini">澶嶅埗涓�琛�</el-button>
+        <el-button type="success" plain icon="el-icon-arrow-up" @click="handleMoveRowUp(zbSelForm)"
+          size="mini">涓婄Щ</el-button>
+        <el-button type="success" plain icon="el-icon-arrow-down" @click="handleMoveRowDown(zbSelForm)"
+          size="mini">涓嬬Щ</el-button>
+      </div>
+      <el-table :data="editData" style="width: 100%" height="300" width="100%" ref="zbTable"
+        @selection-change="handleTableZbEdit" :row-class-name="rowSysZbIndex" show-summary border>
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column align="center" label="搴忓彿" type="index" width="80" />
+        <el-table-column align="center" label="婧愬崟鍗曞彿" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.HSourceBillNo }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="婧愬崟绫诲瀷" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.HSourceBillType }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="婧愬崟涓诲唴鐮�" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.HSourceInterID }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="婧愬崟瀛愬唴鐮�" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.HSourceEntryID }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="HMaterID" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.HMaterID }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="鐗╂枡浠g爜" width="120">
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.鐗╂枡浠g爜" placeholder="璇疯緭鍏ョ墿鏂欎唬鐮�" @keyup.native.f7="openDataDialog(3, scope.row)"
+              @dblclick.native="openDataDialog(3, scope.row)" />
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="鐗╂枡鍚嶇О" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.鐗╂枡鍚嶇О }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="瑙勬牸鍨嬪彿" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.瑙勬牸鍨嬪彿 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="HUnitID" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.HUnitID }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="璁¢噺鍗曚綅" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.璁¢噺鍗曚綅 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="HPropertyID" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.HPropertyID }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="杈呭姪灞炴��" width="120">
+          <template slot-scope="scope">
+              <span>{{ scope.row.杈呭姪灞炴�� }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="HSecUnitID" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.HSecUnitID }}</span>
+          </template>
+        </el-table-column>
+         <el-table-column align="center" label="杈呭姪璁¢噺鍗曚綅" width="120">
+          <template slot-scope="scope">
+              <span>{{ scope.row.杈呭姪璁¢噺鍗曚綅 }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="鎹㈢畻鐜�" width="120">
+          <template slot-scope="scope">
+              <span>{{ scope.row.HSecUnitRate }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="搴旀敹鏁伴噺" width="120">
+          <template slot-scope="scope">
+            <span>{{ scope.row.HQtyMust }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="瀹炴敹鏁伴噺" width="120">
+          <template slot-scope="scope">
+            <el-input-number v-model="scope.row.HQty" :min="0" style="width: 90px;"
+              controls-position="right"></el-input-number>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="鍗曚环" width="120">
+          <template slot-scope="scope">
+            <el-input-number v-model="scope.row.HPrice" :min="0" style="width: 90px;"
+              controls-position="right"></el-input-number>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="閲戦" width="120">
+          <template slot-scope="scope">
+            <span>{{scope.row.HMoney = scope.row.HPrice * scope.row.HQty }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="鏀舵枡浠撳簱" width="120">
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.鏀舵枡浠撳簱" placeholder="璇疯緭鍏ユ敹鏂欎粨搴�" @keyup.native.f7="openDataDialog(2, scope.row)"
+              @dblclick.native="openDataDialog(2, scope.row)" />
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="浠撲綅鍚嶇О" width="120">
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.鏀舵枡浠撲綅" placeholder="璇疯緭鍏ヤ粨浣嶅悕绉�" @keyup.native.f7="openDataDialog(2, scope.row)"
+              @dblclick.native="openDataDialog(2, scope.row)" />
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="澶囨敞" width="120">
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.HRemark" placeholder="璇疯緭鍏ュ娉�" />
+          </template>
+        </el-table-column>
+        <el-table-column align="center" label="鎿嶄綔" width="55" fixed="right">
+          <template slot-scope="scope">
+            <el-button type="danger" icon="el-icon-delete" size="mini" circle
+              @click="handleDeleteSysZb(scope.row)"></el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-form>
+    <!-- 鏁版嵁寮圭獥 -->
+    <el-dialog :title="dialogTitle" :visible.sync="openData" width="1280px" append-to-body>
+      <!-- 閮ㄩ棬 -->
+      <Dept @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="deptShow" />
+      <!-- 浠撳簱 -->
+      <Warehouse @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="warehouseShow" />
+      <!-- 鐗╂枡 -->
+      <Material @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="materialShow" />
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="deptClickSub">纭� 瀹�</el-button>
+        <el-button @click="deptClose">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="闅愯棌鍒楄缃�" :visible.sync="openRowHide" width="816px" append-to-body>
+      <RowSettings :colName="btResList" HModName="Kf_ProductInBillEdit" @rowEditClose="rowSetClose" v-if="rowHideShow" />
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import axios from 'axios'
+import moment from 'moment';
+import RowSettings from '@/views/component/rowSettings'
+import Dept from '@/views/component/dept'
+import Warehouse from '@/views/component/warehouse'
+import Material from '@/views/component/material'
+
+export default {
+  name: 'ProductInBill',
+  components: { Dept, Warehouse, Material, RowSettings },
+  props: {
+    OperationType: { type: Number, },
+    linterid: { type: Number, },
+    HSouceBillType: { type: String, },
+    propsData: { type: String, },
+    copyType: { type: Number, },
+  },
+  data() {
+    return {
+      baseURL: process.env.VUE_APP_BASE_API,                                     //鍚庣鎺ュ彛鍓嶇紑(鍚庣鏈嶅姟鍣↖P)
+
+      organizationList: [],                                                      //椤甸潰鍒濆鍖栫粍缁囧垪琛�
+      sourceBillTypeList: [],                                                   //椤甸潰鍒濆鍖栨簮鍗曠被鍨嬪垪琛�
+
+      loading: true,                                                             // 閬僵灞�
+
+      addBtnShow: false,                                                         //鏂板鎸夐挳鏄剧ず鏍囪
+      subDisabled: false,                                                        //淇濆瓨鎸夐挳绂佺敤鏍囪
+
+      formShow: false,                                                           //琛ㄥ崟鏄惁鏄剧ず鏍囪
+      formLoading: true,                                                         //琛ㄥ崟鍔犺浇閬僵
+      zzSelDis: false,                                                           //缁勭粐涓嬫媺鍒楄〃绂佺敤鏍囪
+
+      rowHideShow: false,                                                        //鍒楄缃粍浠跺鍣ㄦ樉绀烘爣璁�
+      openRowHide: false,                                                        //鍒楄缃粍浠舵樉绀烘爣璁�
+
+      dialogTitle: '',                                                           //寮圭獥鏍囬
+      openData: false,                                                           //鏁版嵁寮圭獥
+      dialogTypeNum: null,                                                       //閮ㄩ棬寮圭獥1锛屼粨搴撳脊绐�2
+      deptShow: false,                                                           //閮ㄩ棬鏁版嵁缁勪欢鏄剧ず鏍囪
+      warehouseShow: false,                                                      //浠撳簱鏁版嵁缁勪欢鏄剧ず鏍囪
+      materialShow: false,                                                       //鐗╂枡鏁版嵁缁勪欢鏄剧ず鏍囪
+      stockPlaceShow: false,                                                     //浠撲綅鏁版嵁缁勪欢鏄剧ず鏍囪
+      deptform: {},                                                              //寮圭獥閫変腑鏁版嵁
+      
+      temp: undefined,                                                           //涓存椂鍙橀噺
+      btResList: [],                                                             // 鍒楄缃�
+      form: {},                                                                  // 琛ㄥ崟鍙傛暟
+      rules: {                                                                   // 琛ㄥ崟鏍¢獙
+      },
+      
+      checkedSysZb: [],
+      editData: [],                                                              //瀛愯〃鏁版嵁
+      editBtData: [],                                                            //瀛愯〃琛ㄥご
+      activeName: 'first',
+      zbIndex: null,
+      zbSelForm: {},                                                             //瀛愯〃閫変腑鏁版嵁,鐢ㄤ簬瀛愯〃澶嶅埗銆佷笂绉汇�佷笅绉荤瓑鎿嶄綔
+    };
+  },
+  created() {
+    this.fetchData()
+    this.fetchData_SourceBillTypeList()
+    this.getdata()
+  },
+  beforeDestroy() {
+    this.$destroy()
+  },
+  methods: {
+    //#region 琛ㄥ崟鏁版嵁鍒濆鍖�
+    getdata() {
+      this.formShow = false
+      this.formLoading = true
+
+      if ((this.OperationType == 1 && this.copyType != 1) || (!this.OperationType && !this.copyType)) {
+        this.handleAdd()
+      } 
+      else if (this.OperationType == 3 || this.copyType == 1) { 
+        this.handleUpdate()
+      }
+    },
+    //#endregion
+
+    //#region 椤甸潰鏁版嵁鍒濆鍖�
+    reset() {
+      this.form = {
+        HInterID: 0,
+        HBillNo: "",
+        HDate: new Date(),
+        HInnerBillNo: "",
+        HWHID: 0,
+        HWHName: "",
+        HCurID: 0,
+        HCurName: '',
+        HExRate: 1,
+         HDeptID: 0,
+        HDeptName: "",
+        HSecManagerID: 0,
+        HSecManagerName: "",
+        HKeeperID: 0,
+        HKeeperName: "",
+        HSourceBillType: "",
+        HExplanation :"",
+        HRemark: "",
+
+
+        HEmpID: 0,
+        HEmpName: "",
+       
+        HSupID: 0,
+        HSupName: "",
+        HInvoiceBillNo: "",
+        HOrgID: sessionStorage["OrganizationID"] - 0,
+      }
+      this.editData = []
+      this.editBtData = []
+      this.ids = []
+      this.subDisabled = false
+      this.addBtnShow = false
+      // this.$refs.tableData.clearSelection()
+      this.activeName = 'first'
+      this.resetForm("form");
+    },
+    //#endregion
+
+    //#region 鏂板鎸夐挳鎿嶄綔
+    handleAdd() {
+      this.reset()
+      //鏂板鑾峰彇鍗曟嵁鍙�
+      this.getHBillNo()
+      if (this.OperationType == 1) {
+        this.handleAddSysZb()
+      }
+      this.$nextTick(() => {
+        this.formShow = true
+        this.formLoading = false
+      })
+    },
+    //#endregion
+
+    //#region 缂栬緫椤甸潰鍒濆鍖�
+    handleUpdate() {
+      this.reset()
+      let rowHmainid = this.linterid
+      axios.get(this.baseURL + "/Kf_ProductInBillEdit/cx", {
+        params: { 'HInterID': rowHmainid }
+      }).then(response => {
+        if (response.data.count == 1) {
+          var result = response.data
+          var data = response.data.data[0]
+          this.form.BillType = data.HSourceBillType
+          if (this.copyType == 1) {
+            this.getHBillNo()
+          } 
+          else {
+            this.form.HInterID = data.hmainid
+            this.form.HBillNo = data.鍗曟嵁鍙�
+            this.form.HDate = data.鏃ユ湡
+            this.form.HMaker = data.鍒跺崟浜�
+            this.form.HUpDater = data.淇敼浜�
+            this.form.HChecker = data.瀹℃牳浜�
+            this.form.HMakeDate = data.鍒跺崟鏃ユ湡
+            this.form.HUpDateDate = data.淇敼鏃ユ湡
+            this.form.HCheckDate = data.瀹℃牳鏃ユ湡
+            this.form.HCloseMan = data.鍏抽棴浜�
+            this.form.HDeleteMan = data.浣滃簾浜�
+            this.form.HCloseDate = data.鍏抽棴鏃ユ湡
+            this.form.HDeleteDate = data.浣滃簾鏃ユ湡
+          }
+          this.form.HInnerBillNo= data.鍐呴儴鍗曟嵁鍙�
+          this.form.HWHID= data.HWHID
+          this.form.HWHName= data.涓昏〃浠撳簱
+          this.form.HCurID= data.HCurID
+          this.form.HCurName= data.甯佸埆
+          this.form.HExRate= data.姹囩巼
+          this.form.HDeptName= data.閮ㄩ棬
+          this.form.HDeptID= data.HDeptID
+          this.form.HSecManagerName= data.楠屾敹鍛�
+          this.form.HSecManagerID= data.HSecManagerID
+          this.form.HKeeperName= data.淇濈鍛�
+          this.form.HKeeperID= data.HKeeperID
+          this.form.HSourceBillType= data.婧愬崟绫诲瀷
+          this.form.HInnerBillNo=data.鍐呴儴鍗曟嵁鍙�
+          this.form.HExplanation = data.鎽樿
+          this.form.HRemark= data.琛ㄥご澶囨敞
+          
+          //瀛愯〃  璧嬪��
+          for (var i = 0; i < result.data.length; i++) {
+            const data = result.data[i];
+            this.editData.push(
+              {
+                "HMaterID":data.HMaterID
+                , "鐗╂枡浠g爜": data.鐗╂枡浠g爜
+                , "鐗╂枡鍚嶇О": data.鐗╂枡鍚嶇О
+                , "瑙勬牸鍨嬪彿": data.瑙勬牸鍨嬪彿
+                , "HUnitID": data.HUnitID
+                , "璁¢噺鍗曚綅": data.璁¢噺鍗曚綅
+                , "HPropertyID":data.HPropertyID
+                , "杈呭姪灞炴��":data.杈呭姪灞炴��
+                , "杈呭姪鍗曚綅":data.杈呭姪鍗曚綅
+                , "HSecUnitID": data.HSecUnitID
+                , "杈呭姪璁¢噺鍗曚綅": data.杈呭姪璁¢噺鍗曚綅
+                , "HSecUnitRate":data.鎹㈢畻鐜�
+                , "HQtyMust": data.搴旀敹鏁伴噺
+                , "HQty": data.鏁伴噺
+                , "HPrice": data.鍗曚环
+                , "HMoney": data.閲戦
+                , "HWHID": data.HWHID
+                , "鏀舵枡浠撳簱": data.鏀舵枡浠撳簱
+                , "HRemark": data.琛ㄤ綋澶囨敞
+                , "HSourceBillNo": data.婧愬崟鍗曞彿
+                , "HSourceBillType": data.婧愬崟绫诲瀷
+                , "HSourceInterID": data.婧愬崟涓诲唴鐮�
+                , "HSourceEntryID": data.婧愬崟瀛愬唴鐮�
+              }
+            )
+          }
+
+          if (data.鐘舵�� != '鍒涘缓' && this.copyType != 1) {
+            this.$modal.msgError("姝ゆ潯鏁版嵁涓嶆槸鍒涘缓鐘舵�侊紝涓嶈兘淇敼");
+            this.subDisabled = true
+          }
+          this.formShow = true
+          this.formLoading = false
+
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 鍒楄缃�
+    handleRowHide() {
+      this.rowHideShow = true
+      this.openRowHide = true
+    },
+    rowSetClose(val) {
+
+      this.rowHideShow = false
+      this.openRowHide = val
+      this.$destroy()
+    },
+    //#endregion
+
+    //#region 缁勭粐鍊煎彉鏇翠簨浠�
+    organizationChange(val) {
+      // let options=undefined
+      //  this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
+    },
+    //#endregion
+
+    //#region 婧愬崟绫诲瀷鍊煎彉鏇翠簨浠�
+    sourceBillTypeChange(val) {
+    },
+    //#endregion
+
+    //#region 鏁版嵁寮圭獥
+    //#region 鎵撳紑鏁版嵁鍒楄〃寮圭獥
+    openDataDialog(num, row) {
+      if (row) {
+        this.zbIndex = row.index - 1
+      }
+      this.showReset()
+      if (num == 1) {
+        this.dialogTitle = '閮ㄩ棬鍒楄〃'
+        this.deptShow = true
+        this.openData = true
+      } else if (num == 2) {
+        this.dialogTitle = '鍑哄簱浠撳簱鍒楄〃'
+        this.warehouseShow = true
+        this.openData = true
+      } else if (num == 3) {
+        this.dialogTitle = '鐗╂枡鍒楄〃'
+        this.materialShow = true
+        this.openData = true
+      }else if (num == 4) {
+        this.dialogTitle = '浠撲綅鍒楄〃'
+        this.stockPlaceShow = true
+        this.openData = true
+      }
+    },
+    //#region 灏嗘暟鎹脊绐楀叏閮ㄥ彇娑堝姞杞�
+    showReset() {
+      this.deptShow = false
+      this.warehouseShow = false
+      this.materialShow = false
+    },
+    //#endregion
+    //#endregion
+
+    //#region 寮圭獥鏁版嵁鍙屽嚮杩斿洖琛ㄥ崟璧嬪�间簨浠�
+    dbEmitData(deptRow, num) {
+      if (num == 1) {
+        this.form.HDeptName = deptRow.閮ㄩ棬鍚嶇О                                  //閮ㄩ棬
+        this.form.HDeptID = deptRow.HItemID
+        this.form.HEmpID = deptRow.HEmpID
+        this.form.HManagerName = deptRow.璐熻矗浜�
+        this.openData = false
+      } 
+      else if (num == 2) {                                                      //鏀舵枡浠撳簱
+        this.editData[this.zbIndex].HWHID = deptRow.HItemID;
+        this.editData[this.zbIndex].鏀舵枡浠撳簱 = deptRow.浠撳簱鍚嶇О;
+        this.openData = false
+      }
+      else if (num == 4) {                                                      //浠撲綅
+        this.editData[this.zbIndex].HSPID = deptRow.HItemID;
+        this.editData[this.zbIndex].浠撲綅鍚嶇О = deptRow.浠撲綅鍚嶇О;
+        this.openData = false
+      }
+      else if (num == 3) {                                                      //鐗╂枡
+        this.editData[this.zbIndex].HMaterID = deptRow.HItemID;
+        this.editData[this.zbIndex].鐗╂枡浠g爜 = deptRow.鐗╂枡浠g爜;
+        this.editData[this.zbIndex].鐗╂枡鍚嶇О = deptRow.鐗╂枡鍚嶇О;
+        this.editData[this.zbIndex].HUnitID = deptRow.HUnitID;
+        this.editData[this.zbIndex].瑙勬牸鍨嬪彿 = deptRow.瑙勬牸鍨嬪彿
+        this.editData[this.zbIndex].璁¢噺鍗曚綅 = deptRow.璁¢噺鍗曚綅鍚嶇О
+        this.editData[this.zbIndex].HTaxPrice = deptRow.鍚◣鎴愭湰浠�
+        this.editData[this.zbIndex].HTaxRate = deptRow.榛樿绋庣巼
+        this.openData = false
+      }
+    },
+    //#endregion
+
+    //#region 寮圭獥鏁版嵁鍗曞嚮浜嬩欢
+    emitData(deptRow, num) {
+      this.dialogTypeNum = num
+      this.deptform = deptRow
+    },
+    //#endregion
+
+    //#region 寮圭獥纭畾浜嬩欢
+    deptClickSub() {
+      this.dbEmitData(this.deptform, this.dialogTypeNum)
+      this.deptform = {}
+    },
+    //#endregion
+
+    //#region 寮圭獥鍙栨秷浜嬩欢
+    deptClose() {
+      this.deptform = {}
+      this.openData = false
+    },
+    //#endregion
+    //#endregion
+
+    //#region 宸ュ叿鏍忔寜閽搷浣�
+    //#region 缂栬緫鎻愪氦淇濆瓨
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          let fhck = false
+          this.editData.map((item, index) => {
+            if (!item.鍙戣揣浠撳簱) {
+              fhck = true
+              this.$modal.msgError("绗�" + (index + 1) + "琛岋細鍙戣揣浠撳簱鏈�夋嫨锛�");
+            }
+          })
+          this.$nextTick(() => {
+            if (!fhck) {
+              var sMainStr = JSON.stringify(this.form);
+              var sSubStr = JSON.stringify(this.editData);
+              var sMainSub = sMainStr + ';' + sSubStr + ';' + sessionStorage["HUserName"] + ';' + this.OperationType;
+              axios({
+                method: 'post',
+                url: this.baseURL + "/Kf_SellOutBill/SaveSellOutBillList",
+                data: {
+                  'msg': sMainSub
+                },
+              }).then(response => {
+                if (response.data.count == 1) {
+                  this.subDisabled = true//璁剧疆淇濆瓨鎸夐挳涓嶅彲鐢�
+                  this.$modal.msgSuccess(response.data.Message);
+                  this.get_MAXNum_Task(1);//璁剧疆娴佹按鍙峰鍔�
+                  if (response.data.Verify == "Y") //鑷姩瀹℃牳
+                  {
+                    this.set_CheckBill(0, this.form); //瀹℃牳
+                  }
+                  this.addBtnShow = true
+                }
+              }).catch(error => {
+                this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+              });
+            }
+          })
+        }
+      });
+    },
+    //#endregion
+
+    //#region 鍙嶅鏍�/瀹℃牳鏁版嵁
+    set_CheckBill(num, form) {
+      var InterID = form.hmainid || form.HInterID
+      //閫昏緫瀹℃牳鏂规硶
+      axios.get(this.baseURL + "/Kf_SellOutBill/AuditKf_SellOutBill", {
+        params: { "HInterID": InterID, "IsAudit": num, "CurUserName": sessionStorage["HUserName"] }
+      }).then(response => {
+        let result = response.data
+        if (result.code == 1) {
+          this.$modal.msgSuccess('鎿嶄綔鎴愬姛');
+        }
+        else {
+          this.$modal.msgError("閿欒:" + result.code + result.Message,);
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 閫�鍑烘寜閽搷浣�
+    close() {
+      this.reset()
+
+      if (!this.OperationType && !this.copyType) {
+        // this.$router.back()
+        window.close()
+      } else {
+        this.formShow = false
+        this.$emit('editClose', false)
+      }
+    },
+    //#endregion
+    //#endregion
+
+    //#region 瀛愯〃鎿嶄綔
+    //#region 璁剧疆瀛愯〃搴忓彿鍒�
+    rowSysZbIndex({ row, rowIndex }) {
+      row.index = rowIndex + 1;
+    },
+    //#endregion
+
+    //#region 瀛愯〃鏂板銆佹彃鍏ユ寜閽搷浣�
+    handleAddSysZb(index, num) {
+      if (num == 1 && !index) {
+        this.$modal.msgError("璇烽�夋嫨涓�琛屾暟鎹紪杈�!");
+      } else {
+        let obj = {
+          HMaterID: 0,
+          鐗╂枡浠g爜: '',
+          鐗╂枡鍚嶇О: '',
+          瑙勬牸鍨嬪彿: '',
+          HUnitID: 0,
+          璁¢噺鍗曚綅: '',
+          HQtyMust: 1,
+          HQty: 1,
+          HPieceQty: 0,
+          HPrice: 0,
+          HTaxPrice: 0,
+          HTaxRate: 0,
+          HMoney: 0,
+          HTaxMoney: 0,
+          HWHID: 0,
+          鍙戣揣浠撳簱: '',
+          HRemark: '',
+          HQty_Full: 0,
+          HQty_Empty: 0,
+          HQty_Back: 0,
+          HCostPrice: 0,
+          HCostMoney: 0,
+          HSalePrice: 0,
+          HSeOrderInterID: 741,
+          HSeOrderEntryID: 18,
+          HSeOrderBillNo: 'XSFH00000747',
+          HSourceInterID: 741,
+          HSourceEntryID: 18,
+          HSourceBillNo: 'XSFH00000747',
+          HSourceBillType: 1402,
+          HRelationQty: 0,
+          HRelationMoney: 0,
+          HSPID: 0,
+          HSPName: '',
+          HSPGroupID: 0,
+          HSPGroupName: '',
+          HSCWHID: 0,
+          HSCWHName: '',
+          HSCSPID: 0,
+          HSCSPName: '',
+          HBatchNo: '',
+          HPOOrderInterID: 0,
+          HPOOrderEntryID: 0,
+          HPOOrderBillNo: '',
+          HPropertyID: 0,
+          HPropertyName: '',
+          HSecUnitID: 0,
+          HSecUnitName: '',
+          HSecUnitRate: 0,
+          HEngineNum: '',
+          HUnderPanNum: '',
+          HLeaveFactCard: '',
+          HReqBuyQty: 0,
+          HReqOutQty: 0,
+          HCurrentInventory: 0,
+        }
+        if (index) {
+          this.editData.splice(index, 0, obj);
+          this.$set(this.editData, index, obj)
+        } else {
+          this.editData.push(obj);
+        }
+      }
+    },
+    //#endregion
+
+    //#region 瀛愯〃澶嶅埗鎸夐挳
+    handleCopyZbRow() {
+      if (!this.zbIndex) {
+        this.$modal.msgError("璇烽�夋嫨涓�琛屾暟鎹�")
+      } else {
+        let copyRow = JSON.parse(JSON.stringify(this.zbSelForm))
+        this.editData.push(copyRow);
+      }
+    },
+    //#endregion
+
+    //#region 瀛愯〃涓婄Щ鎸夐挳
+    handleMoveRowUp(zbSelForm) {
+      if (!this.zbIndex) {
+        this.$modal.msgError("璇烽�夋嫨涓�琛屾暟鎹�")
+      } else {
+        if (zbSelForm.index == 1) {
+          this.$modal.msgError("绗竴琛屾暟鎹棤娉曚笂绉�");
+        } else { // 纭繚涓嶆槸绗竴琛�
+          let num = zbSelForm.index - 1
+          const record = this.editData.splice(num, 1)[0];
+          this.editData.splice(num - 1, 0, record);
+        }
+      }
+    },
+    //#endregion
+
+    //#region 瀛愯〃涓嬬Щ鎸夐挳
+    handleMoveRowDown(zbSelForm) {
+      if (!this.zbIndex) {
+        this.$modal.msgError("璇烽�夋嫨涓�琛屾暟鎹�")
+      } else {
+        if (zbSelForm.index == this.editData.length) {
+          this.$modal.msgError("鏈�鍚庝竴琛屾暟鎹棤娉曚笅绉�");
+        } else { // 纭繚涓嶆槸绗竴琛�
+          let num = zbSelForm.index - 1
+          const record = this.editData.splice(num, 1)[0];
+          this.editData.splice(num + 1, 0, record);
+        }
+      }
+    },
+    //#endregion
+
+    //#region 瀛愯〃鍒犻櫎鎸夐挳
+    handleDeleteSysZb(row) {
+      this.checkedSysZb = []
+      this.checkedSysZb.push(row.index)
+      if (this.checkedSysZb.length == 0) {
+        this.$modal.msgError("璇峰厛閫夋嫨瑕佸垹闄ょ殑鏄庣粏鏁版嵁");
+      } else {
+        const editData = this.editData;
+        const checkedSysZb = this.checkedSysZb;
+        this.editData = editData.filter(function (item) {
+          return checkedSysZb.indexOf(item.index) == -1
+        });
+      }
+    },
+    //#endregion
+
+    //#region 瀛愯〃澶嶉�夋閫変腑鏁版嵁
+    handleTableZbEdit(selection) {
+      this.checkedSysZb = selection.map(item => item.index)
+      this.zbSelForm = selection[0]
+      this.zbIndex = this.checkedSysZb[0]
+      if (selection.length > 1) {
+        const del_row = selection.shift()
+        this.$refs.zbTable.toggleRowSelection(del_row, false) //璁剧疆杩欎竴琛屽彇娑堥�変腑
+      }
+    },
+    //#endregion
+    //#endregion
+
+    //#region 閫氱敤鏂规硶銆�
+    //#region 鑾峰彇鍙傛暟_浼犻�掔殑JSON鏍煎紡鍙傛暟
+    getUrlVars_JSON() {
+      var datajson;
+      var str = this.propsData; //鑾峰彇閾炬帴涓紶閫掔殑鍙傛暟
+      var arr = str.substring(str.lastIndexOf("=") + 1);
+      datajson = JSON.parse(decodeURI(arr));
+      return datajson;
+    },
+    //#endregion
+
+    //#region 缁勭粐涓嬫媺鍒楄〃鏁版嵁鍒濆鍖�
+    fetchData() {
+      axios.get(this.baseURL + "/Web/GetOrganizations", {
+      }).then(response => {
+        if (response.data.count == 1) {
+          this.organizationList = response.data.data;//缁勭粐鍒楄〃
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+    
+    //#region 婧愬崟绫诲瀷涓嬫媺鍒楄〃鏁版嵁鍒濆鍖�
+    fetchData_SourceBillTypeList() {
+      var HName = '浜у搧鍏ュ簱鍗�';
+      axios.get(this.baseURL + "/Web/GetHSourceBillType", {
+        params: {
+          HName: HName, 
+          Num: 2
+        }
+      }).then(response => {
+        if (response.data.count == 1) {
+          this.sourceBillTypeList = response.data.data;//缁勭粐鍒楄〃
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 鑾峰彇鍐呯爜銆佸崟鎹彿
+    getHBillNo() {
+      axios.get(this.baseURL + "/WEBSController/GetMaxBillNoAndID_Json", {
+        params: {
+          HBillType: '1201'
+        }
+      }).then(response => {
+        this.form.HBillNo = response.data.data[0].HBillNo
+        this.form.HInterID = response.data.data[0].HInterID
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 鑾峰彇鏈�澶у崟鎹彿
+    get_MAXNum_Task(Type) {
+      var sql = `exec h_p_Xt_GetMaxBillNo_SubType '1201','${this.form.HDate}',0,0,0,'${Type}','${this.form.HDeptID}'`;
+      axios({
+        method: 'get',
+        url: this.baseURL + "/CommonModel/searchMethod",
+        params: { "sql": sql, "user": sessionStorage["HUserName"], "ModRightNameCheck": "" },
+      }).then(response => {
+        if (response.data.count == 1) {
+          this.form.HBillNo = response.data.data[0].HBillNo;
+        } else {
+          this.$modal.msgError(response.data.code + response.data.Message);
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 鏍规嵁鐢ㄦ埛鑾峰彇瀵瑰簲鑱屽憳銆侀儴闂ㄣ�侀攢鍞富绠�
+    getCzyglByUser() {
+      axios.get(this.baseURL + '/Xs_SeOrderBill/getCzyglByUser', {
+        params: { "CurUserName": sessionStorage["HUserName"] }
+      }).then(response => {
+        let dataForm = response.data.data[0]
+        this.form.HDeptID = dataForm.HDeptID
+        this.form.HDeptName = dataForm.HDeptName
+        this.form.HEmpID = dataForm.HEmpID
+        this.form.HEmpName = dataForm.HEmpName
+        this.form.HManagerID = dataForm.HManagerID
+        this.form.HManagerName = dataForm.HManagerName
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 鏍规嵁瀹㈡埛鑾峰彇瀹㈡埛浣欓
+    getCustomerBalance(HCusID) {
+      axios.get(this.baseURL + '/Xs_CusRatingChangeBill/getCustomerBalance', {
+        params: { "HCusID": HCusID, 'CurUserName': sessionStorage["HUserName"] }
+      }).then(response => {
+        var data = response.data.data[0];
+        this.form.HCusBalance = data.HCusBalance
+        this.form.HCreditRating_Now = data.HCreditRating_Now
+        this.form.HAvailableBalance = data.HAvailableBalance
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 鏍规嵁瀹㈡埛甯﹀嚭鑱旂郴浜恒�佽仈绯荤數璇�
+    getCustomerByCusID(HCusID) {
+      axios.get(this.baseURL + "/Xs_SeOrderBill/getCustomerByCusID", {
+        params: {
+          HCusID: HCusID
+        }
+      }).then(response => {
+        this.form.鑱旂郴浜� = response.data.data[0].HLinkMan
+        this.form.鑱旂郴鐢佃瘽 = response.data.data[0].HLinkPhone
+        // this.form = response.data.data[0]
+
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+  
+    //#region 鑾峰彇閿�鍞嚭搴撳崟瀵瑰簲鐨勬潯鐮佹槑缁�
+    getBarCodeNoteBySellOutBill(rowHmainid) {
+      axios.get(this.baseURL + '/Kf_SellOutBill/BarCodeNote', {
+        params: { "HInterID": rowHmainid }
+      }).then(response => {
+        if (response.data.count == 1) {
+          if (response.data.data[2].length > 0) {
+            this.$modal.msgError("褰撳墠鍗曟嵁鐢辨壂鐮佺敓鎴愶紝涓嶅彲浠ョ紪杈戯紒");
+            this.subDisabled = true
+          }
+        } else { }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 鏍规嵁涓诲唴鐮佷笌瀛愬唴鐮佽幏鍙栨簮鍗曢攢鍞鍗曟暟鎹�
+    getPushSourceBillInit(HSourceInterID, HSourceEntryID) {
+      axios.get(this.baseURL + '/Xs_SeOrderBill/loadXs_SeOrderBill_Push', {
+        params: {
+          "HInterID": HSourceInterID
+          , "HSubID": HSourceEntryID
+        },
+      }).then(response => {
+        let result = response.data
+        if (result.code == 1) { // 璇存槑楠岃瘉鎴愬姛浜嗭紝
+          this.temp = result.data[0];
+        } else {
+          this.temp = result.data;
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+    //#endregion
+    
+  }
+};
+</script>
+<style>
+.xsckdBox .el-date-editor.el-input {
+  width: 100%;
+}
+</style>
diff --git a/src/views/ProductInBill/Kf_ProductInBillList.vue b/src/views/ProductInBill/Kf_ProductInBillList.vue
new file mode 100644
index 0000000..b71cf60
--- /dev/null
+++ b/src/views/ProductInBill/Kf_ProductInBillList.vue
@@ -0,0 +1,873 @@
+<template>
+  <div style="padding: 10px;">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="78px" class="searchBox">
+      <el-form-item label="寮�濮嬫棩鏈�" style="margin-left: 100px;">
+        <el-date-picker v-model="queryParams.sTime" type="date" placeholder="寮�濮嬫棩鏈�" style="width: 150px;">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="缁撴潫鏃ユ湡">
+        <el-date-picker v-model="queryParams.eTime" type="date" placeholder="缁撴潫鏃ユ湡" style="width: 150px;">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item label="鏃ユ湡闂撮殧">
+        <el-select v-model="queryParams.HInitTimeCycle" placeholder="璇烽�夋嫨" @change="riqiChange" style="width: 150px;">
+          <el-option v-for="(item, index) in rqsgList" :key="index" :label="item.label" :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="鍗曟嵁鍙�" prop="HBillNo">
+        <el-input v-model="queryParams.HBillNo" placeholder="璇疯緭鍏ュ崟鎹彿" @keyup.enter.native="handleQuery" />
+      </el-form-item>
+      <el-form-item label="缁勭粐" prop="HOrgID">
+        <el-select v-model="queryParams.HOrgID" placeholder="璇烽�夋嫨缁勭粐">
+          <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
+          </el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label-width="78px">
+        <el-button type="primary" icon="el-icon-search" @click="handleQuery"> 鎼� 绱�</el-button>
+        <el-button icon="el-icon-circle-close" @click="resetQuery">閲� 缃�</el-button>
+      </el-form-item>
+      <el-collapse v-model="activeSeach">
+        <el-collapse-item title="鏇村" name="1">
+          <el-card class="box-card">
+            <div slot="header" class="clearfix"><span>杩囨护</span></div>
+            <div>
+              <el-row>
+                <el-form-item label-width="0">
+                  <el-row>
+                    <el-col :span="7">
+                      <el-select v-model="queryParams.ColName1" placeholder="璇烽�夋嫨" @change="riqiChange">
+                        <span v-for="(item, index) in btList" :key="index">
+                          <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
+                        </span>
+                      </el-select>
+                    </el-col>
+                    <el-col :span="6" style="padding: 0 10px;">
+                      <el-select v-model="queryParams.Comparator1" placeholder="璇烽�夋嫨" @change="riqiChange">
+                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
+                          :value="item.value"></el-option>
+                      </el-select>
+                    </el-col>
+                    <el-col :span="11">
+                      <el-input v-model="queryParams.ColContent1" placeholder="璇疯緭鍏�" clearable
+                        @keyup.enter.native="handleQuery" />
+                    </el-col>
+                  </el-row>
+                </el-form-item>
+              </el-row>
+              <el-row>
+                <el-form-item label-width="0">
+                  <el-row>
+                    <el-col :span="7">
+                      <el-select v-model="queryParams.ColName2" placeholder="璇烽�夋嫨" @change="riqiChange">
+                        <span v-for="(item, index) in btList" :key="index">
+                          <el-option :label="item.field" :value="item.field" v-if="!item.hide"></el-option>
+                        </span>
+                      </el-select>
+                    </el-col>
+                    <el-col :span="6" style="padding: 0 10px;">
+                      <el-select v-model="queryParams.Comparator2" placeholder="璇烽�夋嫨" @change="riqiChange">
+                        <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
+                          :value="item.value"></el-option>
+                      </el-select>
+                    </el-col>
+                    <el-col :span="11">
+                      <el-input v-model="queryParams.ColContent2" placeholder="璇疯緭鍏�" clearable
+                        @keyup.enter.native="handleQuery" />
+                    </el-col>
+                  </el-row>
+                </el-form-item>
+              </el-row>
+              <el-form-item label-width="0">
+                <el-row>
+                  <el-col :span="7">
+                    <el-select v-model="queryParams.ColName" placeholder="璇烽�夋嫨" @change="riqiChange">
+                      <el-option v-for="(item, index) in btList" :key="index" :label="item.field"
+                        :value="item.field"></el-option>
+                    </el-select>
+                  </el-col>
+                  <el-col :span="6" style="padding: 0 10px;">
+                    <el-select v-model="queryParams.Comparator" placeholder="璇烽�夋嫨" @change="riqiChange">
+                      <el-option v-for="(item, index) in comparatorList" :key="index" :label="item.label"
+                        :value="item.value"></el-option>
+                    </el-select>
+                  </el-col>
+                  <el-col :span="11">
+                    <el-input v-model="queryParams.ColContent" placeholder="璇疯緭鍏�" clearable
+                      @keyup.enter.native="handleQuery" />
+                  </el-col>
+                </el-row>
+              </el-form-item>
+            </div>
+          </el-card>
+        </el-collapse-item>
+      </el-collapse>
+    </el-form>
+    <el-row :gutter="10" class="mb8" style="margin-top: 10px;">
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit(OperationType = 1)"
+          id="btn-Add">鏂板</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single"
+          @click="handleEdit(row = rowForm, OperationType = 3)">缂栬緫</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-document-copy" size="mini" :disabled="single"
+          @click="handleEdit(row = rowForm, OperationType = 1, copyType = 1)">澶嶅埗</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">鍒犻櫎
+        </el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
+          @click="set_CheckBill(1, form = rowForm)">瀹℃牳</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-edit-outline" size="mini" :disabled="single"
+          @click="set_CheckBill(2, form = rowForm)">杩斿鏍�</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport">瀵煎嚭</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-date" size="mini" @click="handleRowHide">闅愯棌鍒楄缃�</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-printer" size="mini" @click="get_PrintReport">鎵撳嵃</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="primary" icon="el-icon-printer" size="mini" :disabled="single" @click="get_BarCodeDetail">鏉$爜鏄庣粏</el-button>
+      </el-col>
+    </el-row>
+    <div class="tableBox" v-loading="loading">
+      <el-table :data="tableData" ref="tableData" max-height="710" :summary-method="getSummaries"
+        @selection-change="handleSelectionChange" show-summary border @row-click="handleRowClick" :row-style="rowStyle"
+        @cell-dblclick="handleDblclick" v-if="tableShow">
+        <template v-for="(item, index) in btList">
+          <el-table-column type="selection" width="55" align="center" :fixed="item.fixed" v-if="item.type == 'checkbox'"
+            :key="index" />
+          <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width" :key="item.id"
+            v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort" show-overflow-tooltip
+            :fixed="item.fixed">
+            <template slot-scope="{row,  column }">
+              <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
+              <div :style="item.style">
+                <span v-if="column.property.includes('鏃ユ湡')">{{ parseTime(row[column.property], '{y}-{m}-{d}') }}</span>
+                <el-button type="text" @click="handleEdit(row, OperationType = 3)"
+                  v-else-if="column.property == '鍗曟嵁鍙�'">{{
+                    row.鍗曟嵁鍙�
+                  }}</el-button>
+                <span v-else>{{ row[column.label] }}</span>
+              </div>
+            </template>
+          </el-table-column>
+        </template>
+      </el-table>
+      <!-- 璁板綍鏁般�侀〉鏁般�佸綋鍓嶉〉 -->
+      <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" @pagination="handleQuery" />
+      <!-- 鍒楄缃� -->
+      <el-dialog title="闅愯棌鍒楄缃�" :visible.sync="openRowHide" width="816px" append-to-body>
+        <RowSettings :colName="btResList" HModName="Kf_ProductInBillList" @rowEditClose="rowSetClose"
+          v-if="rowHideShow" />
+      </el-dialog>
+      <!-- 缂栬緫 -->
+      <el-dialog title="缂栬緫" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox" @close="close">
+        <edit :OperationType=OperationType :linterid=this.rowForm.hmainid :HSouceBillType=this.rowForm.HSourceBillType
+          :copyType="copyType" @editClose="editClose" v-if="editShow" />
+      </el-dialog>
+      <!-- 鎵撳嵃 -->
+      <el-dialog title="鎵撳嵃妯℃澘閫夋嫨" :visible.sync="openPrintList" width="800px" append-to-body>
+        <PrintList :linterid=this.rowForm.hmainid :MyMsg=this.rowForm.hmainid Type='Kf_ProductInBillList'
+          HModName='Kf_ProductInBillList' @rowEditClose="rowSetClose" v-if="printListShow" />
+        <!-- <div>111</div> -->
+      </el-dialog>
+      <!-- 鏉$爜鏄庣粏 -->
+      <BarCodeDetail :visible.sync="barCodeDetailShow" ref="barcodeDetail"/>
+    </div>
+  </div>
+</template>
+
+<script>
+import axios from 'axios'
+import moment from 'moment';                                              //瀵煎嚭缁勪欢
+import RowSettings from '@/views/component/rowSettings'                   //鍒楄缃粍浠�
+import PrintList from '@/views/component/printList'                       //鎵撳嵃缁勪欢
+import BarCodeDetail from '@/views/component/BarCodeDetail'               //鏉$爜鏄庣粏缁勪欢
+import Edit from '@/views/ProductInBill/Kf_ProductInBillEdit'             //缂栬緫椤甸潰缁勪欢
+
+export default {
+  name: 'Kf_ProductInBillList',
+  components: { RowSettings, Edit, PrintList,BarCodeDetail },
+  data() {
+    return {
+      baseURL: process.env.VUE_APP_BASE_API,                //鍚庣鎺ュ彛鍓嶇紑(鍚庣鏈嶅姟鍣╥p鍦板潃)
+
+      OperationType: null,                                  //淇濆瓨绫诲瀷锛堟柊澧�1淇敼3锛�
+      copyType: 0,                                          //澶嶅埗鏍囪銆傛墦寮�缂栬緫缁勪欢鏃讹紝鐢ㄤ簬鍖哄垎缂栬緫杩樻槸澶嶅埗
+      HInterID: null,
+      hPriceTypeList: ['鎴愭湰浠�', '缁撶畻浠�'],
+      
+      rqsgList: [                                           //鏃ユ湡闂撮殧涓嬫媺鍒楄〃鏁版嵁
+        { label: '浠婂ぉ', value: 0 },
+        { label: '杩戜袱澶�', value: 1 },
+        { label: '杩戜笁澶�', value: 2 },
+        { label: '杩戝洓澶�', value: 3 },
+        { label: '杩戜簲澶�', value: 4 },
+        { label: '杩戝叚澶�', value: 5 },
+        { label: '杩戜竷澶�', value: 6 },
+        { label: '杩�30澶�', value: 29 },
+        { label: '杩戝崐骞�', value: 180 },
+        { label: '杩戜竴骞�', value: 365 },
+      ],
+      organizationList: [],                                 //缁勭粐鍒楄〃
+      btList: [],                                           //鍒楄〃琛ㄥご瀛楁鍒楄〃
+      comparatorList: [                                     //杩愮畻鏍囪瘑涓嬫媺鍒楄〃
+        { label: '=', value: '=' },
+        { label: '>=', value: '>=' },
+        { label: '>', value: '>' },
+        { label: '<=', value: '<=' },
+        { label: '<', value: '<' },
+        { label: '<>', value: '<>' },
+        { label: '鍖呭惈', value: '7' },
+        { label: '宸﹀寘鍚�', value: '8' },
+        { label: '鍙冲寘鍚�', value: '9' },
+        { label: '涓嶅寘鍚�', value: '10' },
+      ],
+      
+      dialogTitle: '',                                      // 寮圭獥鏍囬
+      title: "",                                            // 寮瑰嚭灞傛爣棰�
+      open: false,                                          // 鏄惁鏄剧ず寮瑰嚭灞�
+      loading: true,                                        // 閬僵灞�
+      
+      activeSeach: '',
+      // addBtnShow: false,                                    //缂栬緫缁勪欢瀹瑰櫒鏄剧ず鏍囪
+      editShow: false,                                      //缂栬緫缁勪欢瀹瑰櫒鏄剧ず鏍囪
+      openEdit: false,                                      //缂栬緫缁勪欢鏄剧ず鏍囪
+      openPrintList: false,                                 //鎵撳嵃缁勪欢瀹瑰櫒鏄剧ず鏍囪
+      printListShow: false,                                 //鎵撳嵃缁勪欢鏄剧ず鏍囪
+      openBtnHide: false,                                   //鎸夐挳缁勪欢瀹瑰櫒鏄剧ず鏍囪
+      btnHideShow: false,                                   //鎸夐挳缁勪欢鏄剧ず鏍囪
+      openRowHide: false,                                   //鍒楄缃粍浠舵樉绀烘爣璁�
+      rowHideShow: false,                                   //鍒楄缃粍浠跺鍣ㄦ樉绀烘爣璁�
+      barCodeDetailShow: false,                             //鏉$爜鏄庣粏缁勪欢瀹瑰櫒鏄剧ず鏍囪
+      
+      
+      
+      // 鏌ヨ鍙傛暟
+      sWhere: '',                                                   // 鎷兼帴杩囨护鏉′欢
+      queryParams: {                                                // form鏁版嵁
+        HBillNo: '',
+        HInitTimeCycle: 29,
+        sTime: '',
+        eTime: '',
+        HOrgID: 0,
+        ColName1: '',
+        ColName2: '',
+        ColName: '',
+        Comparator1: '',
+        Comparator2: '',
+        Comparator: '',
+        ColContent1: '',
+        ColContent2: '',
+        ColContent: '',
+      },
+      
+      page: 1,                                                      //page椤电储寮�
+      pageSize: 0,                                                  //page椤甸潰璁板綍鏁�
+      total: 0,                                                     //璁板綍鍚堣鏁�
+      tableShow: true,                                              // table鏄剧ず鏍囪
+      totalNameList: [],                                            // 闇�瑕佽缃悎璁¤鐨勫垪鏁扮粍
+      tableData: [],                                                // 鍒楄〃鏁版嵁銆傜敤浜巘able鐩戝惉浜嬩欢
+      ids: [],                                                      // 閫変腑琛岀殑hmainid鏁扮粍
+      single: true,                                                 // 褰撻�変腑鐨勮鏁颁笉涓�1鏃朵负true銆傜敤浜庣鐢ㄧ浉鍏虫搷浣�
+      multiple: true,                                               // 褰撻�変腑鐨勮鏁颁负0鏃朵负true銆傜敤浜庣鐢ㄧ浉鍏虫搷浣�
+      lastSelectedRowIndex: null,                                   // 鐢ㄤ簬璁板綍涓婃鐐瑰嚮鐨勮绱㈠紩
+      lastSelectedRow: null,                                        // 涓婁竴娆¢�変腑鐨勮
+      selectedRow: null,                                            // 褰撳墠閫変腑鐨勮
+      rowForm: {},                                                  // 褰撻�変腑鐨勫彧鏈変竴琛屾椂锛屾洿鏂版暟鎹负璇ラ�変腑鐨勮銆�
+
+      tyResList: [],                                                // 鍒楄〃鏁版嵁锛岀敤浜庡鍑�
+      titleData: [],                                                // 涓嶉渶瑕佹樉绀虹殑瀛楁 鍙墿灞�
+      btResList: [],                                                // 鍒楄〃琛ㄥご鏁版嵁銆傜敤浜庡垪璁剧疆
+      dataList: [],                                                 // option璁板綍銆傜敤浜庡綋option鏁版嵁鏃犳晥鏃讹紝鐢ㄤ簬鍒楄缃�
+    };
+  },
+  created() {
+    this.fetchData()                //鍔犺浇缁勭粐涓嬫媺鍒楄〃鏁版嵁
+    this.riqiChange()
+    this.handleQuery();
+  },
+
+  methods: {
+    //#region 璁剧疆琛ㄥご
+    renderHeader(h, { column, $index }) {// 鏂板缓涓�涓� span
+      let span = document.createElement(span)// 璁剧疆琛ㄥご鍚嶇О
+      span.innerText = column.label
+      //涓存椂鎻掑叆 document
+      document.body.appendChild(span)// 閲嶇偣:鑾峰彇 span 鏈�灏忓搴︼紝璁剧疆褰撳墠鍒楋紝娉ㄦ剰杩欓噷鍔犱簡 20锛屽瓧娈佃緝澶氭椂column.minWidth=span.getBoundingClientRect().width + 50.//绉婚櫎 document 涓复鏃剁殑 span
+      document.body.removeChild(span)
+      return h(span, column.label)
+    },
+    //#endregion
+
+    //#region 鐐瑰嚮琛�
+    handleRowClick(row, column, event) {
+      this.lastSelectedRow = this.selectedRow; // 璁板綍涓婁竴娆¢�変腑鐨勮
+      this.selectedRow = row; // 璁板綍褰撳墠閫変腑鐨勮
+      this.lastSelectedRowIndex = this.tableData.indexOf(row);
+      this.$refs.tableData.toggleRowSelection(row);
+    },
+    //#endregion
+    
+    //#region 閫変腑琛岄珮浜牱寮�
+    rowStyle({ row, rowIndex }) {
+      if (this.ids.includes(row.hmainid)) {
+        return { "background": "#ecf5ff" }
+      }
+    },
+    //#endregion
+
+    //#region 鍙屽嚮琛�
+    handleDblclick(row, column, cell, event) {
+      this.OperationType = 3
+      this.handleEdit()
+    },
+    //#endregion
+
+    //#region 澶氶�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      // this.rowForm = {}
+      this.ids = selection.map(item => item.hmainid)
+      this.single = selection.length != 1
+      this.multiple = !selection.length
+      if (!this.single) {
+        this.rowForm = selection[0]
+      }
+    },
+    //#endregion
+    
+    //#region 鏍规嵁鏃ユ湡闂撮殧锛岃缃紑濮嬫棩鏈熴�佺粨鏉熸棩鏈�
+    riqiChange() {
+      const end = new Date();
+      const start = new Date();
+      start.setTime(start.getTime() - 3600 * 1000 * 24 * this.queryParams.HInitTimeCycle);
+      const yyyyS = start.getFullYear();
+      const mmS = String(start.getMonth() + 1).padStart(2, '0'); // 鏈堜唤鏄粠0寮�濮嬬殑
+      const ddS = String(start.getDate()).padStart(2, '0');
+      const yyyyE = end.getFullYear();
+      const mmE = String(end.getMonth() + 1).padStart(2, '0'); // 鏈堜唤鏄粠0寮�濮嬬殑
+      const ddE = String(end.getDate()).padStart(2, '0');
+      this.queryParams.sTime = yyyyS + '-' + mmS + '-' + ddS
+      this.queryParams.eTime = yyyyE + '-' + mmE + '-' + ddE
+    },
+    //#endregion
+    
+    //#region 鍔犺浇缁勭粐涓嬫媺鍒楄〃鏁版嵁
+    fetchData() {
+      axios.get(this.baseURL + "/Web/GetOrganizations", {
+      }).then(response => {
+        if (response.data.count == 1) {
+          this.organizationList = response.data.data;//缁勭粐鍒楄〃
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+      this.queryParams.HOrgID = sessionStorage["OrganizationID"];
+    },
+    //#endregion
+
+    //#region 閲嶇疆
+    resetQuery() {
+      this.sWhere = ''
+      this.queryParams = {
+        HBillNo: '',
+        HInitTimeCycle: 29,
+        ColName1: '',
+        ColName2: '',
+        ColName: '',
+        Comparator1: '',
+        Comparator2: '',
+        Comparator: '',
+        ColContent1: '',
+        ColContent2: '',
+        ColContent: '',
+      }
+      this.riqiChange()
+      this.resetForm("queryForm")
+      this.handleQuery()
+    },
+    //#endregion
+
+    //#region 蹇�熻繃婊�
+    handleQuery() {
+      this.sWhere = ''
+      if (this.queryParams.ColName && this.queryParams.Comparator) {
+        var com = "";
+        switch (this.queryParams.Comparator) {
+          case "7":
+            com = "like'%" + this.queryParams.ColContent + "%'";
+            break;
+          case "8":
+            com = "like'%" + this.queryParams.ColContent + "'";
+            break;
+          case "9":
+            com = "like'" + this.queryParams.ColContent + "%'";
+            break;
+          case "10":
+            com = "not like'%" + this.queryParams.ColContent + "%'";
+            break;
+          default:
+            com = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
+            break;
+        }
+        this.sWhere += " and " + this.queryParams.ColName + " " + com;
+      }
+      if (this.queryParams.ColName1 && this.queryParams.Comparator1) {
+        var com1 = "";
+        switch (this.queryParams.Comparator1) {
+          case "7":
+            com1 = "like'%" + this.queryParams.ColContent1 + "%'";
+            break;
+          case "8":
+            com1 = "like'%" + this.queryParams.ColContent1 + "'";
+            break;
+          case "9":
+            com1 = "like'" + this.queryParams.ColContent1 + "%'";
+            break;
+          case "10":
+            com1 = "not like'%" + this.queryParams.ColContent1 + "%'";
+            break;
+          default:
+            com1 = "" + this.queryParams.Comparator1 + "'" + this.queryParams.ColContent1 + "'";
+            break;
+        }
+        this.sWhere += " and " + this.queryParams.ColName1 + " " + com1;
+      }
+      if (this.queryParams.ColName2 && this.queryParams.Comparator2) {
+        var com2 = "";
+        switch (this.queryParams.Comparator2) {
+          case "7":
+            com2 = "like'%" + this.queryParams.ColContent2 + "%'";
+            break;
+          case "8":
+            com2 = "like'%" + this.queryParams.ColContent2 + "'";
+            break;
+          case "9":
+            com2 = "like'" + this.queryParams.ColContent2 + "%'";
+            break;
+          case "10":
+            com2 = "not like'%" + this.queryParams.ColContent2 + "%'";
+            break;
+          default:
+            com2 = "" + this.queryParams.Comparator + "'" + this.queryParams.ColContent + "'";
+            break;
+        }
+        this.sWhere += " and " + this.queryParams.ColName2 + " " + com2;
+      }
+      if (this.queryParams.sTime) {
+        this.queryParams.sTime = moment(this.queryParams.sTime).format('YYYY-MM-DD')
+        this.queryParams.eTime = moment(this.queryParams.eTime).format('YYYY-MM-DD')
+        console.log(this.queryParams.sTime, this.queryParams.eTime)
+        this.sWhere += " and CONVERT(varchar(100),鏃ユ湡, 23) >= '" + this.queryParams.sTime + "'" + " and CONVERT(varchar(100),鏃ユ湡, 23) <= '" + this.queryParams.eTime + "'";
+      }
+      if (this.queryParams.HBillNo) {
+        this.sWhere += " and 鍗曟嵁鍙� like '%" + this.queryParams.HBillNo + "%'";
+      }
+      
+      if (this.queryParams.HOrgID) {
+        this.sWhere += " and HStockOrgID = '" + this.queryParams.HOrgID + "'";
+      }
+      this.getList()
+    },
+    //#endregion
+
+    //#region 鏌ヨ
+    getList() {
+      this.pageSize = 50
+      if (this.pageSize == 0) {
+        this.pageSize = 50
+      }
+      this.tableShow = false
+      this.loading = true
+      
+      // 鍒楄〃鏌ヨ
+      axios.get(this.baseURL + '/Kf_ProductInBillController/GetKf_ProductInBillList_Json', {
+        params: {
+          "sWhere": this.sWhere,
+          "HMaker": sessionStorage["HUserName"],
+          "OperationType": 1,
+          "ViewName": "h_v_Kf_ProductInBillList"
+        },
+      }).then(response => {
+        this.tyResList = response.data.data//鎬绘暟鎹�
+        let data1 = response.data
+        let option = []
+        if (data1.count == 1) {
+          this.btResList = data1.list             //鍒楄〃琛ㄥご鏁版嵁
+          this.total = data1.count;
+          var data = [];//鍒楀瓧娈垫暟鎹�
+          var col = [];
+          var totalArray = [];
+          //缁欑┖鐨勬暟缁勮祴鍊�
+          for (var key in data1.list) {//寰簭閬嶅巻鏁扮粍
+            data.push({ "id": data1.list[key].ColmCols, "name": data1.list[key].ColmCols, "Type": data1.list[key].ColmType });//浠庢瘡涓璞′腑鎻愬彇鏁版嵁
+          }
+          //鍦ㄥ垪琛ㄥ乏杈规坊鍔犲嬀閫夋
+          col.push({ type: 'checkbox', fixed: 'left', totalRowText: '鍚堣' });
+          for (var i = 0; i < data.length; i++) {//閬嶅巻data鏁扮粍閲嶇殑鏁版嵁
+            if (this.titleData.indexOf(data[i].name) > -1) {//妫�鏌ata銆恑銆�.name鏄惁鍦ㄦ暟缁勪腑  //璁$畻鍒�
+              col.push({ field: data[i].id, title: data[i].name, align: 'center', hide: true }); //闅愯棌id鍒�
+            } else if (totalArray.indexOf(data[i].name) > -1 || (data[i].Type == "Decimal" || data[i].Type == "Int32")) { //璁$畻鍒�
+              col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, totalRow: true, width: 120 });
+            }
+            else {
+              col.push({ field: data[i].id, title: data[i].name, align: 'center', sort: true, width: 200 });
+            }
+          }
+          option.cols = [col]
+          this.dataList = option
+          option.data = data1.data;
+          var result = data1.data;
+          option.data = result;
+          let HModName = "Kf_ProductInBillList"
+          this.DisPlay_HideColumn(HModName, sessionStorage["HUserName"], option, this.dataList);
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+
+    //#region 鍚堣琛屾暟鎹鐞�
+    getSummaries(param) {
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = '鍚堣';
+          return;
+        }
+        const values = data.map(item => Number(item[column.property]));
+        if (this.totalNameList[index].totalRow) {
+          if (!values.every(value => isNaN(value))) {
+            sums[index] = values.reduce((prev, curr) => {
+              const value = Number(curr);
+              if (!isNaN(value)) {
+                return prev + curr;
+              } else {
+                return prev;
+              }
+            }, 0)
+
+          } else {
+            sums[index] = '';
+          }
+        }
+      }, 1000);
+      return sums;
+    },
+    //#endregion
+
+    //#endregion
+
+    //#region 鏂板
+    handleAddEdit() {
+      this.rowForm.hmainid = 0
+      this.editShow = true
+      this.openEdit = true
+    },
+    //#endregion
+
+    //#region 缂栬緫
+    handleEdit(row) {
+      this.rowForm = row
+      this.editShow = true
+      this.openEdit = true
+    },
+    editClose(val) {
+      this.open = val
+      this.editShow = false
+      this.openEdit = val
+      this.handleQuery()
+    },
+    //#endregion
+
+    //#region 鍒犻櫎
+    handleDelete() {
+      this.$modal.confirm('纭瑕佸垹闄ゅ悧锛屽垹闄ゅ悗涓嶈兘鎭㈠').then(() => {
+        if (this.rowForm.鐘舵�� == "鍒涘缓") {
+          axios.get(this.baseURL + "Kf_ProductInBillController/GetKf_ProductInBill_Delete_Json", {
+            params: { 'HInterID': this.rowForm.hmainid.toString(), 'HMaker': sessionStorage["HUserName"] }
+          }).then(response => {
+            if (response.data.count == 1) {
+              this.handleQuery()
+              this.$modal.msgSuccess("鍒犻櫎鎴愬姛")
+            } else {
+              this.$modal.msgError("閿欒:" + result.code + result.Message);
+            }
+          }).catch(error => {
+            this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+          });
+        } else {
+          this.$modal.msgError("姝ゆ潯鏁版嵁涓嶆槸鍒涘缓鐘舵��,鏃犳硶鍒犻櫎!");
+        }
+      }).catch(() => { })
+    },
+    //#endregion
+
+    //#region 瀹℃牳/鍙嶅鏍�
+    set_CheckBill(num, form) {
+      var InterID = form.hmainid || form.HInterID
+      //閫昏緫瀹℃牳鏂规硶
+      axios.get(this.baseURL + "/Kf_ProductInBillController/GetKf_ProductInBill_Check_Json", {
+        params: { "HInterID": InterID, "Type": num, "HMaker": sessionStorage["HUserName"] }
+      }).then(response => {
+        let result = response.data
+        if (result.count == 1) {
+          this.$modal.msgSuccess('鎿嶄綔鎴愬姛');
+          this.handleQuery();
+        }
+        else {
+          this.$modal.msgError("閿欒:" + result.code + result.Message,);
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 鍒楄缃�
+    handleRowHide() {
+      this.rowHideShow = true
+      this.openRowHide = true
+    },
+    rowSetClose(val) {
+      this.rowHideShow = false
+      this.tableShow = true
+      this.openRowHide = val
+      this.handleQuery()
+    },
+    DisPlay_HideColumn(HModName, user, option, dataOption) {
+      this.totalNameList = []
+      axios.get(this.baseURL + '/Xt_grdAlignment_WMES/grdAlignmentWMESList', {
+        params: {
+          "HModName": HModName,
+          "user": user,
+        },
+      }).then(res => {
+        let data1 = res.data
+        if (data1.data.length != 0) {
+          var dataCol = [];//鏁版嵁搴撴煡璇㈠嚭鐨勫垪鏁版嵁
+          var newCols = [[]];//瀵瑰簲鏁版嵁搴撳垪椤哄簭col
+          newCols[0].push(option.cols[0][0]);//鏀惧叆绗竴涓猚heckbox
+          dataCol = data1.data[0].HGridString.split(',');
+          //鍒楄缃垪鏁颁笌椤甸潰鍒楁暟鏄惁涓�鑷�
+          if (dataCol.length == option.cols[0].length - 1) {
+            //閬嶅巻瀵绘壘鍒楄缃搴斿垪鎸夐『搴忔彃鍏�
+            for (var j = 0; j < option.cols[0].length - 1; j++) {
+              for (var i = 0; i < option.cols[0].length - 1; i++) {
+                var dataCols = dataCol[j].split('|');
+                //閫夋嫨涓巇atacols鐩稿簲鍒楄繘琛屼慨鏀�
+                if (option.cols[0][i + 1]["field"] == dataCols[5]) {
+                  //闅愯棌鍒�
+                  if (dataCols[1] == 1) {
+                    option.cols[0][i + 1]["hide"] = true;
+                  }
+                  //璁剧疆鍒楀
+                  if (dataCols[3] > 0) {
+                    option.cols[0][i + 1]["width"] = dataCols[3];
+                  }
+                  //璁剧疆鍐呭瀛椾綋澶у皬
+                  if (data1.data[0].HFontSize != 0) {
+                    option.cols[0][i + 1]["style"] = "font-size:" + data1.data[0].HFontSize + "px;";
+                  } else {
+                    option.cols[0][i + 1]["style"] = "font-size:100%";
+                  }
+                  //鏄剧ず鍒�
+                  if (dataCols[1] == 0 && this.titleData.indexOf(option.cols[0][i + 1]["title"]) == -1) {
+                    option.cols[0][i + 1]["hide"] = false;
+                  }
+                  //缁熻鍒�
+                  if (dataCols[6] == 1) {
+                    option.cols[0][i + 1]["totalRow"] = true;
+                  } else {
+                    option.cols[0][i + 1]["totalRow"] = false;
+                  }
+                  //瀛椾綋鎵�鍦ㄤ綅缃�(宸� 灞呬腑 鍙�)
+                  switch (dataCols[2]) {
+                    case "L":
+                      option.cols[0][i + 1]["align"] = "left";
+                      break;
+                    case "M":
+                      option.cols[0][i + 1]["align"] = "center";
+                      break;
+                    case "R":
+                      option.cols[0][i + 1]["align"] = "right";
+                      break;
+                  }
+                  //璁剧疆琛ㄦ牸title灞炴�ф樉绀哄埆鍚�
+                  if (dataCols[4] != null && dataCols[4] != "") {
+                    option.cols[0][i + 1]["title"] = dataCols[4];
+                  }
+                  newCols[0].push(option.cols[0][i + 1]);
+                  break;
+                }
+              }
+            }
+            //閬嶅巻寰幆鍚庡垽鏂搴斿垪鏁版槸鍚︿竴鑷�
+            if (dataCol.length == newCols[0].length - 1) {
+              option.cols = newCols;
+              //鍙栨秷鍐荤粨鍒�
+              for (var i = 1; i < option.cols[0].length - 1; i++) {
+                if (option.cols[0][i + 1]["fixed"] != null) {
+                  option.cols[0][i + 1]["fixed"] = null;
+                }
+                else {
+                  break;
+                }
+              }
+              //鍐荤粨鍒�
+              if (data1.data[0].HFixCols != 0) {
+                for (var i = 0; i < data1.data[0].HFixCols; i++) {
+                  if (dataOption.cols[0].indexOf(option.cols[0][i + 1]["title"]) != -1) {
+                    data1.data[0].HFixCols += 1;
+                  }
+
+                  option.cols[0][i + 1]["fixed"] = "left";
+                }
+              }
+              //璁剧疆鍒楁帓搴�
+              for (var i = 1; i < option.cols[0].length; i++) {
+                if (data1.data[0].HSortFlag == "鏄�") {
+                  option.cols[0][i]["sort"] = true;
+                }
+                else {
+                  option.cols[0][i]["sort"] = false;
+                }
+              }
+            }
+          }
+          this.btList = option.cols[0]
+          this.btList.map(item => {
+            if (!item.hide) {
+              this.totalNameList.push(item)
+            }
+          })
+          if (data1.data[0].HPageSize == 0) {
+            this.pageSize = 50
+          } else {
+            this.pageSize = data1.data[0].HPageSize
+          }
+          this.tableData = option.data
+          this.tableShow = true
+          this.loading = false
+        } else {
+          this.btList = dataOption.cols[0]
+          this.btList.map(item => {
+            if (!item.hide) {
+              this.totalNameList.push(item)
+            }
+          })
+          this.tableData = dataOption.data
+          this.tableShow = true
+          this.loading = false
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    //#endregion
+
+    //#region 鎸夐挳璁剧疆
+    handleBtnHide() {
+      this.btnHideShow = true
+      this.openBtnHide = true
+    },
+    //#endregion
+
+    //#region 瀵煎嚭
+    handleExport() {
+      const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 灏嗘暟鎹浆鎹负宸ヤ綔琛�
+      const wb = this.$XLSX.utils.book_new(); // 鍒涘缓涓�涓柊鐨勫伐浣滅翱
+      this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 灏嗗伐浣滆〃娣诲姞鍒板伐浣滅翱涓紝骞跺懡鍚嶄负"Sheet1"
+      this.$XLSX.writeFile(wb, `Kf_ProductInBillList_${new Date().getTime()}.xlsx`); // 瀵煎嚭鏂囦欢      
+    },
+    //#endregion
+
+    //#region 鎵撳嵃
+    get_PrintReport() {
+      if (this.ids.length != 1) {
+        this.$modal.msgError("璇烽�夋嫨涓�琛屾暟鎹�")
+      } else if (this.rowForm.鐘舵�� != "宸插鏍�" && !this.defaintOperationByCompanyName()) {
+        this.$modal.msgError("鎵撳嵃澶辫触!鍘熷洜锛氬崟鎹姸鎬佷笉涓�'宸插鏍�'鐘舵��!!");
+      } else {
+        axios.get(this.baseURL + "/Kf_SellOutBill/CheckSellOutBill_IsExist", {
+          params: { "HInterID": this.rowForm.hmainid }
+        }).then(response => {
+          var result = response.data
+          if (result.count == 1) {
+            this.printListShow = true
+            this.openPrintList = true
+            // this.$router.push({ path:'/printList', query: { linterid: this.rowForm.hmainid,MyMsg:this.rowForm.hmainid,Type:'Kf_SellOutBillList' }})
+          } else {
+            this.$modal.msgError(result.code + result.Message)
+          }
+        }).catch(error => {
+          this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+        });
+
+
+      }
+      //  var content= ['../../BaseSet/SRM_OpenTmpList.html?linterid=' + data[0].hmainid.toString() + '&MyMsg=' + data[0].hmainid.toString() + '&Type=Kf_SellOutBillList', 'yes']
+    },
+    //#endregion
+
+    //#region 鏉$爜鏄庣粏
+    get_BarCodeDetail() {
+      // if (this.selectedRow.length !== 1) {
+      //   this.$message.warning('璇烽�夋嫨涓�琛屾暟鎹煡鐪嬫潯鐮佹槑缁嗭紒')
+      //   return
+      // }
+      this.barCodeDetailShow = true
+      this.$nextTick(() => {
+        this.$refs.barcodeDetail.open(this.rowForm)
+      })
+		},
+    //#endregion
+
+    //#region 閫�鍑�
+    close() {
+      // this.reset()
+      this.tableShow = true
+      this.openEdit = false
+      this.editShow = false
+      this.handleQuery()
+    },
+    //#endregion
+
+    //#region 鑾峰彇鍏徃鍚嶏紝鏍规嵁鍏徃杩涜瀹氬埗鍖栧紑鍙�
+    defaintOperationByCompanyName() {
+      var result = false;
+      axios.get(this.baseURL + '/Xt_getInfo/getCompanyName').then(response => {
+        var data1 = response.data
+        if (data1.count == 1) {
+          if (data1.data == "姘村姟") {
+            result = true;
+          }
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+      return result;
+    },
+    //#endregion
+  }
+};
+</script>
+<style>
+.xsckdBox .el-date-editor.el-input {
+  width: 100%;
+}
+</style>
diff --git a/src/views/sell/sellOut/sellOutBillEdit.vue b/src/views/sell/sellOut/sellOutBillEdit.vue
index 7731239..34f703f 100644
--- a/src/views/sell/sellOut/sellOutBillEdit.vue
+++ b/src/views/sell/sellOut/sellOutBillEdit.vue
@@ -468,9 +468,6 @@
     this.fetchData()
     this.getdata()
   },
-  beforeDestroy() {
-    this.$destroy()
-  },
   methods: {
     fetchData() {
       axios.get(this.baseURL + "/Web/GetOrganizations", {
@@ -634,10 +631,8 @@
       this.openRowHide = true
     },
     rowSetClose(val) {
-
       this.rowHideShow = false
       this.openRowHide = val
-      this.$destroy()
     },
 
     organizationChange(val) {
@@ -775,10 +770,23 @@
     //閫�鍑�
     close() {
       this.reset()
-
+      console.log(1111)
+      console.log(this.$route.path)
       if (!this.OperationType && !this.copyType) {
-        const obj = { path: "/sell/sellOut/sellOutBillEdit", name: "SellOutBillEdit" };
-        this.$tab.closePage(obj);
+        console.log(this.$route.path)
+        const obj = { fullPath: this.$route.path, path: this.$route.path, name: this.$route.name, };
+        this.$tab.closePage(obj).then(res => {
+          const latestView = res.visitedViews.slice(-1)[0]
+          if (latestView) {
+            this.$router.push(latestView.fullPath)
+          } else {
+            if (obj.name === 'Dashboard') {
+              this.$router.replace({ path: '/redirect' + obj.fullPath })
+            } else {
+              this.$router.push('/')
+            }
+          }
+        });
       } else {
         this.formShow = false
         this.$emit('editClose', false)
diff --git a/src/views/system/user/xtUserList.vue b/src/views/system/user/xtUserList.vue
index 2a2cec0..2672ee6 100644
--- a/src/views/system/user/xtUserList.vue
+++ b/src/views/system/user/xtUserList.vue
@@ -96,7 +96,7 @@
       </el-collapse>
     </el-form>
     <el-row :gutter="10" class="mb8" style="margin-top: 10px;">
-      <!-- <el-col :span="1.5">
+      <el-col :span="1.5">
         <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAddEdit(OperationType = 1)"
           id="btn-Add">鏂板</el-button>
       </el-col>
@@ -106,8 +106,8 @@
       </el-col>
       <el-col :span="1.5">
         <el-button type="primary" icon="el-icon-share" size="mini" :disabled="single"
-          @click="handleEdit(row = rowForm, OperationType = 2)">鏉冮檺</el-button>
-      </el-col> -->
+          @click="openQuery = true">鏉冮檺</el-button>
+      </el-col>
       <el-col :span="1.5">
         <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="single" @click="handleDelete">鍒犻櫎
         </el-button>
@@ -142,9 +142,12 @@
         <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" />
       </el-dialog>
       <!-- 缂栬緫 -->
-      <el-dialog title="鏂板/b缂栬緫鐢ㄦ埛" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox" @close="close">
-        <edit :OperationType=OperationType :linterid=this.rowForm.HEmpID :HSouceBillType=this.rowForm.HSourceBillType
-          :copyType="copyType" @editCloseGy="editGyClose" v-if="editShow" />
+      <el-dialog title="鏂板/缂栬緫鐢ㄦ埛" :visible.sync="openEdit" width="1480px" append-to-body class="xsckdBox" @close="close">
+        <edit :OperationType=OperationType :linterid=this.rowForm.鐢ㄦ埛缂栫爜 :HSouceBillType=this.rowForm.HSourceBillType
+          :copyType="copyType" @editClose="editClose" v-if="editShow" />
+      </el-dialog>
+      <el-dialog title="鐢ㄦ埛鏉冮檺" :visible.sync="openQuery" width="1480px" append-to-body class="xsckdBox">
+        <Query />
       </el-dialog>
     </div>
   </div>
@@ -153,16 +156,19 @@
 <script>
 import axios from 'axios'
 import RowSettings from '@/views/component/rowSettings'
-import Edit from '@/views/basic/production/gySourceEdit.vue'
+import Edit from '@/views/system/user/xtUserListEdit.vue'
+import Query from '@/views/system/user/xtUserRightQuery.vue'
+
 
 export default {
   name: 'XtUserList',
-  components: { RowSettings, Edit },
+  components: { RowSettings, Edit, Query },
   props: {
     openPage: { type: String, },
   },
   data() {
     return {
+      openQuery: false,
       activeSeach: '',
       HModName: 'Xt_UserList',
       editShow: false,
@@ -360,7 +366,7 @@
         if (data1.code == 1) {
           this.total = data1.data.length;
           for (var i = 1; i < this.btList.length; i++) {
-            this.btResList.push({ ColmCols: this.btList[i].field})
+            this.btResList.push({ ColmCols: this.btList[i].field })
           }
           var col = [];
           col = this.btList
@@ -501,7 +507,7 @@
           this.tableData = this.getPage(this.page, this.allTableData)//鏃犲垎椤垫帴鍙e垎椤�
           this.tableShow = true
           this.loading = false
-        }        
+        }
       }).catch(error => {
         this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
       });
@@ -535,7 +541,7 @@
     // 澶氶�夋閫変腑鏁版嵁
     handleSelectionChange(selection) {
       // this.rowForm = {}
-      this.ids = selection.map(item => item.HEmpID)
+      this.ids = selection.map(item => item.鐢ㄦ埛缂栫爜)
       this.single = selection.length != 1
       this.multiple = !selection.length
       if (!this.single) {
@@ -699,28 +705,28 @@
       })
     },
     //鍏抽棴缂栬緫椤甸潰
-    editGyClose(val) {
+    editClose(val) {
       this.editShow = false
       this.openEdit = false
-      this.multiple = true,
-        this.getList()
+      this.multiple = true
+      this.getList()
     },
     /** 鍒犻櫎鎸夐挳鎿嶄綔 */
     handleDelete() {
       this.$modal.confirm('纭瑕佸垹闄ゅ悧锛屽垹闄ゅ悗涓嶈兘鎭㈠').then(() => {
-         var HCzybm = this.rowForm.鐢ㄦ埛缂栫爜.toString();
-          axios.get(this.baseURL + "/Xt_User/DeltetUser", {
-            params: { "HCzybm": HCzybm }
-          }).then(response => {
-            if (response.data.count == 1) {
-              this.getList()
-              this.$modal.msgSuccess("鍒犻櫎鎴愬姛")
-            } else {
-              this.$modal.msgError("閿欒:" + result.code + result.Message);
-            }
-          }).catch(error => {
-            this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
-          });
+        var HCzybm = this.rowForm.鐢ㄦ埛缂栫爜.toString();
+        axios.get(this.baseURL + "/Xt_User/DeltetUser", {
+          params: { "HCzybm": HCzybm }
+        }).then(response => {
+          if (response.data.count == 1) {
+            this.getList()
+            this.$modal.msgSuccess("鍒犻櫎鎴愬姛")
+          } else {
+            this.$modal.msgError("閿欒:" + result.code + result.Message);
+          }
+        }).catch(error => {
+          this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+        });
       }).catch(() => { })
     },
     //瀵煎嚭
@@ -729,16 +735,14 @@
       const wb = this.$XLSX.utils.book_new(); // 鍒涘缓涓�涓柊鐨勫伐浣滅翱
       this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 灏嗗伐浣滆〃娣诲姞鍒板伐浣滅翱涓紝骞跺懡鍚嶄负"Sheet1"
       this.$XLSX.writeFile(wb, `xtUsetList_${new Date().getTime()}.xlsx`); // 瀵煎嚭鏂囦欢      
-    },   
+    },
     getPage(page, list) {
       let sindex = (parseInt(page) - 1) * this.pageSize
       let eindex = parseInt(page) * this.pageSize
       let newList = list.slice(sindex, eindex)
-      console.log(newList)
       return newList
     },
     currentPage(val) {
-      console.log(val)
       this.page = val.page
       setTimeout(() => {
         this.tableData = this.getPage(this.page, this.allTableData)
diff --git a/src/views/system/user/xtUserListEdit.vue b/src/views/system/user/xtUserListEdit.vue
new file mode 100644
index 0000000..7053293
--- /dev/null
+++ b/src/views/system/user/xtUserListEdit.vue
@@ -0,0 +1,695 @@
+<template>
+  <div v-loading="formLoading" v-if="formShow">
+    <div style=" margin-bottom: 10px; border-bottom: 1px solid #f6f6f6;">
+      <el-button type="primary" @click="submitForm">淇� 瀛�</el-button>
+      <el-button type="primary" @click="close">閫� 鍑�</el-button>
+      <!-- <el-button @click="cancel">鍙� 娑�</el-button> -->
+    </div>
+    <div style="margin: 10px; font-size: 28px; font-weight: bold; text-align: center;">鏂板/缂栬緫鐢ㄦ埛淇℃伅</div>
+    <el-form ref="form" :model="form" :rules="rules" label-width="128px">
+      <el-tabs v-model="activeName" type="card">
+        <el-tab-pane label="鍩烘湰淇℃伅" name="first">
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="缂栫爜" prop="Czybm">
+                <el-input v-model="form.Czybm" placeholder="璇疯緭鍏ョ紪鐮�" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="鐢ㄦ埛鍚�" prop="Czymc">
+                <el-input v-model="form.Czymc" placeholder="璇疯緭鍏ョ敤鎴峰悕" autocomplete="new-Czymc" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀵嗙爜" prop="Czmm">
+                <el-input type="password" v-model="form.Czmm" placeholder="璇疯緭鍏ュ瘑鐮�" autocomplete="new-password" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="纭瀵嗙爜" prop="Czyyz">
+                <el-input type="password" v-model="form.Czyyz" placeholder="璇风‘璁ゅ瘑鐮�" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲鑱屽憳" prop="HEmpName">
+                <el-input v-model="form.HEmpName" placeholder="璇疯緭鍏ュ搴旇亴鍛�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="閽夐拤ID鍙�" prop="HDingDingUserID">
+                <el-input v-model="form.HDingDingUserID" placeholder="璇疯緭鍏ラ拤閽塈D鍙�" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="IC鍗″彿" prop="HICNumber">
+                <el-input v-model="form.HICNumber" placeholder="璇疯緭鍏C鍗″彿" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-form-item label="璇存槑" prop="Explain">
+              <el-input type="textarea" v-model="form.Explain" placeholder="璇疯緭鍏ヨ鏄�" />
+            </el-form-item>
+          </el-row>
+        </el-tab-pane>
+        <el-tab-pane label="瀵瑰簲閲戣澏淇℃伅" name="second">
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲缁勭粐" prop="HOrgID">
+                <el-select v-model="form.HOrgID" placeholder="璇烽�夋嫨瀵瑰簲缁勭粐" @change="organizationChange"
+                  :disabled="zzSelDis">
+                  <el-option v-for="(item, index) in organizationList" :key="index" :label="item.Name" :value="item.ID">
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲K3鐢ㄦ埛" prop="HK3UserName">
+                <el-input v-model="form.HK3UserName" placeholder="璇疯緭鍏ュ搴擪3鐢ㄦ埛" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲鐝粍" prop="HGroupName">
+                <el-input v-model="form.HGroupName" placeholder="璇疯緭鍏ュ搴旂彮缁�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲淇濈" prop="HKeeper">
+                <el-input v-model="form.HKeeper" placeholder="璇疯緭鍏ュ搴斾繚绠�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲楠屾敹" prop="HSecManager">
+                <el-input v-model="form.HSecManager" placeholder="璇疯緭鍏ュ搴旈獙鏀�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲鐢熶骇璧勬簮" prop="HSourceName">
+                <el-input v-model="form.HSourceName" placeholder="璇疯緭鍏ュ搴旂敓浜ц祫婧�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲涓氬姟鍛�" prop="HSellMan">
+                <el-input v-model="form.HSellMan" placeholder="璇疯緭鍏ュ搴斾笟鍔″憳" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲閮ㄩ棬" prop="HDept">
+                <el-input v-model="form.HDept" placeholder="璇疯緭鍏ュ搴旈儴闂�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="妫�楠屽憳" prop="HCheckEmpName">
+                <el-input v-model="form.HCheckEmpName" placeholder="璇疯緭鍏ユ楠屽憳" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲浠撳簱" prop="HWHName">
+                <el-input v-model="form.HWHName" placeholder="璇疯緭鍏ュ搴斾粨搴�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="璋冨叆浠撳簱" prop="HSCWHName">
+                <el-input v-model="form.HSCWHName" placeholder="璇疯緭鍏ヨ皟鍏ヤ粨搴�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="宸ヤ綔涓績" prop="HWorkCenterName">
+                <el-input v-model="form.HWorkCenterName" placeholder="璇疯緭鍏ュ伐浣滀腑蹇�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲渚涘簲鍟�" prop="HSupName">
+                <el-input v-model="form.HSupName" placeholder="璇疯緭鍏ュ搴斾緵搴斿晢" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲宸ュ簭" prop="HProcName">
+                <el-input v-model="form.HProcName" placeholder="璇疯緭鍏ュ搴斿伐搴�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀹㈡埛" prop="HCusName">
+                <el-input v-model="form.HCusName" placeholder="璇疯緭鍏ュ鎴�" disabled>
+                  <el-button slot="append" icon="el-icon-search" @click="openDataDialog(4)"></el-button>
+                </el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-tab-pane>
+        <el-tab-pane label="CLOUD璐﹀彿璁剧疆" name="third">
+          <el-row>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲CLOUD璐﹀彿" prop="HCloudUserName">
+                <el-input v-model="form.HCloudUserName" placeholder="璇疯緭鍏ュ搴擟LOUD璐﹀彿" />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item label="瀵瑰簲CLOUD瀵嗙爜" prop="HCloudUserPsd">
+                <el-input type="password" v-model="form.HCloudUserPsd" placeholder="璇疯緭鍏ュ搴擟LOUD瀵嗙爜" />
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-tab-pane>
+      </el-tabs>
+      <el-table :data="editData" ref="editData" style="width: 100%" height="300" width="100%"
+        @selection-change="handleTableZbEdit" border>
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column align="center" label="瑙掕壊" prop="瑙掕壊" />
+        <el-table-column align="center" label="绾у埆" prop="绾у埆" />
+        <el-table-column align="center" label="璇存槑" prop="璇存槑" />
+      </el-table>
+    </el-form>
+    <!-- 閮ㄩ棬寮圭獥 -->
+    <el-dialog :title="dialogTitle" :visible.sync="openData" width="1280px" append-to-body>
+      <Dept @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="deptShow" />
+      <Warehouse @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="warehouseShow" />
+      <Material @deptEmitDb="dbEmitData" @deptEmit="emitData" v-if="materialShow" />
+      <GyEmployee @deptEmitDb="dbEmitData" @deptEmit="emitData" :openPage="HModName" v-if="gyEmployeeShow" />
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="deptClickSub">纭� 瀹�</el-button>
+        <el-button @click="deptClose">鍙� 娑�</el-button>
+      </div>
+    </el-dialog>
+    <el-dialog title="闅愯棌鍒楄缃�" :visible.sync="openRowHide" width="816px" append-to-body>
+      <RowSettings :colName="btResList" :HModName="HModName" @rowEditClose="rowSetClose" v-if="rowHideShow" />
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import axios from 'axios'
+import Dept from '@/views/component/dept'
+import Warehouse from '@/views/component/warehouse'
+import Material from '@/views/component/material'
+import RowSettings from '@/views/component/rowSettings'
+import GyEmployee from '@/views/basic/gyEmployee/gyEmployee.vue'
+
+export default {
+  name: 'XtUserListEdit',
+  components: { Dept, Warehouse, Material, RowSettings, GyEmployee },
+  props: {
+    OperationType: { type: Number, },
+    linterid: {},
+    HSouceBillType: { type: String, },
+    propsData: { type: String, },
+    copyType: { type: Number, },
+  },
+  data() {
+    const equalToPassword = (rule, value, callback) => {
+      if (this.form.Czmm !== value) {
+        callback(new Error("涓ゆ瀵嗙爜涓嶄竴鏍�!"))
+      } else {
+        callback()
+      }
+    }
+    const equalToHWHName = (rule, value, callback) => {
+      if (this.form.HWHName&&this.form.HSCWHName&&(this.form.HWHName == this.form.HSCWHName)) {
+        callback(new Error("瀵瑰簲浠撳簱鍜岃皟鍏ヤ粨搴撲笉鑳界浉鍚岋紒"))
+      } else {
+        callback()
+      }
+    }
+    return {
+      HModName: "Xt_UserListEdit",
+      formShow: false,
+      temp: undefined,
+      formLoading: true,
+      zzSelDis: false,
+      rowHideShow: false,
+      openRowHide: false,
+      hPriceTypeList: ['鎴愭湰浠�', '缁撶畻浠�'],
+      zbIndex: null,
+      zbSelForm: {},//瀛愯〃閫変腑鏁版嵁
+      dialogTypeNum: null,//閮ㄩ棬寮圭獥1锛屼粨搴撳脊绐�2
+      deptShow: false,//閮ㄩ棬鏁版嵁缁勪欢
+      warehouseShow: false,//浠撳簱鏁版嵁缁勪欢
+      materialShow: false,//鐗╂枡鏁版嵁缁勪欢
+      gyEmployeeShow: false,//閿�鍞憳鏁版嵁缁勪欢
+      deptform: {},//寮圭獥閫変腑鏁版嵁
+      openData: false,//鏁版嵁寮圭獥
+      dialogTitle: '',
+      organizationList: JSON.parse(sessionStorage.getItem('organizationList')),//缁勭粐鍒楄〃
+      subDisabled: false,//缂栬緫椤甸潰淇濆瓨鎸夐挳鏄惁绂佺敤(true绂佺敤锛宖alse鍙敤)
+      // OperationType: this.$route.query.OperationType,//淇濆瓨绫诲瀷锛堟柊澧�1淇敼3锛�
+      HInterID: null,
+      baseURL: process.env.VUE_APP_BASE_API,
+      checkedSysZb: [],
+      editData: [],//瑙掕壊瀛愯〃
+      editBtData: [],//瀛愯〃琛ㄥご
+      activeName: 'first',
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 鏄惁鏄剧ず寮瑰嚭灞�
+      open: false,
+      // 鏃ユ湡鑼冨洿
+      dateRange: [],
+      // 鏌ヨ鍙傛暟
+      queryParams: {
+        HBillNo: '',
+        HInitTimeCycle: 29,
+        HProjectNumber: '',
+        HCusID: null,
+        HMaterNumber: '',
+        HMaterName: '',
+        ColName1: '',
+        ColName2: '',
+        ColName: '',
+        Comparator1: '',
+        Comparator2: '',
+        Comparator: '',
+        ColContent1: '',
+        ColContent2: '',
+        ColContent: '',
+      },
+      // 鏄剧ず鎼滅储鏉′欢
+      showSearch: true,
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 闈炲崟涓鐢�
+      single: true,
+      // 闈炲涓鐢�
+      multiple: true,
+      // 閬僵灞�
+      loading: true,
+      btResList: [],
+      // 琛ㄥ崟鍙傛暟
+      form: {},
+      // 琛ㄥ崟鏍¢獙
+      rules: {
+        Czybm: [
+          { required: true, message: "缂栫爜涓嶈兘涓虹┖!", trigger: "blur" }
+        ],
+        Czybm: [
+          { required: true, message: "缂栫爜涓嶈兘涓虹┖!", trigger: "blur" }
+        ],
+        Czmm: [
+          { required: true, message: "鐢ㄦ埛鍚嶄笉鑳戒负绌�!", trigger: "blur" }
+        ],
+        Czyyz: [
+          { required: true, message: "纭瀵嗙爜涓嶈兘涓虹┖!", trigger: "blur" },
+          { required: true, validator: equalToPassword, trigger: "blur" }
+        ],
+        HWHName: [
+          { validator: equalToHWHName, trigger: "blur" }
+        ],
+        HSCWHName: [
+          { validator: equalToHWHName, trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getdata()
+  },
+  methods: {
+    getdata() {
+      this.formShow = false
+      this.formLoading = true
+      this.getUserGroup()
+      if ((this.OperationType == 1 && this.copyType != 1) || (!this.OperationType && !this.copyType)) {
+        this.handleAdd()
+      } else if (this.OperationType == 3 || this.copyType == 1) {
+        this.$nextTick(() => {
+          this.handleUpdate()
+        })
+      }
+    },
+    getUserGroup() {
+      //瑙掕壊鍒楄〃
+      axios.get(this.baseURL + '/Xt_UserGroup/list', {
+        params: {
+          sWhere: '',
+        },
+      }).then(response => {
+        let data1 = response.data
+        if (data1.code == 1) {
+          this.editData = data1.data
+          this.total = data1.data.length;
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    get_DisplayUserGroupInfoList() {
+      var sWhere = "and UserId='" + this.linterid + "'";
+      axios.get(this.baseURL + '/Xt_UserGroup/UserGroupInfoList', {
+        params: {
+          sWhere: sWhere,
+        },
+      }).then(response => {
+        console.log(response)
+        let data1 = response.data
+        if (data1.count == 1) {
+          if (data1.data.length > 0)
+            if (this.editData.length > 0) {
+              this.editData.forEach(row => {
+                if (data1.data.some(selectedRow => selectedRow.GroupId === row.HGroupID)) {
+                  this.$refs.editData.toggleRowSelection(row)
+                }
+              })
+            }
+        }
+      }).catch(error => {
+        console.log(error)
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    // 鑾峰彇鍙傛暟_浼犻�掔殑JSON鏍煎紡鍙傛暟
+    getUrlVars_JSON() {
+      var datajson;
+      var str = this.propsData; //鑾峰彇閾炬帴涓紶閫掔殑鍙傛暟
+      var arr = str.substring(str.lastIndexOf("=") + 1);
+      datajson = JSON.parse(decodeURI(arr));
+      return datajson;
+    },
+    //鏍规嵁涓诲唴鐮佷笌瀛愬唴鐮佽幏鍙栨簮鍗曢攢鍞鍗曟暟鎹�
+    getPushSourceBillInit(HSourceInterID, HSourceEntryID) {
+      axios.get(this.baseURL + '/Xs_SeOrderBill/loadXs_SeOrderBill_Push', {
+        params: {
+          "HInterID": HSourceInterID
+          , "HSubID": HSourceEntryID
+        },
+      }).then(response => {
+        let result = response.data
+        if (result.code == 1) { // 璇存槑楠岃瘉鎴愬姛浜嗭紝
+          this.temp = result.data[0];
+        } else {
+          this.temp = result.data;
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    handleRowHide() {
+      this.rowHideShow = true
+      this.openRowHide = true
+    },
+    rowSetClose(val) {
+      this.rowHideShow = false
+      this.openRowHide = val
+    },
+
+    organizationChange(val) {
+      // let options=undefined
+      //  this.form=this.organizationList.find(option => option.ID === val)?.Name || '';
+    },
+    //閮ㄩ棬寮圭獥璧嬪��
+    dbEmitData(deptRow, num) {
+      // num=1閮ㄩ棬 num=2鍑哄簱浠撳簱
+      if (deptRow.HItemID) {
+        if (num == 1) {
+          this.form.HDeptName = deptRow.閮ㄩ棬鍚嶇О
+          this.form.HDeptID = deptRow.HItemID
+          this.form.HManagerName = deptRow.璐熻矗浜�
+          this.deptShow = false
+          this.openData = false
+        } else if (num == 2) {
+          this.editData[this.zbIndex].HWHID = deptRow.HItemID;
+          this.editData[this.zbIndex].鍙戣揣浠撳簱 = deptRow.浠撳簱鍚嶇О;
+          this.warehouseShow = false
+          this.openData = false
+        } else if (num == 3) {
+          this.editData[this.zbIndex].HMaterID = deptRow.HItemID;
+          this.editData[this.zbIndex].鐗╂枡浠g爜 = deptRow.鐗╂枡浠g爜;
+          this.editData[this.zbIndex].鐗╂枡鍚嶇О = deptRow.鐗╂枡鍚嶇О;
+          this.editData[this.zbIndex].HUnitID = deptRow.HUnitID;
+          this.editData[this.zbIndex].瑙勬牸鍨嬪彿 = deptRow.瑙勬牸鍨嬪彿
+          this.editData[this.zbIndex].璁¢噺鍗曚綅 = deptRow.璁¢噺鍗曚綅鍚嶇О
+          this.editData[this.zbIndex].HTaxPrice = deptRow.鍚◣鎴愭湰浠�
+          this.editData[this.zbIndex].HTaxRate = deptRow.榛樿绋庣巼
+          this.materialShow = false
+          this.openData = false
+        } else if (num == 4) {
+          this.form.HEmpName = deptRow.鑱屽憳鍚嶇О
+          this.form.HEmpID = deptRow.HItemID
+          this.gyEmployeeShow = false
+          this.openData = false
+        }
+      } else {
+        this.$modal.msgError("璇烽�夋嫨鍗曟潯鏁版嵁!");
+      }
+
+    },
+    emitData(deptRow, num) {
+      this.dialogTypeNum = num
+      this.deptform = deptRow
+    },
+    deptClickSub() {
+      this.dbEmitData(this.deptform, this.dialogTypeNum)
+      this.deptform = {}
+    },
+    deptClose() {
+      this.deptform = {}
+      this.openData = false
+    },
+
+    //閿�鍞嚭搴撳崟鏂板缂栬緫琛ㄥ崟鍒濆鍖�
+    reset() {
+      this.form = {
+        Czybm: '',
+        Czymc: '',
+        Czmm: '',
+        Czyyz: '',
+        Explain: '',
+        HEmpID: 0,
+        HEmpName: '',
+        HK3UserName: '',
+        HK3UserID: 0,
+        HKeeper: '',
+        HKeeperID: 0,
+        HSecManager: '',
+        HSecManagerID: 0,
+        HSellManID: 0,
+        HSellMan: '',
+        HDept: '',
+        HDeptID: 0,
+        HWHName: '',
+        HWhID: 0,
+        HSCWHName: '',
+        HSCWHID: 0,
+        HSupName: '',
+        HSupID: 0,
+        HCloudUserName: '',
+        HCloudUserPsd: '',
+        HOrgID: sessionStorage["OrganizationID"] - 0,
+        HProcID: 0,
+        HProcName: '',
+        HCusID: 0,
+        HCusName: '',
+        HGroupID: 0,
+        HGroupName: '',
+        HSourceID: 0,
+        HSourceName: '',
+        HCheckEmpID: 0,
+        HCheckEmpName: '',
+        HWorkCenterID: 0,
+        HWorkCenterName: '',
+        HICNumber: '',
+        HDingDingUserID: 0,
+      }
+      this.editData = []
+      this.editBtData = []
+      this.ids = []
+      this.subDisabled = false
+      this.activeName = 'first'
+      this.resetForm("form");
+    },
+    //閫�鍑�
+    close() {
+      this.reset()
+      if (!this.OperationType && !this.copyType) {
+        const obj = { path: "/system/user/xtUserListEdit", name: "xtUserListEdit" };
+        this.$tab.closePage(obj);
+      } else {
+        this.formShow = false
+        this.$emit('editClose', false)
+      }
+    },
+    /** 鏂板鎸夐挳鎿嶄綔 */
+    handleAdd() {
+      this.reset()
+      this.formShow = true
+      this.formLoading = false
+
+    },
+    /** 淇敼鎸夐挳鎿嶄綔 */
+    handleUpdate() {
+      this.reset()
+      let rowHmainid = this.linterid
+      axios.get(this.baseURL + "/Xt_User/EditUser", {
+        params: { 'HID': rowHmainid }
+      }).then(response => {
+        if (response.data.code == 1) {
+          var result = response.data
+          var data = result.data.h_v_IF_UserList_Edit[0]
+          this.form.Czybm = data.鐢ㄦ埛缂栫爜
+          this.form.Czymc = data.鐢ㄦ埛鍚嶇О
+          this.form.Czmm = data.瀵嗙爜
+          this.form.Czyyz = data.瀵嗙爜
+          this.form.Explain = data.璇存槑
+          this.form.HEmpID = data.HEmpID
+          this.form.HEmpName = data.瀵瑰簲鑱屽憳
+          this.form.HK3UserName = data.HK3UserID
+          this.form.HK3UserID = data.HK3UserID
+          this.form.HKeeper = data.HKeeper
+          this.form.HKeeperID = data.HKeeperID
+          this.form.HSecManager = data.HSecManager
+          this.form.HSecManagerID = data.HSecManagerID
+          this.form.HSellManID = data.HSellManID
+          this.form.HSellMan = data.HSellMan
+          this.form.HDept = data.HDept
+          this.form.HDeptID = data.HDeptID
+          this.form.HWHName = data.HWHName
+          this.form.HWhID = data.HWhID
+          this.form.HSCWHName = data.HSCWHName
+          this.form.HSCWHID = data.HSCWHID
+          this.form.HSupName = data.HSupName
+          this.form.HSupID = data.HSupID
+          this.form.HCloudUserName = data.瀵瑰簲CLOUD璐﹀彿
+          this.form.HCloudUserPsd = data.HCloudUserPsd
+          this.form.HOrgID = data.HUSEORGID
+          this.form.HProcID = data.HProcID
+          this.form.HProcName = data.宸ュ簭
+          this.form.HCusID = data.HCusID
+          this.form.HCusName = data.瀹㈡埛
+          this.form.HGroupID = data.HGroupID
+          this.form.HGroupName = data.鐝粍
+          this.form.HSourceID = data.HSourceID
+          this.form.HSourceName = data.鐢熶骇璧勬簮
+          this.form.HCheckEmpID = data.HCheckEmpID
+          this.form.HCheckEmpName = data.妫�楠屽憳
+          this.form.HWorkCenterID = data.HWorkCenterID
+          this.form.HWorkCenterName = data.宸ヤ綔涓績
+          this.form.HICNumber = data.IC鍗″彿
+          this.form.HDingDingUserID = data.閽夐拤ID鍙�
+          this.formShow = true
+          this.get_DisplayUserGroupInfoList()
+          this.formLoading = false
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+
+    /** 缂栬緫椤靛瓙琛ㄥ閫夋閫変腑鏁版嵁 */
+    handleTableZbEdit(selection) {
+      console.log(selection)
+      this.checkedSysZb = selection
+      // this.editData.forEach(row => {
+      //   row.AuthorityHID = this.checkedSysZb.some(selectedRow => selectedRow.GroupId === row.HGroupID) ? 1 : 0;
+      // });
+    },
+    // 缂栬緫鎻愪氦淇濆瓨
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+          console.log(this.form)
+        if (valid) {
+         
+          var num = [];
+          var Sav = ''
+          if (this.OperationType == 1) {
+            Sav = 'Add'
+          } else if (this.OperationType == 3) {
+            Sav = "Update"
+          }
+
+          for (var i = 0; i < this.checkedSysZb.length; i++) {
+            num.push(this.checkedSysZb[i].HGroupID)
+          }
+           console.log(num,Sav)
+          var sSubStr = num.toString() == "" ? "-1" : num.toString();
+          var sMainStr = JSON.stringify(this.form) + ';' + Sav + ';' + sSubStr;        
+          axios({
+            method: 'post',
+            url: this.baseURL + "/Xt_User/SaveUser",
+            data: {
+              'msg': sMainStr
+            },
+          }).then(response => {
+            if (response.data.count == 1) {
+              this.formShow = false
+              this.$emit('editClose', false)
+              this.$modal.msgSuccess(response.data.Message);
+            }
+          }).catch(error => {
+            this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+          });
+        }
+      });
+    },
+    showReset() {
+      this.deptShow = false
+      this.warehouseShow = false
+      this.materialShow = false
+      this.gyEmployeeShow = false
+    },
+    //  鎵撳紑鏁版嵁鍒楄〃寮圭獥
+    openDataDialog(num, row) {
+      //num1閮ㄩ棬锛�2鍑哄簱浠撳簱锛�3鐗╂枡锛�4閿�鍞憳
+      if (row) {
+        this.zbIndex = row.index - 1
+      }
+      this.showReset()
+      if (num == 1) {
+        this.dialogTitle = '閮ㄩ棬鍒楄〃'
+        this.deptShow = true
+        this.openData = true
+      } else if (num == 2) {
+        this.dialogTitle = '鍑哄簱浠撳簱鍒楄〃'
+        this.warehouseShow = true
+        this.openData = true
+      } else if (num == 3) {
+        this.dialogTitle = '鐗╂枡鍒楄〃'
+        this.materialShow = true
+        this.openData = true
+      } else if (num == 4) {
+        this.dialogTitle = '閿�鍞憳鍒楄〃'
+        this.gyEmployeeShow = true
+        this.openData = true
+      }
+    },
+  }
+};
+</script>
+<style>
+.xsckdBox .el-date-editor.el-input {
+  width: 100%;
+}
+</style>
diff --git a/src/views/system/user/xtUserRightQuery.vue b/src/views/system/user/xtUserRightQuery.vue
new file mode 100644
index 0000000..f95e5fa
--- /dev/null
+++ b/src/views/system/user/xtUserRightQuery.vue
@@ -0,0 +1,342 @@
+<template>
+  <div style="padding: 10px;">
+    <el-row>
+      <el-button type="primary" @click="handleSaver">淇濆瓨</el-button>
+      <el-button type="primary" @click="close">閫�鍑�</el-button>
+    </el-row>
+    <el-row>
+      <el-col :span="8" style="padding-right:5px ;">
+        <el-tree :data="treeOptions" :props="defaultProps" :expand-on-click-node="false"
+          :filter-node-method="filterNode" ref="tree" node-key="id" :default-expand-all="false" highlight-current
+          @node-click="handleNodeClick" />
+      </el-col>
+      <el-col :span="8" style="box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04)">
+        <el-row style="margin-top: 10px;">
+          <el-radio-group v-model="HSouceBillType" @input="typeInput">
+            <el-radio-button label="yh">鐢ㄦ埛</el-radio-button>
+            <el-radio-button label="js">瑙掕壊</el-radio-button>
+          </el-radio-group>
+        </el-row>
+        <div class="btnQueryBox">
+          <div style="flex: 1;">
+            <el-button type="success" size="mini" icon="refresh" @click="getList">鍒锋柊</el-button>
+            <el-button type="success" size="mini" icon="search" @click="handleNodeClick">鏌ョ湅</el-button>
+          </div>
+          <div>
+            <el-button icon="el-icon-download" size="mini" title="瀵煎嚭" @click="handleExport"></el-button>
+          </div>
+        </div>
+        <div class="tableBox" v-loading="loading">
+          <el-table :data="tableData" ref="tableData" max-height="750" @selection-change="handleSelectionChange" border
+            v-if="tableShow">
+            <template v-for="(item, index) in btList">
+              <el-table-column type="selection" width="55" align="center" :fixed="item.fixed"
+                v-if="item.type == 'checkbox'" :key="index" />
+              <el-table-column :align="item.align" :prop="item.field" :label="item.title" :width="item.width"
+                :key="item.sorderid" v-else-if="!item.hide && item.type != 'checkbox'" :sortable="item.sort"
+                show-overflow-tooltip :fixed="item.fixed">
+                <template slot-scope="{row,  column }">
+                  <el-checkbox v-model="checked" v-if="item.type == 'checkbox'"></el-checkbox>
+                  <div :style="item.style">{{ row[column.label] }}</div>
+                </template>
+              </el-table-column>
+            </template>
+          </el-table>
+          <pagination v-show="total > 0" :total="total" :page.sync="page" :limit.sync="pageSize" :pageSizes="pageSizes"
+            @pagination="currentPage" />
+        </div>
+      </el-col>
+      <el-col :span="8" style="padding-left: 10px;">
+        <el-table :data="queryData" ref="queryMultipleTable" max-height="800" @selection-change="handleQueryChange"
+          border v-if="tableQueryShow">
+          <el-table-column type="selection" width="55" prop="AuthorityID" align="center" />
+          <el-table-column align="center" prop="AuthorityID" label="鏄惁鏉冮檺" show-overflow-tooltip>
+            <template slot-scope="scope">
+              <span style="color: green;" v-if="scope.row.AuthorityID == 1">鏄�</span>
+              <span v-else-if="scope.row.AuthorityID == 0">鍚�</span>
+            </template>
+          </el-table-column>
+          <el-table-column align="center" prop="gnms" label="鍔熻兘璇存槑" show-overflow-tooltip />
+        </el-table>
+      </el-col>
+    </el-row>
+  </div>
+</template>
+
+<script>
+import axios from 'axios'
+export default {
+  name: 'XtUserRightQuery',
+  components: {},
+  props: {
+    openPage: { type: String, },
+  },
+  data() {
+    return {
+      HModName: 'Xt_UserRightQuery',
+      selQueryRows: [],
+      nodeData: {},
+      linterid: '',
+      HSouceBillType: 'yh',
+      queryData: [],
+      tableQueryShow: false,
+      //鏍戠粨鏋�
+      treeOptions: [],
+      defaultProps: {
+        children: "children",
+        label: "title"
+      },
+      tableShow: true,
+      sGnbm: '',
+      organizationList: JSON.parse(sessionStorage.getItem('organizationList')),//缁勭粐鍒楄〃
+      baseURL: process.env.VUE_APP_BASE_API,
+      rowForm: {},
+      // 寮瑰嚭灞傛爣棰�
+      title: "",
+      // 閫変腑鏁扮粍
+      ids: [],
+      // 閬僵灞�
+      loading: true,
+      tyResList: [],//鍒楄〃锛堟帴鍙f暟鎹級
+      btList: [],//琛ㄥご鍒楄〃鏄剧ず
+      btResList: [],
+      tableData: [],//鍒楄〃(鍒嗛〉鏄剧ず)
+      allTableData: [],
+      pageSizes: [50, 100, 500, 5000, 50000],
+      page: 1,
+      pageSize: 0,
+      total: 0,
+    };
+  },
+  created() {
+    this.getTreeselect()
+    this.getList()
+  },
+  methods: {
+    typeInput() {
+      this.tableShow = false
+      this.loading = true
+      this.ids = []
+      this.getList()
+    },
+    getTreeselect() {
+      axios.get(this.baseURL + 'Gy_MaintenanceMode/PowerLoadTree').then(response => {
+        let data1 = response.data
+        if (data1.count == 1) {
+          let map = {};
+          let treeData = [];
+          data1.data.forEach(it => {
+            map[it.id.toUpperCase()] = it;    //ID涓烘瘡涓妭鐐圭殑id
+          })
+          //鐢熸垚缁撴灉闆�
+          data1.data.forEach(it => {
+            const parent = map[it.ParentID.toUpperCase()];   //ParentID涓虹埗鑺傜偣鐨刬d
+            if (parent) {
+              if (!Array.isArray(parent.children)) parent.children = [];
+              parent.children.push(it);
+            } else {
+              treeData.push(it)
+            }
+          })
+          this.treeOptions = treeData
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    // 绛涢�夎妭鐐�
+    filterNode(value, data) {
+      if (!value) return true
+      return data.label.indexOf(value) !== -1
+    },
+    // 鑺傜偣鍗曞嚮浜嬩欢
+    handleNodeClick(data) {
+      this.nodeData = data
+      if (!data.id) {
+        this.sGnbm = '鏉冮檺绠$悊-鐢ㄦ埛'
+      } else {
+        this.sGnbm = data.id
+      }
+      this.queryData = []
+      this.linterid = ''
+      let text = ''
+      if (this.HSouceBillType == 'yh') {
+        this.linterid = this.rowForm.鐢ㄦ埛缂栫爜
+        text = '璇烽�夋嫨涓�浣嶇敤鎴凤紒'
+      } else if (this.HSouceBillType == 'js') {
+        this.linterid = this.rowForm.HGroupID
+        text = '璇烽�夋嫨涓�涓鑹诧紒'
+      }
+      if (this.linterid) {
+        axios.get(this.baseURL + '/PublicPageMethod/PowerList', {
+          params: {
+            czybm: this.linterid,
+            sGnbm: this.sGnbm,
+            HSouceBillType: this.HSouceBillType,
+          },
+        }).then(response => {
+          this.queryData = response.data.data
+          this.tableQueryShow = true
+          this.$nextTick(() => {
+            if (this.queryData.length > 0) {
+              this.queryData.forEach(row => {
+                if (row.AuthorityID) {
+                  this.$refs.queryMultipleTable.toggleRowSelection(row);
+                }
+              });
+            } else {
+              this.$refs.queryMultipleTable.clearSelection();
+            }
+          })
+        }).catch(error => {
+          this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+        });
+      } else {
+        this.$modal.msgError(text);
+      }
+    },
+    //鍒楄〃鏁版嵁
+    getList() {
+      this.pageSize = 50
+      this.tableShow = false
+      this.loading = true
+      let url = ''
+      if (this.HSouceBillType == 'yh') {
+        url = '/Xt_User/list'
+        this.btList = [{ type: 'checkbox', fixed: 'left' }
+          , { field: 'hmainid', title: '鍗曟嵁ID', hide: true }
+          , { field: '鐢ㄦ埛缂栫爜', title: '鐢ㄦ埛缂栫爜' }
+          , { field: '鐢ㄦ埛鍚嶇О', title: '鐢ㄦ埛鍚嶇О' }
+          , { field: '鐢ㄦ埛绫诲瀷', title: '鐢ㄦ埛绫诲瀷' }
+          , { field: '瀵瑰簲鐝粍', title: '瀵瑰簲鐝粍' }
+          , { field: '瀵瑰簲鑱屽憳', title: '瀵瑰簲鑱屽憳' }
+          , { field: '瀵瑰簲淇濈', title: '瀵瑰簲淇濈' }
+          , { field: '瀵瑰簲楠屾敹', title: '瀵瑰簲楠屾敹' }
+          , { field: '瀵瑰簲涓氬姟鍛�', title: '瀵瑰簲涓氬姟鍛�' }
+          , { field: '瀵瑰簲閮ㄩ棬', title: '瀵瑰簲閮ㄩ棬' }
+          , { field: '瀵瑰簲浠撳簱', title: '瀵瑰簲浠撳簱' }
+          , { field: '瀵瑰簲璋冨叆浠撳簱', title: '瀵瑰簲璋冨叆浠撳簱' }
+          , { field: '瀵瑰簲渚涘簲鍟�', title: '瀵瑰簲渚涘簲鍟�' }
+          , { field: '瀵瑰簲CLOUD璐﹀彿', title: '瀵瑰簲CLOUD璐﹀彿' }
+          , { field: '瀵瑰簲CLOUD缁勭粐', title: '瀵瑰簲CLOUD缁勭粐' }]
+      } else if (this.HSouceBillType == 'js') {
+        url = '/Xt_UserGroup/list'
+        this.btList = [{ type: 'checkbox', fixed: 'left' }
+          , { field: 'HGroupID', title: 'HGroupID', sort: true, hide: true }
+          , { field: '瑙掕壊', title: '瑙掕壊' }
+          , { field: '绾у埆', title: '绾у埆' }
+          , { field: '璇存槑', title: '璇存槑' }]
+      }
+      //鍒楄〃
+      axios.get(this.baseURL + url, {
+        params: {
+          "sWhere": '',
+          "user": sessionStorage["HUserName"],
+        },
+      }).then(response => {
+        this.tyResList = response.data.data//鎬绘暟鎹�
+        let data1 = response.data
+        this.allTableData = data1.data
+        if (data1.code == 1) {
+          this.total = data1.data.length;
+          for (var i = 1; i < this.btList.length; i++) {
+            this.btResList.push({ ColmCols: this.btList[i].field })
+          }
+          this.tableData = this.getPage(this.page, this.allTableData)//鏃犲垎椤垫帴鍙e垎椤�
+          this.tableShow = true
+          this.loading = false
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    // 鍗曢�夋閫変腑鏁版嵁
+    handleSelectionChange(selection) {
+      if (selection.length > 1) {
+        const del_row = selection.shift()
+        this.$refs.tableData.toggleRowSelection(del_row, false) //璁剧疆杩欎竴琛屽彇娑堥�変腑
+      }
+      this.rowForm = {}
+      if (this.HSouceBillType == 'yh') {
+        this.ids = selection.map(item => item.鐢ㄦ埛缂栫爜)
+      } else if (this.HSouceBillType == 'js') {
+        this.ids = selection.map(item => item.HGroupID)
+      }
+      this.rowForm = selection[0]
+    },
+    handleQueryChange(selection) {
+      this.selQueryRows = selection
+      this.queryData.forEach(row => {
+        row.AuthorityHID = this.selQueryRows.some(selectedRow => selectedRow.hgnbm === row.hgnbm) ? 1 : 0;
+      });
+    },
+    //閫�鍑�
+    close() {
+      const obj = { fullPath: this.$route.path, path: this.$route.path, name: this.$route.name, };
+      this.$tab.closePage(obj).then(res => {
+        const latestView = res.visitedViews.slice(-1)[0]
+        if (latestView) {
+          this.$router.push(latestView.fullPath)
+        } else {
+          if (obj.name === 'Dashboard') {
+            this.$router.replace({ path: '/redirect' + obj.fullPath })
+          } else {
+            this.$router.push('/')
+          }
+        }
+      });
+    },
+    handleSaver() {
+      var sSubStr = JSON.stringify(this.queryData);
+      var sMainSub = this.sGnbm + ';' + sSubStr + ';' + this.linterid + ";" + this.HSouceBillType;
+      axios({
+        method: 'post',
+        url: this.baseURL + "/Gy_MaintenanceMode/SaverPower",
+        data: {
+          'msg': sMainSub
+        },
+      }).then(response => {
+        if (response.data.count == 1) {
+          this.subDisabled = true//璁剧疆淇濆瓨鎸夐挳涓嶅彲鐢�
+          this.$modal.msgSuccess(response.data.Message);
+          this.handleNodeClick(this.nodeData)
+        }
+      }).catch(error => {
+        this.$modal.msgError("鎺ュ彛璇锋眰澶辫触!");
+      });
+    },
+    getPage(page, list) {
+      let sindex = (parseInt(page) - 1) * this.pageSize
+      let eindex = parseInt(page) * this.pageSize
+      let newList = list.slice(sindex, eindex)
+      return newList
+    },
+    currentPage(val) {
+      this.page = val.page
+      setTimeout(() => {
+        this.tableData = this.getPage(this.page, this.allTableData)
+      }, 100)
+    },
+    //瀵煎嚭
+    handleExport() {
+      const ws = this.$XLSX.utils.json_to_sheet(this.tyResList); // 灏嗘暟鎹浆鎹负宸ヤ綔琛�
+      const wb = this.$XLSX.utils.book_new(); // 鍒涘缓涓�涓柊鐨勫伐浣滅翱
+      this.$XLSX.utils.book_append_sheet(wb, ws, "Sheet1"); // 灏嗗伐浣滆〃娣诲姞鍒板伐浣滅翱涓紝骞跺懡鍚嶄负"Sheet1"
+      this.$XLSX.writeFile(wb, this.HSouceBillType+`_${new Date().getTime()}.xlsx`); // 瀵煎嚭鏂囦欢      
+    },
+  }
+};
+</script>
+<style>
+.xsckdBox .el-date-editor.el-input {
+  width: 100%;
+}
+
+.btnQueryBox {
+  margin-top: 10px;
+  padding: 5px;
+  border-top: 1px solid #ebebeb;
+  display: flex;
+  justify-content: right;
+}
+</style>

--
Gitblit v1.9.1