From 48a1f3a23b12b8c78cfaa77de9528c96ff57769f Mon Sep 17 00:00:00 2001
From: CD配唱片 <CD配唱片>
Date: 星期五, 25 四月 2025 22:55:43 +0800
Subject: [PATCH] 提交气柜管路负载统计页面全部
---
src/views/basicData/calendar/index.vue | 275 +++++++++++++++++++++++++++++++-----------------------
1 files changed, 159 insertions(+), 116 deletions(-)
diff --git a/src/views/basicData/calendar/index.vue b/src/views/basicData/calendar/index.vue
index 456114a..073b58d 100644
--- a/src/views/basicData/calendar/index.vue
+++ b/src/views/basicData/calendar/index.vue
@@ -8,67 +8,26 @@
v-show="showSearch"
label-width="68px"
>
- <el-row type="flex" justify="right">
- <el-form-item label="鏃ュ巻鎻忚堪" prop="description">
- <el-input
- style="width: 140px"
- v-model="queryParams.description"
- placeholder="璇疯緭鍏ユ弿杩板叧閿瘝"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- <el-form-item label="鏃ュ巻绫诲瀷" prop="effectiveDate">
- <el-select clearable v-model="dateType" style="width: 90px">
- <el-option
- v-for="(item, index) of dateTypeList"
- :key="index"
- :label="item.name"
- :value="item.name"
- >{{ item.name }}</el-option
+ <el-row type="flex" justify="left">
+ <el-col :span="6">
+ <el-form-item label="鏃ュ巻鎻忚堪" prop="description">
+ <el-input
+ style="width: 140px"
+ v-model="queryParams.description"
+ placeholder="璇疯緭鍏ユ弿杩板叧閿瘝"
+ clearable
+ @keyup.enter="handleQuery"
+ />
+ </el-form-item>
+ </el-col>
+ <el-col :span="18" style="text-align: right">
+ <el-form-item class="column-with-margin">
+ <el-button type="primary" icon="Search" @click="handleQuery"
+ >鏌ヨ</el-button
>
- </el-select>
- </el-form-item>
- <el-form-item label="鐢熸晥鏃ユ湡" prop="effectiveDate">
- <el-date-picker
- clearable
- v-model="queryParams.effectiveDate"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="閫夋嫨鏃ユ湡"
- >
- </el-date-picker>
- </el-form-item>
- <el-form-item label="閫傜敤宸ュ巶" prop="expiringDate">
- <!-- <el-date-picker clearable
- v-model="queryParams.expiringDate"
- type="date"
- value-format="YYYY-MM-DD"
- placeholder="璇烽�夋嫨澶辨晥鏃ユ湡">
- </el-date-picker> -->
- <el-input
- style="width: 180px"
- v-model="queryParams.description"
- placeholder="璇疯緭鍏ュ伐鍘傚叧閿瘝"
- clearable
- @keyup.enter="handleQuery"
- />
- </el-form-item>
- </el-row>
- <el-row type="flex" justify="end">
- <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="success"
- icon="Plus"
- @click="handleAdd"
- v-hasPermi="['core:calendar:add']"
- >鏂板鏃ュ巻</el-button
- > -->
- </el-form-item>
+ <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-col>
</el-row>
</el-form>
@@ -79,7 +38,7 @@
plain
icon="Plus"
@click="handleAdd"
- v-hasPermi="['core:calendar:add']"
+ v-hasPermi="['aps:calendar:update']"
>鏂板</el-button
>
</el-col>
@@ -90,7 +49,7 @@
icon="Edit"
:disabled="single"
@click="handleUpdate"
- v-hasPermi="['core:calendar:edit']"
+ v-hasPermi="['aps:calendar:update']"
>淇敼</el-button
>
</el-col>
@@ -101,11 +60,11 @@
icon="Delete"
:disabled="multiple"
@click="handleDelete"
- v-hasPermi="['core:calendar:remove']"
+ v-hasPermi="['aps:calendar:remove']"
>鍒犻櫎</el-button
>
</el-col>
- <el-col :span="1.5">
+ <!-- <el-col :span="1.5">
<el-button
type="warning"
plain
@@ -114,7 +73,7 @@
v-hasPermi="['core:calendar:export']"
>瀵煎嚭</el-button
>
- </el-col>
+ </el-col> -->
<right-toolbar
v-model:showSearch="showSearch"
@queryTable="getList"
@@ -126,17 +85,35 @@
:data="calendarList"
:loading="loading"
:height="height"
+ ref="tableRef"
:page="page"
@changePageNo="changePageNo"
@changePageSize="changePageSize"
@on-checkbox="handleCheckboxChange"
+ class="auto-height-grid"
>
<template #status="{ row }">
<vxe-tag v-if="row.type === '1'" status="primary">鍛ㄥ伐浣滄棩</vxe-tag>
<vxe-tag v-if="row.type === '2'" status="success">鑺傚亣鏃�</vxe-tag>
</template>
- <template #content="{ row }">
- <vxe-tag>鍛ㄥ伐浣滄棩</vxe-tag>
+ <template #mark="{ row }">
+ <div v-if="row.type === '1'">
+ <span v-for="(item, index) in JSON.parse(row.content.value).weekdays" :key="index">
+ <span v-if="item.work==='y'" status="success" class="mart5">{{item.chineseName}}: 宸ヤ綔鏃�; </span>
+ <span v-if="item.work==='n'" status="info" class="mart5">{{item.chineseName}}: 闈炲伐浣滄棩; </span>
+ </span>
+ <!-- <div v-for="(item, index) in JSON.parse(row.content.value).weekdays" :key="index">
+ <vxe-tag v-if="item.work==='y'" status="success" class="mart5">{{item.chineseName}}: 宸ヤ綔鏃�; </vxe-tag>
+ <vxe-tag v-if="item.work==='n'" status="info" class="mart5">{{item.chineseName}}: 闈炲伐浣滄棩; </vxe-tag>
+ </div> -->
+ </div>
+ <div v-if="row.type === '2'">
+ <div>{{JSON.parse(row.content.value).holidays.startdate}}鑷硔{JSON.parse(row.content.value).holidays.enddate}}</div>
+ </div>
+ </template>
+ <template #buttons="{row}">
+ <vxe-button mode="text" @click="handleUpdate(row)" v-hasPermi="['aps:calendar:update']" >淇敼</vxe-button>
+ <vxe-button mode="text" @click="handleDelete(row)" v-hasPermi="['aps:calendar:remove']" >鍒犻櫎</vxe-button>
</template>
</HxlhTable>
@@ -153,8 +130,8 @@
</el-form-item>
<el-form-item label="鏃ュ巻绫诲瀷" prop="type">
<el-radio-group v-model="form.type" @change="handleSwitchType">
- <el-radio :label="1">鍛ㄥ伐浣�</el-radio>
- <el-radio :label="2">鑺傚亣鏃�</el-radio>
+ <el-radio :label="'1'">鍛ㄥ伐浣�</el-radio>
+ <el-radio :label="'2'">鑺傚亣鏃�</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="鐢熸晥鏃堕棿" prop="effectiveDate">
@@ -177,7 +154,7 @@
>
</el-date-picker>
</el-form-item>
- <div v-if="form.type === 1">
+ <div v-if="form.type === '1'">
<div class="title_bar_line">
<div class="line_short"></div>
<div>鍛ㄥ伐浣滆缃�</div>
@@ -197,7 +174,7 @@
</div>
</div>
</div>
- <div v-if="form.type === 2">
+ <div v-if="form.type === '2'">
<div class="title_bar_line">
<div class="line_short"></div>
<div>鑺傚亣鏃ヨ缃�</div>
@@ -311,10 +288,12 @@
addCalendar,
updateCalendar,
} from "@/api/basicData/calendar";
+import axios from "axios";
import { listAll_plant } from "@/api/basicData/plant";
import { listAll_shop, listAps_shop } from "@/api/basicData/shop";
import { selectProcessNameList } from "@/api/basicData/processRoute.js";
const { proxy } = getCurrentInstance();
+const tableRef = ref()
const calendarList = ref([]);
const open = ref(false);
const loading = ref(true);
@@ -325,7 +304,9 @@
const total = ref(0);
const title = ref("");
const data = reactive({
- form: {},
+ form: {
+ type: "1",
+ },
queryParams: {
pageNum: 1,
pageSize: 10,
@@ -381,9 +362,11 @@
const dateTypeList = ref([
{
name: "鍛ㄥ伐浣�",
+ label: "1",
},
{
name: "鑺傚亣鏃�",
+ label: "2",
},
]);
const typeRadioNumber = ref(1);
@@ -432,7 +415,7 @@
const shopList = ref([]);
const allShopList = ref([]);
const processList = ref([]);
-const height = ref(document.documentElement.clientHeight - 260 + "px;");
+const height = ref(document.documentElement.clientHeight - 220 + "px;");
// 琛ㄦ牸閰嶇疆-鍒楄〃
const columns = ref([
{ type: "checkbox", width: 60, align: "center" },
@@ -445,28 +428,28 @@
{
title: "鏃ュ巻绫诲瀷",
field: "type",
- width: 150,
+ width: 200,
align: "center",
slots: { default: "status" },
},
{
title: "鏃ュ巻鐢熸晥鏃堕棿",
field: "effectiveDate",
- width: 100,
+ width: 200,
align: "center",
},
{
title: "鏃ュ巻澶辨晥鏃堕棿",
field: "expiringDate",
- width: 150,
+ width: 200,
align: "center",
},
{
title: "鏃ュ巻鍐呭",
field: "content",
- width: 200,
+ width: 230,
align: "center",
- slots: { default: "content" },
+ slots: { default: "mark" },
},
{
title: "閫傜敤宸ュ巶",
@@ -489,41 +472,42 @@
},
},
{
- title: "閫傜敤杞﹂棿",
- field: "applicableWorkshop",
- width: 90,
- align: "center",
- formatter: ({ cellValue, row, column }) => {
- console.log(row.applicableFactory, "llll");
- listAps_shop({ plantCode: row.applicableFactory }).then((response) => {
- console.log(response.rows, "閫傜敤杞﹂棿");
- shopList.value = response.rows;
- });
- for (let i = 0; i < shopList.value.length; i++) {
- if (cellValue === shopList.value[i].id) {
- return shopList.value[i].shopName;
+ title: '閫傜敤杞﹂棿',
+ field: 'applicableWorkshop',
+ width: 200,
+ align: 'center',
+ formatter: (({ cellValue, row, column }) => {
+
+ if (cellValue) {
+ for(let i=0;i<shopList.value.length;i++){
+ if(cellValue===shopList.value[i].id){
+ console.log(cellValue,'cellValue')
+ return shopList.value[i].shopName
+ }
}
}
- },
+ return '';
+ })
},
{
title: "閫傜敤宸ュ簭",
field: "applicableProcess",
- width: 90,
+ width: 200,
align: "center",
},
{
title: "鍒涘缓鑰�",
field: "createBy",
- width: 90,
+ width: 200,
align: "center",
},
{
title: "鍒涘缓鏃堕棿",
field: "createTime",
- width: 90,
+ width: 200,
align: "center",
},
+ { title: '鎿嶄綔', width: 100, fixed:"right", slots: { default: 'buttons' }, align: 'center' }
]);
// 鍒嗛〉灞炴��
const page = ref({
@@ -533,15 +517,28 @@
});
/** 鏌ヨ鏃ュ巻绠$悊鍒楄〃 */
-async function getList() {
+function getList() {
loading.value = true;
listCalendar(queryParams.value).then((response) => {
calendarList.value = response.rows;
- total.value = response.total;
+ page.value.total = response.total;
loading.value = false;
});
- const res = await listAll_plant({});
- plantList.value = res.data;
+ axios.all([
+ /** 鏌ヨ宸ュ巶鍒楄〃 */
+ listAll_plant({}),
+ /** 鏌ヨ杞﹂棿鍒楄〃 */
+ listAll_shop({}),
+ ])
+ .then(axios.spread((response1, response2) => {
+ plantList.value = response1.data;
+ shopList.value = response2.data;
+ loading.value = false;
+ }))
+ .catch(error => {
+ console.error('璇锋眰鍑洪敊:', error);
+ });
+
}
// 鍙栨秷鎸夐挳
@@ -555,7 +552,7 @@
form.value = {
id: null,
description: null,
- type: null,
+ type: "1",
effectiveDate: null,
expiringDate: null,
content: null,
@@ -594,8 +591,8 @@
reset();
open.value = true;
title.value = "娣诲姞鏃ュ巻绠$悊";
- const res = await listAll_plant({});
- plantList.value = res.data;
+ // const res = await listAll_plant({});
+ // plantList.value = res.data;
console.log(res, "sjchhscwhciwhcwi");
}
@@ -615,6 +612,20 @@
const _id = row.id || ids.value;
getCalendar(_id).then((response) => {
form.value = response.data;
+ console.log(
+ form.value,
+ JSON.parse(response.data.content.value),
+ "hushchsuch"
+ );
+ // form.value.content = JSON.parse(response.data.content.value);
+ if (form.value.type === "1") {
+ weekDaysSettingList.value = JSON.parse(
+ response.data.content.value
+ ).weekdays;
+ } else if (form.value.type === "2") {
+ holidays.value = JSON.parse(response.data.content.value).holidays;
+ }
+
open.value = true;
title.value = "淇敼鏃ュ巻绠$悊";
});
@@ -625,13 +636,36 @@
proxy.$refs["calendarRef"].validate((valid) => {
if (valid) {
if (form.value.id != null) {
- updateCalendar(form.value).then((response) => {
- proxy.$modal.msgSuccess("淇敼鎴愬姛");
- open.value = false;
- getList();
- });
+ console.log(form.value, "淇敼鏃ュ巻===");
+ if (form.value.type === "1") {
+ updateCalendar({
+ ...form.value,
+ content: {
+ weekdays: weekDaysSettingList.value,
+ },
+ applicableWorkshop: form.value.applicableWorkshop,
+ applicableProcess: form.value.applicableProcess,
+ }).then((response) => {
+ proxy.$modal.msgSuccess("淇敼鎴愬姛");
+ open.value = false;
+ getList();
+ });
+ } else if (form.value.type === "2") {
+ updateCalendar({
+ ...form.value,
+ content: {
+ holidays: holidays.value,
+ },
+ applicableWorkshop: form.value.applicableWorkshop,
+ applicableProcess: form.value.applicableProcess,
+ }).then((response) => {
+ proxy.$modal.msgSuccess("淇敼鎴愬姛");
+ open.value = false;
+ getList();
+ });
+ }
} else {
- if (typeRadioNumber.value === 1) {
+ if (form.value.type === "1") {
addCalendar({
...form.value,
content: {
@@ -642,7 +676,7 @@
open.value = false;
getList();
});
- }else if(typeRadioNumber.value === 2){
+ } else if (form.value.type === "2") {
addCalendar({
...form.value,
content: {
@@ -687,6 +721,7 @@
function handleSwitchType(e) {
console.log(e, "鏃ユ湡绫诲瀷鍒囨崲");
typeRadioNumber.value = e;
+ form.value.type = e;
form.value.effectiveDate = null;
form.value.expiringDate = null;
form.value.content = null;
@@ -709,13 +744,12 @@
queryParams.value.pageSize = pageSize;
getList();
}
-// function formatType(type) {
-// if(type===1){
-// return "鍛ㄥ伐浣�"
-// }else{
-// return "鑺傚亣鏃�"
-// }
-// }
+// 澶氶�夋閫変腑鏁版嵁
+const handleCheckboxChange = (data) => {
+ ids.value = data.records.map((item) => item.id);
+ single.value = data.records.length !== 1;
+ multiple.value = !data.records.length;
+};
onMounted(() => {
getList();
});
@@ -766,4 +800,13 @@
.factory_use_item {
margin-top: 10px;
}
+.mart5{
+ margin-top:5px;
+}
+.custom-height {
+ height: 200px; /* 鎴栬�呬娇鐢� min-height */
+}
+.auto-height-grid .xe-body .xe-body--row {
+ height: auto; /* 鎴栬�呬娇鐢� min-height */
+}
</style>
--
Gitblit v1.9.3