# 人员控件(F7)参数支持
## 简介
业务单据添加的人员控件（F7），即UserEdit对象，可以通过表单插件或者KDE脚本插件，设置参数控制F7的界面样式以及可选人员的范围。具体支持的参数，可以参照[PC端](#pcparam)和[移动端](#mobileparam)的参数说明。
![UserEdit](images/01.png)


<div id="pcparam" name="pcparam"></div>

## PC端

**参数说明**

| **应用场景** | **参数名**             | **类型** | **说明** |
| ---------------------- | -------- | ------------ | ------------ |
| 指定组织树初始根节点 | initRootOrgId          | Long     | 如果指定的节点不是根节点时，会显示[显示全部]开关，打开开关可以查看全部组织的人员信息
| 指定组织树的初始焦点| initOrgId              | Long      | 
| 指定[包含下级]开关默认值 | isIncludeAllSub        | Boolean  | 默认为false：[包含下级]开关是关闭状态|
| 设置是否添加管理员组织管辖范围| isOrgBaseAdmin         | Boolean   | 默认为false：不添加组织管理员管辖范围                                 |
| 设置是否添加用户授权组织管辖范围| isAddUserPermOrgFilter | Boolean   | 默认为false：不添加用户授权组织范围                                   |
| 指定要显示的外部用户的人员类型集合| externalUserType       | String    | 人员F7默认不展示展示外部用户（如客户、供应商等其他人员类型）；可以通过参数控制，为[all]时展示所有外部用户类型；设置为具体某些类型，如客户、供应商时，设置具体参数，多个用逗号隔开，即[2,3] |
| 设置是否只能选择外部用户| isOnlyShowExternalUser | Boolean   | 设置为true时左树和列表只展示企业外部用户。可以结合externalUserType使用。 |


 **表单插件代码示例**
```java
    public class ExampleFormPlugin extends AbstractFormPlugin {
        @Override
        public void registerListener(EventObject e) {
            // this.getControl("引号内填写人员控件对应的标识（如：userfield）")
            UserEdit userEdit = this.getControl("userfield");
            if (userEdit != null) {
                userEdit.addBeforeF7SelectListener(new BeforeF7SelectListener() {
                    @Override
                    public void beforeF7Select(BeforeF7SelectEvent evt) {
                        // setCustomParam("参数名（如：initRootOrgId）"", 参数值);
                        evt.getFormShowParameter().setCustomParam("initRootOrgId", 100001);
                    }
                });
            }
        }
    }
```

**KDE脚本代码示例**
```js
    var plugin = new FormPlugin({
    ​    registerListener : function(e){
        // this.getControl("引号内填写人员控件对应的标识（如：userfield）")
    ​    var userEdit = this.getControl("userfield");
    ​    userEdit.addBeforeF7SelectListener({
    ​      beforeF7Select: function(e){
    ​        var param = e.getFormShowParameter();
            // setCustomParam("参数名（如：initRootOrgId）"", 参数值);
    ​        param.setCustomParam("initRootOrgId",100001);
    ​        }
    ​     });
    ​    }
    });
```

<div id="mobileparam" name="mobileparam"></div>

## 移动端

**参数说明**

| **应用场景** | **参数名**             | **类型** | **说明** |
| ---------------------- | -------- | ------------ | ------------ |
| 指定初始化时显示人员的所属组织 | initOrgId              | Long   |
| 指定组织树的根组织| initRootOrgId              | Long    |
| 指定人员所属组织的范围| orgList                 | List |
| 指定人员可选范围| range                 | List |


 **表单插件代码示例**
```java
    public class ExampleMobileFormPlugin extends AbstractMobFormPlugin {
        @Override
        public void registerListener(EventObject e) {
            // this.getControl("引号内填写人员控件对应的标识（如：userfield）")
            UserEdit userEdit = this.getControl("userfield");
            if (userEdit != null) {
                userEdit.addBeforeF7SelectListener(new BeforeF7SelectListener() {
                    @Override
                    public void beforeF7Select(BeforeF7SelectEvent evt) {
                        // setCustomParam("参数名（如：initOrgId）"", 参数值);
                        evt.getFormShowParameter().setCustomParam("initOrgId", 100001);
                    }
                });
            }
        }
    }
```

**KDE脚本代码示例**
```js
    var plugin = new FormPlugin({
    ​    registerListener : function(e){
        // this.getControl("引号内填写人员控件对应的标识（如：userfield）")
    ​    var userEdit = this.getControl("userfield");
    ​    userEdit.addBeforeF7SelectListener({
    ​      beforeF7Select: function(e){
    ​        var param = e.getFormShowParameter();
            // setCustomParam("参数名（如：initOrgId）"", 参数值);
    ​        param.setCustomParam("initOrgId",100001);
    ​        }
    ​     });
    ​    }
    });
```

