角色新增类型,平台;告警新增字段

dev
dengjia 2025-09-02 17:35:37 +08:00
parent 21cece2fea
commit 80072c2184
6 changed files with 133 additions and 6 deletions

View File

@ -9,6 +9,11 @@ export const setRoleDelete = (params) =>
export const setRoleAdd = (params) => postRequest("/sys/role/save", params); // 角色管理添加
export const setRoleEdit = (params) => postRequest("/sys/role/update", params); // 角色管理修改
export const getRoleView = (params) => postRequest("/sys/role/info", params); // 角色管理查看
export const getBusServicePlatformListAllName = (params) =>
postRequest("busServicePlatform/listAllName", params); // 服务平台管理-所有名称
export const getBusCompanyInfoListAllName = (params) =>
postRequest("busCompanyInfo/listAllName", params); // 对接企业管理-获取服务平台下的企业名称
export const getDataDictionaryList = (params) =>
postRequest("/sys/dictionaries/listPage", params); // 数据字典列表
export const setDataDictionaryDelete = (params) =>

View File

@ -37,6 +37,8 @@ const form = ref({
handleRemark: "",
handleResult: "",
handleStatus: "",
handleType: "",
alarmPlatform: "",
});
const rules = {
alarmReason: [
@ -52,12 +54,28 @@ const rules = {
handleStatus: [
{ required: true, message: "处理状态不能为空", trigger: "change" },
],
handleType: [
{ required: true, message: "处理类型不能为空", trigger: "change" },
],
alarmPlatform: [
{ required: true, message: "告警平台不能为空", trigger: "change" },
],
};
const handleStatusOptions = [
// { name: "", id: 1 },
{ name: "处理成功", id: 2 },
{ name: "不需要处理", id: 3 },
];
const handleTypeOptions = [
{ name: "网络原因", id: 1 },
{ name: "bug", id: 2 },
{ name: "其他原因", id: 3 },
];
const alarmPlatformOptions = [
{ name: "上级平台", id: 1 },
{ name: "服务平台", id: 2 },
{ name: "企业", id: 3 },
];
const options = [
{ key: "handleBy", label: "处理人" },
{ key: "handleRemark", label: "处理备注" },
@ -68,6 +86,20 @@ const options = [
type: "select",
options: handleStatusOptions,
},
{
key: "handleType",
label: "处理类型",
type: "select",
valueKey: "name",
options: handleTypeOptions,
},
{
key: "alarmPlatform",
label: "告警平台",
type: "select",
valueKey: "name",
options: alarmPlatformOptions,
},
{ key: "alarmReason", label: "告警原因", type: "textarea", span: 24 },
];
const fnSubmit = debounce(

View File

@ -93,6 +93,14 @@ const options = [
key: "handleStatus",
label: "处理状态",
},
{
key: "handleType",
label: "处理类型",
},
{
key: "alarmPlatform",
label: "告警平台",
},
{ key: "alarmReason", label: "告警原因", span: 2 },
{
key: "receiveData",

View File

@ -38,7 +38,7 @@
<el-form-item class="mt-30">
<verification v-model:verification-pass="verificationPass" />
</el-form-item>
<el-form-item class="button">
<el-form-item class="button mt-50">
<el-button native-type="submit"><span>登录</span> </el-button>
</el-form-item>
</el-form>
@ -156,7 +156,7 @@ const fnSubmitLogin = async () => {
top: 50%;
transform: translateY(-50%);
width: 480px;
height: 580px;
height: 540px;
padding: 42px 35px 94px;
background-color: #fff;
z-index: 1;
@ -201,7 +201,6 @@ const fnSubmitLogin = async () => {
}
.button {
margin-top: 88px;
.el-button {
background: #0a7dfe;
height: 45px;

View File

@ -16,6 +16,45 @@
placeholder="请输入备注"
/>
</el-form-item>
<el-form-item label="类型" prop="type">
<el-select v-model="form.type" placeholder="请选择类型">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
<el-form-item
v-show="form.type === 2 || form.type === 3"
label="服务平台"
prop="servicePlatformId"
>
<el-select
v-model="form.servicePlatformId"
placeholder="请选择服务平台"
multiple
@change="fnGetCompanyOptions"
>
<el-option
v-for="item in servicePlatformOptions"
:key="item.id"
:label="item.serviceName"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item v-show="form.type === 3" label="企业" prop="companyId">
<el-select v-model="form.companyId" multiple placeholder="请选择类型">
<el-option
v-for="item in companyOptions"
:key="item.id"
:label="`${item.companyName}${item.servicePlatformName}`"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item v-if="form.parentId !== '0'" label="菜单" prop="menuIdList">
<el-tree
ref="treeRef"
@ -40,11 +79,13 @@
import { debounce } from "throttle-debounce";
import useForm from "@/hooks/useForm.js";
import { ElMessage } from "element-plus";
import { nextTick, ref, watchEffect } from "vue";
import { nextTick, ref, watchEffect, watch } from "vue";
import {
getRouteList,
setRoleAdd,
setRoleEdit,
getBusServicePlatformListAllName,
getBusCompanyInfoListAllName,
} from "@/request/system_management.js";
const props = defineProps({
@ -64,6 +105,35 @@ const rules = {
{ required: true, message: "名称不能为空", trigger: "blur" },
{ min: 2, max: 30, message: "长度在2到30个字符", trigger: "blur" },
],
type: [{ required: true, message: "类型不能为空", trigger: "change" }],
};
const options = [
{ label: "系统角色", value: 1 },
{ label: "服务平台角色", value: 2 },
{ label: "企业角色", value: 3 },
];
const servicePlatformOptions = ref([]);
const companyOptions = ref([]);
watch(
() => form.value.type,
async (val) => {
if (val !== 1) await fnGetServicePlatformOptions();
if (val === 3) await fnGetCompanyOptions();
}
);
const fnGetServicePlatformOptions = async () => {
if (servicePlatformOptions.value.length === 0) {
const { data } = await getBusServicePlatformListAllName();
servicePlatformOptions.value = data;
}
};
const fnGetCompanyOptions = async () => {
if (form.value.type !== 3 || form.value.servicePlatformId.length === 0)
return;
const { data } = await getBusCompanyInfoListAllName({
servicePlatformIds: form.value.servicePlatformId.join(","),
});
companyOptions.value = data;
};
const fnGetData = async () => {
const resData = await getRouteList({ parentId: 0 });
@ -121,11 +191,15 @@ const fnSubmit = debounce(
await validate();
const checkedKeys = treeRef.value?.getCheckedKeys() || [];
const halfCheckedKeys = treeRef.value?.getHalfCheckedKeys() || [];
const servicePlatformId = form.value.servicePlatformId.join(",");
const companyId = form.value.companyId.join(",");
if (props.type === "add") {
await setRoleAdd({
...form.value,
menuIdList: [...checkedKeys, ...halfCheckedKeys],
roleId: undefined,
servicePlatformId,
companyId,
});
}
if (props.type === "edit")

View File

@ -83,6 +83,9 @@ const addOrEditDialog = ref({
remark: "",
corpRoleType: "",
menuIdList: [],
type: "",
companyId: [],
servicePlatformId: [],
},
});
const fnDelete = debounce(
@ -120,8 +123,14 @@ const fnAddOrEdit = async (roleId, type) => {
addOrEditDialog.value.type = type;
await nextTick();
if (type === "edit") {
const resData = await getRoleView({ roleId });
addOrEditDialog.value.form = resData.role;
const { role } = await getRoleView({ roleId });
addOrEditDialog.value.form = role;
addOrEditDialog.value.form.companyId = role.companyId
.split(",")
.map(Number);
addOrEditDialog.value.form.servicePlatformId = role.servicePlatformId
.split(",")
.map(Number);
}
};
</script>