已修改9个文件
已添加2个文件
569 ■■■■ 文件已修改
src/api/flowmgr/backImport.js 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/config/website.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/page/login/index.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basesetting/produceplan.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/dataex/mdmprogramimp.vue 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flow/components/TodolistLeft.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flow/components/TodolistRightTop.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flow/todolist.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowmgr/backImport.vue 166 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowmgr/programexport.vue 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/wel/index.vue 177 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/flowmgr/backImport.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
/*
 * @Date: 2025-06-12 22:38:05
 * @LastEditors: gaoshp
 * @LastEditTime: 2025-07-08 21:08:24
 * @FilePath: /mdmweb/src/api/flowmgr/backImport.js
 */
import request from '@/axios';
export const getList = (current, size, params) => {
  return request({
    url: '',
    method: 'get',
    params: {
      ...params,
      current,
      size,
    },
  })
};
src/config/website.js
@@ -2,7 +2,7 @@
 * @Author: æŽå–†(开发组) lzhe@yxqiche.com
 * @Date: 2025-06-11 10:04:08
 * @LastEditors: æŽå–†(开发组) lzhe@yxqiche.com
 * @LastEditTime: 2025-07-07 17:46:08
 * @LastEditTime: 2025-07-08 10:49:40
 * @FilePath: /dev-optimize-0710-lzhe/Users/test/MDM/mdmweb/src/config/website.js
 * @Description: è¿™æ˜¯é»˜è®¤è®¾ç½®,请设置`customMade`, æ‰“å¼€koroFileHeader查看配置 è¿›è¡Œè®¾ç½®: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
@@ -63,7 +63,7 @@
  //oauth2配置
  oauth2: {
    // æ˜¯å¦å¼€å¯æ³¨å†ŒåŠŸèƒ½
    registerMode: true,
    registerMode: false,
    // ä½¿ç”¨åŽç«¯å·¥ç¨‹ @org.springblade.test.Sm2KeyGenerator èŽ·å–
    publicKey: '04cd1b295876209215161da4620bbdea7ee96654ed8a6306ea6f75acd2715c4cbcac26679f13a027114dc83ef4f743a8d998defbc5cea2a0fd1a39750f684cf093',
    // ç¬¬ä¸‰æ–¹ç³»ç»ŸæŽˆæƒåœ°å€
src/page/login/index.vue
@@ -18,7 +18,7 @@
          <codeLogin v-else-if="activeName === 'code'"></codeLogin>
          <thirdLogin v-else-if="activeName === 'third'"></thirdLogin>
          <registerLogin v-else-if="activeName === 'register'"></registerLogin>
          <div class="login-menu">
          <div class="login-menu" v-if="isShowMenu">
            <el-link href="#" @click.stop="activeName = 'user'">{{
              $t('login.userLogin')
            }}</el-link>
@@ -62,6 +62,7 @@
  },
  data() {
    return {
      isShowMenu: false,
      website: website,
      time: '',
      activeName: 'user',
src/views/basesetting/produceplan.vue
@@ -1,7 +1,7 @@
<!--
 * @Date: 2025-06-17 11:44:52
 * @LastEditors: gaoshp
 * @LastEditTime: 2025-06-17 21:59:33
 * @LastEditTime: 2025-07-08 20:06:11
 * @FilePath: /mdmweb/src/views/basesetting/produceplan.vue
-->
<template>
@@ -132,6 +132,14 @@
                        },
                        rules: [{ required: true, message: '请输入审核(高师)', trigger: 'blur' }],
                    },
                    {
                        label: '图号',
                        prop: 'drawingNo',
                        type: 'input',
                        display: true,
                        span: 24,
                        rules: [{ required: true, message: '请输入审核图号', trigger: 'blur' }],
                    },
                    // Add more columns as needed
                ],
src/views/dataex/mdmprogramimp.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,168 @@
<template>
  <basic-container>
    <avue-crud
      :addBtn="false"
      :option="option"
      :table-loading="loading"
      :data="data"
      ref="crud"
      @selection-change="selectionChange"
    >
      <template #menu-left>
        <div style="display: flex;">
          <el-button type="primary" size="default" icon="el-icon-circle-plus" @click="importData">导入</el-button>
          <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleWarehouse" style="margin-left: 12px;">入库</el-button>
        </div>
      </template>
    </avue-crud>
    <el-dialog title="DNC文件导入" append-to-body v-model="excelBox" width="555px">
      <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
        <!-- <template #excelTemplate>
          <el-button type="primary" @click="handleTemplate">
            ç‚¹å‡»ä¸‹è½½<i class="el-icon-download el-icon--right"></i>
          </el-button>
        </template> -->
      </avue-form>
    </el-dialog>
  </basic-container>
