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