337 lines
11 KiB
Vue
337 lines
11 KiB
Vue
<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>
|