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