浏览代码

前端 新增模块
1.系统指令信息
2.诊断结果
3.预测结果
4.产品树信息
5.分析过程日志

wanggaokun 1 年之前
父节点
当前提交
73012c2053

+ 44 - 0
PHM-web/src/api/manage/diagnoseResult.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询诊断结果列表
+export function listDiagnoseResult(query) {
+  return request({
+    url: '/manage/diagnoseResult/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询诊断结果详细
+export function getDiagnoseResult(id) {
+  return request({
+    url: '/manage/diagnoseResult/' + id,
+    method: 'get'
+  })
+}
+
+// 新增诊断结果
+export function addDiagnoseResult(data) {
+  return request({
+    url: '/manage/diagnoseResult',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改诊断结果
+export function updateDiagnoseResult(data) {
+  return request({
+    url: '/manage/diagnoseResult',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除诊断结果
+export function delDiagnoseResult(id) {
+  return request({
+    url: '/manage/diagnoseResult/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/forecastResult.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询预测结果列表
+export function listForecastResult(query) {
+  return request({
+    url: '/manage/forecastResult/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询预测结果详细
+export function getForecastResult(id) {
+  return request({
+    url: '/manage/forecastResult/' + id,
+    method: 'get'
+  })
+}
+
+// 新增预测结果
+export function addForecastResult(data) {
+  return request({
+    url: '/manage/forecastResult',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改预测结果
+export function updateForecastResult(data) {
+  return request({
+    url: '/manage/forecastResult',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除预测结果
+export function delForecastResult(id) {
+  return request({
+    url: '/manage/forecastResult/' + id,
+    method: 'delete'
+  })
+}

+ 44 - 0
PHM-web/src/api/manage/orderInfo.js

@@ -0,0 +1,44 @@
+import request from '@/utils/request'
+
+// 查询系统指令信息列表
+export function listOrderInfo(query) {
+  return request({
+    url: '/manage/orderInfo/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询系统指令信息详细
+export function getOrderInfo(id) {
+  return request({
+    url: '/manage/orderInfo/' + id,
+    method: 'get'
+  })
+}
+
+// 新增系统指令信息
+export function addOrderInfo(data) {
+  return request({
+    url: '/manage/orderInfo',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改系统指令信息
+export function updateOrderInfo(data) {
+  return request({
+    url: '/manage/orderInfo',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除系统指令信息
+export function delOrderInfo(id) {
+  return request({
+    url: '/manage/orderInfo/' + id,
+    method: 'delete'
+  })
+}

+ 11 - 7
PHM-web/src/views/manage/analyzeCourseLog/index.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
       <el-form-item label="模块功能名称" prop="moduleName">
         <el-input
           v-model="queryParams.moduleName"
@@ -9,7 +9,6 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
-       
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -76,14 +75,14 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-hasPermi="['manage:afterAnalysisResult:edit']"
+            v-hasPermi="['manage:analyzeCourseLog:edit']"
           >修改</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-            v-hasPermi="['manage:afterAnalysisResult:remove']"
+            v-hasPermi="['manage:analyzeCourseLog:remove']"
           >删除</el-button>
         </template>
       </el-table-column>
@@ -106,7 +105,9 @@
         <el-form-item label="过程日志">
           <editor v-model="form.courseContent" :min-height="192"/>
         </el-form-item>
-          
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -149,7 +150,6 @@ export default {
         moduleType: null,
         courseContent: null,
         status: null,
-        
       },
       // 表单参数
       form: {},
@@ -187,7 +187,11 @@ export default {
         moduleType: null,
         courseContent: null,
         status: null,
-         
+        isDelete: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
       };
       this.resetForm("form");
     },

+ 326 - 0
PHM-web/src/views/manage/diagnoseResult/index.vue

@@ -0,0 +1,326 @@
+<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="faultMode">
+        <el-input
+          v-model="queryParams.faultMode"
+          placeholder="请输入故障模式"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="故障对象" prop="faultObject">
+        <el-input
+          v-model="queryParams.faultObject"
+          placeholder="请输入故障对象"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="故障编码" prop="faultCode">
+        <el-input
+          v-model="queryParams.faultCode"
+          placeholder="请输入故障编码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="故障源" prop="faultSource">
+        <el-input
+          v-model="queryParams.faultSource"
+          placeholder="请输入故障源"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="分析时间" prop="analysisTime">
+        <el-date-picker clearable
+          v-model="queryParams.analysisTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择分析时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:diagnoseResult: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:diagnoseResult:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:diagnoseResult:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:diagnoseResult:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="diagnoseResultList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="故障模式" align="center" prop="faultMode" />
+      <el-table-column label="故障对象" align="center" prop="faultObject" />
+      <el-table-column label="故障编码" align="center" prop="faultCode" />
+      <el-table-column label="故障源" align="center" prop="faultSource" />
+      <el-table-column label="分析时间" align="center" prop="analysisTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.analysisTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="批注注解" align="center" prop="comment" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:diagnoseResult:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:diagnoseResult:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改诊断结果对话框 -->
+    <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="80px">
+        <el-form-item label="故障模式" prop="faultMode">
+          <el-input v-model="form.faultMode" placeholder="请输入故障模式" />
+        </el-form-item>
+        <el-form-item label="故障对象" prop="faultObject">
+          <el-input v-model="form.faultObject" placeholder="请输入故障对象" />
+        </el-form-item>
+        <el-form-item label="故障编码" prop="faultCode">
+          <el-input v-model="form.faultCode" placeholder="请输入故障编码" />
+        </el-form-item>
+        <el-form-item label="故障源" prop="faultSource">
+          <el-input v-model="form.faultSource" placeholder="请输入故障源" />
+        </el-form-item>
+        <el-form-item label="分析时间" prop="analysisTime">
+          <el-date-picker clearable
+            v-model="form.analysisTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择分析时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="批注注解" prop="comment">
+          <el-input v-model="form.comment" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </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>
+  </div>
+</template>
+
+<script>
+import { listDiagnoseResult, getDiagnoseResult, delDiagnoseResult, addDiagnoseResult, updateDiagnoseResult } from "@/api/manage/diagnoseResult";
+
+export default {
+  name: "DiagnoseResult",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 诊断结果表格数据
+      diagnoseResultList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        faultMode: null,
+        faultObject: null,
+        faultCode: null,
+        faultSource: null,
+        analysisTime: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询诊断结果列表 */
+    getList() {
+      this.loading = true;
+      listDiagnoseResult(this.queryParams).then(response => {
+        this.diagnoseResultList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        faultMode: null,
+        faultObject: null,
+        faultCode: null,
+        faultSource: null,
+        analysisTime: null,
+        comment: null,
+        isDelete: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加诊断结果";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getDiagnoseResult(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改诊断结果";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateDiagnoseResult(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addDiagnoseResult(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除诊断结果编号为"' + ids + '"的数据项?').then(function() {
+        return delDiagnoseResult(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/diagnoseResult/export', {
+        ...this.queryParams
+      }, `diagnoseResult_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 331 - 0
PHM-web/src/views/manage/forecastResult/index.vue

@@ -0,0 +1,331 @@
+<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="unitName">
+        <el-input
+          v-model="queryParams.unitName"
+          placeholder="请输入部件名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="研究对象" prop="studyObject">
+        <el-input
+          v-model="queryParams.studyObject"
+          placeholder="请输入研究对象"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="SNS 编码" prop="snsCode">
+        <el-input
+          v-model="queryParams.snsCode"
+          placeholder="请输入SNS 编码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="分析时间" prop="analysisTime">
+        <el-date-picker clearable
+          v-model="queryParams.analysisTime"
+          type="date"
+          value-format="yyyy-MM-dd"
+          placeholder="请选择分析时间">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:forecastResult: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:forecastResult:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:forecastResult:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:forecastResult:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="forecastResultList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="部件名称" align="center" prop="unitName" />
+      <el-table-column label="研究对象" align="center" prop="studyObject" />
+      <el-table-column label="SNS 编码" align="center" prop="snsCode" />
+      <el-table-column label="预测故障" align="center" prop="forecastFault" />
+      <el-table-column label="分析时间" align="center" prop="analysisTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.analysisTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="批注注解" align="center" prop="comment" />
+      <el-table-column label="数据是否删除" align="center" prop="isDelete" />
+      <el-table-column label="创建人" align="center" prop="createBy" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updateBy" />
+      <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:forecastResult:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:forecastResult:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改预测结果对话框 -->
+    <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="80px">
+        <el-form-item label="部件名称" prop="unitName">
+          <el-input v-model="form.unitName" placeholder="请输入部件名称" />
+        </el-form-item>
+        <el-form-item label="研究对象" prop="studyObject">
+          <el-input v-model="form.studyObject" placeholder="请输入研究对象" />
+        </el-form-item>
+        <el-form-item label="SNS 编码" prop="snsCode">
+          <el-input v-model="form.snsCode" placeholder="请输入SNS 编码" />
+        </el-form-item>
+        <el-form-item label="预测故障" prop="forecastFault">
+          <el-input v-model="form.forecastFault" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="分析时间" prop="analysisTime">
+          <el-date-picker clearable
+            v-model="form.analysisTime"
+            type="date"
+            value-format="yyyy-MM-dd"
+            placeholder="请选择分析时间">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="批注注解" prop="comment">
+          <el-input v-model="form.comment" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </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>
+  </div>
+</template>
+
+<script>
+import { listForecastResult, getForecastResult, delForecastResult, addForecastResult, updateForecastResult } from "@/api/manage/forecastResult";
+
+export default {
+  name: "ForecastResult",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 预测结果表格数据
+      forecastResultList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        unitName: null,
+        studyObject: null,
+        snsCode: null,
+        forecastFault: null,
+        analysisTime: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询预测结果列表 */
+    getList() {
+      this.loading = true;
+      listForecastResult(this.queryParams).then(response => {
+        this.forecastResultList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        unitName: null,
+        studyObject: null,
+        snsCode: null,
+        forecastFault: null,
+        analysisTime: null,
+        comment: null,
+        isDelete: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加预测结果";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getForecastResult(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改预测结果";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateForecastResult(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addForecastResult(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除预测结果编号为"' + ids + '"的数据项?').then(function() {
+        return delForecastResult(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/forecastResult/export', {
+        ...this.queryParams
+      }, `forecastResult_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 296 - 0
PHM-web/src/views/manage/orderInfo/index.vue

@@ -0,0 +1,296 @@
+<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="orderName">
+        <el-input
+          v-model="queryParams.orderName"
+          placeholder="请输入指令名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="指令类型" prop="orderType">
+        <el-input
+          v-model="queryParams.orderType"
+          placeholder="请输入指令类型"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="参数内容:JSON格式" prop="content">
+        <el-input
+          v-model="queryParams.content"
+          placeholder="请输入参数内容:JSON格式"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:orderInfo: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:orderInfo:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:orderInfo:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:orderInfo:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="orderInfoList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="指令名称" align="center" prop="orderName" />
+      <el-table-column label="指令类型" align="center" prop="orderType" />
+      <el-table-column label="参数内容:JSON格式" align="center" prop="content" />
+      <el-table-column label="创建人" align="center" prop="createBy" />
+      <el-table-column label="创建时间" align="center" prop="createTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="更新人" align="center" prop="updateBy" />
+      <el-table-column label="更新时间" align="center" prop="updateTime" width="180">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.updateTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:orderInfo:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:orderInfo:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改系统指令信息对话框 -->
+    <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="80px">
+        <el-form-item label="指令名称" prop="orderName">
+          <el-input v-model="form.orderName" placeholder="请输入指令名称" />
+        </el-form-item>
+        <el-form-item label="指令类型" prop="orderType">
+          <el-input v-model="form.orderType" placeholder="请输入指令类型" />
+        </el-form-item>
+        <el-form-item label="参数内容:JSON格式" prop="content">
+          <el-input v-model="form.content" placeholder="请输入参数内容:JSON格式" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </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>
+  </div>
+</template>
+
+<script>
+import { listOrderInfo, getOrderInfo, delOrderInfo, addOrderInfo, updateOrderInfo } from "@/api/manage/orderInfo";
+
+export default {
+  name: "OrderInfo",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 系统指令信息表格数据
+      orderInfoList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        orderName: null,
+        orderType: null,
+        content: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询系统指令信息列表 */
+    getList() {
+      this.loading = true;
+      listOrderInfo(this.queryParams).then(response => {
+        this.orderInfoList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        orderName: null,
+        orderType: null,
+        content: null,
+        isDelete: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      };
+      this.resetForm("form");
+    },
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加系统指令信息";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getOrderInfo(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改系统指令信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateOrderInfo(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addOrderInfo(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除系统指令信息编号为"' + ids + '"的数据项?').then(function() {
+        return delOrderInfo(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/orderInfo/export', {
+        ...this.queryParams
+      }, `orderInfo_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 276 - 456
PHM-web/src/views/manage/product/index.vue

@@ -1,468 +1,288 @@
 <template>
-    <div class="app-container">
-      <el-row :gutter="20">
-        <!--部门数据-->
-        <el-col :span="4" :xs="24">
-          <div class="head-container">
-            <el-input
-              v-model="deptName"
-              placeholder="请输入产品树名称"
-              clearable
-              size="small"
-              prefix-icon="el-icon-search"
-              style="margin-bottom: 20px"
-            />
-          </div>
-          <div class="head-container">
-            <el-tree
-              :data="productOptions"
-              :props="defaultProps"
-              :expand-on-click-node="false"
-              :filter-node-method="filterNode"
-              ref="tree"
-              node-key="id"
-              default-expand-all
-              highlight-current
-              @node-click="handleNodeClick"
-            />
-          </div>
-        </el-col>
-        <!--用户数据-->
-        <el-col :span="20" :xs="24">
-          <el-row :gutter="10" class="mb8">
-            <el-col :span="1.5">
-              <el-button
-                type="primary"
-                plain
-                icon="el-icon-plus"
-                size="mini"
-                @click="handleAdd"
-                v-hasPermi="['system:user: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="['system:user:edit']"
-              >修改</el-button>
-            </el-col>
-            <el-col :span="1.5">
-              <el-button
-                type="danger"
-                plain
-                icon="el-icon-delete"
-                size="mini"
-                :disabled="multiple"
-                @click="handleDelete"
-                v-hasPermi="['system:user:remove']"
-              >删除</el-button>
-            </el-col>
-            <el-col :span="1.5">
-              <el-button
-                type="info"
-                plain
-                icon="el-icon-upload2"
-                size="mini"
-                @click="handleImport"
-                v-hasPermi="['system:user:import']"
-              >导入</el-button>
-            </el-col>
-            <el-col :span="1.5">
-              <el-button
-                type="warning"
-                plain
-                icon="el-icon-download"
-                size="mini"
-                @click="handleExport"
-                v-hasPermi="['system:user:export']"
-              >导出</el-button>
-            </el-col>
-            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
-          </el-row>
-  
-          <el-table v-loading="loading" :data="productList" @selection-change="handleSelectionChange">
-            <el-table-column type="selection" width="50" align="center" />
-            <el-table-column :label="formColumn.snsId" align="center" key="snsId" prop="snsId" v-if="columns[0].visible" />
-            <el-table-column :label="formColumn.name" align="center" key="name" prop="name" v-if="columns[1].visible" :show-overflow-tooltip="true" />
-            <el-table-column :label="formColumn.parentId" align="center" key="parentId" prop="parentId" v-if="columns[2].visible" :show-overflow-tooltip="true" />
-              <el-table-column
-              label="操作"
-              align="center"
-              width="160"
-              class-name="small-padding fixed-width"
-            >
-              <template slot-scope="scope" v-if="scope.row.userId !== 1">
-                <el-button
-                  size="mini"
-                  type="text"
-                  icon="el-icon-edit"
-                  @click="handleUpdate(scope.row)"
-                  v-hasPermi="['system:user:edit']"
-                >修改</el-button>
-                <el-button
-                  size="mini"
-                  type="text"
-                  icon="el-icon-delete"
-                  @click="handleDelete(scope.row)"
-                  v-hasPermi="['system:user:remove']"
-                >删除</el-button>
-              </template>
-              </el-table-column>
-            </el-table>
-  
-          <pagination
-            v-show="total>0"
-            :total="total"
-            :page.sync="queryParams.pageNum"
-            :limit.sync="queryParams.pageSize"
-            @pagination="getList"
-          />
-        </el-col>
-      </el-row>
-  
-      <!-- 添加或修改用户配置对话框 -->
-      <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
-        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-            <el-form-item label="父ID" prop="parentId">
-              <treeselect v-model="form.parentId" :options="productOptions" :normalizer="normalizer" placeholder="请选择父ID" />
-            </el-form-item>
-            <el-form-item label="产品名称" prop="name">
-              <el-input v-model="form.name" placeholder="请输入产品名称" />
-            </el-form-item>
-            <el-form-item label="SNS编号" prop="snsId">
-              <el-input v-model="form.snsId" placeholder="请输入SNS编号" />
-            </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" 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 { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user";
-  import { listProduct, getProduct, delProduct, addProduct, updateProduct } from "@/api/manage/product";
-  import { getToken } from "@/utils/auth";
-  import Treeselect from "@riophae/vue-treeselect";
-  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+  <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="parentName">
+        <el-input
+          v-model="queryParams.parentName"
+          placeholder="请输入归属"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="名称" prop="name">
+        <el-input
+          v-model="queryParams.name"
+          placeholder="请输入名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="SNS编号" prop="snsId">
+        <el-input
+          v-model="queryParams.snsId"
+          placeholder="请输入SNS编号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
 
-  const columnss = {
-    1: {
-      name: '系统名称1',
-      snsId: 'SNS编号1',
-      parentId: '归属平台型号'
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['manage:product: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:product:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['manage:product:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['manage:product:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="productList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="唯一ID" align="center" prop="id" />
+      <el-table-column label="归属" align="center" prop="parentName" />
+      <el-table-column label="名称" align="center" prop="name" />
+      <el-table-column label="SNS编号" align="center" prop="snsId" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['manage:product:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['manage:product:remove']"
+          >删除</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    
+    <pagination
+      v-show="total>0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+
+    <!-- 添加或修改产品树信息对话框 -->
+    <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="80px">
+        <el-form-item label="父ID" prop="parentId">
+          <el-input v-model="form.parentId" placeholder="请输入父ID" />
+        </el-form-item>
+        <el-form-item label="名称" prop="name">
+          <el-input v-model="form.name" placeholder="请输入名称" />
+        </el-form-item>
+        <el-form-item label="SNS编号" prop="snsId">
+          <el-input v-model="form.snsId" placeholder="请输入SNS编号" />
+        </el-form-item>
+        <el-form-item label="数据是否删除" prop="isDelete">
+          <el-input v-model="form.isDelete" placeholder="请输入数据是否删除" />
+        </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>
+  </div>
+</template>
+
+<script>
+import { listProduct, getProduct, delProduct, addProduct, updateProduct } from "@/api/manage/product";
+
+export default {
+  name: "Product",
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 产品树信息表格数据
+      productList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        parentName: null,
+        name: null,
+        snsId: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        parentId: [
+          { required: true, message: "父ID不能为空", trigger: "blur" }
+        ],
+        isDelete: [
+          { required: true, message: "数据是否删除不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询产品树信息列表 */
+    getList() {
+      this.loading = true;
+      listProduct(this.queryParams).then(response => {
+        this.productList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
     },
-    2:{
-      name: '分/子系统名称',
-      snsId: 'SNS编号',
-      parentId: '归属系统'
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
     },
-    3:{
-      name: '部件名称',
-      snsId: 'SNS编号',
-      parentId: '归属分/子系统'
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        parentId: null,
+        parentName: null,
+        name: null,
+        snsId: null,
+        isDelete: null,
+        createBy: null,
+        createTime: null,
+        updateBy: null,
+        updateTime: null
+      };
+      this.resetForm("form");
     },
-    4:{
-      name: 'LRU名称',
-      snsId: 'SNS编号',
-      parentId: '归属部件'
+    /** 搜索按钮操作 */
+    handleQuery() {
+      this.queryParams.pageNum = 1;
+      this.getList();
     },
-  }
-  export default {
-    name: "User",
-    dicts: ['sys_normal_disable', 'sys_user_sex'],
-    components: { Treeselect },
-    data() {
-      return {
-        formColumn: {
-          name: '系统名称',
-          snsId: 'SNS编号',
-          parentId: '归属平台型号'
-        },
-        // 遮罩层
-        loading: true,
-        // 选中数组
-        ids: [],
-        // 非单个禁用
-        single: true,
-        // 非多个禁用
-        multiple: true,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        // 产品树表格数据
-        productList: null,
-        // 弹出层标题
-        title: "",
-        // 产品树选项
-        productOptions: undefined,
-        // 是否显示弹出层
-        open: false,
-        // 部门名称
-        deptName: undefined,
-        // 默认密码
-        initPassword: undefined,
-        // 日期范围
-        dateRange: [],
-        // 岗位选项
-        postOptions: [],
-        // 角色选项
-        roleOptions: [],
-        // 表单参数
-        form: {},
-        defaultProps: {
-          children: "children",
-          label: "name"
-        },
-        
-        // 列信息
-        columns: [
-          { key: 0, visible: true },
-          { key: 1, visible: true },
-          { key: 2, visible: true },
-        ],
-        // 用户导入参数
-        upload: {
-          // 是否显示弹出层(用户导入)
-          open: false,
-          // 弹出层标题(用户导入)
-          title: "",
-          // 是否禁用上传
-          isUploading: false,
-          // 是否更新已经存在的用户数据
-          updateSupport: 0,
-          // 设置上传的请求头部
-          headers: { Authorization: "Bearer " + getToken() },
-          // 上传的地址
-          url: process.env.VUE_APP_BASE_API + "/system/user/importData"
-        },
-        // 查询参数
-        queryParams: {
-          snsId:null,
-          name: null,
-          parentId:null
-        },
-        // 表单校验
-        rules: {
-            parentId: [
-              { required: true, message: "父ID不能为空", trigger: "blur" }
-            ],
-            name: [
-              { required: true, message: "产品名称不能为空", trigger: "blur" }
-            ],
-            isDelete: [
-              { required: true, message: "数据是否删除不能为空", trigger: "blur" }
-            ],
-        }
-      };
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.handleQuery();
     },
-    watch: {
-      // 根据名称筛选部门树
-      deptName(val) {
-        this.$refs.tree.filter(val);
-      }
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map(item => item.id)
+      this.single = selection.length!==1
+      this.multiple = !selection.length
     },
-    created() {
-      this.getList();
-      this.getTreeselect();
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加产品树信息";
     },
-    methods: {
-      /** 查询产品树信息列表 */
-      getList() {
-        this.loading = true;
-        listProduct(this.queryParams).then(response => {
-            this.productList=response.data
-          this.loading = false;
-        });
-      },
-    /** 查询产品树信息下拉树结构 */
-    getTreeselect() {
-        listProduct().then(response => {
-          this.productOptions = [];
-          const data = { id: 0, name: '顶级节点', children: [] };
-          data.children = this.handleTree(response.data, "id", "parentId");
-            this.productOptions.push(data);
-        });
-      },
-      /** 转换产品树信息数据结构 */
-      normalizer(node) {
-        if (node.children && !node.children.length) {
-          delete node.children;
-        }
-        return {
-          id: node.id,
-          label: node.name,
-          children: node.children
-        };
-      },
-      // 筛选节点
-      filterNode(value, data) {
-        if (!value) return true;
-        return data.name.indexOf(value) !== -1;
-      },
-      // 节点单击事件
-      handleNodeClick(data) {
-        let i = 1
-        this.formColumn = columnss[i]
-        this.loading = false;
-        getProduct(data.id).then(response => {
-          this.productList=[response.data]
-          this.loading = false;
-        });
-      },
-      // 取消按钮
-      cancel() {
-        this.open = false;
-        this.reset();
-      },
-      // 表单重置
-      reset() {
-        this.form = {
-          parentId: null,
-          name: null,
-          snsId: null,
-        };
-        this.resetForm("form");
-      },
-      // 多选框选中数据
-      handleSelectionChange(selection) {
-        this.ids = selection.map(item => item.id);
-        this.single = selection.length != 1;
-        this.multiple = !selection.length;
-      },
-      // 更多操作触发
-      handleCommand(command, row) {
-        switch (command) {
-          case "handleResetPwd":
-            this.handleResetPwd(row);
-            break;
-          case "handleAuthRole":
-            this.handleAuthRole(row);
-            break;
-          default:
-            break;
-        }
-      },
-      /** 新增按钮操作 */
-      handleAdd() {
-        this.reset();
-        getUser().then(response => {
-          this.postOptions = response.posts;
-          this.roleOptions = response.roles;
-          this.open = true;
-          this.title = "添加用户";
-          this.form.password = this.initPassword;
-        });
-      },
-      /** 修改按钮操作 */
-      handleUpdate(row) {
-        const Id = row.id || this.ids;
-        getProduct(Id).then(response => {
-          this.form = response.data;
-          this.open = true;
-          this.title = "修改产品树信息";
-        });
-      },
-      /** 提交按钮 */
-      submitForm() {
-        this.$refs["form"].validate(valid => {
-          if (valid) {
-            if (this.form.id != null) {
-              updateProduct(this.form).then(response => {
-                this.$modal.msgSuccess("修改成功");
-                this.open = false;
-                this.getList();
-              });
-            } else {
-              addProduct(this.form).then(response => {
-                this.$modal.msgSuccess("新增成功");
-                this.open = false;
-                this.getList();
-              });
-            }
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getProduct(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改产品树信息";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updateProduct(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addProduct(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
           }
-        });
-      },
-      /** 删除按钮操作 */
-      handleDelete(row) {
-        const productIds = row.id || this.ids;
-        this.$modal.confirm('是否确认删除产品树信息编号为"' + productIds + '"的数据项?').then(function() {
-          return delProduct(row.id);
-        }).then(() => {
-          this.getList();
-          this.$modal.msgSuccess("删除成功");
-        }).catch(() => {});
-      },
-      /** 导出按钮操作 */
-      handleExport() {
-        this.download('manage/product/export', {
-          ...this.queryParams
-        }, `user_${new Date().getTime()}.xlsx`)
-      },
-      /** 导入按钮操作 */
-      handleImport() {
-        this.upload.title = "产品树导入";
-        this.upload.open = true;
-      },
-      /** 下载模板操作 */
-      importTemplate() {
-        this.download('system/user/importTemplate', {
-        }, `user_template_${new Date().getTime()}.xlsx`)
-      },
-      // 文件上传中处理
-      handleFileUploadProgress(event, file, fileList) {
-        this.upload.isUploading = true;
-      },
-      // 文件上传成功处理
-      handleFileSuccess(response, file, fileList) {
-        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 });
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除产品树信息编号为"' + ids + '"的数据项?').then(function() {
+        return delProduct(ids);
+      }).then(() => {
         this.getList();
-      },
-      // 提交上传文件
-      submitFileForm() {
-        this.$refs.upload.submit();
-      }
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('manage/product/export', {
+        ...this.queryParams
+      }, `product_${new Date().getTime()}.xlsx`)
     }
-  };
-  </script>
+  }
+};
+</script>