From c1d2051abc8ca88cd07f0d7c56c0dbf8165d5c33 Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 18 九月 2025 17:02:22 +0800 Subject: [PATCH] 2025.9.18 数据产品(待完成) --- src/views/fysp/support/JingAnNightConstruction.vue | 197 +++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 166 insertions(+), 31 deletions(-) diff --git a/src/views/fysp/support/JingAnNightConstruction.vue b/src/views/fysp/support/JingAnNightConstruction.vue index 79089b0..c4066bf 100644 --- a/src/views/fysp/support/JingAnNightConstruction.vue +++ b/src/views/fysp/support/JingAnNightConstruction.vue @@ -1,53 +1,188 @@ <template> - <FYTable @search="onSearch"> - <template #options> - - </template> - - <template #buttons> - - </template> - + <FYTable + :data="data" + :total-count="total" + @search="onSearch" + :extraHeight="tabsHeaderHeight" + > + <!-- <template #options> </template> + <template #buttons> </template> --> <template #table-column> - <el-table-column fixed="left" sortable prop="ncNum" label="缂栧彿" width="80"> + <el-table-column + fixed="left" + sortable + prop="ncNum" + label="缂栧彿" + width="100" + > </el-table-column> <el-table-column fixed="left" - prop="name" - label="鍚嶇О" + prop="ncItemName" + label="椤圭洰鍚嶇О" :show-overflow-tooltip="true" width="400" > </el-table-column> - <el-table-column prop="type" label="绫诲瀷" width="130" /> - <el-table-column prop="provincename" label="鐪�" width="90" /> - <el-table-column prop="cityname" label="甯�" width="90" /> - <el-table-column prop="districtname" label="鍖哄幙" width="90" /> - <el-table-column prop="townname" label="琛楅亾" width="110" /> - <el-table-column prop="location" label="鍦板潃" min-width="400" /> - <el-table-column prop="longitude" label="缁忓害" width="110" /> - <el-table-column prop="latitude" label="绾害" width="110" /> - <el-table-column fixed="right" label="鎿嶄綔" width="160"> - <template #default="scope"> + <!-- <el-table-column prop="ncItemUnit" label="涓氫富鍗曚綅" width="130" /> --> + <!-- <el-table-column prop="ncProvinceName" label="鐪�" width="90" /> + <el-table-column prop="ncCityName" label="甯�" width="90" /> --> + <!-- <el-table-column prop="ncDistrictName" label="鍖哄幙" width="90" /> --> + <!-- <el-table-column prop="townname" label="琛楅亾" width="110" /> --> + <el-table-column + prop="ncConstructionUnit" + label="鏂藉伐鍗曚綅" + min-width="100" + /> + <el-table-column prop="ncPerson" label="鐢宠浜�" width="110" /> + <el-table-column prop="ncApplyContent" label="鐢宠鍐呭" width="110" /> + <el-table-column prop="ncStartDate" label="宸ユ湡寮�濮�" width="110"> + <template #default="{ row }"> + {{ $fm.formatYMD(row.ncStartDate) }} + </template> + </el-table-column> + <el-table-column prop="ncEndDate" label="宸ユ湡缁撴潫" width="110"> + <template #default="{ row }"> + {{ $fm.formatYMD(row.ncEndDate) }} + </template> + </el-table-column> + <!-- <el-table-column prop="ncCreateTime" label="鐢宠鏃堕棿" width="110" > + <template #default="{row}"> + {{ $fm.formatYMD(row.ncCreateTime) }} + </template> + </el-table-column> --> + <el-table-column prop="ncUserId" label="鍖归厤鐢ㄦ埛"> + <template #default="{ row }"> + <el-text + :loading="row._loading" + :type="row._user ? 'primary' : 'danger'" + >{{ row._user ? row._user.realname : '鏈尮閰�' }}</el-text + > + </template> + </el-table-column> + <el-table-column fixed="right" label="鎿嶄綔" width="80"> + <template #default="{ row }"> <el-button - :loading="scope.row.loading1" + :disabled="row._loading" type="default" size="small" - @click="itemEdit(scope)" + @click="itemEdit(row)" >缂栬緫</el-button - > - <el-button - :loading="scope.row.loading2" - :type="scope.row.extension1 != '0' ? 'danger' : 'primary'" - size="small" - @click="itemActive(scope)" - >{{ scope.row.extension1 != '0' ? '涓嬬嚎' : '涓婄嚎' }}</el-button > </template> </el-table-column> </template> </FYTable> + <el-dialog v-model="dialog" destroy-on-close> + <CompInfoSearchFysp + v-model="selectedSVUser" + :area="area" + :defaultText="defaultText" + searchTextWidth="400px" + /> + <template #footer> + <el-button @click="dialog = false">鍙栨秷</el-button> + <el-button type="primary" @click="submit" :disabled="!selectedSVUser" + >纭畾</el-button + > + </template> + </el-dialog> </template> <script setup> +import { ref, inject, computed } from 'vue'; import nightConstructionApi from '@/api/fysp/nightConstructionApi'; +import userApi from '@/api/fysp/userApi'; +import CompInfoSearchFysp from '@/views/fysp/config/components/CompInfoSearchFysp.vue'; +import { ElMessage } from 'element-plus'; + +const tabsHeaderHeight = inject('tabsHeaderHeight', 0); + +// 澶滈棿鏂藉伐璁板綍鍙婃�绘暟 +const data = ref([]); +const total = ref(0); + +// 澶滈棿鏂藉伐璁板綍鍖归厤寮圭獥 +const dialog = ref(false); +const selectedSVUser = ref(null); +const selectedRow = ref(null); +const area = ref({ + provincecode: '31', + provincename: '涓婃捣甯�', + citycode: '3100', + cityname: '涓婃捣甯�', + districtcode: '310106', + districtname: '闈欏畨鍖�', + scensetypeid: '1' +}); +const defaultText = computed(() => { + return selectedRow.value?.ncItemName || undefined; +}); + +function onSearch(page, callback) { + return nightConstructionApi + .fetchRecord({ + cityCode: '3100', + districtCode: '310106', + page: page.currentPage, + perPage: page.pageSize + }) + .then((res) => { + if (res.success) { + data.value = res.data; + data.value.forEach((d) => { + d._loading = true; + if (d.ncUserId) { + userApi + .getUserById(d.ncUserId) + .then((res1) => { + d._user = res1; + }) + .finally(() => { + d._loading = false; + }); + } else { + d._loading = false; + } + }); + total.value = res.head.totalCount; + callback(); + } + }); +} + +function itemEdit(row) { + selectedRow.value = row; + selectedSVUser.value = row._user; + dialog.value = true; +} + +function submit() { + if (!selectedSVUser.value) { + return ElMessage.error('璇烽�夋嫨鐢ㄦ埛'); + } + nightConstructionApi + .updateRecord({ + recordId: selectedRow.value.ncId, + userId: selectedSVUser.value.guid, + sceneId: selectedSVUser.value.dguid + }) + .then((res) => { + if (res.success) { + selectedRow.value.ncUserId = res.data.ncUserId; + selectedRow.value.ncSceneId = res.data.ncSceneId; + userApi + .getUserById(selectedRow.value.ncUserId) + .then((res1) => { + selectedRow.value._user = res1; + }) + .finally(() => { + selectedRow.value._loading = false; + }); + } + }) + .finally(() => { + dialog.value = false; + selectedRow.value._user = selectedSVUser.value; + }); +} </script> -- Gitblit v1.9.3