Переглянути джерело

增加试验信息的功能

dongjh 1 рік тому
батько
коміт
2306a60253

+ 8 - 1
src/api/api.js

@@ -2,10 +2,14 @@ import { getAction, deleteAction, putAction, postAction, httpAction } from '@/ap
 import Vue from 'vue'
 import {UI_CACHE_DB_DICT_DATA } from "@/store/mutation-types"
 
-//固安
+//大屏参数
 const addDashParam = (params)=>postAction("/guan/dashboardparam/add",params);
 const editDashParam = (params)=>putAction("/guan/dashboardparam/edit",params);
 
+//测试信息
+const addGuanTest = (params)=>postAction("/guan/test/add",params);
+const editGuanTest = (params)=>putAction("/guan/test/edit",params);
+
 //角色管理
 const addRole = (params)=>postAction("/sys/role/add",params);
 const editRole = (params)=>putAction("/sys/role/edit",params);
@@ -107,6 +111,9 @@ export {
   addDashParam,
   editDashParam,
 
+  addGuanTest,
+  editGuanTest,
+
   addRole,
   editRole,
   checkRoleCode,

+ 1 - 1
src/views/modules_guAn/dashboardparam/index.vue

@@ -62,7 +62,7 @@
   import Vue from 'vue'
 
   export default {
-    name: "edit",
+    name: "dashboardparam",
     mixins:[JeecgListMixin],
     components: {DashParamModal},
     data() {

+ 202 - 0
src/views/modules_guAn/guantest/index.vue

@@ -0,0 +1,202 @@
+<template>
+  <a-card :bordered="false">
+
+    <!-- 左侧面板 -->
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline" @keyup.enter.native="searchQuery">
+        <a-row :gutter="12">
+          <a-col :md="7" :sm="8">
+            <a-form-item label="参数名称" :labelCol="{span: 6}" :wrapperCol="{span: 14, offset: 1}">
+              <a-input placeholder="请输入参数名称" v-model="queryParam.paramName"></a-input>
+            </a-form-item>
+          </a-col>
+          <a-col :md="7" :sm="8">
+            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
+              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
+              <a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
+            </span>
+          </a-col>
+        </a-row>
+      </a-form>
+
+      <div class="table-operator" style="border-top: 5px">
+        <a-button @click="handleAdd" type="primary" icon="plus">添加</a-button>
+        <a-button type="primary" icon="download" @click="handleExportXls('大屏参数设置信息')">导出</a-button>
+        <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
+          <a-button type="primary" icon="import">导入</a-button>
+        </a-upload>
+      </div>
+
+      <a-table
+        ref="table"
+        rowKey="id"
+        size="middle"
+        :columns="columns"
+        :dataSource="dataSource"
+        :pagination="ipagination"
+        :loading="loading"
+        @change="handleTableChange">
+        <span slot="action" slot-scope="text, record">
+          <a @click="handleEdit(record)">
+            <a-icon type="edit"/>
+            编辑
+          </a>
+          <a-divider type="vertical"/>
+          <a-popconfirm title="确定删除吗?" @confirm="() =>handleDelete(record.id)">
+            <a>删除</a>
+          </a-popconfirm>
+        </span>
+      </a-table>
+
+    </div>
+    <dash-param-modal ref="modalForm" @ok="modalFormOk"></dash-param-modal>  <!-- 编辑 -->
+  </a-card>
+</template>
+
+<script>
+  import { filterObj } from '@/utils/util';
+  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+  import GuanTestModal from './testmodal'
+  import { getAction } from '@/api/manage'
+  import { UI_CACHE_DB_DICT_DATA } from "@/store/mutation-types"
+  import Vue from 'vue'
+
+  export default {
+    name: "guantest",
+    mixins:[JeecgListMixin],
+    components: {DashParamModal},
+    data() {
+      return {
+        description: '这是大屏展示参数页面',
+        visible: false,
+        // 查询条件
+        queryParam: {
+          paramName: "",
+        },
+        // 表头
+        columns: [
+          {
+            title: '#',
+            dataIndex: '',
+            key: 'rowIndex',
+            width: 120,
+            align: "center",
+            customRender: function (t, r, index) {
+              return parseInt(index) + 1;
+            }
+          },
+          {
+            title: '大屏参数名称',
+            align: "left",
+            dataIndex: 'paramName',
+          },
+          {
+            title: 'webaccess点名',
+            align: "left",
+            dataIndex: 'tagName',
+          },
+          {
+            title: '是否启用',
+            align: "center",
+            dataIndex: 'status',
+            customRender: function (text) {
+              if (text == "0") {
+                return "禁用";
+              } else if (text == "1") {
+                return "启用";
+              }
+              else {
+                return text;
+              }
+            }
+          },
+          {
+            title: '是否获取历史记录',
+            align: "center",
+            dataIndex: 'iflog',
+            customRender: function (text) {
+              if (text == "Y") {
+                return "是";
+              } else if (text == "N") {
+                return "否";
+              }
+              else {
+                return text;
+              }
+            }
+          },
+          // {
+          //   title: '获取历史记录条数',
+          //   align: "left",
+          //   dataIndex: 'records',
+          // },
+          {
+            title: '获取历史记录时长(H)',
+            align: "left",
+            dataIndex: 'duration',
+          },
+          {
+            title: '操作',
+            dataIndex: 'action',
+            align: "center",
+            scopedSlots: {customRender: 'action'},
+          }
+        ],
+        dict: "",
+        labelCol: {
+          xs: {span: 8},
+          sm: {span: 5},
+        },
+        wrapperCol: {
+          xs: {span: 16},
+          sm: {span: 19},
+        },
+        url: {
+          list: "/guan/test/list",
+          delete: "/guan/test/delete",
+          exportXlsUrl: "/guan/test/exportXls",
+          importExcelUrl: "/guan/test/importExcel",
+        },
+      }
+    },
+    computed: {
+      importExcelUrl: function () {
+        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+      }
+    },
+    methods: {
+      getQueryParams() {
+        var param = Object.assign({}, this.queryParam, this.isorter);
+        param.field = this.getQueryField();
+        param.pageNo = this.ipagination.current;
+        param.pageSize = this.ipagination.pageSize;
+        if (this.superQueryParams) {
+          param['superQueryParams'] = encodeURI(this.superQueryParams)
+          param['superQueryMatchType'] = this.superQueryMatchType
+        }
+        return filterObj(param);
+      },
+    add() {
+      this.edit(this.modelDefault)
+    },
+    edit(record) {
+      this.model = Object.assign({}, record)
+      this.visible = true
+    },
+      // 重置字典类型搜索框的内容
+      searchReset() {
+        var that = this;
+        that.queryParam.paramName = "";
+        that.loadData(this.ipagination.current);
+      },
+    },
+    watch: {
+      // openKeys(val) {
+      //   console.log('openKeys', val)
+      // },
+    },
+  }
+</script>
+<style scoped>
+  @import '~@assets/less/common.less'
+</style>

+ 200 - 0
src/views/modules_guAn/guantest/testmodal.vue

@@ -0,0 +1,200 @@
+<template>
+  <a-modal
+    :title="title"
+    :width="800"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    @ok="handleOk"
+    @cancel="handleCancel"
+    cancelText="关闭"
+  >
+    <a-spin :spinning="confirmLoading">
+      <a-form-model  ref="form" :model="model" :rules="validatorRules">
+
+        <a-form-model-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="paramName"
+          label="大屏参数名称">
+          <a-input placeholder="请输入大屏参数名称" v-model="model.paramName"/>
+        </a-form-model-item>
+
+        <a-form-model-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="tagName"
+          label="webaccess点名">
+          <a-input placeholder="请输入webaccess点名" v-model="model.tagName" />
+        </a-form-model-item>
+
+        <a-form-model-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="状态"
+          hasFeedback>
+            <a-select placeholder="请选择" default-value="1" v-model="model.status">
+              <a-select-option value="1">启用</a-select-option>
+              <a-select-option value="0">禁用</a-select-option>
+            </a-select>
+        </a-form-model-item>
+
+        <a-form-model-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          label="是否获取历史记录"
+          hasFeedback>
+            <a-select placeholder="请选择" default-value="N" v-model="model.iflog">
+              <a-select-option value="Y">是</a-select-option>
+              <a-select-option value="N">否</a-select-option>
+            </a-select>
+        </a-form-model-item>
+
+        <!-- <a-form-model-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="records"
+          v-if="model.iflog=='Y'"
+          label="获取历史记录条数">
+          <a-input-number placeholder="获取历史记录条数" v-model="model.records" />
+        </a-form-model-item> -->
+
+        <a-form-model-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="duration"
+          v-if="model.iflog=='Y'"
+          label="获取历史记录时长(H)">
+          <a-input-number placeholder="获取历史记录时长(H)" v-model="model.duration" />
+        </a-form-model-item>
+
+        <a-form-model-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="intervals"
+          v-if="model.iflog=='Y'"
+          label="每笔数据之间隔时间">
+          <a-input-number placeholder="每笔数据之间隔时间" v-model="model.intervals" />
+          <a-select placeholder="请选择时间单位" default-value="M" style="width:100px;" v-model="model.intervaltype">
+            <!-- <a-select-option value="S">秒</a-select-option> -->
+            <a-select-option value="M">分</a-select-option>
+            <!-- <a-select-option value="H">时</a-select-option>
+            <a-select-option value="D">日</a-select-option> -->
+          </a-select>
+        </a-form-model-item>
+
+        <a-form-model-item
+          :labelCol="labelCol"
+          :wrapperCol="wrapperCol"
+          prop="datatype"
+          v-if="model.iflog=='Y'"
+          label="数据型态">
+          <a-select placeholder="请选择数据型态" default-value="0" v-model="model.datatype">
+            <a-select-option value="0">最后值</a-select-option>
+            <a-select-option value="1">最小值</a-select-option>
+            <a-select-option value="2">最大值</a-select-option>
+            <a-select-option value="3">平均值</a-select-option>
+          </a-select>
+        </a-form-model-item>
+
+      </a-form-model>
+    </a-spin>
+  </a-modal>
+</template>
+
+<script>
+  import pick from 'lodash.pick'
+  import {addGuanTest, editGuanTest} from '@/api/api'
+  import { getAction } from '@api/manage'
+
+  export default {
+    name: "GuanTestModal",
+    data() {
+      return {
+        title: "操作",
+        visible: false,
+        // visibleCheck: true,
+        model: {},
+        status: 1,
+        labelCol: {
+          xs: {span: 24},
+          sm: {span: 5},
+        },
+        wrapperCol: {
+          xs: {span: 24},
+          sm: {span: 16},
+        },
+        confirmLoading: false,
+        validatorRules: {
+          paramName:  [{required: true, message: '请输入大屏参数名称!'}],
+          tagName:  [{required: true, message: '请输入webaccess点名!'}],
+        },
+      }
+    },
+    created() {
+    },
+    methods: {
+      add() {
+        //初始化默认值
+        this.edit({iflog:"N",status:"1"});
+      },
+      edit(record) {
+        // this.status = record.status;
+        // this.visibleCheck = (record.status == 1) ? true : false;
+        this.model = Object.assign({}, record);
+        console.log(this.model)
+        // this.model.status = this.status;
+        this.visible = true
+      },
+    //   onChose(checked) {
+    //     // if (checked) {
+    //     //   this.status = 1;
+    //     //   this.visibleCheck = true;
+    //     // } else {
+    //     //   this.status = 0;
+    //     //   this.visibleCheck = false;
+    //     // }
+    //   },
+      // 确定
+      handleOk() {
+        const that = this;
+        // 触发表单验证
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            that.confirmLoading = true;
+            if (this.model.iflog=='N') {
+              this.model.records=0;
+            }
+            let obj;
+            if (!this.model.id) {
+              obj = addDashParam(this.model);
+            } else {
+              obj = editDashParam(this.model);
+            }
+            obj.then((res) => {
+              if (res.success) {
+                that.$message.success(res.message);
+                that.$emit('ok');
+              } else {
+                that.$message.warning(res.message);
+              }
+            }).finally(() => {
+              that.confirmLoading = false;
+              that.close();
+            })
+          }else{
+            return false;
+          }
+        })
+      },
+      // 关闭
+      handleCancel() {
+        this.close();
+      },
+      close() {
+        this.$emit('close');
+        this.visible = false;
+        this.$refs.form.resetFields();
+      },
+    }
+  }
+</script>