|
|
@@ -1,90 +1,321 @@
|
|
|
<template>
|
|
|
<view>
|
|
|
- <view class="col userInp" style="display: flex; align-items: center">
|
|
|
- <text class="label lable150 rx-cc">规格选择:</text>
|
|
|
- <!-- multiple -->
|
|
|
- <zxz-uni-data-select
|
|
|
- :localdata="localdataList"
|
|
|
- v-model="Usertype"
|
|
|
- @change="changeUserType"
|
|
|
- ></zxz-uni-data-select>
|
|
|
+ <view>
|
|
|
+ <view class="col userInp" style="display: flex; align-items: center">
|
|
|
+ <text class="label lable150 rx-cc">是否拆包</text>
|
|
|
+ <text
|
|
|
+ v-if="objData.isUnpack == '1' || isNewUnpack == 1"
|
|
|
+ style="
|
|
|
+ color: green;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 700;
|
|
|
+ margin-left: 15px;
|
|
|
+ "
|
|
|
+ >是</text
|
|
|
+ >
|
|
|
+ <text
|
|
|
+ v-else
|
|
|
+ style="
|
|
|
+ color: green;
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: 700;
|
|
|
+ margin-left: 15px;
|
|
|
+ "
|
|
|
+ >否</text
|
|
|
+ >
|
|
|
+
|
|
|
+ <u-button
|
|
|
+ size="small"
|
|
|
+ class="u-reset-button"
|
|
|
+ type="primary"
|
|
|
+ style="margin-left: 40px; width: 80px"
|
|
|
+ @click="checkUnpack"
|
|
|
+ v-if="objData.isUnpack != '1'"
|
|
|
+ >手动拆包</u-button
|
|
|
+ >
|
|
|
+ </view>
|
|
|
</view>
|
|
|
|
|
|
- <view class="col userInp" style="display: flex; align-items: center">
|
|
|
- <text class="label lable150 rx-cc">包装选择:</text>
|
|
|
- <!-- multiple -->
|
|
|
- <zxz-uni-data-select
|
|
|
- :localdata="warehouseSpecTypeList"
|
|
|
- v-model="warehouseId"
|
|
|
- @change="changeWarehouseType"
|
|
|
- disabled
|
|
|
- ></zxz-uni-data-select>
|
|
|
- </view>
|
|
|
+ <view v-if="objData.isUnpack == '1' && (isNewUnpack == 0 || !isNewUnpack)">
|
|
|
+ <view class="col userInp" style="display: flex; align-items: center">
|
|
|
+ <text class="label lable150 rx-cc">规格选择:</text>
|
|
|
+ <!-- multiple -->
|
|
|
+ <zxz-uni-data-select
|
|
|
+ :localdata="localdataList"
|
|
|
+ v-model="Usertype"
|
|
|
+ @change="changeUserType"
|
|
|
+ ></zxz-uni-data-select>
|
|
|
+ </view>
|
|
|
|
|
|
- <view v-if="warehouseId != 1">
|
|
|
- <view v-for="(item, i) in DispositionList" :key="i">
|
|
|
- <view class="title_box rx-bc">
|
|
|
- <!-- 最小包装单元 -->
|
|
|
- <view class="name">{{ item.titel }}</view>
|
|
|
+ <view class="col userInp" style="display: flex; align-items: center">
|
|
|
+ <text class="label lable150 rx-cc">包装选择:</text>
|
|
|
+ <!-- multiple -->
|
|
|
+ <zxz-uni-data-select
|
|
|
+ :localdata="warehouseSpecTypeList"
|
|
|
+ v-model="warehouseId"
|
|
|
+ @change="changeWarehouseType"
|
|
|
+ disabled
|
|
|
+ ></zxz-uni-data-select>
|
|
|
+ </view>
|
|
|
|
|
|
- <!-- <view class="btn_box rx-bc" @click="handCancelPacking">
|
|
|
+ <view v-if="warehouseId != 1">
|
|
|
+ <view v-for="(item, i) in DispositionList" :key="i">
|
|
|
+ <view class="title_box rx-bc">
|
|
|
+ <!-- 最小包装单元 -->
|
|
|
+ <view class="name">{{ item.titel }}</view>
|
|
|
+
|
|
|
+ <!-- <view class="btn_box rx-bc" @click="handCancelPacking">
|
|
|
重置打包
|
|
|
</view> -->
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="material">
|
|
|
+ <view class="content_table">
|
|
|
+ <view class="item">
|
|
|
+ <view class="lable rx-cc">包装总数 </view>
|
|
|
+ <view class="content content_num">
|
|
|
+ <input
|
|
|
+ class="uni-input"
|
|
|
+ v-model="formedNumLast"
|
|
|
+ type="number"
|
|
|
+ disabled
|
|
|
+ @input="changeinput"
|
|
|
+ />
|
|
|
+ <view class="unit">{{ item.packageUnit }}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="item rx-sc">
|
|
|
+ <view class="rx ww55">
|
|
|
+ <view class="lable lable150 rx-cc">{{ item.titel }}单元</view>
|
|
|
+ <view class="content content_num">
|
|
|
+ <input
|
|
|
+ class="uni-input"
|
|
|
+ v-model="item.packageCell"
|
|
|
+ disabled
|
|
|
+ />
|
|
|
+ <view style="max-width: 100rpx; font-size: 24rpx">{{
|
|
|
+ item.packageUnit
|
|
|
+ }}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="rx ww45">
|
|
|
+ <view class="rx-cc ww80">
|
|
|
+ /<view style="max-width: 100rpx; font-size: 24rpx">{{
|
|
|
+ item.conversionUnit
|
|
|
+ }}</view>
|
|
|
+ </view>
|
|
|
+ <view class="content rx-sc">
|
|
|
+ <!-- <zxz-uni-data-select :localdata="unitList" v-model="unit" dataValue='Key'
|
|
|
+ format='{Value}' dataKey="Key" filterable :clear='false'></zxz-uni-data-select> -->
|
|
|
+
|
|
|
+ <!-- <view class="penalize" @click="handleSplit">确认</view> -->
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="content_table2" v-if="item.splitList.length">
|
|
|
+ <view class="head row rx-sc">
|
|
|
+ <view class="item ww10">序号</view>
|
|
|
+ <view class="item ww15">数量</view>
|
|
|
+ <view class="item ww20">类型</view>
|
|
|
+ <view class="item ww20">包装层级</view>
|
|
|
+ <!-- <view class="item ww20">计量数</view> -->
|
|
|
+ <view class="item ww40">包装编码</view>
|
|
|
+ <!-- <view class="item ww10 jsColor" @click="calculation()" v-if="clientEnvironmentId != 3">计算</view>
|
|
|
+ <view class="item ww10" v-if="clientEnvironmentId == 3"></view> -->
|
|
|
+ </view>
|
|
|
+ <view class="table">
|
|
|
+ <u-list
|
|
|
+ @scrolltolower="scrolltolower"
|
|
|
+ class="z_list"
|
|
|
+ style="height: 100% !important"
|
|
|
+ >
|
|
|
+ <view
|
|
|
+ class="tr row rx-sc"
|
|
|
+ v-for="(it, idx) in item.splitList"
|
|
|
+ :key="idx"
|
|
|
+ >
|
|
|
+ <view class="item ww10 rx-cc">{{ idx + 1 }}</view>
|
|
|
+ <view class="item ww15 rx-sc">
|
|
|
+ <view> {{ it.feedQuantity }}</view>
|
|
|
+ </view>
|
|
|
+ <view class="item ww20 rx-sc">
|
|
|
+ <view v-if="it.rootCategoryLevelId == 2">在制品</view>
|
|
|
+ <view v-else-if="it.rootCategoryLevelId == 23"
|
|
|
+ >半成品</view
|
|
|
+ >
|
|
|
+ <view v-else-if="it.rootCategoryLevelId == 9">产品</view>
|
|
|
+ <view v-else-if="it.rootCategoryLevelId == 28">废品</view>
|
|
|
+ <view v-else>{{ "" }}</view>
|
|
|
+ </view>
|
|
|
+ <view class="item ww20 rx-cc">
|
|
|
+ <view v-if="it.packingType == 4">外包装</view>
|
|
|
+ <view v-else-if="it.packingType == 2">最小包装</view>
|
|
|
+ <view v-else-if="it.packingType == 3">内包装</view>
|
|
|
+ <view v-else>计量</view>
|
|
|
+ </view>
|
|
|
+ <view class="item ww40">
|
|
|
+ {{ it.packingCode }}
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </u-list>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
+ </view>
|
|
|
|
|
|
- <view class="material">
|
|
|
- <view class="content_table">
|
|
|
- <view class="item">
|
|
|
- <view class="lable rx-cc">包装总数 </view>
|
|
|
- <view class="content content_num">
|
|
|
+ <SearchPopup mode="center" v-if="show">
|
|
|
+ <template v-slot:list>
|
|
|
+ <view class="search_list">
|
|
|
+ <u-form
|
|
|
+ labelPosition="left"
|
|
|
+ :model="formData"
|
|
|
+ labelWidth="180"
|
|
|
+ labelAlign="left"
|
|
|
+ class="baseForm"
|
|
|
+ >
|
|
|
+ <u-form-item
|
|
|
+ label="外包装数:"
|
|
|
+ class="required-form"
|
|
|
+ borderBottom
|
|
|
+ prop="assetType"
|
|
|
+ >
|
|
|
<input
|
|
|
class="uni-input"
|
|
|
- v-model="formedNumLast"
|
|
|
- type="number"
|
|
|
- disabled
|
|
|
- @input="changeinput"
|
|
|
+ v-model="formData.wPackNum"
|
|
|
+ style="width: 280rpx"
|
|
|
+ placeholder="外包装数"
|
|
|
/>
|
|
|
- <view class="unit">{{ item.packageUnit }}</view>
|
|
|
- </view>
|
|
|
+ / {{ splitList[0].unit }}
|
|
|
+ </u-form-item>
|
|
|
+ </u-form>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-slot:operate>
|
|
|
+ <view class="operate_box rx-bc">
|
|
|
+ <u-button
|
|
|
+ size="small"
|
|
|
+ class="u-reset-button"
|
|
|
+ @click="calculationClose()"
|
|
|
+ >
|
|
|
+ 取消
|
|
|
+ </u-button>
|
|
|
+
|
|
|
+ <u-button
|
|
|
+ type="success"
|
|
|
+ size="small"
|
|
|
+ class="u-reset-button"
|
|
|
+ @click="calculationReset()"
|
|
|
+ >
|
|
|
+ 重置
|
|
|
+ </u-button>
|
|
|
+
|
|
|
+ <u-button
|
|
|
+ type="success"
|
|
|
+ size="small"
|
|
|
+ class="u-reset-button"
|
|
|
+ @click="calculationSave()"
|
|
|
+ >
|
|
|
+ 确定
|
|
|
+ </u-button>
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ </SearchPopup>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view v-if="isNewUnpack == 1">
|
|
|
+ <view class="col userInp" style="display: flex; align-items: center">
|
|
|
+ <text class="label lable150 rx-cc">规格选择:</text>
|
|
|
+ <!-- multiple -->
|
|
|
+ <zxz-uni-data-select
|
|
|
+ :localdata="localdataList"
|
|
|
+ v-model="Usertype"
|
|
|
+ @change="changeUserType"
|
|
|
+ ></zxz-uni-data-select>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view class="material">
|
|
|
+ <view class="content_table">
|
|
|
+ <view class="item">
|
|
|
+ <view class="lable rx-cc">总数</view>
|
|
|
+ <view class="content content_num">
|
|
|
+ <input
|
|
|
+ class="uni-el-input"
|
|
|
+ v-model="formedNumLast"
|
|
|
+ type="number"
|
|
|
+ @input="changeinput"
|
|
|
+ disabled
|
|
|
+ style="width: 200px"
|
|
|
+ />
|
|
|
+ {{ packageUnit }}
|
|
|
</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ <view v-if="warehouseId != 1">
|
|
|
+ <view v-for="(item, i) in DispositionList" :key="i">
|
|
|
+ <view class="title_box rx-bc">
|
|
|
+ <!-- 最小包装单元 -->
|
|
|
+ <view class="name">{{ item.titel }}</view>
|
|
|
+ </view>
|
|
|
|
|
|
- <view class="item rx-sc">
|
|
|
- <view class="rx ww55">
|
|
|
- <view class="lable lable150 rx-cc">{{ item.titel }}单元</view>
|
|
|
+ <view class="material">
|
|
|
+ <view class="content_table">
|
|
|
+ <view class="item rx-sc">
|
|
|
+ <view class="lable rx-cc lable150">包装总数 </view>
|
|
|
<view class="content content_num">
|
|
|
<input
|
|
|
class="uni-input"
|
|
|
- v-model="item.packageCell"
|
|
|
+ v-model="item.formedNumLast"
|
|
|
+ type="number"
|
|
|
disabled
|
|
|
+ @input="changeinput"
|
|
|
/>
|
|
|
- <view style="max-width: 100rpx; font-size: 24rpx">{{
|
|
|
- item.packageUnit
|
|
|
- }}</view>
|
|
|
+ <view class="unit">{{ item.conversionUnit }}</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
- <view class="rx ww45">
|
|
|
- <view class="rx-cc ww80">
|
|
|
- /<view style="max-width: 100rpx; font-size: 24rpx">{{
|
|
|
- item.conversionUnit
|
|
|
- }}</view>
|
|
|
+ <view class="item rx-sc">
|
|
|
+ <view class="rx ww55">
|
|
|
+ <view class="lable lable150 rx-cc">{{ item.titel }}单元</view>
|
|
|
+ <view class="content content_num">
|
|
|
+ <input
|
|
|
+ class="uni-input"
|
|
|
+ v-model="item.packageCell"
|
|
|
+ @input="changeInputPack(item, i)"
|
|
|
+ :disabled="!item.conversionUnit"
|
|
|
+ />
|
|
|
+ <view style="max-width: 100rpx; font-size: 24rpx">{{
|
|
|
+ item.packageUnit
|
|
|
+ }}</view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
- <view class="content rx-sc">
|
|
|
- <!-- <zxz-uni-data-select :localdata="unitList" v-model="unit" dataValue='Key'
|
|
|
- format='{Value}' dataKey="Key" filterable :clear='false'></zxz-uni-data-select> -->
|
|
|
|
|
|
- <!-- <view class="penalize" @click="handleSplit">确认</view> -->
|
|
|
+ <view class="rx ww45">
|
|
|
+ <view class="rx-cc ww80">
|
|
|
+ /<view style="max-width: 100rpx; font-size: 24rpx">{{
|
|
|
+ item.conversionUnit
|
|
|
+ }}</view>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
+ </view>
|
|
|
|
|
|
- <view class="content_table2" v-if="item.splitList.length">
|
|
|
+ <view v-for="item in DispositionList" :key="item.id">
|
|
|
+ <view class="content_table2" v-if="item.splitList.length != 0">
|
|
|
<view class="head row rx-sc">
|
|
|
<view class="item ww10">序号</view>
|
|
|
<view class="item ww15">数量</view>
|
|
|
<view class="item ww20">类型</view>
|
|
|
- <view class="item ww20">包装层级</view>
|
|
|
+ <view class="item ww20">包装规格</view>
|
|
|
<!-- <view class="item ww20">计量数</view> -->
|
|
|
<view class="item ww40">包装编码</view>
|
|
|
<!-- <view class="item ww10 jsColor" @click="calculation()" v-if="clientEnvironmentId != 3">计算</view>
|
|
|
@@ -113,10 +344,7 @@
|
|
|
<view v-else>{{ "" }}</view>
|
|
|
</view>
|
|
|
<view class="item ww20 rx-cc">
|
|
|
- <view v-if="it.packingType == 4">外包装</view>
|
|
|
- <view v-else-if="it.packingType == 2">最小包装</view>
|
|
|
- <view v-else-if="it.packingType == 3">内包装</view>
|
|
|
- <view v-else>计量</view>
|
|
|
+ <view>{{ packageDispositionData }}</view>
|
|
|
</view>
|
|
|
<view class="item ww40">
|
|
|
{{ it.packingCode }}
|
|
|
@@ -129,64 +357,19 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
- <SearchPopup mode="center" v-if="show">
|
|
|
- <template v-slot:list>
|
|
|
- <view class="search_list">
|
|
|
- <u-form
|
|
|
- labelPosition="left"
|
|
|
- :model="formData"
|
|
|
- labelWidth="180"
|
|
|
- labelAlign="left"
|
|
|
- class="baseForm"
|
|
|
- >
|
|
|
- <u-form-item
|
|
|
- label="外包装数:"
|
|
|
- class="required-form"
|
|
|
- borderBottom
|
|
|
- prop="assetType"
|
|
|
- >
|
|
|
- <input
|
|
|
- class="uni-input"
|
|
|
- v-model="formData.wPackNum"
|
|
|
- style="width: 280rpx"
|
|
|
- placeholder="外包装数"
|
|
|
- />
|
|
|
- / {{ splitList[0].unit }}
|
|
|
- </u-form-item>
|
|
|
- </u-form>
|
|
|
- </view>
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-slot:operate>
|
|
|
- <view class="operate_box rx-bc">
|
|
|
- <u-button
|
|
|
- size="small"
|
|
|
- class="u-reset-button"
|
|
|
- @click="calculationClose()"
|
|
|
- >
|
|
|
- 取消
|
|
|
- </u-button>
|
|
|
-
|
|
|
- <u-button
|
|
|
- type="success"
|
|
|
- size="small"
|
|
|
- class="u-reset-button"
|
|
|
- @click="calculationReset()"
|
|
|
- >
|
|
|
- 重置
|
|
|
- </u-button>
|
|
|
-
|
|
|
- <u-button
|
|
|
- type="success"
|
|
|
- size="small"
|
|
|
- class="u-reset-button"
|
|
|
- @click="calculationSave()"
|
|
|
- >
|
|
|
- 确定
|
|
|
- </u-button>
|
|
|
- </view>
|
|
|
- </template>
|
|
|
- </SearchPopup>
|
|
|
+ <view>
|
|
|
+ <uni-popup ref="alertDialog" type="dialog">
|
|
|
+ <uni-popup-dialog
|
|
|
+ type="warn"
|
|
|
+ cancelText="取消"
|
|
|
+ confirmText="确定"
|
|
|
+ title="提示"
|
|
|
+ content="此操作将进行拆包, 是否继续?"
|
|
|
+ @confirm="dialogConfirm"
|
|
|
+ @close="dialogClose"
|
|
|
+ ></uni-popup-dialog>
|
|
|
+ </uni-popup>
|
|
|
+ </view>
|
|
|
</view>
|
|
|
</template>
|
|
|
|
|
|
@@ -276,7 +459,14 @@ export default {
|
|
|
value: 4,
|
|
|
},
|
|
|
],
|
|
|
-
|
|
|
+ isNewUnpack: 0,
|
|
|
+ packageCell: "",
|
|
|
+ packageUnit: "",
|
|
|
+ packageOneCell: "",
|
|
|
+ packageOneUnit: "",
|
|
|
+ packageTwoCell: "",
|
|
|
+ packageTwoUnit: "",
|
|
|
+ packageDispositionData: "",
|
|
|
show: false,
|
|
|
formData: {
|
|
|
wPackNum: null,
|
|
|
@@ -318,7 +508,11 @@ export default {
|
|
|
} else {
|
|
|
this.formedNumLast = 0;
|
|
|
}
|
|
|
- this.packageDispositionFn();
|
|
|
+
|
|
|
+ if (newVal.isUnpack == "1") {
|
|
|
+ this.packageDispositionFn();
|
|
|
+ }
|
|
|
+ // this.packageDispositionFn();
|
|
|
//
|
|
|
},
|
|
|
deep: true,
|
|
|
@@ -412,7 +606,6 @@ export default {
|
|
|
this.outsideUnit = v[2].conversionUnit; //外包装单位
|
|
|
this.minimumUnit = v[0].conversionUnit;
|
|
|
}
|
|
|
- console.log("几次", v);
|
|
|
this.handleSplit(v[0]);
|
|
|
},
|
|
|
|
|
|
@@ -702,70 +895,78 @@ export default {
|
|
|
return !e.parentId;
|
|
|
});
|
|
|
|
|
|
- console.log(this.DispositionList);
|
|
|
-
|
|
|
- // let packInfo = {
|
|
|
- // this.DispositionList[0]
|
|
|
-
|
|
|
- // specText: this.text,
|
|
|
- // specValue: this.value,
|
|
|
- // minimumPackage: this.minimumPackage, // 最小包装
|
|
|
- // minimumPackageCell: this.DispositionList[0].packageCell, // 最小包装
|
|
|
- // minimumPackageUnit: this.DispositionList[0].packageUnit, // 最小包装单位
|
|
|
- // minimumConversionUnit: this.DispositionList[0].conversionUnit, // 最小包装单位
|
|
|
- // minimumFormedNumLast: this.DispositionList[0].formedNumLast, // 总包装数量
|
|
|
-
|
|
|
- // withinPackage: this.withinPackage, // 内包装
|
|
|
-
|
|
|
- // withinPackageCell: this.DispositionList[1].packageCell, // 最小包装名称
|
|
|
- // withinPackageUnit: this.DispositionList[1].packageUnit, // 最小包装单位
|
|
|
- // withinConversionUnit: this.DispositionList[1].conversionUnit, // 最小包装单位
|
|
|
- // withinFormedNumLast: this.DispositionList[1].formedNumLast, // 总包装数量
|
|
|
- // // packingReportList: this.packTwoList,
|
|
|
- // // packingReportMarginList: _packingReportMarginList,
|
|
|
- // outsidePackage: this.outsidePackage, //外包装
|
|
|
- // outsidePackageCell: this.DispositionList[2].packageCell, // 最小包装名称
|
|
|
- // outsidePackageUnit: this.DispositionList[2].packageUnit, // 最小包装单位
|
|
|
- // outsideConversionUnit: this.DispositionList[2].conversionUnit, // 最小包装单位
|
|
|
- // outsideFormedNumLast: this.DispositionList[2].formedNumLast, // 总包装数量
|
|
|
- // };
|
|
|
-
|
|
|
let packInfo = {};
|
|
|
- if (this.warehouseId == 2) {
|
|
|
- packInfo = {
|
|
|
- // this.DispositionList[0]
|
|
|
-
|
|
|
- specText: this.text,
|
|
|
- specValue: this.value,
|
|
|
- minimumPackage: this.minimumPackage, // 最小包装
|
|
|
- tier: this.warehouseId,
|
|
|
- minimumPackageCell: this.DispositionList[0].packageCell, // 最小包装
|
|
|
- minimumPackageUnit: this.DispositionList[0].packageUnit, // 最小包装单位
|
|
|
- minimumConversionUnit: this.DispositionList[0].conversionUnit, // 最小包装单位
|
|
|
- minimumFormedNumLast: this.DispositionList[0].formedNumLast, // 总包装数量
|
|
|
- };
|
|
|
- } else if (this.warehouseId == 3) {
|
|
|
- packInfo = {
|
|
|
- specText: this.text,
|
|
|
- specValue: this.value,
|
|
|
- withinPackage: this.withinPackage, // 内包装
|
|
|
- tier: this.warehouseId,
|
|
|
- withinPackageCell: this.DispositionList[0].packageCell, // 最小包装名称
|
|
|
- withinPackageUnit: this.DispositionList[0].packageUnit, // 最小包装单位
|
|
|
- withinConversionUnit: this.DispositionList[0].conversionUnit, // 最小包装单位
|
|
|
- withinFormedNumLast: this.DispositionList[0].formedNumLast,
|
|
|
- }; // 总包装数量
|
|
|
- } else if (this.warehouseId == 4) {
|
|
|
- packInfo = {
|
|
|
- specText: this.text,
|
|
|
- specValue: this.value,
|
|
|
- outsidePackage: this.outsidePackage, //外包装
|
|
|
- tier: this.warehouseId,
|
|
|
- outsidePackageCell: this.DispositionList[0].packageCell, // 最小包装名称
|
|
|
- outsidePackageUnit: this.DispositionList[0].packageUnit, // 最小包装单位
|
|
|
- outsideConversionUnit: this.DispositionList[0].conversionUnit, // 最小包装单位
|
|
|
- outsideFormedNumLast: this.DispositionList[0].formedNumLast,
|
|
|
- }; // 总包装数量
|
|
|
+
|
|
|
+ if (this.isNewUnpack == 1) {
|
|
|
+ if (this.DispositionList && this.DispositionList.length != 0) {
|
|
|
+ packInfo = {
|
|
|
+ // this.DispositionList[0]
|
|
|
+
|
|
|
+ specText: this.text,
|
|
|
+ specValue: this.value,
|
|
|
+ minimumPackage: this.minimumPackage, // 最小包装
|
|
|
+ withinPackage: this.withinPackage,
|
|
|
+ outsidePackage: this.outsidePackage,
|
|
|
+ tier: this.warehouseId,
|
|
|
+ isUnpack: this.objData.isUnpack,
|
|
|
+ packageUnit: this.packageUnit,
|
|
|
+ formedNumLast: this.formedNumLast,
|
|
|
+ minimumPackageCell: this.DispositionList[0].packageCell, // 最小包装
|
|
|
+ minimumPackageUnit: this.DispositionList[0].packageUnit, // 最小包装单位
|
|
|
+ minimumConversionUnit: this.DispositionList[0].conversionUnit, // 最小包装单位
|
|
|
+ minimumFormedNumLast: this.DispositionList[0].formedNumLast, // 总包装数量
|
|
|
+ withinPackageCell: this.DispositionList[1].packageCell, // 最小包装名称
|
|
|
+ withinPackageUnit: this.DispositionList[1].packageUnit, // 最小包装单位
|
|
|
+ withinConversionUnit: this.DispositionList[1].conversionUnit, // 最小包装单位
|
|
|
+ withinFormedNumLast: this.DispositionList[1].formedNumLast, // 总包装数量
|
|
|
+ outsidePackageCell: this.DispositionList[2].packageCell, // 最小包装名称
|
|
|
+ outsidePackageUnit: this.DispositionList[2].packageUnit, // 最小包装单位
|
|
|
+ outsideConversionUnit: this.DispositionList[2].conversionUnit, // 最小包装单位
|
|
|
+ outsideFormedNumLast: this.DispositionList[2].formedNumLast,
|
|
|
+ isNewUnpack: this.isNewUnpack,
|
|
|
+ };
|
|
|
+ } else {
|
|
|
+ packInfo = {
|
|
|
+ isUnpack: this.objData.isUnpack,
|
|
|
+ };
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if (this.warehouseId == 2) {
|
|
|
+ packInfo = {
|
|
|
+ // this.DispositionList[0]
|
|
|
+
|
|
|
+ specText: this.text,
|
|
|
+ specValue: this.value,
|
|
|
+ minimumPackage: this.minimumPackage, // 最小包装
|
|
|
+ tier: this.warehouseId,
|
|
|
+ minimumPackageCell: this.DispositionList[0].packageCell, // 最小包装
|
|
|
+ minimumPackageUnit: this.DispositionList[0].packageUnit, // 最小包装单位
|
|
|
+ minimumConversionUnit: this.DispositionList[0].conversionUnit, // 最小包装单位
|
|
|
+ minimumFormedNumLast: this.DispositionList[0].formedNumLast, // 总包装数量
|
|
|
+ };
|
|
|
+ } else if (this.warehouseId == 3) {
|
|
|
+ packInfo = {
|
|
|
+ specText: this.text,
|
|
|
+ specValue: this.value,
|
|
|
+ withinPackage: this.withinPackage, // 内包装
|
|
|
+ tier: this.warehouseId,
|
|
|
+ withinPackageCell: this.DispositionList[1].packageCell, // 最小包装名称
|
|
|
+ withinPackageUnit: this.DispositionList[1].packageUnit, // 最小包装单位
|
|
|
+ withinConversionUnit: this.DispositionList[1].conversionUnit, // 最小包装单位
|
|
|
+ withinFormedNumLast: this.DispositionList[1].formedNumLast,
|
|
|
+ }; // 总包装数量
|
|
|
+ } else if (this.warehouseId == 4) {
|
|
|
+ packInfo = {
|
|
|
+ specText: this.text,
|
|
|
+ specValue: this.value,
|
|
|
+ outsidePackage: this.outsidePackage, //外包装
|
|
|
+ tier: this.warehouseId,
|
|
|
+ outsidePackageCell: this.DispositionList[2].packageCell, // 最小包装名称
|
|
|
+ outsidePackageUnit: this.DispositionList[2].packageUnit, // 最小包装单位
|
|
|
+ outsideConversionUnit: this.DispositionList[2].conversionUnit, // 最小包装单位
|
|
|
+ outsideFormedNumLast: this.DispositionList[2].formedNumLast,
|
|
|
+ }; // 总包装数量
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return packInfo;
|
|
|
@@ -815,6 +1016,295 @@ export default {
|
|
|
changeWarehouseType() {
|
|
|
this.packageDispositionFn();
|
|
|
},
|
|
|
+
|
|
|
+ checkUnpack() {
|
|
|
+ this.$refs.alertDialog.open();
|
|
|
+ },
|
|
|
+
|
|
|
+ dialogConfirm() {
|
|
|
+ this.isNewUnpack = 1;
|
|
|
+ this.getPackingData();
|
|
|
+ },
|
|
|
+
|
|
|
+ async getPackingData() {
|
|
|
+ console.log(this.newCategoryId, "555555555555");
|
|
|
+ let that = this;
|
|
|
+ const res = await packageDisposition(this.newCategoryId);
|
|
|
+
|
|
|
+ if (res.length) {
|
|
|
+ res.shift();
|
|
|
+ let data = JSON.parse(JSON.stringify(res));
|
|
|
+ let list = this.groupBy(data, "code");
|
|
|
+ this.localdataList = [];
|
|
|
+ Object.entries(list).forEach(([key, value]) => {
|
|
|
+ let obj = {
|
|
|
+ text: value[0].name,
|
|
|
+ arr: value,
|
|
|
+ value: key,
|
|
|
+ };
|
|
|
+ this.localdataList.push(obj);
|
|
|
+ });
|
|
|
+
|
|
|
+ this.Usertype = this.localdataList[0].value;
|
|
|
+ this.text = this.localdataList[0].text;
|
|
|
+ this.value = this.localdataList[0].value;
|
|
|
+ res.map((v) => {
|
|
|
+ v.splitList = [];
|
|
|
+ });
|
|
|
+ this.newDispositionList = res;
|
|
|
+ this.selectList = res;
|
|
|
+
|
|
|
+ this.initFn1(this.localdataList[0].arr);
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ initFn1(v) {
|
|
|
+ if (v.length) {
|
|
|
+ this.withinQuantity = v[1].packageCell; //内包装数量
|
|
|
+ this.withinUnit = v[1].conversionUnit; //内包装单位
|
|
|
+ this.outsideQuantity = v[2].packageCell; //外包装数量
|
|
|
+ this.outsideUnit = v[2].conversionUnit; //外包装单位
|
|
|
+ this.minimumUnit = v[0].conversionUnit;
|
|
|
+ }
|
|
|
+ this.handleSplit1(v[0]);
|
|
|
+ },
|
|
|
+
|
|
|
+ handleSplit1(v) {
|
|
|
+ if (this.splitList.length) {
|
|
|
+ uni.showToast({
|
|
|
+ title: "产品已分包",
|
|
|
+ icon: "none",
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!v.packageCell) {
|
|
|
+ uni.showToast({
|
|
|
+ title: "内包装单元数量不能为空",
|
|
|
+ icon: "none",
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!v.packageUnit) {
|
|
|
+ uni.showToast({
|
|
|
+ title: "请选择包装单位",
|
|
|
+ icon: "none",
|
|
|
+ });
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.packageCell = this.formedNumLast;
|
|
|
+ this.packageUnit = v.packageUnit;
|
|
|
+
|
|
|
+ let param = {
|
|
|
+ workOrderId: this.workOrderId, //工单id
|
|
|
+ taskId: this.taskId,
|
|
|
+ tier: this.warehouseId,
|
|
|
+ totalQuantity: this.formedNumLast, //总数量
|
|
|
+ quantity: v.packageCell, //数量
|
|
|
+ unit: v.packageUnit, //单位
|
|
|
+ minimumUnit: this.minimumUnit, //最小包装单位
|
|
|
+ withinQuantity: this.withinQuantity, //内包装数量
|
|
|
+ withinUnit: this.withinUnit, //内包装单位
|
|
|
+ outsideQuantity: this.outsideQuantity, //外包装数量
|
|
|
+ outsideUnit: this.outsideUnit, //外包装单位
|
|
|
+ packageUnit: v.conversionUnit,
|
|
|
+ isNewUnpack: this.isNewUnpack,
|
|
|
+ };
|
|
|
+
|
|
|
+ if (this.warehouseId != 1) {
|
|
|
+ getPackingList(param).then((res) => {
|
|
|
+ this.listFn1(res);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ async listFn1(res) {
|
|
|
+ let {
|
|
|
+ minimumPackage,
|
|
|
+ withinQuantity,
|
|
|
+ outsidePackage,
|
|
|
+ outsideQuantity,
|
|
|
+ withinPackage,
|
|
|
+ minimumQuantity,
|
|
|
+ } = res;
|
|
|
+ let textList = ["最小包装", "内包装", "外包装"];
|
|
|
+ let arr = [
|
|
|
+ { list: minimumPackage, num: minimumQuantity },
|
|
|
+ { list: withinPackage, num: withinQuantity },
|
|
|
+ { list: outsidePackage, num: outsideQuantity },
|
|
|
+ ];
|
|
|
+
|
|
|
+ this.minimumPackage = minimumPackage; // 最小包装
|
|
|
+ this.withinPackage = withinPackage; // 内包装
|
|
|
+ this.outsidePackage = outsidePackage; //外包装
|
|
|
+
|
|
|
+ this.newDispositionList.map((v, i) => {
|
|
|
+ v.splitList = arr[i].list;
|
|
|
+ v.titel = textList[i];
|
|
|
+ // if (i == 0) {
|
|
|
+ // v.formedNumLast = this.formedNumLast;
|
|
|
+ // } else {
|
|
|
+ v.formedNumLast = arr[i].num;
|
|
|
+ // }
|
|
|
+ });
|
|
|
+
|
|
|
+ this.$nextTick(() => {
|
|
|
+ this.newDispositionList.forEach((item, index) => {
|
|
|
+ if (index == 0) {
|
|
|
+ this.packageCell = item.formedNumLast ? item.formedNumLast : "";
|
|
|
+ this.packageUnit = item.packageUnit ? item.packageUnit : "";
|
|
|
+ this.conversionUnit = item.conversionUnit
|
|
|
+ ? item.conversionUnit
|
|
|
+ : "";
|
|
|
+ } else if (index == 1) {
|
|
|
+ this.packageOneCell = item.formedNumLast ? item.formedNumLast : "";
|
|
|
+ this.packageOneUnit = item.packageUnit ? item.packageUnit : "";
|
|
|
+ this.conversionOneUnit = item.conversionUnit
|
|
|
+ ? item.conversionUnit
|
|
|
+ : "";
|
|
|
+ } else if (index == 2) {
|
|
|
+ this.packageTwoCell = item.formedNumLast ? item.formedNumLast : "";
|
|
|
+ this.packageTwoUnit = item.packageUnit ? item.packageUnit : "";
|
|
|
+ this.conversionTwoUnit = item.conversionUnit
|
|
|
+ ? item.conversionUnit
|
|
|
+ : "";
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.packageDispositionData = `${this.formedNumLast}${this.packageUnit}/${this.packageCell}${this.conversionUnit}/${this.packageOneCell}${this.conversionOneUnit}/${this.packageTwoCell}${this.conversionTwoUnit}`;
|
|
|
+ this.newDispositionList.forEach((item, index) => {
|
|
|
+ if (item.splitList.length != 0) {
|
|
|
+ item.splitList[0].extInfo.packageDisposition =
|
|
|
+ this.packageDispositionData;
|
|
|
+ if (index == 0) {
|
|
|
+ this.warehouseId = 2;
|
|
|
+ } else if (index == 1) {
|
|
|
+ this.warehouseId = 3;
|
|
|
+ } else if (index == 2) {
|
|
|
+ this.warehouseId = 4;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.$set(this, "DispositionList", this.newDispositionList);
|
|
|
+ this.$forceUpdate();
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
+ changeInputPack(item, index) {
|
|
|
+ setTimeout(() => {
|
|
|
+ if (this.DispositionList[index]) {
|
|
|
+ if (!this.DispositionList[index].packageCell) {
|
|
|
+ if (index <= this.DispositionList.length - 1) {
|
|
|
+ this.DispositionList[index].formedNumLast = "";
|
|
|
+
|
|
|
+ if (index + 1 <= this.DispositionList.length - 1) {
|
|
|
+ this.DispositionList[index + 1].formedNumLast = "";
|
|
|
+ }
|
|
|
+
|
|
|
+ if (index + 2 <= this.DispositionList.length - 1) {
|
|
|
+ this.DispositionList[index + 2].formedNumLast = "";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ this.newDispositionList.forEach((item, index) => {
|
|
|
+ if (index == 0) {
|
|
|
+ this.packageCell = item.formedNumLast ? item.formedNumLast : "";
|
|
|
+ this.packageUnit = item.packageUnit ? item.packageUnit : "";
|
|
|
+ this.conversionUnit = item.conversionUnit
|
|
|
+ ? item.conversionUnit
|
|
|
+ : "";
|
|
|
+ } else if (index == 1) {
|
|
|
+ this.packageOneCell = item.formedNumLast
|
|
|
+ ? item.formedNumLast
|
|
|
+ : "";
|
|
|
+ this.packageOneUnit = item.packageUnit ? item.packageUnit : "";
|
|
|
+ this.conversionOneUnit = item.conversionUnit
|
|
|
+ ? item.conversionUnit
|
|
|
+ : "";
|
|
|
+ } else if (index == 2) {
|
|
|
+ this.packageTwoCell = item.formedNumLast
|
|
|
+ ? item.formedNumLast
|
|
|
+ : "";
|
|
|
+ this.packageTwoUnit = item.packageUnit ? item.packageUnit : "";
|
|
|
+ this.conversionTwoUnit = item.conversionUnit
|
|
|
+ ? item.conversionUnit
|
|
|
+ : "";
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.packageDispositionData = `${this.formedNumLast}${this.packageUnit}/${this.packageCell}${this.conversionUnit}/${this.packageOneCell}${this.conversionOneUnit}/${this.packageTwoCell}${this.conversionTwoUnit}`;
|
|
|
+
|
|
|
+ this.DispositionList.forEach((item, index) => {
|
|
|
+ if (item.splitList.length != 0) {
|
|
|
+ this.DispositionList[
|
|
|
+ index
|
|
|
+ ].splitList[0].extInfo.packageDisposition =
|
|
|
+ this.packageDispositionData;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ this.$forceUpdate();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.DispositionList[index]) {
|
|
|
+ if (this.DispositionList[index].titel == "最小包装") {
|
|
|
+ if (
|
|
|
+ this.DispositionList[index].formedNumLast &&
|
|
|
+ Number(this.DispositionList[index].packageCell) >
|
|
|
+ Number(this.formedNumLast)
|
|
|
+ ) {
|
|
|
+ this.DispositionList[index].packageCell = Number(
|
|
|
+ this.formedNumLast
|
|
|
+ );
|
|
|
+ }
|
|
|
+ } else if (this.DispositionList[index].titel == "内包装") {
|
|
|
+ if (
|
|
|
+ this.DispositionList[index - 1].formedNumLast &&
|
|
|
+ Number(this.DispositionList[index].packageCell) >
|
|
|
+ Number(this.DispositionList[index - 1].formedNumLast)
|
|
|
+ ) {
|
|
|
+ this.DispositionList[index].packageCell = Number(
|
|
|
+ this.DispositionList[index - 1].formedNumLast
|
|
|
+ );
|
|
|
+ }
|
|
|
+ } else if (this.DispositionList[index].titel == "外包装") {
|
|
|
+ if (
|
|
|
+ this.DispositionList[index - 1].formedNumLast &&
|
|
|
+ Number(this.DispositionList[index].packageCell) >
|
|
|
+ Number(this.DispositionList[index - 1].formedNumLast)
|
|
|
+ ) {
|
|
|
+ this.DispositionList[index].packageCell = Number(
|
|
|
+ this.DispositionList[index - 1].formedNumLast
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log(this.DispositionList, "返回的数据");
|
|
|
+ this.initFn1(this.DispositionList);
|
|
|
+ }, 500);
|
|
|
+ },
|
|
|
+
|
|
|
+ dialogClose() {
|
|
|
+ console.log("窗口关闭了");
|
|
|
+ },
|
|
|
+
|
|
|
+ deepCopy(obj, hash = new WeakMap()) {
|
|
|
+ if (obj === null) return null;
|
|
|
+ if (obj instanceof Date) return new Date(obj);
|
|
|
+ if (obj instanceof RegExp) return new RegExp(obj);
|
|
|
+ if (typeof obj !== "object" && typeof obj !== "function") return obj;
|
|
|
+ if (hash.has(obj)) return hash.get(obj); // 处理循环引用
|
|
|
+
|
|
|
+ const result = Array.isArray(obj) ? [] : {};
|
|
|
+ hash.set(obj, result); // 存储原始对象和其副本的映射关系
|
|
|
+
|
|
|
+ return Object.keys(obj).reduce((acc, key) => {
|
|
|
+ acc[key] = this.deepCopy(obj[key], hash);
|
|
|
+ return acc;
|
|
|
+ }, result);
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|