From db6e95062dfb57bcd1fb1cacdbb3cb4372c576b0 Mon Sep 17 00:00:00 2001
From: chengxiangling <291105840@qq.com>
Date: 星期三, 14 五月 2025 17:34:00 +0800
Subject: [PATCH] 钣金页面表格样式;
---
src/views/mainPlan/platePlanList/index.vue | 616 +++++++++++++++++++++++++++++++++----------------------
1 files changed, 366 insertions(+), 250 deletions(-)
diff --git a/src/views/mainPlan/platePlanList/index.vue b/src/views/mainPlan/platePlanList/index.vue
index d2169d9..be15403 100644
--- a/src/views/mainPlan/platePlanList/index.vue
+++ b/src/views/mainPlan/platePlanList/index.vue
@@ -1,75 +1,98 @@
<template>
<div class="app-container">
- <el-row :gutter="20">
+ <!-- <el-row :gutter="20">
<el-col>
- <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="90px">
+ <el-form
+ :model="queryParams"
+ ref="queryRef"
+ :inline="true"
+ v-show="showSearch"
+ label-width="90px"
+ >
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="宸ュ崟鍙�" prop="num">
<el-input
- v-model="queryParams.workOrderNo"
- placeholder="璇疯緭鍏ラ挘閲戣鍒掑伐鍗曞彿"
- clearable
- @keyup.enter="handleQuery"
+ v-model="queryParams.workOrderNo"
+ placeholder="璇疯緭鍏ラ挘閲戣鍒掑伐鍗曞彿"
+ clearable
+ @keyup.enter="handleQuery"
/>
</el-form-item>
</el-col>
- <el-col :span="12" style="text-align: right;">
+ <el-col :span="12" style="text-align: right">
<el-form-item>
- <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
+ <el-button type="primary" icon="Search" @click="handleQuery"
+ >鎼滅储</el-button
+ >
<el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-col>
- </el-row>
+ </el-row> -->
<el-row :gutter="10" class="mb8">
-
<el-col :span="1.5">
<el-button
- type="warning"
- plain
- icon="Download"
- @click="handleExport"
- v-hasPermi="['apsPlateProcessStat:export']"
- >瀵煎嚭</el-button>
+ type="warning"
+ plain
+ icon="Download"
+ @click="handleExport"
+ v-hasPermi="['plateProcessShopStat:export']"
+ >{{ $t(`common.common.export`) }}</el-button
+ >
</el-col>
<el-col :span="1.5">
<el-button
- type="success"
- plain
- icon="Edit"
- @click="handleUpdate"
- v-hasPermi="['apsPlateProcessStat:edit']"
- >鏇存柊</el-button>
+ type="success"
+ plain
+ icon="Refresh"
+ @click="handleUpdate"
+ :disabled="loading"
+ v-hasPermi="['plateProcessShopStat:update']"
+ >{{ $t(`common.common.update`) }}</el-button
+ >
</el-col>
- <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+ <right-toolbar :search="false" @queryTable="getList"></right-toolbar>
</el-row>
<HxlhTable
- style="width: 100%"
- :columns="columns"
- :data="aps_plate_process_statList"
- :loading="loading"
- :height="height"
+ style="width: 100%"
+ ref="xGrid"
+ :key="columnsVersion"
+ :columns="columns"
+ :data="aps_plate_process_statList"
+ :loading="loading"
+ :height="height"
>
</HxlhTable>
<!-- 娣诲姞鎴栦慨鏀归挘閲戠粺璁″璇濇 -->
- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
- <el-form ref="aps_plate_process_statRef" :model="form" :rules="rules" label-width="80px">
+ <!-- <el-dialog :title="title" v-model="open" width="500px" append-to-body>
+ <el-form
+ ref="aps_plate_process_statRef"
+ :model="form"
+ :rules="rules"
+ label-width="80px"
+ >
<el-form-item label="鎺掑簭" prop="num">
<el-input v-model="form.num" placeholder="璇疯緭鍏ユ帓搴�" />
</el-form-item>
<el-form-item label="鐢熶骇鏁伴噺" prop="productionQuantity">
- <el-input v-model="form.productionQuantity" placeholder="璇疯緭鍏ョ敓浜ф暟閲�" />
+ <el-input
+ v-model="form.productionQuantity"
+ placeholder="璇疯緭鍏ョ敓浜ф暟閲�"
+ />
</el-form-item>
<el-form-item label="鏍囧噯宸ユ椂" prop="standardTime">
<el-input v-model="form.standardTime" placeholder="璇疯緭鍏ユ爣鍑嗗伐鏃�" />
</el-form-item>
<el-form-item label="宸ュ簭鎬诲伐鏃�" prop="processTotalTime">
- <el-input v-model="form.processTotalTime" placeholder="璇疯緭鍏ュ伐搴忔�诲伐鏃�" />
+ <el-input
+ v-model="form.processTotalTime"
+ placeholder="璇疯緭鍏ュ伐搴忔�诲伐鏃�"
+ />
</el-form-item>
<el-form-item label="璁捐宸ユ椂" prop="designTimes">
<el-input v-model="form.designTimes" placeholder="璇疯緭鍏ヨ璁″伐鏃�" />
@@ -81,261 +104,354 @@
<el-button @click="cancel">鍙� 娑�</el-button>
</div>
</template>
- </el-dialog>
+ </el-dialog> -->
</div>
</template>
-<script setup name="Aps_plate_process_stat">
-import { listPlateStat,updateStat } from "@/api/mainPlan/plateProcessStat";
+<script setup name="ApsPlatePlanList">
+import {
+ listApsPlateProcessShopStat,
+ listApsPlateProcessShopStatUpdate,
+} from "@/api/mainPlan/apsPlatePlanList";
import HxlhTable from "@/components/HxlhTable/index.vue";
import { getToken } from "@/utils/auth";
-import { ref } from "vue";
-import {ElMessage} from "element-plus";
+import { nextTick, onMounted, ref } from "vue";
+// import { ElMessage } from "element-plus";
+import { useI18n } from "vue-i18n"; //瑕佸湪js涓娇鐢ㄥ浗闄呭寲
+// import i18n from "@/utils/i18n";
+// const t = i18n.global.t
+const { t, locale } = useI18n();
const { proxy } = getCurrentInstance();
-
+// console.log(proxy.$i18n.locale, "indexPlanList");
const aps_plate_process_statList = ref([]);
+const dynamicList = ref([]);
+const generateColumnList = ref([]);
const open = ref(false);
-const loading = ref(true);
+const loading = ref(false);
const showSearch = ref(true);
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const title = ref("");
-const height = ref(document.documentElement.clientHeight - 270 + "px;")
-
-
+const height = ref(document.documentElement.clientHeight - 180 + "px;");
+const columnsVersion = ref(0);
const data = reactive({
- form: {},
- queryParams: {
- pageNum: 1,
- pageSize: 10,
- workOrderNo: null,
- processName: null,
- num: null,
- routeProcessNumber: null,
- currentProcessNumber: null,
- productionQuantity: null,
- standardTime: null,
- processTotalTime: null,
- processPlanEndDay: null,
- computePlanEndDay: null,
- designTimes: null,
- batchNumber: null,
- },
- rules: {
- }
+ // form: {},
+ // queryParams: {
+ // pageNum: 1,
+ // pageSize: 10,
+ // workOrderNo: null,
+ // processName: null,
+ // num: null,
+ // routeProcessNumber: null,
+ // currentProcessNumber: null,
+ // productionQuantity: null,
+ // standardTime: null,
+ // processTotalTime: null,
+ // processPlanEndDay: null,
+ // computePlanEndDay: null,
+ // designTimes: null,
+ // batchNumber: null,
+ // },
+ // rules: {},
});
-
+const columns = ref([]);
+const xGrid = ref();
const { queryParams, form, rules } = toRefs(data);
-
-
-// 琛ㄦ牸閰嶇疆
-const columns = ref([
-/* { type: 'seq', title: '搴忓彿', width: 60 },*/
- {
- title: '宸ュ崟鍙�',
- field: 'workOrderNo',
- width: 150,
- } ,
- {
- title: '宸ュ簭鍚嶇О',
- field: 'processName',
- },
- {
- title: '宸ュ簭鍙�',
- field: 'routeProcessNumberTxt',
- width: 100,
- },
- {
- title: '褰撳墠宸ュ簭鍙�',
- field: 'currentProcessNumberTxt',
- width: 100,
- },
- {
- title: '鐢熶骇鏁伴噺',
- field: 'productionQuantity',
- width: 80,
- },
- {
- title: '鏍囧噯宸ユ椂',
- field: 'standardTime',
- width: 80,
- },
- {
- title: '宸ュ簭鎬诲伐鏃�',
- field: 'processTotalTime',
- width: 80,
-
- },
- {
- title: '璁″垝寮�宸ユ棩',
- field: 'processPlanStartDaytxt',
- width: 140,
- type:'html'
- },
- {
- title: '璁″垝瀹屽伐鏃�',
- field: 'processPlanEndDaytxt',
- width: 140,
- type:'html'
- },
- {
- title: '璁㈠崟瀹屽伐鏃�',
- field: 'orderPlanEndDay',
- width: 120,
- format: 'YYYY-MM-DD'
- }
-]);
-
-
-
+watch(locale, (newLocale) => {
+ // 閲嶆柊鑾峰彇缈昏瘧鏂囨湰
+ // 琛ㄦ牸閰嶇疆
+ columns.value = [
+ /* { type: 'seq', title: '搴忓彿', width: 60 },*/
+ {
+ title: t("plan.table.mainPartCustomer"),
+ field: "customer",
+ width: "200",
+ fixed: "left",
+ },
+ {
+ title: t("plan.table.mainPartNumber"),
+ field: "mainPartNumber",
+ width: "120",
+ fixed: "left",
+ },
+ {
+ title: t("plan.table.businessType"),
+ field: "businessType",
+ width: "auto",
+ fixed: "left",
+ },
+ {
+ title: t("plan.table.documentNumber"),
+ field: "documentNumber",
+ width: "180",
+ fixed: "left",
+ },
+ {
+ title: t("plan.table.requirementType"),
+ field: "requirementType",
+ width: "auto",
+ fixed: "left",
+ },
+ {
+ title: t("plan.table.documentStatus"),
+ field: "documentStatus",
+ width: "auto",
+ fixed: "left",
+ },
+ // {
+ // title: t("plan.table.updateBy"),
+ // field: "updateBy",
+ // width: "auto",
+ // },
+ {
+ title: t("plan.table.workCenter"),
+ field: "workCenter",
+ width: "180",
+ },
+ {
+ title: t("plan.table.department"),
+ field: "department",
+ width: "auto",
+ },
+ {
+ title: t("plan.table.opStatus"),
+ field: "opStatus",
+ width: "auto",
+ },
+ {
+ title: t("plan.table.nextOpName"),
+ field: "nextOpName",
+ width: "auto",
+ },
+ {
+ title: t("plan.table.nextProcessDeparment"),
+ field: "nextProcessDeparment",
+ width: "auto",
+ },
+ {
+ title: t("plan.table.itemNumber"),
+ field: "itemNumber",
+ type: "html",
+ },
+ {
+ title: t("plan.table.drawingNo"),
+ field: "drawingNo",
+ width: "auto",
+ // format: 'YYYY-MM-DD'
+ },
+ {
+ title: t("plan.table.versionNumber"),
+ field: "versionNumber",
+ width: "auto",
+ type: "html",
+ },
+ {
+ title: t("plan.table.cheaperCode"),
+ field: "cheaperCode",
+ width: "auto",
+ },
+ {
+ title: t("plan.table.productionQuantity"),
+ field: "productionQuantity",
+ width: "auto",
+ type: "html",
+ },
+ {
+ title: t("plan.table.workorderCreationTime"),
+ field: "orderCreateTime",
+ width: "160",
+ },
+ {
+ title: t("plan.table.workOrderReviewTime"),
+ field: "approveOn",
+ width: "160",
+ },
+ {
+ title: t("plan.table.workOrderStartTime"),
+ field: "startWorkDate",
+ width: "auto",
+ },
+ // {
+ // title: t("plan.table.planworkOrderTime"),
+ // field: "planworkOrderTime",
+ // width: 200,
+ // },
+ {
+ title: t("plan.table.planEndDay"),
+ field: "planEndDay",
+ width: "auto",
+ format: "YYYY-MM-DD hh:mm:ss",
+ },
+ ]
+},{immediate:true, deep:true});
/** 鏌ヨ閽i噾缁熻鍒楄〃 */
-function getList() {
+async function getList() {
loading.value = true;
- listPlateStat(queryParams.value).then(response => {
- const listValue = response.rows;
- listValue.forEach(listItem => {
- listItem[`processPlanStartDaytxt`]= listItem.warning? `<font color="red">${listItem.processPlanStartDay}</font>` :listItem.processPlanStartDay;
- listItem[`processPlanEndDaytxt`]= listItem.warning? `<font color="red">${listItem.processPlanEndDay}</font>` :listItem.processPlanEndDay;
- listItem[`routeProcessNumberTxt`]= listItem.routeProcessNumber.toString().padStart(3, '0');
- listItem[`currentProcessNumberTxt`]= listItem.currentProcessNumber.toString().padStart(3, '0');
-
-
- });
- aps_plate_process_statList.value =listValue
- debugger;
- total.value = response.total;
- loading.value = false;
- });
+ const response = await listApsPlateProcessShopStat();
+ let listValue = response.data;
+ dynamicList.value = response.shopNames;
+ aps_plate_process_statList.value = listValue;
+ console.log(aps_plate_process_statList.value,"aps_plate_process_statList")
+ total.value = response.total;
+ loading.value = false;
+ await nextTick();
+ aps_plate_process_statList.value = aps_plate_process_statList.value.map(
+ (item, index) => {
+ item.deptPlans.map((n, i) => {
+ item[`${i}_startDate`] = n.planStartDate;
+ item[`${i}_endDate`] = n.planEndDate;
+ });
+ return {
+ ...item,
+ };
+ }
+ );
+ let newArray = [];
+ newArray = dynamicList.value.flatMap((item, index) => [
+ {
+ title: `${item}寮�宸ユ椂闂碻,
+ field: `${index}_startDate`,
+ width: 140,
+ formatter: ({ cellValue, row, column }) => {
+ let dateStr = "";
+ if (cellValue) {
+ row.deptPlans.map((n, i) => {
+ if (item === n.shopName) {
+ // console.log(
+ // item,
+ // n.shopName,
+ // n.planStartDate,
+ // `${item}寮�濮嬫椂闂碻,
+ // "planStartDate"
+ // );
+ dateStr = n.planStartDate;
+ }
+ });
+ }
+ return dateStr;
+ },
+ },
+ {
+ title: `${item}瀹屽伐鏃堕棿`,
+ field: `${index}_endDate`,
+ width: 140,
+ formatter: ({ cellValue, row, column }) => {
+ let dateStr = "";
+ if (cellValue) {
+ row.deptPlans.map((n, i) => {
+ if (item === n.shopName) {
+ // console.log(
+ // item,
+ // n.shopName,
+ // n.planStartDate,
+ // `${item}寮�濮嬫椂闂碻,
+ // "planStartDate"
+ // );
+ dateStr = n.planEndDate;
+ }
+ });
+ }
+ return dateStr;
+ },
+ },
+ ]);
+ // newArray.splice(2, 0, {
+ // title: "鐒婃帴浠堕綈濂楀紑濮嬫椂闂�",
+ // field: "hanjie_startDate",
+ // width: 140,
+ // });
+ columns.value = [
+ ...columns.value,
+ ...newArray.filter(
+ (item) => !columns.value.some((col) => col.field === item.field)
+ ),
+ ];
+
+ // columns.value = columns.value
}
-// 鍙栨秷鎸夐挳
-function cancel() {
- open.value = false;
- reset();
-}
+// // 鍙栨秷鎸夐挳
+// function cancel() {
+// open.value = false;
+// reset();
+// }
-// 琛ㄥ崟閲嶇疆
-function reset() {
- form.value = {
- id: null,
- workOrderNo: null,
- processName: null,
- num: null,
- routeProcessNumber: null,
- currentProcessNumber: null,
- productionQuantity: null,
- standardTime: null,
- processTotalTime: null,
- processPlanEndDay: null,
- computePlanEndDay: null,
- designTimes: null,
- batchNumber: null,
- createBy: null,
- delFlag: null
- };
- proxy.resetForm("aps_plate_process_statRef");
-}
+// // 琛ㄥ崟閲嶇疆
+// function reset() {
+// form.value = {
+// id: null,
+// workOrderNo: null,
+// processName: null,
+// num: null,
+// routeProcessNumber: null,
+// currentProcessNumber: null,
+// productionQuantity: null,
+// standardTime: null,
+// processTotalTime: null,
+// processPlanEndDay: null,
+// computePlanEndDay: null,
+// designTimes: null,
+// batchNumber: null,
+// createBy: null,
+// delFlag: null,
+// };
+// proxy.resetForm("aps_plate_process_statRef");
+// }
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-function handleQuery() {
- queryParams.value.pageNum = 1;
- getList();
-}
+// /** 鎼滅储鎸夐挳鎿嶄綔 */
+// function handleQuery() {
+// queryParams.value.pageNum = 1;
+// getList();
+// }
/** 閲嶇疆鎸夐挳鎿嶄綔 */
-function resetQuery() {
- queryParams.value.workOrderNo ='';
- proxy.resetForm("queryRef");
- handleQuery();
-}
+// function resetQuery() {
+// queryParams.value.workOrderNo = "";
+// proxy.resetForm("queryRef");
+// handleQuery();
+// }
// 澶氶�夋閫変腑鏁版嵁
-function handleSelectionChange(selection) {
- ids.value = selection.map(item => item.id);
- single.value = selection.length != 1;
- multiple.value = !selection.length;
-}
+// function handleSelectionChange(selection) {
+// ids.value = selection.map((item) => item.id);
+// single.value = selection.length != 1;
+// multiple.value = !selection.length;
+// }
-/** 鏂板鎸夐挳鎿嶄綔 */
-function handleAdd() {
- reset();
- open.value = true;
- title.value = "娣诲姞閽i噾缁熻";
-}
+// /** 鏂板鎸夐挳鎿嶄綔 */
+// function handleAdd() {
+// reset();
+// open.value = true;
+// title.value = "娣诲姞閽i噾缁熻";
+// }
/** 淇敼鎸夐挳鎿嶄綔 */
function handleUpdate(row) {
- reset();
- updateStat().then(response => {
- form.value = response.data;
+ loading.value = true;
+ listApsPlateProcessShopStatUpdate().then((response) => {
+ // form.value = response.data;
ElMessage({
- message: '鏁版嵁鏇存柊鎴愬姛',
- type: 'success',
- })
+ message: t("plan.message.update"),
+ type: "success",
+ });
+ loading.value = false;
getList();
});
}
-
-/** 鎻愪氦鎸夐挳 */
-function submitForm() {
- proxy.$refs["aps_plate_process_statRef"].validate(valid => {
- if (valid) {
- if (form.value.id != null) {
- updateAps_plate_process_stat(form.value).then(response => {
- proxy.$modal.msgSuccess("淇敼鎴愬姛");
- open.value = false;
- getList();
- });
- } else {
- addAps_plate_process_stat(form.value).then(response => {
- proxy.$modal.msgSuccess("鏂板鎴愬姛");
- open.value = false;
- getList();
- });
- }
- }
- });
-}
-
-/** 鍒犻櫎鎸夐挳鎿嶄綔 */
-function handleDelete(row) {
- const _ids = row.id || ids.value;
- proxy.$modal.confirm('鏄惁纭鍒犻櫎閽i噾缁熻缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').then(function() {
- return delAps_plate_process_stat(_ids);
- }).then(() => {
- getList();
- proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
- }).catch(() => {});
-}
-
/** 瀵煎嚭鎸夐挳鎿嶄綔 */
function handleExport() {
- proxy.download('/aps/plateProcessStat/export', {
- ...queryParams.value
- }, `aps_plate_process_stat_${new Date().getTime()}.xlsx`)
-}
-const headerCellClassName = ({ column }) => {
- if (column.field === 'name') {
- return 'col-blue'
- }
- return null
-}
-const rowClassName = ({ rowIndex }) => {
- if ([2, 3, 5].includes(rowIndex)) {
- return 'row-green'
- }
- return null
-}
-const cellClassName = ({ row, column }) => {
- if (column.field === 'processPlanStartDay'||column.field === 'processPlanEndDay') {
- if (row.warning) {
- return 'col-orange'
- }
- }
- return null
+ proxy.download(
+ "/aps/plateProcessShopStat/export",
+ {},
+ `aps_plate_plan_list_${new Date().getTime()}.xlsx`
+ );
}
getList();
+// onMounted(async () => {
+// await nextTick();
+
+// });
</script>
<style lang="scss" scoped>
::v-deep(.mytable-style.vxe-table .vxe-body--row.row-green) {
@@ -350,4 +466,4 @@
background-color: red;
color: #fff;
}
-</style>
\ No newline at end of file
+</style>
--
Gitblit v1.9.3