Newer
Older
KaiFengPC / src / views / spongePerformance / waterlogging / naturalWaterArea / tableDalgo.vue
@zhangdeliang zhangdeliang on 23 May 5 KB 初始化项目
  1. <template>
  2. <div class="water-analysis-page">
  3. <div class="top">
  4. <el-form label-width="auto" :rules="projectEstimateRules" inline ref="ruleForm" :model="FormList" :disabled="typeList.type == 1">
  5. <div v-for="i in typeList.monitorDynamicTableTitleList" style="display: flex; flex-direction: column">
  6. <el-form-item :label="i.value + ':'" :prop="i.key" :disabled="typeList.type == 1 || typeList.type == 2">
  7. <!-- <el-input
  8. disabled
  9. v-if="i.key == 'trsyTargetArea'"
  10. :placeholder="i.value"
  11. style="width: 300px"
  12. :min="0"
  13. :precision="2"
  14. :step="0.1"
  15. :max="typeList.allRealValue"
  16. @change="trsyAreaChange"
  17. v-model="FormList[i.key]"
  18. >
  19. <template #append> k㎡ </template>
  20. </el-input> -->
  21. <div v-if="i.key == 'trsyTargetArea'">{{ typeList.data.itemTargetval }} k㎡</div>
  22. <div v-else-if="i.key == 'allRealValue'">{{ typeList.allRealValue }}</div>
  23. <!-- <div v-else-if="i.key == 'trsyArea'">{{ typeList.data.trsyArea }}</div> -->
  24. <div v-else-if="i.key == 'trsyArea'">{{ typeList.data.trsyArea.toString() }}</div>
  25. <div v-else-if="i.key == 'trsyTargetArea'">
  26. <!-- {{ ((itemTarget * typeList.allRealValue) / 100 || 0).toFixed(3) }} -->
  27. </div>
  28. <div v-else-if="i.key == 'itemTarget'">
  29. {{ itemTarget || 0 }}
  30. </div>
  31. <div v-else-if="i.key == 'standardFlag'">
  32. <el-tag v-if="typeList.data.standardFlag === ''" type="warning">未填报</el-tag>
  33. <el-tag v-else-if="typeList.data.standardFlag === '102'" type="warning">无法评价</el-tag>
  34. <el-tag v-else :type="typeList.data.standardFlag === '1' ? 'success' : 'error'">{{
  35. typeList.data.standardFlag === '1' ? '达标' : '未达标'
  36. }}</el-tag>
  37. </div>
  38. <div v-else>
  39. {{ FormList[i.key] }}
  40. </div>
  41. </el-form-item>
  42. </div>
  43. </el-form>
  44. <el-table :data="tableData" v-loading="tableLoading" max-height="300">
  45. <el-table-column label="项目名称" prop="projectName" />
  46. <el-table-column label="占地面积(k㎡)" prop="projectArea" />
  47. <el-table-column label="新增天然水域面积(k㎡)" prop="newTrsyArea" />
  48. </el-table>
  49. </div>
  50. </div>
  51. </template>
  52. <script setup>
  53. import { projectInfoEdit, trsyAreaByYear } from '@/api/spongePerformance/naturalWaterArea';
  54. import { projectEstimateRules } from '@/utils/rules';
  55. import { getConfigKey } from '@/api/system/config'; //获取参数值
  56.  
  57. const { proxy } = getCurrentInstance();
  58. const tableData = ref([]);
  59. const tableLoading = ref(true);
  60. const { typeList } = defineProps(['typeList']);
  61. const emits = defineEmits();
  62. defineExpose({ submit, closed, resetFiled });
  63. const IsStandFlag1 = ref(0);
  64. const fileSaveRequestList = ref([]);
  65. let FormList = ref({ projectNo: '' });
  66. const itemTarget = computed(() => {
  67. return typeList.data?.itemDataTypePerformanceEvaluateItemList[0]?.itemTarget;
  68. });
  69. // 提交
  70. function submit() {
  71. proxy.$refs.ruleForm.validate(valid => {
  72. if (valid) {
  73. let ar = typeList.data.itemDataTypePerformanceEvaluateItemList;
  74. let arr1 = typeList.data;
  75. if (ar.length > 0) {
  76. ar[0].realValue = arr1.trsyAreaRate;
  77. ar[0].standardFlag = typeList.data.standardFlag;
  78. if (typeList.data.standardFlag === '1') {
  79. ar[0].realScore = ar[0].itemScore;
  80. } else {
  81. ar[0].realScore = 0;
  82. }
  83. } else {
  84. ar.push({
  85. standardFlag: typeList.data.standardFlag,
  86. realValue: typeList.data.trsyAreaRate,
  87. realScore: typeList.data.standardFlag >= 0 ? arr1.trsyTargetArea || 0 : 0,
  88. });
  89. }
  90.  
  91. typeList.data.itemDataTypePerformanceEvaluateItemList = ar;
  92. FormList.value = {
  93. fileSaveRequestList: fileSaveRequestList.value,
  94. ...typeList.data,
  95. itemDataType: 'TRSYMJBL',
  96. };
  97. projectInfoEdit(FormList.value).then(({ code }) => {
  98. if (code == 200) {
  99. emits('onModalClose');
  100. }
  101. });
  102. }
  103. });
  104. }
  105. function loadProjerctListData() {
  106. FormList.value = typeList.data;
  107. fileSaveRequestList.value = typeList.fileList1;
  108. IsStandFlag1.value = typeList.data.trsyArea * 1 - (((itemTarget.value * typeList.allRealValue) / 100).toFixed(3) || 0);
  109. proxy.$refs.ruleForm.resetFields();
  110. }
  111. function resetFiled() {
  112. proxy.$refs.ruleForm.resetFields();
  113. fileSaveRequestList.value = [];
  114. }
  115. function closed() {
  116. emits('onModalClose');
  117. }
  118. function trsyAreaChange(v) {
  119. let st = v * 1 - (((itemTarget.value * typeList.allRealValue) / 100).toFixed(3) || 0);
  120. console.log(st, 333);
  121. if (st >= 0) {
  122. IsStandFlag1.value = 1;
  123. typeList.data.standardFlag = '1';
  124. } else {
  125. IsStandFlag1.value = 0;
  126. typeList.data.standardFlag = '0';
  127. }
  128. FormList.value.trsyAreaRate = ((v / typeList.allRealValue) * 100).toFixed(2) || 0;
  129. }
  130. // 获取现状天然水域面积
  131. function getAreaData() {
  132. getConfigKey(`water_area_${typeList.data.year}`).then(res => {
  133. typeList.data.trsyArea = res.data;
  134. });
  135. }
  136. // 获取具体项目列表
  137. async function getProjectList() {
  138. let res = await trsyAreaByYear({ year: typeList.data.year });
  139. if (res && res.code == 200) {
  140. tableData.value = res.data;
  141. }
  142. tableLoading.value = false;
  143. }
  144. onMounted(() => {
  145. // getAreaData();
  146. loadProjerctListData();
  147. getProjectList();
  148. // typeList.data.trsyArea = typeList.data.trsyArea.toString().match(/^\d+(?:\.\d{0,2})?/);
  149. });
  150. </script>
  151. <style lang="scss" scoped>
  152. .water-analysis-page {
  153. padding: 20px;
  154. }
  155. </style>