Commit 7ffe3acd authored by baiyinhao's avatar baiyinhao

修改功能组1页面并添加两个详情页占位

parent d8ea4566
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
import { addUserApi, UserDetailApi, UserUpdataApi } from '@/api/system/user/user'; import { addUserApi, UserDetailApi, UserUpdataApi } from '@/api/system/user/user';
import { encryptTwo } from '../../../../src/utils/jsencrypt.js'; import { encryptTwo } from '../../../../src/utils/jsencrypt.js';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { tableListtab1 } from './mock'; import { TableData } from './mock';
import { router } from '@/router'; import { router } from '@/router';
defineOptions({ name: 'ModelModal' }); defineOptions({ name: 'ModelModal' });
...@@ -45,14 +45,13 @@ ...@@ -45,14 +45,13 @@
setModalProps({ confirmLoading: false }); setModalProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate; isUpdate.value = !!data?.isUpdate;
isMove.value = !!data?.isMove; isMove.value = !!data?.isMove;
if (unref(isUpdate)) {
// 获取行数据的id // 获取行数据的id
rowId.value = data.record.businessId; rowId.value = data.record.businessId;
// 塞值 // 塞值
setFieldsValue({ setFieldsValue({
...data.record, ...data.record,
}); });
}
// const treeList = handleTree(TableData, 'businessId', undefined, undefined, undefined); // const treeList = handleTree(TableData, 'businessId', undefined, undefined, undefined);
// console.log('treeList', treeList); // console.log('treeList', treeList);
...@@ -66,7 +65,9 @@ ...@@ -66,7 +65,9 @@
// ]); // ]);
}); });
const getTitle = computed(() => (!unref(isUpdate) ? '查看日志' : '查看日志')); const getTitle = computed(() =>
!unref(isUpdate) ? '查看用户操作记录详情' : '查看用户操作记录详情',
);
function handleTree(data, id, parentId, children, rootId) { function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'; id = id || 'id';
......
<template> <template>
<BasicModal <BasicModal
width="40%"
v-bind="$attrs" v-bind="$attrs"
width="45%"
height="500"
@register="registerModal" @register="registerModal"
:title="getTitle" :title="getTitle"
@ok="handleSubmit" @ok="handleSubmit"
> >
<div class="modal-content"> <BasicForm @register="registerForm" />
<!-- <div class="table-container">
<BasicTable @register="registerTable">
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'action'">
<TableAction
:actions="[
{
label: '编辑',
onClick: handleEdit.bind(null, record),
},
]"
/>
</template>
</template>
</BasicTable>
</div> -->
<div class="form-container">
<BasicForm @register="registerForm">
<template #menu="{ model, field }">
<BasicTree
v-model:value="model[field]"
:treeData="treeDataList"
:fieldNames="{ title: 'label', key: 'id' }"
checkable
toolbar
/>
</template>
</BasicForm>
</div>
</div>
</BasicModal> </BasicModal>
</template> </template>
<script setup lang="ts"> <script lang="ts" setup>
import { BasicTable, useTable, TableAction } from '@/components/Table'; import { ref, computed, unref, reactive } from 'vue';
import { useModalInner } from '@/components/Modal'; import { BasicModal, useModalInner } from '@/components/Modal';
import BasicModal from '@/components/Modal/src/BasicModal.vue';
import { ref, unref } from 'vue';
import { Table } from 'ant-design-vue';
import { ModelFormSchematab2, columns } from '@/views/auditLog/audiModal.data';
import { addDataScopeApi, getRoleDeptTreeSelect, roleDetailApi } from '@/api/system/role/role';
import { BasicForm, useForm } from '@/components/Form'; import { BasicForm, useForm } from '@/components/Form';
import { getMenuListByPage, getMenuSelect, getRoleMenuSelectedMC } from '@/api/system/menu/menu'; import { ModelFormSchematab2 } from './audiModal.data';
import { getDeptList } from '@/api/system/dept/dept';
import { addUserApi, UserDetailApi, UserUpdataApi } from '@/api/system/user/user';
import { encryptTwo } from '../../../../src/utils/jsencrypt.js';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { BasicTree, TreeItem } from '@/components/Tree'; import { TableData } from './mock';
import { router } from '@/router';
defineOptions({ name: 'ModelModal' });
defineOptions({ name: 'RoleModal' });
const loadingRef = ref(false);
// 列表
const dataSource = ref([]);
const treeData = ref();
const roleId = ref();
const isPermiss = ref(true);
const getTitle = ref('查看日志');
const { createMessage } = useMessage();
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
const formData = ref({}); const { createMessage } = useMessage();
const treeDataList = ref<TreeItem[]>([]); const isUpdate = ref(true);
const isMove = ref(false);
const rowId = ref('');
//获取接口数据并放在下拉框里(这里是打开了一个弹框)
//初始化表单
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate }] = useForm({
labelWidth: 100,
const [registerTable, { reload, getForm }] = useTable({ schemas: ModelFormSchematab2,
// api: async (params) => { showActionButtonGroup: false,
// const param = { actionColOptions: {
// businessId: roleId.value, span: 23,
// };
// const response = await getRoleMenuSelectedMC(param);
// //进行处理数据
// const transformedData = transformData(response.data); // 定义一个函数transformData来做你需要的数据转换
// return { ...response, data: transformedData };
// },
columns,
useSearchForm: false,
showTableSetting: false,
bordered: true,
isTreeTable: true,
pagination: false,
showIndexColumn: false,
actionColumn: {
width: 50,
title: '操作',
dataIndex: 'action',
fixed: undefined,
}, },
}); });
//初始化弹框
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields();
setModalProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate;
isMove.value = !!data?.isMove;
const [registerModal, { closeModal, setModalProps }] = useModalInner(async (data) => { // 获取行数据的id
isPermiss.value = data.record.isPermiss; rowId.value = data.record.businessId;
roleId.value = data.record.businessId; // 塞值
roleDetailApi(roleId.value).then((res) => { setFieldsValue({
formData.value = res.data; ...data.record,
const form = {
roleName: res.data.roleName,
};
setFieldsValue({
...form,
});
}); });
if (unref(treeDataList).length === 0) {
const treeRes = await getMenuSelect();
treeDataList.value = treeRes.data as any as TreeItem[];
}
//控制 // const treeList = handleTree(TableData, 'businessId', undefined, undefined, undefined);
updateSchema({ // console.log('treeList', treeList);
field: 'dataScope', // updateSchema([
componentProps: { // {
onChange: (value: any, option: any, form: any) => { // field: 'modelId',
//调用接口 返回的参数赋值给dictValue // componentProps: {
if (value === '2') { // tableData: treeList,
updateSchema({ // },
field: 'menuIds', // },
ifShow: true, // ]);
rules: [
{
required: true,
message: '请选择数据权限',
},
],
});
} else {
updateSchema({
field: 'menuIds',
ifShow: false,
rules: [
{
required: false,
},
],
});
}
},
},
});
reload();
}); });
//初始化表单 const getTitle = computed(() =>
const [registerForm, { setFieldsValue, updateSchema, resetFields, validate, getFieldsValue }] = !unref(isUpdate) ? '查看数据源访问日志详情' : '查看数据源访问日志详情',
useForm({ );
labelWidth: 100,
schemas: ModelFormSchematab2,
showActionButtonGroup: false,
});
/**编辑按钮*/
function handleEdit(record: Recordable) {
formData.value.menuId = record.businessId;
formData.value.menuName = record.menuName;
const form = {
menuName: record.menuName,
};
setFieldsValue({
...form,
});
const params = {
menuId: formData.value.menuId,
roleId: formData.value.businessId,
};
getRoleDeptTreeSelect(params).then((res) => {
formData.value.deptCheckStrictly = res.data.deptCheckStrictly;
});
}
/**改变列表结构 列表->树*/
function transformData(data) {
treeData.value = handleTree(data, 'businessId', undefined, undefined, undefined);
return treeData.value;
}
/**结构转换方法*/
function handleTree(data, id, parentId, children, rootId) { function handleTree(data, id, parentId, children, rootId) {
id = id || 'id'; id = id || 'id';
parentId = parentId || 'parentId'; parentId = parentId || 'parentId';
...@@ -204,42 +97,14 @@ ...@@ -204,42 +97,14 @@
return treeData !== '' ? treeData : data; return treeData !== '' ? treeData : data;
} }
/**确按钮*/ /**确按钮*/
async function handleSubmit() { async function handleSubmit() {
try { const values = await validate();
const values = await validate(); // router.push({
console.log('values:', values); // path: '/metaModel/physicsModel/EditRowTable',
setModalProps({ confirmLoading: true }); // query: {},
formData.value.code = values.dataScope; // });
formData.value.menuIds = values.menuIds;
formData.value.deptIdList = '';
formData.value.roleId = '';
addDataScopeApi(formData.value).then((res) => {
if (res.code === 200) {
createMessage.success('新增成功');
closeModal();
emit('success', { isUpdate: unref(isPermiss), values: { ...values } });
}
});
reload();
} finally {
setModalProps({ confirmLoading: false });
}
}
</script>
<style scoped lang="less">
.modal-content {
display: flex;
height: 100%; // 可以根据需要调整高度
.table-container, closeModal();
.form-container {
flex: 1; // 每个容器占据一半的空间
overflow: auto; // 如果内容超出容器高度,则显示滚动条
}
.table-container {
border-right: 1px solid #e9ecef; // 可选:在表格和表单之间添加分隔线
}
} }
</style> </script>
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
const [registerModalEmail, { openModal: openModalEmail }] = useModal(); const [registerModalEmail, { openModal: openModalEmail }] = useModal();
const [registerModalClean, { openModal: openModalClean }] = useModal(); const [registerModalClean, { openModal: openModalClean }] = useModal();
const [registerTable, { reload, getForm, getRowSelection }] = useTable({ const [registerTable, { reload, getForm, getRowSelection }] = useTable({
title: '审计日志', title: '',
api: async (params) => { api: async (params) => {
console.log('params', params); console.log('params', params);
const response = { const response = {
...@@ -163,7 +163,7 @@ ...@@ -163,7 +163,7 @@
registerTable2, registerTable2,
{ reload: reload2, getForm: getForm2, getRowSelection: getRowSelection2 }, { reload: reload2, getForm: getForm2, getRowSelection: getRowSelection2 },
] = useTable({ ] = useTable({
title: '通知规则名称', title: '',
api: async (params) => { api: async (params) => {
console.log('params', params); console.log('params', params);
const response = { const response = {
...@@ -238,13 +238,15 @@ ...@@ -238,13 +238,15 @@
} }
/**查看详情按钮*/ /**查看详情按钮*/
function handleViewtab1() { function handleViewtab1(record: Recordable) {
openModal(true, { openModal(true, {
record,
istab1: true, istab1: true,
}); });
} }
function handleViewtab2() { function handleViewtab2(record: Recordable) {
openModal2(true, { openModal2(true, {
record,
istab1: false, istab1: false,
}); });
} }
...@@ -336,13 +338,6 @@ ...@@ -336,13 +338,6 @@
roleKey: params.roleKey, roleKey: params.roleKey,
flag: params.flag, flag: params.flag,
}); });
getForm2().setFieldsValue({
page: params.page,
pageSize: params.pageSize,
roleName: params.roleName,
roleKey: params.roleKey,
flag: params.flag,
});
} }
} }
}); });
......
<template> <template>
<BasicModal width="50%" v-bind="$attrs" @register="registerModal" :title="getTitle" @ok="handleSubmit"> <BasicModal
<BasicForm @register="registerForm"/> width="50%"
v-bind="$attrs"
@register="registerModal"
:title="getTitle"
@ok="handleSubmit"
>
<BasicForm @register="registerForm" />
<div class="modalRow"> <div class="modalRow">
<div>可见范围</div> <div>可见范围</div>
<div class="right"> <div class="right">
<div class="clearAll"> <div class="clearAll"> 清空 </div>
清空
</div>
<div> <div>
<a-button type="primary">添加工作组</a-button> <a-button type="primary">添加工作组</a-button>
</div> </div>
...@@ -14,23 +18,23 @@ ...@@ -14,23 +18,23 @@
</div> </div>
<div class="addDialogBG"> <div class="addDialogBG">
<div style="float: right"> <div style="float: right">
<Icon icon="ant-design:delete-outlined" :size="25" :color="'#ED6F6F'" /> <Icon icon="ant-design:delete-outlined" :size="25" :color="'#ED6F6F'" />
</div> </div>
<TreeTwo class="w-1/4 xl:w-1/5" @select="handleSelect" /> <TreeTwo class="w-1/4 xl:w-1/5" @select="handleSelect" />
</div> </div>
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import {ref, computed, unref, reactive} from 'vue'; import { ref, computed, unref, reactive } from 'vue';
import { BasicModal, useModalInner } from '@/components/Modal'; import { BasicModal, useModalInner } from '@/components/Modal';
import { BasicForm, useForm } from '@/components/Form'; import { BasicForm, useForm } from '@/components/Form';
import {resetNameFormSchema} from './basicStandards.data'; import { resetNameFormSchema, createBasicTypeFormSchema } from './basicStandards.data';
import { getDeptList } from '@/api/system/dept/dept'; import { getDeptList } from '@/api/system/dept/dept';
import {addUserApi,UserDetailApi,UserUpdataApi} from '@/api/system/user/user' import { addUserApi, UserDetailApi, UserUpdataApi } from '@/api/system/user/user';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import {createBasicTypeFormSchema} from './basicStandards.data'; import { TreeData } from '@/views/dataStandards/basicStandards/basicStandardsData';
import {TreeData} from "@/views/dataStandards/basicStandards/basicStandardsData"; import TreeTwo from '@/views/dataStandards/basicStandards/TreeTwo.vue';
import TreeTwo from '@/views/dataStandards/basicStandards/TreeTwo.vue'
defineOptions({ name: 'AccountModal' }); defineOptions({ name: 'AccountModal' });
const emit = defineEmits(['success', 'register']); const emit = defineEmits(['success', 'register']);
...@@ -52,88 +56,98 @@ ...@@ -52,88 +56,98 @@
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => { const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
resetFields(); resetFields();
setModalProps({ confirmLoading: false }); setModalProps({ confirmLoading: false });
var formData = {} var formData = {};
if (data.record === null || data.record === undefined){ if (data.record === null || data.record === undefined) {
formData = { formData = {
standardsTree: '100' standardsTree: '100',
} };
} else { } else {
formData = { formData = {
standardsTree: data.record.businessId standardsTree: data.record.businessId,
} };
} }
// 塞值 // 塞值
setFieldsValue({ setFieldsValue({
...formData, ...formData,
}); });
const treeList = handleTree(TreeData, 'businessId',undefined,undefined,undefined) const treeList = handleTree(TreeData, 'businessId', undefined, undefined, undefined);
updateSchema([ updateSchema([
{ {
field: 'standardsTree', field: 'standardsTree',
componentProps: { componentProps: {
treeData: treeList treeData: treeList,
}, },
}, },
{ {
field: 'ModelTree', field: 'ModelTree',
componentProps: { componentProps: {
treeData: treeList treeData: treeList,
}, },
}, },
]); ]);
}); });
const getTitle = computed(() => ('新建文件夹')); const getTitle = computed(() => '新建文件夹');
/**确定按钮*/ /**确定按钮*/
async function handleSubmit() { async function handleSubmit() {
closeModal() closeModal();
} }
/**数组对象转成树*/ /**数组对象转成树*/
function handleTree(data, id, parentId, children, rootId) { function handleTree(data, id, parentId, children, rootId) {
id = id || 'id' id = id || 'id';
parentId = parentId || 'parentId' parentId = parentId || 'parentId';
children = children || 'children' children = children || 'children';
rootId = rootId || Math.min.apply(Math, data.map(item => { return item[parentId] })) || 0 rootId =
rootId ||
Math.min.apply(
Math,
data.map((item) => {
return item[parentId];
}),
) ||
0;
// 对源数据深度克隆 // 对源数据深度克隆
const cloneData = JSON.parse(JSON.stringify(data)) const cloneData = JSON.parse(JSON.stringify(data));
// 循环所有项 // 循环所有项
const treeData = cloneData.filter(father => { const treeData = cloneData.filter((father) => {
const branchArr = cloneData.filter(child => { const branchArr = cloneData.filter((child) => {
// 返回每一项的子级数组 // 返回每一项的子级数组
return father[id] === child[parentId] return father[id] === child[parentId];
}) });
branchArr.length > 0 ? father.children = branchArr : '' branchArr.length > 0 ? (father.children = branchArr) : '';
// 返回第一层 // 返回第一层
return father[parentId] === rootId return father[parentId] === rootId;
}) });
return treeData !== '' ? treeData : data return treeData !== '' ? treeData : data;
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.modalRow{ .modalRow {
padding: 0 20px;
display: flex;
align-items: center;
justify-content: space-between;
.clearAll{
padding-right: 10px;
font-size: 16px;
}
.right{
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
padding: 0 20px;
.clearAll {
padding-right: 10px;
font-size: 16px;
}
.right {
display: flex;
align-items: center;
justify-content: space-between;
}
}
.addDialogBG {
width: 98%;
height: 400px;
margin: 10px;
padding: 20px;
border-radius: 10px;
background-color: #e8ecf7;
} }
}
.addDialogBG{
margin: 10px;
border-radius: 10px;
padding: 20px;
background-color: #E8ECF7;
width: 98%;
height: 400px;
}
</style> </style>
export const tableListtab1: any[] = [ export const tableListtab1: any[] = [
{ {
createDate: '2024-10-24 10:04:04', createDate: '2024-10-24 10:04:04',
alarmRuleName: '元数据变更', alarmRuleName: 'tdt_超时',
alarmLevel: '高', alarmLevel: '高',
resourceType: '数据加载', resourceType: '数据加载',
triggerType: '运行成功', triggerType: '运行成功',
details: '详情文本1',
ErrorCode: '${502}',
businessId: 401, businessId: 401,
institutionId: null, institutionId: null,
}, },
{ {
createDate: '2024-10-24 10:04:04', createDate: '2024-10-24 10:04:04',
alarmRuleName: '元数据变更', alarmRuleName: 'tdt_超时',
alarmLevel: '高', alarmLevel: '高',
resourceType: '数据加载', resourceType: '数据加载',
triggerType: '运行成功', triggerType: '运行成功',
details: '详情文本2',
ErrorCode: '${502}',
businessId: 402, businessId: 402,
institutionId: null, institutionId: null,
}, },
{ {
createDate: '2024-10-24 10:04:04', createDate: '2024-10-24 10:04:04',
alarmRuleName: '元数据变更', alarmRuleName: 'tdt_超时',
alarmLevel: '中', alarmLevel: '中',
resourceType: '数据加载', resourceType: '数据加载',
triggerType: '运行成功', triggerType: '运行成功',
details: '详情文本3',
ErrorCode: '${502}',
businessId: 403, businessId: 403,
institutionId: null, institutionId: null,
}, },
{ {
createDate: '2024-10-24 10:04:04', createDate: '2024-10-24 10:04:04',
alarmRuleName: '元数据变更', alarmRuleName: 'tdt_超时',
alarmLevel: '高', alarmLevel: '高',
resourceType: '数据加载', resourceType: '数据加载',
triggerType: '运行失败', triggerType: '运行失败',
details: '详情文本4',
ErrorCode: '${502}',
businessId: 404, businessId: 404,
institutionId: null, institutionId: null,
}, },
{ {
createDate: '2024-10-24 10:04:04', createDate: '2024-10-24 10:04:04',
alarmRuleName: '元数据变更', alarmRuleName: 'tdt_超时',
alarmLevel: '低', alarmLevel: '低',
resourceType: '数据加载', resourceType: '数据加载',
triggerType: '开始运行', triggerType: '开始运行',
details: '详情文本5',
ErrorCode: '${502}',
businessId: 405, businessId: 405,
institutionId: null, institutionId: null,
}, },
......
...@@ -338,153 +338,78 @@ export const formSchema: FormSchema[] = [ ...@@ -338,153 +338,78 @@ export const formSchema: FormSchema[] = [
]; ];
export const formSchema2: FormSchema[] = [ export const formSchema2: FormSchema[] = [
{ {
field: 'alarmRuleName', field: 'basicInformation',
label: '规则名称', component: 'BasicTitle',
component: 'Input', label: '基本信息',
colProps: { span: 24 }, componentProps: {
rules: [ // line: true,
{ span: true,
required: true, },
message: '请输入规则名称', colProps: {
}, span: 24,
], },
}, },
{ {
field: 'description', field: 'taskName',
label: '描述', label: '任务名称',
component: 'InputTextArea', component: 'Input',
colProps: { span: 24 }, defaultValue: '任务名称1',
colProps: { span: 12 },
}, },
{ {
field: 'roleStatus', field: 'createTime',
label: '规则状态', label: '通知时间',
component: 'Switch', component: 'Input',
colProps: { span: 24 }, defaultValue: '2022-01-01 00:00:00',
defaultValue: false, colProps: { span: 12 },
}, },
{ {
field: 'resourceType', field: 'alarmLevel',
label: '资源类型', label: '紧急程度',
component: 'Select', component: 'Select',
colProps: { span: 24 }, colProps: { span: 12 },
componentProps: {
defaultValue: '数据加载',
options: [
{ label: '数据加载', value: '1' },
{ label: '数据同步', value: '2' },
{ label: '工作流', value: '3' },
{ label: '标签', value: '4' },
{ label: '数据质量任务', value: '5' },
{ label: '落标检查任务', value: '6' },
{ label: '元数据变更', value: '7' },
{ label: '标准版本变更', value: '8' },
],
},
},
//未解决问题:作用范围列未添加
// {
// field: 'alarmRange',
// label: '作用范围',
// component: 'Select',
// colProps: { span: 24 },
// componentProps: {
// options: [
// { label: '元数据变更', value: '1' },
// { label: '元数据处理', value: '2' },
// ],
// },
// rules: [
// {
// required: true,
// message: '请选择作用范围',
// },
// ],
// },
{
field: 'triggerType',
label: '触发方式',
component: 'CheckboxGroup',
colProps: { span: 24 },
componentProps: { componentProps: {
defaultValue: ['1'],
options: [ options: [
{ label: '运行失败', value: '1' }, { label: '低', value: '1' },
{ label: '运行成功', value: '2' }, { label: '中', value: '2' },
{ label: '开始运行', value: '3' }, { label: '高', value: '3' },
{ label: '运行超时', value: '4' },
{ label: '源端元数据更新', value: '5' },
], ],
}, },
rules: [ rules: [
{ {
required: true, required: true,
message: '请选择触发方式', message: '请选择紧急程度',
}, },
], ],
}, },
{ {
field: 'alarmType', field: 'alarmRuleName',
label: '通知方式', label: '通知规则',
component: 'CheckboxGroup', component: 'Input',
colProps: { span: 24 }, colProps: { span: 12 },
componentProps: {
defaultValue: ['1', '2'],
options: [
{ label: '站内信', value: '1' },
{ label: '邮件', value: '2' },
],
},
rules: [
{
required: true,
message: '请选择通知方式',
},
],
}, },
{ {
field: 'message', field: 'alarmsDetails',
label: '收件人', component: 'BasicTitle',
component: 'CheckboxGroup', label: '通知详情',
colProps: { span: 12 },
componentProps: { componentProps: {
defaultValue: ['1'], // line: true,
options: [ span: true,
{ label: '收件人1', value: '1' }, },
{ label: '收件人2', value: '2' }, colProps: {
], span: 24,
}, },
ifShow: ({ values }) => values.alarmType !== undefined && values.alarmType.includes('1'),
required: ({ values }) => values.alarmType !== undefined && values.alarmType.includes('1'),
}, },
{ {
field: 'email', field: 'details',
label: '邮箱地址', label: '详情:',
component: 'InputTextArea', component: 'InputTextArea',
colProps: { span: 12 }, colProps: { span: 24 },
componentProps: {
defaultValue: '11111112222222@123321.123',
placeholder: '多个邮件地址用;分隔符分割',
},
ifShow: ({ values }) => values.alarmType !== undefined && values.alarmType.includes('2'),
required: ({ values }) => values.alarmType !== undefined && values.alarmType.includes('2'),
}, },
{ {
field: 'alarmLevel', field: 'ErrorCode',
label: '紧急程度', label: '错误码',
component: 'Select', component: 'Input',
colProps: { span: 24 }, colProps: { span: 24 },
componentProps: {
options: [
{ label: '低', value: '1' },
{ label: '中', value: '2' },
{ label: '高', value: '3' },
],
},
rules: [
{
required: true,
message: '请选择紧急程度',
},
],
}, },
]; ];
...@@ -123,12 +123,6 @@ ...@@ -123,12 +123,6 @@
/**确定按钮*/ /**确定按钮*/
async function handleSubmit() { async function handleSubmit() {
const values = await validate();
// router.push({
// path: '/metaModel/physicsModel/EditRowTable',
// query: {},
// });
closeModal(); closeModal();
} }
</script> </script>
......
...@@ -8,14 +8,14 @@ ...@@ -8,14 +8,14 @@
:showCancelBtn="false" :showCancelBtn="false"
> >
<BasicForm @register="registerForm" /> <BasicForm @register="registerForm" />
<div class="modalRow"> <!-- <div class="modalRow">
<div style="display: flex; align-items: center"> <div style="display: flex; align-items: center">
<span style="margin-right: 5px; color: red">*</span> <span style="margin-right: 5px; color: red">*</span>
<div>可见范围</div> <div>可见范围</div>
</div> </div>
<div class="right"> <div class="right"> -->
<!-- <div class="clearAll"> 清空 </div> --> <!-- <div class="clearAll"> 清空 </div> -->
<div> <!-- <div>
<a-button type="primary">添加工作区</a-button> <a-button type="primary">添加工作区</a-button>
</div> </div>
</div> </div>
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<Icon icon="ant-design:delete-outlined" :size="25" :color="'#ED6F6F'" /> <Icon icon="ant-design:delete-outlined" :size="25" :color="'#ED6F6F'" />
</div> </div>
<TreeTwo class="w-1/4 xl:w-1/5 treedisabled" @select="handleSelect" /> <TreeTwo class="w-1/4 xl:w-1/5 treedisabled" @select="handleSelect" />
</div> </div> -->
</BasicModal> </BasicModal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
......
<template>
<p>发起事项详情页</p>
</template>
<template>
<p>已办事项详情页</p>
</template>
...@@ -39,7 +39,7 @@ ...@@ -39,7 +39,7 @@
{ {
icon: 'clarity:search-line', icon: 'clarity:search-line',
label: '查看详情', label: '查看详情',
onClick: handleView.bind(null, record), onClick: handleViewtab2.bind(null, record),
}, },
// { // {
// // icon: 'clarity:note-edit-line', // // icon: 'clarity:note-edit-line',
...@@ -79,7 +79,7 @@ ...@@ -79,7 +79,7 @@
{ {
icon: 'clarity:search-line', icon: 'clarity:search-line',
label: '查看详情', label: '查看详情',
onClick: handleView.bind(null, record), onClick: handleViewtab3.bind(null, record),
}, },
// { // {
// // icon: 'clarity:note-edit-line', // // icon: 'clarity:note-edit-line',
...@@ -125,7 +125,7 @@ ...@@ -125,7 +125,7 @@
searchFormSchematab3, searchFormSchematab3,
} from './processCenter.data'; } from './processCenter.data';
import { reactive, unref, onDeactivated, onMounted, ref } from 'vue'; import { reactive, unref, onDeactivated, onMounted, ref } from 'vue';
import { useRoute, onBeforeRouteLeave } from 'vue-router'; import { useRoute, onBeforeRouteLeave, useRouter } from 'vue-router';
import { useFilterStore } from '@/store/modules/filterData'; import { useFilterStore } from '@/store/modules/filterData';
import { useUserStore } from '@/store/modules/user'; import { useUserStore } from '@/store/modules/user';
import ProCenterModal from './processCenterModal.vue'; import ProCenterModal from './processCenterModal.vue';
...@@ -140,6 +140,7 @@ ...@@ -140,6 +140,7 @@
defineOptions({ name: 'RoleManagement' }); defineOptions({ name: 'RoleManagement' });
const filterStore = useFilterStore(); const filterStore = useFilterStore();
const route = useRoute(); const route = useRoute();
const $router = useRouter();
const go = useGo(); const go = useGo();
const { createMessage } = useMessage(); const { createMessage } = useMessage();
const tableData = ref([]); const tableData = ref([]);
...@@ -305,9 +306,25 @@ ...@@ -305,9 +306,25 @@
}); });
} }
/**查看详情按钮*/ /**查看详情按钮tab2*/
function handleView() { function handleViewtab2(record: Recordable) {
go('/system/process_detail'); const businessId = record.businessId;
$router.push({
path: '/processCenter/detailsTab2',
query: {
businessId,
},
});
}
/**查看详情按钮tab3*/
function handleViewtab3(record: Recordable) {
const businessId = record.businessId;
$router.push({
path: '/processCenter/detailsTab3',
query: {
businessId,
},
});
} }
/**数据权限按钮*/ /**数据权限按钮*/
function dataPermiss(record: Recordable) { function dataPermiss(record: Recordable) {
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
getDictListByPage, getDictListByPage,
} from '@/api/system/dict/dict'; } from '@/api/system/dict/dict';
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { message } from 'ant-design-vue'; import { message, Modal } from 'ant-design-vue';
defineOptions({ name: 'DictModal' }); defineOptions({ name: 'DictModal' });
...@@ -42,19 +42,15 @@ ...@@ -42,19 +42,15 @@
resetFields(); resetFields();
setModalProps({ confirmLoading: false }); setModalProps({ confirmLoading: false });
isUpdate.value = !!data?.isUpdate; isUpdate.value = !!data?.isUpdate;
if (unref(isUpdate)) {
//修改 //修改
// 获取行数据的id // 获取行数据的id
dictId.value = data.record.businessId; // 获取行数据的id
// 通过id获取行详情信息 dictId.value = data.record.businessId;
DictDetailApi(dictId.value).then((res) => { // 塞值
const form = res.data; setFieldsValue({
// 塞值 ...data.record,
setFieldsValue({ });
...form,
});
});
}
//给父子典名称和数据赋值 //给父子典名称和数据赋值
var options = []; var options = [];
...@@ -111,7 +107,16 @@ ...@@ -111,7 +107,16 @@
}); });
async function handleSubmit() { async function handleSubmit() {
closeModal(); Modal.confirm({
message.success('审批成功'); title: '确认审批',
content: '是否审批通过此记录?',
onOk: () => {
createMessage.success('审批通过成功');
closeModal();
},
onCancel: () => {
createMessage.info('取消审批');
},
});
} }
</script> </script>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment