From e1b04baf60478e3de9e41e1fc39e1e4346321817 Mon Sep 17 00:00:00 2001
From: zhangwei <1504152376@qq.com>
Date: 星期五, 29 八月 2025 13:27:31 +0800
Subject: [PATCH] '一些改动'

---
 src/views/system/dept/utils/detail.tsx |  186 ++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 171 insertions(+), 15 deletions(-)

diff --git a/src/views/system/dept/utils/detail.tsx b/src/views/system/dept/utils/detail.tsx
index 8199063..ac10c22 100644
--- a/src/views/system/dept/utils/detail.tsx
+++ b/src/views/system/dept/utils/detail.tsx
@@ -1,6 +1,6 @@
 import tenderForm from "../uploadform.vue";
 import { ref, h, reactive } from "vue";
-import { addDialog } from "@/components/ReDialog";
+import { addDialog, closeDialog } from "@/components/ReDialog";
 import type { TenderInfo } from "./types";
 import { message } from "@/utils/message";
 import { cloneDeep, deviceDetection } from "@pureadmin/utils";
@@ -9,15 +9,170 @@
 import {
   fabuzhaobiao,
   changezhaobiao,
-  getTenderOrderDetail
+  getTenderOrderDetail,
+  updateTittle,
+  changeDetail,
+  cHangeDelete
 } from "@/api/item/index";
 
 const formRef = ref();
