|
@@ -1,6 +1,22 @@
|
|
|
<template>
|
|
|
<div class="app-container">
|
|
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
|
|
+ <el-form-item label="模型名称" prop="modelName">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.modelName"
|
|
|
+ placeholder="请输入模型名称"
|
|
|
+ clearable
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="模型Url" prop="modelUrl">
|
|
|
+ <el-input
|
|
|
+ v-model="queryParams.modelUrl"
|
|
|
+ placeholder="请输入模型Url"
|
|
|
+ clearable
|
|
|
+ @keyup.enter.native="handleQuery"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="故障代码" prop="code">
|
|
|
<el-input
|
|
|
v-model="queryParams.code"
|
|
@@ -42,17 +58,6 @@
|
|
|
v-hasPermi="['manage:falseAlarmRestrainModel:add']"
|
|
|
>新增</el-button>
|
|
|
</el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- plain
|
|
|
- icon="el-icon-edit"
|
|
|
- size="mini"
|
|
|
- :disabled="single"
|
|
|
- @click="handleUpdate"
|
|
|
- v-hasPermi="['manage:falseAlarmRestrainModel:edit']"
|
|
|
- >修改</el-button>
|
|
|
- </el-col>
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
|
type="danger"
|
|
@@ -74,12 +79,17 @@
|
|
|
v-hasPermi="['manage:falseAlarmRestrainModel:export']"
|
|
|
>导出</el-button>
|
|
|
</el-col>
|
|
|
+ <el-col :span="1.5">
|
|
|
+ <el-button type="primary" icon="el-icon-upload2" size="mini" @click="handleImport"
|
|
|
+ v-hasPermi="['manage:falseAlarmRestrainModel:export']">导入</el-button>
|
|
|
+ </el-col>
|
|
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
|
|
</el-row>
|
|
|
|
|
|
<el-table v-loading="loading" :data="falseAlarmRestrainModelList" @selection-change="handleSelectionChange">
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
-
|
|
|
+ <el-table-column label="模型名称" align="center" prop="modelName" />
|
|
|
+ <el-table-column label="模型Url" align="center" prop="modelUrl" />
|
|
|
<el-table-column label="故障代码" align="center" prop="code" />
|
|
|
<el-table-column label="抑制判据" align="center" prop="restrainCriteria" />
|
|
|
<el-table-column label="最少持续时间" align="center" prop="minDuration" />
|
|
@@ -92,14 +102,7 @@
|
|
|
icon="el-icon-edit"
|
|
|
@click="handleUpdate(scope.row)"
|
|
|
v-hasPermi="['manage:falseAlarmRestrainModel:edit']"
|
|
|
- >修改</el-button>
|
|
|
- <el-button
|
|
|
- size="mini"
|
|
|
- type="text"
|
|
|
- icon="el-icon-delete"
|
|
|
- @click="handleDelete(scope.row)"
|
|
|
- v-hasPermi="['manage:falseAlarmRestrainModel:remove']"
|
|
|
- >删除</el-button>
|
|
|
+ >编辑</el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
@@ -113,30 +116,124 @@
|
|
|
/>
|
|
|
|
|
|
<!-- 添加或修改虚警抑制模型对话框 -->
|
|
|
- <el-dialog :title="title" :visible.sync="open" :close-on-click-modal="false" width="500px" append-to-body>
|
|
|
- <el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
|
|
- <el-form-item label="故障代码" prop="code">
|
|
|
- <el-input v-model="form.code" placeholder="请输入故障代码" />
|
|
|
+ <el-dialog :title="title" class="myDialog" :visible.sync="open" width="80vw" :close-on-click-modal="false" append-to-body>
|
|
|
+ <el-divider content-position="left">模型信息</el-divider>
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="68px">
|
|
|
+ <el-row :gutter="80">
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-form-item label="模型名称" prop="modelName">
|
|
|
+ <el-input v-model="form.modelName" placeholder="请输入模型名称" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-form-item label="模型Url" prop="modelUrl">
|
|
|
+ <el-input v-model="form.modelUrl" placeholder="请输入模型Url" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="80">
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-form-item label="故障代码" prop="code">
|
|
|
+ <el-input v-model="form.code" placeholder="请输入故障代码" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10">
|
|
|
+ <el-form-item label="抑制判据" prop="restrainCriteria">
|
|
|
+ <el-input v-model="form.restrainCriteria" placeholder="请输入抑制判据" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="80">
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item label="最少持续时间" prop="minDuration" label-width="100px">
|
|
|
+ <el-input v-model="form.minDuration" placeholder="请输入最少持续时间" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="12">
|
|
|
+ <el-form-item>
|
|
|
+ <el-button @click="addModelForms" icon="el-icon-plus"></el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-form-item
|
|
|
+ v-for="(item, index) in form.modelParams"
|
|
|
+ :key="item.uniqueMark"
|
|
|
+ :prop="'modelParams.' + index + '.value'"
|
|
|
+ label-width="30px"
|
|
|
+ >
|
|
|
+ <div class="dynamicAdd">
|
|
|
+ <el-input v-model="item.key" style="width: 200px" placeholder="请输入模型属性"></el-input>
|
|
|
+ <span> ----- </span>
|
|
|
+ <el-select v-model="item.value" placeholder="请选择模型参数">
|
|
|
+ <el-option
|
|
|
+ v-for="option in options"
|
|
|
+ :key="option.value"
|
|
|
+ :label="option.label"
|
|
|
+ :value="option.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-button @click.prevent="removeModelForm(item)" icon="el-icon-minus" style="marginLeft:20px; border:none"></el-button>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="抑制判据" prop="restrainCriteria">
|
|
|
- <el-input v-model="form.restrainCriteria" placeholder="请输入抑制判据" />
|
|
|
+ <el-divider content-position="left" style="marginTop:20px;">数据信息</el-divider>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button @click="addDataForms" icon="el-icon-plus"></el-button>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="最少持续时间" prop="minDuration">
|
|
|
- <el-input v-model="form.minDuration" placeholder="请输入最少持续时间" />
|
|
|
+ <el-form-item
|
|
|
+ v-for="(item, index) in form.dataParams"
|
|
|
+ :key="item.uniqueMark"
|
|
|
+ :prop="'dataParams.' + index + '.value'"
|
|
|
+ label-width="30px"
|
|
|
+ >
|
|
|
+ <div class="dynamicAdd">
|
|
|
+ <el-input v-model="item.key" style="width: 200px" placeholder="请输入模型属性"></el-input>
|
|
|
+ <span> ----- </span>
|
|
|
+ <el-select v-model="item.value" placeholder="请选择模型参数">
|
|
|
+ <el-option
|
|
|
+ v-for="option in options"
|
|
|
+ :key="option.value"
|
|
|
+ :label="option.label"
|
|
|
+ :value="option.value">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ <el-button @click.prevent="removeDataForm(item)" icon="el-icon-minus" style="marginLeft:20px; border:none"></el-button>
|
|
|
+ </div>
|
|
|
</el-form-item>
|
|
|
-
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
|
<el-button @click="cancel">取 消</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+
|
|
|
+ <!-- 导入对话框 -->
|
|
|
+ <el-dialog :title="upload.title" :visible.sync="upload.open" :close-on-click-modal="false" width="400px" append-to-body>
|
|
|
+ <el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
|
|
|
+ :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
|
|
|
+ :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
|
|
|
+ <i class="el-icon-upload"></i>
|
|
|
+ <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
|
|
+ <div class="el-upload__tip text-center" slot="tip">
|
|
|
+ <div class="el-upload__tip" slot="tip">
|
|
|
+ <el-checkbox v-model="upload.updateSupport" />
|
|
|
+ 是否更新已经存在的虚警抑制模型
|
|
|
+ </div>
|
|
|
+ <span>仅允许导入xls、xlsx格式文件。</span>
|
|
|
+ <el-link type="primary" :underline="false" style="font-size: 12px; vertical-align: baseline"
|
|
|
+ @click="importTemplate">下载模板</el-link>
|
|
|
+ </div>
|
|
|
+ </el-upload>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitFileForm">确 定</el-button>
|
|
|
+ <el-button @click="upload.open = false">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import { listFalseAlarmRestrainModel, getFalseAlarmRestrainModel, delFalseAlarmRestrainModel, addFalseAlarmRestrainModel, updateFalseAlarmRestrainModel } from "@/api/manage/falseAlarmRestrainModel";
|
|
|
-
|
|
|
+import { getToken } from '@/utils/auth'
|
|
|
export default {
|
|
|
name: "FalseAlarmRestrainModel",
|
|
|
data() {
|
|
@@ -159,17 +256,50 @@ export default {
|
|
|
title: "",
|
|
|
// 是否显示弹出层
|
|
|
open: false,
|
|
|
+ // 架次信息参数
|
|
|
+ options: [{
|
|
|
+ value: '选项1',
|
|
|
+ label: '参数1'
|
|
|
+ }, {
|
|
|
+ value: '选项2',
|
|
|
+ label: '参数2'
|
|
|
+ }, {
|
|
|
+ value: '选项3',
|
|
|
+ label: '参数3'
|
|
|
+ }, {
|
|
|
+ value: '选项4',
|
|
|
+ label: '参数4'
|
|
|
+ }],
|
|
|
+ // 新增参数的选择框绑定值
|
|
|
+ // addParameter:null,
|
|
|
// 查询参数
|
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
|
+ modelName:null,
|
|
|
+ modelUrl:null,
|
|
|
code: null,
|
|
|
restrainCriteria: null,
|
|
|
minDuration: null,
|
|
|
-
|
|
|
+ },
|
|
|
+ upload: {
|
|
|
+ title: '',
|
|
|
+ // 是否显示弹出层
|
|
|
+ open: false,
|
|
|
+ // 是否禁用上传
|
|
|
+ isUploading: false,
|
|
|
+ // 设置上传的请求头部
|
|
|
+ headers: { Authorization: 'Bearer ' + getToken() },
|
|
|
+ // 是否更新已存在数据
|
|
|
+ updateSupport: 0,
|
|
|
+ // 上传的地址
|
|
|
+ url: process.env.VUE_APP_BASE_API + '/manage/falseAlarmRestrainModel/import',
|
|
|
},
|
|
|
// 表单参数
|
|
|
- form: {},
|
|
|
+ form: {
|
|
|
+ modelParams:[],
|
|
|
+ dataParams:[]
|
|
|
+ },
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
}
|
|
@@ -197,13 +327,52 @@ export default {
|
|
|
reset() {
|
|
|
this.form = {
|
|
|
id: null,
|
|
|
+ modelName:null,
|
|
|
+ modelUrl:null,
|
|
|
code: null,
|
|
|
restrainCriteria: null,
|
|
|
minDuration: null,
|
|
|
-
|
|
|
+ modelParams:[],
|
|
|
+ dataParams:[]
|
|
|
};
|
|
|
this.resetForm("form");
|
|
|
},
|
|
|
+ // 新增模型表单
|
|
|
+ addModelForms() {
|
|
|
+ this.form.modelParams.push({
|
|
|
+ key: '',
|
|
|
+ uniqueMark: Date.now(), //唯一标识
|
|
|
+ value:''
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 增加数据表单
|
|
|
+ addDataForms(){
|
|
|
+ this.form.dataParams.push({
|
|
|
+ key: '',
|
|
|
+ uniqueMark: Date.now(), //唯一标识
|
|
|
+ value:''
|
|
|
+ });
|
|
|
+ },
|
|
|
+ removeModelForm(item) {
|
|
|
+ var index = this.form.modelParams.indexOf(item)
|
|
|
+ if (index !== -1) {
|
|
|
+ this.form.modelParams.splice(index, 1)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ removeDataForm(item) {
|
|
|
+ var index = this.form.dataParams.indexOf(item)
|
|
|
+ if (index !== -1) {
|
|
|
+ this.form.dataParams.splice(index, 1)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 更换label的值
|
|
|
+ startEditing(item) {
|
|
|
+ console.log(item);
|
|
|
+ item.editing = true;
|
|
|
+ },
|
|
|
+ endEditing(item) {
|
|
|
+ item.editing = false;
|
|
|
+ },
|
|
|
/** 搜索按钮操作 */
|
|
|
handleQuery() {
|
|
|
this.queryParams.pageNum = 1;
|
|
@@ -247,6 +416,7 @@ export default {
|
|
|
this.getList();
|
|
|
});
|
|
|
} else {
|
|
|
+ // console.log(this.form);
|
|
|
addFalseAlarmRestrainModel(this.form).then(response => {
|
|
|
this.$modal.msgSuccess("新增成功");
|
|
|
this.open = false;
|
|
@@ -266,6 +436,44 @@ export default {
|
|
|
this.$modal.msgSuccess("删除成功");
|
|
|
}).catch(() => {});
|
|
|
},
|
|
|
+ /** 导入按钮操作 */
|
|
|
+ handleImport() {
|
|
|
+ this.upload.title = '虚警抑制模型导入'
|
|
|
+ this.upload.open = true
|
|
|
+ },
|
|
|
+ submitFileForm() {
|
|
|
+ this.$refs.upload.submit()
|
|
|
+ },
|
|
|
+ // 文件上传中处理
|
|
|
+ handleFileUploadProgress(event, file, fileList) {
|
|
|
+ this.upload.isUploading = true
|
|
|
+ },
|
|
|
+ // 文件上传成功处理
|
|
|
+ handleFileSuccess(response, file, fileList) {
|
|
|
+ if (response.code !== 200) {
|
|
|
+ this.$modal.msgError(response.msg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ this.upload.open = false
|
|
|
+ this.upload.isUploading = false
|
|
|
+ this.$refs.upload.clearFiles()
|
|
|
+ this.$alert(
|
|
|
+ "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
|
|
|
+ response.msg +
|
|
|
+ '</div>',
|
|
|
+ '导入结果',
|
|
|
+ { dangerouslyUseHTMLString: true }
|
|
|
+ )
|
|
|
+ this.getList()
|
|
|
+ },
|
|
|
+ /** 下载模板操作 */
|
|
|
+ importTemplate() {
|
|
|
+ this.download(
|
|
|
+ '/manage/falseAlarmRestrainModel/importTemplate',
|
|
|
+ {},
|
|
|
+ `falseAlarmRestrainModel_template_${new Date().getTime()}.xlsx`
|
|
|
+ )
|
|
|
+ },
|
|
|
/** 导出按钮操作 */
|
|
|
handleExport() {
|
|
|
this.download('manage/falseAlarmRestrainModel/export', {
|
|
@@ -275,3 +483,15 @@ export default {
|
|
|
}
|
|
|
};
|
|
|
</script>
|
|
|
+<style scoped lang="scss">
|
|
|
+.dynamicAdd{
|
|
|
+ display: flex;
|
|
|
+}
|
|
|
+.myDialog{
|
|
|
+ ::v-deep {
|
|
|
+ .el-dialog__body{
|
|
|
+ padding: 3px 20px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|