<template> <div class="water-analysis-page"> <div class="top"> <el-form label-width="auto" :rules="projectEstimateRules" inline ref="ruleForm" :model="FormList" :disabled="typeList.type == 1"> <div v-for="i in typeList.monitorDynamicTableTitleList" style="display: flex; flex-direction: column"> <el-form-item :label="i.value + ':'" :prop="i.key" :disabled="typeList.type == 1 || typeList.type == 2"> <!-- <el-input disabled v-if="i.key == 'trsyTargetArea'" :placeholder="i.value" style="width: 300px" :min="0" :precision="2" :step="0.1" :max="typeList.allRealValue" @change="trsyAreaChange" v-model="FormList[i.key]" > <template #append> k㎡ </template> </el-input> --> <div v-if="i.key == 'trsyTargetArea'">{{ typeList.data.itemTargetval }} k㎡</div> <div v-else-if="i.key == 'allRealValue'">{{ typeList.allRealValue }}</div> <!-- <div v-else-if="i.key == 'trsyArea'">{{ typeList.data.trsyArea }}</div> --> <div v-else-if="i.key == 'trsyArea'">{{ typeList.data.trsyArea.toString() }}</div> <div v-else-if="i.key == 'trsyTargetArea'"> <!-- {{ ((itemTarget * typeList.allRealValue) / 100 || 0).toFixed(3) }} --> </div> <div v-else-if="i.key == 'itemTarget'"> {{ itemTarget || 0 }} </div> <div v-else-if="i.key == 'standardFlag'"> <el-tag v-if="typeList.data.standardFlag === ''" type="warning">未填报</el-tag> <el-tag v-else-if="typeList.data.standardFlag === '102'" type="warning">无法评价</el-tag> <el-tag v-else :type="typeList.data.standardFlag === '1' ? 'success' : 'error'">{{ typeList.data.standardFlag === '1' ? '达标' : '未达标' }}</el-tag> </div> <div v-else> {{ FormList[i.key] }} </div> </el-form-item> </div> </el-form> <el-table :data="tableData" v-loading="tableLoading" max-height="300"> <el-table-column label="项目名称" prop="projectName" /> <el-table-column label="占地面积(k㎡)" prop="projectArea" /> <el-table-column label="新增天然水域面积(k㎡)" prop="newTrsyArea" /> </el-table> </div> </div> </template> <script setup> import { projectInfoEdit, trsyAreaByYear } from '@/api/spongePerformance/naturalWaterArea'; import { projectEstimateRules } from '@/utils/rules'; import { getConfigKey } from '@/api/system/config'; //获取参数值 const { proxy } = getCurrentInstance(); const tableData = ref([]); const tableLoading = ref(true); const { typeList } = defineProps(['typeList']); const emits = defineEmits(); defineExpose({ submit, closed, resetFiled }); const IsStandFlag1 = ref(0); const fileSaveRequestList = ref([]); let FormList = ref({ projectNo: '' }); const itemTarget = computed(() => { return typeList.data?.itemDataTypePerformanceEvaluateItemList[0]?.itemTarget; }); // 提交 function submit() { proxy.$refs.ruleForm.validate(valid => { if (valid) { let ar = typeList.data.itemDataTypePerformanceEvaluateItemList; let arr1 = typeList.data; if (ar.length > 0) { ar[0].realValue = arr1.trsyAreaRate; ar[0].standardFlag = typeList.data.standardFlag; if (typeList.data.standardFlag === '1') { ar[0].realScore = ar[0].itemScore; } else { ar[0].realScore = 0; } } else { ar.push({ standardFlag: typeList.data.standardFlag, realValue: typeList.data.trsyAreaRate, realScore: typeList.data.standardFlag >= 0 ? arr1.trsyTargetArea || 0 : 0, }); } typeList.data.itemDataTypePerformanceEvaluateItemList = ar; FormList.value = { fileSaveRequestList: fileSaveRequestList.value, ...typeList.data, itemDataType: 'TRSYMJBL', }; projectInfoEdit(FormList.value).then(({ code }) => { if (code == 200) { emits('onModalClose'); } }); } }); } function loadProjerctListData() { FormList.value = typeList.data; fileSaveRequestList.value = typeList.fileList1; IsStandFlag1.value = typeList.data.trsyArea * 1 - (((itemTarget.value * typeList.allRealValue) / 100).toFixed(3) || 0); proxy.$refs.ruleForm.resetFields(); } function resetFiled() { proxy.$refs.ruleForm.resetFields(); fileSaveRequestList.value = []; } function closed() { emits('onModalClose'); } function trsyAreaChange(v) { let st = v * 1 - (((itemTarget.value * typeList.allRealValue) / 100).toFixed(3) || 0); console.log(st, 333); if (st >= 0) { IsStandFlag1.value = 1; typeList.data.standardFlag = '1'; } else { IsStandFlag1.value = 0; typeList.data.standardFlag = '0'; } FormList.value.trsyAreaRate = ((v / typeList.allRealValue) * 100).toFixed(2) || 0; } // 获取现状天然水域面积 function getAreaData() { getConfigKey(`water_area_${typeList.data.year}`).then(res => { typeList.data.trsyArea = res.data; }); } // 获取具体项目列表 async function getProjectList() { let res = await trsyAreaByYear({ year: typeList.data.year }); if (res && res.code == 200) { tableData.value = res.data; } tableLoading.value = false; } onMounted(() => { // getAreaData(); loadProjerctListData(); getProjectList(); // typeList.data.trsyArea = typeList.data.trsyArea.toString().match(/^\d+(?:\.\d{0,2})?/); }); </script> <style lang="scss" scoped> .water-analysis-page { padding: 20px; } </style>