</template>
<script>
import {
  getList,
} from '@/api/system/user';
export default {
  data() {
    return {
      selection: [],
      excelBox: false,
      loading: false,
      option: {
        addBtn: false,
        editBtn: false,
        delBtn: false,
        labelWidth: 120,
        emptyBtn: false,
        searchSpan: 8,
        menu: false,
        selection: true,
        column: [
          // {
          //   label: '文件路径',
          //   type: 'input',
          //   prop: 'keyword',
          //   hide: true
          // },
          {
            label: '图号',
            prop: 'drawingNo'
          },
          {
            label: '程序编号',
            prop: 'code',
          },
          {
            label: '程序名称',
            prop: 'name',
          },
          {
            label: '机床编号',
            prop: 'machineCode',
          },
          // {
          //   label: '处理状态',
          //   prop: '',
          // },
          // {
          //   label: '处理方式',
          //   prop: ''
          // },
          // {
          //   label: '处理时间',
          //   prop: ''
          // },
          // {
          //   label: '处理人',
          //   prop: ''
          // },
          {
            label: 'MD5值',
            prop: 'md5',
          }
        ],
      },
      data: [],
      excelForm: {},
      excelOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: '文件导入',
            prop: 'excelFile',
            type: 'upload',
            drag: true,
            loadText: 'DNC文件导入,请稍等',
            span: 24,
            propsHttp: {
              res: 'data',
            },
            tip: '',
            action: '/blade-mdm/program/mdmimport/upload',
          },
        ],
      },
    };
  },
  methods: {
    selectionChange(selection) {
      this.selection = selection;
    },
    importData () {
      this.excelBox = true;
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.excelBox = false;
      console.log('data', res);
      this.data = res || []
      done();
    },
    handleWarehouse(row,index) {
      if(this.selection.length == 0) {
        this.$message.error("请选择数据")
      }else {
        var selection = [];
        this.selection.forEach(item=> {
          selection.push(item.id);
        })
        this.loading = true;
        var obj = {
          ids: selection.join(","),
        }
        axios({
          url: '/blade-mdm/program/mdmimport/accept',
          method: 'post',
          params: obj,
        }).then(
          res => {
            console.log(res);
            if (res.data.code === 200) {
              this.$message.success("操作成功");
              this.loading = false;
              this.data = []
            } else {
              this.$message.success(res.data.msg || "操作失败");
            }
          }
        );
      }
    },
  },
};
</script>
<style lang="scss">
</style>
src/views/flow/components/TodolistLeft.vue
@@ -1,7 +1,7 @@
<!--
 * @Date: 2025-07-01 20:45:15
 * @LastEditors: gaoshp
 * @LastEditTime: 2025-07-07 20:00:11
 * @LastEditTime: 2025-07-08 20:03:15
 * @FilePath: /mdmweb/src/views/flow/components/TodolistLeft.vue
-->
<template>
@@ -100,7 +100,7 @@
                this.$message.error('获取已选程序失败');
                return;
            } else {
                this.appData = res.data
                this.tableData = res.data.data || [];
            }
            this.$emit('selection-change',this.tableData)
        })
src/views/flow/components/TodolistRightTop.vue
@@ -32,7 +32,7 @@
            <el-input v-model="formInline.processName" placeholder=""></el-input>
        </el-form-item>
        <el-form-item label="零组件号">
            <el-input v-model="formInline.partNo" placeholder=""></el-input>
            <el-input v-model="formInline.drawingNo" placeholder=""></el-input>
        </el-form-item>
        <el-form-item label="加工机床">
            <el-input v-model="formInline.machineCode" placeholder=""></el-input>
