xyadmin-web/src/views/bidding/create.vue
2024-07-01 16:43:26 +08:00

337 lines
11 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="app-container">
<el-card shadow="never" style="margin-bottom:20px">
<el-form
ref="ruleForm"
:model="formInline"
size="mini"
label-width="190px"
>
<el-form-item label="项目编号">
<el-input v-model="formInline.projectId" clearable />
</el-form-item>
<el-form-item label="项目简称">
<el-input v-model="formInline.projectName" clearable />
</el-form-item>
<el-form-item label="项目名称">
<el-input v-model="formInline.projectLongName" clearable />
</el-form-item>
<el-form-item label="报名标段编号">
<el-input v-model="formInline.registrationLotNumber" clearable />
</el-form-item>
<el-form-item label="报名截止时间">
<el-date-picker
v-model="formInline.registrationDeadline"
clearable
style="width:100%"
type="datetime"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
placeholder="选择日期时间"
/>
</el-form-item>
<el-form-item label="报名费用">
<el-input v-model="formInline.registrationFee" clearable />
</el-form-item>
<el-form-item label="报名方式">
<el-input v-model="formInline.registrationMethod" clearable />
</el-form-item>
<el-form-item label="投标具体时间">
<el-date-picker
v-model="formInline.biddingDateTime"
clearable
style="width:100%"
type="datetime"
format="yyyy-MM-dd HH:mm"
value-format="yyyy-MM-dd HH:mm"
placeholder="选择日期时间"
/>
</el-form-item>
<el-form-item label="投标保证金">
<el-input v-model="formInline.bidBond" clearable />
</el-form-item>
<el-form-item label="保证金账户">
<el-input
:rows="6"
v-model="formInline.bondAccountNumber"
clearable
type="textarea"
/>
</el-form-item>
<el-form-item label="投标地址">
<el-input v-model="formInline.biddingLocation" clearable />
</el-form-item>
<el-form-item label="是否现场投标">
<el-input v-model="formInline.isOnsiteBidding" clearable />
</el-form-item>
<el-form-item label="每个包招几家供应商">
<el-input v-model="formInline.numberOfSuppliersPerLot" clearable />
</el-form-item>
<el-form-item label="标书商务技术标是否分开">
<el-input
v-model="formInline.isBusinessTechnicalSeparate"
clearable
/>
</el-form-item>
<el-form-item label="标书一正几副">
<el-input
v-model="formInline.numberOfOriginalBidDocuments"
clearable
/>
</el-form-item>
<el-form-item label="标书是否要电子版">
<el-input v-model="formInline.isElectronicBidRequired" clearable />
</el-form-item>
<el-form-item label="标书报价是否单独封装">
<el-input v-model="formInline.isBidPriceSeparatelySealed" clearable />
</el-form-item>
<el-form-item label="是否要招标服务费">
<el-input
:rows="6"
v-model="formInline.isTenderFeeRequired"
clearable
type="textarea"
/>
</el-form-item>
<el-form-item label="是否已经退款">
<el-radio-group v-model="formInline.isRefund">
<el-radio label="否">否</el-radio>
<el-radio label="是">是</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="备注">
<el-input v-model="formInline.remarks" clearable />
</el-form-item>
<div style="float: right;margin-bottom:20px">
<el-button @click="cancelBtn('ruleForm')"> </el-button>
<el-button type="primary" @click="onSubmit('ruleForm')"
> </el-button
>
</div>
</el-form>
</el-card>
</div>
</template>
<script>
import {
contractListSelect,
xyProjectinfoListAdd,
xyProjectinfoListEdit,
xyProjectinfoSelectXm,
xyProjectinfoSelectBm
} from "@/api/article";
import { add, edit } from "@/api/biddingInfo";
export default {
data() {
var validateInput = (rule, value, callback) => {
if (value === "") {
callback(new Error("请输入"));
} else {
callback();
}
};
return {
tableData1: [
{
id: "SY-123213-05-02"
}
],
tableData2: [
{
id: "SY-123213-05-02"
}
],
contractId: "",
formInline: { isRefund: "否" },
contractNameOption: [], // 项目关联合同-下拉框
editState: 0, // 0新增1编辑
editId: "", // 编辑id-xpId
xmOption: [],
bmOption: [],
// 0-项目中1-验收通过2-项目结束
xpProjectStateOption: [
{
label: "项目中",
value: 0
},
{
label: "验收通过",
value: 1
},
{
label: "项目结束",
value: 2
}
]
};
},
mounted() {
this.getcontractName(); // 项目关联合同-下拉
this.getXmOption();
this.getBmOption();
const data = JSON.parse(localStorage.getItem("editData"));
console.log(data);
if (data != null) {
this.initInput(data);
this.editState = 1;
} else {
this.editState = 0;
}
},
methods: {
onSubmit(formName) {
this.$refs[formName].validate(valid => {
if (valid) {
// console.log("submit!");
const obj = this.formInline;
const editState = this.editState;
if (editState == 0) {
// 新增
add(obj).then(res => {
console.log(res);
if (!res) {
this.cancelBtn("ruleForm");
this.$message({
type: "success",
message: "新增成功!"
});
this.$router.push("/newproject/bidding/index");
} else {
this.cancelBtn("ruleForm");
this.$message({
type: "success",
message: "新增成功!"
});
this.$router.push("/newproject/bidding/index");
}
});
} else {
// 编辑
const id = this.editId;
edit({ ...obj, id }).then(res => {
if (!res) {
this.cancelBtn("ruleForm");
this.$message({
type: "success",
message: "修改成功!"
});
this.$router.push("/newproject/bidding/index");
} else {
this.cancelBtn("ruleForm");
this.$message({
type: "success",
message: "修改成功!"
});
this.$router.push("/newproject/bidding/index");
}
});
}
} else {
console.log("error submit!!");
return false;
}
});
},
// 获取合同下拉框数据
getcontractName() {
contractListSelect().then(res => {
// console.log(res)
this.contractNameOption = res;
});
},
// 获取 项目经理 下拉框数据
getXmOption() {
xyProjectinfoSelectXm().then(res => {
// console.log(res)
this.xmOption = res;
});
},
// 获取 部门 下拉框数据
getBmOption() {
xyProjectinfoSelectBm().then(res => {
// console.log(res)
this.bmOption = res;
});
},
initInput(data = null) {
this.editId = data == null ? "" : data.id; // 编辑id
this.formInline = {
id: data == null ? "" : data.id,
projectId: data == null ? "" : data.projectId,
projectName: data == null ? "" : data.projectName,
projectLongName: data == null ? "" : data.projectLongName,
registrationLotNumber: data == null ? "" : data.registrationLotNumber,
registrationDeadline: data == null ? "" : data.registrationDeadline,
registrationFee: data == null ? "" : data.registrationFee,
registrationMethod: data == null ? "" : data.registrationMethod,
biddingDateTime: data == null ? "" : data.biddingDateTime,
bidBond: data == null ? "" : data.bidBond,
bondAccountNumber: data == null ? "" : data.bondAccountNumber,
biddingLocation: data == null ? "" : data.biddingLocation,
isOnsiteBidding: data == null ? "" : data.isOnsiteBidding,
numberOfSuppliersPerLot:
data == null ? "" : data.numberOfSuppliersPerLot,
isBusinessTechnicalSeparate:
data == null ? "" : data.isBusinessTechnicalSeparate,
numberOfOriginalBidDocuments:
data == null ? "" : data.numberOfOriginalBidDocuments,
isElectronicBidRequired:
data == null ? "" : data.isElectronicBidRequired,
isBidPriceSeparatelySealed:
data == null ? "" : data.isBidPriceSeparatelySealed,
isTenderFeeRequired: data == null ? "" : data.isTenderFeeRequired,
remarks: data == null ? "" : data.remarks
};
},
// 取消 :是编辑会转成新增
cancelBtn(formName) {
this.editState = 0;
localStorage.setItem("editData", null);
this.initInput();
this.$refs[formName].resetFields();
this.$router.push({ path: "/newproject/bidding/index" });
},
changeHtState(e) {
console.log(e);
},
changeHt(e) {
console.log(e);
this.formInline.contractId = e;
// this.formInline.contractId = e.split('-')[0]
// this.formInline.contractName = e.split('-')[1]
},
// 1位小数点
changeNum(objt) {
const obj = {
value: objt
};
// 如果用户第一位输入的是小数点,则重置输入框内容
if (obj.value != "" && obj.value.substr(0, 1) == ".") {
obj.value = "";
}
obj.value = obj.value.replace(/^0*(0\.|[1-9])/, "$1"); // 粘贴不生效
obj.value = obj.value.replace(/[^\d.]/g, ""); // 清除“数字”和“.”以外的字符
obj.value = obj.value.replace(/\.{2,}/g, "."); // 只保留第一个. 清除多余的
obj.value = obj.value
.replace(".", "$#$")
.replace(/\./g, "")
.replace("$#$", ".");
obj.value = obj.value.replace(/^(\-)*(\d+)\.(\d).*$/, "$1$2.$3"); // 只能输入两个小数
if (obj.value.indexOf(".") < 0 && obj.value != "") {
// 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
if (obj.value.substr(0, 1) == "0" && obj.value.length == 2) {
obj.value = obj.value.substr(1, obj.value.length);
}
}
return obj.value;
// this.formInline.xwPlanTime = obj.value;
}
}
};
</script>