From af1c9e588f1de0240390648f9bb56aa486870aff Mon Sep 17 00:00:00 2001
From: chengxiangling <291105840@qq.com>
Date: 星期五, 16 五月 2025 17:40:18 +0800
Subject: [PATCH] 提交高度修改;

---
 src/views/mainPlan/pipeProduceStatics/index.vue |  365 ++++++++++++++++++++++++++++++++-------------------
 1 files changed, 230 insertions(+), 135 deletions(-)

diff --git a/src/views/mainPlan/pipeProduceStatics/index.vue b/src/views/mainPlan/pipeProduceStatics/index.vue
index 31e7473..3b57414 100644
--- a/src/views/mainPlan/pipeProduceStatics/index.vue
+++ b/src/views/mainPlan/pipeProduceStatics/index.vue
@@ -6,50 +6,97 @@
       ref="queryRef"
       :inline="true"
       v-show="showSearch"
-      label-width="68px"
+      label-position="left"
     >
-      <el-row type="flex" justify="left">
-        <el-form-item label="缁熻鏂瑰紡">
-          <el-select
-            v-model="queryParams.searchType"
-            style="width: 200px"
-            placeholder="Select"
-            @change="handleChangeSelectType"
-          >
-            <el-option
-              v-for="item in options"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item label="閫夋嫨鍖洪棿">
-          <div v-if="!dayCom">
-            <el-date-picker
-              v-model="queryParams.monthRange"
-              type="monthrange"
-              range-separator="鑷�"
-              start-placeholder="閫夋嫨寮�濮嬫湀浠�"
-              end-placeholder="閫夋嫨缁撴潫鏈堜唤"
-            />
-          </div>
-          <div v-else>
-            <el-date-picker
-              v-model="queryParams.monthDays"
-              type="month"
-              placeholder="閫夋嫨鏈堜唤"
-            />
-          </div>
-        </el-form-item>
-
-        <el-form-item class="column-with-margin">
-          <el-button type="primary" icon="Search" @click="handleQuery"
-            >鏌ヨ</el-button
-          >
-          <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
-        </el-form-item>
-      </el-row>
+      <el-form
+        class="responsive-form"
+        :model="queryParams"
+        ref="queryRef"
+        :inline="true"
+        v-show="showSearch"
+        label-position="left"
+      >
+        <el-row :gutter="20">
+          <el-col :span="6">
+            <el-form-item
+              :label="$t('plan.query.statistical')"
+              :style="{ width: '100%' }"
+            >
+              <el-select
+                v-model="queryParams.searchType"
+                placeholder="Select"
+                @change="handleChangeSelectType"
+              >
+                <el-option
+                  v-for="item in options"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item
+              :style="{ width: '100%' }"
+              :label="
+                !dayCom
+                  ? $t('plan.query.selectDateRange')
+                  : $t('plan.query.selectDateMonth')
+              "
+            >
+              <div v-if="!dayCom">
+                <el-date-picker
+                  :style="{ width: '250px' }"
+                  v-model="queryParams.monthRange"
+                  type="monthrange"
+                  :range-separator="$t('plan.placeholder.to')"
+                  :start-placeholder="$t('plan.placeholder.startMonth')"
+                  :end-placeholder="$t('plan.placeholder.endMonth')"
+                />
+              </div>
+              <div v-else>
+                <el-date-picker
+                  :style="{ width: '100%' }"
+                  v-model="queryParams.monthDays"
+                  type="month"
+                  :placeholder="$t('plan.placeholder.selectMonth')"
+                />
+              </div>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6" v-if="dayCom">
+            <el-form-item
+              :label="$t('basic.table.applicableFactories')"
+              prop="plant"
+              :style="{ width: '100%' }"
+            >
+              <el-select
+                clearable
+                v-model="queryParams.applicableFactory"
+                :placeholder="$t('basic.table.applicableFactories')"
+              >
+                <el-option
+                  v-for="item in aps_factory"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                />
+              </el-select>
+            </el-form-item>
+          </el-col>
+          <!-- <el-col :span="6" style="text-align:right;">
+          <el-form-item class="column-with-margin">
+            <el-button type="primary" icon="Search" @click="handleQuery">{{
+              $t("common.common.query")
+            }}</el-button>
+            <el-button icon="Refresh" @click="resetQuery">{{
+              $t("common.common.reset")
+            }}</el-button>
+          </el-form-item>
+        </el-col> -->
+        </el-row>
+      </el-form>
     </el-form>
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
@@ -59,45 +106,47 @@
           icon="Download"
           @click="handleExport"
           v-hasPermi="['aps:apsGasPipingRouteStat:exportExcel']"
