152 lines
4.9 KiB
Vue
152 lines
4.9 KiB
Vue
<template>
|
|
<el-dialog
|
|
:model-value="visible"
|
|
title="编辑投标"
|
|
width="780px"
|
|
:close-on-click-modal="false"
|
|
@update:model-value="handleClose"
|
|
>
|
|
<el-form ref="formRef" :model="form" :rules="rules" label-width="110px">
|
|
<el-form-item label="投标标题" prop="title">
|
|
<el-input v-model="form.title" />
|
|
</el-form-item>
|
|
<el-form-item label="投标编号">
|
|
<el-input v-model="form.bid_no" />
|
|
</el-form-item>
|
|
<el-form-item label="投标类型">
|
|
<el-select v-model="form.bid_type" style="width: 100%">
|
|
<el-option v-for="i in bidTypeOptions" :key="i.value" :label="i.label" :value="i.value" />
|
|
</el-select>
|
|
</el-form-item>
|
|
<el-form-item label="招标方" prop="customer_name">
|
|
<el-input v-model="form.customer_name" />
|
|
</el-form-item>
|
|
<el-form-item label="发布单位">
|
|
<el-input v-model="form.publish_org" />
|
|
</el-form-item>
|
|
<el-form-item label="投标报价">
|
|
<el-input v-model.number="form.bid_amount" placeholder="0.00">
|
|
<template #append>元</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<el-form-item label="保证金">
|
|
<el-input v-model.number="form.bid_deposit" placeholder="0.00">
|
|
<template #append>元</template>
|
|
</el-input>
|
|
</el-form-item>
|
|
<el-form-item label="招标发布日期">
|
|
<el-date-picker v-model="form.publish_date" type="date" value-format="YYYY-MM-DD" style="width: 100%" />
|
|
</el-form-item>
|
|
<el-form-item label="报名截止">
|
|
<el-date-picker v-model="form.register_end_date" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
|
|
</el-form-item>
|
|
<el-form-item label="投标截止">
|
|
<el-date-picker v-model="form.bid_end_date" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
|
|
</el-form-item>
|
|
<el-form-item label="开标时间">
|
|
<el-date-picker v-model="form.open_bid_date" type="datetime" value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%" />
|
|
</el-form-item>
|
|
<el-form-item label="联系人">
|
|
<el-input v-model="form.contact_person" />
|
|
</el-form-item>
|
|
<el-form-item label="联系电话">
|
|
<el-input v-model="form.contact_phone" />
|
|
</el-form-item>
|
|
<el-form-item label="项目描述">
|
|
<el-input v-model="form.description" type="textarea" :rows="3" />
|
|
</el-form-item>
|
|
<el-form-item label="备注">
|
|
<el-input v-model="form.remark" type="textarea" :rows="2" />
|
|
</el-form-item>
|
|
</el-form>
|
|
<template #footer>
|
|
<el-button @click="handleClose">取消</el-button>
|
|
<el-button type="primary" :loading="submitting" @click="handleSubmit">保存</el-button>
|
|
</template>
|
|
</el-dialog>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref, reactive, watch } from "vue";
|
|
import { ElMessage } from "element-plus";
|
|
import { updateBid } from "@/api/crmBidding";
|
|
import { bidTypeOptions } from "@/views/apps/crm/dict";
|
|
|
|
const props = defineProps({
|
|
visible: { type: Boolean, default: false },
|
|
bid: { type: Object, default: null },
|
|
});
|
|
const emit = defineEmits(["update:visible", "success"]);
|
|
|
|
const formRef = ref();
|
|
const submitting = ref(false);
|
|
const form = reactive({
|
|
title: "",
|
|
bid_no: "",
|
|
bid_type: "1",
|
|
customer_name: "",
|
|
publish_org: "",
|
|
bid_amount: 0,
|
|
bid_deposit: 0,
|
|
publish_date: "",
|
|
register_end_date: "",
|
|
bid_end_date: "",
|
|
open_bid_date: "",
|
|
contact_person: "",
|
|
contact_phone: "",
|
|
description: "",
|
|
remark: "",
|
|
});
|
|
|
|
const rules = {
|
|
title: [{ required: true, message: "请输入投标标题", trigger: "blur" }],
|
|
customer_name: [{ required: true, message: "请输入招标方名称", trigger: "blur" }],
|
|
};
|
|
|
|
watch(
|
|
() => props.visible,
|
|
(val) => {
|
|
if (val && props.bid) {
|
|
const b = props.bid;
|
|
form.title = b.title || "";
|
|
form.bid_no = b.bid_no || "";
|
|
form.bid_type = b.bid_type || "1";
|
|
form.customer_name = b.customer_name || "";
|
|
form.publish_org = b.publish_org || "";
|
|
form.bid_amount = b.bid_amount || 0;
|
|
form.bid_deposit = b.bid_deposit || 0;
|
|
form.publish_date = b.publish_date || "";
|
|
form.register_end_date = b.register_end_date || "";
|
|
form.bid_end_date = b.bid_end_date || "";
|
|
form.open_bid_date = b.open_bid_date || "";
|
|
form.contact_person = b.contact_person || "";
|
|
form.contact_phone = b.contact_phone || "";
|
|
form.description = b.description || "";
|
|
form.remark = b.remark || "";
|
|
}
|
|
}
|
|
);
|
|
|
|
function handleClose() {
|
|
emit("update:visible", false);
|
|
}
|
|
|
|
async function handleSubmit() {
|
|
if (!formRef.value || !props.bid) return;
|
|
try {
|
|
await formRef.value.validate();
|
|
} catch (e) {
|
|
return;
|
|
}
|
|
submitting.value = true;
|
|
try {
|
|
await updateBid(props.bid.id, { ...form });
|
|
ElMessage.success("保存成功");
|
|
emit("success");
|
|
} catch (e) {
|
|
ElMessage.error(e?.message || "保存失败");
|
|
} finally {
|
|
submitting.value = false;
|
|
}
|
|
}
|
|
</script> |