<template>
    <div class="eibs-tab">
        <div v-if="showTable">
            <el-table :data="model.recgrp.tgd" @selection-change="handleSelectionChange" style="width: 100%">
                <!--                <el-table-column type="selection" width="50"></el-table-column>-->
                <el-table-column label="序号" type="index" width="50"></el-table-column>
                <el-table-column label="换入币种" prop="incurrency" width="150"></el-table-column>
                <el-table-column label="换入名义本金金额" prop="inamt" width="150"></el-table-column>
                <el-table-column label="换入利率基准" prop="inrate" width="150"></el-table-column>
                <el-table-column label="换入价格" prop="inprice" width="150"></el-table-column>
                <el-table-column label="换出币种" prop="outcurrency" width="150"></el-table-column>
                <el-table-column label="近端汇率" prop="nearrate" width="150"></el-table-column>
                <el-table-column label="远端汇率" prop="disrate" width="150"></el-table-column>
                <el-table-column label="换出名义本金金额" prop="outamt" width="150"></el-table-column>
                <el-table-column label="换出利率基准" prop="outrate" width="150"></el-table-column>
                <el-table-column label="换出价格" prop="outprice" width="150"></el-table-column>
                <el-table-column label="交易日" prop="tradedate" width="150"></el-table-column>
                <el-table-column label="起息日" prop="startdate" width="150"></el-table-column>
                <el-table-column label="到期日" prop="enddate" width="150"></el-table-column>
                <el-table-column label="付息频率" prop="frequency" width="150"></el-table-column>
                <el-table-column label="利率衍生品类型" prop="ratederitype" width="150"></el-table-column>

                <el-table-column label="操作" width="150">
                    <template slot-scope="scope">
                        <el-button @click="handleEdit(scope.$index,scope.row)" size="mini">编辑</el-button>
                        <el-button @click="handleDelete(scope.$index)" size="mini">删除</el-button>
                    </template>
                </el-table-column>
            </el-table>
            <div style="margin-top: 20px">
                <el-button @click="addRow" type="primary">添 加</el-button>
                <!--                <el-button @click="deleteSelectedRows" type="primary">删 除</el-button>-->
            </div>
        </div>
        <div v-else>
            <el-form :model="formData" :rules="rules" :validate-on-rule-change="false" label-width="150px" ref="formRef"
                     style="width: 100%">
        <!-- 第1行 -->
        <c-row>
            <!-- <c-col :span="8">
                <el-form-item label="申报号码">
                    <c-input maxlength="24" placeholder="请输入申报号码"></c-input>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="序号">
                    <c-input placeholder="请输入序号"></c-input>
                </el-form-item>
            </c-col> -->
            <c-col :span="8">
                <el-form-item label="换入币种" prop="incurrency">
                    <c-select dbCode="curtxt" placeholder="请输入换入币种" v-model="formData.incurrency"></c-select>
                </el-form-item>
            </c-col>
        </c-row>

        <!-- 第2行 -->
        <c-row>
            <c-col :span="8">
                <el-form-item label="换入名义本金金额" prop="inamt">
                    <c-input-currency placeholder="请输入换入名义本金金额" v-model="formData.inamt"></c-input-currency>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="换入利率基准" prop="inrate">
                    <c-input placeholder="请输入换入利率基准" v-model="formData.inrate"></c-input>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="换入价格" prop="inprice">
                    <c-input placeholder="请输入换入价格" v-model="formData.inprice"></c-input>
                </el-form-item>
            </c-col>
        </c-row>

        <!-- 第3行 -->
        <c-row>
            <c-col :span="8">
                <el-form-item label="换出币种" prop="outcurrency">
                    <c-select dbCode="curtxt" placeholder="请输入换出币种" v-model="formData.outcurrency"></c-select>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="近端汇率" prop="nearrate">
                    <c-input placeholder="请输入近端汇率" v-model="formData.nearrate"></c-input>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="远端汇率" prop="disrate">
                    <c-input placeholder="请输入远端汇率" v-model="formData.disrate"></c-input>
                </el-form-item>
            </c-col>
        </c-row>

        <!-- 第4行 -->
        <c-row>
            <c-col :span="8">
                <el-form-item label="换出名义本金金额" prop="outamt">
                    <c-input-currency placeholder="请输入换出名义本金金额" v-model="formData.outamt"></c-input-currency>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="换出利率基准" prop="outrate">
                    <c-input placeholder="请输入换出利率基准" v-model="formData.outrate"></c-input>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="换出价格" prop="outprice">
                    <c-input placeholder="请输入远端交易价格" v-model="formData.outprice"></c-input>
                </el-form-item>
            </c-col>
        </c-row>

        <!-- 第5行 -->
        <c-row>
            <c-col :span="8">
                <el-form-item label="交易日" prop="tradedate">
                    <c-date-picker placeholder="请输入交易日" type="date" v-model="formData.tradedate"></c-date-picker>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="起息日" prop="startdate">
                    <c-date-picker placeholder="请输入起息日" type="date" v-model="formData.startdate"></c-date-picker>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="到期日" prop="enddate">
                    <c-date-picker placeholder="请输入到期日" type="date" v-model="formData.enddate"></c-date-picker>
                </el-form-item>
            </c-col>
        </c-row>

        <!-- 第6行 -->
        <c-row>
            <c-col :span="8">
                <el-form-item label="付息频率" prop="frequency">
                    <c-input placeholder="请输入付息频率" v-model="formData.frequency"></c-input>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="利率衍生品类型" prop="ratederitype">
                    <c-select dbCode="dertxt" placeholder="请输入利率衍生品类型" v-model="formData.ratederitype"></c-select>
                </el-form-item>
            </c-col>
            <!-- <c-col :span="8">
                <el-form-item label="预留字段15">
                    <c-input placeholder="请输入预留字段15"></c-input>
                </el-form-item>
            </c-col> -->
        </c-row>

        <!-- 第7行 -->
        <c-row>
            <!-- <c-col :span="8">
                <el-form-item label="预留字段16">
                    <c-input placeholder="请输入预留字段16"></c-input>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="预留字段17">
                    <c-input placeholder="请输入预留字段17"></c-input>
                </el-form-item>
            </c-col>
            <c-col :span="8">
                <el-form-item label="预留字段18">
                    <c-input placeholder="请输入预留字段18"></c-input>
                </el-form-item>
            </c-col> -->
        </c-row>
        </el-form>
            <div style="margin-top: 20px">
                <el-button @click="saveRow" type="primary">保 存</el-button>
                <el-button @click="cancel" type="primary">取 消</el-button>
            </div>
        </div>
    </div>
