Quellcode durchsuchen

🐞 fix(all): 全局样式和日报冲突

Zimo vor 5 Tagen
Ursprung
Commit
60237ada75

+ 1 - 1
.env.local

@@ -4,7 +4,7 @@ NODE_ENV=development
 VITE_DEV=true
 
 # 请求路径  http://192.168.188.149:48080  https://iot.deepoil.cc
-VITE_BASE_URL=' https://iot.deepoil.cc'
+VITE_BASE_URL='https://aims.deepoil.cc'
 
 # 文件上传类型:server - 后端上传, client - 前端直连上传,仅支持 S3 服务
 VITE_UPLOAD_TYPE=server

+ 1 - 1
src/layout/components/AppView.vue

@@ -38,7 +38,7 @@ provide('reload', reload)
     :class="[
       'p-[var(--app-content-padding)] w-full bg-[var(--app-content-bg-color)] dark:bg-[var(--el-bg-color)]',
       {
-        'h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-footer-height))] !min-h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-footer-height))] pb-0':
+        '!min-h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-footer-height))] pb-0':
           footer
       }
     ]"

+ 268 - 264
src/views/pms/iotrhdailyreport/approval.vue

@@ -567,152 +567,155 @@ const submitForm = async (auditStatus: 20 | 30) => {
 </script>
 
 <template>
-  <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
-    <div class="flex flex-col p-4 gap-2 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
-      <DeptTreeSelect :deptId="deptId" :topId="157" v-model="query.deptId" />
-    </div>
-    <div class="grid grid-rows-[62px_1fr] h-full gap-4">
-      <el-form
-        size="default"
-        class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
-      >
-        <div class="flex items-center gap-8">
-          <el-form-item label="项目">
-            <el-input
-              v-model="query.contractName"
-              placeholder="请输入项目"
-              clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
-            />
-          </el-form-item>
-          <el-form-item label="任务">
-            <el-input
-              v-model="query.taskName"
-              placeholder="请输入任务"
-              clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
-            />
+  <div
+    class="h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-footer-height))]"
+  >
+    <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
+      <div class="flex flex-col p-4 gap-2 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
+        <DeptTreeSelect :deptId="deptId" :topId="157" v-model="query.deptId" />
+      </div>
+      <div class="grid grid-rows-[62px_1fr] h-full gap-4">
+        <el-form
+          size="default"
+          class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
+        >
+          <div class="flex items-center gap-8">
+            <el-form-item label="项目">
+              <el-input
+                v-model="query.contractName"
+                placeholder="请输入项目"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="任务">
+              <el-input
+                v-model="query.taskName"
+                placeholder="请输入任务"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="创建时间">
+              <el-date-picker
+                v-model="query.createTime"
+                value-format="YYYY-MM-DD HH:mm:ss"
+                type="daterange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                :shortcuts="rangeShortcuts"
+                class="!w-220px"
+                :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+              />
+            </el-form-item>
+          </div>
+          <el-form-item>
+            <el-button type="primary" @click="handleQuery()">
+              <Icon icon="ep:search" class="mr-5px" /> 搜索
+            </el-button>
+            <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
           </el-form-item>
-          <el-form-item label="创建时间">
-            <el-date-picker
-              v-model="query.createTime"
-              value-format="YYYY-MM-DD HH:mm:ss"
-              type="daterange"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              :shortcuts="rangeShortcuts"
-              class="!w-220px"
-              :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+        </el-form>
+        <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
+          <div class="flex-1 relative">
+            <el-auto-resizer class="absolute">
+              <template #default="{ width, height }">
+                <el-table
+                  :data="list"
+                  v-loading="loading"
+                  stripe
+                  class="absolute"
+                  :max-height="height"
+                  show-overflow-tooltip
+                  :width="width"
+                  :cell-style="cellStyle"
+                  border
+                >
+                  <DailyTableColumn :columns="columns" />
+                  <el-table-column label="操作" width="120px" align="center" fixed="right">
+                    <template #default="{ row }">
+                      <el-button
+                        link
+                        type="success"
+                        @click="handleOpenForm(row.id, 'readonly')"
+                        v-hasPermi="['pms:iot-rh-daily-report:update']"
+                      >
+                        查看
+                      </el-button>
+                      <el-button
+                        v-show="row.auditStatus === 10"
+                        link
+                        type="primary"
+                        @click="handleOpenForm(row.id, 'approval')"
+                        v-hasPermi="['pms:iot-rh-daily-report:update']"
+                      >
+                        审批
+                      </el-button>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </template>
+            </el-auto-resizer>
+          </div>
+          <div class="h-10 mt-4 flex items-center justify-end">
+            <el-pagination
+              size="default"
+              v-show="total > 0"
+              v-model:current-page="query.pageNo"
+              v-model:page-size="query.pageSize"
+              :background="true"
+              :page-sizes="[10, 20, 30, 50, 100]"
+              :total="total"
+              layout="total, sizes, prev, pager, next, jumper"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
             />
-          </el-form-item>
-        </div>
-        <el-form-item>
-          <el-button type="primary" @click="handleQuery()">
-            <Icon icon="ep:search" class="mr-5px" /> 搜索
-          </el-button>
-          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
-        </el-form-item>
-      </el-form>
-      <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
-        <div class="flex-1 relative">
-          <el-auto-resizer class="absolute">
-            <template #default="{ width, height }">
-              <el-table
-                :data="list"
-                v-loading="loading"
-                stripe
-                class="absolute"
-                :max-height="height"
-                show-overflow-tooltip
-                :width="width"
-                :cell-style="cellStyle"
-                border
-              >
-                <DailyTableColumn :columns="columns" />
-                <el-table-column label="操作" width="120px" align="center" fixed="right">
-                  <template #default="{ row }">
-                    <el-button
-                      link
-                      type="success"
-                      @click="handleOpenForm(row.id, 'readonly')"
-                      v-hasPermi="['pms:iot-rh-daily-report:update']"
-                    >
-                      查看
-                    </el-button>
-                    <el-button
-                      v-show="row.auditStatus === 10"
-                      link
-                      type="primary"
-                      @click="handleOpenForm(row.id, 'approval')"
-                      v-hasPermi="['pms:iot-rh-daily-report:update']"
-                    >
-                      审批
-                    </el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
-            </template>
-          </el-auto-resizer>
-        </div>
-        <div class="h-10 mt-4 flex items-center justify-end">
-          <el-pagination
-            size="default"
-            v-show="total > 0"
-            v-model:current-page="query.pageNo"
-            v-model:page-size="query.pageSize"
-            :background="true"
-            :page-sizes="[10, 20, 30, 50, 100]"
-            :total="total"
-            layout="total, sizes, prev, pager, next, jumper"
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-          />
+          </div>
         </div>
       </div>
     </div>
-  </div>
-  <Dialog title="编辑" v-model="dialogVisible">
-    <el-form
-      ref="formRef"
-      label-position="top"
-      size="default"
-      :rules="rules"
-      :model="form"
-      v-loading="formLoading"
-      require-asterisk-position="right"
-    >
-      <div class="flex flex-col gap-3 text-sm">
-        <div
-          class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
-        >
-          <div class="flex flex-col gap-2.5">
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200">运行时效:</span>
-                当日注气量 / 产能
+    <Dialog title="编辑" v-model="dialogVisible">
+      <el-form
+        ref="formRef"
+        label-position="top"
+        size="default"
+        :rules="rules"
+        :model="form"
+        v-loading="formLoading"
+        require-asterisk-position="right"
+      >
+        <div class="flex flex-col gap-3 text-sm">
+          <div
+            class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
+          >
+            <div class="flex flex-col gap-2.5">
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200">运行时效:</span>
+                  当日注气量 / 产能
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
+                >
+                  >120% 红色预警
+                </span>
               </div>
-              <span
-                class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
-              >
-                >120% 红色预警
-              </span>
-            </div>
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
-                注气 + 注水 + 非生产 = 24H
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
+                  注气 + 注水 + 非生产 = 24H
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
+                >
+                  ≠24H 橙色预警
+                </span>
               </div>
-              <span
-                class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
-              >
-                ≠24H 橙色预警
-              </span>
             </div>
           </div>
-        </div>
-        <!-- <div
+          <!-- <div
           v-if="form.opinion"
           class="flex gap-3 rounded-md border border-yellow-200 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-900/10"
         >
@@ -727,141 +730,142 @@ const submitForm = async (auditStatus: 20 | 30) => {
             </p>
           </div>
         </div> -->
-      </div>
-      <div class="grid grid-cols-2 gap-4 mt-5">
-        <el-form-item label="施工队伍" prop="deptName">
-          <el-input v-model="form.deptName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="项目" prop="contractName">
-          <el-input v-model="form.contractName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="任务" prop="taskName">
-          <el-input v-model="form.taskName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="搬迁安装天数(D)" prop="relocationDays">
-          <el-input v-model="form.relocationDays" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="运行时效" prop="transitTime">
-          <el-input
-            :model-value="transitTime.value"
-            placeholder="运行时效"
-            disabled
-            :class="{ 'warning-input': transitTime.original > 1.2 }"
-            id="transitTimeInput"
-          />
-        </el-form-item>
-        <el-form-item label="当日注气量(方)" prop="dailyGasInjection">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.dailyGasInjection"
-            placeholder="请输入当日注气量(方)"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="当日注水量(方)" prop="dailyWaterInjection">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.dailyWaterInjection"
-            placeholder="请输入当日注水量(方)"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="当日注气时间(H)" prop="dailyInjectGasTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.dailyInjectGasTime"
-            placeholder="请输入当日注气时间(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="当日注水时间(H)" prop="dailyInjectWaterTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.dailyInjectWaterTime"
-            placeholder="当日注水时间(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="非生产时间(H)" prop="nonProductionTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.nonProductionTime"
-            placeholder="非生产时间(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="非生产时间原因" prop="nptReason">
-          <el-select v-model="form.nptReason" placeholder="请选择" disabled clearable>
-            <el-option
-              v-for="(dict, index) of getStrDictOptions(DICT_TYPE.PMS_PROJECT_NPT_REASON)"
-              :key="index"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <div class="grid grid-cols-1 gap-4 mt-5">
-          <el-form-item label="生产动态" prop="productionStatus">
+        </div>
+        <div class="grid grid-cols-2 gap-4 mt-5">
+          <el-form-item label="施工队伍" prop="deptName">
+            <el-input v-model="form.deptName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="项目" prop="contractName">
+            <el-input v-model="form.contractName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="任务" prop="taskName">
+            <el-input v-model="form.taskName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="搬迁安装天数(D)" prop="relocationDays">
+            <el-input v-model="form.relocationDays" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="运行时效" prop="transitTime">
             <el-input
-              v-model="form.productionStatus"
-              placeholder="请输入生产动态"
-              type="textarea"
-              autosize
-              :max-length="1000"
+              :model-value="transitTime.value"
+              placeholder="运行时效"
               disabled
+              :class="{ 'warning-input': transitTime.original > 1.2 }"
+              id="transitTimeInput"
             />
           </el-form-item>
-          <el-form-item label="备注" prop="remark">
-            <el-input
-              v-model="form.remark"
-              placeholder="请输入备注"
-              :max-length="1000"
-              type="textarea"
-              autosize
+          <el-form-item label="当日注气量(方)" prop="dailyGasInjection">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.dailyGasInjection"
+              placeholder="请输入当日注气量(方)"
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="当日注水量(方)" prop="dailyWaterInjection">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.dailyWaterInjection"
+              placeholder="请输入当日注水量(方)"
               disabled
             />
           </el-form-item>
+          <el-form-item label="当日注气时间(H)" prop="dailyInjectGasTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.dailyInjectGasTime"
+              placeholder="请输入当日注气时间(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="当日注水时间(H)" prop="dailyInjectWaterTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.dailyInjectWaterTime"
+              placeholder="当日注水时间(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="非生产时间(H)" prop="nonProductionTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.nonProductionTime"
+              placeholder="非生产时间(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="非生产时间原因" prop="nptReason">
+            <el-select v-model="form.nptReason" placeholder="请选择" disabled clearable>
+              <el-option
+                v-for="(dict, index) of getStrDictOptions(DICT_TYPE.PMS_PROJECT_NPT_REASON)"
+                :key="index"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <div class="grid grid-cols-1 gap-4 mt-5">
+            <el-form-item label="生产动态" prop="productionStatus">
+              <el-input
+                v-model="form.productionStatus"
+                placeholder="请输入生产动态"
+                type="textarea"
+                autosize
+                :max-length="1000"
+                disabled
+              />
+            </el-form-item>
+            <el-form-item label="备注" prop="remark">
+              <el-input
+                v-model="form.remark"
+                placeholder="请输入备注"
+                :max-length="1000"
+                type="textarea"
+                autosize
+                disabled
+              />
+            </el-form-item>
+          </div>
         </div>
-      </div>
-      <el-form-item class="mt-4" label="审批意见" prop="opinion">
-        <el-input
-          v-model="form.opinion"
-          placeholder="请输入审批意见"
-          :max-length="1000"
-          type="textarea"
-          autosize
-          :disabled="formType === 'readonly'"
-        />
-      </el-form-item>
-    </el-form>
-    <template #footer>
-      <el-button
-        size="default"
-        @click="submitForm(20)"
-        type="primary"
-        :disabled="formLoading || formType === 'readonly'"
-      >
-        审批通过
-      </el-button>
-      <el-button
-        size="default"
-        @click="submitForm(30)"
-        type="danger"
-        :disabled="formLoading || formType === 'readonly'"
-      >
-        审批拒绝
-      </el-button>
-      <el-button size="default" @click="dialogVisible = false">取 消</el-button>
-    </template>
-  </Dialog>
+        <el-form-item class="mt-4" label="审批意见" prop="opinion">
+          <el-input
+            v-model="form.opinion"
+            placeholder="请输入审批意见"
+            :max-length="1000"
+            type="textarea"
+            autosize
+            :disabled="formType === 'readonly'"
+          />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <el-button
+          size="default"
+          @click="submitForm(20)"
+          type="primary"
+          :disabled="formLoading || formType === 'readonly'"
+        >
+          审批通过
+        </el-button>
+        <el-button
+          size="default"
+          @click="submitForm(30)"
+          type="danger"
+          :disabled="formLoading || formType === 'readonly'"
+        >
+          审批拒绝
+        </el-button>
+        <el-button size="default" @click="dialogVisible = false">取 消</el-button>
+      </template>
+    </Dialog>
+  </div>
 </template>
 
 <style scoped>

+ 255 - 251
src/views/pms/iotrhdailyreport/fill.vue

@@ -572,272 +572,276 @@ const submitForm = async () => {
 </script>
 
 <template>
-  <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
-    <div class="p-4 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
-      <DeptTreeSelect :top-id="157" :deptId="deptId" v-model="query.deptId" />
+  <div
+    class="h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-footer-height))]"
+  >
+    <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
+      <div class="p-4 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
+        <DeptTreeSelect :top-id="157" :deptId="deptId" v-model="query.deptId" />
+      </div>
+      <div class="grid grid-rows-[62px_1fr] h-full gap-4">
+        <el-form
+          size="default"
+          class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
+        >
+          <div class="flex items-center gap-8">
+            <el-form-item label="项目">
+              <el-input
+                v-model="query.contractName"
+                placeholder="请输入项目"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="任务">
+              <el-input
+                v-model="query.taskName"
+                placeholder="请输入任务"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="创建时间">
+              <el-date-picker
+                v-model="query.createTime"
+                value-format="YYYY-MM-DD HH:mm:ss"
+                type="daterange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                :shortcuts="rangeShortcuts"
+                :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+                class="!w-220px"
+              />
+            </el-form-item>
+          </div>
+          <el-form-item>
+            <el-button type="primary" @click="handleQuery()">
+              <Icon icon="ep:search" class="mr-5px" /> 搜索
+            </el-button>
+            <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
+          </el-form-item>
+        </el-form>
+        <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
+          <div class="flex-1 relative">
+            <el-auto-resizer class="absolute">
+              <template #default="{ width, height }">
+                <el-table
+                  :data="list"
+                  v-loading="loading"
+                  stripe
+                  class="absolute"
+                  :max-height="height"
+                  show-overflow-tooltip
+                  :width="width"
+                  :cell-style="cellStyle"
+                  border
+                >
+                  <DailyTableColumn :columns="columns" />
+                  <el-table-column label="操作" width="120px" align="center" fixed="right">
+                    <template #default="{ row }">
+                      <el-button
+                        link
+                        type="success"
+                        @click="handleOpenForm(row.id, 'readonly')"
+                        v-hasPermi="['pms:iot-rh-daily-report:query']"
+                      >
+                        查看
+                      </el-button>
+                      <el-button
+                        v-show="row.status === 0"
+                        link
+                        type="primary"
+                        @click="handleOpenForm(row.id, 'edit')"
+                        v-hasPermi="['pms:iot-rh-daily-report:create']"
+                      >
+                        编辑
+                      </el-button>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </template>
+            </el-auto-resizer>
+          </div>
+          <div class="h-10 mt-4 flex items-center justify-end">
+            <el-pagination
+              size="default"
+              v-show="total > 0"
+              v-model:current-page="query.pageNo"
+              v-model:page-size="query.pageSize"
+              :background="true"
+              :page-sizes="[10, 20, 30, 50, 100]"
+              :total="total"
+              layout="total, sizes, prev, pager, next, jumper"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+            />
+          </div>
+        </div>
+      </div>
     </div>
-    <div class="grid grid-rows-[62px_1fr] h-full gap-4">
+    <Dialog title="编辑" v-model="dialogVisible">
       <el-form
+        ref="formRef"
+        label-position="top"
         size="default"
-        class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
+        :rules="rules"
+        :model="form"
+        v-loading="formLoading"
+        require-asterisk-position="right"
+        :disabled="formType === 'readonly'"
       >
-        <div class="flex items-center gap-8">
-          <el-form-item label="项目">
+        <div class="flex flex-col gap-3 text-sm">
+          <div
+            class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
+          >
+            <div class="flex flex-col gap-2.5">
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200">运行时效:</span>
+                  当日注气量 / 产能
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
+                >
+                  >120% 红色预警
+                </span>
+              </div>
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
+                  注气 + 注水 + 非生产 = 24H
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
+                >
+                  ≠24H 橙色预警
+                </span>
+              </div>
+            </div>
+          </div>
+          <div
+            v-if="form.opinion"
+            class="flex gap-3 rounded-md border border-yellow-200 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-900/10"
+          >
+            <Icon
+              icon="ep:warning-filled"
+              class="mt-0.5 shrink-0 text-base text-yellow-600 dark:text-yellow-500"
+            />
+            <div class="flex flex-col">
+              <h4 class="mb-1 font-bold text-yellow-800 dark:text-yellow-500"> 审核意见 </h4>
+              <p class="leading-relaxed text-gray-600 dark:text-gray-400">
+                {{ form.opinion }}
+              </p>
+            </div>
+          </div>
+        </div>
+        <div class="grid grid-cols-2 gap-4 mt-5">
+          <el-form-item label="施工队伍" prop="deptName">
+            <el-input v-model="form.deptName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="项目" prop="contractName">
+            <el-input v-model="form.contractName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="任务" prop="taskName">
+            <el-input v-model="form.taskName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="搬迁安装天数(D)" prop="relocationDays">
+            <el-input v-model="form.relocationDays" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="运行时效" prop="transitTime">
             <el-input
-              v-model="query.contractName"
-              placeholder="请输入项目"
-              clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
+              :model-value="transitTime.value"
+              placeholder="运行时效"
+              disabled
+              :class="{ 'warning-input': transitTime.original > 1.2 }"
+              id="transitTimeInput"
+            />
+          </el-form-item>
+          <el-form-item label="当日注气量(方)" prop="dailyGasInjection">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.dailyGasInjection"
+              placeholder="请输入当日注气量(方)"
+            />
+          </el-form-item>
+          <el-form-item label="当日注水量(方)" prop="dailyWaterInjection">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.dailyWaterInjection"
+              placeholder="请输入当日注水量(方)"
+            />
+          </el-form-item>
+          <el-form-item label="当日注气时间(H)" prop="dailyInjectGasTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.dailyInjectGasTime"
+              placeholder="请输入当日注气时间(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="当日注水时间(H)" prop="dailyInjectWaterTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.dailyInjectWaterTime"
+              placeholder="当日注水时间(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
             />
           </el-form-item>
-          <el-form-item label="任务">
+          <el-form-item label="非生产时间(H)" prop="nonProductionTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.nonProductionTime"
+              placeholder="非生产时间(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="非生产时间原因" prop="nptReason">
+            <el-select v-model="form.nptReason" placeholder="请选择" clearable>
+              <el-option
+                v-for="(dict, index) of getStrDictOptions(DICT_TYPE.PMS_PROJECT_NPT_REASON)"
+                :key="index"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+        </div>
+        <div class="grid grid-cols-1 gap-4 mt-5">
+          <el-form-item label="生产动态" prop="productionStatus">
             <el-input
-              v-model="query.taskName"
-              placeholder="请输入任务"
-              clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
+              v-model="form.productionStatus"
+              placeholder="请输入生产动态"
+              type="textarea"
+              autosize
+              :max-length="1000"
             />
           </el-form-item>
-          <el-form-item label="创建时间">
-            <el-date-picker
-              v-model="query.createTime"
-              value-format="YYYY-MM-DD HH:mm:ss"
-              type="daterange"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              :shortcuts="rangeShortcuts"
-              :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
-              class="!w-220px"
+          <el-form-item label="备注" prop="remark">
+            <el-input
+              v-model="form.remark"
+              placeholder="请输入备注"
+              :max-length="1000"
+              type="textarea"
+              autosize
             />
           </el-form-item>
         </div>
-        <el-form-item>
-          <el-button type="primary" @click="handleQuery()">
-            <Icon icon="ep:search" class="mr-5px" /> 搜索
-          </el-button>
-          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
-        </el-form-item>
       </el-form>
-      <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
-        <div class="flex-1 relative">
-          <el-auto-resizer class="absolute">
-            <template #default="{ width, height }">
-              <el-table
-                :data="list"
-                v-loading="loading"
-                stripe
-                class="absolute"
-                :max-height="height"
-                show-overflow-tooltip
-                :width="width"
-                :cell-style="cellStyle"
-                border
-              >
-                <DailyTableColumn :columns="columns" />
-                <el-table-column label="操作" width="120px" align="center" fixed="right">
-                  <template #default="{ row }">
-                    <el-button
-                      link
-                      type="success"
-                      @click="handleOpenForm(row.id, 'readonly')"
-                      v-hasPermi="['pms:iot-rh-daily-report:query']"
-                    >
-                      查看
-                    </el-button>
-                    <el-button
-                      v-show="row.status === 0"
-                      link
-                      type="primary"
-                      @click="handleOpenForm(row.id, 'edit')"
-                      v-hasPermi="['pms:iot-rh-daily-report:create']"
-                    >
-                      编辑
-                    </el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
-            </template>
-          </el-auto-resizer>
-        </div>
-        <div class="h-10 mt-4 flex items-center justify-end">
-          <el-pagination
-            size="default"
-            v-show="total > 0"
-            v-model:current-page="query.pageNo"
-            v-model:page-size="query.pageSize"
-            :background="true"
-            :page-sizes="[10, 20, 30, 50, 100]"
-            :total="total"
-            layout="total, sizes, prev, pager, next, jumper"
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-          />
-        </div>
-      </div>
-    </div>
+      <template #footer>
+        <el-button size="default" @click="submitForm" type="primary" :disabled="formLoading">
+          确 定
+        </el-button>
+        <el-button size="default" @click="dialogVisible = false">取 消</el-button>
+      </template>
+    </Dialog>
   </div>
-  <Dialog title="编辑" v-model="dialogVisible">
-    <el-form
-      ref="formRef"
-      label-position="top"
-      size="default"
-      :rules="rules"
-      :model="form"
-      v-loading="formLoading"
-      require-asterisk-position="right"
-      :disabled="formType === 'readonly'"
-    >
-      <div class="flex flex-col gap-3 text-sm">
-        <div
-          class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
-        >
-          <div class="flex flex-col gap-2.5">
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200">运行时效:</span>
-                当日注气量 / 产能
-              </div>
-              <span
-                class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
-              >
-                >120% 红色预警
-              </span>
-            </div>
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
-                注气 + 注水 + 非生产 = 24H
-              </div>
-              <span
-                class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
-              >
-                ≠24H 橙色预警
-              </span>
-            </div>
-          </div>
-        </div>
-        <div
-          v-if="form.opinion"
-          class="flex gap-3 rounded-md border border-yellow-200 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-900/10"
-        >
-          <Icon
-            icon="ep:warning-filled"
-            class="mt-0.5 shrink-0 text-base text-yellow-600 dark:text-yellow-500"
-          />
-          <div class="flex flex-col">
-            <h4 class="mb-1 font-bold text-yellow-800 dark:text-yellow-500"> 审核意见 </h4>
-            <p class="leading-relaxed text-gray-600 dark:text-gray-400">
-              {{ form.opinion }}
-            </p>
-          </div>
-        </div>
-      </div>
-      <div class="grid grid-cols-2 gap-4 mt-5">
-        <el-form-item label="施工队伍" prop="deptName">
-          <el-input v-model="form.deptName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="项目" prop="contractName">
-          <el-input v-model="form.contractName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="任务" prop="taskName">
-          <el-input v-model="form.taskName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="搬迁安装天数(D)" prop="relocationDays">
-          <el-input v-model="form.relocationDays" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="运行时效" prop="transitTime">
-          <el-input
-            :model-value="transitTime.value"
-            placeholder="运行时效"
-            disabled
-            :class="{ 'warning-input': transitTime.original > 1.2 }"
-            id="transitTimeInput"
-          />
-        </el-form-item>
-        <el-form-item label="当日注气量(方)" prop="dailyGasInjection">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.dailyGasInjection"
-            placeholder="请输入当日注气量(方)"
-          />
-        </el-form-item>
-        <el-form-item label="当日注水量(方)" prop="dailyWaterInjection">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.dailyWaterInjection"
-            placeholder="请输入当日注水量(方)"
-          />
-        </el-form-item>
-        <el-form-item label="当日注气时间(H)" prop="dailyInjectGasTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.dailyInjectGasTime"
-            placeholder="请输入当日注气时间(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="当日注水时间(H)" prop="dailyInjectWaterTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.dailyInjectWaterTime"
-            placeholder="当日注水时间(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="非生产时间(H)" prop="nonProductionTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.nonProductionTime"
-            placeholder="非生产时间(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="非生产时间原因" prop="nptReason">
-          <el-select v-model="form.nptReason" placeholder="请选择" clearable>
-            <el-option
-              v-for="(dict, index) of getStrDictOptions(DICT_TYPE.PMS_PROJECT_NPT_REASON)"
-              :key="index"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-      </div>
-      <div class="grid grid-cols-1 gap-4 mt-5">
-        <el-form-item label="生产动态" prop="productionStatus">
-          <el-input
-            v-model="form.productionStatus"
-            placeholder="请输入生产动态"
-            type="textarea"
-            autosize
-            :max-length="1000"
-          />
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input
-            v-model="form.remark"
-            placeholder="请输入备注"
-            :max-length="1000"
-            type="textarea"
-            autosize
-          />
-        </el-form-item>
-      </div>
-    </el-form>
-    <template #footer>
-      <el-button size="default" @click="submitForm" type="primary" :disabled="formLoading">
-        确 定
-      </el-button>
-      <el-button size="default" @click="dialogVisible = false">取 消</el-button>
-    </template>
-  </Dialog>
 </template>
 
 <style scoped>

+ 412 - 408
src/views/pms/iotrydailyreport/approval.vue

@@ -674,152 +674,155 @@ const submitForm = async (auditStatus: 20 | 30) => {
 </script>
 
 <template>
-  <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
-    <div class="flex flex-col p-4 gap-2 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
-      <DeptTreeSelect :deptId="deptId" :topId="158" v-model="query.deptId" />
-    </div>
-    <div class="grid grid-rows-[62px_1fr] h-full gap-4">
-      <el-form
-        size="default"
-        class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
-      >
-        <div class="flex items-center gap-8">
-          <el-form-item label="项目">
-            <el-input
-              v-model="query.contractName"
-              placeholder="请输入项目"
-              clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
-            />
-          </el-form-item>
-          <el-form-item label="任务">
-            <el-input
-              v-model="query.taskName"
-              placeholder="请输入任务"
-              clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
-            />
+  <div
+    class="h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-footer-height))] >"
+  >
+    <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
+      <div class="flex flex-col p-4 gap-2 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
+        <DeptTreeSelect :deptId="deptId" :topId="158" v-model="query.deptId" />
+      </div>
+      <div class="grid grid-rows-[62px_1fr] h-full gap-4">
+        <el-form
+          size="default"
+          class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
+        >
+          <div class="flex items-center gap-8">
+            <el-form-item label="项目">
+              <el-input
+                v-model="query.contractName"
+                placeholder="请输入项目"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="任务">
+              <el-input
+                v-model="query.taskName"
+                placeholder="请输入任务"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="创建时间">
+              <el-date-picker
+                v-model="query.createTime"
+                value-format="YYYY-MM-DD HH:mm:ss"
+                type="daterange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                :shortcuts="rangeShortcuts"
+                class="!w-220px"
+                :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+              />
+            </el-form-item>
+          </div>
+          <el-form-item>
+            <el-button type="primary" @click="handleQuery()">
+              <Icon icon="ep:search" class="mr-5px" /> 搜索
+            </el-button>
+            <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
           </el-form-item>
-          <el-form-item label="创建时间">
-            <el-date-picker
-              v-model="query.createTime"
-              value-format="YYYY-MM-DD HH:mm:ss"
-              type="daterange"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              :shortcuts="rangeShortcuts"
-              class="!w-220px"
-              :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+        </el-form>
+        <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
+          <div class="flex-1 relative">
+            <el-auto-resizer class="absolute">
+              <template #default="{ width, height }">
+                <el-table
+                  :data="list"
+                  v-loading="loading"
+                  stripe
+                  class="absolute"
+                  :max-height="height"
+                  show-overflow-tooltip
+                  :width="width"
+                  :cell-style="cellStyle"
+                  border
+                >
+                  <DailyTableColumn :columns="columns" />
+                  <el-table-column label="操作" width="120px" align="center" fixed="right">
+                    <template #default="{ row }">
+                      <el-button
+                        link
+                        type="success"
+                        @click="handleOpenForm(row.id, 'readonly')"
+                        v-hasPermi="['pms:iot-ry-daily-report:update']"
+                      >
+                        查看
+                      </el-button>
+                      <el-button
+                        v-show="row.auditStatus === 10"
+                        link
+                        type="primary"
+                        @click="handleOpenForm(row.id, 'approval')"
+                        v-hasPermi="['pms:iot-ry-daily-report:update']"
+                      >
+                        审批
+                      </el-button>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </template>
+            </el-auto-resizer>
+          </div>
+          <div class="h-10 mt-4 flex items-center justify-end">
+            <el-pagination
+              size="default"
+              v-show="total > 0"
+              v-model:current-page="query.pageNo"
+              v-model:page-size="query.pageSize"
+              :background="true"
+              :page-sizes="[10, 20, 30, 50, 100]"
+              :total="total"
+              layout="total, sizes, prev, pager, next, jumper"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
             />
-          </el-form-item>
-        </div>
-        <el-form-item>
-          <el-button type="primary" @click="handleQuery()">
-            <Icon icon="ep:search" class="mr-5px" /> 搜索
-          </el-button>
-          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
-        </el-form-item>
-      </el-form>
-      <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
-        <div class="flex-1 relative">
-          <el-auto-resizer class="absolute">
-            <template #default="{ width, height }">
-              <el-table
-                :data="list"
-                v-loading="loading"
-                stripe
-                class="absolute"
-                :max-height="height"
-                show-overflow-tooltip
-                :width="width"
-                :cell-style="cellStyle"
-                border
-              >
-                <DailyTableColumn :columns="columns" />
-                <el-table-column label="操作" width="120px" align="center" fixed="right">
-                  <template #default="{ row }">
-                    <el-button
-                      link
-                      type="success"
-                      @click="handleOpenForm(row.id, 'readonly')"
-                      v-hasPermi="['pms:iot-ry-daily-report:update']"
-                    >
-                      查看
-                    </el-button>
-                    <el-button
-                      v-show="row.auditStatus === 10"
-                      link
-                      type="primary"
-                      @click="handleOpenForm(row.id, 'approval')"
-                      v-hasPermi="['pms:iot-ry-daily-report:update']"
-                    >
-                      审批
-                    </el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
-            </template>
-          </el-auto-resizer>
-        </div>
-        <div class="h-10 mt-4 flex items-center justify-end">
-          <el-pagination
-            size="default"
-            v-show="total > 0"
-            v-model:current-page="query.pageNo"
-            v-model:page-size="query.pageSize"
-            :background="true"
-            :page-sizes="[10, 20, 30, 50, 100]"
-            :total="total"
-            layout="total, sizes, prev, pager, next, jumper"
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-          />
+          </div>
         </div>
       </div>
     </div>
-  </div>
-  <Dialog title="编辑" v-model="dialogVisible">
-    <el-form
-      ref="formRef"
-      label-position="top"
-      size="default"
-      :rules="rules"
-      :model="form"
-      v-loading="formLoading"
-      require-asterisk-position="right"
-    >
-      <div class="flex flex-col gap-3 text-sm">
-        <div
-          class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
-        >
-          <div class="flex flex-col gap-2.5">
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200"> 油量消耗:</span>
-                当日油耗
+    <Dialog title="编辑" v-model="dialogVisible">
+      <el-form
+        ref="formRef"
+        label-position="top"
+        size="default"
+        :rules="rules"
+        :model="form"
+        v-loading="formLoading"
+        require-asterisk-position="right"
+      >
+        <div class="flex flex-col gap-3 text-sm">
+          <div
+            class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
+          >
+            <div class="flex flex-col gap-2.5">
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200"> 油量消耗:</span>
+                  当日油耗
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
+                >
+                  >15吨 红色预警
+                </span>
               </div>
-              <span
-                class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
-              >
-                >15吨 红色预警
-              </span>
-            </div>
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
-                进尺 + 其它生产 + 非生产 = 24H
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
+                  进尺 + 其它生产 + 非生产 = 24H
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
+                >
+                  ≠24H 橙色预警
+                </span>
               </div>
-              <span
-                class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
-              >
-                ≠24H 橙色预警
-              </span>
             </div>
           </div>
-        </div>
-        <!-- <div
+          <!-- <div
           v-if="form.opinion"
           class="flex gap-3 rounded-md border border-yellow-200 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-900/10"
         >
@@ -834,113 +837,113 @@ const submitForm = async (auditStatus: 20 | 30) => {
             </p>
           </div>
         </div> -->
-      </div>
-      <div class="grid grid-cols-2 gap-4 mt-5">
-        <el-form-item label="施工队伍" prop="deptName">
-          <el-input v-model="form.deptName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="项目" prop="contractName">
-          <el-input v-model="form.contractName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="任务" prop="taskName">
-          <el-input v-model="form.taskName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="施工状态" prop="rigStatus">
-          <el-select v-model="form.rigStatus" placeholder="请选择施工状态" disabled>
-            <el-option
-              v-for="(dict, index) in getStrDictOptions(DICT_TYPE.PMS_PROJECT_TASK_RY_SCHEDULE)"
-              :key="index"
-              :label="dict.label"
-              :value="dict.value"
+        </div>
+        <div class="grid grid-cols-2 gap-4 mt-5">
+          <el-form-item label="施工队伍" prop="deptName">
+            <el-input v-model="form.deptName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="项目" prop="contractName">
+            <el-input v-model="form.contractName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="任务" prop="taskName">
+            <el-input v-model="form.taskName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="施工状态" prop="rigStatus">
+            <el-select v-model="form.rigStatus" placeholder="请选择施工状态" disabled>
+              <el-option
+                v-for="(dict, index) in getStrDictOptions(DICT_TYPE.PMS_PROJECT_TASK_RY_SCHEDULE)"
+                :key="index"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="设计井深(m)" prop="designWellDepth">
+            <el-input v-model="form.designWellDepth" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="当前井深(m)" prop="currentDepth">
+            <el-input-number
+              class="placeholder-"
+              :min="0"
+              v-model="form.currentDepth"
+              placeholder="请输入当前井深(m)"
+              disabled
             />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="设计井深(m)" prop="designWellDepth">
-          <el-input v-model="form.designWellDepth" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="当前井深(m)" prop="currentDepth">
-          <el-input-number
-            class="placeholder-"
-            :min="0"
-            v-model="form.currentDepth"
-            placeholder="请输入当前井深(m)"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="当日用电量(kWh)" prop="dailyPowerUsage">
-          <el-input-number
-            :min="0"
-            v-model="form.dailyPowerUsage"
-            placeholder="请输入当日用电量(kWh)"
-            clearable
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="当日油耗(吨)" prop="dailyFuel">
-          <el-input-number
-            :min="0"
-            v-model="form.dailyFuel"
-            placeholder="请输入当日油耗(吨)"
-            clearable
-            :class="{ 'warning-input': (form.dailyFuel ?? 0) > 15 }"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="泥浆密度(g/cm³)" prop="mudDensity">
-          <el-input-number
-            :min="0"
-            v-model="form.mudDensity"
-            placeholder="请输入泥浆性能-密度(g/cm³)"
-            clearable
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="泥浆粘度(S)" prop="mudViscosity">
-          <el-input-number
-            :min="0"
-            v-model="form.mudViscosity"
-            placeholder="请输入泥浆性能-粘度(S)"
-            clearable
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="水平段长度(m)" prop="lateralLength">
-          <el-input-number
-            :min="0"
-            v-model="form.lateralLength"
-            placeholder="请输入水平段长度(m)"
-            clearable
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="井斜(°)" prop="wellInclination">
-          <el-input-number
-            :min="0"
-            v-model="form.wellInclination"
-            placeholder="请输入井斜(°)"
-            clearable
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="方位(°)" prop="azimuth">
-          <el-input-number
-            :min="0"
-            v-model="form.azimuth"
-            placeholder="请输入方位(°)"
-            clearable
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="设计井身结构" prop="designWellStruct">
-          <el-input
-            v-model="form.designWellStruct"
-            placeholder=""
-            type="textarea"
-            disabled
-            autosize
-          />
-        </el-form-item>
-        <!-- <el-form-item label="生产动态" prop="productionStatus">
+          </el-form-item>
+          <el-form-item label="当日用电量(kWh)" prop="dailyPowerUsage">
+            <el-input-number
+              :min="0"
+              v-model="form.dailyPowerUsage"
+              placeholder="请输入当日用电量(kWh)"
+              clearable
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="当日油耗(吨)" prop="dailyFuel">
+            <el-input-number
+              :min="0"
+              v-model="form.dailyFuel"
+              placeholder="请输入当日油耗(吨)"
+              clearable
+              :class="{ 'warning-input': (form.dailyFuel ?? 0) > 15 }"
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="泥浆密度(g/cm³)" prop="mudDensity">
+            <el-input-number
+              :min="0"
+              v-model="form.mudDensity"
+              placeholder="请输入泥浆性能-密度(g/cm³)"
+              clearable
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="泥浆粘度(S)" prop="mudViscosity">
+            <el-input-number
+              :min="0"
+              v-model="form.mudViscosity"
+              placeholder="请输入泥浆性能-粘度(S)"
+              clearable
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="水平段长度(m)" prop="lateralLength">
+            <el-input-number
+              :min="0"
+              v-model="form.lateralLength"
+              placeholder="请输入水平段长度(m)"
+              clearable
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="井斜(°)" prop="wellInclination">
+            <el-input-number
+              :min="0"
+              v-model="form.wellInclination"
+              placeholder="请输入井斜(°)"
+              clearable
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="方位(°)" prop="azimuth">
+            <el-input-number
+              :min="0"
+              v-model="form.azimuth"
+              placeholder="请输入方位(°)"
+              clearable
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="设计井身结构" prop="designWellStruct">
+            <el-input
+              v-model="form.designWellStruct"
+              placeholder=""
+              type="textarea"
+              disabled
+              autosize
+            />
+          </el-form-item>
+          <!-- <el-form-item label="生产动态" prop="productionStatus">
           <el-input
             v-model="form.productionStatus"
             placeholder="请输入生产动态"
@@ -950,17 +953,17 @@ const submitForm = async (auditStatus: 20 | 30) => {
             disabled
           />
         </el-form-item> -->
-        <el-form-item label="人员情况" prop="personnel">
-          <el-input
-            v-model="form.personnel"
-            placeholder="请输入人员情况"
-            type="textarea"
-            :max-length="1000"
-            autosize
-            disabled
-          />
-        </el-form-item>
-        <!-- <el-form-item label="备注" prop="remark">
+          <el-form-item label="人员情况" prop="personnel">
+            <el-input
+              v-model="form.personnel"
+              placeholder="请输入人员情况"
+              type="textarea"
+              :max-length="1000"
+              autosize
+              disabled
+            />
+          </el-form-item>
+          <!-- <el-form-item label="备注" prop="remark">
           <el-input
             v-model="form.remark"
             placeholder="请输入备注"
@@ -970,166 +973,167 @@ const submitForm = async (auditStatus: 20 | 30) => {
             disabled
           />
         </el-form-item> -->
-      </div>
-      <el-divider content-position="left">生产时间</el-divider>
-      <div class="grid grid-cols-2 gap-4 mt-5">
-        <el-form-item label="进尺工作时间(H)" prop="drillingWorkingTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.drillingWorkingTime"
-            placeholder="进尺工作时间(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="其它生产时间(H)" prop="otherProductionTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.otherProductionTime"
-            placeholder="其它生产时间(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-      </div>
-      <el-divider content-position="left">非生产时间</el-divider>
-      <div class="grid grid-cols-4 gap-4 mt-5">
-        <el-form-item label="事故(H)" prop="accidentTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.accidentTime"
-            placeholder="请输入事故(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="修理(H)" prop="repairTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.repairTime"
-            placeholder="请输入修理(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="自停(H)" prop="selfStopTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.selfStopTime"
-            placeholder="请输入自停(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="复杂(H)" prop="complexityTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.complexityTime"
-            placeholder="请输入复杂(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="搬迁(H)" prop="relocationTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.relocationTime"
-            placeholder="请输入搬迁(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="整改(H)" prop="rectificationTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.rectificationTime"
-            placeholder="请输入整改(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="等停(H)" prop="waitingStopTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.waitingStopTime"
-            placeholder="请输入等停(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="冬休(H)" prop="winterBreakTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.winterBreakTime"
-            placeholder="请输入冬休(H)"
-            disabled
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-      </div>
-      <div class="grid grid-cols-1 gap-4 mt-5">
-        <el-form-item label="生产动态" prop="productionStatus">
-          <el-input
-            v-model="form.productionStatus"
-            placeholder="请输入生产动态"
-            type="textarea"
-            autosize
-            :max-length="1000"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
+        </div>
+        <el-divider content-position="left">生产时间</el-divider>
+        <div class="grid grid-cols-2 gap-4 mt-5">
+          <el-form-item label="进尺工作时间(H)" prop="drillingWorkingTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.drillingWorkingTime"
+              placeholder="进尺工作时间(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="其它生产时间(H)" prop="otherProductionTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.otherProductionTime"
+              placeholder="其它生产时间(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+        </div>
+        <el-divider content-position="left">非生产时间</el-divider>
+        <div class="grid grid-cols-4 gap-4 mt-5">
+          <el-form-item label="事故(H)" prop="accidentTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.accidentTime"
+              placeholder="请输入事故(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="修理(H)" prop="repairTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.repairTime"
+              placeholder="请输入修理(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="自停(H)" prop="selfStopTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.selfStopTime"
+              placeholder="请输入自停(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="复杂(H)" prop="complexityTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.complexityTime"
+              placeholder="请输入复杂(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="搬迁(H)" prop="relocationTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.relocationTime"
+              placeholder="请输入搬迁(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="整改(H)" prop="rectificationTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.rectificationTime"
+              placeholder="请输入整改(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="等停(H)" prop="waitingStopTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.waitingStopTime"
+              placeholder="请输入等停(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="冬休(H)" prop="winterBreakTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.winterBreakTime"
+              placeholder="请输入冬休(H)"
+              disabled
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+        </div>
+        <div class="grid grid-cols-1 gap-4 mt-5">
+          <el-form-item label="生产动态" prop="productionStatus">
+            <el-input
+              v-model="form.productionStatus"
+              placeholder="请输入生产动态"
+              type="textarea"
+              autosize
+              :max-length="1000"
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="备注" prop="remark">
+            <el-input
+              v-model="form.remark"
+              placeholder="请输入备注"
+              :max-length="1000"
+              type="textarea"
+              autosize
+              disabled
+            />
+          </el-form-item>
+        </div>
+        <el-form-item class="mt-4" label="审批意见" prop="opinion">
           <el-input
-            v-model="form.remark"
-            placeholder="请输入备注"
+            v-model="form.opinion"
+            placeholder="请输入审批意见"
             :max-length="1000"
             type="textarea"
             autosize
-            disabled
+            :disabled="formType === 'readonly'"
           />
         </el-form-item>
-      </div>
-      <el-form-item class="mt-4" label="审批意见" prop="opinion">
-        <el-input
-          v-model="form.opinion"
-          placeholder="请输入审批意见"
-          :max-length="1000"
-          type="textarea"
-          autosize
-          :disabled="formType === 'readonly'"
-        />
-      </el-form-item>
-    </el-form>
-    <template #footer>
-      <el-button
-        size="default"
-        @click="submitForm(20)"
-        type="primary"
-        :disabled="formLoading || formType === 'readonly'"
-      >
-        审批通过
-      </el-button>
-      <el-button
-        size="default"
-        @click="submitForm(30)"
-        type="danger"
-        :disabled="formLoading || formType === 'readonly'"
-      >
-        审批拒绝
-      </el-button>
-      <el-button size="default" @click="dialogVisible = false">取 消</el-button>
-    </template>
-  </Dialog>
+      </el-form>
+      <template #footer>
+        <el-button
+          size="default"
+          @click="submitForm(20)"
+          type="primary"
+          :disabled="formLoading || formType === 'readonly'"
+        >
+          审批通过
+        </el-button>
+        <el-button
+          size="default"
+          @click="submitForm(30)"
+          type="danger"
+          :disabled="formLoading || formType === 'readonly'"
+        >
+          审批拒绝
+        </el-button>
+        <el-button size="default" @click="dialogVisible = false">取 消</el-button>
+      </template>
+    </Dialog>
+  </div>
 </template>
 
 <style scoped>

+ 381 - 372
src/views/pms/iotrydailyreport/fill.vue

@@ -747,394 +747,403 @@ const submitForm = async () => {
 </script>
 
 <template>
-  <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
-    <div class="p-4 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
-      <DeptTreeSelect :top-id="158" :deptId="deptId" v-model="query.deptId" />
+  <div
+    class="h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-footer-height))]"
+  >
+    <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
+      <div class="p-4 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
+        <DeptTreeSelect :top-id="158" :deptId="deptId" v-model="query.deptId" />
+      </div>
+      <div class="grid grid-rows-[62px_1fr] h-full gap-4">
+        <el-form
+          size="default"
+          class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
+        >
+          <div class="flex items-center gap-8">
+            <el-form-item label="项目">
+              <el-input
+                v-model="query.contractName"
+                placeholder="请输入项目"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="任务">
+              <el-input
+                v-model="query.taskName"
+                placeholder="请输入任务"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="创建时间">
+              <el-date-picker
+                v-model="query.createTime"
+                value-format="YYYY-MM-DD HH:mm:ss"
+                type="daterange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                :shortcuts="rangeShortcuts"
+                class="!w-220px"
+                :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+              />
+            </el-form-item>
+          </div>
+          <el-form-item>
+            <el-button type="primary" @click="handleQuery()">
+              <Icon icon="ep:search" class="mr-5px" /> 搜索
+            </el-button>
+            <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
+          </el-form-item>
+        </el-form>
+        <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
+          <div class="flex-1 relative">
+            <el-auto-resizer class="absolute">
+              <template #default="{ width, height }">
+                <el-table
+                  :data="list"
+                  v-loading="loading"
+                  stripe
+                  class="absolute"
+                  :max-height="height"
+                  show-overflow-tooltip
+                  :width="width"
+                  :cell-style="cellStyle"
+                  border
+                >
+                  <DailyTableColumn :columns="columns" />
+                  <el-table-column label="操作" width="120px" align="center" fixed="right">
+                    <template #default="{ row }">
+                      <el-button
+                        link
+                        type="success"
+                        @click="handleOpenForm(row.id, 'readonly')"
+                        v-hasPermi="['pms:iot-ry-daily-report:query']"
+                      >
+                        查看
+                      </el-button>
+                      <el-button
+                        v-show="row.status === 0"
+                        link
+                        type="primary"
+                        @click="handleOpenForm(row.id, 'edit')"
+                        v-hasPermi="['pms:iot-ry-daily-report:create']"
+                      >
+                        编辑
+                      </el-button>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </template>
+            </el-auto-resizer>
+          </div>
+          <div class="h-10 mt-4 flex items-center justify-end">
+            <el-pagination
+              size="default"
+              v-show="total > 0"
+              v-model:current-page="query.pageNo"
+              v-model:page-size="query.pageSize"
+              :background="true"
+              :page-sizes="[10, 20, 30, 50, 100]"
+              :total="total"
+              layout="total, sizes, prev, pager, next, jumper"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+            />
+          </div>
+        </div>
+      </div>
     </div>
-    <div class="grid grid-rows-[62px_1fr] h-full gap-4">
+    <Dialog title="编辑" v-model="dialogVisible">
       <el-form
+        ref="formRef"
+        label-position="top"
         size="default"
-        class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
+        :rules="rules"
+        :model="form"
+        v-loading="formLoading"
+        require-asterisk-position="right"
+        :disabled="formType === 'readonly'"
       >
-        <div class="flex items-center gap-8">
-          <el-form-item label="项目">
-            <el-input
-              v-model="query.contractName"
-              placeholder="请输入项目"
+        <div class="flex flex-col gap-3 text-sm">
+          <div
+            class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
+          >
+            <div class="flex flex-col gap-2.5">
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200"> 油量消耗:</span>
+                  当日油耗
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
+                >
+                  >15吨 红色预警
+                </span>
+              </div>
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
+                  进尺 + 其它生产 + 非生产 = 24H
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
+                >
+                  ≠24H 橙色预警
+                </span>
+              </div>
+            </div>
+          </div>
+          <div
+            v-if="form.opinion"
+            class="flex gap-3 rounded-md border border-yellow-200 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-900/10"
+          >
+            <Icon
+              icon="ep:warning-filled"
+              class="mt-0.5 shrink-0 text-base text-yellow-600 dark:text-yellow-500"
+            />
+            <div class="flex flex-col">
+              <h4 class="mb-1 font-bold text-yellow-800 dark:text-yellow-500"> 审核意见 </h4>
+              <p class="leading-relaxed text-gray-600 dark:text-gray-400">
+                {{ form.opinion }}
+              </p>
+            </div>
+          </div>
+        </div>
+        <div class="grid grid-cols-2 gap-4 mt-5">
+          <el-form-item label="施工队伍" prop="deptName">
+            <el-input v-model="form.deptName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="项目" prop="contractName">
+            <el-input v-model="form.contractName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="任务" prop="taskName">
+            <el-input v-model="form.taskName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="施工状态" prop="rigStatus">
+            <el-select v-model="form.rigStatus" placeholder="请选择施工状态">
+              <el-option
+                v-for="(dict, index) in getStrDictOptions(DICT_TYPE.PMS_PROJECT_TASK_RY_SCHEDULE)"
+                :key="index"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="设计井深(m)" prop="designWellDepth">
+            <el-input v-model="form.designWellDepth" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="当前井深(m)" prop="currentDepth">
+            <el-input-number
+              class="placeholder-"
+              :min="0"
+              v-model="form.currentDepth"
+              placeholder="请输入当前井深(m)"
+            />
+          </el-form-item>
+          <el-form-item label="当日用电量(kWh)" prop="dailyPowerUsage">
+            <el-input-number
+              :min="0"
+              v-model="form.dailyPowerUsage"
+              placeholder="请输入当日用电量(kWh)"
               clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
             />
           </el-form-item>
-          <el-form-item label="任务">
-            <el-input
-              v-model="query.taskName"
-              placeholder="请输入任务"
+          <el-form-item label="当日油耗(吨)" prop="dailyFuel">
+            <el-input-number
+              :min="0"
+              v-model="form.dailyFuel"
+              placeholder="请输入当日油耗(吨)"
               clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
+              :class="{ 'warning-input': (form.dailyFuel ?? 0) > 15 }"
             />
           </el-form-item>
-          <el-form-item label="创建时间">
-            <el-date-picker
-              v-model="query.createTime"
-              value-format="YYYY-MM-DD HH:mm:ss"
-              type="daterange"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              :shortcuts="rangeShortcuts"
-              class="!w-220px"
-              :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+          <el-form-item label="泥浆密度(g/cm³)" prop="mudDensity">
+            <el-input-number
+              :min="0"
+              v-model="form.mudDensity"
+              placeholder="请输入泥浆性能-密度(g/cm³)"
+              clearable
+            />
+          </el-form-item>
+          <el-form-item label="泥浆粘度(S)" prop="mudViscosity">
+            <el-input-number
+              :min="0"
+              v-model="form.mudViscosity"
+              placeholder="请输入泥浆性能-粘度(S)"
+              clearable
+            />
+          </el-form-item>
+          <el-form-item label="水平段长度(m)" prop="lateralLength">
+            <el-input-number
+              :min="0"
+              v-model="form.lateralLength"
+              placeholder="请输入水平段长度(m)"
+              clearable
+            />
+          </el-form-item>
+          <el-form-item label="井斜(°)" prop="wellInclination">
+            <el-input-number
+              :min="0"
+              v-model="form.wellInclination"
+              placeholder="请输入井斜(°)"
+              clearable
+            />
+          </el-form-item>
+          <el-form-item label="方位(°)" prop="azimuth">
+            <el-input-number
+              :min="0"
+              v-model="form.azimuth"
+              placeholder="请输入方位(°)"
+              clearable
+            />
+          </el-form-item>
+          <el-form-item label="设计井身结构" prop="designWellStruct">
+            <el-input
+              v-model="form.designWellStruct"
+              placeholder=""
+              type="textarea"
+              disabled
+              autosize
+            />
+          </el-form-item>
+          <el-form-item label="人员情况" prop="personnel">
+            <el-input
+              v-model="form.personnel"
+              placeholder="请输入人员情况"
+              type="textarea"
+              :max-length="1000"
+              autosize
             />
           </el-form-item>
         </div>
-        <el-form-item>
-          <el-button type="primary" @click="handleQuery()">
-            <Icon icon="ep:search" class="mr-5px" /> 搜索
-          </el-button>
-          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
-        </el-form-item>
-      </el-form>
-      <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
-        <div class="flex-1 relative">
-          <el-auto-resizer class="absolute">
-            <template #default="{ width, height }">
-              <el-table
-                :data="list"
-                v-loading="loading"
-                stripe
-                class="absolute"
-                :max-height="height"
-                show-overflow-tooltip
-                :width="width"
-                :cell-style="cellStyle"
-                border
-              >
-                <DailyTableColumn :columns="columns" />
-                <el-table-column label="操作" width="120px" align="center" fixed="right">
-                  <template #default="{ row }">
-                    <el-button
-                      link
-                      type="success"
-                      @click="handleOpenForm(row.id, 'readonly')"
-                      v-hasPermi="['pms:iot-ry-daily-report:query']"
-                    >
-                      查看
-                    </el-button>
-                    <el-button
-                      v-show="row.status === 0"
-                      link
-                      type="primary"
-                      @click="handleOpenForm(row.id, 'edit')"
-                      v-hasPermi="['pms:iot-ry-daily-report:create']"
-                    >
-                      编辑
-                    </el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
-            </template>
-          </el-auto-resizer>
-        </div>
-        <div class="h-10 mt-4 flex items-center justify-end">
-          <el-pagination
-            size="default"
-            v-show="total > 0"
-            v-model:current-page="query.pageNo"
-            v-model:page-size="query.pageSize"
-            :background="true"
-            :page-sizes="[10, 20, 30, 50, 100]"
-            :total="total"
-            layout="total, sizes, prev, pager, next, jumper"
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-          />
-        </div>
-      </div>
-    </div>
-  </div>
-  <Dialog title="编辑" v-model="dialogVisible">
-    <el-form
-      ref="formRef"
-      label-position="top"
-      size="default"
-      :rules="rules"
-      :model="form"
-      v-loading="formLoading"
-      require-asterisk-position="right"
-      :disabled="formType === 'readonly'"
-    >
-      <div class="flex flex-col gap-3 text-sm">
-        <div
-          class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
-        >
-          <div class="flex flex-col gap-2.5">
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200"> 油量消耗:</span>
-                当日油耗
-              </div>
-              <span
-                class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
-              >
-                >15吨 红色预警
-              </span>
-            </div>
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
-                进尺 + 其它生产 + 非生产 = 24H
-              </div>
-              <span
-                class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
-              >
-                ≠24H 橙色预警
-              </span>
-            </div>
-          </div>
+        <el-divider content-position="left">生产时间</el-divider>
+        <div class="grid grid-cols-2 gap-4 mt-5">
+          <el-form-item label="进尺工作时间(H)" prop="drillingWorkingTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.drillingWorkingTime"
+              placeholder="进尺工作时间(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="其它生产时间(H)" prop="otherProductionTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.otherProductionTime"
+              placeholder="其它生产时间(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
         </div>
-        <div
-          v-if="form.opinion"
-          class="flex gap-3 rounded-md border border-yellow-200 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-900/10"
-        >
-          <Icon
-            icon="ep:warning-filled"
-            class="mt-0.5 shrink-0 text-base text-yellow-600 dark:text-yellow-500"
-          />
-          <div class="flex flex-col">
-            <h4 class="mb-1 font-bold text-yellow-800 dark:text-yellow-500"> 审核意见 </h4>
-            <p class="leading-relaxed text-gray-600 dark:text-gray-400">
-              {{ form.opinion }}
-            </p>
-          </div>
+        <el-divider content-position="left">非生产时间</el-divider>
+        <div class="grid grid-cols-4 gap-4 mt-5">
+          <el-form-item label="事故(H)" prop="accidentTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.accidentTime"
+              placeholder="请输入事故(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="修理(H)" prop="repairTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.repairTime"
+              placeholder="请输入修理(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="自停(H)" prop="selfStopTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.selfStopTime"
+              placeholder="请输入自停(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="复杂(H)" prop="complexityTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.complexityTime"
+              placeholder="请输入复杂(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="搬迁(H)" prop="relocationTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.relocationTime"
+              placeholder="请输入搬迁(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="整改(H)" prop="rectificationTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.rectificationTime"
+              placeholder="请输入整改(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="等停(H)" prop="waitingStopTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.waitingStopTime"
+              placeholder="请输入等停(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
+          <el-form-item label="冬休(H)" prop="winterBreakTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.winterBreakTime"
+              placeholder="请输入冬休(H)"
+              :class="{ 'orange-input': sumTimes() !== 24 }"
+            />
+          </el-form-item>
         </div>
-      </div>
-      <div class="grid grid-cols-2 gap-4 mt-5">
-        <el-form-item label="施工队伍" prop="deptName">
-          <el-input v-model="form.deptName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="项目" prop="contractName">
-          <el-input v-model="form.contractName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="任务" prop="taskName">
-          <el-input v-model="form.taskName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="施工状态" prop="rigStatus">
-          <el-select v-model="form.rigStatus" placeholder="请选择施工状态">
-            <el-option
-              v-for="(dict, index) in getStrDictOptions(DICT_TYPE.PMS_PROJECT_TASK_RY_SCHEDULE)"
-              :key="index"
-              :label="dict.label"
-              :value="dict.value"
+        <div class="grid grid-cols-1 gap-4 mt-5">
+          <el-form-item label="生产动态" prop="productionStatus">
+            <el-input
+              v-model="form.productionStatus"
+              placeholder="请输入生产动态"
+              type="textarea"
+              autosize
+              :max-length="1000"
             />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="设计井深(m)" prop="designWellDepth">
-          <el-input v-model="form.designWellDepth" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="当前井深(m)" prop="currentDepth">
-          <el-input-number
-            class="placeholder-"
-            :min="0"
-            v-model="form.currentDepth"
-            placeholder="请输入当前井深(m)"
-          />
-        </el-form-item>
-        <el-form-item label="当日用电量(kWh)" prop="dailyPowerUsage">
-          <el-input-number
-            :min="0"
-            v-model="form.dailyPowerUsage"
-            placeholder="请输入当日用电量(kWh)"
-            clearable
-          />
-        </el-form-item>
-        <el-form-item label="当日油耗(吨)" prop="dailyFuel">
-          <el-input-number
-            :min="0"
-            v-model="form.dailyFuel"
-            placeholder="请输入当日油耗(吨)"
-            clearable
-            :class="{ 'warning-input': (form.dailyFuel ?? 0) > 15 }"
-          />
-        </el-form-item>
-        <el-form-item label="泥浆密度(g/cm³)" prop="mudDensity">
-          <el-input-number
-            :min="0"
-            v-model="form.mudDensity"
-            placeholder="请输入泥浆性能-密度(g/cm³)"
-            clearable
-          />
-        </el-form-item>
-        <el-form-item label="泥浆粘度(S)" prop="mudViscosity">
-          <el-input-number
-            :min="0"
-            v-model="form.mudViscosity"
-            placeholder="请输入泥浆性能-粘度(S)"
-            clearable
-          />
-        </el-form-item>
-        <el-form-item label="水平段长度(m)" prop="lateralLength">
-          <el-input-number
-            :min="0"
-            v-model="form.lateralLength"
-            placeholder="请输入水平段长度(m)"
-            clearable
-          />
-        </el-form-item>
-        <el-form-item label="井斜(°)" prop="wellInclination">
-          <el-input-number
-            :min="0"
-            v-model="form.wellInclination"
-            placeholder="请输入井斜(°)"
-            clearable
-          />
-        </el-form-item>
-        <el-form-item label="方位(°)" prop="azimuth">
-          <el-input-number :min="0" v-model="form.azimuth" placeholder="请输入方位(°)" clearable />
-        </el-form-item>
-        <el-form-item label="设计井身结构" prop="designWellStruct">
-          <el-input
-            v-model="form.designWellStruct"
-            placeholder=""
-            type="textarea"
-            disabled
-            autosize
-          />
-        </el-form-item>
-        <el-form-item label="人员情况" prop="personnel">
-          <el-input
-            v-model="form.personnel"
-            placeholder="请输入人员情况"
-            type="textarea"
-            :max-length="1000"
-            autosize
-          />
-        </el-form-item>
-      </div>
-      <el-divider content-position="left">生产时间</el-divider>
-      <div class="grid grid-cols-2 gap-4 mt-5">
-        <el-form-item label="进尺工作时间(H)" prop="drillingWorkingTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.drillingWorkingTime"
-            placeholder="进尺工作时间(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="其它生产时间(H)" prop="otherProductionTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.otherProductionTime"
-            placeholder="其它生产时间(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-      </div>
-      <el-divider content-position="left">非生产时间</el-divider>
-      <div class="grid grid-cols-4 gap-4 mt-5">
-        <el-form-item label="事故(H)" prop="accidentTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.accidentTime"
-            placeholder="请输入事故(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="修理(H)" prop="repairTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.repairTime"
-            placeholder="请输入修理(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="自停(H)" prop="selfStopTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.selfStopTime"
-            placeholder="请输入自停(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="复杂(H)" prop="complexityTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.complexityTime"
-            placeholder="请输入复杂(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="搬迁(H)" prop="relocationTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.relocationTime"
-            placeholder="请输入搬迁(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="整改(H)" prop="rectificationTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.rectificationTime"
-            placeholder="请输入整改(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="等停(H)" prop="waitingStopTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.waitingStopTime"
-            placeholder="请输入等停(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-        <el-form-item label="冬休(H)" prop="winterBreakTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.winterBreakTime"
-            placeholder="请输入冬休(H)"
-            :class="{ 'orange-input': sumTimes() !== 24 }"
-          />
-        </el-form-item>
-      </div>
-      <div class="grid grid-cols-1 gap-4 mt-5">
-        <el-form-item label="生产动态" prop="productionStatus">
-          <el-input
-            v-model="form.productionStatus"
-            placeholder="请输入生产动态"
-            type="textarea"
-            autosize
-            :max-length="1000"
-          />
-        </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input
-            v-model="form.remark"
-            placeholder="请输入备注"
-            :max-length="1000"
-            type="textarea"
-            autosize
-          />
-        </el-form-item>
-      </div>
-    </el-form>
-    <template #footer>
-      <el-button size="default" @click="submitForm" type="primary" :disabled="formLoading">
-        确 定
-      </el-button>
-      <el-button size="default" @click="dialogVisible = false">取 消</el-button>
-    </template>
-  </Dialog>
+          </el-form-item>
+          <el-form-item label="备注" prop="remark">
+            <el-input
+              v-model="form.remark"
+              placeholder="请输入备注"
+              :max-length="1000"
+              type="textarea"
+              autosize
+            />
+          </el-form-item>
+        </div>
+      </el-form>
+      <template #footer>
+        <el-button size="default" @click="submitForm" type="primary" :disabled="formLoading">
+          确 定
+        </el-button>
+        <el-button size="default" @click="dialogVisible = false">取 消</el-button>
+      </template>
+    </Dialog>
+  </div>
 </template>
 
 <style scoped>

+ 316 - 312
src/views/pms/iotrydailyreport/xapproval.vue

@@ -601,153 +601,156 @@ const submitForm = async (auditStatus: 20 | 30) => {
 </script>
 
 <template>
-  <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
-    <div class="p-4 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
-      <DeptTreeSelect :top-id="158" :deptId="deptId" v-model="query.deptId" />
-    </div>
-    <div class="grid grid-rows-[62px_1fr] h-full gap-4">
-      <el-form
-        size="default"
-        class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
-      >
-        <div class="flex items-center gap-8">
-          <el-form-item label="项目">
-            <el-input
-              v-model="query.contractName"
-              placeholder="请输入项目"
-              clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
-            />
-          </el-form-item>
-          <el-form-item label="任务">
-            <el-input
-              v-model="query.taskName"
-              placeholder="请输入任务"
-              clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
-            />
+  <div
+    class="h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-footer-height))]"
+  >
+    <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
+      <div class="p-4 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
+        <DeptTreeSelect :top-id="158" :deptId="deptId" v-model="query.deptId" />
+      </div>
+      <div class="grid grid-rows-[62px_1fr] h-full gap-4">
+        <el-form
+          size="default"
+          class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
+        >
+          <div class="flex items-center gap-8">
+            <el-form-item label="项目">
+              <el-input
+                v-model="query.contractName"
+                placeholder="请输入项目"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="任务">
+              <el-input
+                v-model="query.taskName"
+                placeholder="请输入任务"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="创建时间">
+              <el-date-picker
+                v-model="query.createTime"
+                value-format="YYYY-MM-DD HH:mm:ss"
+                type="daterange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                :shortcuts="rangeShortcuts"
+                class="!w-220px"
+                :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+              />
+            </el-form-item>
+          </div>
+          <el-form-item>
+            <el-button type="primary" @click="handleQuery()">
+              <Icon icon="ep:search" class="mr-5px" /> 搜索
+            </el-button>
+            <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
           </el-form-item>
-          <el-form-item label="创建时间">
-            <el-date-picker
-              v-model="query.createTime"
-              value-format="YYYY-MM-DD HH:mm:ss"
-              type="daterange"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              :shortcuts="rangeShortcuts"
-              class="!w-220px"
-              :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+        </el-form>
+        <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
+          <div class="flex-1 relative">
+            <el-auto-resizer class="absolute">
+              <template #default="{ width, height }">
+                <el-table
+                  :data="list"
+                  v-loading="loading"
+                  stripe
+                  class="absolute"
+                  :max-height="height"
+                  show-overflow-tooltip
+                  :width="width"
+                  :cell-style="cellStyle"
+                  border
+                >
+                  <DailyTableColumn :columns="columns" />
+                  <el-table-column label="操作" width="120px" align="center" fixed="right">
+                    <template #default="{ row }">
+                      <el-button
+                        link
+                        type="success"
+                        @click="handleOpenForm(row.id, 'readonly')"
+                        v-hasPermi="['pms:iot-ry-daily-report:query']"
+                      >
+                        查看
+                      </el-button>
+                      <el-button
+                        v-show="row.auditStatus === 10"
+                        link
+                        type="primary"
+                        @click="handleOpenForm(row.id, 'approval')"
+                        v-hasPermi="['pms:iot-ry-daily-report:update']"
+                      >
+                        审批
+                      </el-button>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </template>
+            </el-auto-resizer>
+          </div>
+          <div class="h-10 mt-4 flex items-center justify-end">
+            <el-pagination
+              size="default"
+              v-show="total > 0"
+              v-model:current-page="query.pageNo"
+              v-model:page-size="query.pageSize"
+              :background="true"
+              :page-sizes="[10, 20, 30, 50, 100]"
+              :total="total"
+              layout="total, sizes, prev, pager, next, jumper"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
             />
-          </el-form-item>
-        </div>
-        <el-form-item>
-          <el-button type="primary" @click="handleQuery()">
-            <Icon icon="ep:search" class="mr-5px" /> 搜索
-          </el-button>
-          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
-        </el-form-item>
-      </el-form>
-      <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
-        <div class="flex-1 relative">
-          <el-auto-resizer class="absolute">
-            <template #default="{ width, height }">
-              <el-table
-                :data="list"
-                v-loading="loading"
-                stripe
-                class="absolute"
-                :max-height="height"
-                show-overflow-tooltip
-                :width="width"
-                :cell-style="cellStyle"
-                border
-              >
-                <DailyTableColumn :columns="columns" />
-                <el-table-column label="操作" width="120px" align="center" fixed="right">
-                  <template #default="{ row }">
-                    <el-button
-                      link
-                      type="success"
-                      @click="handleOpenForm(row.id, 'readonly')"
-                      v-hasPermi="['pms:iot-ry-daily-report:query']"
-                    >
-                      查看
-                    </el-button>
-                    <el-button
-                      v-show="row.auditStatus === 10"
-                      link
-                      type="primary"
-                      @click="handleOpenForm(row.id, 'approval')"
-                      v-hasPermi="['pms:iot-ry-daily-report:update']"
-                    >
-                      审批
-                    </el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
-            </template>
-          </el-auto-resizer>
-        </div>
-        <div class="h-10 mt-4 flex items-center justify-end">
-          <el-pagination
-            size="default"
-            v-show="total > 0"
-            v-model:current-page="query.pageNo"
-            v-model:page-size="query.pageSize"
-            :background="true"
-            :page-sizes="[10, 20, 30, 50, 100]"
-            :total="total"
-            layout="total, sizes, prev, pager, next, jumper"
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-          />
+          </div>
         </div>
       </div>
     </div>
-  </div>
-  <Dialog title="编辑" v-model="dialogVisible">
-    <el-form
-      ref="formRef"
-      label-position="top"
-      size="default"
-      :rules="rules"
-      :model="form"
-      v-loading="formLoading"
-      require-asterisk-position="right"
-      :disabled="formType === 'readonly'"
-    >
-      <div class="flex flex-col gap-3 text-sm">
-        <div
-          class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
-        >
-          <div class="flex flex-col gap-2.5">
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200">运行时效:</span>
-                生产时间/额定生产时间
+    <Dialog title="编辑" v-model="dialogVisible">
+      <el-form
+        ref="formRef"
+        label-position="top"
+        size="default"
+        :rules="rules"
+        :model="form"
+        v-loading="formLoading"
+        require-asterisk-position="right"
+        :disabled="formType === 'readonly'"
+      >
+        <div class="flex flex-col gap-3 text-sm">
+          <div
+            class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
+          >
+            <div class="flex flex-col gap-2.5">
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200">运行时效:</span>
+                  生产时间/额定生产时间
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
+                >
+                  >100% 红色预警
+                </span>
               </div>
-              <span
-                class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
-              >
-                >100% 红色预警
-              </span>
-            </div>
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
-                生产 + 非生产 = 额定生产
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
+                  生产 + 非生产 = 额定生产
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
+                >
+                  ≠额定生产 橙色预警
+                </span>
               </div>
-              <span
-                class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
-              >
-                ≠额定生产 橙色预警
-              </span>
             </div>
           </div>
-        </div>
-        <!-- <div
+          <!-- <div
           v-if="form.opinion"
           class="flex gap-3 rounded-md border border-yellow-200 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-900/10"
         >
@@ -762,193 +765,194 @@ const submitForm = async (auditStatus: 20 | 30) => {
             </p>
           </div>
         </div> -->
-      </div>
-      <div class="grid grid-cols-2 gap-4 mt-5">
-        <el-form-item label="施工队伍" prop="deptName">
-          <el-input v-model="form.deptName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="项目" prop="contractName">
-          <el-input v-model="form.contractName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="任务" prop="taskName">
-          <el-input v-model="form.taskName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item :label="t('project.status')" prop="repairStatus">
-          <el-select v-model="form.repairStatus" placeholder="请选择" clearable disabled>
-            <el-option
-              v-for="(dict, index) in getStrDictOptions(
-                DICT_TYPE.PMS_PROJECT_TASK_RY_REPAIR_SCHEDULE
-              )"
-              :key="index"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="t('project.technology')" prop="technique">
-          <el-select v-model="form.technique" placeholder="请选择" disabled>
-            <el-option
-              v-for="(dict, index) in getStrDictOptions(DICT_TYPE.PMS_PROJECT_RY_TECHNOLOGY)"
-              :key="index"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="井别" prop="wellCategory">
-          <el-input v-model="form.wellCategory" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="设计井深(m)" prop="designWellDepth">
-          <el-input v-model="form.designWellDepth" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="井控级别" prop="wellControlLevel">
-          <el-input v-model="form.wellControlLevel" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="套生段产管尺寸(mm)" prop="casingPipeSize">
-          <el-input v-model="form.casingPipeSize" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item :label="t('project.currentOperation')" prop="currentOperation">
-          <el-input
-            v-model="form.currentOperation"
-            placeholder="请输入目前工序"
-            type="textarea"
-            autosize
-            :maxlength="1000"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item :label="t('project.nextPlan')" prop="nextPlan">
-          <el-input
-            v-model="form.nextPlan"
-            placeholder="请输入下步工序"
-            type="textarea"
-            autosize
-            :maxlength="1000"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="运行时效" prop="transitTime">
-          <el-input
-            :model-value="transitTime.value"
-            placeholder="运行时效"
-            disabled
-            :class="{ 'warning-input': transitTime.original >= 1.0 }"
-            id="transitTimeInput"
-          />
-        </el-form-item>
-        <el-form-item label="额定生产时间(H)" prop="ratedProductionTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.ratedProductionTime"
-            placeholder="请输入额定生产时间(H)"
-            :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="生产时间(H)" prop="productionTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.productionTime"
-            placeholder="请输入生产时间(H)"
-            :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="非生产时间(H)" prop="nonProductionTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.nonProductionTime"
-            placeholder="非生产时间(H)"
-            :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="非生产时间原因" prop="nptReason">
-          <el-select v-model="form.ryNptReason" placeholder="请选择" clearable disabled>
-            <el-option
-              v-for="(dict, index) of getStrDictOptions(DICT_TYPE.PMS_PROJECT_RY_NPT_REASON)"
-              :key="index"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="全员数量" prop="totalStaffNum">
-          <el-input-number
-            :min="0"
-            v-model="form.totalStaffNum"
-            placeholder="请输入全员数量"
-            disabled
-          />
-        </el-form-item>
-        <el-form-item label="在岗人数" prop="onDutyStaffNum">
-          <el-input-number :min="0" v-model="onDutyStaffNum" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="休假人员数量" prop="leaveStaffNum">
-          <el-input-number
-            :min="0"
-            v-model="form.leaveStaffNum"
-            placeholder="请输入休假人员数量"
-            disabled
-          />
-        </el-form-item>
-        <div class="grid grid-cols-1 gap-4 mt-5"
-          ><el-form-item label="生产动态" prop="productionStatus">
+        </div>
+        <div class="grid grid-cols-2 gap-4 mt-5">
+          <el-form-item label="施工队伍" prop="deptName">
+            <el-input v-model="form.deptName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="项目" prop="contractName">
+            <el-input v-model="form.contractName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="任务" prop="taskName">
+            <el-input v-model="form.taskName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item :label="t('project.status')" prop="repairStatus">
+            <el-select v-model="form.repairStatus" placeholder="请选择" clearable disabled>
+              <el-option
+                v-for="(dict, index) in getStrDictOptions(
+                  DICT_TYPE.PMS_PROJECT_TASK_RY_REPAIR_SCHEDULE
+                )"
+                :key="index"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item :label="t('project.technology')" prop="technique">
+            <el-select v-model="form.technique" placeholder="请选择" disabled>
+              <el-option
+                v-for="(dict, index) in getStrDictOptions(DICT_TYPE.PMS_PROJECT_RY_TECHNOLOGY)"
+                :key="index"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="井别" prop="wellCategory">
+            <el-input v-model="form.wellCategory" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="设计井深(m)" prop="designWellDepth">
+            <el-input v-model="form.designWellDepth" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="井控级别" prop="wellControlLevel">
+            <el-input v-model="form.wellControlLevel" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="套生段产管尺寸(mm)" prop="casingPipeSize">
+            <el-input v-model="form.casingPipeSize" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item :label="t('project.currentOperation')" prop="currentOperation">
             <el-input
-              v-model="form.productionStatus"
-              placeholder="请输入生产动态"
+              v-model="form.currentOperation"
+              placeholder="请输入目前工序"
               type="textarea"
               autosize
-              :max-length="1000"
+              :maxlength="1000"
               disabled
             />
           </el-form-item>
-          <el-form-item label="备注" prop="remark">
+          <el-form-item :label="t('project.nextPlan')" prop="nextPlan">
             <el-input
-              v-model="form.remark"
-              placeholder="请输入备注"
-              :max-length="1000"
+              v-model="form.nextPlan"
+              placeholder="请输入下步工序"
               type="textarea"
               autosize
+              :maxlength="1000"
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="运行时效" prop="transitTime">
+            <el-input
+              :model-value="transitTime.value"
+              placeholder="运行时效"
+              disabled
+              :class="{ 'warning-input': transitTime.original >= 1.0 }"
+              id="transitTimeInput"
+            />
+          </el-form-item>
+          <el-form-item label="额定生产时间(H)" prop="ratedProductionTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.ratedProductionTime"
+              placeholder="请输入额定生产时间(H)"
+              :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="生产时间(H)" prop="productionTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.productionTime"
+              placeholder="请输入生产时间(H)"
+              :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="非生产时间(H)" prop="nonProductionTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.nonProductionTime"
+              placeholder="非生产时间(H)"
+              :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
+              disabled
+            />
+          </el-form-item>
+          <el-form-item label="非生产时间原因" prop="nptReason">
+            <el-select v-model="form.ryNptReason" placeholder="请选择" clearable disabled>
+              <el-option
+                v-for="(dict, index) of getStrDictOptions(DICT_TYPE.PMS_PROJECT_RY_NPT_REASON)"
+                :key="index"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="全员数量" prop="totalStaffNum">
+            <el-input-number
+              :min="0"
+              v-model="form.totalStaffNum"
+              placeholder="请输入全员数量"
               disabled
             />
           </el-form-item>
+          <el-form-item label="在岗人数" prop="onDutyStaffNum">
+            <el-input-number :min="0" v-model="onDutyStaffNum" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="休假人员数量" prop="leaveStaffNum">
+            <el-input-number
+              :min="0"
+              v-model="form.leaveStaffNum"
+              placeholder="请输入休假人员数量"
+              disabled
+            />
+          </el-form-item>
+          <div class="grid grid-cols-1 gap-4 mt-5"
+            ><el-form-item label="生产动态" prop="productionStatus">
+              <el-input
+                v-model="form.productionStatus"
+                placeholder="请输入生产动态"
+                type="textarea"
+                autosize
+                :max-length="1000"
+                disabled
+              />
+            </el-form-item>
+            <el-form-item label="备注" prop="remark">
+              <el-input
+                v-model="form.remark"
+                placeholder="请输入备注"
+                :max-length="1000"
+                type="textarea"
+                autosize
+                disabled
+              />
+            </el-form-item>
+          </div>
         </div>
-      </div>
-      <el-form-item class="mt-4" label="审批意见" prop="opinion">
-        <el-input
-          v-model="form.opinion"
-          placeholder="请输入审批意见"
-          :max-length="1000"
-          type="textarea"
-          autosize
-          :disabled="formType === 'readonly'"
-        />
-      </el-form-item>
-    </el-form>
-    <template #footer>
-      <el-button
-        size="default"
-        @click="submitForm(20)"
-        type="primary"
-        :disabled="formLoading || formType === 'readonly'"
-      >
-        审批通过
-      </el-button>
-      <el-button
-        size="default"
-        @click="submitForm(30)"
-        type="danger"
-        :disabled="formLoading || formType === 'readonly'"
-      >
-        审批拒绝
-      </el-button>
-      <el-button size="default" @click="dialogVisible = false">取 消</el-button>
-    </template>
-  </Dialog>
+        <el-form-item class="mt-4" label="审批意见" prop="opinion">
+          <el-input
+            v-model="form.opinion"
+            placeholder="请输入审批意见"
+            :max-length="1000"
+            type="textarea"
+            autosize
+            :disabled="formType === 'readonly'"
+          />
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <el-button
+          size="default"
+          @click="submitForm(20)"
+          type="primary"
+          :disabled="formLoading || formType === 'readonly'"
+        >
+          审批通过
+        </el-button>
+        <el-button
+          size="default"
+          @click="submitForm(30)"
+          type="danger"
+          :disabled="formLoading || formType === 'readonly'"
+        >
+          审批拒绝
+        </el-button>
+        <el-button size="default" @click="dialogVisible = false">取 消</el-button>
+      </template>
+    </Dialog></div
+  >
 </template>
 
 <style scoped>

+ 297 - 289
src/views/pms/iotrydailyreport/xfill.vue

@@ -611,201 +611,204 @@ const submitForm = async () => {
 </script>
 
 <template>
-  <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
-    <div class="p-4 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
-      <DeptTreeSelect :top-id="158" :deptId="deptId" v-model="query.deptId" />
-    </div>
-    <div class="grid grid-rows-[62px_1fr] h-full gap-4">
-      <el-form
-        size="default"
-        class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
-      >
-        <div class="flex items-center gap-8">
-          <el-form-item label="项目">
-            <el-input
-              v-model="query.contractName"
-              placeholder="请输入项目"
-              clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
-            />
-          </el-form-item>
-          <el-form-item label="任务">
-            <el-input
-              v-model="query.taskName"
-              placeholder="请输入任务"
-              clearable
-              @keyup.enter="handleQuery()"
-              class="!w-240px"
-            />
+  <div
+    class="h-[calc(100vh-var(--top-tool-height)-var(--tags-view-height)-var(--app-footer-height))]"
+  >
+    <div class="grid grid-cols-[15%_1fr] gap-4 h-full">
+      <div class="p-4 bg-white dark:bg-[#1d1e1f] shadow rounded-lg h-full">
+        <DeptTreeSelect :top-id="158" :deptId="deptId" v-model="query.deptId" />
+      </div>
+      <div class="grid grid-rows-[62px_1fr] h-full gap-4">
+        <el-form
+          size="default"
+          class="bg-white dark:bg-[#1d1e1f] rounded-lg shadow px-8 gap-8 flex items-center justify-between"
+        >
+          <div class="flex items-center gap-8">
+            <el-form-item label="项目">
+              <el-input
+                v-model="query.contractName"
+                placeholder="请输入项目"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="任务">
+              <el-input
+                v-model="query.taskName"
+                placeholder="请输入任务"
+                clearable
+                @keyup.enter="handleQuery()"
+                class="!w-240px"
+              />
+            </el-form-item>
+            <el-form-item label="创建时间">
+              <el-date-picker
+                v-model="query.createTime"
+                value-format="YYYY-MM-DD HH:mm:ss"
+                type="daterange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                :shortcuts="rangeShortcuts"
+                class="!w-220px"
+                :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+              />
+            </el-form-item>
+          </div>
+          <el-form-item>
+            <el-button type="primary" @click="handleQuery()">
+              <Icon icon="ep:search" class="mr-5px" /> 搜索
+            </el-button>
+            <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
           </el-form-item>
-          <el-form-item label="创建时间">
-            <el-date-picker
-              v-model="query.createTime"
-              value-format="YYYY-MM-DD HH:mm:ss"
-              type="daterange"
-              start-placeholder="开始日期"
-              end-placeholder="结束日期"
-              :shortcuts="rangeShortcuts"
-              class="!w-220px"
-              :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
+        </el-form>
+        <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
+          <div class="flex-1 relative">
+            <el-auto-resizer class="absolute">
+              <template #default="{ width, height }">
+                <el-table
+                  :data="list"
+                  v-loading="loading"
+                  stripe
+                  class="absolute"
+                  :max-height="height"
+                  show-overflow-tooltip
+                  :width="width"
+                  :cell-style="cellStyle"
+                  border
+                >
+                  <DailyTableColumn :columns="columns" />
+                  <el-table-column label="操作" width="120px" align="center" fixed="right">
+                    <template #default="{ row }">
+                      <el-button
+                        link
+                        type="success"
+                        @click="handleOpenForm(row.id, 'readonly')"
+                        v-hasPermi="['pms:iot-ry-daily-report:query']"
+                      >
+                        查看
+                      </el-button>
+                      <el-button
+                        v-show="row.status === 0"
+                        link
+                        type="primary"
+                        @click="handleOpenForm(row.id, 'edit')"
+                        v-hasPermi="['pms:iot-ry-daily-report:create']"
+                      >
+                        编辑
+                      </el-button>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </template>
+            </el-auto-resizer>
+          </div>
+          <div class="h-10 mt-4 flex items-center justify-end">
+            <el-pagination
+              size="default"
+              v-show="total > 0"
+              v-model:current-page="query.pageNo"
+              v-model:page-size="query.pageSize"
+              :background="true"
+              :page-sizes="[10, 20, 30, 50, 100]"
+              :total="total"
+              layout="total, sizes, prev, pager, next, jumper"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
             />
-          </el-form-item>
-        </div>
-        <el-form-item>
-          <el-button type="primary" @click="handleQuery()">
-            <Icon icon="ep:search" class="mr-5px" /> 搜索
-          </el-button>
-          <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" />重置</el-button>
-        </el-form-item>
-      </el-form>
-      <div class="bg-white dark:bg-[#1d1e1f] shadow rounded-lg p-4 flex flex-col">
-        <div class="flex-1 relative">
-          <el-auto-resizer class="absolute">
-            <template #default="{ width, height }">
-              <el-table
-                :data="list"
-                v-loading="loading"
-                stripe
-                class="absolute"
-                :max-height="height"
-                show-overflow-tooltip
-                :width="width"
-                :cell-style="cellStyle"
-                border
-              >
-                <DailyTableColumn :columns="columns" />
-                <el-table-column label="操作" width="120px" align="center" fixed="right">
-                  <template #default="{ row }">
-                    <el-button
-                      link
-                      type="success"
-                      @click="handleOpenForm(row.id, 'readonly')"
-                      v-hasPermi="['pms:iot-ry-daily-report:query']"
-                    >
-                      查看
-                    </el-button>
-                    <el-button
-                      v-show="row.status === 0"
-                      link
-                      type="primary"
-                      @click="handleOpenForm(row.id, 'edit')"
-                      v-hasPermi="['pms:iot-ry-daily-report:create']"
-                    >
-                      编辑
-                    </el-button>
-                  </template>
-                </el-table-column>
-              </el-table>
-            </template>
-          </el-auto-resizer>
-        </div>
-        <div class="h-10 mt-4 flex items-center justify-end">
-          <el-pagination
-            size="default"
-            v-show="total > 0"
-            v-model:current-page="query.pageNo"
-            v-model:page-size="query.pageSize"
-            :background="true"
-            :page-sizes="[10, 20, 30, 50, 100]"
-            :total="total"
-            layout="total, sizes, prev, pager, next, jumper"
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-          />
+          </div>
         </div>
       </div>
     </div>
-  </div>
-  <Dialog title="编辑" v-model="dialogVisible">
-    <el-form
-      ref="formRef"
-      label-position="top"
-      size="default"
-      :rules="rules"
-      :model="form"
-      v-loading="formLoading"
-      require-asterisk-position="right"
-      :disabled="formType === 'readonly'"
-    >
-      <div class="flex flex-col gap-3 text-sm">
-        <div
-          class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
-        >
-          <div class="flex flex-col gap-2.5">
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200">运行时效:</span>
-                生产时间/额定生产时间
+    <Dialog title="编辑" v-model="dialogVisible">
+      <el-form
+        ref="formRef"
+        label-position="top"
+        size="default"
+        :rules="rules"
+        :model="form"
+        v-loading="formLoading"
+        require-asterisk-position="right"
+        :disabled="formType === 'readonly'"
+      >
+        <div class="flex flex-col gap-3 text-sm">
+          <div
+            class="rounded-md border border-blue-100 bg-blue-50/80 p-3 dark:border-blue-900/30 dark:bg-blue-900/10"
+          >
+            <div class="flex flex-col gap-2.5">
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200">运行时效:</span>
+                  生产时间/额定生产时间
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
+                >
+                  >100% 红色预警
+                </span>
               </div>
-              <span
-                class="inline-flex items-center rounded border border-red-200 bg-red-100 px-2 py-0.5 text-xs font-medium text-red-600 dark:bg-red-900/20 dark:border-red-800 dark:text-red-400"
-              >
-                >100% 红色预警
-              </span>
-            </div>
-            <div class="flex items-center justify-between">
-              <div class="text-gray-600 dark:text-gray-400">
-                <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
-                生产 + 非生产 = 额定生产
+              <div class="flex items-center justify-between">
+                <div class="text-gray-600 dark:text-gray-400">
+                  <span class="font-bold text-gray-800 dark:text-gray-200">时间平衡:</span>
+                  生产 + 非生产 = 额定生产
+                </div>
+                <span
+                  class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
+                >
+                  ≠额定生产 橙色预警
+                </span>
               </div>
-              <span
-                class="inline-flex items-center rounded border border-orange-200 bg-orange-100 px-2 py-0.5 text-xs font-medium text-orange-600 dark:bg-orange-900/20 dark:border-orange-800 dark:text-orange-400"
-              >
-                ≠额定生产 橙色预警
-              </span>
             </div>
           </div>
-        </div>
-        <div
-          v-if="form.opinion"
-          class="flex gap-3 rounded-md border border-yellow-200 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-900/10"
-        >
-          <Icon
-            icon="ep:warning-filled"
-            class="mt-0.5 shrink-0 text-base text-yellow-600 dark:text-yellow-500"
-          />
-          <div class="flex flex-col">
-            <h4 class="mb-1 font-bold text-yellow-800 dark:text-yellow-500"> 审核意见 </h4>
-            <p class="leading-relaxed text-gray-600 dark:text-gray-400">
-              {{ form.opinion }}
-            </p>
+          <div
+            v-if="form.opinion"
+            class="flex gap-3 rounded-md border border-yellow-200 bg-yellow-50 p-3 dark:border-yellow-800 dark:bg-yellow-900/10"
+          >
+            <Icon
+              icon="ep:warning-filled"
+              class="mt-0.5 shrink-0 text-base text-yellow-600 dark:text-yellow-500"
+            />
+            <div class="flex flex-col">
+              <h4 class="mb-1 font-bold text-yellow-800 dark:text-yellow-500"> 审核意见 </h4>
+              <p class="leading-relaxed text-gray-600 dark:text-gray-400">
+                {{ form.opinion }}
+              </p>
+            </div>
           </div>
         </div>
-      </div>
-      <div class="grid grid-cols-2 gap-4 mt-5">
-        <el-form-item label="施工队伍" prop="deptName">
-          <el-input v-model="form.deptName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="项目" prop="contractName">
-          <el-input v-model="form.contractName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="任务" prop="taskName">
-          <el-input v-model="form.taskName" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item :label="t('project.status')" prop="repairStatus">
-          <el-select v-model="form.repairStatus" placeholder="请选择" clearable>
-            <el-option
-              v-for="(dict, index) in getStrDictOptions(
-                DICT_TYPE.PMS_PROJECT_TASK_RY_REPAIR_SCHEDULE
-              )"
-              :key="index"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item :label="t('project.technology')" prop="technique">
-          <el-select v-model="form.technique" placeholder="请选择" disabled>
-            <el-option
-              v-for="(dict, index) in getStrDictOptions(DICT_TYPE.PMS_PROJECT_RY_TECHNOLOGY)"
-              :key="index"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <!-- <el-form-item label="运行时效" prop="transitTime">
+        <div class="grid grid-cols-2 gap-4 mt-5">
+          <el-form-item label="施工队伍" prop="deptName">
+            <el-input v-model="form.deptName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="项目" prop="contractName">
+            <el-input v-model="form.contractName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="任务" prop="taskName">
+            <el-input v-model="form.taskName" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item :label="t('project.status')" prop="repairStatus">
+            <el-select v-model="form.repairStatus" placeholder="请选择" clearable>
+              <el-option
+                v-for="(dict, index) in getStrDictOptions(
+                  DICT_TYPE.PMS_PROJECT_TASK_RY_REPAIR_SCHEDULE
+                )"
+                :key="index"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item :label="t('project.technology')" prop="technique">
+            <el-select v-model="form.technique" placeholder="请选择" disabled>
+              <el-option
+                v-for="(dict, index) in getStrDictOptions(DICT_TYPE.PMS_PROJECT_RY_TECHNOLOGY)"
+                :key="index"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <!-- <el-form-item label="运行时效" prop="transitTime">
           <el-input
             :model-value="transitTime.value"
             placeholder="运行时效"
@@ -814,119 +817,124 @@ const submitForm = async () => {
             id="transitTimeInput"
           />
         </el-form-item> -->
-        <el-form-item label="井别" prop="wellCategory">
-          <el-input v-model="form.wellCategory" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="设计井深(m)" prop="designWellDepth">
-          <el-input v-model="form.designWellDepth" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="井控级别" prop="wellControlLevel">
-          <el-input v-model="form.wellControlLevel" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="套生段产管尺寸(mm)" prop="casingPipeSize">
-          <el-input v-model="form.casingPipeSize" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item :label="t('project.currentOperation')" prop="currentOperation">
-          <el-input
-            v-model="form.currentOperation"
-            placeholder="请输入目前工序"
-            type="textarea"
-            autosize
-            :maxlength="1000"
-          />
-        </el-form-item>
-        <el-form-item :label="t('project.nextPlan')" prop="nextPlan">
-          <el-input
-            v-model="form.nextPlan"
-            placeholder="请输入下步工序"
-            type="textarea"
-            autosize
-            :maxlength="1000"
-          />
-        </el-form-item>
-        <el-form-item label="运行时效" prop="transitTime">
-          <el-input
-            :model-value="transitTime.value"
-            placeholder="运行时效"
-            disabled
-            :class="{ 'warning-input': transitTime.original >= 1.0 }"
-            id="transitTimeInput"
-          />
-        </el-form-item>
-        <el-form-item label="额定生产时间(H)" prop="ratedProductionTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.ratedProductionTime"
-            :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
-            placeholder="请输入额定生产时间(H)"
-          />
-        </el-form-item>
-        <el-form-item label="生产时间(H)" prop="productionTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.productionTime"
-            :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
-            placeholder="请输入生产时间(H)"
-          />
-        </el-form-item>
-        <el-form-item label="非生产时间(H)" prop="nonProductionTime">
-          <el-input-number
-            class="w-full!"
-            :min="0"
-            v-model="form.nonProductionTime"
-            :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
-            placeholder="非生产时间(H)"
-          />
-        </el-form-item>
-        <el-form-item label="非生产时间原因" prop="nptReason">
-          <el-select v-model="form.ryNptReason" placeholder="请选择" clearable>
-            <el-option
-              v-for="(dict, index) of getStrDictOptions(DICT_TYPE.PMS_PROJECT_RY_NPT_REASON)"
-              :key="index"
-              :label="dict.label"
-              :value="dict.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="全员数量" prop="totalStaffNum">
-          <el-input-number :min="0" v-model="form.totalStaffNum" placeholder="请输入全员数量" />
-        </el-form-item>
-        <el-form-item label="在岗人数" prop="onDutyStaffNum">
-          <el-input-number :min="0" v-model="onDutyStaffNum" placeholder="" disabled />
-        </el-form-item>
-        <el-form-item label="休假人员数量" prop="leaveStaffNum">
-          <el-input-number :min="0" v-model="form.leaveStaffNum" placeholder="请输入休假人员数量" />
-        </el-form-item>
-        <div class="grid grid-cols-1 gap-4 mt-5">
-          <el-form-item label="生产动态" prop="productionStatus">
+          <el-form-item label="井别" prop="wellCategory">
+            <el-input v-model="form.wellCategory" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="设计井深(m)" prop="designWellDepth">
+            <el-input v-model="form.designWellDepth" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="井控级别" prop="wellControlLevel">
+            <el-input v-model="form.wellControlLevel" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="套生段产管尺寸(mm)" prop="casingPipeSize">
+            <el-input v-model="form.casingPipeSize" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item :label="t('project.currentOperation')" prop="currentOperation">
             <el-input
-              v-model="form.productionStatus"
-              placeholder="请输入生产动态"
+              v-model="form.currentOperation"
+              placeholder="请输入目前工序"
               type="textarea"
               autosize
-              :max-length="1000"
+              :maxlength="1000"
             />
           </el-form-item>
-          <el-form-item label="备注" prop="remark">
+          <el-form-item :label="t('project.nextPlan')" prop="nextPlan">
             <el-input
-              v-model="form.remark"
-              placeholder="请输入备注"
-              :max-length="1000"
+              v-model="form.nextPlan"
+              placeholder="请输入下步工序"
               type="textarea"
               autosize
-            /> </el-form-item
-        ></div>
-      </div>
-    </el-form>
-    <template #footer>
-      <el-button size="default" @click="submitForm" type="primary" :disabled="formLoading">
-        确 定
-      </el-button>
-      <el-button size="default" @click="dialogVisible = false">取 消</el-button>
-    </template>
-  </Dialog>
+              :maxlength="1000"
+            />
+          </el-form-item>
+          <el-form-item label="运行时效" prop="transitTime">
+            <el-input
+              :model-value="transitTime.value"
+              placeholder="运行时效"
+              disabled
+              :class="{ 'warning-input': transitTime.original >= 1.0 }"
+              id="transitTimeInput"
+            />
+          </el-form-item>
+          <el-form-item label="额定生产时间(H)" prop="ratedProductionTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.ratedProductionTime"
+              :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
+              placeholder="请输入额定生产时间(H)"
+            />
+          </el-form-item>
+          <el-form-item label="生产时间(H)" prop="productionTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.productionTime"
+              :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
+              placeholder="请输入生产时间(H)"
+            />
+          </el-form-item>
+          <el-form-item label="非生产时间(H)" prop="nonProductionTime">
+            <el-input-number
+              class="w-full!"
+              :min="0"
+              v-model="form.nonProductionTime"
+              :class="{ 'orange-input': sumTimes() !== Number(form.ratedProductionTime ?? 0) }"
+              placeholder="非生产时间(H)"
+            />
+          </el-form-item>
+          <el-form-item label="非生产时间原因" prop="nptReason">
+            <el-select v-model="form.ryNptReason" placeholder="请选择" clearable>
+              <el-option
+                v-for="(dict, index) of getStrDictOptions(DICT_TYPE.PMS_PROJECT_RY_NPT_REASON)"
+                :key="index"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="全员数量" prop="totalStaffNum">
+            <el-input-number :min="0" v-model="form.totalStaffNum" placeholder="请输入全员数量" />
+          </el-form-item>
+          <el-form-item label="在岗人数" prop="onDutyStaffNum">
+            <el-input-number :min="0" v-model="onDutyStaffNum" placeholder="" disabled />
+          </el-form-item>
+          <el-form-item label="休假人员数量" prop="leaveStaffNum">
+            <el-input-number
+              :min="0"
+              v-model="form.leaveStaffNum"
+              placeholder="请输入休假人员数量"
+            />
+          </el-form-item>
+          <div class="grid grid-cols-1 gap-4 mt-5">
+            <el-form-item label="生产动态" prop="productionStatus">
+              <el-input
+                v-model="form.productionStatus"
+                placeholder="请输入生产动态"
+                type="textarea"
+                autosize
+                :max-length="1000"
+              />
+            </el-form-item>
+            <el-form-item label="备注" prop="remark">
+              <el-input
+                v-model="form.remark"
+                placeholder="请输入备注"
+                :max-length="1000"
+                type="textarea"
+                autosize
+              /> </el-form-item
+          ></div>
+        </div>
+      </el-form>
+      <template #footer>
+        <el-button size="default" @click="submitForm" type="primary" :disabled="formLoading">
+          确 定
+        </el-button>
+        <el-button size="default" @click="dialogVisible = false">取 消</el-button>
+      </template>
+    </Dialog></div
+  >
 </template>
 
 <style scoped>