# yiyun-desktop-sdk

> yiyun-desktop-sdk

Latest version **0.0.13** (published 2022-12-09) · ISC license · 0 weekly downloads

## Install

```sh
npm install yiyun-desktop-sdk
pnpm add yiyun-desktop-sdk
yarn add yiyun-desktop-sdk
bun add yiyun-desktop-sdk
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.13 |
| Published | 2022-12-09 |
| First published | 2022-09-19 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 29.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | geyujie |
| Maintainers | npm_geyujie |
| Keywords | yiyun, desktop, sdk |

## Links

- npm: https://www.npmjs.com/package/yiyun-desktop-sdk
- npm.io page: https://npm.io/package/yiyun-desktop-sdk

## Recent versions

- 0.0.13 (latest) — 2022-12-09
- 0.0.12 — 2022-11-02
- 0.0.11 — 2022-11-01
- 0.0.10 — 2022-10-31
- 0.0.9 — 2022-10-28
- 0.0.8 — 2022-10-13
- 0.0.7 — 2022-09-30
- 0.0.6 — 2022-09-23
- 0.0.5 — 2022-09-22
- 0.0.4 — 2022-09-22
- 0.0.3 — 2022-09-20
- 0.0.2 — 2022-09-19
- 0.0.1 — 2022-09-19

## README

# yiyun-desktop-sdk
亦云桌面端sdk补充说明：在亦云桌面端环境下才会返回yiyunSdk对象，否则为返回null，第三方应用也可以以此作为判断是否在桌面端环境下的依据
## install
```js
npm install yiyun-desktop-sdk
```
## use example
```js
import yiyunSdk from "yiyun-desktop-sdk"
yiyunSdk.file.previewImageAndVideo({
    imagesAndVideos: [
        {
            type: "image",
            src: "https://xxx.png",
        },
        {
            type: "video",
            src: "https://xxx.mp4",
        },
    ],
    index: 0,
});
```

### 1.File
#### previewImageAndVideo({imagesAndVideos,index})
预览图片和视频
```js
yiyunSdk.file.previewImageAndVideo({
    imagesAndVideos: [
        {
            type: "image",
            src: "https://xxx.png",
        },
        {
            type: "video",
            src: "https://xxx.mp4",
        },
    ],
    index: 0,
});
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| imagesAndVideos | Array         | 图片视频集合  |
| index           | Number        | 初始索引      |

#### previewFile({ fileUrl, fileName, fileSize })
预览文件
```js
yiyunSdk.file.previewFile({fileUrl:"https://xxx.mp3", fileName:"xxx.mp3", fileSize:10240})
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| fileUrl         | String        | 文件url       |
| fileName        | String        | 文件名称      |
| fileSize        | Number        | 文件大小      |

#### openServerFileByLocalApp(fileUrl)
本地应用打开网络文件
```js
await yiyunSdk.file.openServerFileByLocalApp("https://xxx.pdf");
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| fileUrl         | String        | 文件url       |

返回参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| code            | Number        | 0.失败 1.成功 |
| message         | String        | 说明信息      |
| data            | Null          |               |

#### openServerFileByBrowser(fileUrl)
操作系统设置的默认浏览器打开网络文件
```js
await yiyunSdk.file.openServerFileByBrowser("https://xxx.pdf");
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| fileUrl         | String        | 文件url       |

返回参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| code            | Number        | 0.失败 1.成功 |
| message         | String        | 说明信息      |
| data            | Null          |               |

tips: 如果浏览器直接访问文件url，除pdf之外默认为下载，如需预览office，请自行拼接url,
例如: https://view.officeapps.live.com/op/view.aspx?src=https://xxx.docx
#### downloadServerFile(fileUrl)
下载网络文件到本地文件夹 - 无法指定下载到哪个目标文件夹
```js
await yiyunSdk.file.downloadServerFile("https://xxx.pdf");
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| fileUrl         | String        | 文件url       |

返回参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| code            | Number        | 0.失败 1.成功 |
| message         | String        | 说明信息      |
| data            | Null          |               |
#### saveAsServerFile(fileUrl)
网络文件另存为 - 可指定要下载到哪个目标文件夹
```js
await yiyunSdk.file.saveAsServerFile("https://xxx.pdf");
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| fileUrl         | String        | 文件url       |

返回参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| code            | Number        | 0.失败 1.成功 |
| message         | String        | 说明信息      |
| data            | Null          |               |

### 2.App
#### openApp({appId, path, fregment, openWay})
打开app 
```js
yiyunSdk.app.openApp({appId: "xxx", path: "", fregment: "", openWay: 0});
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| appId           | String        | 应用id        |
| openWay         | Number        | 打开方式 - 0: 工作台打开  1 :独立窗口打开 |
| path            | String        | 要跳转的html文件 如：index.html |
| fregment        | String        | 前端路由及参数（#后的内容）如：/detail?id=1|

#### isFullscreen()
获取目前窗口是否为最大化
```js
const isFullscreen = await yiyunSdk.app.isFullscreen();
```
返回参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| isFullscreen    | Boolean       |  是否为最大化 |

#### requestFullscreen()
设置最大化窗口
```js
yiyunSdk.app.requestFullscreen();
```

#### exitFullscreen()
取消最大化窗口
```js
yiyunSdk.app.exitFullscreen();
```

