Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

wenhongquan 2 жил өмнө
parent
commit
8daa651582

+ 3 - 1
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipmentOrganizational.java

@@ -23,7 +23,7 @@ public class TblEquipmentOrganizational extends BaseEntity {
     private static final long serialVersionUID=1L;
     private static final long serialVersionUID=1L;
 
 
     /**
     /**
-     * 
+     *
      */
      */
     @TableId(value = "id")
     @TableId(value = "id")
     private Long id;
     private Long id;
@@ -48,4 +48,6 @@ public class TblEquipmentOrganizational extends BaseEntity {
      */
      */
     private String remark;
     private String remark;
 
 
+    private String ancestors;
+
 }
 }

+ 4 - 2
ruoyi-system/src/main/java/com/ruoyi/data/domain/TblEquipmentSbook.java

@@ -48,11 +48,11 @@ public class TblEquipmentSbook extends BaseEntity {
     /**
     /**
      * 设备信息
      * 设备信息
      */
      */
-    private String equipmentInfoId;
+    private Long equipmentInfoId;
     /**
     /**
      * 所属公司
      * 所属公司
      */
      */
-    private String deptId;
+    private Long deptId;
     /**
     /**
      * 所属组织机构
      * 所属组织机构
      */
      */
@@ -134,4 +134,6 @@ public class TblEquipmentSbook extends BaseEntity {
      */
      */
     private String expr2;
     private String expr2;
 
 
+    private  TblEquipment equipment;
+
 }
 }

+ 2 - 2
ruoyi-system/src/main/java/com/ruoyi/data/domain/bo/TblEquipmentSbookBo.java