-          >瀵煎嚭</el-button
+          >{{ $t("common.common.export") }}</el-button
         >
       </el-col>
       <el-col :span="1.5">
         <el-button
-          type="info"
+          type="success"
           plain
           icon="Refresh"
           @click="handleRefresh"
           v-hasPermi="['aps:apsGasPipingRouteStat:computeCapacity']"
           :disabled="loading"
-          >鏇存柊</el-button
+          >{{ $t("common.common.update") }}</el-button
         >
       </el-col>
-      <right-toolbar @queryTable="handleQuery" :search="false"></right-toolbar>
+      <right-toolbar
+        v-model:showSearch="showSearch"
+        @queryTable="handleQuery"
+        @resetTable="resetQuery"
+      ></right-toolbar>
     </el-row>
     <!-- <div class="box_container"> -->
-      <!-- <div class="title_text">绠¤矾瑙勫垝浜ц兘璐熻浇缁熻</div> -->
-      <!-- <div class="tabel_container"> -->
-        <vxe-grid
-          ref="gridRef"
-          v-bind="gridOptions"
-          :loading="loading"
-        ></vxe-grid>
-      <!-- </div> -->
+    <!-- <div class="title_text">绠¤矾瑙勫垝浜ц兘璐熻浇缁熻</div> -->
+    <!-- <div class="tabel_container"> -->
+    <vxe-grid ref="gridRef" v-bind="gridOptions" :loading="loading"></vxe-grid>
+    <!-- </div> -->
     <!-- </div> -->
   </div>
 </template>
 
-<script setup name="gasProduceStatics">
+<script setup name="PipeProduceStatics">
 import {
   listUpdateGasProduceStatics,
   listGasProduceStatics,
 } from "@/api/mainPlan/gasProduceStatics.js";
 import { ref } from "vue";
 import * as XLSX from "xlsx";
-import { ElMessage } from "element-plus";
+// import { ElMessage } from "element-plus";
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+const { t, locale } = useI18n();
 const { proxy } = getCurrentInstance();
-
+const { aps_factory } = proxy.useDict("aps_factory");
 const loading = ref(false);
 const gridRef = ref();
 const height = ref(document.documentElement.clientHeight - 180 + "px;");
@@ -108,20 +157,11 @@
   queryParams: {
     monthRange: "",
     monthDays: "",
-    searchType: "鎸夋湀缁熻",
+    searchType: t("plan.options.monthlyStatic"),
   },
 });
 let searchTypeValue = ref("month");