### 3.View
#### openEDiskSelector({ checkMode, selectKeys, fileTypeOptional })
打开E盘选择文件组件 
```js
const { data } = await yiyunSdk.view.openEDiskSelector({
    checkMode: 0,
    selectKeys: ["/19", "/17/31"],
    fileTypeOptional: ['pdf', 'png', '...'],
})
console.log(data)
/** 
 [{
    diskId: "xxx",
    fileId: "1",
    mimeType: "image/png",
    name: "xxx.png",
    path: "/1",
    size: 35151,
    sizeFormat: "34.3K",
    src: "https://xxx.png",
 }]
**/
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| checkMode       | Number        | 选择模式 - 0: 单选  1 :多选  |
| selectKeys      | Array         | 已选文件key集合  |
| fileTypeOptional| Array         | 可见的文件类型, 默认全部可见  |

tips: 若要使用selectKeys，需提供完整文件路径，该路径会在文件选择时提供，参数名为path

返回参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| code            | Number        | 0.失败 1.成功 |
| message         | String        | 说明信息      |
| data            | Array         | 已选文件集合  |

#### openEnterpriseModelSelector({ data, selectKeys })
打开企业模型组件
```js
const { data } = await yiyunSdk.view.openEnterpriseModelSelector({
    data: [
        {
            key: "1",
            label: "一级 1",
            children: [
            {
                key: "1-1",
                label: "二级 1-1",
                children: [
                {
                    key: "1-1-1",
                    label: "三级 1-1-1",
                },
                ],
            },
            ],
        },
    ],
    selectKeys: ["1-1"],
})
console.log(data)
/** 
 [{
    key: "xxx",
    label: "xxx",
    ...property
 }]
**/
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| data            | Array         | 企业模型树    |
| selectKeys      | Array         | 已选企业模型节点key集合  |

tips: key为树中全局唯一标识， label为节点名称， children对应节点的子节点集合， 其余所有属性不做要求，原样返回

返回参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| code            | Number        | 0.失败 1.成功 |
| message         | String        | 说明信息      |
| data            | Array         | 已选企业模型节点集合  |

#### openDepartmentSelector({ data, selectKeys, checkMode })
打开组织架构 部门 组件
```js
const { data } = await yiyunSdk.view.openDepartmentSelector({
    data: [
        {
            key: "1",
            label: "一级 1",
            children: [
            {
                key: "1-1",
                label: "二级 1-1",
                children: [
                {
                    key: "1-1-1",
                    label: "三级 1-1-1",
                },
                ],
            },
            ],
        },
    ],
    selectKeys: ["1-1"],
})
console.log(data)
/** 
 [{
    key: "xxx",
    label: "xxx",
    ...property
 }]
**/
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| data            | Array         | 组织架构部门树    |
| selectKeys      | Array         | 已选组织架构部门key集合  |
| checkMode       | Number        | 选择模式 - 0: 单选  1 :多选  |

tips: key为树中全局唯一标识， label为节点名称， children对应节点的子节点集合， 其余所有属性不做要求，原样返回

返回参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| code            | Number        | 0.失败 1.成功 |
| message         | String        | 说明信息      |
| data            | Array         | 已选组织架构部门节点集合  |

#### openMemberOfDepartmentSelector({ data, selectKeys, checkMode })
打开组织架构 部门-成员 组件
```js
const { data } = await yiyunSdk.view.openMemberOfDepartmentSelector({
    data: [
        {
            key: "1",
            parentKey: ""
            label: "部门1",
            type: 1,
            icon: null,
            children: [
                {
                    key: "1-1",
                    parentKey: "1",
                    label: "部门1-1",
                    type: 1,
                    icon: null,
                    children: [],
                },
                {
                    key: "1-2",  //全局唯一标识
                    parentKey: "1",
                    label: "张三",  //节点名称
                    type: 0,  // 0.成员 1.部门
                    icon: "https://xxx.png",  //成员头像 
                    id: "2",  //成员唯一标识
                    children: [], //子节点集合
                },                
            ],
        },
        {
            key: "2",
            parentKey: "",
            label: "张三",
            type: 0,
            icon: "https://xxx.png",
            id: "2"
        },  
    ],
    selectKeys: ["2"],
})
console.log(data)
/** 
 [{
    key: "2",
    parentKey: "",
    label: "张三",
    type: 0,
    icon: "https://xxx.png",
    id: "2",
    ...property
 }]
**/
```
请求参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| data            | Array         | 组织架构部门-成员树    |
| selectKeys      | Array         | 已选组织架构成员id集合  |
| checkMode       | Number        | 选择模式 - 0: 单选  1 :多选  |

返回参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| code            | Number        | 0.失败 1.成功 |
| message         | String        | 说明信息      |
| data            | Array         | 已选组织架构成员节点集合  |

#### closeAppViewLayer()
关闭应用视图层
```js
yiyunSdk.view.closeAppViewLayer();
```

### 4.Data
#### getUserInfo()
获取用户信息
```js
const { data } = await yiyunSdk.data.getUserInfo();
/** 
 {
    id: "xxx",
    name: "xxx",
    profilePicture: "xxx",
    phone: "123123123",
    token: "xxx",
    ...property
}
**/
```
返回参数说明

| 参数            | 类型          | 说明          |
| --------------- | ------------- | ------------- |
| code            | Number        | 0.失败 1.成功 |
| message         | String        | 说明信息      |
| data            | Object        | 用户信息      |

### 5.Event
1. Event: 'scaned' - 扫码事件
- return：Object - 返回
    - isPlatformQrCode: Boolean - 是否为平台二维码
    - data: String | Object - 平台二维码data为Object，反之为String
#### on
注册事件
```js
export default {
    methods: {
        scanedHandler(data) {
            console.log(data)
        },
    },
    created() {
        yiyunSdk.event.on("scaned", this.scanedHandler)
    },
}
```
#### off
注销事件
```js
export default {
    methods: {
        scanedHandler(data) {
            console.log(data)
        },
    },
    beforeDestroy() {
        yiyunSdk.event.off("scaned", this.scanedHandler)
    },
}
```

---
_Source: https://npm.io/package/yiyun-desktop-sdk · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