@@ -57,13 +57,13 @@ public class TblEquipmentSbookBo extends BaseEntity {
      * 设备信息
      * 设备信息
      */
      */
 //    @NotBlank(message = "设备信息不能为空", groups = { AddGroup.class, EditGroup.class })
 //    @NotBlank(message = "设备信息不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String equipmentInfoId;
+    private Long equipmentInfoId;
 
 
     /**
     /**
      * 所属公司
      * 所属公司
      */
      */
     @NotBlank(message = "所属公司不能为空", groups = { AddGroup.class, EditGroup.class })
     @NotBlank(message = "所属公司不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String deptId;
+    private Long deptId;
 
 
     /**
     /**
      * 所属组织机构
      * 所属组织机构

+ 5 - 2
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblEquipmentSbookVo.java

@@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.convert.ExcelDictConvert;
 import com.ruoyi.common.convert.ExcelDictConvert;
+import com.ruoyi.data.domain.TblEquipment;
 import lombok.Data;
 import lombok.Data;
 import java.util.Date;
 import java.util.Date;
 
 
@@ -57,13 +58,13 @@ public class TblEquipmentSbookVo implements Serializable {
      * 设备信息
      * 设备信息
      */
      */
     @ExcelProperty(value = "设备信息")
     @ExcelProperty(value = "设备信息")
-    private String equipmentInfoId;
+    private Long equipmentInfoId;
 
 
     /**
     /**
      * 所属公司
      * 所属公司
      */
      */
     @ExcelProperty(value = "所属公司")
     @ExcelProperty(value = "所属公司")
-    private String deptId;
+    private Long deptId;
 
 
     /**
     /**
      * 所属组织机构
      * 所属组织机构
@@ -185,5 +186,7 @@ public class TblEquipmentSbookVo implements Serializable {
     @ExcelProperty(value = "")
     @ExcelProperty(value = "")
     private String expr2;
     private String expr2;
 
 
+    private String gatewayName;
 
 
+    private TblEquipment equipment;
 }
 }

+ 3 - 5
ruoyi-system/src/main/java/com/ruoyi/data/domain/vo/TblSensorSbookVo.java

@@ -22,7 +22,7 @@ public class TblSensorSbookVo implements Serializable {
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
 
 
     /**
     /**
-     * 
+     *
      */
      */
     @ExcelProperty(value = "")
     @ExcelProperty(value = "")
     private Long id;
     private Long id;
@@ -112,16 +112,14 @@ public class TblSensorSbookVo implements Serializable {
     private String remark;
     private String remark;
 
 
     /**
     /**
-     * 
+     *
      */
      */
     @ExcelProperty(value = "")
     @ExcelProperty(value = "")
     private String expr1;
     private String expr1;
 
 
     /**
     /**
-     * 
+     *
      */
      */
     @ExcelProperty(value = "")
     @ExcelProperty(value = "")
     private String expr2;
     private String expr2;
-
-
 }
 }

+ 13 - 0
ruoyi-system/src/main/java/com/ruoyi/data/mapper/TblEquipmentSbookMapper.java

@@ -1,8 +1,15 @@
 package com.ruoyi.data.mapper;
 package com.ruoyi.data.mapper;
 
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.annotation.DataColumn;
+import com.ruoyi.common.annotation.DataPermission;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.data.domain.TblEquipmentSbook;
 import com.ruoyi.data.domain.TblEquipmentSbook;
 import com.ruoyi.data.domain.vo.TblEquipmentSbookVo;
 import com.ruoyi.data.domain.vo.TblEquipmentSbookVo;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
 import com.ruoyi.common.core.mapper.BaseMapperPlus;
+import org.apache.ibatis.annotations.Param;
 
 
 /**
 /**
  * 设备台账Mapper接口
  * 设备台账Mapper接口
@@ -12,4 +19,10 @@ import com.ruoyi.common.core.mapper.BaseMapperPlus;
  */
  */
 public interface TblEquipmentSbookMapper extends BaseMapperPlus<TblEquipmentSbookMapper, TblEquipmentSbook, TblEquipmentSbookVo> {
 public interface TblEquipmentSbookMapper extends BaseMapperPlus<TblEquipmentSbookMapper, TblEquipmentSbook, TblEquipmentSbookVo> {
 
 
+    @DataPermission({
+        @DataColumn(key = "name", value = "d.id"),
+        @DataColumn(key = "name", value = "u.id")
+    })
+    Page<TblEquipmentSbook> selectPageList(@Param("page") Page<TblEquipmentSbook> page, @Param(Constants.WRAPPER) Wrapper<TblEquipmentSbook> queryWrapper);
+
 }
 }

+ 3 - 0
ruoyi-system/src/main/java/com/ruoyi/data/service/ITblEquipmentSbookService.java

@@ -27,6 +27,9 @@ public interface ITblEquipmentSbookService {
      */
      */
     TableDataInfo<TblEquipmentSbookVo> queryPageList(TblEquipmentSbookBo bo, PageQuery pageQuery);
     TableDataInfo<TblEquipmentSbookVo> queryPageList(TblEquipmentSbookBo bo, PageQuery pageQuery);
 
 
+
+    TableDataInfo<TblEquipmentSbook> queryallPageList(TblEquipmentSbook tblEquipmentSbook, PageQuery pageQuery);
+
     /**
     /**
      * 查询设备台账列表
      * 查询设备台账列表
      */
      */

+ 45 - 2
ruoyi-system/src/main/java/com/ruoyi/data/service/impl/TblEquipmentSbookServiceImpl.java

@@ -1,12 +1,23 @@
 package com.ruoyi.data.service.impl;
 package com.ruoyi.data.service.impl;
 
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.common.helper.DataBaseHelper;
+import com.ruoyi.common.utils.StreamUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.core.domain.PageQuery;
 import com.ruoyi.common.core.domain.PageQuery;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.ruoyi.data.domain.TblEquipment;
+import com.ruoyi.data.domain.TblEquipmentOrganizational;
+import com.ruoyi.data.domain.bo.TblEquipmentOrganizationalBo;
+import com.ruoyi.data.domain.vo.TblEquipmentOrganizationalVo;
+import com.ruoyi.data.mapper.TblEquipmentMapper;
+import com.ruoyi.data.mapper.TblEquipmentOrganizationalMapper;
 import lombok.RequiredArgsConstructor;
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import com.ruoyi.data.domain.bo.TblEquipmentSbookBo;
 import com.ruoyi.data.domain.bo.TblEquipmentSbookBo;
@@ -31,6 +42,12 @@ public class TblEquipmentSbookServiceImpl implements ITblEquipmentSbookService {
 
 
     private final TblEquipmentSbookMapper baseMapper;
     private final TblEquipmentSbookMapper baseMapper;
 
 
+//    private final SysDeptMapper sysDeptMapper;
+
+    private final TblEquipmentMapper equipmentMapper;
+
+    private final TblEquipmentOrganizationalMapper tblEquipmentOrganizationalMapper;
+
     /**
     /**
      * 查询设备台账
      * 查询设备台账
      */
      */
@@ -49,6 +66,16 @@ public class TblEquipmentSbookServiceImpl implements ITblEquipmentSbookService {
         return TableDataInfo.build(result);
         return TableDataInfo.build(result);
     }
     }
 
 
+    @Override
+    public TableDataInfo<TblEquipmentSbook> queryallPageList(TblEquipmentSbook tblEquipmentSbook, PageQuery pageQuery) {
+        if(tblEquipmentSbook.getEquipmentTypeId() != null){
+            List<TblEquipmentOrganizational> tblEquipmentOrganizationalList =  tblEquipmentOrganizationalMapper.getAllOrganizationalByid(tblEquipmentSbook.getEquipmentTypeId());
+        }
+        Page<TblEquipmentSbook> page = baseMapper.selectPageList(pageQuery.build(), this.buildLeftWrapper(tblEquipmentSbook));
+        return TableDataInfo.build(page);
+    }
+
+
     /**
     /**
      * 查询设备台账列表
      * 查询设备台账列表
      */
      */
@@ -65,8 +92,8 @@ public class TblEquipmentSbookServiceImpl implements ITblEquipmentSbookService {
         lqw.eq(StringUtils.isNotBlank(bo.getSn()), TblEquipmentSbook::getSn, bo.getSn());
         lqw.eq(StringUtils.isNotBlank(bo.getSn()), TblEquipmentSbook::getSn, bo.getSn());
         lqw.eq(StringUtils.isNotBlank(bo.getSpareSn()), TblEquipmentSbook::getSpareSn, bo.getSpareSn());
         lqw.eq(StringUtils.isNotBlank(bo.getSpareSn()), TblEquipmentSbook::getSpareSn, bo.getSpareSn());
         lqw.like(StringUtils.isNotBlank(bo.getName()), TblEquipmentSbook::getName, bo.getName());
         lqw.like(StringUtils.isNotBlank(bo.getName()), TblEquipmentSbook::getName, bo.getName());
-        lqw.eq(StringUtils.isNotBlank(bo.getEquipmentInfoId()), TblEquipmentSbook::getEquipmentInfoId, bo.getEquipmentInfoId());
-        lqw.eq(StringUtils.isNotBlank(bo.getDeptId()), TblEquipmentSbook::getDeptId, bo.getDeptId());
+        lqw.eq(bo.getEquipmentInfoId() != null, TblEquipmentSbook::getEquipmentInfoId, bo.getEquipmentInfoId());
+        lqw.eq(bo.getDeptId() != null, TblEquipmentSbook::getDeptId, bo.getDeptId());
         lqw.like(StringUtils.isNotBlank(bo.getDeptName()), TblEquipmentSbook::getDeptName, bo.getDeptName());
         lqw.like(StringUtils.isNotBlank(bo.getDeptName()), TblEquipmentSbook::getDeptName, bo.getDeptName());
         lqw.eq(bo.getEquipmentTypeId() != null, TblEquipmentSbook::getEquipmentTypeId, bo.getEquipmentTypeId());
         lqw.eq(bo.getEquipmentTypeId() != null, TblEquipmentSbook::getEquipmentTypeId, bo.getEquipmentTypeId());
         lqw.eq(StringUtils.isNotBlank(bo.getPersonInCharge()), TblEquipmentSbook::getPersonInCharge, bo.getPersonInCharge());
         lqw.eq(StringUtils.isNotBlank(bo.getPersonInCharge()), TblEquipmentSbook::getPersonInCharge, bo.getPersonInCharge());
@@ -89,6 +116,22 @@ public class TblEquipmentSbookServiceImpl implements ITblEquipmentSbookService {
         return lqw;
         return lqw;
     }
     }
 
 
+    private Wrapper<TblEquipmentSbook> buildLeftWrapper(TblEquipmentSbook tblEquipmentSbook) {
+        Map<String, Object> params = tblEquipmentSbook.getParams();
+        QueryWrapper<TblEquipmentSbook> wrapper = Wrappers.query();
+        wrapper.like(StringUtils.isNotBlank(tblEquipmentSbook.getName()), "u.name", tblEquipmentSbook.getName())
+            .like(StringUtils.isNotBlank(tblEquipmentSbook.getSn()), "u.sn", tblEquipmentSbook.getSn())
+            .and(ObjectUtil.isNotNull(tblEquipmentSbook.getEquipmentTreeId()), w -> {
+                List<TblEquipmentOrganizational> equipmentList = tblEquipmentOrganizationalMapper.selectList(new LambdaQueryWrapper<TblEquipmentOrganizational>()
+                    .select(TblEquipmentOrganizational::getId)
+                    .apply(DataBaseHelper.findInSet(tblEquipmentSbook.getEquipmentTreeId(), "ancestors")));
+                List<Long> ids = StreamUtils.toList(equipmentList, TblEquipmentOrganizational::getId);
+                ids.add(tblEquipmentSbook.getEquipmentTreeId());
+                w.in("u.equipment_tree_id", ids);
+            });
+        return wrapper;
+    }
+
     /**
     /**
      * 新增设备台账
      * 新增设备台账
      */
      */

+ 31 - 1
ruoyi-system/src/main/resources/mapper/data/TblEquipmentSbookMapper.xml

@@ -17,7 +17,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="personInCharge" column="person_in_charge"/>
         <result property="personInCharge" column="person_in_charge"/>
         <result property="installationDate" column="installation_date"/>
         <result property="installationDate" column="installation_date"/>
         <result property="address" column="address"/>
         <result property="address" column="address"/>
-        <result property="deviceId" column="device_id"/>
+        <result property="gatewayId" column="gateway_id"/>
         <result property="tagids" column="tagids"/>
         <result property="tagids" column="tagids"/>
         <result property="status" column="status"/>
         <result property="status" column="status"/>
         <result property="endOfWarrantyPeriod" column="end_of_warranty_period"/>
         <result property="endOfWarrantyPeriod" column="end_of_warranty_period"/>
@@ -36,7 +36,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime" column="create_time"/>
         <result property="createTime" column="create_time"/>
         <result property="updateBy" column="update_by"/>
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
         <result property="updateTime" column="update_time"/>
+        <association property="equipment" column="id" javaType="TblEquipment" resultMap="TblEquipmentResult"/>
     </resultMap>
     </resultMap>
 
 
+    <resultMap type="com.ruoyi.data.domain.TblEquipment" id="TblEquipmentResult">
+        <result property="id" column="id"/>
+        <result property="name" column="name"/>
+        <result property="sn" column="sn"/>
+        <result property="model" column="model"/>
+        <result property="specs" column="specs"/>
+        <result property="type" column="type"/>
+        <result property="equipmentTypeId" column="equipment_type_id"/>
+        <result property="manufacturer" column="manufacturer"/>
+        <result property="producer" column="producer"/>
+        <result property="pictures" column="pictures"/>
+        <result property="remark" column="remark"/>
+        <result property="gatewayId" column="gateway_id"/>
+        <result property="protocalType" column="protocal_type"/>
+        <result property="createBy" column="create_by"/>
+        <result property="createTime" column="create_time"/>
+        <result property="updateBy" column="update_by"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+    <select id="selectPageList" resultMap="TblEquipmentSbookResult">
+        select u.id, u.equipment_tree_id, u.sn, u.spare_sn, u.name, u.equipment_info_id, u.dept_id, u.dept_name,
+               u.equipment_type_id, u.person_in_charge, u.installation_date, u.asset_no, u.serial_number,u.use_certificate_no,
+               u.security_level,u.useful_life,u.change_date,u.supplier,
+               u.create_by, u.create_time, u.update_by, u.update_time, u.remark,d.id
+        from tbl_equipment_sbook u
+                 left join tbl_equipment d on u.equipment_info_id = d.id
+            ${ew.getCustomSqlSegment}
+    </select>
 
 
 </mapper>
 </mapper>

+ 135 - 100
ruoyi-ui-vue3/src/views/device/equipmentdash/add.vue

@@ -6,7 +6,7 @@
           <span>设备台账-新增</span>
           <span>设备台账-新增</span>
           <div>
           <div>
             <el-button type="warning" @click="">复位</el-button>
             <el-button type="warning" @click="">复位</el-button>
-            <el-button type="primary" @click="">保存</el-button>
+            <el-button type="primary" @click="save()">保存</el-button>
             <el-button type="primary" plain @click="router.back();">返回</el-button>
             <el-button type="primary" plain @click="router.back();">返回</el-button>
           </div>
           </div>
         </div>
         </div>
@@ -23,7 +23,7 @@
 
 
               </template>
               </template>
               <div class="content-w">
               <div class="content-w">
-                <el-input placeholder="请输入设备编码"/>
+                <el-input v-model="queryParams.sn" placeholder="请输入设备编码" />
               </div>
               </div>
             </el-descriptions-item>
             </el-descriptions-item>
             <el-descriptions-item>
             <el-descriptions-item>
@@ -33,7 +33,7 @@
                 </div>
                 </div>
               </template>
               </template>
               <div class="content-w">
               <div class="content-w">
-                <el-input placeholder="请输入设备名称"/>
+                <el-input v-model="queryParams.name" placeholder="请输入设备名称" />
               </div>
               </div>
             </el-descriptions-item>
             </el-descriptions-item>
             <el-descriptions-item>
             <el-descriptions-item>
@@ -43,11 +43,9 @@
                 </div>
                 </div>
               </template>
               </template>
               <div class="content-w">
               <div class="content-w">
-                <el-select-v2
-                  v-model="value"
-                  :options="options"
-                  placeholder="Please select"
-                />
+                <el-tree-select v-model="queryParams.equipmentTreeId" :data="treeList"
+                  :props="{ value: 'id', label: 'name', children: 'children' }" value-key="id" placeholder="请选上层位置"
+                  check-strictly />
               </div>
               </div>
             </el-descriptions-item>
             </el-descriptions-item>
             <el-descriptions-item>
             <el-descriptions-item>
@@ -57,14 +55,8 @@
                 </div>
                 </div>
               </template>
               </template>
               <div class="content-w">
               <div class="content-w">
-                <el-select-v2
-                  v-model="value"
-                  :options="options"
-                  placeholder="请选择"
-                  filterable
-                  remote
-                  :prefix-icon="Search"
-                />
+                <el-select-v2 v-model="value" :options="options" placeholder="请选择" filterable remote
+                  :prefix-icon="Search" />
               </div>
               </div>
             </el-descriptions-item>
             </el-descriptions-item>
             <el-descriptions-item>
             <el-descriptions-item>
@@ -74,14 +66,10 @@
                 </div>
                 </div>
               </template>
               </template>
               <div class="content-w">
               <div class="content-w">
-                <el-select-v2
-                  v-model="value"
-                  :options="options"
-                  placeholder="请选择"
-                  filterable
-                  remote
-                  :prefix-icon="Search"
-                />
+                <el-select v-model="queryParams.status" filterable placeholder="Select">
+                  <el-option v-for="item in statusList" :key="item.dictValue" :label="item.dictLabel"
+                    :value="item.dictValue" />
+                </el-select>
               </div>
               </div>
             </el-descriptions-item>
             </el-descriptions-item>
             <el-descriptions-item>
             <el-descriptions-item>
@@ -91,14 +79,9 @@
                 </div>
                 </div>
               </template>
               </template>
               <div class="content-w">
               <div class="content-w">
-                <el-select-v2
-                  v-model="value"
-                  :options="options"
-                  placeholder="请选择"
-                  filterable
-                  remote
-                  :prefix-icon="Search"
-                />
+                <el-select v-model="queryParams.equipmentInfoId" filterable placeholder="Select">
+                  <el-option v-for="item in equipmentList" :key="item.id" :label="item.name" :value="item.id" />
+                </el-select>
               </div>
               </div>
             </el-descriptions-item>
             </el-descriptions-item>
             <el-descriptions-item>
             <el-descriptions-item>
@@ -115,7 +98,12 @@
                   所属类型
                   所属类型
                 </div>
                 </div>
               </template>
               </template>
-              <div class="content-w"> -</div>
+              <div class="content-w">
+                <el-select v-model="queryParams.equipmentTypeId" filterable placeholder="Select">
+                  <el-option v-for="item in typeList" :key="item.dictValue" :label="item.dictLabel"
+                    :value="item.dictValue" />
+                </el-select>
+              </div>
             </el-descriptions-item>
             </el-descriptions-item>
             <el-descriptions-item>
             <el-descriptions-item>
               <template #label>
               <template #label>
@@ -123,7 +111,7 @@
                   负责人
                   负责人
                 </div>
                 </div>
               </template>
               </template>
-              <div class="content-w">  <el-input placeholder=""/> </div>
+              <div class="content-w"> <el-input v-model="queryParams.personInCharge" placeholder="" /> </div>
             </el-descriptions-item>
             </el-descriptions-item>
             <el-descriptions-item>
             <el-descriptions-item>
               <template #label>
               <template #label>
@@ -132,11 +120,7 @@
                 </div>
                 </div>
               </template>
               </template>
               <div class="content-w">
               <div class="content-w">
-                <el-select-v2
-                  v-model="value"
-                  :options="options"
-                  placeholder="请选择"
-                />
+                <el-select-v2 v-model="value" :options="options" placeholder="请选择" />
               </div>
               </div>
             </el-descriptions-item>
             </el-descriptions-item>
             <el-descriptions-item :span="2">
             <el-descriptions-item :span="2">
@@ -146,12 +130,9 @@
                 </div>
                 </div>
               </template>
               </template>
               <div class="content-w" style="min-width: 500px">
               <div class="content-w" style="min-width: 500px">
-                <el-select-v2
-                  style="width: 100%;"
-                  v-model="value"
-                  :options="options"
-                  placeholder="请选择标签"
-                />
+                <el-select v-model="queryParams.tagids" filterable placeholder="Select">
+                  <el-option v-for="item in tagList" :key="item.id" :label="item.name" :value="item.id" />
+                </el-select>
               </div>
               </div>
             </el-descriptions-item>
             </el-descriptions-item>
             <el-descriptions-item :span="4">
             <el-descriptions-item :span="4">
@@ -161,7 +142,7 @@
                 </div>
                 </div>
               </template>
               </template>
               <div class="content-w" style="min-width: 600px">
               <div class="content-w" style="min-width: 600px">
-                <el-input type="textarea" :line-count="5" placeholder="请输入备注"/>
+                <el-input  v-model="queryParams.remark" type="textarea" :line-count="5" placeholder="请输入备注" />
               </div>
               </div>
             </el-descriptions-item>
             </el-descriptions-item>
 
 
@@ -169,11 +150,7 @@
 
 
         </el-col>
         </el-col>
         <el-col :span="24">
         <el-col :span="24">
-          <el-tabs
-            type="card"
-            class="demo-tabs"
-            active-name="first"
-          >
+          <el-tabs type="card" class="demo-tabs" active-name="first">
             <el-tab-pane label="安装维修信息" name="first">
             <el-tab-pane label="安装维修信息" name="first">
               <el-descriptions :column="4">
               <el-descriptions :column="4">
                 <el-descriptions-item>
                 <el-descriptions-item>
@@ -184,7 +161,7 @@
 
 
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-input placeholder=""/>
+                    <el-input  v-model="queryParams.supplier" placeholder="" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
                 <el-descriptions-item>
                 <el-descriptions-item>
@@ -195,25 +172,21 @@
 
 
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-date-picker
-
-                      type="date"
-                      placeholder="请选择"
-                    />
+                    <el-date-picker  v-model="queryParams.manufacturingDate" type="date" placeholder="请选择" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
 
 
-              <el-descriptions-item>
-                <template #label>
-                  <div style="display: inline-block;min-width: 100px;text-align: right">
-                    使用年限
-                  </div>
+                <el-descriptions-item>
+                  <template #label>
+                    <div style="display: inline-block;min-width: 100px;text-align: right">
+                      使用年限
+                    </div>
 
 
-                </template>
-                <div class="content-w">
-                  <el-input placeholder=""/>
-                </div>
-              </el-descriptions-item>
+                  </template>
+                  <div class="content-w">
+                    <el-input  v-model="queryParams.usefulLife" placeholder="" />
+                  </div>
+                </el-descriptions-item>
 
 
                 <el-descriptions-item>
                 <el-descriptions-item>
                   <template #label>
                   <template #label>
@@ -223,11 +196,7 @@
 
 
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-date-picker
-
-                      type="date"
-                      placeholder="请选择"
-                    />
+                    <el-date-picker  v-model="queryParams.endOfWarrantyPeriod" type="date" placeholder="请选择" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
                 <el-descriptions-item>
                 <el-descriptions-item>
@@ -238,11 +207,7 @@
 
 
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-date-picker
-
-                      type="date"
-                      placeholder="请选择"
-                    />
+                    <el-date-picker  v-model="queryParams.installationDate" type="date" placeholder="请选择" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
                 <el-descriptions-item>
                 <el-descriptions-item>
@@ -253,7 +218,7 @@
 
 
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-input placeholder=""/>
+                    <el-input  v-model="queryParams.address" placeholder="" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
                 <el-descriptions-item>
                 <el-descriptions-item>
@@ -264,14 +229,10 @@
 
 
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-date-picker
-
-                      type="date"
-                      placeholder="请选择"
-                    />
+                    <el-date-picker  v-model="queryParams.changeDate" type="date" placeholder="请选择" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
-                <el-descriptions-item>
+                <!-- <el-descriptions-item>
                   <template #label>
                   <template #label>
                     <div style="display: inline-block;min-width: 100px;text-align: right">
                     <div style="display: inline-block;min-width: 100px;text-align: right">
                       关联设备
                       关联设备
@@ -279,9 +240,9 @@
 
 
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-input placeholder=""/>
+                    <el-input placeholder="" />
                   </div>
                   </div>
-                </el-descriptions-item>
+                </el-descriptions-item> -->
 
 
               </el-descriptions>
               </el-descriptions>
 
 
@@ -291,16 +252,16 @@
             <el-tab-pane label="资产信息" name="second">
             <el-tab-pane label="资产信息" name="second">
 
 
               <el-descriptions column="4">
               <el-descriptions column="4">
-                <el-descriptions-item>
+                <!-- <el-descriptions-item>
                   <template #label>
                   <template #label>
                     <div style="display: inline-block;min-width: 100px;text-align: right">
                     <div style="display: inline-block;min-width: 100px;text-align: right">
                       供货厂家
                       供货厂家
                     </div>
                     </div>
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-input placeholder=""/>
+                    <el-input placeholder="" />
                   </div>
                   </div>
-                </el-descriptions-item>
+                </el-descriptions-item> -->
                 <el-descriptions-item>
                 <el-descriptions-item>
                   <template #label>
                   <template #label>
                     <div style="display: inline-block;min-width: 100px;text-align: right">
                     <div style="display: inline-block;min-width: 100px;text-align: right">
@@ -308,7 +269,7 @@
                     </div>
                     </div>
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-input placeholder=""/>
+                    <el-input  v-model="queryParams.assetNo" placeholder="" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
                 <el-descriptions-item>
                 <el-descriptions-item>
@@ -318,7 +279,7 @@
                     </div>
                     </div>
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-input placeholder=""/>
+                    <el-input  v-model="queryParams.serialNumber" placeholder="" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
                 <el-descriptions-item>
                 <el-descriptions-item>
@@ -328,7 +289,7 @@
                     </div>
                     </div>
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-input placeholder=""/>
+                    <el-input  v-model="queryParams.useCertificateNo" placeholder="" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
                 <el-descriptions-item>
                 <el-descriptions-item>
@@ -338,17 +299,17 @@
                     </div>
                     </div>
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-input placeholder=""/>
+                    <el-input  v-model="queryParams.securityLevel" placeholder="" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
-                <el-descriptions-item>
+                <!-- <el-descriptions-item>
                   <template #label>
                   <template #label>
                     <div style="display: inline-block;min-width: 100px;text-align: right">
                     <div style="display: inline-block;min-width: 100px;text-align: right">
                       使用年限
                       使用年限
                     </div>
                     </div>
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-input placeholder=""/>
+                    <el-input placeholder="" />
                   </div>
                   </div>
                 </el-descriptions-item>
                 </el-descriptions-item>
                 <el-descriptions-item>
                 <el-descriptions-item>
@@ -358,9 +319,9 @@
                     </div>
                     </div>
                   </template>
                   </template>
                   <div class="content-w">
                   <div class="content-w">
-                    <el-input placeholder=""/>
+                    <el-input placeholder="" />
                   </div>
                   </div>
-                </el-descriptions-item>
+                </el-descriptions-item> -->
               </el-descriptions>
               </el-descriptions>
 
 
 
 
@@ -376,22 +337,96 @@
 </template>
 </template>
 
 
 <script setup lang="ts">
 <script setup lang="ts">
-import {ref} from "vue";
-import {useRoute, useRouter} from "vue-router";
+import { ref, toRaw } from "vue";
+import { useRoute, useRouter } from "vue-router";
+import { getDicts } from '@/api/system/dict/data'
+import { listEquipmentTag } from '@/api/data/equipmenttag'
+import { listEquipmentOrganizational } from "@/api/data/equipmentOrganizational"
+import { listEquipment } from "@/api/data/equipment"
 
 
 
 
 
 
 const route = useRoute();
 const route = useRoute();
 const router = useRouter();
 const router = useRouter();
 
 
-
+const { proxy } = getCurrentInstance();
+
+const queryParams = ref({
+  equipmentTreeId: "",
+  sn: "",
+  spareSn: "",
+  name: "",
+  equipmentInfoId: "",
+  deptId: "",
+  deptName: "",
+  equipmentTypeId: "",
+  personInCharge: "",
+  installationDate: "",
+  address: "",
+  gatewayId: "",
+  tagids: "",
+  status: "",
+  endOfWarrantyPeriod: "",
+  manufacturingDate: "",
+  assetNo: "",
+  serialNumber: "",
+  useCertificateNo: "",
+  securityLevel: "",
+  usefulLife: "",
+  changeDate: "",
+  supplier: "",
+})
+
+const equipmentList = ref([]);
+const treeList = ref([]);
 const value = ref("1");
 const value = ref("1");
+const typeList = ref([]);
+const tagList = ref([]);
+const statusList = ref([])
 const options = ref([
 const options = ref([
   {
   {
     value: '1',
     value: '1',
     label: '黄金糕'
     label: '黄金糕'
   }]);
   }]);
 
 
+const getDictsData = (param, obj) => {
+  getDicts(param).then(res => {
+    obj.value = res.data;
+  })
+}
+
+const getlistEquipmentTag = () => {
+  listEquipmentTag({ pageSize: 10000 }).then(res => {
+    tagList.value = res.data;
+    //  for()
+    console.log(tagList.value);
+  })
+}
+
+const getTreedata = () => {
+  listEquipmentOrganizational({ pageSize: 10000 }).then(res => {
+    const { rows, total, page, size } = res;
+    treeList.value = proxy.handleTree(res.rows, "id", "parentId");
+  })
+}
+
+const getEquipmentList = () => {
+  listEquipment({ pageSize: 10000 }).then(res => {
+    console.log(res);
+    const { rows, total, page, size } = res;
+    equipmentList.value = res.rows
+  })
+}
+
+const save = () =>{
+   console.log(queryParams.value);
+}
+
+getDictsData("equipment_type", typeList);
+getDictsData("status_type", statusList);
+getlistEquipmentTag();
+getTreedata();
+getEquipmentList();
 
 
 </script>
 </script>
 
 

+ 161 - 123
ruoyi-ui-vue3/src/views/device/equipmentdash/index.vue

@@ -2,66 +2,54 @@
   <div style="padding: 10px 15px">
   <div style="padding: 10px 15px">
     <el-row>
     <el-row>
       <el-col :span="6" style="padding-right: 10px">
       <el-col :span="6" style="padding-right: 10px">
-    <el-card class="box-card">
-      <template #header>
-        <div class="card-header">
-          <span>设备台账区域</span>
-          <div>
-            <el-button type="primary" plain >
-              添加
-            </el-button>
+        <el-card class="box-card">
+          <template #header>
+            <div class="card-header">
+              <span>设备台账区域</span>
+              <div>
+                <el-button type="primary" plain>
+                  添加
+                </el-button>
+              </div>
+            </div>
+          </template>
+          <div class="tree">
+            <LayTree :data="treeList" :tail-node-icon="false" :onlyIconControl="true" v-model:selectedKey="selectedKey"
+              @node-click="handleClick">
+              <template #title="{ data }">
+                {{ data.name }}
+              </template>
+            </LayTree>
           </div>
           </div>
-        </div>
-      </template>
-      <div class="tree">
-        <LayTree
-          :data="data"
-          :tail-node-icon="false"
-          :onlyIconControl="true"
-          v-model:selectedKey="selectedKey"
-          @node-click="handleClick"
-        >
-        </LayTree>
-      </div>
-    </el-card>
+        </el-card>
       </el-col>
       </el-col>
 
 
       <el-col :span="18">
       <el-col :span="18">
         <el-card class="box-card">
         <el-card class="box-card">
           <div style="display: flex; flex-direction: row; justify-content: space-between">
           <div style="display: flex; flex-direction: row; justify-content: space-between">
             <div style="display: flex; flex-direction: row;">
             <div style="display: flex; flex-direction: row;">
-              <div
-                style="
+              <div style="
                   display: flex;
                   display: flex;
                   flex-direction: row;
                   flex-direction: row;
                   flex-wrap: nowrap;
                   flex-wrap: nowrap;
                   align-items: center;
                   align-items: center;
-                "
-              >
+                ">
                 <div style="font-size: 12px; width: 80px;">设备名称:</div>
                 <div style="font-size: 12px; width: 80px;">设备名称:</div>
-                <el-input
-                  v-model="searchform.devicename"
-                  placeholder="设备名称"
-                ></el-input>
+                <el-input v-model="searchform.name" placeholder="设备名称"></el-input>
               </div>
               </div>
-              <div
-                style="
+              <div style="
                   display: flex;
                   display: flex;
                   flex-direction: row;
                   flex-direction: row;
                   flex-wrap: nowrap;
                   flex-wrap: nowrap;
                   align-items: center;
                   align-items: center;
-                "
-              >
+                ">
                 <div style="font-size: 12px; width: 80px;margin-left: 10px">设备编码:</div>
                 <div style="font-size: 12px; width: 80px;margin-left: 10px">设备编码:</div>
-                <el-input
-                  v-model="searchform.devicename"
-                  placeholder="设备编码"
-                ></el-input>
+                <el-input v-model="searchform.sn" placeholder="设备编码"></el-input>
               </div>
               </div>
             </div>
             </div>
             <div>
             <div>
-              <el-button type="primary" plain>重置</el-button>
-              <el-button type="primary">搜索</el-button>
+              <el-button type="primary" plain @click="requery">重置</el-button>
+              <el-button type="primary" @click="getlistEquipmentSbook">搜索</el-button>
             </div>
             </div>
           </div>
           </div>
         </el-card>
         </el-card>
@@ -75,44 +63,24 @@
                 <el-button type="danger">批量删除</el-button>
                 <el-button type="danger">批量删除</el-button>
                 <el-button type="primary" plain>显示字段</el-button>
                 <el-button type="primary" plain>显示字段</el-button>
               </div>
               </div>
-            </div></template>
+            </div>
+          </template>
 
 
           <el-row>
           <el-row>
             <el-col :span="24" style="padding-left: 10px">
             <el-col :span="24" style="padding-left: 10px">
               <el-table :data="devicetabledata" :border="true">
               <el-table :data="devicetabledata" :border="true">
-                <el-table-column label="上层位置"></el-table-column>
-                <el-table-column label="设备编码"></el-table-column>
-                <el-table-column label="备用编码"></el-table-column>
-                <el-table-column label="设备名称"></el-table-column>
-                <el-table-column label="设备信息"></el-table-column>
-                <el-table-column label="所属公司"></el-table-column>
-                <el-table-column label="所属组织机构"></el-table-column>
-                <el-table-column label="所属类型"></el-table-column>
-                <el-table-column label="负责人"></el-table-column>
-                <el-table-column label="安装日期"></el-table-column>
-                <el-table-column label="安装地点地址"></el-table-column>
-                <el-table-column label="关联设备Id"></el-table-column>
-                <el-table-column label="标签"></el-table-column>
-                <el-table-column label="状态"></el-table-column>
-                <el-table-column label="保修期结束日期"></el-table-column>
-                <el-table-column label="制造日期"></el-table-column>
-                <el-table-column label="资产编码"></el-table-column>
-                <el-table-column label="资产编号"></el-table-column>
-                <el-table-column label="使用证编号"></el-table-column>
-                <el-table-column label="安全级别"></el-table-column>
-                <el-table-column label="使用年限"></el-table-column>
-                <el-table-column label="变动日期"></el-table-column>
-                <el-table-column label="供货厂家"></el-table-column>
-                <el-table-column label="创建人"></el-table-column>
-                <el-table-column label="创建时间"></el-table-column>
-                <el-table-column label="更新人"></el-table-column>
-                <el-table-column label="更新时间"></el-table-column>
-                <el-table-column label="备注"></el-table-column>
-                <el-table-column label="设备编码"></el-table-column>
+                <el-table-column type="selection" width="55" />
+                <el-table-column v-for="item in columns.filter(i => i.visible)" :prop="item.prop"
+                  :label="item.label"></el-table-column>
+                <el-table-column label="设备类型">
+                  <template #default="scope">
+                    {{ getTypeName(scope.row) }}
+                  </template>
+                </el-table-column>
                 <el-table-column label="操作">
                 <el-table-column label="操作">
                   <template #default="scope">
                   <template #default="scope">
                     <div>
                     <div>
-                      <el-button link >
+                      <el-button link>
                         <el-tooltip effect="dark" content="详情">
                         <el-tooltip effect="dark" content="详情">
                           <el-icon>
                           <el-icon>
                             <Memo />
                             <Memo />
@@ -121,10 +89,9 @@
                       </el-button>
                       </el-button>
                       <el-popconfirm title="确定删除该标签?">
                       <el-popconfirm title="确定删除该标签?">
                         <template #reference>
                         <template #reference>
-                          <el-button link
-                          ><el-tooltip effect="dark" content="删除"
-                          ><el-icon><Delete /></el-icon></el-tooltip
-                          ></el-button>
+                          <el-button link><el-tooltip effect="dark" content="删除"><el-icon>
+                                <Delete />
+                              </el-icon></el-tooltip></el-button>
                         </template>
                         </template>
                       </el-popconfirm>
                       </el-popconfirm>
                     </div>
                     </div>
@@ -135,13 +102,8 @@
 
 
             </el-col>
             </el-col>
             <el-col :span="24" style="margin-top: 10px;">
             <el-col :span="24" style="margin-top: 10px;">
-              <el-pagination style="float: right;"
-                             small
-                             background
-                             layout="prev, pager, next"
-                             :total="50"
-                             class="mt-4"
-              />
+              <el-pagination style="float: right;" small background layout="prev, pager, next" :total="pagedata.total"
+                :page-size="pagedata.size" :current-page="pagedata.current" @current-change="onchangepage" class="mt-4" />
             </el-col>
             </el-col>
           </el-row>
           </el-row>
         </el-card>
         </el-card>
@@ -153,64 +115,139 @@
 </template>
 </template>
 
 
 <script setup lang="ts" name="Units">
 <script setup lang="ts" name="Units">
-import {ref} from "vue";
+import { ref,toRaw } from "vue";
 import { LayTree } from "@layui/layui-vue";
 import { LayTree } from "@layui/layui-vue";
 import "@layui/layui-vue/lib/index.css";
 import "@layui/layui-vue/lib/index.css";
-import {useRoute, useRouter} from "vue-router";
+
+import { useRoute, useRouter } from "vue-router";
+import { listEquipmentOrganizational } from "@/api/data/equipmentOrganizational"
+import { listEquipmentSbook } from "@/api/data/equipmentSbook"
+import { getDicts } from '@/api/system/dict/data'
+
 
 
 
 
 const route = useRoute();
 const route = useRoute();
 const router = useRouter();
 const router = useRouter();
 
 
+const { proxy } = getCurrentInstance();
 
 
-const goadd = ()=>{
+const goadd = () => {
   router.push("/device/equipmentdash/add")
   router.push("/device/equipmentdash/add")
 }
 }
 
 
 const handleClick = (node) => {
 const handleClick = (node) => {
-  console.log("Click Node:" + JSON.stringify(node));
+  //console.log("Click Node:" + JSON.stringify(node));
+  searchform.value.equipmentTreeId = node.id
+  getlistEquipmentSbook();
 };
 };
 const selectedKey = ref(4);
 const selectedKey = ref(4);
-const data = ref([
-  {
-    title: "集团公司",
-    id: 1,
-    checked: true,
-    spread: true,
-    children: [
-      {
-        title: "示范项目",
-        id: 2,
-        spread: true,
-        children: [
-          {
-            title: "监测站",
-            id: 4,
-            href: "https://www.layui.com/",
-          },
-          {
-            title: "用能区域",
-            id: 5,
-            href: "https://www.layui.com/",
-          },
-
-        ],
-      },
-      {
-        title: "虚拟项目",
-        id: 3,
-        href: "https://www.layui.com/",
-      },
-
-    ],
-  },
-]);
-
-const devicetabledata = ref([1]);
+const treeList = ref([]);
+const typeList = ref([]);
+
+const pagedata = ref({
+  total: 0,
+  size: 10,
+  current: 1
+});
+
+const devicetabledata = ref([]);
 const searchform = ref({
 const searchform = ref({
-  devicename: "",
-  devicesn:""
+  name: "",
+  sn: "",
+  equipmentTreeId:""
 });
 });
+
+const columns = ref([
+  // {label: '上层位置', prop: 'v', visible: true},
+  { label: '上层位置', prop: 'deptName', visible: true },
+  { label: '设备编码', prop: 'sn', visible: true },
+  { label: '备用编码', prop: 'spareSn', visible: true },
+  { label: '设备名称', prop: 'name', visible: true },
+  { label: '设备信息', prop: 'equipment.name', visible: true },
+  //{label: '所属公司', prop: 'parity', visible: true},
+  { label: '所属组织机构', prop: 'deptName', visible: true },
+  // { label: '所属类型', prop: 'apiUrl', visible: true },
+  { label: '负责人', prop: 'uuid', visible: true },
+  { label: '安装日期', prop: 'installationDate', visible: true },
+  { label: '安装地点地址', prop: 'address', visible: true },
+  // {label: '关联设备Id', prop: 'protocolDesc', visible: true},
+  { label: '标签', prop: 'tagids', visible: true },
+  { label: '状态', prop: 'status', visible: true },
+  { label: '保修期结束日期', prop: 'endOfWarrantyPeriod', visible: true },
+  { label: '制造日期', prop: 'manufacturingDate', visible: true },
+  { label: '资产编码', prop: 'assetNo', visible: true },
+  { label: '资产编号', prop: 'serialNumber', visible: true },
+  { label: '使用证编号', prop: 'useCertificateNo', visible: true },
+  { label: '安全级别', prop: 'securityLevel', visible: true },
+  { label: '使用年限', prop: 'usefulLife', visible: true },
+  { label: '变动日期', prop: 'changeDate', visible: true },
+  { label: '供货厂家', prop: 'supplier', visible: true },
+  { label: '创建人', prop: 'createBy', visible: true },
+  { label: '创建时间', prop: 'createTime', visible: true },
+  { label: '更新人', prop: 'updateBy', visible: true },
+  { label: '更新时间', prop: 'updateTime', visible: true },
+  { label: '备注', prop: 'remark', visible: true },
+])
+
+const onchangepage = (page) => {
+  pagedata.value.current = page;
+  getlistEquipmentSbook();
+}
+
+const getTreedata = () => {
+  listEquipmentOrganizational({ pageSize: 10000 }).then(res => {
+    const { rows, total, page, size } = res;
+    treeList.value = proxy.handleTree(res.rows, "id", "parentId");
+  })
+}
+
+// function getlistEquipmentSbook(){
+//   listEquipmentSbook({ ...searchform.value, pageSize: pagedata.value.size, pageNum: pagedata.value.current }).then(res => {
+//     const { rows, total, page, size } = res;
+//     devicetabledata.value = res.rows
+//   })
+// }
+
+const requery = () => {
+  searchform.value = {
+    name: "",
+    sn: "",
+    equipmentTreeId:''
+  }
+  getlistEquipmentSbook();
+}
+
+const getlistEquipmentSbook = () => {
+  listEquipmentSbook({ ...searchform.value, pageSize: pagedata.value.size, pageNum: pagedata.value.current }).then(res => {
+    const { rows, total, page, size } = res;
+    devicetabledata.value = res.rows
+  })
+}
+
+const getDictsData = () => {
+  getDicts("equipment_type").then(res => {
+    typeList.value = res.data;
+  })
+}
+
+const getTypeName = (scope) => {
+  var equipment = toRaw(scope)
+  if (equipment != null) {
+    for (var index in typeList.value) {
+      var obj = toRaw(typeList.value[index]);
+      console.log(obj.dictValue);
+      console.log(equipment.equipmentTypeId);
+      if (obj.dictValue == equipment.equipmentTypeId) {
+        console.log(obj.dictLabel);
+        return obj.dictLabel
+      }
+    }
+  }
+}
+
+getTreedata();
+getlistEquipmentSbook();
+getDictsData();
 </script>
 </script>
 
 
 <style lang="scss" scoped>
 <style lang="scss" scoped>
@@ -221,6 +258,7 @@ const searchform = ref({
 }
 }
 
 
 .tree {
 .tree {
+
   *,
   *,
   *:before,
   *:before,
   *:after {
   *:after {