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