@@ -82,7 +82,7 @@
            processNo: this.row.variables.processNo || '',
            planStartTime: this.row.variables.planStartTime || '',
            productModel: this.row.variables.productModel || '',
            partNo: this.row.variables.partNo || '',
            drawingNo: this.row.variables.drawingNo || '',
        }
    }
}
src/views/flow/todolist.vue
@@ -152,7 +152,7 @@
                    {
                        label: '流程类型',
                        width: 100,
                        prop: 'processDefinitionName',
                        prop: 'categoryName',
                    },
                    
                    {
@@ -278,7 +278,7 @@
                ...this.formApprove,
                taskId: this.row.taskId,
                processInstanceId: this.row.processInstanceId,
                programIds: this.applist.map(v => v.id).join(','),
                programIds: this.row.taskDefinitionKey === 'programmingTask' ? this.applist.map(v => v.id).join(',') : '',
            }).then(res => {
                this.$message.success('审批成功');
                this.approveBox = false;
src/views/flowmgr/backImport.vue
@@ -6,40 +6,37 @@
      :table-loading="loading"
      :data="data"
      ref="crud"
      v-model:search="search"
      v-model:page="mypage"
      @search-change="searchChange"
      @search-reset="searchReset"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad"
      @selection-change="selectionChange"
    >
      <template #menu-left>
        <div style="display: flex;">
          <el-upload action="/blade-mdm/program/dncsendback/upload">
            <el-button type="primary" size="default" icon="el-icon-circle-plus">导入</el-button>
          </el-upload>
          <el-button type="primary" size="default" icon="el-icon-circle-plus" @click="importData">导入</el-button>
          <el-button type="primary" size="default" icon="el-icon-circle-plus" plain @click="handleWarehouse" style="margin-left: 12px;">入库</el-button>
        </div>
      </template>
    </avue-crud>
    <el-dialog title="DNC文件导入" append-to-body v-model="excelBox" width="555px">
      <avue-form :option="excelOption" v-model="excelForm" :upload-after="uploadAfter">
        <!-- <template #excelTemplate>
          <el-button type="primary" @click="handleTemplate">
            ç‚¹å‡»ä¸‹è½½<i class="el-icon-download el-icon--right"></i>
          </el-button>
        </template> -->
      </avue-form>
    </el-dialog>
  </basic-container>
</template>
<script>
import {
  getList,
} from '@/api/system/user';
export default {
  data() {
    return {
      selection: [],
      search: {},
      loading: true,
      mypage: {
        size: 10,
        current: 1,
        total: 0,
      },
      excelBox: false,
      loading: false,
      option: {
        addBtn: false,
        editBtn: false,
@@ -50,13 +47,12 @@
        menu: false,
        selection: true,
        column: [
          {
            label: '文件路径',
            type: 'input',
            prop: 'keyword',
            search: true,
            hide: true
          },
          // {
          //   label: '文件路径',
          //   type: 'input',
          //   prop: 'keyword',
          //   hide: true
          // },
          {
            label: '任务编号',
            prop: 'programNo'
@@ -71,36 +67,66 @@
          },
          {
            label: '文件数据库编号',
            prop: '',
            prop: 'id',
          },
          {
            label: '处理状态',
            prop: '',
          },
          {
            label: '处理方式',
            prop: ''
          },
          {
            label: '处理时间',
            prop: ''
          },
          {
            label: '处理人',
            prop: ''
          },
          // {
          //   label: '处理状态',
          //   prop: '',
          // },
          // {
          //   label: '处理方式',
          //   prop: ''
          // },
          // {
          //   label: '处理时间',
          //   prop: ''
          // },
          // {
          //   label: '处理人',
          //   prop: ''
          // },
          {
            label: 'MD5值',
            prop: 'md5    '
            prop: 'md5',
          }
        ],
      },
      data: [],
      excelForm: {},
      excelOption: {
        submitBtn: false,
        emptyBtn: false,
        column: [
          {
            label: '文件导入',
            prop: 'excelFile',
            type: 'upload',
            drag: true,
            loadText: 'DNC文件导入,请稍等',
            span: 24,
            propsHttp: {
              res: 'data',
            },
            tip: '',
            action: '/blade-mdm/program/dncsendback/upload',
          },
        ],
      },
    };
  },
  methods: {
    selectionChange(selection) {
      this.selection = selection;
    },
    importData () {
      this.excelBox = true;
    },
    uploadAfter(res, done, loading, column) {
      window.console.log(column);
      this.excelBox = false;
      console.log('data', res);
      this.data = res || []
      done();
    },
    handleWarehouse(row,index) {
      if(this.selection.length == 0) {
@@ -116,57 +142,23 @@
        }
        axios({
          url: '/blade-mdm/program/dncsendback/accept',
          method: 'get',
          method: 'post',
          params: obj,
        }).then(
          res => {
            this.$message.success("操作成功");
            this.loading = false;
            console.log(res);
            if (res.data.code === 200) {
              this.$message.success("操作成功");
              this.loading = false;
              this.data = []
            } else {
              this.$message.success(res.data.msg || "操作失败");
            }
          }
        );
      }
    },
    searchReset() {
      //this.onLoad(this.mypage);
    },
    searchChange(params, done) {
      this.mypage.current = 1;
      this.onLoad();
      done();
    },
    currentChange(current) {
      this.mypage.current = current;
    },
    sizeChange(size) {
      this.mypage.size = size;
    },
    refreshChange() {
    },
    onLoad() {
      this.loading = true;
      var obj = {
        keyword: this.search.keyword,
        machineSpec: "",
        current: this.mypage.current,
        size: this.mypage.size,
      }
      axios({
        url: '/blade-mdm/program/dncsendback/page',
        method: 'get',
        params: obj,
      }).then(
        res => {
          const data = res.data.data;
          this.mypage.total = data.total;
          this.data = data.records;
          this.loading = false;
        },
        error => {
        }
      );
    }
  },
};
</script>
src/views/flowmgr/programexport.vue
@@ -1,7 +1,7 @@
<!--
 * @Date: 2025-06-20 20:48:17
 * @LastEditors: gaoshp
 * @LastEditTime: 2025-07-07 23:00:25
 * @LastEditTime: 2025-07-08 20:46:33
 * @FilePath: /mdmweb/src/views/flowmgr/programexport.vue
-->
<template>
@@ -65,11 +65,11 @@
                column: [
                    {
                        label: '图号',
                        prop: 'partNo',
                        prop: 'drawingNo',
                    },
                    {
                        label: '图号版次',
                        prop: 'partNoEdition',
                        prop: 'drawingNoEdition',
                    },
                    {
                        label: '工序名称',
@@ -177,8 +177,9 @@
                    {},
                    {ids: this.selection.map(item => item.id)},
                ).then(res => {
                    console.log(res);
                    downloadFile(res.data, `导出DNC${this.$dayjs().format('YYYY-MM-DD HH:mm:ss')}.zip`);
                    let name = res.headers['content-disposition'].split('filename=')[1]
                    console.log(res.headers['content-disposition'].split('filename=')[1]);
                    downloadFile(res.data, `导出DNC-${name}`);
                    NProgress.done();
                });
            });
