<template>
  <div class="app-container">
    <van-nav-bar
      left-arrow
      fixed
      placeholder
      @click-left="$router.back(-1)"
    >
      <template #title>
        <p style="font-weight: bold;">查看银行卡转账申请</p>
      </template>
      <template #right>
        <van-icon name="../../../static/images/icon/icon_flow.png" size="20" @click="goFlow"/>
      </template>
    </van-nav-bar>
    <p class="main_title">基础信息</p>
    <div class="main_box">
      <van-field readonly label="申请时间" v-model="form.applyDate" input-align="right" />
      <van-field readonly label="资金支出类别" v-model="capitalExpenditureType" input-align="right" label-width="auto" />
      <van-field readonly label="支出总金额" v-model="form.expenditureAmount" input-align="right" label-width="auto"/>
      <van-field name="radio" label="审批模式" input-align="right" autocomplete="off" readonly>
        <template #input>
          <van-radio-group v-model="form.approvalMode" direction="horizontal">
            <van-radio name="1">线上审批</van-radio>
            <van-radio name="2">线下审批</van-radio>
          </van-radio-group>
        </template>
      </van-field>
      <van-field v-if="form.approvalMode==1" readonly label="审批流程" :value="tempalteFormat(form.approvalTemplateId)" input-align="right" label-width="auto"/>
    </div>

    <div class="main_box" style="margin-top: 10px;">
      <van-field readonly label="转账附言" v-model="form.remark" type="textarea" input-align="right" rows="3" label-width="auto"/>
    </div>

    <div class="main_box" style="margin-top: 10px;">
      <van-field readonly label="说明情况" v-model="form.explainSituation" type="textarea" input-align="right" rows="3" label-width="auto"/>
    </div>

    <p class="main_title">付款方信息</p>
    <div class="main_box">
      <van-field readonly label="付款方" v-model="form.payer" input-align="right" label-width="auto"/>
      <van-field readonly label="付款方账户" v-model="form.payerAccount" input-align="right" label-width="auto"/>
    </div>

    <div class="main_box" v-if="capitalExpenditureOpen" style="margin-bottom: 10px;margin-top: 10px;position:relative;">
      <van-field readonly label="项目名称" v-model="projectForm.projectName" input-align="right" />
      <van-field readonly label="承建单位" v-model="projectForm.projectContractor" input-align="right" label-width="auto"/>
      <van-field readonly label="合同价款（元）" v-model="projectForm.projectAmount" input-align="right" label-width="auto"/>
      <van-field readonly label="工程款类型" v-model="projectFundType" input-align="right" />
      <van-field readonly label="工程发票号" v-model="projectForm.projectBillNum" input-align="right" label-width="auto"/>
    </div>
    <div class="main_box" v-if="contractOpen" style="margin-bottom: 10px;margin-top: 10px;position:relative;">
      <van-field readonly label="合同名称" v-model="infoForm.name" input-align="right" />
      <van-field readonly label="合同编码" v-model="infoForm.code" input-align="right" label-width="auto"/>
      <van-field readonly label="合同价款（元）" v-model="infoForm.totalAmount" input-align="right" label-width="auto"/>
    </div>

    <p class="main_title">收款方信息</p>

    <div class="main_box" style="margin-bottom: 15px;">
      <van-field readonly label="收款账户类型" v-if="form.bankType==1" v-model="form.accountType == 1 ? '公户':'私户'" input-align="right" label-width="auto" />
      <van-field readonly label="行内转账" v-if="form.bankType==2||form.bankType==3||form.bankType==4" v-model="form.isPeers == 'Y' ? '是':'否'" input-align="right" label-width="auto" />

    </div>

    <div style="position:relative;" >
      <div class="main_box" style="margin-bottom: 10px;position:relative;" v-for="(item, index) in chargeItme" :key="index" v-if="index<listLength">
        <van-field readonly label="收款方" v-model="item.payee" input-align="right" />
        <van-field readonly label="收款账户" v-model="item.payeeAccount" input-align="right" label-width="auto"/>
        <van-field readonly label="开户银行" v-model="item.bankDeposit" input-align="right" label-width="auto"/>
        <van-field readonly label="收入金额" v-model="item.incomeAmount" input-align="right" label-width="auto"/>
        <van-field readonly label="所属银行" v-model="item.bankTypeText" input-align="right" />
        <van-field v-if="item.transferStatus=='成功'||item.transferStatus=='失败'" readonly label="转账状态" v-model="item.transferStatus" input-align="right" />
        <van-field v-if="item.transferStatus=='成功'||item.transferStatus=='失败'" readonly label="交易结果描述" v-model="item.causeFailure" input-align="right" />
      </div>
      <p class="main_more" v-if="chargeItme.length>1 && showbtn" @click="listLength = chargeItme.length,showbtn=false">查看更多</p>
      <p class="main_more" v-if="chargeItme.length>1 && !showbtn" @click="listLength = 1,showbtn=true">收起列表</p>
    </div>

    <p class="main_title">上传附件</p>
    <div class="main_box" style="padding: 5px 0 0 0;">
      <van-cell value="收据" />
      <van-uploader v-model="fileList1" v-if="fileList1==null||fileList1.length==0" :deletable="false"  disabled  :upload-text="'未上传附件'" style="margin-left:8px;"></van-uploader>
      <van-uploader v-model="fileList1" v-if="fileList1!=null&&fileList1.length>0" :deletable="false" :max-count="fileList1.length"  style="margin-left:8px;"></van-uploader>
      <van-cell value="发票" />
      <van-uploader v-model="fileList2" v-if="fileList2==null||fileList2.length==0" :deletable="false"  disabled  :upload-text="'未上传附件'" style="margin-left:8px;"></van-uploader>
      <van-uploader v-model="fileList2" v-if="fileList2!=null&&fileList2.length>0" :deletable="false" :max-count="fileList2.length"  style="margin-left:8px;"></van-uploader>
      <van-cell value="其他" />
      <van-uploader v-model="fileList3" v-if="fileList3==null||fileList3.length==0" :deletable="false"  disabled  :upload-text="'未上传附件'" style="margin-left:8px;"></van-uploader>
      <van-uploader v-model="fileList3" v-if="fileList3!=null&&fileList3.length>0" :deletable="false" :max-count="fileList3.length" style="margin-left:8px;" ></van-uploader>
    </div>
  </div>
