瀏覽代碼

目录管理-添加按钮权限

lining 6 年之前
父節點
當前提交
f5416b1ddb

+ 23 - 0
src/dashoo.cn/backend/api/controllers/oilsupplier/oilcatalog.go

@@ -2,7 +2,9 @@ package oilsupplier
 
 import (
 	"dashoo.cn/backend/api/business/oilsupplier/oilcatalog"
+	"dashoo.cn/backend/api/business/organize"
 	. "dashoo.cn/backend/api/controllers"
+	"dashoo.cn/business2/permission"
 	"dashoo.cn/utils"
 	"encoding/json"
 	"github.com/tealeg/xlsx"
@@ -220,4 +222,25 @@ func (this *OilCatalogController) ExportExcelAll() {
 	f.Save(path)
 	this.Data["json"] = this.Ctx.Request.Host + "/" + path
 	this.ServeJSON()
+}
+
+// @Title
+// @Description
+// @Success 200 {object} controllers.Request
+// @router /isaccess [get]
+func (this *OilCatalogController) IsAccess() {
+
+	roleId := this.GetString("RoleId")
+	svcPerm := permission.GetPermissionService(utils.DBE)
+	svc := organize.GetOrganizeService(utils.DBE)
+	res := false
+	if !svcPerm.IsAdmin(this.User.Id) {
+		res = svc.UserInRoleById(this.User.Id, roleId)
+	} else {
+		res = true
+	}
+
+
+	this.Data["json"] = res
+	this.ServeJSON()
 }

+ 7 - 0
src/dashoo.cn/frontend_web/src/api/oilsupplier/oilcatalog.js

@@ -32,5 +32,12 @@ export default {
       method: 'get',
       params: params
     })
+  },
+  isAccess (params, myAxios) {
+    return myAxios({
+      url: '/oilcatalog/isaccess',
+      method: 'get',
+      params: params
+    })
   }
 }

+ 26 - 8
src/dashoo.cn/frontend_web/src/pages/oilsupplier/oilcatalog/index.vue

@@ -38,7 +38,7 @@
             </el-dropdown>
           </el-form-item>
           <el-form-item>
-            <el-button type="primary" size="mini" @click="addOilcatalog">添加</el-button>
+            <el-button type="primary" size="mini" @click="addOilcatalog" v-if="showBtn">添加</el-button>
             <el-button type="primary" size="mini" style="margin-left:10px; margin-top: -4px;" @click="exportExcel">导出</el-button>
           </el-form-item>
         </el-form>
@@ -46,7 +46,7 @@
       <el-table :data="entityList" border height="calc(100vh - 243px)" style="width: 100%" @sort-change="orderby" size="mini">
         <el-table-column label="操作" min-width="100px" align="center" fixed="right">
           <template slot-scope="scope">
-            <el-button type="primary" size="mini" @click="editOilcatalog(scope.row)" plain>编辑</el-button>
+            <el-button type="primary" size="mini" @click="editOilcatalog(scope.row)" plain>{{btnName}}</el-button>
             <el-popover placement="top" title="提示">
               <el-alert
                 title=""
@@ -58,7 +58,7 @@
               <div style="text-align: right; margin: 0">
                 <el-button type="danger" size="mini" @click="deleteEntity(scope.row)">删除</el-button>
               </div>
-              <el-button slot="reference" type="danger" title="删除" style="margin-left:10px" size="mini" plain>删除</el-button>
+              <el-button slot="reference" type="danger" title="删除" style="margin-left:10px" size="mini" plain v-if="showBtn">删除</el-button>
             </el-popover>
           </template>
 
@@ -85,28 +85,28 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="供方名称" prop="CompanyName" :rules="{ required: true, message: '供方名称不能为空', trigger: 'blur'}">
-              <el-input v-model="formData.CompanyName" :maxlength="255" placeholder="请输入" style="width: 100%"></el-input>
+              <el-input v-model="formData.CompanyName" :maxlength="255" placeholder="请输入" style="width: 100%" :readonly="!showBtn"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="有效期" prop="ValidityDate" >
               <el-date-picker style="width: 220px" v-model="ValidityDate" type="daterange" range-separator="至"
-                              start-placeholder="有效期起" end-placeholder="有效期止"></el-date-picker>
+                              start-placeholder="有效期起" end-placeholder="有效期止" :readonly="!showBtn"></el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="营业范围" prop="Business" :rules="{ required: true, message: '营业范围不能为空', trigger: 'blur'}">
-              <el-input v-model="formData.Business"  type="textarea" style="width: 100%"></el-input>
+              <el-input v-model="formData.Business"  type="textarea" style="width: 100%" :readonly="!showBtn"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="备注">
-              <el-input v-model="formData.Remark"  placeholder="请输入" type="textarea" style="width: 100%">
+              <el-input v-model="formData.Remark"  placeholder="请输入" type="textarea" style="width: 100%" :readonly="!showBtn">
               </el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item style="text-align: center;">
+            <el-form-item style="text-align: center;" v-if="showBtn">
               <el-button type="primary" size="mini" @click="saveOilcatalog">保存</el-button>
             </el-form-item>
           </el-col>
@@ -138,6 +138,8 @@
       }
 
       return {
+        btnName: '打开',
+        showBtn: false,
         cardTitle: '',
         catalogType: '',
         addShowTitle: '添加目录',
@@ -205,6 +207,7 @@
       }
     },
     created () {
+      this.isAccess()
       this.formData.CatalogType = parseInt(this.$route.query.catalogType)
       if (this.$route.query.catalogType === '1') {
         this.cardTitle = '自建项目'
@@ -223,6 +226,21 @@
     },
 
     methods: {
+      isAccess () {
+        let params = {
+          RoleId: '10000203'
+        }
+        api.isAccess(params, this.$axios).then(res => {
+          this.showBtn = res.data
+          if (this.showBtn) {
+            this.btnName = '编辑'
+          } else {
+            this.btnName = '打开'
+          }
+        }).catch(err => {
+          console.log(err)
+        })
+      },
       exportExcel () {
         console.log(this.entityList)
         if (this.entityList == null || this.entityList.length <= 0) {