fix:禅道465
This commit is contained in:
parent
ff2e9a49e0
commit
d438909046
|
|
@ -213,11 +213,20 @@
|
|||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-col v-if="form.type == 'pur_in'&&project_code=='bxerp'&& cate == 'halfgood'">
|
||||
<el-row v-if="form.type == 'pur_in'&&project_code=='bxerp'&& cate == 'halfgood'">
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label="编号前缀">
|
||||
<el-input v-model="halfgoodprefix" @change="halfgoodprefixChange" placeholder="编号前缀"/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :md="12" :sm="24">
|
||||
<el-form-item label-width="20px">
|
||||
<input ref="numberImportInput" type="file" accept=".xls,.xlsx" style="display:none" @change="onImportNumberFile" />
|
||||
<el-button type="primary" plain @click="triggerImportNumbers">导入编号</el-button>
|
||||
<span style="margin-left: 8px; color: var(--el-text-color-secondary); font-size: 12px;">读取 Excel 中"板号"列</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row v-if="mTracking==20&&form.count>0&&(form.type == 'pur_in'||form.type == 'other_in'||(form.type == 'sale_out'&&project_code=='bxerp'))">
|
||||
<el-col :md="12" :sm="24" v-for="i in form.count" :key="i">
|
||||
<el-form-item :label="'编号'+i" required>
|
||||
|
|
@ -285,6 +294,7 @@
|
|||
</el-dialog>
|
||||
</template>
|
||||
<script>
|
||||
import * as XLSX2 from "xlsx";
|
||||
const defaultForm = {
|
||||
state: 10,
|
||||
count: 1,
|
||||
|
|
@ -905,6 +915,60 @@ export default {
|
|||
that.mioitems[i] = that.halfgoodprefix+that.mioitems[i];
|
||||
}
|
||||
},
|
||||
triggerImportNumbers(){
|
||||
let el = this.$refs.numberImportInput;
|
||||
if(el){
|
||||
el.value = "";
|
||||
el.click();
|
||||
}
|
||||
},
|
||||
onImportNumberFile(e){
|
||||
let that = this;
|
||||
let file = e.target.files && e.target.files[0];
|
||||
if(!file) return;
|
||||
let reader = new FileReader();
|
||||
reader.onload = (ev) => {
|
||||
try{
|
||||
const data = new Uint8Array(ev.target.result);
|
||||
const workbook = XLSX2.read(data, { type: "array" });
|
||||
const sheet = workbook.Sheets[workbook.SheetNames[0]];
|
||||
if(!sheet){
|
||||
that.$message.error("Excel 中没有可读取的工作表");
|
||||
return;
|
||||
}
|
||||
const rows = XLSX2.utils.sheet_to_json(sheet, { defval: "" });
|
||||
let numbers = [];
|
||||
rows.forEach(row => {
|
||||
const isTotalRow = Object.values(row).some(v => String(v).trim() === "合计");
|
||||
if(isTotalRow) return;
|
||||
for(const key of Object.keys(row)){
|
||||
if(String(key).trim() === "板号"){
|
||||
const v = row[key];
|
||||
if(v !== null && v !== undefined && String(v).trim() !== ""){
|
||||
numbers.push(String(v).trim());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
if(numbers.length === 0){
|
||||
that.$message.warning("未在 Excel 中找到\"板号\"列或该列为空");
|
||||
return;
|
||||
}
|
||||
that.form.count = numbers.length;
|
||||
that.mioitems = numbers.slice();
|
||||
that.mioitemw = numbers.map(n => ({ number: n }));
|
||||
that.$message.success(`已导入 ${numbers.length} 个编号`);
|
||||
}catch(err){
|
||||
console.log(err);
|
||||
that.$message.error("解析 Excel 失败");
|
||||
}
|
||||
};
|
||||
reader.onerror = () => {
|
||||
that.$message.error("读取文件失败");
|
||||
};
|
||||
reader.readAsArrayBuffer(file);
|
||||
},
|
||||
validateInput(i){
|
||||
this.mioitems[i] = this.mioitems[i].replace(/\D/g, '');
|
||||
},
|
||||
|
|
|
|||
Loading…
Reference in New Issue