<!--
  Copyright © 2026 Qiantong Technology Co., Ltd.
  qModel Model Platform(Open Source Edition)
   *
  License:
  Released under the Apache License, Version 2.0.
  You may use, modify, and distribute this software for commercial purposes
  under the terms of the License.
   *
  Special Notice:
  All derivative versions are strictly prohibited from modifying or removing
  the default system logo and copyright information.
  For brand customization, please apply for brand customization authorization via official channels.
   *
  More information: https://qmodel.qiantong.tech/business.html
   *
  ============================================================================
   *
  版权所有 © 2026 江苏千桐科技有限公司
  qModel 模型平台（开源版）
   *
  许可协议：
  本项目基于 Apache License 2.0 开源协议发布，
  允许在遵守协议的前提下进行商用、修改和分发。
   *
  特别说明：
  所有衍生版本不得修改或移除系统默认的 LOGO 和版权信息；
  如需定制品牌，请通过官方渠道申请品牌定制授权。
   *
  更多信息请访问：https://qmodel.qiantong.tech/business.html
-->

<script setup lang="ts">
import {getCurrentInstance, computed, onMounted, ref, watch} from "vue";


let props = defineProps({

  nodeConfig: {
    type: Object, default: () => {

    }
  }

});




import {useFlowStore} from '../../../stores/flow'

let flowStore = useFlowStore();


const step2FormList = computed(() => {
  let step2 = flowStore.step2;
  return step2;
})

//TODO
watch(() => step2FormList.value, (val) => {

  let nodeConfig = props.nodeConfig;

  if (nodeConfig.type == 1) {
    //审批人

    if (nodeConfig.assignedType == 8) {
      //表单人员
      let formUserId = nodeConfig.formUserId;
      let length = val.filter(res => res.id === formUserId).length;
      if (length == 0) {
        nodeConfig.formUserId = ''
        nodeConfig.formUserName = ''
        nodeConfig.error = true;
        nodeConfig.errorMsg = '请选择表单人员';
      }

    }
  }
})




import {useStore} from "../../../stores";



let emits = defineEmits(['updateData']);


const updateParentData = (d) => {
  emits("updateData", d);

}


//TODO
let store = useStore();
let {


  setApprover,

  setApproverConfig,

} = store;


let _uid = getCurrentInstance().uid;




function open(){

	//TODO
	setApprover(true);
	setApproverConfig({
    value: JSON.parse(JSON.stringify(props.nodeConfig)),

		flag: false,
		id: _uid,
	});
}

import NodeTemplate from "./node-template.vue";

</script>

<template>
<node-template @updateData="updateParentData" :uid="_uid" store-data-key="approverConfigData" place-holder-method-name="setApproverStr" check-method-name="checkApproval" @open="open"   :node-config="nodeConfig"></node-template>
</template>

<style scoped lang="less">
</style>
