简单使用VUE

这是一个使用Vue.js构建的页面,包含了一个搜索表单,用于查询机构编码和机构类型的表格展示,以及增删改操作。表格数据可以按需分页,并提供了添加、编辑和删除功能。当用户选择操作时,会调用相应的API接口进行数据处理。添加和更新操作通过弹窗组件完成,实现了前后端的数据交互。
摘要由CSDN通过智能技术生成

 

首页代码

<template>
  <div class="index">
    <el-form :inline="true" :model="formInline" class="index-form">
      <el-form-item label="机构编码">
        <el-input v-model="formInline.bankId" placeholder="请输入机构编码"></el-input>
      </el-form-item>
      <el-form-item label="机构类型">
        <el-select v-model="formInline.bankName" placeholder="请选择机构类型">
          <el-option label="银行" value="银行"></el-option>
          <el-option label="公司" value="公司"></el-option>
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="search">查询</el-button>
        <el-button @click="addBox"> <i class="el-icon-plus"></i> 添加</el-button>
      </el-form-item>
    </el-form>
    <el-table class="index-table" :data="tableData" border style="width: 50%">
      <el-table-column prop="bankId" label="机构编码"> </el-table-column>
      <el-table-column prop="bankName" label="机构名称"> </el-table-column>
      <el-table-column fixed="right" label="操作" width="100">
        <template slot-scope="scope">
          <el-button @click="updateBox(scope.row)" type="text" size="small"
            >编辑</el-button
          >
          <el-button type="text" size="small" @click="del(scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <el-pagination
      class="index-page"
      :page-sizes="[3, 5, 10, 20]"
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
      :page-size="count"
      layout="total, sizes, prev, pager, next, jumper"
      :total="sumCount">
    </el-pagination>
    <add @addData="addData" v-if="addShow" @close="closeAdd"></add>
    <update @updateData="updateData" v-if="updateShow" @close="closeUpdate" :updateDatas="updateDatas"></update>
  </div>
</template>

VUE引用部分

<script>
import add from '../components/add.vue'
import update from '../components/update.vue'
export default {
  name: "Index",
  components: {
    add,
    update
  },
  data() {
    return {
      tableData: [],
      formInline: {
          bankId: '',
          bankName: ''
      },
      count: 10,
      sumCount: 0,
      pageNum: 1,
      addShow: false,
      updateShow: false,
      updateDatas: []
    };
  },
  mounted() {
    this.getData();
  },
  methods: {
    async getData() {
      let obj = {
        bankId: this.formInline.bankId,
        bankName: this.formInline.bankName,
        pageNum: this.pageNum,
        count: this.count
      }
      const res = await this.$getAPI.getBankList(obj);
      this.tableData = res.data;
      this.sumCount = res.sumCount
      console.log(res);
    },
    // 查询
    search() {
      this.pageNum = 1;
      this.getData()
    },
    // 条数改变触发
    handleSizeChange(data) {
      this.count = data;
      this.getData()
    },
    // 页数改变触发
    handleCurrentChange(data) {
      this.pageNum = data;
      this.getData()
    },
    del (data) {
      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', {
          confirmButtonText: '确定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          this.delData(data)
        }).catch(() => {
          this.$message({
            type: 'info',
            message: '已取消删除'
          });          
        });
    },
    // 删除
    async delData(data) {
      let bankId = data.bankId;
      let res = await this.$getAPI.delBankList({bankId})
      if (res.code === 1) {
        this.$message({
        type: 'success',
        message: '删除成功!'
      });
      this.getData()
      }
      console.log(res)
    },
    async addData(data) {
      let res = await this.$getAPI.addBankList(data)
      console.log(res)
    },
    addBox() {
      this.addShow = true;
    },
    closeAdd() {
      this.addShow = false;
    },
    async updateData (data) {
      await this.$getAPI.upBankList(data)
      this.updateShow = false
    },
    updateBox(data) {
      this.updateDatas = data;
      this.updateShow = true;
    },
    closeUpdate() {
      this.updateShow = false
    }
  },
};
</script>

<style lang="less" scoped>
.index {
  &-table, &-form, &-page {
    width: 50%;
    margin: 0 auto;
  }
}
</style>

调用接口

import { get, post } from './request'
export default {
    getBankList: params => get('/nodeApi/getBankList', params), //获取数据
    delBankList: params => get('/nodeApi/delBankList', params), //删除数据
    addBankList: params => post('/nodeApi/addBankList', params), //添加数据
    upBankList: params => get('/nodeApi/upBankList', params), //修改数据
}

添加部分

<template>
  <el-dialog title="增加机构信息" :visible="true" @close="close">
    <el-form :model="form">
      <el-form-item label="机构编码">
        <el-input v-model="form.bankId" autocomplete="off"></el-input>
      </el-form-item>
      <el-form-item label="机构名称">
        <el-input v-model="form.bankName" autocomplete="off"></el-input>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button @click="close">取 消</el-button>
      <el-button type="primary" @click="addSubmit"
        >确 定</el-button
      >
    </div>
  </el-dialog>
</template>

<script>
export default {
  name: "add",
  props: ['show'],
  data() {
      return {
          form: {
              bankId: '',
              bankName: ''
          },
      }
  },
  methods: {
      addSubmit() {
          this.$emit('addData', this.form)
      },
      close() {
          this.$emit('close', true)
      }
  }
};
</script>

<style>
</style>

更新部分

<template>
  <el-dialog title="修改机构信息" :visible="true" @close="close">
    <el-form :model="form">
      <el-form-item label="机构编码">
        {{form.bankId}}
      </el-form-item>
      <el-form-item label="机构名称">
        <el-input v-model="form.bankName" autocomplete="off"></el-input>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button @click="close">取 消</el-button>
      <el-button type="primary" @click="updateSubmit"
        >确 定</el-button
      >
    </div>
  </el-dialog>
</template>

<script>
export default {
  name: "update",
  props: ['updateDatas'],
  data() {
      return {
          form: {
              bankId: '',
              bankName: ''
          },
      }
  },
  mounted() {
    this.form = this.updateDatas;
  },
  methods: {
      updateSubmit() {
          this.$emit('updateData', this.form)
      },
      close() {
          this.$emit('close', true)
      }
  }
};
</script>

<style>
</style>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值