Newer
Older
Nanping_sponge_GCGL / src / views / project / contractManagement / components / tableDalgo.vue
@liyingjing liyingjing on 25 Oct 2023 11 KB 海绵工程管理
<template>
  <div class="TabsTop">
        <div
          class="TabsList"
          :class="{ TabsListActive: tabsNum == 1 }"
          @click="tabsNum = 1"
        >
          基础信息
        </div>
        <div
          class="TabsList"
          :class="{ TabsListActive: tabsNum == 2 }"
          @click="tabsNum = 2"
        >
          支付情况
        </div>
      </div>
      <!-- 内容 -->
      <div class="TabBody" v-show="tabsNum == 1">
        <!-- 基础信息 -->
        <div class="LeftBox1">
          <el-progress
            type="circle"
            :percentage="DetailData.ratio"
            :width="200"
            style="margin: 100px 80px 20px 70px"
            :stroke-width="20"
            striped
            striped-flow
          />
          <p class="HTNo">{{ DetailData.contractNo }}</p>
          <div class="HTMoney1">
            <div class="JENum">{{ DetailData.money }}(万元)</div>
            <div class="JEName">合同金额</div>
          </div>
          <div class="HTMoney1">
            <div class="JENum">
              {{ DetailData.paidMoney ? DetailData.paidMoney : "--" }}(万元)
            </div>
            <div class="JEName">已支付金额</div>
          </div>
        </div>
        <div class="LeftBox2">
          <div class="InfoList">
            <div class="InfoListLable">合同编号</div>
            <div class="InfoListvalue">{{ DetailData.contractNo }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">项目名称</div>
            <div class="InfoListvalue">{{ DetailData.projectName }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">合同名称</div>
            <div class="InfoListvalue">{{ DetailData.contractName }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">投标编号</div>
            <div class="InfoListvalue">{{ DetailData.tenderNumber }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">签约日期</div>
            <div class="InfoListvalue">{{ DetailData.signTime }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">合同类型</div>
            <div class="InfoListvalue">
              {{ selectDictLabel(contract_type, DetailData.contractType) }}
            </div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">甲方</div>
            <div class="InfoListvalue">{{ DetailData.firstParty }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">乙方</div>
            <div class="InfoListvalue">{{ DetailData.secondParty }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">通讯地址</div>
            <div class="InfoListvalue">{{ DetailData.firstPartyAddress }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">通讯地址</div>
            <div class="InfoListvalue">{{ DetailData.secondPartyAddress }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">主要负责人</div>
            <div class="InfoListvalue">
              {{ DetailData.firstPartyPrimaryPerson }}
            </div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">主要负责人</div>
            <div class="InfoListvalue">
              {{ DetailData.secondPartyPrimaryPerson }}
            </div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">电话</div>
            <div class="InfoListvalue">
              {{ DetailData.firstPartyTelephone }}
            </div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">电话</div>
            <div class="InfoListvalue">
              {{ DetailData.secondPartyTelephone }}
            </div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">手机</div>
            <div class="InfoListvalue">{{ DetailData.firstPartyPhone }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">手机</div>
            <div class="InfoListvalue">{{ DetailData.secondPartyPhone }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">邮箱</div>
            <div class="InfoListvalue">{{ DetailData.firstPartyEmail }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">邮箱</div>
            <div class="InfoListvalue">{{ DetailData.secondPartyEmail }}</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">金额</div>
            <div class="InfoListvalue">{{ DetailData.money }} 万元</div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">业务负责人</div>
            <div class="InfoListvalue">
              {{ DetailData.businessPrimaryPerson }}
            </div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">合同状态</div>
            <div class="InfoListvalue">
              {{ selectDictLabel(contract_status, DetailData.contractStatus) }}
            </div>
          </div>
          <div class="InfoList">
            <div class="InfoListLable">合同有效期</div>
            <div class="InfoListvalue">{{ DetailData.contractLimited }}</div>
          </div>
          <div class="InfoList InfoList2">
            <div class="InfoListLable">主要条款</div>
            <div class="InfoListvalue">{{ DetailData.mainClause }}</div>
          </div>
          <div class="InfoList InfoList2">
            <div class="InfoListLable">备注</div>
            <div class="InfoListvalue">{{ DetailData.remark }}</div>
          </div>
          <div class="InfoList3">
            <div class="InfoListLable">附件</div>
            <div class="InfoListvalue">
              <el-upload
                v-model:file-list="fileList1"
                class="upload-demo"
                action="/prod-api/system/upload"
                disabled
                multiple
                :on-preview="handlePreview"
              >
              </el-upload>
            </div>
          </div>
        </div>
      </div>
      <div class="TabBody" v-show="tabsNum == 2">
        <!-- 支付信息 -->
        <p class="ProjectInfoTitle">支付计划</p>
        <div class="JiHuaHeader">
          <div class="HeaderListDiv">期次</div>
          <div class="HeaderListDiv">金额(元)</div>
          <div class="HeaderListDiv">备注</div>
        </div>
        <div
          v-for="(row, index) in DetailData.projectContractPayPlanList"
          :key="index"
          class="JiHuaHeader"
        >
          <div class="HeaderListDiv">{{ index + 1 }}</div>
          <div class="HeaderListDiv">{{ row.currentMoney }}</div>
          <div class="HeaderListDiv">
            {{ row.remark ? row.remark : "无" }}
          </div>
        </div>

        <p class="ProjectInfoTitle">支付记录</p>
        <PaymentRecords
          v-if="tabsNum == 2"
          :contractId="contractId"
          :PiCiData="DetailData"
        ></PaymentRecords>
      </div>
</template>
<script setup>
import {
  onMounted,
  defineEmits,
  reactive,
  defineProps,
  defineExpose,
} from "vue";
import {
  projectContractDetail,

} from "@/api/project/tenderReview";
const id=defineProps(['id'])
const tabsNum = ref(1);
const DetailData=ref({})
const projectContractDetailM=async(p)=> { 
  let {data}=await projectContractDetail(p)
     DetailData.value = data;
    DetailData.value.type = t
    tabsNum.value = 1;
    contractId.value = DetailData.value.id;
    // form.value.fileSaveRequestList = [];
}
onMounted(() => {
  projectContractDetailM(id)
});
</script>
<style lang="scss" scoped>
 .TabsTop {
    width: 100%;
    height: 36px;
    margin-bottom: 14px;

    .TabsList {
      width: 120px;
      text-align: center;
      height: 36px;
      line-height: 34px;
      float: left;
      box-sizing: border-box;
      border: 1px solid #409eff;
      color: #409eff;
      cursor: pointer;

      &:nth-child(1) {
        border-top-left-radius: 5px;
        border-bottom-left-radius: 5px;
      }

      &:nth-child(2) {
        border-top-right-radius: 5px;
        border-bottom-right-radius: 5px;
      }
    }

    .TabsListActive {
      background-color: #409eff;
      color: white;
    }
  }

  .TabBody {
    width: 100%;
    height: calc(100% - 50px);

    // 基础信息
    .LeftBox1 {
      width: 360px;
      height: 100%;
      float: left;

      .HTNo {
        width: 340px;
        text-align: center;
        font-size: 16px;
      }

      .HTMoney1 {
        width: 170px;
        height: 80px;
        float: left;
        text-align: center;

        .JENum {
          width: 100%;
          height: 40px;
          font-size: 26px;
          font-weight: 400;
          color: #409eff;
        }

        .JEName {
          width: 100%;
          height: 40px;
          font-size: 16px;
          color: black;
        }
      }
    }

    .LeftBox2 {
      width: calc(100% - 360px);
      height: 100%;
      float: left;
      background: white;
      overflow: auto;
      font-size: 0;

      .InfoList {
        display: inline-block;
        width: 50%;
        height: 42px;
        border: 1px solid #d8ddef;
        box-sizing: border-box;
        // margin-left: 1%;

        .InfoListLable {
          height: 40px;
          line-height: 40px;
          width: 100px;
          float: left;
          background-color: #f3f7ff;
          box-sizing: border-box;
          font-size: 14px;
          font-family: Source Han Sans CN;
          font-weight: 500;
          color: #666666;
          text-align: center;
        }

        .InfoListvalue {
          width: calc(100% - 100px);
          height: 40px;
          line-height: 40px;
          float: left;
          font-size: 14px;
          font-family: Source Han Sans CN;
          font-weight: bold;
          color: #333333;
          text-align: right;
          padding-right: 10px;
        }
      }

      .InfoList2 {
        width: 100%;
        height: 82px;

        .InfoListLable {
          height: 100%;
          height: 80px;
          line-height: 80px;
        }

        .InfoListvalue {
          height: 100%;
          height: 80px;
        }
      }

      .InfoList3 {
        width: 100%;
        min-height: 60px;
        height: auto;
        overflow: auto;

        .InfoListLable {
          width: 100px;
          float: left;
          font-size: 14px;
          font-family: Source Han Sans CN;
          font-weight: 500;
          color: #000000;
          text-align: center;
          line-height: 60px;
        }

        .InfoListvalue {
          float: left;
          width: calc(100% - 100px);
          height: auto;
        }
      }
    }

    // 支付信息
    .ProjectInfoTitle {
      width: 100%;
      height: 50px;
      line-height: 50px;
      box-sizing: border-box;
      padding-left: 24px;
      font-size: 16px;
      font-family: Source Han Sans CN;
      font-weight: bold;
      color: #333333;
      margin: 0;
    }
  }
</style>