+const convertFujianToObjects = (fujianStr, fujianNameStr) => {
+  // 鍒嗗壊瀛楃涓蹭负鏁扮粍骞惰繃婊ょ┖鍊�
+  const srcArray = fujianStr.split(",").filter(Boolean);
+  const nameArray = fujianNameStr.split(",").filter(Boolean);
 
+  // 鎻愬彇鏂囦欢鍚庣紑浣滀负valu
+  const getFileExtension = fileName => {
+    const lastDotIndex = fileName.lastIndexOf(".");
+    // 濡傛灉娌℃湁鍚庣紑鎴栨枃浠跺悕浠ョ偣缁撳熬锛岃繑鍥炵┖瀛楃涓�
+    if (lastDotIndex === -1 || lastDotIndex === fileName.length - 1) {
+      return "";
+    }
+    return fileName.slice(lastDotIndex + 1).toLowerCase();
+  };
+
+  // 鏄犲皠涓虹洰鏍囧璞℃暟缁�
+  return srcArray.map((src, index) => {
+    // 纭繚鍚嶇О鏁扮粍鏈夊搴旂储寮曠殑鍏冪礌
+    const name = nameArray[index]?.trim() || `鏈煡鏂囦欢${index + 1}`;
+
+    return {
+      name: name,
+      filePath: src.trim(),
+      fileType: getFileExtension(name)
+    };
+  });
+};
 export function useDetail() {
-  function openUploadDialog(title = "涓婁紶", row?: TenderInfo) {
+  async function getDetailList(id) {
+    const res = await getTenderOrderDetail({ id });
+    state.nowInfo = res.result;
+    if (state.nowInfo.fujian) {
+      state.nowInfo.fujianList = convertFujianToObjects(
+        state.nowInfo.fujian,
+        state.nowInfo.fujianName
+      );
+    }
+  }
+  async function openUploadDialog(title = "涓婁紶", row?: TenderInfo) {
+    const detail = await changeDetail({ id: row.id });
+    if (detail.result) {
+      row = detail.result;
+    }
     addDialog({
       title: `${title}鍏憡`,
+      props: {
+        formInline: {
+          tenderId: title == "涓婁紶鍙樻洿" ? row?.id : "",
+          id: row?.id ?? "",
+          projectName: row?.projectName ?? "",
+          toubiaoStartDate: row?.toubiaoStartDate ?? "", //鎶曟爣鎶ュ悕寮�濮嬫椂闂�
+          toubiaoEndDate: row?.toubiaoEndDate ?? "", //鎶曟爣鎶ュ悕缁撴潫鏃堕棿
+          kaibiaoDate: row?.kaibiaoDate ?? "", //寮�鏍囨椂闂�
+          fujian: row?.fujian ?? "", //闄勪欢
+          fujianName: row?.fujianName ?? "", //闄勪欢
+          kaibiaodidian: row?.kaibiaodidian ?? "", //寮�鏍囧湴鐐�
+          biangengwenjian: row?.biangengwenjian ?? "",
+          // 鍙樻洿鏂囦欢
+          biangengwenjianName: row?.biangengwenjianName ?? ""
+        }
+      },
+      width: "30%",
+      draggable: true,
+      fullscreen: deviceDetection(),
+      fullscreenIcon: true,
+      sureBtnLoading: true,
+      closeOnClickModal: false,
+      contentRenderer: () =>
+        h(tenderForm, {
+          ref: formRef,
+          formInline: null,
+          isChange: title == "涓婁紶" ? false : true
+        }),
+      footerButtons: detail.result
+        ? [
+            {
+              label: "鍒犻櫎",
+              type: "danger",
+              text: true,
+              bg: true,
+              popconfirm: { title: "鏄惁纭鍒犻櫎褰撳墠鍙樻洿鍏憡" },
+              btnClick: ({ dialog: { options, index }, button }) => {
+                console.log(options, index, button);
+                cHangeDelete({ id: row?.id }).then(res => {
+                  if (res.code == "200") {
+                    getDetailList(row?.tenderId);
+                    // getTenderOrderDetail({ id: row?.tenderId }).then(res => {
+                    //   state.nowInfo = res.result;
+                    // });
+                    closeDialog(options, index); // 鍏抽棴寮规
+                  } else {
+                    // closeLoading();
+                    message(res.message, {
+                      type: "error"
+                    });
+                  }
+                });
+              }
+            }
+          ]
+        : [],
+      beforeSure: (done, { options, closeLoading }) => {
+        const FormRef = formRef.value.getRef();
+        const curData = cloneDeep(options.props.formInline as TenderInfo);
+        async function chores() {
+          // message(`鎮�${title}浜嗛」鐩悕绉颁负${curData.projectName}鐨勮繖鏉℃暟鎹甡, {
+          //   type: "success"
+          // });
+          // curData.dingbiaoguize = curData.dingbiaoguize.join("");
+          let res;
+          if (title == "涓婁紶") {
+            curData.id = state.nowInfo.id;
+            res = await fabuzhaobiao(curData);
+          } else {
+            res = await changezhaobiao(curData);
+          }
+          if (res.code == "200") {
+            getDetailList(row?.id);
+            // getTenderOrderDetail({ id: row?.id }).then(res => {
+            //   state.nowInfo = res.result;
+            // });
+            done(); // 鍏抽棴寮规
+          } else {
+            closeLoading();
+            message(res.message, {
+              type: "error"
+            });
+          }
+        }
+        FormRef.validate((valid, obj) => {
+          if (valid) {
+            // 琛ㄥ崟瑙勫垯鏍¢獙閫氳繃
+            if (title === "鏂板") {
+              // 瀹為檯寮�鍙戝厛璋冪敤鏂板鎺ュ彛锛屽啀杩涜涓嬮潰鎿嶄綔
+              chores();
+            } else {
+              // 瀹為檯寮�鍙戝厛璋冪敤淇敼鎺ュ彛锛屽啀杩涜涓嬮潰鎿嶄綔
+              chores();
+            }
+          } else {
+            closeLoading();
+            const fail = [];
+            for (const key in obj) {
+              fail.push(obj[key][0].message);
+            }
+            message(fail[0], {
+              type: "warning"
+            });
+            return false;
+          }
+        });
+      }
+    });
+  }
+  function changeDialog(title = "涓婁紶", row?: TenderInfo) {
+    addDialog({
+      title: `淇敼鏍囬`,
       props: {
         formInline: {
           tenderId: title == "涓婁紶鍙樻洿" ? row?.id : "",
@@ -41,7 +196,8 @@
         h(tenderForm, {
           ref: formRef,
           formInline: null,
-          isChange: title == "涓婁紶" ? false : true
+          changeDetail: true,
+          isChange: true
         }),
       beforeSure: (done, { options, closeLoading }) => {
         const FormRef = formRef.value.getRef();
@@ -51,15 +207,12 @@
           //   type: "success"
           // });
           // curData.dingbiaoguize = curData.dingbiaoguize.join("");
-          let res;
-          if (title == "涓婁紶") {
-            curData.id = state.nowInfo.id;
-            res = await fabuzhaobiao(curData);
-          } else {
-            res = await changezhaobiao(curData);
-          }
+          curData.id = state.nowInfo.id;
+          const res = await updateTittle(curData);
           if (res.code == "200") {
-            getTenderOrderDetail({ id: row?.id });
+            getTenderOrderDetail({ id: row?.id }).then(res => {
+              state.nowInfo = res.result;
+            });
             done(); // 鍏抽棴寮规
           } else {
             closeLoading();
@@ -101,7 +254,8 @@
       Authorization: `Bearer ${getToken()?.accessToken}`
     },
     nowInfo: Object as PropType<FormItemProps>,
-    formDataNew: {}
+    formDataNew: {},
+    srcList: []
   });
   //鐢熸垚鏃堕棿鎴�+闅忔満鏁�
   // 鐢熸垚鏃堕棿鎴�+闅忔満鏁扮殑鍑芥暟
@@ -129,12 +283,14 @@
     );
     // 鎷兼帴鏃堕棿鎴冲拰闅忔満鏁�
     return (
-      `${dirPath}/${timestamp}_${randomNumber}` + filename.match(/\.[^.]+$/)
+      `${dirPath}${timestamp}_${randomNumber}` + filename.match(/\.[^.]+$/)
     );
   }
   return {
     openUploadDialog,
     state,
-    generateTimestampWithRandom
+    generateTimestampWithRandom,
+    changeDialog,
+    getDetailList
   };
 }

--
Gitblit v1.9.1