Newer
Older
Nanping_sponge_GCGL / src / views / project / projectInformation / components / payCont.vue
@liyingjing liyingjing on 25 Oct 2023 6 KB 海绵工程管理
<template>
  <div class="water-analysis-page">
    <div class="top">
        <div class="LeftBox1">
        <el-progress
      type="circle"
      :percentage="DetailData.paymentRatio"
      :width="150"
      style="margin: 10px 10px 20px 100px"
      :stroke-width="20"
      striped
      striped-flow
    />
        <!-- <p class="HTNo">{{ DetailData.projectTypeName }}</p> -->
        <div style="width:380px;display:flex">
            <div class="HTMoney1">
          <div class="JENum">{{ DetailData.contractAmount }}<span style="font-size:14px">(万元)</span></div>
          <div class="JEName">合同金额</div>
        </div>
        <div class="HTMoney1">
          <div class="JENum">
            {{ DetailData.paymentMoney ? DetailData.paymentMoney : "--" }}<span style="font-size:14px">(万元)</span>
          </div>
          <div class="JEName">已支付金额</div>
        </div>
        </div>
      </div>
      <el-table
      :data="postList"
      @selection-change="handleSelectionChange"
    >
      <el-table-column style="folat:right" label="序号" type="index" width="80" align="center" />
      <el-table-column
        :label="i.label"
        align="center"
        :prop="i.props"
        show-overflow-tooltip
        v-for="i in payContCloum"
      >
        <template #default="{ row }" v-if="i.props == 'contractType'">
          <dict-tag :options="contract_type" :value="row.contractType" />
        </template>
        <template #default="{ row }" v-if="i.props == 'signTime'">
          {{row.signTime?.substring(0, 10)  }}
        </template>
        <template #default="{ row }" v-if="i.props == 'paidMoney'">
          {{row.paidMoney ||0  }}(万元)
        </template>
        <template #default="{ row }" v-if="i.props == 'notPaidMoney'">
          {{row.notPaidMoney ||0  }}(万元)
        </template>
        <template #default="{ row }" v-if="i.props == 'money'">
          {{row.money ||0  }}(万元)
        </template>
        <template #default="{ row }" v-if="i.props == 'ratio'">
          {{row.ratio ||0  }}%
        </template>
        <template #default="{ row }" v-if="i.props == 'contractType'">
          <dict-tag :options="contract_type" :value="row.contractType" />
        </template>
      </el-table-column>
    </el-table>
    </div>
    
  </div>
</template>
<script setup>
import { workflowProcess } from "@/api/project/qualityRectificationDetails";
import {
  getProjectStatistics,
  projectContractPage
} from "@/api/project/tenderReview";
import {
  projectInfoAdd,
  projectTypeList,
  projectCompany,
  getUserProfile,
  userList,
  projectInfoSubmit,
  projectInfoedit,
} from "@/api/projectInformation";
import { regionList } from "@/api/projectTable";
import {
  onMounted,
  toRefs,
  defineEmits,
  reactive,
  defineProps,
  defineExpose,
  inject,
} from "vue";
import { payContCloum } from "@/utils/cloums";
const { proxy } = getCurrentInstance();
const {
  contract_type,
  project_status,
  project_operation_pattern,
  build_status,
  drainage_partition,
} = proxy.useDict(
  "contract_type",
  "project_status",
  "project_operation_pattern",
  "build_status",
  "drainage_partition"
);
const emits = defineEmits();
const typeList = inject("typeList1");
let areCode = ref(0);
const postList = ref([]);
const project_TypeId = ref([]);
const unit_list = ref([]);
const personList = ref([]);
const queryParams=ref({
    pageNum: 1,
    pageSize: 10})
const FormList = ref({
  pageNum: 1,
  pageSize: 10,
});
const DetailData=ref({})
//头部点击
function tabsNumClick(v) {
  tabsNum.value = v;
}
const submit = () => {
  proxy.$refs.ruleForm.validate((valid) => {
    if (valid) {
      // let { dealUsers, pushUsers } = FormList.value;
      // if (dealUsers?.length > 0 && Array.isArray(dealUsers)) {
      //   FormList.value.dealUsers = dealUsers?.join(",");
      // }
      // if (pushUsers?.length > 0 && Array.isArray(pushUsers)) {
      //   FormList.value.pushUsers = pushUsers.join(",");
      // }
      FormList.value.content = JSON.stringify([
        FormList.value.content[0],
        { type: "new", projectInfo: { ...FormList.value } },
      ]);
      console.log(JSON.stringify(FormList.value.content));
      console.log(FormList.value, "typeListtypeList");
      if (typeList.type == 3) {
        FormList.value.operation = "add";
        projectInfoAdd(FormList.value).then(({ code }) => {
          if (code == 200) {
            emits("onModalClose");
            proxy.$refs.ruleForm.resetFields();
          }
        });
      } else if (typeList.type == 5) {
        FormList.value.operation = "update";
        projectInfoAdd(FormList.value).then(({ code }) => {
          if (code == 200) {
            emits("onModalClose");
            proxy.$refs.ruleForm.resetFields();
          }
        });
      }
    }
  });
};
function closeds() {
  proxy.$refs.ruleForm.resetFields();
}
defineExpose({ submit, closeds });
const projectTypeListM = async () => {
  let { data } = await projectTypeList();
  project_TypeId.value = data;
};
const projectCompanyM = async () => {
  let { data } = await projectCompany();
  unit_list.value = data;
};
const getUserProfileM = async () => {
  let { data } = await getUserProfile();
  // unit_list.value = data
};
const userListM = async () => {
  let { data } = await userList();
  personList.value = data;
  FormList.value = typeList.value;
};
//获取合同
const getProjectStatisticsM = async (id) => {
  let { data } = await getProjectStatistics(id);
  DetailData.value = data;
};
const  projectContractPageM=async(p)=>{ 
  let {data}=await projectContractPage(p)
  postList.value = data
}
onMounted(() => {
  projectTypeListM();
  projectCompanyM();
  userListM();
  getProjectStatisticsM(typeList.value.projectNo);
  projectContractPageM({ projectNo:typeList.value.projectNo,pageSize:99999,pageNum:1})

});
</script>
<style lang="scss" scoped>
.water-analysis-page {
  padding: 20px;
  .top {
    display:flex;
  }
}
.LeftBox1 {
      width: 280px;
      margin-right: 30px;
      height: 100%;
      float: left;

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

      .HTMoney1 {
        width: 170px;
        height: 60px;
        float: left;
        display:inline-block;
        text-align: center;

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

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

</style>