| | |
| | | </view> |
| | | |
| | | |
| | | <u-alert :title="alertTitle" type="info"></u-alert> |
| | | <u-alert :title="'工单数量('+total+')'" type="info"></u-alert> |
| | | |
| | | |
| | | <!-- 折叠面板 --> |
| | | <!-- <u-collapse @change="change" @close="close" @open="open"> --> |
| | | <!-- @change="collapseChange" --> |
| | | <u-collapse style="max-height: 590px;overflow: auto;"> |
| | | |
| | | |
| | | <u-collapse style="max-height: 62vh;overflow: auto;"> |
| | | <!-- :value='parseFloat(item.ordergoodqty)+"/"+parseFloat(item.orderqty)' --> |
| | | <scroll-view scroll-y :style="{height: 590 + 'px'}" @scrolltolower="loadMore"> |
| | | <u-collapse-item style="position: relative;" :title="item.ordercode" :name='item.ordercode' |
| | | v-if='item.children.length!==0' :value='parseFloat(item.ordergoodqty)+"/"+parseFloat(item.orderqty)' |
| | | v-if='item.children.length!==0' |
| | | :value='parseFloat(item.ordergoodqty)+parseFloat(item.orderngqty)+parseFloat(item.orderlaborbadqty)+parseFloat(item.ordermaterielbadqty)+"/"+parseFloat(item.orderqty)' |
| | | :label="item.children.length===0?'未派发':''" :disabled='item.children.length===0' |
| | | v-for="item in collapseArr" :key="item.ordercode"> |
| | | v-for="(item,index) in collapseArr" :key="item.ordercode+index"> |
| | | |
| | | |
| | | <view style="position: absolute;left: 30rpx;top:34px;font-size: 24rpx;color: #999;"> |
| | |
| | | </view> |
| | | |
| | | <!-- <view style="position: absolute;width: 26%;left: 44%;top:16px;"> --> |
| | | <view style="position: absolute;width: 120px;left: 44%;top:16px;color:#0659ff" |
| | | @click="progressClick(item.ordercode)"> |
| | | <view style="position: absolute;width: 120px;left: 44%;top:16px;color:#0659ff"> |
| | | <!-- @click="progressClick(item.ordercode)" --> |
| | | <!-- {{item.partname}}{{item.partspec}} --> |
| | | <u-line-progress :percentage="parseFloat((item.ordergoodqty*100/item.orderqty).toFixed(2))" |
| | | <u-line-progress |
| | | :percentage="parseFloat(((parseFloat(item.ordergoodqty)+parseFloat(item.orderngqty)+parseFloat(item.orderlaborbadqty)+parseFloat(item.ordermaterielbadqty))*100/item.orderqty).toFixed(2))" |
| | | inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress> |
| | | </view> |
| | | |
| | |
| | | <!-- <u--text class="u-collapse-content"> --> |
| | | <u-steps :current="-1" inactiveColor='#0659FF' direction="column"> |
| | | <view v-for="(it,ind) in item.children" :key="item.ordercode+it.name+ind" |
| | | @click="gotoPage(item.ordercode,it.code)" style="display: flex;align-items: center;"> |
| | | @click="gotoPage(item.ordercode,it.code,it)" style="display: flex;align-items: center;"> |
| | | |
| | | <!-- <u-steps-item :title="it.code+'/'+it.name+it.spec"></u-steps-item> --> |
| | | <u-steps-item :title="it.code+'/'+it.name"></u-steps-item> |
| | | <view class="" style="width: 100px;"> |
| | | <u-line-progress :percentage="parseFloat((it.goodqty*100/it.planqty).toFixed(2))" |
| | | <u-line-progress |
| | | :percentage="parseFloat(((parseFloat(it.goodqty)+parseFloat(it.ngqty)+parseFloat(it.laborbadqty)+parseFloat(it.materielbadqty))*100/it.planqty).toFixed(2))" |
| | | inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress> |
| | | </view> |
| | | <view style="width: 30%;text-align: right;"> |
| | | <view class="" style="display: flex;justify-content: flex-end;"> |
| | | <view style="color: #0659ff;"> |
| | | {{parseFloat(it.goodqty)}} |
| | | </view> |
| | | <view style="color: #ff0000;"> |
| | | +{{parseFloat(it.ngqty)+parseFloat(it.laborbadqty)+parseFloat(it.materielbadqty)}} |
| | | </view> |
| | | <view> |
| | | /{{ parseFloat(it.planqty)}} |
| | |
| | | </u-collapse-item> |
| | | </scroll-view> |
| | | </u-collapse> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <view class="uni-pagination-box"> |
| | | <uni-pagination show-icon :page-size="pageSize" :current="currentpage" :total="total" |
| | | @change="pageChange" /> |
| | | </view> |
| | | |
| | | |
| | | <!-- 弹出层 --> |
| | |
| | | |
| | | |
| | | <!-- 悬浮球 --> |
| | | <view @click="scan2"> |
| | | <!-- <view @click="scan2"> |
| | | <drag-ball :x='300' :y="600"></drag-ball> |
| | | </view> |
| | | </view> --> |
| | | |
| | | |
| | | <scan-code></scan-code> |
| | | |
| | | </view> |
| | | </template> |
| | | |
| | |
| | | import { |
| | | ProductOrderSearch |
| | | } from '../../config/api.js'; |
| | | import scanCode from '@/components/scan-code/scan-code.vue' |
| | | |
| | | export default { |
| | | components: { |
| | | scanCode |
| | | }, |
| | | onLoad(option) { |
| | | const _this = this |
| | | uni.$off('scancodedate') // 每次进来先 移除全局自定义事件监听器 |
| | |
| | | console.log("扫描到的内容为:", content) |
| | | _this.getCheckScanDeviceQrCodeData(content) |
| | | }) |
| | | |
| | | |
| | | console.log(option, 8) |
| | | }, |
| | | |
| | | onPullDownRefresh() { |
| | |
| | | // }, |
| | | ], //已选中的产品标签 |
| | | order: '', //单号 |
| | | placeholder2: '生产订单' |
| | | placeholder2: '生产订单', |
| | | total: 0, |
| | | currentpage: 1, //第几页 |
| | | pageSize: 10, //每页显示多少条 |
| | | |
| | | } |
| | | }, |
| | |
| | | let that = this |
| | | uni.startPullDownRefresh({ |
| | | success() { |
| | | that.getProductOrderSearch() |
| | | that.getProductOrderSearch(that.currentpage) |
| | | uni.showToast({ |
| | | title: "下拉刷新", |
| | | icon: 'none' |
| | |
| | | mounted() { |
| | | this.init() |
| | | |
| | | this.getProductOrderSearch() |
| | | this.getProductOrderSearch(1) |
| | | }, |
| | | methods: { |
| | | init() { |
| | |
| | | }) |
| | | }, |
| | | |
| | | // 页数改变时 分页触发 |
| | | pageChange(e) { |
| | | this.currentpage = e.current |
| | | this.getProductOrderSearch(e.current) |
| | | }, |
| | | |
| | | // 接口获取 |
| | | async getProductOrderSearch() { |
| | | async getProductOrderSearch(current) { |
| | | let ordertype = '' // SO:销售订单 MO:生产订单 PO:生产工单 |
| | | switch (this.radiovalue) { |
| | | case '生产工单': |
| | | this.alertTitle = '工单数量(共/个)' |
| | | this.placeholder = '请输入工单信息' |
| | | // this.alertTitle = '工单数量(共/个)' |
| | | // this.placeholder = '请输入工单信息' |
| | | ordertype = 'PO' |
| | | break |
| | | case '生产订单': |
| | | // this.alertTitle = '生产订单数量(共/个)' |
| | | this.alertTitle = '工单数量(共/个)' |
| | | this.placeholder = '请输入生产订单信息' |
| | | // this.alertTitle = '工单数量(共/个)' |
| | | // this.placeholder = '请输入生产订单信息' |
| | | ordertype = 'MO' |
| | | break |
| | | case '销售订单': |
| | | // this.alertTitle = '销售订单数量(共/个)' |
| | | this.alertTitle = '工单数量(共/个)' |
| | | this.placeholder = '请输入销售订单信息' |
| | | // this.alertTitle = '工单数量(共/个)' |
| | | // this.placeholder = '请输入销售订单信息' |
| | | ordertype = 'SO' |
| | | break |
| | | } |
| | |
| | | Ratetime: '', |
| | | // Ratetime: this.calendarRange, |
| | | |
| | | } |
| | | const { |
| | | data: res |
| | | } = await ProductOrderSearch(data) |
| | | page: current, |
| | | rows: this.pageSize, |
| | | prop: 'lm_date', |
| | | sortorder: 'desc' |
| | | |
| | | this.collapseArr = res |
| | | this.collapseArrAll = res |
| | | this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[ |
| | | 1] |
| | | } |
| | | const res = await ProductOrderSearch(data) |
| | | |
| | | this.total = res.count |
| | | |
| | | this.collapseArr = res.data |
| | | this.collapseArrAll = res.data |
| | | // this.alertTitle = this.alertTitle.split('/')[0] + this.total + this.alertTitle.split('/')[ |
| | | // 1] |
| | | |
| | | }, |
| | | loadMore() { |
| | |
| | | |
| | | //输入框回车确认事件 |
| | | confirmInputBoxValue(val) { |
| | | this.collapseArr = this.collapseArrAll.filter((p) => { |
| | | return p.ordercode.indexOf(val) !== -1 |
| | | }) |
| | | this.order = val |
| | | this.currentpage = 1 |
| | | this.getProductOrderSearch(1) |
| | | // this.collapseArr = this.collapseArrAll.filter((p) => { |
| | | // return p.ordercode.indexOf(val) !== -1 |
| | | // }) |
| | | |
| | | |
| | | switch (this.radiovalue) { |
| | | case '生产工单': |
| | | this.alertTitle = '工单数量(共/个)' |
| | | break |
| | | case '生产订单': |
| | | this.alertTitle = '工单数量(共/个)' |
| | | // this.alertTitle = '生产订单数量(共/个)' |
| | | break |
| | | case '销售订单': |
| | | this.alertTitle = '工单数量(共/个)' |
| | | // this.alertTitle = '销售订单数量(共/个)' |
| | | break |
| | | } |
| | | this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[ |
| | | 1] |
| | | // switch (this.radiovalue) { |
| | | // case '生产工单': |
| | | // this.alertTitle = '工单数量(共' + this.total + '个)' |
| | | // break |
| | | // case '生产订单': |
| | | // this.alertTitle = '工单数量(共' + this.total + '个)' |
| | | // break |
| | | // case '销售订单': |
| | | // this.alertTitle = '工单数量(共' + this.total + '个)' |
| | | // break |
| | | // } |
| | | |
| | | |
| | | |
| | | // this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[ |
| | | // 1] |
| | | |
| | | }, |
| | | |
| | |
| | | // that.scanContent = res.result; |
| | | |
| | | uni.navigateTo({ |
| | | url: './scbg2?orderstep=' + res.result |
| | | url: './xjjy1?orderstep=' + res.result |
| | | }) |
| | | |
| | | }, |
| | |
| | | |
| | | // 弹出层收起 |
| | | popupClose() { |
| | | this.getProductOrderSearch() |
| | | this.getProductOrderSearch(1) |
| | | this.popupShow = false |
| | | }, |
| | | |
| | |
| | | ::v-deep .u-cell__body { |
| | | padding-bottom: 40rpx; |
| | | } |
| | | |
| | | .uni-pagination-box { |
| | | height: 4vh; |
| | | margin: 1vh 0; |
| | | |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | // background-color: #fff; |
| | | } |
| | | </style> |