From f96eddc20355ac14c6aa917eb2a7cdd1d4dab7d3 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期二, 11 十一月 2025 16:45:55 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into dev-1.3.0.2
---
src/views/Permission/components/AddOrEditRoleDialog.vue | 142 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 142 insertions(+), 0 deletions(-)
diff --git a/src/views/Permission/components/AddOrEditRoleDialog.vue b/src/views/Permission/components/AddOrEditRoleDialog.vue
new file mode 100644
index 0000000..023f3bc
--- /dev/null
+++ b/src/views/Permission/components/AddOrEditRoleDialog.vue
@@ -0,0 +1,142 @@
+<template>
+ <ProDialog
+ :title="innerForm.title"
+ v-model="innerVisible"
+ @close="onDialogClose"
+ destroy-on-close
+ draggable
+ >
+ <ProForm :rules="rules" :model="innerForm" ref="dialogForm" label-width="110px">
+ <ProFormItemV2 label="瑙掕壊鍚嶇О" prop="name">
+ <ProFormText placeholder="璇疯緭鍏ヨ鑹插悕绉�" v-model.trim="innerForm.name"></ProFormText>
+ </ProFormItemV2>
+ <ProFormItemV2 label="绛夌骇" prop="minLevel">
+ <ProFormInputNumber
+ v-model="innerForm.minLevel"
+ :min="1"
+ :max="100"
+ :controls="false"
+ ></ProFormInputNumber>
+ </ProFormItemV2>
+ <!-- <ProFormItemV2
+ label="浼佷笟绫诲瀷"
+ prop="enterpriseType"
+ v-if="form.userType === EnumUserType.Enterprise"
+ >
+ <ProFormRadio
+ v-model="form.enterpriseType"
+ :value-enum="EnumEnterpriseTypeText"
+ :buttonStyle="false"
+ ></ProFormRadio>
+ </ProFormItemV2> -->
+ <ProFormItemV2 label="鏁版嵁鍙鑼冨洿" prop="dataRange">
+ <ProFormRadio
+ v-model="form.dataRange"
+ :value-enum="EnumRoleWebApiDataPowerTextForFilter"
+ :buttonStyle="false"
+ ></ProFormRadio>
+ </ProFormItemV2>
+ <ProFormItemV2 label="澶囨敞:" prop="remark">
+ <ProFormTextArea
+ v-model="innerForm.remark"
+ placeholder="璇疯緭鍏ュ娉�"
+ show-word-limit
+ :maxlength="2000"
+ ></ProFormTextArea>
+ </ProFormItemV2>
+ </ProForm>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="emit('onCancel')">鍙� 娑�</el-button>
+ <el-button type="primary" @click="handleConfirm">纭� 瀹�</el-button>
+ </span>
+ </template>
+ </ProDialog>
+</template>
+
+<script setup lang="ts">
+import { FormRules, FormInstance } from 'element-plus';
+import {
+ ProDialog,
+ ProForm,
+ ProFormItemV2,
+ ProFormText,
+ ProFormRadio,
+ ProFormTextArea,
+ ProFormInputNumber,
+} from '@bole-core/components';
+import {
+ EnumRoleWebApiDataPowerTextForFilter,
+ EnumEnterpriseTypeText,
+ EnumUserType,
+} from '@/constants';
+
+defineOptions({
+ name: 'AddOrEditRoleDialog',
+});
+
+type Props = {
+ modelValue: boolean;
+ form: {
+ id: string;
+ title?: string;
+ name: string;
+ remark: string;
+ dataRange: EnumRoleWebApiDataPower;
+ minLevel: number;
+ enterpriseType: EnumEnterpriseType;
+ userType: EnumUserType;
+ };
+};
+
+const props = withDefaults(defineProps<Props>(), {
+ modelValue: false,
+});
+
+const emit = defineEmits<{
+ (e: 'update:modelValue', value: boolean): void;
+ (e: 'update:form', value: Props['form']): void;
+ (e: 'onConfirm'): void;
+ (e: 'onCancel'): void;
+}>();
+
+const dialogForm = ref<FormInstance>();
+
+const innerVisible = computed({
+ get() {
+ return props.modelValue;
+ },
+ set(val) {
+ emit('update:modelValue', val);
+ },
+});
+
+const innerForm = computed({
+ get() {
+ return props.form;
+ },
+ set(val) {
+ emit('update:form', val);
+ },
+});
+
+const rules = reactive<FormRules>({
+ name: [{ required: true, message: '璇疯緭鍏ュ悕绉�', trigger: 'blur' }],
+});
+
+function onDialogClose() {
+ if (!dialogForm.value) return;
+ dialogForm.value.resetFields();
+}
+
+function handleConfirm() {
+ if (!dialogForm.value) return;
+ dialogForm.value.validate((valid) => {
+ if (valid) {
+ emit('onConfirm');
+ } else {
+ return;
+ }
+ });
+}
+</script>
--
Gitblit v1.9.1