|
|
@ -23,13 +23,13 @@ |
|
|
|
<span>清空</span> |
|
|
|
</el-button> |
|
|
|
<el-upload :show-file-list="false" v-model="fileOriData" :before-upload="beforeAvatarUpload" |
|
|
|
:http-request="successSubmit" accept=".xls,.xlsx,.csv" |
|
|
|
:http-request="successSubmit" accept=".txt" |
|
|
|
style="display: inline-block;position: relative;top: 3px;left: 12px;margin-right: 24px;" multiple> |
|
|
|
<el-button type="success" size="large"> |
|
|
|
<el-icon> |
|
|
|
<Upload /> |
|
|
|
</el-icon> |
|
|
|
<span>上传表格</span> |
|
|
|
<span>上传txt</span> |
|
|
|
</el-button> |
|
|
|
</el-upload> |
|
|
|
</el-col> |
|
|
@ -66,7 +66,15 @@ import { ElMessage, ElMessageBox } from 'element-plus' |
|
|
|
export default { |
|
|
|
name: 'shujuchuli', |
|
|
|
components: { tablecomponent, formcomponent }, |
|
|
|
watch: {}, |
|
|
|
watch: { |
|
|
|
count: { |
|
|
|
handler: function (val) { |
|
|
|
if (val == 0) { |
|
|
|
this.submitImport() |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
computed: {}, |
|
|
|
data() { |
|
|
|
return { |
|
|
@ -87,21 +95,23 @@ export default { |
|
|
|
pageVO: { |
|
|
|
total: 0, |
|
|
|
currentPage: 1, |
|
|
|
pageSize: 16, |
|
|
|
pageSizes: [16, 30, 50, 100] |
|
|
|
pageSize: 17, |
|
|
|
pageSizes: [17, 30, 50, 100] |
|
|
|
}, |
|
|
|
loading: false, |
|
|
|
fileOriData: null, |
|
|
|
count: 0, |
|
|
|
} |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
beforeAvatarUpload(rawFile) { |
|
|
|
let imgList = ['text/csv', 'application/vnd.ms-excel', "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"] |
|
|
|
this.count++ |
|
|
|
let imgList = ["text/plain"] |
|
|
|
if (imgList.indexOf(rawFile.type) === -1) { |
|
|
|
this.$msgbox.alert('请上传excel,csv格式的表格文件!') |
|
|
|
this.$msgbox.alert('请上传txt格式的文件!') |
|
|
|
return false |
|
|
|
} else if (rawFile.size / 1024 / 1024 > 50) { |
|
|
|
this.$msgbox.alert('表格文件的大小为小于50MB,数据过多时会处理过慢') |
|
|
|
this.$msgbox.alert('txt文件的大小为小于50MB,数据过多时会处理过慢') |
|
|
|
return true |
|
|
|
} |
|
|
|
return true |
|
|
@ -118,6 +128,7 @@ export default { |
|
|
|
let sheetName = workbook.SheetNames[0] |
|
|
|
let sheetData = XLSX.utils.sheet_to_json(workbook.Sheets[sheetName]) |
|
|
|
that.fileData = _.concat(that.fileData, sheetData) |
|
|
|
that.count-- |
|
|
|
} |
|
|
|
fileReader.onerror = function (error) { |
|
|
|
ElMessage({ |
|
|
@ -125,7 +136,7 @@ export default { |
|
|
|
type: 'error', |
|
|
|
}) |
|
|
|
} |
|
|
|
fileReader.readAsArrayBuffer(file) |
|
|
|
fileReader.readAsText(file, 'UTF-8') |
|
|
|
}, |
|
|
|
//更新数据 |
|
|
|
async updateSeach() { |
|
|
@ -160,32 +171,46 @@ export default { |
|
|
|
//确认提交 |
|
|
|
async submitImport() { |
|
|
|
let that = this |
|
|
|
let dealDataObj = { |
|
|
|
"销售数量": 1.2, |
|
|
|
"销售金额": 1.2, |
|
|
|
"退货数量": 1, |
|
|
|
"退货金额": 1, |
|
|
|
"数量小计": 1.2, |
|
|
|
"金额小计": 1.2, |
|
|
|
let skuObj = _.groupBy(this.fileData, 'SKU') |
|
|
|
let skuList = _.keys(skuObj) |
|
|
|
let ziliaocollection = myDatabase.ziliao |
|
|
|
if (skuList.length) { |
|
|
|
ziliaocollection = ziliaocollection.where('SKU').anyOf(skuList) |
|
|
|
} |
|
|
|
let ziliaoList = await ziliaocollection.toArray() |
|
|
|
|
|
|
|
let chimaObj = _.groupBy(ziliaoList, '尺码代码') |
|
|
|
let chimadaimaList = _.keys(chimaObj) |
|
|
|
let chimacollection = myDatabase.chima |
|
|
|
if (chimadaimaList.length) { |
|
|
|
chimacollection = chimacollection.where('尺码代码').anyOf(chimadaimaList) |
|
|
|
} |
|
|
|
let chimaList = await chimacollection.toArray() |
|
|
|
let allList = [] |
|
|
|
for (let i = 0; i < this.fileData.length; i++) { |
|
|
|
let element = this.fileData[i]; |
|
|
|
let item = {} |
|
|
|
for (let key in element) { |
|
|
|
item[_.trim(key)] = _.trim(element[key]) |
|
|
|
} |
|
|
|
if (item["行号"] && item["品名"] && item["供应商名称"]) { |
|
|
|
for (let key in item) { |
|
|
|
if (dealDataObj[_.trim(key)]) { |
|
|
|
item[_.trim(key)] = Number((Number(_.trim(element[key])) * dealDataObj[_.trim(key)]).toFixed(2)) |
|
|
|
} |
|
|
|
} |
|
|
|
allList.push({ |
|
|
|
...item, |
|
|
|
for (let key in skuObj) { |
|
|
|
let value = skuObj[key] |
|
|
|
let ziliaoItem = _.find(ziliaoList, { SKU: key }) |
|
|
|
let chimaItem = _.find(chimaList, { 尺码代码: ziliaoItem.尺码代码 }) |
|
|
|
let valueLength = value.length |
|
|
|
for (let i = 0; i < valueLength; i++) { |
|
|
|
let element = value[i]; |
|
|
|
let listItem = { |
|
|
|
...element, |
|
|
|
...ziliaoItem, |
|
|
|
...chimaItem, |
|
|
|
"鞋面材料": `${_.trim(chimaItem["性别"])} ${_.trim(ziliaoItem["鞋面材料"])}/大底材质`, |
|
|
|
"颜色": ziliaoItem["颜色描述"], |
|
|
|
"执行标准": `${ziliaoItem["执行标准"]} `, |
|
|
|
"颜色代码": ziliaoItem["颜色"], |
|
|
|
"图片名称": `${ziliaoItem["货号"]}.jpg`, |
|
|
|
"国际码": ziliaoItem["国标码"], |
|
|
|
"数量": `${valueLength}`, |
|
|
|
"下单数": ``, |
|
|
|
create_at: dayjs().format('YYYY-MM-DD HH:mm:ss'), |
|
|
|
update_at: dayjs().format('YYYY-MM-DD HH:mm:ss') |
|
|
|
}) |
|
|
|
} |
|
|
|
delete listItem.id |
|
|
|
allList.push(listItem) |
|
|
|
} |
|
|
|
} |
|
|
|
try { |
|
|
|