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