1. 程式人生 > >【Vue】引入自定義外部js

【Vue】引入自定義外部js

1、定義js檔案,這裡是放在static下的js檔案下

程式碼如下:


// 判斷許可權
function hasPermissionJs(val) {
  var restoredSession = JSON.parse(sessionStorage.getItem('userInfo'));
  var roles = restoredSession.user.roles;
  for(var i=0; i<roles.length; i++){
    for(var j=0; j<roles[i].authorities.length; j++){
      if(val == roles[i].authorities[j].mtag){
        return true;
      }
    }
  }
  if(restoredSession.isAdmin==true){
    return true;
  }
  return false;
}

// 彈框提示
function tips(this_, message_, type_){
  this_.$message({
    message: message_,
    type: type_
  });
}

export { //很關鍵
  hasPermissionJs,
  tips,
}

2、在介面的script標籤中進行引入即可使用

<script>
import {hasPermissionJs, tips} from '../../static/js/my.js'
</script>

    例如執行刪除操作時,呼叫tips,程式碼如下:

    deleteAction(content, arr) {
      this.$confirm(content, '提示', {
          confirmButtonText: '確定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          var params = new URLSearchParams();
          params.append('uid', arr);
          this.$http.post("/api/v1/user/delete", params)
            .then(response => {
              if(response.data.data == 'deleteAdminUser'){
                tips(this, '非法操作,不能刪除admin使用者!', 'error');
                return;
              }
              if(response.data.data == 'deleteYourself'){
                tips(this, '非法操作,不能刪除自己!', 'error');
                return;
              }
              tips(this, '刪除成功!', 'success');
              this.findPagesByCondition();
            })
        }).catch(() =>{
          // 取消
        });
    }

3、注意事項

① js檔案中的export必須要寫!!!

② 如果引入的方法是要在DOM載入時就呼叫的,例如使用者列表頁面中,有刪除、編輯等操作按鈕,根據許可權進行展示與否的判斷,程式碼如下:

<el-table-column label="操作">
      <template slot-scope="scope">
        <el-button @click="deleteUser(scope.row)" type="text" v-if="hasPermission('user:delete')">刪除</el-button>
        <el-button @click="userForm(scope.row)" type="text" v-if="hasPermission('user:edit')">編輯</el-button>
        <el-button @click="userVersionForm(scope.row)" type="text" v-if="hasPermission('user:dataAssign')">分配資料許可權</el-button>
      </template>
</el-table-column>

那麼此時需要在methods中這樣寫,就可以在頁面載入時就判斷許可權:

methods: {
    // 判斷許可權
    hasPermission: hasPermissionJs,
    
    }

相關推薦

Vue引入定義外部js

1、定義js檔案,這裡是放在static下的js檔案下 程式碼如下: // 判斷許可權 function hasPermissionJs(val) { var restoredSession = JSON.parse(sessionStorage.getItem

vueelement定義主題

  一、安裝elementUI及sass-loader,node-sass // 安裝element-ui $ npm i element-ui -S // 安裝sass $ npm i sass-loader node-sass -D

Vue通過定義指令回顧 v-內建指令

Vue.js 的各種指令(Directives)更加方便我們去資料驅動 DOM,例如 v-bind、v-on、v-model、v-if、v-for、v-once 等內建指令,這些指令的職責就是當表示式改變時將某些行為應用到 DOM 上,儘量不去操作增刪改 DOM。通過了解如何去自定義指

vue引入定義js檔案

情況1 自定義 rem.js 檔案 //px=>rem (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientationchang

MFC 定義edit 限制輸入十六進制內容 響應復制粘貼全選剪切的功能

edi 限制 flag asc 處理程序 tle ^h alt sci Ctrl組合鍵ASCII碼 ^Z代表Ctrl+z ASCII值 控制字符 ASCII值 控制字符 ASCII值 控制字符 ASCII值

TestNGTestNG定義監聽器大全

前言 TestNG預設有提供監聽器,但是如果我們想自定義監聽器也是可以的,自定義監聽器包括好幾種,部分如下所示: IAnnotationTransformer IAnnotationTransformer2 IHookable IInvokedMethodL

