fix: 添加页面,统一修改样式。

This commit is contained in:
tianyongbao
2026-02-07 00:36:25 +08:00
parent 49f6875a55
commit d46137b83c
12 changed files with 715 additions and 104 deletions

View File

@@ -14,12 +14,12 @@
<u-form-item label="角色名称" prop="roleName" required>
<u--input v-model="form.roleName" placeholder="请输入角色名称" maxlength="30"
inputAlign="right" border="none"></u--input>
inputAlign="left" :customStyle="getInputStyle('roleName')"></u--input>
</u-form-item>
<u-form-item label="权限字符" prop="roleKey" required>
<u--input v-model="form.roleKey" placeholder="请输入权限字符" maxlength="100"
inputAlign="right" border="none"></u--input>
inputAlign="left" :customStyle="getInputStyle('roleKey')"></u--input>
</u-form-item>
<u-form-item label="显示顺序" required>
@@ -27,24 +27,24 @@
</u-form-item>
<u-form-item label="状态" prop="statusName" @click="showStatusPicker = true">
<u--input v-model="statusName" disabled disabledColor="#ffffff" placeholder="请选择状态"
inputAlign="right" border="none"></u--input>
<template #right>
<u-icon name="arrow-down"></u-icon>
</template>
<view class="select-input-wrapper">
<u--input v-model="statusName" disabled disabledColor="#ffffff" placeholder="请选择状态"
inputAlign="left" :customStyle="inputBaseStyle"></u--input>
<u-icon name="arrow-down" class="select-arrow"></u-icon>
</view>
</u-form-item>
<u-form-item label="备注" prop="remark" labelPosition="top">
<u--textarea v-model="form.remark" placeholder="请输入备注" border="none" autoHeight inputAlign="right" count
maxlength="500" style="padding:18rpx 0;"></u--textarea>
<u--input v-model="form.remark" placeholder="请输入备注" maxlength="500"
inputAlign="left" :customStyle="getInputStyle('remark')"></u--input>
</u-form-item>
<u-form-item label="菜单权限" @click="openMenuPicker">
<u--input :value="menuPermissionText" disabled disabledColor="#ffffff" placeholder="请选择菜单权限"
inputAlign="right" border="none"></u--input>
<template #right>
<u-icon name="arrow-down"></u-icon>
</template>
<view class="select-input-wrapper">
<u--input :value="menuPermissionText" disabled disabledColor="#ffffff" placeholder="请选择菜单权限"
inputAlign="left" :customStyle="inputBaseStyle"></u--input>
<u-icon name="arrow-down" class="select-arrow"></u-icon>
</view>
</u-form-item>
<!-- 已选菜单标签展示 -->
@@ -155,6 +155,32 @@ const form = reactive({
remark: undefined
})
// 表单验证错误字段
const errorFields = ref([])
// 输入框基础样式
const inputBaseStyle = {
background: '#ffffff',
border: '2rpx solid #dcdfe6',
borderRadius: '8rpx',
padding: '0 24rpx',
height: '68rpx'
}
// 输入框错误样式
const inputErrorStyle = {
background: '#fef0f0',
border: '2rpx solid #f56c6c',
borderRadius: '8rpx',
padding: '0 24rpx',
height: '68rpx'
}
// 根据字段名获取输入框样式
const getInputStyle = (field) => {
return errorFields.value.includes(field) ? inputErrorStyle : inputBaseStyle
}
const selectedMenuCount = computed(() => {
return tempSelectedMenuIds.value.length
})
@@ -271,6 +297,7 @@ function confirmMenuSelect() {
// 提交
function submit() {
errorFields.value = [] // 清空错误字段
// 设置菜单权限
form.menuIds = selectedMenuIds.value
@@ -290,7 +317,11 @@ function submit() {
}, 1500)
})
}
}).catch(() => {
}).catch((errors) => {
// 记录验证失败的字段
if (errors && Array.isArray(errors)) {
errorFields.value = errors.map(err => err.field || err.prop)
}
proxy.$modal.msgError('请填写完整信息')
})
}
@@ -505,6 +536,20 @@ function submit() {
}
}
}
.select-input-wrapper {
position: relative;
.select-arrow {
position: absolute;
right: 24rpx;
top: 50%;
transform: translateY(-50%);
color: #c0c4cc;
font-size: 28rpx;
pointer-events: none;
}
}
</style>
<style lang="scss">