Module: DFC::Common::Lib

Overview

物料中心相关API

Defined Under Namespace

Modules: MaterialInfo Classes: LibObj

Class Method Summary # collapse

Class Method Details

.add_obj(hash, clazz) ⇒ String

添加本地产品

Parameters:

  • hash (Hash)

    产品数据

  • clazz (Class)

    对应的类

Returns:

  • (String)

    返回库id

.add_obj_to_user(ids) ⇒ Object

收藏数据到用户库

Parameters:

  • ids (Array(String))

    待收藏的材料id

.clear_none_useObject

清理未使用项目(项目库)

.copy_obj(id) ⇒ String

在项目库复制数据 复制数据时 id和名称不一样 其它一致

Parameters:

  • id (String)

    库数据id

Returns:

  • (String)

    返回复制后的库id

.delete_obj(ids, type = DFC::Common::Lib::LibType::USER) ⇒ Object

删除库数据

Parameters:

  • ids (Array)

    待删除的id

  • type (DFC::Common::Lib::LibType) (defaults to: DFC::Common::Lib::LibType::USER)

    库类型 默认取项目库

.dialog_show(fitter_str, attach) {|Object| ... } ⇒ Object

显示物料中心窗口

Examples:

fitter_str = %q(n{"m":"产品","d":"装饰","t":[["流质"]],"f":[{"产品分类":[["内装","门"]],"开启方式1":["单扇平开门"],"产品名称":["仿实木门"]}]})
DFC::Common::Lib.dialog_show(fitter_str){|id|
  puts "#{id}"
}

Parameters:

  • fitter_str (String)

    %q(n“m”:物料类型(产品),“d”:物料专业(可以为空),“t”:(物料分类),“f”:属性筛选)

Yields:

  • (Object)

    attach

  • (id, type)

Yield Parameters:

  • id (String)

    产品id

  • type (String)

    库类型

.dynamic_get_all_type(type = DFC::Common::Lib::LibType::PROJECT, filter = nil) ⇒ Array

动态的获取对应类型库的分类

Parameters:

  • type (DFC::Common::Lib::LibType) (defaults to: DFC::Common::Lib::LibType::PROJECT)

    库类型 SYSTEM USER PROJECT

  • filter (Hash) (defaults to: nil)

    筛选参数 [“id”=>“48”,“商家信息”=>“48”] 数组为或 Hash为且

Returns:

  • (Array)

    分类树

.exist?(obj) ⇒ True/False

判断材料是否存在于库

Parameters:

  • obj (obj)

    产品对象

Returns:

  • (True/False)

.export(path, ids) ⇒ Object

导出数据指定产品到文件夹中

Parameters:

  • path (String)

    指定文件夹

  • ids (Array)

    产品id数组

.find_obj_by_manu(manu_id) ⇒ Array

根据商家id查询产品

Parameters:

  • manu_id (String)

    商家id

Returns:

  • (Array)

    产品对象数据

.get_all_ext_nameObject

获取产品类与后缀的关系

.get_data_by_id(classify, obj_id, type = DFC::Common::Lib::LibType::PROJECT, key_word = nil, num = nil, filter = nil) ⇒ Hash

查询产品所在页码(分类、关键字)

Parameters:

  • classify (Array(String))

    分类数组

  • obj_id (String)

    库对象id

  • type (DFC::Common::Lib::LibType) (defaults to: DFC::Common::Lib::LibType::PROJECT)

    库类型 默认取项目库

  • key_word (String) (defaults to: nil)

    查询关键字

  • num (Fixnum) (defaults to: nil)

    一页数据个数

Returns:

  • (Hash)

    hash数组 由展示页hash构成的数组

.get_data_by_type(classify, type = DFC::Common::Lib::LibType::PROJECT, key_word = nil, page = nil, num = nil, filter = nil) ⇒ Hash

查询分页(分类、关键字)

Examples:

# 返回数据
   {
      "data"=>[
          {
              "id"=>id
              "show"=>{		# show 库管理器页面正常展示数据 预览图 名称 为固定参数
                  "预览图"=>src,
                  "名称"=>"大理石"
              },
              "title"=>{		# title 库管理器页面鼠标悬浮时展示数据 key:value
                  "防火等级"=>"A",
                  "单价"=>nil
              }
          }
      ],
      "page"=>1,
      "count"=>1,
      "type"=>'项目'
  }

