eSignGlobal스마트 양식 생성 시 사용자 정의 컴포넌트에 대한 고급 속성 구성을 지원합니다:
- 【이벤트 구성】 기능을 사용하면 여러 정보 수집 컴포넌트의 입력 값에 대해 실시간으로 간단한 공식 계산을 수행하고 계산 결과를 대상 컴포넌트에 자동으로 표시할 수 있습니다.
- 【동작 구성】 기능을 사용하면 양식 컨트롤에서 특정 동작 작업이 발생할 때 생성기를 호출하여 사용자 정의 복잡한 계산을 실행하고 해당 컴포넌트에 값을 할당할 수 있습니다. JavaScript를 사용하여 자체 비즈니스 로직을 구현합니다.
이벤트 구성
기능 소개
공식 계산을 통해 여러 정보 수집 컴포넌트의 입력 값을 실시간으로 계산하고 계산 결과를 대상 컴포넌트에 자동으로 표시합니다. 이 기능은 시각적 공식을 통해 컴포넌트 바인딩 및 반응형 업데이트를 구현하여 코드를 작성하지 않고도 복잡한 비즈니스 로직 계산을 완료할 수 있습니다.

설명:
- 이벤트 구성 기능은 현재 사칙 연산만 지원합니다.
응용 시나리오
간단한 계산 후 실시간으로 표시해야 하는 시나리오에 적합합니다. 예:
- 구매 주문 양식에서 세금 포함 총액을 실시간으로 계산합니다. (단가 * 수량) * (1 + 세율/100)
- 장비 작동 효율을 동적으로 계산합니다. (전류 * 전압 * 작동 시간) / 1000
사용 방법
구매 주문을 통해 실시간으로 세금 포함 총액을 계산하는 예를 들어보겠습니다.
- 양식에 숫자 필드 4개(단가, 수량, 세율, 세금 포함 총액)를 끌어다 놓습니다.

설명:
- 계산 기능은 숫자 필드에만 적용됩니다.
- 텍스트 필드를 추가하면 "+" 기능만 지원하여 문자열 연결을 구현할 수 있으며, 이때 대상 필드 유형도 텍스트 필드여야 합니다.
- 【단가】 필드의 구성 패널에서 【고급 속성】>【이벤트 구성】에 이벤트를 추가합니다.。

- 【이벤트 구성】에서 【트리거 유형】이 【필드 변경】일 때 함수를 트리거하도록 구성합니다.

- 계산식 편집: "@"+컴포넌트 이름을 입력하여 계산하려는 필드를 추가할 수 있습니다.

필요에 따라 (단가 * 수량)*(1 + 세율/100)과 같이 공식을 작성합니다.

주의:
- 괄호를 사용할 때는 영어 괄호"()"를 사용하십시오.
- 【대상 필드】에서 계산 결과를 표시할 필드를 선택합니다.。대상 필드의 데이터 유형에 따라 계산에 참여하는 필드 유형을 강제로 변환합니다.
주의:
- 대상 필드 유형은 계산에 참여하는 필드 유형과 동일해야 합니다.

- 계산에 참여하는 모든 필드는 해당 공식을 구성하여 계산에 참여하는 각 필드 값이 변경될 때마다 다시 계산해야 합니다. 이 시나리오에서는 [단가], [수량], [세율] 모두 해당 이벤트 구성을 설정해야 합니다.
주의:
- [대상 필드]는 구성할 필요가 없습니다.
- 구성을 완료한 후 양식을 저장합니다.

동작 구성
기능 소개
사용자는 [고급 속성] > [동작 설정]에서 javascript 코드를 작성하여 자신의 비즈니스 로직을 구현할 수 있습니다.
응용 시나리오
- 간단한 [공식 계산] 기능으로 완료할 수 없는 복잡한 필드 값 계산. 예를 들어 한 줄 텍스트에 입력된 내용을 숫자로 변환한 다음 사용자 정의 계산 규칙을 통해 계산을 완료한 후 다른 하나 이상의 필드에 설정합니다.
- 양식 컨트롤에서 특정 동작이 발생하면 생성기 메서드를 호출합니다.
사용 방법
1. js 편집 패널 열기
- 컨트롤 선택;
- [고급 속성]을 클릭하여 해당 패널로 전환합니다.
- 【동작 설정】>【새 동작】을 클릭하십시오.
- 표시되는 드롭다운 메뉴에서 해당 동작을 선택하면 해당 동작이 트리거될 때 작성한 JS 코드가 실행됩니다. 현재 다음 네 가지 동작을 지원합니다.
- mounted, 컴포넌트 로드 후
- onBlur, 컴포넌트에서 포커스가 해제될 때
- onChange, 컴포넌트 값이 변경될 때
- onFocus, 컴포넌트가 선택될 때

