9个文件已修改
19个文件已添加
5380 ■■■■■ 已修改文件
build/plugins/cool.ts 576 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/example/00_hn_new.html 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/example/config/config.json 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/example/css/style.css 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/example/test.html 4364 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_0.b3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_1.b3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_10.cmpt 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_11.cmpt 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_12.cmpt 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_13.cmpt 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_14.i3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_2.b3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_3.b3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_4.b3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_5.b3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_6.b3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_7.b3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_8.b3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/NoLod_9.b3dm 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/scenetree.json 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
public/hn3d/model/Huanengchangqu_220615/tileset.json 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cool/modules/base/components/role/select_device.vue 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cool/modules/base/views/user.vue 174 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cool/modules/basedevice/views/basedevice_group.vue 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cool/modules/hntask/views/immediate_task.vue 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cool/modules/hntask/views/periodic_task.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vite.config.ts 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
build/plugins/cool.ts
@@ -10,299 +10,299 @@
// 格式化
function format(data: any) {
    return {
        label: data.label,
        prop: data.prop,
        ...data,
        component: data.component
    };
  return {
    label: data.label,
    prop: data.prop,
    ...data,
    component: data.component
  };
}
// 颜色
const colors = [
    "#409EFF",
    "#67C23A",
    "#E6A23C",
    "#F56C6C",
    "#909399",
    "#B0CFEB",
    "#FF9B91",
    "#E6A23C",
    "#BFAD6F",
    "#FB78F2"
  "#409EFF",
  "#67C23A",
  "#E6A23C",
  "#F56C6C",
  "#909399",
  "#B0CFEB",
  "#FF9B91",
  "#E6A23C",
  "#BFAD6F",
  "#FB78F2"
];
// 组件处理器
const handler = {
    // 单选
    dict({ comment }) {
        const [label, ...arr] = comment.split(" ");
  // 单选
  dict({ comment }) {
    const [label, ...arr] = comment.split(" ");
        // 选择列表
        const list = arr.map((e: string, i: number) => {
            const [value, label] = e.split("-");
            const d: any = {
                label,
                value: isNaN(Number(value)) ? value : Number(value)
            };
    // 选择列表
    const list = arr.map((e: string, i: number) => {
      const [value, label] = e.split("-");
      const d: any = {
        label,
        value: isNaN(Number(value)) ? value : Number(value)
      };
            if (i > 0 && colors[i]) {
                d.color = colors[i];
            }
      if (i > 0 && colors[i]) {
        d.color = colors[i];
      }
            return d;
        });
      return d;
    });
        const d: any = {
            table: {
                label,
                dict: list
            },
            form: {
                label,
                component: {
                    name: "",
                    options: list
                }
            }
        };
    const d: any = {
      table: {
        label,
        dict: list
      },
      form: {
        label,
        component: {
          name: "",
          options: list
        }
      }
    };
        // 默认值
        if (list[0]) {
            d.form.value = list[0].value;
        }
    // 默认值
    if (list[0]) {
      d.form.value = list[0].value;
    }
        // 匹配组件
        d.form.component.name = arr.length > 4 ? "el-select" : "el-radio-group";
    // 匹配组件
    d.form.component.name = arr.length > 4 ? "el-select" : "el-radio-group";
        return d;
    },
    return d;
  },
    // 多选
    dict_multiple({ comment }) {
        const { table, form }: any = handler.dict({ comment });
  // 多选
  dict_multiple({ comment }) {
    const { table, form }: any = handler.dict({ comment });
        if (!form.component.props) {
            form.component.props = {};
        }
    if (!form.component.props) {
      form.component.props = {};
    }
        if (!form.value) {
            form.value = [];
        }
    if (!form.value) {
      form.value = [];
    }
        switch (form.component.name) {
            case "el-select":
                form.component.props.multiple = true;
                form.component.props.filterable = true;
                break;
            case "el-radio-group":
                form.component.name = "el-checkbox-group";
                break;
        }
    switch (form.component.name) {
      case "el-select":
        form.component.props.multiple = true;
        form.component.props.filterable = true;
        break;
      case "el-radio-group":
        form.component.name = "el-checkbox-group";
        break;
    }
        return {
            table,
            form
        };
    }
    return {
      table,
      form
    };
  }
};
// 解析body
function parseJson(req: any) {
    return new Promise((resolve, reject) => {
        let d = "";
        req.on("data", function (chunk: Buffer) {
            d += chunk;
        });
        req.on("end", function () {
            try {
                resolve(JSON.parse(d));
            } catch (e) {
                reject(e);
            }
        });
    });
  return new Promise((resolve, reject) => {
    let d = "";
    req.on("data", function (chunk: Buffer) {
      d += chunk;
    });
    req.on("end", function () {
      try {
        resolve(JSON.parse(d));
      } catch (e) {
        reject(e);
      }
    });
  });
}
// 创建组件
function createComponent(item: any) {
    const { propertyName: prop, comment: label } = item;
  const { propertyName: prop, comment: label } = item;
    let d = null;
  let d = null;
    rules.forEach((r: any) => {
        const s = r.test.find((e: any) => {
            if (isRegExp(e)) {
                return e.test(prop);
            }
  rules.forEach((r: any) => {
    const s = r.test.find((e: any) => {
      if (isRegExp(e)) {
        return e.test(prop);
      }
            if (isFunction(e)) {
                return e(prop);
            }
      if (isFunction(e)) {
        return e(prop);
      }
            if (isString(e)) {
                const re = new RegExp(`${e}$`);
                return re.test(prop.toLocaleLowerCase());
            }
      if (isString(e)) {
        const re = new RegExp(`${e}$`);
        return re.test(prop.toLocaleLowerCase());
      }
            return false;
        });
      return false;
    });
        if (s) {
            if (r.handler) {
                const fn = isString(r.handler) ? handler[r.handler] : r.handler;
    if (s) {
      if (r.handler) {
        const fn = isString(r.handler) ? handler[r.handler] : r.handler;
                if (isFunction(fn)) {
                    d = fn(item);
                }
            } else {
                d = {
                    ...r,
                    test: undefined
                };
            }
        }
    });
        if (isFunction(fn)) {
          d = fn(item);
        }
      } else {
        d = {
          ...r,
          test: undefined
        };
      }
    }
  });
    function parse(v: any) {
        if (v?.name) {
            return {
                prop,
                label,
                component: v
            };
        } else {
            return {
                prop,
                label,
                ...v
            };
        }
    }
  function parse(v: any) {
    if (v?.name) {
      return {
        prop,
        label,
        component: v
      };
    } else {
      return {
        prop,
        label,
        ...v
      };
    }
  }
    return {
        column: parse(d?.table),
        item: parse(d?.form)
    };
  return {
    column: parse(d?.table),
    item: parse(d?.form)
  };
}
// 获取页面标识
function getPageName(router: string) {
    if (router.indexOf("/") === 0) {
        router = router.substr(1, router.length);
    }
  if (router.indexOf("/") === 0) {
    router = router.substr(1, router.length);
  }
    return router ? `name: "${router.replace("/", "-")}",` : "";
  return router ? `name: "${router.replace("/", "-")}",` : "";
}
// 时间合并
function datetimeMerge({ columns, item }: any) {
    if (["startTime", "startDate"].includes(item.prop)) {
        const key = item.prop.replace("start", "");
  if (["startTime", "startDate"].includes(item.prop)) {
    const key = item.prop.replace("start", "");
        if (columns.find((e: any) => e.propertyName == "end" + key)) {
            item.prop = key.toLocaleLowerCase();
            const isTime = item.prop == "time";
            item.label = isTime ? "时间范围" : "日期范围";
            item.hook = "datetimeRange";
            item.component = {
                name: "el-date-picker",
                props: {
                    type: isTime ? "datetimerange" : "daterange",
                    valueFormat: isTime ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD 00:00:00",
                    defaultTime: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]
                }
            };
        }
    }
    if (columns.find((e: any) => e.propertyName == "end" + key)) {
      item.prop = key.toLocaleLowerCase();
      const isTime = item.prop == "time";
      item.label = isTime ? "时间范围" : "日期范围";
      item.hook = "datetimeRange";
      item.component = {
        name: "el-date-picker",
        props: {
          type: isTime ? "datetimerange" : "daterange",
          valueFormat: isTime ? "YYYY-MM-DD HH:mm:ss" : "YYYY-MM-DD 00:00:00",
          defaultTime: [new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 1, 1, 23, 59, 59)]
        }
      };
    }
  }
}
// 创建文件
function createVue({ router, columns, prefix, api, module, filename }: any): void {
    const upsert: any = {
        items: []
    };
  const upsert: any = {
    items: []
  };
    const table: any = {
        columns: []
    };
  const table: any = {
    columns: []
  };
    // 遍历
    columns.forEach((e: any) => {
        // 组件
        const { item, column }: any = createComponent(e);
  // 遍历
  columns.forEach((e: any) => {
    // 组件
    const { item, column }: any = createComponent(e);
        // 验证规则
        if (!e.nullable) {
            item.required = true;
        }
    // 验证规则
    if (!e.nullable) {
      item.required = true;
    }
        // 忽略部分字段
        if (!["createTime", "updateTime", "id", "endTime", "endDate"].includes(item.prop)) {
            datetimeMerge({ columns, item });
    // 忽略部分字段
    if (!["createTime", "updateTime", "id", "endTime", "endDate"].includes(item.prop)) {
      datetimeMerge({ columns, item });
            if (!item.component) {
                item.component = {
                    name: "el-input"
                };
            }
      if (!item.component) {
        item.component = {
          name: "el-input"
        };
      }
            upsert.items.push(format(item));
        }
      upsert.items.push(format(item));
    }
        if (!["cl-codemirror", "cl-editor-quill"].includes(column.component?.name)) {
            table.columns.push(format(column));
        }
    });
    if (!["cl-codemirror", "cl-editor-quill"].includes(column.component?.name)) {
      table.columns.push(format(column));
    }
  });
    // 服务
    const service = prefix.replace("/admin", "service").replace(/\//g, ".");
  // 服务
  const service = prefix.replace("/admin", "service").replace(/\//g, ".");
    // 请求路径
    const paths = api.map((e: any) => e.path);
  // 请求路径
  const paths = api.map((e: any) => e.path);
    // 权限
    const permission: any = {
        add: paths.includes("/add"),
        del: paths.includes("/delete"),
        update: paths.includes("/info") && paths.includes("/update"),
        page: paths.includes("/page"),
        upsert: true
    };
    permission.upsert = permission.add || permission.update;
  // 权限
  const permission: any = {
    add: paths.includes("/add"),
    del: paths.includes("/delete"),
    update: paths.includes("/info") && paths.includes("/update"),
    page: paths.includes("/page"),
    upsert: true
  };
  permission.upsert = permission.add || permission.update;
    // 是否有操作栏
    if (permission.del || permission.upsert) {
        const d: any = {
            type: "op",
            buttons: []
        };
  // 是否有操作栏
  if (permission.del || permission.upsert) {
    const d: any = {
      type: "op",
      buttons: []
    };
        if (permission.upsert) {
            d.buttons.push("edit");
        }
    if (permission.upsert) {
      d.buttons.push("edit");
    }
        if (permission.del) {
            d.buttons.push("delete");
        }
    if (permission.del) {
      d.buttons.push("delete");
    }
        table.columns.push(d);
    }
    table.columns.push(d);
  }
    // 是否多选、序号
    if (permission.del) {
        table.columns.unshift({
            type: "selection"
        });
    } else {
        table.columns.unshift({
            label: "#",
            type: "index"
        });
    }
  // 是否多选、序号
  if (permission.del) {
    table.columns.unshift({
      type: "selection"
    });
  } else {
    table.columns.unshift({
      label: "#",
      type: "index"
    });
  }
    // 代码模板
    const temp = `<template>
  // 代码模板
  const temp = `<template>
    <cl-crud :ref="setRefs('crud')" @load="onLoad">
        <el-row type="flex" align="middle">
            <!-- 刷新按钮 -->
@@ -325,11 +325,10 @@
            <cl-pagination />
        </el-row>
        ${
            permission.update
                ? '<!-- 新增、编辑 -->\n<cl-upsert :ref="setRefs(\'upsert\')" v-bind="upsert" />'
                : ""
        }
        ${permission.update
      ? '<!-- 新增、编辑 -->\n<cl-upsert :ref="setRefs(\'upsert\')" v-bind="upsert" />'
      : ""
    }
    </cl-crud>
</template>
@@ -344,13 +343,12 @@
    setup() {
        const { refs, setRefs, service } = useCool();
        ${
            permission.upsert
                ? "// 新增、编辑配置\nconst upsert = reactive<Upsert>(" +
                  JSON.stringify(upsert) +
                  ");"
                : ""
        }
        ${permission.upsert
      ? "// 新增、编辑配置\nconst upsert = reactive<Upsert>(" +
      JSON.stringify(upsert) +
      ");"
      : ""
    }
        // 表格配置
        const table = reactive<Table>(${JSON.stringify(table)});
@@ -372,61 +370,61 @@
});
</script>`;
    const content = prettier.format(temp, {
        parser: "vue",
        useTabs: true,
        tabWidth: 4,
        endOfLine: "lf",
        semi: true,
        jsxBracketSameLine: true,
        singleQuote: false,
        printWidth: 100,
        trailingComma: "none"
    });
  const content = prettier.format(temp, {
    parser: "vue",
    useTabs: true,
    tabWidth: 4,
    endOfLine: "lf",
    semi: true,
    jsxBracketSameLine: true,
    singleQuote: false,
    printWidth: 100,
    trailingComma: "none"
  });
    // views 目录是否存在
    const dir = path.join(coolPath, `modules/${module}/views`);
    if (!fs.existsSync(dir)) fs.mkdirSync(dir);
  // views 目录是否存在
  const dir = path.join(coolPath, `modules/${module}/views`);
  if (!fs.existsSync(dir)) fs.mkdirSync(dir);
    // 创建文件
    fs.createWriteStream(path.join(dir, `${filename}.vue`), {
        flags: "w"
    }).write(content);
  // 创建文件
  fs.createWriteStream(path.join(dir, `${filename}.vue`), {
    flags: "w"
  }).write(content);
}
export const cool = (): Plugin | null => {
    return {
        name: "vite-cool",
        configureServer(server) {
            server.middlewares.use(async (req, res, next) => {
                function done(data) {
                    res.writeHead(200, { "Content-Type": "text/html;charset=UTF-8" });
                    res.end(JSON.stringify(data));
                }
  return {
    name: "vite-cool",
    configureServer(server) {
      server.middlewares.use(async (req, res, next) => {
        function done(data) {
          res.writeHead(200, { "Content-Type": "text/html;charset=UTF-8" });
          res.end(JSON.stringify(data));
        }
                if (req.url.includes("/__cool_createMenu")) {
                    try {
                        const body: any = await parseJson(req);
                        await createVue(body);
                        done({
                            code: 1000
                        });
                    } catch (e) {
                        done({
                            code: 1001,
                            message: e.message
                        });
                    }
                } else if (req.url.includes("/__cool_modules")) {
                    const dirs = fs.readdirSync(path.join(coolPath, "modules"));
                    done({
                        code: 1000,
                        data: dirs.filter((e) => !e.includes("."))
                    });
                } else {
                    next();
                }
            });
        }
    };
        if (req.url.includes("/__cool_createMenu")) {
          try {
            const body: any = await parseJson(req);
            await createVue(body);
            done({
              code: 1000
            });
          } catch (e) {
            done({
              code: 1001,
              message: e.message
            });
          }
        } else if (req.url.includes("/__cool_modules")) {
          const dirs = fs.readdirSync(path.join(coolPath, "modules"));
          done({
            code: 1000,
            data: dirs.filter((e) => !e.includes("."))
          });
        } else {
          next();
        }
      });
    }
  };
};
public/hn3d/example/00_hn_new.html
@@ -73,14 +73,14 @@
    </div>
  </div>
  <div class="infoview bottomWindows">
  <!-- <div class="infoview bottomWindows">
    <div>
      <input id="changqu_btn" type="button" class="btn btn-primary" value="厂区" />
      <input id="meipeng_btn" type="button" class="btn btn-primary" value="煤棚" />
      <input id="pengnei_btn" type="button" class="btn btn-primary" value="棚内" />
    </div>
  </div>
  </div> -->
  <!-- 操作按钮栏 -->
  <div class="infoview infoWindows handle">
    <button type="button" id="meipeng" class="btn btn-primary active" style="width: 100%;">煤棚整体</button>
@@ -125,6 +125,7 @@
  <!-- 煤堆面板,点击时间轴上的点显示对应煤堆信息 -->
  <div id="meidui_message"></div>
@@ -148,6 +149,7 @@
    var dou_params = []
    var model_list = []
    var point_model = []
    var showClockAnimate = false
    // var data_url = 'http://127.0.0.1:8001/admin/business/devicegroup/getdata?bid='
    var data_url = 'http://47.92.33.19:8001/admin/business/devicegroup/getdata?bid='
@@ -157,6 +159,7 @@
    var model_no = 0
    var distance_half = 111319.5;
    var pointPrimitives = null;
    var time_mars = $('.mars-pannel')
    // 页面初始执行的方法
    $(document).ready(function () {
      console.log(time_btn)
@@ -224,13 +227,16 @@
        },
        control: {
          infoBox: false,
          timeline: true,
          clockAnimate: false,
          distanceLegend: { left: "100px", bottom: "27px" }
        },
        layers: [
          {
            id: 1,
            name: "华能厂区",
            type: "3dtiles",
            url: "../model/Huanengchangqu_20220614_bg/tileset.json",
            url: "../model/Huanengchangqu_220615/tileset.json",
            position: {
              lng: 121.403676,
              lat: 31.467225,
@@ -354,8 +360,26 @@
      });
      var eventTarget = new mars3d.BaseClass()
      //创建三维地球场景
      map = new mars3d.Map("mars3dContainer", mapOptions);
      var clockAnimate = new mars3d.control.ClockAnimate({
        format: "yyyy-MM-dd HH:mm:ss"
      })
      map.addControl(clockAnimate)
      clockAnimate.on(mars3d.EventType.click, function (event) {
        if (event.targetType === "label") {
          console.log("单击了时间文本区域", event)
          console.log(eventTarget, "eventTarget")
          var startTime = Cesium.JulianDate.toDate(map.clock.startTime)
          var stopTime = Cesium.JulianDate.toDate(map.clock.stopTime)
          var currentTime = Cesium.JulianDate.toDate(map.clock.currentTime)
          eventTarget.fire("clickShowClockAnimate", { startTime, stopTime, currentTime })
        }
      })
      // 创建斗轮机图层
@@ -421,6 +445,8 @@
      graphicLayer.addGraphic(dou4)
      console.log(this.dou3, "dou3")
      var position_dou = new Cesium.CallbackProperty(function (time) {
        return dou3.position
      }, false)
@@ -455,8 +481,7 @@
          scanPlaneMode: "vertical", // 扫描面模式 垂直vertical/水平horizontal
          scanPlaneRate: 3, // 扫描速率,
          depthTest: true
        },
        // parent: dou3
        }
      })
      graphicLayer.addGraphic(rectangularSensor)
@@ -635,6 +660,11 @@
      // 斗轮机旋转
      $("#dou_rote").click(function () {
        // 无动画效果的旋转
public/hn3d/example/config/config.json
@@ -47,7 +47,8 @@
      "fullscreenButton": true,
      "navigationHelpButton": true,
      "animation": false,
      "timeline": false,
      "timeline": true,
      "clockAnimate": false,
      "infoBox": false,
      "geocoder": false,
      "selectionIndicator": false,
@@ -98,7 +99,8 @@
        "layer": "img_d",
        "key": [
          "789e558be762ff832392a0393fd8a4f1"
        ]
        ],
        "show": true
      },
      {
        "pid": 10,
@@ -190,8 +192,7 @@
            "type": "tencent",
            "layer": "img_z"
          }
        ],
        "show": true
        ]
      },
      {
        "pid": 10,
public/hn3d/example/css/style.css
@@ -1,6 +1,7 @@
/*
* index页面css
*/
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
public/hn3d/example/test.html
New file
Diff too large
public/hn3d/model/Huanengchangqu_220615/NoLod_0.b3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_1.b3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_10.cmpt
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_11.cmpt
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_12.cmpt
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_13.cmpt
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_14.i3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_2.b3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_3.b3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_4.b3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_5.b3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_6.b3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_7.b3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_8.b3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/NoLod_9.b3dm
Binary files differ
public/hn3d/model/Huanengchangqu_220615/scenetree.json
New file
@@ -0,0 +1 @@
{"scenes":[{"children":[{"id":"17e62166fc8586dfa4d1bc0e1742c08b","name":"Sphere108","sphere":[-2177749.78349154,4388734.04202891,4070062.49131041,0.137699641962398],"type":"element"},{"id":"f7177163c833dff4b38fc8d2872f1ec6","name":"Sphere107","sphere":[-2177749.74468718,4388734.04546029,4070062.508259,0.16011717247244],"type":"element"},{"id":"6c8349cc7260ae62e3b1396831a8398f","name":"Sphere106","sphere":[-2177749.70424309,4388734.05210952,4070062.52263254,0.126347634092918],"type":"element"},{"id":"d9d4f495e875a2e075a1a4a6e1b9770f","name":"Sphere105","sphere":[-2177749.67399296,4388734.05238898,4070062.53841065,0.137699638991045],"type":"element"},{"id":"67c6a1e7ce56d3d6fa748ab6d9af3fd7","name":"Sphere104","sphere":[-2177749.63520601,4388734.05585544,4070062.55531242,0.160117170362109],"type":"element"},{"id":"642e92efb79421734881b53e1e1b18b6","name":"Sphere103","sphere":[-2177749.59478925,4388734.0624911,4070062.56968595,0.12634763038271],"type":"element"},{"id":"f457c545a9ded88f18ecee47145a72c0","name":"Sphere102","sphere":[-2177749.55491224,4388734.07117568,4070062.58157806,0.145856064929221],"type":"element"},{"id":"c0c7c76d30bd3dcaefc96f40275bdc0a","name":"Sphere101","sphere":[-2177749.71352874,4388733.6305299,4070062.96924206,0.160117210240023],"type":"element"},{"id":"2838023a778dfaecdc212708f721b788","name":"Sphere100","sphere":[-2177749.99087706,4388733.2904741,4070063.18606234,0.126347789465322],"type":"element"},{"id":"9a1158154dfa42caddbd0694a4e9bdc8","name":"Sphere099","sphere":[-2177749.91527967,4388733.30036035,4070063.21565215,0.1376997281099],"type":"element"},{"id":"d82c8d1619ad8176d665453cfb2e55f0","name":"Sphere098","sphere":[-2177749.95408402,4388733.29692897,4070063.19870356,0.160117229097262],"type":"element"},{"id":"a684eceee76fc522773286a895bc8436","name":"Sphere097","sphere":[-2177749.95008335,4388733.67361628,4070062.79736832,0.137699714513139],"type":"element"},{"id":"b53b3a3d6ab90ce0268229151c9bde11","name":"Sphere096","sphere":[-2177749.92465643,4388733.71849317,4070062.76281566,0.160117208799166],"type":"element"},{"id":"9f61408e3afb633e50cdf1b20de6f466","name":"Sphere094","sphere":[-2177749.95532368,4388733.33128371,4070063.1612481,0.126347785977612],"type":"element"},{"id":"72b32a1f754ba1c09b3695e0cb6cde7f","name":"Sphere093","sphere":[-2177749.87972629,4388733.34116996,4070063.19083791,0.13769972548519],"type":"element"},{"id":"66f041e16a60928b05a7e228a89c3799","name":"Sphere092","sphere":[-2177749.91853064,4388733.33773858,4070063.17388931,0.160117225576694],"type":"element"},{"id":"093f65e080a295f8076b1c5722a46aa2","name":"Sphere091","sphere":[-2177749.98922487,4388733.33080989,4070063.14373767,0.137699732243412],"type":"element"},{"id":"072b030ba126b2f4b2374f342be9ed44","name":"Sphere090","sphere":[-2177750.02802922,4388733.3273785,4070063.12678908,0.160117225199136],"type":"element"},{"id":"7f39f8317fbdb1988ef4c628eba02591","name":"Sphere089","sphere":[-2177750.06850065,4388733.32071572,4070063.11241554,0.126347787485001],"type":"element"},{"id":"44f683a84163b3523afe57c2e008bc8c","name":"Sphere088","sphere":[-2177749.87860671,4388733.37276126,4070063.15759619,0.126347783414764],"type":"element"},{"id":"03afdbd66e7929b125f8597834fa83a4","name":"Sphere087","sphere":[-2177749.91204544,4388733.37142412,4070063.14125625,0.137699727378216],"type":"element"},{"id":"ea5d2f1c4608232e07d3aa3d998e5135","name":"Sphere086","sphere":[-2177749.95084979,4388733.36799274,4070063.12430765,0.160117222245305],"type":"element"},{"id":"fc490ca45c00b1249bbe3554a4fdf6fb","name":"Sphere085","sphere":[-2177749.99129389,4388733.36134352,4070063.10993412,0.126347785294496],"type":"element"},{"id":"3295c76acbf4caaed33c36b1b5fc2cb1","name":"Sphere084","sphere":[-2177750.02154402,4388733.36106405,4070063.09415601,0.137699730572914],"type":"element"},{"id":"735b90b4568125ed6c3f678819b6e058","name":"Sphere083","sphere":[-2177750.06034838,4388733.35763266,4070063.07720741,0.160117226665198],"type":"element"},{"id":"a3f390d88e4c41f2747bfa2f1b5f87db","name":"Sphere082","sphere":[-2177750.10076513,4388733.35099701,4070063.06283388,0.12634778566684],"type":"element"},{"id":"14bfa6bb14875e45bba028a21ed38046","name":"Sphere081","sphere":[-2177750.05671539,4388733.3860125,4070063.04874127,0.126347784305989],"type":"element"},{"id":"7cbbc409ec990f19c78c75bd1e06f215","name":"Sphere080","sphere":[-2177749.86843082,4388733.40731651,4070063.12599315,0.137699723550247],"type":"element"},{"id":"e2c420d928d4bf8ce0ff2ec19b371514","name":"Sphere079","sphere":[-2177749.90723517,4388733.40388512,4070063.10904455,0.160117221362249],"type":"element"},{"id":"32bb90e8976aab5298d5da10fe66f21d","name":"Sphere078","sphere":[-2177749.94767927,4388733.3972359,4070063.09467102,0.126347784256732],"type":"element"},{"id":"d2ddea18f00665ce8623e36bd4e3c7c5","name":"Sphere077","sphere":[-2177749.981118,4388733.39589876,4070063.07833108,0.137699721900298],"type":"element"},{"id":"ad61ab143223efbc24c7d2583be69251","name":"Sphere076","sphere":[-2177750.01992235,4388733.39246737,4070063.06138248,0.16011722375556],"type":"element"},{"id":"d09bf41544a3365a46c9077ebb5e35c3","name":"Sphere075","sphere":[-2177750.09058924,4388733.38555225,4070063.03123084,0.137699727112954],"type":"element"},{"id":"fbd7939d674997cdb4692d34de8633c4","name":"Sphere074","sphere":[-2177750.1293936,4388733.38212087,4070063.01428224,0.160117227959151],"type":"element"},{"id":"28dd2c7955ce926456240b2ff0100bde","name":"Sphere073","sphere":[-2177750.16982029,4388733.37543657,4070062.99995553,0.126347786136465],"type":"element"},{"id":"35f4a8d465e6e1edc05f3d8ab658c551","name":"Sphere072","sphere":[-2177750.2096973,4388733.36675199,4070062.98806342,0.145856340464733],"type":"element"},{"id":"d1fe173d08e959397adf34b1d77e88d7","name":"Sphere071","sphere":[-2177749.53233736,4388734.06021549,4070062.60531546,0.137699636527214],"type":"element"},{"id":"f033ab37c30201f73f142449d037028d","name":"Sphere070","sphere":[-2177749.493533,4388734.06364687,4070062.62226405,0.160117166938837],"type":"element"},{"id":"43ec517d68b6edd3015b3edc9a11367b","name":"Sphere069","sphere":[-2177749.4530889,4388734.07029609,4070062.63663759,0.126347628377761],"type":"element"},{"id":"9778d5d219c5080b9a6a17bef029331c","name":"Sphere068","sphere":[-2177749.41963277,4388734.07159816,4070062.65302435,0.137699635977776],"type":"element"},{"id":"fe9fc289c3ff0af142b6d3bead98a923","name":"Sphere067","sphere":[-2177749.38082842,4388734.07502954,4070062.66997294,0.16011716232163],"type":"element"},{"id":"68d30a9594728bc39aa24be94b319d21","name":"Sphere066","sphere":[-2177749.34042906,4388734.08170028,4070062.68429966,0.126347629726298],"type":"element"},{"id":"3ef815416f775098fe977004015c6193","name":"Sphere065","sphere":[-2177749.31017893,4388734.08197974,4070062.70007777,0.137699631377024],"type":"element"},{"id":"93db85ed909c13838ff95ccfa94cebd9","name":"Sphere064","sphere":[-2177749.27137458,4388734.08541113,4070062.71702636,0.160117161669227],"type":"element"},{"id":"c7e1249ffc03eb9ded908c236bd1996d","name":"Sphere063","sphere":[-2177749.23093048,4388734.09206035,4070062.7313999,0.126347633289967],"type":"element"},{"id":"2a38a4a9316c49e5a833517c45d31070","name":"Sphere062","sphere":[-2177749.19107088,4388734.10078,4070062.74324518,0.145856065708897],"type":"element"},{"id":"7647966b7343c29048673252e490f736","name":"Sphere061","sphere":[-2177749.7636704,4388733.62090454,4070062.95290211,0.126347778541575],"type":"element"},{"id":"8613985ec49eb8f757ae6439e879bb2a","name":"Sphere060","sphere":[-2177749.8634168,4388733.44005346,4070063.09359418,0.137699723529698],"type":"element"},{"id":"54229abfcfa5649e7003b83dd4755294","name":"Sphere059","sphere":[-2177749.90222116,4388733.43662208,4070063.07664558,0.160117219582588],"type":"element"},{"id":"92cc227532d17e56e07902b254dfad10","name":"Sphere058","sphere":[-2177749.94264785,4388733.42993778,4070063.06231887,0.12634778722556],"type":"element"},{"id":"98dce83da57b0395e163467c9dae521b","name":"Sphere057","sphere":[-2177749.97610398,4388733.42863571,4070063.04593211,0.137699724691039],"type":"element"},{"id":"f4b9ec30ad9f68f89b29639786cb62ef","name":"Sphere056","sphere":[-2177750.01490834,4388733.42520433,4070063.02898351,0.160117222558904],"type":"element"},{"id":"812b4ba287f5ee0bc9d43bbf5bbe87fb","name":"Sphere055","sphere":[-2177750.05535243,4388733.41855511,4070063.01460998,0.126347783464021],"type":"element"},{"id":"26657d5ff9020d2abefe558796b99584","name":"Sphere054","sphere":[-2177750.08558516,4388733.41824056,4070062.99887869,0.137699728192098],"type":"element"},{"id":"e2ef524fbf3d9fe611d5a8e90fefdc9c","name":"Sphere053","sphere":[-2177750.12438951,4388733.41480918,4070062.98193009,0.160117226146151],"type":"element"},{"id":"ed3d2c21991e3bef5e069713af9fa6ca","name":"Sphere052","sphere":[-2177749.9106532,4388733.76661877,4070062.71871186,0.12634777753868],"type":"element"},{"id":"ac627ab1ccbdb62ec96e702f07f6425b","name":"Sphere051","sphere":[-2177750.20466587,4388733.39945387,4070062.95571127,0.145856335854414],"type":"element"},{"id":"f899139df5e1059396431415e770c6dd","name":"Sphere050","sphere":[-2177749.66582997,4388733.6262665,4070062.9991596,0.137699652607539],"type":"element"},{"id":"38b3eff8baf56627478ec76a704e9b52","name":"Sphere049","sphere":[-2177749.96339832,4388733.6265753,4070062.84067619,0.160117192120852],"type":"element"},{"id":"ec8956637a99787bd197eacd77acce5e","name":"Sphere048","sphere":[-2177749.93464325,4388733.60858425,4070062.87522885,0.12634764130315],"type":"element"},{"id":"6974ce5ac660610b44d9b9fed0ff9548","name":"Sphere047","sphere":[-2177749.61174166,4388733.63693229,4070063.01648275,0.137699651694426],"type":"element"},{"id":"c9e1074f5b3f9fc8ea15d152add07294","name":"Sphere046","sphere":[-2177749.55635203,4388733.64037559,4070063.04223338,0.160117184557948],"type":"element"},{"id":"65b9eea6e1cc6bb9f0cd2a47751a186f","name":"Sphere045","sphere":[-2177749.88261824,4388733.60878434,4070062.90266498,0.126347639088016],"type":"element"},{"id":"f0935e4cd5920aa6c7c996a5ee53a70f","name":"Sphere044","sphere":[-2177749.50224308,4388733.64729236,4070063.06358299,0.13769964912703],"type":"element"},{"id":"a97da629b098b75c294dffdc3e463904","name":"Sphere043","sphere":[-2177749.44547666,4388733.65146255,4070063.0892868,0.16011718011285],"type":"element"},{"id":"a3c65c2974270fd093ee8a9bf8ae7d0b","name":"Sphere042","sphere":[-2177749.72358416,4388733.53380392,4070063.10556087,0.169195483570744],"type":"element"},{"id":"2723d092b63885e0d7c260cc007e8b9d","name":"Sphere041","sphere":[-2177749.68303477,4388733.53591559,4070063.12485043,0.16919548502783],"type":"element"},{"id":"5f93f983524def3dca464469d2cf9f3e","name":"Sphere040","sphere":[-2177749.64248537,4388733.53802727,4070063.14414,0.169195484276245],"type":"element"},{"id":"698d51a19d8a121ce581499d7b701668","name":"Sphere039","sphere":[-2177749.60195339,4388733.54017402,4070063.16338274,0.169195481560251],"type":"element"},{"id":"7f6ffaa6bb0b408017b62254211691b5","name":"Sphere038","sphere":[-2177749.56140399,4388733.5422857,4070063.1826723,0.169195481334791],"type":"element"},{"id":"73278a4a86960eeb576a8fd4c9ec6997","name":"Sphere037","sphere":[-2177749.5208546,4388733.54439737,4070063.20196186,0.169195482330637],"type":"element"},{"id":"5fd0b37cd7dbbb00f97ba6ce92bf5add","name":"Sphere036","sphere":[-2177749.83319651,4388733.61416207,4070062.92317184,0.126347641031395],"type":"element"},{"id":"2b44928ae11fb9384c4cf38708677c48","name":"Sphere035","sphere":[-2177749.38316236,4388733.66607905,4070063.10675041,0.145856077340043],"type":"element"},{"id":"c45147dee729311ef5b5c3003946c48f","name":"Sphere033","sphere":[-2177749.95446215,4388733.17973954,4070063.36208415,0.259895260969882],"type":"element"},{"id":"eb160de1de89d9058fcb0b968dbbbd68","name":"Sphere032","sphere":[-2177749.93113003,4388734.53818165,4070061.91948717,0.25989521599962],"type":"element"},{"id":"5ef059938ba799aaa845e1c2e8a762bd","name":"Sphere031","sphere":[-2177749.94728276,4388734.48807147,4070061.96457418,0.25989521810385],"type":"element"},{"id":"07e1cd7dca89a1678042477183b7ac3f","name":"Sphere030","sphere":[-2177749.96340815,4388734.43797486,4070062.00966119,0.259895216724853],"type":"element"},{"id":"da4fb5c6e93e74d3df8527599fa62642","name":"Sphere029","sphere":[-2177749.97956087,4388734.38786468,4070062.0547482,0.259895220297104],"type":"element"},{"id":"4c56ff4ce4aaf9573aa5dff913df997a","name":"Sphere028","sphere":[-2177749.9957136,4388734.3377545,4070062.09983521,0.259895220435995],"type":"element"},{"id":"a0a080f42e6f13b3a2df133f073095dd","name":"Sphere027","sphere":[-2177750.01183899,4388734.28765789,4070062.14492221,0.259895219834094],"type":"element"},{"id":"202cb962ac59075b964b07152d234b70","name":"Sphere025","sphere":[-2177750.02156723,4388734.23929312,4070062.19155426,0.259895221927952],"type":"element"},{"id":"c8ffe9a587b126f152ed3d89a146b445","name":"Sphere024","sphere":[-2177750.03771995,4388734.18918294,4070062.23664127,0.259895222938148],"type":"element"},{"id":"3def184ad8f4755ff269862ea77393dd","name":"Sphere023","sphere":[-2177750.05387268,4388734.13907276,4070062.28172828,0.259895225803916],"type":"element"},{"id":"069059b7ef840f0c74a814ec9237b6ec","name":"Sphere022","sphere":[-2177750.0700254,4388734.08896259,4070062.32681528,0.25989522689795],"type":"element"},{"id":"ec5decca5ed3d6b8079e2e7e7bacc9f2","name":"Sphere021","sphere":[-2177750.08613339,4388734.0388309,4070062.37194911,0.259895229266398],"type":"element"},{"id":"76dc611d6ebaafc66cc0879c71b5db5c","name":"Sphere020","sphere":[-2177750.10228612,4388733.98872072,4070062.41703612,0.259895234071574],"type":"element"},{"id":"d1f491a404d6854880943e5c3cd9ca25","name":"Sphere019","sphere":[-2177750.11843884,4388733.93861054,4070062.46212313,0.259895230261036],"type":"element"},{"id":"9b8619251a19057cff70779273e95aa6","name":"Sphere018","sphere":[-2177750.13456423,4388733.88851393,4070062.50721014,0.259895235584276],"type":"element"},{"id":"1afa34a7f984eeabdbb0a7d494132ee5","name":"Sphere017","sphere":[-2177750.15071696,4388733.83840375,4070062.55229714,0.259895239643473],"type":"element"},{"id":"65ded5353c5ee48d0b7d48c591b8f430","name":"Sphere016","sphere":[-2177750.16686969,4388733.78829357,4070062.59738415,0.259895241140616],"type":"element"},{"id":"9fc3d7152ba9336a670e36d0ed79bc43","name":"Sphere015","sphere":[-2177750.18299508,4388733.73819696,4070062.64247116,0.259895243514251],"type":"element"},{"id":"02522a2b2726fb0a03bb19f2d8d9524d","name":"Sphere014","sphere":[-2177750.1991304,4388733.68805171,4070062.68760499,0.25989524511079],"type":"element"},{"id":"7f1de29e6da19d22b51c68001e7e0e54","name":"Sphere013","sphere":[-2177750.21528312,4388733.63794153,4070062.73269199,0.259895247827294],"type":"element"},{"id":"42a0e188f5033bc65bf8d78622277c4e","name":"Sphere012","sphere":[-2177750.23140851,4388733.58784491,4070062.777779,0.259895249847687],"type":"element"},{"id":"3988c7f88ebcb58c6ce932b957b6f332","name":"Sphere011","sphere":[-2177750.24756124,4388733.53773473,4070062.82286601,0.25989525033982],"type":"element"},{"id":"013d407166ec4fa56eb1e1f8cbe183b9","name":"Sphere010","sphere":[-2177750.26371397,4388733.48762456,4070062.86795302,0.259895257976455],"type":"element"},{"id":"e00da03b685a0dd18fb6a08af0923de0","name":"Sphere009","sphere":[-2177750.27983936,4388733.43752794,4070062.91304003,0.259895257762104],"type":"element"},{"id":"1385974ed5904a438616ff7bdb3f7439","name":"Sphere008","sphere":[-2177750.29599208,4388733.38741777,4070062.95812703,0.259895255916905],"type":"element"},{"id":"0f28b5d49b3020afeecd95b4009adf4c","name":"Sphere007","sphere":[-2177750.3121274,4388733.33727251,4070063.00326086,0.259895259374201],"type":"element"},{"id":"a8baa56554f96369ab93e4f3bb068c22","name":"Sphere006","sphere":[-2177750.3282528,4388733.2871759,4070063.04834787,0.259895260622685],"type":"element"},{"id":"903ce9225fca3e988c2af215d4e544d3","name":"Sphere005","sphere":[-2177750.34440552,4388733.23706572,4070063.09343488,0.259895265707638],"type":"element"},{"id":"0a09c8844ba8f0936c20bd791130d6b6","name":"Sphere001","sphere":[-2177747.61847078,4388733.53880148,4070064.57140577,1.68832130058653],"type":"element"},{"id":"2b24d495052a8ce66358eb576b8912c8","name":"Shuiguan_013","sphere":[-2177748.23478976,4388733.83888152,4070063.57521819,0.230698270496954],"type":"element"},{"id":"a5e00132373a7031000fd987a3c9f87b","name":"Shuiguan_012","sphere":[-2177748.16832419,4388733.85048731,4070063.59811284,0.230698268060496],"type":"element"},{"id":"8d5e957f297893487bd98fa830fa6413","name":"Shuiguan_011","sphere":[-2177748.83201583,4388733.6862123,4070063.42132308,0.230698259438533],"type":"element"},{"id":"47d1e990583c9c67424d369f3414728e","name":"Shuiguan_010","sphere":[-2177748.76556767,4388733.69785316,4070063.44417091,0.230698259578769],"type":"element"},{"id":"f2217062e9a397a1dca429e7d70bc6ca","name":"Shuiguan_009","sphere":[-2177751.63486624,4388734.3874553,4070061.20424845,0.172402454312286],"type":"element"},{"id":"7ef605fc8dba5425d6965fbd4c8fbe1f","name":"Shuiguan_008","sphere":[-2177751.61183803,4388734.44609153,4070061.15368358,0.172402454329907],"type":"element"},{"id":"a8f15eda80c50adb0e71943adc8015cf","name":"Shuiguan_007","sphere":[-2177751.58686386,4388734.5214032,4070061.06261223,0.314181900219476],"type":"element"},{"id":"37a749d808e46495a8da1e5352d03cae","name":"shuiguan_006","sphere":[-2177748.7820738,4388734.48294469,4070062.60611239,0.316293404097552],"type":"element"},{"id":"b3e3e393c77e35a4a3f3cbd1e429b5dc","name":"Shuiguan_006","sphere":[-2177751.54899467,4388734.61494249,4070060.98255119,0.314181901476752],"type":"element"},{"id":"1d7f7abc18fcb43975065399b0d1e48e","name":"shuiguan_005","sphere":[-2177748.73532426,4388734.63898423,4070062.46382847,0.316293403094313],"type":"element"},{"id":"2a79ea27c279e471f4d180b08d62b00a","name":"Shuiguan_005","sphere":[-2177749.00352385,4388733.80205346,4070063.20609447,0.31418182970877],"type":"element"},{"id":"1c9ac0159c94d8d0cbedc973445af2da","name":"shuiguan_004","sphere":[-2177750.05525712,4388735.98233129,4070060.35228241,0.402620555971388],"type":"element"},{"id":"6c4b761a28b734fe93831e3fb400ce87","name":"Shuiguan_004","sphere":[-2177748.9761219,4388733.88860657,4070063.12795302,0.314181829566228],"type":"element"},{"id":"06409663226af2f3114485aa4e0a23b4","name":"shuiguan_03","sphere":[-2177748.48442867,4388734.7033179,4070062.53215204,0.387282966568455],"type":"element"},{"id":"140f6969d5213fd0ece03148e62e461e","name":"shuiguan_003","sphere":[-2177750.0411292,4388736.07799037,4070060.25733283,0.402620560255861],"type":"element"},{"id":"b73ce398c39f506af761d2277d853a92","name":"Shuiguan_003","sphere":[-2177748.94667936,4388733.98731888,4070063.03787264,0.314181821739022],"type":"element"},{"id":"bd4c9ab730f5513206b999ec0d90d1fb","name":"Shuiguan_002","sphere":[-2177748.91928734,4388734.07382334,4070062.95977801,0.314181816914886],"type":"element"},{"id":"82aa4b0af34c2313a562076992e50aa3","name":"shuiguan_01","sphere":[-2177750.60807761,4388735.1189827,4070060.87997284,0.507380070106943],"type":"element"},{"id":"0777d5c17d4066b82ab86dff8a46af6f","name":"Shuiguan_001","sphere":[-2177750.84477468,4388734.85730549,4070061.11572917,0.325083557418869],"type":"element"},{"id":"fa7cdfad1a5aaf8370ebeda47a1ff1c3","name":"Shuiguan_00","sphere":[-2177750.6375849,4388735.02244965,4070061.04896482,0.325083551444871],"type":"element"},{"id":"9766527f2b5d3e95d4a733fcfb77bd7e","name":"Rectangle4565","sphere":[-2177747.71838106,4388734.43705724,4070063.26686443,2.32053560415352],"type":"element"},{"id":"7e7757b1e12abcb736ab9a754ffb617a","name":"Object132","sphere":[-2177748.55997863,4388735.06246592,4070062.14044458,0.818612565137441],"type":"element"},{"id":"5878a7ab84fb43402106c575658472fa","name":"Object131","sphere":[-2177748.49833052,4388734.57792457,4070062.64022578,0.355769099031432],"type":"element"},{"id":"006f52e9102a8d3be2fe5614f42ba989","name":"Object130","sphere":[-2177748.5390338,4388734.32094799,4070062.89383464,0.500806761892834],"type":"element"},{"id":"3636638817772e42b59d74cff571fbb3","name":"Object129","sphere":[-2177747.53531333,4388735.06221942,4070062.73365383,1.72052108721579],"type":"element"},{"id":"149e9677a5989fd342ae44213df68868","name":"Object128","sphere":[-2177748.91533104,4388735.09576071,4070061.9642719,1.7205210394409],"type":"element"},{"id":"a4a042cf4fd6bfb47701cbc8a1653ada","name":"Object126","sphere":[-2177748.55657896,4388734.77030338,4070062.40321495,0.500806765256929],"type":"element"},{"id":"1ff8a7b5dc7a7d1f0ed65aaa29c04b1e","name":"Object125","sphere":[-2177747.75860318,4388733.81684592,4070063.84576965,0.50332779878288],"type":"element"},{"id":"f7e6c85504ce6e82442c770f7c8606f0","name":"Object123","sphere":[-2177747.70582952,4388732.99711963,4070064.79227751,0.438482365487525],"type":"element"},{"id":"bf8229696f7a3bb4700cfddef19fa23f","name":"Object122","sphere":[-2177747.96824195,4388735.17703583,4070062.34974945,2.53316299634204],"type":"element"},{"id":"82161242827b703e6acf9c726942a1e4","name":"Object121","sphere":[-2177748.25256766,4388734.44743979,4070062.91249977,0.15291636536914],"type":"element"},{"id":"38af86134b65d0f10fe33d30dd76442e","name":"Object120","sphere":[-2177748.22895988,4388734.50374087,4070062.86474406,0.152916365380807],"type":"element"},{"id":"96da2f590cd7246bbde0051047b0d6f7","name":"Object119","sphere":[-2177748.20336918,4388734.56229356,4070062.81563059,0.152916364606002],"type":"element"},{"id":"8f85517967795eeef66c225f7883bdcb","name":"Object118","sphere":[-2177748.17848432,4388734.62075828,4070062.7662362,0.15291636262157],"type":"element"},{"id":"8f53295a73878494e9bc8dd6c3c7104f","name":"Object117","sphere":[-2177748.15315734,4388734.68066632,4070062.71553088,0.152916361858433],"type":"element"},{"id":"045117b0e0a11a242b9765e79cbf113f","name":"Object116","sphere":[-2177748.12780529,4388734.739494,4070062.66599603,0.152916360101113],"type":"element"},{"id":"fc221309746013ac554571fbd180e1c8","name":"Object115","sphere":[-2177748.10366354,4388734.79780854,4070062.61636755,0.152916363400994],"type":"element"},{"id":"4c5bde74a8f110656874902f07378009","name":"Object114","sphere":[-2177748.07807284,4388734.85636123,4070062.56725408,0.152916364011642],"type":"element"},{"id":"cedebb6e872f539bef8c3f919874e9d7","name":"Object113","sphere":[-2177748.05248213,4388734.91491392,4070062.51814061,0.152916363248504],"type":"element"},{"id":"6cdd60ea0045eb7a6ec44c54d29ed402","name":"Object112","sphere":[-2177748.02493878,4388734.97797624,4070062.46523478,0.152916362598923],"type":"element"},{"id":"eecca5b6365d9607ee5a9d336962c534","name":"Object111","sphere":[-2177747.99990542,4388735.03957451,4070062.41256304,0.152916360602824],"type":"element"},{"id":"9872ed9fc22fc182d371c3e9ed316094","name":"Object110","sphere":[-2177747.97329399,4388735.10204326,4070062.35979766,0.152916364536687],"type":"element"},{"id":"31fefc0e570cb3860f2a6d4b38c6490d","name":"Object109","sphere":[-2177747.94662769,4388735.16357757,4070062.30806231,0.152916358383414],"type":"element"},{"id":"9dcb88e0137649590b755372b040afad","name":"Object108","sphere":[-2177747.92037921,4388735.22643448,4070062.25468828,0.152916359225107],"type":"element"},{"id":"a2557a7b2e94197ff767970b67041697","name":"Object107","sphere":[-2177747.89398628,4388735.28783313,4070062.20295293,0.152916358681347],"type":"element"},{"id":"cfecdb276f634854f3ef915e2e980c31","name":"Object106","sphere":[-2177747.8673476,4388735.35079624,4070062.14967254,0.152916359303662],"type":"element"},{"id":"0aa1883c6411f7873cb83dacb17b0afc","name":"Object105","sphere":[-2177747.84136473,4388735.41199142,4070062.09793719,0.15291635937055],"type":"element"},{"id":"58a2fc6ed39fd083f55d4182bf88826d","name":"Object104","sphere":[-2177747.81523278,4388735.47343543,4070062.04601456,0.152916362497721],"type":"element"},{"id":"bd686fd640be98efaae0091fa301e613","name":"Object103","sphere":[-2177747.78888223,4388735.53546874,4070061.99357692,0.152916362337497],"type":"element"},{"id":"a597e50502f5ff68e3e25b9114205d4a","name":"Object102","sphere":[-2177747.76253168,4388735.59750205,4070061.94113928,0.15291636406755],"type":"element"},{"id":"0336dcbab05b9d5ad24f4333c7658a0e","name":"Object101","sphere":[-2177747.73597984,4388735.65967896,4070061.88865482,0.152916364423818],"type":"element"},{"id":"084b6fbb10729ed4da8c3d3f5a3ae7c9","name":"Object100","sphere":[-2177747.7091148,4388735.7217053,4070061.83649809,0.152916364909243],"type":"element"},{"id":"85d8ce590ad8981ca2c8286f79f59954","name":"Object099","sphere":[-2177747.6830153,4388735.7838326,4070061.78382635,0.152916367355765],"type":"element"},{"id":"0e65972dce68dad4d52d063967f0a705","name":"Object098","sphere":[-2177747.65608812,4388735.84580234,4070061.73176327,0.152916368600394],"type":"element"},{"id":"84d9ee44e457ddef7f2c4f25dc8fa865","name":"Object097","sphere":[-2177750.18732973,4388735.40028732,4070060.87214001,0.647758490844824],"type":"element"},{"id":"3644a684f98ea8fe223c713b77189a77","name":"Object096","sphere":[-2177751.13531949,4388734.53732137,4070061.29576134,0.124931042607257],"type":"element"},{"id":"757b505cfd34c64c85ca5b5690ee5293","name":"Object095","sphere":[-2177751.07355266,4388734.54288003,4070061.32263563,0.124931042994356],"type":"element"},{"id":"854d6fae5ee42911677c739ee1734486","name":"Object094","sphere":[-2177751.00921104,4388734.54901694,4070061.35025903,0.124931041115107],"type":"element"},{"id":"e2c0be24560d78c5e599c2a9c9d0bbd2","name":"Object093","sphere":[-2177750.94664651,4388734.5552337,4070061.37685241,0.124931037022698],"type":"element"},{"id":"274ad4786c3abca69fa097b85867d9a4","name":"Object092","sphere":[-2177750.88258328,4388734.56145103,4070061.40424171,0.124931040375256],"type":"element"},{"id":"eae27d77ca20db309e056e3d2dcd7d69","name":"Object091","sphere":[-2177750.81915371,4388734.56709165,4070061.43191193,0.124931037063497],"type":"element"},{"id":"7eabe3a1649ffa2b3ff8c02ebfd5659f","name":"Object090","sphere":[-2177750.75651209,4388734.57308439,4070061.45878622,0.124931035379862],"type":"element"},{"id":"69adc1e107f7f7d035d7baf04342e1ca","name":"Object089","sphere":[-2177750.69335845,4388734.57893779,4070061.48608189,0.124931037555222],"type":"element"},{"id":"091d584fced301b442654dd8c23b3fc9","name":"Object088","sphere":[-2177750.6301105,4388734.58549368,4070061.51267526,0.12493103541121],"type":"element"},{"id":"b1d10e7bafa4421218a51b1e1f1b0ba2","name":"Object087","sphere":[-2177750.36673138,4388734.60705582,4070061.62721093,0.174910396975084],"type":"element"},{"id":"6f3ef77ac0e3619e98159e9b6febf557","name":"Object086","sphere":[-2177750.28223817,4388734.61466831,4070061.6639641,0.17491039047655],"type":"element"},{"id":"eb163727917cbba1eea208541a643e74","name":"Object085","sphere":[-2177750.19426304,4388734.62309063,4070061.70170047,0.174910391418259],"type":"element"},{"id":"1534b76d325a8f591b52d302e7181331","name":"Object084","sphere":[-2177750.10870625,4388734.63158058,4070061.73807909,0.174910388116666],"type":"element"},{"id":"979d472a84804b9f647bc185a877a8b5","name":"Object083","sphere":[-2177750.02107165,4388734.6401399,4070061.77548773,0.174910386968549],"type":"element"},{"id":"ca46c1b9512a7a8315fa3c5a946e8265","name":"Object082","sphere":[-2177749.93431173,4388734.64778436,4070061.81341138,0.174910381452001],"type":"element"},{"id":"3b8a614226a953a8cd9526fca6fe9ba5","name":"Object081","sphere":[-2177749.84864304,4388734.65598015,4070061.85016455,0.174910381079461],"type":"element"},{"id":"45fbc6d3e05ebd93369ce542e8f2322d","name":"Object080","sphere":[-2177749.76225601,4388734.66396412,4070061.88752637,0.174910381029167],"type":"element"},{"id":"63dc7ed1010d3c3b8269faf0ba7491d4","name":"Object079","sphere":[-2177749.67575982,4388734.67296393,4070061.92385816,0.174910374252004],"type":"element"},{"id":"e96ed478dab8595a7dbda4cbcbee168f","name":"Object078","sphere":[-2177749.34117249,4388735.45186109,4070061.27303819,0.535763356961356],"type":"element"},{"id":"c0e190d8267e36708f955d7ab048990d","name":"Object077","sphere":[-2177749.3062886,4388735.2670917,4070061.51403851,2.15042325746122],"type":"element"},{"id":"ec8ce6abb3e952a85b8551ba726a1227","name":"Object075","sphere":[-2177749.39926593,4388734.68958509,4070062.05861962,0.567506883325469],"type":"element"},{"id":"060ad92489947d410d897474079c1477","name":"Object074","sphere":[-2177748.14071108,4388733.27595172,4070064.31935571,1.74317273981099],"type":"element"},{"id":"bcbe3365e6ac95ea2c0343a2395834dd","name":"Object073","sphere":[-2177748.23587622,4388732.91585925,4070064.59760267,0.618705678570491],"type":"element"},{"id":"115f89503138416a242f40fb7d7f338e","name":"Object072","sphere":[-2177747.98438404,4388733.79729747,4070063.94694075,0.929877319917156],"type":"element"},{"id":"13fe9d84310e77f13a6d184dbf1232f3","name":"Object071","sphere":[-2177750.51736458,4388735.8840291,4070060.37467707,1.13721747412398],"type":"element"},{"id":"d1c38a09acc34845c6be3a127a5aacaf","name":"Object070","sphere":[-2177750.91395386,4388735.85382382,4070060.19624863,1.13721754510217],"type":"element"},{"id":"9cfdf10e8fc047a44b08ed031e1f0ed1","name":"Object069","sphere":[-2177750.1166078,4388733.14856143,4070063.57842223,0.446853630699654],"type":"element"},{"id":"705f2172834666788607efbfca35afb3","name":"Object068","sphere":[-2177750.08125574,4388733.07783839,4070063.51177305,0.739978458207708],"type":"element"},{"id":"74db120f0a8e5646ef5a30154e9f6deb","name":"Object067","sphere":[-2177747.55576808,4388734.47647381,4070063.24945445,0.379993777534392],"type":"element"},{"id":"57aeee35c98205091e18d1140e9f38cf","name":"Object066","sphere":[-2177747.57978241,4388734.39002805,4070063.3292814,0.379993784011461],"type":"element"},{"id":"6da9003b743b65f4c0ccd295cc484e57","name":"Object065","sphere":[-2177746.81701021,4388734.71116201,4070063.40358829,0.45500142716522],"type":"element"},{"id":"9b04d152845ec0a378394003c96da594","name":"Object063","sphere":[-2177748.20486644,4388733.93072025,4070063.44822085,0.417374290715011],"type":"element"},{"id":"be83ab3ecd0db773eb2dc1b0a17836a1","name":"Object059","sphere":[-2177748.06073496,4388734.39472004,4070063.05969598,0.728320110471837],"type":"element"},{"id":"e165421110ba03099a1c0393373c5b43","name":"Object058","sphere":[-2177748.29374333,4388734.40354149,4070062.99095714,0.466255983929132],"type":"element"},{"id":"289dff07669d7a23de0ef88d2f7129e7","name":"Object057","sphere":[-2177747.88325476,4388734.41836875,4070063.15397092,0.371114740581182],"type":"element"},{"id":"577ef1154f3240ad5b9b413aa7346a1e","name":"Object056","sphere":[-2177747.8824871,4388734.16905016,4070063.49666293,1.09628509640497],"type":"element"},{"id":"01161aaa0b6d1345dd8fe4e481144d84","name":"Object055","sphere":[-2177747.8737852,4388734.05778909,4070063.58448577,0.374602949839687],"type":"element"},{"id":"539fd53b59e3bb12d203f45a912eeaf2","name":"Object054","sphere":[-2177747.77124019,4388734.4697072,4070063.25239604,0.639623647277707],"type":"element"},{"id":"ac1dd209cbcc5e5d1c6e28598e8cbbe8","name":"Object045","sphere":[-2177747.96628216,4388734.56722263,4070062.94331264,0.570854041862503],"type":"element"},{"id":"555d6702c950ecb729a966504af0a635","name":"Object043","sphere":[-2177746.99396028,4388735.75475351,4070062.38295671,1.76030506918261],"type":"element"},{"id":"335f5352088d7d9bf74191e006d8e24c","name":"Object042","sphere":[-2177747.56218642,4388735.7017572,4070062.13771709,1.76030504414422],"type":"element"},{"id":"f340f1b1f65b6df5b5e3f94d95b11daf","name":"Object041","sphere":[-2177748.37904555,4388735.67540657,4070061.73179357,1.76030499706037],"type":"element"},{"id":"e4a6222cdb5b34375400904f03d8e6a5","name":"Object040","sphere":[-2177748.89885942,4388735.61718955,4070061.51787608,1.760304988462],"type":"element"},{"id":"cb70ab375662576bd1ac5aaf16b3fca4","name":"Object039","sphere":[-2177749.77587502,4388735.89952909,4070060.55087506,0.416373993751527],"type":"element"},{"id":"9188905e74c28e489b44e954ec0b9bca","name":"Object037","sphere":[-2177749.96308226,4388735.76906064,4070060.65088869,1.12448970121914],"type":"element"},{"id":"0266e33d3f546cb5436a10798e657d97","name":"Object033","sphere":[-2177751.31771163,4388735.80126515,4070060.03795249,1.13721760880429],"type":"element"},{"id":"38db3aed920cf82ab059bfccbd02be6a","name":"Object031","sphere":[-2177750.63835248,4388735.51706814,4070060.68597128,0.842772971038803],"type":"element"},{"id":"3cec07e9ba5f5bb252d13f5f431e4bbb","name":"Object030","sphere":[-2177750.97710416,4388735.50095783,4070060.52318575,0.85450762202883],"type":"element"},{"id":"621bf66ddb7c962aa0d22ac97d69b793","name":"Object029","sphere":[-2177751.38273242,4388735.46713574,4070060.34382714,0.84670614075161],"type":"element"},{"id":"077e29b11be80ab57e1a2ecabb7da330","name":"Object027","sphere":[-2177748.74001254,4388734.6736452,4070062.50182449,0.338954584059107],"type":"element"},{"id":"6c9882bbac1c7093bd25041881277658","name":"Object026","sphere":[-2177748.78676208,4388734.51760567,4070062.64410841,0.338954588347928],"type":"element"},{"id":"19f3cd308f1455b3fa09a282e0d496f4","name":"Object025","sphere":[-2177747.6279442,4388734.60137602,4070063.11336164,0.678664545077674],"type":"element"},{"id":"03c6b06952c750899bb03d998e631860","name":"Object024","sphere":[-2177750.62130265,4388735.12836997,4070060.90498866,0.463256123857219],"type":"element"},{"id":"c24cd76e1ce41366a4bbe8a49b02a028","name":"Object018","sphere":[-2177750.78253113,4388732.81176709,4070063.5229004,0.721925478158967],"type":"element"},{"id":"c52f1bd66cc19d05628bd8bf27af3ad6","name":"Object014","sphere":[-2177749.76477492,4388733.38776461,4070063.27572808,0.744313067829448],"type":"element"},{"id":"fe131d7f5a6b38b23cc967316c13dae2","name":"Object009","sphere":[-2177749.40949369,4388734.12629811,4070062.5931429,2.27156960004966],"type":"element"},{"id":"f718499c1c8cef6730f9fd03c8125cab","name":"Mesh1","sphere":[-2177749.79900023,4388732.90579291,4070063.85149608,2.16498160136605],"type":"element"},{"id":"d96409bf894217686ba124d7356686c9","name":"Line033","sphere":[-2177748.70861436,4388735.12449354,4070061.88536534,10.8001506785377],"type":"element"},{"id":"502e4a16930e414107ee22b6198c578f","name":"Cylinder037","sphere":[-2177748.93046472,4388733.36934704,4070063.7112267,0.391928355354958],"type":"element"},{"id":"cfa0860e83a4c3a763a7e62d825349f7","name":"Cylinder036","sphere":[-2177748.44358746,4388736.08063344,4070061.03350945,0.170726601744681],"type":"element"},{"id":"a4f23670e1833f3fdb077ca70bbd5d66","name":"Cylinder035","sphere":[-2177746.55632,4388736.37957674,4070061.71636928,0.187993470846317],"type":"element"},{"id":"b1a59b315fc9a3002ce38bbe070ec3f5","name":"Cylinder034","sphere":[-2177746.5981058,4388736.29633342,4070061.78332091,0.187993468430293],"type":"element"},{"id":"36660e59856b4de58a219bcf4e27eba3","name":"Cylinder027","sphere":[-2177748.22250015,4388733.57704445,4070063.92541292,0.320395647661558],"type":"element"},{"id":"8c19f571e251e61cb8dd3612f26d5ecf","name":"Cylinder026","sphere":[-2177748.34900361,4388733.56449719,4070063.87161752,0.320395638618801],"type":"element"},{"id":"d6baf65e0b240ce177cf70da146c8dc8","name":"Cylinder021","sphere":[-2177749.09885628,4388736.02955651,4070060.7399523,0.170726595242672],"type":"element"},{"id":"e56954b4f6347e897f954495eab16a88","name":"Cylinder015","sphere":[-2177750.98409614,4388734.93595013,4070060.88788119,0.143605210127026],"type":"element"},{"id":"f7664060cc52bc6f3d620bcedc94a4b6","name":"Cylinder014","sphere":[-2177750.8864924,4388734.94412337,4070060.93100179,0.143605205746313],"type":"element"},{"id":"eda80a3d5b344bc40f3bc04f65b7a357","name":"Cylinder013","sphere":[-2177748.45683569,4388733.56025325,4070063.81885214,0.320395635060941],"type":"element"},{"id":"8f121ce07d74717e0b1f21d122e04521","name":"Cylinder002","sphere":[-2177748.88831624,4388733.50321436,4070063.59024556,0.391928349384791],"type":"element"},{"id":"06138bc5af6023646ede0e1f7c1eac75","name":"changlou005","sphere":[-2177750.35888799,4388734.43203512,4070061.80141809,0.7442434894779],"type":"element"},{"id":"39059724f73a9969845dfe4146c5660e","name":"changlou004","sphere":[-2177748.6626794,4388733.98009403,4070063.1869891,0.813224068515097],"type":"element"},{"id":"7f100b7b36092fb9b06dfb4fac360931","name":"changlou003","sphere":[-2177748.00463541,4388734.04885274,4070063.46308265,0.877035088469394],"type":"element"},{"id":"7a614fd06c325499f1680b9896beedeb","name":"changlou002","sphere":[-2177748.57905122,4388735.98576785,4070061.17972963,2.25176378602901],"type":"element"},{"id":"4734ba6f3de83d861c3176a6273cac6d","name":"changlou001","sphere":[-2177747.11341572,4388736.1277716,4070061.80659355,2.25176391416403],"type":"element"},{"id":"d947bf06a885db0d477d707121934ff8","name":"Capsule005","sphere":[-2177749.83841723,4388736.29774628,4070060.0580189,0.083060041992689],"type":"element"},{"id":"63923f49e5241343aa7acb6a06a751e7","name":"Capsule004","sphere":[-2177749.84569496,4388736.27485783,4070060.07866622,0.0830600416068938],"type":"element"},{"id":"db8e1af0cb3aca1ae2d0018624204529","name":"Capsule003","sphere":[-2177749.88014173,4388736.29312816,4070060.04078939,0.0830600443538488],"type":"element"},{"id":"20f07591c6fcb220ffe637cda29bb3f6","name":"Capsule002","sphere":[-2177749.88739212,4388736.27025327,4070060.06143671,0.0830600410373493],"type":"element"},{"id":"07cdfd23373b17c6b337251c22b7ea57","name":"Capsule001","sphere":[-2177749.89641677,4388736.24566745,4070060.0829736,0.0830600382840007],"type":"element"},{"id":"d395771085aab05244a4fb8fd91bf4ee","name":"Box124","sphere":[-2177748.90643192,4388732.83139549,4070064.33571896,0.396872060326018],"type":"element"},{"id":"92c8c96e4c37100777c7190b76d28233","name":"Box123","sphere":[-2177749.10500185,4388732.69431536,4070064.37032899,0.358291164653713],"type":"element"},{"id":"e3796ae838835da0b6f6ea37bcf8bcb7","name":"Box122","sphere":[-2177748.97714109,4388732.77448854,4070064.50771739,0.946528955609092],"type":"element"},{"id":"6a9aeddfc689c1d0e3b9ccc3ab651bc5","name":"Box120","sphere":[-2177751.50999686,4388732.60460886,4070063.21636597,0.934719761958691],"type":"element"},{"id":"0f49c89d1e7298bb9930789c8ed59d48","name":"Box119","sphere":[-2177750.15946624,4388732.75704049,4070063.87971354,2.87000976810352],"type":"element"},{"id":"46ba9f2a6976570b0353203ec4474217","name":"Box118","sphere":[-2177751.87216964,4388732.56501196,4070063.04316009,0.298040475788569],"type":"element"},{"id":"0e01938fc48a2cfb5f2217fbfb00722d","name":"Box117","sphere":[-2177751.15400066,4388732.63185904,4070063.36190883,0.387190375262403],"type":"element"},{"id":"16a5cdae362b8d27a1d8f8c7b78b4330","name":"Box116","sphere":[-2177750.8979648,4388734.58922185,4070061.43028718,0.930425893641766],"type":"element"},{"id":"918317b57931b6b7a7d29490fe5ec9f9","name":"Box115","sphere":[-2177748.94125739,4388733.39638363,4070063.73764223,0.233765072444351],"type":"element"},{"id":"48aedb8880cab8c45637abc7493ecddd","name":"Box114","sphere":[-2177748.90644338,4388733.53006475,4070063.61296237,0.234947914715101],"type":"element"},{"id":"839ab46820b524afda05122893c2fe8e","name":"Box108","sphere":[-2177748.64199456,4388736.13005401,4070060.87630872,0.289615277448108],"type":"element"},{"id":"f90f2aca5c640289d0a29417bcb63a37","name":"Box106","sphere":[-2177747.7183499,4388732.88126274,4070064.86568962,0.376749641075751],"type":"element"},{"id":"9c838d2e45b2ad1094d42f4ef36764f6","name":"Box105","sphere":[-2177748.0010992,4388732.93910672,4070064.65345763,0.682004247863587],"type":"element"},{"id":"1700002963a49da13542e0726b7bb758","name":"Box103","sphere":[-2177748.54089412,4388732.83464987,4070064.478447,0.874812091244416],"type":"element"},{"id":"53c3bce66e43be4f209556518c2fcb54","name":"Box101","sphere":[-2177750.69408127,4388732.53130635,4070063.65896844,4.6720302379009],"type":"element"},{"id":"6883966fd8f918a4aa29be29d2c386fb","name":"Box098","sphere":[-2177746.71150937,4388736.27489379,4070061.74719495,0.185430550167642],"type":"element"},{"id":"49182f81e6a13cf5eaa496d51fea6406","name":"Box097","sphere":[-2177748.33889918,4388736.20710474,4070060.95487155,0.208633755876963],"type":"element"},{"id":"d296c101daa88a51f6ca8cfc1ac79b50","name":"Box096","sphere":[-2177748.38736938,4388736.19122738,4070060.94611633,0.210706694033229],"type":"element"},{"id":"9fd81843ad7f202f26c1a174c7357585","name":"Box095","sphere":[-2177748.28940808,4388736.20115169,4070060.98755143,0.210706696405554],"type":"element"},{"id":"26e359e83860db1d11b6acca57d8ea88","name":"Box094","sphere":[-2177748.98648195,4388736.14479385,4070060.67743185,0.382271314419747],"type":"element"},{"id":"ef0d3930a7b6c95bd2b32ed45989c61f","name":"Box093","sphere":[-2177748.96251586,4388736.05585264,4070060.78543242,0.229611495217451],"type":"element"},{"id":"94f6d7e04a4d452035300f18b984988c","name":"Box092","sphere":[-2177748.79039085,4388736.0611824,4070060.87120541,0.383234106969597],"type":"element"},{"id":"34ed066df378efacc9b924ec161e7639","name":"Box091","sphere":[-2177748.2131219,4388736.11009826,4070061.12562162,0.339012819087095],"type":"element"},{"id":"577bcc914f9e55d5e4e4f82f9f00e7d4","name":"Box090","sphere":[-2177748.64687006,4388736.08824991,4070060.91849293,0.285458559868047],"type":"element"},{"id":"11b9842e0a271ff252c1903e7132cd68","name":"Box089","sphere":[-2177748.05098787,4388736.11318053,4070061.20849182,0.210706691514695],"type":"element"},{"id":"37bc2f75bf1bcfe8450a1a41c200364c","name":"Box088","sphere":[-2177747.4974935,4388736.22181736,4070061.38630639,0.367800031355215],"type":"element"},{"id":"496e05e1aea0a9c4655800e8a7b9ea28","name":"Box087","sphere":[-2177746.87046677,4388736.26115323,4070061.67742894,0.367800032791838],"type":"element"},{"id":"b2eb7349035754953b57a32e2841bda5","name":"Box086","sphere":[-2177747.55011847,4388736.21108601,4070061.3698312,0.487098634542075],"type":"element"},{"id":"8e98d81f8217304975ccb23337bb5761","name":"Box085","sphere":[-2177747.33764548,4388736.13462549,4070061.56465227,1.15264004116121],"type":"element"},{"id":"a8c88a0055f636e4a163a5e3d16adab7","name":"Box084","sphere":[-2177746.93891352,4388736.23562063,4070061.66839803,0.487098624792647],"type":"element"},{"id":"eddea82ad2755b24c4e168c5fc2ebd40","name":"Box069","sphere":[-2177750.56054274,4388734.44515902,4070061.68005607,0.589697726701535],"type":"element"},{"id":"06eb61b839a0cefee4967c67ccb099dc","name":"Box068","sphere":[-2177750.04210692,4388734.67806845,4070061.81116509,1.29412579359359],"type":"element"},{"id":"9dfcd5e558dfa04aaf37f137a1d9d3e5","name":"Box066","sphere":[-2177751.27558125,4388734.53684692,4070061.24824771,0.35398801062629],"type":"element"},{"id":"950a4152c2b4aa3ad78bdd6b366cc179","name":"Box065","sphere":[-2177750.51555952,4388734.61327153,4070061.57898219,0.364717200297513],"type":"element"},{"id":"158f3069a435b314a80bdcb024f8e422","name":"Box054","sphere":[-2177747.0291557,4388734.69489649,4070063.32442048,0.344290076350885],"type":"element"},{"id":"758874998f5bd0c393da094e1967a72b","name":"Box039","sphere":[-2177749.560718,4388734.72247758,4070062.00905113,0.498489699971234],"type":"element"},{"id":"ad13a2a07ca4b7642959dc0c4c740ab6","name":"Box038","sphere":[-2177751.76556199,4388734.26046163,4070061.25389146,0.448390904231964],"type":"element"},{"id":"3fe94a002317b5f9259f82690aeea4cd","name":"Box037","sphere":[-2177751.45216359,4388734.4426533,4070061.1725353,0.578283983217578],"type":"element"},{"id":"5b8add2a5d98b1a652ea7fd72d942dac","name":"Box035","sphere":[-2177746.9859264,4388735.9489499,4070062.0206204,1.78033799285275],"type":"element"},{"id":"432aca3a1e345e339f35a30c8f65edce","name":"Box034","sphere":[-2177747.69994624,4388735.88065292,4070061.70086748,0.582682285413332],"type":"element"},{"id":"8d3bba7425e7c98c50f52ca1b52d3735","name":"Box033","sphere":[-2177749.72593472,4388736.26508722,4070060.1462562,0.210063833025985],"type":"element"},{"id":"320722549d1751cf3f247855f937b982","name":"Box032","sphere":[-2177750.12209868,4388735.10868272,4070061.28442559,1.82899368581499],"type":"element"},{"id":"caf1a3dfb505ffed0d024130f58c5cfa","name":"Box026","sphere":[-2177750.70730394,4388734.81262031,4070061.19551789,0.260321745453744],"type":"element"},{"id":"5737c6ec2e0716f3d8a7a5c4e0de0d9a","name":"Box025","sphere":[-2177750.56483792,4388734.8555914,4070061.22521084,0.30586879947555],"type":"element"},{"id":"bc6dc48b743dc5d013b1abaebd2faed2","name":"Box024","sphere":[-2177750.68061909,4388734.86716098,4070061.15128313,0.303360340895982],"type":"element"},{"id":"f2fc990265c712c49d51a18a32b39f0c","name":"Box021","sphere":[-2177748.27292249,4388733.74557409,4070063.649692,0.26395195297141],"type":"element"},{"id":"89f0fd5c927d466d6ec9a21b9ac34ffa","name":"Box020","sphere":[-2177748.17998878,4388733.77824587,4070063.71622671,0.414899692782781],"type":"element"},{"id":"a666587afda6e89aec274a3657558a27","name":"Box016","sphere":[-2177748.63659557,4388735.88471232,4070061.32099044,2.05612136498515],"type":"element"},{"id":"b83aac23b9528732c23cc7352950e880","name":"Box005","sphere":[-2177749.80647437,4388732.97130412,4070063.63119354,0.310729591106801],"type":"element"},{"id":"cd00692c3bfe59267d5ecfac5310286c","name":"Box002","sphere":[-2177750.97649343,4388735.09704188,4070060.75545735,1.10288378165423],"type":"element"},{"id":"6faa8040da20ef399b63a72d0e4ab575","name":"AM227_018_07_014","sphere":[-2177746.80561207,4388735.38257555,4070062.72365672,0.560403013219551],"type":"element"},{"id":"fe73f687e5bc5280214e0486b273a5f9","name":"AM227_018_07_013","sphere":[-2177747.85014903,4388735.2952676,4070062.26201623,0.555498154336474],"type":"element"},{"id":"6da37dd3139aa4d9aa55b8d237ec5d4a","name":"AM227_018_07_012","sphere":[-2177747.7128095,4388735.30986973,4070062.3193699,0.555498154373447],"type":"element"},{"id":"c042f4db68f23406c6cecf84a7ebb0fe","name":"AM227_018_07_011","sphere":[-2177747.5754973,4388735.32445829,4070062.37672358,0.555498160841245],"type":"element"},{"id":"310dcbbf4cce62f762a2aaa148d556bd","name":"AM227_018_07_010","sphere":[-2177747.43814036,4388735.33902535,4070062.43412406,0.555498162074588],"type":"element"},{"id":"2f2b265625d76a6704b08093c652fd79","name":"AM227_018_07_009","sphere":[-2177747.23395049,4388735.3535326,4070062.5271092,0.56040300067159],"type":"element"},{"id":"f9b902fc3289af4dd08de5d1de54f68f","name":"AM227_018_07_008","sphere":[-2177747.09820557,4388735.36297222,4070062.5891448,0.560403006421703],"type":"element"},{"id":"6855456e2fe46a9d49d3d3af4f57443d","name":"AM227_018_07_007","sphere":[-2177746.96246065,4388735.37241185,4070062.65118041,0.560403007921466],"type":"element"},{"id":"357a6fdf7642bf815a88822c447d9dc4","name":"AM227_018_005","sphere":[-2177747.77069842,4388735.58718346,4070063.19074501,1.96205099236162],"type":"element"},{"id":"819f46e52c25763a55cc642422644317","name":"AM227_018_04","sphere":[-2177749.14475819,4388735.65615944,4070062.3865763,1.96205074064868],"type":"element"},{"id":"04025959b191f8f9de3f924f0940515f","name":"Object133","sphere":[-2177749.24445956,4388735.6467037,4070061.11574785,0.530804330622134],"type":"element"},{"id":"40008b9a5380fcacce3976bf7c08af5b","name":"Object134","sphere":[-2177747.54458673,4388733.3899058,4070064.432391,1.53682554990103],"type":"element"},{"id":"3dd48ab31d016ffcbf3314df2b3cb9ce","name":"Object135","sphere":[-2177747.32919292,4388734.06667301,4070063.82199871,1.53682553007399],"type":"element"},{"id":"58238e9ae2dd305d79c2ebc8c1883422","name":"Sphere109","sphere":[-2177747.40307698,4388734.21556869,4070063.96101348,1.68832126757853],"type":"element"},{"id":"3ad7c2ebb96fcba7cda0cf54a2e802f5","name":"Plane001","sphere":[-2177749.09989814,4388734.4940141,4070062.34350083,13.9737588077265],"type":"element"}],"id":"45c48cce2e2d7fbdea1afc51c7c6ad26","name":"Huanengchangqu_220615_export","sphere":[-2177749.37502483,4388735.04846566,4070062.86115817,15.5839728980764],"type":"node"}]}
public/hn3d/model/Huanengchangqu_220615/tileset.json
New file
@@ -0,0 +1 @@
{"asset":{"generatetool":"cesiumlab2@www.cesiumlab.com/model2tiles","version":"1.0"},"extras":{"scenetree":"scenetree.json"},"geometricError":8.12126260483637,"properties":null,"refine":"REPLACE","root":{"boundingVolume":{"box":[-6.98491930961609e-10,1.09430402517319e-06,1.87090581143275,4.06063130241819,0,0,0,3.97786408383399,0,0,0,0.870908349286765]},"children":[{"boundingVolume":{"box":[-0.0935458008096845,-1.24376595407965,1.13499420122953,0.365446055136515,0,0,0,1.61030762747033,0,0,0,0.0609230954036026]},"content":{"uri":"NoLod_0.b3dm"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[1.74723091816994,-1.98893084980066,1.22924557144233,1.74723091816994,0,0,0,1.98893084980066,0,0,0,0.184817890165232]},"content":{"uri":"NoLod_1.b3dm"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-1.75924574691181,1.98893194608491,1.87090830395376,1.75924574691181,0,0,0,1.98893194608491,0,0,0,0.870908121945165]},"content":{"uri":"NoLod_2.b3dm"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-0.6853831477485,-0.687639686427784,1.79149285043382,0.508945419207379,0,0,0,0.506688880528096,0,0,0,0.59716428347794]},"content":{"uri":"NoLod_3.b3dm"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-0.59716428347794,-0.59716428347794,1.10358270579076,0.59716428347794,0,0,0,0.59716428347794,0,0,0,0.0907458611651217]},"content":{"uri":"NoLod_4.b3dm"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-0.817267847163723,-1.54987671513026,1.3283170217966,0.377060719792156,0,0,0,0.35554814817438,0,0,0,0.133988454840717]},"content":{"uri":"NoLod_5.b3dm"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-0.59716428347794,-1.79149285043382,1.10358268958705,0.59716428347794,0,0,0,0.59716428347794,0,0,0,0.0907458773688298]},"content":{"uri":"NoLod_6.b3dm"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-1.79149285043382,-0.59716428347794,1.32831708131871,0.59716428347794,0,0,0,0.59716428347794,0,0,0,0.133988514362835]},"content":{"uri":"NoLod_7.b3dm"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-1.79149285043382,-0.59716428347794,1.10358273137635,0.59716428347794,0,0,0,0.59716428347794,0,0,0,0.0907458355795266]},"content":{"uri":"NoLod_8.b3dm"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-3.22464145844112,-0.933002624718096,1.23757126346293,0.835984324529362,0,0,0,0.933002624718096,0,0,0,0.224734332200475]},"content":{"uri":"NoLod_9.b3dm"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-1.19432856695588,-2.22788651671329,1.12638456901581,1.19432856695588,0,0,0,1.03355794975742,0,0,0,0.0914232511201427]},"content":{"uri":"NoLod_10.cmpt"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-1.08516794585849,-1.1540449628685,1.96807245317638,0.681758368685826,0,0,0,0.579408475952209,0,0,0,0.773743886220502]},"content":{"uri":"NoLod_11.cmpt"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[1.98617478098453,0.44037465263879,1.21312500585453,2.0744513593197,0,0,0,2.90426466525431,0,0,0,0.199722552687375]},"content":{"uri":"NoLod_12.cmpt"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[-0.630749978858921,-0.602173543631078,1.13618536297157,2.83406630257712,0,0,0,3.37042311937118,0,0,0,0.0817148368996701]},"content":{"uri":"NoLod_13.cmpt"},"geometricError":0.0,"refine":"REPLACE"},{"boundingVolume":{"box":[0.875833287334771,0.650331123327384,1.08134471709718,0.647518293755852,0,0,0,0.497915977950833,0,0,0,0.0253862388665926]},"content":{"uri":"NoLod_14.i3dm"},"geometricError":0.0,"refine":"REPLACE"}],"geometricError":8.12126260483637,"transform":[-0.895779839608734,-0.444498007813929,0.0,0.0,0.285164213886296,-0.57468053689039,0.767087773099001,0.0,-0.340968986960929,0.687141762352444,0.641542164134218,0.0,-2177748.73710174,4388733.76288727,4070061.66089195,1.0]}}
src/cool/modules/base/components/role/select_device.vue
New file
@@ -0,0 +1,66 @@
<template>
  <el-select v-model="value"
             v-bind="props"
             multiple
             @change="onChange">
    <el-option v-for="(item, index) in list"
               :key="index"
               :value="item.logic_id"
               :label="item.logic_id" />
  </el-select>
</template>
<script lang="ts">
import { defineComponent, onMounted, ref, watch } from "vue";
import { useCool } from "/@/cool";
import { isArray } from "/@/cool/utils";
export default defineComponent({
    name: "cl-device-select",
    props: {
        modelValue: [String, Number, Array],
        props: Object
    },
    emits: ["update:modelValue"],
    setup(props, { emit }) {
        // 请求服务
        const { service } = useCool();
        // 数据列表
        const list = ref<any[]>([]);
        // 绑定值
        const value = ref<any>();
        // 绑定值回调
        function onChange(val: any) {
            emit("update:modelValue", val);
        }
        // 解析值
        watch(
            () => props.modelValue,
            (val: any) => {
                value.value = (isArray(val) ? val : [val]).filter(Boolean);
            },
            {
                immediate: true
            }
        );
        onMounted(async () => {
            console.log(list, "list");
            list.value = await service.business.basedeviceinfo.list();
        });
        return {
            list,
            value,
            onChange
        };
    }
});
</script>
src/cool/modules/base/views/user.vue
@@ -1,104 +1,94 @@
<template>
    <div class="system-user">
        <div class="pane">
            <!-- 组织架构 -->
            <div class="dept" :class="[isExpand ? '_expand' : '_collapse']">
                <cl-dept-tree
                    @row-click="onDeptRowClick"
                    @user-add="onDeptUserAdd"
                    @list-change="onDeptListChange"
                />
            </div>
  <div class="system-user">
    <div class="pane">
      <!-- 组织架构 -->
      <div class="dept"
           :class="[isExpand ? '_expand' : '_collapse']">
        <cl-dept-tree @row-click="onDeptRowClick"
                      @user-add="onDeptUserAdd"
                      @list-change="onDeptListChange" />
      </div>
            <!-- 成员列表 -->
            <div class="user">
                <div class="header">
                    <div class="icon" @click="deptExpand">
                        <i class="el-icon-arrow-left" v-if="isExpand"></i>
                        <i class="el-icon-arrow-right" v-else></i>
                    </div>
      <!-- 成员列表 -->
      <div class="user">
        <div class="header">
          <div class="icon"
               @click="deptExpand">
            <i class="el-icon-arrow-left"
               v-if="isExpand"></i>
            <i class="el-icon-arrow-right"
               v-else></i>
          </div>
                    <span>成员列表</span>
                </div>
          <span>成员列表</span>
        </div>
                <div class="container">
                    <cl-crud :ref="setRefs('crud')" :on-refresh="onRefresh" @load="onLoad">
                        <el-row type="flex">
                            <cl-refresh-btn />
                            <cl-add-btn />
                            <cl-multi-delete-btn />
                            <el-button
                                v-permission="service.base.sys.user.permission.move"
                                size="mini"
                                type="success"
                                :disabled="selects.ids.length == 0"
                                @click="toMove()"
                                >转移</el-button
                            >
                            <cl-flex1 />
                            <cl-search-key />
                        </el-row>
        <div class="container">
          <cl-crud :ref="setRefs('crud')"
                   :on-refresh="onRefresh"
                   @load="onLoad">
            <el-row type="flex">
              <cl-refresh-btn />
              <cl-add-btn />
              <cl-multi-delete-btn />
              <el-button v-permission="service.base.sys.user.permission.move"
                         size="mini"
                         type="success"
                         :disabled="selects.ids.length == 0"
                         @click="toMove()">转移</el-button>
              <cl-flex1 />
              <cl-search-key />
            </el-row>
                        <el-row>
                            <cl-table
                                :ref="setRefs('table')"
                                v-bind="table"
                                @selection-change="onSelectionChange"
                            >
                                <!-- 头像 -->
                                <template #column-headImg="{ scope }">
                                    <cl-avatar
                                        shape="square"
                                        size="medium"
                                        :src="scope.row.headImg"
                                        :style="{ margin: 'auto' }"
                                    />
                                </template>
            <el-row>
              <cl-table :ref="setRefs('table')"
                        v-bind="table"
                        @selection-change="onSelectionChange">
                <!-- 头像 -->
                <template #column-headImg="{ scope }">
                  <cl-avatar shape="square"
                             size="medium"
                             :src="scope.row.headImg"
                             :style="{ margin: 'auto' }" />
                </template>
                                <!-- 权限 -->
                                <template #column-roleName="{ scope }">
                                    <el-tag
                                        v-for="(item, index) in scope.row.roleNameList"
                                        :key="index"
                                        disable-transitions
                                        size="small"
                                        effect="dark"
                                        style="margin: 2px"
                                        >{{ item }}</el-tag
                                    >
                                </template>
                <!-- 权限 -->
                <template #column-roleName="{ scope }">
                  <el-tag v-for="(item, index) in scope.row.roleNameList"
                          :key="index"
                          disable-transitions
                          size="small"
                          effect="dark"
                          style="margin: 2px">{{ item }}</el-tag>
                </template>
                                <!-- 单个转移 -->
                                <template #slot-move-btn="{ scope }">
                                    <el-button
                                        v-permission="service.base.sys.user.permission.move"
                                        type="text"
                                        size="mini"
                                        @click="toMove(scope.row)"
                                        >转移</el-button
                                    >
                                </template>
                            </cl-table>
                        </el-row>
                <!-- 单个转移 -->
                <template #slot-move-btn="{ scope }">
                  <el-button v-permission="service.base.sys.user.permission.move"
                             type="text"
                             size="mini"
                             @click="toMove(scope.row)">转移</el-button>
                </template>
              </cl-table>
            </el-row>
                        <el-row type="flex">
                            <cl-flex1 />
                            <cl-pagination />
                        </el-row>
            <el-row type="flex">
              <cl-flex1 />
              <cl-pagination />
            </el-row>
                        <cl-upsert
                            :ref="setRefs('upsert')"
                            v-bind="upsert"
                            :on-submit="onUpsertSubmit"
                        />
                    </cl-crud>
                </div>
            </div>
        </div>
            <cl-upsert :ref="setRefs('upsert')"
                       v-bind="upsert"
                       :on-submit="onUpsertSubmit" />
          </cl-crud>
        </div>
      </div>
    </div>
        <!-- 部门移动 -->
        <cl-dept-move :ref="setRefs('dept-move')" @success="refresh({ page: 1 })" />
    </div>
    <!-- 部门移动 -->
    <cl-dept-move :ref="setRefs('dept-move')"
                  @success="refresh({ page: 1 })" />
  </div>
</template>
<script lang="ts">
@@ -395,9 +385,11 @@
        // 刷新监听
        async function onRefresh(params: any, { next, render }: any) {
            const { list } = await next(params);
            console.log(list, "list");
            render(
                list.map((e: any) => {
                    console.log(e, "刷新打印e");
                    if (e.roleName) {
                        e.roleNameList = e.roleName.split(",");
                    }
src/cool/modules/basedevice/views/basedevice_group.vue
@@ -48,11 +48,19 @@
                {
                    label: "逻辑ID",
                    prop: "logic_id",
                    value: [],
                    component: {
                        name: "el-input"
                        name: "cl-device-select",
                        props: {
                            props: {
                                "multiple-limit": 3
                            }
                        }
                    },
                    //是否为必填项,注:接口配置字段时没有设置默认值时,都需要选择必填
                    required: true
                    rules: {
                        required: true,
                        message: "角色不能为空"
                    }
                },
                {
                    label: "操作人",
@@ -73,7 +81,17 @@
                    label: "状态",
                    prop: "status",
                    component: {
                        name: "el-input"
                        name: "el-radio-group",
                        options: [
                            {
                                label: "未启用",
                                value: 0
                            },
                            {
                                label: "启用",
                                value: 1
                            }
                        ]
                    }
                }
            ]
@@ -105,7 +123,28 @@
                },
                {
                    label: "状态",
                    prop: "status"
                    prop: "status",
                    dict: [
                        {
                            label: "停用",
                            value: 0,
                            type: "info" //success  warning  danger  info可选
                        },
                        {
                            label: "启用",
                            value: 1
                        }
                    ],
                    filters: [
                        {
                            text: "停用",
                            value: 0
                        },
                        {
                            text: "启用",
                            value: 1
                        }
                    ]
                },
                {
                    label: "操作",
@@ -121,11 +160,6 @@
        }
        async function onRefresh(params: any, { next, done, render }: any) {
            // params 是每次请求的参数
            // next(params) 是继续往下执行 page 的请求
            // done() 完成请求,关闭loading
            // render(list, pagination) 渲染列表及分页信息
            let { list, pagination } = await next({});
            list.map((_e: any) => {});
src/cool/modules/hntask/views/immediate_task.vue
@@ -204,7 +204,36 @@
                },
                {
                    label: "状态",
                    prop: "status"
                    prop: "status",
                    dict: [
                        {
                            label: "未执行",
                            value: 0,
                            type: "info" //success  warning  danger  info可选
                        },
                        {
                            label: "执行中",
                            value: 1
                        },
                        {
                            label: "未执行",
                            value: 2
                        }
                    ],
                    filters: [
                        {
                            text: "未执行",
                            value: 0
                        },
                        {
                            text: "执行中",
                            value: 1
                        },
                        {
                            text: "已执行",
                            value: 2
                        }
                    ]
                },
                {
                    label: "操作",
src/cool/modules/hntask/views/periodic_task.vue
@@ -54,6 +54,20 @@
                    required: true
                },
                {
                    label: "任务指令",
                    prop: "task_command",
                    component: {
                        name: "el-input"
                    }
                },
                {
                    label: "任务内容描述",
                    prop: "task_content",
                    component: {
                        name: "el-input"
                    }
                },
                {
                    prop: "task_type",
                    value: 1,
                    label: "任务类型",
@@ -104,7 +118,17 @@
                    label: "状态",
                    prop: "status",
                    component: {
                        name: "el-input"
                        name: "el-radio-group",
                        options: [
                            {
                                label: "未启用",
                                value: 0
                            },
                            {
                                label: "启用",
                                value: 1
                            }
                        ]
                    }
                }
            ]
@@ -161,6 +185,14 @@
                    width: 100
                },
                {
                    label: "任务指令",
                    prop: "task_command"
                },
                {
                    label: "任务内容描述",
                    prop: "task_content"
                },
                {
                    label: "设备分组ID",
                    prop: "group_id"
                },
@@ -174,7 +206,28 @@
                },
                {
                    label: "状态",
                    prop: "status"
                    prop: "status",
                    dict: [
                        {
                            label: "停用",
                            value: 0,
                            type: "info" //success  warning  danger  info可选
                        },
                        {
                            label: "启用",
                            value: 1
                        }
                    ],
                    filters: [
                        {
                            text: "停用",
                            value: 0
                        },
                        {
                            text: "启用",
                            value: 1
                        }
                    ]
                },
                {
                    label: "操作",
vite.config.ts
@@ -18,8 +18,8 @@
  const proxy = {
    "/dev": {
      // target: "http://192.168.1.16:8001",
      target: "http://47.92.33.19:8001",
      // target: "http://127.0.0.1:9100",
      // target: "http://47.92.33.19:8001",
      target: "http://127.0.0.1:8001",
      changeOrigin: true,
      rewrite: (path: string) => path.replace(/^\/dev/, "")
    },