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 | 139 ++++++++++++++++++++++++++++++++++++---------- 1 files changed, 109 insertions(+), 30 deletions(-) diff --git a/src/views/fysp/support/JingAnNightConstruction.vue b/src/views/fysp/support/JingAnNightConstruction.vue index d8c5b2e..c4066bf 100644 --- a/src/views/fysp/support/JingAnNightConstruction.vue +++ b/src/views/fysp/support/JingAnNightConstruction.vue @@ -1,9 +1,12 @@ <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" @@ -48,40 +51,72 @@ {{ $fm.formatYMD(row.ncCreateTime) }} </template> </el-table-column> --> - <el-table-column prop="ncUserId" label="鍖归厤鐢ㄦ埛" width="110"> + <el-table-column prop="ncUserId" label="鍖归厤鐢ㄦ埛"> <template #default="{ row }"> - <el-text v-loading="row._loading">{{ - row._user ? row._user.realName : '鏈尮閰�' - }}</el-text> + <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="160"> - <template #default="scope"> + <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 } from 'vue'; +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 @@ -93,17 +128,61 @@ }) .then((res) => { if (res.success) { - res.data.forEach((d) => { - res.data._loading = true; - userApi.getUserById(d.ncUserId).then((res1) => { - res.data._user = res1; - }); + 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; + } }); - callback({ - data: res.data, - total: res.head.totalCount - }); + 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