From c04d741f6daddd9e445a0d00adc42d1c8c45f67f Mon Sep 17 00:00:00 2001
From: weimingfei <fei_gaming@sina.com>
Date: 星期五, 23 一月 2026 10:40:33 +0800
Subject: [PATCH] 钥匙柜同步柜格实际钥匙数据

---
 admin/src/views/business/internalCompany.vue |  175 ++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 109 insertions(+), 66 deletions(-)

diff --git a/admin/src/views/business/internalCompany.vue b/admin/src/views/business/internalCompany.vue
index 60279db..a935d23 100644
--- a/admin/src/views/business/internalCompany.vue
+++ b/admin/src/views/business/internalCompany.vue
@@ -1,69 +1,79 @@
 <template>
-    <TableLayout>
-<!--        :permissions="['business:company:query']"-->
-        <!-- 鎼滅储琛ㄥ崟 -->
-<!--        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>-->
-<!--            <el-form-item label="缁勭粐鍚嶇О" prop="name">-->
-<!--                <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>-->
-<!--            </el-form-item>-->
-<!--            <el-form-item label="鎵�灞炰笂绾х粍缁�" prop="parentName">-->
-<!--                <el-input v-model="searchForm.parentName" placeholder="璇疯緭鍏ユ墍灞炰笂绾х粍缁�" @keypress.enter.native="search"></el-input>-->
-<!--            </el-form-item>-->
-<!--            <section>-->
-<!--                <el-button type="primary" @click="search">鎼滅储</el-button>-->
-<!--                <el-button @click="reset">閲嶇疆</el-button>-->
-<!--            </section>-->
-<!--        </el-form>-->
-        <!-- 琛ㄦ牸鍜屽垎椤� -->
-        <template v-slot:table-wrap>
-            <ul class="toolbar" v-permissions="['business:company:create', 'business:company:sync']">
-               <li><el-button type="primary" v-permissions="['business:company:create']" @click="$refs.OperaInternalCompanyWindow.open('鏂板缓浼佷笟',null,null)">鏂板缓</el-button></li>
-              <li><el-button @click="sort('top')" :loading="sorting" icon="el-icon-sort-up" v-permissions="['business:company:sort']">涓婄Щ</el-button></li>
-              <li><el-button @click="sort('bottom')" :loading="sorting" icon="el-icon-sort-down" v-permissions="['business:company:sort']">涓嬬Щ</el-button></li>
-              <li><el-button type="primary"  v-permissions="['business:company:sync']" :loading="loading" @click="synchronous()">鍚屾</el-button></li>
-            </ul>
-            <el-table
-                v-loading="isWorking.search"
-                :data="list"
-                stripe
-                :tree-props="{children: 'childList',hasChildren: 'hasChildren'}"
-                row-key="id"
-                @selection-change="handleSelectionChange"
-                default-expand-all
-            >
-                <el-table-column type="selection" width="55"></el-table-column>
-                <el-table-column prop="name" label="缁勭粐鍚嶇О" min-width="100px"></el-table-column>
-                <el-table-column prop="name" label="缁勭粐绫诲瀷" min-width="80px">
-                  <template scope="{row}">
-                      <span v-if="row.type == 0">鐩稿叧鏂圭粍缁�</span>
-                      <span v-if="row.type == 1">鍐呴儴缁勭粐</span>
-                  </template>
-                </el-table-column>
-                <el-table-column prop="companyNamePath" label="缁勭粐璺緞" min-width="100px"></el-table-column>
-              <el-table-column prop="editorName" label="鎿嶄綔浜�" min-width="100px"></el-table-column>
-              <el-table-column prop="editDate" label="鏈�鍚庢洿鏂版椂闂�" min-width="100px"></el-table-column>
-                <el-table-column
-                    label="鎿嶄綔"
-                    width="230"
-                    fixed="right"
-                >
-                    <template slot-scope="{row}">
-                        <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('缂栬緫浼佷笟淇℃伅',{  id: row.parentId,name:row.parentName,type:row.parentType, companyPath:row.parentCompanyPath}, row)" icon="el-icon-edit" v-permissions="['business:company:update']">缂栬緫</el-button>
-                        <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('鏂板缓瀛愮骇',  row,null)" icon="el-icon-plus">鏂板缓瀛愮骇</el-button>
-                        <el-button type="text" @click="deleteById(row)" style="color: red" icon="el-icon-delete" v-permissions="['business:company:delete']">鍒犻櫎</el-button>
-                    </template>
-                </el-table-column>
-            </el-table>
-        </template>
-        <!-- 鏂板缓/淇敼 -->
-        <OperaInternalCompanyWindow ref="OperaInternalCompanyWindow" :list="list" @success="handlePageChange"/>
-    </TableLayout>
+  <TableLayout>
+    <!--        :permissions="['business:company:query']"-->
+    <!-- 鎼滅储琛ㄥ崟 -->
+    <!--        <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>-->
+    <!--            <el-form-item label="缁勭粐鍚嶇О" prop="name">-->
+    <!--                <el-input v-model="searchForm.name" placeholder="璇疯緭鍏ョ粍缁囧悕绉�" @keypress.enter.native="search"></el-input>-->
+    <!--            </el-form-item>-->
+    <!--            <el-form-item label="鎵�灞炰笂绾х粍缁�" prop="parentName">-->
+    <!--                <el-input v-model="searchForm.parentName" placeholder="璇疯緭鍏ユ墍灞炰笂绾х粍缁�" @keypress.enter.native="search"></el-input>-->
+    <!--            </el-form-item>-->
+    <!--            <section>-->
+    <!--                <el-button type="primary" @click="search">鎼滅储</el-button>-->
+    <!--                <el-button @click="reset">閲嶇疆</el-button>-->
+    <!--            </section>-->
+    <!--        </el-form>-->
+    <!-- 琛ㄦ牸鍜屽垎椤� -->
+    <template v-slot:table-wrap>
+      <ul class="toolbar" v-permissions="['business:company:create', 'business:company:sync']">
+<!--        <li><el-button type="primary" v-permissions="['business:company:create']"-->
+<!--            @click="$refs.OperaInternalCompanyWindow.open('鏂板缓缁勭粐', null, null)">鏂板缓</el-button></li>-->
+        <li><el-button @click="sort('top')" :loading="sorting" icon="el-icon-sort-up"
+            v-permissions="['business:company:sort']">涓婄Щ</el-button></li>
+        <li><el-button @click="sort('bottom')" :loading="sorting" icon="el-icon-sort-down"
+            v-permissions="['business:company:sort']">涓嬬Щ</el-button></li>
+<!--        <li><el-button type="primary" v-permissions="['business:company:sync']" :loading="loading"
+            @click="synchronous()">鍚屾</el-button></li>-->
+        <li><el-button type="primary" v-permissions="['business:company:create']" :loading="loading"
+            @click="synchronous()">鍚屾</el-button></li>
+      </ul>
+      <el-table :max-height="tableHeight" v-loading="isWorking.search" :data="list" stripe
+        :tree-props="{ children: 'childList', hasChildren: 'hasChildren' }" row-key="id"
+        @selection-change="handleSelectionChange" default-expand-all>
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column prop="name" label="缁勭粐鍚嶇О" min-width="200px" show-overflow-tooltip></el-table-column>
+        <el-table-column prop="name" label="缁勭粐绫诲瀷" min-width="80px">
+          <template scope="{row}">
+            <span v-if="row.type == 0">鐩稿叧鏂圭粍缁�</span>
+            <span v-if="row.type == 1">鍐呴儴缁勭粐</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="娴峰悍鍚屾鐘舵��" min-width="100px" align="center">
+          <template slot-scope="{row}">
+            <span v-if="row.hkStatus == 0" style="color: #435EBE">寰呭悓姝�</span>
+            <span v-if="row.hkStatus == 1" style="color: green">鍚屾鎴愬姛</span>
+            <span v-if="row.hkStatus == 2" style="color: red">鍚屾澶辫触</span>
+            <span v-if="row.hkStatus == 3" style="color: red">涓嶇鍚堜笅鍙戞潯浠�</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="sortnum" align="center" label="鎺掑簭鐮�" min-width="80px"></el-table-column>
+        <el-table-column prop="companyNamePath" label="缁勭粐璺緞" min-width="200px"  show-overflow-tooltip></el-table-column>
+        <el-table-column prop="editorName" label="鎿嶄綔浜�" width="100px"></el-table-column>
+        <el-table-column prop="editDate" label="鏈�鍚庢洿鏂版椂闂�" min-width="150px"></el-table-column>
+        <el-table-column label="鎿嶄綔" width="230" fixed="right">
+          <template slot-scope="{row}">
+<!--            v-if="row.type ==0"-->
+            <el-button type="text"
+              @click="$refs.OperaInternalCompanyWindow.open('缂栬緫浼佷笟淇℃伅', { id: row.parentId, name: row.parentName, type: row.parentType, companyPath: row.parentCompanyPath }, row, 'edit')"
+              icon="el-icon-edit" v-permissions="['business:company:update']" v-if="sysConfig && sysConfig.orgUserDataOrigin ==3 && row.type !=1 ">缂栬緫</el-button>
+            <el-button type="text" @click="$refs.OperaInternalCompanyWindow.open('鏂板缓瀛愮骇', row, null, 'add')"
+              icon="el-icon-plus">鏂板缓瀛愮骇</el-button>
+            <el-button type="text" @click="deleteById(row)" style="color: red" icon="el-icon-delete"
+              v-permissions="['business:company:delete']" v-if="sysConfig && sysConfig.orgUserDataOrigin ==3 && row.type ==0 ">鍒犻櫎</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+    </template>
+    <!-- 鏂板缓/淇敼 -->
+    <OperaInternalCompanyWindow ref="OperaInternalCompanyWindow" :list="list" @success="handlePageChange" />
+  </TableLayout>
 </template>
 
 <script>
 import BaseTable from '@/components/base/BaseTable'
 import TableLayout from '@/layouts/TableLayout'