src/views/wel/index.vue
@@ -18,16 +18,20 @@
      @row-update="rowUpdate"
      @row-click="rowClick"
    >
      <template #menu-left>
        <el-button :size="size" type="primary" @click="showAdd()">新增根节点</el-button>
      </template>
      <template #name="{ row }">
        <span>{{row.name}}</span>
        <el-button :size="size" text icon="el-icon-setting" type="primary" placeholder="修改" @click="showEdit(row)" title="修改"></el-button>
        <el-button :size="size" text v-if="row.nodeType != 70" icon="el-icon-setting" type="primary" placeholder="修改" @click="showEdit(row)" title="修改"></el-button>
        <el-button :size="size" text icon="el-icon-delete" type="primary" @click="showDel(row)" placeholder="删除" title="删除"></el-button>
        <el-button :size="size" text v-if="row.nodeType < 60" icon="el-icon-document-add" type="primary" @click="showAdd(row)" placeholder="新增子级" title="新增子级"></el-button>
        <el-button :size="size" text v-if="row.nodeType == 60" icon="el-icon-upload" type="primary" @click="showUpload(row)" placeholder="文件上传" title="文件上传"></el-button>
        <el-button :size="size" text v-if="row.nodeType == 60" icon="el-icon-pie-chart" type="primary" @click="upgrade(row)" placeholder="升级" title="升级"></el-button>
        <el-button :size="size" text v-if="row.nodeType == 70" icon="el-icon-pie-chart" type="primary" @click="upgrade(row)" placeholder="升级" title="升级"></el-button>
        <el-button :size="size" text v-if="row.nodeType == 60 && !isSM" icon="el-icon-position" type="primary" @click="downsend(row)" placeholder="下发" title="下发"></el-button>
      </template>
    </avue-crud>
    <!-- æ–°å¢žèŠ‚ç‚¹ -->
    <el-dialog :title="modalTitle" append-to-body v-model="modalBox">
      <avue-form :option="modalOption" v-model="modalForm" @submit="modalSubmit" @reset-change="modalCancel"/>
    </el-dialog>