설명:
- 【mounted 컴포넌트 로드 후】를 설정하려면 먼저 나머지 세 가지 상태 중 하나를 선택하고 이동한 페이지에서 오른쪽 상단의 【저장】을 클릭한 다음 왼쪽의 【mounted】를 선택해야 합니다.

- js 편집 패널에 코드를 작성하십시오. 일반적인 코드 작성 외에도 다음 장에서는 매개변수 입력, 매개변수 출력 및 현재 지원되는 함수를 사용하는 방법을 알려드립니다. js 패널 미리보기는 다음과 같습니다.

2. 이벤트 매개변수 가져오기
코드로 다른 컴포넌트의 값을 전달하여 처리하는 등 매개변수를 입력해야 하는 경우 다음과 같이 작성하십시오.
function () {
this.models[fieldKey]
//示例:this.models[' input_yi7bli17 ']
}
2.1. 현재 컴포넌트 속성 가져오기
이벤트 함수에서 arguments[0]을 통해 속성 값을 가져올 수 있습니다. 예:
function () {
const { field} = arguments[0]
}
서로 다른 동작에서 가져올 수 있는 컴포넌트 속성도 다릅니다. 자세한 내용은 다음을 참조하십시오.
2.1.1. onBlur
컴포넌트의 다음을 가져올 수 있습니다.fieldKey,fieldKey는 string 유형입니다. 예를 들어:
function () {
//表示获取当前组件的值
const { field } = arguments[0]
this.models['input_pr13o8wi']=field
}
2.1.2. onChange
컴포넌트의 다음을 가져올 수 있습니다.fieldKey및value,데이터 유형은 다음과 같습니다.{ field: string, value: any }
속성 의미:
- field: 필드 키
- value: 필드 값
2.1.3. onFocus
onBlur와 동일
2.2. 함수 [this] 상세 설명
컴포넌트 속성을 가져오는 것 외에도 다른 컴포넌트의 속성을 가져오는 것을 지원합니다.
액션 함수에서 this는 GenerateForm 인스턴스를 가리키며, GenerateForm의 메서드를 직접 호출할 수 있습니다.
여기서 강조할 점은 this 함수에서 컴포넌트 키를 대입하면 해당 값을 가져오거나 해당 fieldKey에 값을 쓸 수 있다는 것입니다. 예: this.models['fieldKey']
function () {
// 获取表单值
this.getData()
// 设置表单字段的值
this.models['id'] = 'new value'
// 触发某个编写好的函数
this.triggerEvent('foo', { a: 123 })
// 显示表单隐藏的字段
this.display('id')
}
3. 코드 작성
원하는 속성이나 값을 얻은 후에는 다음과 같이 코드를 직접 작성할 수 있습니다.
const keyA = 'input_yi7bli17'const keyB = 'input_78qtmi79'const keyC = 'input_n8qwf66f'this.models[keyC] = this.models[keyA] + this.models[keyB]
3.1. 지원되는 함수
함수에서 triggerEvent를 사용하여 함수를 호출합니다.
function () {
this.triggerEvent('test', { id: '123' })
}
test 메서드에서 다음 방법으로 매개변수를 가져올 수 있습니다.
function () {
const { id } = arguments[0]
}
4. 실행
양식의 '미리보기'를 클릭하여 해당 동작을 트리거하면 효과를 볼 수 있습니다.
5. 예시 설명
예: 현재 구성 요소 값을 가져와 다른 구성 요소에 할당합니다. 다른 구성 요소의 키는 input_69m9x9mj입니다.
