fix: 添加页面,统一修改样式。
This commit is contained in:
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user