From 80f27f1672467e91ff3d4fd7f30a817f6f11d5c0 Mon Sep 17 00:00:00 2001
From: CD配唱片 <CD配唱片>
Date: 星期五, 25 四月 2025 22:55:48 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.50.149:8085/r/aps-kj-web into dev

---
 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}}: 宸ヤ綔鏃�;&nbsp;</span>
+              <span v-if="item.work==='n'" status="info" class="mart5">{{item.chineseName}}: 闈炲伐浣滄棩;&nbsp;</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}}: 宸ヤ綔鏃�;&nbsp;</vxe-tag>
+              <vxe-tag v-if="item.work==='n'" status="info" class="mart5">{{item.chineseName}}: 闈炲伐浣滄棩;&nbsp;</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