| | |
| | | { |
| | | layout: 'default', |
| | | needLogin: true, |
| | | style: { |
| | | navigationBarTitleText: '设备列表', |
| | | }, |
| | | style: { navigationBarTitleText: '设备列表', navigationStyle: 'custom' }, |
| | | } |
| | | </route> |
| | | <template> |
| | | <z-paging ref="paging" v-model="dataList" @query="queryList" show-refresher-update-time> |
| | | <z-paging ref="paging" v-model="dataList" @query="queryList" show-refresher-update-time> |
| | | <template #top> |
| | | <wd-navbar |
| | | title="设备列表" |
| | | left-arrow |
| | | @click-left="goBack" |
| | | custom-style="background: #4D80F0;" |
| | | safeAreaInsetTop |
| | | ></wd-navbar> |
| | | <wd-search v-model="searchValue" placeholder="请输入关键字" @search="handleSearch" /> |
| | | <wd-drop-menu> |
| | | <wd-drop-menu-item v-model="equTypeId" :options="typeList" @change="handleEquType" /> |
| | | <wd-drop-menu-item v-model="status" :options="statusList" @change="handleEquStatu" /> |
| | | <wd-drop-menu-item |
| | | v-model="equTypeId" |
| | | label-key="dictLabel" |
| | | value-key="dictValue" |
| | | :options="typeList" |
| | | @change="handleEquType" |
| | | /> |
| | | <wd-drop-menu-item |
| | | v-model="status" |
| | | label-key="dictLabel" |
| | | value-key="dictValue" |
| | | :options="statusList" |
| | | @change="handleEquStatu" |
| | | /> |
| | | </wd-drop-menu> |
| | | </template> |
| | | |
| | |
| | | <view class="flex justify-between items-baseline"> |
| | | <view class="flex items-center menu-title-box"> |
| | | <view class="menu-indicator"></view> |
| | | <text class="ml-1 text-xs">{{ item.assetNo }}</text> |
| | | <text class="ml-1 text-sm">{{ item.assetNo }}</text> |
| | | <wd-tag v-if="item.status === '0'" class="ml-2" bg-color="cyan">试用</wd-tag> |
| | | <wd-tag v-else-if="item.status === '1'" class="ml-2" type="success">使用</wd-tag> |
| | | <wd-tag v-else-if="item.status === '2'" class="ml-2" type="danger">停用</wd-tag> |
| | | <wd-tag v-else-if="item.status === '3'" class="ml-2" bg-color="pink">报废</wd-tag> |
| | | <wd-tag v-else-if="item.status === '4'" class="ml-2" type="warning">闲置</wd-tag> |
| | | <wd-tag v-else-if="item.status === '5'" class="ml-2">新增</wd-tag> |
| | | </view> |
| | | |
| | | <view> |
| | | <view @click.stop="handleInfo"> |
| | | <text class="icon-color-base">详情</text> |
| | | <wd-icon name="arrow-right" custom-class="icon-color-base"></wd-icon> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | <view class="flex h-[80rpx]" @click.stop="itemClick(item)"> |
| | | <view class="flex h-[90rpx] items-center" @click.stop="itemClick(item)"> |
| | | <image class="slot-img text-center" src="/static/images/camera.png" /> |
| | | <view> |
| | | <view class="flex-1"> |
| | | <view class="text-color-base"> |
| | | {{ item.equName }} |
| | | <text class="text-color-gray ml-2 text-mini">{{ item.modelNo }}</text> |
| | | </view> |
| | | <view class="text-color-gray text-xs mt-1"> |
| | | <view class="text-color-gray text-sm mt-1"> |
| | | {{ item.location }} | {{ item.madeIn }} |
| | | </view> |
| | | </view> |
| | | <view v-if="isSelectEqu"> |
| | | <wd-button size="small" icon="edit-outline" @click.stop="handleSelectEqu(item)"> |
| | | 选中 |
| | | </wd-button> |
| | | </view> |
| | | </view> |
| | | </wd-card> |
| | |
| | | |
| | | <script setup lang="ts"> |
| | | import { onMounted, getCurrentInstance, ref } from 'vue' |
| | | |
| | | import { getEquList } from '@/service/equ' |
| | | import { DICT_SYS_EQU_STATUS, getDictInfo } from '@/service/dict' |
| | | |
| | | // 设备类型 |
| | | const equTypeId = ref<number>(0) |
| | | const equTypeId = ref<number>(-1) |
| | | // 设备状态 |
| | | const status = ref<number>(0) |
| | | |
| | | const status = ref<number>(-1) |
| | | const searchValue = ref<string>('') |
| | | const isSelectEqu = ref(false) |
| | | |
| | | const typeList = ref<Record<string, any>[]>([{ label: '所有设备', value: 0 }]) |
| | | const statusList = ref<Record<string, any>[]>([{ label: '所有状态', value: 0 }]) |
| | | const typeList = ref<Record<string, any>[]>([{ dictLabel: '设备类型', dictValue: -1 }]) |
| | | const statusList = ref<Record<string, any>[]>([{ dictLabel: '所有状态', dictValue: -1 }]) |
| | | function handleEquType({ value }) { |
| | | reloadData() |
| | | console.log(value) |
| | | } |
| | | function handleEquStatu({ value }) { |
| | | reloadData() |
| | | console.log(value) |
| | | } |
| | | |
| | |
| | | const dataList = ref([]) |
| | | |
| | | const queryList = (pageNum?: number, pageSize?: number) => { |
| | | // 这里的pageNo和pageSize会自动计算好,直接传给服务器即可 |
| | | // 这里的请求只是演示,请替换成自己的项目的网络请求,并在网络请求回调中通过paging.value.complete(请求回来的数组)将请求结果传给z-paging |
| | | getEquList({ pageNum, pageSize }) |
| | | const parmams = { |
| | | pageNum, |
| | | pageSize, |
| | | equTypeId: equTypeId.value, |
| | | status: status.value, |
| | | params: { |
| | | searchValue: searchValue.value, |
| | | }, |
| | | } |
| | | if (equTypeId.value === -1) { |
| | | delete parmams.equTypeId |
| | | } |
| | | if (status.value === -1) { |
| | | delete parmams.status |
| | | } |
| | | getEquList(parmams) |
| | | .then((res: any) => { |
| | | // 请勿在网络请求回调中给dataList赋值!!只需要调用complete就可以了 |
| | | console.log(res) |
| | | paging.value.complete(res.rows) |
| | | paging.value.completeByTotal(res.rows, res.total) |
| | | }) |
| | | .catch((res) => { |
| | | // 如果请求失败写paging.value.complete(false),会自动展示错误页面 |
| | |
| | | }) |
| | | } |
| | | |
| | | const goBack = () => { |
| | | uni.navigateBack() |
| | | } |
| | | |
| | | /** |
| | | * 设备条目点击事件 |
| | | * @param item |
| | | */ |
| | | function itemClick(item: any) { |
| | | function itemClick(item: any) {} |
| | | function handleInfo() { |
| | | uni.showToast({ |
| | | title: '功能开发中', |
| | | icon: 'none', |
| | | }) |
| | | } |
| | | /** |
| | | * 其它页面选择设备 |
| | | * @param item |
| | | */ |
| | | function handleSelectEqu(item: any) { |
| | | if (isSelectEqu.value) { |
| | | emitSelectEqu(item) |
| | | uni.navigateBack() |
| | | } |
| | | } |
| | | |
| | | function handleSearch() { |
| | | console.log('handleSearch') |
| | | paging.value.reload() |
| | | } |
| | | |
| | | /** |
| | |
| | | }) |
| | | } |
| | | |
| | | |
| | | const eventChannel = ref<any>() |
| | | onMounted(() => { |
| | | const instance: any = getCurrentInstance().proxy |
| | | const event = instance.getOpenerEventChannel() |
| | | eventChannel.value = event |
| | | event.on('handleSelectEqu', function (data) { |
| | | event.on('OnSelectEqu', function (data) { |
| | | isSelectEqu.value = true |
| | | console.log('handleSelectEqu', data) |
| | | console.log('OnSelectEqu', data) |
| | | }) |
| | | }) |
| | | |
| | | function reloadData() { |
| | | paging.value.reload() |
| | | } |
| | | |
| | | async function initData() { |
| | | const sList: any = await getDictInfo(DICT_SYS_EQU_STATUS) |
| | | statusList.value.push(...sList) |
| | | } |
| | | |
| | | onLoad(() => { |
| | | initData() |
| | | }) |
| | | </script> |
| | | |
| | |
| | | :deep(.wd-card__footer) { |
| | | padding: 10rpx !important; |
| | | } |
| | | :deep(.wd-card__title-content) { |
| | | padding: 16rpx !important; |
| | | } |
| | | </style> |