|
|
@@ -711,6 +711,26 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-card>
|
|
|
+ <!-- 规则货架编号 -->
|
|
|
+ <el-dialog title="规则货架编号" :visible.sync="hjCodeFalg" width="20%">
|
|
|
+ <el-form :model="hjForm">
|
|
|
+ <el-form-item label="规则类型" label-width="100px">
|
|
|
+ <el-radio-group v-model="hjForm.type">
|
|
|
+ <el-radio :label="1">字母</el-radio>
|
|
|
+ <el-radio :label="2">字母+数字</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="规则名称定义" label-width="100px">
|
|
|
+ <el-input v-model="hjForm.code" @input="handleInput"></el-input>
|
|
|
+ <span style="color: #dab8b8">注:只可输入大写A-Z</span>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+
|
|
|
+ <span slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="hjCodeFalg = false">取 消</el-button>
|
|
|
+ <el-button @click="handleMine" type="primary">确 定</el-button>
|
|
|
+ </span>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
@@ -788,6 +808,9 @@
|
|
|
warehouseDefinition_areaType,
|
|
|
warehouseDefinition_areaAttribute,
|
|
|
loading: false,
|
|
|
+ hjCodeFalg: false,
|
|
|
+ hjCodeIndex: 0,
|
|
|
+ hjForm: { code: '', type: 1 },
|
|
|
areaForm: {
|
|
|
warehouseAreasSaveList: [], //库区
|
|
|
areaGoodsshelvesList: [], //货架
|
|
|
@@ -923,6 +946,11 @@
|
|
|
this.getDetail(query.id);
|
|
|
},
|
|
|
methods: {
|
|
|
+ handleInput(event) {
|
|
|
+ // 只允许输入 A-Z 的大写字母
|
|
|
+ let filteredValue = this.hjForm.code.replace(/[^A-Z]/g, '');
|
|
|
+ this.hjForm.code = filteredValue;
|
|
|
+ },
|
|
|
setNUm(row) {
|
|
|
let result = Number.isNaN(row.extInfo[0].line * row.extInfo[0].column)
|
|
|
? ''
|
|
|
@@ -1224,17 +1252,29 @@
|
|
|
];
|
|
|
|
|
|
for (var i = 0; i < num; i++) {
|
|
|
+ console.log('wqwqw===》', obj);
|
|
|
this.areaForm.allocationReqList.push({
|
|
|
// allocationBarcode: '',
|
|
|
- code: ``,
|
|
|
+ code: obj.code + '-' + (i + 1),
|
|
|
|
|
|
extInfo: [
|
|
|
{
|
|
|
- goodsAllocationWide: '',
|
|
|
- goodsAllocationHigh: '',
|
|
|
- goodsAllocationLength: '',
|
|
|
+ goodsAllocationWide: Number(obj.extInfo[0].areaWidth),
|
|
|
+ goodsAllocationHigh: Number(
|
|
|
+ obj.extInfo[0].areaHigh / Number(obj.extInfo[0].line)
|
|
|
+ ).toFixed(0),
|
|
|
+ goodsAllocationLength: Number(
|
|
|
+ obj.extInfo[0].areaLength / Number(obj.extInfo[0].column)
|
|
|
+ ).toFixed(0),
|
|
|
weightLimit: '',
|
|
|
- volumeUnit: ''
|
|
|
+ volumeUnit:
|
|
|
+ Number(
|
|
|
+ obj.extInfo[0].areaLength / Number(obj.extInfo[0].column)
|
|
|
+ ).toFixed(0) *
|
|
|
+ Number(
|
|
|
+ obj.extInfo[0].areaHigh / Number(obj.extInfo[0].line)
|
|
|
+ ).toFixed(0) *
|
|
|
+ Number(obj.extInfo[0].areaWidth)
|
|
|
}
|
|
|
],
|
|
|
goodsShelvesCode: obj.code,
|
|
|
@@ -1247,6 +1287,7 @@
|
|
|
}
|
|
|
},
|
|
|
saveArea(index) {
|
|
|
+ this.hjForm = { code: '', type: 1 };
|
|
|
if (
|
|
|
this.areaForm.warehouseAreasSaveList.filter(
|
|
|
(item) =>
|
|
|
@@ -1255,7 +1296,13 @@
|
|
|
) {
|
|
|
return this.$message.error('库区编号不能重复!');
|
|
|
}
|
|
|
-
|
|
|
+ this.hjCodeIndex = index;
|
|
|
+ this.hjCodeFalg = true;
|
|
|
+ },
|
|
|
+ handleMine() {
|
|
|
+ const index = this.hjCodeIndex;
|
|
|
+ const ruleName = this.hjForm.code;
|
|
|
+ // console.log('名称', ruleName + index + 1);
|
|
|
this.$refs.areaFormName.validate((val) => {
|
|
|
if (val) {
|
|
|
this.$set(
|
|
|
@@ -1275,12 +1322,46 @@
|
|
|
if (pre) {
|
|
|
preCode = +(pre.code?.substr(1) || 0);
|
|
|
}
|
|
|
+ let codeEng = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
|
+ let currentLetterIndex = 0;
|
|
|
+
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for (let i = 0; i < num; i++) {
|
|
|
+ let currentLetter = '';
|
|
|
+
|
|
|
+ // 获取当前字母
|
|
|
+ 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 (var i = 0; i < num; i++) {
|
|
|
let obj1111 = {
|
|
|
reservoirAreaCode: obj.code,
|
|
|
warehouseId: this.formData.id,
|
|
|
- code: ``,
|
|
|
+ code: this.hjForm.type === 1 ? code : ruleName + (i + 1),
|
|
|
type: 2,
|
|
|
extInfo: [
|
|
|
{
|
|
|
@@ -1296,8 +1377,14 @@
|
|
|
remark: '',
|
|
|
isEdit: true
|
|
|
};
|
|
|
+
|
|
|
this.areaForm.areaGoodsshelvesList.push(obj1111);
|
|
|
+
|
|
|
+ currentLetterIndex++; // 自增索引
|
|
|
}
|
|
|
+
|
|
|
+ this.hjCodeFalg = false;
|
|
|
+ console.log('sasa===qqqq', this.areaForm.areaGoodsshelvesList);
|
|
|
}
|
|
|
});
|
|
|
},
|