/**
     * ${item.getCaption()}
     *
     * @param {any[]} args 当前数据
     * @param {any} contextJO 行为附加上下文
     * @param {*} [params] 附加参数
     * @param {*} [$event] 事件源
     * @param {*} [xData]  执行行为所需当前部件
     * @param {*} [actionContext]  执行行为上下文
     * @memberof ${srfclassname('${view.name}')}Base
     */
    public ${item.getFullCodeName()}(args: any[],contextJO?:any, params?: any, $event?: any, xData?: any,actionContext?:any,srfParentDeName?:string) {
        const that: any = this;
        if (!xData || !(xData.wfstart instanceof Function)) {
            return;
        }
        let validateStatus: boolean = true;
        if (xData.formValidateStatus && xData.formValidateStatus instanceof Function) {
            validateStatus = xData.formValidateStatus();
        }
        if (!validateStatus) {
            return;
        }
        const startWorkFlow: Function = (param: any, localdata: any) => {
            <#if view.getPSWorkflow()??>
            <#assign curWorkflow = view.getPSWorkflow() />
            <#-- 通过是否使用代理模式来区分流程启动的模式 -->
            <#if curWorkflow.isUseWFProxyApp()>
            xData.wfstart(args).then((response: any) => {
            <#else>
            xData.wfstart(args,localdata).then((response: any) => {
            </#if>
            <#else>
            xData.wfstart(args).then((response: any) => {
            </#if>
                if (!response || response.status !== 200) {
                    return;
                }
                const { data: _data } = response;
                that.closeView(_data);
            });
        }
        const openStartView: Function = async (item: any, localdata: any) => {
            if (item['wfversion']) {
                <#noparse>const targetView: any = that.viewRefData ? that.viewRefData[`WFSTART@${item['wfversion']}`] : null;</#noparse>
                if (targetView) {
                    const tempContext = Util.deepCopy(that.context);
                    <#noparse>const tempViewParams = { actionView: `WFSTART@${item['wfversion']}`, actionForm: item['process-form'] };</#noparse>
                    const container: Subject<any> = that.$appmodal.openModal(targetView, tempContext, tempViewParams);
                    container.subscribe((result: any) => {
                        if (!result || !Object.is(result.ret, 'OK')) {
                            return;
                        }
                        const tempSubmitData: any = Util.deepCopy(args[0]);
                        if (result.datas && result.datas[0]) {
                            const resultData: any = result.datas[0];
                            if (Object.keys(resultData).length > 0) {
                                let tempData: any = {};
                                Object.keys(resultData).forEach((key: any) => {
                                    if (resultData[key] || (resultData[key] === 0) || (resultData[key] === false)) {
                                        tempData[key] = resultData[key];
                                    }
                                })
                                Object.assign(tempSubmitData, tempData);
                            }
                        }
                        startWorkFlow([tempSubmitData], localdata);
                    })
                } else {
                    startWorkFlow(args, localdata);
                }
            } else {
                startWorkFlow(args, localdata);
            }
        }
        let localData: any;
        const localContext = Util.deepCopy(that.context);
        const requestResult: Promise<any> = that.appEntityService.getStandWorkflow(localContext);
        requestResult.then((response: any) => {
            const { data: targetData, status } = response;
            if (status !== 200 || targetData.length === 0) {
                return;
            }
            if (targetData && targetData.length > 1) {
                const h = that.$createElement;
                targetData.forEach((element: any) => {
                    Object.assign(element, { value: element.definitionkey, label: element.definitionname });
                })
                that.$msgbox({
                    title: '请选择流程版本',
                    message: h('i-select', {
                        key: Util.createUUID(),
                        props: {
                            value: localData,
                            placeholder: "请选择流程版本...",
                            transfer: true,
                            transferClassName: "start-workflow-select-wraper"
                        },
                        on: {
                            'on-change': ($event: any) => {
                                localData = { processDefinitionKey: $event };
                            }
                        }
                    }, targetData.map((item: any) => {
                        return h('i-option', {
                            key: item.value,
                            props: {
                                value: item.value,
                                label: item.label
                            }
                        })
                    })),
                    showCancelButton: true,
                    confirmButtonText: '确定',
                    cancelButtonText: '取消'
                }).then((action: string) => {
                    if (Object.is(action, 'confirm') && localData && Object.keys(localData).length > 0) {
                        let targetItem: any = targetData.find((item: any) => {
                            return item.definitionkey === localData.processDefinitionKey;
                        })
                        openStartView(targetItem, localData);
                    }
                })
            } else {
                localData = { processDefinitionKey: targetData[0]['definitionkey'] }
                targetData[0]['process-view'] = "WFSTART@1";
                openStartView(targetData[0], localData);
            }
        })
    }