Newer
Older
KaiFengPC / src / views / spongePerformance / waterlogging / permeableGroundArea / todoDon.vue
@zhangdeliang zhangdeliang on 15 Oct 6 KB update
  1. <template>
  2. <div class="water-analysis-page">
  3. <el-table :key="isFlag" :data="tableData" max-height="500" v-loading="tableLoading">
  4. <el-table-column type="index" width="55" label="序号" />
  5. <el-table-column :label="i.value" :prop="i.key" show-overflow-tooltip v-for="i in cloums">
  6. <template #default="{ row }" v-if="i.key == 'standardFlag'">
  7. <el-tag v-if="row.standardFlag === ''" type="warning">未填报</el-tag>
  8. <el-tag v-else-if="row.standardFlag === '102'" type="warning">无法评价</el-tag>
  9. <el-tag v-else :type="row.standardFlag === '1' ? 'success' : 'error'">{{ row.standardFlag === '1' ? '达标' : '未达标' }}</el-tag>
  10. </template>
  11. <template #default="{ row }" v-if="i.key == 'itemTarget'">
  12. {{ row.itemDataTypePerformanceEvaluateItemList[0]?.itemTarget || 0 }}
  13. </template>
  14. <template #default="{ row }" v-if="i.key == 'kstdmTargetArea'">
  15. {{ row.itemTargetval }}
  16. <!-- {{ (row.itemDataTypePerformanceEvaluateItemList[0]?.itemTarget * 1 * allRealValue * 1) / 100 || 0 }} -->
  17. </template>
  18. <template #default="{ row }" v-if="i.key == 'allRealValue'">
  19. {{ allRealValue }}
  20. </template>
  21. <template #default="{ row }" v-if="i.key == 'attachFileList'">
  22. <span @click="handlePreview(k)" style="color: #108ee9" v-for="k in row.attachFileList">{{ k.name }}</span>
  23. </template>
  24. <!-- <template #default="{ row }" v-if="i.key == 'standardFlag'">
  25. <el-tag :type="row.standardFlag === '1' ? 'success' : 'error'">{{ row.standardFlag === '1' ? '达标' : '未达标' }}</el-tag>
  26. </template> -->
  27. </el-table-column>
  28. <el-table-column label="操作" width="150">
  29. <template #default="{ row }">
  30. <el-button link type="primary" icon="View" @click="onCheck(row, 1, '详情')">详情</el-button>
  31. <el-button link icon="Edit" type="warning" @click="onCheck(row, 2, '修改')">修改</el-button>
  32. </template>
  33. </el-table-column>
  34. </el-table>
  35. <pagination
  36. v-show="totals > 0"
  37. :total="totals"
  38. v-model:page="FormList.pageNum"
  39. v-model:limit="FormList.pageSize"
  40. @pagination="dynamic_page_data_typeM(FormList)"
  41. />
  42. <el-dialog
  43. v-model="visible"
  44. :title="'可渗透地面面积比' + FormList.title"
  45. :modal-append-to-body="false"
  46. :close-on-click-modal="false"
  47. width="51%"
  48. >
  49. <tableDalgo ref="tableDalgoRef" v-if="visible" @onModalClose="onModalClose" :typeList="typeList" :key="isFlag"> </tableDalgo>
  50. <template #footer>
  51. <div class="dialog-footer">
  52. <el-button v-show="typeList.type == '2'" @click="open2" type="primary">确定</el-button>
  53. <el-button @click="onModalClose">取消</el-button>
  54. </div>
  55. </template>
  56. </el-dialog>
  57. </div>
  58. </template>
  59. <script setup>
  60. import { projectInfoDelete, dynamic_page_data_type } from '@/api/spongePerformance/naturalWaterArea';
  61. import { FileSystemList } from '@/api/project/tenderReview';
  62. import { getConfigKey } from '@/api/system/config'; //获取参数值
  63. import tableDalgo from './tableDalgo.vue';
  64. import { ElMessage, ElMessageBox } from 'element-plus';
  65. const { proxy } = getCurrentInstance();
  66. // const { fund_source, unit_list } = proxy.useDict("fund_source", 'unit_list');
  67. import { reactive } from 'vue';
  68. let visible = ref(false);
  69. let isFlag = ref(1);
  70. const cloums = ref([
  71. { value: '考核年度', key: 'year' },
  72. { value: '建成区面积(公顷)', key: 'allRealValue' },
  73. { value: '现状可透水地面面积(公顷)', key: 'kstdmArea' },
  74. { value: '目标比例%', key: 'itemTarget' },
  75. { value: '可透水地面面积比%', key: 'kstdmAreaRate' },
  76. { value: '目标可渗水地面面积(公顷)', key: 'kstdmTargetArea' },
  77. { value: '达标情况', key: 'standardFlag' },
  78. ]);
  79. const allRealValue = ref(1);
  80. const tableDalgoRef = ref();
  81. const { params } = defineProps(['params']);
  82. const FormList = ref({
  83. pageNum: 1,
  84. pageSize: 10,
  85. itemDataType: 'KSSDMMJBL',
  86. });
  87. const totals = ref(0);
  88. //动态组件
  89. let dataForm = reactive({
  90. tableData: '',
  91. tableDateTwo: '',
  92. tableLoading: true,
  93. });
  94. let { date, tableData, tableDateTwo, tableLoading } = toRefs(dataForm);
  95. //获取列表数据
  96. //搜索
  97. const search = p => {
  98. FormList.value.pageNum = 1;
  99. dynamic_page_data_typeM(p);
  100. isFlag.value++;
  101. };
  102. defineExpose({ search });
  103. // 查看上报数据
  104. let typeList = ref({});
  105. const onCheck = (row, ty, t) => {
  106. FormList.value.title = t;
  107. if (ty == 1 || ty == 2) {
  108. typeList.value = {
  109. ...params,
  110. data: row,
  111. type: ty,
  112. monitorDynamicTableTitleList: cloums.value,
  113. allRealValue: allRealValue.value,
  114. };
  115. visible.value = true;
  116. // FileSystemList({
  117. // refId: row.id,
  118. // refType: 'KSSDMMJBL',
  119. // }).then(({ data }) => {
  120. // typeList.value.fileList1 = data;
  121. // visible.value = true;
  122. // });
  123. // 获取文件列表
  124. } else if (ty == 3) {
  125. proxy.$modal
  126. .confirm(`是否确认删除?`)
  127. .then(async () => {
  128. projectInfoDeleteM(row.id);
  129. getTableData();
  130. })
  131. .catch(() => {});
  132. }
  133. };
  134. //删除
  135. const projectInfoDeleteM = async id => {
  136. let { code } = await projectInfoDelete(id);
  137. dynamic_page_data_typeM(params);
  138. };
  139. const dynamic_page_data_typeM = async id => {
  140. let { code, data, monitorDynamicTableTitleList, total } = await dynamic_page_data_type(id);
  141.  
  142. tableData.value = data;
  143. if (Boolean(tableData.value.length)) {
  144. tableData.value.forEach(i => {
  145. if (Boolean(i.itemDataTypePerformanceEvaluateItemList.length)) {
  146. i.itemTargetval = Number(
  147. ((i.itemDataTypePerformanceEvaluateItemList[0]?.itemTarget * 1 * allRealValue.value * 1) / 100)
  148. .toString()
  149. .match(/^\d+(?:\.\d{0,2})?/)
  150. );
  151. } else {
  152. i.itemTargetval = 0;
  153. }
  154. });
  155. }
  156. tableData.value[0].standardFlag = '';
  157. totals.value = total;
  158. // const {itemContent,itemUnit}=data[0]?.itemDataTypePerformanceEvaluateItemList[0]
  159. // cloums.value.splice(2,0, { value: '目标比例%:', key: 'itemTarget' },)
  160. tableLoading.value = false;
  161. };
  162. function onModalClose() {
  163. visible.value = false;
  164. // dynamic_page_data_typeM();
  165. dynamic_page_data_typeM(params);
  166. }
  167.  
  168. function open2() {
  169. tableDalgoRef.value.submit();
  170. }
  171. function handlePreview(file) {
  172. return ElMessageBox.confirm(`下载此文件: ${file.name}?`).then(
  173. () => window.open(file.url),
  174. () => false
  175. );
  176. }
  177. function isDb(v, m, n, f) {
  178. return v * 1 - m * 1 > 0 && n * 1 - f * 1 > 0;
  179. }
  180.  
  181. const getAreaData = async id => {
  182. getConfigKey('jcq_area').then(res => {
  183. allRealValue.value = res.data || '0';
  184. });
  185. };
  186. onMounted(() => {
  187. dynamic_page_data_typeM(params);
  188. getAreaData();
  189. });
  190. </script>
  191. <style lang="scss" scoped></style>