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