diff --git a/src/utils/getUid.ts b/src/utils/getUid.ts new file mode 100644 index 0000000..6ba284f --- /dev/null +++ b/src/utils/getUid.ts @@ -0,0 +1,18 @@ +/** + * 生成 n - m 之间的随机数 + */ +export function getRandom(n: number, m: number) { + return Math.floor(Math.random() * (m - n + 1) + n) +} + +/** + * 生成一个唯一的字符串ID,每次执行结果必定不一样 + */ +export function getUid() { + const random = '0123456789abcdefghijklmnopqrstuvwxyz' + let str = '' + for (let i = 0; i < 4; i++) { + str += random[getRandom(0, 35)] + } + return new Date().valueOf() + str +} diff --git a/src/utils/getUid.ts b/src/utils/getUid.ts new file mode 100644 index 0000000..6ba284f --- /dev/null +++ b/src/utils/getUid.ts @@ -0,0 +1,18 @@ +/** + * 生成 n - m 之间的随机数 + */ +export function getRandom(n: number, m: number) { + return Math.floor(Math.random() * (m - n + 1) + n) +} + +/** + * 生成一个唯一的字符串ID,每次执行结果必定不一样 + */ +export function getUid() { + const random = '0123456789abcdefghijklmnopqrstuvwxyz' + let str = '' + for (let i = 0; i < 4; i++) { + str += random[getRandom(0, 35)] + } + return new Date().valueOf() + str +} diff --git a/src/views/business/schedule/order/orderListEdit.vue b/src/views/business/schedule/order/orderListEdit.vue index 8f13ac5..7ff92d4 100644 --- a/src/views/business/schedule/order/orderListEdit.vue +++ b/src/views/business/schedule/order/orderListEdit.vue @@ -9,6 +9,7 @@ import selectCustomer from '@/views/customer/sample/list/selectCustomer.vue' import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' import showPhoto from '@/views/system/tool/showPhoto.vue' +import { getUid } from '@/utils/getUid' const pageType = ref('add') // 页面类型: add, edit, detail const infoId = ref('') // id @@ -29,7 +30,33 @@ companyAddress: '', // 委托方地址 remark: '', // 备注 minioFileName: '', // 附件 + isUrgent: '', // 是否加急 + certifications: '', // 证书类别 }) + +// 是否加急 +const isUrgentMap = [ + { + label: '是', + value: '1', + }, + { + label: '否', + value: '2', + }, +] + +// 证书类别 +const certificationsMap = [ + { + label: '检测报告', + value: '1', + }, + { + label: '校准报告', + value: '2', + }, +] const list = ref([])// 表格数据 // 电源电压 const powerVoltageMap = [ @@ -66,6 +93,8 @@ orderTime: [{ type: 'date', required: true, message: '委托日期不能为空', trigger: 'change' }], planDeliverTime: [{ type: 'date', required: true, message: '预计送达时间不能为空', trigger: 'change' }], requireOverTime: [{ type: 'date', required: true, message: '要求检完时间不能为空', trigger: 'change' }], + certifications: [{ required: true, message: '要求证书类别不能为空', trigger: 'change' }], + isUrgent: [{ required: true, message: '要求是否加急不能为空', trigger: 'change' }], }) // 表单验证规则 // 从路由中获取页面类型参数 @@ -137,6 +166,7 @@ mesureContent: '', // 检定项目 remark: '', // 备注 isEdit: true, // 是否可编辑 + delId: getUid(), }) } @@ -149,11 +179,17 @@ }) } else { - // --------------------------删除有问题---------------------------- checkoutList.value.forEach((item: ISampleList) => { list.value.forEach((element, index) => { - if (element.sampleNo === item.sampleNo || !item.sampleNo) { - list.value.splice(index, 1) + if (!item.sampleNo) { // 点击增加行--手动增加的项目需要判断前端添加的delID + if (element.delId === item.delId) { + list.value.splice(index, 1) + } + } + else { // 从样品库中选择的项目 + if (element.sampleNo === item.sampleNo) { + list.value.splice(index, 1) + } } }) }) @@ -163,7 +199,6 @@ const fileRef = ref() // 文件上传input const onFileChange = (event: any) => { // 原生上传 - console.log(event.target.files) if (event.target.files?.length !== 0) { // 创建formdata对象 const fd = new FormData() @@ -334,6 +369,30 @@ /> + + + + + + + + + + + + + + @@ -396,18 +455,16 @@ show-overflow-tooltip align="center" > - diff --git a/src/utils/getUid.ts b/src/utils/getUid.ts new file mode 100644 index 0000000..6ba284f --- /dev/null +++ b/src/utils/getUid.ts @@ -0,0 +1,18 @@ +/** + * 生成 n - m 之间的随机数 + */ +export function getRandom(n: number, m: number) { + return Math.floor(Math.random() * (m - n + 1) + n) +} + +/** + * 生成一个唯一的字符串ID,每次执行结果必定不一样 + */ +export function getUid() { + const random = '0123456789abcdefghijklmnopqrstuvwxyz' + let str = '' + for (let i = 0; i < 4; i++) { + str += random[getRandom(0, 35)] + } + return new Date().valueOf() + str +} diff --git a/src/views/business/schedule/order/orderListEdit.vue b/src/views/business/schedule/order/orderListEdit.vue index 8f13ac5..7ff92d4 100644 --- a/src/views/business/schedule/order/orderListEdit.vue +++ b/src/views/business/schedule/order/orderListEdit.vue @@ -9,6 +9,7 @@ import selectCustomer from '@/views/customer/sample/list/selectCustomer.vue' import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' import showPhoto from '@/views/system/tool/showPhoto.vue' +import { getUid } from '@/utils/getUid' const pageType = ref('add') // 页面类型: add, edit, detail const infoId = ref('') // id @@ -29,7 +30,33 @@ companyAddress: '', // 委托方地址 remark: '', // 备注 minioFileName: '', // 附件 + isUrgent: '', // 是否加急 + certifications: '', // 证书类别 }) + +// 是否加急 +const isUrgentMap = [ + { + label: '是', + value: '1', + }, + { + label: '否', + value: '2', + }, +] + +// 证书类别 +const certificationsMap = [ + { + label: '检测报告', + value: '1', + }, + { + label: '校准报告', + value: '2', + }, +] const list = ref([])// 表格数据 // 电源电压 const powerVoltageMap = [ @@ -66,6 +93,8 @@ orderTime: [{ type: 'date', required: true, message: '委托日期不能为空', trigger: 'change' }], planDeliverTime: [{ type: 'date', required: true, message: '预计送达时间不能为空', trigger: 'change' }], requireOverTime: [{ type: 'date', required: true, message: '要求检完时间不能为空', trigger: 'change' }], + certifications: [{ required: true, message: '要求证书类别不能为空', trigger: 'change' }], + isUrgent: [{ required: true, message: '要求是否加急不能为空', trigger: 'change' }], }) // 表单验证规则 // 从路由中获取页面类型参数 @@ -137,6 +166,7 @@ mesureContent: '', // 检定项目 remark: '', // 备注 isEdit: true, // 是否可编辑 + delId: getUid(), }) } @@ -149,11 +179,17 @@ }) } else { - // --------------------------删除有问题---------------------------- checkoutList.value.forEach((item: ISampleList) => { list.value.forEach((element, index) => { - if (element.sampleNo === item.sampleNo || !item.sampleNo) { - list.value.splice(index, 1) + if (!item.sampleNo) { // 点击增加行--手动增加的项目需要判断前端添加的delID + if (element.delId === item.delId) { + list.value.splice(index, 1) + } + } + else { // 从样品库中选择的项目 + if (element.sampleNo === item.sampleNo) { + list.value.splice(index, 1) + } } }) }) @@ -163,7 +199,6 @@ const fileRef = ref() // 文件上传input const onFileChange = (event: any) => { // 原生上传 - console.log(event.target.files) if (event.target.files?.length !== 0) { // 创建formdata对象 const fd = new FormData() @@ -334,6 +369,30 @@ /> + + + + + + + + + + + + + + @@ -396,18 +455,16 @@ show-overflow-tooltip align="center" > - diff --git a/src/views/business/schedule/order/orderList_interface.ts b/src/views/business/schedule/order/orderList_interface.ts index 8749da7..4330569 100644 --- a/src/views/business/schedule/order/orderList_interface.ts +++ b/src/views/business/schedule/order/orderList_interface.ts @@ -41,6 +41,8 @@ companyAddress: string // 委托方地址 remark: string // 备注 minioFileName: string // 附件 + isUrgent: string // 是否加急 + certifications: string // 证书类别 } // 样品清单 @@ -55,5 +57,6 @@ mesureContent: string // 检定项目 remark: string // 备注 isEdit?: boolean // 是否可编辑 + delId?: string // 删除id } diff --git a/src/utils/getUid.ts b/src/utils/getUid.ts new file mode 100644 index 0000000..6ba284f --- /dev/null +++ b/src/utils/getUid.ts @@ -0,0 +1,18 @@ +/** + * 生成 n - m 之间的随机数 + */ +export function getRandom(n: number, m: number) { + return Math.floor(Math.random() * (m - n + 1) + n) +} + +/** + * 生成一个唯一的字符串ID,每次执行结果必定不一样 + */ +export function getUid() { + const random = '0123456789abcdefghijklmnopqrstuvwxyz' + let str = '' + for (let i = 0; i < 4; i++) { + str += random[getRandom(0, 35)] + } + return new Date().valueOf() + str +} diff --git a/src/views/business/schedule/order/orderListEdit.vue b/src/views/business/schedule/order/orderListEdit.vue index 8f13ac5..7ff92d4 100644 --- a/src/views/business/schedule/order/orderListEdit.vue +++ b/src/views/business/schedule/order/orderListEdit.vue @@ -9,6 +9,7 @@ import selectCustomer from '@/views/customer/sample/list/selectCustomer.vue' import type { ICustomer } from '@/views/customer/customerInfo/customer_interface' import showPhoto from '@/views/system/tool/showPhoto.vue' +import { getUid } from '@/utils/getUid' const pageType = ref('add') // 页面类型: add, edit, detail const infoId = ref('') // id @@ -29,7 +30,33 @@ companyAddress: '', // 委托方地址 remark: '', // 备注 minioFileName: '', // 附件 + isUrgent: '', // 是否加急 + certifications: '', // 证书类别 }) + +// 是否加急 +const isUrgentMap = [ + { + label: '是', + value: '1', + }, + { + label: '否', + value: '2', + }, +] + +// 证书类别 +const certificationsMap = [ + { + label: '检测报告', + value: '1', + }, + { + label: '校准报告', + value: '2', + }, +] const list = ref([])// 表格数据 // 电源电压 const powerVoltageMap = [ @@ -66,6 +93,8 @@ orderTime: [{ type: 'date', required: true, message: '委托日期不能为空', trigger: 'change' }], planDeliverTime: [{ type: 'date', required: true, message: '预计送达时间不能为空', trigger: 'change' }], requireOverTime: [{ type: 'date', required: true, message: '要求检完时间不能为空', trigger: 'change' }], + certifications: [{ required: true, message: '要求证书类别不能为空', trigger: 'change' }], + isUrgent: [{ required: true, message: '要求是否加急不能为空', trigger: 'change' }], }) // 表单验证规则 // 从路由中获取页面类型参数 @@ -137,6 +166,7 @@ mesureContent: '', // 检定项目 remark: '', // 备注 isEdit: true, // 是否可编辑 + delId: getUid(), }) } @@ -149,11 +179,17 @@ }) } else { - // --------------------------删除有问题---------------------------- checkoutList.value.forEach((item: ISampleList) => { list.value.forEach((element, index) => { - if (element.sampleNo === item.sampleNo || !item.sampleNo) { - list.value.splice(index, 1) + if (!item.sampleNo) { // 点击增加行--手动增加的项目需要判断前端添加的delID + if (element.delId === item.delId) { + list.value.splice(index, 1) + } + } + else { // 从样品库中选择的项目 + if (element.sampleNo === item.sampleNo) { + list.value.splice(index, 1) + } } }) }) @@ -163,7 +199,6 @@ const fileRef = ref() // 文件上传input const onFileChange = (event: any) => { // 原生上传 - console.log(event.target.files) if (event.target.files?.length !== 0) { // 创建formdata对象 const fd = new FormData() @@ -334,6 +369,30 @@ /> + + + + + + + + + + + + + + @@ -396,18 +455,16 @@ show-overflow-tooltip align="center" > - diff --git a/src/views/business/schedule/order/orderList_interface.ts b/src/views/business/schedule/order/orderList_interface.ts index 8749da7..4330569 100644 --- a/src/views/business/schedule/order/orderList_interface.ts +++ b/src/views/business/schedule/order/orderList_interface.ts @@ -41,6 +41,8 @@ companyAddress: string // 委托方地址 remark: string // 备注 minioFileName: string // 附件 + isUrgent: string // 是否加急 + certifications: string // 证书类别 } // 样品清单 @@ -55,5 +57,6 @@ mesureContent: string // 检定项目 remark: string // 备注 isEdit?: boolean // 是否可编辑 + delId?: string // 删除id } diff --git a/src/views/device/receive/createOrCheck.vue b/src/views/device/receive/createOrCheck.vue index 43cedde..51dfb04 100644 --- a/src/views/device/receive/createOrCheck.vue +++ b/src/views/device/receive/createOrCheck.vue @@ -208,12 +208,12 @@ // 保存 const save = () => { - const loading = ElLoading.service({ - lock: true, - background: 'rgba(255, 255, 255, 0.8)', - }) ruleFormRef.value.validate((valid: boolean) => { if (valid) { + const loading = ElLoading.service({ + lock: true, + background: 'rgba(255, 255, 255, 0.8)', + }) const params = { applyUnit: form.value.applyUnit, // 申请单位 applyPerson: form.value.applyPerson, // 申请人