<style scoped>
|
.title {
|
height: 60px;
|
line-height: 60px;
|
}
|
|
.search {
|
background-color: #fff;
|
height: 80px;
|
display: flex;
|
align-items: center;
|
}
|
|
.search_thing {
|
width: 350px;
|
display: flex;
|
align-items: center;
|
}
|
|
.search_label {
|
width: 110px;
|
|
font-size: 14px;
|
text-align: right;
|
}
|
|
.search_input {
|
width: calc(100% - 110px);
|
}
|
|
.table {
|
margin-top: 10px;
|
background-color: #fff;
|
width: calc(100% - 40px);
|
height: calc(100% - 60px - 80px - 10px - 40px);
|
padding: 20px;
|
}
|
|
.el-form-item {
|
margin-bottom: 16px;
|
}
|
|
.picName {
|
overflow: hidden;
|
text-overflow: ellipsis;
|
white-space: nowrap;
|
word-break: break-all;
|
width: 120px;
|
}
|
</style>
|
|
<template>
|
<div class="role_manage">
|
<div v-if="!showData">
|
<el-row class="title">
|
<el-col :span="12" style="padding-left: 20px;text-align: left;">设备工具明细</el-col>
|
<el-col :span="12" style="text-align: right;">
|
<el-button size="medium" type="primary" @click="dialogVisible2 = true">新增</el-button>
|
</el-col>
|
</el-row>
|
</div>
|
<div class="search" v-if="!showData">
|
<div class="search_thing">
|
<div class="search_label">状态:</div>
|
<el-select v-model="componentData.entity.deviceStatus" placeholder="全部" size="small">
|
<el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
|
</el-option>
|
</el-select>
|
</div>
|
<div class="search_thing">
|
<div class="search_label">设备名称:</div>
|
<div class="search_input"><el-input size="small" placeholder="请输入" clearable
|
v-model="componentData.entity.deviceName" @keyup.enter.native="refreshTable()"></el-input></div>
|
</div>
|
<div class="search_thing">
|
<div class="search_label">规格型号:</div>
|
<div class="search_input"><el-input size="small" placeholder="请输入" clearable
|
v-model="componentData.entity.specificationModel" @keyup.enter.native="refreshTable()"></el-input></div>
|
</div>
|
<div class="search_thing" style="padding-left: 30px;">
|
<el-button size="small" @click="refresh()">重 置</el-button>
|
<el-button size="small" type="primary" @click="refreshTable()">查 询</el-button>
|
</div>
|
</div>
|
<div class="table" v-if="!showData">
|
<!-- 语法 子组件通过 this.$emit +传入方法名 调用父组件方法 例如 this.$emit(selectAllByOne) 就需在父组件声明并传入 @selectAllByOne="selectAllByOne"-->
|
<ValueTable @selectAllByOne="selectAllByOne" @isUpdate="isUpdate" ref="ValueTable"
|
:url="$api.deviceScope.selectDeviceParameter" :upUrl="$api.deviceScope.upDeviceParameter"
|
:delUrl="$api.deviceScope.delDeviceParameter" :componentData="componentData" :key="upIndex" />
|
</div>
|
<el-dialog :title="isUp?'设备详情':'档案修订'" :visible.sync="dialogVisible" width="70%" :before-close="handleClose">
|
<el-row style="display:flex;justify-content: space-around;">
|
<!-- 左边布局 -->
|
<el-col :span="7">
|
<el-col>
|
<!-- 图片 -->
|
<el-image class="img" style="width:100%;height: 320px;marginBottom:16px"
|
:src="javaApi+'/img/'+formData.imageUpload">
|
<div slot="error" 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;">
|
<i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
|
</div>
|
</el-image>
|
<!-- 表单 -->
|
<el-form :label-position="labelPosition" :model="formData" label-width="120px">
|
<el-form-item label="仪器名称:" required>
|
<el-input :disabled="isUp" v-model="formData.deviceName" size="small"></el-input>
|
</el-form-item>
|
<el-form-item label="仪器名称EN:" required>
|
<el-input :disabled="isUp" v-model="formData.enDeviceName" size="small"></el-input>
|
</el-form-item>
|
<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 :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" style="width:100%">
|
<el-option :disabled="isUp" 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="所属部门:">
|
<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="最近校准日期:" v-if="isUp">
|
<el-date-picker :disabled="isUp" style="width:100%" v-model="formData.latestTraceability" format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd" type="date" size="small" placeholder="选择日期">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="下次校准日期:" v-if="isUp">
|
<el-date-picker :disabled="isUp" style="width:100%" v-model="formData.latestTraceability" format="yyyy-MM-dd"
|
value-format="yyyy-MM-dd" 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="图片:">
|
<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="headers" :on-change="beforeUpload"
|
:on-error="onError" ref='upload'>
|
<el-button type="text" style="height:30px;padding-top:8px">上传</el-button>
|
</el-upload>
|
</div>
|
</el-form-item>
|
</el-form>
|
</el-col>
|
</el-row>
|
<span slot="footer" class="dialog-footer">
|
<el-row v-if="!isUp">
|
<el-button @click="handleClose">取 消</el-button>
|
<el-button type="primary" @click="submitForm" :loading="upLoad">确 定</el-button>
|
</el-row>
|
</span>
|
</el-dialog>
|
|
|
|
<!-- 新增-->
|
<el-dialog title="新增设备" :visible.sync="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">
|
<div slot="error" 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;">
|
<i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
|
</div>
|
</el-image>
|
<!-- 表单 -->
|
<el-form :label-position="labelPosition" :model="formData2" label-width="120px">
|
<el-form-item label="仪器名称:" required>
|
<el-input v-model="formData2.deviceName" size="small"></el-input>
|
</el-form-item>
|
<el-form-item label="仪器名称EN:" required>
|
<el-input v-model="formData2.enDeviceName" size="small"></el-input>
|
</el-form-item>
|
<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.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="所属部门:">
|
<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-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.id" :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="图片:">
|
<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="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="headers" :on-change="beforeUpload"
|
:on-error="onError" ref='upload'>
|
<el-button type="text" style="height:30px;padding-top:8px">上传</el-button>
|
</el-upload>
|
</div>
|
</el-form-item>
|
</el-form>
|
</el-col>
|
</el-row>
|
<span slot="footer" class="dialog-footer">
|
<el-row>
|
<el-button @click="handleClose2">取 消</el-button>
|
<el-button type="primary" @click="submitForm2" :loading="upLoad2">确 定</el-button>
|
</el-row>
|
</span>
|
</el-dialog>
|
<el-dialog title="数采配置" :visible.sync="dialogVisible3" width="400px">
|
<div class="search_thing" style="margin-bottom: 14px;">
|
<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>IP:</div>
|
<el-input size="small" placeholder="请输入" clearable
|
v-model="configForm.ip"></el-input>
|
</div>
|
<div class="search_thing" style="margin-bottom: 14px;">
|
<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>采集地址:</div>
|
<el-input size="small" placeholder="请输入" clearable
|
v-model="configForm.collectUrl"></el-input>
|
</div>
|
<div class="search_thing" style="margin-bottom: 14px;">
|
<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>储存地址:</div>
|
<el-input size="small" placeholder="请输入" clearable
|
v-model="configForm.storageUrl"></el-input>
|
</div>
|
<div class="search_thing" style="margin-bottom: 14px;">
|
<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>参照:</div>
|
<el-input size="small" placeholder="请输入" clearable
|
v-model="configForm.refer"></el-input>
|
</div>
|
<div class="search_thing" style="margin-bottom: 14px;">
|
<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>X:</div>
|
<el-input size="small" placeholder="请输入" clearable
|
v-model="configForm.x"></el-input>
|
</div>
|
<div class="search_thing" style="margin-bottom: 14px;">
|
<div class="search_label"><span style="color:red;margin-right: 4px;">*</span>Y:</div>
|
<el-input size="small" placeholder="请输入" clearable
|
v-model="configForm.y"></el-input>
|
</div>
|
<div class="search_thing">
|
<div class="search_label">公式:</div>
|
<el-input size="small" placeholder="请输入" clearable
|
v-model="configForm.formula"></el-input>
|
</div>
|
<span slot="footer" class="dialog-footer">
|
<el-row>
|
<el-button @click="dialogVisible3=false">取 消</el-button>
|
<el-button type="primary" @click="submitForm3" :loading="upLoad3">确 定</el-button>
|
</el-row>
|
</span>
|
</el-dialog>
|
<dataAcquisitionConfig v-if="showData" :deviceId="deviceId"/>
|
</div>
|
</template>
|
|
<script>
|
import ValueTable from '../tool/value-table.vue'
|
import dataAcquisitionConfig from '../do/b6-device-management/b6-data-acquisition-config.vue'
|
export default {
|
components: {
|
ValueTable,
|
dataAcquisitionConfig
|
},
|
data() {
|
return {
|
deviceId: '',
|
fileTypeOptions: [
|
{label: 'csv', value: '.csv'},
|
{label: 'db', value: '.db'},
|
{label: 'mdb', value: '.mdb'},
|
{label: 'word', value: '.docx'},
|
{label: 'excel', value: '.xlsx'},
|
{label: 'txt', value: '.txt'},
|
{label: 'png', value: '.png'},
|
],
|
//是否是档案修订 true不是 false是
|
isUp: true,
|
formData: {
|
},
|
formData2: {
|
imageUpload: '',
|
imageName: ''
|
},
|
value: '',
|
props: { multiple: true,emitPath:false,value:'id',label:'name' },
|
options: [],
|
labelPosition: 'right',
|
dialogVisible: false,
|
dialogVisible2: false,
|
addPower: false,
|
showData: false, // 数采配置页面
|
tableList: [],
|
componentData: {
|
entity: {
|
deviceStatus: null,
|
deviceName: null,
|
specificationModel: null,
|
largeCategory: null,
|
orderBy: {
|
field: 'id',
|
order: 'asc'
|
}
|
},
|
isIndex: true,
|
showSelect: false,
|
select: false,
|
do: [{
|
id: 'delete',
|
font: '删除',
|
type: 'text',
|
method: 'doDiy'
|
}, {
|
id: 'archives',
|
font: '档案修订',
|
type: 'text',
|
method: 'isUpdate'
|
}
|
// , {
|
// id: 'handleConfig',
|
// font: '数采配置',
|
// type: 'text',
|
// method: 'handleConfig',
|
// disabFun: (row, index) => {
|
// return row.insProductItem === ''
|
// }
|
// }
|
],
|
headNoShow:['enDeviceName'],
|
tagField: {
|
deviceStatus: {
|
select: []
|
},
|
equipmentManager: {
|
select: []
|
},
|
authorizedPerson: {
|
select: []
|
},
|
insProductIds:{
|
select:[]
|
}
|
},
|
linkEvent: {
|
deviceName: {
|
method: 'selectAllByOne'
|
}
|
},
|
selectField: {
|
authorizedPerson: {
|
select: [],
|
choose: true
|
},
|
equipmentManager: {
|
select: []
|
},
|
insProductIds:{
|
select:[],
|
choose: true
|
}
|
},
|
requiredAdd: [],
|
requiredUp: [],
|
needSort: ['deviceName', 'acquisitionDate', 'activationDate', 'lastCalibrationDate', 'nextCalibrationDate', 'deviceStatus'],
|
},
|
entityCopy: {},
|
upIndex: 0,
|
addDia: true,
|
addPower: true,
|
//设备类型列表
|
equipmentList: [],
|
// 负责人列表
|
responsiblePersonList: [],
|
// 授权人列表
|
authorizerList: [],
|
// 当前状态列表
|
deviceStatusList: [],
|
// 所属部门
|
subordinateDepartmentsList: [],
|
upLoad: false,
|
upLoad2: false,
|
dialogVisible3:false,
|
upLoad3:false,
|
configForm:{}
|
}
|
},
|
computed: {
|
headers() {
|
return {
|
'token': sessionStorage.getItem('token')
|
}
|
},
|
action() {
|
return this.javaApi + this.$api.deviceScope.uploadFile
|
}
|
},
|
mounted() {
|
this.entityCopy = this.HaveJson(this.componentData.entity)
|
this.getPower()
|
// this.getAuthorizedPerson()
|
this.selectEnumByCategory()
|
this.selectDevicePrincipal()
|
this.obtainItemParameterList()
|
this.getInsProductIds()
|
},
|
methods: {
|
obtainItemParameterList() {
|
this.$axios.get(this.$api.laboratoryScope.obtainItemParameterList).then(res => {
|
let data = []
|
res.data.forEach(a=>{
|
data.push({
|
label: a.laboratoryName,
|
value: a.id
|
})
|
})
|
this.subordinateDepartmentsList = data
|
})
|
},
|
refreshTable(e) {
|
this.$refs['ValueTable'].selectList(e)
|
},
|
refresh() {
|
this.componentData.entity = this.HaveJson(this.entityCopy)
|
this.upIndex++
|
},
|
// 权限分配
|
getPower(radio) {
|
let power = JSON.parse(sessionStorage.getItem('power'))
|
let up = false
|
let del = false
|
let add = false
|
let config = false
|
for (var i = 0; i < power.length; i++) {
|
if (power[i].menuMethod == 'upDeviceParameter') {
|
up = true
|
}
|
if (power[i].menuMethod == 'delDeviceParameter') {
|
del = true
|
}
|
if (power[i].menuMethod == 'addDeviceParameter') {
|
add = true
|
}
|
if (power[i].menuMethod == 'saveDataAcquisitionConfiguration') {
|
config = true
|
}
|
}
|
// if (!config) {
|
// this.componentData.do.splice(2, 1)
|
// }
|
if (!up) {
|
this.componentData.do.splice(1, 1)
|
}
|
if (!del) {
|
this.componentData.do.splice(0, 1)
|
}
|
this.addPower = add
|
},
|
// 获取字典
|
selectEnumByCategory() {
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "设备状态"
|
}).then(res => {
|
this.deviceStatusList = res.data
|
this.deviceStatusList.forEach(a=>{
|
if(!isNaN(a.value)){
|
a.value = parseInt(a.value)
|
}
|
})
|
this.componentData.tagField.deviceStatus.select = res.data
|
})
|
this.$axios.post(this.$api.enums.selectEnumByCategory, {
|
category: "设备分类"
|
}).then(res => {
|
this.equipmentList = res.data
|
})
|
},
|
// 获取负责人列表
|
selectDevicePrincipal() {
|
this.$axios.get(this.$api.deviceScope.selectDevicePrincipal).then(res => {
|
let data = []
|
res.data.forEach(a => {
|
data.push({
|
label: a.name,
|
value: a.id
|
})
|
})
|
this.responsiblePersonList = data
|
this.authorizerList = data
|
this.componentData.tagField.equipmentManager = data
|
this.componentData.tagField.authorizedPerson = data
|
})
|
},
|
getInsProductIds(){
|
this.$axios.post(this.$api.capacityScope.getInsProduction).then(res => {
|
this.componentData.tagField.insProductIds.select = []
|
this.componentData.selectField.insProductIds.select = []
|
this.options = res.data.map((m,i)=>{
|
m.id = m.name;
|
let children = m.children.map(n=>{
|
n.label = n.name;
|
n.value = n.id;
|
return n
|
})
|
this.componentData.tagField.insProductIds.select = [...this.componentData.tagField.insProductIds.select,...children]
|
this.componentData.selectField.insProductIds.select = [...this.componentData.selectField.insProductIds.select,...children]
|
return m
|
})
|
this.options.forEach(item=>{
|
if(item.children.length==0){
|
item.children = null;
|
}else{
|
item.children.forEach(m=>{
|
if(m.children.length==0){
|
m.children = null;
|
}else{
|
m.children.forEach(n=>{
|
if(n.children&&n.children.length==0){
|
n.children = null;
|
}
|
})
|
}
|
})
|
}
|
})
|
})
|
},
|
handleClose() {
|
this.formData = {}
|
this.formData2 = {
|
imageUpload: '',
|
imageName: ''
|
}
|
this.dialogVisible = false;
|
this.upLoad = false;
|
},
|
handleClose2() {
|
this.formData = {}
|
this.formData2 = {
|
imageUpload: '',
|
imageName: ''
|
}
|
this.dialogVisible2 = false;
|
this.upLoad = false;
|
},
|
selectAllByOne(row) {
|
this.isUp = true
|
//打开弹框
|
this.dialogVisible = true;
|
//row = 点击对应行值
|
//复制给formData
|
this.formData = this.HaveJson(row);
|
this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
|
},
|
isUpdate(row) {
|
//修改 isUp 为档案修改
|
this.isUp = false
|
//打开弹框
|
this.dialogVisible = true;
|
//row = 点击对应行值一行值
|
//复制给formData
|
this.formData = this.HaveJson(row);
|
if(typeof(row.insProductIds)==='number'){
|
row.insProductIds = row.insProductIds+''
|
}
|
this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
|
},
|
beforeUpload(file) {
|
if (file.size > 1024 * 1024 * 10) {
|
this.$message.error('上传文件不超过10M');
|
this.$refs.upload.clearFiles()
|
return false;
|
} else {
|
return true;
|
}
|
},
|
onError(err, file, fileList) {
|
this.$message.error('上传失败')
|
this.$refs.upload.clearFiles()
|
},
|
// 上传图片成功
|
handleSuccessUpImg(response, ) {
|
if (response.code == 200) {
|
this.formData.imageUpload = response.data.url;
|
this.formData.imageName = response.data.name;
|
}
|
},
|
handleSuccessUpImg2(response) {
|
if (response.code == 200) {
|
this.$nextTick(() => {
|
this.formData.imageUpload = response.data.url;
|
this.formData.imageName = response.data.name;
|
this.formData2.imageUpload = response.data.url;
|
this.formData2.imageName = response.data.name;
|
})
|
}
|
},
|
submitForm() {
|
if(!this.formData.deviceName){
|
this.$message.error('未输入仪器名称')
|
return
|
}
|
if(!this.formData.enDeviceName){
|
this.$message.error('未输入仪器名称EN')
|
return
|
}
|
if(!this.formData.specificationModel){
|
this.$message.error('未输入规格型号')
|
return
|
}
|
if(!this.formData.managementNumber){
|
this.$message.error('未输入管理编号')
|
return
|
}
|
if(!this.formData.activationDate){
|
this.$message.error('未输入启用日期')
|
return
|
}
|
if(this.formData.deviceStatus==='' || this.formData.deviceStatus===null){
|
this.$message.error('未选择当前状态')
|
return
|
}
|
if(!this.formData.calibrationDate){
|
this.$message.error('未输入校准周期(月)')
|
return
|
}
|
delete this.formData.createTime
|
delete this.formData.updateTime
|
delete this.formData.createUser
|
delete this.formData.updateUser
|
this.formData.insProductIds = this.formData.insProductIds?this.formData.insProductIds.join():''
|
this.upLoad = true;
|
this.$axios.post(this.$api.deviceScope.upDeviceParameter, this.formData, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
}).then(res => {
|
if (res.code === 201) {
|
this.upLoad = false
|
return
|
}
|
this.$message.success('修改成功')
|
this.upLoad = false
|
this.refreshTable('page')
|
this.dialogVisible = false
|
}).catch(e => {
|
this.$message.error('修改失败')
|
this.dialogVisible = false
|
this.upLoad = false
|
})
|
},
|
submitForm2() {
|
if(!this.formData2.deviceName){
|
this.$message.error('未输入仪器名称')
|
return
|
}
|
if(!this.formData2.enDeviceName){
|
this.$message.error('未输入仪器名称EN')
|
return
|
}
|
if(!this.formData2.specificationModel){
|
this.$message.error('未输入规格型号')
|
return
|
}
|
if(!this.formData2.managementNumber){
|
this.$message.error('未输入管理编号')
|
return
|
}
|
if(!this.formData2.activationDate){
|
this.$message.error('未输入启用日期')
|
return
|
}
|
if(this.formData2.deviceStatus==='' || this.formData2.deviceStatus===null){
|
this.$message.error('未选择当前状态')
|
return
|
}
|
if(!this.formData2.calibrationDate){
|
this.$message.error('输入校准周期(月)')
|
return
|
}
|
this.upLoad2 = true;
|
this.formData2.insProductIds = this.formData2.insProductIds?this.formData2.insProductIds.join():''
|
this.$axios.post(this.$api.deviceScope.addDeviceParameter, this.formData2, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
}).then(res => {
|
if (res.code === 201) {
|
this.upLoad2 = false
|
return
|
}
|
this.$message.success('提交成功')
|
this.upLoad2 = false
|
this.refreshTable('page')
|
this.dialogVisible2 = false
|
this.formData2 = {
|
imageUpload: '',
|
imageName: ''
|
}
|
}).catch(e => {
|
this.$message.error('提交失败')
|
this.dialogVisible2 = false
|
this.upLoad2 = false
|
})
|
},
|
handleConfig(row){
|
// this.configForm = {}
|
// this.dialogVisible3 = true
|
// this.$axios.post(this.$api.deviceScope.getNumberCollect+'?id='+row.id).then(res => {
|
// this.configForm = res.data
|
// })
|
this.showData = true
|
const list = row.insProductItem.split(';')
|
let list2 = []
|
list.map((item) => {
|
const obj = Object.assign({
|
deviceId: row.id,
|
insProductItem: item,
|
})
|
list2.push(obj)
|
})
|
this.tableList = list2
|
this.deviceId = row.id
|
},
|
closeDataVue () {
|
this.showData = false
|
},
|
submitForm3(){
|
if(!this.configForm.ip){
|
this.$message.error('请填写IP');
|
return
|
}
|
if(!this.configForm.collectUrl){
|
this.$message.error('请填写采集地址');
|
return
|
}
|
if(!this.configForm.storageUrl){
|
this.$message.error('请填写储存地址');
|
return
|
}
|
if(!this.configForm.refer){
|
this.$message.error('请填写参照');
|
return
|
}
|
if(!this.configForm.x){
|
this.$message.error('请填写X');
|
return
|
}
|
if(!this.configForm.y){
|
this.$message.error('请填写Y');
|
return
|
}
|
|
this.upLoad3 = true
|
this.$axios.post(this.$api.deviceScope.numberCollect, this.configForm, {
|
headers: {
|
'Content-Type': 'application/json'
|
}
|
}).then(res => {
|
this.upLoad3 = false
|
if (res.code === 201) {
|
return
|
}
|
this.$message.success('操作成功')
|
this.refreshTable('page')
|
this.dialogVisible3 = false
|
}).catch(e => {
|
this.$message.error('操作失败')
|
this.dialogVisible3 = false
|
this.upLoad3 = false
|
})
|
}
|
}
|
}
|
</script>
|