213 lines
5.1 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<script lang="ts" setup>
import { batchRemoveInventoryAPI, getInventoryListAPI, getOperatoringAllListAPI } from '@/api/warehouse'
import { useAppStore, useOperatorStore } from '@/store'
definePage({
style: {
navigationBarTitleText: '运营车辆',
navigationBarBackgroundColor: '#1488f5',
navigationBarTextStyle: 'white',
},
})
const appStore = useAppStore()
const operatorStore = useOperatorStore()
const paging = ref<any>(null)
const list = ref<any>([])
const checkboxValue = ref<any>([])
const operatorAllList = ref<any>([])
const regionId_list = ref<any>([])
const modalRef = ref<any>(null)
// 刷新列表
function refreshList() {
list.value = []
}
// 获取列表
async function queryList(pageNo: number, pageSize: number) {
try {
uni.showLoading({
title: '加载中',
})
const { records } = await getInventoryListAPI({
pageNum: pageNo,
pageSize,
})
uni.hideLoading()
paging.value.complete(records)
}
catch (e) {
uni.hideLoading()
paging.value.complete(false)
}
}
// 车辆上架
function vehicleHoisting() {
modalRef.value.open()
}
// 获取列表
async function getOperatoringAllList() {
try {
const res = await getOperatoringAllListAPI()
if (res && res.length > 0) {
regionId_list.value = res.map((item) => {
return {
text: item.regionName,
value: item.regionId,
}
})
}
}
catch (e) {
console.error(new Error('获取运营区'))
}
}
// 提交
async function submit() {
try {
uni.showLoading({
title: '正在提交中。。。',
})
const res = await batchRemoveInventoryAPI({
bikeCodes: checkboxValue.value,
})
uni.hideLoading()
modalRef.value.close()
modalRef.value.closeLoading()
paging.value.reload()
checkboxValue.value = []
}
catch (e) {
modalRef.value.closeLoading()
uni.hideLoading()
}
}
onMounted(async () => {
operatorAllList.value = await operatorStore.getOperatorList()
getOperatoringAllList()
})
</script>
<template>
<view>
<z-paging
ref="paging"
v-model="list"
:default-page-no="Number('1')"
:default-page-size="Number('10')"
:auto-show-back-to-top="Boolean(true)"
bg-color="#f3f3f3"
@query="queryList"
@refresher-touchend="refreshList"
>
<view class="container">
<uv-checkbox-group
v-model="checkboxValue"
size="20"
>
<view class="list-panel">
<view
v-for="(item) in list"
:key="item.bikeInfoId"
class="list-item"
>
<view class="header d-flex align-center justify-between">
<view class="d-flex align-center">
<uv-checkbox
:name="item.bikeCode"
/>
</view>
<uv-tags :text="appStore.translateDictValue(item.status, 'BIKE_STATUS')" size="mini" />
</view>
<view class="body">
<view class="icon">
<uv-icon
name="dianpingche"
custom-prefix="custom-icon"
size="34"
color="#1488f5"
/>
</view>
<view class="content fz-28">
<view class="brand">
车辆编号{{ item.bikeCode }}
</view>
<view class="brand">
运营商{{ operatorStore.translateOperatorId(item.operatorId, operatorAllList) }}
</view>
<view class="brand">
运营区域{{ item.regionName }}
</view>
</view>
</view>
</view>
</view>
</uv-checkbox-group>
</view>
<template #bottom>
<view class="bottom-button-zaping">
<uv-button :disabled="checkboxValue.length <= 0" type="primary" text="车辆下架" @click="vehicleHoisting" />
</view>
</template>
</z-paging>
<uv-modal ref="modalRef" title="车辆下架" confirm-text="下架" show-cancel-button :async-close="true" @confirm="submit">
<view class="tips">
当前选择下架的车辆{{ checkboxValue.join(",") }}
</view>
</uv-modal>
</view>
</template>
<style lang="scss" scoped>
.container {
.list-panel {
padding: 10px 5px 0px 0px;
width: 100%;
.list-item {
padding: 10px;
margin: 10px;
border-radius: 5px;
background-color: #fff;
box-shadow: 2px 2px 4px 2px rgba(212, 212, 212, 0.6);
.header {
width: 100%;
margin-bottom: 20rpx;
}
.body {
width: 100%;
display: flex;
align-items: center;
.content {
display: flex;
margin-left: 20rpx;
flex-direction: column;
justify-content: center;
padding-bottom: 10rpx;
.brand {
margin-bottom: 10rpx;
}
}
}
}
}
}
.tips {
width: 100%;
font-size: 28rpx;
margin-bottom: 20rpx;
}
</style>