Bläddra i källkod

资源权限示例

klausY 5 år sedan
förälder
incheckning
4c72052fd8
2 ändrade filer med 249 tillägg och 0 borttagningar
  1. 86 0
      QMPlusVuePage/src/api/customer.js
  2. 163 0
      QMPlusVuePage/src/view/example/customer/customer.vue

+ 86 - 0
QMPlusVuePage/src/api/customer.js

@@ -0,0 +1,86 @@
+import service from '@/utils/request'
+
+// @Tags SysApi
+// @Summary 删除客户
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param data body dbModel.ExaCustomer true "删除客户"
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
+// @Router /customer/createExaCustomer [post]
+export const createExaCustomer = (data) => {
+    return service({
+        url: "/customer/createExaCustomer",
+        method: 'post',
+        data
+    })
+}
+
+
+
+// @Tags SysApi
+// @Summary 更新客户信息
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param data body dbModel.ExaCustomer true "更新客户信息"
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
+// @Router /customer/updataExaCustomer [post]
+export const updataExaCustomer = (data) => {
+    return service({
+        url: "/customer/updataExaCustomer",
+        method: 'post',
+        data
+    })
+}
+
+
+// @Tags SysApi
+// @Summary 创建客户
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param data body dbModel.ExaCustomer true "创建客户"
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
+// @Router /customer/deleteExaCustomer [post]
+export const deleteExaCustomer = (data) => {
+    return service({
+        url: "/customer/deleteExaCustomer",
+        method: 'post',
+        data
+    })
+}
+
+
+// @Tags SysApi
+// @Summary 获取单一客户信息
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param data body dbModel.ExaCustomer true "获取单一客户信息"
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
+// @Router /customer/getExaCustomer [post]
+export const getExaCustomer = (data) => {
+    return service({
+        url: "/customer/getExaCustomer",
+        method: 'post',
+        data
+    })
+}
+
+
+// @Tags SysApi
+// @Summary 获取权限客户列表
+// @Security ApiKeyAuth
+// @accept application/json
+// @Produce application/json
+// @Param data body modelInterface.PageInfo true "获取权限客户列表"
+// @Success 200 {string} string "{"success":true,"data":{},"msg":"获取成功"}"
+// @Router /customer/createExaCustomer [post]
+export const getExaCustomerList = (data) => {
+    return service({
+        url: "/customer/getExaCustomerList",
+        method: 'post',
+        data
+    })
+}

+ 163 - 0
QMPlusVuePage/src/view/example/customer/customer.vue

@@ -0,0 +1,163 @@
+<template>
+  <div>
+      <div class="search-term">
+      <el-form :inline="true" :model="searchInfo" class="demo-form-inline">
+        <el-form-item>
+          <el-button @click="openDialog" type="primary">新增客户</el-button>
+        </el-form-item>
+      </el-form>
+    </div>
+    <el-table
+      :data="tableData"
+      @selection-change="handleSelectionChange"
+      border
+      ref="multipleTable"
+      stripe
+      style="width: 100%"
+      tooltip-effect="dark"
+    >
+      <el-table-column type="selection" width="55"></el-table-column>
+      <el-table-column label="接入日期" width="180">
+        <template slot-scope="scope">{{ scope.row.CreatedAt|formatDate }}</template>
+      </el-table-column>
+      <el-table-column label="姓名" prop="customerName" width="120"></el-table-column>
+      <el-table-column label="电话" prop="customerPhoneData" width="120"></el-table-column>
+      <el-table-column label="接入人ID" prop="sysUserId" width="120"></el-table-column>
+      <el-table-column label="按钮组">
+        <template slot-scope="scope">
+          <el-button @click="updataCustomer(scope.row)" size="small" type="text">变更</el-button>
+          <el-popover
+          placement="top"
+          width="160"
+          v-model="visible">
+          <p>确定要删除吗?</p>
+          <div style="text-align: right; margin: 0">
+            <el-button size="mini" type="text" @click="visible = false">取消</el-button>
+            <el-button type="primary" size="mini" @click="deleteCustomer(scope.row)">确定</el-button>
+          </div>
+          <el-button type="text" size="mini" slot="reference">删除</el-button>
+        </el-popover>
+        </template>
+      </el-table-column>
+    </el-table>
+
+      <el-pagination
+      :current-page="page"
+      :page-size="pageSize"
+      :page-sizes="[10, 30, 50, 100]"
+      :style="{float:'right',padding:'20px'}"
+      :total="total"
+      @current-change="handleCurrentChange"
+      @size-change="handleSizeChange"
+      layout="total, sizes, prev, pager, next, jumper"
+    ></el-pagination>
+
+    <el-dialog :before-close="closeDialog" :visible.sync="dialogFormVisible" title="新增Api">
+      <el-form :inline="true" :model="form" label-width="80px">
+        <el-form-item label="客户名">
+          <el-input autocomplete="off" v-model="form.customerName"></el-input>
+        </el-form-item>
+        <el-form-item label="客户电话">
+          <el-input autocomplete="off" v-model="form.customerPhoneData"></el-input>
+        </el-form-item>
+      </el-form>
+      <div class="dialog-footer" slot="footer">
+        <el-button @click="closeDialog">取 消</el-button>
+        <el-button @click="enterDialog" type="primary">确 定</el-button>
+      </div>
+    </el-dialog>
+    在资源权限中将此角色的资源权限清空 或者不包含创建者的角色 即可屏蔽此客户资源的显示
+  </div>
+</template>
+
+<script>
+
+import {
+  createExaCustomer,
+  updataExaCustomer,
+  deleteExaCustomer,
+  getExaCustomer,
+  getExaCustomerList
+} from '@/api/customer'
+import { formatTimeToStr } from '@/utils/data'
+import infoList from '@/components/mixins/infoList'
+import { mapGetters } from 'vuex'
+
+export default {
+  name: 'Customer',
+   mixins: [infoList],
+  data(){
+    return{
+      listApi: getExaCustomerList,
+      listKey: 'customer',
+      dialogFormVisible:false,
+      visible:false,
+      type:"",
+      form:{
+        customerName:"",
+        customerPhoneData:""
+      }
+    }
+  },
+  computed:{
+    ...mapGetters('user', ['token'])
+  },
+   filters: {
+    formatDate: function(time) {
+      if (time != null && time != '') {
+        var date = new Date(time)
+        return formatTimeToStr(date, 'yyyy-MM-dd hh:mm:ss')
+      } else {
+        return ''
+      }
+    }
+  },
+  methods:{
+    async updataCustomer(row){
+      const res = await getExaCustomer(row)
+      this.type = "update"
+      if(res.success){
+        this.form = res.data.customer        
+        this.dialogFormVisible = true
+      }
+    },
+    closeDialog(){
+      this.dialogFormVisible = false
+    },
+    async deleteCustomer(row){
+      this.visible = false
+      const res = await deleteExaCustomer(row)
+      if (res.success){
+         this.getTableData()
+      }
+    },
+    async enterDialog(){
+      let res 
+      switch (this.type) {
+        case "create":
+          res =await createExaCustomer(this.form)
+             break;
+        case "update":
+           res =await updataExaCustomer(this.form)
+              break;
+        default:
+          res =await createExaCustomer(this.form)
+             break;
+
+      }
+     
+      if(res.success){
+        this.dialogFormVisible = false
+        this.getTableData()
+      }
+    },
+     openDialog() {
+      this.type = "create"
+      this.dialogFormVisible = true
+    }
+  }
+}
+</script>
+
+<style>
+</style>