From c0885ae4ad1d8aba1ea04696fd04af9b221d2197 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周三, 04 9月 2024 13:50:06 +0800
Subject: [PATCH] 1
---
yiqi_pda/pages/outBoundWorkPieceInfoCount/modules/barContent.vue | 68 ++++++++
yiqi_pda/pages/outBoundWorkPieceInfoCount/index.vue | 313 +++++++++++++++++++++++++++++++++++++++
yiqi_pda/pages/outBoundWorkPieceInfoCount/modules/barStatus.vue | 66 ++++++++
yiqi_pda/pages/home/index.vue | 5
4 files changed, 450 insertions(+), 2 deletions(-)
diff --git a/yiqi_pda/pages/home/index.vue b/yiqi_pda/pages/home/index.vue
index 7f5ec8f..8774b56 100644
--- a/yiqi_pda/pages/home/index.vue
+++ b/yiqi_pda/pages/home/index.vue
@@ -59,8 +59,9 @@
{name:'宸ヤ欢璐ㄩ噺淇℃伅鎵归噺淇敼',icon:'icon-worker',pathName:'unbindAll',color:'#1e90ff'},
{name:'宸ヤ欢淇℃伅杩芥函',icon:'icon-notice',pathName:'retrospect',color:'#1e90ff'},
{name:'宸ヤ欢鍑哄簱鎵ц',icon:'icon-notice',pathName:'outBound',color:'#1e90ff'},
- {name:'宸ヤ欢涓嬬嚎(鏂�)',icon:'icon-notice',pathName:'unLine',color:'#1e90ff'},
- {name:'宸ヤ欢鍑哄簱(鏂�)',icon:'icon-notice',pathName:'outBoundNew',color:'#1e90ff'}
+ // {name:'宸ヤ欢涓嬬嚎(鏂�)',icon:'icon-notice',pathName:'unLine',color:'#1e90ff'},
+ // {name:'宸ヤ欢鍑哄簱(鏂�)',icon:'icon-notice',pathName:'outBoundNew',color:'#1e90ff'},
+ {name:'宸ヤ欢鍑哄簱缁熻',icon:'icon-notice',pathName:'outBoundWorkPieceInfoCount',color:'#1e90ff'}
]
},
{
diff --git a/yiqi_pda/pages/outBoundWorkPieceInfoCount/index.vue b/yiqi_pda/pages/outBoundWorkPieceInfoCount/index.vue
new file mode 100644
index 0000000..123c400
--- /dev/null
+++ b/yiqi_pda/pages/outBoundWorkPieceInfoCount/index.vue
@@ -0,0 +1,313 @@
+<template>
+ <default-header-page-layout ref="page" title="宸ヤ欢鍑哄簱缁熻" >
+ <view class="page-frame with-action-user-row" :style="{height:pageBodyHeight+'px'}" v-if="pageBodyHeight">
+ <action-user-row />
+ <view class="with-action-user-row-page-content">
+ <!-- <scan-input-form-item
+ class="forma-item"
+ label="宸ヤ欢ID"
+ v-model="barId"
+ :msg="msg"
+ :msg-type="msgType"
+ @search="onSearchContainter"
+ @clear="onClearContainter"
+ /> -->
+ <u-form :model="form" ref="uForm" label-width="65" labelAlign="right">
+ <u-form-item required label="鍑哄簱鏃ユ湡:" prop="planTime">
+ <u-input :readonly="true" placeholder="璇烽�夋嫨鍑哄簱鏃ユ湡" v-model="form.planTime"
+ @click.native="timeShow = true"></u-input>
+ </u-form-item>
+ <!-- 鏃堕棿閫夋嫨鍣� -->
+ <u-datetime-picker closeOnClickOverlay :show="timeShow" @confirm="timeConfirm" :mode="mode"
+ v-model="value1" @close="timeShow=false" @cancel="timeShow=false"></u-datetime-picker>
+ </u-form>
+ <view class="btn-view">
+ <view class="search-btn" @tap.stop="onSearchContainter">鎼滅储</view>
+ </view>
+ <!-- 璇︽儏 -->
+ <view>
+ <!-- 鍩虹淇℃伅 -->
+ <bar-content v-for="item in list" :title="'鍑哄簱浜�:' + item.workPieceOutboundUserName" :content="item" :propArr="detailArr" :key="item.id"></bar-content>
+ </view>
+ </view>
+ </view>
+ <!-- <template v-slot:footer>
+ <view class="bottom-btns-row">
+ <view class="btn-frame left-btn-frame"><u-button text="鎾ら攢" @click="onBind"></u-button></view>
+ <view class="btn-frame right-btn-frame"><u-button type="primary" text="纭淇敼" @click="comfirmUpdate"></u-button></view>
+ </view>
+ </template> -->
+ </default-header-page-layout>
+</template>
+
+<script>
+import DefaultHeaderPageLayout from '@/components/DefaultHeaderPageLayout.vue'
+import ActionUserRow from '@/components/ActionUserRow.vue'
+import ScanInputFormItem from '@/components/ScanInputFormItem.vue'
+import barContent from './modules/barContent.vue'
+import barStatus from './modules/barStatus.vue'
+import { getBarRetrospectInfo } from '@/api/retrospect/index.js'
+import {
+ getOutBoundWorkPieceInfoCountList
+ } from '@/api/outBound/index.js'
+import { parseDic, $alert, $successInfo } from '@/static/js/utils/index.js'
+import moment from 'moment'
+export default {
+ name:'baseInPage',
+ components:{DefaultHeaderPageLayout,ActionUserRow,ScanInputFormItem,barContent,barStatus},
+ data(){
+ return {
+ // 璁″垝鏃堕棿
+ value1: Number(new Date()),
+ mode: '',
+ timeShow: false,
+ form: {
+ planType: '',
+ planTypeName: '',
+ planTime: '',
+ teamType: '',
+ planProductionNum: null,
+ remarks: ''
+ },
+ pageBodyHeight: 0,
+ initInterVal: null,
+ msg: '',
+ msgType: 'error',
+ barId: '',
+ list: [],
+ detailArr: []
+ }
+ },
+ onLoad() {
+ // this.barDetail = {special: "SAE1041(0.80%~1.10%Mn)",barType: "楂樼⒊閽�",barSpec: "70鍙�",material: "229-255HBS",status: 1};
+ // this.statusArr = [{code: 1,title: '涓嶅悎鏍�'},{code: 2,title: '鍚堟牸'},{code: 3,title: '鐤戜技'}]
+ this.detailArr = [{code: "count",title: '鍑哄簱鏁伴噺'}]
+ var date=new Date();
+ this.form.planTime = moment(date).format('YYYY-MM-DD')
+ this.onSearchContainter();
+ },
+ methods:{
+ // 鏃堕棿纭
+ timeConfirm({
+ value,
+ mode
+ }) {
+ if (!value) {
+ return this.timeShow = false
+ }
+ if (mode == 'date') {
+ this.form.planTime = moment(value).format('YYYY-MM-DD')
+ } else {
+ this.form.planTime = moment(value).format('YYYY-MM')
+ }
+ this.timeShow = false
+
+ },
+ onSearchContainter(barId) {
+ if(this.form.planTime == '') {
+ return uni.showModal({
+ title:'鍑哄簱鏃ユ湡涓嶈兘涓虹┖',
+ showCancel: false
+ })
+ }
+ //debugger
+ const param = {Date: this.form.planTime}
+ getOutBoundWorkPieceInfoCountList(param).then(res => {
+ this.list = res.data
+ })
+ },
+ onClearContainter() {
+ this.barId = ''
+ this.list = []
+ },
+ /* 椤甸潰鍒濆鍖栬幏鍙栭〉闈ody楂樺害鐨勫畾鏃跺櫒 */
+ startInitInterval(callback){
+ this.initInterVal = setInterval(()=>{
+ if (this.pageBodyHeight) {
+ this.clearInitInterval()
+ callback && callback()
+ } else {
+ this.pageBodyHeight = this.$refs.page.getBodyHeight()
+ }
+ },200)
+ },
+ /* 娓呴櫎瀹氭椂鍣� */
+ clearInitInterval(){
+ try{
+ clearInterval(this.initInterVal)
+ this.initInterVal = null
+ }catch(e){
+ //TODO handle the exception
+ }
+ },
+ comfirmUpdate() {
+
+ }
+ },
+ onReady(){
+ this.startInitInterval(()=>{
+ /* 椤甸潰鍒濆鍖栧悗闇�瑕佹墽琛岀殑浠g爜鍦ㄨ繖杈硅皟鐢� */
+ })
+ },
+ onUnload(){
+ this.clearInitInterval()
+ }
+}
+</script>
+
+<style scoped lang="scss">
+ .btn-view {
+ flex-shrink: 0;
+ }
+
+ .btn-view {
+ width: 570rpx;
+ height: 10%;
+ padding: 20rpx;
+ padding-left: 0rpx;
+ box-sizing: border-box;
+
+ .search-btn {
+ height: 100%;
+ width: 100%;
+ border-radius: 8rpx;
+ background: linear-gradient(157.342820970935deg, rgba(194, 128, 255, 1) -20%, rgba(194, 128, 255, 1) -19%, rgba(132, 0, 255, 1) 119%);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ color: $uni-bg-color;
+ font-size: 26rpx;
+ }
+ }
+ .p-form-label {
+ font-size: 32rpx;
+ color: $u-tips-color;
+ padding-bottom: 12rpx;
+ padding-left: 20rpx;
+ }
+
+ .input-row {
+ width: 100%;
+ height: 90rpx;
+ overflow: hidden;
+ background-color: $uni-bg-color;
+ display: flex;
+ align-items: center;
+ position: relative;
+
+ .scan-view,
+
+
+ .scan-view {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding-right: 10rpx;
+ }
+
+ .input-view {
+ flex-grow: 1;
+ padding-left: 20rpx;
+ }
+
+
+
+ }
+
+ .msg-row {
+ padding: 6rpx 20rpx 0 20rpx;
+ line-height: 1.3;
+ font-size: 24rpx;
+ color: $u-error;
+
+ &.info-type {
+ color: $color-blue;
+ }
+ }
+.bottom-btns-row{
+ display: flex;
+ padding: 10rpx 0;
+ background-color: #fff;
+ .btn-frame{
+ box-sizing: border-box;
+ }
+ .left-btn-frame{
+ width: 30%;
+ padding-left: 20rpx;
+ padding-right: 8rpx;
+ }
+ .right-btn-frame{
+ flex: 1;
+ padding-right: 20rpx;
+ padding-left: 8rpx;
+ }
+ .u-button {
+ border: 2px solid #F08202;
+ }
+}
+.forma-item{
+ margin-bottom: 24rpx;
+}
+.material-item-group{
+ background-color: $uni-bg-color;
+ padding-top: 10rpx;
+ .material-list-item{
+ border-bottom: 2rpx solid $uni-border-color;
+ padding-bottom: 10rpx;
+ padding-left: 60rpx;
+ margin-bottom: 10rpx;
+ position: relative;
+ &:last-child{
+ border-bottom: 0;
+ }
+ .item-row{
+ display: flex;
+ &>.label{
+ flex-shrink: 0;
+ color: $u-tips-color;
+ width: 144rpx;
+ }
+ &>.content{
+ flex-grow: 1;
+ color: $u-content-color;
+ uni-input{
+ font: inherit;
+ color: $u-primary;
+ text-decoration: underline;
+ }
+ }
+ }
+ .badge-box{
+ position: absolute;
+ top:8rpx;
+ left: 8rpx;
+ z-index: 1;
+ }
+ .close-btn{
+ $closeBtnSize:70rpx;
+ width: $closeBtnSize;
+ height: $closeBtnSize;
+ z-index: 1;
+ position: absolute;
+ top:0rpx;
+ right: 8rpx;
+ background-color: $u-error;
+ opacity: 0.6;
+ border-radius: 25rpx;
+ .icon-layer{
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ z-index: 2;
+ }
+ }
+ }
+}
+
+
+
+
+</style>
\ No newline at end of file
diff --git a/yiqi_pda/pages/outBoundWorkPieceInfoCount/modules/barContent.vue b/yiqi_pda/pages/outBoundWorkPieceInfoCount/modules/barContent.vue
new file mode 100644
index 0000000..df568e1
--- /dev/null
+++ b/yiqi_pda/pages/outBoundWorkPieceInfoCount/modules/barContent.vue
@@ -0,0 +1,68 @@
+<template>
+ <view class="content">
+ <!-- 椤堕儴鏍囬 -->
+ <view class="title">{{title}}</view>
+ <view class="detail">
+ <view v-for="item in propArr" :key="item.code" class="item">
+ <view class="item_title">{{item.title}}</view>
+ <view class="item_content">{{content[item.code]}}</view>
+
+ </view>
+ </view>
+ </view>
+</template>
+
+<script>
+ export default {
+ props: {
+ title: {type:String,required: true},
+ content: {type: Object,required: true},
+ propArr: {type: Array,required: true}
+ },
+ data() {
+ return {
+
+ }
+ },
+ methods: {
+
+ }
+ }
+</script>
+
+<style scoped lang="scss">
+ .content {
+ width: 96%;
+ margin: 18rpx auto;
+ .title {
+ border-left: 6rpx solid #F18202;
+ padding-left: 10rpx;
+ box-sizing: border-box;
+ font-size: 36rpx;
+ margin-bottom: 10rpx;
+ }
+ .detail {
+ box-sizing: border-box;
+ .item {
+ width: 100%;
+ background: #fff;
+ border-radius: 4rpx;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ padding: 15rpx;
+ font-size: 32rpx;
+ box-sizing: border-box;
+ }
+
+ .item_title {
+ width: 30%;
+ }
+ .item_content {
+ flex: 1;
+ text-align: right;
+ color: $color-common;
+ }
+ }
+ }
+</style>
\ No newline at end of file
diff --git a/yiqi_pda/pages/outBoundWorkPieceInfoCount/modules/barStatus.vue b/yiqi_pda/pages/outBoundWorkPieceInfoCount/modules/barStatus.vue
new file mode 100644
index 0000000..c19f1d7
--- /dev/null
+++ b/yiqi_pda/pages/outBoundWorkPieceInfoCount/modules/barStatus.vue
@@ -0,0 +1,66 @@
+<template>
+ <view class="content">
+ <!-- 椤堕儴鏍囬 -->
+ <view class="title">{{title}}</view>
+ <view class="detail">
+ <view v-for="(item,index) in typeArr" :key="item.code" class="item" :class="activeIndex == index? 'active' : ''" @click="activeIndex = index">
+ {{item.title}}
+ </view>
+ </view>
+ </view>
+</template>
+<script>
+import props from '../../../uni_modules/uview-ui/libs/config/props'
+ export default {
+ props: {
+ title: {type: String,required: true},
+ typeArr: {type: Array,required: true},
+ status: {type: Number,required: true}
+ },
+ data() {
+ return {
+ activeIndex: 0,
+ }
+ },
+ watch: {
+ activeIndex(val) {
+ this.$emit("update:status", this.typeArr[val].code)
+ }
+ }
+ }
+</script>
+
+<style scoped lang="scss">
+ .content {
+ width: 96%;
+ margin: 18rpx auto;
+ .title {
+ border-left: 6rpx solid #F18202;
+ padding-left: 10rpx;
+ box-sizing: border-box;
+ font-size: 36rpx;
+ margin-bottom: 10rpx;
+ }
+ .detail {
+ box-sizing: border-box;
+ width: 100%;
+ display: flex;
+ justify-content: space-around;
+ box-sizing: border-box;
+ .item {
+ width: 30%;
+ text-align: center;
+ height: 80rpx;
+ line-height: 80rpx;
+ font-size: 40rpx;
+ color: #000;
+ background: #fff;
+ border-radius: 10rpx;
+ }
+ .active {
+ color: #fff;
+ background: #F18202;
+ }
+ }
+ }
+</style>
\ No newline at end of file
--
Gitblit v1.9.3