| | |
| | | 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"; |
| | |
| | | import { |
| | | fabuzhaobiao, |
| | | changezhaobiao, |
| | | getTenderOrderDetail |
| | | getTenderOrderDetail, |
| | | updateTittle, |
| | | changeDetail, |
| | | cHangeDelete |
| | | } from "@/api/item/index"; |
| | | |
| | | const formRef = ref(); |
| | | |
| | | export function useDetail() { |
| | | function openUploadDialog(title = "上传", row?: TenderInfo) { |
| | | 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") { |
| | | 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") { |
| | | 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 : "", |
| | |
| | | h(tenderForm, { |
| | | ref: formRef, |
| | | formInline: null, |
| | | isChange: title == "上传" ? false : true |
| | | changeDetail: true, |
| | | isChange: true |
| | | }), |
| | | beforeSure: (done, { options, closeLoading }) => { |
| | | const FormRef = formRef.value.getRef(); |
| | |
| | | // 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(); |
| | |
| | | Authorization: `Bearer ${getToken()?.accessToken}` |
| | | }, |
| | | nowInfo: Object as PropType<FormItemProps>, |
| | | formDataNew: {} |
| | | formDataNew: {}, |
| | | srcList: [] |
| | | }); |
| | | //生成时间戳+随机数 |
| | | // 生成时间戳+随机数的函数 |
| | |
| | | ); |
| | | // 拼接时间戳和随机数 |
| | | return ( |
| | | `${dirPath}/${timestamp}_${randomNumber}` + filename.match(/\.[^.]+$/) |
| | | `${dirPath}${filename}${timestamp}_${randomNumber}` + |
| | | filename.match(/\.[^.]+$/) |
| | | ); |
| | | } |
| | | return { |
| | | openUploadDialog, |
| | | state, |
| | | generateTimestampWithRandom |
| | | generateTimestampWithRandom, |
| | | changeDialog |
| | | }; |
| | | } |