Newer
Older
KaiFengPC / src / views / project / projectInformation / components / payCont.vue
@zhangdeliang zhangdeliang on 23 May 5 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" />
        <el-table-column :label="i.label" :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 { getProjectStatistics, projectContractPage } from '@/api/project/tenderReview';
import { projectInfoAdd, projectTypeList, projectCompany, getUserProfile, userList } from '@/api/project/projectInformation';
import { payContCloum } from '@/utils/cloums';
const { proxy } = getCurrentInstance();
const { contract_type } = proxy.useDict('contract_type');
const emits = defineEmits();
const typeList = inject('typeList1');
const postList = ref([]);
const project_TypeId = ref([]);
const unit_list = ref([]);
const personList = ref([]);
const FormList = ref({
  pageNum: 1,
  pageSize: 10,
});
const DetailData = ref({});
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>