|
@@ -1,172 +1,191 @@
|
|
|
<template>
|
|
|
-<div class="table-box">
|
|
|
- <div style="display: flex;flex-direction: column;">
|
|
|
- <div style="flex-grow: 1;height: 66vh;overflow-y: auto;overflow-x: hidden">
|
|
|
- <!-- 表格主体 -->
|
|
|
- <el-table stripe ref="tableRef" :border="true" :data="processTableData" size="small">
|
|
|
- <el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true">
|
|
|
- <template #default="scope">
|
|
|
- {{ scope.$index + 1 }}
|
|
|
- </template>
|
|
|
- </el-table-column>
|
|
|
- <template v-for="item in columns" :key="item">
|
|
|
- <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'">
|
|
|
- <template #default="scope">
|
|
|
- <template v-if="item.prop === 'c'">
|
|
|
- <el-date-picker
|
|
|
- class="no-border"
|
|
|
- v-model="scope.row.c"
|
|
|
- type="date"
|
|
|
- placeholder="请选择日期"
|
|
|
- />
|
|
|
- </template>
|
|
|
- <template v-if="item.prop === 'd'">
|
|
|
- <div style="min-height: 20px" @dblclick="editCell(scope.row, 'd')">
|
|
|
- <el-input v-if="isEditing(scope.row, 'd')" ref="inputRef" v-model="scope.row.d" @blur="saveEdit(scope.row, 'd')" />
|
|
|
- <span v-else>{{ scope.row.d }}</span>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- <template v-if="item.prop === 'operation'">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- content="编辑"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <el-button type="primary" link @click="handleUpdate">
|
|
|
- <el-icon >
|
|
|
- <Edit />
|
|
|
- </el-icon>
|
|
|
- </el-button>
|
|
|
- </el-tooltip>
|
|
|
+ <div class="table-box">
|
|
|
+ <div style="display: flex;flex-direction: column;">
|
|
|
+
|
|
|
+ <div style="flex-grow: 1;height: 66vh;overflow-y: auto;overflow-x: hidden">
|
|
|
+ <el-radio-group v-model="radio1">
|
|
|
+ <el-radio-button label="人工" :value="0" plain />
|
|
|
+ <el-radio-button label="自动" :value="1" plain />
|
|
|
+ </el-radio-group>
|
|
|
+ <!-- 表格主体 -->
|
|
|
+ <div class="table-box" style="margin-top: 20px;height: 57vh">
|
|
|
+ <el-table stripe ref="tableRef" :border="true" :data="radio1===0?certData:certData2" size="small">
|
|
|
+ <el-table-column align="left" label="序号" width="80px" :show-overflow-tooltip="true">
|
|
|
+ <template #default="scope">
|
|
|
+ {{ scope.$index + 1 }}
|
|
|
</template>
|
|
|
+ </el-table-column>
|
|
|
+ <template v-for="item in columns" :key="item">
|
|
|
+ <el-table-column v-bind="item" :align="item.align ?? 'left'"
|
|
|
+ :reserve-selection="item.type == 'selection'">
|
|
|
+ <template #default="scope">
|
|
|
+ <template v-if="item.prop === 'c'">
|
|
|
+ <el-date-picker class="no-border" v-model="scope.row.c" type="date" placeholder="请选择日期" />
|
|
|
+ </template>
|
|
|
+ <template v-if="item.prop === 'd'">
|
|
|
+ <div style="min-height: 20px" @dblclick="editCell(scope.row, 'd')">
|
|
|
+ <el-input v-if="isEditing(scope.row, 'd')" ref="inputRef" v-model="scope.row.d"
|
|
|
+ @blur="saveEdit(scope.row, 'd')" />
|
|
|
+ <span v-else>{{ scope.row.d }}</span>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <template v-if="item.prop === 'operation'">
|
|
|
+ <el-tooltip class="box-item" effect="dark" content="编辑" placement="top">
|
|
|
+ <el-button type="primary" link @click="handleUpdate">
|
|
|
+ <el-icon>
|
|
|
+ <Edit />
|
|
|
+ </el-icon>
|
|
|
+ </el-button>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
- </template>
|
|
|
-
|
|
|
- <!-- 无数据 -->
|
|
|
- <template #empty>
|
|
|
- <div class="table-empty">
|
|
|
- <slot name="empty">
|
|
|
- <img src="@/assets/images/notData.png" alt="notData" />
|
|
|
- <div>暂无数据</div>
|
|
|
- </slot>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
- <div class="disposition-bottom">
|
|
|
- <el-button > 取消 </el-button>
|
|
|
- <el-button type="primary" plain> 上一步 </el-button>
|
|
|
- <el-button type="primary"> 下一步 </el-button>
|
|
|
+
|
|
|
+ <!-- 无数据 -->
|
|
|
+ <template #empty>
|
|
|
+ <div class="table-empty">
|
|
|
+ <slot name="empty">
|
|
|
+ <img src="@/assets/images/notData.png" alt="notData" />
|
|
|
+ <div>暂无数据</div>
|
|
|
+ </slot>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="disposition-bottom">
|
|
|
+ <el-button> 取消 </el-button>
|
|
|
+ <el-button type="primary" plain> 上一步 </el-button>
|
|
|
+ <el-button type="primary"> 下一步 </el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!-- 添加或修改对话框 -->
|
|
|
- <el-dialog :title="dialog.title" v-model="dialog.visible" width="800px" append-to-body>
|
|
|
- <el-form ref="formRef" :model="instrumentForm" :rules="rules" label-width="110px">
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="20">
|
|
|
- <el-radio-group v-model="instrumentForm.type">
|
|
|
- <el-radio-button label="PWS" value="PWS" plain/>
|
|
|
- <el-radio-button label="PWD" value="PWD" plain/>
|
|
|
- </el-radio-group>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="20" style="margin-top: 10px">
|
|
|
- <el-button type="primary" plain>新增</el-button>
|
|
|
- <el-button plain>删除</el-button>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="20" style="margin-top: 10px">
|
|
|
- <el-button type="primary">NA</el-button>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row :gutter="20" style="margin-top: 10px">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="检定条件" prop="verification">
|
|
|
- <el-input v-model="instrumentForm.verification" clearable />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="证书编号" prop="certificate">
|
|
|
- <el-input v-model="instrumentForm.certificate" clearable />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row :gutter="20">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="检定员编号" prop="inspector">
|
|
|
- <el-input v-model="instrumentForm.inspector" clearable />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="检定参数类型" prop="typeParameter" style="display: flex; align-items: center">
|
|
|
- <el-radio-group v-model="instrumentForm.typeParameter">
|
|
|
- <el-radio value="1" size="large">校准系数</el-radio>
|
|
|
- <el-radio value="2" size="large">多点校准系数</el-radio>
|
|
|
+ <!-- 添加或修改对话框 -->
|
|
|
+ <el-dialog :title="dialog.title" v-model="dialog.visible" width="800px" append-to-body>
|
|
|
+ <el-form ref="formRef" :model="instrumentForm" :rules="rules" label-width="110px">
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="20">
|
|
|
+ <el-radio-group v-model="instrumentForm.type">
|
|
|
+ <el-radio-button label="PWS" value="PWS" plain />
|
|
|
+ <el-radio-button label="PWD" value="PWD" plain />
|
|
|
</el-radio-group>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <el-row :gutter="20" v-if="instrumentForm.type==='PWD'">
|
|
|
- <el-col :span="12">
|
|
|
- <el-form-item label="校准系数" prop="coefficient">
|
|
|
- <el-input v-model="instrumentForm.coefficient" clearable />
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
- </el-row>
|
|
|
- <div v-if="instrumentForm.typeParameter==='2'" class="table-box" style="margin-top: 10px;height: 160px" >
|
|
|
- <el-table stripe ref="tableRef" :border="true" :data="processTableData2" size="small" >
|
|
|
- <template v-for="item in columns2" :key="item">
|
|
|
- <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'" :show-overflow-tooltip="true">
|
|
|
- <template v-if="item.prop === 'operation'">
|
|
|
- <el-tooltip
|
|
|
- class="box-item"
|
|
|
- effect="dark"
|
|
|
- content="删除"
|
|
|
- placement="top"
|
|
|
- >
|
|
|
- <el-button type="primary" link >
|
|
|
- <el-icon >
|
|
|
- <Delete />
|
|
|
- </el-icon>
|
|
|
- </el-button>
|
|
|
- </el-tooltip>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="20" style="margin-top: 10px">
|
|
|
+ <el-button type="primary" plain>新增</el-button>
|
|
|
+ <el-button plain>删除</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="20" style="margin-top: 10px">
|
|
|
+ <el-button type="primary">NA</el-button>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20" style="margin-top: 10px">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="检定条件" prop="verification">
|
|
|
+ <el-input v-model="instrumentForm.verification" clearable />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="证书编号" prop="certificate">
|
|
|
+ <el-input v-model="instrumentForm.certificate" clearable />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="检定员编号" prop="inspector">
|
|
|
+ <el-input v-model="instrumentForm.inspector" clearable />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="检定参数类型" prop="typeParameter" style="display: flex; align-items: center">
|
|
|
+ <el-radio-group v-model="instrumentForm.typeParameter">
|
|
|
+ <el-radio value="1" size="large">校准系数</el-radio>
|
|
|
+ <el-radio value="2" size="large">多点校准系数</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="20" v-if="instrumentForm.type === 'PWD'">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="校准系数" prop="coefficient">
|
|
|
+ <el-input v-model="instrumentForm.coefficient" clearable />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <div v-if="instrumentForm.typeParameter === '2'" class="table-box" style="margin-top: 10px;height: 160px">
|
|
|
+ <el-table stripe ref="tableRef" :border="true" :data="processTableData2" size="small">
|
|
|
+ <template v-for="item in columns2" :key="item">
|
|
|
+ <el-table-column v-bind="item" :align="item.align ?? 'left'" :reserve-selection="item.type == 'selection'"
|
|
|
+ :show-overflow-tooltip="true">
|
|
|
+ <template v-if="item.prop === 'operation'">
|
|
|
+ <el-tooltip class="box-item" effect="dark" content="删除" placement="top">
|
|
|
+ <el-button type="primary" link>
|
|
|
+ <el-icon>
|
|
|
+ <Delete />
|
|
|
+ </el-icon>
|
|
|
+ </el-button>
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
- </template>
|
|
|
-
|
|
|
- <!-- 无数据 -->
|
|
|
- <template #empty>
|
|
|
- <div class="table-empty">
|
|
|
- <slot name="empty">
|
|
|
- <img src="@/assets/images/notData.png" alt="notData" />
|
|
|
- <div>暂无数据</div>
|
|
|
- </slot>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-table>
|
|
|
- </div>
|
|
|
|
|
|
- </el-form>
|
|
|
- <template #footer>
|
|
|
- <div class="dialog-footer">
|
|
|
- <el-button @click="cancel">取 消</el-button>
|
|
|
- <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </el-dialog>
|
|
|
-</div>
|
|
|
+ <!-- 无数据 -->
|
|
|
+ <template #empty>
|
|
|
+ <div class="table-empty">
|
|
|
+ <slot name="empty">
|
|
|
+ <img src="@/assets/images/notData.png" alt="notData" />
|
|
|
+ <div>暂无数据</div>
|
|
|
+ </slot>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </el-form>
|
|
|
+ <template #footer>
|
|
|
+ <div class="dialog-footer">
|
|
|
+ <el-button @click="cancel">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-dialog>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="tsx">
|
|
|
-import {defineProps, reactive, ref} from "vue";
|
|
|
-import {ColumnProps} from "@/components/ProTable/interface";
|
|
|
-const props = defineProps<{
|
|
|
- selectData?: {};
|
|
|
-}>();
|
|
|
+import { defineProps, reactive, ref, onMounted } from "vue";
|
|
|
+import { ColumnProps } from "@/components/ProTable/interface";
|
|
|
+import { getQuerCertList } from "@/api/modules/allData";
|
|
|
+const props = defineProps(['selectData'])
|
|
|
+
|
|
|
+// 获取检定证书
|
|
|
+const certData = ref<any>([]);
|
|
|
+const certData2 = ref<any>([]);
|
|
|
+const querCert = ref<any>({
|
|
|
+ pageSize: 1000,
|
|
|
+ pageNum: 1,
|
|
|
+})
|
|
|
+const getCertList = async () => {
|
|
|
+ const { data } = await getQuerCertList({ ...querCert.value, asCode: props.selectData?.as_code });
|
|
|
+ console.log(data, '检定证书')
|
|
|
+ certData.value = data.list.map(item=>{
|
|
|
+ return item.se_mode===0
|
|
|
+ })
|
|
|
+ certData2.value = data.list.map(item=>{
|
|
|
+ return item.se_mode===1
|
|
|
+ })
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+const radio1 = ref<any>(0) //检定参数类型
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
const formRef = ref<any>();
|
|
|
const dialog = reactive<any>({
|
|
|
visible: false,
|
|
@@ -185,23 +204,23 @@ const rules = ref<any>(
|
|
|
|
|
|
const initFormData = ref<any>(
|
|
|
{
|
|
|
- type:'PWS',
|
|
|
- verification:'',
|
|
|
- certificate:'',
|
|
|
- inspector:'',
|
|
|
- typeParameter:'1',
|
|
|
- coefficient:''
|
|
|
+ type: 'PWS',
|
|
|
+ verification: '',
|
|
|
+ certificate: '',
|
|
|
+ inspector: '',
|
|
|
+ typeParameter: '1',
|
|
|
+ coefficient: ''
|
|
|
|
|
|
}
|
|
|
);
|
|
|
|
|
|
const instrumentForm = ref<any>({
|
|
|
- type:'PWS',
|
|
|
- verification:'',
|
|
|
- certificate:'',
|
|
|
- inspector:'',
|
|
|
- typeParameter:'1',
|
|
|
- coefficient:''
|
|
|
+ type: 'PWS',
|
|
|
+ verification: '',
|
|
|
+ certificate: '',
|
|
|
+ inspector: '',
|
|
|
+ typeParameter: '1',
|
|
|
+ coefficient: ''
|
|
|
});
|
|
|
|
|
|
/** 新增按钮操作 */
|
|
@@ -234,7 +253,7 @@ const reset = () => {
|
|
|
}
|
|
|
|
|
|
/** 修改密码提交按钮 */
|
|
|
-const submitFormPassword = () => {
|
|
|
+const submitForm = () => {
|
|
|
formRef.value?.validate(async (valid: boolean) => {
|
|
|
if (valid) {
|
|
|
dialog.visible = false;
|
|
@@ -268,7 +287,7 @@ const columns = reactive<ColumnProps[]>([
|
|
|
{ prop: "c", label: "检定日期" },
|
|
|
{ prop: "d", label: "检定周期(月)" },
|
|
|
{ prop: "e", label: "下一次检定日期" },
|
|
|
- { prop: "operation", label: "操作", width:150,align: 'center' }
|
|
|
+ { prop: "operation", label: "操作", width: 150, align: 'center' }
|
|
|
]);
|
|
|
|
|
|
const processTableData2 = ref([
|
|
@@ -284,7 +303,7 @@ const processTableData2 = ref([
|
|
|
const columns2 = reactive<ColumnProps[]>([
|
|
|
{ prop: "a", label: "检定值" },
|
|
|
{ prop: "b", label: "修正值" },
|
|
|
- { prop: "operation", label: "操作", width:150,align: 'center' }
|
|
|
+ { prop: "operation", label: "操作", width: 150, align: 'center' }
|
|
|
]);
|
|
|
|
|
|
const editingRow = ref<any | null>(null);
|
|
@@ -302,17 +321,20 @@ const saveEdit = (row: any, field: string) => {
|
|
|
editingRow.value = null;
|
|
|
editingField.value = null;
|
|
|
};
|
|
|
+
|
|
|
+
|
|
|
+onMounted(() => {
|
|
|
+ getCertList();
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
<style scoped>
|
|
|
-.table-box{
|
|
|
+.table-box {
|
|
|
height: 100%;
|
|
|
}
|
|
|
|
|
|
-::v-deep .no-border .el-input__wrapper {
|
|
|
- box-shadow: 0 0 0 0px!important;
|
|
|
+::v-deep .no-border .el-input__wrapper {
|
|
|
+ box-shadow: 0 0 0 0px !important;
|
|
|
background-color: #00000000;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
</style>
|