| | |
| | | <div> |
| | | <div class="search"> |
| | | <div class="search_thing"> |
| | | <div class="search_label">样品编号:</div> |
| | | <el-input v-model="search.sampleCode" clearable placeholder="请输入" size="small" style="width: 60%;" |
| | | @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input> |
| | | <div class="search_label">管理编号:</div> |
| | | <el-input v-model="search.managementNumber" clearable placeholder="请输入" size="small" style="width: 60%;" |
| | | @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input> |
| | | <div class="search_label">流程编号:</div> |
| | | <el-input v-model="search.deviceNumber" clearable placeholder="请输入" size="small" style="width: 70%;" |
| | | @keyup.enter.native="getTableList(clickNodeVal.value)"></el-input> |
| | | </div> |
| | | <div class="search_thing" style="padding-left: 30px;"> |
| | | <el-button size="small" @click="resetSearch">重 置</el-button> |
| | | <el-button size="small" type="primary" @click="getTableList(clickNodeVal.value)">查 询</el-button> |
| | | </div> |
| | | <div class="btns" v-if="isMenuList != 1"> |
| | | <div class="btns"> |
| | | <el-button size="small" type="primary" @click="dialogVisible = true, openAdd()">新 建</el-button> |
| | | <el-button :loading="outLoading" size="small" type="primary" @click="openHandleOut">导 出</el-button> |
| | | <el-button :loading="outLoading" size="small" type="primary" @click="handleDown">导 出</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="tables" style="margin-top: 10px;"> |
| | | <div class="tables" style="margin-top: 16px;"> |
| | | <el-table ref="Recordtable" :data="formParamList" height="calc(100vh - 20em)"> |
| | | <!-- 表格列 --> |
| | | <el-table-column label="序号" type="index" width="120"> |
| | |
| | | <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="样品编号" min-width="180" prop="sampleCode" /> |
| | | <el-table-column label="样品编号" min-width="180" prop="deviceNumber" /> |
| | | <el-table-column label="设备名称" min-width="150" prop="deviceName" /> |
| | | <el-table-column label="管理编号" min-width="150" prop="managementNumber" /> |
| | | <el-table-column label="温度(°C)" min-width="120" prop="temperature" /> |
| | | <el-table-column label="湿度(%RH)" min-width="120" prop="humidity" /> |
| | | <el-table-column label="使用前" min-width="120" prop="useBefore"> |
| | | <template v-slot="scope"> |
| | | {{ scope.row.useBefore === 1 ? '良好' : '异常' }} |
| | | {{ scope.row.useBefore === 1 ? '正常' : '不正常' }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="使用后" min-width="120" prop="useAfter"> |
| | | <template v-slot="scope"> |
| | | {{ scope.row.useAfter === 1 ? '良好' : '异常' }} |
| | | {{ scope.row.useAfter === 1 ? '正常' : '不正常' }} |
| | | </template> |
| | | </el-table-column> |
| | | <!-- <el-table-column label="异常情况" min-width="120" prop="abnormal" />--> |
| | | <el-table-column label="异常情况" min-width="120" prop="abnormal" /> |
| | | <el-table-column label="使用开始日期" min-width="150" prop="useStartDate" /> |
| | | <el-table-column label="使用结束日期" min-width="150" prop="useEndDate" /> |
| | | <el-table-column label="使用人" min-width="120" prop="usePerson" /> |
| | | <el-table-column label="备注" min-width="120" prop="remark" /> |
| | | <!-- 操作按钮 --> |
| | | <el-table-column fixed="right" label="操作" width="150" align="center"> |
| | | <el-table-column fixed="right" label="操作" width="130"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="small" type="text" @click="showDetailsDialog('edit', scope.row)">编辑</el-button> |
| | | <el-button size="small" type="text" @click="showDetailsDialog('view', scope.row)">查看</el-button> |
| | | <el-button size="small" type="text" @click="showDetailsDialog(scope.row)">查看详情</el-button> |
| | | <el-button size="small" type="text" @click="handleDeleteClick(scope.$index, scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <el-pagination :current-page="1" :page-size="search.size" :page-sizes="[10, 20, 30, 50, 100]" |
| | | :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | :total="search.total" layout="->,total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange" |
| | | @current-change="handleCurrentChange"> |
| | | </el-pagination> |
| | | </div> |
| | | <el-dialog :visible.sync="dialogVisible" title="仪器设备使用记录表" top="5vh" width="55%"> |
| | | <el-form ref="form" :model="form" label-width="130px"> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item :rules="[{ required: true, message: '样品编号', trigger: 'blur' }]" label="样品编号:" |
| | | prop="sampleCode"> |
| | | <el-input v-model="form.sampleCode" :disabled="operationType === 'view'" size="small" |
| | | style="width: 100%;"></el-input> |
| | | <el-form-item label="样品编号:"> |
| | | <el-input v-model="form.deviceNumber" disabled size="small" style="width: 100%;"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="设备名称:" required> |
| | | <el-input v-model="form.deviceName" :disabled="operationType === 'view'" size="small" |
| | | style="width: 100%;"></el-input> |
| | | <el-input v-model="form.deviceName" :disabled="true" size="small" style="width: 100%;"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="管理编号:" required> |
| | | <el-input v-model="form.managementNumber" :disabled="operationType === 'view'" size="small" |
| | | style="width: 100%;"></el-input> |
| | | <el-input v-model="form.managementNumber" :disabled="true" size="small" style="width: 100%;"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请输入温度(°C)', trigger: 'blur' }]" label="温度(°C):" |
| | | prop="temperature"> |
| | | <el-input v-model="form.temperature" :disabled="isShow" size="small" style="width: 100%;"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请输入湿度(%RH)', trigger: 'blur' }]" label="湿度(%RH):" |
| | | prop="humidity"> |
| | | <el-input v-model="form.humidity" :disabled="isShow" size="small" style="width: 100%;"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请选择使用前', trigger: 'change' }]" label="使用前:" |
| | | prop="useBefore"> |
| | | <el-radio-group v-model="form.useBefore" :disabled="operationType === 'view'"> |
| | | <el-radio :label="1">良好</el-radio> |
| | | <el-radio :label="0">异常</el-radio> |
| | | prop="useBefore"> |
| | | <el-radio-group v-model="form.useBefore" :disabled="isShow"> |
| | | <el-radio :label="1">正常</el-radio> |
| | | <el-radio :label="0">不正常</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请选择使用后', trigger: 'change' }]" label="使用后:" |
| | | prop="useAfter"> |
| | | <el-radio-group v-model="form.useAfter" :disabled="operationType === 'view'"> |
| | | <el-radio :label="1">良好</el-radio> |
| | | <el-radio :label="0">异常</el-radio> |
| | | prop="useAfter"> |
| | | <el-radio-group v-model="form.useAfter" :disabled="isShow"> |
| | | <el-radio :label="1">正常</el-radio> |
| | | <el-radio :label="0">不正常</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-col v-if="form.useAfter === 0" :span="24"> |
| | | <el-form-item :rules="[{ required: form.useAfter === 0, message: '请输入异常情况', trigger: 'blur' }]" label="异常情况:" |
| | | prop="abnormal"> |
| | | <el-input v-model="form.abnormal" :disabled="isShow" size="small" style="width: 100%;" |
| | | type="textarea"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item :rules="[{ required: true, message: '请输入使用日期', trigger: 'blur' }]" label="使用日期:" |
| | | prop="useDateList"> |
| | | <el-date-picker v-model="form.useDateList" :disabled="operationType === 'view'" end-placeholder="结束日期" |
| | | format="yyyy-MM-dd HH:mm:ss" size="small" start-placeholder="开始日期" style="width:100%" |
| | | type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"> |
| | | prop="useDateList"> |
| | | |
| | | <el-date-picker |
| | | v-model="form.useDateList" |
| | | :disabled="isShow" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item :rules="[{ required: true, message: '请输入使用人', trigger: 'change' }]" label="使用人:" |
| | | prop="usePersonId"> |
| | | <el-select @change="usePersonName" v-model="form.usePersonId" :disabled="operationType === 'view'" |
| | | placeholder="请选择" size="small" style="width: 100%"> |
| | | <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.id"></el-option> |
| | | </el-select> |
| | | <el-form-item :rules="[{ required: true, message: '请输入使用人', trigger: 'blur' }]" |
| | | label="使用人:" |
| | | prop="usePerson"> |
| | | <el-input v-model="form.usePerson" :disabled="isShow" size="small" style="width:100%"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注:"> |
| | | <el-input v-model="form.remark" :disabled="operationType === 'view'" type="textarea"></el-input> |
| | | <el-input v-model="form.remark" :disabled="isShow" type="textarea"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisible = false">取 消</el-button> |
| | | <el-button v-if="operationType !== 'view'" type="primary" @click="saveRecord">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog :visible.sync="ratifyDialog" title="导出" width="30%" @close="ratifyDialog = false, exportDate = ''"> |
| | | <span>时间: |
| | | <el-date-picker v-model="exportDate" format="yyyy-MM" placeholder="选择月份" size="small" style="width:100%" |
| | | type="month" value-format="yyyy-MM"> |
| | | </el-date-picker> |
| | | </span> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="ratifyDialog = false, exportDate = ''">取 消</el-button> |
| | | <el-button :loading="outLoading" type="primary" @click="handleDown">导 出</el-button> |
| | | <el-button v-if="!isShow" @click="dialogVisible = false">取 消</el-button> |
| | | <el-button v-if="!isShow" type="primary" @click="saveRecord">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | <script> |
| | | import { |
| | | deviceRecordPage, |
| | | exportUseRecord, |
| | | selectDeviceByCode, |
| | | saveDeviceRecord, |
| | | updateDeviceRecord, |
| | | deleteDeviceRecord, |
| | | deleteDeviceRecord, deviceRecordExport, |
| | | } from '@/api/cnas/resourceDemand/device.js' |
| | | import { selectUserCondition } from "@/api/system/user"; |
| | | export default { |
| | |
| | | remark: '', |
| | | }, |
| | | dialogVisible: false, |
| | | operationType: '', |
| | | formParamList: [], |
| | | } |
| | | }, |
| | |
| | | } |
| | | }) |
| | | }, |
| | | // 打开导出弹框选择编制人、批准人 |
| | | openHandleOut() { |
| | | this.ratifyDialog = true |
| | | }, |
| | | //导出 |
| | | handleDown() { |
| | | this.outLoading = true |
| | | exportUseRecord({ |
| | | deviceRecordExport({ |
| | | deviceId: this.clickNodeVal.value, |
| | | exportDate: this.exportDate |
| | | }).then(res => { |
| | | this.outLoading = false |
| | | const blob = new Blob([res], { type: 'application/octet-stream' }); |
| | | this.$download.saveAs(blob, '设备使用记录.doc') |
| | | this.$download.saveAs(blob, '设备使用记录.xlsx') |
| | | }) |
| | | }, |
| | | //新建 |
| | | openAdd() { |
| | | this.operationType = 'add' |
| | | this.getUserList() |
| | | selectDeviceByCode({ id: this.clickNodeVal.value }).then(res => { |
| | | this.form.deviceName = res.data.deviceName |
| | |
| | | }) |
| | | }); |
| | | }, |
| | | usePersonName(value) { |
| | | const index = this.userList.findIndex(item => item.id === value) |
| | | if (index > -1) { |
| | | this.form.usePerson = this.userList[index].name |
| | | } |
| | | }, |
| | | //确认添加记录 |
| | | saveRecord() { |
| | | this.$refs.form.validate((valid) => { |
| | |
| | | this.form.useStartDate = this.form.useDateList[0] |
| | | this.form.useEndDate = this.form.useDateList[1] |
| | | this.form.deviceId = this.clickNodeVal.value |
| | | if (this.operationType === 'add') { |
| | | saveDeviceRecord(this.form).then(res => { |
| | | if (res.code == 200) { |
| | | this.$message.success('新增成功') |
| | | this.getTableList(this.clickNodeVal.value) |
| | | this.dialogVisible = false |
| | | } |
| | | }) |
| | | this.dialogVisible = false; |
| | | } else { |
| | | updateDeviceRecord(this.form).then(res => { |
| | | if (res.code == 200) { |
| | | this.$message.success('修改成功') |
| | | this.getTableList(this.clickNodeVal.value) |
| | | this.dialogVisible = false |
| | | } |
| | | }) |
| | | this.dialogVisible = false; |
| | | } |
| | | saveDeviceRecord(this.form).then(res => { |
| | | if (res.code == 200) { |
| | | this.$message.success('新增成功') |
| | | this.getTableList(this.clickNodeVal.value) |
| | | this.dialogVisible = false |
| | | } |
| | | }) |
| | | this.dialogVisible = false; |
| | | } |
| | | }); |
| | | }, |
| | | //查看详情 |
| | | showDetailsDialog(type, row) { |
| | | this.operationType = type; |
| | | showDetailsDialog(row) { |
| | | console.log(row) |
| | | this.dialogVisible = true; |
| | | this.isShow = true; |
| | | this.getUserList() |
| | | this.form = row; |
| | | let list = [] |
| | |
| | | } |
| | | |
| | | .search_label { |
| | | width: 140px; |
| | | width: 74px; |
| | | font-size: 14px; |
| | | text-align: right; |
| | | margin-right: 10px; |