-const options = [
-  {
-    value: "month",
-    label: "鎸夋湀缁熻",
-  },
-  {
-    value: "day",
-    label: "鎸夋棩缁熻",
-  },
-];
+let options = ref([]);
 const { queryParams } = toRefs(data);
 const gridOptions = reactive({
   border: true,
@@ -149,6 +189,31 @@
 let tableColumn = [];
 let tableData = [];
 let merges = [];
+watch(
+  locale,
+  (newLocale) => {
+    options.value = [
+      {
+        value: "month",
+        label: t("plan.options.monthlyStatic"),
+      },
+      {
+        value: "day",
+        label: t("plan.options.dailyStatic"),
+      },
+    ];
+    queryParams.value.searchType = t("plan.options.monthlyStatic");
+    if (
+      (!queryParams.value.monthRange && dayCom.value == false) ||
+      (!queryParams.value.monthDays && dayCom.value == true)
+    ) {
+      return;
+    }
+    // queryParams.value.pageNum = 1;
+    getPipeList();
+  },
+  { immediate: true, deep: true }
+);
 function handleChangeSelectType(e) {
   searchTypeValue.value = e;
   if (e === "day") {
@@ -180,6 +245,17 @@
     eYearMonth: `${eYear}-${eMonth.toString().padStart(2, "0")}`,
   };
 }
+const formatTypeLabelPlant = (list) => {
+  if (list) {
+    return list
+      .map((type) => {
+        const item = aps_factory.value.find((item) => item.value === type);
+        return item ? item.label : type;
+      })
+      .join("");
+  }
+  return "";
+};
 /** 鏌ヨ闆朵欢缁熻琛ㄥ垪琛� */
 function getPipeList() {
   let rowKey = 0;
@@ -199,48 +275,72 @@
     searchType: searchTypeValue.value,
     major: "piping",
   }).then((response) => {
-    console.log(response.data.planTable, "responseresponseresponse");
     const colList = [];
-    let headersOne = [];
-    let headersTwo = [];
+    // let headersOne = [];
+    // let headersTwo = [];
     if (response.code == "200") {
       if (!response.data.planTitle) {
         loading.value = false;
         return;
       }
-      headersOne.push("鏃ユ湡");
-      headersTwo.push("宸ュ簭鍚嶇О");
-      colList.push({
-        field: "dateCol",
-        title: "鏃ユ湡",
-        fixed: "left",
-        children: [
-          {
-            field: `resourceName`,
-            title: "宸ュ簭鍚嶇О",
-            width: 250,
-            type: "html",
-          },
-        ],
-        width: 160,
-      });
+      // headersOne.push(t("plan.table.dateYearMonth"));
+      // headersTwo.push(t("plan.table.processName"));
+      if (!dayCom.value) {
+        colList.push({
+          field: "dateCol",
+          title: t("plan.table.dateYearMonth"),
+          fixed: "left",
+          children: [
+            {
+              field: `resourceName`,
+              title: t("plan.table.processName"),
+              width: 250,
+              type: "html",
+            },
+            {
+              field: `resourceGroupName`,
+              title: t("plan.table.applicableFactories"),
+              width: 250,
+              type: "html",
+            },
+          ],
+          width: 160,
+        });
+      } else {
+        colList.push({
+          field: "dateCol",
+          title: t("plan.table.dateYearMonth"),
+          fixed: "left",
+          children: [
+            {
+              field: `resourceName`,
+              title: t("plan.table.processName"),
+              width: 250,
+              type: "html",
+            },
+          ],
+          width: 160,
+        });
+      }
       response.data.planTitle.forEach((item) => {
-        headersOne.push(item);
-        headersOne.push("");
-        headersOne.push("");
-        headersTwo.push("璁捐浜ц兘");
-        headersTwo.push("闇�姹備骇鑳�");
-        headersTwo.push("浜ц兘璐熻浇");
         colKey++;
         colList.push({
           field: `dateColTime${colKey}`,
           title: item,
           children: [
-            { field: `designTimes${colKey}`, title: "璁捐浜ц兘", width: 80 },
-            { field: `requireTimes${colKey}`, title: "闇�姹備骇鑳�", width: 80 },
+            {
+              field: `designTimes${colKey}`,
+              title: t("plan.table.designWorkingHours"),
+              width: 80,
+            },
+            {
+              field: `requireTimes${colKey}`,
+              title: t("plan.table.requiredWorkingHours"),
+              width: 80,
+            },
             {
               field: `capacityLoad${colKey}`,
-              title: "浜ц兘璐熻浇",
+              title: t("plan.table.capacityLoad"),
               width: 80,
               type: "html",
             },
@@ -248,52 +348,42 @@
           width: 160,
         });
       });
-
-      headers.value.push(headersOne);
-      headers.value.push(headersTwo);
-
       const columnList = [...tableColumn, ...colList];
       const dataList = [];
-      let startCol = 1;
 
       //鑾峰彇map
       response.data.planTable.map((mapItem) => {
         rowKey++;
-        let lastCol = startCol + 2;
-        merges.push({ s: { r: 0, c: startCol }, e: { r: 0, c: lastCol } });
-        startCol = lastCol + 1;
-        let data = [];
         const item = {
           id: `${rowKey}`,
         };
         for (const [key, listValue] of Object.entries(mapItem)) {
-          data.push(key);
-
           let tableKey = 0;
           let flag = false;
           listValue.forEach((listItem) => {
             tableKey++;
             item[`designTimes${tableKey}`] = listItem.designTimes;
             item[`requireTimes${tableKey}`] = listItem.requireTimes;
-            item[`capacityLoad${tableKey}`] = formatCapacityLoad(listItem.designTimes,listItem.requireTimes,listItem.capacityLoad)
-            // 0-100 缁胯壊锛�101-120榛勮壊锛屽ぇ浜�120绾㈣壊
-              // listItem.capacityLoad <= 100
-              //   ? `<font color="red">${listItem.capacityLoad}%</font>`
-              //   : listItem.capacityLoad + "%";
-            data.push(listItem.designTimes);
-            data.push(listItem.requireTimes);
-            data.push(listItem.capacityLoad + "%");
-            // if (listItem.capacityLoad > 100) {
-            //   flag = true;
-            // }
+            item[`capacityLoad${tableKey}`] = formatCapacityLoad(
+              listItem.designTimes,
+              listItem.requireTimes,
+              listItem.capacityLoad
+            );
           });
 
           // item[`resourceName`] = flag
           //   ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>`
           //   : key;
-          item[`resourceName`] =  key;
+          if (!dayCom.value) {
+            const lastIndex = key.lastIndexOf("_");
+            item[`resourceName`] = key.slice(0, lastIndex);
+            item[`resourceGroupName`] = formatTypeLabelPlant([
+              key.slice(lastIndex + 1),
+            ]);
+          } else {
+            item[`resourceName`] = key;
+          }
         }
-        exportData.value.push(data);
         dataList.push(item);
       });
 
@@ -310,21 +400,23 @@
     }
   });
 }
-function formatCapacityLoad(designTimes,requireTimes,capacityLoad){
+function formatCapacityLoad(designTimes, requireTimes, capacityLoad) {
   /**
    * // 0-100 缁胯壊锛�101-120榛勮壊锛屽ぇ浜�120绾㈣壊
     listItem.capacityLoad <= 100
       ? `<font color="red">${listItem.capacityLoad}%</font>`
       : listItem.capacityLoad + "%";
    */
-  if(capacityLoad>0&&capacityLoad<=100){
-    return `<font color="#85cf60">${capacityLoad}%</font>`
-  }else if(designTimes>0&&capacityLoad>101&&capacityLoad<=120){
-    return `<font color="#ecb869">${capacityLoad}%</font>`
-  }else if(designTimes>0&&capacityLoad>120){
-    return `<font color="#f89c9c">${capacityLoad}%</font>`
-  }else if(designTimes==0&&requireTimes>0){
-    return `<font color="#f56c6c">error</font>`
+  if (designTimes > 0 && capacityLoad > 0 && capacityLoad <= 100) {
+    return `<font color="#85cf60">${capacityLoad}%</font>`;
+  } else if (designTimes > 0 && capacityLoad > 101 && capacityLoad <= 120) {
+    return `<font color="#ecb869">${capacityLoad}%</font>`;
+  } else if (designTimes > 0 && capacityLoad > 120) {
+    return `<font color="#f89c9c">${capacityLoad}%</font>`;
+  } else if (designTimes == 0 && requireTimes > 0) {
+    return `<font color="#f56c6c">error</font>`;
+  } else {
+    return `${capacityLoad}%`;
   }
 }
 /** 瀵煎嚭鎸夐挳鎿嶄綔 */
@@ -334,7 +426,7 @@
     (!queryParams.value.monthDays && dayCom.value == true)
   ) {
     ElMessage({
-      message: "璇烽�夋嫨骞存湀",
+      message: t("plan.message.errorMonthEmpty"),
       type: "error",
     });
     return;
@@ -361,7 +453,7 @@
     (!queryParams.value.monthDays && dayCom.value == true)
   ) {
     ElMessage({
-      message: "璇烽�夋嫨骞存湀",
+      message: t("plan.message.errorMonthEmpty"),
       type: "error",
     });
     return;
@@ -375,7 +467,7 @@
   queryParams.value.monthRange = "";
   queryParams.value.monthDays = "";
   dayCom.value = false;
-  (queryParams.value.searchType = "鎸夋湀缁熻"),
+  (queryParams.value.searchType = t("plan.options.monthlyStatic")),
     (searchTypeValue.value = "month");
   tableData = [];
   const $grid = gridRef.value;
@@ -392,7 +484,7 @@
     (!queryParams.value.monthDays && dayCom.value == true)
   ) {
     ElMessage({
-      message: "璇烽�夋嫨骞存湀",
+      message: t("plan.message.errorMonthEmpty"),
       type: "error",
     });
     return;
@@ -402,7 +494,7 @@
     major: "piping",
   }).then((response) => {
     ElMessage({
-      message: "鏁版嵁鏇存柊鎴愬姛",
+      message: t("plan.message.update"),
       type: "success",
     });
     loading.value = false;
@@ -413,6 +505,9 @@
 // getList();
 </script>
 <style lang="scss" scoped>
+.column-with-margin {
+  margin-right: 0px;
+}
 .box_container {
   width: 100%;
   margin: 20px auto;

--
Gitblit v1.9.3