From 909097fb4e143250de194c928d91cc95a4ed2c5a Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期二, 04 六月 2024 15:26:33 +0800
Subject: [PATCH] 1.生产报工2.外协收发料功能优化
---
pages.json | 24
pages/scgl/scbg.vue | 1204 +++++--------
pages/wwgl/wxfl.vue | 805 +++++---
pages/znfx/chda.vue | 18
pages/scgl/scbg2.vue | 927 ++++++++++
pages/wwgl/wxsl.vue | 1056 +++++------
pages/wwgl/wxfl2.vue | 444 +++++
pages/znfx/scjd.vue | 12
.hbuilderx/launch.json | 2
pages/wwgl/wxsl2.vue | 682 +++++++
components/drag-ball/drag-ball.vue | 75
11 files changed, 3,664 insertions(+), 1,585 deletions(-)
diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json
index 39bb1f7..f2d09b0 100644
--- a/.hbuilderx/launch.json
+++ b/.hbuilderx/launch.json
@@ -2,7 +2,7 @@
"version" : "1.0",
"configurations" : [
{
- "playground" : "custom",
+ "playground" : "standard",
"type" : "uni-app:app-android"
},
{
diff --git a/components/drag-ball/drag-ball.vue b/components/drag-ball/drag-ball.vue
new file mode 100644
index 0000000..3219659
--- /dev/null
+++ b/components/drag-ball/drag-ball.vue
@@ -0,0 +1,75 @@
+<template>
+ <view class="holdon">
+ <image class="ball" :style="'left:'+(moveX == 0 & x>0? x:moveX)+'px;top:'+(moveY == 0 & y>0? y:moveY)+'px'"
+ @touchstart="drag_start" @touchmove.prevent="drag_hmove" :src="image" mode="aspectFill">
+ </image>
+ </view>
+</template>
+
+<script>
+ export default {
+ props: {
+ x: {
+ type: Number,
+ default: 0
+ },
+ y: {
+ type: Number,
+ default: 0
+ },
+ image: {
+ type: String,
+ default: ''
+ }
+ },
+ data() {
+ return {
+ start: [0, 0],
+ moveY: 0,
+ moveX: 0
+ }
+ },
+ methods: {
+ drag_start(event) {
+ this.start[0] = event.touches[0].clientX - event.target.offsetLeft;
+ this.start[1] = event.touches[0].clientY - event.target.offsetTop;
+ },
+ drag_hmove(event) {
+ let tag = event.touches;
+ this.moveX = tag[0].clientX - this.start[0];
+ this.moveY = tag[0].clientY - this.start[1];
+ }
+ }
+ }
+</script>
+
+<style lang="less">
+ .holdon {
+ width: 100%;
+ height: 100%;
+ }
+
+ .ball {
+ // width: 70upx;
+ // height: 70upx;
+ // background: linear-gradient(to bottom, #F8F8FF, #87CEFA);
+ // border-radius: 50%;
+ // box-shadow: 0 0 15upx #87CEFA;
+ // color: #fff;
+ // font-size: 30upx;
+
+ width: 70px;
+ height: 70px;
+ border-radius: 50%;
+ margin: auto;
+ background: url('@/static/img/scan.png') no-repeat;
+ box-shadow: #436df5 0px 0px 20px;
+ background-size: 100% 100%;
+
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ position: fixed !important;
+ z-index: 1000000;
+ }
+</style>
\ No newline at end of file
diff --git a/pages.json b/pages.json
index c16b66f..a7eb353 100644
--- a/pages.json
+++ b/pages.json
@@ -200,6 +200,14 @@
}
},
{
+ "path": "pages/scgl/scbg2",
+ "style": {
+ "navigationBarTitleText": "鐢熶骇鎶ュ伐",
+ "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
"path": "pages/wwgl/wxfl",
"style": {
"navigationBarTitleText": "澶栧崗鍙戞枡",
@@ -208,6 +216,14 @@
}
},
{
+ "path": "pages/wwgl/wxfl2",
+ "style": {
+ "navigationBarTitleText": "澶栧崗鍙戞枡",
+ "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
"path": "pages/wwgl/wxsl",
"style": {
"navigationBarTitleText": "澶栧崗鏀舵枡",
@@ -216,6 +232,14 @@
}
},
{
+ "path": "pages/wwgl/wxsl2",
+ "style": {
+ "navigationBarTitleText": "澶栧崗鏀舵枡",
+ "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
+ },
+ {
"path": "pages/znfx/scfx",
"style": {
"navigationBarTitleText": "鐢熶骇鍒嗘瀽",
diff --git a/pages/scgl/scbg.vue b/pages/scgl/scbg.vue
index 8f7247a..2bebed9 100644
--- a/pages/scgl/scbg.vue
+++ b/pages/scgl/scbg.vue
@@ -3,333 +3,223 @@
<page-nav title="鐢熶骇鎶ュ伐"></page-nav>
- <view v-show="topContent.length===0">
- <div class="sacnBody">
- <div class="scanImg" @click="topScanClick"></div>
- <div class="scanText">璇锋壂鎻忎换鍔℃潯鐮�</div>
- </div>
+ <view class="flex_center" style="margin: 20rpx;">
+
+ <!-- #ifdef H5 -->
+ <u--input prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" :placeholder="placeholder"
+ style="width:100%;background-color: #fff;border-radius: 40rpx;" border="surround" suffixIcon="scan"
+ suffixIconStyle="color: #909399;font-size: 22px;" v-model="inputBoxValue"
+ @change="confirmInputBoxValue">
+ <template slot="suffix">
+ <u-icon name="scan" color="#909399" size="24" @click="scanClick"></u-icon>
+ </template>
+ </u--input>
+ <!-- #endif -->
+
+ <!-- #ifdef APP-PLUS -->
+ <u-input prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" :placeholder="placeholder"
+ style="width:100%;background-color: #fff;border-radius: 40rpx;" border="surround" suffixIcon="scan"
+ suffixIconStyle="color: #909399;font-size: 22px;" v-model="inputBoxValue"
+ @change="confirmInputBoxValue">
+ <template slot="suffix">
+ <u-icon name="scan" color="#909399" size="24" @click="scanClick"></u-icon>
+ </template>
+ </u-input>
+ <!-- #endif -->
+
+ <view class="flex_center marginLeft20" @click="popupShow=true">
+ <u--text size='16' color='#909399' text="绛涢��"></u--text>
+ <u--image :showLoading="true" src="../../static/img/sift.png" width="20px" height="20px"></u--image>
+ </view>
</view>
- <view v-show="topContent.length!==0">
- <view class="mainContent" :style="{maxHeight:'1260rpx',overflow: 'scroll'}">
- <!-- 鎶ュ伐淇℃伅 -->
- <u-gap height="5" bgColor="#eff0f1"></u-gap>
- <view class="head" style="padding-bottom: 10rpx;">
- <view class="head_block">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title">
- 鎶ュ伐淇℃伅
- </view>
- </view>
-
- </view>
- <view class="marginTop20 marginLeft20 marginRight20 flex_between">
- <u-radio-group class="flex_column">
-
- <view class="marginBottom20 " v-for="(item,index) in topContent" :key="item.wo_code">
-
- <view class="flex_between">
- <view style="display: flex;">
- <view class="flex_column titleFont">
- <view>宸ュ崟缂栧彿锛�</view>
- <view>浜у搧缂栫爜锛�</view>
- <view>浜у搧鍚嶇О锛�</view>
- <view>浜у搧瑙勬牸锛�</view>
- <view>褰撳墠宸ュ簭锛�</view>
- <view>浠诲姟鏁伴噺锛�</view>
- <view>鏈姤/宸叉姤锛�</view>
- <view>涓嬮亾宸ュ簭锛�</view>
- </view>
- <view class="flex_column contentFont">
- <view>{{item.wo_code}}</view>
- <view>{{item.partnumber}}</view>
- <view>{{item.partname}}</view>
- <view>{{item.partspec.toString().length===0?'/':item.partspec}}</view>
- <view>{{item.stepname}}</view>
- <view>{{item.planqty}}</view>
- <view>{{item.noreportqty}}/{{item.reportqty}}</view>
- <view>{{item.nextstepname?item.nextstepname:'/'}}</view>
- </view>
- </view>
+ <u-alert :title="alertTitle" type="info"></u-alert>
- </view>
+ <!-- 鎶樺彔闈㈡澘 -->
+ <!-- <u-collapse @change="change" @close="close" @open="open"> -->
+ <!-- @change="collapseChange" -->
+ <u-collapse style="max-height: 590px;overflow: auto;">
+ <!-- :value='parseFloat(item.ordergoodqty)+"/"+parseFloat(item.orderqty)' -->
+ <u-collapse-item style="position: relative;" :title="item.ordercode" :name='item.ordercode'
+ :value='parseFloat(item.ordergoodqty)+"/"+parseFloat(item.orderqty)'
+ :label="item.children.length===0?'鏈淳鍙�':''" :disabled='item.children.length===0'
+ v-for="item in collapseArr" :key="item.ordercode">
- </view>
- </u-radio-group>
- </view>
+ <view style="position: absolute;width: 200rpx;left: 30rpx;top:34px;font-size: 24rpx;color: #999;">
+ {{item.partname}} {{item.partspec}}
</view>
- <!-- 鎶ュ伐鎿嶄綔 -->
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
- <view class="head marginLeft10 marginRight10" style="padding-bottom: 20rpx;">
- <view class="head_block">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title">
- 鎶ュ伐鎿嶄綔
- </view>
- </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)">
+ <!-- {{item.partname}}{{item.partspec}} -->
+ <u-line-progress :percentage="parseFloat((item.ordergoodqty*100/item.orderqty).toFixed(2))"
+ inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress>
+ </view>
+ <!-- <view style="position: absolute;width: 100px;right: 33px; top:13px; ">
+ <view class="" style="display: flex;justify-content: flex-end;">
+ <view style="color: #0659ff;">
+ {{parseFloat(item.ordergoodqty)}}
+ </view>
+ <view>
+ /{{ parseFloat(item.orderqty)}}
+ </view>
</view>
+ </view>
+ -->
+
+
+ <view v-if="radiovalue==='鐢熶骇宸ュ崟'" style="margin:0 0 5px">
<view class="flex_column">
-
- <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
- <view style="display: flex;" class="titleFont">
- <view style="color: red;margin-right: 6rpx;">*</view> 璁′欢鏂瑰紡锛�
- </view>
- <u-radio-group v-model="reckway" @change='radioGroupChange'>
- <u-radio shape="circle" label="鐝粍" name="鐝粍" labelSize="16"></u-radio>
- <u-radio shape="circle" label="涓汉" style="margin-left: 20rpx;" name="涓汉" labelSize="16">
- </u-radio>
- </u-radio-group>
+ <view style="display:flex">
+ <view class="titleFont" style="font-size: 14px;">浜у搧缂栫爜锛�</view>
+ <view class="contentFont" style="font-size: 14px;">{{item.partcode}}</view>
</view>
-
-
- <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;"
- v-if="reckway==='鐝粍'">
- <view style="display: flex;" class="titleFont">
- <view style="color: red;margin-right: 6rpx;">*</view> 鐢熶骇鐝粍锛�
- </view>
- <view @click='userGroupSheetClick' class="custominputClass">
- <view v-show='userGroupSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
- <view v-show='userGroupSheetValue!==""' class="ellipsis" style="width: 390rpx;">
- {{userGroupSheetValue}}
- </view>
- <u-icon :name="!userGroupSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ <view style="display:flex">
+ <view class="titleFont" style="font-size: 14px;">浜у搧鍚嶇О锛�</view>
+ <view class="contentFont" style="font-size: 14px;">{{item.partname}}</view>
+ </view>
+ <view style="display:flex">
+ <view class="titleFont" style="font-size: 14px;">浜у搧瑙勬牸锛�</view>
+ <view class="contentFont" style="font-size: 14px;">{{item.partspec?item.partspec:'/'}}
</view>
</view>
-
-
- <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
- <!-- v-if="reckway==='涓汉'" -->
- <view style="display: flex;" class="titleFont">
- <view style="color: red;margin-right: 6rpx;">*</view> 鎶ュ伐浜哄憳锛�
- </view>
- <view @click='operSheetClick' class="custominputClass">
- <view v-show='operSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
- <view v-show='operSheetValue!==""' class="ellipsis" style="width: 390rpx;">
- {{operSheetValue}}
- </view>
-
- <u-icon :name="!operSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
- </view>
- </view>
-
-
- <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
- <view style="display: flex;" class="titleFont">
- <view style="color: #fff;margin-right: 6rpx;">*</view> 璁惧鍚嶇О锛�
- </view>
- <view @click='epqSheetClick' class="custominputClass">
-
- <view v-show='eqpSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
- <view v-show='eqpSheetValue!==""' class="ellipsis" style="width: 390rpx;">
- {{eqpSheetValue}}
- </view>
-
- <u-icon :name="!eqpSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
- </view>
- </view>
-
-
- <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
- <view style="color: red;margin-right: 6rpx;">*</view> 鎶ュ伐鏁伴噺锛�
- <view class='inputClass'>
- <u--input placeholder="璇疯緭鍏�" :adjustPosition='false' border="surround" type='number'
- v-model="reportqty">
- </u--input>
- </view>
- </view>
-
</view>
</view>
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <!-- {{item.children}} -->
+ <!-- <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;">
-
- <view class="head marginLeft10 marginRight10" style="padding-bottom: 20rpx;">
- <view class="head_block">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title">
- 涓嶈壇缁熻
+ <u-steps-item :title="it.code+'/'+it.name+it.spec"></u-steps-item>
+ <view class="" style="width: 100px;">
+ <u-line-progress :percentage="parseFloat((it.goodqty*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>
+ /{{ parseFloat(it.planqty)}}
+ </view>
</view>
</view>
-
</view>
- <view class="flex_column ">
+
+ </u-steps>
+ <!-- </u--text> -->
- <u-button type="primary" :plain="true" icon='plus-circle' text="娣诲姞"
- style="width: 90%;margin: 20rpx auto;" @click="add"></u-button>
+ </u-collapse-item>
+
+ </u-collapse>
- <view v-for='(item,index) in ngqtyArr' class="badSheetClass" :key="item.uid">
+ <!-- 寮瑰嚭灞� -->
+ <!-- closeIconPos='top-left' closeOnClickOverlay closeable='true' -->
+ <u-popup :show="popupShow" mode="right" @close="popupClose" @open="popupOpen">
+ <view style="margin: 120px 10px 20px;" class="flex_column">
- <view class="badNumber">{{index+1}}</view>
- <u-icon name="trash" size="20" class="trash" v-if="ngqtyArr.length!==1"
- @click="trashDelete(index)" color="rgb(0, 102, 255)"></u-icon>
-
- <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
- <view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鏁伴噺锛�
- <view class='inputClass'>
- <u--input placeholder="璇疯緭鍏�" border="surround" :adjustPosition='false' type='number'
- v-model="item.ngqty"></u--input>
- </view>
-
- </view>
- <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
- <view style="display: flex;" class="titleFont">
- <view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鍘熷洜锛�
- </view>
- <view @click='badSheetClick(item)' class="custominputClass">
- <view v-show='item.badSheetValue.length===0' style="color: rgb(192, 196, 204);">璇烽�夋嫨
- </view>
- <view v-show='item.badSheetValue.length!==0' class="ellipsis"
- style="width: 390rpx;">
- {{item.badSheetValue}}
- </view>
- <u-icon :name="item.arrowDown?'arrow-down-fill':'arrow-up-fill'"></u-icon>
- </view>
- </view>
-
- <u-divider></u-divider>
-
-
- </view>
-
+ <!-- <view style="display: flex;">
+ <view>
+ 鍗曟嵁绫诲瀷锛�
</view>
+
+ <u-radio-group v-model="radiovalue" placement="column" @change="groupChange"
+ style="margin-top: 4px;">
+ <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in radiolist"
+ :key="index+item.name" :label="item.name" iconSize='16' labelSize='16' :name="item.name">
+
+ </u-radio>
+ </u-radio-group>
+ </view> -->
+
+ <view style="margin-top: 20px;display: flex;align-items: center;">
+
+ <view class="">
+ 浜у搧淇℃伅锛�
+ </view>
+ <view class="">
+ <u-button :hairline="true" shape="circle" icon="map" :plain="true"
+ style="width: 100px;height: 26px;" type="primary" text="閫夋嫨浜у搧" @click="chosePart"></u-button>
+ </view>
+
+ </view>
+
+ <view style="display: flex;flex-wrap: wrap;">
+ <u-tag style="width:220rpx;" :text="item.name" v-for="item in tagArr" :key="item.code"
+ :closable="true" :show="item.close" @close="tagClose(item)"></u-tag>
</view>
+ <!-- <view class="head" style="margin-top: 10px;">
+ <view class="head_block" style="height: 80rpx; display: flex;justify-content: space-around;">
+ <u-button :plain='today' style="width: 70px;height: 25px;" @click="dateChange('today')"
+ type="primary" shape="circle" text="浠婃棩">
+ </u-button>
+ <u-button :plain='month' style="width: 70px;height: 25px;" @click="dateChange('month')"
+ type="primary" shape="circle" text="鏈湀">
+ </u-button>
+ <u-button :plain='custom' style="width: 70px;height: 25px;" @click="dateChange('custom')"
+ type="primary" shape="circle" text="鑷畾涔�"></u-button>
+ </view>
+ </view>
+
+ <view v-if="!custom" class="flex_column"
+ style="display: flex;justify-content: space-around;width: 100%;">
+ <view class="" style="display: flex;justify-content: space-evenly;width: 100%;">
+ <view class="titleFont">寮�濮嬫棩鏈�</view>
+ <view class="titleFont">~</view>
+ <view class="titleFont">缁撴潫鏃ユ湡</view>
+ </view>
+
+ <u-button type="info" icon='calendar' iconColor="#0659FF" size="" @click="calendarClick"
+ :text="calendarRange">
+ </u-button>
+ </view> -->
+
+ <!-- <uni-calendar ref="calendar" :range='true' :insert="false" @confirm="calendarConfirm" /> -->
</view>
+ </u-popup>
-
-
-
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
-
-
-
-
- <u-button size="large" :loading="isDisabledSubmitButton" loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary"
- @click="submit" text="鎶ュ伐">
- </u-button>
-
-
- <!-- 鐢熶骇鐝粍 -->
- <u-picker v-if="topContent.length!==0" :show="userGroupSheetShow" :columns="userGroupColumns"
- :itemHeight='55' :closeOnClickOverlay='true' @close='userGroupSheetShow=false'
- @confirm='userGroupPickerConfirm' @cancel='userGroupSheetShow=false'>
- </u-picker>
-
- <!-- 璁惧鍚嶇О -->
- <u-picker v-if="topContent.length!==0" :show="eqpSheetShow" :columns="eqpColumns" :itemHeight='55'
- :closeOnClickOverlay='true' @close='eqpSheetShow=false' @confirm='eqpPickerConfirm'
- @cancel='eqpSheetShow=false'>
- </u-picker>
-
-
-
- <!-- 涓嶈壇鍘熷洜 -->
- <u-action-sheet v-if="topContent.length!==0" :actions="badSelectArr" :safeAreaInsetBottom='true'
- :closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSelectClose" :show="badSheetShow"
- @select='badSheetSelect'>
- <view style="min-height: 100rpx;">
- <u-checkbox-group @change="checkboxChange" size='20px' v-model="checkBoxValue" iconPlacement="right"
- placement="column">
- <view v-for="(item,index) in badSelectArr">
- <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
- :name='item.name' :label="item.name">
- </u-checkbox>
- </view>
- </u-checkbox-group>
- </view>
- </u-action-sheet>
-
-
- <!-- 鎶ュ伐浜哄憳 -->
- <u-action-sheet v-if="topContent.length!==0" :actions="userSelectArrAll" :safeAreaInsetBottom='true'
- :closeOnClickOverlay="true" :closeOnClickAction="true" @close="userSheetShow=false"
- :show="userSheetShow" @select='userSheetSelect'>
- <view style="min-height: 100rpx;padding: 20rpx 20rpx 30rpx 20rpx;">
- <u-checkbox-group @change="userCheckboxChange" size='20px' v-model="userCheckBoxValue"
- iconPlacement="right" placement="column">
- <view v-for="(item,index) in userSelectArrAll">
- <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
- :name='item.name' :label="item.name">
- </u-checkbox>
- </view>
- </u-checkbox-group>
- </view>
- </u-action-sheet>
-
- <!-- 鎶ュ伐浜哄憳 -->
- <u-picker v-if="topContent.length!==0" :show="operSheetShow" :columns="operColumns" :itemHeight='55'
- :closeOnClickOverlay='true' @close='operSheetShow=false' @confirm='operPickerConfirm'
- @cancel='operSheetShow=false'>
- </u-picker>
-
-
-
-
-
- </view>
-
-
- <!-- <view v-show="topContent.length!==0" style="position: absolute; bottom: 210rpx;right: 20rpx;">
- <div class="scanImg2" @click="topScanClick"></div>
- </div>
- </view> -->
-
- <!-- 鎮诞鐞� -->
- <!-- <view
- v-show="topContent.length!==0&&!userGroupSheetShow&&!eqpSheetShow&&!operSheetShow&&!badSheetShow"
- @click="topScanClick">
- <drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
- </view> -->
<!-- <scan-code></scan-code> -->
+
+
+ <!-- 鎮诞鐞� -->
+ <view @click="scan2">
+ <drag-ball :x='300' :y="600"></drag-ball>
+ </view>
</view>
</template>
<script>
import {
- MesOrderStepStart,
- PersonPermissions,
- EqpPermissionsPlus,
- GroupsPermissions,
- GroupsPersonPermissions,
- DefectPermissions,
- SavaMesOrderStepReport,
- LabelBarCode
+ ProductionScheduleKanban
} 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') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
- // uni.$on('scancodedate', function(content) {
- // console.log("鎵弿鍒扮殑鍐呭涓�:", content)
- // // _this.getMesOrderStepStart(content)
+ const _this = this
+ uni.$off('scancodedate') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+ uni.$on('scancodedate', function(content) {
+ console.log("鎵弿鍒扮殑鍐呭涓�:", content)
+ _this.getCheckScanDeviceQrCodeData(content)
+ })
- // if (_this.topContent.find(i => i.wo_code + ';' + i.stepcode === content)) {
- // _this.$u.toast('姝ゆ潯鐮佸凡鎵弿锛屽凡鍦ㄥ垪琛ㄤ腑锛�')
- // } else {
- // _this.getMesOrderStepStart(content)
- // }
- // })
+
+ console.log(option, 8)
},
onPullDownRefresh() {
@@ -342,83 +232,63 @@
data() {
return {
- topRightMessageCount: 0,
- isDisabledSubmitButton: false,
-
- formData: {},
-
- reckway: '涓汉', //璁′欢鏂瑰紡 group浠h〃鏄彮缁� person 浠h〃鏄釜浜�
- userGroupSheetValue: '', //鐢熶骇鐝粍涓嬫媺閫変腑鐨勫��
- eqpSheetValue: '', //璁惧鍚嶇О涓嬫媺閫変腑鐨勫��
- userGroupSheetList: [], //鐢熶骇鐝粍涓嬫媺鏁扮粍
- eqpSheetList: [], //璁惧鍚嶇О涓嬫媺鏁扮粍
- userGroupSheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
- eqpSheetShow: false,
- topContent: [
- // {
- // nextstepcode: "GX005",
- // nextstepname: "鍏ュ簱",
- // noputqty: 0,
- // noreportqty: 100,
- // partname: "8504鍏夋満",
- // partnumber: "302",
- // partspec: "/",
- // planqty: 100,
- // reportqty: 0,
- // seq: "1",
- // startqty: 100,
- // stepcode: "GX001",
- // stepdesc: "",
- // stepname: "棰嗘枡",
- // wo_code: "MO-2022-11-0035_1",
- // },
+ topRightMessageCount: '',
+ inputBoxValue: '',
+ alertTitle: '',
+ popupShow: false, //寮瑰嚭灞傛槸鍚︽樉绀�
+ collapseArr: [ //鎶樺彔闈㈡澘鏁版嵁
+ ],
+ collapseArrAll: [], //鎵�鏈�
+ placeholder: '璇疯緭鍏ュ伐鍗曚俊鎭�',
+ radiovalue: '鐢熶骇宸ュ崟', //鍗曟嵁绫诲瀷
+ // SO锛氶攢鍞鍗� MO锛氱敓浜ц鍗� PO锛氱敓浜у伐鍗�
+ radiolist: [{
+ name: '閿�鍞鍗�'
+ },
+ {
+ name: '鐢熶骇璁㈠崟'
+ },
+ {
+ name: '鐢熶骇宸ュ崟'
+ },
],
- reportqty: '', //鎶ュ伐鏁伴噺
+ today: true,
+ month: false,
+ custom: true,
- ngqty: '', //涓嶈壇鏁伴噺
+ // calendarRange: new Date().toISOString().slice(0, 10) + '~' + new Date().toISOString().slice(0,
+ // 10), //绯荤粺褰撳墠鏃ユ湡
+ calendarRange: new Date().getFullYear() + '-' + (new Date().getMonth() + 1).toString().padStart(
+ 2, '0') + '-01' + '~' + new Date().toISOString().slice(0, 10), //褰撴湀鏃ユ湡
- ngqtyArr: [{
- uid: new Date().getTime(),
- ngqty: '',
- badSheetValue: '',
- arrowDown: true //鍚戜笅绠ご
- },
+
+
+ tagArr: [
// {
- // ngqty: '',
- // badSheetValue: '',
- // arrowDown: true //鍚戜笅绠ご
+ // close: true,
+ // name: '鐢垫睜鍖�',
+ // code: '1002'
+ // }, {
+ // close: true,
+ // name: '鐢佃剳',
+ // code: '1003'
+ // }, {
+ // close: true,
+ // name: '8054鍏夋満',
+ // code: '1004'
+ // }, {
+ // close: true,
+ // name: 'G71674鍐查攱鏋�',
+ // code: '1005'
+ // }, {
+ // close: true,
+ // name: '8051鍏夋満',
+ // code: '1006'
// },
- ], //涓嶈壇鏁伴噺銆佷笉鑹師鍥犳暟缁�
+ ], //宸查�変腑鐨勪骇鍝佹爣绛�
-
-
- badSelectArr: [], //涓嶈壇鍘熷洜涓嬫媺鏁扮粍
- badSheetValue: '', //涓嶈壇鍘熷洜閫変腑鍊�
- badSheetShow: false,
- checkBoxValue: [], //涓嶈壇鍘熷洜鏄剧ず鍊�
- operSheetValue: '', //鎿嶄綔浜哄憳閫変腑鍊�
- operSheetShow: false,
- operSheetList: [], //鎿嶄綔浜哄憳鏁扮粍
- userArr: [], //鎶ュ伐浜哄憳淇℃伅鏁扮粍
-
-
- userSelectValue: '', //涓嬫媺閫夐」鍊�
- userSelectArrAll: [], //鎵�鏈変汉鍛樹笅鎷夋暟缁�
- userSelectArr: [
- // {
- // value: '1001',
- // text: '灏忕編1'
- // },
- ], //浜哄憳涓嬫媺鏁扮粍
- userGroupColumns: [], //
- eqpColumns: [], //
- operColumns: [], //
- isAsyncChange: false,
-
- userCheckBoxValue: [],
- userSheetShow: false
}
},
created() {
@@ -427,124 +297,107 @@
mounted() {
this.init()
- // this.getMesOrderStepStart('MO-2024-01-0004_1;102')
-
- this.getSellectAllApi()
+ this.getProductionScheduleKanban()
},
methods: {
init() {
uni.stopPullDownRefresh();
},
- async getSellectAllApi() {
- await this.getGroupsPermissions() //鑾峰彇鐢熶骇鐝粍
- await this.getEqpPermissionsPlus() //鑾峰彇璁惧鍚嶇О
- await this.getDefectPermissions() //鑾峰彇缂洪櫡涓嬫媺
- await this.getPersonPermissions() //鑾峰彇鎿嶄綔浜哄憳
- },
+ gotoPage(p1, p2) {
+ let orderstep = null
-
- //鑾峰彇鐢熶骇鐝粍
- async getGroupsPermissions(wkshopcode) {
-
- const res = await GroupsPermissions()
- if (res.code === '200') {
- // 鏁扮粍瀵硅薄 鏇挎崲瀵硅薄閿悕
- this.userGroupSheetList = res.data.map(({
- usergroupcode,
- usergroupname
- }) => ({
- code: usergroupcode,
- name: usergroupname
- }))
-
- this.userGroupColumns = [this.userGroupSheetList.map(i => i.name)]
+ if (p1) {
+ orderstep = p1 + ';' + p2
+ } else {
+ orderstep = ''
}
- },
- // 鑾峰彇璁惧鍚嶇О
- async getEqpPermissionsPlus() {
- const res = await EqpPermissionsPlus()
- if (res.code === '200') {
- this.eqpSheetList = res.data
- this.eqpColumns = [this.eqpSheetList.map(i => i.name)]
- }
- },
- // 鑾峰彇涓嶈壇鍘熷洜
- async getDefectPermissions(orderstepqrcode) {
- const res = await DefectPermissions()
- if (res.code === '200') {
- this.badSelectArr = res.data
- }
- },
- // 鑾峰彇鎶ュ伐浜哄憳
- async getPersonPermissions() {
- const res = await PersonPermissions()
- if (res.code === '200') {
- // this.operSheetList = res.data
- this.operSheetList = res.data.map(({
- usercode,
- username
- }) => ({
- code: usercode,
- name: username
- }))
- this.operColumns = [this.operSheetList.map(i => i.name)]
- this.userSelectArrAll = this.operSheetList
- }
- },
- // 鏍规嵁鐢熶骇鐝粍鑾峰彇浜哄憳
- async getGroupsPersonPermissions(groupcode) {
- const res = await GroupsPersonPermissions({
- groupcode
+
+ uni.navigateTo({
+ url: './scbg2?orderstep=' + orderstep
})
- if (res.code === '200') {
- this.userCheckBoxValue = []
+ },
- if (res.data[0].usercode_list && res.data[0].usercode_list.length > 0) {
- this.userSelectArrAll.forEach(i => {
+ getCheckboxValue(val) {
+ this.tagArr = []
+ val.forEach(i => {
+ this.tagArr.push({
+ close: true,
+ name: i.split('/')[1].trim(),
+ code: i.split('/')[0].trim()
+ })
+ })
+ },
- if (res.data[0].usercode_list.split(',').includes(i.code)) {
- this.userCheckBoxValue.push(i.name)
- }
-
- })
-
- }
-
- this.operSheetValue = this.userCheckBoxValue.join(',')
-
-
+ // 鎺ュ彛鑾峰彇
+ async getProductionScheduleKanban() {
+ let ordertype = '' // SO锛氶攢鍞鍗� MO锛氱敓浜ц鍗� PO锛氱敓浜у伐鍗�
+ switch (this.radiovalue) {
+ case '鐢熶骇宸ュ崟':
+ this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
+ this.placeholder = '璇疯緭鍏ュ伐鍗曚俊鎭�'
+ ordertype = 'PO'
+ break
+ case '鐢熶骇璁㈠崟':
+ this.alertTitle = '鐢熶骇璁㈠崟鏁伴噺锛堝叡/涓級'
+ this.placeholder = '璇疯緭鍏ョ敓浜ц鍗曚俊鎭�'
+ ordertype = 'MO'
+ break
+ case '閿�鍞鍗�':
+ this.alertTitle = '閿�鍞鍗曟暟閲忥紙鍏�/涓級'
+ this.placeholder = '璇疯緭鍏ラ攢鍞鍗曚俊鎭�'
+ ordertype = 'SO'
+ break
}
- },
-
- userSheetSelect() {
-
- },
- userCheckboxChange(val) {
- this.userCheckBoxValue = val.join(',')
- },
-
- //鑾峰彇寮�宸ヤ俊鎭�
- async getMesOrderStepStart(orderstepqrcode) {
const data = {
- OperType: 'ZZ',
- SelectType: '',
- wocode: orderstepqrcode ? orderstepqrcode.split(';')[0] : '',
- stepcode: orderstepqrcode ? orderstepqrcode.split(';')[1] : ''
+ ordertype,
+ partcode: this.tagArr.map(i => i.code).join(','),
+ Ratetime: this.calendarRange,
}
- const res = await MesOrderStepStart(this.global.formatData(data))
- if (res.code === '200' && res.count === 1) {
- this.formData = res.data
- this.topContent.unshift(res.data)
- } else if (res.code === '200' && res.count !== 1) {
- this.$u.toast('姝ゅ伐搴忓凡鎶ュ伐锛�')
- }
+ const {
+ data: res
+ } = await ProductionScheduleKanban(data)
+
+ this.collapseArr = res
+ this.collapseArrAll = res
+ this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[
+ 1]
},
- // 鎵爜浜嬩欢
+
+
+ //杈撳叆妗嗗洖杞︾‘璁や簨浠�
+ confirmInputBoxValue(val) {
+ this.collapseArr = this.collapseArrAll.filter((p) => {
+ return p.ordercode.indexOf(val) !== -1
+ })
+
+
+ switch (this.radiovalue) {
+ case '鐢熶骇宸ュ崟':
+ this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
+ break
+ case '鐢熶骇璁㈠崟':
+ this.alertTitle = '鐢熶骇璁㈠崟鏁伴噺锛堝叡/涓級'
+ break
+ case '閿�鍞鍗�':
+ this.alertTitle = '閿�鍞鍗曟暟閲忥紙鍏�/涓級'
+ break
+ }
+ this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[
+ 1]
+
+ },
+
+ // 鐐瑰嚮鎵爜
+ scanClick() {
+ this.topScanClick()
+ },
+
+ // 鎵爜妗嗙偣鍑�
topScanClick() {
let that = this;
@@ -555,12 +408,36 @@
success: function(res) {
console.log('鏉$爜绫诲瀷锛�' + res.scanType);
console.log('鏉$爜鍐呭锛�' + res.result);
+ that.scanContent = res.result;
- if (that.topContent.find(i => i.wo_code + ';' + i.stepcode === res.result)) {
- that.$u.toast('姝ゆ潯鐮佸凡鎵弿锛屽凡鍦ㄥ垪琛ㄤ腑锛�')
- } else {
- that.getMesOrderStepStart(res.result)
- }
+ that.getCheckScanDeviceQrCodeData(that.scanContent);
+ },
+ complete: function(res) {
+
+ },
+ fail: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ }
+
+ });
+ },
+
+ scan2() {
+ let that = this;
+
+ uni.scanCode({
+ onlyFromCamera: true,
+ // scanType: ['barCode', 'qrCode'],
+ scanType: ['qrCode'],
+ success: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ // that.scanContent = res.result;
+
+ uni.navigateTo({
+ url: './scbg2?orderstep=' + res.result
+ })
},
complete: function(res) {
@@ -574,256 +451,110 @@
});
},
- async submit() {
- // 涓嬪崍鍐欑敓浜ф姤宸ユ彁浜�
+ getCheckScanDeviceQrCodeData(code) {
+ this.inputBoxValue = code
+ this.confirmInputBoxValue(this.inputBoxValue)
+ },
- if (this.reckway === '鐝粍' && this.userGroupSheetValue === "") {
- return uni.$u.toast('鐢熶骇鐝粍涓嶈兘涓虹┖锛�')
- }
- if (this.reckway === '涓汉' && this.operSheetValue === "") {
- return uni.$u.toast('鎶ュ伐浜哄憳涓嶈兘涓虹┖锛�')
- }
- if (this.eqpSheetValue === "") {
- return uni.$u.toast('璁惧鍚嶇О涓嶈兘涓虹┖锛�')
- }
- if (this.reportqty === "") {
- return uni.$u.toast('鎶ュ伐鏁伴噺涓嶈兘涓虹┖锛�')
- }
- if (this.reckway === '鐝粍' && this.operSheetValue.length === 0) {
- return uni.$u.toast('鎶ュ伐浜哄憳淇℃伅涓嶈兘涓虹┖锛�')
- }
+ // 寮瑰嚭灞傛敹璧�
+ popupClose() {
+ this.getProductionScheduleKanban()
+ this.popupShow = false
+ },
- let badcode = []
+ // 寮瑰嚭灞傚脊鍑�
+ popupOpen() {
- if (this.badSheetValue.length > 0) {
- this.badSelectArr.forEach(i => {
- if (this.badSheetValue.split(',').includes(i.name)) {
- badcode.push(i.code)
- }
- })
- }
+ },
- let reportuser = []
+ // 閫夋嫨浜у搧
+ chosePart() {
+ let arr = []
+ this.tagArr.forEach(i => {
+ arr.push(i.code + '/' + i.name)
+ })
+ uni.navigateTo({
+ url: '../znfx/chda?param=' + JSON.stringify(arr)
+ });
+ },
- if (this.operSheetValue.length > 0) {
- this.userSelectArrAll.forEach(i => {
- if (this.operSheetValue.split(',').includes(i.name)) {
- reportuser.push(i.code)
- }
- })
- }
-
- // 涓嶈壇鍘熷洜
- const defectlist = []
- //涓嶈壇鏁伴噺
- let ngqtyNumber = 0
-
- this.ngqtyArr.forEach(i => {
- if (i.badSheetValue.toString().length > 0) {
- let codeArr = []
- ngqtyNumber += parseFloat(i.ngqty)
- i.badSheetValue.split(',').forEach(j => {
- codeArr.push(this.badSelectArr.find(i => i.name === j).code)
- })
- defectlist.push({
- badqty: i.ngqty,
- defect_code: codeArr.join(',')
- })
+ // tag鏍囩鍏抽棴
+ tagClose(val) {
+ this.tagArr.forEach((i, j) => {
+ if (i.code === val.code) {
+ i.close = false
+ this.tagArr.splice(j, 1)
}
})
-
-
- if (parseFloat(this.reportqty) + parseFloat(ngqtyNumber) > parseFloat(this.topContent[0]
- .noreportqty)) {
- return uni.$u.toast('鎶ュ伐鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庢湭鎶ユ暟閲忥紒')
- }
-
-
-
-
- const D = {
- rightcode: '0601',
- partcode: this.topContent[0].partnumber,
- qty: parseFloat(this.reportqty),
- onelabqty: parseFloat(this.reportqty)
- }
- const {
- data: R
- } = await LabelBarCode(D)
-
-
- const data = {
- mesordercode: this.topContent[0].wo_code,
- partcode: this.topContent[0].partnumber,
- stepseq: this.topContent[0].seq,
- stepcode: this.topContent[0].stepcode,
- stepprice: this.topContent[0].stepprice,
-
- eqpcode: this.eqpSheetList.find(i => i.name === this.eqpSheetValue).code,
-
- reckway: this.reckway === '鐝粍' ? 'group' : 'person',
-
- usergroupcode: this.userGroupSheetValue ? this.userGroupSheetList.find(i => i.name === this
- .userGroupSheetValue).code : '', // 鐝粍缂栫爜
- reportuser: this.reckway === '鐝粍' ? reportuser.join(',') : this.userSelectArrAll.find(i => i
- .name === this.operSheetValue).code,
- taskqty: this.topContent[0].planqty,
- startqty: parseFloat(this.reportqty),
- reportqty: parseFloat(this.reportqty),
- inbarcode: R[0].labcode, //鍏ュ簱鏉$爜
- defectlist,
- // defectlist: badcode.length > 0 ? [{
- // defect_code: badcode.join(','),
- // badqty: this.ngqty
- // }] : [],
- remarks: ''
- }
-
- // console.log(JSON.parse(JSON.stringify(data)), 7777)
- this.isDisabledSubmitButton = true
- const res = await SavaMesOrderStepReport(data)
- if (res.code === '200') {
- uni.$u.toast('鎶ュ伐鎴愬姛锛�')
- this.topContent = []
- this.formData = {}
- this.reportqty = ''
- // this.ngqty = ''
- this.reckway = '涓汉'
- this.userGroupSheetValue = ''
- this.eqpSheetValue = ''
-
-
- this.ngqtyArr = [{
- uid: new Date().getTime(),
- ngqty: '',
- badSheetValue: '',
- arrowDown: true //鍚戜笅绠ご
- }]
-
- // this.userGroupSheetList = []
- // this.eqpSheetList = []
- // this.badSelectArr = []
- this.badSheetValue = []
- this.checkBoxValue = []
- this.operSheetValue = ''
- // this.operSheetList = []
- // this.userArr = []
- this.userSelectValue = ''
- // this.userSelectArrAll = []
- // this.userSelectArr = []
- // this.userGroupColumns = []
- // this.eqpColumns = []
- // this.operColumns = []
-
- this.userCheckBoxValue = []
- this.userSheetShow = false
-
-
- this.isDisabledSubmitButton = false
- }
-
-
-
-
-
- },
- userGroupSheetSelect(val) {
- this.userGroupSheetValue = val.name
- this.userGroupSheetShow = false
- },
- userGroupSheetClick() {
- this.userGroupSheetShow = true
- },
- eqpSheetSelect(val) {
- this.eqpSheetValue = val.name
- this.eqpSheetShow = false
- },
- epqSheetClick() {
- this.eqpSheetShow = true
- },
- badSheetSelect(val) {
- // console.log(val,9999999)
- },
- badSheetClick(item) {
- if (!item.ngqty) {
- return uni.$u.toast('璇峰厛濉啓涓嶈壇鏁伴噺锛�')
- }
- item.arrowDown = !item.arrowDown
-
- this.checkBoxValue = item.badSheetValue.split(',')
- this.badSheetShow = true
},
- badSelectClose() {
- let index = this.ngqtyArr.findIndex(i => !i.arrowDown)
+ // 鏃堕棿鑼冨洿鍒囨崲
+ dateChange(val) {
+ if (val === 'today') {
+ this.today = false
+ this.month = true
+ this.custom = true
+ this.calendarRange = new Date().toISOString().slice(0, 10) + '~' + new Date().toISOString().slice(0,
+ 10)
+ } else if (val === 'month') {
+ this.today = true
+ this.month = false
+ this.custom = true
- this.ngqtyArr[index].badSheetValue = this.checkBoxValue.join(',')
- this.ngqtyArr[index].arrowDown = true
+ this.calendarRange = new Date().getFullYear() + '-' + (new Date().getMonth() + 1).toString().padStart(
+ 2, '0') + '-01' + '~' + new Date().toISOString().slice(0, 10)
- this.checkBoxValue = []
- this.badSheetShow = false
- },
-
- checkboxChange(val) {
- this.badSheetValue = val.join(',')
- },
- operSheetClick() {
- if (this.reckway === '涓汉') {
- this.operSheetShow = true
- }
-
- if (this.reckway === '鐝粍') {
- this.userSheetShow = true
+ } else if (val === 'custom') {
+ this.today = true
+ this.month = true
+ this.custom = false
+ this.calendarRange = new Date().getFullYear() + '-' + (new Date().getMonth() + 1).toString().padStart(
+ 2, '0') + '-01' + '~' + new Date().toISOString().slice(0, 10)
}
},
- //鍗曢�夋鍊兼敼鍙樻椂
- radioGroupChange(val) {
- this.userGroupSheetValue = ''
- this.operSheetValue = ''
+
+ // 鏃ュ巻鏃堕棿鐐瑰嚮
+ calendarClick() {
+ this.$refs.calendar.open();
},
- // 娣诲姞
- add() {
-
- if (this.ngqtyArr.find(i => i.badSheetValue === '')) {
- return uni.$u.toast('璇峰厛瀹屽杽鍓嶉潰涓嶈壇閫夐」锛�')
+ // 鏃ュ巻纭畾浜嬩欢鐐瑰嚮
+ calendarConfirm(val) {
+ if (val.range.before < val.range.after) {
+ this.calendarRange = val.range.before + '~' + val.range.after
+ } else {
+ this.calendarRange = val.range.after + '~' + val.range.before
}
- this.ngqtyArr.unshift({
- uid: new Date().getTime(),
- ngqty: '',
- badSheetValue: '',
- arrowDown: true //鍚戜笅绠ご
- })
-
- },
-
- //鍒犻櫎
- trashDelete(index) {
- console.log(index)
- this.ngqtyArr.splice(index, 1)
-
+ if (val.range.before === '') {
+ this.calendarRange = new Date().toISOString().slice(0, 10) + '~' + val.range.after
+ }
+ if (val.range.after === '') {
+ this.calendarRange = val.range.before + '~' + new Date().toISOString().slice(0, 10)
+ }
+ if (val.range.before === '' && val.range.after === '') {
+ this.calendarRange = new Date().toISOString().slice(0, 10) + '~' + new Date().toISOString().slice(0,
+ 10)
+ }
+ // this.getData()
},
- userChange(val) {
- this.userSelectValue = val
+ // 鍗曢�夋寜閽垏鎹�
+ groupChange(val) {
+ console.log(val)
},
- userGroupPickerConfirm(val) {
- console.log(val, 11)
- this.getGroupsPersonPermissions(this.userGroupSheetList.find(i => i.name === val.value[0]).code)
- this.userGroupSheetValue = val.value[0]
- this.userGroupSheetShow = false
- },
- eqpPickerConfirm(val) {
- this.eqpSheetValue = val.value[0]
- this.eqpSheetShow = false
- },
- operPickerConfirm(val) {
- this.operSheetValue = val.value[0]
- this.operSheetShow = false
- }
+
+
+
+
+
+
+
+
+
+
}
}
</script>
@@ -835,75 +566,74 @@
display: block;
}
- .custominputClass {
- width: 412rpx;
- display: flex;
- justify-content: space-between;
- border: 3rpx #eff0f1 solid;
- border-radius: 10rpx;
- padding: 0 16rpx;
+ ::v-deep .u-alert__text--info--light {
+ margin-bottom: 0;
+ font-size: 32rpx !important;
+ padding-left: 10rpx;
+ color: #212121 !important;
+ font-weight: lighter;
+ }
+
+ ::v-deep .u-alert--info--light {
+ background-color: rgba(255, 255, 255, 0.7);
+ }
+
+ ::v-deep .u-steps-item__wrapper {
+ background-color: #eee;
+ }
+
+ ::v-deep .u-steps-item__line--column {
+ display: none;
+ }
+
+ ::v-deep .u-slide-right-enter-active {
+ width: 70%;
+ }
+
+ ::v-deep .uicon-calendar {
+ font-size: 36rpx !important;
+ }
+
+ ::v-deep .u-cell__title-text {
+ font-size: 28rpx;
+ color: #212121;
+ }
+
+ ::v-deep .u-cell__value {
+ font-size: 28rpx;
+ // color: transparent;
+ color: #212121;
}
- .ellipsis {
- text-overflow: ellipsis;
- overflow: hidden;
- white-space: nowrap;
+ ::v-deep .u-cell__label {
+ margin-top: 0;
+ line-height: 12px;
}
- .scanImg2 {
- width: 70px;
- height: 70px;
- border-radius: 50%;
- margin: auto;
- background: url('@/static/img/scan.png') no-repeat;
- box-shadow: #436df5 0px 0px 20px;
- background-size: 100% 100%;
+ ::v-deep .uicon-arrow-right {
+ font-size: 14px !important;
+ color: #212121 !important;
}
- ::v-deep .addClass .uicon-plus-circle {
- font-size: 50rpx !important;
- margin-right: 20rpx !important;
+ ::v-deep .u-line-progress__text {
+ // margin-right: -20px;
+ // color: #212121;
+ // width: 100px;
+ // margin-top: 10px;
+ display: none;
+
}
- ::v-deep .addClass .u-button__text {
- font-size: 46rpx !important;
+ ::v-deep .u-text__value--content {
+ font-size: 12px !important;
}
-
- ::v-deep .u-modal__content {
- padding-bottom: 260rpx;
- margin-bottom: 100rpx;
+ ::v-deep .u-tag__close {
+ background: #436df5 !important;
}
- ::v-deep .u-action-sheet {
- max-height: 600rpx !important;
- overflow: auto !important;
- }
-
- ::v-deep .u-checkbox-label--right {
- padding: 30rpx;
- border-bottom: 1rpx solid #eee;
- }
-
-
-
- .badSheetClass {
- position: relative;
- }
-
- .badNumber {
- position: absolute;
- top: 20rpx;
- left: 20rpx;
- font-size: 26rpx;
- color: rgb(0, 102, 255)
- }
-
- .trash {
- position: absolute;
- top: 20rpx;
- right: 30rpx;
- font-size: 26rpx;
+ ::v-deep .u-cell__body {
+ padding-bottom: 40rpx;
}
</style>
\ No newline at end of file
diff --git a/pages/scgl/scbg2.vue b/pages/scgl/scbg2.vue
new file mode 100644
index 0000000..1390a91
--- /dev/null
+++ b/pages/scgl/scbg2.vue
@@ -0,0 +1,927 @@
+<template>
+ <view>
+ <page-nav title="鐢熶骇鎶ュ伐"></page-nav>
+
+
+ <view v-show="topContent.length===0">
+ <div class="sacnBody">
+ <div class="scanImg" @click="topScanClick"></div>
+ <div class="scanText">璇锋壂鎻忎换鍔℃潯鐮�</div>
+ </div>
+ </view>
+
+ <view v-show="topContent.length!==0">
+ <view class="mainContent" :style="{maxHeight:'1260rpx',overflow: 'scroll'}">
+
+ <!-- 鎶ュ伐淇℃伅 -->
+ <u-gap height="5" bgColor="#eff0f1"></u-gap>
+ <view class="head" style="padding-bottom: 10rpx;">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title">
+ 鎶ュ伐淇℃伅
+ </view>
+ </view>
+
+ </view>
+ <view class="marginTop20 marginLeft20 marginRight20 flex_between">
+ <u-radio-group class="flex_column">
+
+ <view class="marginBottom20 " v-for="(item,index) in topContent" :key="item.wo_code">
+
+ <view class="flex_between">
+ <view style="display: flex;">
+ <view class="flex_column titleFont">
+ <view>宸ュ崟缂栧彿锛�</view>
+ <view>浜у搧缂栫爜锛�</view>
+ <view>浜у搧鍚嶇О锛�</view>
+ <view>浜у搧瑙勬牸锛�</view>
+ <view>褰撳墠宸ュ簭锛�</view>
+ <view>浠诲姟鏁伴噺锛�</view>
+ <view>鏈姤/宸叉姤锛�</view>
+ <view>涓嬮亾宸ュ簭锛�</view>
+ </view>
+ <view class="flex_column contentFont">
+ <view>{{item.wo_code}}</view>
+ <view>{{item.partnumber}}</view>
+ <view>{{item.partname}}</view>
+ <view>{{item.partspec.toString().length===0?'/':item.partspec}}</view>
+ <view>{{item.stepname}}</view>
+ <view>{{item.planqty}}</view>
+ <view>{{item.noreportqty}}/{{item.reportqty}}</view>
+ <view>{{item.nextstepname?item.nextstepname:'/'}}</view>
+ </view>
+ </view>
+
+
+ </view>
+
+ </view>
+
+ </u-radio-group>
+ </view>
+ </view>
+
+ <!-- 鎶ュ伐鎿嶄綔 -->
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head marginLeft10 marginRight10" style="padding-bottom: 20rpx;">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title">
+ 鎶ュ伐鎿嶄綔
+ </view>
+ </view>
+
+ </view>
+ <view class="flex_column">
+
+ <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
+ <view style="display: flex;" class="titleFont">
+ <view style="color: red;margin-right: 6rpx;">*</view> 璁′欢鏂瑰紡锛�
+ </view>
+ <u-radio-group v-model="reckway" @change='radioGroupChange'>
+ <u-radio shape="circle" label="鐝粍" name="鐝粍" labelSize="16"></u-radio>
+ <u-radio shape="circle" label="涓汉" style="margin-left: 20rpx;" name="涓汉" labelSize="16">
+ </u-radio>
+ </u-radio-group>
+ </view>
+
+
+ <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;"
+ v-if="reckway==='鐝粍'">
+ <view style="display: flex;" class="titleFont">
+ <view style="color: red;margin-right: 6rpx;">*</view> 鐢熶骇鐝粍锛�
+ </view>
+ <view @click='userGroupSheetClick' class="custominputClass">
+ <view v-show='userGroupSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+ <view v-show='userGroupSheetValue!==""' class="ellipsis" style="width: 390rpx;">
+ {{userGroupSheetValue}}
+ </view>
+ <u-icon :name="!userGroupSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+ </view>
+
+
+ <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
+ <!-- v-if="reckway==='涓汉'" -->
+ <view style="display: flex;" class="titleFont">
+ <view style="color: red;margin-right: 6rpx;">*</view> 鎶ュ伐浜哄憳锛�
+ </view>
+ <view @click='operSheetClick' class="custominputClass">
+ <view v-show='operSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+ <view v-show='operSheetValue!==""' class="ellipsis" style="width: 390rpx;">
+ {{operSheetValue}}
+ </view>
+
+ <u-icon :name="!operSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+ </view>
+
+
+ <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
+ <view style="display: flex;" class="titleFont">
+ <view style="color: #fff;margin-right: 6rpx;">*</view> 璁惧鍚嶇О锛�
+ </view>
+ <view @click='epqSheetClick' class="custominputClass">
+
+ <view v-show='eqpSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+ <view v-show='eqpSheetValue!==""' class="ellipsis" style="width: 390rpx;">
+ {{eqpSheetValue}}
+ </view>
+
+ <u-icon :name="!eqpSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+ </view>
+
+
+ <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
+ <view style="color: red;margin-right: 6rpx;">*</view> 鎶ュ伐鏁伴噺锛�
+ <view class='inputClass'>
+ <u--input placeholder="璇疯緭鍏�" :adjustPosition='false' border="surround" type='number'
+ v-model="reportqty">
+ </u--input>
+ </view>
+ </view>
+
+ </view>
+ </view>
+
+
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+
+
+ <view class="head marginLeft10 marginRight10" style="padding-bottom: 20rpx;">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title">
+ 涓嶈壇缁熻
+ </view>
+ </view>
+
+ </view>
+ <view class="flex_column ">
+
+
+ <u-button type="primary" :plain="true" icon='plus-circle' text="娣诲姞"
+ style="width: 90%;margin: 20rpx auto;" @click="add"></u-button>
+
+
+ <view v-for='(item,index) in ngqtyArr' class="badSheetClass" :key="item.uid">
+
+ <view class="badNumber">{{index+1}}</view>
+ <u-icon name="trash" size="20" class="trash" v-if="ngqtyArr.length!==1"
+ @click="trashDelete(index)" color="rgb(0, 102, 255)"></u-icon>
+
+ <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
+ <view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鏁伴噺锛�
+ <view class='inputClass'>
+ <u--input placeholder="璇疯緭鍏�" border="surround" :adjustPosition='false' type='number'
+ v-model="item.ngqty"></u--input>
+ </view>
+
+ </view>
+ <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
+ <view style="display: flex;" class="titleFont">
+ <view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鍘熷洜锛�
+ </view>
+ <view @click='badSheetClick(item)' class="custominputClass">
+ <view v-show='item.badSheetValue.length===0' style="color: rgb(192, 196, 204);">璇烽�夋嫨
+ </view>
+ <view v-show='item.badSheetValue.length!==0' class="ellipsis"
+ style="width: 390rpx;">
+ {{item.badSheetValue}}
+ </view>
+ <u-icon :name="item.arrowDown?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+ </view>
+
+ <u-divider></u-divider>
+
+
+ </view>
+
+ </view>
+ </view>
+
+
+
+
+ </view>
+
+
+
+
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+
+
+
+
+ <u-button size="large" :loading="isDisabledSubmitButton" loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary"
+ @click="submit" text="鎶ュ伐">
+ </u-button>
+
+
+ <!-- 鐢熶骇鐝粍 -->
+ <u-picker v-if="topContent.length!==0" :show="userGroupSheetShow" :columns="userGroupColumns"
+ :itemHeight='55' :closeOnClickOverlay='true' @close='userGroupSheetShow=false'
+ @confirm='userGroupPickerConfirm' @cancel='userGroupSheetShow=false'>
+ </u-picker>
+
+ <!-- 璁惧鍚嶇О -->
+ <u-picker v-if="topContent.length!==0" :show="eqpSheetShow" :columns="eqpColumns" :itemHeight='55'
+ :closeOnClickOverlay='true' @close='eqpSheetShow=false' @confirm='eqpPickerConfirm'
+ @cancel='eqpSheetShow=false'>
+ </u-picker>
+
+
+
+ <!-- 涓嶈壇鍘熷洜 -->
+ <u-action-sheet v-if="topContent.length!==0" :actions="badSelectArr" :safeAreaInsetBottom='true'
+ :closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSelectClose" :show="badSheetShow"
+ @select='badSheetSelect'>
+ <view style="min-height: 100rpx;">
+ <u-checkbox-group @change="checkboxChange" size='20px' v-model="checkBoxValue" iconPlacement="right"
+ placement="column">
+ <view v-for="(item,index) in badSelectArr">
+ <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
+ :name='item.name' :label="item.name">
+ </u-checkbox>
+ </view>
+ </u-checkbox-group>
+ </view>
+ </u-action-sheet>
+
+
+ <!-- 鎶ュ伐浜哄憳 -->
+ <u-action-sheet v-if="topContent.length!==0" :actions="userSelectArrAll" :safeAreaInsetBottom='true'
+ :closeOnClickOverlay="true" :closeOnClickAction="true" @close="userSheetShow=false"
+ :show="userSheetShow" @select='userSheetSelect'>
+ <view style="min-height: 100rpx;padding: 20rpx 20rpx 30rpx 20rpx;">
+ <u-checkbox-group @change="userCheckboxChange" size='20px' v-model="userCheckBoxValue"
+ iconPlacement="right" placement="column">
+ <view v-for="(item,index) in userSelectArrAll">
+ <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
+ :name='item.name' :label="item.name">
+ </u-checkbox>
+ </view>
+ </u-checkbox-group>
+ </view>
+ </u-action-sheet>
+
+ <!-- 鎶ュ伐浜哄憳 -->
+ <u-picker v-if="topContent.length!==0" :show="operSheetShow" :columns="operColumns" :itemHeight='55'
+ :closeOnClickOverlay='true' @close='operSheetShow=false' @confirm='operPickerConfirm'
+ @cancel='operSheetShow=false'>
+ </u-picker>
+
+
+
+
+
+ </view>
+
+
+ <!-- <view v-show="topContent.length!==0" style="position: absolute; bottom: 210rpx;right: 20rpx;">
+ <div class="scanImg2" @click="topScanClick"></div>
+ </div>
+ </view> -->
+
+ <!-- 鎮诞鐞� -->
+ <!-- <view
+ v-show="topContent.length!==0&&!userGroupSheetShow&&!eqpSheetShow&&!operSheetShow&&!badSheetShow"
+ @click="topScanClick">
+ <drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
+ </view> -->
+
+ <!-- <scan-code></scan-code> -->
+ </view>
+</template>
+
+
+<script>
+ import {
+ MesOrderStepStart,
+ PersonPermissions,
+ EqpPermissionsPlus,
+ GroupsPermissions,
+ GroupsPersonPermissions,
+ DefectPermissions,
+ SavaMesOrderStepReport,
+ LabelBarCode
+ } from '../../config/api.js';
+ // import scanCode from '@/components/scan-code/scan-code.vue'
+ export default {
+ // components: {
+ // scanCode
+ // },
+ onLoad(option) {
+ if (option.orderstep) {
+ this.fromType = '1'
+ this.getMesOrderStepStart(option.orderstep)
+ } else {
+ this.fromType = '2'
+ }
+
+ // const _this = this
+ // uni.$off('scancodedate') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+ // uni.$on('scancodedate', function(content) {
+ // console.log("鎵弿鍒扮殑鍐呭涓�:", content)
+ // // _this.getMesOrderStepStart(content)
+
+ // if (_this.topContent.find(i => i.wo_code + ';' + i.stepcode === content)) {
+ // _this.$u.toast('姝ゆ潯鐮佸凡鎵弿锛屽凡鍦ㄥ垪琛ㄤ腑锛�')
+ // } else {
+ // _this.getMesOrderStepStart(content)
+ // }
+ // })
+ },
+
+ onPullDownRefresh() {
+ setTimeout(() => {
+ this.init(() => {
+ uni.stopPullDownRefresh();
+ })
+ }, 1000);
+ },
+
+ data() {
+ return {
+ topRightMessageCount: 0,
+ isDisabledSubmitButton: false,
+
+ formData: {},
+
+ reckway: '涓汉', //璁′欢鏂瑰紡 group浠h〃鏄彮缁� person 浠h〃鏄釜浜�
+ userGroupSheetValue: '', //鐢熶骇鐝粍涓嬫媺閫変腑鐨勫��
+ eqpSheetValue: '', //璁惧鍚嶇О涓嬫媺閫変腑鐨勫��
+ userGroupSheetList: [], //鐢熶骇鐝粍涓嬫媺鏁扮粍
+ eqpSheetList: [], //璁惧鍚嶇О涓嬫媺鏁扮粍
+ userGroupSheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
+ eqpSheetShow: false,
+ topContent: [
+ // {
+ // nextstepcode: "GX005",
+ // nextstepname: "鍏ュ簱",
+ // noputqty: 0,
+ // noreportqty: 100,
+ // partname: "8504鍏夋満",
+ // partnumber: "302",
+ // partspec: "/",
+ // planqty: 100,
+ // reportqty: 0,
+ // seq: "1",
+ // startqty: 100,
+ // stepcode: "GX001",
+ // stepdesc: "",
+ // stepname: "棰嗘枡",
+ // wo_code: "MO-2022-11-0035_1",
+ // },
+ ],
+
+ reportqty: '', //鎶ュ伐鏁伴噺
+
+ ngqty: '', //涓嶈壇鏁伴噺
+
+ ngqtyArr: [{
+ uid: new Date().getTime(),
+ ngqty: '',
+ badSheetValue: '',
+ arrowDown: true //鍚戜笅绠ご
+ },
+ // {
+ // ngqty: '',
+ // badSheetValue: '',
+ // arrowDown: true //鍚戜笅绠ご
+ // },
+ ], //涓嶈壇鏁伴噺銆佷笉鑹師鍥犳暟缁�
+
+
+
+
+ badSelectArr: [], //涓嶈壇鍘熷洜涓嬫媺鏁扮粍
+ badSheetValue: '', //涓嶈壇鍘熷洜閫変腑鍊�
+ badSheetShow: false,
+ checkBoxValue: [], //涓嶈壇鍘熷洜鏄剧ず鍊�
+ operSheetValue: '', //鎿嶄綔浜哄憳閫変腑鍊�
+ operSheetShow: false,
+ operSheetList: [], //鎿嶄綔浜哄憳鏁扮粍
+ userArr: [], //鎶ュ伐浜哄憳淇℃伅鏁扮粍
+
+
+ userSelectValue: '', //涓嬫媺閫夐」鍊�
+ userSelectArrAll: [], //鎵�鏈変汉鍛樹笅鎷夋暟缁�
+ userSelectArr: [
+ // {
+ // value: '1001',
+ // text: '灏忕編1'
+ // },
+ ], //浜哄憳涓嬫媺鏁扮粍
+ userGroupColumns: [], //
+ eqpColumns: [], //
+ operColumns: [], //
+ isAsyncChange: false,
+
+ userCheckBoxValue: [],
+ userSheetShow: false,
+
+ fromType: '1', //鏉ユ簮浜庡摢閲� 鏄〉闈�1杩樻槸2
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ this.init()
+
+ // this.getMesOrderStepStart('MO-2024-01-0004_1;102')
+
+ this.getSellectAllApi()
+ },
+ methods: {
+ init() {
+ uni.stopPullDownRefresh();
+ },
+ async getSellectAllApi() {
+ await this.getGroupsPermissions() //鑾峰彇鐢熶骇鐝粍
+ await this.getEqpPermissionsPlus() //鑾峰彇璁惧鍚嶇О
+ await this.getDefectPermissions() //鑾峰彇缂洪櫡涓嬫媺
+ await this.getPersonPermissions() //鑾峰彇鎿嶄綔浜哄憳
+ },
+
+
+ //鑾峰彇鐢熶骇鐝粍
+ async getGroupsPermissions(wkshopcode) {
+
+ const res = await GroupsPermissions()
+ if (res.code === '200') {
+ // 鏁扮粍瀵硅薄 鏇挎崲瀵硅薄閿悕
+ this.userGroupSheetList = res.data.map(({
+ usergroupcode,
+ usergroupname
+ }) => ({
+ code: usergroupcode,
+ name: usergroupname
+ }))
+
+ this.userGroupColumns = [this.userGroupSheetList.map(i => i.name)]
+ }
+ },
+ // 鑾峰彇璁惧鍚嶇О
+ async getEqpPermissionsPlus() {
+ const res = await EqpPermissionsPlus()
+ if (res.code === '200') {
+ this.eqpSheetList = res.data
+ this.eqpColumns = [this.eqpSheetList.map(i => i.name)]
+ }
+ },
+ // 鑾峰彇涓嶈壇鍘熷洜
+ async getDefectPermissions(orderstepqrcode) {
+ const res = await DefectPermissions()
+ if (res.code === '200') {
+ this.badSelectArr = res.data
+ }
+ },
+ // 鑾峰彇鎶ュ伐浜哄憳
+ async getPersonPermissions() {
+ const res = await PersonPermissions()
+ if (res.code === '200') {
+ // this.operSheetList = res.data
+ this.operSheetList = res.data.map(({
+ usercode,
+ username
+ }) => ({
+ code: usercode,
+ name: username
+ }))
+ this.operColumns = [this.operSheetList.map(i => i.name)]
+ this.userSelectArrAll = this.operSheetList
+ }
+ },
+ // 鏍规嵁鐢熶骇鐝粍鑾峰彇浜哄憳
+ async getGroupsPersonPermissions(groupcode) {
+
+ const res = await GroupsPersonPermissions({
+ groupcode
+ })
+ if (res.code === '200') {
+ this.userCheckBoxValue = []
+
+ if (res.data[0].usercode_list && res.data[0].usercode_list.length > 0) {
+ this.userSelectArrAll.forEach(i => {
+
+ if (res.data[0].usercode_list.split(',').includes(i.code)) {
+ this.userCheckBoxValue.push(i.name)
+ }
+
+ })
+
+ }
+
+ this.operSheetValue = this.userCheckBoxValue.join(',')
+
+
+ }
+ },
+
+
+
+ userSheetSelect() {
+
+ },
+ userCheckboxChange(val) {
+ this.userCheckBoxValue = val.join(',')
+ },
+
+ //鑾峰彇寮�宸ヤ俊鎭�
+ async getMesOrderStepStart(orderstepqrcode) {
+ const data = {
+ OperType: 'ZZ',
+ SelectType: '',
+ wocode: orderstepqrcode ? orderstepqrcode.split(';')[0] : '',
+ stepcode: orderstepqrcode ? orderstepqrcode.split(';')[1] : ''
+
+ }
+ const res = await MesOrderStepStart(this.global.formatData(data))
+ if (res.code === '200' && res.count === 1) {
+ this.formData = res.data
+ this.topContent.unshift(res.data)
+ } else if (res.code === '200' && res.count !== 1) {
+ this.$u.toast('姝ゅ伐搴忓凡鎶ュ伐锛�')
+ }
+
+ },
+ // 鎵爜浜嬩欢
+ topScanClick() {
+ let that = this;
+
+ uni.scanCode({
+ onlyFromCamera: true,
+ // scanType: ['barCode', 'qrCode'],
+ scanType: ['qrCode'],
+ success: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+
+ if (that.topContent.find(i => i.wo_code + ';' + i.stepcode === res.result)) {
+ that.$u.toast('姝ゆ潯鐮佸凡鎵弿锛屽凡鍦ㄥ垪琛ㄤ腑锛�')
+ } else {
+ that.getMesOrderStepStart(res.result)
+ }
+
+ },
+ complete: function(res) {
+
+ },
+ fail: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ }
+
+ });
+ },
+
+ async submit() {
+ // 涓嬪崍鍐欑敓浜ф姤宸ユ彁浜�
+
+ if (this.reckway === '鐝粍' && this.userGroupSheetValue === "") {
+ return uni.$u.toast('鐢熶骇鐝粍涓嶈兘涓虹┖锛�')
+ }
+ if (this.reckway === '涓汉' && this.operSheetValue === "") {
+ return uni.$u.toast('鎶ュ伐浜哄憳涓嶈兘涓虹┖锛�')
+ }
+ if (this.eqpSheetValue === "") {
+ return uni.$u.toast('璁惧鍚嶇О涓嶈兘涓虹┖锛�')
+ }
+ if (this.reportqty === "") {
+ return uni.$u.toast('鎶ュ伐鏁伴噺涓嶈兘涓虹┖锛�')
+ }
+
+ if (this.reckway === '鐝粍' && this.operSheetValue.length === 0) {
+ return uni.$u.toast('鎶ュ伐浜哄憳淇℃伅涓嶈兘涓虹┖锛�')
+ }
+
+ let badcode = []
+
+ if (this.badSheetValue.length > 0) {
+ this.badSelectArr.forEach(i => {
+ if (this.badSheetValue.split(',').includes(i.name)) {
+ badcode.push(i.code)
+ }
+ })
+ }
+
+ let reportuser = []
+
+ if (this.operSheetValue.length > 0) {
+ this.userSelectArrAll.forEach(i => {
+ if (this.operSheetValue.split(',').includes(i.name)) {
+ reportuser.push(i.code)
+ }
+ })
+ }
+
+ // 涓嶈壇鍘熷洜
+ const defectlist = []
+ //涓嶈壇鏁伴噺
+ let ngqtyNumber = 0
+
+ this.ngqtyArr.forEach(i => {
+ if (i.badSheetValue.toString().length > 0) {
+ let codeArr = []
+ ngqtyNumber += parseFloat(i.ngqty)
+ i.badSheetValue.split(',').forEach(j => {
+ codeArr.push(this.badSelectArr.find(i => i.name === j).code)
+ })
+ defectlist.push({
+ badqty: i.ngqty,
+ defect_code: codeArr.join(',')
+ })
+ }
+ })
+
+
+ if (parseFloat(this.reportqty) + parseFloat(ngqtyNumber) > parseFloat(this.topContent[0]
+ .noreportqty)) {
+ return uni.$u.toast('鎶ュ伐鏁伴噺鍔犱笉鑹暟閲忎笉鑳藉ぇ浜庢湭鎶ユ暟閲忥紒')
+ }
+
+
+
+
+ const D = {
+ rightcode: '0601',
+ partcode: this.topContent[0].partnumber,
+ qty: parseFloat(this.reportqty),
+ onelabqty: parseFloat(this.reportqty)
+ }
+ const {
+ data: R
+ } = await LabelBarCode(D)
+
+
+ const data = {
+ mesordercode: this.topContent[0].wo_code,
+ partcode: this.topContent[0].partnumber,
+ stepseq: this.topContent[0].seq,
+ stepcode: this.topContent[0].stepcode,
+ stepprice: this.topContent[0].stepprice,
+
+ eqpcode: this.eqpSheetList.find(i => i.name === this.eqpSheetValue).code,
+
+ reckway: this.reckway === '鐝粍' ? 'group' : 'person',
+
+ usergroupcode: this.userGroupSheetValue ? this.userGroupSheetList.find(i => i.name === this
+ .userGroupSheetValue).code : '', // 鐝粍缂栫爜
+ reportuser: this.reckway === '鐝粍' ? reportuser.join(',') : this.userSelectArrAll.find(i => i
+ .name === this.operSheetValue).code,
+ taskqty: this.topContent[0].planqty,
+ startqty: parseFloat(this.reportqty),
+ reportqty: parseFloat(this.reportqty),
+ inbarcode: R[0].labcode, //鍏ュ簱鏉$爜
+ defectlist,
+ // defectlist: badcode.length > 0 ? [{
+ // defect_code: badcode.join(','),
+ // badqty: this.ngqty
+ // }] : [],
+ remarks: ''
+ }
+
+ // console.log(JSON.parse(JSON.stringify(data)), 7777)
+ this.isDisabledSubmitButton = true
+ const res = await SavaMesOrderStepReport(data)
+ if (res.code === '200') {
+ uni.$u.toast('鎶ュ伐鎴愬姛锛�')
+ this.topContent = []
+ this.formData = {}
+ this.reportqty = ''
+ // this.ngqty = ''
+ this.reckway = '涓汉'
+ this.userGroupSheetValue = ''
+ this.eqpSheetValue = ''
+
+
+ this.ngqtyArr = [{
+ uid: new Date().getTime(),
+ ngqty: '',
+ badSheetValue: '',
+ arrowDown: true //鍚戜笅绠ご
+ }]
+
+ // this.userGroupSheetList = []
+ // this.eqpSheetList = []
+ // this.badSelectArr = []
+ this.badSheetValue = []
+ this.checkBoxValue = []
+ this.operSheetValue = ''
+ // this.operSheetList = []
+ // this.userArr = []
+ this.userSelectValue = ''
+ // this.userSelectArrAll = []
+ // this.userSelectArr = []
+ // this.userGroupColumns = []
+ // this.eqpColumns = []
+ // this.operColumns = []
+
+ this.userCheckBoxValue = []
+ this.userSheetShow = false
+
+
+ if (this.fromType === '1') {
+ let pages = getCurrentPages(); // 椤甸潰闆嗗悎
+ let beforePage = pages[pages.length - 2]; //涓婁竴涓〉闈�
+ beforePage.$vm.getProductionScheduleKanban()
+
+ uni.navigateBack()
+ }
+
+
+ this.isDisabledSubmitButton = false
+ }
+
+
+
+
+
+ },
+ userGroupSheetSelect(val) {
+ this.userGroupSheetValue = val.name
+ this.userGroupSheetShow = false
+ },
+ userGroupSheetClick() {
+ this.userGroupSheetShow = true
+ },
+ eqpSheetSelect(val) {
+ this.eqpSheetValue = val.name
+ this.eqpSheetShow = false
+ },
+ epqSheetClick() {
+ this.eqpSheetShow = true
+ },
+ badSheetSelect(val) {
+ // console.log(val,9999999)
+ },
+ badSheetClick(item) {
+ if (!item.ngqty) {
+ return uni.$u.toast('璇峰厛濉啓涓嶈壇鏁伴噺锛�')
+ }
+ item.arrowDown = !item.arrowDown
+
+ this.checkBoxValue = item.badSheetValue.split(',')
+ this.badSheetShow = true
+ },
+
+ badSelectClose() {
+ let index = this.ngqtyArr.findIndex(i => !i.arrowDown)
+
+ this.ngqtyArr[index].badSheetValue = this.checkBoxValue.join(',')
+ this.ngqtyArr[index].arrowDown = true
+
+ this.checkBoxValue = []
+ this.badSheetShow = false
+ },
+
+ checkboxChange(val) {
+ this.badSheetValue = val.join(',')
+ },
+ operSheetClick() {
+ if (this.reckway === '涓汉') {
+ this.operSheetShow = true
+ }
+
+ if (this.reckway === '鐝粍') {
+ this.userSheetShow = true
+ }
+ },
+ //鍗曢�夋鍊兼敼鍙樻椂
+ radioGroupChange(val) {
+ this.userGroupSheetValue = ''
+ this.operSheetValue = ''
+ },
+
+ // 娣诲姞
+ add() {
+
+ if (this.ngqtyArr.find(i => i.badSheetValue === '')) {
+ return uni.$u.toast('璇峰厛瀹屽杽鍓嶉潰涓嶈壇閫夐」锛�')
+ }
+
+ this.ngqtyArr.unshift({
+ uid: new Date().getTime(),
+ ngqty: '',
+ badSheetValue: '',
+ arrowDown: true //鍚戜笅绠ご
+ })
+
+ },
+
+ //鍒犻櫎
+ trashDelete(index) {
+ console.log(index)
+ this.ngqtyArr.splice(index, 1)
+
+ },
+
+
+ userChange(val) {
+ this.userSelectValue = val
+ },
+ userGroupPickerConfirm(val) {
+ console.log(val, 11)
+ this.getGroupsPersonPermissions(this.userGroupSheetList.find(i => i.name === val.value[0]).code)
+ this.userGroupSheetValue = val.value[0]
+ this.userGroupSheetShow = false
+ },
+ eqpPickerConfirm(val) {
+ this.eqpSheetValue = val.value[0]
+ this.eqpSheetShow = false
+ },
+ operPickerConfirm(val) {
+ this.operSheetValue = val.value[0]
+ this.operSheetShow = false
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import url('@/style/global.css');
+
+ ::v-deep .uicon-arrow-left>span {
+ display: block;
+ }
+
+ .custominputClass {
+ width: 412rpx;
+ display: flex;
+ justify-content: space-between;
+ border: 3rpx #eff0f1 solid;
+ border-radius: 10rpx;
+ padding: 0 16rpx;
+
+ }
+
+ .ellipsis {
+ text-overflow: ellipsis;
+ overflow: hidden;
+ white-space: nowrap;
+ }
+
+ .scanImg2 {
+ width: 70px;
+ height: 70px;
+ border-radius: 50%;
+ margin: auto;
+ background: url('@/static/img/scan.png') no-repeat;
+ box-shadow: #436df5 0px 0px 20px;
+ background-size: 100% 100%;
+ }
+
+ ::v-deep .addClass .uicon-plus-circle {
+ font-size: 50rpx !important;
+ margin-right: 20rpx !important;
+ }
+
+ ::v-deep .addClass .u-button__text {
+ font-size: 46rpx !important;
+ }
+
+
+ ::v-deep .u-modal__content {
+ padding-bottom: 260rpx;
+ margin-bottom: 100rpx;
+ }
+
+ ::v-deep .u-action-sheet {
+ max-height: 600rpx !important;
+ overflow: auto !important;
+ }
+
+ ::v-deep .u-checkbox-label--right {
+ padding: 30rpx;
+ border-bottom: 1rpx solid #eee;
+ }
+
+
+
+ .badSheetClass {
+ position: relative;
+ }
+
+ .badNumber {
+ position: absolute;
+ top: 20rpx;
+ left: 20rpx;
+ font-size: 26rpx;
+ color: rgb(0, 102, 255)
+ }
+
+ .trash {
+ position: absolute;
+ top: 20rpx;
+ right: 30rpx;
+ font-size: 26rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/pages/wwgl/wxfl.vue b/pages/wwgl/wxfl.vue
index 81fae1e..cd367b7 100644
--- a/pages/wwgl/wxfl.vue
+++ b/pages/wwgl/wxfl.vue
@@ -1,163 +1,225 @@
<template>
<view>
- <page-nav title="濮斿鍙戞枡"></page-nav>
+ <page-nav title="澶栧崗鍙戞枡"></page-nav>
- <view v-show="topContent.length===0">
- <div class="sacnBody">
- <div class="scanImg" @click="topScanClick"></div>
- <div class="scanText">鎵弿浠诲姟鏉$爜</div>
- </div>
+ <view class="flex_center" style="margin: 20rpx;">
+
+ <!-- #ifdef H5 -->
+ <u--input prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" :placeholder="placeholder"
+ style="width:100%;background-color: #fff;border-radius: 40rpx;" border="surround" suffixIcon="scan"
+ suffixIconStyle="color: #909399;font-size: 22px;" v-model="inputBoxValue"
+ @change="confirmInputBoxValue">
+ <template slot="suffix">
+ <u-icon name="scan" color="#909399" size="24" @click="scanClick"></u-icon>
+ </template>
+ </u--input>
+ <!-- #endif -->
+
+ <!-- #ifdef APP-PLUS -->
+ <u-input prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" :placeholder="placeholder"
+ style="width:100%;background-color: #fff;border-radius: 40rpx;" border="surround" suffixIcon="scan"
+ suffixIconStyle="color: #909399;font-size: 22px;" v-model="inputBoxValue"
+ @change="confirmInputBoxValue">
+ <template slot="suffix">
+ <u-icon name="scan" color="#909399" size="24" @click="scanClick"></u-icon>
+ </template>
+ </u-input>
+ <!-- #endif -->
+
+ <view class="flex_center marginLeft20" @click="popupShow=true">
+ <u--text size='16' color='#909399' text="绛涢��"></u--text>
+ <u--image :showLoading="true" src="../../static/img/sift.png" width="20px" height="20px"></u--image>
+ </view>
</view>
- <view v-show="topContent.length!==0" class="mainContent">
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
- <view class="head">
- <view class="head_block">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title" style="font-weight: bolder;">
- 鍙戞枡淇℃伅
+
+ <u-alert :title="alertTitle" type="info"></u-alert>
+
+
+ <!-- 鎶樺彔闈㈡澘 -->
+ <!-- <u-collapse @change="change" @close="close" @open="open"> -->
+ <!-- @change="collapseChange" -->
+ <u-collapse style="max-height: 590px;overflow: auto;">
+ <!-- :value='parseFloat(item.ordergoodqty)+"/"+parseFloat(item.orderqty)' -->
+ <u-collapse-item style="position: relative;" :title="item.ordercode" :name='item.ordercode'
+ :value='parseFloat(item.ordergoodqty)+"/"+parseFloat(item.orderqty)'
+ :label="item.children.length===0?'鏈淳鍙�':''" :disabled='item.children.length===0'
+ v-for="item in collapseArr" :key="item.ordercode">
+
+
+ <view style="position: absolute;width: 200rpx;left: 30rpx;top:34px;font-size: 24rpx;color: #999;">
+ {{item.partname}} {{item.partspec}}
+ </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)">
+ <!-- {{item.partname}}{{item.partspec}} -->
+ <u-line-progress :percentage="parseFloat((item.ordergoodqty*100/item.orderqty).toFixed(2))"
+ inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress>
+ </view>
+
+ <!-- <view style="position: absolute;width: 100px;right: 33px; top:13px; ">
+ <view class="" style="display: flex;justify-content: flex-end;">
+ <view style="color: #0659ff;">
+ {{parseFloat(item.ordergoodqty)}}
+ </view>
+ <view>
+ /{{ parseFloat(item.orderqty)}}
</view>
</view>
</view>
+ -->
- <view class="marginLeft20 marginRight20" style="height: 360rpx;" v-if="topContent.length!==0">
- <view class="marginBottom20" style="display: flex;">
- <!-- v-for="item in purchorderArr" -->
- <view class="flex_column titleFont">
- <view>宸ュ崟缂栧彿锛�</view>
- <view>浜у搧缂栫爜锛�</view>
- <view>浜у搧鍚嶇О锛�</view>
- <view>浜у搧瑙勬牸锛�</view>
- <view>褰撳墠宸ュ簭锛�</view>
- <view>浠诲姟鏁伴噺锛�</view>
- <view>鏈彂/宸插彂锛�</view>
+
+ <view v-if="radiovalue==='鐢熶骇宸ュ崟'" style="margin:0 0 5px">
+ <view class="flex_column">
+ <view style="display:flex">
+ <view class="titleFont" style="font-size: 14px;">浜у搧缂栫爜锛�</view>
+ <view class="contentFont" style="font-size: 14px;">{{item.partcode}}</view>
</view>
- <view class="flex_column contentFont">
- <view>{{topContent[0].wo_code}}</view>
- <view>{{topContent[0].partnumber}}</view>
- <view>{{topContent[0].partname}}</view>
- <view>{{topContent[0].partspec?topContent[0].partspec:'/'}}</view>
- <view>{{topContent[0].stepname}}</view>
- <view>{{topContent[0].planqty}}</view>
- <view>{{topContent[0].startqty+'/'+topContent[0].reportqty}}</view>
+ <view style="display:flex">
+ <view class="titleFont" style="font-size: 14px;">浜у搧鍚嶇О锛�</view>
+ <view class="contentFont" style="font-size: 14px;">{{item.partname}}</view>
</view>
- </view>
- </view>
-
- </view>
-
-
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
- <view class="head">
- <view class="head_block" style="justify-content: flex-start;height: 70rpx;padding-bottom: 10rpx;">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title" style="font-weight: bolder;">
- 澶栧崗渚涙柟
- </view>
- </view>
- <view style="margin-left: 20rpx;">
- <view @click='WXSheetClick' class="custominputClass">
- <view v-show='WXSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
- <view v-show='WXSheetValue!==""' class="ellipsis" style="width: 390rpx;">
- {{WXSheetValue}}
+ <view style="display:flex">
+ <view class="titleFont" style="font-size: 14px;">浜у搧瑙勬牸锛�</view>
+ <view class="contentFont" style="font-size: 14px;">{{item.partspec?item.partspec:'/'}}
</view>
- <u-icon :name="!WXSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
</view>
-
</view>
</view>
- </view>
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
- <view class="head">
- <view class="head_block" style="justify-content: flex-start;height: 70rpx;padding-bottom: 10rpx;">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title" style="font-weight: bolder;">
- 澶栧崗浜哄憳
+ <!-- {{item.children}} -->
+ <!-- <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;">
+
+ <u-steps-item :title="it.code+'/'+it.name+it.spec"></u-steps-item>
+ <view class="" style="width: 100px;">
+ <u-line-progress :percentage="parseFloat((it.goodqty*100/it.planqty).toFixed(2))"
+ inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress>
</view>
- </view>
- <view style="margin-left: 20rpx;">
- <view @click='userSheetClick' class="custominputClass">
- <view v-show='userSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
- <view v-show='userSheetValue!==""' class="ellipsis" style="width: 390rpx;">
- {{userSheetValue}}
+ <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>
+ /{{ parseFloat(it.planqty)}}
+ </view>
</view>
- <u-icon :name="!userSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
</view>
+ </view>
+ </u-steps>
+ <!-- </u--text> -->
+
+
+ </u-collapse-item>
+
+ </u-collapse>
+
+
+ <!-- 寮瑰嚭灞� -->
+ <!-- closeIconPos='top-left' closeOnClickOverlay closeable='true' -->
+ <u-popup :show="popupShow" mode="right" @close="popupClose" @open="popupOpen">
+ <view style="margin: 120px 10px 20px;" class="flex_column">
+
+ <!-- <view style="display: flex;">
+ <view>
+ 鍗曟嵁绫诲瀷锛�
+ </view>
+
+ <u-radio-group v-model="radiovalue" placement="column" @change="groupChange"
+ style="margin-top: 4px;">
+ <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in radiolist"
+ :key="index+item.name" :label="item.name" iconSize='16' labelSize='16' :name="item.name">
+
+ </u-radio>
+ </u-radio-group>
+ </view> -->
+
+ <view style="margin-top: 20px;display: flex;align-items: center;">
+
+ <view class="">
+ 浜у搧淇℃伅锛�
+ </view>
+ <view class="">
+ <u-button :hairline="true" shape="circle" icon="map" :plain="true"
+ style="width: 100px;height: 26px;" type="primary" text="閫夋嫨浜у搧" @click="chosePart"></u-button>
+ </view>
+
+ </view>
+
+ <view style="display: flex;flex-wrap: wrap;">
+ <u-tag style="width:220rpx;" :text="item.name" v-for="item in tagArr" :key="item.code"
+ :closable="true" :show="item.close" @close="tagClose(item)"></u-tag>
+ </view>
+
+
+
+ <!-- <view class="head" style="margin-top: 10px;">
+ <view class="head_block" style="height: 80rpx; display: flex;justify-content: space-around;">
+ <u-button :plain='today' style="width: 70px;height: 25px;" @click="dateChange('today')"
+ type="primary" shape="circle" text="浠婃棩">
+ </u-button>
+ <u-button :plain='month' style="width: 70px;height: 25px;" @click="dateChange('month')"
+ type="primary" shape="circle" text="鏈湀">
+ </u-button>
+ <u-button :plain='custom' style="width: 70px;height: 25px;" @click="dateChange('custom')"
+ type="primary" shape="circle" text="鑷畾涔�"></u-button>
</view>
</view>
- </view>
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
- <view class="head">
- <view class="head_block" style="justify-content: flex-start;height: 70rpx;padding-bottom: 10rpx;">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title" style="font-weight: bolder;">
- 鍙戞枡鏁伴噺
- </view>
+ <view v-if="!custom" class="flex_column"
+ style="display: flex;justify-content: space-around;width: 100%;">
+ <view class="" style="display: flex;justify-content: space-evenly;width: 100%;">
+ <view class="titleFont">寮�濮嬫棩鏈�</view>
+ <view class="titleFont">~</view>
+ <view class="titleFont">缁撴潫鏃ユ湡</view>
</view>
- <view style="margin-left: 20rpx;">
- <view class='inputClass'>
- <u--input placeholder="璇疯緭鍏�" border="surround" type='number' v-model="fqty">
- </u--input>
- </view>
- </view>
- </view>
+ <u-button type="info" icon='calendar' iconColor="#0659FF" size="" @click="calendarClick"
+ :text="calendarRange">
+ </u-button>
+ </view> -->
+
+ <!-- <uni-calendar ref="calendar" :range='true' :insert="false" @confirm="calendarConfirm" /> -->
+
</view>
+ </u-popup>
-
-
- <u-picker v-if="topContent.length!==0" :show="WXSheetShow" :columns="WXColumns" :itemHeight='55'
- :closeOnClickOverlay='true' @close='WXSheetShow=false' @confirm='WXPickerConfirm'
- @cancel='WXSheetShow=false'>
- </u-picker>
-
-
- <u-picker v-if="topContent.length!==0" :show="userSheetShow" :columns="userColumns" :itemHeight='55'
- :closeOnClickOverlay='true' @close='userSheetShow=false' @confirm='userPickerConfirm'
- @cancel='userSheetShow=false'>
- </u-picker>
-
-
- </view>
-
- <u-button size="large" v-show="topContent.length!==0" :loading="isDisabledSubmitButton"
- loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary" @click="submit" text="鍙戞枡">
- </u-button>
-
-
- <!-- 鎮诞鐞� -->
- <!-- <view v-show="topContent.length!==0&&!WXSheetShow&&!userSheetShow" @click="topScanClick">
- <drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
- </view> -->
<!-- <scan-code></scan-code> -->
+ <!-- 鎮诞鐞� -->
+ <view @click="scan2">
+ <drag-ball :x='300' :y="600"></drag-ball>
+ </view>
</view>
</template>
<script>
import {
- MesOrderStepStart,
- CustomerPermissions,
- PersonPermissions,
- SavaMesOrderStepOut
+ ProductionScheduleKanban
} from '../../config/api.js';
- // import scanCode from '@/components/scan-code/scan-code.vue'
-
export default {
onLoad(option) {
+ const _this = this
+ uni.$off('scancodedate') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+ uni.$on('scancodedate', function(content) {
+ console.log("鎵弿鍒扮殑鍐呭涓�:", content)
+ _this.getCheckScanDeviceQrCodeData(content)
+ })
+
+ console.log(option, 8)
},
onPullDownRefresh() {
@@ -171,45 +233,60 @@
data() {
return {
topRightMessageCount: '',
+ inputBoxValue: '',
+ alertTitle: '',
+ popupShow: false, //寮瑰嚭灞傛槸鍚︽樉绀�
+ collapseArr: [ //鎶樺彔闈㈡澘鏁版嵁
+ ],
+ collapseArrAll: [], //鎵�鏈�
+ placeholder: '璇疯緭鍏ュ伐鍗曚俊鎭�',
+ radiovalue: '鐢熶骇宸ュ崟', //鍗曟嵁绫诲瀷
+ // SO锛氶攢鍞鍗� MO锛氱敓浜ц鍗� PO锛氱敓浜у伐鍗�
+ radiolist: [{
+ name: '閿�鍞鍗�'
+ },
+ {
+ name: '鐢熶骇璁㈠崟'
+ },
+ {
+ name: '鐢熶骇宸ュ崟'
+ },
+ ],
- isDisabledSubmitButton: false,
+ today: true,
+ month: false,
+ custom: true,
- topContent: [],
- // {
- // "wo_code": "MO-2023-06-0003_1",
- // "partnumber": "308",
- // "partname": "鐢垫睜鍖�",
- // "partspec": "",
- // "seq": "2",
- // "stepcode": "ZSStep03",
- // "stepname": "鍘绘瘺鍒�",
- // "nextstepcode": "ZSStep06",
- // "nextstepname": "鍖呰2",
- // "stepdesc": "",
- // "wkshopcode": "ZS001",
- // "wkshopname": "娉ㄥ杞﹂棿",
- // "planqty": 50.00,
- // "startqty": 29.00,
- // "noreportqty": 29.00,
- // "reportqty": 21.00,
- // "noputqty": 0.0,
- // "list": null
- // }, //鎵弿浠诲姟鏉$爜鎵�甯﹀嚭鏉ョ殑鍐呭
-
- WXSheetValue: '',
- WXSheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
- WXColumns: [],
- WXSheetList: [],
+ // calendarRange: new Date().toISOString().slice(0, 10) + '~' + new Date().toISOString().slice(0,
+ // 10), //绯荤粺褰撳墠鏃ユ湡
+ calendarRange: new Date().getFullYear() + '-' + (new Date().getMonth() + 1).toString().padStart(
+ 2, '0') + '-01' + '~' + new Date().toISOString().slice(0, 10), //褰撴湀鏃ユ湡
- userSheetValue: '',
- userSheetShow: false,
- userColumns: [],
- userSheetList: [],
- fqty: null,
-
-
+ tagArr: [
+ // {
+ // close: true,
+ // name: '鐢垫睜鍖�',
+ // code: '1002'
+ // }, {
+ // close: true,
+ // name: '鐢佃剳',
+ // code: '1003'
+ // }, {
+ // close: true,
+ // name: '8054鍏夋満',
+ // code: '1004'
+ // }, {
+ // close: true,
+ // name: 'G71674鍐查攱鏋�',
+ // code: '1005'
+ // }, {
+ // close: true,
+ // name: '8051鍏夋満',
+ // code: '1006'
+ // },
+ ], //宸查�変腑鐨勪骇鍝佹爣绛�
}
@@ -220,67 +297,28 @@
mounted() {
this.init()
-
- // this.getMesOrderStepStart('MO-2023-09-0002_1;106')
-
- this.handleSelectAllApi()
-
-
+ this.getProductionScheduleKanban()
},
methods: {
init() {
uni.stopPullDownRefresh();
},
+ gotoPage(p1, p2) {
+ let orderstep = null
- async handleSelectAllApi() {
- await this.getCustomerPermissions()
- await this.getPersonPermissions()
- },
-
-
- async getPersonPermissions(val) {
- const data = {
- usercode: val
- }
- const res = await PersonPermissions(this.global.formatData(data))
- this.userSheetList = res.data
- this.userColumns = [res.data.map(i => i.username)]
- },
-
- async getCustomerPermissions(val) {
- const data = {
- orderstepqrcode: val
- }
- const res = await CustomerPermissions(this.global.formatData(data))
- this.WXSheetList = res.data
- this.WXColumns = [res.data.map(i => i.name)]
- },
-
- async getMesOrderStepStart(val) {
- const data = {
- OperType: 'WX',
- SelectType: 'OUT',
- wocode: val ? val.split(';')[0] : '',
- stepcode: val ? val.split(';')[1] : ''
- }
-
- const res = await MesOrderStepStart(this.global.formatData(data))
- console.log(res, 3)
-
- if (res.code === '200') {
- this.WXSheetValue = ''
- this.userSheetValue = ''
- this.fqty = null
- this.topContent = []
- this.topContent.push(res.data)
+ if (p1) {
+ orderstep = p1 + ';' + p2
+ } else {
+ orderstep = ''
}
-
+ uni.navigateTo({
+ url: './wxfl2?orderstep=' + orderstep
+ })
},
- // 浠诲姟鏉$爜 鐨勬壂鐮佹鐐瑰嚮
- topScanClick() {
+ scan2() {
let that = this;
uni.scanCode({
@@ -290,8 +328,11 @@
success: function(res) {
console.log('鏉$爜绫诲瀷锛�' + res.scanType);
console.log('鏉$爜鍐呭锛�' + res.result);
+ // that.scanContent = res.result;
- that.getMesOrderStepStart(res.result)
+ uni.navigateTo({
+ url: './wxfl2?orderstep=' + res.result
+ })
},
complete: function(res) {
@@ -305,108 +346,215 @@
});
},
-
- WXSheetClick() {
- this.WXSheetShow = true
+ getCheckboxValue(val) {
+ this.tagArr = []
+ val.forEach(i => {
+ this.tagArr.push({
+ close: true,
+ name: i.split('/')[1].trim(),
+ code: i.split('/')[0].trim()
+ })
+ })
},
- WXPickerConfirm(val) {
- this.WXSheetValue = val.value[0]
- this.WXSheetShow = false
- },
-
- userSheetClick() {
- this.userSheetShow = true
- },
-
- userPickerConfirm(val) {
- this.userSheetValue = val.value[0]
- this.userSheetShow = false
- },
-
-
- async submit() {
-
- if (!this.WXSheetValue) {
- return uni.$u.toast('澶栧崗渚涙柟涓嶈兘涓虹┖锛�')
+ // 鎺ュ彛鑾峰彇
+ async getProductionScheduleKanban() {
+ let ordertype = '' // SO锛氶攢鍞鍗� MO锛氱敓浜ц鍗� PO锛氱敓浜у伐鍗�
+ switch (this.radiovalue) {
+ case '鐢熶骇宸ュ崟':
+ this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
+ this.placeholder = '璇疯緭鍏ュ伐鍗曚俊鎭�'
+ ordertype = 'PO'
+ break
+ case '鐢熶骇璁㈠崟':
+ this.alertTitle = '鐢熶骇璁㈠崟鏁伴噺锛堝叡/涓級'
+ this.placeholder = '璇疯緭鍏ョ敓浜ц鍗曚俊鎭�'
+ ordertype = 'MO'
+ break
+ case '閿�鍞鍗�':
+ this.alertTitle = '閿�鍞鍗曟暟閲忥紙鍏�/涓級'
+ this.placeholder = '璇疯緭鍏ラ攢鍞鍗曚俊鎭�'
+ ordertype = 'SO'
+ break
}
- if (!this.userSheetValue) {
- return uni.$u.toast('澶栧崗浜哄憳涓嶈兘涓虹┖锛�')
- }
-
- if (!this.fqty) {
- return uni.$u.toast('鍙戞枡鏁伴噺涓嶈兘涓虹┖锛�')
- }
-
- if (parseFloat(this.fqty) > parseFloat(this.topContent[0].startqty)) {
- return uni.$u.toast('鍙戞枡鏁伴噺涓嶈兘澶т簬鏈彂鏁伴噺锛�')
- }
-
- // const header = {
- // 'Content-Type': 'application/x-www-form-urlencoded',
- // 'rediskey': uni.getStorageSync('rediskey'),
- // 'admin': uni.getStorageSync('usercode'),
- // 'username': encodeURIComponent(uni.getStorageSync('username')),
- // 'navTabId': uni.getStorageSync('usercode'),
- // 'userid': uni.getStorageSync('userid'),
- // 'guid': uni.getStorageSync('guid'),
- // 'usertype': 'APP'
- // }
const data = {
- mesordercode: this.topContent[0].wo_code, // 宸ュ崟缂栧彿
- partcode: this.topContent[0].partnumber, // 浜у搧缂栫爜
- stepseq: this.topContent[0].seq, // 宸ュ簭搴忓彿
- stepcode: this.topContent[0].stepcode, // 宸ュ簭缂栫爜
- wxcode: this.WXSheetList.find(i => i.name === this.WXSheetValue).code, // 澶栧崗渚涘簲鍟嗙紪鐮�
- outuser: this.userSheetList.find(i => i.username === this.userSheetValue).usercode, // 鍙戞枡浜哄憳
- taskqty: this.topContent[0].planqty, // 浠诲姟鏁伴噺
- fqty: this.fqty // 鍙戞枡鏁伴噺
+ ordertype,
+ partcode: this.tagArr.map(i => i.code).join(','),
+ Ratetime: this.calendarRange,
+
+ }
+ const {
+ data: res
+ } = await ProductionScheduleKanban(data)
+
+ this.collapseArr = res
+ this.collapseArrAll = res
+ this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[
+ 1]
+
+ },
+
+
+ //杈撳叆妗嗗洖杞︾‘璁や簨浠�
+ confirmInputBoxValue(val) {
+ this.collapseArr = this.collapseArrAll.filter((p) => {
+ return p.ordercode.indexOf(val) !== -1
+ })
+
+
+ switch (this.radiovalue) {
+ case '鐢熶骇宸ュ崟':
+ this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
+ break
+ case '鐢熶骇璁㈠崟':
+ this.alertTitle = '鐢熶骇璁㈠崟鏁伴噺锛堝叡/涓級'
+ break
+ case '閿�鍞鍗�':
+ this.alertTitle = '閿�鍞鍗曟暟閲忥紙鍏�/涓級'
+ break
+ }
+ this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[
+ 1]
+
+ },
+
+ // 鐐瑰嚮鎵爜
+ scanClick() {
+ this.topScanClick()
+ },
+
+ // 鎵爜妗嗙偣鍑�
+ topScanClick() {
+ let that = this;
+
+ uni.scanCode({
+ onlyFromCamera: true,
+ // scanType: ['barCode', 'qrCode'],
+ scanType: ['qrCode'],
+ success: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ that.scanContent = res.result;
+
+ that.getCheckScanDeviceQrCodeData(that.scanContent);
+ },
+ complete: function(res) {
+
+ },
+ fail: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ }
+
+ });
+ },
+
+ getCheckScanDeviceQrCodeData(code) {
+ this.inputBoxValue = code
+ this.confirmInputBoxValue(this.inputBoxValue)
+ },
+
+
+ // 寮瑰嚭灞傛敹璧�
+ popupClose() {
+ this.getProductionScheduleKanban()
+ this.popupShow = false
+ },
+
+ // 寮瑰嚭灞傚脊鍑�
+ popupOpen() {
+
+ },
+
+ // 閫夋嫨浜у搧
+ chosePart() {
+ let arr = []
+ this.tagArr.forEach(i => {
+ arr.push(i.code + '/' + i.name)
+ })
+ uni.navigateTo({
+ url: '../znfx/chda?param=' + JSON.stringify(arr)
+ });
+ },
+
+ // tag鏍囩鍏抽棴
+ tagClose(val) {
+ this.tagArr.forEach((i, j) => {
+ if (i.code === val.code) {
+ i.close = false
+ this.tagArr.splice(j, 1)
+ }
+ })
+ },
+
+ // 鏃堕棿鑼冨洿鍒囨崲
+ dateChange(val) {
+ if (val === 'today') {
+ this.today = false
+ this.month = true
+ this.custom = true
+ this.calendarRange = new Date().toISOString().slice(0, 10) + '~' + new Date().toISOString().slice(0,
+ 10)
+ } else if (val === 'month') {
+ this.today = true
+ this.month = false
+ this.custom = true
+
+ this.calendarRange = new Date().getFullYear() + '-' + (new Date().getMonth() + 1).toString().padStart(
+ 2, '0') + '-01' + '~' + new Date().toISOString().slice(0, 10)
+
+ } else if (val === 'custom') {
+ this.today = true
+ this.month = true
+ this.custom = false
+ this.calendarRange = new Date().getFullYear() + '-' + (new Date().getMonth() + 1).toString().padStart(
+ 2, '0') + '-01' + '~' + new Date().toISOString().slice(0, 10)
+ }
+ },
+
+ // 鏃ュ巻鏃堕棿鐐瑰嚮
+ calendarClick() {
+ this.$refs.calendar.open();
+ },
+
+ // 鏃ュ巻纭畾浜嬩欢鐐瑰嚮
+ calendarConfirm(val) {
+ if (val.range.before < val.range.after) {
+ this.calendarRange = val.range.before + '~' + val.range.after
+ } else {
+ this.calendarRange = val.range.after + '~' + val.range.before
}
- console.log(JSON.stringify(data), 6)
-
- this.isDisabledSubmitButton = true
- const res = await SavaMesOrderStepOut(data)
- if (res.code === '200') {
- uni.$u.toast('鍙戞枡鎴愬姛锛�')
-
- this.WXSheetValue = ''
- this.userSheetValue = ''
- this.fqty = null
- this.topContent = []
-
- this.isDisabledSubmitButton = false
+ if (val.range.before === '') {
+ this.calendarRange = new Date().toISOString().slice(0, 10) + '~' + val.range.after
}
+ if (val.range.after === '') {
+ this.calendarRange = val.range.before + '~' + new Date().toISOString().slice(0, 10)
+ }
+ if (val.range.before === '' && val.range.after === '') {
+ this.calendarRange = new Date().toISOString().slice(0, 10) + '~' + new Date().toISOString().slice(0,
+ 10)
+ }
+ // this.getData()
+ },
- // this.isDisabledSubmitButton = true
- // uni.uploadFile({
- // url: this.$baseUrl + '/AppProductionManagement/SavaMesOrderStepOut',
- // files: [{
- // "uri": "/"
- // }],
- // header: header,
- // formData: data,
- // success: (res) => {
- // uni.$u.toast('鍙戞枡鎴愬姛锛�')
- // this.WXSheetValue = ''
- // this.userSheetValue = ''
- // this.fqty = null
- // this.topContent = []
-
- // this.isDisabledSubmitButton = false
- // },
- // fail(res) {
- // uni.$u.toast('鍙戞枡澶辫触锛�')
- // this.isDisabledSubmitButton = false
- // },
- // })
+ // 鍗曢�夋寜閽垏鎹�
+ groupChange(val) {
+ console.log(val)
+ },
- }
+
+
+
+
+
+
+
}
}
</script>
@@ -418,13 +566,74 @@
display: block;
}
- .custominputClass {
- width: 412rpx;
- display: flex;
- justify-content: space-between;
- border: 3rpx #eff0f1 solid;
- border-radius: 10rpx;
- padding: 0 16rpx;
- line-height: 68rpx;
+ ::v-deep .u-alert__text--info--light {
+ margin-bottom: 0;
+ font-size: 32rpx !important;
+ padding-left: 10rpx;
+ color: #212121 !important;
+ font-weight: lighter;
+ }
+
+ ::v-deep .u-alert--info--light {
+ background-color: rgba(255, 255, 255, 0.7);
+ }
+
+ ::v-deep .u-steps-item__wrapper {
+ background-color: #eee;
+ }
+
+ ::v-deep .u-steps-item__line--column {
+ display: none;
+ }
+
+ ::v-deep .u-slide-right-enter-active {
+ width: 70%;
+ }
+
+ ::v-deep .uicon-calendar {
+ font-size: 36rpx !important;
+ }
+
+ ::v-deep .u-cell__title-text {
+ font-size: 28rpx;
+ color: #212121;
+ }
+
+ ::v-deep .u-cell__value {
+ font-size: 28rpx;
+ // color: transparent;
+ color: #212121;
+
+ }
+
+ ::v-deep .u-cell__label {
+ margin-top: 0;
+ line-height: 12px;
+ }
+
+ ::v-deep .uicon-arrow-right {
+ font-size: 14px !important;
+ color: #212121 !important;
+ }
+
+ ::v-deep .u-line-progress__text {
+ // margin-right: -20px;
+ // color: #212121;
+ // width: 100px;
+ // margin-top: 10px;
+ display: none;
+
+ }
+
+ ::v-deep .u-text__value--content {
+ font-size: 12px !important;
+ }
+
+ ::v-deep .u-tag__close {
+ background: #436df5 !important;
+ }
+
+ ::v-deep .u-cell__body {
+ padding-bottom: 40rpx;
}
</style>
\ No newline at end of file
diff --git a/pages/wwgl/wxfl2.vue b/pages/wwgl/wxfl2.vue
new file mode 100644
index 0000000..eb89504
--- /dev/null
+++ b/pages/wwgl/wxfl2.vue
@@ -0,0 +1,444 @@
+<template>
+ <view>
+ <page-nav title="濮斿鍙戞枡"></page-nav>
+
+
+ <view v-show="topContent.length===0">
+ <div class="sacnBody">
+ <div class="scanImg" @click="topScanClick"></div>
+ <div class="scanText">鎵弿浠诲姟鏉$爜</div>
+ </div>
+ </view>
+
+ <view v-show="topContent.length!==0" class="mainContent">
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bolder;">
+ 鍙戞枡淇℃伅
+ </view>
+ </view>
+ </view>
+
+ <view class="marginLeft20 marginRight20" style="height: 360rpx;" v-if="topContent.length!==0">
+ <view class="marginBottom20" style="display: flex;">
+ <!-- v-for="item in purchorderArr" -->
+ <view class="flex_column titleFont">
+ <view>宸ュ崟缂栧彿锛�</view>
+ <view>浜у搧缂栫爜锛�</view>
+ <view>浜у搧鍚嶇О锛�</view>
+ <view>浜у搧瑙勬牸锛�</view>
+ <view>褰撳墠宸ュ簭锛�</view>
+ <view>浠诲姟鏁伴噺锛�</view>
+ <view>鏈彂/宸插彂锛�</view>
+ </view>
+ <view class="flex_column contentFont">
+ <view>{{topContent[0].wo_code}}</view>
+ <view>{{topContent[0].partnumber}}</view>
+ <view>{{topContent[0].partname}}</view>
+ <view>{{topContent[0].partspec?topContent[0].partspec:'/'}}</view>
+ <view>{{topContent[0].stepname}}</view>
+ <view>{{topContent[0].planqty}}</view>
+ <view>{{topContent[0].startqty+'/'+topContent[0].reportqty}}</view>
+ </view>
+ </view>
+ </view>
+
+ </view>
+
+
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+ <view class="head_block" style="justify-content: flex-start;height: 70rpx;padding-bottom: 10rpx;">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bolder;">
+ 澶栧崗渚涙柟
+ </view>
+ </view>
+ <view style="margin-left: 20rpx;">
+ <view @click='WXSheetClick' class="custominputClass">
+ <view v-show='WXSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+ <view v-show='WXSheetValue!==""' class="ellipsis" style="width: 390rpx;">
+ {{WXSheetValue}}
+ </view>
+ <u-icon :name="!WXSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+
+ </view>
+ </view>
+ </view>
+
+
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+ <view class="head_block" style="justify-content: flex-start;height: 70rpx;padding-bottom: 10rpx;">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bolder;">
+ 澶栧崗浜哄憳
+ </view>
+ </view>
+ <view style="margin-left: 20rpx;">
+ <view @click='userSheetClick' class="custominputClass">
+ <view v-show='userSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+ <view v-show='userSheetValue!==""' class="ellipsis" style="width: 390rpx;">
+ {{userSheetValue}}
+ </view>
+ <u-icon :name="!userSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+
+ </view>
+ </view>
+ </view>
+
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+ <view class="head_block" style="justify-content: flex-start;height: 70rpx;padding-bottom: 10rpx;">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bolder;">
+ 鍙戞枡鏁伴噺
+ </view>
+ </view>
+ <view style="margin-left: 20rpx;">
+ <view class='inputClass'>
+ <u--input placeholder="璇疯緭鍏�" border="surround" type='number' v-model="fqty">
+ </u--input>
+ </view>
+
+ </view>
+ </view>
+ </view>
+
+
+
+ <u-picker v-if="topContent.length!==0" :show="WXSheetShow" :columns="WXColumns" :itemHeight='55'
+ :closeOnClickOverlay='true' @close='WXSheetShow=false' @confirm='WXPickerConfirm'
+ @cancel='WXSheetShow=false'>
+ </u-picker>
+
+
+ <u-picker v-if="topContent.length!==0" :show="userSheetShow" :columns="userColumns" :itemHeight='55'
+ :closeOnClickOverlay='true' @close='userSheetShow=false' @confirm='userPickerConfirm'
+ @cancel='userSheetShow=false'>
+ </u-picker>
+
+
+ </view>
+
+ <u-button size="large" v-show="topContent.length!==0" :loading="isDisabledSubmitButton"
+ loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary" @click="submit" text="鍙戞枡">
+ </u-button>
+
+
+ <!-- 鎮诞鐞� -->
+ <!-- <view v-show="topContent.length!==0&&!WXSheetShow&&!userSheetShow" @click="topScanClick">
+ <drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
+ </view> -->
+
+ <!-- <scan-code></scan-code> -->
+
+
+ </view>
+</template>
+
+
+<script>
+ import {
+ MesOrderStepStart,
+ CustomerPermissions,
+ PersonPermissions,
+ SavaMesOrderStepOut
+ } from '../../config/api.js';
+ // import scanCode from '@/components/scan-code/scan-code.vue'
+
+ export default {
+ onLoad(option) {
+ if (option.orderstep) {
+ this.fromType = '1'
+ this.getMesOrderStepStart(option.orderstep)
+ } else {
+ this.fromType = '2'
+ }
+ },
+
+ onPullDownRefresh() {
+ setTimeout(() => {
+ this.init(() => {
+ uni.stopPullDownRefresh();
+ })
+ }, 1000);
+ },
+
+ data() {
+ return {
+ topRightMessageCount: '',
+
+ isDisabledSubmitButton: false,
+
+ topContent: [],
+ // {
+ // "wo_code": "MO-2023-06-0003_1",
+ // "partnumber": "308",
+ // "partname": "鐢垫睜鍖�",
+ // "partspec": "",
+ // "seq": "2",
+ // "stepcode": "ZSStep03",
+ // "stepname": "鍘绘瘺鍒�",
+ // "nextstepcode": "ZSStep06",
+ // "nextstepname": "鍖呰2",
+ // "stepdesc": "",
+ // "wkshopcode": "ZS001",
+ // "wkshopname": "娉ㄥ杞﹂棿",
+ // "planqty": 50.00,
+ // "startqty": 29.00,
+ // "noreportqty": 29.00,
+ // "reportqty": 21.00,
+ // "noputqty": 0.0,
+ // "list": null
+ // }, //鎵弿浠诲姟鏉$爜鎵�甯﹀嚭鏉ョ殑鍐呭
+
+ WXSheetValue: '',
+ WXSheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
+ WXColumns: [],
+ WXSheetList: [],
+
+
+ userSheetValue: '',
+ userSheetShow: false,
+ userColumns: [],
+ userSheetList: [],
+
+ fqty: null,
+
+ fromType: '1',
+
+
+
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ this.init()
+
+
+ // this.getMesOrderStepStart('MO-2023-09-0002_1;106')
+
+ this.handleSelectAllApi()
+
+
+ },
+ methods: {
+ init() {
+ uni.stopPullDownRefresh();
+ },
+
+ async handleSelectAllApi() {
+ await this.getCustomerPermissions()
+ await this.getPersonPermissions()
+ },
+
+
+ async getPersonPermissions(val) {
+ const data = {
+ usercode: val
+ }
+ const res = await PersonPermissions(this.global.formatData(data))
+ this.userSheetList = res.data
+ this.userColumns = [res.data.map(i => i.username)]
+ },
+
+ async getCustomerPermissions(val) {
+ const data = {
+ orderstepqrcode: val
+ }
+ const res = await CustomerPermissions(this.global.formatData(data))
+ this.WXSheetList = res.data
+ this.WXColumns = [res.data.map(i => i.name)]
+ },
+
+ async getMesOrderStepStart(val) {
+ const data = {
+ OperType: 'WX',
+ SelectType: 'OUT',
+ wocode: val ? val.split(';')[0] : '',
+ stepcode: val ? val.split(';')[1] : ''
+ }
+
+ const res = await MesOrderStepStart(this.global.formatData(data))
+ console.log(res, 3)
+
+ if (res.code === '200') {
+ this.WXSheetValue = ''
+ this.userSheetValue = ''
+ this.fqty = null
+ this.topContent = []
+ this.topContent.push(res.data)
+ }
+
+
+
+ },
+
+ // 浠诲姟鏉$爜 鐨勬壂鐮佹鐐瑰嚮
+ topScanClick() {
+ let that = this;
+
+ uni.scanCode({
+ onlyFromCamera: true,
+ // scanType: ['barCode', 'qrCode'],
+ scanType: ['qrCode'],
+ success: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+
+ that.getMesOrderStepStart(res.result)
+
+ },
+ complete: function(res) {
+
+ },
+ fail: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ }
+
+ });
+ },
+
+
+ WXSheetClick() {
+ this.WXSheetShow = true
+ },
+
+ WXPickerConfirm(val) {
+ this.WXSheetValue = val.value[0]
+ this.WXSheetShow = false
+ },
+
+ userSheetClick() {
+ this.userSheetShow = true
+ },
+
+ userPickerConfirm(val) {
+ this.userSheetValue = val.value[0]
+ this.userSheetShow = false
+ },
+
+
+ async submit() {
+
+ if (!this.WXSheetValue) {
+ return uni.$u.toast('澶栧崗渚涙柟涓嶈兘涓虹┖锛�')
+ }
+
+ if (!this.userSheetValue) {
+ return uni.$u.toast('澶栧崗浜哄憳涓嶈兘涓虹┖锛�')
+ }
+
+ if (!this.fqty) {
+ return uni.$u.toast('鍙戞枡鏁伴噺涓嶈兘涓虹┖锛�')
+ }
+
+ if (parseFloat(this.fqty) > parseFloat(this.topContent[0].startqty)) {
+ return uni.$u.toast('鍙戞枡鏁伴噺涓嶈兘澶т簬鏈彂鏁伴噺锛�')
+ }
+
+ // const header = {
+ // 'Content-Type': 'application/x-www-form-urlencoded',
+ // 'rediskey': uni.getStorageSync('rediskey'),
+ // 'admin': uni.getStorageSync('usercode'),
+ // 'username': encodeURIComponent(uni.getStorageSync('username')),
+ // 'navTabId': uni.getStorageSync('usercode'),
+ // 'userid': uni.getStorageSync('userid'),
+ // 'guid': uni.getStorageSync('guid'),
+ // 'usertype': 'APP'
+ // }
+
+ const data = {
+ mesordercode: this.topContent[0].wo_code, // 宸ュ崟缂栧彿
+ partcode: this.topContent[0].partnumber, // 浜у搧缂栫爜
+ stepseq: this.topContent[0].seq, // 宸ュ簭搴忓彿
+ stepcode: this.topContent[0].stepcode, // 宸ュ簭缂栫爜
+ wxcode: this.WXSheetList.find(i => i.name === this.WXSheetValue).code, // 澶栧崗渚涘簲鍟嗙紪鐮�
+ outuser: this.userSheetList.find(i => i.username === this.userSheetValue).usercode, // 鍙戞枡浜哄憳
+ taskqty: this.topContent[0].planqty, // 浠诲姟鏁伴噺
+ fqty: this.fqty // 鍙戞枡鏁伴噺
+ }
+
+ console.log(JSON.stringify(data), 6)
+
+ this.isDisabledSubmitButton = true
+ const res = await SavaMesOrderStepOut(data)
+ if (res.code === '200') {
+ uni.$u.toast('鍙戞枡鎴愬姛锛�')
+
+ this.WXSheetValue = ''
+ this.userSheetValue = ''
+ this.fqty = null
+ this.topContent = []
+
+ if (this.fromType === '1') {
+ let pages = getCurrentPages(); // 椤甸潰闆嗗悎
+ let beforePage = pages[pages.length - 2]; //涓婁竴涓〉闈�
+ beforePage.$vm.getProductionScheduleKanban()
+
+ uni.navigateBack()
+ }
+
+ this.isDisabledSubmitButton = false
+ }
+
+ // this.isDisabledSubmitButton = true
+ // uni.uploadFile({
+ // url: this.$baseUrl + '/AppProductionManagement/SavaMesOrderStepOut',
+ // files: [{
+ // "uri": "/"
+ // }],
+ // header: header,
+ // formData: data,
+ // success: (res) => {
+ // uni.$u.toast('鍙戞枡鎴愬姛锛�')
+
+ // this.WXSheetValue = ''
+ // this.userSheetValue = ''
+ // this.fqty = null
+ // this.topContent = []
+
+ // this.isDisabledSubmitButton = false
+ // },
+ // fail(res) {
+ // uni.$u.toast('鍙戞枡澶辫触锛�')
+ // this.isDisabledSubmitButton = false
+ // },
+ // })
+
+
+
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import url('@/style/global.css');
+
+ ::v-deep .uicon-arrow-left>span {
+ display: block;
+ }
+
+ .custominputClass {
+ width: 412rpx;
+ display: flex;
+ justify-content: space-between;
+ border: 3rpx #eff0f1 solid;
+ border-radius: 10rpx;
+ padding: 0 16rpx;
+ line-height: 68rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/pages/wwgl/wxsl.vue b/pages/wwgl/wxsl.vue
index b3ff920..734ff04 100644
--- a/pages/wwgl/wxsl.vue
+++ b/pages/wwgl/wxsl.vue
@@ -1,271 +1,225 @@
<template>
<view>
- <page-nav title="濮斿鏀舵枡"></page-nav>
+ <page-nav title="澶栧崗鏀舵枡"></page-nav>
- <view v-show="topContent.length===0">
- <div class="sacnBody">
- <div class="scanImg" @click="topScanClick"></div>
- <div class="scanText">鎵弿浠诲姟鏉$爜</div>
- </div>
+ <view class="flex_center" style="margin: 20rpx;">
+
+ <!-- #ifdef H5 -->
+ <u--input prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" :placeholder="placeholder"
+ style="width:100%;background-color: #fff;border-radius: 40rpx;" border="surround" suffixIcon="scan"
+ suffixIconStyle="color: #909399;font-size: 22px;" v-model="inputBoxValue"
+ @change="confirmInputBoxValue">
+ <template slot="suffix">
+ <u-icon name="scan" color="#909399" size="24" @click="scanClick"></u-icon>
+ </template>
+ </u--input>
+ <!-- #endif -->
+
+ <!-- #ifdef APP-PLUS -->
+ <u-input prefixIcon="search" prefixIconStyle="font-size: 22px;color: #909399" :placeholder="placeholder"
+ style="width:100%;background-color: #fff;border-radius: 40rpx;" border="surround" suffixIcon="scan"
+ suffixIconStyle="color: #909399;font-size: 22px;" v-model="inputBoxValue"
+ @change="confirmInputBoxValue">
+ <template slot="suffix">
+ <u-icon name="scan" color="#909399" size="24" @click="scanClick"></u-icon>
+ </template>
+ </u-input>
+ <!-- #endif -->
+
+ <view class="flex_center marginLeft20" @click="popupShow=true">
+ <u--text size='16' color='#909399' text="绛涢��"></u--text>
+ <u--image :showLoading="true" src="../../static/img/sift.png" width="20px" height="20px"></u--image>
+ </view>
</view>
- <view v-show="topContent.length!==0" class="mainContent">
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
- <view class="head">
- <view class="head_block">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title" style="font-weight: bolder;">
- 鏀舵枡淇℃伅
+
+ <u-alert :title="alertTitle" type="info"></u-alert>
+
+
+ <!-- 鎶樺彔闈㈡澘 -->
+ <!-- <u-collapse @change="change" @close="close" @open="open"> -->
+ <!-- @change="collapseChange" -->
+ <u-collapse style="max-height: 590px;overflow: auto;">
+ <!-- :value='parseFloat(item.ordergoodqty)+"/"+parseFloat(item.orderqty)' -->
+ <u-collapse-item style="position: relative;" :title="item.ordercode" :name='item.ordercode'
+ :value='parseFloat(item.ordergoodqty)+"/"+parseFloat(item.orderqty)'
+ :label="item.children.length===0?'鏈淳鍙�':''" :disabled='item.children.length===0'
+ v-for="item in collapseArr" :key="item.ordercode">
+
+
+ <view style="position: absolute;width: 200rpx;left: 30rpx;top:34px;font-size: 24rpx;color: #999;">
+ {{item.partname}} {{item.partspec}}
+ </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)">
+ <!-- {{item.partname}}{{item.partspec}} -->
+ <u-line-progress :percentage="parseFloat((item.ordergoodqty*100/item.orderqty).toFixed(2))"
+ inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress>
+ </view>
+
+ <!-- <view style="position: absolute;width: 100px;right: 33px; top:13px; ">
+ <view class="" style="display: flex;justify-content: flex-end;">
+ <view style="color: #0659ff;">
+ {{parseFloat(item.ordergoodqty)}}
+ </view>
+ <view>
+ /{{ parseFloat(item.orderqty)}}
+ </view>
+ </view>
+ </view>
+ -->
+
+
+ <view v-if="radiovalue==='鐢熶骇宸ュ崟'" style="margin:0 0 5px">
+ <view class="flex_column">
+ <view style="display:flex">
+ <view class="titleFont" style="font-size: 14px;">浜у搧缂栫爜锛�</view>
+ <view class="contentFont" style="font-size: 14px;">{{item.partcode}}</view>
+ </view>
+ <view style="display:flex">
+ <view class="titleFont" style="font-size: 14px;">浜у搧鍚嶇О锛�</view>
+ <view class="contentFont" style="font-size: 14px;">{{item.partname}}</view>
+ </view>
+ <view style="display:flex">
+ <view class="titleFont" style="font-size: 14px;">浜у搧瑙勬牸锛�</view>
+ <view class="contentFont" style="font-size: 14px;">{{item.partspec?item.partspec:'/'}}
+ </view>
</view>
</view>
</view>
- <view class="marginLeft20 marginRight20" style="height: 410rpx;" v-if="topContent.length!==0">
- <view class="marginBottom20" style="display: flex;">
- <!-- v-for="item in purchorderArr" -->
- <view class="flex_column titleFont">
- <view>宸ュ崟缂栧彿锛�</view>
- <view>浜у搧缂栫爜锛�</view>
- <view>浜у搧鍚嶇О锛�</view>
- <view>浜у搧瑙勬牸锛�</view>
- <view>褰撳墠宸ュ簭锛�</view>
- <view>浠诲姟鏁伴噺锛�</view>
- <view>鏈敹/宸叉敹锛�</view>
- <view>涓嬮亾宸ュ簭锛�</view>
+
+ <!-- {{item.children}} -->
+ <!-- <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;">
+
+ <u-steps-item :title="it.code+'/'+it.name+it.spec"></u-steps-item>
+ <view class="" style="width: 100px;">
+ <u-line-progress :percentage="parseFloat((it.goodqty*100/it.planqty).toFixed(2))"
+ inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress>
</view>
- <view class="flex_column contentFont">
- <view>{{topContent[0].wo_code}}</view>
- <view>{{topContent[0].partnumber}}</view>
- <view>{{topContent[0].partname}}</view>
- <view>{{topContent[0].partspec?topContent[0].partspec:'/'}}</view>
- <view>{{topContent[0].stepname}}</view>
- <view>{{topContent[0].planqty}}</view>
- <view>{{topContent[0].startqty+'/'+topContent[0].reportqty}}</view>
- <view>{{topContent[0].nextstepname?topContent[0].nextstepname:'/'}}</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>
+ /{{ parseFloat(it.planqty)}}
+ </view>
+ </view>
</view>
</view>
+
+ </u-steps>
+ <!-- </u--text> -->
+
+
+ </u-collapse-item>
+
+ </u-collapse>
+
+
+ <!-- 寮瑰嚭灞� -->
+ <!-- closeIconPos='top-left' closeOnClickOverlay closeable='true' -->
+ <u-popup :show="popupShow" mode="right" @close="popupClose" @open="popupOpen">
+ <view style="margin: 120px 10px 20px;" class="flex_column">
+
+ <!-- <view style="display: flex;">
+ <view>
+ 鍗曟嵁绫诲瀷锛�
+ </view>
+
+ <u-radio-group v-model="radiovalue" placement="column" @change="groupChange"
+ style="margin-top: 4px;">
+ <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in radiolist"
+ :key="index+item.name" :label="item.name" iconSize='16' labelSize='16' :name="item.name">
+
+ </u-radio>
+ </u-radio-group>
+ </view> -->
+
+ <view style="margin-top: 20px;display: flex;align-items: center;">
+
+ <view class="">
+ 浜у搧淇℃伅锛�
+ </view>
+ <view class="">
+ <u-button :hairline="true" shape="circle" icon="map" :plain="true"
+ style="width: 100px;height: 26px;" type="primary" text="閫夋嫨浜у搧" @click="chosePart"></u-button>
+ </view>
+
</view>
+
+ <view style="display: flex;flex-wrap: wrap;">
+ <u-tag style="width:220rpx;" :text="item.name" v-for="item in tagArr" :key="item.code"
+ :closable="true" :show="item.close" @close="tagClose(item)"></u-tag>
+ </view>
+
+
+
+ <!-- <view class="head" style="margin-top: 10px;">
+ <view class="head_block" style="height: 80rpx; display: flex;justify-content: space-around;">
+ <u-button :plain='today' style="width: 70px;height: 25px;" @click="dateChange('today')"
+ type="primary" shape="circle" text="浠婃棩">
+ </u-button>
+ <u-button :plain='month' style="width: 70px;height: 25px;" @click="dateChange('month')"
+ type="primary" shape="circle" text="鏈湀">
+ </u-button>
+ <u-button :plain='custom' style="width: 70px;height: 25px;" @click="dateChange('custom')"
+ type="primary" shape="circle" text="鑷畾涔�"></u-button>
+ </view>
+ </view>
+
+ <view v-if="!custom" class="flex_column"
+ style="display: flex;justify-content: space-around;width: 100%;">
+ <view class="" style="display: flex;justify-content: space-evenly;width: 100%;">
+ <view class="titleFont">寮�濮嬫棩鏈�</view>
+ <view class="titleFont">~</view>
+ <view class="titleFont">缁撴潫鏃ユ湡</view>
+ </view>
+
+ <u-button type="info" icon='calendar' iconColor="#0659FF" size="" @click="calendarClick"
+ :text="calendarRange">
+ </u-button>
+ </view> -->
+
+ <!-- <uni-calendar ref="calendar" :range='true' :insert="false" @confirm="calendarConfirm" /> -->
</view>
+ </u-popup>
-
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
- <view class="head">
- <view class="head_block">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title" style="font-weight: bolder;">
- 鏀舵枡鎿嶄綔
- </view>
- </view>
- </view>
-
- <view class="flex_column">
-
- <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
- <view style="display: flex;" class="titleFont">
- <view style="color: red;margin-right: 6rpx;">*</view> 澶栧崗渚涙柟
- </view>
- <view style="margin-left: 20rpx;">
- <view @click='WXSheetClick' class="custominputClass">
- <view v-show='WXSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
- <view v-show='WXSheetValue!==""' class="ellipsis" style="width: 390rpx;">
- {{WXSheetValue}}
- </view>
- <u-icon :name="!WXSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
- </view>
- </view>
- </view>
-
- <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
- <view style="display: flex;" class="titleFont">
- <view style="color: red;margin-right: 6rpx;">*</view> 鏀舵枡浜哄憳
- </view>
- <view style="margin-left: 20rpx;">
- <view @click='userSheetClick' class="custominputClass">
- <view v-show='userSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
- <view v-show='userSheetValue!==""' class="ellipsis" style="width: 390rpx;">
- {{userSheetValue}}
- </view>
- <u-icon :name="!userSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
- </view>
- </view>
- </view>
-
-
- <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
- <view style="color: red;margin-right: 6rpx;">*</view> 鏀舵枡鏁伴噺
- <view style="margin-left: 20rpx;">
- <view class='inputClass'>
- <u--input placeholder="璇疯緭鍏�" border="surround" type='number' v-model="sqty">
- </u--input>
- </view>
- </view>
- </view>
-
-
-
- </view>
-
-
-
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
- <view class="head" v-if="topContent.length!==0">
- <view class="head_block">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title" style="font-weight: bolder;">
- 鍙敹鏂欎緵搴斿晢
- </view>
- </view>
- </view>
-
- <view class="flex_column marginLeft20 marginRight20 marginBottom20 titleFont">
- <view v-for='(i,index) in topContent[0].list'
- v-if="parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty)- parseFloat(i.materielbad_qty)>0"
- style="display: flex;">
- <view>{{index+1}}</view>
- <view class="ellipsis" style="width: 400rpx;margin: 0 30rpx;">{{i.tp}}</view>
- <view>
- {{ parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty)- parseFloat(i.materielbad_qty)}}
- </view>
- <!-- <view>浠�</view> -->
- </view>
-
- </view>
-
- </view>
-
- <u-gap height="10" bgColor="#eff0f1"></u-gap>
-
-
- <view class="head marginLeft10 marginRight10" style="padding-bottom: 20rpx;">
- <view class="head_block">
- <view class="head_left">
- <view class="head_bar"></view>
- <view class="head_title">
- 涓嶈壇缁熻
- </view>
- </view>
-
- </view>
- <view class="flex_column ">
-
-
- <u-button type="primary" :plain="true" icon='plus-circle' text="娣诲姞"
- style="width: 90%;margin: 20rpx auto;" @click="add"></u-button>
-
-
- <view v-for='(item,index) in ngqtyArr' class="badSheetClass" :key="item.uid">
-
- <view class="badNumber">{{index+1}}</view>
- <u-icon name="trash" size="20" class="trash" v-if="ngqtyArr.length!==1"
- @click="trashDelete(index)" color="rgb(0, 102, 255)"></u-icon>
-
- <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
- <view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鏁伴噺锛�
- <view class='inputClass'>
- <u--input placeholder="璇疯緭鍏�" border="surround" :adjustPosition='false' type='number'
- v-model="item.ngqty"></u--input>
- </view>
-
- </view>
- <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
- <view style="display: flex;" class="titleFont">
- <view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鍘熷洜锛�
- </view>
- <view @click='badSheetClick(item)' class="custominputClass">
- <view v-show='item.badSheetValue.length===0' style="color: rgb(192, 196, 204);">璇烽�夋嫨
- </view>
- <view v-show='item.badSheetValue.length!==0' class="ellipsis"
- style="width: 390rpx;">
- {{item.badSheetValue}}
- </view>
- <u-icon :name="item.arrowDown?'arrow-down-fill':'arrow-up-fill'"></u-icon>
- </view>
- </view>
-
- <u-divider></u-divider>
-
-
- </view>
-
- </view>
- </view>
-
-
-
-
-
- </view>
-
-
- <u-picker v-if="topContent.length!==0" :show="WXSheetShow" :columns="WXColumns" :itemHeight='55'
- :closeOnClickOverlay='true' @close='WXSheetShow=false' @confirm='WXPickerConfirm'
- @cancel='WXSheetShow=false'>
- </u-picker>
-
-
- <u-picker v-if="topContent.length!==0" :show="userSheetShow" :columns="userColumns" :itemHeight='55'
- :closeOnClickOverlay='true' @close='userSheetShow=false' @confirm='userPickerConfirm'
- @cancel='userSheetShow=false'>
- </u-picker>
-
-
- <!-- 涓嶈壇鍘熷洜 -->
- <u-action-sheet v-if="topContent.length!==0" :actions="badSelectArr" :safeAreaInsetBottom='true'
- :closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSelectClose" :show="badSheetShow"
- @select='badSheetSelect'>
- <view style="min-height: 100rpx;">
- <u-checkbox-group @change="checkboxChange" size='20px' v-model="checkBoxValue" iconPlacement="right"
- placement="column">
- <view v-for="(item,index) in badSelectArr">
- <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
- :name='item.name' :label="item.name">
- </u-checkbox>
- </view>
- </u-checkbox-group>
- </view>
- </u-action-sheet>
-
-
-
-
- </view>
-
- <u-button size="large" v-show="topContent.length!==0" :loading="isDisabledSubmitButton"
- loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary" @click="submit" text="鏀舵枡">
- </u-button>
-
-
- <!-- 鎮诞鐞� -->
- <!-- <view v-show="topContent.length!==0&&!WXSheetShow&&!userSheetShow&&!badSheetShow" @click="topScanClick">
- <drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
- </view> -->
<!-- <scan-code></scan-code> -->
+ <!-- 鎮诞鐞� -->
+ <view @click="scan2">
+ <drag-ball :x='300' :y="600"></drag-ball>
+ </view>
</view>
</template>
<script>
import {
- MesOrderStepStart,
- CustomerPermissions,
- PersonPermissions,
- DefectPermissions,
- SavaMesOrderStepIn,
- LabelBarCode
+ ProductionScheduleKanban
} from '../../config/api.js';
- // import scanCode from '@/components/scan-code/scan-code.vue'
-
export default {
onLoad(option) {
+ const _this = this
+ uni.$off('scancodedate') // 姣忔杩涙潵鍏� 绉婚櫎鍏ㄥ眬鑷畾涔変簨浠剁洃鍚櫒
+ uni.$on('scancodedate', function(content) {
+ console.log("鎵弿鍒扮殑鍐呭涓�:", content)
+ _this.getCheckScanDeviceQrCodeData(content)
+ })
+
+ console.log(option, 8)
},
onPullDownRefresh() {
@@ -279,70 +233,60 @@
data() {
return {
topRightMessageCount: '',
-
- isDisabledSubmitButton: false,
-
- topContent: [],
- // {
- // "wo_code": "MO-2023-06-0003_1",
- // "partnumber": "308",
- // "partname": "鐢垫睜鍖�",
- // "partspec": "",
- // "seq": "2",
- // "stepcode": "ZSStep03",
- // "stepname": "鍘绘瘺鍒�",
- // "nextstepcode": "ZSStep06",
- // "nextstepname": "鍖呰2",
- // "stepdesc": "",
- // "wkshopcode": "ZS001",
- // "wkshopname": "娉ㄥ杞﹂棿",
- // "planqty": 50.00,
- // "startqty": 29.00,
- // "noreportqty": 29.00,
- // "reportqty": 21.00,
- // "noputqty": 0.0,
- // "list": null
- // }, //鎵弿浠诲姟鏉$爜鎵�甯﹀嚭鏉ョ殑鍐呭
-
- WXSheetValue: '',
- WXSheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
- WXColumns: [],
- WXSheetList: [],
-
-
- userSheetValue: '',
- userSheetShow: false,
- userColumns: [],
- userSheetList: [],
-
- sqty: null,
- ngqty: null,
-
-
- badSelectArr: [],
- checkBoxValue: '',
- badSheetShow: false,
- badSheetValue: '',
-
-
- ngqtyArr: [{
- uid: new Date().getTime(),
- ngqty: '',
- badSheetValue: '',
- arrowDown: true //鍚戜笅绠ご
+ inputBoxValue: '',
+ alertTitle: '',
+ popupShow: false, //寮瑰嚭灞傛槸鍚︽樉绀�
+ collapseArr: [ //鎶樺彔闈㈡澘鏁版嵁
+ ],
+ collapseArrAll: [], //鎵�鏈�
+ placeholder: '璇疯緭鍏ュ伐鍗曚俊鎭�',
+ radiovalue: '鐢熶骇宸ュ崟', //鍗曟嵁绫诲瀷
+ // SO锛氶攢鍞鍗� MO锛氱敓浜ц鍗� PO锛氱敓浜у伐鍗�
+ radiolist: [{
+ name: '閿�鍞鍗�'
},
+ {
+ name: '鐢熶骇璁㈠崟'
+ },
+ {
+ name: '鐢熶骇宸ュ崟'
+ },
+ ],
+
+ today: true,
+ month: false,
+ custom: true,
+
+ // calendarRange: new Date().toISOString().slice(0, 10) + '~' + new Date().toISOString().slice(0,
+ // 10), //绯荤粺褰撳墠鏃ユ湡
+ calendarRange: new Date().getFullYear() + '-' + (new Date().getMonth() + 1).toString().padStart(
+ 2, '0') + '-01' + '~' + new Date().toISOString().slice(0, 10), //褰撴湀鏃ユ湡
+
+
+
+ tagArr: [
// {
- // ngqty: '',
- // badSheetValue: '',
- // arrowDown: true //鍚戜笅绠ご
+ // close: true,
+ // name: '鐢垫睜鍖�',
+ // code: '1002'
+ // }, {
+ // close: true,
+ // name: '鐢佃剳',
+ // code: '1003'
+ // }, {
+ // close: true,
+ // name: '8054鍏夋満',
+ // code: '1004'
+ // }, {
+ // close: true,
+ // name: 'G71674鍐查攱鏋�',
+ // code: '1005'
+ // }, {
+ // close: true,
+ // name: '8051鍏夋満',
+ // code: '1006'
// },
- ], //涓嶈壇鏁伴噺銆佷笉鑹師鍥犳暟缁�
-
-
-
- notes: null //澶囨敞
-
-
+ ], //宸查�変腑鐨勪骇鍝佹爣绛�
}
@@ -353,77 +297,27 @@
mounted() {
this.init()
-
- // this.getMesOrderStepStart('MO-2023-09-0002_1;106')
-
-
- this.handleSelectAllApi()
+ this.getProductionScheduleKanban()
},
methods: {
init() {
uni.stopPullDownRefresh();
},
- async handleSelectAllApi() {
- await this.getCustomerPermissions()
- await this.getPersonPermissions()
- await this.getDefectPermissions()
- },
-
- async getPersonPermissions(val) {
- const data = {
- usercode: val
- }
- const res = await PersonPermissions(this.global.formatData(data))
- this.userSheetList = res.data
- this.userColumns = [res.data.map(i => i.username)]
- },
-
- async getCustomerPermissions() {
-
- const res = await CustomerPermissions()
- this.WXSheetList = res.data
- this.WXColumns = [res.data.map(i => i.name)]
- },
- // 鑾峰彇涓嶈壇鍘熷洜
- async getDefectPermissions() {
- const res = await DefectPermissions()
- if (res.code === '200') {
- this.badSelectArr = res.data
- }
- },
-
-
- async getMesOrderStepStart(val) {
- const data = {
- OperType: 'WX',
- SelectType: 'IN',
- wocode: val ? val.split(';')[0] : '',
- stepcode: val ? val.split(';')[1] : ''
+ gotoPage(p1, p2) {
+ let orderstep = null
+ if (p1) {
+ orderstep = p1 + ';' + p2
+ } else {
+ orderstep = ''
}
- const res = await MesOrderStepStart(this.global.formatData(data))
- console.log(res, 3)
- if (res.code === '200') {
- // this.getCustomerPermissions(val)
- // this.getMesOrderSelectUser(val)
- // this.getDefectPermissions(val)
- this.WXSheetValue = ''
- this.userSheetValue = ''
- this.checkBoxValue = ''
- this.badSheetValue = ''
- this.sqty = null
- this.ngqty = null
- this.notes = null
- this.topContent = []
- this.topContent.push(res.data)
- }
- // console.log(this.topContent,6)
-
+ uni.navigateTo({
+ url: './wxsl2?orderstep=' + orderstep
+ })
},
- // 浠诲姟鏉$爜 鐨勬壂鐮佹鐐瑰嚮
- topScanClick() {
+ scan2() {
let that = this;
uni.scanCode({
@@ -433,8 +327,11 @@
success: function(res) {
console.log('鏉$爜绫诲瀷锛�' + res.scanType);
console.log('鏉$爜鍐呭锛�' + res.result);
+ // that.scanContent = res.result;
- that.getMesOrderStepStart(res.result)
+ uni.navigateTo({
+ url: './wxsl2?orderstep=' + res.result
+ })
},
complete: function(res) {
@@ -447,172 +344,216 @@
});
},
- badSheetClick(item) {
- if (!item.ngqty) {
- return uni.$u.toast('璇峰厛濉啓涓嶈壇鏁伴噺锛�')
- }
- item.arrowDown = !item.arrowDown
- this.checkBoxValue = item.badSheetValue.split(',')
- this.badSheetShow = true
- },
-
- badSheetSelect(val) {
- console.log('鎵ц浜嗭紒')
- },
- checkboxChange(val) {
- this.badSheetValue = val.join(',')
- },
-
-
- WXSheetClick() {
- this.WXSheetShow = true
- },
-
- WXPickerConfirm(val) {
- this.WXSheetValue = val.value[0]
- this.WXSheetShow = false
- },
-
- userSheetClick() {
- this.userSheetShow = true
- },
-
- userPickerConfirm(val) {
- this.userSheetValue = val.value[0]
- this.userSheetShow = false
- },
-
- // 娣诲姞
- add() {
-
- // if (this.ngqtyArr.find(i => i.badSheetValue === '')) {
- // return uni.$u.toast('璇峰厛瀹屽杽鍓嶉潰涓嶈壇閫夐」锛�')
- // }
-
- this.ngqtyArr.unshift({
- uid: new Date().getTime(),
- ngqty: '',
- badSheetValue: '',
- arrowDown: true //鍚戜笅绠ご
+ getCheckboxValue(val) {
+ this.tagArr = []
+ val.forEach(i => {
+ this.tagArr.push({
+ close: true,
+ name: i.split('/')[1].trim(),
+ code: i.split('/')[0].trim()
+ })
})
-
},
- //鍒犻櫎
- trashDelete(index) {
- this.ngqtyArr.splice(index, 1)
- },
-
- badSelectClose() {
- let index = this.ngqtyArr.findIndex(i => !i.arrowDown)
-
- this.ngqtyArr[index].badSheetValue = this.checkBoxValue.join(',')
- this.ngqtyArr[index].arrowDown = true
-
- this.checkBoxValue = []
- this.badSheetShow = false
- },
-
-
- async submit() {
-
- if (!this.WXSheetValue) {
- return uni.$u.toast('澶栧崗渚涙柟涓嶈兘涓虹┖锛�')
+ // 鎺ュ彛鑾峰彇
+ async getProductionScheduleKanban() {
+ let ordertype = '' // SO锛氶攢鍞鍗� MO锛氱敓浜ц鍗� PO锛氱敓浜у伐鍗�
+ switch (this.radiovalue) {
+ case '鐢熶骇宸ュ崟':
+ this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
+ this.placeholder = '璇疯緭鍏ュ伐鍗曚俊鎭�'
+ ordertype = 'PO'
+ break
+ case '鐢熶骇璁㈠崟':
+ this.alertTitle = '鐢熶骇璁㈠崟鏁伴噺锛堝叡/涓級'
+ this.placeholder = '璇疯緭鍏ョ敓浜ц鍗曚俊鎭�'
+ ordertype = 'MO'
+ break
+ case '閿�鍞鍗�':
+ this.alertTitle = '閿�鍞鍗曟暟閲忥紙鍏�/涓級'
+ this.placeholder = '璇疯緭鍏ラ攢鍞鍗曚俊鎭�'
+ ordertype = 'SO'
+ break
}
-
- if (!this.userSheetValue) {
- return uni.$u.toast('鏀舵枡浜哄憳涓嶈兘涓虹┖锛�')
- }
-
- if (!this.sqty) {
- return uni.$u.toast('鏀舵枡鏁伴噺涓嶈兘涓虹┖锛�')
- }
-
- let t = this.topContent[0].list.find(i => i.tp === this.WXSheetValue)
-
- if (!t) {
- return uni.$u.toast('璇烽�夋嫨鍙敹鏂欑殑渚涘簲鍟嗭紒')
- }
-
- if (!this.ngqtyArr[0].ngqty && (parseFloat(this.sqty) > parseFloat(t.fqty) - parseFloat(t.sqty) -
- parseFloat(t
- .ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
- return uni.$u.toast('鏀舵枡鏁伴噺涓嶈兘澶т簬璇ヤ緵搴斿晢鐨勫彲鏀舵敹鏂欙紒')
- }
-
- // 涓嶈壇鍘熷洜
- const defectlist = []
- //涓嶈壇鏁伴噺
- let ngqtyNumber = 0
-
- this.ngqtyArr.forEach(i => {
- if (i.badSheetValue.toString().length > 0) {
- let codeArr = []
- ngqtyNumber += parseFloat(i.ngqty)
- i.badSheetValue.split(',').forEach(j => {
- codeArr.push(this.badSelectArr.find(i => i.name === j).code)
- })
- defectlist.push({
- badqty: i.ngqty,
- defect_code: codeArr.join(',')
- })
- }
- })
-
- if ((parseFloat(this.sqty) + parseFloat(ngqtyNumber) > parseFloat(t.fqty) - parseFloat(t
- .sqty) - parseFloat(t.ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
- return uni.$u.toast('鏀舵枡鏁伴噺+涓嶈壇鏁伴噺涓嶈兘澶т簬璇ヤ緵搴斿晢鐨勫彲鏀舵敹鏂欙紒')
- }
-
-
- const D = {
- rightcode: '0601',
- partcode: this.topContent[0].partnumber,
- qty: parseFloat(this.sqty),
- onelabqty: parseFloat(this.sqty)
- }
- const {
- data: R
- } = await LabelBarCode(D)
const data = {
- mesordercode: this.topContent[0].wo_code, // 宸ュ崟缂栧彿
- partcode: this.topContent[0].partnumber, // 浜у搧缂栫爜
- stepseq: this.topContent[0].seq, // 宸ュ簭搴忓彿
- stepcode: this.topContent[0].stepcode, // 宸ュ簭缂栫爜
- wxcode: this.WXSheetList.find(i => i.name === this.WXSheetValue).code, // 澶栧崗渚涘簲鍟嗙紪鐮�
- inuser: this.userSheetList.find(i => i.username === this.userSheetValue).usercode, // 鍙戞枡浜哄憳
- taskqty: this.topContent[0].planqty, // 浠诲姟鏁伴噺
- sqty: this.sqty, // 鏀舵枡鏁伴噺
- // ngqty: !this.ngqty ? 0 : this.ngqty,
- remarks: this.notes,
- defectlist,
- inbarcode: R[0].labcode, //鍏ュ簱鏉$爜
+ ordertype,
+ partcode: this.tagArr.map(i => i.code).join(','),
+ Ratetime: this.calendarRange,
+
+ }
+ const {
+ data: res
+ } = await ProductionScheduleKanban(data)
+
+ this.collapseArr = res
+ this.collapseArrAll = res
+ this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[
+ 1]
+
+ },
+
+
+ //杈撳叆妗嗗洖杞︾‘璁や簨浠�
+ confirmInputBoxValue(val) {
+ this.collapseArr = this.collapseArrAll.filter((p) => {
+ return p.ordercode.indexOf(val) !== -1
+ })
+
+
+ switch (this.radiovalue) {
+ case '鐢熶骇宸ュ崟':
+ this.alertTitle = '宸ュ崟鏁伴噺锛堝叡/涓級'
+ break
+ case '鐢熶骇璁㈠崟':
+ this.alertTitle = '鐢熶骇璁㈠崟鏁伴噺锛堝叡/涓級'
+ break
+ case '閿�鍞鍗�':
+ this.alertTitle = '閿�鍞鍗曟暟閲忥紙鍏�/涓級'
+ break
+ }
+ this.alertTitle = this.alertTitle.split('/')[0] + this.collapseArr.length + this.alertTitle.split('/')[
+ 1]
+
+ },
+
+ // 鐐瑰嚮鎵爜
+ scanClick() {
+ this.topScanClick()
+ },
+
+ // 鎵爜妗嗙偣鍑�
+ topScanClick() {
+ let that = this;
+
+ uni.scanCode({
+ onlyFromCamera: true,
+ // scanType: ['barCode', 'qrCode'],
+ scanType: ['qrCode'],
+ success: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ that.scanContent = res.result;
+
+ that.getCheckScanDeviceQrCodeData(that.scanContent);
+ },
+ complete: function(res) {
+
+ },
+ fail: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ }
+
+ });
+ },
+
+ getCheckScanDeviceQrCodeData(code) {
+ this.inputBoxValue = code
+ this.confirmInputBoxValue(this.inputBoxValue)
+ },
+
+
+ // 寮瑰嚭灞傛敹璧�
+ popupClose() {
+ this.getProductionScheduleKanban()
+ this.popupShow = false
+ },
+
+ // 寮瑰嚭灞傚脊鍑�
+ popupOpen() {
+
+ },
+
+ // 閫夋嫨浜у搧
+ chosePart() {
+ let arr = []
+ this.tagArr.forEach(i => {
+ arr.push(i.code + '/' + i.name)
+ })
+ uni.navigateTo({
+ url: '../znfx/chda?param=' + JSON.stringify(arr)
+ });
+ },
+
+ // tag鏍囩鍏抽棴
+ tagClose(val) {
+ this.tagArr.forEach((i, j) => {
+ if (i.code === val.code) {
+ i.close = false
+ this.tagArr.splice(j, 1)
+ }
+ })
+ },
+
+ // 鏃堕棿鑼冨洿鍒囨崲
+ dateChange(val) {
+ if (val === 'today') {
+ this.today = false
+ this.month = true
+ this.custom = true
+ this.calendarRange = new Date().toISOString().slice(0, 10) + '~' + new Date().toISOString().slice(0,
+ 10)
+ } else if (val === 'month') {
+ this.today = true
+ this.month = false
+ this.custom = true
+
+ this.calendarRange = new Date().getFullYear() + '-' + (new Date().getMonth() + 1).toString().padStart(
+ 2, '0') + '-01' + '~' + new Date().toISOString().slice(0, 10)
+
+ } else if (val === 'custom') {
+ this.today = true
+ this.month = true
+ this.custom = false
+ this.calendarRange = new Date().getFullYear() + '-' + (new Date().getMonth() + 1).toString().padStart(
+ 2, '0') + '-01' + '~' + new Date().toISOString().slice(0, 10)
+ }
+ },
+
+ // 鏃ュ巻鏃堕棿鐐瑰嚮
+ calendarClick() {
+ this.$refs.calendar.open();
+ },
+
+ // 鏃ュ巻纭畾浜嬩欢鐐瑰嚮
+ calendarConfirm(val) {
+ if (val.range.before < val.range.after) {
+ this.calendarRange = val.range.before + '~' + val.range.after
+ } else {
+ this.calendarRange = val.range.after + '~' + val.range.before
}
- console.log(JSON.parse(JSON.stringify(data)), 6)
-
- this.isDisabledSubmitButton = true
- const res = await SavaMesOrderStepIn(data)
-
- if (res.code === '200') {
- uni.$u.toast('鏀舵枡鎴愬姛锛�')
-
- this.WXSheetValue = ''
- this.userSheetValue = ''
- this.checkBoxValue = ''
- this.badSheetValue = ''
- this.sqty = null
- this.ngqty = null
- this.notes = null
- this.topContent = []
-
- this.isDisabledSubmitButton = false
+ if (val.range.before === '') {
+ this.calendarRange = new Date().toISOString().slice(0, 10) + '~' + val.range.after
}
+ if (val.range.after === '') {
+ this.calendarRange = val.range.before + '~' + new Date().toISOString().slice(0, 10)
+ }
+ if (val.range.before === '' && val.range.after === '') {
+ this.calendarRange = new Date().toISOString().slice(0, 10) + '~' + new Date().toISOString().slice(0,
+ 10)
+ }
+ // this.getData()
+ },
- }
+
+ // 鍗曢�夋寜閽垏鎹�
+ groupChange(val) {
+ console.log(val)
+ },
+
+
+
+
+
+
+
+
+
+
}
}
</script>
@@ -624,43 +565,74 @@
display: block;
}
- ::v-deep .u-action-sheet {
- max-height: 600rpx !important;
- overflow: auto !important;
+ ::v-deep .u-alert__text--info--light {
+ margin-bottom: 0;
+ font-size: 32rpx !important;
+ padding-left: 10rpx;
+ color: #212121 !important;
+ font-weight: lighter;
}
- ::v-deep .u-checkbox-label--right {
- padding: 30rpx;
- border-bottom: 1rpx solid #eee;
+ ::v-deep .u-alert--info--light {
+ background-color: rgba(255, 255, 255, 0.7);
}
- .custominputClass {
- width: 412rpx;
- display: flex;
- justify-content: space-between;
- border: 3rpx #eff0f1 solid;
- border-radius: 10rpx;
- padding: 0 16rpx;
- line-height: 68rpx;
+ ::v-deep .u-steps-item__wrapper {
+ background-color: #eee;
}
-
- .badSheetClass {
- position: relative;
+ ::v-deep .u-steps-item__line--column {
+ display: none;
}
- .badNumber {
- position: absolute;
- top: 20rpx;
- left: 20rpx;
- font-size: 26rpx;
- color: rgb(0, 102, 255)
+ ::v-deep .u-slide-right-enter-active {
+ width: 70%;
}
- .trash {
- position: absolute;
- top: 20rpx;
- right: 30rpx;
- font-size: 26rpx;
+ ::v-deep .uicon-calendar {
+ font-size: 36rpx !important;
+ }
+
+ ::v-deep .u-cell__title-text {
+ font-size: 28rpx;
+ color: #212121;
+ }
+
+ ::v-deep .u-cell__value {
+ font-size: 28rpx;
+ // color: transparent;
+ color: #212121;
+
+ }
+
+ ::v-deep .u-cell__label {
+ margin-top: 0;
+ line-height: 12px;
+ }
+
+ ::v-deep .uicon-arrow-right {
+ font-size: 14px !important;
+ color: #212121 !important;
+ }
+
+ ::v-deep .u-line-progress__text {
+ // margin-right: -20px;
+ // color: #212121;
+ // width: 100px;
+ // margin-top: 10px;
+ display: none;
+
+ }
+
+ ::v-deep .u-text__value--content {
+ font-size: 12px !important;
+ }
+
+ ::v-deep .u-tag__close {
+ background: #436df5 !important;
+ }
+
+ ::v-deep .u-cell__body {
+ padding-bottom: 40rpx;
}
</style>
\ No newline at end of file
diff --git a/pages/wwgl/wxsl2.vue b/pages/wwgl/wxsl2.vue
new file mode 100644
index 0000000..9f04982
--- /dev/null
+++ b/pages/wwgl/wxsl2.vue
@@ -0,0 +1,682 @@
+<template>
+ <view>
+ <page-nav title="濮斿鏀舵枡"></page-nav>
+
+
+ <view v-show="topContent.length===0">
+ <div class="sacnBody">
+ <div class="scanImg" @click="topScanClick"></div>
+ <div class="scanText">鎵弿浠诲姟鏉$爜</div>
+ </div>
+ </view>
+
+ <view v-show="topContent.length!==0" class="mainContent">
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bolder;">
+ 鏀舵枡淇℃伅
+ </view>
+ </view>
+ </view>
+
+ <view class="marginLeft20 marginRight20" style="height: 410rpx;" v-if="topContent.length!==0">
+ <view class="marginBottom20" style="display: flex;">
+ <!-- v-for="item in purchorderArr" -->
+ <view class="flex_column titleFont">
+ <view>宸ュ崟缂栧彿锛�</view>
+ <view>浜у搧缂栫爜锛�</view>
+ <view>浜у搧鍚嶇О锛�</view>
+ <view>浜у搧瑙勬牸锛�</view>
+ <view>褰撳墠宸ュ簭锛�</view>
+ <view>浠诲姟鏁伴噺锛�</view>
+ <view>鏈敹/宸叉敹锛�</view>
+ <view>涓嬮亾宸ュ簭锛�</view>
+ </view>
+ <view class="flex_column contentFont">
+ <view>{{topContent[0].wo_code}}</view>
+ <view>{{topContent[0].partnumber}}</view>
+ <view>{{topContent[0].partname}}</view>
+ <view>{{topContent[0].partspec?topContent[0].partspec:'/'}}</view>
+ <view>{{topContent[0].stepname}}</view>
+ <view>{{topContent[0].planqty}}</view>
+ <view>{{topContent[0].startqty+'/'+topContent[0].reportqty}}</view>
+ <view>{{topContent[0].nextstepname?topContent[0].nextstepname:'/'}}</view>
+ </view>
+ </view>
+ </view>
+
+ </view>
+
+
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bolder;">
+ 鏀舵枡鎿嶄綔
+ </view>
+ </view>
+ </view>
+
+ <view class="flex_column">
+
+ <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
+ <view style="display: flex;" class="titleFont">
+ <view style="color: red;margin-right: 6rpx;">*</view> 澶栧崗渚涙柟
+ </view>
+ <view style="margin-left: 20rpx;">
+ <view @click='WXSheetClick' class="custominputClass">
+ <view v-show='WXSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+ <view v-show='WXSheetValue!==""' class="ellipsis" style="width: 390rpx;">
+ {{WXSheetValue}}
+ </view>
+ <u-icon :name="!WXSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+ </view>
+ </view>
+
+ <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
+ <view style="display: flex;" class="titleFont">
+ <view style="color: red;margin-right: 6rpx;">*</view> 鏀舵枡浜哄憳
+ </view>
+ <view style="margin-left: 20rpx;">
+ <view @click='userSheetClick' class="custominputClass">
+ <view v-show='userSheetValue===""' style="color: rgb(192, 196, 204);">璇烽�夋嫨</view>
+ <view v-show='userSheetValue!==""' class="ellipsis" style="width: 390rpx;">
+ {{userSheetValue}}
+ </view>
+ <u-icon :name="!userSheetShow?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+ </view>
+ </view>
+
+
+ <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
+ <view style="color: red;margin-right: 6rpx;">*</view> 鏀舵枡鏁伴噺
+ <view style="margin-left: 20rpx;">
+ <view class='inputClass'>
+ <u--input placeholder="璇疯緭鍏�" border="surround" type='number' v-model="sqty">
+ </u--input>
+ </view>
+ </view>
+ </view>
+
+
+
+ </view>
+
+
+
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+ <view class="head" v-if="topContent.length!==0">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title" style="font-weight: bolder;">
+ 鍙敹鏂欎緵搴斿晢
+ </view>
+ </view>
+ </view>
+
+ <view class="flex_column marginLeft20 marginRight20 marginBottom20 titleFont">
+ <view v-for='(i,index) in topContent[0].list'
+ v-if="parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty)- parseFloat(i.materielbad_qty)>0"
+ style="display: flex;">
+ <view>{{index+1}}</view>
+ <view class="ellipsis" style="width: 400rpx;margin: 0 30rpx;">{{i.tp}}</view>
+ <view>
+ {{ parseFloat(i.fqty) - parseFloat(i.sqty) - parseFloat(i.ng_qty) - parseFloat(i.laborbad_qty)- parseFloat(i.materielbad_qty)}}
+ </view>
+ <!-- <view>浠�</view> -->
+ </view>
+
+ </view>
+
+ </view>
+
+ <u-gap height="10" bgColor="#eff0f1"></u-gap>
+
+
+ <view class="head marginLeft10 marginRight10" style="padding-bottom: 20rpx;">
+ <view class="head_block">
+ <view class="head_left">
+ <view class="head_bar"></view>
+ <view class="head_title">
+ 涓嶈壇缁熻
+ </view>
+ </view>
+
+ </view>
+ <view class="flex_column ">
+
+
+ <u-button type="primary" :plain="true" icon='plus-circle' text="娣诲姞"
+ style="width: 90%;margin: 20rpx auto;" @click="add"></u-button>
+
+
+ <view v-for='(item,index) in ngqtyArr' class="badSheetClass" :key="item.uid">
+
+ <view class="badNumber">{{index+1}}</view>
+ <u-icon name="trash" size="20" class="trash" v-if="ngqtyArr.length!==1"
+ @click="trashDelete(index)" color="rgb(0, 102, 255)"></u-icon>
+
+ <view class="flex_center titleFont" style="margin: 0rpx 20rpx 10rpx;line-height: 56rpx;">
+ <view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鏁伴噺锛�
+ <view class='inputClass'>
+ <u--input placeholder="璇疯緭鍏�" border="surround" :adjustPosition='false' type='number'
+ v-model="item.ngqty"></u--input>
+ </view>
+
+ </view>
+ <view class="flex_center" style="margin: 0rpx 20rpx 10rpx;line-height: 76rpx;">
+ <view style="display: flex;" class="titleFont">
+ <view style="color: #fff;margin-right: 6rpx;">*</view> 涓嶈壇鍘熷洜锛�
+ </view>
+ <view @click='badSheetClick(item)' class="custominputClass">
+ <view v-show='item.badSheetValue.length===0' style="color: rgb(192, 196, 204);">璇烽�夋嫨
+ </view>
+ <view v-show='item.badSheetValue.length!==0' class="ellipsis"
+ style="width: 390rpx;">
+ {{item.badSheetValue}}
+ </view>
+ <u-icon :name="item.arrowDown?'arrow-down-fill':'arrow-up-fill'"></u-icon>
+ </view>
+ </view>
+
+ <u-divider></u-divider>
+
+
+ </view>
+
+ </view>
+ </view>
+
+
+
+
+
+ </view>
+
+
+ <u-picker v-if="topContent.length!==0" :show="WXSheetShow" :columns="WXColumns" :itemHeight='55'
+ :closeOnClickOverlay='true' @close='WXSheetShow=false' @confirm='WXPickerConfirm'
+ @cancel='WXSheetShow=false'>
+ </u-picker>
+
+
+ <u-picker v-if="topContent.length!==0" :show="userSheetShow" :columns="userColumns" :itemHeight='55'
+ :closeOnClickOverlay='true' @close='userSheetShow=false' @confirm='userPickerConfirm'
+ @cancel='userSheetShow=false'>
+ </u-picker>
+
+
+ <!-- 涓嶈壇鍘熷洜 -->
+ <u-action-sheet v-if="topContent.length!==0" :actions="badSelectArr" :safeAreaInsetBottom='true'
+ :closeOnClickOverlay="true" :closeOnClickAction="true" @close="badSelectClose" :show="badSheetShow"
+ @select='badSheetSelect'>
+ <view style="min-height: 100rpx;">
+ <u-checkbox-group @change="checkboxChange" size='20px' v-model="checkBoxValue" iconPlacement="right"
+ placement="column">
+ <view v-for="(item,index) in badSelectArr">
+ <u-checkbox activeColor="rgb(0, 102, 255)" labelSize='18' :key="item.code+index"
+ :name='item.name' :label="item.name">
+ </u-checkbox>
+ </view>
+ </u-checkbox-group>
+ </view>
+ </u-action-sheet>
+
+
+
+
+ </view>
+
+ <u-button size="large" v-show="topContent.length!==0" :loading="isDisabledSubmitButton"
+ loadingText="姝e湪鎻愪氦,璇风◢绛�..." type="primary" @click="submit" text="鏀舵枡">
+ </u-button>
+
+
+ <!-- 鎮诞鐞� -->
+ <!-- <view v-show="topContent.length!==0&&!WXSheetShow&&!userSheetShow&&!badSheetShow" @click="topScanClick">
+ <drag-ball :x='$DeviceInformation.screenWidth*0.8' :y="$DeviceInformation.screenHeight*0.7"></drag-ball>
+ </view> -->
+
+ <!-- <scan-code></scan-code> -->
+
+
+ </view>
+</template>
+
+
+<script>
+ import {
+ MesOrderStepStart,
+ CustomerPermissions,
+ PersonPermissions,
+ DefectPermissions,
+ SavaMesOrderStepIn,
+ LabelBarCode
+ } from '../../config/api.js';
+ // import scanCode from '@/components/scan-code/scan-code.vue'
+
+ export default {
+ onLoad(option) {
+ if (option.orderstep) {
+ this.fromType = '1'
+ this.getMesOrderStepStart(option.orderstep)
+ } else {
+ this.fromType = '2'
+ }
+ },
+
+ onPullDownRefresh() {
+ setTimeout(() => {
+ this.init(() => {
+ uni.stopPullDownRefresh();
+ })
+ }, 1000);
+ },
+
+ data() {
+ return {
+ topRightMessageCount: '',
+
+ isDisabledSubmitButton: false,
+
+ topContent: [],
+ // {
+ // "wo_code": "MO-2023-06-0003_1",
+ // "partnumber": "308",
+ // "partname": "鐢垫睜鍖�",
+ // "partspec": "",
+ // "seq": "2",
+ // "stepcode": "ZSStep03",
+ // "stepname": "鍘绘瘺鍒�",
+ // "nextstepcode": "ZSStep06",
+ // "nextstepname": "鍖呰2",
+ // "stepdesc": "",
+ // "wkshopcode": "ZS001",
+ // "wkshopname": "娉ㄥ杞﹂棿",
+ // "planqty": 50.00,
+ // "startqty": 29.00,
+ // "noreportqty": 29.00,
+ // "reportqty": 21.00,
+ // "noputqty": 0.0,
+ // "list": null
+ // }, //鎵弿浠诲姟鏉$爜鎵�甯﹀嚭鏉ョ殑鍐呭
+
+ WXSheetValue: '',
+ WXSheetShow: false, //涓婃媺鍒楄〃鏄惁灞曞紑
+ WXColumns: [],
+ WXSheetList: [],
+
+
+ userSheetValue: '',
+ userSheetShow: false,
+ userColumns: [],
+ userSheetList: [],
+
+ sqty: null,
+ ngqty: null,
+
+
+ badSelectArr: [],
+ checkBoxValue: '',
+ badSheetShow: false,
+ badSheetValue: '',
+
+
+ ngqtyArr: [{
+ uid: new Date().getTime(),
+ ngqty: '',
+ badSheetValue: '',
+ arrowDown: true //鍚戜笅绠ご
+ },
+ // {
+ // ngqty: '',
+ // badSheetValue: '',
+ // arrowDown: true //鍚戜笅绠ご
+ // },
+ ], //涓嶈壇鏁伴噺銆佷笉鑹師鍥犳暟缁�
+
+
+
+ notes: null, //澶囨敞
+
+ fromType: '1'
+
+
+
+
+ }
+ },
+ created() {
+
+ },
+ mounted() {
+ this.init()
+
+
+ // this.getMesOrderStepStart('MO-2023-09-0002_1;106')
+
+
+ this.handleSelectAllApi()
+ },
+ methods: {
+ init() {
+ uni.stopPullDownRefresh();
+ },
+ async handleSelectAllApi() {
+ await this.getCustomerPermissions()
+ await this.getPersonPermissions()
+ await this.getDefectPermissions()
+ },
+
+ async getPersonPermissions(val) {
+ const data = {
+ usercode: val
+ }
+ const res = await PersonPermissions(this.global.formatData(data))
+ this.userSheetList = res.data
+ this.userColumns = [res.data.map(i => i.username)]
+ },
+
+ async getCustomerPermissions() {
+
+ const res = await CustomerPermissions()
+ this.WXSheetList = res.data
+ this.WXColumns = [res.data.map(i => i.name)]
+ },
+ // 鑾峰彇涓嶈壇鍘熷洜
+ async getDefectPermissions() {
+ const res = await DefectPermissions()
+ if (res.code === '200') {
+ this.badSelectArr = res.data
+ }
+ },
+
+
+ async getMesOrderStepStart(val) {
+ const data = {
+ OperType: 'WX',
+ SelectType: 'IN',
+ wocode: val ? val.split(';')[0] : '',
+ stepcode: val ? val.split(';')[1] : ''
+ }
+
+ const res = await MesOrderStepStart(this.global.formatData(data))
+ console.log(res, 3)
+
+ if (res.code === '200') {
+ // this.getCustomerPermissions(val)
+ // this.getMesOrderSelectUser(val)
+ // this.getDefectPermissions(val)
+ this.WXSheetValue = ''
+ this.userSheetValue = ''
+ this.checkBoxValue = ''
+ this.badSheetValue = ''
+ this.sqty = null
+ this.ngqty = null
+ this.notes = null
+ this.topContent = []
+ this.topContent.push(res.data)
+ }
+ // console.log(this.topContent,6)
+
+ },
+
+ // 浠诲姟鏉$爜 鐨勬壂鐮佹鐐瑰嚮
+ topScanClick() {
+ let that = this;
+
+ uni.scanCode({
+ onlyFromCamera: true,
+ // scanType: ['barCode', 'qrCode'],
+ scanType: ['qrCode'],
+ success: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+
+ that.getMesOrderStepStart(res.result)
+
+ },
+ complete: function(res) {
+
+ },
+ fail: function(res) {
+ console.log('鏉$爜绫诲瀷锛�' + res.scanType);
+ console.log('鏉$爜鍐呭锛�' + res.result);
+ }
+
+ });
+ },
+ badSheetClick(item) {
+ if (!item.ngqty) {
+ return uni.$u.toast('璇峰厛濉啓涓嶈壇鏁伴噺锛�')
+ }
+ item.arrowDown = !item.arrowDown
+
+ this.checkBoxValue = item.badSheetValue.split(',')
+ this.badSheetShow = true
+ },
+
+ badSheetSelect(val) {
+ console.log('鎵ц浜嗭紒')
+ },
+ checkboxChange(val) {
+ this.badSheetValue = val.join(',')
+ },
+
+
+ WXSheetClick() {
+ this.WXSheetShow = true
+ },
+
+ WXPickerConfirm(val) {
+ this.WXSheetValue = val.value[0]
+ this.WXSheetShow = false
+ },
+
+ userSheetClick() {
+ this.userSheetShow = true
+ },
+
+ userPickerConfirm(val) {
+ this.userSheetValue = val.value[0]
+ this.userSheetShow = false
+ },
+
+ // 娣诲姞
+ add() {
+
+ // if (this.ngqtyArr.find(i => i.badSheetValue === '')) {
+ // return uni.$u.toast('璇峰厛瀹屽杽鍓嶉潰涓嶈壇閫夐」锛�')
+ // }
+
+ this.ngqtyArr.unshift({
+ uid: new Date().getTime(),
+ ngqty: '',
+ badSheetValue: '',
+ arrowDown: true //鍚戜笅绠ご
+ })
+
+ },
+
+ //鍒犻櫎
+ trashDelete(index) {
+ this.ngqtyArr.splice(index, 1)
+ },
+
+ badSelectClose() {
+ let index = this.ngqtyArr.findIndex(i => !i.arrowDown)
+
+ this.ngqtyArr[index].badSheetValue = this.checkBoxValue.join(',')
+ this.ngqtyArr[index].arrowDown = true
+
+ this.checkBoxValue = []
+ this.badSheetShow = false
+ },
+
+
+ async submit() {
+
+ if (!this.WXSheetValue) {
+ return uni.$u.toast('澶栧崗渚涙柟涓嶈兘涓虹┖锛�')
+ }
+
+ if (!this.userSheetValue) {
+ return uni.$u.toast('鏀舵枡浜哄憳涓嶈兘涓虹┖锛�')
+ }
+
+ if (!this.sqty) {
+ return uni.$u.toast('鏀舵枡鏁伴噺涓嶈兘涓虹┖锛�')
+ }
+
+ let t = this.topContent[0].list.find(i => i.tp === this.WXSheetValue)
+
+ if (!t) {
+ return uni.$u.toast('璇烽�夋嫨鍙敹鏂欑殑渚涘簲鍟嗭紒')
+ }
+
+ if (!this.ngqtyArr[0].ngqty && (parseFloat(this.sqty) > parseFloat(t.fqty) - parseFloat(t.sqty) -
+ parseFloat(t
+ .ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
+ return uni.$u.toast('鏀舵枡鏁伴噺涓嶈兘澶т簬璇ヤ緵搴斿晢鐨勫彲鏀舵敹鏂欙紒')
+ }
+
+ // 涓嶈壇鍘熷洜
+ const defectlist = []
+ //涓嶈壇鏁伴噺
+ let ngqtyNumber = 0
+
+ this.ngqtyArr.forEach(i => {
+ if (i.badSheetValue.toString().length > 0) {
+ let codeArr = []
+ ngqtyNumber += parseFloat(i.ngqty)
+ i.badSheetValue.split(',').forEach(j => {
+ codeArr.push(this.badSelectArr.find(i => i.name === j).code)
+ })
+ defectlist.push({
+ badqty: i.ngqty,
+ defect_code: codeArr.join(',')
+ })
+ }
+ })
+
+ if ((parseFloat(this.sqty) + parseFloat(ngqtyNumber) > parseFloat(t.fqty) - parseFloat(t
+ .sqty) - parseFloat(t.ng_qty) - parseFloat(t.laborbad_qty) - parseFloat(t.materielbad_qty))) {
+ return uni.$u.toast('鏀舵枡鏁伴噺+涓嶈壇鏁伴噺涓嶈兘澶т簬璇ヤ緵搴斿晢鐨勫彲鏀舵敹鏂欙紒')
+ }
+
+
+ const D = {
+ rightcode: '0601',
+ partcode: this.topContent[0].partnumber,
+ qty: parseFloat(this.sqty),
+ onelabqty: parseFloat(this.sqty)
+ }
+ const {
+ data: R
+ } = await LabelBarCode(D)
+
+
+ const data = {
+ mesordercode: this.topContent[0].wo_code, // 宸ュ崟缂栧彿
+ partcode: this.topContent[0].partnumber, // 浜у搧缂栫爜
+ stepseq: this.topContent[0].seq, // 宸ュ簭搴忓彿
+ stepcode: this.topContent[0].stepcode, // 宸ュ簭缂栫爜
+ wxcode: this.WXSheetList.find(i => i.name === this.WXSheetValue).code, // 澶栧崗渚涘簲鍟嗙紪鐮�
+ inuser: this.userSheetList.find(i => i.username === this.userSheetValue).usercode, // 鍙戞枡浜哄憳
+ taskqty: this.topContent[0].planqty, // 浠诲姟鏁伴噺
+ sqty: this.sqty, // 鏀舵枡鏁伴噺
+ // ngqty: !this.ngqty ? 0 : this.ngqty,
+ remarks: this.notes,
+ defectlist,
+ inbarcode: R[0].labcode, //鍏ュ簱鏉$爜
+ }
+
+ console.log(JSON.parse(JSON.stringify(data)), 6)
+
+ this.isDisabledSubmitButton = true
+ const res = await SavaMesOrderStepIn(data)
+
+ if (res.code === '200') {
+ uni.$u.toast('鏀舵枡鎴愬姛锛�')
+
+ this.WXSheetValue = ''
+ this.userSheetValue = ''
+ this.checkBoxValue = ''
+ this.badSheetValue = ''
+ this.sqty = null
+ this.ngqty = null
+ this.notes = null
+ this.topContent = []
+
+
+ if (this.fromType === '1') {
+ let pages = getCurrentPages(); // 椤甸潰闆嗗悎
+ let beforePage = pages[pages.length - 2]; //涓婁竴涓〉闈�
+ beforePage.$vm.getProductionScheduleKanban()
+
+ uni.navigateBack()
+ }
+
+ this.isDisabledSubmitButton = false
+ }
+
+ }
+ }
+ }
+</script>
+
+<style lang="scss" scoped>
+ @import url('@/style/global.css');
+
+ ::v-deep .uicon-arrow-left>span {
+ display: block;
+ }
+
+ ::v-deep .u-action-sheet {
+ max-height: 600rpx !important;
+ overflow: auto !important;
+ }
+
+ ::v-deep .u-checkbox-label--right {
+ padding: 30rpx;
+ border-bottom: 1rpx solid #eee;
+ }
+
+ .custominputClass {
+ width: 412rpx;
+ display: flex;
+ justify-content: space-between;
+ border: 3rpx #eff0f1 solid;
+ border-radius: 10rpx;
+ padding: 0 16rpx;
+ line-height: 68rpx;
+ }
+
+
+ .badSheetClass {
+ position: relative;
+ }
+
+ .badNumber {
+ position: absolute;
+ top: 20rpx;
+ left: 20rpx;
+ font-size: 26rpx;
+ color: rgb(0, 102, 255)
+ }
+
+ .trash {
+ position: absolute;
+ top: 20rpx;
+ right: 30rpx;
+ font-size: 26rpx;
+ }
+</style>
\ No newline at end of file
diff --git a/pages/znfx/chda.vue b/pages/znfx/chda.vue
index 822afcf..5af2f7a 100644
--- a/pages/znfx/chda.vue
+++ b/pages/znfx/chda.vue
@@ -28,9 +28,9 @@
<view style="max-height: 540px;overflow: auto;">
<u-checkbox-group v-model="checkboxValue" iconPlacement="right" placement="column" @change="checkboxChange">
- <u-checkbox :key="item.code.trim()+'/'+item.name"
- :label="item.code.trim()+'/'+item.name" :labelSize='16' :size='16'
- :borderBottom='true' v-for="item in collapseArr" :name="item.code+'/'+item.name">
+ <u-checkbox :key="item.code.trim()+'/'+item.name" :label="item.code.trim()+'/'+item.name"
+ :labelSize='16' :size='16' :borderBottom='true' v-for="item in collapseArr"
+ :name="item.code+'/'+item.name">
</u-checkbox>
</u-checkbox-group>
</view>
@@ -72,6 +72,7 @@
inputBoxValue: '',
alertTitle: '',
+ collapseArrAll: [],
collapseArr: [],
checkboxValue: [],
@@ -89,11 +90,14 @@
init() {
uni.stopPullDownRefresh();
},
-
+
//杈撳叆妗嗗洖杞︾‘璁や簨浠�
confirmInputBoxValue(val) {
console.log('纭', val)
- this.getInventoryTreePermissions(val)
+ // this.getInventoryTreePermissions(val)
+ this.collapseArr = this.collapseArrAll.filter((p) => {
+ return p.code.indexOf(val) !== -1
+ })
},
@@ -101,7 +105,9 @@
const {
data: res
- } = await InventoryTreePermissions(param === undefined ? '' : param)
+ } = await InventoryTreePermissions()
+
+ this.collapseArrAll = res
this.collapseArr = res
this.alertTitle = '浜у搧锛堝叡' + res.length + '涓級'
},
diff --git a/pages/znfx/scjd.vue b/pages/znfx/scjd.vue
index c5b73aa..81ab0f3 100644
--- a/pages/znfx/scjd.vue
+++ b/pages/znfx/scjd.vue
@@ -47,9 +47,15 @@
:label="item.children.length===0?'鏈淳鍙�':''" :disabled='item.children.length===0'
v-for="item in collapseArr" :key="item.ordercode">
+
+ <view style="position: absolute;width: 200rpx;left: 30rpx;top:34px;font-size: 24rpx;color: #999;">
+ {{item.partname}} {{item.partspec}}
+ </view>
+
<!-- <view style="position: absolute;width: 26%;left: 44%;top:16px;"> -->
- <view style="position: absolute;width: 100px;left: 44%;top:16px;"
+ <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))"
inactiveColor="#d1d6f5" height="10" activeColor="#0659ff"></u-line-progress>
</view>
@@ -580,4 +586,8 @@
::v-deep .u-tag__close {
background: #436df5 !important;
}
+
+ ::v-deep .u-cell__body {
+ padding-bottom: 40rpx;
+ }
</style>
\ No newline at end of file
--
Gitblit v1.9.3