| | |
| | | {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'} |
| | | ] |
| | | }, |
| | | { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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 = [] |
| | | }, |
| | | /* 页é¢åå§åè·å页é¢bodyé«åº¦ç宿¶å¨ */ |
| | | 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(()=>{ |
| | | /* 页é¢åå§ååéè¦æ§è¡ç代ç å¨è¿è¾¹è°ç¨ */ |
| | | }) |
| | | }, |
| | | 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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <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> |