| | |
| | | </div> |
| | | <el-dialog :title="isUp ? '设备详情' : '档案修订'" v-model="dialogVisible" width="70%" top="5vh" |
| | | :before-close="handleClose"> |
| | | <el-row style="display:flex;justify-content: space-around;max-height: 75vh;overflow-y: auto;"> |
| | | <!-- 左边布局 --> |
| | | <el-col :span="7"> |
| | | <el-col> |
| | | <!-- 图片 --> |
| | | <el-image class="img" style="width:100%;height: 320px;marginBottom:16px" |
| | | :src="javaApi + '/img/' + formData.imageUpload"> |
| | | <template #error><div class="image-error" style="width: calc(100% -2px); |
| | | <div style="max-height: 75vh;overflow-y: auto;"> |
| | | <!-- 顶部:图片 + 基本信息 --> |
| | | <el-row> |
| | | <el-col :span="7" style="padding-right: 20px;"> |
| | | <!-- 图片 --> |
| | | <el-image class="img" style="width:100%;height: 320px" |
| | | :src="javaApi + '/img/' + formData.imageUpload"> |
| | | <template #error><div class="image-error" style="width: calc(100% -2px); |
| | | height: 318px; |
| | | border-radius: 16px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | border: 1px solid #EEEEEE;"> |
| | | <lims-icon name="el-icon-picture-outline" style="font-size:60px;color:#666666;"></lims-icon> |
| | | </div></template> |
| | | </el-image> |
| | | <!-- 表单 --> |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="120px"> |
| | | border: 1px solid var(--lims-divider);"> |
| | | <lims-icon name="el-icon-picture-outline" style="font-size:60px;color:var(--lims-text-2);"></lims-icon> |
| | | </div></template> |
| | | </el-image> |
| | | <!-- 图片上传 --> |
| | | <div style="border: 1px solid var(--el-border-color);border-radius:4px;height:32px;lineHeight:32px;display:flex;justify-content: space-around;font-size: 13px;margin-top:12px;"> |
| | | <div v-show="formData.imageName" class="picName">{{ formData.imageName }}</div> |
| | | <el-upload :disabled="isUp" :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false" |
| | | accept='image/jpg,image/jpeg,image/png' :headers="uploadHeader" :on-change="beforeUpload" |
| | | :on-error="onError" ref='upload'> |
| | | <el-button link type="primary" style="height:30px;padding-top:8px">上传</el-button> |
| | | </el-upload> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="17"> |
| | | <!-- 基本信息 --> |
| | | <div class="section-title" style="margin-top: 0;">基本信息</div> |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="120px"> |
| | | <div class="form-row"> |
| | | <el-form-item label="仪器名称:" required prop="deviceName"> |
| | | <el-input :disabled="isUp" v-model="formData.deviceName" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="仪器名称EN:"> |
| | | <el-input :disabled="isUp" v-model="formData.enDeviceName" size="small"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="规格型号:" required> |
| | | <el-input :disabled="isUp" v-model="formData.specificationModel" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="生产厂家:"> |
| | | <el-input :disabled="isUp" v-model="formData.manufacturer" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-col> |
| | | </el-col> |
| | | <!-- 中间布局 --> |
| | | <el-col :span="7"> |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="116px"> |
| | | <el-form-item label="校准服务机构:"> |
| | | <el-input :disabled="isUp" v-model="formData.calibrationServices" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="资产编码:"> |
| | | <el-input v-model="formData.assetCode" :disabled="isUp" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="产地:"> |
| | | <el-input v-model="formData.origin" :disabled="isUp" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="出厂编号:"> |
| | | <el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="管理编号:" required> |
| | | <el-input :disabled="isUp" v-model="formData.managementNumber" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="购置日期:"> |
| | | <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.acquisitionDate" type="date" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="校准有效期:" required> |
| | | <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.activationDate" type="date" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="负责人:"> |
| | | <el-select v-model="formData.equipmentManager" placeholder="请选择" size="small" :disabled="isUp" |
| | | style="width:100%"> |
| | | <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="存放点:"> |
| | | <el-input :disabled="isUp" v-model="formData.storagePoint" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="技术指标:"> |
| | | <el-input :disabled="isUp" v-model="formData.technicalIndicators" :rows="7" type="textarea" |
| | | size="small"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-col> |
| | | <!-- 右边布局 --> |
| | | <el-col :span="7"> |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="140px" ref="ruleForm"> |
| | | <!-- 实验室列表 --> |
| | | <el-form-item label="所属部门:" required> |
| | | <el-select :disabled="isUp" v-model="formData.subordinateDepartmentsId" placeholder="请选择" size="small" |
| | | style="width:100%"> |
| | | <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="检测项目:"> |
| | | <el-cascader :disabled="isUp" v-model="formData.insProductIds" :options="options" :show-all-levels="false" |
| | | :props="props" placeholder="请选择" size="small" style="width:100%;" :collapse-tags="!isUp" separator="," |
| | | filterable clearable></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="最近校准日期:"> |
| | | <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.lastCalibrationDate" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="下次校准日期:"> |
| | | <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.nextCalibrationDate" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="设备类型:"> |
| | | <el-select :disabled="isUp" v-model="formData.largeCategory" placeholder="请选择" size="small" |
| | | style="width:100%"> |
| | | <el-option v-for="item in equipmentList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="单价(万元):"> |
| | | <el-input :disabled="isUp" v-model="formData.unitPrice" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="当前状态:" required> |
| | | <el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="请选择" size="small" |
| | | style="width:100%"> |
| | | <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="校准周期(月):" required> |
| | | <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="被授权人:"> |
| | | <el-select v-model="formData.authorizedPerson" multiple :disabled="isUp" placeholder="请选择" size="small" |
| | | style="width:100%"> |
| | | <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="图片:"> |
| | | <div |
| | | style="border: 1px solid #DCDFE6;border-radius:4px;height:32px;lineHeight:32px;display:flex;justify-content: space-around;font-size: 13px;"> |
| | | <div v-show="formData.imageName" class="picName">{{ formData.imageName }}</div> |
| | | <el-upload :disabled="isUp" :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false" |
| | | accept='image/jpg,image/jpeg,image/png' :headers="uploadHeader" :on-change="beforeUpload" |
| | | :on-error="onError" ref='upload'> |
| | | <el-button link type="primary" style="height:30px;padding-top:8px">上传</el-button> |
| | | </el-upload> |
| | | </div> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="产地:"> |
| | | <el-input v-model="formData.origin" :disabled="isUp" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="出厂编号:"> |
| | | <el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="资产编码:"> |
| | | <el-input v-model="formData.assetCode" :disabled="isUp" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="管理编号:" required> |
| | | <el-input :disabled="isUp" v-model="formData.managementNumber" size="small"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="购置日期:"> |
| | | <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.acquisitionDate" type="date" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="校准有效期:" required> |
| | | <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.activationDate" type="date" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="校准服务机构:"> |
| | | <el-select :disabled="isUp" v-model="formData.calibrationServices" clearable filterable size="small" style="width: 100%"> |
| | | <el-option v-for="name in calibrationServiceOptions" :key="name" :label="name" :value="name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div style="flex: 1;"></div> |
| | | </div> |
| | | </el-form> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- 设备管理 --> |
| | | <div class="section-title">设备管理</div> |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="120px"> |
| | | <div class="form-row"> |
| | | <el-form-item label="检测项目:"> |
| | | <el-cascader :disabled="isUp" v-model="formData.insProductIds" :options="options" :show-all-levels="false" |
| | | :props="props" placeholder="请选择" size="small" style="width:100%;" :collapse-tags="!isUp" separator="," |
| | | filterable clearable></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="设备类型:"> |
| | | <el-select :disabled="isUp" v-model="formData.largeCategory" placeholder="请选择" size="small" |
| | | style="width:100%"> |
| | | <el-option v-for="item in equipmentList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="单价(万元):"> |
| | | <el-input :disabled="isUp" v-model="formData.unitPrice" size="small"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="当前状态:" required> |
| | | <el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="请选择" size="small" |
| | | style="width:100%"> |
| | | <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="负责人:"> |
| | | <el-select v-model="formData.equipmentManager" placeholder="请选择" size="small" :disabled="isUp" |
| | | style="width:100%"> |
| | | <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="被授权人:"> |
| | | <el-select v-model="formData.authorizedPerson" multiple :disabled="isUp" placeholder="请选择" size="small" |
| | | style="width:100%"> |
| | | <el-option v-for="item in inspectorList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="存放点:"> |
| | | <el-input :disabled="isUp" v-model="formData.storagePoint" size="small"></el-input> |
| | | </el-form-item> |
| | | <div style="flex: 1;"></div> |
| | | </div> |
| | | </el-form> |
| | | <!-- 校准/保养/核查 周期信息 --> |
| | | <el-form :label-position="labelPosition" :model="formData" label-width="140px" |
| | | style="margin-top: 12px;border-top: 1px solid var(--lims-divider);padding-top: 4px;"> |
| | | <div class="cycle-row"> |
| | | <span class="cycle-title">校准信息</span> |
| | | <el-form-item label="最近校准日期:" class="cycle-item"> |
| | | <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.lastCalibrationDate" @change="calcNextDate(formData)" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="下次校准日期:" class="cycle-item"> |
| | | <el-date-picker :disabled="true" style="width:100%" v-model="formData.nextCalibrationDate" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="校准周期(月):" class="cycle-item" required> |
| | | <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small" @change="calcNextDate(formData)"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="cycle-row"> |
| | | <span class="cycle-title">保养信息</span> |
| | | <el-form-item label="最近保养日期:" class="cycle-item"> |
| | | <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.lastMaintenanceDate" @change="calcNextDate(formData)" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="下次保养日期:" class="cycle-item"> |
| | | <el-date-picker :disabled="true" style="width:100%" v-model="formData.nextMaintenanceDate" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="保养周期(月):" class="cycle-item"> |
| | | <el-input :disabled="isUp" v-model="formData.maintenanceCycle" size="small" @change="calcNextDate(formData)"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="cycle-row"> |
| | | <span class="cycle-title">核查信息</span> |
| | | <el-form-item label="最近核查日期:" class="cycle-item"> |
| | | <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.lastExamineDate" @change="calcNextDate(formData)" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="下次核查日期:" class="cycle-item"> |
| | | <el-date-picker :disabled="true" style="width:100%" v-model="formData.nextExamineDate" |
| | | format="YYYY-MM-DD" value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="核查周期(月):" class="cycle-item"> |
| | | <el-input :disabled="isUp" v-model="formData.examineCycle" size="small" @change="calcNextDate(formData)"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | <!-- 技术指标 --> |
| | | <div class="section-title">技术指标</div> |
| | | <el-input :disabled="isUp" v-model="formData.technicalIndicators" :rows="7" type="textarea" |
| | | size="small"></el-input> |
| | | </div> |
| | | <template #footer><span class="dialog-footer"> |
| | | <el-row v-if="!isUp"> |
| | | <el-row v-if="!isUp" justify="end"> |
| | | <el-button @click="handleClose">取 消</el-button> |
| | | <el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button> |
| | | </el-row> |
| | |
| | | </el-dialog> |
| | | <!-- 新增--> |
| | | <el-dialog title="新增设备" top="5vh" v-model="dialogVisible2" width="70%" :before-close="handleClose2"> |
| | | <el-row style="display:flex;justify-content: space-around;"> |
| | | <!-- 左边布局 --> |
| | | <el-col :span="7"> |
| | | <el-col> |
| | | <!-- 图片 --> |
| | | <el-image class="img" style="width:100%;height: 320px;margin-bottom:16px" |
| | | :src="javaApi + '/img/' + formData2.imageUpload"> |
| | | <template #error><div class="image-error" style="width: calc(100% -2px); |
| | | height: 318px; |
| | | border-radius: 16px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | border: 1px solid #EEEEEE;"> |
| | | <lims-icon name="el-icon-picture-outline" style="font-size:60px;color:#666666;"></lims-icon> |
| | | </div></template> |
| | | </el-image> |
| | | <!-- 表单 --> |
| | | <el-form :label-position="labelPosition" :model="formData2" label-width="120px"> |
| | | <div style="max-height: 75vh;overflow-y: auto;"> |
| | | <!-- 顶部:图片 + 基本信息 --> |
| | | <el-row> |
| | | <el-col :span="7" style="padding-right: 20px;"> |
| | | <!-- 图片 --> |
| | | <el-image class="img" style="width:100%;height: 320px" |
| | | :src="javaApi + '/img/' + formData2.imageUpload"> |
| | | <template #error><div class="image-error" style="width: calc(100% -2px); |
| | | height: 318px; |
| | | border-radius: 16px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | border: 1px solid var(--lims-divider);"> |
| | | <lims-icon name="el-icon-picture-outline" style="font-size:60px;color:var(--lims-text-2);"></lims-icon> |
| | | </div></template> |
| | | </el-image> |
| | | <!-- 图片上传 --> |
| | | <div style="border: 1px solid var(--el-border-color);border-radius:4px;height:32px;line-height:32px;display:flex;justify-content: space-around;font-size: 13px;margin-top:12px;"> |
| | | <div v-show="formData2.imageName" class="picName">{{ formData2.imageName }}</div> |
| | | <el-upload :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false" |
| | | accept='image/jpg,image/jpeg,image/png' :headers="uploadHeader" :on-change="beforeUpload" |
| | | :on-error="onError" ref='upload'> |
| | | <el-button link type="primary" style="height:30px;padding-top:8px">上传</el-button> |
| | | </el-upload> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="17"> |
| | | <!-- 基本信息 --> |
| | | <div class="section-title" style="margin-top: 0;">基本信息</div> |
| | | <el-form :label-position="labelPosition" :model="formData2" label-width="120px"> |
| | | <div class="form-row"> |
| | | <el-form-item label="仪器名称:" required> |
| | | <el-input v-model="formData2.deviceName" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="仪器名称EN:"> |
| | | <el-input v-model="formData2.enDeviceName" size="small"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="规格型号:" required> |
| | | <el-input v-model="formData2.specificationModel" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="生产厂家:"> |
| | | <el-input v-model="formData2.manufacturer" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-col> |
| | | </el-col> |
| | | <!-- 中间布局 --> |
| | | <el-col :span="7"> |
| | | <el-form :label-position="labelPosition" :model="formData2" label-width="110px"> |
| | | <!-- <el-form-item label="生产厂家EN:"> |
| | | <el-input v-model="formData2.factoryNo" size="small"></el-input> |
| | | </el-form-item> --> |
| | | <el-form-item label="校准服务机构:"> |
| | | <el-input v-model="formData2.calibrationServices" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="资产编码:"> |
| | | <el-input v-model="formData2.assetCode" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="产地:"> |
| | | <el-input v-model="formData2.origin" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="出厂编号:"> |
| | | <el-input v-model="formData2.factoryNo" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="管理编号:" required> |
| | | <el-input v-model="formData2.managementNumber" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="购置日期:"> |
| | | <el-date-picker style="width:100%" v-model="formData2.acquisitionDate" type="date" format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD HH:mm:ss" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="校准有效期:" required> |
| | | <el-date-picker style="width:100%" v-model="formData2.activationDate" type="date" format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD HH:mm:ss" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="负责人:"> |
| | | <el-select v-model="formData2.equipmentManager" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="存放点:"> |
| | | <el-input v-model="formData2.storagePoint" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="技术指标:"> |
| | | <el-input v-model="formData2.technicalIndicators" :rows="7" type="textarea" size="small"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-col> |
| | | <!-- 右边布局 --> |
| | | <el-col :span="7"> |
| | | <el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm"> |
| | | <!-- 实验室列表 --> |
| | | <el-form-item label="所属部门:" required> |
| | | <el-select v-model="formData2.subordinateDepartmentsId" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-option v-for="item in subordinateDepartmentsList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="检测项目:"> |
| | | <el-cascader v-model="formData2.insProductIds" :options="options" :show-all-levels="false" :props="props" |
| | | placeholder="请选择" size="small" style="width:100%" collapse-tags separator="," filterable |
| | | clearable></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="最近校准日期:"> |
| | | <el-date-picker style="width:100%" v-model="formData2.lastCalibrationDate" format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="下次校准日期:"> |
| | | <el-date-picker style="width:100%" v-model="formData2.nextCalibrationDate" format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="设备类型:"> |
| | | <el-select v-model="formData2.largeCategory" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-option v-for="item in equipmentList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="单价(万元):"> |
| | | <el-input v-model="formData2.unitPrice" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="当前状态:" required> |
| | | <el-select v-model="formData2.deviceStatus" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="校准周期(月):" required> |
| | | <el-input v-model="formData2.calibrationDate" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="被授权人:"> |
| | | <el-select v-model="formData2.authorizedPerson" multiple placeholder="请选择" size="small" |
| | | style="width:100%"> |
| | | <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="图片:"> |
| | | <div |
| | | style="border: 1px solid #DCDFE6;border-radius:4px;height:32px;line-height:32px;display:flex;justify-content: space-around;font-size: 13px;"> |
| | | <div v-show="formData2.imageName" class="picName">{{ formData2.imageName }}</div> |
| | | <el-upload :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false" |
| | | accept='image/jpg,image/jpeg,image/png' :headers="uploadHeader" :on-change="beforeUpload" |
| | | :on-error="onError" ref='upload'> |
| | | <el-button link type="primary" style="height:30px;padding-top:8px">上传</el-button> |
| | | </el-upload> |
| | | </div> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="产地:"> |
| | | <el-input v-model="formData2.origin" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="出厂编号:"> |
| | | <el-input v-model="formData2.factoryNo" size="small"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="资产编码:"> |
| | | <el-input v-model="formData2.assetCode" size="small"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="管理编号:" required> |
| | | <el-input v-model="formData2.managementNumber" size="small"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="购置日期:"> |
| | | <el-date-picker style="width:100%" v-model="formData2.acquisitionDate" type="date" format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD HH:mm:ss" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="校准有效期:" required> |
| | | <el-date-picker style="width:100%" v-model="formData2.activationDate" type="date" format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD HH:mm:ss" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="校准服务机构:"> |
| | | <el-select v-model="formData2.calibrationServices" clearable filterable size="small" style="width: 100%"> |
| | | <el-option v-for="name in calibrationServiceOptions2" :key="name" :label="name" :value="name"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div style="flex: 1;"></div> |
| | | </div> |
| | | </el-form> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- 设备管理 --> |
| | | <div class="section-title">设备管理</div> |
| | | <el-form :label-position="labelPosition" :model="formData2" label-width="120px"> |
| | | <div class="form-row"> |
| | | <el-form-item label="检测项目:"> |
| | | <el-cascader v-model="formData2.insProductIds" :options="options" :show-all-levels="false" :props="props" |
| | | placeholder="请选择" size="small" style="width:100%" collapse-tags separator="," filterable |
| | | clearable></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="设备类型:"> |
| | | <el-select v-model="formData2.largeCategory" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-option v-for="item in equipmentList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="单价(万元):"> |
| | | <el-input v-model="formData2.unitPrice" size="small"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="当前状态:" required> |
| | | <el-select v-model="formData2.deviceStatus" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="负责人:"> |
| | | <el-select v-model="formData2.equipmentManager" placeholder="请选择" size="small" style="width:100%"> |
| | | <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="被授权人:"> |
| | | <el-select v-model="formData2.authorizedPerson" multiple placeholder="请选择" size="small" |
| | | style="width:100%"> |
| | | <el-option v-for="item in inspectorList" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="form-row"> |
| | | <el-form-item label="存放点:"> |
| | | <el-input v-model="formData2.storagePoint" size="small"></el-input> |
| | | </el-form-item> |
| | | <div style="flex: 1;"></div> |
| | | </div> |
| | | </el-form> |
| | | <!-- 校准信息 --> |
| | | <el-form :label-position="labelPosition" :model="formData2" label-width="140px" |
| | | style="margin-top: 12px;border-top: 1px solid var(--lims-divider);padding-top: 4px;"> |
| | | <div class="cycle-row"> |
| | | <span class="cycle-title">校准信息</span> |
| | | <el-form-item label="最近校准日期:" class="cycle-item"> |
| | | <el-date-picker style="width:100%" v-model="formData2.lastCalibrationDate" format="YYYY-MM-DD" @change="calcNextDate(formData2)" |
| | | value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="下次校准日期:" class="cycle-item"> |
| | | <el-date-picker :disabled="true" style="width:100%" v-model="formData2.nextCalibrationDate" format="YYYY-MM-DD" |
| | | value-format="YYYY-MM-DD HH:mm:ss" type="date" size="small" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="校准周期(月):" class="cycle-item" required> |
| | | <el-input v-model="formData2.calibrationDate" size="small" @change="calcNextDate(formData2)"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | | <!-- 技术指标 --> |
| | | <div class="section-title">技术指标</div> |
| | | <el-input v-model="formData2.technicalIndicators" :rows="7" type="textarea" |
| | | size="small"></el-input> |
| | | </div> |
| | | <template #footer><span class="dialog-footer"> |
| | | <el-row> |
| | | <el-row justify="end"> |
| | | <el-button @click="handleClose2">取 消</el-button> |
| | | <el-button type="primary" @click="submitForm2" :loading="upLoad2">确 定</el-button> |
| | | </el-row> |
| | |
| | | <el-input size="small" placeholder="请输入" clearable v-model="configForm.formula"></el-input> |
| | | </div> |
| | | <template #footer><span class="dialog-footer"> |
| | | <el-row> |
| | | <el-row justify="end"> |
| | | <el-button @click="dialogVisible3 = false">取 消</el-button> |
| | | <el-button type="primary" @click="submitForm3" :loading="upLoad3">确 定</el-button> |
| | | </el-row> |
| | |
| | | getDeviceParameter, |
| | | delDeviceParameter, |
| | | } from '@/api/cnas/resourceDemand/device.js' |
| | | import { listDept } from '@/api/system/dept' |
| | | import { selectUserCondition } from "@/api/business/inspectionTask"; |
| | | import dayjs from 'dayjs' |
| | | import { selectQualifiedSupplierManagementPage } from '@/api/cnas/externalService/supplierManage/supplierManage' |
| | | export default { |
| | | props: { |
| | | clickNodeVal: { |
| | |
| | | return { |
| | | dateFormat: 'yyyy-MM-dd', |
| | | deviceId: '', |
| | | qualifiedSupplierNames: [], |
| | | fileTypeOptions: [ |
| | | { label: 'csv', value: '.csv' }, |
| | | { label: 'db', value: '.db' }, |
| | |
| | | responsiblePersonList: [], |
| | | // 授权人列表 |
| | | authorizerList: [], |
| | | // 检测员列表(被授权人下拉) |
| | | inspectorList: [], |
| | | // 当前状态列表 |
| | | deviceStatusList: [], |
| | | // 所属部门 |
| | | subordinateDepartmentsList: [], |
| | | upLoad: false, |
| | | upLoad2: false, |
| | | dialogVisible3: false, |
| | | upLoad3: false, |
| | | configForm: {}, |
| | | laboratoryNameIsNull: false, |
| | | queryParams: {}, |
| | | tableData: [], |
| | | column: [ |
| | |
| | | { label: "校准有效期", prop: "activationDate" }, |
| | | { label: "管理人", prop: "equipmentManagerUser" }, |
| | | { label: "存放点", prop: "storagePoint" }, |
| | | { label: "所属部门", prop: "laboratoryName" }, |
| | | { label: "检验项目", prop: "insProductItem" }, |
| | | { label: "校准服务机构", prop: "calibrationServices" }, |
| | | { label: "最近校准日期", prop: "lastCalibrationDateTwo" }, |
| | | { label: "最近核查日期", prop: "lastCalibrationDate" }, |
| | | { label: "最近核查日期", prop: "lastExamineDate" }, |
| | | { label: "下次校准日期", prop: "nextCalibrationDateTwo" }, |
| | | { label: "下次核查日期", prop: "nextCalibrationDate" }, |
| | | { label: "下次核查日期", prop: "nextExamineDate" }, |
| | | { label: "最近保养日期", prop: "lastMaintenanceDate" }, |
| | | { label: "下次保养日期", prop: "nextMaintenanceDate" }, |
| | | { |
| | | label: "设备分类", prop: "largeCategory", dataType: "tag", |
| | | formatData: (params) => { |
| | |
| | | } |
| | | }, |
| | | { label: "校准周期(月)", prop: "calibrationDate" }, |
| | | { label: "核查周期(月)", prop: "examineCycle" }, |
| | | { label: "保养周期(月)", prop: "maintenanceCycle" }, |
| | | { |
| | | dataType: "action", |
| | | fixed: "right", |
| | |
| | | page: { |
| | | total: 0, |
| | | size: 10, |
| | | current: 0, |
| | | current: 1, |
| | | }, |
| | | tableLoading: false, |
| | | } |
| | | }, |
| | | computed: { |
| | | // 校准服务机构下拉选项(合格供应商 + 当前值兜底) |
| | | calibrationServiceOptions() { |
| | | const list = this.qualifiedSupplierNames.slice(); |
| | | const value = this.formData.calibrationServices; |
| | | if (value && list.indexOf(value) === -1) list.push(value); |
| | | return list; |
| | | }, |
| | | // 新增设备弹窗的校准服务机构下拉选项 |
| | | calibrationServiceOptions2() { |
| | | const list = this.qualifiedSupplierNames.slice(); |
| | | const value = this.formData2.calibrationServices; |
| | | if (value && list.indexOf(value) === -1) list.push(value); |
| | | return list; |
| | | }, |
| | | action() { |
| | | return this.javaApi + '/deviceScope/uploadFile' |
| | | } |
| | |
| | | mounted() { |
| | | this.selectEnumByCategory() |
| | | this.selectDevicePrincipal() |
| | | this.obtainDepartmentList() |
| | | this.getInsProductIds() |
| | | this.obtainQualifiedSupplierList() |
| | | // 初始化 |
| | | this.clickSidebar(this.clickNodeVal) |
| | | }, |
| | | methods: { |
| | | // 拉取合格供应商列表(校准服务机构下拉选项) |
| | | obtainQualifiedSupplierList() { |
| | | selectQualifiedSupplierManagementPage({ current: 1, size: 999 }).then(res => { |
| | | if (res.code === 200) { |
| | | const rows = (res.data && res.data.records) || []; |
| | | this.qualifiedSupplierNames = [...new Set(rows.map(r => r.supplierName).filter(Boolean))]; |
| | | } |
| | | }); |
| | | }, |
| | | //分类 |
| | | handleNotification(cate) { |
| | | this.queryParams.largeCategory = cate |
| | | }, |
| | | obtainDepartmentList() { |
| | | listDept({ status: '0' }).then(res => { |
| | | let data = [] |
| | | res.data.forEach(a => { |
| | | data.push({ |
| | | label: a.deptName, |
| | | value: a.deptId |
| | | }) |
| | | }) |
| | | this.subordinateDepartmentsList = data |
| | | }) |
| | | // 被授权人历史值可能是被反复转义的多层 JSON 字符串,逐层解析还原成数组 |
| | | normalizeAuthorizedPerson(val) { |
| | | let v = val |
| | | for (let i = 0; i < 10; i++) { |
| | | if (typeof v !== 'string') break |
| | | if (v === '') { |
| | | v = [] |
| | | break |
| | | } |
| | | try { |
| | | v = JSON.parse(v) |
| | | } catch (e) { |
| | | v = [] |
| | | break |
| | | } |
| | | } |
| | | if (!Array.isArray(v)) { |
| | | v = v === '' || v === null || v === undefined ? [] : [v] |
| | | } |
| | | return v.filter(x => x !== '' && x !== null && x !== undefined) |
| | | }, |
| | | getList() { |
| | | this.tableLoading = true; |
| | | let param = { laboratoryNameIsNull: this.laboratoryNameIsNull, ...this.queryParams, ...this.page }; |
| | | let param = { ...this.queryParams, ...this.page }; |
| | | delete param.total; |
| | | getDeviceParameter({ ...param }) |
| | | .then((res) => { |
| | |
| | | this.getList(); |
| | | }, |
| | | tableRowClassName({ row }) { |
| | | const today = new Date(); |
| | | const targetDate = new Date(row.activationDate); |
| | | const fiveDaysBeforeTarget = new Date(targetDate); |
| | | // 计算前五天的日期 |
| | | fiveDaysBeforeTarget.setDate(targetDate.getDate() - 5); |
| | | // 比较时需要确保比较的是完整的日期时间,包含时分秒 |
| | | if (today > fiveDaysBeforeTarget) { |
| | | // 校准有效期到期前一个月(含已过期)标红提醒 |
| | | const activationDate = row.activationDate ? dayjs(String(row.activationDate).replace(' ', 'T')) : null; |
| | | if (activationDate && activationDate.isValid() && !dayjs().isBefore(activationDate.subtract(1, 'month'))) { |
| | | return 'red-row'; |
| | | } |
| | | // 下次校准/核查/保养日期提前一个月(含已过期)标红提醒 |
| | | const nextCalibration = row.nextCalibrationDate ? dayjs(String(row.nextCalibrationDate).replace(' ', 'T')) : null; |
| | | if (nextCalibration && nextCalibration.isValid() && !nextCalibration.isAfter(dayjs().add(1, 'month'))) { |
| | | return 'red-row'; |
| | | } |
| | | const nextExamine = row.nextExamineDate ? dayjs(String(row.nextExamineDate).replace(' ', 'T')) : null; |
| | | if (nextExamine && nextExamine.isValid() && !nextExamine.isAfter(dayjs().add(1, 'month'))) { |
| | | return 'red-row'; |
| | | } |
| | | const nextMaintenance = row.nextMaintenanceDate ? dayjs(String(row.nextMaintenanceDate).replace(' ', 'T')) : null; |
| | | if (nextMaintenance && nextMaintenance.isValid() && !nextMaintenance.isAfter(dayjs().add(1, 'month'))) { |
| | | return 'red-row'; |
| | | } |
| | | return ''; |
| | |
| | | }); |
| | | this.responsiblePersonList = data |
| | | this.authorizerList = data |
| | | }) |
| | | // 被授权人下拉只取检测员角色人员 |
| | | selectUserCondition({ type: 3 }).then(res => { |
| | | let data = []; |
| | | res.data.forEach((a) => { |
| | | data.push({ |
| | | label: a.name, |
| | | value: a.id, |
| | | }); |
| | | }); |
| | | this.inspectorList = data |
| | | }) |
| | | }, |
| | | getInsProductIds() { |
| | |
| | | //row = 点击对应行值 |
| | | //复制给formData |
| | | this.formData = this.HaveJson(row); |
| | | this.formData.authorizedPerson = this.normalizeAuthorizedPerson(row.authorizedPerson); |
| | | console.log(row.insProductIds + 'valll'); |
| | | this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : []; |
| | | }, |
| | |
| | | //row = 点击对应行值一行值 |
| | | //复制给formData |
| | | this.formData = this.HaveJson(row); |
| | | this.formData.authorizedPerson = this.normalizeAuthorizedPerson(row.authorizedPerson); |
| | | if (typeof (row.insProductIds) === 'number') { |
| | | row.insProductIds = row.insProductIds + '' |
| | | } |
| | |
| | | }) |
| | | } |
| | | }, |
| | | // 下次日期 = 最近日期 + 周期(月),自动计算 |
| | | calcNextDate(data) { |
| | | const calc = (lastDate, cycle) => { |
| | | const period = parseInt(cycle) |
| | | if (!lastDate || !period || period <= 0) { |
| | | return null |
| | | } |
| | | return dayjs(String(lastDate).replace(' ', 'T')) |
| | | .add(period, 'month') |
| | | .format('YYYY-MM-DD HH:mm:ss') |
| | | } |
| | | const nextCalibrationDate = calc(data.lastCalibrationDate, data.calibrationDate) |
| | | if (nextCalibrationDate) { |
| | | data.nextCalibrationDate = nextCalibrationDate |
| | | } |
| | | const nextMaintenanceDate = calc(data.lastMaintenanceDate, data.maintenanceCycle) |
| | | if (nextMaintenanceDate) { |
| | | data.nextMaintenanceDate = nextMaintenanceDate |
| | | } |
| | | const nextExamineDate = calc(data.lastExamineDate, data.examineCycle) |
| | | if (nextExamineDate) { |
| | | data.nextExamineDate = nextExamineDate |
| | | } |
| | | }, |
| | | submitForm() { |
| | | if (!this.formData.deviceName) { |
| | | this.$message.error('未输入仪器名称') |
| | |
| | | this.$message.error('未输入校准有效期') |
| | | return |
| | | } |
| | | if (!this.formData.subordinateDepartmentsId) { |
| | | this.$message.error('未选择所属部门') |
| | | return |
| | | } |
| | | if (this.formData.deviceStatus === '' || this.formData.deviceStatus === null) { |
| | | this.$message.error('未选择当前状态') |
| | | return |
| | |
| | | delete this.formData.updateUser |
| | | const formData = this.HaveJson(this.formData) |
| | | formData.insProductIds = formData.insProductIds ? formData.insProductIds.join() : '' |
| | | if (formData.authorizedPerson && formData.authorizedPerson.length === 0) { |
| | | formData.authorizedPerson = '' |
| | | } else { |
| | | formData.authorizedPerson = JSON.stringify(formData.authorizedPerson) |
| | | } |
| | | formData.authorizedPerson = Array.isArray(formData.authorizedPerson) && formData.authorizedPerson.length |
| | | ? JSON.stringify(formData.authorizedPerson) |
| | | : '' |
| | | this.upLoad = true; |
| | | upDeviceParameter(formData).then(res => { |
| | | this.$message.success('修改成功') |
| | |
| | | } |
| | | const formData = this.HaveJson(this.formData2) |
| | | formData.insProductIds = formData.insProductIds ? formData.insProductIds.join() : '' |
| | | if (formData.authorizedPerson.length === 0) { |
| | | formData.authorizedPerson = '' |
| | | } else { |
| | | formData.authorizedPerson = JSON.stringify(formData.authorizedPerson) |
| | | } |
| | | formData.authorizedPerson = Array.isArray(formData.authorizedPerson) && formData.authorizedPerson.length |
| | | ? JSON.stringify(formData.authorizedPerson) |
| | | : '' |
| | | this.upLoad2 = true; |
| | | addDeviceParameter(formData).then(res => { |
| | | this.$message.success('提交成功') |
| | |
| | | }, |
| | | // 点击侧边栏刷新 |
| | | clickSidebar(clickNodeVal) { |
| | | this.laboratoryNameIsNull = false |
| | | // 是否存在value,存在value代表为三级 |
| | | // 存在value代表选中了设备,由设备详情展示处理 |
| | | if (!clickNodeVal.value) { |
| | | this.list = []; |
| | | this.queryParams.laboratoryName = null |
| | | this.queryParams.storagePoint = null |
| | | // 等于1代表为树的一级,label为部门 |
| | | if (clickNodeVal.label == '其他') { |
| | | this.laboratoryNameIsNull = true |
| | | this.refreshTable('page') |
| | | return |
| | | } |
| | | if (clickNodeVal.level == 1) { |
| | | this.queryParams.laboratoryName = clickNodeVal.label |
| | | // 等于二级。label为存储地点 |
| | | } else if (clickNodeVal.level == 2) { |
| | | // 其他表示没有配置实验室,只配置了地点 |
| | | if (clickNodeVal.parent.label == '其他') { |
| | | this.laboratoryNameIsNull = true |
| | | } else { |
| | | this.queryParams.laboratoryName = clickNodeVal.parent.label |
| | | } |
| | | this.queryParams.storagePoint = clickNodeVal.label |
| | | } |
| | | // 树的一级为分类:全部/设备/计量器具 |
| | | this.queryParams.largeCategory = clickNodeVal.label === '全部' ? null : clickNodeVal.label |
| | | this.refreshTable('page') |
| | | } |
| | | }, |
| | |
| | | .form-item :deep(.el-form-item__content) { |
| | | width: 120px; |
| | | } |
| | | .cycle-row { |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .cycle-title { |
| | | width: 68px; |
| | | flex-shrink: 0; |
| | | font-size: 13px; |
| | | color: var(--lims-text-2, #909399); |
| | | } |
| | | |
| | | .cycle-item { |
| | | flex: 1; |
| | | margin-bottom: 6px; |
| | | margin-right: 10px; |
| | | } |
| | | |
| | | .cycle-item:last-child { |
| | | margin-right: 0; |
| | | } |
| | | |
| | | .form-row { |
| | | display: flex; |
| | | gap: 16px; |
| | | } |
| | | |
| | | .form-row > .el-form-item { |
| | | flex: 1; |
| | | } |
| | | |
| | | .section-title { |
| | | position: relative; |
| | | padding-left: 10px; |
| | | margin: 14px 0 12px; |
| | | font-size: 13px; |
| | | font-weight: 600; |
| | | color: var(--lims-text-1, #303133); |
| | | } |
| | | |
| | | .section-title::before { |
| | | content: ""; |
| | | position: absolute; |
| | | left: 0; |
| | | top: 3px; |
| | | bottom: 3px; |
| | | width: 3px; |
| | | border-radius: 2px; |
| | | background: var(--el-color-primary, #409eff); |
| | | } |
| | | </style> |