ソースを参照

裂解炉炉管测压H109-H130

wangggziwen 1 年間 前
コミット
cd173a3c0b

+ 823 - 0
ui/src/views/production/pressure/H109.vue

@@ -0,0 +1,823 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+        <!--<el-button-->
+          <!--type="info"-->
+          <!--icon="el-icon-upload2"-->
+          <!--size="mini"-->
+          <!--@click="handleImport"-->
+          <!--v-hasPermi="['production:pressure:edit']"-->
+        <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+        <!--<el-button-->
+          <!--type="warning"-->
+          <!--icon="el-icon-download"-->
+          <!--size="mini"-->
+          <!--@click="handleExport"-->
+          <!--v-hasPermi="['production:pressure:export']"-->
+        <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口左" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="((index+1).toString()).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS1出口右" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口左" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口右" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口左" align="center" prop="pass5" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口右" align="center" prop="pass6" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口左" align="center" prop="pass7" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口右" align="center" prop="pass8" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口左" align="center" prop="pass9" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass9[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass9[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口右" align="center" prop="pass10" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass10[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass10[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口左" align="center" prop="pass11" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass11[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass11[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口右" align="center" prop="pass12" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass12[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass12[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口左" align="center" prop="pass13" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass13[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass13[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口右" align="center" prop="pass14" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass14[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass14[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口左" align="center" prop="pass15" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass15[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass15[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口右" align="center" prop="pass16" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass16[14] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 14" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass16[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口左" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass1[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS1出口右" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass2[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口左" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass3[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口右" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass4[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口左" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass5[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass5[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口右" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass6[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass6[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口左" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass7[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass7[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口右" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass8[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass8[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口左" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass9[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass9[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口右" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass10[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass10[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口左" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass11[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass11[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口右" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass12[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass12[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口左" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass13[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass13[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口右" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass14[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass14[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口左" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass15[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass15[index]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口右" direction="vertical" :column="5" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass16[14]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 14" :label="(index+1).toString()">
+          <el-input v-model="pass16[index]"/>
+        </el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H109";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+            if (response.rows[i].pass9 == null) { response.rows[i].pass9 = []; } else { response.rows[i].pass9 = response.rows[i].pass9.split(','); }
+            if (response.rows[i].pass10 == null) { response.rows[i].pass10 = []; } else { response.rows[i].pass10 = response.rows[i].pass10.split(','); }
+            if (response.rows[i].pass11 == null) { response.rows[i].pass11 = []; } else { response.rows[i].pass11 = response.rows[i].pass11.split(','); }
+            if (response.rows[i].pass12 == null) { response.rows[i].pass12 = []; } else { response.rows[i].pass12 = response.rows[i].pass12.split(','); }
+            if (response.rows[i].pass13 == null) { response.rows[i].pass13 = []; } else { response.rows[i].pass13 = response.rows[i].pass13.split(','); }
+            if (response.rows[i].pass14 == null) { response.rows[i].pass14 = []; } else { response.rows[i].pass14 = response.rows[i].pass14.split(','); }
+            if (response.rows[i].pass15 == null) { response.rows[i].pass15 = []; } else { response.rows[i].pass15 = response.rows[i].pass15.split(','); }
+            if (response.rows[i].pass16 == null) { response.rows[i].pass16 = []; } else { response.rows[i].pass16 = response.rows[i].pass16.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H109";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          if (response.data.pass9 == null) { this.pass9 = []; } else { this.pass9 = response.data.pass9.split(','); }
+          if (response.data.pass10 == null) { this.pass10 = []; } else { this.pass10 = response.data.pass10.split(','); }
+          if (response.data.pass11 == null) { this.pass11 = []; } else { this.pass11 = response.data.pass11.split(','); }
+          if (response.data.pass12 == null) { this.pass12 = []; } else { this.pass12 = response.data.pass12.split(','); }
+          if (response.data.pass13 == null) { this.pass13 = []; } else { this.pass13 = response.data.pass13.split(','); }
+          if (response.data.pass14 == null) { this.pass14 = []; } else { this.pass14 = response.data.pass14.split(','); }
+          if (response.data.pass15 == null) { this.pass15 = []; } else { this.pass15 = response.data.pass15.split(','); }
+          if (response.data.pass16 == null) { this.pass16 = []; } else { this.pass16 = response.data.pass16.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 655 - 0
ui/src/views/production/pressure/H110.vue

@@ -0,0 +1,655 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+        <!--<el-button-->
+          <!--type="info"-->
+          <!--icon="el-icon-upload2"-->
+          <!--size="mini"-->
+          <!--@click="handleImport"-->
+          <!--v-hasPermi="['production:pressure:edit']"-->
+        <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+        <!--<el-button-->
+          <!--type="warning"-->
+          <!--icon="el-icon-download"-->
+          <!--size="mini"-->
+          <!--@click="handleExport"-->
+          <!--v-hasPermi="['production:pressure:export']"-->
+        <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="((index+1).toString()).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口" align="center" prop="pass5" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口" align="center" prop="pass6" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口" align="center" prop="pass7" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口" align="center" prop="pass8" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass1[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass2[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass3[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass4[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass5[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass5[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass6[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass6[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass7[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass7[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass8[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass8[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H110";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H110";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 655 - 0
ui/src/views/production/pressure/H111.vue

@@ -0,0 +1,655 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="info"-->
+      <!--icon="el-icon-upload2"-->
+      <!--size="mini"-->
+      <!--@click="handleImport"-->
+      <!--v-hasPermi="['production:pressure:edit']"-->
+      <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="warning"-->
+      <!--icon="el-icon-download"-->
+      <!--size="mini"-->
+      <!--@click="handleExport"-->
+      <!--v-hasPermi="['production:pressure:export']"-->
+      <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="((index+1).toString()).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口" align="center" prop="pass5" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口" align="center" prop="pass6" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口" align="center" prop="pass7" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口" align="center" prop="pass8" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass1[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass2[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass3[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass4[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass5[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass5[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass6[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass6[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass7[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass7[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass8[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass8[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H111";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H111";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 655 - 0
ui/src/views/production/pressure/H112.vue

@@ -0,0 +1,655 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="info"-->
+      <!--icon="el-icon-upload2"-->
+      <!--size="mini"-->
+      <!--@click="handleImport"-->
+      <!--v-hasPermi="['production:pressure:edit']"-->
+      <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="warning"-->
+      <!--icon="el-icon-download"-->
+      <!--size="mini"-->
+      <!--@click="handleExport"-->
+      <!--v-hasPermi="['production:pressure:export']"-->
+      <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="((index+1).toString()).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口" align="center" prop="pass5" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口" align="center" prop="pass6" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口" align="center" prop="pass7" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口" align="center" prop="pass8" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass1[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass2[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass3[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass4[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass5[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass5[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass6[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass6[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass7[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass7[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass8[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass8[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H112";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H112";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 655 - 0
ui/src/views/production/pressure/H113.vue

@@ -0,0 +1,655 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="info"-->
+      <!--icon="el-icon-upload2"-->
+      <!--size="mini"-->
+      <!--@click="handleImport"-->
+      <!--v-hasPermi="['production:pressure:edit']"-->
+      <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="warning"-->
+      <!--icon="el-icon-download"-->
+      <!--size="mini"-->
+      <!--@click="handleExport"-->
+      <!--v-hasPermi="['production:pressure:export']"-->
+      <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="((index+1).toString()).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口" align="center" prop="pass5" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口" align="center" prop="pass6" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口" align="center" prop="pass7" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口" align="center" prop="pass8" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass1[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass2[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass3[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass4[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass5[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass5[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass6[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass6[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass7[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass7[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass8[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass8[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H113";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H113";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 655 - 0
ui/src/views/production/pressure/H114.vue

@@ -0,0 +1,655 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="info"-->
+      <!--icon="el-icon-upload2"-->
+      <!--size="mini"-->
+      <!--@click="handleImport"-->
+      <!--v-hasPermi="['production:pressure:edit']"-->
+      <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="warning"-->
+      <!--icon="el-icon-download"-->
+      <!--size="mini"-->
+      <!--@click="handleExport"-->
+      <!--v-hasPermi="['production:pressure:export']"-->
+      <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="((index+1).toString()).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口" align="center" prop="pass5" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口" align="center" prop="pass6" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口" align="center" prop="pass7" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口" align="center" prop="pass8" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass1[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass2[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass3[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass4[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass5[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass5[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass6[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass6[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass7[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass7[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass8[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass8[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H114";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H114";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 655 - 0
ui/src/views/production/pressure/H115.vue

@@ -0,0 +1,655 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="info"-->
+      <!--icon="el-icon-upload2"-->
+      <!--size="mini"-->
+      <!--@click="handleImport"-->
+      <!--v-hasPermi="['production:pressure:edit']"-->
+      <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="warning"-->
+      <!--icon="el-icon-download"-->
+      <!--size="mini"-->
+      <!--@click="handleExport"-->
+      <!--v-hasPermi="['production:pressure:export']"-->
+      <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="((index+1).toString()).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口" align="center" prop="pass5" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口" align="center" prop="pass6" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口" align="center" prop="pass7" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口" align="center" prop="pass8" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass1[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass2[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass3[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass4[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass5[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass5[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass6[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass6[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass7[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass7[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass8[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass8[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H115";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H115";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 655 - 0
ui/src/views/production/pressure/H116.vue

@@ -0,0 +1,655 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="info"-->
+      <!--icon="el-icon-upload2"-->
+      <!--size="mini"-->
+      <!--@click="handleImport"-->
+      <!--v-hasPermi="['production:pressure:edit']"-->
+      <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="warning"-->
+      <!--icon="el-icon-download"-->
+      <!--size="mini"-->
+      <!--@click="handleExport"-->
+      <!--v-hasPermi="['production:pressure:export']"-->
+      <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="((index+1).toString()).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口" align="center" prop="pass5" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口" align="center" prop="pass6" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口" align="center" prop="pass7" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口" align="center" prop="pass8" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass1[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass2[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass3[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass4[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass5[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass5[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass6[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass6[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass7[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass7[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass8[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass8[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H116";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H116";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 655 - 0
ui/src/views/production/pressure/H117.vue

@@ -0,0 +1,655 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="info"-->
+      <!--icon="el-icon-upload2"-->
+      <!--size="mini"-->
+      <!--@click="handleImport"-->
+      <!--v-hasPermi="['production:pressure:edit']"-->
+      <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="warning"-->
+      <!--icon="el-icon-download"-->
+      <!--size="mini"-->
+      <!--@click="handleExport"-->
+      <!--v-hasPermi="['production:pressure:export']"-->
+      <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="((index+1).toString()).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口" align="center" prop="pass5" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口" align="center" prop="pass6" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口" align="center" prop="pass7" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口" align="center" prop="pass8" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass1[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass2[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass3[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass4[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass5[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass5[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass6[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass6[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass7[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass7[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass8[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass8[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H117";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H117";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 655 - 0
ui/src/views/production/pressure/H118.vue

@@ -0,0 +1,655 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="info"-->
+      <!--icon="el-icon-upload2"-->
+      <!--size="mini"-->
+      <!--@click="handleImport"-->
+      <!--v-hasPermi="['production:pressure:edit']"-->
+      <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="warning"-->
+      <!--icon="el-icon-download"-->
+      <!--size="mini"-->
+      <!--@click="handleExport"-->
+      <!--v-hasPermi="['production:pressure:export']"-->
+      <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="((index+1).toString()).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS5出口" align="center" prop="pass5" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass5[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS6出口" align="center" prop="pass6" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass6[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS7出口" align="center" prop="pass7" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass7[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS8出口" align="center" prop="pass8" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[10] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass8[index] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass1[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass2[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass3[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass4[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS5出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass5[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass5[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS6出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass6[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass6[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS7出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass7[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass7[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS8出口" direction="vertical" :column="6" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass8[10]"/>
+        </el-descriptions-item>
+        <el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">
+          <el-input v-model="pass8[index]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label=""></el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H118";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H118";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 727 - 0
ui/src/views/production/pressure/H130.vue

@@ -0,0 +1,727 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="巡检日期" prop="recordTime">
+        <el-date-picker
+          v-model="queryParams.recordTime"
+          type="month"
+          value-format="yyyy-MM"
+          placeholder="选择巡检日期">
+        </el-date-picker>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="cyan" 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"
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['production:pressure:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['production:pressure:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['production:pressure:remove']"
+        >删除</el-button>
+      </el-col>
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="info"-->
+      <!--icon="el-icon-upload2"-->
+      <!--size="mini"-->
+      <!--@click="handleImport"-->
+      <!--v-hasPermi="['production:pressure:edit']"-->
+      <!--&gt;导入</el-button>-->
+      <!--</el-col>-->
+      <!--<el-col :span="1.5">-->
+      <!--<el-button-->
+      <!--type="warning"-->
+      <!--icon="el-icon-download"-->
+      <!--size="mini"-->
+      <!--@click="handleExport"-->
+      <!--v-hasPermi="['production:pressure:export']"-->
+      <!--&gt;导出</el-button>-->
+      <!--</el-col>-->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
+      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
+        <template slot-scope="scope">
+          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[6] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="1" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[0] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="1" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[1] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="2" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[2] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="2" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[3] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="3" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[4] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="3" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass1[5] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[6] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="4" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[0] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="4" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[1] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="5" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[2] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="5" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[3] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="6" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[4] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="6" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass2[5] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[6] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="7" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[0] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="7" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[1] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="8" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[2] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="8" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[3] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="9" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[4] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="9" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass3[5] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
+        <el-table-column label="入口" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[6] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="10" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[0] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="10" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[1] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="11" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[2] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="11" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[3] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="12" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[4] }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="12" align="center" width="60">
+          <template slot-scope="scope">
+            <span>{{ scope.row.pass4[5] }}</span>
+          </template>
+        </el-table-column>
+      </el-table-column>
+      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['production:pressure: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" width="600px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
+        <el-form-item label="裂解炉名称" prop="furnanceName">
+          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
+        </el-form-item>
+        <el-form-item label="巡检日期" prop="recordTime">
+          <el-date-picker clearable size="small" style="width: 200px"
+                          v-model="form.recordTime"
+                          type="date"
+                          value-format="yyyy-MM-dd"
+                          placeholder="选择巡检日期">
+          </el-date-picker>
+        </el-form-item>
+        <el-form-item label="归属部门" prop="deptId">
+          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
+        </el-form-item>
+      </el-form>
+      <el-descriptions title="PASS1出口" direction="vertical" :column="7" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass1[6]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="1">
+          <el-input v-model="pass1[0]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="1">
+          <el-input v-model="pass1[1]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="2">
+          <el-input v-model="pass1[2]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="2">
+          <el-input v-model="pass1[3]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="3">
+          <el-input v-model="pass1[4]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="3">
+          <el-input v-model="pass1[5]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS2出口" direction="vertical" :column="7" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass2[6]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="4">
+          <el-input v-model="pass2[0]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="4">
+          <el-input v-model="pass2[1]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="5">
+          <el-input v-model="pass2[2]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="5">
+          <el-input v-model="pass2[3]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="6">
+          <el-input v-model="pass2[4]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="6">
+          <el-input v-model="pass2[5]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS3出口" direction="vertical" :column="7" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass3[6]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="7">
+          <el-input v-model="pass3[0]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="7">
+          <el-input v-model="pass3[1]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="8">
+          <el-input v-model="pass3[2]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="8">
+          <el-input v-model="pass3[3]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="9">
+          <el-input v-model="pass3[4]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="9">
+          <el-input v-model="pass3[5]"/>
+        </el-descriptions-item>
+      </el-descriptions><br/>
+      <el-descriptions title="PASS4出口" direction="vertical" :column="7" border>
+        <el-descriptions-item label="入口">
+          <el-input v-model="pass4[6]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="10">
+          <el-input v-model="pass4[0]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="10">
+          <el-input v-model="pass4[1]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="11">
+          <el-input v-model="pass4[2]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="11">
+          <el-input v-model="pass4[3]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="12">
+          <el-input v-model="pass4[4]"/>
+        </el-descriptions-item>
+        <el-descriptions-item label="12">
+          <el-input v-model="pass4[5]"/>
+        </el-descriptions-item>
+      </el-descriptions>
+      <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" slot="tip">
+          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
+          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
+        </div>
+        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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 { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
+  import { treeselect } from "@/api/system/dept";
+  import { getToken } from "@/utils/auth";
+  import Treeselect from "@riophae/vue-treeselect";
+  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+
+  export default {
+    name: "Pressure",
+    components: { Treeselect },
+    data() {
+      return {
+        // 遮罩层
+        loading: true,
+        // 选中数组
+        ids: [],
+        // 非单个禁用
+        single: true,
+        // 非多个禁用
+        multiple: true,
+        // 显示搜索条件
+        showSearch: true,
+        // 总条数
+        total: 0,
+        // 裂解炉炉管测压表格数据
+        pressureList: [],
+        // 弹出层标题
+        title: "",
+        // 部门树选项
+        deptOptions: undefined,
+        clientHeight:300,
+        // 是否显示弹出层
+        open: false,
+        // 用户导入参数
+        upload: {
+          // 是否显示弹出层(用户导入)
+          open: false,
+          // 弹出层标题(用户导入)
+          title: "",
+          // 是否禁用上传
+          isUploading: false,
+          // 是否更新已经存在的用户数据
+          updateSupport: 0,
+          // 设置上传的请求头部
+          headers: { Authorization: "Bearer " + getToken() },
+          // 上传的地址
+          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
+        },
+        // 查询参数
+        queryParams: {
+          pageNum: 1,
+          pageSize: 20,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+        },
+        recordTime: null,
+        // 表单参数
+        form: {},
+        pass1:[],
+        pass2:[],
+        pass3:[],
+        pass4:[],
+        pass5:[],
+        pass6:[],
+        pass7:[],
+        pass8:[],
+        pass9:[],
+        pass10:[],
+        pass11:[],
+        pass12:[],
+        pass13:[],
+        pass14:[],
+        pass15:[],
+        pass16:[],
+        // 表单校验
+        rules: {
+          id: [
+            { required: true, message: "主键id不能为空", trigger: "blur" }
+          ],
+        }
+      };
+    },
+    watch: {
+      // 根据名称筛选部门树
+      deptName(val) {
+        this.$refs.tree.filter(val);
+      }
+    },
+    created() {
+      //设置表格高度对应屏幕高度
+      this.$nextTick(() => {
+        this.clientHeight = document.body.clientHeight -250
+      })
+      this.getList();
+      this.getTreeselect();
+    },
+    methods: {
+      /** 查询裂解炉炉管测压列表 */
+      getList() {
+        this.loading = true;
+        this.queryParams.furnanceName = "H130";
+        console.log(this.queryParams)
+        listPressure(this.queryParams).then(response => {
+          for (let i = 0; i< response.rows.length; i++) {
+            if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
+            if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
+            if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
+            if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
+            if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
+            if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
+            if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
+            if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
+          }
+          this.pressureList = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        });
+      },
+      /** 查询部门下拉树结构 */
+      getTreeselect() {
+        treeselect().then(response => {
+          this.deptOptions = response.data;
+        });
+      },
+      // 取消按钮
+      cancel() {
+        this.open = false;
+        this.reset();
+      },
+      // 表单重置
+      reset() {
+        this.form = {
+          id: null,
+          furnanceName: null,
+          recordTime: null,
+          pass1: null,
+          pass2: null,
+          pass3: null,
+          pass4: null,
+          pass5: null,
+          pass6: null,
+          pass7: null,
+          pass8: null,
+          pass9: null,
+          pass10: null,
+          pass11: null,
+          pass12: null,
+          pass13: null,
+          pass14: null,
+          pass15: null,
+          pass16: null,
+          deptId: null,
+          delFlag: null,
+          createBy: null,
+          createTime: null,
+          updateBy: null,
+          updateTime: null,
+        };
+        this.pass1 = [];
+        this.pass2 = [];
+        this.pass3 = [];
+        this.pass4 = [];
+        this.pass5 = [];
+        this.pass6 = [];
+        this.pass7 = [];
+        this.pass8 = [];
+        this.pass9 = [];
+        this.pass10 = [];
+        this.pass11 = [];
+        this.pass12 = [];
+        this.pass13 = [];
+        this.pass14 = [];
+        this.pass15 = [];
+        this.pass16 = [];
+        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.form.furnanceName = "H130";
+        this.open = true;
+        this.title = "添加裂解炉炉管测压";
+      },
+      /** 修改按钮操作 */
+      handleUpdate(row) {
+        this.reset();
+        const id = row.id || this.ids
+        getPressure(id).then(response => {
+          this.form = response.data;
+          if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
+          if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
+          if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
+          if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
+          if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
+          if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
+          if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
+          if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
+          this.open = true;
+          this.title = "修改裂解炉炉管测压";
+        });
+      },
+      /** 提交按钮 */
+      submitForm() {
+        this.form.pass1 = this.pass1.join(",");
+        this.form.pass2 = this.pass2.join(",");
+        this.form.pass3 = this.pass3.join(",");
+        this.form.pass4 = this.pass4.join(",");
+        this.form.pass5 = this.pass5.join(",");
+        this.form.pass6 = this.pass6.join(",");
+        this.form.pass7 = this.pass7.join(",");
+        this.form.pass8 = this.pass8.join(",");
+        this.form.pass9 = this.pass9.join(",");
+        this.form.pass10 = this.pass10.join(",");
+        this.form.pass11 = this.pass11.join(",");
+        this.form.pass12 = this.pass12.join(",");
+        this.form.pass13 = this.pass13.join(",");
+        this.form.pass14 = this.pass14.join(",");
+        this.form.pass15 = this.pass15.join(",");
+        this.form.pass16 = this.pass16.join(",");
+        this.$refs["form"].validate(valid => {
+          if (valid) {
+            if (this.form.id != null) {
+              updatePressure(this.form).then(response => {
+                this.msgSuccess("修改成功");
+                this.open = false;
+                this.getList();
+              });
+            } else {
+              addPressure(this.form).then(response => {
+                this.msgSuccess("新增成功");
+                this.open = false;
+                this.getList();
+              });
+            }
+          }
+        });
+      },
+      /** 删除按钮操作 */
+      handleDelete(row) {
+        const ids = row.id || this.ids;
+        this.$confirm('是否确认删除?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return delPressure(ids);
+        }).then(() => {
+          this.getList();
+          this.msgSuccess("删除成功");
+        })
+      },
+      /** 导出按钮操作 */
+      handleExport() {
+        const queryParams = this.queryParams;
+        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
+          confirmButtonText: "确定",
+          cancelButtonText: "取消",
+          type: "warning"
+        }).then(function() {
+          return exportPressure(queryParams);
+        }).then(response => {
+          this.download(response.msg);
+        })
+      },
+      /** 导入按钮操作 */
+      handleImport() {
+        this.upload.title = "用户导入";
+        this.upload.open = true;
+      },
+      /** 下载模板操作 */
+      importTemplate() {
+        importTemplate().then(response => {
+          this.download(response.msg);
+        });
+      },
+      // 文件上传中处理
+      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
+        this.getList();
+      },
+      // 提交上传文件
+      submitFileForm() {
+        this.$refs.upload.submit();
+      }
+    }
+  };
+</script>

+ 33 - 468
ui/src/views/production/pressure/index.vue

@@ -1,481 +1,46 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="巡检日期" prop="recordTime">
-        <el-date-picker clearable size="small" style="width: 200px"
-                        v-model="queryParams.recordTime"
-                        type="date"
-                        value-format="yyyy-MM-dd"
-                        placeholder="选择巡检日期">
-        </el-date-picker>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="cyan" 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"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['production:pressure:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['production:pressure:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['production:pressure:remove']"
-        >删除</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="info"
-          icon="el-icon-upload2"
-          size="mini"
-          @click="handleImport"
-          v-hasPermi="['production:pressure:edit']"
-        >导入</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['production:pressure:export']"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
-      <el-table-column label="巡检日期" align="center" prop="recordTime" width="100">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="PASS1" align="center" prop="pass1" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS2" align="center" prop="pass2" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS3" align="center" prop="pass3" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS4" align="center" prop="pass4" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS5" align="center" prop="pass5" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS6" align="center" prop="pass6" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS7" align="center" prop="pass7" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS8" align="center" prop="pass8" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS9" align="center" prop="pass9" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS10" align="center" prop="pass10" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS11" align="center" prop="pass11" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS12" align="center" prop="pass12" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS13" align="center" prop="pass13" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS14" align="center" prop="pass14" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS15" align="center" prop="pass15" :show-overflow-tooltip="true"/>
-      <el-table-column label="PASS16" align="center" prop="pass16" :show-overflow-tooltip="true"/>
-      <el-table-column label="操作" align="center" fixed="right" width="120" 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="['production:pressure:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['production:pressure: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" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="裂解炉名称" prop="furnanceName">
-          <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" />
-        </el-form-item>
-        <el-form-item label="巡检日期" prop="recordTime">
-          <el-date-picker clearable size="small" style="width: 200px"
-                          v-model="form.recordTime"
-                          type="date"
-                          value-format="yyyy-MM-dd"
-                          placeholder="选择巡检日期">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="PASS1" prop="pass1">
-          <el-input v-model="form.pass1" placeholder="请输入PASS1" />
-        </el-form-item>
-        <el-form-item label="PASS2" prop="pass2">
-          <el-input v-model="form.pass2" placeholder="请输入PASS2" />
-        </el-form-item>
-        <el-form-item label="PASS3" prop="pass3">
-          <el-input v-model="form.pass3" placeholder="请输入PASS3" />
-        </el-form-item>
-        <el-form-item label="PASS4" prop="pass4">
-          <el-input v-model="form.pass4" placeholder="请输入PASS4" />
-        </el-form-item>
-        <el-form-item label="PASS5" prop="pass5">
-          <el-input v-model="form.pass5" placeholder="请输入PASS5" />
-        </el-form-item>
-        <el-form-item label="PASS6" prop="pass6">
-          <el-input v-model="form.pass6" placeholder="请输入PASS6" />
-        </el-form-item>
-        <el-form-item label="PASS7" prop="pass7">
-          <el-input v-model="form.pass7" placeholder="请输入PASS7" />
-        </el-form-item>
-        <el-form-item label="PASS8" prop="pass8">
-          <el-input v-model="form.pass8" placeholder="请输入PASS8" />
-        </el-form-item>
-        <el-form-item label="PASS9" prop="pass9">
-          <el-input v-model="form.pass9" placeholder="请输入PASS9" />
-        </el-form-item>
-        <el-form-item label="PASS10" prop="pass10">
-          <el-input v-model="form.pass10" placeholder="请输入PASS10" />
-        </el-form-item>
-        <el-form-item label="PASS11" prop="pass11">
-          <el-input v-model="form.pass11" placeholder="请输入PASS11" />
-        </el-form-item>
-        <el-form-item label="PASS12" prop="pass12">
-          <el-input v-model="form.pass12" placeholder="请输入PASS12" />
-        </el-form-item>
-        <el-form-item label="PASS13" prop="pass13">
-          <el-input v-model="form.pass13" placeholder="请输入PASS13" />
-        </el-form-item>
-        <el-form-item label="PASS14" prop="pass14">
-          <el-input v-model="form.pass14" placeholder="请输入PASS14" />
-        </el-form-item>
-        <el-form-item label="PASS15" prop="pass15">
-          <el-input v-model="form.pass15" placeholder="请输入PASS15" />
-        </el-form-item>
-        <el-form-item label="PASS16" prop="pass16">
-          <el-input v-model="form.pass16" placeholder="请输入PASS16" />
-        </el-form-item>
-        <el-form-item label="归属部门" prop="deptId">
-          <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" 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>
-    <!-- 用户导入对话框 -->
-    <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" slot="tip">
-          <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
-          <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
-        </div>
-        <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</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>
+    <el-tabs :tab-position="tabPosition">
+      <el-tab-pane label="H109"><H109></H109></el-tab-pane>
+      <el-tab-pane label="H110"><H110></H110></el-tab-pane>
+      <el-tab-pane label="H111"><H111></H111></el-tab-pane>
+      <el-tab-pane label="H112"><H112></H112></el-tab-pane>
+      <el-tab-pane label="H113"><H113></H113></el-tab-pane>
+      <el-tab-pane label="H114"><H114></H114></el-tab-pane>
+      <el-tab-pane label="H115"><H115></H115></el-tab-pane>
+      <el-tab-pane label="H116"><H116></H116></el-tab-pane>
+      <el-tab-pane label="H117"><H117></H117></el-tab-pane>
+      <el-tab-pane label="H118"><H118></H118></el-tab-pane>
+      <el-tab-pane label="H130"><H130></H130></el-tab-pane>
+      <el-tab-pane label="COIL">COIL</el-tab-pane>
+      <el-tab-pane label="MAX">MAX</el-tab-pane>
+    </el-tabs>
   </div>
 </template>
 
 <script>
-  import { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
-  import { treeselect } from "@/api/system/dept";
-  import { getToken } from "@/utils/auth";
-  import Treeselect from "@riophae/vue-treeselect";
-  import "@riophae/vue-treeselect/dist/vue-treeselect.css";
-
+  import H109 from "./H109"
+  import H110 from "./H110"
+  import H111 from "./H111"
+  import H112 from "./H112"
+  import H113 from "./H113"
+  import H114 from "./H114"
+  import H115 from "./H115"
+  import H116 from "./H116"
+  import H117 from "./H117"
+  import H118 from "./H118"
+  import H130 from "./H130"
   export default {
     name: "Pressure",
-    components: { Treeselect },
+    components: { H109, H110, H111, H112, H113, H114, H115, H116, H117, H118, H130 },
     data() {
       return {
-        // 遮罩层
-        loading: true,
-        // 选中数组
-        ids: [],
-        // 非单个禁用
-        single: true,
-        // 非多个禁用
-        multiple: true,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        // 裂解炉炉管测压表格数据
-        pressureList: [],
-        // 弹出层标题
-        title: "",
-        // 部门树选项
-        deptOptions: undefined,
-        clientHeight:300,
-        // 是否显示弹出层
-        open: false,
-        // 用户导入参数
-        upload: {
-          // 是否显示弹出层(用户导入)
-          open: false,
-          // 弹出层标题(用户导入)
-          title: "",
-          // 是否禁用上传
-          isUploading: false,
-          // 是否更新已经存在的用户数据
-          updateSupport: 0,
-          // 设置上传的请求头部
-          headers: { Authorization: "Bearer " + getToken() },
-          // 上传的地址
-          url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
-        },
-        // 查询参数
-        queryParams: {
-          pageNum: 1,
-          pageSize: 20,
-          furnanceName: null,
-          recordTime: null,
-          pass1: null,
-          pass2: null,
-          pass3: null,
-          pass4: null,
-          pass5: null,
-          pass6: null,
-          pass7: null,
-          pass8: null,
-          pass9: null,
-          pass10: null,
-          pass11: null,
-          pass12: null,
-          pass13: null,
-          pass14: null,
-          pass15: null,
-          pass16: null,
-          deptId: null,
-        },
-        // 表单参数
-        form: {},
-        // 表单校验
-        rules: {
-          id: [
-            { required: true, message: "主键id不能为空", trigger: "blur" }
-          ],
-        }
+        tabPosition: 'left'
       };
-    },
-    watch: {
-      // 根据名称筛选部门树
-      deptName(val) {
-        this.$refs.tree.filter(val);
-      }
-    },
-    created() {
-      //设置表格高度对应屏幕高度
-      this.$nextTick(() => {
-        this.clientHeight = document.body.clientHeight -250
-      })
-      this.getList();
-      this.getTreeselect();
-    },
-    methods: {
-      /** 查询裂解炉炉管测压列表 */
-      getList() {
-        this.loading = true;
-        listPressure(this.queryParams).then(response => {
-          this.pressureList = response.rows;
-          this.total = response.total;
-          this.loading = false;
-        });
-      },
-      /** 查询部门下拉树结构 */
-      getTreeselect() {
-        treeselect().then(response => {
-          this.deptOptions = response.data;
-        });
-      },
-      // 取消按钮
-      cancel() {
-        this.open = false;
-        this.reset();
-      },
-      // 表单重置
-      reset() {
-        this.form = {
-          id: null,
-          furnanceName: null,
-          recordTime: null,
-          pass1: null,
-          pass2: null,
-          pass3: null,
-          pass4: null,
-          pass5: null,
-          pass6: null,
-          pass7: null,
-          pass8: null,
-          pass9: null,
-          pass10: null,
-          pass11: null,
-          pass12: null,
-          pass13: null,
-          pass14: null,
-          pass15: null,
-          pass16: null,
-          deptId: null,
-          delFlag: 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
-        getPressure(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) {
-              updatePressure(this.form).then(response => {
-                this.msgSuccess("修改成功");
-                this.open = false;
-                this.getList();
-              });
-            } else {
-              addPressure(this.form).then(response => {
-                this.msgSuccess("新增成功");
-                this.open = false;
-                this.getList();
-              });
-            }
-          }
-        });
-      },
-      /** 删除按钮操作 */
-      handleDelete(row) {
-        const ids = row.id || this.ids;
-        this.$confirm('是否确认删除?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return delPressure(ids);
-        }).then(() => {
-          this.getList();
-          this.msgSuccess("删除成功");
-        })
-      },
-      /** 导出按钮操作 */
-      handleExport() {
-        const queryParams = this.queryParams;
-        this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return exportPressure(queryParams);
-        }).then(response => {
-          this.download(response.msg);
-        })
-      },
-      /** 导入按钮操作 */
-      handleImport() {
-        this.upload.title = "用户导入";
-        this.upload.open = true;
-      },
-      /** 下载模板操作 */
-      importTemplate() {
-        importTemplate().then(response => {
-          this.download(response.msg);
-        });
-      },
-      // 文件上传中处理
-      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(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
-        this.getList();
-      },
-      // 提交上传文件
-      submitFileForm() {
-        this.$refs.upload.submit();
-      }
     }
-  };
+  }
 </script>
+
+<style scoped>
+
+</style>