Kaynağa Gözat

调整瑞都新建日报和设备监控详情

Zimo 1 gün önce
ebeveyn
işleme
d9f0598993

+ 15 - 18
src/views/pms/device/monitor/TdDeviceInfo.vue

@@ -658,31 +658,28 @@ const { toggle, isFullscreen } = useFullscreen(targetArea)
         </template>
       </div>
     </div>
-    <div ref="targetArea" class="h-full min-h-0 relative">
-      <div class="grid grid-cols-[260px_1fr] gap-4 h-full">
-        <el-scrollbar
-          class="rounded-xl shadow-sm border border-gray-100 border-solid overflow-hidden bg-gradient-to-b from-blue-100 to-white"
-          view-class="flex flex-col min-h-full"
-          v-loading="dimensionLoading"
-        >
-          <template v-for="citem in dimensionsContent" :key="citem.label">
-            <template v-if="citem.judgment ? Boolean(citem.value.length) : true">
-              <div
-                class="sticky-title bg-blue-100 z-10 flex justify-between items-center py-3 px-4 border-0 border-solid"
-              >
-                <span class="font-bold text-sm text-gray-700! flex items-center gap-2">
+    <div ref="targetArea" class="relative">
+      <div class="flex flex-col gap-4 h-full">
+        <template v-for="citem in dimensionsContent" :key="citem.label">
+          <template v-if="citem.judgment ? Boolean(citem.value.length) : true">
+            <div
+              class="rounded-xl shadow-sm border border-gray-100 border-solid overflow-hidden bg-gradient-to-b from-blue-100 to-white p-4 flex flex-col gap-2"
+              v-loading="dimensionLoading"
+            >
+              <div class="flex justify-center items-center gap-2 border-0 border-solid">
+                <span class="font-bold text-gray-700! flex items-center gap-2">
                   <el-icon><component :is="citem.icon" /></el-icon>
                   {{ citem.label }}
                 </span>
                 <span
-                  class="text-xs px-2 py-0.5 rounded-full font-mono"
+                  class="text-xs px-2 py-0.5 rounded-full font-mono bg-gray-200"
                   :class="[citem.countBg, citem.countColor]"
                 >
                   {{ citem.value.length }}
                 </span>
               </div>
 
-              <div class="px-3 pb-4 pt-2 space-y-3">
+              <div class="grid grid-cols-4 gap-2">
                 <div
                   :data-disabled="disabledDimensions.includes(item.identifier)"
                   v-for="item in citem.value"
@@ -734,12 +731,12 @@ const { toggle, isFullscreen } = useFullscreen(targetArea)
                   </div>
                 </div>
               </div>
-            </template>
+            </div>
           </template>
-        </el-scrollbar>
+        </template>
 
         <div
-          class="rounded-xl shadow-sm border border-gray-100 border-solid p-4 flex flex-col bg-gradient-to-b from-blue-100 to-white"
+          class="flex-1 min-h-200 rounded-xl shadow-sm border border-gray-100 border-solid p-4 flex flex-col bg-gradient-to-b from-blue-100 to-white"
         >
           <header class="flex items-center justify-between mb-4">
             <h3 class="flex items-center gap-2">

+ 16 - 1
src/views/pms/iotrddailyreport/create-rd-form.vue

@@ -169,6 +169,8 @@ async function loadUserOptions() {
 
 const loading = ref(false)
 
+const detail = ref<any>()
+
 async function load() {
   loading.value = true
 
@@ -179,6 +181,7 @@ async function load() {
 
   if (props.isview && props.id) {
     const res = await IotRdDailyReportApi.getIotRdDailyReport(props.id)
+    detail.value = res
     submitterNames.value = res.submitterNames
     form.value = {
       deptId: res.deptId,
@@ -243,6 +246,18 @@ async function submitForm() {
     formLoading.value = false
   }
 }
+
+const disabled = computed(() => {
+  if (props.isview !== 'create') {
+    if (props.isview === 'time') {
+      return !(detail.value?.contractName === null && detail.value?.taskName === null)
+    }
+
+    return true
+  }
+
+  return false
+})
 </script>
 
 <template>
@@ -271,7 +286,7 @@ async function submitForm() {
         class="flex flex-col"
         :rules="rules"
         :loading="loading"
-        :disabled="props.isview !== 'create'"
+        :disabled="disabled"
       >
         <div class="grid grid-cols-2 gap-x-8">
           <el-form-item label="施工队伍" prop="deptId">