From 0c22f477873c9df019be8df0cf338f54b12bac48 Mon Sep 17 00:00:00 2001 From: zzq <15064940501@163.com> Date: Tue, 11 Jun 2024 16:18:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E5=8F=8A?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/permission/data.ts | 8 +- src/api/permission/model/index.ts | 1 + .../demo/onlineform/formdesign/FormModal.vue | 6 ++ src/views/demo/system/dept/DeptModal.vue | 5 + src/views/demo/system/dept/dept.data.ts | 4 +- .../permissionmanagement/data/MenuDrawer.vue | 100 ++++++++++++++---- .../permissionmanagement/data/index.data.ts | 15 +-- .../permissionmanagement/data/index.vue | 11 +- 8 files changed, 115 insertions(+), 35 deletions(-) diff --git a/src/api/permission/data.ts b/src/api/permission/data.ts index 2bcf7cc1..2c3def3f 100644 --- a/src/api/permission/data.ts +++ b/src/api/permission/data.ts @@ -4,8 +4,8 @@ enum Api { tableList = '/api/BaseDataAuthGetPageList/permission/data/page', getDetailData = '/api/BaseDataAuthGetEntity/permission/data', addData = '/api/BaseDataAuthAddForm/permission/data', - editData = '/api/BaseDataAuthUpdateForm/permission/data', - delData = '/api/BaseDataAuthDeleteForm/permission/data', + editData = '/api/BaseDataAuthUpdateForm/permission/data/', + delData = '/api/BaseDataAuthDeleteForm/permission/data/', } export const getTablesListData = (params?: AccountParams) => { return defHttp.get({ @@ -27,13 +27,13 @@ export const addTableData = (params?: AccountParams) => { }; export const editTableData = (params?: AccountParams) => { return defHttp.post({ - url: Api.editData, + url: Api.editData + params.id, params, }); }; export const delTableData = (params?: AccountParams) => { return defHttp.post({ - url: Api.delData, + url: Api.delData + params.id, params, }); }; diff --git a/src/api/permission/model/index.ts b/src/api/permission/model/index.ts index 9dea33b3..0fc92062 100644 --- a/src/api/permission/model/index.ts +++ b/src/api/permission/model/index.ts @@ -13,6 +13,7 @@ export interface AccountListItem { * @description: Request list return value */ export interface AccountParams { + id: string; key: string; page: any; limit: any; diff --git a/src/views/demo/onlineform/formdesign/FormModal.vue b/src/views/demo/onlineform/formdesign/FormModal.vue index 65568f79..9ed1d1b9 100644 --- a/src/views/demo/onlineform/formdesign/FormModal.vue +++ b/src/views/demo/onlineform/formdesign/FormModal.vue @@ -211,6 +211,9 @@ if (item.type == 'subTable') { item.columns = changeCloums(item.columns, tableData); } + if (item.columns) { + item.columns = changeCloums(item.columns, tableData); + } if ( item.component != 'CardGroup' && item.component != 'Grid' && @@ -245,6 +248,9 @@ if (list.type == 'subTable') { list.columns = changeCloums(list.columns, tableData); } + if (list.columns) { + list.columns = changeCloums(list.columns, tableData); + } if ( list.component != 'CardGroup' && list.component != 'Grid' && diff --git a/src/views/demo/system/dept/DeptModal.vue b/src/views/demo/system/dept/DeptModal.vue index 1175e34b..40f0b915 100644 --- a/src/views/demo/system/dept/DeptModal.vue +++ b/src/views/demo/system/dept/DeptModal.vue @@ -47,6 +47,11 @@ try { const values = await validate(); let query = values; + if (query.id) { + query.id = Number(query.id); + } else { + query.id = 0; + } // 调用接口 if (!unref(isUpdate)) { const data = await addDept(query); diff --git a/src/views/demo/system/dept/dept.data.ts b/src/views/demo/system/dept/dept.data.ts index be0c3c9d..d311f53e 100644 --- a/src/views/demo/system/dept/dept.data.ts +++ b/src/views/demo/system/dept/dept.data.ts @@ -65,9 +65,9 @@ export const formGroupSchema: FormSchema[] = [ export const formSchema: FormSchema[] = [ { field: 'id', - label: '名称', + label: '部门id', component: 'Input', - ifShow:false + ifShow: true, }, { field: 'name', diff --git a/src/views/demo/system/permissionmanagement/data/MenuDrawer.vue b/src/views/demo/system/permissionmanagement/data/MenuDrawer.vue index 0c032fd6..c35ce6ac 100644 --- a/src/views/demo/system/permissionmanagement/data/MenuDrawer.vue +++ b/src/views/demo/system/permissionmanagement/data/MenuDrawer.vue @@ -26,7 +26,11 @@ - + 角色 用户 @@ -38,6 +42,14 @@ placeholder="请选择" :options="roleOptions" /> +
@@ -121,24 +134,30 @@ MinusOutlined, } from '@ant-design/icons-vue'; - import { BasicForm, useForm } from '@/components/Form'; - import { formSchema } from './index.data'; import { BasicDrawer, useDrawerInner } from '@/components/Drawer'; - import { useMessage } from '@/hooks/web/useMessage'; - const { createMessage } = useMessage(); - import { fun_GetPageList } from '@/api/demo/formModule'; import { getRoleListByPage } from '@/api/demo/system'; + import { getAccountList } from '@/api/demo/system'; + import { fun_GetPageList } from '@/api/demo/formModule'; import { addTableData, editTableData } from '@/api/permission/data'; + import { useMessage } from '@/hooks/web/useMessage'; + const { createMessage } = useMessage(); const emit = defineEmits(['success', 'register']); + const filterOption = (input: string, option: any) => { + return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0; + }; const isUpdate = ref(true); const labelCol = { span: 4 }; const wrapperCol = { span: 19 }; const formData: any = ref({ code: '', + codeName: '', name: '', + objectId: '', + objectName: '', objectType: '2', + type: 2, formula: { formula: '', conditions: [], @@ -147,6 +166,7 @@ const formRef = ref(); const codeOptions: any = ref([]); const roleOptions: any = ref([]); + const userOptions: any = ref([]); const fieldOptions: any = ref([]); const symbolOptions: any = ref([ { label: '等于', value: '1' }, @@ -161,13 +181,14 @@ { label: '不包含于', value: '10' }, ]); const fieldTypeOptions: any = ref([ - { label: '文本', value: '1' }, + { label: '文本(string)', value: '1' }, { label: '登录者ID', value: '2' }, { label: '登录者账号', value: '3' }, { label: '登录者部门', value: '4' }, { label: '登录者部门及下属部门', value: '5' }, { label: '登录者岗位', value: '6' }, { label: '登录者角色', value: '7' }, + { label: '文本(int)', value: '10' }, ]); const [registerDrawer, { setDrawerProps, closeDrawer }] = useDrawerInner(async (data) => { @@ -175,9 +196,25 @@ isUpdate.value = !!data?.isUpdate; getCodeListData(); //获取功能列表 getRoleListData(); //获取角色列表 + getUserListData(); //获取用户 if (unref(isUpdate)) { - console.log('formData', formData); formData.value = data.record; + formData.value.objectType = data.record.objectType.toString(); + formData.value.formula = JSON.parse(data.record.formula); + } else { + formData.value = { + code: '', + codeName: '', + name: '', + objectId: '', + objectName: '', + objectType: '2', + type: 2, + formula: { + formula: '', + conditions: [], + }, + }; } }); const getTitle = computed(() => @@ -190,25 +227,25 @@ f_FieldValue: '', f_Symbol: '1', }; - formData.formula.conditions.push(obj); + formData.value.formula.conditions.push(obj); } function delRoleClick(e) { - console.log('1111', e); - formData.formula.conditions.splice(e, 1); + formData.value.formula.conditions.splice(e, 1); + } + function radioObjectChange() { + formData.value.objectId = ''; } function codeChange(e) { - console.log('eee', e); - console.log('codeOptions', codeOptions.value); codeOptions.value.forEach((item) => { if (item.value == e) { fieldOptions.value = item.column; - formData.formula.conditions = []; + formData.value.formula.conditions = []; } }); + console.log('fieldOptions', fieldOptions) } function getCodeListData() { fun_GetPageList().then((res: Recordable) => { - console.log('1111', res); const arr: any = []; if (res.items) { res.items.forEach((item) => { @@ -217,9 +254,11 @@ value: item.id, column: JSON.parse(item.scheme).table.columns, }); + if (formData.value.code == item.id) { + fieldOptions.value = JSON.parse(item.scheme).table.columns; + } }); } - console.log('llllll', arr); codeOptions.value = arr; }); } @@ -230,13 +269,27 @@ res.items.forEach((item) => { arr.push({ label: item.name, - value: item.id, + value: item.id.toString(), }); }); } roleOptions.value = arr; }); } + function getUserListData() { + getAccountList({ page: 1, limit: 999999 }).then((res: Recordable) => { + const arr: any = []; + if (res.items) { + res.items.forEach((item) => { + arr.push({ + label: item.name, + value: item.id.toString(), + }); + }); + } + userOptions.value = arr; + }); + } const rules = reactive({ code: [{ required: true, message: '请选择功能', trigger: 'blur' }], @@ -250,8 +303,19 @@ formRef.value .validate() .then(() => { - console.log('values', formData, toRaw(formData)); const params = formData.value; + if (formData.value.objectType == '1') { + const objectObj = userOptions.value.filter((ele) => ele.value == params.objectId); + console.log('objectObj', objectObj); + params.objectName = objectObj[0].label; + } else { + const objectObj = roleOptions.value.filter((ele) => ele.value == params.objectId); + console.log('objectObj', objectObj); + params.objectName = objectObj[0].label; + } + + const codeObj = codeOptions.value.filter((ele) => ele.value == params.code); + params.codeName = codeObj[0].label; if (!unref(isUpdate)) { addTableData(params).then((res: any) => { closeDrawer(); diff --git a/src/views/demo/system/permissionmanagement/data/index.data.ts b/src/views/demo/system/permissionmanagement/data/index.data.ts index 01ca4e46..e793d10c 100644 --- a/src/views/demo/system/permissionmanagement/data/index.data.ts +++ b/src/views/demo/system/permissionmanagement/data/index.data.ts @@ -1,11 +1,12 @@ import { BasicColumn, FormSchema } from '@/components/Table'; import { h } from 'vue'; import { Tag } from 'ant-design-vue'; +import { getRoleListByPage } from '@/api/demo/system'; export const columns: BasicColumn[] = [ { title: '编码', - dataIndex: 'code', + dataIndex: 'codeName', width: 120, }, { @@ -21,10 +22,11 @@ export const columns: BasicColumn[] = [ let color = ''; let text = ''; const formType = record.objectType; - if (formType === 2) { + if (formType == 2 || formType == '2') { color = 'green'; text = '角色'; - } else if (formType === 1) { + } + if (formType == 1 || formType == '1') { color = 'yellow'; text = '用户'; } @@ -33,7 +35,7 @@ export const columns: BasicColumn[] = [ }, { title: '授权对象', - dataIndex: 'objectId', + dataIndex: 'objectName', width: 100, }, { @@ -44,10 +46,11 @@ export const columns: BasicColumn[] = [ let color = ''; let text = ''; const formType = record.type; - if (formType === 2) { + if (formType == 2 || formType == '2') { color = 'green'; text = '自定义表单'; - } else if (formType === 1) { + } + if (formType == 1 || formType == '1') { color = 'yellow'; text = '普通'; } diff --git a/src/views/demo/system/permissionmanagement/data/index.vue b/src/views/demo/system/permissionmanagement/data/index.vue index 4bab8d64..5471c552 100644 --- a/src/views/demo/system/permissionmanagement/data/index.vue +++ b/src/views/demo/system/permissionmanagement/data/index.vue @@ -30,7 +30,7 @@