-import { companySync, sort } from '@/api/business/company'
+import { companySync, companySyncDingding, sort } from '@/api/business/company'
 import OperaInternalCompanyWindow from '@/components/business/OperaInternalCompanyWindow'
 export default {
   name: 'internalCompany',
@@ -74,11 +84,17 @@
       // 鎼滅储
       loading: false,
       sorting: false,
+      sysConfig: null,
       searchForm: {
         // type: 1
       },
       list: [],
       total: 0
+    }
+  },
+  provide() {
+    return {
+      sysConfig: () => this.sysConfig
     }
   },
   created () {
@@ -89,6 +105,15 @@
       'field.main': 'id'
     })
     this.search()
+    this.api.getSysConfig()
+      .then(res => {
+        this.sysConfig = res
+      })
+  },
+  mounted () {
+    this.$nextTick(() => {
+      this.tableHeight = document.body.scrollHeight - 220
+    })
   },
   methods: {
     // 椤电爜鍙樻洿澶勭悊
@@ -123,7 +148,25 @@
               this.loading = false
             })
         })
-        .catch(() => {})
+        .catch(() => { })
+    },
+    async synchronousDingding () {
+      this.$dialog.actionConfirm('璇ユ搷浣滃皢绯荤粺娓呯┖宸叉湁鍐呴儴缁勭粐淇℃伅锛屾偍纭鍚屾鍏ㄩ儴淇℃伅鍚楋紵', '鎿嶄綔纭鎻愰啋')
+        .then(() => {
+          this.loading = true
+          companySyncDingding({})
+            .then(res => {
+              this.$tip.apiSuccess(res || '鍚屾鎴愬姛')
+              this.search()
+            })
+            .catch(e => {
+              this.$tip.apiFailed(e)
+            })
+            .finally(() => {
+              this.loading = false
+            })
+        })
+        .catch(() => { })
     },
     // 鎺掑簭
     sort (direction) {
@@ -166,11 +209,11 @@
         direction
       })
         .then(() => {
-         /* if (direction === 'top') {
-            menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex - 1, 1)[0])
-          } else {
-            menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex + 1, 1)[0])
-          }*/
+          /* if (direction === 'top') {
+             menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex - 1, 1)[0])
+           } else {
+             menuPool.splice(menuIndex, 0, menuPool.splice(menuIndex + 1, 1)[0])
+           } */
           this.search()
         })
         .catch(e => {

--
Gitblit v1.9.3