</template>

<script>
  import { getTransfer , queryTransferDetail , listPayee , updateTransfer , getProjectto , listProject , addProjectto , customSubmit,getInfoto,listTemplate} from "@/api/onlineHome/bankAgriculture/paymentApproval";
  import request from '@/utils/request'
  import {
    attachmentList,
    commonAttach,
    systemAttachment
  } from "../../../../api/onlineHome/bankAgriculture/paymentApproval";
  export default {
    name: "approvalDetail",
    data() {
      return {
        showcapital:false,
        showpayee:false,
        showlasj:false,
        showbankType:false,
        showproject:false,
        showFundType:false,
        showbtn:true,

        listLength:1,

        minDate: new Date(),
        maxDate: new Date(2025, 10, 1),
        currentDate: new Date(),
        form:{},
        fileList1:[],
        fileList2:[],
        fileList3:[],
        capitalExpenditureType:'',
        payee:'',
        bankType:'',

        wfydlxDictionaries:[],
        jglxDictionaries:[],
        sysDictionaries:[],
        capitalExpenditureTypeOptions:[],
        bankTypeDictionaries:[],
        projectList:[],
        projectFundTypeOptions:[],
        transferStatusOptions:[],
        projectFundTypeDictionaries:[],
        projectList:[],

        chargeItme:[],
        chargeItmeShow:[],

        payeeList:[],
        // 查询参数
        queryParams: {
          transferType:"",
          orderByColumn: "id",
          isAsc: "desc",
        },
        capitalExpenditureOpen:false,
        contractOpen:false,
        projectForm:{
          projectId:null,
          projectName:null,
          projectContractor:null,
          projectAmount:null,
          projectBillNum:null,
          projectFundType:'1',
          outId:null,
          ynType:'1'
        },
        infoForm:{
          infoId:null,
          name:null,
          code:null,
          totalAmount:null,
          contractionId:null,
          transferId:null
        },
        projectFundType:'',
        templateList:[],
      };
    },
    created() {
      this.getDicts("project_fund_type").then((response) => {
        for (var i = 0; i < response.data.length; i++) {
          this.projectFundTypeOptions.push({text: response.data[i].dictLabel, value: response.data[i].dictValue});
        }
        this.projectFundTypeDictionaries = response.data;
      });
      this.getDicts("transfer_status").then((response) => {
        this.transferStatusOptions = response.data;
      });
      this.getDicts("bank_type_all").then(response => {
        this.bankTypeDictionaries = response.data;
      });
      this.getDictionaries();
      this.getFileList();
      this.getTemplateList();
    },
    methods: {
      getTemplateList(){
        let templateQueryParams = {
          // 分页
          pageNum: 1,
          pageSize: 999,
        };
        listTemplate(templateQueryParams).then(response => {
          this.templateList = response.rows;
        });
      },
      tempalteFormat(id){
        let name = ""
        this.templateList.map(res => {
          if(res.id==id){
            console.log(res.name)
            name =  res.name
          }
        })
        return name
      },
      goFlow(){
        window.location='approvalProcess?id='+this.$route.query.id;
      },
      getDictionaries(){
        getTransfer(this.$route.query.id).then((response) => {
          this.getDicts("capital_expenditure_type").then((res) => {
            for (var i = 0; i < res.data.length; i++) {
              this.capitalExpenditureTypeOptions.push({text: res.data[i].dictLabel, value: res.data[i].dictValue});
            }
            this.capitalExpenditureType = this.selectDictLabel(res.data, response.data.capitalExpenditureType);
          });
          if(response.data.capitalExpenditureType==2){
            this.capitalExpenditureOpen = true
            let param={
              'outId' : response.data.id,
              'ynType' : '1'
            }
            getProjectto(param).then(res => {
              this.projectFundType = this.selectDictLabel(this.projectFundTypeDictionaries, res.data.projectFundType);
              this.projectForm = res.data
            })
          }else if(response.data.capitalExpenditureType==4) {
            this.contractOpen = true
            let param = {
              'transferId': response.data.id
            }
            getInfoto(param).then(res => {
              this.infoForm = res.data
            })
          }else{
            this.showproject = false
          }
          this.form = response.data;
        });
        queryTransferDetail(this.$route.query.id).then((response) => {
          for (var j = 0 ; j < response.rows.length ; j++){
            response.rows[j].bankTypeText = this.selectDictLabel(this.bankTypeDictionaries, response.rows[j].bankType);
            response.rows[j].transferStatus = this.selectDictLabel(this.transferStatusOptions, response.rows[j].transferStatus);
          }
          this.chargeItme = response.rows;
          this.getPayeeList();
        });
      },
      getPayeeList() {
        //普通转账
        this.queryParams.accountType = this.form.accountType
        this.queryParams.status = "0"
        listPayee(this.queryParams).then((response) => {
          for (var i = 0; i < response.rows.length; i++) {
            this.payeeList.push({text: response.rows[i].payee, value: response.rows[i].id});
          }
        });
      },
      getFileList(){
        let oData1= {
          tableId: this.$route.query.id,
          tableName: "t_yinnong_transfer",
          bizPath: "transfer",
          fileType: "1",
        }
        attachmentList(oData1).then(res => {
          res.rows.map(r => {
            let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
            this.fileList1.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
          })
        })
        let oData2= {
          tableId: this.$route.query.id,
          tableName: "t_yinnong_transfer",
          bizPath: "transfer",
          fileType: "2",
        }
        attachmentList(oData2).then(res => {
          res.rows.map(r => {
            let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
            this.fileList2.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
          })
        })
        let oData3= {
          tableId: this.$route.query.id,
          tableName: "t_yinnong_transfer",
          bizPath: "transfer",
          fileType: "3",
        }
        attachmentList(oData3).then(res => {
          res.rows.map(r => {
            let baseUrl = location.protocol+"//"+location.host+request.defaults.baseURL
            this.fileList3.push({"url":baseUrl + r.fileUrl,"file":new File([],r.fileName,{}),"id":r.id})
          })
        })
      },
      goBack(){
        window.history.go(-1)
      },
      //删除家庭成员
      deleteChargeItme(index){
        this.chargeItme.splice(index,1)
      },
    },
  }
</script>

<style scoped lang="scss">
  .app-container {
    padding: 2% 0;
  }
  .main_more{
    width: 96%;
    margin: 0 auto;
    margin-top: 10px;
    border-radius: 6px;
    box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
    overflow: hidden;
    background-color: #FFF;
    text-align: center;
    padding: 10PX 0;
  }
  .main_title{
    font-size: 0.4rem;
    color: #1D6FE9;
    margin: 0.2rem 6%;
    position: relative;
  }
  .main_box{
    width: 96%;
    margin: 0 auto;
    border-radius: 6px;
    box-shadow: 0px 3px 6px 0px rgba(0,0,0,0.16);
    overflow: hidden;
    background-color: #FFF;
  }
  .submitButton{
    width: 80%;
    margin: 0 auto;
    background-color: #1D6FE9;
  }

  .addFamily{
    position: absolute;
    top: -2px;
    right: 0;
    border-radius: 50%;
  }
  .deleteFamily{
    position: absolute;
    top: 0rem;
    right: 6%;
    z-index: 9;
    border-radius: 50%;
  }
</style>