Parameters:

  • classify (Array(String))

    分类数组

  • type (DFC::Common::Lib::LibType) (defaults to: DFC::Common::Lib::LibType::PROJECT)

    库类型 默认取项目库

  • key_word (String) (defaults to: nil)

    查询关键字

  • page (Fixnum) (defaults to: nil)

    页码

  • num (Fixnum) (defaults to: nil)

    一页数据个数

Returns:

  • (Hash)

    hash数组 由展示页hash构成的数组

.get_obj_by_id(id, type = nil) ⇒ LibObj

通过id获取对象

Parameters:

  • id (String)

    库数据id

Returns:

  • (LibObj)

    返回库对象

.handle_files(files, dest_path) ⇒ Object

文件名采用文件MD5 移动到 dest_path

.import(path) ⇒ Object

从指定文件夹导入数据

Parameters:

  • path (String)

    指定文件夹

.is_exist_name(name, &block) ⇒ Object

判断当前商家是否已经存在某个名称的商品

Parameters:

  • name (String)

    商品名称

.load_file(type, file) ⇒ LibObj

加载产品文件到对应的库中

Parameters:

  • type (DFC::Common::Lib::LibType)

    库类型 SYSTEM USER PROJECT

  • file (String)

    产品文件

Returns:

.modify_obj(id, hash) ⇒ LibObj

修改数据

Parameters:

  • id (String)

    产品对象id

  • hash (Hash)

    修改后的hash属性

Returns:

.modify_obj_type(id, type) ⇒ Object

修改本地产品

Parameters:

  • id (String)

    产品对象id

  • type (Hash)

    类型数组

.name_exist?(name, manu_id, type = nil, id_ext = nil) ⇒ True/False

判断产品名称是否存在

Parameters:

  • name (String)

    名称

  • manu_id (String)

    商家id

  • type (String) (defaults to: nil)

    产品类型 非必填

  • id_ext (String) (defaults to: nil)

    产品id 非必填 用于查询非自己以外的名称(主要用于材料编辑)

Returns:

  • (True/False)

.parse_ext_name(ext_name) ⇒ Object

通过文件后缀获取产品类

Parameters:

  • ext_name (Object)

    文件后缀

.set_mats_info_to_ent(ent, libs) ⇒ Object

给模型设置物料信息 单个组上多个物料信息

Examples:

libs = [
  {
    'CP_ID' => 'xxxxxxx',
    'CP_XH' => 'xxxxxxx',
    'WL_LX' => '产品',
    'WL_JG' => false,   物料是否甲供  默认false
    'WL_ZC' => false,   物料是否甲供  默认false
  },
  {
    'CL_ID' => 'xxxxxxx',
    'CL_XH' => 'xxxxxxx',
    'CZ_SY' => 0,
    'CL_LX' => '主材',   # 有了 WL_ZC  这个属性将废弃
    'WL_LX' => '材料',
    'WL_JG' => false,   物料是否甲供  默认false
    'WL_ZC' => false,   物料是否甲供  默认false
  }
]
ent = Sketchup.active_model.selection[0]
DFC::Common::Lib.set_mats_info_to_ent ent, libs

Parameters:

  • ent (Sketchup::Entity)

    实体

  • libs (Array)

    多组物料信息

.type_exist?(type, obj) ⇒ Boolean

判断材料是否存在于某个类型的库

Parameters:

  • type (DFC::Common::Lib::LibType)

    库类型 SYSTEM USER PROJECT

  • obj (obj)

    库对象

Returns:

  • (Boolean)

.type_of(obj) ⇒ String

判断对象类型

Parameters:

Returns:

  • (String)

    “产品”、“材料”、“单元”、“吊挂”

.use_obj_by_id(id) ⇒ LibObj

通过id使用对象 此操作会将产品移入项目库

Parameters:

  • id (String)

    库数据id

Returns:

  • (LibObj)

    返回库对象