diff --git a/src/views/biddingManagemen/biddingLimit/index.vue b/src/views/biddingManagemen/biddingLimit/index.vue index 9f0fe93..bb6f934 100644 --- a/src/views/biddingManagemen/biddingLimit/index.vue +++ b/src/views/biddingManagemen/biddingLimit/index.vue @@ -228,7 +228,16 @@ const handleExport = () => { }; // 审核 const handleAudit = (row: any) => { - // + console.log(11111); + + // proxy.$tab.closePage(proxy.$route); + // proxy.$router.push({ + // path: `/approval/biddingLimit/indexEdit`, + // query: { + // id: row.id, + // type: 'add' + // } + // }); }; onUnmounted(() => { diff --git a/src/views/biddingManagemen/biddingLimit/indexEdit.vue b/src/views/biddingManagemen/biddingLimit/indexEdit.vue new file mode 100644 index 0000000..0f16882 --- /dev/null +++ b/src/views/biddingManagemen/biddingLimit/indexEdit.vue @@ -0,0 +1,371 @@ + + + + + + + + + + + 成本核算清单 + + + + + + + + + + + + + + + + + + 请选择要启动的流程: + + + + + + + + + + + + + + diff --git a/src/views/biddingManagemen/listOfWinningBids/index.vue b/src/views/biddingManagemen/listOfWinningBids/index.vue index 2eabee4..b972a03 100644 --- a/src/views/biddingManagemen/listOfWinningBids/index.vue +++ b/src/views/biddingManagemen/listOfWinningBids/index.vue @@ -5,44 +5,34 @@ - 中标项目信息填写 + 投标项目信息填写 + {{ currentProject.name }} - - - + - - - - - - - - + + - + - + - - - - - - - + + + + - - + + - + + 是 + 否 + + + + + + - + - + - + - + @@ -95,28 +92,21 @@ format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="请选择立项申请日期" - size="medium" /> - + - - - - - - + - - + 确认提交 - 重置 + 重置 @@ -142,7 +132,7 @@ import { ref, reactive, toRefs, watch, onMounted, onUnmounted, getCurrentInstanc import { addListOfWinningBids, updateListOfWinningBids, getListOfWinningBids } from '@/api/bidding/listOfWinningBids'; import { ListOfWinningBidsVO, ListOfWinningBidsForm } from '@/api/bidding/listOfWinningBids/types'; import { useUserStoreHook } from '@/store/modules/user'; -import { ElFormInstance } from 'element-plus'; +import { ElFormInstance, ElMessage } from 'element-plus'; // 获取组件实例 const { proxy } = getCurrentInstance() as ComponentInternalInstance; @@ -185,6 +175,10 @@ const data = reactive({ projectId: [{ required: true, message: '项目ID不能为空', trigger: 'blur' }], projectName: [{ required: true, message: '请输入项目名称', trigger: 'blur' }], winningBidOriginal: [{ required: true, message: '请输入原始中标价', trigger: 'blur' }], + exchangeRate: [ + { required: true, message: '请输入汇率', trigger: 'blur' }, + { type: 'number', min: 0.001, message: '汇率需大于0', trigger: 'blur' } + ], currency: [{ required: true, message: '请输入币种', trigger: 'blur' }], subject: [{ required: true, message: '请输入所属主体', trigger: 'blur' }], winningBid: [{ required: true, message: '请输入中标价', trigger: 'blur' }], @@ -196,6 +190,26 @@ const data = reactive({ // 解构响应式数据 const { form, rules } = toRefs(data); +/** + * 计算人民币中标价 + * 显式触发的计算函数,确保执行时机可靠 + */ +const calculateWinningBid = () => { + // 确保数据类型正确 + const dollarAmount = Number(form.value.winningBidOriginal); + const rate = Number(form.value.exchangeRate); + + // 验证输入有效性 + if (isNaN(dollarAmount) || isNaN(rate) || dollarAmount <= 0 || rate <= 0) { + form.value.winningBid = undefined; + return; + } + + // 计算并保留2位小数 + const result = dollarAmount * rate; + form.value.winningBid = Number(result.toFixed(2)); +}; + /** * 页面初始化 - 获取已有数据(如存在) */ @@ -203,14 +217,15 @@ const initData = async () => { try { if (currentProject.value?.id) { const res = await getListOfWinningBids(currentProject.value.id); - // 若存在数据则赋值到表单 - console.log(res); if (res.data && res.data.id) { Object.assign(form.value, res.data); + // 初始化时手动触发一次计算 + setTimeout(calculateWinningBid, 0); } } } catch (error) { console.error('初始化数据失败:', error); + ElMessage.error('初始化数据失败'); } }; @@ -222,19 +237,20 @@ const submitForm = () => { if (valid) { buttonLoading.value = true; try { - // 补充项目ID(从store获取) + // 提交前确保计算正确 + calculateWinningBid(); + form.value.projectId = currentProject.value?.id; - // 区分新增/修改(根据ID是否存在) if (form.value.id) { await updateListOfWinningBids(form.value); } else { await addListOfWinningBids(form.value); } - // 提示成功并重置表单 - proxy?.$modal.msgSuccess('提交成功'); + + ElMessage.success('提交成功'); resetForm(); } catch (error) { - proxy?.$modal.msgError('提交失败,请重试'); + ElMessage.error('提交失败,请重试'); console.error('提交表单失败:', error); } finally { buttonLoading.value = false; @@ -310,4 +326,10 @@ onUnmounted(() => { .el-button:hover { transform: translateY(-1px); } + +/* 只读输入框样式优化(区分可编辑状态) */ +.el-input--readonly .el-input__wrapper { + background-color: #f9fafb; + cursor: not-allowed; +}
请选择要启动的流程: