feat(sis): 电梯信息增加楼层授权功能
This commit is contained in:
parent
a6cc9b783e
commit
637f184387
@ -59,3 +59,11 @@ export function floorUpdate(data: FloorForm) {
|
|||||||
export function floorRemove(id: ID | IDS) {
|
export function floorRemove(id: ID | IDS) {
|
||||||
return requestClient.deleteWithMsg<void>(`/property/floor/${id}`);
|
return requestClient.deleteWithMsg<void>(`/property/floor/${id}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据单元ID查询楼层
|
||||||
|
* @param id id
|
||||||
|
*/
|
||||||
|
export function queryByUnitId(id: ID | IDS) {
|
||||||
|
return requestClient.get<FloorVO[]>(`/property/floor/queryByUnitId/${id}`);
|
||||||
|
}
|
||||||
|
@ -194,6 +194,11 @@ export interface ElevatorInfoForm extends BaseEntity {
|
|||||||
*/
|
*/
|
||||||
controlPwd?: string;
|
controlPwd?: string;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单元ID
|
||||||
|
*/
|
||||||
|
unitId?: number;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ElevatorInfoQuery extends PageQuery {
|
export interface ElevatorInfoQuery extends PageQuery {
|
||||||
|
@ -85,7 +85,7 @@ export const columns: VxeGridProps['columns'] = [
|
|||||||
fixed: 'right',
|
fixed: 'right',
|
||||||
slots: { default: 'action' },
|
slots: { default: 'action' },
|
||||||
title: '操作',
|
title: '操作',
|
||||||
width: 180,
|
width: 240,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
|
96
apps/web-antd/src/views/sis/elevatorInfo/floorAuth-modal.vue
Normal file
96
apps/web-antd/src/views/sis/elevatorInfo/floorAuth-modal.vue
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { ref } from 'vue'
|
||||||
|
|
||||||
|
import { cloneDeep } from '@vben/utils'
|
||||||
|
import { useVbenModal } from '@vben/common-ui'
|
||||||
|
import { useVbenForm } from '#/adapter/form'
|
||||||
|
import { queryByUnitId } from '#/api/property/floor'
|
||||||
|
import { message } from 'ant-design-vue'
|
||||||
|
import { defaultFormValueGetter, useBeforeCloseDiff } from '#/utils/popup'
|
||||||
|
|
||||||
|
const dataForm = ref<any>()
|
||||||
|
const floorArr = ref<any[]>([])
|
||||||
|
const title = ref('楼层授权')
|
||||||
|
|
||||||
|
const [BasicModal, modalApi] = useVbenModal({
|
||||||
|
// 在这里更改宽度
|
||||||
|
class: 'w-[700px]',
|
||||||
|
fullscreenButton: false,
|
||||||
|
onClosed: handleClosed,
|
||||||
|
onConfirm: handleConfirm,
|
||||||
|
onOpened: () => {
|
||||||
|
dataForm.value = modalApi.getData()
|
||||||
|
const { unitId } = modalApi.getData()
|
||||||
|
queryByUnitId(unitId).then((res) => {
|
||||||
|
const arr: any[] = []
|
||||||
|
res.forEach((item) => {
|
||||||
|
arr.push({
|
||||||
|
label: item.floorName,
|
||||||
|
value: item.id,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
floorArr.value = arr
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const [BasicForm, formApi] = useVbenForm({
|
||||||
|
// 所有表单项共用,可单独在表单内覆盖
|
||||||
|
commonConfig: {
|
||||||
|
// 默认占满两列
|
||||||
|
formItemClass: 'col-span-1',
|
||||||
|
// 所有表单项
|
||||||
|
componentProps: {
|
||||||
|
class: 'w-full',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
layout: 'horizontal',
|
||||||
|
schema: [
|
||||||
|
{
|
||||||
|
component: 'CheckboxGroup',
|
||||||
|
componentProps: {
|
||||||
|
name: 'cname',
|
||||||
|
options: floorArr,
|
||||||
|
},
|
||||||
|
fieldName: 'checkboxGroup',
|
||||||
|
label: '楼层'
|
||||||
|
}],
|
||||||
|
wrapperClass: 'grid-cols-1',
|
||||||
|
showDefaultActions: false
|
||||||
|
})
|
||||||
|
|
||||||
|
// formApi.updateSchema(
|
||||||
|
// [
|
||||||
|
// {
|
||||||
|
// componentProps: {
|
||||||
|
// options: floorArr,
|
||||||
|
// },
|
||||||
|
// fieldName: 'checkboxGroup',
|
||||||
|
// },
|
||||||
|
// ])
|
||||||
|
|
||||||
|
const { resetInitialized } = useBeforeCloseDiff(
|
||||||
|
{
|
||||||
|
initializedGetter: defaultFormValueGetter(formApi),
|
||||||
|
currentGetter: defaultFormValueGetter(formApi),
|
||||||
|
},
|
||||||
|
)
|
||||||
|
async function handleConfirm() {
|
||||||
|
// getValues获取为一个readonly的对象 需要修改必须先深拷贝一次
|
||||||
|
const data = cloneDeep(await formApi.getValues())
|
||||||
|
console.log(data)
|
||||||
|
console.log(dataForm.value.elevatorId)
|
||||||
|
modalApi.close()
|
||||||
|
}
|
||||||
|
|
||||||
|
async function handleClosed() {
|
||||||
|
await formApi.resetForm()
|
||||||
|
resetInitialized()
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<BasicModal :title="title">
|
||||||
|
<BasicForm />
|
||||||
|
</BasicModal>
|
||||||
|
</template>
|
@ -25,6 +25,7 @@ import { commonDownloadExcel } from '#/utils/file/download';
|
|||||||
|
|
||||||
import elevatorInfoModal from './elevatorInfo-modal.vue';
|
import elevatorInfoModal from './elevatorInfo-modal.vue';
|
||||||
import { columns, querySchema } from './data';
|
import { columns, querySchema } from './data';
|
||||||
|
import floorAuthModal from './floorAuth-modal.vue';
|
||||||
|
|
||||||
const formOptions: VbenFormProps = {
|
const formOptions: VbenFormProps = {
|
||||||
commonConfig: {
|
commonConfig: {
|
||||||
@ -88,6 +89,10 @@ const [ElevatorInfoModal, modalApi] = useVbenModal({
|
|||||||
connectedComponent: elevatorInfoModal,
|
connectedComponent: elevatorInfoModal,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const [FloorAuthModal, floorAuthModalApi] = useVbenModal({
|
||||||
|
connectedComponent: floorAuthModal,
|
||||||
|
});
|
||||||
|
|
||||||
function handleAdd() {
|
function handleAdd() {
|
||||||
modalApi.setData({});
|
modalApi.setData({});
|
||||||
modalApi.open();
|
modalApi.open();
|
||||||
@ -122,6 +127,12 @@ function handleDownloadExcel() {
|
|||||||
fieldMappingTime: formOptions.fieldMappingTime,
|
fieldMappingTime: formOptions.fieldMappingTime,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function handleAuth(row: Required<ElevatorInfoForm>) {
|
||||||
|
floorAuthModalApi.setData({ unitId: row.unitId, elevatorId: row.elevatorId });
|
||||||
|
floorAuthModalApi.open();
|
||||||
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -154,6 +165,8 @@ function handleDownloadExcel() {
|
|||||||
</template>
|
</template>
|
||||||
<template #action="{ row }">
|
<template #action="{ row }">
|
||||||
<Space>
|
<Space>
|
||||||
|
<ghost-button @click.stop="handleAuth(row)">楼层授权</ghost-button>
|
||||||
|
|
||||||
<ghost-button
|
<ghost-button
|
||||||
v-access:code="['sis:elevatorInfo:edit']"
|
v-access:code="['sis:elevatorInfo:edit']"
|
||||||
@click.stop="handleEdit(row)"
|
@click.stop="handleEdit(row)"
|
||||||
@ -178,5 +191,6 @@ function handleDownloadExcel() {
|
|||||||
</template>
|
</template>
|
||||||
</BasicTable>
|
</BasicTable>
|
||||||
<ElevatorInfoModal @reload="tableApi.query()" />
|
<ElevatorInfoModal @reload="tableApi.query()" />
|
||||||
|
<FloorAuthModal @reload="tableApi.query()" />
|
||||||
</Page>
|
</Page>
|
||||||
</template>
|
</template>
|
||||||
|
Loading…
Reference in New Issue
Block a user