From 177efcfe53a16efa7b2b8cf9b1bb38682b7a82f2 Mon Sep 17 00:00:00 2001
From: chengxiangling <291105840@qq.com>
Date: 星期一, 12 五月 2025 19:30:04 +0800
Subject: [PATCH] 提交更改默认就报查询条件的提示
---
src/views/mainPlan/gasProduceStatics/index.vue | 302 ++++++++++++++++++++++++++++++++------------------
1 files changed, 192 insertions(+), 110 deletions(-)
diff --git a/src/views/mainPlan/gasProduceStatics/index.vue b/src/views/mainPlan/gasProduceStatics/index.vue
index 2272d3f..8562755 100644
--- a/src/views/mainPlan/gasProduceStatics/index.vue
+++ b/src/views/mainPlan/gasProduceStatics/index.vue
@@ -6,10 +6,10 @@
ref="queryRef"
:inline="true"
v-show="showSearch"
- label-width="68px"
+ :label-width="locale === 'zh' ? '68px' : '134px'"
>
<el-row type="flex" justify="left">
- <el-form-item label="缁熻鏂瑰紡">
+ <el-form-item :label="$t('plan.query.statistical')">
<el-select
v-model="queryParams.searchType"
style="width: 200px"
@@ -24,30 +24,32 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="閫夋嫨鍖洪棿">
+ <el-form-item :label="$t('plan.query.selectDateRange')">
<div v-if="!dayCom">
<el-date-picker
v-model="queryParams.monthRange"
type="monthrange"
- range-separator="鑷�"
- start-placeholder="閫夋嫨寮�濮嬫湀浠�"
- end-placeholder="閫夋嫨缁撴潫鏈堜唤"
+ :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
- v-model="value2"
+ v-model="queryParams.monthDays"
type="month"
- placeholder="閫夋嫨鏈堜唤"
+ :placeholder="$t('plan.placeholder.selectMonth')"
/>
</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-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-row>
</el-form>
@@ -58,85 +60,62 @@
plain
icon="Download"
@click="handleExport"
- v-hasPermi="['apsPartRouteStat:export']"
- >瀵煎嚭</el-button
+ v-hasPermi="['aps:apsGasPipingRouteStat:exportExcel']"
+ :disabled="loading"
+ >{{ $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="['apsPartRouteStat:edit']"
- >鏇存柊</el-button
+ v-hasPermi="['aps:apsGasPipingRouteStat:computeCapacity']"
+ :disabled="loading"
+ >{{ $t("common.common.update") }}</el-button
>
</el-col>
- <right-toolbar @queryTable="getList" :search="false"></right-toolbar>
+ <right-toolbar @queryTable="handleQuery" :search="false"></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>
- <div class="box_container">
- <div class="title_text">姘旀煖瑙勫垝浜ц兘璐熻浇缁熻</div>
- <div class="tabel_container">
- <vxe-grid
- ref="gridRef2"
- v-bind="gridOptions"
- :loading="loading"
- ></vxe-grid>
- </div>
- </div>
+ <vxe-grid ref="gridRef" v-bind="gridOptions" :loading="loading"></vxe-grid>
</div>
</template>
-<script setup name="gasProduceStatics">
+<script setup name="GasProduceStatics">
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 loading = ref(false);
const gridRef = ref();
-const gridRef2 = ref();
-const height = ref(document.documentElement.clientHeight - 130 + "px;");
+const height = ref(document.documentElement.clientHeight - 180 + "px;");
const headers = ref([]);
const exportData = ref([]);
const showSearch = ref(true);
const data = reactive({
queryParams: {
monthRange: "",
- searchType: "鎸夋湀缁熻",
+ monthDays: "",
+ searchType: t("plan.options.monthlyStatic"),
},
});
-const options = [
- {
- value: "month",
- label: "鎸夋湀缁熻",
- },
- {
- value: "day",
- label: "鎸夋棩缁熻",
- },
-];
+let searchTypeValue = ref("month");
+let options = ref([]);
const { queryParams } = toRefs(data);
const gridOptions = reactive({
border: true,
stripe: true,
loading: false,
showOverflow: true,
- showHeaderOverflow: true,
+ eaderOverflow: true,
showFooterOverflow: true,
height: height,
columnConfig: {
@@ -157,35 +136,59 @@
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;
+ getGasList();
+},{ immediate: true, deep: true });
function handleChangeSelectType(e) {
- console.log(e, "sjcsuhcushc");
+ searchTypeValue.value = e;
if (e === "day") {
dayCom.value = true;
} else {
dayCom.value = false;
}
}
-/** 鏌ヨ闆朵欢缁熻琛ㄥ垪琛� */
-function getList() {
- let type = ""
- options.map(item=>{
- if(queryParams.value.searchType === item.label){
- type = item.value
- }
- })
+function dateStr(dateTimeString) {
+ const dateTime = new Date(dateTimeString);
+ // 鎻愬彇骞翠唤鍜屾湀浠�
+ const year = dateTime.getFullYear();
+ const month = String(dateTime.getMonth() + 1).padStart(2, "0"); // 鏈堜唤浠�0寮�濮嬶紝鎵�浠ラ渶瑕佸姞1锛屽苟鐢╬adStart琛ラ浂
+ // 鏍煎紡鍖栧勾浠藉拰鏈堜唤涓� "yyyy-mm" 鏍煎紡鐨勫瓧绗︿覆
+ return `${year}-${month}`;
+}
+function dateRangeStr(monthRange) {
// 鍒涘缓涓�涓狣ate瀵硅薄
- let sDate = new Date(queryParams.value.monthRange[0]);
- let eDate = new Date(queryParams.value.monthRange[1]);
+ let sDate = new Date(monthRange[0]);
+ let eDate = new Date(monthRange[1]);
// 鑾峰彇骞翠唤鍜屾湀浠�
let sYear = sDate.getFullYear();
let sMonth = sDate.getMonth() + 1; // 鏈堜唤鏄粠0寮�濮嬬殑锛屾墍浠ヨ鍔�1
let eYear = eDate.getFullYear();
let eMonth = eDate.getMonth() + 1; // 鏈堜唤鏄粠0寮�濮嬬殑锛屾墍浠ヨ鍔�1
// 鏍煎紡鍖栦负"YYYY-MM"鐨勫舰寮�
- let sYearMonth = `${sYear}-${sMonth.toString().padStart(2, "0")}`;
- let eYearMonth = `${eYear}-${eMonth.toString().padStart(2, "0")}`;
- console.log(sYearMonth, eYearMonth, "yearMonth");
-
+ return {
+ sYearMonth: `${sYear}-${sMonth.toString().padStart(2, "0")}`,
+ eYearMonth: `${eYear}-${eMonth.toString().padStart(2, "0")}`,
+ };
+}
+function getGasList() {
let rowKey = 0;
let colKey = 0;
headers.value = [];
@@ -194,51 +197,64 @@
tableData = [];
loading.value = true;
listGasProduceStatics({
- searchStartDate: sYearMonth,
- searchEndDate: eYearMonth,
- searchType: type,
+ searchStartDate: !dayCom.value
+ ? dateRangeStr(queryParams.value.monthRange).sYearMonth
+ : dateStr(queryParams.value.monthDays),
+ searchEndDate: !dayCom.value
+ ? dateRangeStr(queryParams.value.monthRange).eYearMonth
+ : dateStr(queryParams.value.monthDays),
+ searchType: searchTypeValue.value,
+ major: "gas",
}).then((response) => {
const colList = [];
let headersOne = [];
let headersTwo = [];
if (response.code == "200") {
- if (!response.planTitle) {
+ if (!response.data.planTitle) {
loading.value = false;
return;
}
- headersOne.push("鏃ユ湡");
- headersTwo.push("璧勬簮缁�");
+ headersOne.push(t("plan.table.dateYearMonth"));
+ headersTwo.push(t("plan.table.processName"));
colList.push({
field: "dateCol",
- title: "鏃ユ湡",
+ title: t("plan.table.dateYearMonth"),
fixed: "left",
children: [
{
field: `resourceName`,
- title: "璧勬簮缁�",
+ title: t("plan.table.processName"),
width: 250,
type: "html",
},
],
width: 160,
});
- response.planTitle.forEach((item) => {
+ response.data.planTitle.forEach((item) => {
headersOne.push(item);
headersOne.push("");
headersOne.push("");
- headersTwo.push("璁捐宸ユ椂");
- headersTwo.push("闇�姹傚伐鏃�");
- headersTwo.push("浜ц兘璐熻嵎");
+ headersTwo.push(t("plan.table.designWorkingHours"));
+ headersTwo.push(t("plan.table.requiredWorkingHours"));
+ headersTwo.push(t("plan.table.capacityLoad"));
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",
},
@@ -255,7 +271,7 @@
let startCol = 1;
//鑾峰彇map
- response.planTable.forEach((mapItem) => {
+ response.data.planTable.map((mapItem) => {
rowKey++;
let lastCol = startCol + 2;
merges.push({ s: { r: 0, c: startCol }, e: { r: 0, c: lastCol } });
@@ -273,35 +289,34 @@
tableKey++;
item[`designTimes${tableKey}`] = listItem.designTimes;
item[`requireTimes${tableKey}`] = listItem.requireTimes;
- item[`capacityLoad${tableKey}`] =
- listItem.capacityLoad > 100
- ? `<font color="red">${listItem.capacityLoad}%</font>`
- : listItem.capacityLoad + "%";
+ item[`capacityLoad${tableKey}`] = formatCapacityLoad(
+ listItem.designTimes,
+ listItem.requireTimes,
+ listItem.capacityLoad
+ );
data.push(listItem.designTimes);
data.push(listItem.requireTimes);
data.push(listItem.capacityLoad + "%");
- if (listItem.capacityLoad > 100) {
- flag = true;
- }
+ // if (listItem.capacityLoad > 100) {
+ // flag = true;
+ // }
});
- item[`resourceName`] = flag
- ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>`
- : key;
+ // item[`resourceName`] = flag
+ // ? `<div class='el-badge'><sup class="el-badge__content is-fixed is-dot"></sup>${key}</div>`
+ // : key;
+ item[`resourceName`] = key;
}
exportData.value.push(data);
dataList.push(item);
});
const $grid = gridRef.value;
- const $grid2 = gridRef.value;
- if ($grid || $grid2) {
+ if ($grid) {
tableColumn = columnList;
tableData = [...tableData, ...dataList];
$grid.loadColumn(tableColumn);
$grid.loadData(tableData);
- $grid2.loadColumn(tableColumn);
- $grid2.loadData(tableData);
gridOptions.loading = false;
}
@@ -309,38 +324,105 @@
}
});
}
-
+function formatCapacityLoad(designTimes, requireTimes, capacityLoad) {
+ /**
+ * // 0-100 缁胯壊锛�101-120榛勮壊锛屽ぇ浜�120绾㈣壊
+ listItem.capacityLoad <= 100
+ ? `<font color="red">${listItem.capacityLoad}%</font>`
+ : listItem.capacityLoad + "%";
+ */
+ 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}%`;
+ }
+}
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
function handleExport() {
+ if (
+ (!queryParams.value.monthRange && dayCom.value == false) ||
+ (!queryParams.value.monthDays && dayCom.value == true)
+ ) {
+ ElMessage({
+ message: t("plan.message.errorMonthEmpty"),
+ type: "error",
+ });
+ return;
+ }
proxy.download(
- "/aps/apsGasPipingRouteStat/exportExcel", {},
+ "/aps/apsGasPipingRouteStat/exportExcel",
+ {
+ searchStartDate: !dayCom.value
+ ? dateRangeStr(queryParams.value.monthRange).sYearMonth
+ : dateStr(queryParams.value.monthDays),
+ searchEndDate: !dayCom.value
+ ? dateRangeStr(queryParams.value.monthRange).eYearMonth
+ : dateStr(queryParams.value.monthDays),
+ searchType: searchTypeValue.value,
+ major: "gas",
+ },
`aps_gas_produce_statics_${new Date().getTime()}.xlsx`
);
}
/** 鎼滅储鎸夐挳鎿嶄綔 */
function handleQuery() {
- if (!queryParams.value.monthRange) {
+ if (
+ (!queryParams.value.monthRange && dayCom.value == false) ||
+ (!queryParams.value.monthDays && dayCom.value == true)
+ ) {
ElMessage({
- message: "璇烽�夋嫨骞存湀",
+ message: t("plan.message.errorMonthEmpty"),
type: "error",
});
return;
}
// queryParams.value.pageNum = 1;
- getList();
+ getGasList();
}
/** 閲嶇疆鎸夐挳鎿嶄綔 */
function resetQuery() {
- proxy.resetForm("queryRef");
- handleQuery();
+ queryParams.value.monthRange = "";
+ queryParams.value.monthDays = "";
+ dayCom.value = false;
+ (queryParams.value.searchType = t("plan.options.monthlyStatic")),
+ (searchTypeValue.value = "month");
+ tableData = [];
+ const $grid = gridRef.value;
+ if ($grid) {
+ $grid.loadColumn([]);
+ $grid.loadData([]);
+ gridOptions.loading = false;
+ }
}
/** 鍒锋柊鎸夐挳鎿嶄綔 */
function handleRefresh() {
- updateStat().then((response) => {
- if (response.code == "200") {
- getList();
- }
+ if (
+ (!queryParams.value.monthRange && dayCom.value == false) ||
+ (!queryParams.value.monthDays && dayCom.value == true)
+ ) {
+ ElMessage({
+ message: t("plan.message.errorMonthEmpty"),
+ type: "error",
+ });
+ return;
+ }
+ loading.value = true;
+ listUpdateGasProduceStatics({
+ major: "gas",
+ }).then((response) => {
+ ElMessage({
+ message: t("plan.message.update"),
+ type: "success",
+ });
+ loading.value = false;
+ getGasList();
});
}
--
Gitblit v1.9.3