213 lines
5.1 KiB
Vue
213 lines
5.1 KiB
Vue
|
|
<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>
|