|
@@ -53,11 +53,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- <view class="item" >
|
|
|
|
|
|
|
+ <view class="item">
|
|
|
<view class="lable rx-cc">炉次号</view>
|
|
<view class="lable rx-cc">炉次号</view>
|
|
|
<view class="content content_num">
|
|
<view class="content content_num">
|
|
|
- <input class="uni-input" v-model="item.extInfo.heatNumber" ></input>
|
|
|
|
|
|
|
+ <input class="uni-input" v-model="item.extInfo.heatNumber"></input>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
+
|
|
|
|
|
+ <view v-if="clientEnvironmentId == 2" class="lable rx-cc" style="color: #157A2C"
|
|
|
|
|
+ @click="handleStorage(index)">货位</view>
|
|
|
|
|
+
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
@@ -65,13 +69,67 @@
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
|
|
+ <SearchPopup mode="center" v-if='popupShow'>
|
|
|
|
|
+ <template v-slot:list>
|
|
|
|
|
+ <view class="search_list">
|
|
|
|
|
+ <u-form labelPosition="left" :model="formData" labelWidth="90" labelAlign="left" class="baseForm">
|
|
|
|
|
+
|
|
|
|
|
+ <u-form-item label="层数:" class="required-form" borderBottom prop="levelNum">
|
|
|
|
|
+ <u-input v-model="formData.levelNum" placeholder="请输入">
|
|
|
|
|
+ </u-input>
|
|
|
|
|
+ </u-form-item>
|
|
|
|
|
+
|
|
|
|
|
+ <u-form-item label="列数:" class="required-form" borderBottom prop="lineNum">
|
|
|
|
|
+ <u-input v-model="formData.lineNum" placeholder="请输入">
|
|
|
|
|
+ </u-input>
|
|
|
|
|
+ </u-form-item>
|
|
|
|
|
+
|
|
|
|
|
+ <view class="rx-bs" style="margin-top: 6rpx;">
|
|
|
|
|
+ <u-button size="small" style="width: 260rpx" type="success" @click="handleHjCode()">
|
|
|
|
|
+ 自动生成
|
|
|
|
|
+ </u-button>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <u-button size="small" style="width: 260rpx" type="success">
|
|
|
|
|
+ 添加货位
|
|
|
|
|
+ </u-button>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ </u-form>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ <view class="content_table2">
|
|
|
|
|
+ <view class="head row rx-sc">
|
|
|
|
|
+ <view class="item ww70">货位</view>
|
|
|
|
|
+ <view class="item ww30">操作</view>
|
|
|
|
|
+
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="table">
|
|
|
|
|
+ <u-list @scrolltolower="scrolltolower" class="z_list">
|
|
|
|
|
+ <view class="tr row rx-sc" v-for="(it, idx) in list[listIndex].extInfo.positionList" :key='idx'>
|
|
|
|
|
+ <view class="item ww70">{{it.code}}</view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ </u-list>
|
|
|
|
|
+
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </SearchPopup>
|
|
|
|
|
+
|
|
|
|
|
|
|
|
</view>
|
|
</view>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
|
+ import SearchPopup from '../../components/searchPopup.vue'
|
|
|
export default {
|
|
export default {
|
|
|
-
|
|
|
|
|
|
|
+ components: {
|
|
|
|
|
+ SearchPopup
|
|
|
|
|
+ },
|
|
|
props: {
|
|
props: {
|
|
|
workOrderId: {
|
|
workOrderId: {
|
|
|
type: String,
|
|
type: String,
|
|
@@ -86,6 +144,14 @@
|
|
|
},
|
|
},
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
|
|
+ popupShow: false,
|
|
|
|
|
+ formData: {
|
|
|
|
|
+ levelNum: null,
|
|
|
|
|
+ lineNum: null,
|
|
|
|
|
+ type: 3,
|
|
|
|
|
+ code: 'A'
|
|
|
|
|
+ },
|
|
|
|
|
+ listIndex: null,
|
|
|
clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo").clientEnvironmentId
|
|
clientEnvironmentId: uni.getStorageSync("userInfo") && uni.getStorageSync("userInfo").clientEnvironmentId
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
@@ -97,6 +163,140 @@
|
|
|
getDelete(idx) {
|
|
getDelete(idx) {
|
|
|
this.list.splice(idx, 1)
|
|
this.list.splice(idx, 1)
|
|
|
},
|
|
},
|
|
|
|
|
+
|
|
|
|
|
+ handleStorage(idx) {
|
|
|
|
|
+ this.listIndex = idx || 0
|
|
|
|
|
+ this.popupShow = true
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ handleHjCode() {
|
|
|
|
|
+ if (!this.formData.levelNum) {
|
|
|
|
|
+
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: `请输入层数`,
|
|
|
|
|
+ icon: 'none'
|
|
|
|
|
+ })
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if (!this.formData.lineNum) {
|
|
|
|
|
+ uni.showToast({
|
|
|
|
|
+ title: `请输入列数`,
|
|
|
|
|
+ icon: 'none'
|
|
|
|
|
+ })
|
|
|
|
|
+ return false
|
|
|
|
|
+ }
|
|
|
|
|
+ this.handleMine()
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ handleMine() {
|
|
|
|
|
+
|
|
|
|
|
+ const ruleName = this.formData.code;
|
|
|
|
|
+ let preCode = 0;
|
|
|
|
|
+ let codeEng = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
|
|
|
+ let currentLetterIndex = 0;
|
|
|
|
|
+ let positionList = []
|
|
|
|
|
+
|
|
|
|
|
+ if (ruleName.length > 0) {
|
|
|
|
|
+ // 计算初始索引
|
|
|
|
|
+ let multiplier = Math.pow(codeEng.length, ruleName.length - 1);
|
|
|
|
|
+ for (let i = 0; i < ruleName.length; i++) {
|
|
|
|
|
+ currentLetterIndex +=
|
|
|
|
|
+ (codeEng.indexOf(ruleName[i]) + 1) * multiplier;
|
|
|
|
|
+ multiplier /= codeEng.length;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ if (this.formData.type == 3) {
|
|
|
|
|
+ for (let i = 0; i < this.formData.lineNum; i++) {
|
|
|
|
|
+ // 获取当前字母
|
|
|
|
|
+ let index = currentLetterIndex;
|
|
|
|
|
+ let dividend = codeEng.length;
|
|
|
|
|
+ let remainder;
|
|
|
|
|
+ let quotient;
|
|
|
|
|
+ let code = '';
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ while (index > 0) {
|
|
|
|
|
+ remainder = index % dividend;
|
|
|
|
|
+ quotient = Math.floor(index / dividend);
|
|
|
|
|
+
|
|
|
|
|
+ if (remainder === 0) {
|
|
|
|
|
+ remainder = codeEng.length;
|
|
|
|
|
+ quotient--;
|
|
|
|
|
+ }
|
|
|
|
|
+ code = codeEng[remainder - 1] + code;
|
|
|
|
|
+ index = quotient;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ for (let j = 0; j < this.formData.levelNum; j++) {
|
|
|
|
|
+ let obj1111 = {
|
|
|
|
|
+ code: code + (j + 1),
|
|
|
|
|
+
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ positionList.push(obj1111)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ console.log(positionList)
|
|
|
|
|
+ this.$set(this.list[this.listIndex].extInfo, 'positionList', positionList)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ currentLetterIndex++; // 自增索引
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ } else {
|
|
|
|
|
+ let num = Number(this.form.levelNum) * Number(this.form.lineNum)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ for (let i = 0; i < num; i++) {
|
|
|
|
|
+ // 获取当前字母
|
|
|
|
|
+ let index = currentLetterIndex;
|
|
|
|
|
+ let dividend = codeEng.length;
|
|
|
|
|
+ let remainder;
|
|
|
|
|
+ let quotient;
|
|
|
|
|
+ let code = '';
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ while (index > 0) {
|
|
|
|
|
+ remainder = index % dividend;
|
|
|
|
|
+ quotient = Math.floor(index / dividend);
|
|
|
|
|
+
|
|
|
|
|
+ if (remainder === 0) {
|
|
|
|
|
+ remainder = codeEng.length;
|
|
|
|
|
+ quotient--;
|
|
|
|
|
+ }
|
|
|
|
|
+ code = codeEng[remainder - 1] + code;
|
|
|
|
|
+ index = quotient;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ let obj1111 = {
|
|
|
|
|
+ code: this.formData.type === 1 ? code : ruleName + (i + 1),
|
|
|
|
|
+
|
|
|
|
|
+ };
|
|
|
|
|
+ positionList.push(obj1111)
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ currentLetterIndex++; // 自增索引
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ scrolltolower() {},
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
</script>
|
|
</script>
|
|
@@ -245,4 +445,101 @@
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ .search_list {
|
|
|
|
|
+ min-height: 100rpx;
|
|
|
|
|
+ width: 96vw;
|
|
|
|
|
+ padding: 0 8rpx;
|
|
|
|
|
+
|
|
|
|
|
+ /deep/ .u-form-item__body {
|
|
|
|
|
+ padding: 6rpx 0rpx !important;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ .content_table2 {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ margin-top: 6rpx;
|
|
|
|
|
+
|
|
|
|
|
+ .row {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ .item {
|
|
|
|
|
+
|
|
|
|
|
+ color: #404446;
|
|
|
|
|
+ font-size: 28rpx;
|
|
|
|
|
+ padding-left: 12rpx;
|
|
|
|
|
+ padding-right: 6rpx;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .color157 {
|
|
|
|
|
+ color: $theme-color;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ww70 {
|
|
|
|
|
+ width: 70%;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .ww30 {
|
|
|
|
|
+ width: 30%;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .head {
|
|
|
|
|
+ height: 64rpx;
|
|
|
|
|
+ background: #F7F9FA;
|
|
|
|
|
+ border-top: 2rpx solid #E3E5E5;
|
|
|
|
|
+ border-left: 2rpx solid #E3E5E5;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+
|
|
|
|
|
+ .item {
|
|
|
|
|
+ height: 64rpx;
|
|
|
|
|
+ line-height: 64rpx;
|
|
|
|
|
+ border-right: 2rpx solid #E3E5E5;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ .tr {
|
|
|
|
|
+ border-top: 2rpx solid #E3E5E5;
|
|
|
|
|
+ border-left: 2rpx solid #E3E5E5;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+
|
|
|
|
|
+ .item {
|
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
|
+ min-height: 64rpx;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ border-right: 2rpx solid #E3E5E5;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ white-space: normal;
|
|
|
|
|
+ word-break: break-all;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ &:last-child {
|
|
|
|
|
+ border-bottom: 2rpx solid #E3E5E5;
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ .z_list {
|
|
|
|
|
+ max-height: 500rpx;
|
|
|
|
|
+ }
|
|
|
</style>
|
|
</style>
|