From efad6058c9c9ee6ba754dc9cc61c8d744cd199b8 Mon Sep 17 00:00:00 2001 From: licp <lichunping@guanfang.com.cn> Date: 星期一, 06 一月 2025 10:30:31 +0800 Subject: [PATCH] 完成设备模块搬迁 --- src/components/do/a6-device/check.vue | 677 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 675 insertions(+), 2 deletions(-) diff --git a/src/components/do/a6-device/check.vue b/src/components/do/a6-device/check.vue index 8f3c0ed..8b76b3d 100644 --- a/src/components/do/a6-device/check.vue +++ b/src/components/do/a6-device/check.vue @@ -1,13 +1,686 @@ +<!-- 璁惧鏍告煡 --> <template> - <div>璁惧鏍告煡</div> + <div> + <div class="btns"> + <el-button size="small" type="primary" @click="calibrationMaintenance()">鏍告煡椤圭洰缁存姢</el-button> + <el-button size="small" type="primary" @click="add('add')">娣诲姞鏍告煡璁板綍</el-button> + <el-button size="small" type="primary">瀵煎嚭Excel</el-button> + </div> + <div class="tables" style="margin-top: 16px;"> + <el-table :data="tableData" height="calc(100vh - 20em)"> + <el-table-column label="搴忓彿" type="index" width="120"> + <template v-slot="scope"> + <span>{{ (search.current - 1) * search.size + scope.$index + 1 }}</span> + </template> + </el-table-column> + <el-table-column label="璁板綍缂栧彿" min-width="150" prop="processNumber"></el-table-column> + <el-table-column label="鏍告煡鏈烘瀯" min-width="150" prop="calibrationInstitution" + show-overflow-tooltip></el-table-column> + <el-table-column label="鏍告煡缁撹" min-width="150" prop="status"> + <template v-slot="scope"> + {{ scope.row.status === '0yes' ? '鍚堟牸' : scope.row.status === '1no' ? '涓嶅悎鏍�' : '鍏朵粬' }} + </template> + </el-table-column> + <el-table-column label="鏍告煡璇佷功缂栧彿" min-width="150" prop="certificateSerialNumber"></el-table-column> + <el-table-column label="璇存槑" min-width="150" prop="remark" show-overflow-tooltip></el-table-column> + <el-table-column label="鏍告煡鏃ユ湡" min-width="150" prop="calibrationDate"></el-table-column> + <el-table-column label="涓嬫鏍告煡鏃ユ湡" min-width="150" prop="nextCalibrationDate"></el-table-column> + <el-table-column label="鐧昏浜�" min-width="150" prop="createUser"></el-table-column> + <el-table-column label="鐧昏鏃ユ湡" min-width="150" prop="createTime"></el-table-column> + <el-table-column fixed="right" label="鎿嶄綔" min-width="150"> + <template #default="{ row }"> + <el-button size="small" type="text" @click="handleAttachmentClick(row)">闄勪欢</el-button> + <el-button size="small" type="text" @click="handleViewClick('view', row)">鏌ョ湅</el-button> + <el-button size="small" type="text" @click="handleDeleteClick(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" style="margin-right: 5%;" + @size-change="handleSizeChange" @current-change="handleCurrentChange"> + </el-pagination> + </div> + + <!-- 鏍″噯椤圭洰缁存姢 --> + <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible0" title="鏍告煡椤圭洰缁存姢" + top="5vh" width="70%"> + <h4> + <span style="display: flex;align-items: center;"><span class="line"></span><span>璁惧鏍告煡鍙傛暟缁存姢</span></span> + <el-button :loading="addCalibrateLoading" size="small" type="primary" @click="addCalibrate">娣� 鍔�</el-button> + </h4> + <div> + <el-form ref="form0" :model="form0" :rules="form0Rules" + label-position="right" label-width="120px"> + <el-row> + <el-col :span="12"> + <el-form-item label="鏍告煡鍙傛暟:" prop="measurementParameter"> + <el-input v-model="form0.measurementParameter" clearable placeholder="璇疯緭鍏�" size="small"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鏍告煡鑼冨洿:" prop="rangeOfMeasurement"> + <el-input v-model="form0.rangeOfMeasurement" clearable placeholder="璇疯緭鍏�" size="small"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鏈�澶у厑璁歌宸�:" prop="maxPermissibleError"> + <el-input v-model="form0.maxPermissibleError" clearable placeholder="璇疯緭鍏�" size="small"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> + <el-form-item label="鍒ゅ畾鏍囧噯:" prop="judgmentCriteria"> + <el-input v-model="form0.judgmentCriteria" clearable placeholder="璇疯緭鍏�" size="small"></el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + </div> + <h4> + <span style="display: flex;align-items: center;"><span class="line"></span><span>璁惧鏍告煡鍙傛暟</span></span> + </h4> + <!-- 璁惧鏍″噯鍙傛暟琛ㄦ牸 --> + <el-table ref="calibrateTable" v-loading="calibrateParamsLoading" :data="calibrateParams" + max-height="450" + stripe style="width: 100%"> + <el-table-column label="缂栧彿" type="index" width="80"></el-table-column> + <el-table-column label="鏍告煡鍙傛暟" prop="measurementParameter"></el-table-column> + <el-table-column label="鏍告煡鑼冨洿" prop="rangeOfMeasurement"></el-table-column> + <el-table-column label="鏈�澶у厑璁歌宸�" prop="maxPermissibleError"></el-table-column> + <el-table-column label="鍒ゅ畾鏍囧噯" prop="judgmentCriteria"></el-table-column> + <el-table-column label="鍒涘缓浜�" prop="createdBy"></el-table-column> + <el-table-column label="鍒涘缓鏃堕棿" prop="creationTime"></el-table-column> + <el-table-column fixed="right" label="鎿嶄綔"> + <template slot-scope="scope"> + <el-button size="small" type="text" @click="handleDelete(scope.row)">鍒犻櫎</el-button> + </template> + </el-table-column> + </el-table> + </el-dialog> + + <!-- 娣诲姞鏍告煡璁板綍 --> + <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :visible.sync="dialogVisible1" title="娣诲姞鏍告煡璁板綍" + top="5vh" + width="80%" @close="resetcalibrationRecord"> + <div class="dialog-content"> + <h4> + <span style="display: flex;align-items: center;"> + <span class="line"></span> + <span>娣诲姞璁惧鏍告煡璁板綍</span> + </span> + </h4> + <el-form ref="calibrationRecord" :model="calibrationRecord" :rules="formRules" + label-position="right" label-width="120px"> + <el-row> + <el-col :span="6"> + <el-form-item label="鏍告煡浜�:" prop="unitOfMeasure"> + <el-input v-model="calibrationRecord.unitOfMeasure" :disabled="operationType === 'view'" + size="small"></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="鏍告煡鏃ユ湡:" prop="calibrationDate"> + <el-date-picker v-model="calibrationRecord.calibrationDate" :disabled="operationType === 'view'" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" + size="small" + style="width: 90%" type="date" value-format="yyyy-MM-dd"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="涓嬫鏍告煡鏃ユ湡:" label-width="140px" prop="nextCalibrationDate"> + <el-date-picker v-model="calibrationRecord.nextCalibrationDate" :disabled="operationType === 'view'" :picker-options="{ disabledDate: this.disabledDate }" + format="yyyy-MM-dd" + placeholder="閫夋嫨鏃ユ湡" + size="small" style="width: 90%" type="date" + value-format="yyyy-MM-dd"> + </el-date-picker> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鏍告煡鍣ㄥ叿:" prop="calculatingApparatus"> + <el-input v-model="calibrationRecord.calculatingApparatus" :disabled="operationType === 'view'" + size="small"></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="鏍告煡鏍囧噯閲忕▼:" prop="standardRange"> + <el-input v-model="calibrationRecord.standardRange" :disabled="operationType === 'view'" size="small" + style="width: 90%"></el-input> + </el-form-item> + </el-col> + <el-col :span="10"> + <el-form-item label="鏍告煡鏍囧噯涓嶇‘瀹氬害:" label-width="140px" prop="calibrationStandardUncertainty"> + <el-input v-model="calibrationRecord.calibrationStandardUncertainty" :disabled="operationType === 'view'" size="small" + style="width: 90%"></el-input> + </el-form-item> + </el-col> + <el-col :span="6"> + <el-form-item label="鏍告煡鎸囧涔�:" prop="byDocument"> + <el-input v-model="calibrationRecord.byDocument" :disabled="operationType === 'view'" + size="small"></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="妫�鏌ユ姤鍛婄紪鍙�:" prop="certificateSerialNumber"> + <el-input v-model="calibrationRecord.certificateSerialNumber" :disabled="operationType === 'view'" size="small" + style="width: 90%"></el-input> + </el-form-item> + </el-col> + <el-col :span="8"> + <el-form-item label="鏍告煡鎬荤粨璁�:" label-width="140px" prop="status"> + <el-radio-group v-model="calibrationRecord.status" :disabled="operationType === 'view'"> + <el-radio label="0yes">鍚堟牸</el-radio> + <el-radio label="1no">涓嶅悎鏍�</el-radio> + <el-radio label="2other">鍏朵粬</el-radio> + </el-radio-group> + </el-form-item> + </el-col> + <el-col :span="23"> + <el-form-item label="闄勪欢锛�" prop="fileName"> + <el-input v-model="calibrationRecord.fileName" :style="`width: ${operationType === 'add' ? '90%' : '100%'};}`" disabled + size="small"> + <el-button v-if="operationType === 'add'" slot="append" icon="el-icon-delete-solid" + @click="deleteFile"></el-button> + </el-input> + <el-upload v-if="operationType === 'add'" ref="upload" :action="action" :before-upload="beforeUpload" :headers="headers" + :limit="1" :on-error="onError" :on-success="handleSuccessUp" + :show-file-list="false" + style="float: right;"> + <el-button :loading="upLoading" size="small" style="position: relative; top: -4px;" + type="primary">闄勪欢涓婁紶 + </el-button> + </el-upload> + </el-form-item> + </el-col> + <el-col :span="24"> + <el-form-item label="澶囨敞:"> + <el-input v-model="calibrationRecord.remark" :disabled="operationType === 'view'" :rows="3" size="small" + style="width: 96%" type="textarea"></el-input> + </el-form-item> + </el-col> + </el-row> + </el-form> + <h4> + <span style="display: flex;align-items: center;"> + <span class="line"></span><span>鏍告煡鏉$洰纭缁撴灉</span> + </span> + </h4> + <el-table ref="calibrateTable" :data="calibrateParams" stripe style="width: 100%;"> + <el-table-column label="缂栧彿" type="index" width="80"></el-table-column> + <el-table-column label="鏍告煡鍙傛暟" prop="measurementParameter" width="150"></el-table-column> + <el-table-column label="鏍告煡鑼冨洿" prop="rangeOfMeasurement" width="150"></el-table-column> + <el-table-column label="鏈�澶у厑璁歌宸�" prop="maxPermissibleError" width="150"></el-table-column> + <el-table-column label="鍒ゅ畾鏍囧噯" prop="judgmentCriteria" width="150"></el-table-column> + <el-table-column label="鏄惁鏍告煡" prop="isCalibration"> + <template slot="header" slot-scope="scope"> + <span class="required-span">* </span>鏄惁鏍告煡 + </template> + <template slot-scope="scope"> + <el-radio-group v-model="scope.row.isCalibration" :disabled="operationType === 'view'"> + <el-radio label="0yes">鏄�</el-radio> + <el-radio label="1no">鍚�</el-radio> + </el-radio-group> + </template> + </el-table-column> + <el-table-column label="鍒ゅ畾缁撴灉" prop="result"> + <template slot="header" slot-scope="scope"> + <span class="required-span">* </span>鍒ゅ畾缁撴灉 + </template> + <template slot-scope="scope"> + <el-radio-group v-model="scope.row.result" :disabled="operationType === 'view'" @input="checkRadio()"> + <el-radio label="0yes">鍚堟牸</el-radio> + <el-radio label="1no">涓嶅悎鏍�</el-radio> + <el-radio label="2other">鍏朵粬</el-radio> + </el-radio-group> + </template> + </el-table-column> + <el-table-column label="鍗曢」缁撴灉璇存槑" prop="singleResultStatement"> + <template slot-scope="scope"> + <el-input v-model="scope.row.singleResultStatement" :disabled="operationType === 'view'" size="small"></el-input> + </template> + </el-table-column> + </el-table> + <span slot="footer" class="dialog-footer" style="float: right;margin-top: 10px"> + <el-button v-if="operationType === 'add'" @click="dialogVisible1 = false">鍙� 娑�</el-button> + <el-button v-if="operationType === 'add'" type="primary" @click="addRecord">纭� 瀹�</el-button> + </span> + </div> + </el-dialog> + </div> + </template> <script> +import ValueTable from '../../tool/value-table.vue' +import file from '../../../util/file'; export default { + components: { + ValueTable + }, + props: { + clickNodeVal: { + type: Object, + default: () => { + return {}; + } + } + }, + data() { + return { + search: { + size: 20, + current: 1, + total: 0 + }, + calibrateParamsLoading: false, + addCalibrateLoading: false, + form0: { + measurementParameter: '', // 璁¢噺鍙傛暟 + rangeOfMeasurement: '', + maxPermissibleError: '', + judgmentCriteria: '', + createdBy: '', + action: '', + deviceId: null + }, + form0Rules: { + measurementParameter: [ + {required: true, message: '璇疯緭鍏ヨ閲忓弬鏁�', trigger: 'blur'} + ], + rangeOfMeasurement: [ + {required: true, message: '璇疯緭鍏ラ噺绋嬭寖鍥�', trigger: 'blur'} + ], + maxPermissibleError: [ + {required: true, message: '璇疯緭鍏ユ渶澶у厑璁歌宸�', trigger: 'blur'} + ], + judgmentCriteria: [ + {required: true, message: '璇疯緭鍏ュ垽瀹氭爣鍑�', trigger: 'blur'} + ], + }, + dialogVisible0: false, + calibrationRecord: { + unitOfMeasure: '', // 鏍告煡浜� + calibrationDate: '', // 鏍告煡鏃ユ湡 + nextCalibrationDate: '', // 涓嬫鏍告煡鏃ユ湡 + calculatingApparatus: '', // 鏍告煡鍣ㄥ叿 + standardRange: '', // 鏍告煡鏍囧噯閲忕▼ + calibrationStandardUncertainty: '', // 鏍告煡鏍囧噯涓嶇‘瀹氬害 + byDocument: '', // 鏍告煡鎸囧涔� + certificateSerialNumber: '', // 妫�鏌ユ姤鍛婃寚瀵间功 + fileName: '', // 闄勪欢 + status: '', // 鏍告煡鎬荤粨璁� + remark: '', // 澶囨敞 + }, + formRules: { + unitOfMeasure: [{required: true, message: '璇疯緭鍏ユ牳鏌ヤ汉', trigger: 'blur'}], + calibrationDate: [{required: true, message: '璇烽�夋嫨鏍告煡鏃ユ湡', trigger: 'change'}], + nextCalibrationDate: [{required: true, message: '璇烽�夋嫨涓嬫鏍告煡鏃ユ湡', trigger: 'change'}], + calculatingApparatus: [{required: true, message: '璇疯緭鍏ユ牳鏌ュ櫒鍏�', trigger: 'blur'}], + standardRange: [{required: true, message: '璇疯緭鍏ユ牳鏌ユ爣鍑嗛噺绋�', trigger: 'blur'}], + calibrationStandardUncertainty: [{required: true, message: '璇疯緭鍏ユ牳鏌ユ爣鍑嗕笉纭畾搴�', trigger: 'blur'}], + byDocument: [{required: true, message: '璇疯緭鍏ユ牳鏌ユ寚瀵间功', trigger: 'blur'}], + certificateSerialNumber: [{required: true, message: '璇疯緭鍏ユ鏌ユ姤鍛婃寚瀵间功', trigger: 'blur'}], + status: [{required: true, message: '璇烽�夋嫨鏍告煡鎬荤粨璁�', trigger: 'change'}] + }, + calibrateParams: [], + tableData: [], + operationType: '', + dialogVisible1: false, + formData: { + person: '', + data1: '', + name: '', + }, + upLoading: false + } + }, + // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭� + computed: { + headers() { + return { + 'token': sessionStorage.getItem('token') + } + }, + action() { + return this.javaApi + this.$api.personnel.saveCNASFile + } + }, + mounted() { + this.getTableList(this.clickNodeVal.value) // 鑾峰彇璁惧鏍告煡鍒楄〃鏁版嵁 + }, + methods: { + //鐘舵�佸垽瀹� + checkRadio(){ + let resultList = this.calibrateParams.map(ele=>ele.result) + if(resultList && resultList.filter(ele=>ele=='1no').length>0){ + this.calibrationRecord.status = '1no' + }else if(resultList && resultList.filter(ele=>ele=='2other').length==resultList.length){ + this.calibrationRecord.status = '2other' + }else if(resultList && resultList.filter(ele=>ele=='0yes').length==resultList.length){ + this.calibrationRecord.status = '0yes' + } + }, + //涓嬫鏍告煡鏃ユ湡:绂佺敤鍦ㄦ牳鏌ユ棩鏈熷墠鐨勬棩鏈� + disabledDate(time){ + let selectDate = this.calibrationRecord.calibrationDate + if(selectDate){ + let oldDate = new Date(selectDate) + return time <= oldDate.getTime() + } + return false + }, + handleSizeChange(val) { + this.search.size = val + this.getTableList(this.clickNodeVal.value); + }, + handleCurrentChange(val) { + this.search.current = val + this.getTableList(this.clickNodeVal.value); + }, + // 鑾峰彇璁惧鏍″噯鍙傛暟table淇℃伅 + async getXmsg() { + this.calibrateParamsLoading = true + try { + await this.$axios.get(this.$api.deviceCheck.selectDeviceMetric + "?deviceId=" + this.clickNodeVal.value + "&type=examine").then(res => { + if (res.code == 200) { + this.calibrateParams = res.data + } + this.calibrateParamsLoading = false + }) + } catch (e) { + this.calibrateParamsLoading = false + } + }, + // 鏍″噯椤圭洰缁存姢 + calibrationMaintenance() { + this.dialogVisible0 = true + this.getXmsg(); + }, + addCalibrate() { + this.$refs['form0'].validate((valid) => { + if (valid) { + // 淇濆瓨 + this.calibrateParamsLoading = true + this.addCalibrateLoading = true + this.form0.deviceId = this.clickNodeVal.value; + const user = JSON.parse(localStorage.getItem('user')) + this.form0.createdBy = user.name; + this.form0.type = 'examine' + this.$axios.post(this.$api.deviceCheck.saveOrUpdateDeviceMetric, this.form0, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 200) { + this.$message.success('淇濆瓨鎴愬姛') + this.$refs['form0'].resetFields() + this.getXmsg() // 鍒锋柊璁惧鏍″噯鍙傛暟琛ㄦ牸 + } + this.calibrateParamsLoading = false + this.addCalibrateLoading = false + }) + } else { + this.addCalibrateLoading = false + this.$message.warning('鏈夊繀濉」鏈~'); + } + }) + }, + // 鏌ヨ璁惧鏍告煡鍒楄〃 + getTableList(deviceId) { + this.$axios.get(this.$api.deviceCheck.deviceMetricRecordPage + '?deviceId=' + deviceId + "&size=" + this.search.size + "¤t=" + this.search.current + "&type=examine").then(res => { + this.tableData = res.data.records + this.search.total = res.data.total + }) + }, + // 鎻愪氦瑕佹坊鍔犵殑璁板綍 + addRecord() { + this.$refs['calibrationRecord'].validate((valid) => { + if (valid) { + try { + if (this.calibrateParams.some(m => m.isCalibration === undefined)) { + this.$message.error('璇烽�夋嫨鏄惁鏍告煡') + return + } + if (!this.calibrateParams.every(m => m.result !== undefined)) { + this.$message.error('璇烽�夋嫨鍒ゅ畾缁撴灉') + return + } + this.addRecordLoading = true + this.calibrationRecord.deviceId = this.clickNodeVal.value; + let user = JSON.parse(localStorage.getItem('user')) + this.calibrationRecord.createUser = user.name + this.calibrationRecord.deviceMetricsCopyList = this.calibrateParams + this.calibrationRecord.type = 'examine' + this.$axios.post(this.$api.deviceCheck.addOrUpdateDeviceMetricRecord, this.calibrationRecord, { + headers: { + 'Content-Type': 'application/json' + } + }).then(res => { + if (res.code == 200) { + this.$message.success('娣诲姞鎴愬姛') + this.dialogVisible1 = false + this.getTableList(this.clickNodeVal.value) + } + this.addRecordLoading = false + }) + } catch (e) { + console.log('addRecord---', e) + this.addRecordLoading = false + } + } else { + this.$message.warning('鏈夊繀濉」鏈~'); + } + }) + }, + resetcalibrationRecord() { + this.$refs.calibrationRecord.resetFields() + }, + // 闄勪欢涓婁紶 + handleSuccessUp(response, file) { + if (response.code == 200) { + // 鍦ㄤ繚瀛樿祴鍊兼柊鏂囦欢 + this.calibrationRecord.fileName = file.name + this.calibrationRecord.systemFileName = response.data + this.upLoading = false; + } else { + this.$message.error(response.message) + } + }, + beforeUpload(file) { + if (file.size > 1024 * 1024 * 10) { + this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M'); + this.$refs.upload.clearFiles() + return false; + } else { + this.upLoading = true; + return true; + } + }, + onError(err, file, fileList) { + this.$message.error('涓婁紶澶辫触') + this.$refs.upload.clearFiles() + }, + deleteFile() { + this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ枃浠�, 鏄惁缁х画?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.$axios.delete(this.$api.personnel.deleteCNASFile + "?fileName=" + this.form.systemFileName).then(res => { + if (res.code == 200) { + this.$message.success('鍒犻櫎鎴愬姛锛�') + } + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }); + }, + // end + handleAttachmentClick(row) { + // 妯℃嫙涓嬭浇闄勪欢 + const imageUrl = this.javaApi+'/img/'+row.systemFileName; // 鍥剧墖 URL + file.downloadIamge(imageUrl,row.fileName) + // downloadImage(imageUrl, row.fileName); + }, + // 娣诲姞鏍告煡璁板綍 + add(type) { + this.operationType = type + this.dialogVisible1 = true + this.getXmsg() + }, + // 鏌ョ湅璇︽儏 + handleViewClick(type, row) { + this.$axios.get(this.$api.deviceCheck.showDeviceMetricsCopy + "?id=" + row.id + "&type=examine").then(res => { + this.calibrateParams = res.data + }) + this.calibrationRecord = {...row} + this.operationType = type + this.dialogVisible1 = true + }, + // 琛ㄦ牸鍒犻櫎鎿嶄綔 + handleDeleteClick(row) { + this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.$axios.delete(this.$api.deviceCheck.deleteDeviceMetricRecord + "?id=" + row.id).then(res => { + this.getTableList(this.clickNodeVal.value) // 鑾峰彇璁惧鏍″噯鍒楄〃鏁版嵁 + this.$message.success('鍒犻櫎鎴愬姛锛�') + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }) + }, + handleDelete(row){ + this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + this.$axios.delete(this.$api.deviceCheck.deleteDeviceMetrics + "?id=" + row.id).then(res => { + this.getXmsg(); + this.$message.success('鍒犻櫎鎴愬姛锛�') + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堝垹闄�' + }); + }) + } + }, + watch: { + // 鐩戝惉鐐瑰嚮el-tree鐨勬暟鎹紝杩涜鏁版嵁鍒锋柊 + clickNodeVal(newVal) { + if (newVal.value) { + this.getTableList(newVal.value); + } + }, + } +} + +function downloadImage(url,name) { + const link = document.createElement('a'); + link.href = url; + link.download = name; // 鏂囦欢鍚� + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); } </script> - <style scoped> +.dialog-content { + max-height: 70vh; /* 璁剧疆鏈�澶ч珮搴� */ + overflow-y: auto; /* 鍚敤鍨傜洿婊氬姩 */ +} +.tables { + width: 100%; + height: calc(100vh - 230px); +} + +.search { + background-color: #fff; + height: 40px; + display: flex; + align-items: center; + position: relative; +} + +.search_thing { + display: flex; + align-items: center; + height: 40px; +} + +.search_label { + width: 70px; + font-size: 14px; + text-align: right; + margin-right: 10px; +} + +.search_input { + width: calc(100% - 110px); +} + +.btns { + text-align: right; +} + +h4 { + font-weight: 400; + font-size: 16px; + display: flex; + justify-content: space-between; + margin: 10px 0; +} + +h4 .line { + display: inline-block; + width: 3px; + height: 16px; + background: #3A7BFA; + margin-right: 4px; +} + +.check { + background-color: #fff; + display: flex; + flex-wrap: wrap; + justify-content: space-between; +} + +.check_thing { + flex: 0 0 calc(20% - 10px); + margin-bottom: 20px; + display: flex; + flex-direction: column; + align-items: flex-start; +} + +.check_label { + font-size: 14px; + margin-bottom: 5px; +} + +.check_data .check_input { + width: 100%; +} + +.el-table { + font-size: 14px; + color: #333; +} + +.el-table thead { + background-color: #f5f5f5; +} </style> -- Gitblit v1.9.3