@@ -38,10 +42,11 @@
      <avue-form v-if="tabsType == 'tab1'" :option="tabsFormOption" v-model="tabsForm"></avue-form>
      <span v-else-if="tabsType == 'tab2'">版本信息</span>
      <template v-else-if="tabsType == 'tab3'">
          <div v-for="item in fileList" v-if="fileList.length > 0" class="fileListStyle">
          {{fileContent}}
          <!-- <div v-for="item in fileList" v-if="fileList.length > 0" class="fileListStyle">
            <span>{{item.name}}</span>
            <span class="delFile" @click="delFile(item)">X</span>
          </div>
          </div> -->
      </template>
  </basic-container>
</template>
@@ -51,6 +56,7 @@
export default {
  data() {
    return {
      fileContent: "",
      isSM: false,  //是否是涉密网 ï¼Œå·¥æŽ§ç½‘5个,涉密网4个
      isShowTabs: true,
      nodeTypeList: [],
@@ -95,7 +101,7 @@
          },
          {
            label: '创建人',
            prop: 'createUser',
            prop: 'createUserName',
            disabled: true,
            placeholder: " "
          },
@@ -148,7 +154,16 @@
          },
          {
            label: '设备(机床)',
            prop: 'abc'
            prop: 'machineCode',
            type: 'select',
            dicUrl: '/blade-mdm/machine/page',
            props: {
              label: 'name',
              value: 'code',
            },
            dicFormatter(res) {
              return res.data.records;
            }
          },
          {
            label: '节点名称',
@@ -156,7 +171,7 @@
          },
          {
            label: '节点描述',
            prop: 'abc',
            prop: 'description',
            hide: true
          },
          {
@@ -213,7 +228,7 @@
          },
          {
            label: '设备',
            prop: 'abc'
            prop: 'machineCode'
          },
          {
            label: '固化状态',
@@ -233,7 +248,7 @@
          },
          {
            label: '创建人',
            prop: 'createUser',
            prop: 'createUserName',
            width: '180'
          }
        ],
