This commit is contained in:
jjLv 2024-09-23 16:41:35 +08:00
commit 70a71def55
5 changed files with 138 additions and 27 deletions

View File

@ -17,7 +17,6 @@
clearable
filterable
placeholder="请选择"
@change="proNameChange"
>
<el-option
v-for="item in projNameRange"
@ -35,6 +34,7 @@
clearable
filterable
placeholder="请选择"
@change="departChange"
>
<el-option
v-for="item in deptRange"
@ -156,7 +156,8 @@ import {
queryVolLevelApi
} from '@/api/base/proj'
import {
queryProvincesApi
queryProvincesApi,
queryProjDeptListApi
} from '@/api/base/projDept'
export default {
name: 'FormProject',
@ -237,18 +238,62 @@ export default {
},
],
lon: [
{ required: true, message: "经度不能为空", trigger: "blur" },
{
required: true,
message: '请输入经度',
trigger: 'blur',
},
validator: (rule, value, callback) => {
if (value === '' || value === null) {
return callback(new Error('请必须输入-180 ~ 180内的数据且小数点后最多保留六位'));
}
const regex = /^[+-]?(0|[1-9]\d*)(\.\d+)?$/;
if(!regex.test(value)){
return callback(new Error('请勿输入非数字'));
}
const longitude = parseFloat(value);
if(longitude.toString().includes('.') === true){
if (longitude <-180 || longitude > 180 ||longitude.toString().split(".")[1].length>6) {
callback(new Error('请必须输入-180 ~ 180内的数据且小数点后最多保留六位'));
} else {
callback();
}
}else{
if (longitude <-180 || longitude > 180) {
callback(new Error('请必须输入-180 ~ 180内的数据且小数点后最多保留六位'));
} else {
callback();
}
}
},
trigger: 'blur'
}
],
lat: [
{ required: true, message: "纬度不能为空", trigger: "blur" },
{
required: true,
message: '请输入纬度',
trigger: 'blur',
},
validator: (rule, value, callback) => {
if (value === '' || value === null) {
return callback(new Error('请必须输入-90 ~ 90内的数据且小数点后最多保留六位'));
}
const regexTwo = /^[+-]?(\d+(\.\d*)?|\.\d*[1-9]\d*)$/;
if(!regexTwo.test(value)){
return callback(new Error('请勿输入非数字'));
}
const latitude = parseFloat(value);
if(latitude.toString().includes('.') === true){
if (latitude <-90 || latitude > 90 ||latitude.toString().split(".")[1].length>6) {
callback(new Error('请必须输入-90 ~ 90内的数据且小数点后最多保留六位'));
} else {
callback();
}
}else{
if (latitude <-90 || latitude > 90) {
callback(new Error('请必须输入-90 ~ 90内的数据且小数点后最多保留六位'));
} else {
callback();
}
}
},
trigger: 'blur'
}
],
},
//
@ -266,10 +311,20 @@ export default {
],
provinceRange: [],
//
phoneReg: /^(?:(?:\+|00)86)?1[3-9]\d{9}$/
phoneReg: /^(?:(?:\+|00)86)?1[3-9]\d{9}$/,
//
lonLatReg: /^[+-]?(\d+([.]\d*)?([eE][+-]?\d+)?|[.]\d+([eE][+-]?\d+)?)$/
}
},
methods: {
/** 校验经纬 */
validateLonLat(rule, value, callback) {
if(!this.lonLatReg.test(value)) {
callback(new Error('经纬度格式不正确'))
} else {
callback()
}
},
/** 获取各类下拉框 */
async getRanges() {
//
@ -351,9 +406,12 @@ export default {
}
})
},
/** 级联选择器改变 */
handleCas(e) {
this.projectParams.impUnit = e[e.length - 1]
/** 项目部改变 */
async departChange(e) {
let res = await queryProjDeptListApi({
id: e
})
this.projectParams.areaId = res.data.rows[0].areaId
},
/** 确认按钮 */
onSubmit() {

View File

@ -62,6 +62,14 @@ export default {
}
},
methods: {
/** 校验经纬 */
validateLonLat(rule, value, callback) {
if(!this.lonLatReg.test(value)) {
callback(new Error('经纬度格式不正确'))
} else {
callback()
}
},
/** 查询杆塔 */
async getRanges() {
let towerRes = await queryExistTowerApi()
@ -144,22 +152,68 @@ export default {
},
],
lon: [
{ required: true, message: "杆塔经度不能为空", trigger: "blur" },
{
required: true,
message: '请输入经度',
trigger: 'blur',
},
validator: (rule, value, callback) => {
if (value === '' || value === null) {
return callback(new Error('请必须输入-180 ~ 180内的数据且小数点后最多保留六位'));
}
const regex = /^[+-]?(0|[1-9]\d*)(\.\d+)?$/;
if(!regex.test(value)){
return callback(new Error('请勿输入非数字'));
}
const longitude = parseFloat(value);
if(longitude.toString().includes('.') === true){
if (longitude <-180 || longitude > 180 ||longitude.toString().split(".")[1].length>6) {
callback(new Error('请必须输入-180 ~ 180内的数据且小数点后最多保留六位'));
} else {
callback();
}
}else{
if (longitude <-180 || longitude > 180) {
callback(new Error('请必须输入-180 ~ 180内的数据且小数点后最多保留六位'));
} else {
callback();
}
}
},
trigger: 'blur'
}
],
lat: [
{ required: true, message: "杆塔纬度不能为空", trigger: "blur" },
{
required: true,
message: '请输入纬度',
trigger: 'blur',
},
validator: (rule, value, callback) => {
if (value === '' || value === null) {
return callback(new Error('请必须输入-90 ~ 90内的数据且小数点后最多保留六位'));
}
const regexTwo = /^[+-]?(\d+(\.\d*)?|\.\d*[1-9]\d*)$/;
if(!regexTwo.test(value)){
return callback(new Error('请勿输入非数字'));
}
const latitude = parseFloat(value);
if(latitude.toString().includes('.') === true){
if (latitude <-90 || latitude > 90 ||latitude.toString().split(".")[1].length>6) {
callback(new Error('请必须输入-90 ~ 90内的数据且小数点后最多保留六位'));
} else {
callback();
}
}else{
if (latitude <-90 || latitude > 90) {
callback(new Error('请必须输入-90 ~ 90内的数据且小数点后最多保留六位'));
} else {
callback();
}
}
},
trigger: 'blur'
}
],
},
//
towerRange: []
towerRange: [],
//
lonLatReg: /^[+-]?(\d+([.]\d*)?([eE][+-]?\d+)?|[.]\d+([eE][+-]?\d+)?)$/
}
},
}

View File

@ -43,7 +43,6 @@
<el-form-item label="地区" prop="areaId">
<el-select
v-model="projectParams.areaId"
clearable
filterable
placeholder="请选择"
>

View File

@ -20,7 +20,7 @@ export const formLabel = [
]
export const columnsList = [
{ t_props: 'departName', t_label: '项目部名称', },
{ t_props: 'departType', t_label: '项目部类型' },
{ t_props: 'departTypeName', t_label: '项目部类型' },
{ t_props: 'areaName', t_label: '地区' },
{ t_props: 'headUser', t_label: '负责人', },
{ t_props: 'headUserPhone', t_label: '电话', t_slot: 'headUserPhone' },

View File

@ -1,6 +1,6 @@
<template>
<div class=" home">
<el-row :gutter="20">
<!-- <el-row :gutter="20">
<el-col :sm="24" :lg="12" style="padding-left: 20px">
<h2>博诺思后台管理框架</h2>
<p>
@ -86,7 +86,7 @@
</el-card>
</el-col>
</el-row>
</el-row>-->
</div>