封裝Android定義ListView

ListView中的Item介面 <!-- view_fileitem --> <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.an

舉例Android定義Dialog——做出“確定/取消”的選擇

1、自定義Dialog的介面 <--!dialog_yesorno_for_permission.xml--> <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="

舉例Android定義Dialog——選擇一個RadioButton

1. 自定義Dialog的介面 <--!dialog_selectserver.xml--> <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://sch

dede定義模型會員無法投稿的解決方法

原文連結:點選跳轉 具體方法: 1、複製普通文章模型,增加了一個欄位,允許投稿,級別為註冊會員,組別不限制. 2、新建一個欄目,內容模型為此模型,且允許投稿. 3、在 系統設定->基本引數->會員設定中 “是否開放會員對自定義模型投稿:” 選擇了 “是”. 4、

8Broadcast 定義 靜態&動態廣播註冊

靜態註冊廣播 如圖所示,新建一個Broadcast Receiver的Java檔案,我命名為MyReceiver1.java   原始碼如下 package com.boradcasst.liuan.myboradcast; import android.conte

WPF定義控制元件與樣式(3)-TextBox & RichTextBox & PasswordBox樣式、水印、Label標籤、功能擴充套件

一.前言.預覽   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。 本文主要是對文字輸入控制元件進行樣式開發,及相關擴充套件功能開發,主要內容包括: 基本文字框TextBox控制元件樣式及擴充套件功能,實現了樣式、水印、Label標籤、功

WPF定義控制元件與樣式(5)-Calendar/DatePicker日期控制元件定義樣式及擴充套件

一.前言   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。 本文主要內容: 日曆控制元件Calendar自定義樣式; 日期控制元件DatePicker自定義樣式,及Label標籤、水印、清除日期功能擴充套件; 二.Calend

WPF定義控制元件與樣式(9)-樹控制元件TreeView與選單Menu-ContextMenu

一.前言   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。   本文主要內容: 選單Menu的自定義樣式; 右鍵選單ContextMenu的自定義樣式; 樹控制元件TreeView的自定義樣式,及右鍵選單實現。 二.選單M

WPF定義控制元件與樣式(8)-ComboBox與定義多選控制元件MultComboBox

一.前言   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。   本文主要內容: 下拉選擇控制元件ComboBox的自定義樣式及擴充套件; 自定義多選控制元件MultiComboBox; 二.下拉選擇控制元件ComboBox的自

WPF定義控制元件與樣式(11)-等待/忙/正在載入狀態-控制元件實現

一.前言   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。   本文主要有三種實現方式: 簡單忙碌狀態控制元件BusyBox; Win8/win10效果忙碌狀態控制元件ProgressRing; 彈出非同步等待框WaitingB

WPF定義控制元件與樣式(12)-縮圖ThumbnailImage /gif動畫圖/圖片列表

一.前言   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等,若有不明白的地方可以參考本系列前面的文章,文末附有部分文章連結。   本文主要針對WPF專案開發中圖片的各種使用問題,經過總結,把一些經驗分享一下。內容包括: WPF常

WPF定義控制元件與樣式(13)-定義窗體Window & 適應內容大小訊息框MessageBox

一.前言   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。   本文主要內容: 自定義Window窗體樣式; 基於自定義窗體實現自定義MessageBox訊息提示框; 二.自定義Window窗體樣式   自定義的Window

Android_定義Adapter_學生註冊(無資料庫)

本文是完善前一篇學生註冊文章(https://blog.csdn.net/cungudafa/article/details/84780652)中:對`自定義ListView`增加`介面卡Adapter`實現對每個學生個體進行再編輯和刪除操作。

Excel設定定義單元格格式

我們知道Excel中設定單元格格式時可以通過自定義方式設定格式,但是具體如何使用一般人都不是很清楚,其實自定義功能非常強大。本文主要介紹一下自定義單元格格式的小技巧,主要流程: 1.選中要設定單元格格式的單元格,通過ctrl+1進入到設定單元格格式視窗 2.選擇自定義方法,設