<template>
  <!-- 管理员账号注销-->
  <a-modal class="add-custom custom-detail" title="管理员账号注销" v-model:visible="visible" centered :maskClosable="false" @cancel="cancel" width="890px">
    <template #footer>
      <a-button key="submit" type="primary" :loading="loading" @click="cancel">取消 </a-button>
      <a-button key="submit" type="primary" :loading="loading" @click="submit">注销 </a-button>
    </template>
    <Detail :selectedData="selectedData" />
  </a-modal>
</template>

<script lang="ts">
import { defineComponent, PropType, ref } from 'vue';
import { _closeModal } from '@/common/setup/modal/modal';
import { ErmcpLoginUser } from '@/services/go/ermcp/account/interface';
import { Modal } from 'ant-design-vue';
import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
import { LoginaccountOperateReq } from '@/services/proto/accountinfo/interface';
import { loginAccountOperate } from '@/services/proto/accountinfo';
import Detail from '../detail-commom-manager/index.vue';

export default defineComponent({
  name: 'account_info_manager_btn_logout',
  emits: ['cancel', 'update'],
  components: {
    Detail,
  },
  props: {
    selectedData: {
      type: Object as PropType<ErmcpLoginUser>,
      default: {},
    },
  },
  setup(props, context) {
    const { visible, cancel } = _closeModal(context);
    const loading = ref<boolean>(false);
    function submit() {
      Modal.confirm({
        title: '是否确认注销该账户',
        okText: '确认注销',
        cancelText: '取消',
        onOk() {
          let reqParam: LoginaccountOperateReq = {
            userid: props.selectedData.userid,
            loginid: props.selectedData.loginid,
            operatetype: 7, // 5: 锁定 6：解锁
            logintaaccounts: [],
          };
          requestResultLoadingAndInfo(loginAccountOperate, reqParam, loading, ['账户注销成功', '账户注销失败:']).then(() => {
            cancel(true);
          });
        },
        onCancel() { },
      });
    }
    return {
      visible,
      cancel,
      maskClosableFlag: false,
      submit,
      loading,
    };
  },
});
</script>

<style lang="less">
.custom-detail {
    .ant-form.inlineForm {
        margin-top: 20px;
    }
}
</style>
