Browse Source

feat:新增测点配置功能,联调完成增删改查接口, 图标未修改 , 还差两个按钮跳转功能,等接口

chenxinlei 2 years ago
parent
commit
683d0ca5ab

+ 29 - 0
src/api/pointConfiguration.js

@@ -0,0 +1,29 @@
+import request from '@/utils/request'
+// 列表
+const standardpointList = (data) => {
+  return request({
+    url: `/standardpoint/list?id=${data.id}&code=${data.code}&name=${data.name}&type=${data.type}&pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
+    method: 'get',
+  })
+}
+// 添加 
+const addStandardpoint = (pairs) => {
+  return request({
+    url: `/standardpoint/add`,
+    method: 'post',
+    data: pairs,
+  })
+}
+// 删除 
+const deleteStandardpoint = (data) => {
+  return request({
+    url: `/standardpoint/${data.id}`,
+    method: 'delete',
+  })
+}
+
+export default {
+  deleteStandardpoint,
+  standardpointList,
+  addStandardpoint,
+}

+ 17 - 0
src/router/index.js

@@ -117,6 +117,23 @@ export const asyncRoutes = [
       },
     ],
   },
+  {
+    path: "/pointConfiguration",
+    component: Layout,
+    redirect: "noRedirect",
+    children: [
+      {
+        path: "pointConfiguration",
+        name: "pointConfiguration",
+        component: () => import("@/views/pointConfiguration/index"),
+        meta: {
+          title: "测点配置",
+          icon: "marker",
+          permissions: ["admin"],
+        },
+      },
+    ],
+  },
   // {
   //   path: '/personnelManagement',
   //   component: Layout,

+ 112 - 0
src/views/pointConfiguration/components/TableEdit.vue

@@ -0,0 +1,112 @@
+<template>
+  <el-dialog :title="title" :visible.sync="dialogFormVisible" width="800px" @close="close">
+    <el-form ref="form" :model="form" :rules="rules"  label-width="80px">
+      <el-form-item label="id" prop="id">
+        <el-input placeholder="请输入" class="inputs" v-model.trim="form.id" autocomplete="off" :disabled="!idAdd?true:false"></el-input>
+      </el-form-item>
+      <el-form-item label="统一编码" prop="code">
+        <el-input placeholder="请输入" class="inputs" v-model.trim="form.code" autocomplete="off"></el-input>
+      </el-form-item>
+      <el-form-item label="名称" prop="name">
+        <el-input placeholder="请输入" class="inputs" v-model.trim="form.name" autocomplete="off"></el-input>
+      </el-form-item>
+      <el-form-item label="类型" prop="type">
+        <el-select class="inputs" v-model="form.type" placeholder="请选择">
+          <el-option
+            v-for="item in typeOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value">
+          </el-option>
+        </el-select>
+      </el-form-item>
+    </el-form>
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="close">取 消</el-button>
+      <el-button type="primary" @click="save">确 定</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+import api from '@/api/pointConfiguration'
+import axios from "axios";
+export default {
+  name: 'TableEdit',
+  props: {
+    options: {
+      type: Array,
+      default: []
+    },
+  },
+  data() {
+    return {
+      typeOptions: [
+        {value: '风机计算', label:'风机计算'},
+        {value: '场站计算', label:'场站计算'},
+        {value: '风机基础点', label:'风机基础点'},
+      ],
+      form: {
+        id: '',
+        code: '',
+        name: '',
+        type: '',
+      },
+      rules: {
+        id: [{ required: true, trigger: 'blur', message: '请输入' }],
+        code: [{ required: true, trigger: 'blur', message: '请输入' }],
+        name: [{ required: true, trigger: 'blur', message: '请输入' }],
+        type: [{ required: true, trigger: 'blur', message: '请输入' }],
+      },
+      title: '',
+      dialogFormVisible: false,
+      idAdd: true,
+    }
+  },
+  created() { },
+  methods: {
+    showEdit(row) {
+      if (!row) {
+        this.title = '添加'
+        this.idAdd = true
+      } else {
+        this.title = '编辑'
+        this.idAdd = false
+        this.form = Object.assign({}, row)
+      }
+      this.dialogFormVisible = true
+    },
+    close() {
+      this.$refs['form'].resetFields()
+      this.form = this.$options.data().form
+      this.dialogFormVisible = false
+      this.$emit('fetch-data')
+    },
+    save() {
+      this.$refs['form'].validate(async (valid) => {
+        if (valid) {
+          api.addStandardpoint(this.form).then(res => {
+            if (res.data) {
+              this.$message({
+                type: 'success',
+                message: '添加成功!'
+              });
+              this.$emit('save-success');
+              this.dialogFormVisible = false
+            }
+          })
+        } else {
+          return false
+        }
+      })
+    },
+    handleChange() {
+    },
+  },
+}
+</script>
+<style lang="less" scoped>
+.inputs {
+  width: 200px;
+}
+</style>

+ 190 - 0
src/views/pointConfiguration/index.vue

@@ -0,0 +1,190 @@
+<template>
+  <div class="table-container">
+    <!-- <vab-query-form> -->
+      <!-- <vab-query-form-left-panel> -->
+        <el-form ref="form" :model="queryForm" :inline="true" @submit.native.prevent>
+          <el-form-item label="统一编码"><el-input placeholder="请输入" v-model="form.code"></el-input></el-form-item>
+          <el-form-item label="名称"><el-input placeholder="请输入" v-model="form.name"></el-input></el-form-item>
+          <el-form-item label="类型">
+            <el-select v-model="form.type" placeholder="请选择">
+              <el-option
+                v-for="item in typeOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button icon="el-icon-search" type="primary" native-type="submit" @click="fetchData">查询</el-button>
+          </el-form-item>
+          <el-form-item style="float: right;">
+            <el-button icon="el-icon-plus" type="primary" @click="handleAdd">添加</el-button>
+            <el-button icon="el-icon-delete" type="danger" @click="handleDelete">删除</el-button>
+          </el-form-item>
+        </el-form>
+      <!-- </vab-query-form-left-panel> -->
+      <!-- <vab-query-form-right-panel> -->
+        <!-- <UploadExcel style="margin-left: 10px;" @getResult="getMyExcelData"></UploadExcel>
+        <ExportExcel :exportList="exportExcel" partsName="公司"></ExportExcel> -->
+      <!-- </vab-query-form-right-panel> -->
+    <!-- </vab-query-form> -->
+    <el-table ref="tableSort" v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText"
+      :height="height" @selection-change="setSelectRows">
+      <el-table-column show-overflow-tooltip type="selection" width="55"></el-table-column>
+      <el-table-column show-overflow-tooltip label="id" prop="id" align="center" sortable></el-table-column>
+      <el-table-column show-overflow-tooltip label="统一编码" prop="code" align="center" sortable></el-table-column>
+      <el-table-column show-overflow-tooltip label="名称" prop="name" align="center" sortable></el-table-column>
+      <el-table-column show-overflow-tooltip label="类型" prop="type" align="center" sortable></el-table-column>
+      <el-table-column show-overflow-tooltip label="操作" width="260px">
+        <template #default="{ row }">
+          <el-button type="text" @click="handleEdit(row)">编辑</el-button>
+          <el-button type="text" @click="handleDelete(row)">删除</el-button>
+          <el-button type="text" @click="handleDelete(row)">设备点表配置</el-button>
+          <el-button type="text" @click="handleDelete(row)">场站点表配置</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-pagination :background="background" :current-page="queryForm.pageNo" :layout="layout"
+      :page-size="queryForm.pageSize" :total="total" @current-change="handleCurrentChange"
+      @size-change="handleSizeChange"></el-pagination>
+    <table-edit ref="edit" :options="options" @save-success="fetchData"></table-edit>
+  </div>
+</template>
+<script>
+// import UploadExcel from '@/components/UploadExcel/index'
+// import ExportExcel from '@/components/ExportExcel/index'
+import TableEdit from './components/TableEdit'
+import api from '@/api/pointConfiguration'
+export default {
+  components: {
+    // UploadExcel,
+    // ExportExcel,
+    TableEdit,
+  },
+  data() {
+    return {
+      typeOptions: [
+        {value: '风机计算', label:'风机计算'},
+        {value: '场站计算', label:'场站计算'},
+        {value: '风机基础点', label:'风机基础点'},
+      ],
+      form :{
+        code: '',
+        name: '',
+        type: '',
+      },
+      // 
+      // fuzzyQuery: '',
+      listLoading: true,
+      list: [],
+      options: [],
+      exportExcel: [],
+      elementLoadingText: '正在加载...',
+      selectRows: '',
+      layout: 'total, sizes, prev, pager, next, jumper',
+      total: 0,
+      background: true,
+      exportList: [],
+      queryForm: {
+        pageNo: 1,
+        pageSize: 20,
+      },
+    };
+  },
+  created() {
+    this.fetchData()
+  },
+  computed: {
+    height() {
+      return this.$baseTableHeight() + 50
+    },
+  },
+  methods: {
+    getMyExcelData(val) {
+      val.forEach(item => {
+        api.addCompanys(item).then(res => {
+          if (res.code == 200) {
+            this.$message({
+              type: 'success',
+              message: '添加成功!'
+            });
+            this.fetchData()
+          }
+        })
+      })
+
+    },
+    fetchData() {
+      this.listLoading = true
+      api.standardpointList({
+        id: '',
+        code: this.form.code,
+        name: this.form.name,
+        type: this.form.type,
+        pageNum: this.queryForm.pageNo,
+        pageSize: this.queryForm.pageSize,
+      }).then(res => {
+        if (res.data) {
+          this.listLoading = false
+          this.total = res.data.total
+          this.list = res.data.records
+          let exportExcel = []
+          res.data.records.forEach(item => {
+            exportExcel.push({
+              id: item.id,
+              name: item.name,
+              rid: item.rid,
+            })
+          })
+          this.exportExcel = exportExcel
+        }
+      })
+
+    },
+    handleSizeChange(val) {
+      this.queryForm.pageSize = val
+      this.fetchData()
+    },
+    handleCurrentChange(val) {
+      this.queryForm.pageNo = val
+      this.fetchData()
+    },
+    handleAdd() {
+      this.$refs['edit'].showEdit()
+    },
+    handleEdit(row) {
+      this.$refs['edit'].showEdit(row)
+    },
+    handleDelete(row) {
+      if (row.id || this.selectRows.length > 0) {
+        this.$baseConfirm('你确定要删除吗', null, async () => {
+          let ids = ''
+          if (this.selectRows.length > 0) {
+            ids = this.selectRows.map((item) => item.id).join()
+          }
+          api.deleteStandardpoint({
+            id: row.id || ids
+          }).then(res => {
+            if (res.data) {
+              this.$baseMessage('删除成功', 'success')
+              this.fetchData()
+            }
+          })
+        })
+      } else {
+        this.$baseMessage('未选中任何行', 'error')
+        return false
+      }
+    },
+    setSelectRows(val) {
+      this.selectRows = val
+    },
+  },
+}
+</script>
+<style lang="less" scoped>
+ a{
+  float: right;
+ }
+</style>