feat:菜单可配置

This commit is contained in:
houjunxiang
2025-11-27 16:12:25 +08:00
parent f3c15b3692
commit 6c86dc0760
46 changed files with 79 additions and 162 deletions

View File

@@ -0,0 +1,109 @@
<template>
<view>
<uni-card spacing="0">
<view style="height: 72vh">
<zb-table
ref="zbTableRef"
isShowLoadMore
stripe
:fit="false"
:columns="column"
:cellStyle="setCellStyle"
:cellHeaderStyle="setCellHeaderStyle"
:data="listData"
@detail="handleDetail"
@pullUpLoading="pullUpLoadingAction"
></zb-table>
</view>
</uni-card>
<borrow-detail-popup :show="detailShow" :checkInfo="checkInfo" @close="detailShow = false" />
</view>
</template>
<script setup>
import { ref, reactive, onMounted, watch, computed } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import { setCellHeaderStyle, setCellStyle } from '@/nx/config/zbTable'
import BorrowDetailPopup from './detail.vue'
import { borrowList } from '@/nx/api/deviceInfo'
import { useListData } from '@/nx/hooks/usePageListData'
import nx from '@/nx'
const column = reactive([
{
label: '借用人',
name: 'borrowOper',
width: 120
},
{
label: '借用部门',
name: 'borrowDept',
width: 140
},
{
label: '借用日期',
name: 'borrowDate',
width: 120
},
{
label: '借用原因',
name: 'borrowReason',
width: 180
},
{
label: '计划归还日期',
name: 'planGivebackDate',
width: 140
},
{
label: '备注',
name: 'remark',
width: 140
},
{
name: 'operation',
type: 'operation',
label: '操作',
renders: [{ name: '详情', func: 'detail' }]
}
])
const deviceId = ref('')
const deviceText = ref('')
onMounted(() => {
const { id, deviceName } = nx.$store('biz').deviceInfo
deviceId.value = id
deviceText.value = deviceName
getInitData()
})
const searchParams = computed(() => ({
deviceBusInfoId: deviceId.value,
borrowStatus: '已借出'
}))
const { listData, loadingData, scrollToLower, loadStatus, getInitData } = useListData({
searchParams,
api: borrowList
})
const zbTableRef = ref()
function pullUpLoadingAction() {
if (loadingData.value) return
if (loadStatus.value === 'nomore') {
zbTableRef.value.pullUpCompleteLoading('ok')
} else {
scrollToLower()
}
}
const detailShow = ref(false)
const checkInfo = ref({})
function handleDetail(row) {
checkInfo.value = row
detailShow.value = true
}
</script>
<style lang="scss" scoped>
:deep(.zb-table uni-button[type='primary']) {
background-color: $uni-color-primary !important;
}
</style>