</template>

<script>
    import event from "../event";

    export default {
        props: ["model", "codes"],
        mixins: [event],
        data() {
            return {
                showTable: true,
                formData: {
                    sta: "",			//  人行报送状态		.recp.tgdpp.sta
                    seqno: "",			//  明细主键		.recp.tgdpp.seqno
                    listopertype: "",			//  明细操作类型		.recp.tgdpp.listopertype
                    incurrency: "",			//  换入币种		.recp.tgdpp.incurrency
                    inamt: "",			//  换入名义本金金额		.recp.tgdpp.inamt
                    inrate: "",			//  换入利率基准		.recp.tgdpp.inrate
                    inprice: "",			//  换入价格		.recp.tgdpp.inprice
                    outcurrency: "",			//  换出币种		.recp.tgdpp.outcurrency
                    nearrate: "",			//  近端汇率		.recp.tgdpp.nearrate
                    disrate: "",			//  远端汇率		.recp.tgdpp.disrate
                    outamt: "",			//  换出名义本金金额		.recp.tgdpp.outamt
                    outrate: "",			//  换出利率基准		.recp.tgdpp.outrate
                    outprice: "",			//  换出价格		.recp.tgdpp.outprice
                    tradate: "",			//  交易日		.recp.tgdpp.tradate
                    startdate: "",			//  起息日		.recp.tgdpp.startdate
                    enddate: "",			//  到期日		.recp.tgdpp.enddate
                    frequency: "",			//  付息频率		.recp.tgdpp.frequency
                    ratederitype: "",			//  利率衍生品类型		.recp.tgdpp.ratederitype
                    acp: "",			//  确认		.recp.tgdpp.acp
                },

                selectedRows: [],
                isEdit: false,
                index: -1,
            };
        },
        methods: {
            handleSelectionChange(selection) {
                this.selectedRows = selection;
            },
            toggleShow() {
                this.showTable = !this.showTable;
            },
            addRow() {
                this.isEdit = false;
                let tgd = {
                    sta: "",			//  人行报送状态		.recp.tgdpp.sta
                    seqno: "",			//  明细主键		.recp.tgdpp.seqno
                    listopertype: "",			//  明细操作类型		.recp.tgdpp.listopertype
                    incurrency: "",			//  换入币种		.recp.tgdpp.incurrency
                    inamt: "",			//  换入名义本金金额		.recp.tgdpp.inamt
                    inrate: "",			//  换入利率基准		.recp.tgdpp.inrate
                    inprice: "",			//  换入价格		.recp.tgdpp.inprice
                    outcurrency: "",			//  换出币种		.recp.tgdpp.outcurrency
                    nearrate: "",			//  近端汇率		.recp.tgdpp.nearrate
                    disrate: "",			//  远端汇率		.recp.tgdpp.disrate
                    outamt: "",			//  换出名义本金金额		.recp.tgdpp.outamt
                    outrate: "",			//  换出利率基准		.recp.tgdpp.outrate
                    outprice: "",			//  换出价格		.recp.tgdpp.outprice
                    tradate: "",			//  交易日		.recp.tgdpp.tradate
                    startdate: "",			//  起息日		.recp.tgdpp.startdate
                    enddate: "",			//  到期日		.recp.tgdpp.enddate
                    frequency: "",			//  付息频率		.recp.tgdpp.frequency
                    ratederitype: "",			//  利率衍生品类型		.recp.tgdpp.ratederitype
                    acp: "",			//  确认		.recp.tgdpp.acp
                };
                this.index = this.model.recgrp.tgd.push(tgd) - 1;
                this.formData = this.model.recgrp.tgd[this.index];
                // this.calcRmbbop().then((rtnmsg) => {
                //     if (rtnmsg.respCode === SUCCESS) {
                //         this.formData = this.model.recgrp.tgd[this.index];
                //     }
                // });
                this.toggleShow();
            },
            saveRow() {
                this.$refs.formRef.validate((valid) => {
                    if (valid) {
                        this.$set(this.model.recgrp.tgd, this.index, {...this.formData});
                        this.$refs.formRef.resetFields();
                        this.toggleShow();
                    } else {
                        // 前端校验失败
                        this.$notify({
                            title: '失败',
                            message: '校验失败',
                            type: 'error',
                        });
                        return false;
                    }
                })

            },
            cancel() {
                if (!this.isEdit)
                    this.model.recgrp.tgd.splice(this.index, 1);
                this.toggleShow();
            },
            handleEdit(index, row) {
                this.isEdit = true;
                this.index = index;
                this.formData = {...row};
                this.toggleShow()
            },
            handleDelete(index) {
                this.model.recgrp.tgd.splice(index, 1);
            },
            deleteSelectedRows() {
                if (this.selectedRows.length === 0) {
                    this.$message.warning('请先选择要删除的数据行');
                    return;
                }
                this.selectedRows.forEach(row => {
                    const index = this.model.recgrp.tgd.indexOf(row);
                    if (index !== -1) {
                        this.model.recgrp.tgd.splice(index, 1);
                    }
                });
                this.$message.success('成功删除选中行');
                this.selectedRows = [];
            },
            formatOpertype(row, column, cellValue) {
                if (cellValue === "1") return "新增";
                if (cellValue === "2") return "变更";
            },
        }

    };
</script>
<style>
    .el-form-item__label {
        padding: 0 0 0 20px;
        line-height: 20px !important;
        display: flex;
        align-items: center;
        justify-content: flex-start;
    }
</style>