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.

606 lines
15 KiB

2 years ago
<template>
<view class="uni-padding-wrap uni-common-mt">
<view>
<view class="page-title">
<view class="">
<text class="">元组件</text>
</view>
</view>
<view class="">
<view class="">
<view class="uni-title">按钮/图标</view>
<view class="uni-flex uni-row">
<view style="margin: 5px;">展开 </view>
<view style="margin: 5px;">折叠 </view>
<view style="margin: 5px;">查看详情 </view>
<view style="margin: 5px;">等等 </view>
</view>
<view class="uni-flex uni-row">
<button>提交</button>
<button>清空</button>
</view>
</view>
<view class="">
<view class="uni-title">物品信息1 winItemBasicInfo
</view>
<view class="uni-flex uni-column content">
<win-item-basic-info :dataContent="item"></win-item-basic-info>
</view>
</view>
<view class="">
<view class="uni-title">物品信息2 winItemInfo
</view>
<view class="uni-flex uni-column content">
<win-item-info :dataContent="item"></win-item-info>
</view>
</view>
<view class="">
<view class="uni-title uni-common-mt">物品详细详情 winItemDetailInfo
</view>
<view class="uni-flex uni-column content">
<win-item-detail-info ref="itemDetailInfo"></win-item-detail-info>
<text @click="openItemDetailInfo()">展开</text>
</view>
<win-item-detail-info ref="itemDetailInfo"></win-item-detail-info>
</view>
<view class="">
<view class="uni-title">箱码 winPackingCode
</view>
<view class="uni-flex uni-column content">
<win-packing-code packingCode="箱码"></win-packing-code>
</view>
</view>
<view class="">
<view class="uni-title">托码 winContainerCode
</view>
<view class="content">
<win-container-code containerCode="托码1"></win-container-code>
</view>
</view>
<view class="">
<view class="uni-title">批次 winLot
</view>
<view class="content">
<win-lot lot="批次1" :dataContent='balance'></win-lot>
</view>
</view>
<view class="">
<view class="uni-title">库位1 winLocationCode
</view>
<view class="content">
<win-location-code :dataContent='location'></win-location-code>
</view>
<view class="uni-title">库位2 winLocationInfo
</view>
<view class="content">
<win-location-info :dataContent='location'></win-location-info>
</view>
</view>
<view class="">
<view class="uni-title">库存状态 winInventoryStatus
</view>
<view class="content">
<win-inventory-status :status='1' :allowEdit="true"></win-inventory-status>
</view>
</view>
<view class="">
<view class="uni-title">供应商名称 winSupplierInfo
</view>
<view class="content">
<win-supplier-info supplierCode="供应商代码" supplierName="供应商名称"></win-supplier-info>
</view>
</view>
<view>
<view class="uni-title">数量单位 winQty
</view>
<view class="content">
<win-qty :qty='qty.qty' :uom='qty.uom' :stdPackQty='stdPackQty.qty'
:stdPackUom='stdPackQty.uom'></win-qty>
</view>
</view>
<view>
<view class="uni-title">编辑数量 winQtyUom
</view>
<view class="content">
<text @click="openQtyEdit()">点击弹窗数量编辑页</text>
<win-qty-edit ref="qtyEdit" :allQty='10' @getQty='getQty'>
</win-qty-edit>
</view>
</view>
<view class="">
<view class="uni-title">任务编号 winJobNumber
</view>
<view class="content">
<win-job-number :dataContent="jobInfo" @openJobDetail='openJobDetail'></win-job-number>
</view>
</view>
<view>
<view class="uni-title">任务创建信息 winJobCreation
</view>
<view class="content">
<win-job-creation creater="创建人" creationTime="2023年3月1日"></win-job-creation>
</view>
</view>
<!-- <view>
<view class="uni-title">推荐信息 winRecommendSimple
</view>
<view class="content">
<win-recommend-simple :dataContent="recommendInfo"></win-recommend-simple>
</view>
</view>
<view>
<view class="uni-title">推荐实际对比组件 winJobDetailCompare
</view>
<view>
<win-job-detail-compare :dataContent="recommendInfo"></win-job-detail-compare>
</view>
</view> -->
</view>
</view>
<view>
<view class="page-title">
<view class="">
<text class="">基础组件</text>
</view>
</view>
<view>
<view class="uni-title">任务扫描数量 winJobScanCount
</view>
<view class="content">
<win-job-scan-count :dataContent="jobInfo"></win-job-scan-count>
</view>
</view>
<!-- <view>
<view class="uni-title">任务推荐组件 winJobRecommend
</view>
<view class="content">
<win-job-recommend :dataContent="recommendInfo" :itemInfo="item"></win-job-recommend>
</view>
</view>
-->
<view>
<view class="uni-title">标签组件 winLabel
</view>
<view class="content">
<win-label :item="item" :dataContent="label"></win-label>
</view>
</view>
<view>
<view class="uni-title">库存组件1 winBalance1
</view>
<view class="content">
<win-balance1 :dataContent="balance" :label="label"></win-balance1>
</view>
</view>
<view>
<view class="uni-title">库存组件2 winBalance2
</view>
<view class="content">
<!-- <win-balance :dataContent="balance" :label="label"></win-balance> -->
</view>
</view>
<view>
<view class="uni-title">分组汇总组件 winCollapseItem
</view>
<view class="content">
<uni-collapse>
<win-collapse-item :open="true" title="零件号A" :scanCount="3" style="font-size: 20px; ">
<view>
<uni-swipe-action>
<uni-swipe-action-item :auto-close="false" style='background-color: #ffffff;'>
<text>组件Slot</text>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
</win-collapse-item>
</uni-collapse>
</view>
</view>
<view class="">
<view class="">
扫描组件
</view>
<view style="display: flex;flex-direction: row;">
<button @click="scanClick">扫描组件</button>
<button @click="scanLocationClick">扫描库位</button>
</view>
<win-scan-pack ref='scanPack'></win-scan-pack>
<win-scan-location ref="scanLocation" @getLocation='getLocationInfo'></win-scan-location>
<view style="height: 60px;">
</view>
</view>
<view class="">
滑动删除
<uni-swipe-action ref="swipeAction">
<uni-swipe-action-item v-for="(item, index) in swipeList" :right-options="item.options"
:key="item.id" @change="swipeChange($event, index)" @click="swipeClick($event, index)">
<view class="content-box">
<text class="content-text">{{ item.content }}</text>
</view>
</uni-swipe-action-item>
</uni-swipe-action>
</view>
<view style="height: 80px;">
</view>
</view>
</view>
</template>
<script>
import winItemBasicInfo from '@/mycomponents/wincom/unitCom/winItemBasicInfo.vue'
import winItemInfo from '@/mycomponents/wincom/unitCom/winItemInfo.vue'
import winItemDetailInfo from '@/mycomponents/wincom/unitCom/winItemDetailInfo.vue'
import winJobNumber from '@/mycomponents/wincom/unitCom/winJobNumber.vue'
import winJobCreation from '@/mycomponents/wincom/unitCom/winJobCreation.vue'
import winPackingCode from '@/mycomponents/wincom/unitCom/winPackingCode.vue'
import winContainerCode from '@/mycomponents/wincom/unitCom/winContainerCode.vue'
import winLot from '@/mycomponents/wincom/unitCom/winLot.vue'
import winLocationCode from '@/mycomponents/wincom/unitCom/winLocationCode.vue'
import winLocationInfo from '@/mycomponents/wincom/unitCom/winLocationInfo.vue'
import winLocationDetail from '@/mycomponents/wincom/unitCom/winLocationDetail.vue'
import winInventoryStatus from '@/mycomponents/wincom/unitCom/winInventoryStatus.vue'
import winSupplierInfo from '@/mycomponents/wincom/unitCom/winSupplierInfo.vue'
import winQty from '@/mycomponents/wincom/unitCom/winQty.vue'
import winQtyEdit from '@/mycomponents/wincom/unitCom/winQtyEdit.vue'
import winRecommendSimple from '@/mycomponents/wincom/unitCom/winRecommendSimple.vue'
import winJobScanCount from '@/mycomponents/wincom/basicCom/winJobScanCount.vue'
import winJobDetailCompare from '@/mycomponents/wincom/basicCom/winJobDetailCompare.vue'
import winJobRecommend from '@/mycomponents/wincom/unitCom/winJobRecommend.vue'
import winLabel from '@/mycomponents/wincom/basicCom/winLabel.vue'
import winCollapseItem from '@/mycomponents/wincom/basicCom/winCollapseItem.vue'
import winScanButton from '@/mycomponents/wincom/scanCom/winScanButton.vue'
import winComScan from '@/mycomponents/wincom/scanCom/winComScan.vue'
import winScanPack from '@/mycomponents/wincom/scanCom/winScanPack.vue'
import winScanLocation from '@/mycomponents/wincom/scanCom/winScanLocation.vue'
import winBalance1 from '@/mycomponents/wincom/basicCom/winBalance1.vue'
import winBalance2 from '@/mycomponents/wincom/basicCom/winBalance2.vue'
import winBalance3 from '@/mycomponents/wincom/basicCom/winBalance3.vue'
import winBalance4 from '@/mycomponents/wincom/basicCom/winBalance4.vue'
import winBalance5 from '@/mycomponents/wincom/basicCom/winBalance5.vue'
import {
ref,
reactive
} from 'vue'
export default {
name: 'demo',
components: {
winItemBasicInfo,
winItemInfo,
winPackingCode,
winItemDetailInfo,
winJobNumber,
winJobCreation,
winContainerCode,
winLot,
winLocationCode,
winLocationInfo,
winLocationDetail,
winInventoryStatus,
winSupplierInfo,
winQty,
winQtyEdit,
winRecommendSimple,
winJobScanCount,
winJobDetailCompare,
winJobRecommend,
winLabel,
// winBalance,
winBalance1,
winBalance2,
winBalance3,
winBalance4,
winBalance5,
winCollapseItem,
winScanButton,
winComScan,
winScanPack,
winScanLocation
},
setup() {
let item = reactive({
itemCode: '零件号A',
itemName: '零件名称A',
itemDesc1: '描述1',
itemDesc2: '描述2',
})
let location = reactive({
locationCode: '库位A',
group: '库位组',
area: '库区',
erpCode: 'ErpCode'
})
let qty = reactive({
qty: 10,
uom: 'EA'
})
let stdPackQty = reactive({
qty: 20,
uom: 'EA'
})
let dataPackInfo = {
packCode: "BOX",
packName: "BOX",
packQty: {
uom: "EA",
qty: 80
},
allQty: 80
}
let recommendInfo = reactive({
Status: 1,
recommendPackingCode: '推荐箱码A',
recommendLot: '推荐批次A',
recommendQty: 10,
recommendUom: "单位",
stdPackQty: 10,
recommendContainerCode: '推荐托码A',
recommendLocationCode: '推荐库存A',
recommendLocation: {
locationCode: '库位A',
group: '库位组',
area: '库区',
erpCode: 'ErpCode'
},
HandledPackingCode: '实际箱码A',
HandledLot: '实际批次A',
HandledQty: 10,
HandledUom: "EA",
HandledContainerCode: '实际托码A',
HandledLocationCode: '实际库存A',
HandledLocation: {
locationCode: '库位A',
group: '库位组',
area: '库区',
erpCode: 'ErpCode'
}
})
let jobInfo = reactive({
number: '任务编号A',
jobStatus: 1,
id: 123456
})
let balance = reactive({
itemCode: '零件号A',
itemName: '零件名称A',
packingCode: '箱码A',
lot: '批次A',
supplierBatch: '供应商批次1',
produceDate: '2023年3月14日',
expireDate: '2024年3月14日',
qty: 10,
uom: 'EA',
stdPackQty: 20,
stdPackUom: 'EA',
// qty: {
// qty: 10,
// uom: 'EA'
// },
// stdPackQty: {
// qty: 20,
// uom: 'EA'
// },
status: 1,
location: {
locationCode: '库位A',
group: '库位组',
area: '库区',
erpCode: 'ErpCode'
},
})
let label = reactive({
code: '零件号A',
itemCode: '零件号A',
itemName: '零件名称A',
packingCode: '箱码A',
lot: '批次A',
qty: 10,
stdPackQty: 20,
supplierCode: '供应商代码A',
supplierName: '供应商名称A',
poNumber: '采购订单A',
team: '班组',
shift: '班次',
prodLine: '生产线A',
LabelType: '1', //2采购标签
})
let range = reactive([{
"value": 0,
"text": "篮球",
"disable": true
},
{
"value": 1,
"text": "足球"
},
{
"value": 2,
"text": "游泳"
}
])
//定义父组件向子组件传递的属性和属性值
const itemDetailInfo = ref();
const scanPack = ref();
const packInfo = ref(dataPackInfo);
const scanLocation = ref();
const qtyEdit = ref();
const openQtyEdit = () => {
qtyEdit.value.openEdit();
};
const getQty = (qty) => {
uni.showToast({
title: '总数量:' + qty
})
};
let swipeList = reactive([
{
id: 1,
options: [{
text: '置顶'
},
{
text: '标记为已读',
style: {
backgroundColor: 'rgb(254,156,1)'
}
},
{
text: '删除',
style: {
backgroundColor: 'rgb(255,58,49)'
}
}
],
content: '滑动删除按钮'
}
])
return {
item,
jobInfo,
location,
qty,
stdPackQty,
packInfo,
itemDetailInfo,
balance,
label,
recommendInfo,
range,
qtyEdit,
scanPack,
scanLocation,
getQty,
openQtyEdit,
swipeList
};
},
methods: {
openItemDetailInfo() {
this.itemDetailInfo.openDetail();
},
swipeChange(e, index) {
console.log('返回:', e);
console.log('当前索引:', index);
},
swipeClick(e, index) {
if (e.content.text === '删除') {
uni.showToast({
title: `点击了删除按钮`,
icon: 'none'
});
} else {
uni.showToast({
title: `点击了${e.content.text}按钮`,
icon: 'none'
});
}
},
// openQtyEdit() {
// this.qtyEdit.openEdit();
// },
scanClick() {
this.scanPack.openScanPopup();
},
scanLocationClick() {
this.scanLocation.openScanPopup();
},
getLocationInfo(res) {
if (res == null) {
uni.showToast({
title: "库位没查到"
})
}
},
openJobDetail() {
uni.showToast({
title: "打开对应的任务详情页"
})
}
}
}
</script>
<style scoped>
.page-title {
/* #ifndef APP-NVUE */
display: flex;
/* #endif */
flex-direction: row;
justify-content: center;
align-items: center;
padding: 35rpx;
}
.title {
padding: 5px 13px;
color: #BEBEBE;
font-size: 16px;
}
.content {
background-color: beige;
}
.content-box {
flex: 1;
/* #ifdef APP-NVUE */
justify-content: center;
/* #endif */
height: 44px;
line-height: 44px;
padding: 0 15px;
position: relative;
background-color: #fff;
border-bottom-color: #f5f5f5;
border-bottom-width: 1px;
border-bottom-style: solid;
}
.content-text {
font-size: 15px;
}
</style>