增加招投标模块
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
<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>
|
||||
Reference in New Issue
Block a user