fix:禅道465
This commit is contained in:
parent
ff2e9a49e0
commit
d438909046
|
|
@ -213,11 +213,20 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</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-form-item label="编号前缀">
|
<el-col :md="12" :sm="24">
|
||||||
<el-input v-model="halfgoodprefix" @change="halfgoodprefixChange" placeholder="编号前缀"/>
|
<el-form-item label="编号前缀">
|
||||||
</el-form-item>
|
<el-input v-model="halfgoodprefix" @change="halfgoodprefixChange" placeholder="编号前缀"/>
|
||||||
</el-col>
|
</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-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-col :md="12" :sm="24" v-for="i in form.count" :key="i">
|
||||||
<el-form-item :label="'编号'+i" required>
|
<el-form-item :label="'编号'+i" required>
|
||||||
|
|
@ -285,6 +294,7 @@
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import * as XLSX2 from "xlsx";
|
||||||
const defaultForm = {
|
const defaultForm = {
|
||||||
state: 10,
|
state: 10,
|
||||||
count: 1,
|
count: 1,
|
||||||
|
|
@ -905,6 +915,60 @@ export default {
|
||||||
that.mioitems[i] = that.halfgoodprefix+that.mioitems[i];
|
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){
|
validateInput(i){
|
||||||
this.mioitems[i] = this.mioitems[i].replace(/\D/g, '');
|
this.mioitems[i] = this.mioitems[i].replace(/\D/g, '');
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue