<template>
  <!-- 注销协议-->
  <a-modal class="commonModal addSpotVariety"
           title="注销协议"
           centered
           v-model:visible="visible"
           :maskClosable="false"
           @cancel="cancel"
           width="890px">
    <template #footer>
        <a-button key="submit"
                  type="primary"
                  :loading="loading"
                  @click="submit">注销</a-button>

      <a-button key="submit"
                type="primary"
                :loading="loading"
                @click="cancel">关闭</a-button>
    </template>
    <a-form class="inlineForm">
      <fieldset class="formFieldSet">
        <legend>协议信息</legend>
        <Des :list="desList"
             @onClick="getContent(selectedRow.agreementcontent)" />
      </fieldset>
      <fieldset class="formFieldSet">
        <legend>修改流水</legend>
        <div class="tableDatas tableContextCenter">
          <a-table class="dialogTable"
                   :columns="columns"
                   :data-source="tableList"
                   :pagination="false">
            <!-- 协议类型-->
            <template #agreementcontent="{ record }">
              <a @click="getContent(record.agreementcontent)">查看</a>
            </template>
          </a-table>
        </div>
      </fieldset>
    </a-form>
  </a-modal>
  <a-modal class="commonModal addSpotVariety"
           title="协议内容"
           centered
           v-model:visible="visibleContent"
           :maskClosable="false"
           @cancel="visibleContent = false"
           width="890px">
    <a-textarea class="dialogInput"
                v-model:value="content"
                style="width: 100%"
                placeholder="请输入协议内容"
                readonly
                :autosize="{ minRows: 8, maxRows: 24 }" />
    <template #footer>
      <a-button key="submit"
                type="primary"
                @click="visibleContent = false">关闭</a-button>
    </template>
  </a-modal>
</template>

<script lang="ts">
import { defineComponent, PropType, ref, watchEffect } from 'vue';
import { closeModal } from '@/common/setup/modal/index';
import { Des, handleDesList } from '@/common/components/commonDes';
import { QhjAgreementChangeLog, QhjAgreementConfig } from '@/services/go/ermcp/qhj/interface';
import { formatValue } from '@/common/methods';
import { getAgreementTypeName } from '@/common/constants/enumsName';
import { handleArgreementType } from '../../setup';
import { queryTableList } from '@/common/setup/table';
import { queryAgreementChangeLog } from '@/services/go/ermcp/qhj';
import {requestResultLoadingAndInfo} from "@/common/methods/request/resultInfo";
import {agreementConfigOperate} from "@/services/proto/manager";
import {QHJAgreementConfigOperateReq} from "@/services/proto/manager/interface";

const columns = [
    {
        title: '时间',
        dataIndex: 'updatetime',
        key: 'updatetime',
    },
    {
        title: '协议名称',
        dataIndex: 'agreementname',
        key: 'agreementname',
    },
    {
        title: '内容',
        dataIndex: 'agreementcontent',
        key: 'agreementcontent',
        slots: { customRender: 'agreementcontent' },
    },
];

export default defineComponent({
    name: 'custom-detail',
    components: { Des },
    props: {
        selectedRow: {
            type: Object as PropType<QhjAgreementConfig>,
            default: {},
        },
    },
    setup(props, context) {
        const { visible, cancel } = closeModal('platinum_agreement_delete');
        const { desList, getDesList } = handleDesList();
        const { getRateEnumName } = handleArgreementType();
        const { loading, tableList, queryTable } = queryTableList<QhjAgreementChangeLog>();
        // 协议内容
        const visibleContent = ref<boolean>(false);
        const content = ref<string>('');
        function getContent(value: string) {
            visibleContent.value = true;
            content.value = value;
        }
        watchEffect(() => {
            if (visible.value) {
                const data = props.selectedRow;
                queryTable(queryAgreementChangeLog, { agreementid: data.agreementid });

                const list = [
                    { label: '协议编号', value: formatValue(data.agreementno) },
                    { label: '协议名称', value: formatValue(data.agreementname) },
                    { label: '协议类型', value: getAgreementTypeName(data.agreementtype) },
                    { label: '签署频率', value: getRateEnumName(data.agreementfrequency) },
                    { label: '内容', value: '查看', className: 'blue' },
                ];
                getDesList(list);
            }
        });

        function submit() {
            const reqParam: QHJAgreementConfigOperateReq = {
                operatetype: 5 ,// uint32  操作类型-1:新增 2:修改 3:停用 4:恢复 5:注销
                agreementid: props.selectedRow.agreementid // uint64 协议ID（操作类型为2,3,4,5时必填）
            }
            requestResultLoadingAndInfo(agreementConfigOperate, reqParam, loading, ['注销协议成功', '注销协议失败:']).then(() => {
                context.emit('refresh');
            });
        }

        return {
            visibleContent,
            content,
            getContent,
            columns,
            cancel,
            desList,
            visible,
            tableList,
            submit,
        };
    },
});
</script>

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