doum
2025-09-26 dd4cd96c69061da3ff80cbfb87237b16cda8abc3
admin/src/views/business/internalCompany.vue
@@ -17,14 +17,16 @@
    <!-- 表格和分页 -->
    <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 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="synchronousDingding()">同步钉钉</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"
@@ -38,17 +40,18 @@
          </template>
        </el-table-column>
        <el-table-column prop="companyNamePath" label="组织路径" min-width="100px"></el-table-column>
        <el-table-column prop="sortnum" align="center" label="排序码" min-width="80px"></el-table-column>
        <el-table-column prop="editorName" label="操作人" 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)"
              @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="row.type ==0">编辑</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']">删除</el-button>
              v-permissions="['business:company:delete']" v-if="row.type !== -1">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
@@ -61,7 +64,7 @@
<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',
@@ -128,6 +131,24 @@
        })
        .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) {
      if (this.sorting) {