bug修复

This commit is contained in:
jjLv 2024-11-05 09:15:47 +08:00
parent f5a9dbccf6
commit 3c33e3767f
12 changed files with 313 additions and 31 deletions

View File

@ -360,6 +360,7 @@ export default {
}) })
/* 生成查询参数 */ /* 生成查询参数 */
this.formLabel.map((e) => { this.formLabel.map((e) => {
console.log('e',)
this.$set(this.queryParams, e.f_model, '') this.$set(this.queryParams, e.f_model, '')
// //
if (e.f_rule) { if (e.f_rule) {

View File

@ -169,6 +169,7 @@ export default {
message: '请输入班组名称', message: '请输入班组名称',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'blur' }
], ],
relId: [ relId: [
{ {
@ -193,6 +194,16 @@ export default {
methods: { methods: {
queryIsAllApi, queryIsAllApi,
queryCrewSelApi, queryCrewSelApi,
validateInput(rule, value, callback) {
const regex = /[!@#$%^&*()_,.?":{}|<>+\//\\]/g; //
if (!value) {
callback(new Error('输入不能为空'));
} else if (regex.test(value)) {
callback(new Error('输入不能包含特殊字符'));
} else {
callback(); //
}
},
getIdList(idList) { getIdList(idList) {
this.exportList = [] this.exportList = []
idList.forEach(item => { idList.forEach(item => {

View File

@ -12,7 +12,6 @@
<el-form-item label="设备类型" prop="devType"> <el-form-item label="设备类型" prop="devType">
<el-select <el-select
v-model="deviceParams.devType" v-model="deviceParams.devType"
allow-create
clearable clearable
filterable filterable
placeholder="请选择设备类型" placeholder="请选择设备类型"
@ -35,7 +34,6 @@
<el-form-item label="所属边带" prop="bdId"> <el-form-item label="所属边带" prop="bdId">
<el-select <el-select
v-model="deviceParams.bdId" v-model="deviceParams.bdId"
allow-create
clearable clearable
filterable filterable
placeholder="请选择所属边带" placeholder="请选择所属边带"
@ -52,7 +50,6 @@
<el-form-item label="预警配置" prop="configId"> <el-form-item label="预警配置" prop="configId">
<el-select <el-select
v-model="deviceParams.configId" v-model="deviceParams.configId"
allow-create
clearable clearable
filterable filterable
placeholder="请选择预警配置" placeholder="请选择预警配置"
@ -69,7 +66,6 @@
<el-form-item label="设备状态" prop="devStatus"> <el-form-item label="设备状态" prop="devStatus">
<el-select <el-select
v-model="deviceParams.devStatus" v-model="deviceParams.devStatus"
allow-create
clearable clearable
filterable filterable
placeholder="请选择设备状态" placeholder="请选择设备状态"
@ -160,6 +156,7 @@ export default {
message: '请输入设备名称', message: '请输入设备名称',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'blur' }
], ],
devCode: [ devCode: [
{ {
@ -167,12 +164,13 @@ export default {
message: '请输入设备编码', message: '请输入设备编码',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'blur' }
], ],
bdId: [ bdId: [
{ {
required: true, required: true,
message: '请选择所属边带', message: '请选择所属边带',
trigger: 'change', trigger: 'blur',
}, },
], ],
configId: [ configId: [
@ -205,6 +203,16 @@ export default {
} }
}, },
methods: { methods: {
validateInput(rule, value, callback) {
const regex = /[!@#$%^&*()_,.?":{}|<>+\//\\]/g; //
if (!value) {
callback(new Error('输入不能为空'));
} else if (regex.test(value)) {
callback(new Error('输入不能包含特殊字符'));
} else {
callback(); //
}
},
/** 获取各类下拉框 */ /** 获取各类下拉框 */
async getRanges() { async getRanges() {
// //

View File

@ -1,8 +1,8 @@
export const formLabel = [ export const formLabel = [
{ f_label: '工程名称', f_model: 'proName', f_type: 'ipt' }, { f_label: '工程名称', f_model: 'proName', f_type: 'ipt',f_flag: 1 },
{ f_label: '项目部名称', f_model: 'departName', f_type: 'ipt' }, { f_label: '项目部名称', f_model: 'departName', f_type: 'ipt',f_flag: 1 },
{ f_label: '边代名称', f_model: 'devName', f_type: 'ipt' }, { f_label: '边代名称', f_model: 'devName', f_type: 'ipt',f_flag: 1 },
{ f_label: '边代编码', f_model: 'devCode', f_type: 'ipt' }, { f_label: '边代编码', f_model: 'devCode', f_type: 'ipt',f_flag: 1},
] ]
export const columnsList = [ export const columnsList = [

View File

@ -2,7 +2,94 @@
<!-- 工程管理页面 --> <!-- 工程管理页面 -->
<div class="app-container"> <div class="app-container">
<!-- 表格 --> <!-- 表格 -->
<TableModelTwo <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px" :rules="rule">
<el-form-item prop="proName" label="工程名称" label-width="90px">
<el-input
v-model="queryParams.proName"
placeholder="请输入工程名称"
clearable
@keyup.enter.native="handleQuery"
maxlength="20"
/>
</el-form-item>
<el-form-item prop="departName" label="项目部名称" label-width="90px">
<el-input
v-model="queryParams.departName"
placeholder="请输入项目部名称"
clearable
@keyup.enter.native="handleQuery"
maxlength="20"
/>
</el-form-item>
<el-form-item prop="devName" label="边代名称" label-width="90px">
<el-input
v-model="queryParams.devName"
placeholder="请输入边代名称"
clearable
@keyup.enter.native="handleQuery"
maxlength="20"
/>
</el-form-item>
<el-form-item prop="devCode" label="边代编码" label-width="90px">
<el-input
v-model="queryParams.devCode"
placeholder="请输入边代编码"
clearable
@keyup.enter.native="handleQuery"
maxlength="20"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="houseList" ref="multipleTable" row-key="id">
<!-- <el-table-column type="selection" width="55" align="center" :reserve-selection="true" /> -->
<el-table-column label="序号" align="center" width="90" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="项目部名称" align="center" prop="departName" />
<el-table-column label="在用工程" align="center" prop="proName" />
<el-table-column label="所用区域" align="center" prop="areaName" />
<el-table-column label="边代名称" align="center" prop="devName" />
<el-table-column label="边代编码" align="center" prop="devCode" />
<el-table-column label="负责人" align="center" prop="devUser" />
<el-table-column label="负责人电话" align="center" prop="devUserPhone" >
<template slot-scope="scope">
<div>
{{ phoneCrypto(scope.row.devUserPhone) || '-'}}
</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="180">
<template slot-scope="scope">
<el-button
size="mini"
@click="handleClick(scope.row)"
v-if="scope.row.proType === '2'"
>{{ scope.row.bindId ? '修改杆塔' : '绑定杆塔' }}</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- <TableModelTwo
:isShowHandle="true" :isShowHandle="true"
:formLabel="formLabel" :formLabel="formLabel"
:columnsList="columnsList" :columnsList="columnsList"
@ -21,7 +108,7 @@
>{{ data.bindId ? '修改杆塔' : '绑定杆塔' }}</el-button >{{ data.bindId ? '修改杆塔' : '绑定杆塔' }}</el-button
> >
</template> </template>
</TableModelTwo> </TableModelTwo> -->
<!-- 绑定弹框 --> <!-- 绑定弹框 -->
<el-dialog <el-dialog
@ -72,6 +159,35 @@ import {
export default { export default {
name: 'EdgeDevice', name: 'EdgeDevice',
methods: { methods: {
validateInput(rule, value, callback) {
const regex = /[!@#$%^&*()_,.?":{}|<>+\//\\]/g; //
if (!value) {
callback(new Error('输入不能为空'));
} else if (regex.test(value)) {
callback(new Error('输入不能包含特殊字符'));
} else {
callback(); //
}
},
getList() {
this.loading = true;
queryEdgeDeviceListApiTwo(this.queryParams).then(response => {
this.houseList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
async handleClick(row) { async handleClick(row) {
if (row.bindId) { if (row.bindId) {
this.bindPowerForm.powerId = row.bindId this.bindPowerForm.powerId = row.bindId
@ -106,11 +222,26 @@ export default {
mixins: [commonMixin], mixins: [commonMixin],
components: {}, components: {},
created() {}, created() {
this.getList();
},
data() { data() {
return { return {
// //
//
showSearch: true,
showHouse: false,
houseList:[],
formLabel, formLabel,
total:0,
queryParams: {
pageNum: 1,
pageSize: 10,
proName: undefined,
departName: undefined,
devName: undefined,
devCode: undefined
},
// // id // // id
// exportList: [], // exportList: [],
// //
@ -132,6 +263,41 @@ export default {
}, },
], ],
}, },
rule:{
proName: [
{
required: false,
message: '请输入工程名称',
trigger: 'blur',
},
{ validator: this.validateInput, trigger: 'blur' }
],
departName: [
{
required: false,
message: '请输入项目部名称',
trigger: 'blur',
},
{ validator: this.validateInput, trigger: 'blur' }
],
devName: [
{
required: false,
message: '请输入边代名称',
trigger: 'blur',
},
{ validator: this.validateInput, trigger: 'blur' }
],
devCode: [
{
required: false,
message: '请输入边代编码',
trigger: 'blur',
},
{ validator: this.validateInput, trigger: 'blur' }
],
}
// //
} }
}, },

View File

@ -103,8 +103,8 @@
>删除</el-button >删除</el-button
> >
</template> </template>
<template slot="devName" slot-scope="{ data }"> <template slot="devName" slot-scope="{ data }" >
<el-input :maxlength="50" v-model="data.devName" placeholder="请输入"></el-input> <el-input :maxlength="50" v-model="data.devName" placeholder="请输入" ></el-input>
</template> </template>
<template slot="devCode" slot-scope="{ data }"> <template slot="devCode" slot-scope="{ data }">
<el-input :maxlength="50" v-model="data.devCode" placeholder="请输入"></el-input> <el-input :maxlength="50" v-model="data.devCode" placeholder="请输入"></el-input>
@ -187,6 +187,7 @@ export default {
columnsListInsert, columnsListInsert,
open: false, open: false,
exportList: [], exportList: [],
flagAdd:0,
subSort: "", // 1 / 2 subSort: "", // 1 / 2
projectParams: { projectParams: {
departId: undefined, // departId: undefined, //
@ -200,14 +201,14 @@ export default {
{ {
required: true, required: true,
message: "请输入项目部名称", message: "请输入项目部名称",
trigger: "blur", trigger: "change",
}, },
], ],
proId: [ proId: [
{ {
required: true, required: true,
message: "请输入工程名称", message: "请输入工程名称",
trigger: "blur", trigger: "change",
}, },
], ],
relUser: [ relUser: [
@ -216,6 +217,7 @@ export default {
message: "请输入申请人", message: "请输入申请人",
trigger: "blur", trigger: "blur",
}, },
{ validator: this.validateInput, trigger: 'blur' }
], ],
relPhone: [ relPhone: [
{ required: true, message: "联系方式不能为空", trigger: "blur" }, { required: true, message: "联系方式不能为空", trigger: "blur" },
@ -236,6 +238,16 @@ export default {
}; };
}, },
methods: { methods: {
validateInput(rule, value, callback) {
const regex = /[!@#$%^&*()_,.?":{}|<>+\//\\]/g; //
if (!value) {
callback(new Error('输入不能为空'));
} else if (regex.test(value)) {
callback(new Error('输入不能包含特殊字符'));
} else {
callback(); //
}
},
/** 校验手机号 */ /** 校验手机号 */
validatePhone(rule, value, callback) { validatePhone(rule, value, callback) {
if (!this.phoneReg.test(value)) { if (!this.phoneReg.test(value)) {
@ -367,25 +379,40 @@ export default {
}); });
return leaf; return leaf;
}, },
/** 确认按钮 */ /** 确认按钮 */
onSubmit() { onSubmit() {
console.log(this.$refs.tableRef.tableList, this.projectParams); console.log(this.$refs.tableRef.tableList, this.projectParams);
this.$refs.projectParamsRef.validate(async (valid) => { this.$refs.projectParamsRef.validate(async (valid) => {
if (valid) { if (valid) {
this.projectParams.recordList = this.$refs.tableRef.tableList; let isEmpty = true
if (this.subSort === 1) { this.$refs.tableRef.tableList.forEach(item=>{
let res = await addEdgeDeviceApi(this.projectParams); if (item.devName == '' || !item.devName || item.devCode == '' || !item.devCode || item.unitName == '' || !item.unitName
if (res.code === 200) { || item.areaName == '' || !item.areaName ||item.devUser == '' || !item.devUser || item.devUserPhone == '' || !item.devUserPhone
this.$modal.msgSuccess("操作成功"); ) {
this.$emit("closeDialog", true); isEmpty = false;
} console.log('isEmpty',isEmpty)
} else { }
let res = await editEdgeDeviceApi(this.projectParams); })
if (res.code === 200) { if(isEmpty){
this.$modal.msgSuccess("操作成功"); this.projectParams.recordList = this.$refs.tableRef.tableList;
this.$emit("closeDialog", true); if (this.subSort === 1) {
} let res = await addEdgeDeviceApi(this.projectParams);
if (res.code === 200) {
this.$modal.msgSuccess("操作成功");
this.$emit("closeDialog", true);
}
} else {
let res = await editEdgeDeviceApi(this.projectParams);
if (res.code === 200) {
this.$modal.msgSuccess("操作成功");
this.$emit("closeDialog", true);
}
}
}else {
this.$modal.msgError('请填写全部字段!!!')
} }
} }
}); });
}, },

View File

@ -129,6 +129,7 @@ export default {
message: '请输入姓名', message: '请输入姓名',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'blur' }
], ],
idCard: [ idCard: [
{ required: true, message: "身份证号不能为空", trigger: "blur" }, { required: true, message: "身份证号不能为空", trigger: "blur" },
@ -179,6 +180,16 @@ export default {
} }
}, },
methods: { methods: {
validateInput(rule, value, callback) {
const regex = /[!@#$%^&*()_,.?":{}|<>+\//\\]/g; //
if (!value) {
callback(new Error('输入不能为空'));
} else if (regex.test(value)) {
callback(new Error('输入不能包含特殊字符'));
} else {
callback(); //
}
},
/** 获取各类下拉框 */ /** 获取各类下拉框 */
async getRanges() { async getRanges() {
// //

View File

@ -217,6 +217,7 @@ export default {
message: '请输入工程名称', message: '请输入工程名称',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'change' }
], ],
departId: [ departId: [
{ {
@ -333,6 +334,16 @@ export default {
} }
}, },
methods: { methods: {
validateInput(rule, value, callback) {
const regex = /[!@#$%^&*()_,.?":{}|<>+\//\\]/g; //
if (!value) {
callback(new Error('输入不能为空'));
} else if (regex.test(value)) {
callback(new Error('输入不能包含特殊字符'));
} else {
callback(); //
}
},
/** 校验经纬 */ /** 校验经纬 */
validateLonLat(rule, value, callback) { validateLonLat(rule, value, callback) {
if(!this.lonLatReg.test(value)) { if(!this.lonLatReg.test(value)) {

View File

@ -62,6 +62,16 @@ export default {
} }
}, },
methods: { methods: {
validateInput(rule, value, callback) {
const regex = /[!@#$%^&*()_,.?":{}|<>+\//\\]/g; //
if (!value) {
callback(new Error('输入不能为空'));
} else if (regex.test(value)) {
callback(new Error('输入不能包含特殊字符'));
} else {
callback(); //
}
},
/** 校验经纬 */ /** 校验经纬 */
validateLonLat(rule, value, callback) { validateLonLat(rule, value, callback) {
if(!this.lonLatReg.test(value)) { if(!this.lonLatReg.test(value)) {
@ -150,6 +160,7 @@ export default {
message: '请输入杆塔名称', message: '请输入杆塔名称',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'change' }
], ],
lon: [ lon: [
{ required: true, message: "杆塔经度不能为空", trigger: "blur" }, { required: true, message: "杆塔经度不能为空", trigger: "blur" },

View File

@ -126,6 +126,7 @@ export default {
message: '请选择项目部名称', message: '请选择项目部名称',
trigger: 'change', trigger: 'change',
}, },
{ validator: this.validateInput, trigger: 'change' }
], ],
departType: [ departType: [
{ {
@ -147,6 +148,7 @@ export default {
message: '请输入负责人', message: '请输入负责人',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'blur' }
], ],
headUserPhone: [ headUserPhone: [
{ required: true, message: "负责人电话不能为空", trigger: "blur" }, { required: true, message: "负责人电话不能为空", trigger: "blur" },
@ -154,7 +156,8 @@ export default {
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
message: "请输入正确的手机号码", message: "请输入正确的手机号码",
trigger: "blur" trigger: "blur"
} },
{ validator: this.validateInput, trigger: 'blur' }
], ],
}, },
// //
@ -166,6 +169,16 @@ export default {
} }
}, },
methods: { methods: {
validateInput(rule, value, callback) {
const regex = /[!@#$%^&*()_,.?":{}|<>+\//\\]/g; //
if (!value) {
callback(new Error('输入不能为空'));
} else if (regex.test(value)) {
callback(new Error('输入不能包含特殊字符'));
} else {
callback(); //
}
},
/** 获取各类下拉框 */ /** 获取各类下拉框 */
async getRanges() { async getRanges() {
// //

View File

@ -321,6 +321,7 @@ export default {
message: '请输入配置名称', message: '请输入配置名称',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'blur' }
], ],
configVal1Min: [ configVal1Min: [
{ {
@ -656,6 +657,7 @@ export default {
message: '请输入配置名称', message: '请输入配置名称',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'blur' }
], ],
configVal1Min: [ configVal1Min: [
{ {
@ -731,6 +733,7 @@ export default {
message: '请输入配置名称', message: '请输入配置名称',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'blur' }
], ],
configVal1Min: [ configVal1Min: [
{ {
@ -806,6 +809,7 @@ export default {
message: '请输入配置名称', message: '请输入配置名称',
trigger: 'blur', trigger: 'blur',
}, },
{ validator: this.validateInput, trigger: 'blur' }
], ],
configVal1Min: [ configVal1Min: [
{ {
@ -1089,6 +1093,16 @@ export default {
// } // }
// }, // },
/** 改变树结构 */ /** 改变树结构 */
validateInput(rule, value, callback) {
const regex = /[!@#$%^&*()_,.?":{}|<>+\//\\]/g; //
if (!value) {
callback(new Error('输入不能为空'));
} else if (regex.test(value)) {
callback(new Error('输入不能包含特殊字符'));
} else {
callback(); //
}
},
changeTree(leaf) { changeTree(leaf) {
leaf.map(item => { leaf.map(item => {
item.value = item.id item.value = item.id

View File

@ -23,7 +23,13 @@
> >
<template slot="btn" slot-scope="{ queryParams }"> <template slot="btn" slot-scope="{ queryParams }">
<el-button type="primary" @click="handleAddData()" icon="el-icon-plus" size="mini" <el-button type="primary" @click="handleAddData()" icon="el-icon-plus" size="mini"
>新增配置</el-button >新增配置</el-button>
<el-button type="warning" @click="handleExportData(
exportList,
'base/tbWarnConfig/export',
'预警配置',
queryParams)" icon="el-icon-plus" size="mini"
>导出数据</el-button
> >
</template> </template>
<template slot="handle" slot-scope="{ data }"> <template slot="handle" slot-scope="{ data }">
@ -121,6 +127,9 @@ export default {
this.$refs.tableRef.queryTableList({ this.$refs.tableRef.queryTableList({
configuType: v.dictCode configuType: v.dictCode
}) })
},
handExport(){
} }
}, },
mixins: [commonMixin], mixins: [commonMixin],