修改输入框字段限制

This commit is contained in:
GGJ
2024-12-13 14:36:23 +08:00
parent a856075ddb
commit 8c4cc891e5
58 changed files with 663 additions and 1211 deletions

View File

@@ -110,15 +110,15 @@
</el-select>
</el-form-item>
<el-form-item label="数据来源" v-if="dataSet.includes('_items')">
<el-select v-model="formInline.targetType" >
<el-select v-model="formInline.targetType">
<el-option v-for="item in dataSource" :key="item.id" :label="item.name"
:value="item.id" />
</el-select>
</el-form-item>
<el-form-item label="关键字" v-if="!dataSet.includes('_')">
<el-input style="width: 160px" v-model="searchValue" autocomplete="off" clearable
@input="handleSearch" placeholder="请输入关键词"></el-input>
<el-input maxlength="32" show-word-limit v-model="searchValue"
autocomplete="off" clearable @input="handleSearch" placeholder="请输入关键词"></el-input>
</el-form-item>
</template>
<template #operation>
@@ -647,7 +647,7 @@ const handleaddDevice = () => {
const deviceId: any = ref('')
const lineId: any = ref('')
const dataLevel: any = ref('')
const dataSource=ref([])
const dataSource = ref([])
const nodeClick = async (e: anyObj) => {
// console.log("🚀 ~ nodeClick ~ e:", e)
if (e.level == 2) return
@@ -661,7 +661,7 @@ const nodeClick = async (e: anyObj) => {
formInline.targetType = res.data[0].id
})
deviceId.value = e?.pid
lineId.value = e?.id
TrendList.value = e

View File

@@ -43,6 +43,7 @@ const setData = (data: any, targetType: any) => {
// dataList1.value = []
let list1: any = []
dataList.value = []
dataList1.value = []
flag.value = true
flag1.value = true
targetName.value = targetType[0].name

View File

@@ -4,29 +4,17 @@
<TableHeader>
<template v-slot:select>
<el-form-item label="设备类型">
<!-- <el-input v-model="tableStore.table.params.searchValue" placeholder="请输入设备类型" /> -->
<el-select
v-model="tableStore.table.params.devType"
clearable
@change="devTypeChange"
placeholder="请选择设备类型"
>
<el-option
v-for="item in devTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<!-- <el-input maxlength="32" show-word-limit v-model="tableStore.table.params.searchValue" placeholder="请输入设备类型" /> -->
<el-select v-model="tableStore.table.params.devType" clearable @change="devTypeChange"
placeholder="请选择设备类型">
<el-option v-for="item in devTypeOptions" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="设备型号">
<el-select v-model="tableStore.table.params.devModel" filterable clearable placeholder="请选择设备型号">
<el-option
v-for="item in devModelOptionsFilter"
:key="item.value"
:label="item.label"
:value="item.value"
/>
<el-option v-for="item in devModelOptionsFilter" :key="item.value" :label="item.label"
:value="item.value" />
</el-select>
</el-form-item>
<el-form-item label="通讯协议">
@@ -47,15 +35,8 @@
<el-button type="primary" @click="downLoadFile" class="ml10" icon="el-icon-Download">
模版下载
</el-button>
<el-upload
style="display: inline-block"
action=""
accept=".xlsx"
class="upload-demo"
:show-file-list="false"
:auto-upload="false"
:on-change="bulkImport"
>
<el-upload style="display: inline-block" action="" accept=".xlsx" class="upload-demo"
:show-file-list="false" :auto-upload="false" :on-change="bulkImport">
<el-button type="primary" class="ml10" icon="el-icon-Tickets">批量导入</el-button>
</el-upload>
<el-button type="primary" class="ml10" @click="add" icon="el-icon-Plus">新增设备</el-button>
@@ -63,44 +44,27 @@
</TableHeader>
<Table ref="tableRef"></Table>
<el-dialog
:title="dialogTitle"
v-model="dialogFormVisible"
:close-on-click-modal="false"
:before-close="resetForm"
draggable
width="40%"
>
<el-dialog :title="dialogTitle" v-model="dialogFormVisible" :close-on-click-modal="false"
:before-close="resetForm" draggable width="40%">
<el-form :model="form" label-width="120px" :rules="rules" ref="ruleFormRef">
<el-form-item label="设备名称:" prop="name">
<el-input
v-model="form.name"
autocomplete="off"
clearable
placeholder="请输入(项目名称+设备名称)"
></el-input>
<el-input maxlength="32" show-word-limit v-model="form.name" autocomplete="off" clearable
placeholder="请输入(项目名称+设备名称)"></el-input>
</el-form-item>
<el-form-item label="网络设备ID:" prop="ndid" class="top">
<el-input v-model="form.ndid" autocomplete="off" placeholder="请输入"></el-input>
<el-input maxlength="32" show-word-limit v-model="form.ndid" autocomplete="off"
placeholder="请输入"></el-input>
</el-form-item>
<el-form-item label="设备类型:" prop="devType" class="top">
<el-select v-model="form.devType" placeholder="请选择" @change="formDevTypeChange" clearable>
<el-option
v-for="item in devTypeOptions"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
<el-option v-for="item in devTypeOptions" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="设备型号:" prop="devModel" class="top">
<el-select v-model="form.devModel" filterable placeholder="请选择" clearable>
<el-option
v-for="item in formDevModelOptionsFilter"
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
<el-option v-for="item in formDevModelOptionsFilter" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="通讯协议:" prop="devAccessMethod" class="top">
@@ -111,7 +75,8 @@
</el-form-item>
<el-form-item label="合同号:" prop="cntractNo" class="top">
<el-input v-model="form.cntractNo" autocomplete="off" placeholder="请输入"></el-input>
<el-input maxlength="32" show-word-limit v-model="form.cntractNo" autocomplete="off"
placeholder="请输入"></el-input>
</el-form-item>
</el-form>
<template #footer>
@@ -216,9 +181,11 @@ const tableStore = new TableStore({
url: '/cs-device-boot/EquipmentDelivery/list',
method: 'POST',
column: [
{ title: '序号', width: 80,formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
} },
{
title: '序号', width: 80, formatter: (row: any) => {
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
}
},
{ title: '设备名称', field: 'name' },
{
title: '设备类型',
@@ -301,7 +268,7 @@ const tableStore = new TableStore({
tableStore.onTableAction('search', {})
})
})
.catch(e => {})
.catch(e => { })
}
},
//便携式设备注册
@@ -334,7 +301,7 @@ const tableStore = new TableStore({
tableStore.index()
})
})
.catch(e => {})
.catch(e => { })
}
},
//直连设备接入
@@ -366,7 +333,7 @@ const tableStore = new TableStore({
tableStore.onTableAction('search', {})
})
})
.catch(e => {})
.catch(e => { })
}
},
//便携式设备接入
@@ -397,7 +364,7 @@ const tableStore = new TableStore({
tableStore.index()
})
})
.catch(e => {})
.catch(e => { })
}
},
{
@@ -463,7 +430,7 @@ const tableStore = new TableStore({
tableStore.onTableAction('search', {})
})
})
.catch(e => {})
.catch(e => { })
}
}
]
@@ -577,7 +544,7 @@ onMounted(() => {
}, 100)
})
const addMenu = () => {}
const addMenu = () => { }
</script>
<style lang="scss" scoped>
.qrcode-label {

View File

@@ -21,12 +21,7 @@
<vxe-column title="操作" width="200px">
<template v-slot:default="scoped">
<el-button
link
size="small"
type="danger"
@click="deleteEngineering(scoped.row)"
>
<el-button link size="small" type="danger" @click="deleteEngineering(scoped.row)">
移除
</el-button>
</template>
@@ -35,29 +30,17 @@
</div>
</div>
<el-dialog v-model="dialogVisible" title="添加工程" class="cn-operate-dialog" :close-on-click-modal="false">
<el-input
v-model="filterText"
icon="el-icon-Search"
placeholder="请输入内容"
clearable
style="margin-bottom: 10px"
>
<el-input maxlength="32" show-word-limit v-model="filterText" icon="el-icon-Search" placeholder="请输入内容"
clearable style="margin-bottom: 10px">
<template #prefix>
<Icon name="el-icon-Search" style="font-size: 16px" />
</template>
</el-input>
<vxe-table
ref="tableRef"
v-bind="defaultAttribute"
:data="
tableData2.filter((item:any) => {
return item.name.includes(filterText)
})
"
height="500px"
style="width: 100%"
>
<vxe-table ref="tableRef" v-bind="defaultAttribute" :data="tableData2.filter((item: any) => {
return item.name.includes(filterText)
})
" height="500px" style="width: 100%">
<vxe-column type="checkbox" width="60"></vxe-column>
<vxe-column field="name" title="工程名称"></vxe-column>
</vxe-table>
@@ -160,6 +143,7 @@ const addMarketData = () => {
overflow: hidden;
flex: 1;
padding: 10px 10px 10px 0;
.el-descriptions__header {
height: 36px;
margin-bottom: 7px;

View File

@@ -20,8 +20,8 @@
</div>
<div class="filter" v-if="activePathList.length != 0">
<el-input style="width: 200px; height: 32px" placeholder="请输入文件或文件夹名称" clearable v-model="filterText"
type="text"></el-input>
<el-input maxlength="32" show-word-limit style="width: 200px; height: 32px" placeholder="请输入文件或文件夹名称"
clearable v-model="filterText" type="text"></el-input>
<el-button type="primary" @click="handleSearch" :icon="Search">搜索</el-button>
<el-button @click="handleRefresh" :icon="Refresh">重置</el-button>
<el-upload v-if="activePath != '/'" action="" :auto-upload="false" :show-file-list="false" :on-change="(file: any, fileList: any) => {
@@ -130,7 +130,7 @@
<el-form ref="formRef" :model="form"
:rules="{ path: [{ required: true, message: '请输入文件夹名称', trigger: 'blur' }] }">
<el-form-item label="文件夹名称" prop="path">
<el-input v-model="form.path" placeholder="请输入文件夹名称" />
<el-input maxlength="32" show-word-limit v-model="form.path" placeholder="请输入文件夹名称" />
</el-form-item>
</el-form>
<template #footer>
@@ -524,7 +524,7 @@ mqttRef.value.on('message', (topic: any, message: any) => {
console.log('mqtt接收到消息', JSON.parse(JSON.stringify(JSON.parse(new TextDecoder().decode(message)))))
let str = JSON.parse(JSON.stringify(JSON.parse(new TextDecoder().decode(message))))
let regex = /fileName:(.*?),allStep/
let regex1 = /allStep:(.*?),nowStep/
let regex2 = /nowStep:(.*?),userId/
@@ -536,7 +536,7 @@ mqttRef.value.on('message', (topic: any, message: any) => {
nowStep: str.match(regex2)[1],
userId: str.match(regex3)[1]
}
console.log("🚀 ~ str.match(regex3)[1]:", str.match(regex3)[1])
console.log("🚀 ~ str.match(regex3)[1]:", str.match(regex3)[1])
status.value = parseInt(Number((mqttMessage.value.nowStep / mqttMessage.value.allStep) * 100))
fileRef.value.setStatus(mqttMessage.value)
fileName.value = mqttMessage.value.fileName

View File

@@ -11,8 +11,9 @@
<el-descriptions :title="'数据集名称: ' + popupData.dataSetName" size="small" :column="2" border>
<template #extra>
<div v-if="newGroupVisible" style="display: flex; align-items: center">
<el-input v-model="groupName" autocomplete="off" clearable placeholder="请输入分组名称"></el-input>
<el-button class="ml10" ctype="primary" size="small" @click="newGroupVisible = false">取消</el-button>
<el-input maxlength="32" show-word-limit v-model="groupName" autocomplete="off" clearable
placeholder="请输入分组名称"></el-input>
<el-button class="ml10" ctype="primary" size="small" @click="newGroupVisible = false">取消</el-button>
<el-button class="ml10" type="primary" size="small" @click="addNewGroup">完成</el-button>
</div>
<template v-else>
@@ -144,6 +145,7 @@ defineExpose({ open })
font-size: 14px;
padding-right: 8px;
}
.el-dialog__body {
display: flex;
flex-direction: column;

View File

@@ -5,10 +5,11 @@
<el-form :model="form" scroll-to-error label-width="140px" :rules="rules1" ref="ruleFormRef1" class="form-one"
v-if="popupType == 0 || popupType == 1">
<el-form-item label="方案名称:" prop="itemName">
<el-input v-model="form.itemName" placeholder="请输入方案名称" />
<el-input maxlength="32" show-word-limit v-model="form.itemName" placeholder="请输入方案名称" />
</el-form-item>
<el-form-item label="方案描述:" prop="describe">
<el-input type="textarea" v-model="form.describe" placeholder="请输入方案描述" />
<el-input maxlength="300" show-word-limit type="textarea" v-model="form.describe"
placeholder="请输入方案描述" />
</el-form-item>
</el-form>
<!-- 测试项信息&数据绑定页面 -->
@@ -17,7 +18,7 @@
<el-form :model="form1" ref="ruleFormRef2" scroll-to-error class="form-two" label-width="140px"
:rules="rules2">
<el-form-item label="测试项名称:" prop="itemName">
<el-input v-model="form1.itemName" placeholder="请输入测试项名称" />
<el-input maxlength="32" show-word-limit v-model="form1.itemName" placeholder="请输入测试项名称" />
</el-form-item>
<el-form-item label="测量间隔:" prop="statisticalInterval">
<el-select v-model="form1.statisticalInterval" placeholder="请选择测量间隔" clearable
@@ -40,7 +41,7 @@
</el-select>
</el-form-item>
<el-form-item label="最小短路容量:" prop="capacitySscmin">
<el-input v-model="form1.capacitySscmin" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model="form1.capacitySscmin" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" autocomplete="off" placeholder="请选择最小短路容量">
<template #append>MVA</template>
@@ -48,7 +49,7 @@
</el-form-item>
<el-form-item label="用户协议容量:" prop="capacitySi">
<el-input v-model="form1.capacitySi" autocomplete="off" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model="form1.capacitySi" autocomplete="off" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入用户协议容量">
<template #append>MVA</template>
@@ -56,7 +57,7 @@
</el-form-item>
<el-form-item label="基准短路容量:" prop="capacitySscb">
<el-input v-model="form1.capacitySscb" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model="form1.capacitySscb" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入基准短路容量">
<template #append>MVA</template>
@@ -64,26 +65,27 @@
</el-form-item>
<el-form-item label="供电设备容量:" prop="capacitySt">
<el-input v-model="form1.capacitySt" oninput="value=value.replace(/[^\-?\d.]/g,'')
<el-input maxlength="32" show-word-limit v-model="form1.capacitySt" oninput="value=value.replace(/[^\-?\d.]/g,'')
.replace(/^\./g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')
.replace('-','$#$').replace(/\-/g,'').replace('$#$','-')" placeholder="请输入供电设备容量">
<template #append>MVA</template>
</el-input>
</el-form-item>
<el-form-item label="PT变比" prop="pt">
<el-input style="width: 48%" v-model="form1.pt" autocomplete="off" placeholder="请输入PT变比"
oninput="value=value.replace(/[^0-9.]/g,'')" />
<el-input style="width: 48%" v-model="form1.pt1" autocomplete="off" placeholder="请输入PT变比"
oninput="value=value.replace(/[^0-9.]/g,'')" />
<el-input maxlength="32" show-word-limit style="width: 48%" v-model="form1.pt"
autocomplete="off" placeholder="请输入PT变比" oninput="value=value.replace(/[^0-9.]/g,'')" />
<el-input maxlength="32" show-word-limit style="width: 48%" v-model="form1.pt1"
autocomplete="off" placeholder="请输入PT变比" oninput="value=value.replace(/[^0-9.]/g,'')" />
</el-form-item>
<el-form-item label="CT变比" prop="ct">
<el-input v-model="form1.ct" style="width: 48%" autocomplete="off"
oninput="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入CT变比" />
<el-input v-model="form1.ct1" style="width: 48%" autocomplete="off"
oninput="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入CT变比" />
<el-input maxlength="32" show-word-limit v-model="form1.ct" style="width: 48%"
autocomplete="off" oninput="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入CT变比" />
<el-input maxlength="32" show-word-limit v-model="form1.ct1" style="width: 48%"
autocomplete="off" oninput="value=value.replace(/[^0-9.]/g,'')" placeholder="请输入CT变比" />
</el-form-item>
<el-form-item label="监测位置:" prop="location" style="width: 100%">
<el-input type="textarea" v-model="form1.location" placeholder="请输入监测位置" />
<el-input maxlength="300" show-word-limit type="textarea" v-model="form1.location"
placeholder="请输入监测位置" />
</el-form-item>
</el-form>
</el-tab-pane>

View File

@@ -7,12 +7,12 @@
style="cursor: pointer" />
<div class="cn-tree" :style="{ opacity: menuCollapse ? 0 : 1, display: menuCollapse ? 'none' : '' }">
<div style="display: flex; align-items: center" class="mb10">
<el-input v-model="filterText" placeholder="请输入内容" clearable>
<el-input maxlength="32" show-word-limit v-model="filterText" placeholder="请输入内容" clearable>
<template #prefix>
<Icon name="el-icon-Search" style="font-size: 16px" />
</template>
</el-input>
<el-tooltip placement="bottom" :hide-after="0">
<el-tooltip placement="bottom" :hide-after="0">
<template #content>
<span>新增方案</span>
</template>
@@ -57,7 +57,7 @@
</a>
<a :style="{ marginRight: '0.5rem' }" v-else>
<el-icon :style="{ color: '#0000FF' }">
<el-tooltip placement="bottom" :hide-after="0">
<el-tooltip placement="bottom" :hide-after="0">
<template #content>
<span>绑定测试项</span>
</template>
@@ -68,7 +68,7 @@
</a>
<a :style="{ marginRight: '0.5rem' }">
<el-icon :style="{ color: '#0000FF' }">
<el-tooltip placement="bottom" :hide-after="0">
<el-tooltip placement="bottom" :hide-after="0">
<template #content>
<span>修改测试项</span>
</template>
@@ -78,7 +78,7 @@
</el-icon>
</a>
<a :style="{ marginRight: '0.5rem' }">
<el-icon :style="{ color: '#DA3434' }">

View File

@@ -4,30 +4,14 @@
<div class="SelectBox">
<div class="boxTitle" @click="clickAllSelect">未绑定数据</div>
<div class="boxCenter">
<el-input
v-model="filterText"
:suffix-icon="Search"
style="width: 100%"
placeholder="请输入搜索内容"
clearable
></el-input>
<el-tree
ref="leftTree"
default-expand-all
:data="leftData"
:props="defaultProps"
show-checkbox
node-key="id"
:filter-node-method="filterNode"
>
<el-input maxlength="32" show-word-limit v-model="filterText" :suffix-icon="Search" style="width: 100%"
placeholder="请输入搜索内容" clearable></el-input>
<el-tree ref="leftTree" default-expand-all :data="leftData" :props="defaultProps" show-checkbox
node-key="id" :filter-node-method="filterNode">
<template #default="{ node, data }">
<span class="custom-tree-node">
<Icon
:name="data.icon"
style="font-size: 16px"
:style="{ color: data.color }"
v-if="data.icon"
/>
<Icon :name="data.icon" style="font-size: 16px" :style="{ color: data.color }"
v-if="data.icon" />
<span style="margin-left: 4px">{{ node.label }}</span>
</span>
</template>
@@ -38,40 +22,28 @@
<div class="transferBtn">
<el-button type="primary" @click="towardsRight">
绑定
<el-icon><ArrowRight /></el-icon>
<el-icon>
<ArrowRight />
</el-icon>
</el-button>
<el-button type="primary" @click="towardsLeft">
<el-icon><ArrowLeft /></el-icon>
<el-icon>
<ArrowLeft />
</el-icon>
解绑</el-button>
</div>
<!-- 右侧已选内容 -->
<div class="SelectBox">
<div class="boxTitle" @click="clickCancelAllSelect">已绑定数据</div>
<div class="boxCenter">
<el-input
v-model="filterText1"
:suffix-icon="Search"
style="width: 100%"
placeholder="请输入搜索内容"
clearable
></el-input>
<el-tree
ref="rightTree"
default-expand-all
:data="rightData"
:props="defaultProps"
show-checkbox
node-key="id"
:filter-node-method="filterNode"
>
<el-input maxlength="32" show-word-limit v-model="filterText1" :suffix-icon="Search" style="width: 100%"
placeholder="请输入搜索内容" clearable></el-input>
<el-tree ref="rightTree" default-expand-all :data="rightData" :props="defaultProps" show-checkbox
node-key="id" :filter-node-method="filterNode">
<template #default="{ node, data }">
<span class="custom-tree-node">
<Icon
:name="data.icon"
style="font-size: 16px"
:style="{ color: data.color }"
v-if="data.icon"
/>
<Icon :name="data.icon" style="font-size: 16px" :style="{ color: data.color }"
v-if="data.icon" />
<span style="margin-left: 4px">{{ node.label }}</span>
</span>
</template>
@@ -254,6 +226,7 @@ export default {
background: #fff;
padding: 0 10px;
border: 1px solid #eee;
.el-input {
margin: 10px 0;
}
@@ -266,7 +239,7 @@ export default {
align-items: center;
justify-content: center;
width: 100px;
flex:1;
flex: 1;
.pickBtn {
height: 40px;