|
@@ -50,6 +50,7 @@
|
|
|
<div class="contentBox">
|
|
|
<div>
|
|
|
<handle-config-list
|
|
|
+ ref="handleConfigList"
|
|
|
@curItem="curItem"
|
|
|
@addOne="addOne"
|
|
|
@delOne="delOne"
|
|
@@ -185,17 +186,9 @@ export default {
|
|
|
name: "vehicleConfigurationDetail", // 车辆配置详情
|
|
|
components: { handleConfigList, canvasSensor },
|
|
|
data() {
|
|
|
- // let validateNum1 = (rule, value, callback) => {
|
|
|
- // // !/^(-?\d+)(\.\d{1,2})?$/.test(value) &&
|
|
|
- // // !(/^(-?(0|[1-9][0-9]+))(\.\d{1,2})?$/.test(value)) &&
|
|
|
- // !/^(-?(0|[1-9][0-9]*))(\.\d{1,2})?$/.test(value) &&
|
|
|
- // // /[.]/.test(value) && !/^(-?(0|[1-9]+))$/.test(value) &&
|
|
|
- // callback(new Error(rule.message));
|
|
|
- // callback();
|
|
|
- // };
|
|
|
- // 校验最多3位小数
|
|
|
+ // 校验最多4位小数
|
|
|
let validateNum = (rule, value, callback) => {
|
|
|
- !/^(-?(0|[1-9][0-9]*))(\.\d{1,3})?$/.test(value) &&
|
|
|
+ !/^(-?(0|[1-9][0-9]*))(\.\d{1,4})?$/.test(value) &&
|
|
|
callback(new Error(rule.message));
|
|
|
callback();
|
|
|
};
|
|
@@ -256,7 +249,7 @@ export default {
|
|
|
},
|
|
|
{
|
|
|
validator: validateNum,
|
|
|
- message: "请输入最多带有3位小数的数字",
|
|
|
+ message: "请输入最多带有4位小数的数字",
|
|
|
trigger: ["blur"],
|
|
|
},
|
|
|
],
|
|
@@ -268,7 +261,7 @@ export default {
|
|
|
},
|
|
|
{
|
|
|
validator: validateNum,
|
|
|
- message: "请输入最多带有3位小数的数字",
|
|
|
+ message: "请输入最多带有4位小数的数字",
|
|
|
trigger: ["blur"],
|
|
|
},
|
|
|
],
|
|
@@ -280,7 +273,7 @@ export default {
|
|
|
},
|
|
|
{
|
|
|
validator: validateNum,
|
|
|
- message: "请输入最多带有3位小数的数字",
|
|
|
+ message: "请输入最多带有4位小数的数字",
|
|
|
trigger: ["blur"],
|
|
|
},
|
|
|
],
|
|
@@ -288,7 +281,7 @@ export default {
|
|
|
{ required: true, message: "请输入", trigger: "blur" },
|
|
|
{
|
|
|
validator: validateNum,
|
|
|
- message: "请输入最多带有3位小数的数字",
|
|
|
+ message: "请输入最多带有4位小数的数字",
|
|
|
trigger: ["blur"],
|
|
|
},
|
|
|
{
|
|
@@ -301,7 +294,7 @@ export default {
|
|
|
{ required: true, message: "请输入", trigger: "blur" },
|
|
|
{
|
|
|
validator: validateNum,
|
|
|
- message: "请输入最多带有3位小数的数字",
|
|
|
+ message: "请输入最多带有4位小数的数字",
|
|
|
trigger: ["blur"],
|
|
|
},
|
|
|
{
|
|
@@ -314,7 +307,7 @@ export default {
|
|
|
{ required: true, message: "请输入", trigger: "blur" },
|
|
|
{
|
|
|
validator: validateNum,
|
|
|
- message: "请输入最多带有3位小数的数字",
|
|
|
+ message: "请输入最多带有4位小数的数字",
|
|
|
trigger: ["blur"],
|
|
|
},
|
|
|
{
|
|
@@ -349,9 +342,46 @@ export default {
|
|
|
watch: {
|
|
|
curOne(val) {
|
|
|
if (val.name === "ogt") {
|
|
|
+ // 校验端口号
|
|
|
+ let validatePort = (rule, value, callback) => {
|
|
|
+ !/^(\d{5})$/.test(value) &&
|
|
|
+ callback(new Error(rule.message));
|
|
|
+
|
|
|
+ if (value > 65535 || value < 62000) {
|
|
|
+ callback(new Error(rule.message));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ callback();
|
|
|
+ };
|
|
|
+
|
|
|
+ let validatePortNoRepeat = (rule, value, callback) => {
|
|
|
+ let ports = this.configList.ogt.map(
|
|
|
+ (i) => i.sensorPort + ""
|
|
|
+ );
|
|
|
+ ports.splice(this.curOne.index, 1);
|
|
|
+
|
|
|
+ if (ports.includes(value)) {
|
|
|
+ callback(new Error(rule.message));
|
|
|
+ return;
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
this.rulesA.sensorPort[0].required = true;
|
|
|
+ this.rulesA.sensorPort[1] = {
|
|
|
+ validator: validatePort,
|
|
|
+ message: "请输入62000至65535之间的5位数字",
|
|
|
+ trigger: ["blur"],
|
|
|
+ };
|
|
|
+ this.rulesA.sensorPort[2] = {
|
|
|
+ validator: validatePortNoRepeat,
|
|
|
+ message: "端口号重复",
|
|
|
+ trigger: ["blur"],
|
|
|
+ };
|
|
|
} else {
|
|
|
this.rulesA.sensorPort[0].required = false;
|
|
|
+ this.rulesA.sensorPort.length = 1;
|
|
|
}
|
|
|
},
|
|
|
},
|
|
@@ -399,7 +429,48 @@ export default {
|
|
|
// console.log(Object.values(this.configList));
|
|
|
// console.log(Object.entries(this.configList));
|
|
|
|
|
|
- let lists = Object.values(this.configList);
|
|
|
+ let lists = Object.entries(this.configList);
|
|
|
+
|
|
|
+ for (let index = 0; index < lists.length; index++) {
|
|
|
+ const element = lists[index];
|
|
|
+ let oneIndex = element[1].findIndex(
|
|
|
+ (i) => i.sensorX == null && i.sensorY == null
|
|
|
+ );
|
|
|
+ // console.log(oneIndex);
|
|
|
+ if (oneIndex > -1) {
|
|
|
+ this.$refs.handleConfigList.configHandle(
|
|
|
+ element[0],
|
|
|
+ oneIndex
|
|
|
+ );
|
|
|
+
|
|
|
+ // 如果对应项未展开 让其展开
|
|
|
+ if (
|
|
|
+ element[0] === "camera" &&
|
|
|
+ !this.$refs.handleConfigList.isActiveA
|
|
|
+ ) {
|
|
|
+ this.$refs.handleConfigList.isActiveA = true;
|
|
|
+ } else if (
|
|
|
+ element[0] === "ogt" &&
|
|
|
+ !this.$refs.handleConfigList.isActiveB
|
|
|
+ ) {
|
|
|
+ this.$refs.handleConfigList.isActiveB = true;
|
|
|
+ } else if (
|
|
|
+ element[0] === "lidar" &&
|
|
|
+ !this.$refs.handleConfigList.isActiveC
|
|
|
+ ) {
|
|
|
+ this.$refs.handleConfigList.isActiveC = true;
|
|
|
+ } else if (
|
|
|
+ element[0] === "gps" &&
|
|
|
+ !this.$refs.handleConfigList.isActiveE
|
|
|
+ ) {
|
|
|
+ this.$refs.handleConfigList.isActiveE = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.$message.error("请先设置数据并保存");
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
},
|
|
|
save(isAdd) {
|
|
|
this.$refs.form.validate((valid) => {
|
|
@@ -408,7 +479,7 @@ export default {
|
|
|
this.form.id = "";
|
|
|
}
|
|
|
|
|
|
- // if(!validateSensorsList) return;
|
|
|
+ if (!this.validateSensorsList()) return;
|
|
|
// console.log(this.configList);
|
|
|
// console.log(Object.keys(this.configList));
|
|
|
// console.log(Object.values(this.configList));
|
|
@@ -461,7 +532,7 @@ export default {
|
|
|
this.formA.sensorX = "0";
|
|
|
this.formA.sensorY = "0";
|
|
|
this.formA.sensorZ = "0";
|
|
|
- this.formA.sensorH = "60";
|
|
|
+ this.formA.sensorH = "0";
|
|
|
this.formA.sensorP = "0";
|
|
|
this.formA.sensorR = "0";
|
|
|
if (this.curOne.name === "ogt") {
|
|
@@ -544,7 +615,7 @@ export default {
|
|
|
this.modelImgSrc = this.getImgUrl(
|
|
|
res.info.vehicleTopView
|
|
|
);
|
|
|
- this.validateSensorsList();
|
|
|
+ // this.validateSensorsList();
|
|
|
} else {
|
|
|
this.$message.error(res.message || "获取信息失败");
|
|
|
}
|