|
@@ -28,7 +28,7 @@
|
|
import { columns, getTableProperty, createErrorMessage, createFieldVerification, requsetFields } from './template'
|
|
import { columns, getTableProperty, createErrorMessage, createFieldVerification, requsetFields } from './template'
|
|
import companyHelper from '@/mixins/companyHelper'
|
|
import companyHelper from '@/mixins/companyHelper'
|
|
import { MessageBox } from 'element-ui'
|
|
import { MessageBox } from 'element-ui'
|
|
-import { isnumber } from '@/utils/validate'
|
|
|
|
|
|
+import { isnumber, isMobile, isPhone } from '@/utils/validate'
|
|
export default {
|
|
export default {
|
|
mixins: [companyHelper],
|
|
mixins: [companyHelper],
|
|
props: ['visible'],
|
|
props: ['visible'],
|
|
@@ -97,6 +97,17 @@ export default {
|
|
})
|
|
})
|
|
return verification
|
|
return verification
|
|
},
|
|
},
|
|
|
|
+ /* 校验导入的联系电话是否合法 **/
|
|
|
|
+ validateMobile(mobiles = []) {
|
|
|
|
+ const verification = createFieldVerification('联系电话不能为空且必须为手机号或电话号码')
|
|
|
|
+ mobiles.forEach((mobile, index) => {
|
|
|
|
+ if (!mobile || isMobile(mobile) && isPhone(mobile)) {
|
|
|
|
+ verification.isValid = false
|
|
|
|
+ verification.notValidRows.push(index + 1)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return verification
|
|
|
|
+ },
|
|
/* 校验导入的购买方列表编码(开头必须为QS) **/
|
|
/* 校验导入的购买方列表编码(开头必须为QS) **/
|
|
validateSupplierNo(suppliers = []) {
|
|
validateSupplierNo(suppliers = []) {
|
|
const verification = createFieldVerification("供应商公司编码不能为空且必须以'QS'开头")
|
|
const verification = createFieldVerification("供应商公司编码不能为空且必须以'QS'开头")
|
|
@@ -109,7 +120,7 @@ export default {
|
|
})
|
|
})
|
|
return verification
|
|
return verification
|
|
},
|
|
},
|
|
- /* 校验导入的税率、数量、单价、采购毛利率是否为数组 **/
|
|
|
|
|
|
+ /* 校验导入的税率、数量、单价、采购毛利率是否为数字 **/
|
|
validateNumberField(numberFields) {
|
|
validateNumberField(numberFields) {
|
|
const verification = createFieldVerification('税率、数量、单价、采购毛利率不能为空且必须是数字')
|
|
const verification = createFieldVerification('税率、数量、单价、采购毛利率不能为空且必须是数字')
|
|
const { tax, goodNum, goodPrice, cgd_tax } = numberFields
|
|
const { tax, goodNum, goodPrice, cgd_tax } = numberFields
|
|
@@ -123,6 +134,40 @@ export default {
|
|
})
|
|
})
|
|
return verification
|
|
return verification
|
|
},
|
|
},
|
|
|
|
+ /* 校验导入的税率、数量、单价、采购毛利率是否为数组 **/
|
|
|
|
+ validateRequiredField(requiredFields) {
|
|
|
|
+ const verification = createFieldVerification('所属平台、商品分类、商品名称、单位、收货人、收货地址、PO编号不能为空')
|
|
|
|
+ const {
|
|
|
|
+ platform_id,
|
|
|
|
+ cat_id,
|
|
|
|
+ goodName,
|
|
|
|
+ goodUnit,
|
|
|
|
+ contactor,
|
|
|
|
+ addr,
|
|
|
|
+ sendtime,
|
|
|
|
+ poCode
|
|
|
|
+ } = requiredFields
|
|
|
|
+
|
|
|
|
+ platform_id.forEach((_, index) => {
|
|
|
|
+ const values = [
|
|
|
|
+ platform_id[index],
|
|
|
|
+ contactor[index],
|
|
|
|
+ goodName[index],
|
|
|
|
+ goodUnit[index],
|
|
|
|
+ sendtime[index],
|
|
|
|
+ cat_id[index],
|
|
|
|
+ poCode[index],
|
|
|
|
+ addr[index]
|
|
|
|
+ ]
|
|
|
|
+
|
|
|
|
+ const valuesIsNotNull = values.every(value => value && String(value).trim() !== '')
|
|
|
|
+ if (!valuesIsNotNull) {
|
|
|
|
+ verification.isValid = false
|
|
|
|
+ verification.notValidRows.push(index + 1)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ return verification
|
|
|
|
+ },
|
|
/* 处理不合法的值,提示错误信息,并返回最终的验证状态 **/
|
|
/* 处理不合法的值,提示错误信息,并返回最终的验证状态 **/
|
|
handleNotValidFields(...validStates) {
|
|
handleNotValidFields(...validStates) {
|
|
const messages = {}
|
|
const messages = {}
|
|
@@ -167,6 +212,17 @@ export default {
|
|
this.validateKhNo(mapTableFieldToTableData.khNo),
|
|
this.validateKhNo(mapTableFieldToTableData.khNo),
|
|
this.validateCompanyNo(mapTableFieldToTableData.companyNo),
|
|
this.validateCompanyNo(mapTableFieldToTableData.companyNo),
|
|
this.validateSupplierNo(mapTableFieldToTableData.supplierNo),
|
|
this.validateSupplierNo(mapTableFieldToTableData.supplierNo),
|
|
|
|
+ this.validateMobile(mapTableFieldToTableData.mobile),
|
|
|
|
+ this.validateRequiredField({
|
|
|
|
+ platform_id: mapTableFieldToTableData.platform_id,
|
|
|
|
+ cat_id: mapTableFieldToTableData.cat_id,
|
|
|
|
+ goodName: mapTableFieldToTableData.goodName,
|
|
|
|
+ goodUnit: mapTableFieldToTableData.goodUnit,
|
|
|
|
+ contactor: mapTableFieldToTableData.contactor,
|
|
|
|
+ addr: mapTableFieldToTableData.addr,
|
|
|
|
+ sendtime: mapTableFieldToTableData.sendtime,
|
|
|
|
+ poCode: mapTableFieldToTableData.poCode
|
|
|
|
+ }),
|
|
this.validateNumberField({
|
|
this.validateNumberField({
|
|
tax: mapTableFieldToTableData.tax,
|
|
tax: mapTableFieldToTableData.tax,
|
|
cgd_tax: mapTableFieldToTableData.cgd_tax,
|
|
cgd_tax: mapTableFieldToTableData.cgd_tax,
|
|
@@ -205,8 +261,14 @@ export default {
|
|
},
|
|
},
|
|
onSubmit() {
|
|
onSubmit() {
|
|
const { message, isFinalValid } = this.validateFields(this.tableData)
|
|
const { message, isFinalValid } = this.validateFields(this.tableData)
|
|
- console.log(requsetFields)
|
|
|
|
if (!isFinalValid) return message()
|
|
if (!isFinalValid) return message()
|
|
|
|
+
|
|
|
|
+ const data = this.tableData.map(tableItem => requsetFields.reduce((prev, currentKey) => ({
|
|
|
|
+ ...prev,
|
|
|
|
+ [currentKey]: tableItem[currentKey]
|
|
|
|
+ }), {}))
|
|
|
|
+
|
|
|
|
+ console.log(data, 'TODO:requset api....')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|