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