# informat.survey 问卷调查

## 概述

使用`informat.survey`进行问卷调查模块的操作。

## querySurveyListCount

查询问卷调查列表总数

```javascript
informat.survey.querySurveyListCount(moduleId, defineId, filter)
```

| 参数       | 类型                                      | 描述      |
|----------|-----------------------------------------|---------|
| moduleId | `String`                                | 模块标识符   |
| defineId | `String`                                | 问卷调查标识符 |
| filter   | [Filter](/guide/script/model.md#filter) | 过滤条件    |

过滤器中可以使用的字段列表

| 字段              | 类型        | 描述     |
|-----------------|-----------|--------|
| id              | `String`  | 问卷调查ID |
| name            | `String`  | 问卷调查名称 |
| isEnable        | `Boolean` | 是否有效   |
| submitCount     | `Integer` | 提交次数   |
| createTime      | `String`  | 创建时间   |
| createAccountId | `String`  | 创建人ID  |

**返回值**
类型为`Integer`
返回问卷调查列表总数

**示例**

:::code-group

```js[调用]
informat.survey.querySurveyListCount('moduleId', 'defineId', {
    conditionList: [{
        fieldId: 'name',
        opt: 'eq',
        value: '织信NEXT问卷调查'
    }]
})
```

```json[返回值]
1
```

:::

## querySurveyList

查询问卷调查列表

```javascript
informat.survey.querySurveyList(moduleId, defineId, query)
```

| 参数       | 类型                                    | 描述      |
|----------|---------------------------------------|---------|
| moduleId | `String`                              | 模块标识符   |
| defineId | `String`                              | 问卷调查标识符 |
| query    | [Query](/guide/script/model.md#query) | 查询条件    |

过滤器中可以使用的字段列表

| 字段              | 类型        | 描述     |
|-----------------|-----------|--------|
| id              | `String`  | 问卷调查ID |
| name            | `String`  | 问卷调查名称 |
| isEnable        | `Boolean` | 是否有效   |
| submitCount     | `Integer` | 提交次数   |
| createTime      | `String`  | 创建时间   |
| createAccountId | `String`  | 创建人ID  |

**返回值**
类型为 Array<[SurveyItem](/guide/script/model.md#surveyitem)>
返回问卷调查列表

**示例**

:::code-group

```js[调用]
informat.survey.querySurveyList('moduleId', 'defineId', {
    pageIndex: 1,
    pageSize: 20,
    filter: {
        conditionList: [{
            fieldId: 'name',
            opt: 'eq',
            value: '织信NEXT问卷调查'
        }]
    }
});
```

:::

## addSurvey

新增问卷调查

```javascript
informat.survey.addSurvey(moduleId, defineId, survey)
```

| 参数       | 类型                                              | 描述      |
|----------|-------------------------------------------------|---------|
| moduleId | `String`                                        | 模块标识符   |
| defineId | `String`                                        | 问卷调查标识符 |
| survey   | [SurveyItem](/guide/script/model.md#surveyitem) | 问卷调查信息  |

**返回值**
类型为`String`
返回新增的ID

**示例**

````javascript
const name = '调查问卷名称';
const value1 = '123456';
const value2 = 'abc';
const surveyInfo = {
    name: name,
    fieldList: [
        {
            id: "field1",
            value: value1,
        },
        {
            id: "field2",
            value: value2
        },
    ]
}
informat.survey.addSurvey('moduleId', 'defineId', surveyInfo);

````

## updateSurvey

更新问卷调查信息

```javascript
informat.system.updateSurvey(moduleId, defineId, survey, filter)
```

| 参数       | 类型                                              | 描述      |
|----------|-------------------------------------------------|---------|
| moduleId | `String`                                        | 模块标识符   |
| defineId | `String`                                        | 问卷调查标识符 |
| survey   | [SurveyItem](/guide/script/model.md#surveyitem) | 问卷调查信息  |
| filter   | [Filter](/guide/script/model.md#filter)         | 查询条件    |

可以更新的字段列表

| 字段              | 类型                                                       | 描述     |
|-----------------|----------------------------------------------------------|--------|
| name            | `String`                                                 | 名称     |
| updateAccountId | `String`                                                 | 更新人ID  |
| startTime       | `Date`                                                   | 开始时间   |
| endTime         | `Date`                                                   | 结束时间   |
| fieldList       | Array<[SurveyField](/guide/script/model.md#surveyfield)> | 默认字段集合 |
| isEnable        | `Boolean`                                                | 是否有效   |
| rowNumber       | `Integer`                                                | 行位置    |

**返回值**
类型为`Integer`
返回更新数量总数

**示例**

:::code-group

```js[调用]
const name = '问卷调查名称';
const surveyInfo = {
    name: name,
    fieldList:[
        {
            id: 'name',
            value: '张三',
        },
        {
            id: "age",
            value: 18
        },
    ]
}
informat.survey.updateSurvey('moduleId', 'defineId', surveyInfo, {
    conditionList:[{fieldId: 'name',opt:'eq', value: '调查问卷名称'}]
});
```

```json[返回值]
1
```

:::

## deleteSurvey

删除问卷调查信息

```javascript
informat.survey.deleteSurvey(moduleId, defineId, filter)
```

| 参数       | 类型                                      | 描述      |
|----------|-----------------------------------------|---------|
| moduleId | `String`                                | 模块标识符   |
| defineId | `String`                                | 问卷调查标识符 |
| filter   | [Filter](/guide/script/model.md#filter) | 查询条件    |

可以过滤的字段列表

| 字段   | 类型       | 描述 |
|------|----------|----|
| name | `String` | 名称 |

**示例**

:::code-group

```js[调用]
informat.survey.deleteSurvey('moduleId', 'defineId', {
    conditionList:[{fieldId: 'name',opt:'eq', value: '问卷调查名称'}]
})
```

```json[返回值]
1
```

:::
