| | |
| | | <template> |
| | | <vol-box v-model="show" title="空æå
¥åº" :width="800" :height="1200"> |
| | | <template #content> |
| | | <el-form ref="form" :model="form" label-width="90px"> |
| | | <el-form-item label="å
¥åºåºå:"> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="90px"> |
| | | <el-form-item label="å
¥åºåºå:" prop="locationType"> |
| | | <el-select v-model="form.locationType" placeholder="è¯·éæ©å
¥åºåºå"> |
| | | <el-option v-for="item in locationTypes" :key="item.locationType" :label="item.locationTypeDesc" |
| | | :value="item.locationType" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æçæ¡ç :"> |
| | | <el-input v-model="form.palletCode" placeholder="è¯·æ«æ/è¾å
¥æçæ¡ç " @keyup.enter="submit" @keyup.13="submit" |
| | | clearable maxlength="50" @paste="handlePaste" @input="handleInput" ref="boxCodeInput" /> |
| | | <el-form-item label="æçæ¡ç :" prop="palletCode"> |
| | | <el-input v-model="form.palletCode" placeholder="è¯·æ«æ/è¾å
¥æçæ¡ç ï¼Aå¼å¤´ï¼åè·æ°åï¼" @keyup.enter="submit" clearable |
| | | @paste="handlePaste" @input="handleInput" ref="boxCodeInput" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </template> |
| | |
| | | value: { type: Boolean, default: false } |
| | | }, |
| | | data() { |
| | | // èªå®ä¹æ¡ç éªè¯è§å |
| | | const validatePalletCode = (rule, value, callback) => { |
| | | if (!value) { |
| | | return callback(new Error('请è¾å
¥æçæ¡ç ')); |
| | | } |
| | | |
| | | // éªè¯æ¡ç æ ¼å¼ï¼Aå¼å¤´ï¼åé¢è³å°1使°åï¼ä¸éå¶å
·ä½é¿åº¦ï¼ |
| | | const codePattern = /^A\d+$/; |
| | | if (!codePattern.test(value)) { |
| | | return callback(new Error('æ¡ç æ ¼å¼ä¸æ£ç¡®ï¼æ£ç¡®æ ¼å¼ï¼Aå¼å¤´ï¼åè·æ°åï¼å¦ï¼A000008080')); |
| | | } |
| | | |
| | | callback(); |
| | | }; |
| | | |
| | | return { |
| | | show: false, |
| | | form: { |
| | | palletCode: '', |
| | | locationType: '' |
| | | }, |
| | | locationTypes: [] |
| | | locationTypes: [], |
| | | // 表åéªè¯è§å |
| | | rules: { |
| | | locationType: [ |
| | | { required: true, message: 'è¯·éæ©å
¥åºåºå', trigger: 'change' } |
| | | ], |
| | | palletCode: [ |
| | | { validator: validatePalletCode, trigger: ['blur', 'change'] } |
| | | ] |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | |
| | | }, |
| | | |
| | | async submit() { |
| | | if (!this.form.palletCode) { |
| | | this.$message.warning('请è¾å
¥æçæ¡ç ') |
| | | this.focusInput() |
| | | return |
| | | } |
| | | |
| | | if (!this.form.locationType) { |
| | | this.$message.warning('è¯·éæ©å
¥åºåºå') |
| | | return |
| | | // 表åéªè¯ |
| | | try { |
| | | await this.$refs.form.validate(); |
| | | } catch (error) { |
| | | // éªè¯å¤±è´¥ï¼èç¦è¾å
¥æ¡ |
| | | this.focusAndSelectInput(); |
| | | return; |
| | | } |
| | | |
| | | try { |
| | |
| | | this.$message.success("ç»çæå"); |
| | | // æ¸
空è¾å
¥æ¡æ°æ® |
| | | this.form.palletCode = ''; |
| | | // éç½®éªè¯ç¶æ |
| | | this.$refs.form.clearValidate('palletCode'); |
| | | // èç¦å¹¶éä¸è¾å
¥æ¡ |
| | | this.focusAndSelectInput(); |
| | | } else { |
| | |
| | | |
| | | // æ«ææªä¼åå¤ç |
| | | handleInput(value) { |
| | | // è¿æ»¤éæ°ååæ¡ç 常ç¨å符 |
| | | this.form.palletCode = value.replace(/[^a-zA-Z0-9\-]/g, '') |
| | | // è¿æ»¤éæ°ååæ¡ç 常ç¨å符ï¼å
许Aå¼å¤´ |
| | | this.form.palletCode = value.replace(/[^a-zA-Z0-9]/g, '') |
| | | |
| | | // èªå¨è½¬æ¢ä¸ºå¤§åï¼æ¡ç é常为大åï¼ |
| | | this.form.palletCode = this.form.palletCode.toUpperCase(); |
| | | |
| | | // èªå¨è§¦åéªè¯ |
| | | this.$nextTick(() => { |
| | | this.$refs.form.validateField('palletCode'); |
| | | }); |
| | | }, |
| | | |
| | | handlePaste(e) { |
| | | // ç²è´´æ¶èªå¨æäº¤ |
| | | setTimeout(this.submit, 100) |
| | | // è·åç²è´´çå
容 |
| | | const clipboardData = e.clipboardData || window.clipboardData; |
| | | const pastedText = clipboardData.getData('text'); |
| | | |
| | | // å¤çç²è´´å
容 |
| | | const cleanedText = pastedText.replace(/[^a-zA-Z0-9]/g, '').toUpperCase(); |
| | | |
| | | // 妿ç²è´´å
å®¹ç¬¦åæ¡ç æ ¼å¼ï¼èªå¨å¡«å
å¹¶æäº¤ |
| | | if (cleanedText.startsWith('A')) { |
| | | this.form.palletCode = cleanedText; |
| | | // å»¶è¿æäº¤ï¼ç¡®ä¿è¡¨åå·²æ´æ° |
| | | setTimeout(() => { |
| | | this.submit(); |
| | | }, 50); |
| | | } |
| | | |
| | | // 黿¢é»è®¤ç²è´´è¡ä¸ºï¼ä½¿ç¨æä»¬å¤çåçå¼ |
| | | e.preventDefault(); |
| | | }, |
| | | |
| | | // èç¦å¹¶éä¸è¾å
¥æ¡ |
| | |
| | | // æ¸
ç©ºè¡¨åæ°æ® |
| | | clearForm() { |
| | | this.form.palletCode = ''; |
| | | // éç½®éªè¯ç¶æ |
| | | if (this.$refs.form) { |
| | | this.$refs.form.clearValidate(); |
| | | } |
| | | // 䏿¸
空 locationTypeï¼ä¿æåºåéæ© |
| | | } |
| | | }, |