业务管理,系统管理
This commit is contained in:
@@ -94,7 +94,7 @@
|
||||
>
|
||||
<el-form :model="formData" label-width="120px" :rules="rules" ref="ruleFormRef">
|
||||
<el-form-item label="名称:" prop="name">
|
||||
<el-input v-model="formData.name" placeholder="请输入名称"></el-input>
|
||||
<el-input v-model="formData.name" placeholder="请输入名称" maxlength="32" show-word-limit @input="handleInput"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="IP:" prop="ip" class="top">
|
||||
<el-input v-model="formData.ip" placeholder="请输入Ip"></el-input>
|
||||
@@ -332,14 +332,31 @@ const tableStore = new TableStore({
|
||||
})
|
||||
// 点击行
|
||||
const currentChangeEvent = () => {
|
||||
// 确保 tableRef 和当前记录存在
|
||||
if (!tableRef.value || !tableRef.value.getRef().getCurrentRecord()) {
|
||||
loading.value = false;
|
||||
dataSource.value = [];
|
||||
return;
|
||||
}
|
||||
|
||||
loading.value = true
|
||||
dataSource.value = []
|
||||
nodeDeviceTree({
|
||||
nodeId: tableRef.value.getRef().getCurrentRecord().id
|
||||
}).then(res => {
|
||||
// 检查返回的数据是否存在且不为空
|
||||
if (res.data && res.data.processDeviceList) {
|
||||
dataSource.value = res.data.processDeviceList.filter(item => (item.name = item.processNo + ''))
|
||||
} else {
|
||||
dataSource.value = []
|
||||
}
|
||||
loading.value = false
|
||||
}).catch(() => {
|
||||
// 添加错误处理,确保 loading 状态也能关闭
|
||||
dataSource.value = []
|
||||
loading.value = false
|
||||
})
|
||||
|
||||
// const row = tableRef.value.getRef().getCurrentRecord()
|
||||
}
|
||||
const treeRef = ref()
|
||||
@@ -444,6 +461,10 @@ const resetForm = () => {
|
||||
}
|
||||
}
|
||||
|
||||
const handleInput = (val: string) => {
|
||||
formData.value.name = val.replace(/\s+/g, '')
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
setTimeout(() => {
|
||||
tableStore.index()
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item style="right: 0; position: absolute; overflow: hidden">
|
||||
|
||||
<div class="title">
|
||||
<LocationInformation style="width: 16px; margin-right: 8px; color: #396" />
|
||||
<span style="font-size: 16px; font-weight: bold; color: #396">当前操作节点:</span>
|
||||
@@ -2353,6 +2354,9 @@ const next = async () => {
|
||||
// 撤销
|
||||
const black = () => {
|
||||
pageStatus.value = 1
|
||||
busBarIndex.value = '0'
|
||||
deviceIndex.value = '0';
|
||||
lineIndex.value = '0';
|
||||
}
|
||||
// 确认提交
|
||||
const onsubmit = () => {
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<el-dialog draggable class="cn-operate-dialog" v-model="dialogVisible" :title="title">
|
||||
<el-scrollbar>
|
||||
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
|
||||
<el-form-item label="名称:" class="top" prop="name">
|
||||
<el-input v-model="form.name"></el-input>
|
||||
<el-form-item label="名称:" class="top" prop="name" >
|
||||
<el-input v-model="form.name" ></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="计算值:" class="top">
|
||||
<el-input v-model="form.value"></el-input>
|
||||
@@ -118,5 +118,6 @@ const submit = async () => {
|
||||
dialogVisible.value = false
|
||||
}
|
||||
|
||||
|
||||
defineExpose({ open })
|
||||
</script>
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<el-scrollbar>
|
||||
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
|
||||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="form.name"></el-input>
|
||||
<el-input v-model="form.name" maxlength="32" show-word-limit @input="handleInput"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="编码" class="top" prop="code">
|
||||
<el-input v-model="form.code"></el-input>
|
||||
@@ -112,5 +112,9 @@ const submit = async () => {
|
||||
})
|
||||
}
|
||||
|
||||
const handleInput = (value: string) => {
|
||||
form.name = value.replace(/[^\d]/g, '')
|
||||
}
|
||||
|
||||
defineExpose({ open })
|
||||
</script>
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<el-dialog draggable class="cn-operate-dialog" v-model="dialogVisible" :title="title">
|
||||
<el-scrollbar>
|
||||
<el-form :inline="false" :model="form" label-width="120px" :rules="rules">
|
||||
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
|
||||
<el-form-item label="字典名称:" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入字典名称"></el-input>
|
||||
<el-input v-model="form.name" placeholder="请输入字典名称" maxlength="32" show-word-limit @input="handleInput"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="序号:" prop="sort" class="top">
|
||||
<el-input v-model="form.sort" placeholder="请输入序号"></el-input>
|
||||
@@ -33,6 +33,7 @@ import { ElMessage } from 'element-plus'
|
||||
import { useAdminInfo } from '@/stores/adminInfo'
|
||||
import { dicAdd, dicUpdate } from '@/api/system-boot/dic'
|
||||
|
||||
const formRef = ref()
|
||||
const adminInfo = useAdminInfo()
|
||||
const tableStore = inject('tableStore') as TableStore
|
||||
// do not use same name with ref
|
||||
@@ -69,6 +70,8 @@ const open = (text: string, data?: anyObj) => {
|
||||
}
|
||||
}
|
||||
const submit = async () => {
|
||||
formRef.value.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
if (form.id) {
|
||||
await dicUpdate(form)
|
||||
} else {
|
||||
@@ -77,6 +80,13 @@ const submit = async () => {
|
||||
ElMessage.success('保存成功')
|
||||
tableStore.index()
|
||||
dialogVisible.value = false
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const handleInput = (val: string) => {
|
||||
form.name = val.replace(/\s+/g, '')
|
||||
}
|
||||
|
||||
defineExpose({ open })
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<template>
|
||||
<el-dialog draggable width="600px" v-model="dialogVisible" :title="title">
|
||||
<el-scrollbar>
|
||||
<el-form :inline="false" :model="form" label-width="auto" class="form-one">
|
||||
<el-form-item label="上级菜单">
|
||||
<el-form :inline="false" :model="form" label-width="auto" :rules="rules" class="form-one" ref="formRef">
|
||||
<el-form-item label="上级菜单" prop="pid">
|
||||
<el-cascader
|
||||
v-model="form.pid"
|
||||
clearable
|
||||
@@ -11,16 +11,16 @@
|
||||
style="width: 100%"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item label="菜单名称">
|
||||
<el-input v-model="form.name" placeholder="请输入菜单名称" />
|
||||
<el-form-item label="菜单名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入菜单名称" maxlength="32" show-word-limit @input="handleInput"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="图标">
|
||||
<el-form-item label="图标" prop="icon">
|
||||
<IconSelector v-model="form.icon" placeholder="请选择图标" />
|
||||
</el-form-item>
|
||||
<el-form-item label="菜单路由">
|
||||
<el-input v-model="form.path" placeholder="请输入菜单名称" />
|
||||
<el-form-item label="菜单路由" prop="path">
|
||||
<el-input v-model="form.path" placeholder="请输入菜单路由" />
|
||||
</el-form-item>
|
||||
<el-form-item label="组件路径">
|
||||
<el-form-item label="组件路径" prop="routeName">
|
||||
<el-input
|
||||
v-model="form.routeName"
|
||||
placeholder="请输入组件路径,如/src/views/auth/audit/index.vue或auth/audit"
|
||||
@@ -53,6 +53,7 @@ import { updateMenu, addMenu } from '@/api/systerm'
|
||||
defineOptions({
|
||||
name: 'auth/menu/popupMenu'
|
||||
})
|
||||
|
||||
const emits = defineEmits<{
|
||||
(e: 'init'): void
|
||||
}>()
|
||||
@@ -75,7 +76,7 @@ const form: any = reactive({
|
||||
sort: 100,
|
||||
type: 0
|
||||
})
|
||||
|
||||
const formRef = ref()
|
||||
const dialogVisible = ref(false)
|
||||
const title = ref('新增菜单')
|
||||
const open = (text: string, data: anyObj) => {
|
||||
@@ -99,7 +100,8 @@ const open = (text: string, data: anyObj) => {
|
||||
dialogVisible.value = true
|
||||
}
|
||||
const submit = async () => {
|
||||
|
||||
formRef.value.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
if(form.pid === ''||form.pid === null){
|
||||
form.pid = '0'
|
||||
}
|
||||
@@ -114,6 +116,19 @@ const submit = async () => {
|
||||
}
|
||||
emits('init')
|
||||
dialogVisible.value = false
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const rules = {
|
||||
name: [{ required: true, message: '请输入菜单名称', trigger: 'blur' }],
|
||||
path: [{ required: true, message: '请输入菜单路由', trigger: 'blur' }],
|
||||
routeName: [{ required: true, message: '请输入组件路径', trigger: 'blur' }],
|
||||
}
|
||||
|
||||
const handleInput = (val: string) => {
|
||||
form.name = val.replace(/\s+/g, '').replace(/\//g, '')
|
||||
}
|
||||
|
||||
defineExpose({ open })
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<el-dialog draggable class="cn-operate-dialog" v-model="dialogVisible" :title="title">
|
||||
<el-scrollbar>
|
||||
<el-form :inline="false" :model="form" label-width="120px" :rules="rules" ref="formRef">
|
||||
<el-form-item label="角色名称" required>
|
||||
<el-form-item label="角色名称" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入菜单名称" maxlength="32" show-word-limit @input="handleInput"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="角色编码">
|
||||
<el-form-item label="角色编码" prop="code">
|
||||
<el-input v-model="form.code" placeholder="请输入菜单名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="角色描述">
|
||||
@@ -61,9 +61,8 @@ const open = (text: string, data?: anyObj) => {
|
||||
}
|
||||
}
|
||||
const submit = async () => {
|
||||
// 先进行表单验证
|
||||
try {
|
||||
await formRef.value.validate()
|
||||
formRef.value.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
if (form.id) {
|
||||
await update(form)
|
||||
} else {
|
||||
@@ -73,10 +72,8 @@ const submit = async () => {
|
||||
ElMessage.success('保存成功')
|
||||
tableStore.index()
|
||||
dialogVisible.value = false
|
||||
} catch (error) {
|
||||
// 验证失败,Element Plus 会自动显示错误信息
|
||||
console.log('表单验证失败:', error)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const handleInput = (val: string) => {
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
v-model="tableStore.table.params.searchValue"
|
||||
clearable
|
||||
placeholder="仅根据用户名/登录名"
|
||||
maxlength="10"
|
||||
show-word-limit
|
||||
/>
|
||||
</el-form-item>
|
||||
</template>
|
||||
@@ -195,6 +197,9 @@ const tableStore = new TableStore({
|
||||
break
|
||||
}
|
||||
})
|
||||
},
|
||||
resetCallback: () => {
|
||||
tableStore.table.params.searchValue = ''
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<template>
|
||||
<el-dialog draggable class="cn-operate-dialog" v-model="dialogVisible" :title="title">
|
||||
<el-form :model="form" class="form-two" label-width="auto" :rules="rules">
|
||||
<el-form :model="form" class="form-two" label-width="auto" :rules="rules" ref="formRef">
|
||||
<el-form-item label="用户名" prop="name">
|
||||
<el-input v-model="form.name" placeholder="请输入昵称" />
|
||||
<el-input v-model="form.name" placeholder="请输入昵称" maxlength="16" show-word-limit @input="handleInput('name', $event)"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="登录名" prop="loginName">
|
||||
<el-input v-model="form.loginName" placeholder="请输入登录名" />
|
||||
<el-input v-model="form.loginName" placeholder="请输入登录名" maxlength="16" show-word-limit @input="handleInput('loginName', $event)"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="默认密码" prop="password" v-if="title === '新增用户'">
|
||||
<el-input v-model="form.password" placeholder="请输入密码" disabled />
|
||||
@@ -104,7 +104,7 @@ import { roleList } from '@/api/user-boot/role'
|
||||
import { add, edit } from '@/api/user-boot/user'
|
||||
import { useAdminInfo } from '@/stores/adminInfo'
|
||||
import Area from '@/components/form/area/index.vue'
|
||||
|
||||
const formRef = ref()
|
||||
const adminInfo = useAdminInfo()
|
||||
const tableStore = inject('tableStore') as TableStore
|
||||
// do not use same name with ref
|
||||
@@ -240,6 +240,8 @@ const open = (text: string, data?: anyObj) => {
|
||||
form.type = adminInfo.$state.userType + 1
|
||||
}
|
||||
const submit = async () => {
|
||||
formRef.value.validate(async (valid: boolean) => {
|
||||
if (valid) {
|
||||
let obj = JSON.parse(JSON.stringify(form))
|
||||
obj.limitTime = obj.limitTime.join('-')
|
||||
delete obj.password
|
||||
@@ -253,6 +255,17 @@ const submit = async () => {
|
||||
}
|
||||
tableStore.index()
|
||||
dialogVisible.value = false
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
const handleInput = (field: keyof typeof form, value: string) => {
|
||||
// 过滤空格
|
||||
const filteredValue = value.replace(/\s/g, '')
|
||||
if (filteredValue !== value) {
|
||||
form[field] = filteredValue as never
|
||||
}
|
||||
}
|
||||
|
||||
const changeValue = () => {}
|
||||
|
||||
@@ -68,7 +68,7 @@ const submit = () => {
|
||||
})
|
||||
} else {
|
||||
updateDevType(form).then(res => {
|
||||
ElMessage.success('新增成功')
|
||||
ElMessage.success('编辑成功')
|
||||
dialogVisible.value = false
|
||||
emit('submit')
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user