| | |
| | | }); |
| | | }; |
| | | |
| | | // ææ ä»£çå页æ¥è¯¢éæ¿åºè®¢åå¤ç |
| | | export const findWechatOpenId = (data?: object) => { |
| | | return http.request<PageResult>("post", baseUrlApi(""), { |
| | | data |
| | | }); |
| | | }; |
| | | |
| | | // éè´ä»£ç人å¢å éæ¿åºè®¢åå¤çè·åèç³»æ¹å¼ |
| | | export const addgetcontact = () => { |
| | | return http.request<Result>( |
| | | "post", |
| | | baseUrlApi("/api/tenderOrder/addgetcontact") |
| | | ); |
| | | }; |
| | | |
| | | // éè´ä»£ç人å¢å éæ¿åºè®¢åå¤ç |
| | | export const caigourenAdd = (data?: object) => { |
| | | return http.request<Result>("post", baseUrlApi("/api/tenderOrder/add"), { |
| | |
| | | }); |
| | | }; |
| | | |
| | | // éè´ä»£ç人å¢å éæ¿åºè®¢åå¤ç |
| | | export const updateTittle = (data?: object) => { |
| | | return http.request<Result>( |
| | | "post", |
| | | baseUrlApi("/api/tenderOrder/updateTittle"), |
| | | { |
| | | data |
| | | } |
| | | ); |
| | | }; |
| | | |
| | | // éè´ä»£çäººæ´æ°éæ¿åºè®¢åå¤ç |
| | | export const caigourenUpdate = (data?: object) => { |
| | | return http.request<Result>("post", baseUrlApi("/api/tenderOrder/update"), { |
| | |
| | | export const baseUrlApi = (url: string) => |
| | | process.env.NODE_ENV === "development" |
| | | ? `/api${url}` |
| | | : `192.168.18.52:5005${url}`; |
| | | : `192.168.18.15:5005${url}`; |
| | | // : `192.168.18.52:5005${url}`; |
| | | export const uploadUrlApi = (url: string) => |
| | | process.env.NODE_ENV === "development" |
| | | ? `/oss${url}` |
| | |
| | | newFormInline.value.biangengwenjian = path; |
| | | } else { |
| | | newFormInline.value.zhaobiaowenjian = path; |
| | | newFormInline.value.ZhaobiaowenjianName = file.name; |
| | | } |
| | | }); |
| | | } |
| | |
| | | baomingfei: null, // æ¥åè´¹ï¼å¯éï¼ |
| | | toubiaobaozhengjin: null, // ææ ä¿è¯éï¼å¯éï¼ |
| | | lianhetitoubiao: null, // èå使æ ï¼å¯éï¼ |
| | | kaibiaofangshi: null, // 弿 æ¹å¼ï¼å¯éï¼ |
| | | kaibiaofangshi: "纸质æ ", // 弿 æ¹å¼ï¼å¯éï¼ |
| | | shifoufenbao: "false", // æ¯å¦åå
ï¼å¯éï¼ |
| | | shifoutuisongxuanchuan: "true", // æ¯å¦æ¨éå®£ä¼ ï¼å¯éï¼ |
| | | caigourenmingcheng: null, // éè´äººåç§°ï¼å¯éï¼ |
| | |
| | | </template> |
| | | |
| | | <script setup lang="ts"> |
| | | import { ref } from "vue"; |
| | | import pdfSrc from "./åå·ææ ææ 交ææå¡å¹³å°ç¨æ·æä½æåï¼ä»£çæºæï¼.pdf"; |
| | | import { ref, defineProps } from "vue"; |
| | | defineProps({ |
| | | pdfSrc: { |
| | | type: String, |
| | | default: "" |
| | | } |
| | | }); |
| | | let isLoading = ref(true); |
| | | const iframeLoaded = () => { |
| | | console.log("jjjjjj"); |
| | |
| | | <script setup lang="tsx"> |
| | | import { ref, reactive, onMounted, computed, PropType } from "vue"; |
| | | import { ref, reactive, onMounted, computed, PropType, h } from "vue"; |
| | | import { useRenderIcon } from "@/components/ReIcon/src/hooks"; |
| | | import { useDept } from "./utils/hook"; |
| | | import { useDetail } from "./utils/detail"; |
| | | import { getTenderOrderDetail } from "@/api/item/index"; |
| | | const isLoading = ref(false); |
| | | import { addDialog } from "@/components/ReDialog"; |
| | | import pdfPreview from "@/views/system/component/pdfPreview.vue"; |
| | | import { deviceDetection } from "@pureadmin/utils"; |
| | | interface Emits { |
| | | (e: "backListPage"): void; |
| | | } |
| | |
| | | import IconParkSolidBack from "~icons/icon-park-solid/back"; |
| | | |
| | | const { openDialog } = useDept(ref({})); |
| | | const { openUploadDialog, state } = useDetail(); |
| | | const { openUploadDialog, state, changeDialog } = useDetail(); |
| | | defineOptions({ |
| | | name: "itemdetail" |
| | | }); |
| | |
| | | }; |
| | | const previewPdf = pdfUrl => { |
| | | addDialog({ |
| | | width: "80%", |
| | | title: "确认信æ¯", |
| | | contentRenderer: () => ( |
| | | <iframe |
| | | type="application/pdf" |
| | | src={pdfUrl} |
| | | width="800" |
| | | height="600" |
| | | ></iframe> |
| | | ), // jsx è¯æ³ ï¼æ³¨æå¨.vueæä»¶å¯ç¨jsxè¯æ³ï¼éè¦å¨scriptå¼å¯lang="tsx"ï¼ |
| | | closeCallBack: ({ options, args }) => { |
| | | // options.props æ¯ååºå¼ç |
| | | // const { formInline } = options.props as FormProps; |
| | | // const text = `å§åï¼${formInline.user} åå¸ï¼${formInline.region}`; |
| | | if (args?.command === "cancel") { |
| | | // æ¨ç¹å»äºåæ¶æé® |
| | | // active.value -= 1; |
| | | } else if (args?.command === "sure") { |
| | | } else { |
| | | } |
| | | } |
| | | title: `é¢è§pdf`, |
| | | props: {}, |
| | | width: "60%", |
| | | draggable: true, |
| | | fullscreen: deviceDetection(), |
| | | fullscreenIcon: true, |
| | | sureBtnLoading: true, |
| | | closeOnClickModal: false, |
| | | contentRenderer: () => h(pdfPreview, { pdfSrc: pdfUrl }) |
| | | // jsx è¯æ³ ï¼æ³¨æå¨.vueæä»¶å¯ç¨jsxè¯æ³ï¼éè¦å¨scriptå¼å¯lang="tsx"ï¼ |
| | | }); |
| | | }; |
| | | </script> |
| | |
| | | </div> |
| | | </template> |
| | | <div> |
| | | <el-descriptions class="margin-top" :column="3" border> |
| | | <el-descriptions |
| | | class="margin-top" |
| | | :column="3" |
| | | border |
| | | label-width="120" |
| | | > |
| | | <el-descriptions-item label="项ç®ç¼å·"> |
| | | {{ state.nowInfo.projectCode }} |
| | | </el-descriptions-item> |
| | |
| | | <el-descriptions-item label="èå使æ "> |
| | | {{ state.nowInfo.lianhetitoubiao }} |
| | | </el-descriptions-item> |
| | | <!-- <el-descriptions-item label="Remarks"> |
| | | <el-descriptions-item label="弿 æ¹å¼"> |
| | | {{ state.nowInfo.kaibiaofangshi }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="Address" /> --> |
| | | </el-descriptions> |
| | | </div> |
| | | </el-card> |
| | |
| | | <div> |
| | | <el-form label-width="auto" style="max-width: 1000px"> |
| | | <el-form-item label="项ç®ä¿¡æ¯ï¼"> |
| | | ææ æ¥åå¼å§æ¶é´ï¼ |
| | | {{ state.nowInfo.toubiaoStartDate ?? "ææ " }} |
| | | <span class="mr-4"> |
| | | ææ æ¥åå¼å§æ¶é´ï¼{{ |
| | | state.nowInfo.toubiaoStartDate ?? "ææ " |
| | | }} |
| | | </span> |
| | | <span class="mr-4"> |
| | | ææ æ¥åæªæ¢æ¶é´ï¼ |
| | | {{ state.nowInfo.toubiaoEndDate }} |
| | | 弿 æ¶é´ï¼{{ state.nowInfo.kaibiaoDate }} |
| | | {{ state.nowInfo.toubiaoEndDate ?? "ææ " }} |
| | | </span> |
| | | <span class="mr-4"> |
| | | 弿 æ¶é´ï¼{{ state.nowInfo.kaibiaoDate ?? "ææ " }} |
| | | </span> |
| | | </el-form-item> |
| | | <el-form-item label="ä¸ä¼ å
¬åï¼"> |
| | | <el-button |
| | |
| | | type="primary" |
| | | plain |
| | | size="small" |
| | | @click="openUploadDialog('ä¸ä¼ ')" |
| | | @click="openUploadDialog('ä¸ä¼ ', state.nowInfo)" |
| | | > |
| | | ä¸ä¼ å
Œ |
| | | </el-button> |
| | |
| | | > |
| | | ç¹å»é¢è§ |
| | | </el-button> |
| | | <el-button type="primary" plain size="small"> |
| | | <el-button |
| | | v-if="state.nowInfo?.changeOrder" |
| | | type="primary" |
| | | plain |
| | | size="small" |
| | | @click=" |
| | | previewPdf(state.nowInfo.changeOrder.biangengwenjian) |
| | | " |
| | | > |
| | | ç¹å»é¢è§åæ´å
Œ |
| | | </el-button> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | size="small" |
| | | @click="changeDialog('ä¸ä¼ åæ´', state.nowInfo)" |
| | | > |
| | | ä¿®æ¹æ é¢ |
| | | </el-button> |
| | | </div> |
| | |
| | | import { Operation } from "@element-plus/icons-vue"; |
| | | import { getCaigoufangshiList } from "@/api/item/index"; |
| | | |
| | | const { state } = useDept(ref({})); |
| | | const { state, nowRole } = useDept(ref({})); |
| | | const props = withDefaults(defineProps<FormProps>(), { |
| | | formInline: () => ({ |
| | | id: "", |
| | |
| | | baomingfei: null, // æ¥åè´¹ï¼å¯éï¼ |
| | | toubiaobaozhengjin: null, // ææ ä¿è¯éï¼å¯éï¼ |
| | | lianhetitoubiao: null, // èå使æ ï¼å¯éï¼ |
| | | kaibiaofangshi: null, // 弿 æ¹å¼ï¼å¯éï¼ |
| | | kaibiaofangshi: "纸质æ ", // 弿 æ¹å¼ï¼å¯éï¼ |
| | | shifoufenbao: "false", // æ¯å¦åå
ï¼å¯éï¼ |
| | | shifoutuisongxuanchuan: "true", // æ¯å¦æ¨éå®£ä¼ ï¼å¯éï¼ |
| | | caigourenmingcheng: null, // éè´äººåç§°ï¼å¯éï¼ |
| | |
| | | </el-form-item> |
| | | </re-col> |
| | | <re-col :value="6" :xs="24" :sm="24"> |
| | | <el-form-item label="项ç®ç¼å·"> |
| | | <el-form-item label="项ç®ç¼å·" prop="projectCode"> |
| | | <el-input |
| | | v-model="newFormInline.projectCode" |
| | | |
| | | clearable |
| | | placeholder="请è¾å
¥é¡¹ç®ç¼å·" |
| | | /> |
| | |
| | | </p> |
| | | </re-col> |
| | | <re-col :value="6" :xs="24" :sm="24"> |
| | | <el-form-item label="ä»£çæºæåç§°" prop="dailijigoumingcheng"> |
| | | <el-form-item |
| | | label="ä»£çæºæåç§°" |
| | | :prop="nowRole.code == 'DLJG' ? 'dailijigoumingcheng' : ''" |
| | | > |
| | | <el-input |
| | | v-model="newFormInline.dailijigoumingcheng" |
| | | clearable |
| | |
| | | </el-form-item> |
| | | </re-col> |
| | | <re-col :value="6" :xs="24" :sm="24"> |
| | | <el-form-item label="è系人" prop="dailiLianxiren"> |
| | | <el-form-item |
| | | label="è系人" |
| | | :prop="nowRole.code == 'DLJG' ? 'dailiLianxiren' : ''" |
| | | > |
| | | <el-input |
| | | v-model="newFormInline.dailiLianxiren" |
| | | clearable |
| | |
| | | </el-form-item> |
| | | </re-col> |
| | | <re-col :value="6" :xs="24" :sm="24"> |
| | | <el-form-item label="èç³»çµè¯" prop="dailiLianxidianhua"> |
| | | <el-form-item |
| | | label="èç³»çµè¯" |
| | | :prop="nowRole.code == 'DLJG' ? 'dailiLianxidianhua' : ''" |
| | | > |
| | | <el-input |
| | | v-model="newFormInline.dailiLianxidianhua" |
| | | clearable |
| | |
| | | </el-form-item> |
| | | </re-col> |
| | | <re-col :value="6" :xs="24" :sm="24"> |
| | | <el-form-item label="çµåé®ç®±" prop="dailiDianziyoujian"> |
| | | <el-form-item |
| | | label="çµåé®ç®±" |
| | | :prop="nowRole.code == 'DLJG' ? 'dailiDianziyoujian' : ''" |
| | | > |
| | | <el-input |
| | | v-model="newFormInline.dailiDianziyoujian" |
| | | clearable |
| | |
| | | </el-form-item> |
| | | </re-col> |
| | | <re-col :value="12" :xs="24" :sm="24"> |
| | | <el-form-item label="éä¿¡å°å" prop="dailiTongxindizhi"> |
| | | <el-form-item |
| | | label="éä¿¡å°å" |
| | | :prop="nowRole.code == 'DLJG' ? 'dailiTongxindizhi' : ''" |
| | | > |
| | | <el-input |
| | | v-model="newFormInline.dailiTongxindizhi" |
| | | clearable |
| | |
| | | </el-form-item> |
| | | </re-col> |
| | | <re-col :value="6" :xs="24" :sm="24"> |
| | | <el-form-item label="项ç®ç»ç" prop="dailiXiangmujingli"> |
| | | <el-form-item |
| | | label="项ç®ç»ç" |
| | | :prop="nowRole.code == 'DLJG' ? 'dailiXiangmujingli' : ''" |
| | | > |
| | | <el-input |
| | | v-model="newFormInline.dailiXiangmujingli" |
| | | clearable |
| | |
| | | </el-form-item> |
| | | </re-col> |
| | | <re-col :value="6" :xs="24" :sm="24"> |
| | | <el-form-item label="èç³»çµè¯" prop="dailijingliLianxidianhua"> |
| | | <el-form-item |
| | | label="èç³»çµè¯" |
| | | :prop="nowRole.code == 'DLJG' ? 'dailijingliLianxidianhua' : ''" |
| | | > |
| | | <el-input |
| | | v-model="newFormInline.dailijingliLianxidianhua" |
| | | clearable |
| | |
| | | import { useDept } from "./utils/hook"; |
| | | import { PureTableBar } from "@/components/RePureTableBar"; |
| | | import { useRenderIcon } from "@/components/ReIcon/src/hooks"; |
| | | import { type CusExtendDto } from "@/utils/auth"; |
| | | |
| | | import Delete from "~icons/ep/delete"; |
| | | import EditPen from "~icons/ep/edit-pen"; |
| | | import Refresh from "~icons/ep/refresh"; |
| | | import AddFill from "~icons/ri/add-circle-line"; |
| | | import IconamoonEnterDuotone from "~icons/iconamoon/enter-duotone"; |
| | | import { useUserStoreHook } from "@/store/modules/user"; |
| | | |
| | | defineOptions({ |
| | | name: "SystemDept" |
| | |
| | | pagination, |
| | | checkboxAsRadio, |
| | | onSelectionCancel, |
| | | onbatchDel |
| | | onbatchDel, |
| | | nowRole |
| | | } = useDept(tableRef); |
| | | |
| | | function onFullscreen() { |
| | | // éç½®è¡¨æ ¼é«åº¦ |
| | | tableRef.value.setAdaptive(); |
| | | } |
| | | const nowRole = computed(() => { |
| | | return useUserStoreHook().nowRole; |
| | | }); |
| | | |
| | | const enterDetail = item => { |
| | | isList.value = false; |
| | | nowItem.value = item; |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col |
| | | v-if="nowRole.code == 'CGR'" |
| | | v-if="nowRole.code == 'DLJG'" |
| | | :xs="24" |
| | | :sm="12" |
| | | :md="8" |
| | |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col |
| | | v-if="nowRole.code == 'DLJG'" |
| | | v-if="nowRole.code == 'CGR'" |
| | | :xs="24" |
| | | :sm="12" |
| | | :md="8" |
| | |
| | | <el-button type="primary" :loading="loading" @click="onSearch"> |
| | | æç´¢ |
| | | </el-button> |
| | | <el-button :icon="useRenderIcon(Refresh)" @click="resetForm"> |
| | | <!-- <el-button :icon="useRenderIcon(Refresh)" @click="resetForm"> |
| | | éç½® |
| | | </el-button> |
| | | </el-button> --> |
| | | <el-button type="primary" @click="openDialog()"> |
| | | æ°å¢ |
| | | </el-button> |
| | |
| | | toubiaoEndDate: "", // ææ æ¥åç»ææ¶é´ï¼å¿
å¡«ï¼æ ¼å¼ï¼yyyy-MM-dd HH:mm:ssï¼ |
| | | kaibiaoDate: "", // 弿 æ¶é´ï¼å¿
å¡«ï¼æ ¼å¼ï¼yyyy-MM-dd HH:mm:ssï¼ |
| | | zhaobiaowenjian: "", // ææ æä»¶ï¼å¿
å¡«ï¼é¿åº¦1-512åç¬¦ï¼ |
| | | zhaobiaowenjianName: "", |
| | | biangengwenjian: "", |
| | | fujian: "", // éä»¶ï¼å¯éï¼æå¤§é¿åº¦512å符ï¼å¯ä¸ºç©ºï¼ |
| | | kaibiaodidian: "" // 弿 å°ç¹ï¼å¿
å¡«ï¼é¿åº¦1-250åç¬¦ï¼ |
| | | }), |
| | | isChange: null |
| | | isChange: null, |
| | | changeDetail: null |
| | | }); |
| | | interface FormInlineType { |
| | | // é¡¹ç®æ é¢ |
| | |
| | | kaibiaoDate: string | null | undefined; |
| | | // ææ æä»¶ï¼å¯è½æ¯æä»¶è·¯å¾ãIDææä»¶å¯¹è±¡ï¼ |
| | | zhaobiaowenjian: string | null | undefined; |
| | | // ææ æä»¶åï¼å¯è½æ¯æä»¶è·¯å¾ãIDææä»¶å¯¹è±¡ï¼ |
| | | zhaobiaowenjianName?: string | null | undefined; |
| | | // åæ´æä»¶ |
| | | biangengwenjian: string | null | undefined; |
| | | // åæ´æä»¶ |
| | | biangengwenjianName?: string | null | undefined; |
| | | // éä»¶ï¼ææ¬æè¿°æè·¯å¾ï¼ |
| | | fujian: string | null | undefined; |
| | | // 弿 å°ç¹ |
| | |
| | | fetchCredentials(file); |
| | | // upload.value!.submit(); |
| | | }; |
| | | const handleChangeFile = file => { |
| | | console.log(file); |
| | | |
| | | if (file.status !== "ready") return; |
| | | // let suffName = file.name.substring(file.name.lastIndexOf(".") + 1); |
| | | // const extension = suffName === "pdf"; |
| | | // // const isLt10M = file.size / 1024 / 1024 < 10; |
| | | // if (!extension) { |
| | | // message(`ä»
æ¯æpdfæ ¼å¼ï¼è¯·ä¸ä¼ pdf`, { |
| | | // type: "error" |
| | | // }); |
| | | // validateForm.fileList = []; |
| | | // return false; |
| | | // } |
| | | // fetchCredentials(file); |
| | | // upload.value!.submit(); |
| | | }; |
| | | // state.formDataNew = { |
| | | // policy: res.result.policy, //表åå |
| | | // "x-oss-signature-version": res.result.x_oss_signature_version, //æå®ç¾åççæ¬åç®æ³ |
| | |
| | | formData.append("key", keyVal); // æä»¶å |
| | | formData.append("file", file.raw); // file å¿
须为æåä¸ä¸ªè¡¨åå |
| | | uploadFileAli(formData, res.result.url).then(res => { |
| | | let path = `${upUrl}"/"${upPath}${upPath};`; |
| | | let path = `${upUrl}${keyVal}`; |
| | | if (props.isChange) { |
| | | newFormInline.value.biangengwenjian = path; |
| | | newFormInline.value.biangengwenjianName = file.name; |
| | | } else { |
| | | newFormInline.value.zhaobiaowenjian = path; |
| | | newFormInline.value.zhaobiaowenjianName = file.name; |
| | | } |
| | | }); |
| | | } |
| | | }; |
| | | const defaultTime = new Date(2000, 1, 1, 9, 30, 0); |
| | | const beforeAvatarUpload: UploadProps["beforeUpload"] = rawFile => { |
| | | isLoading.value = true; |
| | | if (rawFile.type !== "application/pdf") { |
| | |
| | | ref="ruleFormRef" |
| | | :model="newFormInline" |
| | | :rules="gonggaoRules" |
| | | label-width="140px" |
| | | :label-width="props.changeDetail ? '50px' : '140px'" |
| | | > |
| | | <el-row :gutter="30"> |
| | | <div v-if="props.isChange"> |
| | | <el-row v-if="props.changeDetail" :gutter="10"> |
| | | <re-col :value="24" :xs="24" :sm="24"> |
| | | <el-form-item label="æ é¢" prop="projectName"> |
| | | <el-input |
| | | v-model="newFormInline.projectName" |
| | | clearable |
| | | placeholder="请è¾å
¥æ é¢" |
| | | /> |
| | | </el-form-item> |
| | | </re-col> |
| | | </el-row> |
| | | <el-row v-else :gutter="30"> |
| | | <div v-if="props.isChange" style="width: 100%"> |
| | | <re-col :value="24" :xs="24" :sm="24"> |
| | | <el-form-item label="æ é¢" prop="projectName"> |
| | | <el-input |
| | |
| | | v-model="newFormInline.toubiaoStartDate" |
| | | type="datetime" |
| | | clearable |
| | | :default-time="defaultTime" |
| | | placeholder="è¯·éæ©ææ æ¥åå¼å§æ¶é´" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | /> |
| | |
| | | v-model="newFormInline.toubiaoEndDate" |
| | | type="datetime" |
| | | clearable |
| | | :default-time="defaultTime" |
| | | placeholder="è¯·éæ©ææ æ¥åç»ææ¶é´" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | /> |
| | |
| | | v-model="newFormInline.kaibiaoDate" |
| | | type="datetime" |
| | | clearable |
| | | :default-time="defaultTime" |
| | | placeholder="è¯·éæ©å¼æ æ¶é´" |
| | | value-format="YYYY-MM-DD HH:mm:ss" |
| | | /> |
| | |
| | | </el-upload> |
| | | </el-form-item> |
| | | </re-col> |
| | | <re-col v-if="!props.isChange" :value="24" :xs="24" :sm="24"> |
| | | <el-form-item label="éä»¶" prop=""> |
| | | <el-upload |
| | | ref="upload" |
| | | v-model:file-list="validateForm.fileList" |
| | | multiple |
| | | :on-exceed="handleExceed" |
| | | :auto-upload="false" |
| | | :on-success="handleAvatarSuccess" |
| | | :before-upload="beforeAvatarUpload" |
| | | :headers="state.headers" |
| | | @change="handleChangeFile" |
| | | > |
| | | <el-button type="primary">ç¹å»ä¸ä¼ </el-button> |
| | | </el-upload> |
| | | </el-form-item> |
| | | </re-col> |
| | | <re-col :value="24" :xs="24" :sm="24"> |
| | | <el-form-item label="弿 å°ç¹" prop="kaibiaodidian"> |
| | | <el-input |
| | |
| | | import { |
| | | fabuzhaobiao, |
| | | changezhaobiao, |
| | | getTenderOrderDetail |
| | | getTenderOrderDetail, |
| | | updateTittle |
| | | } from "@/api/item/index"; |
| | | |
| | | const formRef = ref(); |
| | |
| | | res = await changezhaobiao(curData); |
| | | } |
| | | if (res.code == "200") { |
| | | getTenderOrderDetail({ id: 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 : "", |
| | | id: title == "ä¸ä¼ " ? row?.id : "", |
| | | projectName: row?.projectName ?? "", |
| | | toubiaoStartDate: row?.toubiaoStartDate ?? "", //ææ æ¥åå¼å§æ¶é´ |
| | | toubiaoEndDate: row?.toubiaoEndDate ?? "", //ææ æ¥åç»ææ¶é´ |
| | | kaibiaoDate: row?.kaibiaoDate ?? "", //弿 æ¶é´ |
| | | biangengwenjian: "", //ææ æä»¶ |
| | | fujian: row?.fujian ?? "", //éä»¶ |
| | | kaibiaodidian: row?.kaibiaodidian ?? "" //弿 å°ç¹ |
| | | } |
| | | }, |
| | | width: "30%", |
| | | draggable: true, |
| | | fullscreen: deviceDetection(), |
| | | fullscreenIcon: true, |
| | | sureBtnLoading: true, |
| | | closeOnClickModal: false, |
| | | contentRenderer: () => |
| | | h(tenderForm, { |
| | | ref: formRef, |
| | | formInline: null, |
| | | changeDetail: true, |
| | | isChange: true |
| | | }), |
| | | 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(""); |
| | | curData.id = state.nowInfo.id; |
| | | const res = await updateTittle(curData); |
| | | if (res.code == "200") { |
| | | getTenderOrderDetail({ id: row?.id }).then(res => { |
| | | state.nowInfo = res.result; |
| | | }); |
| | | done(); // å
³éå¼¹æ¡ |
| | | } else { |
| | | closeLoading(); |
| | |
| | | ); |
| | | // æ¼æ¥æ¶é´æ³åéæºæ° |
| | | return ( |
| | | `${dirPath}/${timestamp}_${randomNumber}` + filename.match(/\.[^.]+$/) |
| | | `${dirPath}${timestamp}_${randomNumber}` + filename.match(/\.[^.]+$/) |
| | | ); |
| | | } |
| | | return { |
| | | openUploadDialog, |
| | | state, |
| | | generateTimestampWithRandom |
| | | generateTimestampWithRandom, |
| | | changeDialog |
| | | }; |
| | | } |
| | |
| | | import editForm from "../form.vue"; |
| | | import { handleTree } from "@/utils/tree"; |
| | | import { message } from "@/utils/message"; |
| | | import { zhaobiaoPageOrder } from "@/api/item/index"; |
| | | import { zhaobiaoPageOrder, findWechatOpenId } from "@/api/item/index"; |
| | | |
| | | import { |
| | | getCaigoufangshiList, |
| | |
| | | getOrderStatusList, |
| | | getRegionList, |
| | | getDaimaleixingList, |
| | | addgetcontact, |
| | | caigourenAdd, |
| | | caigourenUpdate, |
| | | caigourenDelete, |
| | |
| | | } from "@/api/item/index"; |
| | | // import { usePublicHooks } from "../../hooks"; |
| | | import { addDialog } from "@/components/ReDialog"; |
| | | import { type Ref, reactive, ref, onMounted, h } from "vue"; |
| | | import { type Ref, reactive, ref, onMounted, h, computed } from "vue"; |
| | | import type { FormItemProps } from "./types"; |
| | | import { cloneDeep, deviceDetection, getKeyList } from "@pureadmin/utils"; |
| | | // import { useUserStoreHook } from "@/store/modules/user"; |
| | | import type { PaginationProps } from "@pureadmin/table"; |
| | | import { useUserStoreHook } from "@/store/modules/user"; |
| | | |
| | | import pdfPreview from "../../component/pdfPreview.vue"; |
| | | // const nowRole = computed(() => { |
| | |
| | | const selectedNum = ref(0); |
| | | |
| | | export function useDept(tableRef: Ref) { |
| | | const nowRole = computed(() => { |
| | | return useUserStoreHook().nowRole; |
| | | }); |
| | | const form = reactive({ |
| | | // æ°å¢æ¥æèå´ï¼å¯ä¸º nullï¼ç±»å为æ°ç» |
| | | createDateRange: null, |
| | |
| | | // const { tagStyle } = usePublicHooks(); |
| | | const getOrderStatus = row => { |
| | | const res = state.orderStatusList.find(item => { |
| | | return row.orderStatus == item.status; |
| | | return row.orderStatus == item.value; |
| | | }); |
| | | return res?.label; |
| | | }; |
| | |
| | | } |
| | | }; |
| | | async function onSearch() { |
| | | findWechatOpenId(); |
| | | const obj = cloneDeep(form); |
| | | obj.tousu = obj.tousu.join(""); |
| | | obj.zhiyi = obj.zhiyi.join(""); |
| | |
| | | return newTreeList; |
| | | } |
| | | |
| | | function openDialog(title = "æ°å¢", row?: FormItemProps) { |
| | | async function openDialog(title = "æ°å¢", row?: FormItemProps) { |
| | | const { result } = title == "æ°å¢" ? await addgetcontact() : ""; |
| | | |
| | | addDialog({ |
| | | title: `${title}项ç®`, |
| | | props: { |
| | |
| | | baomingfei: row?.baomingfei ?? null, // æ¥åè´¹ï¼å¯éï¼ |
| | | toubiaobaozhengjin: row?.toubiaobaozhengjin ?? null, // ææ ä¿è¯éï¼å¯éï¼ |
| | | lianhetitoubiao: row?.lianhetitoubiao ?? null, // èå使æ ï¼å¯éï¼ |
| | | kaibiaofangshi: row?.kaibiaofangshi ?? null, // 弿 æ¹å¼ï¼å¯éï¼ |
| | | kaibiaofangshi: row?.kaibiaofangshi ?? "纸质æ ", // 弿 æ¹å¼ï¼å¯éï¼ |
| | | shifoufenbao: row?.shifoufenbao ?? "false", // æ¯å¦åå
ï¼å¯éï¼ |
| | | shifoutuisongxuanchuan: row?.shifoutuisongxuanchuan ?? "true", // æ¯å¦æ¨éå®£ä¼ ï¼å¯éï¼ |
| | | caigourenmingcheng: row?.caigourenmingcheng ?? null, // éè´äººåç§°ï¼å¯éï¼ |
| | | caigourenmingcheng: |
| | | row?.caigourenmingcheng ?? result?.caigourenmingcheng, // éè´äººåç§°ï¼å¯éï¼ |
| | | xingzhengquyu: row?.xingzhengquyu.split(",") ?? [], // è¡æ¿åºåï¼å¯éï¼ |
| | | xingzhengquyuName: row?.xingzhengquyuName ?? null, // è¡æ¿åºååç§°ï¼å¯éï¼ |
| | | jigoudaima: row?.jigoudaima ?? null, // æºæä»£ç ï¼å¯éï¼ |
| | | jigoudaima: row?.jigoudaima ?? result?.jigoudaima, // æºæä»£ç ï¼å¯éï¼ |
| | | daimaleixing: row?.daimaleixing ?? null, // 代ç ç±»åï¼å¯éï¼ |
| | | lianxiren: row?.lianxiren ?? null, // è系人ï¼å¯éï¼ |
| | | lianxidianhua: row?.lianxidianhua ?? null, // èç³»çµè¯ï¼å¯éï¼ |
| | | tongxindizhi: row?.tongxindizhi ?? null, // éä¿¡å°åï¼å¯éï¼ |
| | | dianziyoujian: row?.dianziyoujian ?? null, // çµåé®ä»¶ï¼å¯éï¼ |
| | | xiangmujingbanren: row?.xiangmujingbanren ?? null, // 项ç®ç»å人ï¼å¯éï¼ |
| | | lianxiren: row?.lianxiren ?? result?.lianxiren, // è系人ï¼å¯éï¼ |
| | | lianxidianhua: row?.lianxidianhua ?? result?.lianxidianhua, // èç³»çµè¯ï¼å¯éï¼ |
| | | tongxindizhi: row?.tongxindizhi ?? result?.tongxindizhi, // éä¿¡å°åï¼å¯éï¼ |
| | | dianziyoujian: row?.dianziyoujian ?? result?.dianziyoujian, // çµåé®ä»¶ï¼å¯éï¼ |
| | | xiangmujingbanren: |
| | | row?.xiangmujingbanren ?? result?.xiangmujingbanren, // 项ç®ç»å人ï¼å¯éï¼ |
| | | zhiwu: row?.zhiwu ?? null, // èå¡ï¼å¯éï¼ |
| | | jingbanrendianhua: row?.jingbanrendianhua ?? null, // ç»å人çµè¯ï¼å¯éï¼ |
| | | dailijigoumingcheng: row?.dailijigoumingcheng ?? null, // ä»£çæºæåç§°ï¼å¯éï¼ |
| | | dailiLianxiren: row?.dailiLianxiren ?? null, // ä»£çæºæè系人ï¼å¯éï¼ |
| | | dailiLianxidianhua: row?.dailiLianxidianhua ?? null, // ä»£çæºæèç³»çµè¯ï¼å¯éï¼ |
| | | dailiDianziyoujian: row?.dailiDianziyoujian ?? null, // ä»£çæºæçµåé®ä»¶ï¼å¯éï¼ |
| | | dailiTongxindizhi: row?.dailiTongxindizhi ?? null, // ä»£çæºæéä¿¡å°åï¼å¯éï¼ |
| | | dailiXiangmujingli: row?.dailiXiangmujingli ?? null, // ä»£çæºæé¡¹ç®ç»çï¼å¯é |
| | | dailijingliLianxidianhua: row?.dailijingliLianxidianhua ?? null // ä»£çæºæé¡¹ç®ç»çèç³»çµè¯ï¼å¯éï¼ |
| | | dailijigoumingcheng: |
| | | row?.dailijigoumingcheng ?? result?.dailijigoumingcheng, // ä»£çæºæåç§°ï¼å¯éï¼ |
| | | dailiLianxiren: row?.dailiLianxiren ?? result?.dailiLianxiren, // ä»£çæºæè系人ï¼å¯éï¼ |
| | | dailiLianxidianhua: |
| | | row?.dailiLianxidianhua ?? result?.dailiLianxidianhua, // ä»£çæºæèç³»çµè¯ï¼å¯éï¼ |
| | | dailiDianziyoujian: |
| | | row?.dailiDianziyoujian ?? result?.dailiDianziyoujian, // ä»£çæºæçµåé®ä»¶ï¼å¯éï¼ |
| | | dailiTongxindizhi: |
| | | row?.dailiTongxindizhi ?? result?.dailiTongxindizhi, // ä»£çæºæéä¿¡å°åï¼å¯éï¼ |
| | | dailiXiangmujingli: |
| | | row?.dailiXiangmujingli ?? result?.dailiXiangmujingli, // ä»£çæºæé¡¹ç®ç»çï¼å¯é |
| | | dailijingliLianxidianhua: |
| | | row?.dailijingliLianxidianhua ?? result?.dailijingliLianxidianhua // ä»£çæºæé¡¹ç®ç»çèç³»çµè¯ï¼å¯éï¼ |
| | | } |
| | | }, |
| | | width: "80%", |
| | |
| | | const FormRef = formRef.value.getRef(); |
| | | const curData = cloneDeep(options.props.formInline as FormItemProps); |
| | | async function chores() { |
| | | message(`æ¨${title}äºé¡¹ç®å称为${curData.projectName}çè¿æ¡æ°æ®`, { |
| | | type: "success" |
| | | }); |
| | | // curData.dingbiaoguize = curData.dingbiaoguize.join(""); |
| | | curData.xingzhengquyu = curData.xingzhengquyu.join(","); |
| | | let res; |
| | |
| | | if (res.code == "200") { |
| | | done(); // å
³éå¼¹æ¡ |
| | | onSearch(); // å·æ°è¡¨æ ¼æ°æ® |
| | | message(`æ¨${title}äºé¡¹ç®å称为${curData.projectName}çè¿æ¡æ°æ®`, { |
| | | type: "success" |
| | | }); |
| | | } else { |
| | | closeLoading(); |
| | | message(res.message, { |
| | |
| | | pagination, |
| | | checkboxAsRadio, |
| | | onSelectionCancel, |
| | | onbatchDel |
| | | onbatchDel, |
| | | nowRole |
| | | }; |
| | | } |
| | |
| | | // ææ æä»¶ï¼é¿åº¦1-512å符 |
| | | zhaobiaowenjian: string; |
| | | biangengwenjian: string; |
| | | // ææ æä»¶åï¼å¯è½æ¯æä»¶è·¯å¾ãIDææä»¶å¯¹è±¡ï¼ |
| | | zhaobiaowenjianName?: string | null | undefined; |
| | | // åæ´æä»¶ |
| | | biangengwenjianName?: string | null | undefined; |
| | | // éä»¶ï¼å¯ä¸ºç©ºï¼æå¤§é¿åº¦512å符 |
| | | fujian?: string; |
| | | // 弿 å°ç¹ï¼é¿åº¦1-250å符 |
| | |
| | | interface TenderProps { |
| | | formInline: TenderInfo; |
| | | isChange: boolean; |
| | | changeDetail?: boolean; |
| | | } |
| | | |
| | | export type { FormItemProps, FormProps, TenderInfo, TenderProps }; |
| | |
| | | proxy: { |
| | | "/api": { |
| | | // è¿éå¡«åå端å°åhttp://114.132.78.38:8096 http://192.168.0.36:5005 |
| | | target: "http://192.168.18.52:5005", |
| | | target: "http://192.168.18.15:5005", |
| | | // target: "http://192.168.18.52:5005", |
| | | changeOrigin: true, |
| | | rewrite: path => path.replace(/^\/api/, "") |
| | | }, |