diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue
index 59f2feb..4deeed8 100644
--- a/src/views/customer/sample/overTime/detail.vue
+++ b/src/views/customer/sample/overTime/detail.vue
@@ -20,18 +20,9 @@
const countryList = ref(countries) // 国家列表
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
@@ -74,6 +65,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -358,7 +353,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue
index 59f2feb..4deeed8 100644
--- a/src/views/customer/sample/overTime/detail.vue
+++ b/src/views/customer/sample/overTime/detail.vue
@@ -20,18 +20,9 @@
const countryList = ref(countries) // 国家列表
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
@@ -74,6 +65,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -358,7 +353,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue
index 05fe276..7251eda 100644
--- a/src/views/customer/sample/overTime/list.vue
+++ b/src/views/customer/sample/overTime/list.vue
@@ -4,12 +4,16 @@
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
-import type { IOvertimeList, IOvertimeListQuery } from './overtime_list_interface'
+import { ITEM_RENDER_EVT } from 'element-plus/es/components/virtual-list/src/defaults'
+import type { IOvertimeList, IOvertimeListQuery, dictType } from './overtime_list_interface'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { printJSON } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { exportSapmleList, getSampleList } from '@/api/customer/sampleList'
+import { getDictByCode } from '@/api/system/dict'
+
const { proxy } = getCurrentInstance() as any
+const certificationStatusMap = ref([]) as any // 证书状况
const $router = useRouter()
// 查询条件
@@ -25,12 +29,7 @@
offset: 1,
limit: 20,
})
-// 证书状况字典
-const certificationStatusMap = {
- 0: '未超期',
- 1: '即将超期',
- 2: '已超期',
-}
+
const timeRange = ref<[DateModelType, DateModelType]>(['', ''])
// 表头
const columns = ref([
@@ -42,7 +41,13 @@
{ text: '委托方名称', value: 'customerName', align: 'center' },
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
- { text: '证书状况', value: 'certificationStatus', align: 'center' },
+ {
+ text: '证书状况',
+ value: 'certificationStatus',
+ align: 'center',
+ width: '90px',
+ styleFilter: (row: IOvertimeList) => { return row.certificationStatus === '即将超期' ? 'color: red' : '' },
+ },
])
// 表格数据
const list = ref([])
@@ -53,6 +58,16 @@
// 选中的内容
const checkoutList = ref([])
+// 获取字典值
+async function getDict() {
+ // 证书状况
+ const res = await getDictByCode('certificationStatus')
+ // 证书状况字典 {1:即将过期}
+ res.data.forEach((item: any) => {
+ certificationStatusMap.value[`${item.value}`] = item.name
+ })
+}
+
// 数据查询
function fetchData(isNowPage = false) {
loadingTable.value = true
@@ -63,7 +78,12 @@
listQuery.value.startTime = timeRange.value[0] as string || ''
listQuery.value.endTime = timeRange.value[1] as string || ''
getSampleList(listQuery.value).then((response) => {
- list.value = response.data.rows
+ list.value = response.data.rows.map((item: IOvertimeList) => {
+ return {
+ ...item,
+ certificationStatus: certificationStatusMap.value[item.certificationStatus],
+ }
+ })
total.value = parseInt(response.data.total)
loadingTable.value = false
})
@@ -161,7 +181,10 @@
}
}
-fetchData(true)
+onMounted(async () => {
+ await getDict()
+ fetchData(true)
+})
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue
index 59f2feb..4deeed8 100644
--- a/src/views/customer/sample/overTime/detail.vue
+++ b/src/views/customer/sample/overTime/detail.vue
@@ -20,18 +20,9 @@
const countryList = ref(countries) // 国家列表
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
@@ -74,6 +65,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -358,7 +353,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue
index 05fe276..7251eda 100644
--- a/src/views/customer/sample/overTime/list.vue
+++ b/src/views/customer/sample/overTime/list.vue
@@ -4,12 +4,16 @@
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
-import type { IOvertimeList, IOvertimeListQuery } from './overtime_list_interface'
+import { ITEM_RENDER_EVT } from 'element-plus/es/components/virtual-list/src/defaults'
+import type { IOvertimeList, IOvertimeListQuery, dictType } from './overtime_list_interface'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { printJSON } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { exportSapmleList, getSampleList } from '@/api/customer/sampleList'
+import { getDictByCode } from '@/api/system/dict'
+
const { proxy } = getCurrentInstance() as any
+const certificationStatusMap = ref([]) as any // 证书状况
const $router = useRouter()
// 查询条件
@@ -25,12 +29,7 @@
offset: 1,
limit: 20,
})
-// 证书状况字典
-const certificationStatusMap = {
- 0: '未超期',
- 1: '即将超期',
- 2: '已超期',
-}
+
const timeRange = ref<[DateModelType, DateModelType]>(['', ''])
// 表头
const columns = ref([
@@ -42,7 +41,13 @@
{ text: '委托方名称', value: 'customerName', align: 'center' },
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
- { text: '证书状况', value: 'certificationStatus', align: 'center' },
+ {
+ text: '证书状况',
+ value: 'certificationStatus',
+ align: 'center',
+ width: '90px',
+ styleFilter: (row: IOvertimeList) => { return row.certificationStatus === '即将超期' ? 'color: red' : '' },
+ },
])
// 表格数据
const list = ref([])
@@ -53,6 +58,16 @@
// 选中的内容
const checkoutList = ref([])
+// 获取字典值
+async function getDict() {
+ // 证书状况
+ const res = await getDictByCode('certificationStatus')
+ // 证书状况字典 {1:即将过期}
+ res.data.forEach((item: any) => {
+ certificationStatusMap.value[`${item.value}`] = item.name
+ })
+}
+
// 数据查询
function fetchData(isNowPage = false) {
loadingTable.value = true
@@ -63,7 +78,12 @@
listQuery.value.startTime = timeRange.value[0] as string || ''
listQuery.value.endTime = timeRange.value[1] as string || ''
getSampleList(listQuery.value).then((response) => {
- list.value = response.data.rows
+ list.value = response.data.rows.map((item: IOvertimeList) => {
+ return {
+ ...item,
+ certificationStatus: certificationStatusMap.value[item.certificationStatus],
+ }
+ })
total.value = parseInt(response.data.total)
loadingTable.value = false
})
@@ -161,7 +181,10 @@
}
}
-fetchData(true)
+onMounted(async () => {
+ await getDict()
+ fetchData(true)
+})
diff --git a/src/views/measure/person/components/personListDialog.vue b/src/views/measure/person/components/personListDialog.vue
index 4941fbb..90c6daf 100644
--- a/src/views/measure/person/components/personListDialog.vue
+++ b/src/views/measure/person/components/personListDialog.vue
@@ -21,25 +21,25 @@
const total = ref(0)
const select = ref()
const columns = ref([
- {
- text: '人员编号',
- value: 'staffNo',
- },
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '所在部门',
- value: 'deptId',
- },
+ { text: '人员编号', value: 'staffNo', width: '160', fixed: true },
+ { text: '姓名', value: 'name', fixed: true },
+ { text: '所在部门', value: 'deptId' },
+ { text: '学历', value: 'education', align: 'center' },
+ { text: '性别', value: 'sex', align: 'center' },
+ { text: '工作部门', value: 'deptId', align: 'center' },
+ { text: '技术职务', value: 'technologyJob', align: 'center' },
+ { text: '行政职务', value: 'administrationJob', align: 'center' },
+ { text: '计量专业', value: 'major', align: 'center' },
+ { text: '证书号', value: 'verifierCertificateNo', align: 'center' },
+ { text: '证书有效日期', value: 'certificateDate', align: 'center' },
+ { text: '技术考核', value: 'technologyExam', align: 'center' },
])
// 获取部门
const deptProps = reactive({
parent: 'pid', value: 'id', label: 'name', children: 'children',
})
const deptIdList = ref([])
-const getDeptList = () => {
+const getDeptList = () => { // 获取部门
getDeptTreeList().then((res) => {
deptIdList.value = toTreeList(res.data, '0', true)
})
@@ -50,7 +50,7 @@
getStaffList(listQuery.value).then((res) => {
if (res.code === 200) {
list.value = res.data.records
- total.value = Number(res.data.total)
+ total.value = parseInt(res.data.total)
}
})
}
@@ -81,8 +81,8 @@
}
search()
}
-// 点击保存
-const submitForm = () => {
+// 点击确定
+const confirmSelect = () => {
if (select.value >= 0) {
const person = list.value.filter((item, index) => index == select.value)[0]
getStaffDetail(person).then((res) => {
@@ -143,17 +143,17 @@
-
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue
index 59f2feb..4deeed8 100644
--- a/src/views/customer/sample/overTime/detail.vue
+++ b/src/views/customer/sample/overTime/detail.vue
@@ -20,18 +20,9 @@
const countryList = ref(countries) // 国家列表
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
@@ -74,6 +65,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -358,7 +353,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue
index 05fe276..7251eda 100644
--- a/src/views/customer/sample/overTime/list.vue
+++ b/src/views/customer/sample/overTime/list.vue
@@ -4,12 +4,16 @@
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
-import type { IOvertimeList, IOvertimeListQuery } from './overtime_list_interface'
+import { ITEM_RENDER_EVT } from 'element-plus/es/components/virtual-list/src/defaults'
+import type { IOvertimeList, IOvertimeListQuery, dictType } from './overtime_list_interface'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { printJSON } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { exportSapmleList, getSampleList } from '@/api/customer/sampleList'
+import { getDictByCode } from '@/api/system/dict'
+
const { proxy } = getCurrentInstance() as any
+const certificationStatusMap = ref([]) as any // 证书状况
const $router = useRouter()
// 查询条件
@@ -25,12 +29,7 @@
offset: 1,
limit: 20,
})
-// 证书状况字典
-const certificationStatusMap = {
- 0: '未超期',
- 1: '即将超期',
- 2: '已超期',
-}
+
const timeRange = ref<[DateModelType, DateModelType]>(['', ''])
// 表头
const columns = ref([
@@ -42,7 +41,13 @@
{ text: '委托方名称', value: 'customerName', align: 'center' },
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
- { text: '证书状况', value: 'certificationStatus', align: 'center' },
+ {
+ text: '证书状况',
+ value: 'certificationStatus',
+ align: 'center',
+ width: '90px',
+ styleFilter: (row: IOvertimeList) => { return row.certificationStatus === '即将超期' ? 'color: red' : '' },
+ },
])
// 表格数据
const list = ref([])
@@ -53,6 +58,16 @@
// 选中的内容
const checkoutList = ref([])
+// 获取字典值
+async function getDict() {
+ // 证书状况
+ const res = await getDictByCode('certificationStatus')
+ // 证书状况字典 {1:即将过期}
+ res.data.forEach((item: any) => {
+ certificationStatusMap.value[`${item.value}`] = item.name
+ })
+}
+
// 数据查询
function fetchData(isNowPage = false) {
loadingTable.value = true
@@ -63,7 +78,12 @@
listQuery.value.startTime = timeRange.value[0] as string || ''
listQuery.value.endTime = timeRange.value[1] as string || ''
getSampleList(listQuery.value).then((response) => {
- list.value = response.data.rows
+ list.value = response.data.rows.map((item: IOvertimeList) => {
+ return {
+ ...item,
+ certificationStatus: certificationStatusMap.value[item.certificationStatus],
+ }
+ })
total.value = parseInt(response.data.total)
loadingTable.value = false
})
@@ -161,7 +181,10 @@
}
}
-fetchData(true)
+onMounted(async () => {
+ await getDict()
+ fetchData(true)
+})
diff --git a/src/views/measure/person/components/personListDialog.vue b/src/views/measure/person/components/personListDialog.vue
index 4941fbb..90c6daf 100644
--- a/src/views/measure/person/components/personListDialog.vue
+++ b/src/views/measure/person/components/personListDialog.vue
@@ -21,25 +21,25 @@
const total = ref(0)
const select = ref()
const columns = ref([
- {
- text: '人员编号',
- value: 'staffNo',
- },
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '所在部门',
- value: 'deptId',
- },
+ { text: '人员编号', value: 'staffNo', width: '160', fixed: true },
+ { text: '姓名', value: 'name', fixed: true },
+ { text: '所在部门', value: 'deptId' },
+ { text: '学历', value: 'education', align: 'center' },
+ { text: '性别', value: 'sex', align: 'center' },
+ { text: '工作部门', value: 'deptId', align: 'center' },
+ { text: '技术职务', value: 'technologyJob', align: 'center' },
+ { text: '行政职务', value: 'administrationJob', align: 'center' },
+ { text: '计量专业', value: 'major', align: 'center' },
+ { text: '证书号', value: 'verifierCertificateNo', align: 'center' },
+ { text: '证书有效日期', value: 'certificateDate', align: 'center' },
+ { text: '技术考核', value: 'technologyExam', align: 'center' },
])
// 获取部门
const deptProps = reactive({
parent: 'pid', value: 'id', label: 'name', children: 'children',
})
const deptIdList = ref([])
-const getDeptList = () => {
+const getDeptList = () => { // 获取部门
getDeptTreeList().then((res) => {
deptIdList.value = toTreeList(res.data, '0', true)
})
@@ -50,7 +50,7 @@
getStaffList(listQuery.value).then((res) => {
if (res.code === 200) {
list.value = res.data.records
- total.value = Number(res.data.total)
+ total.value = parseInt(res.data.total)
}
})
}
@@ -81,8 +81,8 @@
}
search()
}
-// 点击保存
-const submitForm = () => {
+// 点击确定
+const confirmSelect = () => {
if (select.value >= 0) {
const person = list.value.filter((item, index) => index == select.value)[0]
getStaffDetail(person).then((res) => {
@@ -143,17 +143,17 @@
-
+
-
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue
index 59f2feb..4deeed8 100644
--- a/src/views/customer/sample/overTime/detail.vue
+++ b/src/views/customer/sample/overTime/detail.vue
@@ -20,18 +20,9 @@
const countryList = ref(countries) // 国家列表
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
@@ -74,6 +65,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -358,7 +353,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue
index 05fe276..7251eda 100644
--- a/src/views/customer/sample/overTime/list.vue
+++ b/src/views/customer/sample/overTime/list.vue
@@ -4,12 +4,16 @@
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
-import type { IOvertimeList, IOvertimeListQuery } from './overtime_list_interface'
+import { ITEM_RENDER_EVT } from 'element-plus/es/components/virtual-list/src/defaults'
+import type { IOvertimeList, IOvertimeListQuery, dictType } from './overtime_list_interface'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { printJSON } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { exportSapmleList, getSampleList } from '@/api/customer/sampleList'
+import { getDictByCode } from '@/api/system/dict'
+
const { proxy } = getCurrentInstance() as any
+const certificationStatusMap = ref([]) as any // 证书状况
const $router = useRouter()
// 查询条件
@@ -25,12 +29,7 @@
offset: 1,
limit: 20,
})
-// 证书状况字典
-const certificationStatusMap = {
- 0: '未超期',
- 1: '即将超期',
- 2: '已超期',
-}
+
const timeRange = ref<[DateModelType, DateModelType]>(['', ''])
// 表头
const columns = ref([
@@ -42,7 +41,13 @@
{ text: '委托方名称', value: 'customerName', align: 'center' },
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
- { text: '证书状况', value: 'certificationStatus', align: 'center' },
+ {
+ text: '证书状况',
+ value: 'certificationStatus',
+ align: 'center',
+ width: '90px',
+ styleFilter: (row: IOvertimeList) => { return row.certificationStatus === '即将超期' ? 'color: red' : '' },
+ },
])
// 表格数据
const list = ref([])
@@ -53,6 +58,16 @@
// 选中的内容
const checkoutList = ref([])
+// 获取字典值
+async function getDict() {
+ // 证书状况
+ const res = await getDictByCode('certificationStatus')
+ // 证书状况字典 {1:即将过期}
+ res.data.forEach((item: any) => {
+ certificationStatusMap.value[`${item.value}`] = item.name
+ })
+}
+
// 数据查询
function fetchData(isNowPage = false) {
loadingTable.value = true
@@ -63,7 +78,12 @@
listQuery.value.startTime = timeRange.value[0] as string || ''
listQuery.value.endTime = timeRange.value[1] as string || ''
getSampleList(listQuery.value).then((response) => {
- list.value = response.data.rows
+ list.value = response.data.rows.map((item: IOvertimeList) => {
+ return {
+ ...item,
+ certificationStatus: certificationStatusMap.value[item.certificationStatus],
+ }
+ })
total.value = parseInt(response.data.total)
loadingTable.value = false
})
@@ -161,7 +181,10 @@
}
}
-fetchData(true)
+onMounted(async () => {
+ await getDict()
+ fetchData(true)
+})
diff --git a/src/views/measure/person/components/personListDialog.vue b/src/views/measure/person/components/personListDialog.vue
index 4941fbb..90c6daf 100644
--- a/src/views/measure/person/components/personListDialog.vue
+++ b/src/views/measure/person/components/personListDialog.vue
@@ -21,25 +21,25 @@
const total = ref(0)
const select = ref()
const columns = ref([
- {
- text: '人员编号',
- value: 'staffNo',
- },
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '所在部门',
- value: 'deptId',
- },
+ { text: '人员编号', value: 'staffNo', width: '160', fixed: true },
+ { text: '姓名', value: 'name', fixed: true },
+ { text: '所在部门', value: 'deptId' },
+ { text: '学历', value: 'education', align: 'center' },
+ { text: '性别', value: 'sex', align: 'center' },
+ { text: '工作部门', value: 'deptId', align: 'center' },
+ { text: '技术职务', value: 'technologyJob', align: 'center' },
+ { text: '行政职务', value: 'administrationJob', align: 'center' },
+ { text: '计量专业', value: 'major', align: 'center' },
+ { text: '证书号', value: 'verifierCertificateNo', align: 'center' },
+ { text: '证书有效日期', value: 'certificateDate', align: 'center' },
+ { text: '技术考核', value: 'technologyExam', align: 'center' },
])
// 获取部门
const deptProps = reactive({
parent: 'pid', value: 'id', label: 'name', children: 'children',
})
const deptIdList = ref([])
-const getDeptList = () => {
+const getDeptList = () => { // 获取部门
getDeptTreeList().then((res) => {
deptIdList.value = toTreeList(res.data, '0', true)
})
@@ -50,7 +50,7 @@
getStaffList(listQuery.value).then((res) => {
if (res.code === 200) {
list.value = res.data.records
- total.value = Number(res.data.total)
+ total.value = parseInt(res.data.total)
}
})
}
@@ -81,8 +81,8 @@
}
search()
}
-// 点击保存
-const submitForm = () => {
+// 点击确定
+const confirmSelect = () => {
if (select.value >= 0) {
const person = list.value.filter((item, index) => index == select.value)[0]
getStaffDetail(person).then((res) => {
@@ -143,17 +143,17 @@
-
+
-
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
diff --git a/src/views/measure/train/components/selectMeasurePersonDialog.vue b/src/views/measure/train/components/selectMeasurePersonDialog.vue
new file mode 100644
index 0000000..30c3dc7
--- /dev/null
+++ b/src/views/measure/train/components/selectMeasurePersonDialog.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue
index 59f2feb..4deeed8 100644
--- a/src/views/customer/sample/overTime/detail.vue
+++ b/src/views/customer/sample/overTime/detail.vue
@@ -20,18 +20,9 @@
const countryList = ref(countries) // 国家列表
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
@@ -74,6 +65,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -358,7 +353,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue
index 05fe276..7251eda 100644
--- a/src/views/customer/sample/overTime/list.vue
+++ b/src/views/customer/sample/overTime/list.vue
@@ -4,12 +4,16 @@
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
-import type { IOvertimeList, IOvertimeListQuery } from './overtime_list_interface'
+import { ITEM_RENDER_EVT } from 'element-plus/es/components/virtual-list/src/defaults'
+import type { IOvertimeList, IOvertimeListQuery, dictType } from './overtime_list_interface'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { printJSON } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { exportSapmleList, getSampleList } from '@/api/customer/sampleList'
+import { getDictByCode } from '@/api/system/dict'
+
const { proxy } = getCurrentInstance() as any
+const certificationStatusMap = ref([]) as any // 证书状况
const $router = useRouter()
// 查询条件
@@ -25,12 +29,7 @@
offset: 1,
limit: 20,
})
-// 证书状况字典
-const certificationStatusMap = {
- 0: '未超期',
- 1: '即将超期',
- 2: '已超期',
-}
+
const timeRange = ref<[DateModelType, DateModelType]>(['', ''])
// 表头
const columns = ref([
@@ -42,7 +41,13 @@
{ text: '委托方名称', value: 'customerName', align: 'center' },
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
- { text: '证书状况', value: 'certificationStatus', align: 'center' },
+ {
+ text: '证书状况',
+ value: 'certificationStatus',
+ align: 'center',
+ width: '90px',
+ styleFilter: (row: IOvertimeList) => { return row.certificationStatus === '即将超期' ? 'color: red' : '' },
+ },
])
// 表格数据
const list = ref([])
@@ -53,6 +58,16 @@
// 选中的内容
const checkoutList = ref([])
+// 获取字典值
+async function getDict() {
+ // 证书状况
+ const res = await getDictByCode('certificationStatus')
+ // 证书状况字典 {1:即将过期}
+ res.data.forEach((item: any) => {
+ certificationStatusMap.value[`${item.value}`] = item.name
+ })
+}
+
// 数据查询
function fetchData(isNowPage = false) {
loadingTable.value = true
@@ -63,7 +78,12 @@
listQuery.value.startTime = timeRange.value[0] as string || ''
listQuery.value.endTime = timeRange.value[1] as string || ''
getSampleList(listQuery.value).then((response) => {
- list.value = response.data.rows
+ list.value = response.data.rows.map((item: IOvertimeList) => {
+ return {
+ ...item,
+ certificationStatus: certificationStatusMap.value[item.certificationStatus],
+ }
+ })
total.value = parseInt(response.data.total)
loadingTable.value = false
})
@@ -161,7 +181,10 @@
}
}
-fetchData(true)
+onMounted(async () => {
+ await getDict()
+ fetchData(true)
+})
diff --git a/src/views/measure/person/components/personListDialog.vue b/src/views/measure/person/components/personListDialog.vue
index 4941fbb..90c6daf 100644
--- a/src/views/measure/person/components/personListDialog.vue
+++ b/src/views/measure/person/components/personListDialog.vue
@@ -21,25 +21,25 @@
const total = ref(0)
const select = ref()
const columns = ref([
- {
- text: '人员编号',
- value: 'staffNo',
- },
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '所在部门',
- value: 'deptId',
- },
+ { text: '人员编号', value: 'staffNo', width: '160', fixed: true },
+ { text: '姓名', value: 'name', fixed: true },
+ { text: '所在部门', value: 'deptId' },
+ { text: '学历', value: 'education', align: 'center' },
+ { text: '性别', value: 'sex', align: 'center' },
+ { text: '工作部门', value: 'deptId', align: 'center' },
+ { text: '技术职务', value: 'technologyJob', align: 'center' },
+ { text: '行政职务', value: 'administrationJob', align: 'center' },
+ { text: '计量专业', value: 'major', align: 'center' },
+ { text: '证书号', value: 'verifierCertificateNo', align: 'center' },
+ { text: '证书有效日期', value: 'certificateDate', align: 'center' },
+ { text: '技术考核', value: 'technologyExam', align: 'center' },
])
// 获取部门
const deptProps = reactive({
parent: 'pid', value: 'id', label: 'name', children: 'children',
})
const deptIdList = ref([])
-const getDeptList = () => {
+const getDeptList = () => { // 获取部门
getDeptTreeList().then((res) => {
deptIdList.value = toTreeList(res.data, '0', true)
})
@@ -50,7 +50,7 @@
getStaffList(listQuery.value).then((res) => {
if (res.code === 200) {
list.value = res.data.records
- total.value = Number(res.data.total)
+ total.value = parseInt(res.data.total)
}
})
}
@@ -81,8 +81,8 @@
}
search()
}
-// 点击保存
-const submitForm = () => {
+// 点击确定
+const confirmSelect = () => {
if (select.value >= 0) {
const person = list.value.filter((item, index) => index == select.value)[0]
getStaffDetail(person).then((res) => {
@@ -143,17 +143,17 @@
-
+
-
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
diff --git a/src/views/measure/train/components/selectMeasurePersonDialog.vue b/src/views/measure/train/components/selectMeasurePersonDialog.vue
new file mode 100644
index 0000000..30c3dc7
--- /dev/null
+++ b/src/views/measure/train/components/selectMeasurePersonDialog.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/measure/train/components/userListDialog.vue b/src/views/measure/train/components/userListDialog.vue
index a1d4bae..20488ca 100644
--- a/src/views/measure/train/components/userListDialog.vue
+++ b/src/views/measure/train/components/userListDialog.vue
@@ -21,18 +21,9 @@
const total = ref(0)
const select = ref(-1)
const columns = ref([
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '单位名称',
- value: 'company',
- },
- {
- text: '技术职称',
- value: 'remark',
- },
+ { text: '姓名', value: 'name' },
+ { text: '单位名称', value: 'company' },
+ { text: '技术职称', value: 'remark' },
])
const list = ref(props.list || [])
// 搜索
diff --git a/src/api/business/schedule/interchangeReceipt.ts b/src/api/business/schedule/interchangeReceipt.ts
index 0b33406..03edba9 100644
--- a/src/api/business/schedule/interchangeReceipt.ts
+++ b/src/api/business/schedule/interchangeReceipt.ts
@@ -32,3 +32,31 @@
data,
})
}
+
+// 新增
+export function addInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/add`,
+ method: 'post',
+ data,
+ })
+}
+
+// 编辑
+export function updateInterchangeReceipt(data: any) {
+ return request({
+ url: `${prefix}/update`,
+ method: 'post',
+ data,
+ })
+}
+
+// 详情
+export function getInterchangeReceiptDetail(data: any) {
+ return request({
+ url: `${prefix}/detail`,
+ method: 'post',
+ data,
+ })
+}
+
diff --git a/src/views/business/schedule/interchange/interchangeList.vue b/src/views/business/schedule/interchange/interchangeList.vue
index 2ebcf8b..f1a3dd8 100644
--- a/src/views/business/schedule/interchange/interchangeList.vue
+++ b/src/views/business/schedule/interchange/interchangeList.vue
@@ -285,7 +285,7 @@
})
}
else if (type === 'complete') { // 完成
- interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '2' }).then((res) => {
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue
index 59f2feb..4deeed8 100644
--- a/src/views/customer/sample/overTime/detail.vue
+++ b/src/views/customer/sample/overTime/detail.vue
@@ -20,18 +20,9 @@
const countryList = ref(countries) // 国家列表
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
@@ -74,6 +65,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -358,7 +353,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue
index 05fe276..7251eda 100644
--- a/src/views/customer/sample/overTime/list.vue
+++ b/src/views/customer/sample/overTime/list.vue
@@ -4,12 +4,16 @@
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
-import type { IOvertimeList, IOvertimeListQuery } from './overtime_list_interface'
+import { ITEM_RENDER_EVT } from 'element-plus/es/components/virtual-list/src/defaults'
+import type { IOvertimeList, IOvertimeListQuery, dictType } from './overtime_list_interface'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { printJSON } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { exportSapmleList, getSampleList } from '@/api/customer/sampleList'
+import { getDictByCode } from '@/api/system/dict'
+
const { proxy } = getCurrentInstance() as any
+const certificationStatusMap = ref([]) as any // 证书状况
const $router = useRouter()
// 查询条件
@@ -25,12 +29,7 @@
offset: 1,
limit: 20,
})
-// 证书状况字典
-const certificationStatusMap = {
- 0: '未超期',
- 1: '即将超期',
- 2: '已超期',
-}
+
const timeRange = ref<[DateModelType, DateModelType]>(['', ''])
// 表头
const columns = ref([
@@ -42,7 +41,13 @@
{ text: '委托方名称', value: 'customerName', align: 'center' },
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
- { text: '证书状况', value: 'certificationStatus', align: 'center' },
+ {
+ text: '证书状况',
+ value: 'certificationStatus',
+ align: 'center',
+ width: '90px',
+ styleFilter: (row: IOvertimeList) => { return row.certificationStatus === '即将超期' ? 'color: red' : '' },
+ },
])
// 表格数据
const list = ref([])
@@ -53,6 +58,16 @@
// 选中的内容
const checkoutList = ref([])
+// 获取字典值
+async function getDict() {
+ // 证书状况
+ const res = await getDictByCode('certificationStatus')
+ // 证书状况字典 {1:即将过期}
+ res.data.forEach((item: any) => {
+ certificationStatusMap.value[`${item.value}`] = item.name
+ })
+}
+
// 数据查询
function fetchData(isNowPage = false) {
loadingTable.value = true
@@ -63,7 +78,12 @@
listQuery.value.startTime = timeRange.value[0] as string || ''
listQuery.value.endTime = timeRange.value[1] as string || ''
getSampleList(listQuery.value).then((response) => {
- list.value = response.data.rows
+ list.value = response.data.rows.map((item: IOvertimeList) => {
+ return {
+ ...item,
+ certificationStatus: certificationStatusMap.value[item.certificationStatus],
+ }
+ })
total.value = parseInt(response.data.total)
loadingTable.value = false
})
@@ -161,7 +181,10 @@
}
}
-fetchData(true)
+onMounted(async () => {
+ await getDict()
+ fetchData(true)
+})
diff --git a/src/views/measure/person/components/personListDialog.vue b/src/views/measure/person/components/personListDialog.vue
index 4941fbb..90c6daf 100644
--- a/src/views/measure/person/components/personListDialog.vue
+++ b/src/views/measure/person/components/personListDialog.vue
@@ -21,25 +21,25 @@
const total = ref(0)
const select = ref()
const columns = ref([
- {
- text: '人员编号',
- value: 'staffNo',
- },
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '所在部门',
- value: 'deptId',
- },
+ { text: '人员编号', value: 'staffNo', width: '160', fixed: true },
+ { text: '姓名', value: 'name', fixed: true },
+ { text: '所在部门', value: 'deptId' },
+ { text: '学历', value: 'education', align: 'center' },
+ { text: '性别', value: 'sex', align: 'center' },
+ { text: '工作部门', value: 'deptId', align: 'center' },
+ { text: '技术职务', value: 'technologyJob', align: 'center' },
+ { text: '行政职务', value: 'administrationJob', align: 'center' },
+ { text: '计量专业', value: 'major', align: 'center' },
+ { text: '证书号', value: 'verifierCertificateNo', align: 'center' },
+ { text: '证书有效日期', value: 'certificateDate', align: 'center' },
+ { text: '技术考核', value: 'technologyExam', align: 'center' },
])
// 获取部门
const deptProps = reactive({
parent: 'pid', value: 'id', label: 'name', children: 'children',
})
const deptIdList = ref([])
-const getDeptList = () => {
+const getDeptList = () => { // 获取部门
getDeptTreeList().then((res) => {
deptIdList.value = toTreeList(res.data, '0', true)
})
@@ -50,7 +50,7 @@
getStaffList(listQuery.value).then((res) => {
if (res.code === 200) {
list.value = res.data.records
- total.value = Number(res.data.total)
+ total.value = parseInt(res.data.total)
}
})
}
@@ -81,8 +81,8 @@
}
search()
}
-// 点击保存
-const submitForm = () => {
+// 点击确定
+const confirmSelect = () => {
if (select.value >= 0) {
const person = list.value.filter((item, index) => index == select.value)[0]
getStaffDetail(person).then((res) => {
@@ -143,17 +143,17 @@
-
+
-
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
diff --git a/src/views/measure/train/components/selectMeasurePersonDialog.vue b/src/views/measure/train/components/selectMeasurePersonDialog.vue
new file mode 100644
index 0000000..30c3dc7
--- /dev/null
+++ b/src/views/measure/train/components/selectMeasurePersonDialog.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/measure/train/components/userListDialog.vue b/src/views/measure/train/components/userListDialog.vue
index a1d4bae..20488ca 100644
--- a/src/views/measure/train/components/userListDialog.vue
+++ b/src/views/measure/train/components/userListDialog.vue
@@ -21,18 +21,9 @@
const total = ref(0)
const select = ref(-1)
const columns = ref([
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '单位名称',
- value: 'company',
- },
- {
- text: '技术职称',
- value: 'remark',
- },
+ { text: '姓名', value: 'name' },
+ { text: '单位名称', value: 'company' },
+ { text: '技术职称', value: 'remark' },
])
const list = ref(props.list || [])
// 搜索
diff --git a/src/views/measure/train/plan.vue b/src/views/measure/train/plan.vue
index bbac2f4..fad7684 100644
--- a/src/views/measure/train/plan.vue
+++ b/src/views/measure/train/plan.vue
@@ -55,63 +55,18 @@
const { proxy } = getCurrentInstance() as any
// 表头
const columns = ref([
- {
- text: '计划编号',
- value: 'planNo',
- align: 'center',
- },
- {
- text: '培训名称',
- value: 'planName',
- align: 'center',
- },
- {
- text: '培训对象',
- value: 'trainPerson',
- align: 'center',
- },
- {
- text: '培训人数',
- value: 'trainNumber',
- align: 'center',
- },
- {
- text: '培训学时',
- value: 'trainHour',
- align: 'center',
- },
- {
- text: '培训时间',
- value: 'trainTime',
- width: '180',
- align: 'center',
- },
- {
- text: '主管部门',
- value: 'deptName',
- align: 'center',
- },
- {
- text: '实施单位',
- value: 'effectiveCompany',
- align: 'center',
- },
- {
- text: '培训内容',
- value: 'trainContent',
- align: 'center',
- },
- {
- text: '创建时间',
- value: 'createTime',
- width: '180',
- align: 'center',
- },
- {
- text: '备注',
- value: 'remark',
- align: 'center',
- },
+ { text: '计划编号', value: 'planNo', width: '160', align: 'center' },
+ { text: '培训名称', value: 'planName', align: 'center' },
+ { text: '培训对象', value: 'trainPerson', align: 'center' },
+ { text: '培训人数', value: 'trainNumber', align: 'center' },
+ { text: '培训学时', value: 'trainHour', align: 'center' },
+ { text: '培训时间', value: 'trainTime', width: '180', align: 'center' },
+ { text: '主管部门', value: 'deptName', align: 'center' },
+ { text: '实施单位', value: 'effectiveCompany', align: 'center' },
+ { text: '负责人', value: 'director', align: 'center' },
+ { text: '培训内容', value: 'trainContent', align: 'center' },
+ { text: '创建时间', value: 'createTime', width: '180', align: 'center' },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 搜索
const searchList = () => {
@@ -331,8 +286,15 @@
@change="changePage"
@multiSelect="handleSelectionChange"
>
+
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
+
-
+
{
+ interchangeListTerminate({ orderId: row.orderId, reason: '', sampleId: row.sampleId, status: '5' }).then((res) => {
if (res.code === 200) {
ElMessage.success(`已${title}`)
fetchData(true)
diff --git a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
index 026fd77..e5ccc22 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
+++ b/src/views/business/schedule/interchangeReceipt/receiptEdit.vue
@@ -1,3 +1,4 @@
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue
index 59f2feb..4deeed8 100644
--- a/src/views/customer/sample/overTime/detail.vue
+++ b/src/views/customer/sample/overTime/detail.vue
@@ -20,18 +20,9 @@
const countryList = ref(countries) // 国家列表
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
@@ -74,6 +65,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -358,7 +353,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue
index 05fe276..7251eda 100644
--- a/src/views/customer/sample/overTime/list.vue
+++ b/src/views/customer/sample/overTime/list.vue
@@ -4,12 +4,16 @@
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
-import type { IOvertimeList, IOvertimeListQuery } from './overtime_list_interface'
+import { ITEM_RENDER_EVT } from 'element-plus/es/components/virtual-list/src/defaults'
+import type { IOvertimeList, IOvertimeListQuery, dictType } from './overtime_list_interface'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { printJSON } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { exportSapmleList, getSampleList } from '@/api/customer/sampleList'
+import { getDictByCode } from '@/api/system/dict'
+
const { proxy } = getCurrentInstance() as any
+const certificationStatusMap = ref([]) as any // 证书状况
const $router = useRouter()
// 查询条件
@@ -25,12 +29,7 @@
offset: 1,
limit: 20,
})
-// 证书状况字典
-const certificationStatusMap = {
- 0: '未超期',
- 1: '即将超期',
- 2: '已超期',
-}
+
const timeRange = ref<[DateModelType, DateModelType]>(['', ''])
// 表头
const columns = ref([
@@ -42,7 +41,13 @@
{ text: '委托方名称', value: 'customerName', align: 'center' },
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
- { text: '证书状况', value: 'certificationStatus', align: 'center' },
+ {
+ text: '证书状况',
+ value: 'certificationStatus',
+ align: 'center',
+ width: '90px',
+ styleFilter: (row: IOvertimeList) => { return row.certificationStatus === '即将超期' ? 'color: red' : '' },
+ },
])
// 表格数据
const list = ref([])
@@ -53,6 +58,16 @@
// 选中的内容
const checkoutList = ref([])
+// 获取字典值
+async function getDict() {
+ // 证书状况
+ const res = await getDictByCode('certificationStatus')
+ // 证书状况字典 {1:即将过期}
+ res.data.forEach((item: any) => {
+ certificationStatusMap.value[`${item.value}`] = item.name
+ })
+}
+
// 数据查询
function fetchData(isNowPage = false) {
loadingTable.value = true
@@ -63,7 +78,12 @@
listQuery.value.startTime = timeRange.value[0] as string || ''
listQuery.value.endTime = timeRange.value[1] as string || ''
getSampleList(listQuery.value).then((response) => {
- list.value = response.data.rows
+ list.value = response.data.rows.map((item: IOvertimeList) => {
+ return {
+ ...item,
+ certificationStatus: certificationStatusMap.value[item.certificationStatus],
+ }
+ })
total.value = parseInt(response.data.total)
loadingTable.value = false
})
@@ -161,7 +181,10 @@
}
}
-fetchData(true)
+onMounted(async () => {
+ await getDict()
+ fetchData(true)
+})
diff --git a/src/views/measure/person/components/personListDialog.vue b/src/views/measure/person/components/personListDialog.vue
index 4941fbb..90c6daf 100644
--- a/src/views/measure/person/components/personListDialog.vue
+++ b/src/views/measure/person/components/personListDialog.vue
@@ -21,25 +21,25 @@
const total = ref(0)
const select = ref()
const columns = ref([
- {
- text: '人员编号',
- value: 'staffNo',
- },
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '所在部门',
- value: 'deptId',
- },
+ { text: '人员编号', value: 'staffNo', width: '160', fixed: true },
+ { text: '姓名', value: 'name', fixed: true },
+ { text: '所在部门', value: 'deptId' },
+ { text: '学历', value: 'education', align: 'center' },
+ { text: '性别', value: 'sex', align: 'center' },
+ { text: '工作部门', value: 'deptId', align: 'center' },
+ { text: '技术职务', value: 'technologyJob', align: 'center' },
+ { text: '行政职务', value: 'administrationJob', align: 'center' },
+ { text: '计量专业', value: 'major', align: 'center' },
+ { text: '证书号', value: 'verifierCertificateNo', align: 'center' },
+ { text: '证书有效日期', value: 'certificateDate', align: 'center' },
+ { text: '技术考核', value: 'technologyExam', align: 'center' },
])
// 获取部门
const deptProps = reactive({
parent: 'pid', value: 'id', label: 'name', children: 'children',
})
const deptIdList = ref([])
-const getDeptList = () => {
+const getDeptList = () => { // 获取部门
getDeptTreeList().then((res) => {
deptIdList.value = toTreeList(res.data, '0', true)
})
@@ -50,7 +50,7 @@
getStaffList(listQuery.value).then((res) => {
if (res.code === 200) {
list.value = res.data.records
- total.value = Number(res.data.total)
+ total.value = parseInt(res.data.total)
}
})
}
@@ -81,8 +81,8 @@
}
search()
}
-// 点击保存
-const submitForm = () => {
+// 点击确定
+const confirmSelect = () => {
if (select.value >= 0) {
const person = list.value.filter((item, index) => index == select.value)[0]
getStaffDetail(person).then((res) => {
@@ -143,17 +143,17 @@
-
+
-
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
diff --git a/src/views/measure/train/components/selectMeasurePersonDialog.vue b/src/views/measure/train/components/selectMeasurePersonDialog.vue
new file mode 100644
index 0000000..30c3dc7
--- /dev/null
+++ b/src/views/measure/train/components/selectMeasurePersonDialog.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/measure/train/components/userListDialog.vue b/src/views/measure/train/components/userListDialog.vue
index a1d4bae..20488ca 100644
--- a/src/views/measure/train/components/userListDialog.vue
+++ b/src/views/measure/train/components/userListDialog.vue
@@ -21,18 +21,9 @@
const total = ref(0)
const select = ref(-1)
const columns = ref([
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '单位名称',
- value: 'company',
- },
- {
- text: '技术职称',
- value: 'remark',
- },
+ { text: '姓名', value: 'name' },
+ { text: '单位名称', value: 'company' },
+ { text: '技术职称', value: 'remark' },
])
const list = ref(props.list || [])
// 搜索
diff --git a/src/views/measure/train/plan.vue b/src/views/measure/train/plan.vue
index bbac2f4..fad7684 100644
--- a/src/views/measure/train/plan.vue
+++ b/src/views/measure/train/plan.vue
@@ -55,63 +55,18 @@
const { proxy } = getCurrentInstance() as any
// 表头
const columns = ref([
- {
- text: '计划编号',
- value: 'planNo',
- align: 'center',
- },
- {
- text: '培训名称',
- value: 'planName',
- align: 'center',
- },
- {
- text: '培训对象',
- value: 'trainPerson',
- align: 'center',
- },
- {
- text: '培训人数',
- value: 'trainNumber',
- align: 'center',
- },
- {
- text: '培训学时',
- value: 'trainHour',
- align: 'center',
- },
- {
- text: '培训时间',
- value: 'trainTime',
- width: '180',
- align: 'center',
- },
- {
- text: '主管部门',
- value: 'deptName',
- align: 'center',
- },
- {
- text: '实施单位',
- value: 'effectiveCompany',
- align: 'center',
- },
- {
- text: '培训内容',
- value: 'trainContent',
- align: 'center',
- },
- {
- text: '创建时间',
- value: 'createTime',
- width: '180',
- align: 'center',
- },
- {
- text: '备注',
- value: 'remark',
- align: 'center',
- },
+ { text: '计划编号', value: 'planNo', width: '160', align: 'center' },
+ { text: '培训名称', value: 'planName', align: 'center' },
+ { text: '培训对象', value: 'trainPerson', align: 'center' },
+ { text: '培训人数', value: 'trainNumber', align: 'center' },
+ { text: '培训学时', value: 'trainHour', align: 'center' },
+ { text: '培训时间', value: 'trainTime', width: '180', align: 'center' },
+ { text: '主管部门', value: 'deptName', align: 'center' },
+ { text: '实施单位', value: 'effectiveCompany', align: 'center' },
+ { text: '负责人', value: 'director', align: 'center' },
+ { text: '培训内容', value: 'trainContent', align: 'center' },
+ { text: '创建时间', value: 'createTime', width: '180', align: 'center' },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 搜索
const searchList = () => {
@@ -331,8 +286,15 @@
@change="changePage"
@multiSelect="handleSelectionChange"
>
+
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
+
-
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue
index 59f2feb..4deeed8 100644
--- a/src/views/customer/sample/overTime/detail.vue
+++ b/src/views/customer/sample/overTime/detail.vue
@@ -20,18 +20,9 @@
const countryList = ref(countries) // 国家列表
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
@@ -74,6 +65,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -358,7 +353,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue
index 05fe276..7251eda 100644
--- a/src/views/customer/sample/overTime/list.vue
+++ b/src/views/customer/sample/overTime/list.vue
@@ -4,12 +4,16 @@
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
-import type { IOvertimeList, IOvertimeListQuery } from './overtime_list_interface'
+import { ITEM_RENDER_EVT } from 'element-plus/es/components/virtual-list/src/defaults'
+import type { IOvertimeList, IOvertimeListQuery, dictType } from './overtime_list_interface'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { printJSON } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { exportSapmleList, getSampleList } from '@/api/customer/sampleList'
+import { getDictByCode } from '@/api/system/dict'
+
const { proxy } = getCurrentInstance() as any
+const certificationStatusMap = ref([]) as any // 证书状况
const $router = useRouter()
// 查询条件
@@ -25,12 +29,7 @@
offset: 1,
limit: 20,
})
-// 证书状况字典
-const certificationStatusMap = {
- 0: '未超期',
- 1: '即将超期',
- 2: '已超期',
-}
+
const timeRange = ref<[DateModelType, DateModelType]>(['', ''])
// 表头
const columns = ref([
@@ -42,7 +41,13 @@
{ text: '委托方名称', value: 'customerName', align: 'center' },
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
- { text: '证书状况', value: 'certificationStatus', align: 'center' },
+ {
+ text: '证书状况',
+ value: 'certificationStatus',
+ align: 'center',
+ width: '90px',
+ styleFilter: (row: IOvertimeList) => { return row.certificationStatus === '即将超期' ? 'color: red' : '' },
+ },
])
// 表格数据
const list = ref([])
@@ -53,6 +58,16 @@
// 选中的内容
const checkoutList = ref([])
+// 获取字典值
+async function getDict() {
+ // 证书状况
+ const res = await getDictByCode('certificationStatus')
+ // 证书状况字典 {1:即将过期}
+ res.data.forEach((item: any) => {
+ certificationStatusMap.value[`${item.value}`] = item.name
+ })
+}
+
// 数据查询
function fetchData(isNowPage = false) {
loadingTable.value = true
@@ -63,7 +78,12 @@
listQuery.value.startTime = timeRange.value[0] as string || ''
listQuery.value.endTime = timeRange.value[1] as string || ''
getSampleList(listQuery.value).then((response) => {
- list.value = response.data.rows
+ list.value = response.data.rows.map((item: IOvertimeList) => {
+ return {
+ ...item,
+ certificationStatus: certificationStatusMap.value[item.certificationStatus],
+ }
+ })
total.value = parseInt(response.data.total)
loadingTable.value = false
})
@@ -161,7 +181,10 @@
}
}
-fetchData(true)
+onMounted(async () => {
+ await getDict()
+ fetchData(true)
+})
diff --git a/src/views/measure/person/components/personListDialog.vue b/src/views/measure/person/components/personListDialog.vue
index 4941fbb..90c6daf 100644
--- a/src/views/measure/person/components/personListDialog.vue
+++ b/src/views/measure/person/components/personListDialog.vue
@@ -21,25 +21,25 @@
const total = ref(0)
const select = ref()
const columns = ref([
- {
- text: '人员编号',
- value: 'staffNo',
- },
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '所在部门',
- value: 'deptId',
- },
+ { text: '人员编号', value: 'staffNo', width: '160', fixed: true },
+ { text: '姓名', value: 'name', fixed: true },
+ { text: '所在部门', value: 'deptId' },
+ { text: '学历', value: 'education', align: 'center' },
+ { text: '性别', value: 'sex', align: 'center' },
+ { text: '工作部门', value: 'deptId', align: 'center' },
+ { text: '技术职务', value: 'technologyJob', align: 'center' },
+ { text: '行政职务', value: 'administrationJob', align: 'center' },
+ { text: '计量专业', value: 'major', align: 'center' },
+ { text: '证书号', value: 'verifierCertificateNo', align: 'center' },
+ { text: '证书有效日期', value: 'certificateDate', align: 'center' },
+ { text: '技术考核', value: 'technologyExam', align: 'center' },
])
// 获取部门
const deptProps = reactive({
parent: 'pid', value: 'id', label: 'name', children: 'children',
})
const deptIdList = ref([])
-const getDeptList = () => {
+const getDeptList = () => { // 获取部门
getDeptTreeList().then((res) => {
deptIdList.value = toTreeList(res.data, '0', true)
})
@@ -50,7 +50,7 @@
getStaffList(listQuery.value).then((res) => {
if (res.code === 200) {
list.value = res.data.records
- total.value = Number(res.data.total)
+ total.value = parseInt(res.data.total)
}
})
}
@@ -81,8 +81,8 @@
}
search()
}
-// 点击保存
-const submitForm = () => {
+// 点击确定
+const confirmSelect = () => {
if (select.value >= 0) {
const person = list.value.filter((item, index) => index == select.value)[0]
getStaffDetail(person).then((res) => {
@@ -143,17 +143,17 @@
-
+
-
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
diff --git a/src/views/measure/train/components/selectMeasurePersonDialog.vue b/src/views/measure/train/components/selectMeasurePersonDialog.vue
new file mode 100644
index 0000000..30c3dc7
--- /dev/null
+++ b/src/views/measure/train/components/selectMeasurePersonDialog.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/measure/train/components/userListDialog.vue b/src/views/measure/train/components/userListDialog.vue
index a1d4bae..20488ca 100644
--- a/src/views/measure/train/components/userListDialog.vue
+++ b/src/views/measure/train/components/userListDialog.vue
@@ -21,18 +21,9 @@
const total = ref(0)
const select = ref(-1)
const columns = ref([
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '单位名称',
- value: 'company',
- },
- {
- text: '技术职称',
- value: 'remark',
- },
+ { text: '姓名', value: 'name' },
+ { text: '单位名称', value: 'company' },
+ { text: '技术职称', value: 'remark' },
])
const list = ref(props.list || [])
// 搜索
diff --git a/src/views/measure/train/plan.vue b/src/views/measure/train/plan.vue
index bbac2f4..fad7684 100644
--- a/src/views/measure/train/plan.vue
+++ b/src/views/measure/train/plan.vue
@@ -55,63 +55,18 @@
const { proxy } = getCurrentInstance() as any
// 表头
const columns = ref([
- {
- text: '计划编号',
- value: 'planNo',
- align: 'center',
- },
- {
- text: '培训名称',
- value: 'planName',
- align: 'center',
- },
- {
- text: '培训对象',
- value: 'trainPerson',
- align: 'center',
- },
- {
- text: '培训人数',
- value: 'trainNumber',
- align: 'center',
- },
- {
- text: '培训学时',
- value: 'trainHour',
- align: 'center',
- },
- {
- text: '培训时间',
- value: 'trainTime',
- width: '180',
- align: 'center',
- },
- {
- text: '主管部门',
- value: 'deptName',
- align: 'center',
- },
- {
- text: '实施单位',
- value: 'effectiveCompany',
- align: 'center',
- },
- {
- text: '培训内容',
- value: 'trainContent',
- align: 'center',
- },
- {
- text: '创建时间',
- value: 'createTime',
- width: '180',
- align: 'center',
- },
- {
- text: '备注',
- value: 'remark',
- align: 'center',
- },
+ { text: '计划编号', value: 'planNo', width: '160', align: 'center' },
+ { text: '培训名称', value: 'planName', align: 'center' },
+ { text: '培训对象', value: 'trainPerson', align: 'center' },
+ { text: '培训人数', value: 'trainNumber', align: 'center' },
+ { text: '培训学时', value: 'trainHour', align: 'center' },
+ { text: '培训时间', value: 'trainTime', width: '180', align: 'center' },
+ { text: '主管部门', value: 'deptName', align: 'center' },
+ { text: '实施单位', value: 'effectiveCompany', align: 'center' },
+ { text: '负责人', value: 'director', align: 'center' },
+ { text: '培训内容', value: 'trainContent', align: 'center' },
+ { text: '创建时间', value: 'createTime', width: '180', align: 'center' },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 搜索
const searchList = () => {
@@ -331,8 +286,15 @@
@change="changePage"
@multiSelect="handleSelectionChange"
>
+
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
+
-
+
@@ -430,13 +504,20 @@
-
+ placeholder="请选择接收人"
+ style="width: 100%;"
+ filterable
+ remote
+ remote-show-suffix
+ :remote-method="remoteMethod"
+ :loading="applyPersonLoading"
+ @change="changeSelectReceiver"
+ >
+
+
@@ -514,6 +595,20 @@
+
-
+
@@ -651,7 +746,6 @@
style="width: 100%;"
max-height="600"
@selection-change="handleSelectionChange"
- @row-dblclick="rowDblclick"
>
@@ -663,17 +757,7 @@
:width="item.width"
show-overflow-tooltip
align="center"
- >
-
-
- {{ scope.row.specialRequire }}
-
-
+ />
diff --git a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
index 2d1c1ff..9c56b8b 100644
--- a/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
+++ b/src/views/business/schedule/interchangeReceipt/receiptList-interface.ts
@@ -27,12 +27,14 @@
export interface IReceiptDetail {
interchangeCode: string // 交接单编号
orderCode: string // 委托书编号
+ orderId: string // 委托书id
certificationCompany: string // 证书单位名称
certificationCompanyFex: string // 传真
certificationCompanyEmail: string // 邮编
+ certificationCompanyAddress: string // 证书单位地址
reciever: string // 接收人
recieverPhone: string // 接收人电话
- certificationCompanyAddress: string // 证书单位地址
+ recieverSignFile: string // 接收人签名文件
customerNo: string // 委托方代码
customerId: string // 委托方id
customerName: string // 委托方名称
diff --git a/src/views/business/schedule/order/orderList.vue b/src/views/business/schedule/order/orderList.vue
index 7622ab0..9c1907c 100644
--- a/src/views/business/schedule/order/orderList.vue
+++ b/src/views/business/schedule/order/orderList.vue
@@ -39,7 +39,7 @@
{ text: '送样人', value: 'deliverer', align: 'center' },
{ text: '联系方式', value: 'customerPhone', align: 'center' },
{ text: '样品数量', value: 'sampleCount', align: 'center' },
- { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == '1' ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == '1' ? 'color: red' : '' } },
+ { text: '是否加急', value: 'isUrgent', align: 'center', width: '55px', filter: (row: IOrderList) => { return row.isUrgent == 1 ? '是' : '否' }, styleFilter: (row: IOrderList) => { return row.isUrgent == 1 ? 'color: red' : '' } },
{ text: '接收状态', value: 'statusName', align: 'center', width: '80px' },
{ text: '创建时间', value: 'createTime', align: 'center', width: '180px' },
{ text: '备注', value: 'remark', align: 'center' },
diff --git a/src/views/customer/sample/list/edit.vue b/src/views/customer/sample/list/edit.vue
index 3d667a1..4893c4f 100644
--- a/src/views/customer/sample/list/edit.vue
+++ b/src/views/customer/sample/list/edit.vue
@@ -26,6 +26,7 @@
const visible = ref(false) // 控制对话框显隐
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
sampleNo: '', // 样品编号
@@ -42,9 +43,9 @@
manufacturer: '', // 生产厂家
manufacturerCountry: '', // 厂家国别
manufacturingDate: '', // 出厂年月
- abc: '', // ABC
- deliverer: '', // 送检人
- delivererTel: '', // 送检人联系方式
+ ABC: '', // ABC
+ // deliverer: '', // 送检人
+ // delivererTel: '', // 送检人联系方式
measureContent: '', // 检定项目
measurePeriod: '', // 检定周期
remark: '', // 备注
@@ -54,20 +55,7 @@
measureLastTime: '', // 检定日期
validDeadline: '', // 有效日期
powerVoltage: '', // 电源电压
- sampleBelong: '', // 样品所属
- sampleBelongName: '', // 样品所属
- specialRequire: '', // 客户特殊要求
-})
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
+})// 表单
const ruleFormRef = ref()
// 自定义校验规则--检定周期为正整数
@@ -114,6 +102,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -482,7 +474,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/list/list.vue b/src/views/customer/sample/list/list.vue
index aceea6a..abcada5 100644
--- a/src/views/customer/sample/list/list.vue
+++ b/src/views/customer/sample/list/list.vue
@@ -36,7 +36,14 @@
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
{ text: '样品状态', value: 'sampleSatusName', align: 'center', width: '80px' },
- { text: '备注', value: 'remark', align: 'center', width: '180px' },
+ {
+ text: '证书过期时间',
+ value: 'validDeadline',
+ align: 'center',
+ width: '180px',
+ styleFilter: (row: ISampleList) => { return new Date(row.validDeadline as string).getTime() < new Date().getTime() ? 'color: red' : '' },
+ },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 表格数据
const list = ref([])
diff --git a/src/views/customer/sample/list/sample_list_interface.ts b/src/views/customer/sample/list/sample_list_interface.ts
index aafed2a..256ed9f 100644
--- a/src/views/customer/sample/list/sample_list_interface.ts
+++ b/src/views/customer/sample/list/sample_list_interface.ts
@@ -24,6 +24,7 @@
measurePeriod: string // 检定周期
effectiveDate: string // 上次检定时间
remark: string // 备注
+ validDeadline?: string // 证书过期时间
}
export interface ISampleEdit {
diff --git a/src/views/customer/sample/overTime/detail.vue b/src/views/customer/sample/overTime/detail.vue
index 59f2feb..4deeed8 100644
--- a/src/views/customer/sample/overTime/detail.vue
+++ b/src/views/customer/sample/overTime/detail.vue
@@ -20,18 +20,9 @@
const countryList = ref(countries) // 国家列表
const loading = ref(false) // 表单加载状态
const infoId = ref('') // id
-const powerVoltageMap = [
- {
- name: '110V',
- value: '110V',
- },
- {
- name: '220V',
- value: '220V',
- },
-]// 电源电压
const mesureCategoryList = ref([]) // 校检类别
const measureTypeList = ref([]) // 检定方式
+const powerVoltageList = ref([]) // 电源电压
const dataForm: Ref = ref({
id: '',
@@ -74,6 +65,10 @@
getDictByCode('measureType').then((response) => {
measureTypeList.value = response.data
})
+ // 电源电压
+ getDictByCode('powerVoltage').then((response) => {
+ powerVoltageList.value = response.data
+ })
}
getDict()
@@ -358,7 +353,7 @@
:disabled="pageType === 'detail'"
class="full-width-input"
>
-
+
diff --git a/src/views/customer/sample/overTime/list.vue b/src/views/customer/sample/overTime/list.vue
index 05fe276..7251eda 100644
--- a/src/views/customer/sample/overTime/list.vue
+++ b/src/views/customer/sample/overTime/list.vue
@@ -4,12 +4,16 @@
import type { Ref } from 'vue'
import type { DateModelType } from 'element-plus'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'
-import type { IOvertimeList, IOvertimeListQuery } from './overtime_list_interface'
+import { ITEM_RENDER_EVT } from 'element-plus/es/components/virtual-list/src/defaults'
+import type { IOvertimeList, IOvertimeListQuery, dictType } from './overtime_list_interface'
import type { TableColumn } from '@/components/NormalTable/table_interface'
import { printJSON } from '@/utils/printUtils'
import { exportFile } from '@/utils/exportUtils'
import { exportSapmleList, getSampleList } from '@/api/customer/sampleList'
+import { getDictByCode } from '@/api/system/dict'
+
const { proxy } = getCurrentInstance() as any
+const certificationStatusMap = ref([]) as any // 证书状况
const $router = useRouter()
// 查询条件
@@ -25,12 +29,7 @@
offset: 1,
limit: 20,
})
-// 证书状况字典
-const certificationStatusMap = {
- 0: '未超期',
- 1: '即将超期',
- 2: '已超期',
-}
+
const timeRange = ref<[DateModelType, DateModelType]>(['', ''])
// 表头
const columns = ref([
@@ -42,7 +41,13 @@
{ text: '委托方名称', value: 'customerName', align: 'center' },
{ text: '检定周期', value: 'measurePeriod', align: 'center' },
{ text: '上次检定时间', value: 'measureLastTime', align: 'center', width: '180px' },
- { text: '证书状况', value: 'certificationStatus', align: 'center' },
+ {
+ text: '证书状况',
+ value: 'certificationStatus',
+ align: 'center',
+ width: '90px',
+ styleFilter: (row: IOvertimeList) => { return row.certificationStatus === '即将超期' ? 'color: red' : '' },
+ },
])
// 表格数据
const list = ref([])
@@ -53,6 +58,16 @@
// 选中的内容
const checkoutList = ref([])
+// 获取字典值
+async function getDict() {
+ // 证书状况
+ const res = await getDictByCode('certificationStatus')
+ // 证书状况字典 {1:即将过期}
+ res.data.forEach((item: any) => {
+ certificationStatusMap.value[`${item.value}`] = item.name
+ })
+}
+
// 数据查询
function fetchData(isNowPage = false) {
loadingTable.value = true
@@ -63,7 +78,12 @@
listQuery.value.startTime = timeRange.value[0] as string || ''
listQuery.value.endTime = timeRange.value[1] as string || ''
getSampleList(listQuery.value).then((response) => {
- list.value = response.data.rows
+ list.value = response.data.rows.map((item: IOvertimeList) => {
+ return {
+ ...item,
+ certificationStatus: certificationStatusMap.value[item.certificationStatus],
+ }
+ })
total.value = parseInt(response.data.total)
loadingTable.value = false
})
@@ -161,7 +181,10 @@
}
}
-fetchData(true)
+onMounted(async () => {
+ await getDict()
+ fetchData(true)
+})
diff --git a/src/views/measure/person/components/personListDialog.vue b/src/views/measure/person/components/personListDialog.vue
index 4941fbb..90c6daf 100644
--- a/src/views/measure/person/components/personListDialog.vue
+++ b/src/views/measure/person/components/personListDialog.vue
@@ -21,25 +21,25 @@
const total = ref(0)
const select = ref()
const columns = ref([
- {
- text: '人员编号',
- value: 'staffNo',
- },
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '所在部门',
- value: 'deptId',
- },
+ { text: '人员编号', value: 'staffNo', width: '160', fixed: true },
+ { text: '姓名', value: 'name', fixed: true },
+ { text: '所在部门', value: 'deptId' },
+ { text: '学历', value: 'education', align: 'center' },
+ { text: '性别', value: 'sex', align: 'center' },
+ { text: '工作部门', value: 'deptId', align: 'center' },
+ { text: '技术职务', value: 'technologyJob', align: 'center' },
+ { text: '行政职务', value: 'administrationJob', align: 'center' },
+ { text: '计量专业', value: 'major', align: 'center' },
+ { text: '证书号', value: 'verifierCertificateNo', align: 'center' },
+ { text: '证书有效日期', value: 'certificateDate', align: 'center' },
+ { text: '技术考核', value: 'technologyExam', align: 'center' },
])
// 获取部门
const deptProps = reactive({
parent: 'pid', value: 'id', label: 'name', children: 'children',
})
const deptIdList = ref([])
-const getDeptList = () => {
+const getDeptList = () => { // 获取部门
getDeptTreeList().then((res) => {
deptIdList.value = toTreeList(res.data, '0', true)
})
@@ -50,7 +50,7 @@
getStaffList(listQuery.value).then((res) => {
if (res.code === 200) {
list.value = res.data.records
- total.value = Number(res.data.total)
+ total.value = parseInt(res.data.total)
}
})
}
@@ -81,8 +81,8 @@
}
search()
}
-// 点击保存
-const submitForm = () => {
+// 点击确定
+const confirmSelect = () => {
if (select.value >= 0) {
const person = list.value.filter((item, index) => index == select.value)[0]
getStaffDetail(person).then((res) => {
@@ -143,17 +143,17 @@
-
+
-
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
diff --git a/src/views/measure/train/components/selectMeasurePersonDialog.vue b/src/views/measure/train/components/selectMeasurePersonDialog.vue
new file mode 100644
index 0000000..30c3dc7
--- /dev/null
+++ b/src/views/measure/train/components/selectMeasurePersonDialog.vue
@@ -0,0 +1,185 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/views/measure/train/components/userListDialog.vue b/src/views/measure/train/components/userListDialog.vue
index a1d4bae..20488ca 100644
--- a/src/views/measure/train/components/userListDialog.vue
+++ b/src/views/measure/train/components/userListDialog.vue
@@ -21,18 +21,9 @@
const total = ref(0)
const select = ref(-1)
const columns = ref([
- {
- text: '姓名',
- value: 'name',
- },
- {
- text: '单位名称',
- value: 'company',
- },
- {
- text: '技术职称',
- value: 'remark',
- },
+ { text: '姓名', value: 'name' },
+ { text: '单位名称', value: 'company' },
+ { text: '技术职称', value: 'remark' },
])
const list = ref(props.list || [])
// 搜索
diff --git a/src/views/measure/train/plan.vue b/src/views/measure/train/plan.vue
index bbac2f4..fad7684 100644
--- a/src/views/measure/train/plan.vue
+++ b/src/views/measure/train/plan.vue
@@ -55,63 +55,18 @@
const { proxy } = getCurrentInstance() as any
// 表头
const columns = ref([
- {
- text: '计划编号',
- value: 'planNo',
- align: 'center',
- },
- {
- text: '培训名称',
- value: 'planName',
- align: 'center',
- },
- {
- text: '培训对象',
- value: 'trainPerson',
- align: 'center',
- },
- {
- text: '培训人数',
- value: 'trainNumber',
- align: 'center',
- },
- {
- text: '培训学时',
- value: 'trainHour',
- align: 'center',
- },
- {
- text: '培训时间',
- value: 'trainTime',
- width: '180',
- align: 'center',
- },
- {
- text: '主管部门',
- value: 'deptName',
- align: 'center',
- },
- {
- text: '实施单位',
- value: 'effectiveCompany',
- align: 'center',
- },
- {
- text: '培训内容',
- value: 'trainContent',
- align: 'center',
- },
- {
- text: '创建时间',
- value: 'createTime',
- width: '180',
- align: 'center',
- },
- {
- text: '备注',
- value: 'remark',
- align: 'center',
- },
+ { text: '计划编号', value: 'planNo', width: '160', align: 'center' },
+ { text: '培训名称', value: 'planName', align: 'center' },
+ { text: '培训对象', value: 'trainPerson', align: 'center' },
+ { text: '培训人数', value: 'trainNumber', align: 'center' },
+ { text: '培训学时', value: 'trainHour', align: 'center' },
+ { text: '培训时间', value: 'trainTime', width: '180', align: 'center' },
+ { text: '主管部门', value: 'deptName', align: 'center' },
+ { text: '实施单位', value: 'effectiveCompany', align: 'center' },
+ { text: '负责人', value: 'director', align: 'center' },
+ { text: '培训内容', value: 'trainContent', align: 'center' },
+ { text: '创建时间', value: 'createTime', width: '180', align: 'center' },
+ { text: '备注', value: 'remark', align: 'center' },
])
// 搜索
const searchList = () => {
@@ -331,8 +286,15 @@
@change="changePage"
@multiSelect="handleSelectionChange"
>
+
+
+
+ {{ (listQuery.offset - 1) * listQuery.limit + scope.$index + 1 }}
+
+
+
-
+