diff --git a/src/api/business/lab/cert.ts b/src/api/business/lab/cert.ts
index 2c99ed0..0e470c4 100644
--- a/src/api/business/lab/cert.ts
+++ b/src/api/business/lab/cert.ts
@@ -58,3 +58,12 @@
data,
})
}
+
+// 证书作废
+export function certificatePrintInvalid(data: object) {
+ return request({
+ url: '/business/certificatePrint/invalid',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/api/business/lab/cert.ts b/src/api/business/lab/cert.ts
index 2c99ed0..0e470c4 100644
--- a/src/api/business/lab/cert.ts
+++ b/src/api/business/lab/cert.ts
@@ -58,3 +58,12 @@
data,
})
}
+
+// 证书作废
+export function certificatePrintInvalid(data: object) {
+ return request({
+ url: '/business/certificatePrint/invalid',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 01e3f5b..e7ffdb4 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -17,7 +17,7 @@
* @param name 图片名称
*/
export function downloadFile(file: File, name: string) {
- console.log(new Blob([file]), 'new Blob([file])')
+ // console.log(new Blob([file]), 'new Blob([file])')
const objectUrl = URL.createObjectURL(new Blob([file]))
const link = document.createElement('a')
link.download = name
diff --git a/src/api/business/lab/cert.ts b/src/api/business/lab/cert.ts
index 2c99ed0..0e470c4 100644
--- a/src/api/business/lab/cert.ts
+++ b/src/api/business/lab/cert.ts
@@ -58,3 +58,12 @@
data,
})
}
+
+// 证书作废
+export function certificatePrintInvalid(data: object) {
+ return request({
+ url: '/business/certificatePrint/invalid',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 01e3f5b..e7ffdb4 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -17,7 +17,7 @@
* @param name 图片名称
*/
export function downloadFile(file: File, name: string) {
- console.log(new Blob([file]), 'new Blob([file])')
+ // console.log(new Blob([file]), 'new Blob([file])')
const objectUrl = URL.createObjectURL(new Blob([file]))
const link = document.createElement('a')
link.download = name
diff --git a/src/views/business/lab/certificateReportRetrieval/reportList.vue b/src/views/business/lab/certificateReportRetrieval/reportList.vue
index 8a36cf2..5a52b70 100644
--- a/src/views/business/lab/certificateReportRetrieval/reportList.vue
+++ b/src/views/business/lab/certificateReportRetrieval/reportList.vue
@@ -6,6 +6,8 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getCertificateRetrievalList } from '@/api/business/lab/certificateReportRetrieval'
+
+import { certificatePrintDetail, certificatePrintInvalid } from '@/api/business/lab/cert'
import { getUserList } from '@/api/system/user'
import { exportFile } from '@/utils/exportUtils'
const { proxy } = getCurrentInstance() as any
@@ -110,6 +112,28 @@
const handleDetail = (row: any) => {
detailRef.value.initDialog(row.printFileName)
}
+// 重检按钮
+const recheck = (row: any) => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ certificatePrintDetail({ id: row.id }).then((res) => {
+ certificatePrintInvalid({
+ orderId: res.data.orderId,
+ sampleId: res.data.sampleId,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ fetchData(true)
+ })
+ })
+ })
+}
@@ -235,6 +259,10 @@
>
查看
+
+
+ 重检
+
diff --git a/src/api/business/lab/cert.ts b/src/api/business/lab/cert.ts
index 2c99ed0..0e470c4 100644
--- a/src/api/business/lab/cert.ts
+++ b/src/api/business/lab/cert.ts
@@ -58,3 +58,12 @@
data,
})
}
+
+// 证书作废
+export function certificatePrintInvalid(data: object) {
+ return request({
+ url: '/business/certificatePrint/invalid',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 01e3f5b..e7ffdb4 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -17,7 +17,7 @@
* @param name 图片名称
*/
export function downloadFile(file: File, name: string) {
- console.log(new Blob([file]), 'new Blob([file])')
+ // console.log(new Blob([file]), 'new Blob([file])')
const objectUrl = URL.createObjectURL(new Blob([file]))
const link = document.createElement('a')
link.download = name
diff --git a/src/views/business/lab/certificateReportRetrieval/reportList.vue b/src/views/business/lab/certificateReportRetrieval/reportList.vue
index 8a36cf2..5a52b70 100644
--- a/src/views/business/lab/certificateReportRetrieval/reportList.vue
+++ b/src/views/business/lab/certificateReportRetrieval/reportList.vue
@@ -6,6 +6,8 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getCertificateRetrievalList } from '@/api/business/lab/certificateReportRetrieval'
+
+import { certificatePrintDetail, certificatePrintInvalid } from '@/api/business/lab/cert'
import { getUserList } from '@/api/system/user'
import { exportFile } from '@/utils/exportUtils'
const { proxy } = getCurrentInstance() as any
@@ -110,6 +112,28 @@
const handleDetail = (row: any) => {
detailRef.value.initDialog(row.printFileName)
}
+// 重检按钮
+const recheck = (row: any) => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ certificatePrintDetail({ id: row.id }).then((res) => {
+ certificatePrintInvalid({
+ orderId: res.data.orderId,
+ sampleId: res.data.sampleId,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ fetchData(true)
+ })
+ })
+ })
+}
@@ -235,6 +259,10 @@
>
查看
+
+
+ 重检
+
diff --git a/src/views/business/lab/myMeasure/measureDetail.vue b/src/views/business/lab/myMeasure/measureDetail.vue
index 2c758ea..b8a4cbc 100644
--- a/src/views/business/lab/myMeasure/measureDetail.vue
+++ b/src/views/business/lab/myMeasure/measureDetail.vue
@@ -12,6 +12,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getSapmleDetail, updateSample } from '@/api/customer/sampleList'
+import { certificatePrintInvalid } from '@/api/business/lab/cert'
interface dictType {
id: string
name: string
@@ -292,6 +293,30 @@
getInfo()
}
})
+// 重检按钮
+const recheck = () => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ // if (!$route.query.certificateReportId) {
+ // ElMessage.warning('无证书记录')
+ // return
+ // }
+ certificatePrintInvalid({
+ sampleId: sampleId.value,
+ orderId: orderId.value,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ $router.go(-1)
+ })
+ })
+}
@@ -307,6 +332,9 @@
+
+ 重检
+
关闭
diff --git a/src/api/business/lab/cert.ts b/src/api/business/lab/cert.ts
index 2c99ed0..0e470c4 100644
--- a/src/api/business/lab/cert.ts
+++ b/src/api/business/lab/cert.ts
@@ -58,3 +58,12 @@
data,
})
}
+
+// 证书作废
+export function certificatePrintInvalid(data: object) {
+ return request({
+ url: '/business/certificatePrint/invalid',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 01e3f5b..e7ffdb4 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -17,7 +17,7 @@
* @param name 图片名称
*/
export function downloadFile(file: File, name: string) {
- console.log(new Blob([file]), 'new Blob([file])')
+ // console.log(new Blob([file]), 'new Blob([file])')
const objectUrl = URL.createObjectURL(new Blob([file]))
const link = document.createElement('a')
link.download = name
diff --git a/src/views/business/lab/certificateReportRetrieval/reportList.vue b/src/views/business/lab/certificateReportRetrieval/reportList.vue
index 8a36cf2..5a52b70 100644
--- a/src/views/business/lab/certificateReportRetrieval/reportList.vue
+++ b/src/views/business/lab/certificateReportRetrieval/reportList.vue
@@ -6,6 +6,8 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getCertificateRetrievalList } from '@/api/business/lab/certificateReportRetrieval'
+
+import { certificatePrintDetail, certificatePrintInvalid } from '@/api/business/lab/cert'
import { getUserList } from '@/api/system/user'
import { exportFile } from '@/utils/exportUtils'
const { proxy } = getCurrentInstance() as any
@@ -110,6 +112,28 @@
const handleDetail = (row: any) => {
detailRef.value.initDialog(row.printFileName)
}
+// 重检按钮
+const recheck = (row: any) => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ certificatePrintDetail({ id: row.id }).then((res) => {
+ certificatePrintInvalid({
+ orderId: res.data.orderId,
+ sampleId: res.data.sampleId,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ fetchData(true)
+ })
+ })
+ })
+}
@@ -235,6 +259,10 @@
>
查看
+
+
+ 重检
+
diff --git a/src/views/business/lab/myMeasure/measureDetail.vue b/src/views/business/lab/myMeasure/measureDetail.vue
index 2c758ea..b8a4cbc 100644
--- a/src/views/business/lab/myMeasure/measureDetail.vue
+++ b/src/views/business/lab/myMeasure/measureDetail.vue
@@ -12,6 +12,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getSapmleDetail, updateSample } from '@/api/customer/sampleList'
+import { certificatePrintInvalid } from '@/api/business/lab/cert'
interface dictType {
id: string
name: string
@@ -292,6 +293,30 @@
getInfo()
}
})
+// 重检按钮
+const recheck = () => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ // if (!$route.query.certificateReportId) {
+ // ElMessage.warning('无证书记录')
+ // return
+ // }
+ certificatePrintInvalid({
+ sampleId: sampleId.value,
+ orderId: orderId.value,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ $router.go(-1)
+ })
+ })
+}
@@ -307,6 +332,9 @@
+
+ 重检
+
关闭
diff --git a/src/views/business/lab/myMeasure/myMeasureList.vue b/src/views/business/lab/myMeasure/myMeasureList.vue
index e6ffc98..7c988b3 100644
--- a/src/views/business/lab/myMeasure/myMeasureList.vue
+++ b/src/views/business/lab/myMeasure/myMeasureList.vue
@@ -35,6 +35,7 @@
startTime: '', // 应检完时间-开始
endTime: '', // 应检完时间-结束
measureStatus: active.value, // 检测状态
+ remark: '', // 备注
offset: 1,
limit: 20,
})
@@ -95,6 +96,9 @@
if (!listQuery.value.measureStatus) {
listQuery.value.measureStatus = '2' // 待检测
}
+ if (listQuery.value.measureStatus !== '3') {
+ listQuery.value.remark = ''
+ }
getMyMeasureList(listQuery.value).then((res) => {
list.value = res.data.rows.map((item: ITaskList) => {
item.isUrgentName = item.isUrgent == 1 ? '是' : '否'
@@ -126,6 +130,7 @@
sampleBelong: '', // 样品属性
startTime: '', // 应检完时间-开始
endTime: '', // 应检完时间-结束
+ remark: '', // 备注
measureStatus: active.value, // 检测状态
offset: 1,
limit: 20,
@@ -135,7 +140,7 @@
}
// 点击详情
const handleDetail = (row: ITaskList) => {
- $router.push(`myMeasureDetail/detail/${row.sampleId}?order=${row.orderId}&customerId=${row.customerId}`)
+ $router.push(`myMeasureDetail/detail/${row.sampleId}?order=${row.orderId}&customerId=${row.customerId}&measureStatus=${listQuery.value.measureStatus}&certificateReportId=${row.certificateReportId}`)
}
// 点击分发, 弹窗
@@ -427,6 +432,15 @@
/>
+
+
+
@@ -450,6 +464,13 @@
:list-loading="loadingTable" is-showmulti-select @change="changePage" @multi-select="handleSelectionChange"
>
+
+
+ {{
+ row.remark
+ }}
+
+
diff --git a/src/api/business/lab/cert.ts b/src/api/business/lab/cert.ts
index 2c99ed0..0e470c4 100644
--- a/src/api/business/lab/cert.ts
+++ b/src/api/business/lab/cert.ts
@@ -58,3 +58,12 @@
data,
})
}
+
+// 证书作废
+export function certificatePrintInvalid(data: object) {
+ return request({
+ url: '/business/certificatePrint/invalid',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 01e3f5b..e7ffdb4 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -17,7 +17,7 @@
* @param name 图片名称
*/
export function downloadFile(file: File, name: string) {
- console.log(new Blob([file]), 'new Blob([file])')
+ // console.log(new Blob([file]), 'new Blob([file])')
const objectUrl = URL.createObjectURL(new Blob([file]))
const link = document.createElement('a')
link.download = name
diff --git a/src/views/business/lab/certificateReportRetrieval/reportList.vue b/src/views/business/lab/certificateReportRetrieval/reportList.vue
index 8a36cf2..5a52b70 100644
--- a/src/views/business/lab/certificateReportRetrieval/reportList.vue
+++ b/src/views/business/lab/certificateReportRetrieval/reportList.vue
@@ -6,6 +6,8 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getCertificateRetrievalList } from '@/api/business/lab/certificateReportRetrieval'
+
+import { certificatePrintDetail, certificatePrintInvalid } from '@/api/business/lab/cert'
import { getUserList } from '@/api/system/user'
import { exportFile } from '@/utils/exportUtils'
const { proxy } = getCurrentInstance() as any
@@ -110,6 +112,28 @@
const handleDetail = (row: any) => {
detailRef.value.initDialog(row.printFileName)
}
+// 重检按钮
+const recheck = (row: any) => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ certificatePrintDetail({ id: row.id }).then((res) => {
+ certificatePrintInvalid({
+ orderId: res.data.orderId,
+ sampleId: res.data.sampleId,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ fetchData(true)
+ })
+ })
+ })
+}
@@ -235,6 +259,10 @@
>
查看
+
+
+ 重检
+
diff --git a/src/views/business/lab/myMeasure/measureDetail.vue b/src/views/business/lab/myMeasure/measureDetail.vue
index 2c758ea..b8a4cbc 100644
--- a/src/views/business/lab/myMeasure/measureDetail.vue
+++ b/src/views/business/lab/myMeasure/measureDetail.vue
@@ -12,6 +12,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getSapmleDetail, updateSample } from '@/api/customer/sampleList'
+import { certificatePrintInvalid } from '@/api/business/lab/cert'
interface dictType {
id: string
name: string
@@ -292,6 +293,30 @@
getInfo()
}
})
+// 重检按钮
+const recheck = () => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ // if (!$route.query.certificateReportId) {
+ // ElMessage.warning('无证书记录')
+ // return
+ // }
+ certificatePrintInvalid({
+ sampleId: sampleId.value,
+ orderId: orderId.value,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ $router.go(-1)
+ })
+ })
+}
@@ -307,6 +332,9 @@
+
+ 重检
+
关闭
diff --git a/src/views/business/lab/myMeasure/myMeasureList.vue b/src/views/business/lab/myMeasure/myMeasureList.vue
index e6ffc98..7c988b3 100644
--- a/src/views/business/lab/myMeasure/myMeasureList.vue
+++ b/src/views/business/lab/myMeasure/myMeasureList.vue
@@ -35,6 +35,7 @@
startTime: '', // 应检完时间-开始
endTime: '', // 应检完时间-结束
measureStatus: active.value, // 检测状态
+ remark: '', // 备注
offset: 1,
limit: 20,
})
@@ -95,6 +96,9 @@
if (!listQuery.value.measureStatus) {
listQuery.value.measureStatus = '2' // 待检测
}
+ if (listQuery.value.measureStatus !== '3') {
+ listQuery.value.remark = ''
+ }
getMyMeasureList(listQuery.value).then((res) => {
list.value = res.data.rows.map((item: ITaskList) => {
item.isUrgentName = item.isUrgent == 1 ? '是' : '否'
@@ -126,6 +130,7 @@
sampleBelong: '', // 样品属性
startTime: '', // 应检完时间-开始
endTime: '', // 应检完时间-结束
+ remark: '', // 备注
measureStatus: active.value, // 检测状态
offset: 1,
limit: 20,
@@ -135,7 +140,7 @@
}
// 点击详情
const handleDetail = (row: ITaskList) => {
- $router.push(`myMeasureDetail/detail/${row.sampleId}?order=${row.orderId}&customerId=${row.customerId}`)
+ $router.push(`myMeasureDetail/detail/${row.sampleId}?order=${row.orderId}&customerId=${row.customerId}&measureStatus=${listQuery.value.measureStatus}&certificateReportId=${row.certificateReportId}`)
}
// 点击分发, 弹窗
@@ -427,6 +432,15 @@
/>
+
+
+
@@ -450,6 +464,13 @@
:list-loading="loadingTable" is-showmulti-select @change="changePage" @multi-select="handleSelectionChange"
>
+
+
+ {{
+ row.remark
+ }}
+
+
diff --git a/src/views/business/lab/primitiveLog/primitveLogAdd.vue b/src/views/business/lab/primitiveLog/primitveLogAdd.vue
index 86b4c41..a29ec11 100644
--- a/src/views/business/lab/primitiveLog/primitveLogAdd.vue
+++ b/src/views/business/lab/primitiveLog/primitveLogAdd.vue
@@ -184,6 +184,7 @@
// 表单验证规则
const rules = ref({
'originalRecordName': [{ required: true, message: '原始记录名称必填', trigger: ['blur', 'change'] }],
+ 'contactInfo': [{ required: true, message: '原始记录文件必须上传', trigger: ['blur', 'change'] }],
'verifierId': [{ required: true, message: '校验人员必填', trigger: ['blur', 'change'] }],
'measureCategory': [{ required: true, message: '校验类别必填', trigger: ['blur', 'change'] }],
'calibrationTime': [{ required: true, message: '校验时间必填', trigger: ['blur', 'change'] }],
@@ -240,6 +241,8 @@
if (res.code === 200) {
formInline.value.originalRecordFile = res.data[0]
// 重置当前验证
+
+ ruleFormRef.value?.clearValidate('contactInfo')
ElMessage.success('文件上传成功')
}
else {
@@ -403,16 +406,17 @@
}
// 下载原始记录单模板
const downLog = () => {
- ruleFormRef.value?.validate().then(() => {
- const params = {
- temperature: formInline.value.businessEnvironmentRecord.temperature,
- humidity: formInline.value.businessEnvironmentRecord.humidity,
- ...formInline.value,
- }
- downPrimitiveLog(params).then((res) => {
- downloadFile(res.data, `${formInline.value.templateName}.xlsx`)
- })
+ // ruleFormRef.value?.validate().then(() => {
+ const params = {
+ temperature: formInline.value.businessEnvironmentRecord.temperature,
+ humidity: formInline.value.businessEnvironmentRecord.humidity,
+ ...formInline.value,
+ }
+ downPrimitiveLog(params).then((res) => {
+ const dis = res.headers['content-disposition']
+ downloadFile(res.data, dis)
})
+ // })
}
// ----------------------------------------所用设备-------------------------------------
const isMultiMeasureDevice = ref(false)
diff --git a/src/api/business/lab/cert.ts b/src/api/business/lab/cert.ts
index 2c99ed0..0e470c4 100644
--- a/src/api/business/lab/cert.ts
+++ b/src/api/business/lab/cert.ts
@@ -58,3 +58,12 @@
data,
})
}
+
+// 证书作废
+export function certificatePrintInvalid(data: object) {
+ return request({
+ url: '/business/certificatePrint/invalid',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 01e3f5b..e7ffdb4 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -17,7 +17,7 @@
* @param name 图片名称
*/
export function downloadFile(file: File, name: string) {
- console.log(new Blob([file]), 'new Blob([file])')
+ // console.log(new Blob([file]), 'new Blob([file])')
const objectUrl = URL.createObjectURL(new Blob([file]))
const link = document.createElement('a')
link.download = name
diff --git a/src/views/business/lab/certificateReportRetrieval/reportList.vue b/src/views/business/lab/certificateReportRetrieval/reportList.vue
index 8a36cf2..5a52b70 100644
--- a/src/views/business/lab/certificateReportRetrieval/reportList.vue
+++ b/src/views/business/lab/certificateReportRetrieval/reportList.vue
@@ -6,6 +6,8 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getCertificateRetrievalList } from '@/api/business/lab/certificateReportRetrieval'
+
+import { certificatePrintDetail, certificatePrintInvalid } from '@/api/business/lab/cert'
import { getUserList } from '@/api/system/user'
import { exportFile } from '@/utils/exportUtils'
const { proxy } = getCurrentInstance() as any
@@ -110,6 +112,28 @@
const handleDetail = (row: any) => {
detailRef.value.initDialog(row.printFileName)
}
+// 重检按钮
+const recheck = (row: any) => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ certificatePrintDetail({ id: row.id }).then((res) => {
+ certificatePrintInvalid({
+ orderId: res.data.orderId,
+ sampleId: res.data.sampleId,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ fetchData(true)
+ })
+ })
+ })
+}
@@ -235,6 +259,10 @@
>
查看
+
+
+ 重检
+
diff --git a/src/views/business/lab/myMeasure/measureDetail.vue b/src/views/business/lab/myMeasure/measureDetail.vue
index 2c758ea..b8a4cbc 100644
--- a/src/views/business/lab/myMeasure/measureDetail.vue
+++ b/src/views/business/lab/myMeasure/measureDetail.vue
@@ -12,6 +12,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getSapmleDetail, updateSample } from '@/api/customer/sampleList'
+import { certificatePrintInvalid } from '@/api/business/lab/cert'
interface dictType {
id: string
name: string
@@ -292,6 +293,30 @@
getInfo()
}
})
+// 重检按钮
+const recheck = () => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ // if (!$route.query.certificateReportId) {
+ // ElMessage.warning('无证书记录')
+ // return
+ // }
+ certificatePrintInvalid({
+ sampleId: sampleId.value,
+ orderId: orderId.value,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ $router.go(-1)
+ })
+ })
+}
@@ -307,6 +332,9 @@
+
+ 重检
+
关闭
diff --git a/src/views/business/lab/myMeasure/myMeasureList.vue b/src/views/business/lab/myMeasure/myMeasureList.vue
index e6ffc98..7c988b3 100644
--- a/src/views/business/lab/myMeasure/myMeasureList.vue
+++ b/src/views/business/lab/myMeasure/myMeasureList.vue
@@ -35,6 +35,7 @@
startTime: '', // 应检完时间-开始
endTime: '', // 应检完时间-结束
measureStatus: active.value, // 检测状态
+ remark: '', // 备注
offset: 1,
limit: 20,
})
@@ -95,6 +96,9 @@
if (!listQuery.value.measureStatus) {
listQuery.value.measureStatus = '2' // 待检测
}
+ if (listQuery.value.measureStatus !== '3') {
+ listQuery.value.remark = ''
+ }
getMyMeasureList(listQuery.value).then((res) => {
list.value = res.data.rows.map((item: ITaskList) => {
item.isUrgentName = item.isUrgent == 1 ? '是' : '否'
@@ -126,6 +130,7 @@
sampleBelong: '', // 样品属性
startTime: '', // 应检完时间-开始
endTime: '', // 应检完时间-结束
+ remark: '', // 备注
measureStatus: active.value, // 检测状态
offset: 1,
limit: 20,
@@ -135,7 +140,7 @@
}
// 点击详情
const handleDetail = (row: ITaskList) => {
- $router.push(`myMeasureDetail/detail/${row.sampleId}?order=${row.orderId}&customerId=${row.customerId}`)
+ $router.push(`myMeasureDetail/detail/${row.sampleId}?order=${row.orderId}&customerId=${row.customerId}&measureStatus=${listQuery.value.measureStatus}&certificateReportId=${row.certificateReportId}`)
}
// 点击分发, 弹窗
@@ -427,6 +432,15 @@
/>
+
+
+
@@ -450,6 +464,13 @@
:list-loading="loadingTable" is-showmulti-select @change="changePage" @multi-select="handleSelectionChange"
>
+
+
+ {{
+ row.remark
+ }}
+
+
diff --git a/src/views/business/lab/primitiveLog/primitveLogAdd.vue b/src/views/business/lab/primitiveLog/primitveLogAdd.vue
index 86b4c41..a29ec11 100644
--- a/src/views/business/lab/primitiveLog/primitveLogAdd.vue
+++ b/src/views/business/lab/primitiveLog/primitveLogAdd.vue
@@ -184,6 +184,7 @@
// 表单验证规则
const rules = ref({
'originalRecordName': [{ required: true, message: '原始记录名称必填', trigger: ['blur', 'change'] }],
+ 'contactInfo': [{ required: true, message: '原始记录文件必须上传', trigger: ['blur', 'change'] }],
'verifierId': [{ required: true, message: '校验人员必填', trigger: ['blur', 'change'] }],
'measureCategory': [{ required: true, message: '校验类别必填', trigger: ['blur', 'change'] }],
'calibrationTime': [{ required: true, message: '校验时间必填', trigger: ['blur', 'change'] }],
@@ -240,6 +241,8 @@
if (res.code === 200) {
formInline.value.originalRecordFile = res.data[0]
// 重置当前验证
+
+ ruleFormRef.value?.clearValidate('contactInfo')
ElMessage.success('文件上传成功')
}
else {
@@ -403,16 +406,17 @@
}
// 下载原始记录单模板
const downLog = () => {
- ruleFormRef.value?.validate().then(() => {
- const params = {
- temperature: formInline.value.businessEnvironmentRecord.temperature,
- humidity: formInline.value.businessEnvironmentRecord.humidity,
- ...formInline.value,
- }
- downPrimitiveLog(params).then((res) => {
- downloadFile(res.data, `${formInline.value.templateName}.xlsx`)
- })
+ // ruleFormRef.value?.validate().then(() => {
+ const params = {
+ temperature: formInline.value.businessEnvironmentRecord.temperature,
+ humidity: formInline.value.businessEnvironmentRecord.humidity,
+ ...formInline.value,
+ }
+ downPrimitiveLog(params).then((res) => {
+ const dis = res.headers['content-disposition']
+ downloadFile(res.data, dis)
})
+ // })
}
// ----------------------------------------所用设备-------------------------------------
const isMultiMeasureDevice = ref(false)
diff --git a/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue b/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue
index d0c8bcf..b7ce42c 100644
--- a/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue
+++ b/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue
@@ -152,6 +152,7 @@
// 表单验证规则
const rules = ref({
'deliverTime': [{ required: true, message: '接收日期必选', trigger: ['blur', 'change'] }],
+ 'certificateReportFile': [{ required: true, message: '证书附件必选上传', trigger: ['blur', 'change'] }],
'calibrationTime': [{ required: true, message: '校验日期必选', trigger: ['blur', 'change'] }],
'calibrationMajor': [{ required: true, message: '检校专业必填', trigger: ['blur', 'change'] }],
'createUserName': [{ required: true, message: '创建人必填', trigger: ['blur', 'change'] }],
@@ -161,8 +162,8 @@
'issuanceDate': [{ required: true, message: '出具日期必填', trigger: ['blur', 'change'] }],
'expirationDate': [{ required: true, message: '有效日期必填', trigger: ['blur', 'change'] }],
'templateName': [{ required: true, message: '证书报告模板必填', trigger: ['blur', 'change'] }],
- 'signName': [{ required: true, message: '电子签章必填', trigger: ['blur', 'change'] }],
- 'approvalSignName': [{ required: true, message: '认可标志专用章必填', trigger: ['blur', 'change'] }],
+ // 'signName': [{ required: true, message: '电子签章必填', trigger: ['blur', 'change'] }],
+ // 'approvalSignName': [{ required: true, message: '认可标志专用章必填', trigger: ['blur', 'change'] }],
'businessOriginalRecord.originalRecordCode': [{ required: true, message: '原始记录编号必填', trigger: ['blur', 'change'] }],
'businessOriginalRecord.customerSampleInfo.sampleNo': [{ required: true, message: '样品编号必填', trigger: ['blur', 'change'] }],
'businessOriginalRecord.customerSampleInfo.sampleName': [{ required: true, message: '样品名称必填', trigger: ['blur', 'change'] }],
@@ -308,6 +309,7 @@
if (res.code === 200) {
formInline.value.certificateReportFile = res.data[0]
// 重置当前验证
+ ruleFormRef.value?.clearValidate('certificateReportFile')
ElMessage.success('文件上传成功')
loading.close()
}
@@ -481,7 +483,6 @@
}
// 选好原始记录
const confirmCheckoutPrimitiveLog = (val: any) => {
- console.log(val, '选好原始记录')
formInline.value.businessOriginalRecord = val
formInline.value.certifications = val.businessOrder.certifications // 证书类别
formInline.value.certificateReportCategory = val.businessOrder.certifications // 证书类别
@@ -566,11 +567,13 @@
}
// 下载证书
const downLo = () => {
- ruleFormRef.value?.validate().then(() => {
- downCertifica(formInline.value).then((res) => {
- downloadFile(res.data, `${formInline.value.certificateReportName}.doc`)
- })
+ // ruleFormRef.value?.validate().then(() => {
+ // ruleFormRef.value?.clearValidate('certificateReportFile')
+ downCertifica(formInline.value).then((res) => {
+ const dis = res.headers['content-disposition']
+ downloadFile(res.data, dis)
})
+ // })
}
// -------------------------------------------底部-------------------------------------------
@@ -706,7 +709,7 @@
-
+
无
diff --git a/src/api/business/lab/cert.ts b/src/api/business/lab/cert.ts
index 2c99ed0..0e470c4 100644
--- a/src/api/business/lab/cert.ts
+++ b/src/api/business/lab/cert.ts
@@ -58,3 +58,12 @@
data,
})
}
+
+// 证书作废
+export function certificatePrintInvalid(data: object) {
+ return request({
+ url: '/business/certificatePrint/invalid',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 01e3f5b..e7ffdb4 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -17,7 +17,7 @@
* @param name 图片名称
*/
export function downloadFile(file: File, name: string) {
- console.log(new Blob([file]), 'new Blob([file])')
+ // console.log(new Blob([file]), 'new Blob([file])')
const objectUrl = URL.createObjectURL(new Blob([file]))
const link = document.createElement('a')
link.download = name
diff --git a/src/views/business/lab/certificateReportRetrieval/reportList.vue b/src/views/business/lab/certificateReportRetrieval/reportList.vue
index 8a36cf2..5a52b70 100644
--- a/src/views/business/lab/certificateReportRetrieval/reportList.vue
+++ b/src/views/business/lab/certificateReportRetrieval/reportList.vue
@@ -6,6 +6,8 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getCertificateRetrievalList } from '@/api/business/lab/certificateReportRetrieval'
+
+import { certificatePrintDetail, certificatePrintInvalid } from '@/api/business/lab/cert'
import { getUserList } from '@/api/system/user'
import { exportFile } from '@/utils/exportUtils'
const { proxy } = getCurrentInstance() as any
@@ -110,6 +112,28 @@
const handleDetail = (row: any) => {
detailRef.value.initDialog(row.printFileName)
}
+// 重检按钮
+const recheck = (row: any) => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ certificatePrintDetail({ id: row.id }).then((res) => {
+ certificatePrintInvalid({
+ orderId: res.data.orderId,
+ sampleId: res.data.sampleId,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ fetchData(true)
+ })
+ })
+ })
+}
@@ -235,6 +259,10 @@
>
查看
+
+
+ 重检
+
diff --git a/src/views/business/lab/myMeasure/measureDetail.vue b/src/views/business/lab/myMeasure/measureDetail.vue
index 2c758ea..b8a4cbc 100644
--- a/src/views/business/lab/myMeasure/measureDetail.vue
+++ b/src/views/business/lab/myMeasure/measureDetail.vue
@@ -12,6 +12,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getSapmleDetail, updateSample } from '@/api/customer/sampleList'
+import { certificatePrintInvalid } from '@/api/business/lab/cert'
interface dictType {
id: string
name: string
@@ -292,6 +293,30 @@
getInfo()
}
})
+// 重检按钮
+const recheck = () => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ // if (!$route.query.certificateReportId) {
+ // ElMessage.warning('无证书记录')
+ // return
+ // }
+ certificatePrintInvalid({
+ sampleId: sampleId.value,
+ orderId: orderId.value,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ $router.go(-1)
+ })
+ })
+}
@@ -307,6 +332,9 @@
+
+ 重检
+
关闭
diff --git a/src/views/business/lab/myMeasure/myMeasureList.vue b/src/views/business/lab/myMeasure/myMeasureList.vue
index e6ffc98..7c988b3 100644
--- a/src/views/business/lab/myMeasure/myMeasureList.vue
+++ b/src/views/business/lab/myMeasure/myMeasureList.vue
@@ -35,6 +35,7 @@
startTime: '', // 应检完时间-开始
endTime: '', // 应检完时间-结束
measureStatus: active.value, // 检测状态
+ remark: '', // 备注
offset: 1,
limit: 20,
})
@@ -95,6 +96,9 @@
if (!listQuery.value.measureStatus) {
listQuery.value.measureStatus = '2' // 待检测
}
+ if (listQuery.value.measureStatus !== '3') {
+ listQuery.value.remark = ''
+ }
getMyMeasureList(listQuery.value).then((res) => {
list.value = res.data.rows.map((item: ITaskList) => {
item.isUrgentName = item.isUrgent == 1 ? '是' : '否'
@@ -126,6 +130,7 @@
sampleBelong: '', // 样品属性
startTime: '', // 应检完时间-开始
endTime: '', // 应检完时间-结束
+ remark: '', // 备注
measureStatus: active.value, // 检测状态
offset: 1,
limit: 20,
@@ -135,7 +140,7 @@
}
// 点击详情
const handleDetail = (row: ITaskList) => {
- $router.push(`myMeasureDetail/detail/${row.sampleId}?order=${row.orderId}&customerId=${row.customerId}`)
+ $router.push(`myMeasureDetail/detail/${row.sampleId}?order=${row.orderId}&customerId=${row.customerId}&measureStatus=${listQuery.value.measureStatus}&certificateReportId=${row.certificateReportId}`)
}
// 点击分发, 弹窗
@@ -427,6 +432,15 @@
/>
+
+
+
@@ -450,6 +464,13 @@
:list-loading="loadingTable" is-showmulti-select @change="changePage" @multi-select="handleSelectionChange"
>
+
+
+ {{
+ row.remark
+ }}
+
+
diff --git a/src/views/business/lab/primitiveLog/primitveLogAdd.vue b/src/views/business/lab/primitiveLog/primitveLogAdd.vue
index 86b4c41..a29ec11 100644
--- a/src/views/business/lab/primitiveLog/primitveLogAdd.vue
+++ b/src/views/business/lab/primitiveLog/primitveLogAdd.vue
@@ -184,6 +184,7 @@
// 表单验证规则
const rules = ref({
'originalRecordName': [{ required: true, message: '原始记录名称必填', trigger: ['blur', 'change'] }],
+ 'contactInfo': [{ required: true, message: '原始记录文件必须上传', trigger: ['blur', 'change'] }],
'verifierId': [{ required: true, message: '校验人员必填', trigger: ['blur', 'change'] }],
'measureCategory': [{ required: true, message: '校验类别必填', trigger: ['blur', 'change'] }],
'calibrationTime': [{ required: true, message: '校验时间必填', trigger: ['blur', 'change'] }],
@@ -240,6 +241,8 @@
if (res.code === 200) {
formInline.value.originalRecordFile = res.data[0]
// 重置当前验证
+
+ ruleFormRef.value?.clearValidate('contactInfo')
ElMessage.success('文件上传成功')
}
else {
@@ -403,16 +406,17 @@
}
// 下载原始记录单模板
const downLog = () => {
- ruleFormRef.value?.validate().then(() => {
- const params = {
- temperature: formInline.value.businessEnvironmentRecord.temperature,
- humidity: formInline.value.businessEnvironmentRecord.humidity,
- ...formInline.value,
- }
- downPrimitiveLog(params).then((res) => {
- downloadFile(res.data, `${formInline.value.templateName}.xlsx`)
- })
+ // ruleFormRef.value?.validate().then(() => {
+ const params = {
+ temperature: formInline.value.businessEnvironmentRecord.temperature,
+ humidity: formInline.value.businessEnvironmentRecord.humidity,
+ ...formInline.value,
+ }
+ downPrimitiveLog(params).then((res) => {
+ const dis = res.headers['content-disposition']
+ downloadFile(res.data, dis)
})
+ // })
}
// ----------------------------------------所用设备-------------------------------------
const isMultiMeasureDevice = ref(false)
diff --git a/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue b/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue
index d0c8bcf..b7ce42c 100644
--- a/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue
+++ b/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue
@@ -152,6 +152,7 @@
// 表单验证规则
const rules = ref({
'deliverTime': [{ required: true, message: '接收日期必选', trigger: ['blur', 'change'] }],
+ 'certificateReportFile': [{ required: true, message: '证书附件必选上传', trigger: ['blur', 'change'] }],
'calibrationTime': [{ required: true, message: '校验日期必选', trigger: ['blur', 'change'] }],
'calibrationMajor': [{ required: true, message: '检校专业必填', trigger: ['blur', 'change'] }],
'createUserName': [{ required: true, message: '创建人必填', trigger: ['blur', 'change'] }],
@@ -161,8 +162,8 @@
'issuanceDate': [{ required: true, message: '出具日期必填', trigger: ['blur', 'change'] }],
'expirationDate': [{ required: true, message: '有效日期必填', trigger: ['blur', 'change'] }],
'templateName': [{ required: true, message: '证书报告模板必填', trigger: ['blur', 'change'] }],
- 'signName': [{ required: true, message: '电子签章必填', trigger: ['blur', 'change'] }],
- 'approvalSignName': [{ required: true, message: '认可标志专用章必填', trigger: ['blur', 'change'] }],
+ // 'signName': [{ required: true, message: '电子签章必填', trigger: ['blur', 'change'] }],
+ // 'approvalSignName': [{ required: true, message: '认可标志专用章必填', trigger: ['blur', 'change'] }],
'businessOriginalRecord.originalRecordCode': [{ required: true, message: '原始记录编号必填', trigger: ['blur', 'change'] }],
'businessOriginalRecord.customerSampleInfo.sampleNo': [{ required: true, message: '样品编号必填', trigger: ['blur', 'change'] }],
'businessOriginalRecord.customerSampleInfo.sampleName': [{ required: true, message: '样品名称必填', trigger: ['blur', 'change'] }],
@@ -308,6 +309,7 @@
if (res.code === 200) {
formInline.value.certificateReportFile = res.data[0]
// 重置当前验证
+ ruleFormRef.value?.clearValidate('certificateReportFile')
ElMessage.success('文件上传成功')
loading.close()
}
@@ -481,7 +483,6 @@
}
// 选好原始记录
const confirmCheckoutPrimitiveLog = (val: any) => {
- console.log(val, '选好原始记录')
formInline.value.businessOriginalRecord = val
formInline.value.certifications = val.businessOrder.certifications // 证书类别
formInline.value.certificateReportCategory = val.businessOrder.certifications // 证书类别
@@ -566,11 +567,13 @@
}
// 下载证书
const downLo = () => {
- ruleFormRef.value?.validate().then(() => {
- downCertifica(formInline.value).then((res) => {
- downloadFile(res.data, `${formInline.value.certificateReportName}.doc`)
- })
+ // ruleFormRef.value?.validate().then(() => {
+ // ruleFormRef.value?.clearValidate('certificateReportFile')
+ downCertifica(formInline.value).then((res) => {
+ const dis = res.headers['content-disposition']
+ downloadFile(res.data, dis)
})
+ // })
}
// -------------------------------------------底部-------------------------------------------
@@ -706,7 +709,7 @@
-
+
无
diff --git a/src/views/business/schedule/certPrint/certList.vue b/src/views/business/schedule/certPrint/certList.vue
index edf8c48..405482b 100644
--- a/src/views/business/schedule/certPrint/certList.vue
+++ b/src/views/business/schedule/certPrint/certList.vue
@@ -12,7 +12,7 @@
import { printJSON, printPdf } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { getDictByCode } from '@/api/system/dict'
-import { exportCert, getCertList, submitApproval } from '@/api/business/lab/cert'
+import { certificatePrintDetail, certificatePrintInvalid, exportCert, getCertList, submitApproval } from '@/api/business/lab/cert'
import { SCHEDULE } from '@/utils/scheduleDict'
import type { dictType } from '@/global'
import ButtonBox from '@/components/buttonBox/buttonBox.vue'
@@ -373,6 +373,28 @@
window.sessionStorage.setItem('certPrintActive', val)
clearList()
}
+// 重检按钮
+const recheck = (row: ICerPrintList) => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ certificatePrintDetail({ id: row.id }).then((res) => {
+ certificatePrintInvalid({
+ orderId: res.data.orderId,
+ sampleId: res.data.sampleId,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ fetchData(true)
+ })
+ })
+ })
+}
onMounted(async () => {
await getDict() // 获取字典-审批状态
@@ -454,6 +476,10 @@
打印
+
+
+ 重检
+
同意
diff --git a/src/api/business/lab/cert.ts b/src/api/business/lab/cert.ts
index 2c99ed0..0e470c4 100644
--- a/src/api/business/lab/cert.ts
+++ b/src/api/business/lab/cert.ts
@@ -58,3 +58,12 @@
data,
})
}
+
+// 证书作废
+export function certificatePrintInvalid(data: object) {
+ return request({
+ url: '/business/certificatePrint/invalid',
+ method: 'post',
+ data,
+ })
+}
diff --git a/src/utils/download.ts b/src/utils/download.ts
index 01e3f5b..e7ffdb4 100644
--- a/src/utils/download.ts
+++ b/src/utils/download.ts
@@ -17,7 +17,7 @@
* @param name 图片名称
*/
export function downloadFile(file: File, name: string) {
- console.log(new Blob([file]), 'new Blob([file])')
+ // console.log(new Blob([file]), 'new Blob([file])')
const objectUrl = URL.createObjectURL(new Blob([file]))
const link = document.createElement('a')
link.download = name
diff --git a/src/views/business/lab/certificateReportRetrieval/reportList.vue b/src/views/business/lab/certificateReportRetrieval/reportList.vue
index 8a36cf2..5a52b70 100644
--- a/src/views/business/lab/certificateReportRetrieval/reportList.vue
+++ b/src/views/business/lab/certificateReportRetrieval/reportList.vue
@@ -6,6 +6,8 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getCertificateRetrievalList } from '@/api/business/lab/certificateReportRetrieval'
+
+import { certificatePrintDetail, certificatePrintInvalid } from '@/api/business/lab/cert'
import { getUserList } from '@/api/system/user'
import { exportFile } from '@/utils/exportUtils'
const { proxy } = getCurrentInstance() as any
@@ -110,6 +112,28 @@
const handleDetail = (row: any) => {
detailRef.value.initDialog(row.printFileName)
}
+// 重检按钮
+const recheck = (row: any) => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ certificatePrintDetail({ id: row.id }).then((res) => {
+ certificatePrintInvalid({
+ orderId: res.data.orderId,
+ sampleId: res.data.sampleId,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ fetchData(true)
+ })
+ })
+ })
+}
@@ -235,6 +259,10 @@
>
查看
+
+
+ 重检
+
diff --git a/src/views/business/lab/myMeasure/measureDetail.vue b/src/views/business/lab/myMeasure/measureDetail.vue
index 2c758ea..b8a4cbc 100644
--- a/src/views/business/lab/myMeasure/measureDetail.vue
+++ b/src/views/business/lab/myMeasure/measureDetail.vue
@@ -12,6 +12,7 @@
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { getDictByCode } from '@/api/system/dict'
import { getSapmleDetail, updateSample } from '@/api/customer/sampleList'
+import { certificatePrintInvalid } from '@/api/business/lab/cert'
interface dictType {
id: string
name: string
@@ -292,6 +293,30 @@
getInfo()
}
})
+// 重检按钮
+const recheck = () => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ // if (!$route.query.certificateReportId) {
+ // ElMessage.warning('无证书记录')
+ // return
+ // }
+ certificatePrintInvalid({
+ sampleId: sampleId.value,
+ orderId: orderId.value,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ $router.go(-1)
+ })
+ })
+}
@@ -307,6 +332,9 @@
+
+ 重检
+
关闭
diff --git a/src/views/business/lab/myMeasure/myMeasureList.vue b/src/views/business/lab/myMeasure/myMeasureList.vue
index e6ffc98..7c988b3 100644
--- a/src/views/business/lab/myMeasure/myMeasureList.vue
+++ b/src/views/business/lab/myMeasure/myMeasureList.vue
@@ -35,6 +35,7 @@
startTime: '', // 应检完时间-开始
endTime: '', // 应检完时间-结束
measureStatus: active.value, // 检测状态
+ remark: '', // 备注
offset: 1,
limit: 20,
})
@@ -95,6 +96,9 @@
if (!listQuery.value.measureStatus) {
listQuery.value.measureStatus = '2' // 待检测
}
+ if (listQuery.value.measureStatus !== '3') {
+ listQuery.value.remark = ''
+ }
getMyMeasureList(listQuery.value).then((res) => {
list.value = res.data.rows.map((item: ITaskList) => {
item.isUrgentName = item.isUrgent == 1 ? '是' : '否'
@@ -126,6 +130,7 @@
sampleBelong: '', // 样品属性
startTime: '', // 应检完时间-开始
endTime: '', // 应检完时间-结束
+ remark: '', // 备注
measureStatus: active.value, // 检测状态
offset: 1,
limit: 20,
@@ -135,7 +140,7 @@
}
// 点击详情
const handleDetail = (row: ITaskList) => {
- $router.push(`myMeasureDetail/detail/${row.sampleId}?order=${row.orderId}&customerId=${row.customerId}`)
+ $router.push(`myMeasureDetail/detail/${row.sampleId}?order=${row.orderId}&customerId=${row.customerId}&measureStatus=${listQuery.value.measureStatus}&certificateReportId=${row.certificateReportId}`)
}
// 点击分发, 弹窗
@@ -427,6 +432,15 @@
/>
+
+
+
@@ -450,6 +464,13 @@
:list-loading="loadingTable" is-showmulti-select @change="changePage" @multi-select="handleSelectionChange"
>
+
+
+ {{
+ row.remark
+ }}
+
+
diff --git a/src/views/business/lab/primitiveLog/primitveLogAdd.vue b/src/views/business/lab/primitiveLog/primitveLogAdd.vue
index 86b4c41..a29ec11 100644
--- a/src/views/business/lab/primitiveLog/primitveLogAdd.vue
+++ b/src/views/business/lab/primitiveLog/primitveLogAdd.vue
@@ -184,6 +184,7 @@
// 表单验证规则
const rules = ref({
'originalRecordName': [{ required: true, message: '原始记录名称必填', trigger: ['blur', 'change'] }],
+ 'contactInfo': [{ required: true, message: '原始记录文件必须上传', trigger: ['blur', 'change'] }],
'verifierId': [{ required: true, message: '校验人员必填', trigger: ['blur', 'change'] }],
'measureCategory': [{ required: true, message: '校验类别必填', trigger: ['blur', 'change'] }],
'calibrationTime': [{ required: true, message: '校验时间必填', trigger: ['blur', 'change'] }],
@@ -240,6 +241,8 @@
if (res.code === 200) {
formInline.value.originalRecordFile = res.data[0]
// 重置当前验证
+
+ ruleFormRef.value?.clearValidate('contactInfo')
ElMessage.success('文件上传成功')
}
else {
@@ -403,16 +406,17 @@
}
// 下载原始记录单模板
const downLog = () => {
- ruleFormRef.value?.validate().then(() => {
- const params = {
- temperature: formInline.value.businessEnvironmentRecord.temperature,
- humidity: formInline.value.businessEnvironmentRecord.humidity,
- ...formInline.value,
- }
- downPrimitiveLog(params).then((res) => {
- downloadFile(res.data, `${formInline.value.templateName}.xlsx`)
- })
+ // ruleFormRef.value?.validate().then(() => {
+ const params = {
+ temperature: formInline.value.businessEnvironmentRecord.temperature,
+ humidity: formInline.value.businessEnvironmentRecord.humidity,
+ ...formInline.value,
+ }
+ downPrimitiveLog(params).then((res) => {
+ const dis = res.headers['content-disposition']
+ downloadFile(res.data, dis)
})
+ // })
}
// ----------------------------------------所用设备-------------------------------------
const isMultiMeasureDevice = ref(false)
diff --git a/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue b/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue
index d0c8bcf..b7ce42c 100644
--- a/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue
+++ b/src/views/business/lab/reportOnCredentials/components/reportOnCredentialsAdd.vue
@@ -152,6 +152,7 @@
// 表单验证规则
const rules = ref({
'deliverTime': [{ required: true, message: '接收日期必选', trigger: ['blur', 'change'] }],
+ 'certificateReportFile': [{ required: true, message: '证书附件必选上传', trigger: ['blur', 'change'] }],
'calibrationTime': [{ required: true, message: '校验日期必选', trigger: ['blur', 'change'] }],
'calibrationMajor': [{ required: true, message: '检校专业必填', trigger: ['blur', 'change'] }],
'createUserName': [{ required: true, message: '创建人必填', trigger: ['blur', 'change'] }],
@@ -161,8 +162,8 @@
'issuanceDate': [{ required: true, message: '出具日期必填', trigger: ['blur', 'change'] }],
'expirationDate': [{ required: true, message: '有效日期必填', trigger: ['blur', 'change'] }],
'templateName': [{ required: true, message: '证书报告模板必填', trigger: ['blur', 'change'] }],
- 'signName': [{ required: true, message: '电子签章必填', trigger: ['blur', 'change'] }],
- 'approvalSignName': [{ required: true, message: '认可标志专用章必填', trigger: ['blur', 'change'] }],
+ // 'signName': [{ required: true, message: '电子签章必填', trigger: ['blur', 'change'] }],
+ // 'approvalSignName': [{ required: true, message: '认可标志专用章必填', trigger: ['blur', 'change'] }],
'businessOriginalRecord.originalRecordCode': [{ required: true, message: '原始记录编号必填', trigger: ['blur', 'change'] }],
'businessOriginalRecord.customerSampleInfo.sampleNo': [{ required: true, message: '样品编号必填', trigger: ['blur', 'change'] }],
'businessOriginalRecord.customerSampleInfo.sampleName': [{ required: true, message: '样品名称必填', trigger: ['blur', 'change'] }],
@@ -308,6 +309,7 @@
if (res.code === 200) {
formInline.value.certificateReportFile = res.data[0]
// 重置当前验证
+ ruleFormRef.value?.clearValidate('certificateReportFile')
ElMessage.success('文件上传成功')
loading.close()
}
@@ -481,7 +483,6 @@
}
// 选好原始记录
const confirmCheckoutPrimitiveLog = (val: any) => {
- console.log(val, '选好原始记录')
formInline.value.businessOriginalRecord = val
formInline.value.certifications = val.businessOrder.certifications // 证书类别
formInline.value.certificateReportCategory = val.businessOrder.certifications // 证书类别
@@ -566,11 +567,13 @@
}
// 下载证书
const downLo = () => {
- ruleFormRef.value?.validate().then(() => {
- downCertifica(formInline.value).then((res) => {
- downloadFile(res.data, `${formInline.value.certificateReportName}.doc`)
- })
+ // ruleFormRef.value?.validate().then(() => {
+ // ruleFormRef.value?.clearValidate('certificateReportFile')
+ downCertifica(formInline.value).then((res) => {
+ const dis = res.headers['content-disposition']
+ downloadFile(res.data, dis)
})
+ // })
}
// -------------------------------------------底部-------------------------------------------
@@ -706,7 +709,7 @@
-
+
无
diff --git a/src/views/business/schedule/certPrint/certList.vue b/src/views/business/schedule/certPrint/certList.vue
index edf8c48..405482b 100644
--- a/src/views/business/schedule/certPrint/certList.vue
+++ b/src/views/business/schedule/certPrint/certList.vue
@@ -12,7 +12,7 @@
import { printJSON, printPdf } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { getDictByCode } from '@/api/system/dict'
-import { exportCert, getCertList, submitApproval } from '@/api/business/lab/cert'
+import { certificatePrintDetail, certificatePrintInvalid, exportCert, getCertList, submitApproval } from '@/api/business/lab/cert'
import { SCHEDULE } from '@/utils/scheduleDict'
import type { dictType } from '@/global'
import ButtonBox from '@/components/buttonBox/buttonBox.vue'
@@ -373,6 +373,28 @@
window.sessionStorage.setItem('certPrintActive', val)
clearList()
}
+// 重检按钮
+const recheck = (row: ICerPrintList) => {
+ ElMessageBox.confirm(
+ '确认需要重检吗?',
+ '确认操作',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ },
+ ).then((res) => {
+ certificatePrintDetail({ id: row.id }).then((res) => {
+ certificatePrintInvalid({
+ orderId: res.data.orderId,
+ sampleId: res.data.sampleId,
+ }).then((res) => {
+ ElMessage.success('操作成功')
+ fetchData(true)
+ })
+ })
+ })
+}
onMounted(async () => {
await getDict() // 获取字典-审批状态
@@ -454,6 +476,10 @@
打印
+
+
+ 重检
+
同意
diff --git a/src/views/business/schedule/task/task-interface.ts b/src/views/business/schedule/task/task-interface.ts
index d58d87c..8324b06 100644
--- a/src/views/business/schedule/task/task-interface.ts
+++ b/src/views/business/schedule/task/task-interface.ts
@@ -23,6 +23,7 @@
customerName: string // 委托方名称
isUrgent: string // 是否加急
sampleBelong: string // 样品属性
+ remark: string // 备注
measureStatus: string // 分发状态
startTime: string | number // 应检定开始时间
endTime: string | number // 应检定结束时间
@@ -38,6 +39,7 @@
sampleModel: string // 型号
manufacturingNo: string // 出厂编号
orderNo: string // 委托书编号
+ sampleFileStatus: string // 状态
customerNo: string // 委托方代码
customerName: string // 委托方名称
isUrgent: number // 是否加急
@@ -54,6 +56,7 @@
id?: string // 实验室id
customerId?: string // 客户id
certificationState?: string // 证书出具
+ certificateReportId?: string // 证书id
}
// 实验室检测/我的检测列表