瀏覽代碼

设备台账第一次提交(前)

sx 11 月之前
父節點
當前提交
19a12caac6

+ 1 - 1
ems-ui/.env.78

@@ -8,7 +8,7 @@ ENV = 'development'
 VUE_APP_BASE_API = '/dev-api'
 
 # 网关路由
-EMS_REWRITE_URL = '78/ems'
+EMS_REWRITE_URL = '124/ems'
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 2 - 1
ems-ui/package.json

@@ -5,9 +5,9 @@
   "author": "若依",
   "license": "MIT",
   "scripts": {
-    "dev": "vue-cli-service serve",
     "74": "vue-cli-service serve --mode 74",
     "78": "vue-cli-service serve --mode 78",
+    "dev": "vue-cli-service serve",
     "build:prod": "vue-cli-service build",
     "build:stage": "vue-cli-service build --mode staging",
     "preview": "node build/index.js --preview",
@@ -61,6 +61,7 @@
     "vue-cropper": "0.5.5",
     "vue-meta": "2.4.0",
     "vue-router": "3.4.9",
+    "vue-select": "^3.20.3",
     "vuedraggable": "2.24.3",
     "vuex": "3.6.0"
   },

+ 45 - 0
ems-ui/src/api/device/rbook.js

@@ -0,0 +1,45 @@
+import request from '@/utils/request'
+
+// 查询设备台账列表
+export function listRbook(query) {
+  return request({
+    url: '/ems/device/rbook/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询设备台账详细
+export function getRbook(id) {
+  return request({
+    url: '/ems/device/rbook/' + id,
+    method: 'get'
+
+  })
+}
+
+// 新增设备台账
+export function addRbook(data) {
+  return request({
+    url: '/ems/device/rbook',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改设备台账
+export function updateRbook(data) {
+  return request({
+    url: '/ems/device/rbook',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除设备台账
+export function delRbook(id) {
+  return request({
+    url: '/ems/device/rbook/' + id,
+    method: 'delete'
+  })
+}

+ 2 - 1
ems-ui/src/views/basecfg/area/index.vue

@@ -101,7 +101,7 @@
         </template>
       </el-table-column>
     </el-table>
-
+<!--分页-->
     <pagination
       v-show="total>0"
       :total="total"
@@ -173,6 +173,7 @@
 </template>
 
 <script>
+//引入后端api接口
 import { listArea, getArea, delArea, addArea, updateArea } from "@/api/basecfg/area";
 
 export default {

+ 1 - 0
ems-ui/src/views/basecfg/meterdevc/index.vue

@@ -443,6 +443,7 @@ export default {
       if (objType === 1) {
         areaTreeSelectByCode('Area', this.form.areaCode).then(response => {
           this.objCodeOptions = response.data;
+
         });
       } else if (objType === 2) {
         devTreeByFacs(this.form.areaCode).then(response =>{

+ 431 - 0
ems-ui/src/views/devmgr/el/index.vue

@@ -0,0 +1,431 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+      <el-form-item label="记录编号" prop="recordCode">
+        <el-input
+          v-model="queryParams.recordCode"
+          placeholder="请输入记录编号"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="对象类型" prop="objType">
+        <el-select v-model="queryParams.objType" placeholder="请选择对象类型" clearable>
+          <el-option
+            v-for="dict in dict.type.device_type"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item label="对象代码" prop="objCode">
+        <el-input
+          v-model="queryParams.objCode"
+          placeholder="请输入对象代码"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="对象名称" prop="objName">
+        <el-input
+          v-model="queryParams.objName"
+          placeholder="请输入对象名称"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="维护标题" prop="maintainTitle">
+        <el-input
+          v-model="queryParams.maintainTitle"
+          placeholder="请输入维护标题"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item label="维护人" prop="maintainPerson">
+        <el-input
+          v-model="queryParams.maintainPerson"
+          placeholder="请输入维护人"
+          clearable
+          @keyup.enter.native="handleQuery"
+        />
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+      </el-form-item>
+    </el-form>
+
+    <el-row :gutter="10" class="mb8">
+      <el-col :span="1.5">
+        <el-button
+          type="primary"
+          plain
+          icon="el-icon-plus"
+          size="mini"
+          @click="handleAdd"
+          v-hasPermi="['ems:rbook:add']"
+        >新增</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="success"
+          plain
+          icon="el-icon-edit"
+          size="mini"
+          :disabled="single"
+          @click="handleUpdate"
+          v-hasPermi="['ems:rbook:edit']"
+        >修改</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="danger"
+          plain
+          icon="el-icon-delete"
+          size="mini"
+          :disabled="multiple"
+          @click="handleDelete"
+          v-hasPermi="['ems:rbook:remove']"
+        >删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button
+          type="warning"
+          plain
+          icon="el-icon-download"
+          size="mini"
+          @click="handleExport"
+          v-hasPermi="['ems:rbook:export']"
+        >导出</el-button>
+      </el-col>
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="rbookList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="序号" align="center" prop="id" />
+      <el-table-column label="记录编号" align="center" prop="recordCode" />
+      <el-table-column label="对象类型" align="center" prop="objType">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.device_type" :value="scope.row.objType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="对象代码" align="center" prop="objCode" />
+      <el-table-column label="对象名称" align="center" prop="objName" />
+      <el-table-column label="安装位置" align="center" prop="insLocation" />
+      <el-table-column label="维护标题" align="center" prop="maintainTitle" />
+      <el-table-column label="维护内容" align="center" prop="maintainContent" />
+      <el-table-column label="维护人" align="center" prop="maintainPerson" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleUpdate(scope.row)"
+            v-hasPermi="['ems:rbook:edit']"
+          >修改</el-button>
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            @click="handleDelete(scope.row)"
+            v-hasPermi="['ems:rbook: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="recordCode">
+          <el-input v-model="form.recordCode" placeholder="请输入记录编号" />
+        </el-form-item>
+        <el-form-item label="对象类型" prop="objType">
+          <el-select v-model="form.objType" placeholder="请选择对象类型" @change="changeObjOptions" >
+            <el-option
+              v-for="dict in dict.type.device_type"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="对象代码" prop="objCode" >
+          <el-select v-model="form.objCode" placeholder="请输入对象代码" @change="handleSelect"  >
+            <el-option
+              v-for="item in AllCode"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="对象名称" prop="objName" >
+          <el-input v-model="form.objName" placeholder="请输入对象名称" />
+        </el-form-item>
+        <el-form-item label="安装位置" prop="insLocation">
+          <el-input v-model="form.insLocation" placeholder="请输入安装位置" />
+        </el-form-item>
+        <el-form-item label="维护标题" prop="maintainTitle">
+          <el-input v-model="form.maintainTitle" placeholder="请输入维护标题" />
+        </el-form-item>
+        <el-form-item label="维护内容">
+          <editor v-model="form.maintainContent" :min-height="192"/>
+        </el-form-item>
+        <el-form-item label="维护人" prop="maintainPerson">
+          <el-input v-model="form.maintainPerson" placeholder="请输入维护人" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listRbook, getRbook, delRbook, addRbook, updateRbook } from "@/api/device/rbook";
+import {listFacs} from '@/api/basecfg/emsfacs'
+import { listDevRecursionByArea } from '@/api/device/device'
+export default {
+  name: "Rbook",
+  dicts: ['device_type'],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 设备台账表格数据
+      rbookList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      //能源设施全部数据
+      AllName:[],
+      AllCode:[],
+      facsLocation:'',
+      All:[],
+
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        recordCode: null,
+        objType: null,
+        objCode: null,
+        objName: null,
+        insLocation: null,
+        maintainTitle: null,
+        maintainContent: null,
+        maintainPerson: null,
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+        recordCode: [
+          { required: true, message: "记录编号不能为空", trigger: "blur" }
+        ],
+        objType: [
+          { required: true, message: "对象类型 1:设施 2:设备不能为空", trigger: "change" }
+        ],
+        objCode: [
+          { required: true, message: "对象代码不能为空", trigger: "blur" }
+        ],
+        maintainTitle: [
+          { required: true, message: "维护标题不能为空", trigger: "blur" }
+        ],
+      }
+    };
+  },
+  created() {
+    this.getList();
+  },
+  methods: {
+    /** 查询设备台账列表 */
+    getList() {
+      this.loading = true;
+      listRbook(this.queryParams).then(response => {
+        this.rbookList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        recordCode: null,
+        objType: null,
+        objCode: null,
+        objName: null,
+        insLocation: null,
+        maintainTitle: null,
+        maintainContent: null,
+        maintainPerson: null,
+        createTime: 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
+    },
+
+    handleSelect(value){
+      //获取能源设施所有信息
+      this.loading = true
+      listFacs(this.queryParams).then(response => {
+        //总条数
+        this.total = response.total
+        //循环输出
+        for (let i = 0; i <this.total ; i++) {
+          if (value === response.rows[i].facsCode){
+            this.form.objName = response.rows[i].facsName
+            this.form.insLocation=response.rows[i].refAreaName
+          }
+        }
+        this.loading = false
+      })
+
+      ///获取能源设备所有信息
+      this.loading = true
+      listDevRecursionByArea(this.queryParams).then(response => {
+        this.total = response.total
+        //循环输出
+        for (let i = 0; i <this.total ; i++) {
+          if (value === response.rows[i].deviceCode){
+            this.form.objName = response.rows[i].deviceName
+            this.form.insLocation=response.rows[i].areaPath
+          }
+        }
+        this.loading = false
+      })
+
+    },
+
+    changeObjOptions(objType) {
+      if(objType == 1){
+        //获取能源设施所有信息
+        this.loading = true
+        listFacs(this.queryParams).then(response => {
+          //总条数
+          this.total = response.total
+          this.AllCode = [];
+          //循环输出
+          for (let i = 0; i <this.total ; i++) {
+            this.AllCode.push({ value:response.rows[i].facsCode, label: response.rows[i].facsCode}); // 添加到数组
+          }
+          this.loading = false
+        })
+      }else if(objType == 0){
+        ///获取能源设备所有信息
+        this.loading = true
+        listDevRecursionByArea(this.queryParams).then(response => {
+          this.total = response.total
+          this.AllCode = [];
+          //循环输出
+          for (let i = 0; i <this.total ; i++) {
+            this.AllCode.push({ value:response.rows[i].deviceCode, label: response.rows[i].deviceCode}); // 添加到数组
+          }
+          this.loading = false
+        })
+      }
+    },
+
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加设备台账";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getRbook(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) {
+            updateRbook(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addRbook(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      this.$modal.confirm('是否确认删除设备台账编号为"' + ids + '"的数据项?').then(function() {
+        return delRbook(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => {});
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('ems/rbook/export', {
+        ...this.queryParams
+      }, `rbook_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 145 - 0
ems-ui/src/views/test/addTest.vue

@@ -0,0 +1,145 @@
+<template>
+  <div>
+    <el-row :gutter="31">
+      <el-form ref="elForm" :model="formData" :rules="rules" size="mini" label-width="78px"
+        label-position="left">
+        <el-col :span="11">
+          <el-row gutter="20">
+            <el-col :span="24">
+              <el-form-item label="设备编号" prop="field112">
+                <el-input v-model="formData.field112" placeholder="请输入设备编号" clearable
+                  :style="{width: '100%'}"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-col>
+        <el-col :span="12">
+          <el-row gutter="31">
+            <el-col :span="24">
+              <el-form-item label="设备名" prop="field116">
+                <el-select v-model="formData.field116" placeholder="请选择设备名" clearable
+                  :style="{width: '100%'}">
+                  <el-option v-for="(item, index) in field116Options" :key="index" :label="item.label"
+                    :value="item.value" :disabled="item.disabled"></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-col>
+        <el-col :span="23">
+          <el-row gutter="31">
+            <el-col :span="24">
+              <el-form-item label="供应商名" prop="field121">
+                <el-input v-model="formData.field121" placeholder="请输入供应商名" clearable
+                  :style="{width: '100%'}"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-col>
+        <el-col :span="23">
+          <el-form-item label="使用时间" prop="field123">
+            <el-time-picker v-model="formData.field123" is-range format="HH:mm:ss" value-format="HH:mm:ss"
+              :style="{width: '100%'}" start-placeholder="开始时间" end-placeholder="结束时间" range-separator="至"
+              clearable></el-time-picker>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label="所属部门" prop="field128">
+            <el-cascader v-model="formData.field128" :options="field128Options" :props="field128Props"
+              :style="{width: '100%'}" placeholder="请选择所属部门" clearable></el-cascader>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item label-width="121px" label="" prop="field122">
+            <el-button type="primary" icon="el-icon-search" size="medium"> 主要按钮 </el-button>
+          </el-form-item>
+        </el-col>
+        <el-col :span="24">
+          <el-form-item size="large">
+            <el-button type="primary" @click="submitForm">提交</el-button>
+            <el-button @click="resetForm">重置</el-button>
+          </el-form-item>
+        </el-col>
+      </el-form>
+    </el-row>
+  </div>
+</template>
+<script>
+export default {
+  components: {},
+  props: [],
+  data() {
+    return {
+      formData: {
+        field112: undefined,
+        field116: undefined,
+        field121: undefined,
+        field123: null,
+        field128: [1, 2],
+        field122: undefined,
+      },
+      rules: {
+        field112: [{
+          required: true,
+          message: '请输入设备编号',
+          trigger: 'blur'
+        }],
+        field116: [{
+          required: true,
+          message: '请选择设备名',
+          trigger: 'change'
+        }],
+        field121: [{
+          required: true,
+          message: '请输入供应商名',
+          trigger: 'blur'
+        }],
+        field123: [{
+          required: true,
+          message: '使用时间不能为空',
+          trigger: 'change'
+        }],
+        field128: [{
+          required: true,
+          type: 'array',
+          message: '请至少选择一个field128',
+          trigger: 'change'
+        }],
+      },
+      field116Options: [{
+        "label": "选项一",
+        "value": 1
+      }, {
+        "label": "选项二",
+        "value": 2
+      }],
+      field128Options: [],
+      field128Props: {
+        "multiple": false
+      },
+    }
+  },
+  computed: {},
+  watch: {},
+  created() {},
+  mounted() {},
+  methods: {
+    submitForm() {
+      this.$refs['elForm'].validate(valid => {
+        if (!valid) return
+        // TODO 提交表单
+      })
+    },
+    resetForm() {
+      this.$refs['elForm'].resetFields()
+    },
+    getField128Options() {
+      // TODO 发起请求获取数据
+      this.field128Options
+    },
+  }
+}
+
+</script>
+<style>
+</style>

+ 1 - 1
ems-ui/vue.config.js

@@ -35,7 +35,7 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://172.192.13.80:9100/`,
+        target: `http://127.0.0.1:9100/`,
         changeOrigin: true,
         pathRewrite: {
           ['^' + process.env.VUE_APP_BASE_API + '/ems']: process.env.EMS_REWRITE_URL,