货无忧
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1332 lines
30 KiB

<template>
<BasicContainer :option="option">
<!-- 主体内容 -->
<view class="main">
<!-- 顶部 -->
<view class="main_top">
<input type="text" v-model="details.searchText" placeholder="请输入库位码" class="main_top_search" />
<view class="button" @click="submitSearch">搜索</view>
</view>
<!-- 库位信息 -->
<view class="main_info">
<view class="main_info_row">
<view class="main_info_item">
<text>合同号:</text>
<text>{{ article.allocationCode }}</text>
</view>
</view>
<view class="main_info_row">
<view class="main_info_item">
<text>合同类型:</text>
<text>
{{
stock.isInventory == 1 ? '库存品' :
zero.isZero == 1 ? '零担' :
article.contract
}}
</text>
</view>
</view>
<view class="main_info_row">
<view class="main_info_item">
<text>总数:</text>
<text>{{ article.allNum }}</text>
</view>
<view class="main_info_item">
<text>已盘数:</text>
<text>{{article.finishNum}}</text>
</view>
<view class="main_info_item">
<text>库位未盘数:</text>
<text>{{article.allNum - article.finishNum}}</text>
</view>
</view>
</view>
<!-- tabBar选项卡 -->
<view class="tabBar">
<view class="tabBar-item">{{stock.isInventory==1?'库存品':zero.isZero == 1 ? '零担' :"定制品"}}</view>
</view>
<!-- 控件 -->
<view class="control">
<view class="button" @click="showControl = true" v-show="!showControl">批量操作</view>
<view class="button" @click="grounding" v-show="!showControl">添加物料</view>
<template v-if="showControl">
<view class="button" @click="handleInvertSelection">反选</view>
<view class="controlList">
<view class="button" @click="handleBatchDel">
批量删除
</view>
<view class="button" @click="handleBatchUp">
批量上架
</view>
<view class="button" @click="handleBatchState">
状态修改
</view>
</view>
</template>
</view>
<!-- 列表 -->
<scroll-view class="scvmabx" @scrolltolower="reachBottomInitPage" scroll-y="true" @touchmove.stop>
<!-- 按库位盘点 -->
<template v-if="renderList.length !== 0">
<view class="list" v-for="(item, index) in renderList" :key="item"
:class="`list ${details.activeColor[item.questStatus]}`">
<!-- 复选框 -->
<view class="leftIcon">
<template v-if="item.questStatus !== 3">
<image class="checkImage" @click="details.checkList[index] = !details.checkList[index]"
:src="details.checkList[index]?'/pagesHome/static/check.png':'/pagesHome/static/nocheck.png'">
</image>
</template>
</view>
<!-- 定制品 -->
<template v-if="stock.isInventory !== 1 && zero.isZero !== 1">
<!-- <view class="table_article">
<view class="table_head">
<view class="">包条码</view>
<view class="">合同号</view>
<view class="">库位</view>
<view class="">状态</view>
<view class="">操作</view>
</view>
<view class="table_body">
<view>{{item.orderPackageCode}}</view>
<view>{{item.orderCode}}</view>
<view>{{item.allocation}}</view>
<view>{{item.currentStatus==1?'在库':'1'}}</view>
<view class="">
<view class="button" @click="handleState(item)">处理</view>
<view class="button" @click="upDataItem(item)">上架</view>
</view>
</view>
</view> -->
<view class="rightMsg">
<view class="tpbx" v-if="item.questStatus !== 3">
<view style="flex: none;">
操作:
</view>
<view style="display: flex; justify-content: space-around;">
<text class="button" @click="handleState(item)">处理</text>
<text class="button" @click="upDataItem(item)">上架</text>
</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>包条码:{{item.orderPackageCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>合同号:{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>库位:{{item.allocation}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>状态:{{item.currentStatus==1?'在库':'1'}}</view>
</view>
</view>
</template>
<!-- 零担 -->
<template v-else-if="zero.isZero === 1">
<view class="rightMsg">
<view class="tpbx" v-if="item.questStatus !== 3">
<view style="flex: none;">
操作:
</view>
<view style="display: flex; justify-content: space-around;">
<text class="button" @click="handleState(item)">处理</text>
<text class="button" @click="upDataItem(item)">上架</text>
</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>合同号:{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>运单号:{{item.waybillNub}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>数量:{{item.quantity}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>库位:{{item.allocation}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>状态:'在库</view>
</view>
</view>
</template>
<!-- 库存品 -->
<template v-else>
<view class="rightMsg">
<view class="tpbx" v-if="item.questStatus !== 3">
<view style="flex: none;">
操作:
</view>
<view style="display: flex; justify-content: space-around;">
<text class="button" @click="handleState(item)">处理</text>
<text class="button" @click="upDataItem(item)">上架</text>
</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>合同号:{{item.orderCode}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>库位:{{item.allocation}}</view>
</view>
<view class="tpbx" v-if='stock.isInventory==1'>
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>物料编码:{{item.materialCode}}</view>
</view>
<view class="tpbx" v-if='stock.isInventory==1'>
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>物料名称:{{item.materialName}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>数量:{{item.quantity}}</view>
</view>
<view class="tpbx">
<image src="/pagesHome/static/kuweiicon.png"></image>
<view>状态:{{item.currentStatus==1?"在库":''}}</view>
</view>
</view>
</template>
</view>
</template>
</scroll-view>
<!-- 提交 -->
<button @click="submitCheck" class="submitButton" type="primary">提交盘点</button>
</view>
<saomiao2></saomiao2>
<tiplist ref="tiplists"></tiplist>
<view class="popUp" @click="details.showUpData = false" v-if="details.showUpData">
<view class="container" @click.stop>
<view style="text-align: center;" class="">
上架
</view>
<view class="up" style="height: 100px;">
<input style="padding: 10px; border: 1px solid #000;" type="text" v-model="details.scancode"
placeholder="扫描或输入库位码" id="">
</view>
<view style="display: flex; align-items: center;" class="">
<button style="flex: 1;" @click.stop="details.showUpData = false" class="button">取消</button>
<button style="flex: 1;" @click.stop="upDataForm" class="button">上架</button>
</view>
</view>
</view>
</BasicContainer>
</template>
<script setup lang="ts">
import {
onShow,
onLoad,
onHide,
} from '@dcloudio/uni-app'
import { ref, reactive, toRefs, watch } from "vue";
import {
getWarehouseTaskAllocationDetailByStrip,
getallocationDetailByZeroWaList,
getallocationDetailByStockList,
pcontractQuestDetailList,
getWarehouseUpdateQuestDetail,
postqueryupdateQuestDetailAllocation,
getWarehouseDeleteQuestDetail,
getWarehouseSaveNewQuestDetail
} from '@/api/user.js';
import utils from '@/utils/utils.js';
const option = reactive({
// 页面标题
title: '按合同号盘点',
isEnd: false,
haveData: true,
async pullDownRefreshInitPage() {
console.log('下拉刷新')
// // 页面信息清空
// article.articleList = []
// return initPage()
},
async reachBottomInitPage() {
console.log('触底加载')
return true
}
})
const details = reactive({
// 选项卡页码
tabBarCode: 3,
// 是否显示控件
showControl: false,
// 搜索框的值
searchText: '',
// 扫描后的值
scancode: '',
// 是否为扫描
isScan: false,
// 渲染的列表
renderList: [],
checkList: [],
allocationId: '',
questId: '',
showUpData: false,
isUpScan: false,
// 是否为批量操作
isBatch: false,
// 单一上架的数据
upItme: {},
// 状态样式
activeColor: [
'normal',
'green',
'',
'red'
],
marketName: [],
goodsType: ''
})
const infos = ref({})//路由传入进来的参数
// 定制品
const article = reactive({
// 定制品列表
articleList: [],
// 定制品复选框列表
articleCheckList: [],
articlePage: {
current: 1,
size: 10,
},
total: 0,
// 库位号
allocationCode: '',
// 总数
allNum: '',
// 已盘点
finishNum: '',
// 合同类型
contract: '',
isInventory: 0,
})
// 零担
const zero = reactive({
// 零担列表
zeroList: [],
// 零担复选框列表
zeroCheckList: [],
zeroPage: {
current: 1,
size: 10,
},
// 总数
total: 0,
// 库位号
allocationCode: '',
// 总数
allNum: '',
// 已盘点
finishNum: '',
// 合同类型
contract: '',
isZero: 0
})
// 库存品
const stock = reactive({
// 库存品列表
stockList: [],
// 库存品复选框列表
stockCheckList: [],
stockPage: {
current: 1,
size: 10,
},
total: 0,
// 库位号
allocationCode: '',
// 总数
allNum: '',
// 已盘点
finishNum: '',
// 合同类型
contract: '',
renderList: '',
isInventory: null
})
const {
showControl,
tabBarCode,
renderList,
} = toRefs(details)
const tiplists = ref(null)
// 页面初始化执行回调
onLoad((info) => {
infos.value = info
details.marketName = JSON.parse(info.marketName)
console.log(info, 'infos==========');
Tjinfo()//初始化请求数据
})
// 开启监听扫描
onShow(() => {
uni.$on('scancodedate', function (code) {
if (code) {
details.scancode = code
console.log(code);
scandata()
}
})
})
// 关闭扫描监听
onHide(() => {
uni.$off('scancodedate')
})
// 添加防抖函数
let antiShake : any = null
// 触底加载
function reachBottomInitPage() {
// 数据请求完毕, 不再请求
// if (option.isEnd) {
// return uni.showToast({
// icon: 'success',
// title: '数据已加载完毕'
// })
// }
// if (antiShake) {
// uni.hideLoading()
// // 清空定时器
// clearTimeout(antiShake)
// return antiShake = null
// }
// // 显示Loading, 并阻止点击屏幕
// uni.showLoading({
// title: '正在加载',
// mask: true
// })
// antiShake = setTimeout(async () => {
// // 触底请求
// console.log('触底')
// // 定制品
// if (tabBarCode.value === 1) { Tjinfo() }
// // 零担
// if (tabBarCode.value === 2) { Tjinfo() }
// // 库存品
// if (tabBarCode.value === 3) { Tjinfo() }
// // 关闭Loading效果
// uni.hideLoading()
// // 清空定时器
// antiShake = null
// }, 1000)
}
// 请求页面数据
async function initPage() {
// 请求定制品数据
if (tabBarCode.value === 1) return initArticle()
// 请求零担数据
if (tabBarCode.value === 2) return initZero()
// 请求库存品数据
if (tabBarCode.value === 3) return initStock()
}
// 公共判断
function Tjinfo() {
const FormData = {
warehouseId: infos.value.warehouseId,
taskId: infos.value.taskId,
orderCode: infos.value.orderCode,
isInventory: infos.value.isInventory
}
console.log('infos :>> ', infos);
if (infos.value.isInventory === '1') {
FormData.orderCode = infos.value.martialCode
}
pcontractQuestDetailList(FormData).then(res => {
console.log(res);
// 库存品
if (res.data.isInventory == 1) {
stock.isInventory = res.data.isInventory
stock.contract = '库存品'
stock.allocationCode = res.data.packagelistVOList
details.renderList = res.data.packagelistVOList
stock.allNum = res.data.total//总数
console.log(stock.allocationCode, '列表');
stock.finishNum = res.data.unTotal//已盘数
stock.renderList = res.data.packagelistVOList
stock.isInventory = res.data.isInventory
} else if (res.data.isZero === 1) {
zero.isZero = 1
}
// 默认定制品
article.contract = '定制品'
article.allocationCode = res.data.orderCode
article.allNum = res.data.total//总数
article.finishNum = res.data.unTotal//已盘数
details.renderList = res.data.packagelistVOList
details.checkList = details.renderList.map(() => false)
if (stock.isInventory === 1) details.goodsType = '库存品'
else if (zero.isZero === 1) details.goodsType = '零担'
else details.goodsType = '定制品'
})
}
/**
* 请求定制品数据
*/
async function initArticle() {
// Tjinfo()
}
/**
* 请求零担数据
*/
async function initZero() {
// Tjinfo()
}
/**
* 请求库存品数据
*/
async function initStock() {
// Tjinfo()
}
// 扫描后执行的回调
async function scandata() {
if (details.goodsType !== '定制品') return
details.scancode
const flag = details.renderList.find(val => val.orderPackageCode === details.scancode)
console.log('flag :>> ', flag);
// 当包件存在
if (flag) {
const questDetailList = [{
id: flag.questDetailId,
// 在库数
stockNum: flag.quantity,
// 丢失
lossNum: 0,
// 配送
deliveNum: 0,
// 破损
wornNum: 0,
// 不可修复
noRepairNum: 0,
// 未入库
noReceivedNum: 0,
}]
const res = await getWarehouseUpdateQuestDetail({ questDetailList, questId: infos.value.taskId })
const { code, msg } = res
console.log('res :>> ', res);
if (code === 200) {
Tjinfo()
utils.ttsspke(msg)
}
} else {
grounding()
}
}
// 改变选项卡激活状态
function handleTabBarCode(code : number) {
showControl.value = false
tabBarCode.value = code
console.log(code);
initPage()
}
/**
* 提交搜索请求
*/
function submitSearch() {
uni.showToast({
title: '功能还在开发中',
icon: 'none'
})
}
/**
* 提交盘点
*/
function submitCheck() {
uni.navigateBack()
}
/**
* 复选框反选
*/
function handleInvertSelection() {
details.checkList = details.checkList.map(val => !val)
}
/**
* 批量删除
*/
function handleBatchDel() {
let checkList = details.checkList
if (!checkList.some(val => val)) {
return uni.showToast({
icon: 'none',
title: '最少选择一条数据'
})
}
const questDetailList = []
details.renderList.forEach((val, index) => { if (checkList[index]) questDetailList.push({ id: val.id }) })
tiplists.value.setdetails({
title: '确认批量删除',
isshow: true,
tipstate: 2,
list: [],
confirmTxt: '确认删除',
isonecheck: true,
success: (deta) => {
// const res = getWarehouseUpdateQuestDetail({ ids })
// console.log('res :>> ', res);
try {
getWarehouseDeleteQuestDetail({ questDetailList, questId: infos.value.taskId }).then(res => {
initPage()
utils.ttsspke(res.msg)
})
} catch (e) {
//TODO handle the exception
} finally {
tiplists.value.setdetails({ isshow: false })
}
},
cancel: () => {
tiplists.value.setdetails({ isshow: false })
},
close: () => {
tiplists.value.setdetails({ isshow: false })
}
})
}
/**
* 批量上架
*/
function handleBatchUp() {
details.isUpScan = true
details.showUpData = true
details.isBatch = true
}
/**
* 单个上架
*/
function upDataItem(item) {
// 开启上架扫描
details.isUpScan = true
details.showUpData = true
details.isBatch = false
details.upItme = item
}
/**
* 提交上架
*/
async function upDataForm() {
try {
if (!details.scancode) return uni.showToast({
title: '请输入或扫描库位码',
icon: 'none'
})
let arr : any = []
// 批量操作
if (details.isBatch) {
// arr = details.renderList.filter((v, i) => )
// 定制品
arr = details.renderList.filter((v, i) => details.checkList[i])
} else {
arr = [details.upItme]
}
if (arr.length === 0) {
uni.showToast({
title: '最少选择一条数据',
icon: 'none'
})
utils.ttsspke('最少选择一条数据')
return
}
const questDetailList = arr.map(val => { return { id: val.questDetailId } })
const res = await postqueryupdateQuestDetailAllocation({ allocationId: details.scancode, questId: infos.value.taskId, questDetailList })
if (res.code === 200) {
Tjinfo()
}
utils.ttsspke(res.msg)
} catch (err) {
console.log('err :>> ', err);
//TODO handle the exception
} finally {
// 关闭弹窗
details.showUpData = false
details.isBatch = false
}
}
/**
* 修改单个状态
*/
function handleState(item) {
try {
const checkSectionList = [
{
title: '丢失',
isCheck: false,
value: 0,
disabled: true
},
{
title: '配送',
isCheck: false,
value: 0,
disabled: true
},
{
title: '破损',
isCheck: false,
value: 0,
disabled: true
},
{
title: '不可修复',
isCheck: false,
value: 0,
disabled: true
},
{
title: '未入库',
isCheck: false,
value: 0,
disabled: true
}
]
// 定制品
if (stock.isInventory !== 1 && zero.isZero !== 1) {
tiplists.value.setdetails({
title: '修改状态',
isshow: true,
tipstate: 6,
list: [{ title: '在库', value: item.quantity }],
checkSectionList,
checklist: [],
inputtext: '',
confirmTxt: '确认选择',
isonecheck: true,
success: async (deta) => {
const { checklist, checkSectionList } = deta
if (checklist.length == 0) {
uni.showToast({
title: '请选择修改的状态',
icon: 'none'
})
return
}
if (checkSectionList[checklist[0]].value === 0) {
return uni.showToast({
title: '请输入修改的数量',
icon: 'none'
})
}
const questDetailList = [{
id: item.questDetailId,
// 在库数
stockNum: item.quantity,
// 丢失
lossNum: checkSectionList[0].value,
// 配送
deliveNum: checkSectionList[1].value,
// 破损
wornNum: checkSectionList[2].value,
// 不可修复
noRepairNum: checkSectionList[3].value,
// 未入库
noReceivedNum: checkSectionList[4].value,
}]
const res = await getWarehouseUpdateQuestDetail({ questDetailList, questId: details.questId })
const { code } = res
if (code === 200) Tjinfo()
tiplists.value.setdetails({ isshow: false })
},
cancel: () => {
tiplists.value.setdetails({ isshow: false })
},
close: () => {
tiplists.value.setdetails({ isshow: false })
}
})
// 零担和库存品
} else {
tiplists.value.setdetails({
title: '修改状态',
isshow: true,
tipstate: 6,
list: [{ title: '在库', value: item.quantity }],
checkSectionList,
checklist: [],
inputtext: '',
confirmTxt: '确认选择',
isonecheck: false,
success: async (deta) => {
const { checklist, checkSectionList } = deta
if (checklist.length == 0) {
uni.showToast({
title: '请选择修改的状态',
icon: 'none'
})
return
}
if (checkSectionList[checklist[0]].value === 0) {
return uni.showToast({
title: '请输入修改的数量',
icon: 'none'
})
}
const questDetailList = [{
id: item.questDetailId,
// 在库数
stockNum: item.quantity,
// 丢失
lossNum: checkSectionList[0].value,
// 配送
deliveNum: checkSectionList[1].value,
// 破损
wornNum: checkSectionList[2].value,
// 不可修复
noRepairNum: checkSectionList[3].value,
// 未入库
noReceivedNum: checkSectionList[4].value,
}]
const res = await getWarehouseUpdateQuestDetail({ questDetailList, questId: infos.value.taskId })
const { code } = res
if (code === 200) initPage()
uni.showToast({
title: res.msg,
icon: 'none'
})
utils.ttsspke(res.msg)
tiplists.value.setdetails({ isshow: false })
},
cancel: () => {
tiplists.value.setdetails({ isshow: false })
},
close: () => {
tiplists.value.setdetails({ isshow: false })
}
})
}
} catch (e) {
//TODO handle the exception
} finally { }
}
/**
* 批量修改状态
*/
function handleBatchState() {
if (!details.checkList.some(val => val)) {
return uni.showToast({
icon: 'none',
title: '最少选择一条数据'
})
}
const questDetailList = []
details.renderList.forEach((val, index) => {
if (details.checkList[index]) {
questDetailList.push({
id: val.questDetailId,
// 在库数
stockNum: val.quantity,
// 丢失
lossNum: 0,
// 配送
deliveNum: 0,
// 破损
wornNum: 0,
// 不可修复
noRepairNum: 0,
// 未入库
noReceivedNum: 0,
})
}
})
tiplists.value.setdetails({
title: '确定批量修改',
isshow: true,
tipstate: 2,
list: [],
confirmTxt: '确认修改',
isonecheck: true,
success: (deta) => {
// const res = getWarehouseUpdateQuestDetail({ ids })
// console.log('res :>> ', res);
try {
getWarehouseUpdateQuestDetail({ questDetailList, questId: infos.value.taskId }).then(res => {
uni.showToast({
title: res.msg,
icon: 'none'
});
utils.ttsspke(res.msg)
Tjinfo()
})
} catch (e) {
//TODO handle the exception
} finally {
tiplists.value.setdetails({ isshow: false })
}
},
cancel: () => {
tiplists.value.setdetails({ isshow: false })
},
close: () => {
tiplists.value.setdetails({ isshow: false })
}
})
}
/**
* 新增物料
*/
function grounding() {
const marketName = Array.from(details.marketName)
console.log('marketName :>> ', marketName);
let goodsType = details.goodsType
tiplists.value.setdetails({
title: '新增',
isshow: true,
tipstate: 5,
upform: {
article: {
// 合同号
contractNumber: '',
// 包条码
orderPackageCode: details.scancode
},
stock: {}
},
marketName,
// goodsType: '库存品',
goodsType,
confirmTxt: '确认新增',
isonecheck: true,
success: async (deta) => {
let submitData : any = {}
if (goodsType === '定制品') submitData = articleAdd(deta)
if (goodsType === '零担') {
uni.showToast({
title: '功能还在开发中'
})
tiplists.value.setdetails({ isshow: false })
return submitData = zeroAdd(deta)
}
if (goodsType === '库存品') submitData = stockAdd(deta)
const res = await getWarehouseSaveNewQuestDetail(submitData)
console.log('res :>> ', res);
const { code } = res
if (code === 200) {
Tjinfo()
uni.showToast({
title: '操作成功',
icon: 'success'
})
}
tiplists.value.setdetails({ isshow: false })
},
cancel: () => {
tiplists.value.setdetails({ isshow: false })
},
close: () => {
tiplists.value.setdetails({ isshow: false })
}
})
}
// 定制品添加
function articleAdd(deta) {
const { upform: { article: { contractNumber, orderPackageCode } } } = deta
if (!contractNumber) return uni.showToast({
title: '请输入合同号',
icon: 'none'
})
if (!orderPackageCode) return uni.showToast({
title: '请输入或扫描包条码',
icon: 'none'
})
const submitData = {
questDetail: {
ordePackageCode: orderPackageCode,
orderCode: contractNumber,
stockNum: 1,
},
orderCode: article.allocationCode,
questTarget: 1,
questType: 3,
questId: infos.value.taskId,
}
return submitData
}
// 零担添加
function zeroAdd(deta) { }
// 库存品添加
function stockAdd(deta) {
console.log('deta :>> ', deta);
const { upform: { stock: { orderCode, stockNum, marketName, incomingBatch } } } = deta
// if (!contractNumber) return uni.showToast({
// title: '请输入合同号',
// icon: 'none'
// })
// if (!orderPackageCode) return uni.showToast({
// title: '请输入或扫描包条码',
// icon: 'none'
// })
console.log('data :>> ', deta);
const submitData = {
questDetail: {
orderCode: orderCode,
stockNum: stockNum,
marketName,
incomingBatch
},
orderCode: article.allocationCode,
questTarget: 3,
questType: 3,
questId: infos.value.taskId,
}
return submitData
}
// watch([articleList, zeroList, stockList, tabBarCode], () => {
// // 定制品
// if (tabBarCode.value === 1) {
// return renderList.value = articleList.value
// }
// // 零担
// if (tabBarCode.value === 2) {
// return renderList.value = zeroList.value
// }
// // // 库存品
// if (tabBarCode.value === 3) {
// return renderList.value = stockList.value
// }
// })
</script>
<style lang="scss" scoped>
$buttonColor: #d3832a;
// 本页按钮样式
.button {
font-size: 28upx;
padding: 10upx 20upx;
border: 1upx solid $buttonColor;
background-color: #fff;
color: #d3832a;
border-radius: 5upx;
}
.main {
padding: 10upx;
font-size: 28upx; // 本页字体大小
}
.main_top {
display: flex;
// align-items: center;
justify-content: space-between;
margin-bottom: 10upx;
// 顶部搜索框
&_search {
flex: 1;
padding-left: 20upx;
margin-right: 20upx;
box-sizing: border-box;
height: 28upx * 2;
border-radius: 28upx;
border: 1upx solid #000;
}
.button {
background-color: $buttonColor;
color: #fff;
padding: 0 60upx;
display: inline-flex;
align-items: center;
}
}
// 顶部信息区
.main_info {
margin-bottom: 10upx;
padding: 10upx;
background-color: #fff;
&_row {
padding: 10upx 0;
display: flex;
justify-content: space-between;
border-bottom: 2upx solid #000;
&:last-child {
border-bottom: none;
}
}
&_item {
flex: 1;
flex-basis: 0;
display: inline-flex;
text:first-child {
margin-right: 10upx;
}
}
}
// tabBar选项卡
.tabBar {
display: flex;
justify-content: space-evenly;
background-color: #fff;
margin-bottom: 10upx;
&-item {
position: relative;
flex: 1;
flex-basis: 0;
padding: 20upx 0;
text-align: center;
&::after {
content: '';
position: absolute;
bottom: 0;
left: 50%;
display: block;
width: 0;
box-sizing: border-box;
border: 1upx solid $buttonColor;
transition: all 0.5s;
}
&.active {
color: $buttonColor;
&::after {
left: 0;
width: 100%;
}
}
}
}
// 控件区
.control {
display: flex;
justify-content: space-between;
.controlList {
display: flex;
.button {
margin: 0 5upx;
&:last-child {
margin-right: 0;
}
}
}
}
// 滚动区
.scvmabx {
width: 100%;
height: 60vh;
}
.list {
display: flex;
margin: 20upx 0;
padding: 0 10upx;
border-radius: 10upx;
box-shadow: 0 0 20upx #d3832a;
&.normal {
background-color: none;
}
&.green {
background: #eaffc9;
}
&.red {
background: #ffc9c9;
}
.leftIcon {
flex: none;
margin-right: 30upx;
// padding-top: 18upx;
.checkImage {
width: 48upx;
height: 48upx;
}
}
.rightMsg {
flex: 1;
}
}
.table_article {
text-align: center;
flex: 1;
.table_head {
display: flex;
view {
flex: 1;
}
}
.table_body {
display: flex;
view {
flex: 1;
flex-basis: 1;
word-break: break-all;
}
}
}
// 列表
.tpbx {
display: flex;
align-items: center;
// padding: 18upx 24upx;
box-sizing: border-box;
border-bottom: 4upx solid #EEEEEE;
>image {
flex: none;
width: 64upx;
height: 64upx;
margin-right: 15upx;
}
>view {
flex: 1;
font-size: 28upx;
font-weight: 400;
color: #020B18;
.numb {
font-size: 28upx;
color: #178AF2;
}
}
}
.viewnum {
height: 100upx;
display: flex;
align-items: center;
justify-content: space-around;
>view {
font-size: 28upx;
font-weight: 400;
color: #020B18;
}
}
// 提交按钮
.submitButton {
position: fixed;
color: #fff;
background-color: $buttonColor;
width: 50%;
bottom: 30upx;
left: 50%;
transform: translateX(-50%);
}
// 弹出层
.popUp {
width: 100vw;
height: 100vh;
background: #00000033;
position: fixed;
top: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
.container {
width: 70%;
height: 35%;
background: #fff;
border-radius: 10upx;
padding: 20upx;
display: flex;
flex-direction: column;
justify-content: space-between;
.button {
margin: 0 20upx;
}
}
}
</style>