@@ -258,6 +273,41 @@
              value: 'dictKey',
            },
            disabled: true
          },
          {
            label: '设备编号',
            prop: 'machineCode',
            type: 'select',
            dicUrl: '/blade-mdm/machine/page',
            props: {
              label: 'name',
              value: 'code',
            },
            dicFormatter(res) {
              return res.data.records;
            }
          },
          {
            label: '零组件号/图号',
            prop: 'drawingNo'
          },
          {
            label: '工序',
            prop: 'processName'
          },
          {
            label: '工序版本',
            prop: 'processEdition'
          },
          {
            label: '节点分类',
            prop: 'category',
            type: 'select',
            dicUrl: '/blade-system/dict-biz/dictionary?code=node_file_type',
            props: {
              label: 'dictValue',
              value: 'dictKey',
            }
          },
          {
            label: '选择文件',
@@ -289,7 +339,7 @@
    },
    uploadAfter() {
      this.getFile(this.id);
    },
    upgrade(row) {  //升级
      this.loading = true;
@@ -331,7 +381,7 @@
          this.tabsForm.nodeTypeName = item.dictValue;
        }
      })
      if(this.tabsForm.nodeType < 60) {
      if(this.tabsForm.nodeType < 70) {
        this.tabsOption = this.tabsOption1;
      }else {
        this.tabsOption = this.tabsOption2;
@@ -350,20 +400,22 @@
      this.uploadmodalForm = row;
      this.uploadmodalBox = true;
    },
    getFile(id) {
      var obj = {nodeId: id}
    getFile(id) { //查看文件内容
      this.loading = true;
      axios({
        url: '/blade-mdm/program/ncfile/list-by-node',
        url: '/blade-mdm/program/ncfile/content-by-nodeid',
        method: 'get',
        params: obj,
        params: {nodeId:id},
      }).then(
        resp => {
          this.fileList = resp.data.data;
        res => {
          this.loading = false;
          this.fileContent = res.data.data;
        }
      );
    },
    uploadmodalSubmit(row,done) {
      this.uploadmodalBox = false;
      this.addLocalTreeNode(row.parentId);  //重新加载下一级
      done();
    },
    rowDel(row, index, done) {
@@ -401,15 +453,21 @@
      })
    },
    showAdd (row) {  //新增子节点
      if(row.nodeType == 60) {
        return;
      if(!row) {
        this.modalTitle = "新增根节点";
        this.modalForm.nodeType = "10";
        this.modalForm.parentId = 0;
      }else {
        if(row.nodeType == 60) {
          return;
        }
        this.modalTitle = "新增子节点";
        this.selectedColumn.nodeType = String(Number(row.nodeType) + 10);
        this.selectedColumn.parentId = row.id;
        this.selectedColumn.name = "";
        this.selectedColumn.id = "";
        this.modalForm = this.selectedColumn;
      }
      this.modalTitle = "新增子节点";
      this.selectedColumn.nodeType = String(Number(row.nodeType) + 10);
      this.selectedColumn.parentId = row.id;
      this.selectedColumn.name = "";
      this.selectedColumn.id = "";
      this.modalForm = this.selectedColumn;
      this.modalBox = true;
    },
    modalSubmit(row,done) {  //新增子节点保存/修改
@@ -433,14 +491,61 @@
            this.updateLocalTreeNode(this.modalForm);
          }else {
            // å¦‚果是新增操作,可能需要重新加载数据
            this.$refs.crud.refreshTable();
            //this.$refs.crud.refreshTable();
            //this.onLoad();
            //新增,更新本地数据
            this.addLocalTreeNode(row.parentId);
          }
          this.loading = false;
          done(row);
        }
      );
    },
    updateLocalTreeNode(nodeData) {
    addLocalTreeNode(parentId) {
      if(this.modalTitle == "新增根节点") {
        this.onLoad();
        return;
      }
      this.loading = true;
      var obj = {parentId: parentId}
      axios({
        url: '/blade-mdm/program/node/lazy-list',
        method: 'get',
        params: obj,
      }).then(
        res => {
          var children = res.data.data || [];
          this.updateParentNodeChildren(parentId, children);
          this.loading = false;
        }
      );
    },
    updateParentNodeChildren(parentId, newChildren) {  //新增的方法
      const updateTree = (nodes) => {
        for (let i = 0; i < nodes.length; i++) {
          if (nodes[i].id === parentId) {
            // æ›´æ–°èŠ‚ç‚¹æ•°æ®
            nodes[i].children = [...newChildren];
            this.data = [...this.data]; // æ›¿æ¢é¡¶å±‚引用
            return true;
          }
          if (Array.isArray(nodes[i].children) && nodes[i].children.length > 0) {
            if (updateTree(nodes[i].children)) {
              return true;
            }
          }
        }
        return false;
      };
      updateTree(this.data);
      // å¼ºåˆ¶åˆ·æ–°
      this.$nextTick(() => {
        this.$refs.crud?.refreshTable();
        //this.$refs.crud.toggleRowExpansion('0', true);
        console.log(this.data,222)
      });
    },
    updateLocalTreeNode(nodeData) {   //修改的方法
      const updateNode = (nodes) => {
        for (let i = 0; i < nodes.length; i++) {
          if (nodes[i].id === nodeData.id) {
@@ -515,25 +620,13 @@
        this.nodeTypeList = res.data.data;
      }
    );
    //判断版本  0:涉密网,1:工控网;//工控网5个,涉密网4个
    axios({url: '/blade-system/param/detail?paramKey=networkType',method: 'get'}).then(res => {
        if(res.data.data.paramValue === "0") {
    //判断版本  0:涉密网,1:工控网;//工控网5个,涉密网4个
    axios({url: '/blade-mdm/system/param/getValue?paramKey=networkType',method: 'get'}).then(res => {
        if(res.data.data === "0") {
          this.isSM = true;
        }
      }
    );
    //查看内容
    // this.loading = true;
    // var obj = {id: "1940982493963415554"}
    // axios({
    //   url: '/blade-mdm/program/ncfile/content',
    //   method: 'get',
    //   params: obj,
    // }).then(
    //   res => {
    //   }
    // );
  }
};
</script>