浏览代码

封装页面权限检验函数

Joe 4 年之前
父节点
当前提交
60c0de9500

+ 5 - 0
src/main.js

@@ -24,6 +24,7 @@ import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels,
 import Pagination from "@/components/Pagination";
 //自定义表格工具扩展
 import RightToolbar from "@/components/RightToolbar"
+import { queryPageStatus } from "@/utils/pageStatus";
 
 // 全局方法挂载
 Vue.prototype.getDicts = getDicts
@@ -48,12 +49,16 @@ Vue.prototype.msgInfo = function (msg) {
   this.$message.info(msg);
 }
 
+Vue.prototype.queryPageStatus = queryPageStatus
+
 // 全局组件挂载
 Vue.component('Pagination', Pagination)
 Vue.component('RightToolbar', RightToolbar)
 
 Vue.use(permission)
 
+
+
 /**
  * If you don't want to use mock-server
  * you want to use MockJs for mock api

+ 79 - 0
src/utils/pageStatus.js

@@ -0,0 +1,79 @@
+import { getGroupInfo } from "@/api/system/dept";
+import store from '@/store'
+/**
+ * 油品,根据油品名查类型
+ */
+export async function queryPageStatus(allowJiBieArr=[], type) { // 1 积分 2 电子卡 3 优惠券
+  //返回值  0 页面初始状态 1 此页面不对此用户不开放 2 权限不在此页面 3 发生错误 4 正常显示
+  const currentJiBie = store.state.user.jiBie
+  if(!allowJiBieArr.includes(currentJiBie)){
+    return 1;
+  }
+  if(!type){
+    return 4
+  }
+  const getGroupInfoRes = await getGroupInfo()
+  if(getGroupInfoRes.code != 200){
+    return 3
+  }
+  const integralRuleFlag = getGroupInfoRes.data.integralRuleFlag; // 0 不共享 1 共享
+  const cardRuleFlag = getGroupInfoRes.data.cardRuleFlag;
+  const couponFlag = getGroupInfoRes.data.couponFlag;
+  if(type == 1){
+    if(integralRuleFlag == 0){
+      if(currentJiBie == 1){
+        return 2
+      }else if(currentJiBie == 2){
+        return 4
+      }else if(currentJiBie == 0){
+        return 1
+      }
+    }else if(integralRuleFlag == 1){
+      if(currentJiBie == 1){
+        return 4
+      }else if(currentJiBie == 2){
+        return 2
+      }else if(currentJiBie == 0){
+        return 1
+      }
+    }
+
+  } else if(type == 2){
+    if(cardRuleFlag == 0){
+      if(currentJiBie == 1){
+        return 2
+      }else if(currentJiBie == 2){
+        return 4
+      }else if(currentJiBie == 0){
+        return 1
+      }
+    }else if(cardRuleFlag == 1){
+      if(currentJiBie == 1){
+        return 4
+      }else if(currentJiBie == 2){
+        return 2
+      }else if(currentJiBie == 0){
+        return 1
+      }
+    }
+  }else if(type == 3){
+    if(couponFlag == 0){
+      if(currentJiBie == 1){
+        return 2
+      }else if(currentJiBie == 2){
+        return 4
+      }else if(currentJiBie == 0){
+        return 1
+      }
+    }else if(couponFlag == 1){
+      if(currentJiBie == 1){
+        return 4
+      }else if(currentJiBie == 2){
+        return 2
+      }else if(currentJiBie == 0){
+        return 1
+      }
+    }
+  }
+  return 3
+}

+ 1 - 1
src/views/overview/Overview_Daily.vue

@@ -487,7 +487,7 @@ export default {
         this.queryParams.stationId =this.$store.state.user.deptId;
       }
       listSum(this.queryParams).then(response => {
-        if (response.hasOwnProperty('data')) {
+        if (response.data!=null) {
           this.form.zongAmt = response.data.amt;
           this.form.zongliters = response.data.orderLiters;
         }

+ 6 - 6
src/views/overview/Overview_Summary.vue

@@ -274,7 +274,7 @@ export default {
     getList(query) {
       listSum(query).then((response) => {
         console.log("listSum",response)
-        if (response.hasOwnProperty("data")) {
+        if (response.data!=null ) {
           this.form.zongAmt = response.data.amt;
           this.form.zongliters = response.data.orderLiters;
         }
@@ -295,7 +295,7 @@ export default {
       });
       listViewData(query).then((response) => {
         console.log("listViewData",response)
-        if (response.hasOwnProperty("data")) {
+        if (response.data!=null ) {
           if (response.data.wxAmt) {
             this.form.wxAmt = response.data.wxAmt;
           } else {
@@ -343,7 +343,7 @@ export default {
     getTodayList(query) {
       // 查询汇总充值金额
       listCZData(query).then((response) => {
-        if (response.hasOwnProperty("data")) {
+        if (response.data!=null ) {
           if (response.data.amt) {
             this.infoFrom.czAmt = response.data.amt;
           } else {
@@ -353,7 +353,7 @@ export default {
       });
       // 查询消费金额
       listXFData(query).then((response) => {
-        if (response.hasOwnProperty("data")) {
+        if (response.data!=null ) {
           if (response.data.amt) {
             this.infoFrom.xfAmt = response.data.amt;
           } else {
@@ -363,7 +363,7 @@ export default {
       });
       // 汇总电子卡数据
       listHYData({ stationId: query.stationId }).then((response) => {
-        if (response.hasOwnProperty("data")) {
+        if (response.data!=null ) {
           if (response.data.amt) {
             this.infoFrom.yeAmt = response.data.amt;
           } else {
@@ -378,7 +378,7 @@ export default {
       });
       // 今日汇总数据
       listJRHYData(query).then((response) => {
-        if (response.hasOwnProperty("data")) {
+        if (response.data!=null ) {
           if (response.data.num) {
             this.infoFrom.jrhy = response.data.num;
           } else {

+ 93 - 64
src/views/point/Point_Rule.vue

@@ -1,5 +1,9 @@
 <template>
-  <div class="app-container">
+  <div v-if="pageStatus == 0">配置加载中...</div>
+  <div v-else-if="pageStatus == 1">此页面不对此账号开放</div>
+  <div v-else-if="pageStatus == 2">权限已下放到站点,请登录站点账号配置</div>
+  <div v-else-if="pageStatus == 3">加载发生错误</div>
+  <div v-else-if="pageStatus == 4">
     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <el-form-item
         label="是否开启积分"
@@ -11,11 +15,11 @@
           <el-radio label="1">开启</el-radio>
         </el-radio-group>
       </el-form-item>
-      <div v-show="form.integralFlag==1">
+      <div v-show="form.integralFlag == 1">
         <el-form-item
           label="积分规则"
           prop="itemsDetail"
-          :required="form.integralFlag==1"
+          :required="form.integralFlag == 1"
         >
           <div
             v-for="(item, index) in form.itemsDetail"
@@ -163,9 +167,12 @@
           label="周期类型"
           prop="datePicker"
           :required="form.integralActivity == 1"
-          v-show="form.integralActivity == 1"        
+          v-show="form.integralActivity == 1"
         >
-          <el-select v-model="form.datePicker" clearable size="small"
+          <el-select
+            v-model="form.datePicker"
+            clearable
+            size="small"
             @change="timeClear"
           >
             <el-option label="每周指定日" value="1"></el-option>
@@ -281,6 +288,8 @@
 
 <script>
 import { getToken } from "@/utils/auth";
+// import { queryPageStatus } from "@/utils/pageStatus";
+
 import {
   addRule,
   updateRule,
@@ -313,55 +322,58 @@ export default {
       });
       callback();
     };
-    let validateIntegralTermSetting = (rule, value, callback)=>{
-      if(!this.form.integralTermSetting){
+    let validateIntegralTermSetting = (rule, value, callback) => {
+      if (!this.form.integralTermSetting) {
         callback(new Error("请选择积分有效期"));
         return;
       }
-      if(this.form.integralTermSetting == 2){
-        if(!this.form.integralEmptyTime){
+      if (this.form.integralTermSetting == 2) {
+        if (!this.form.integralEmptyTime) {
           callback(new Error("请填写积分指定的到期时间"));
           return;
         }
       }
       callback();
-    }
-    let validateTermDateManage = (rule, value, callback)=>{
-      if(!this.form.termDateManage){
+    };
+    let validateTermDateManage = (rule, value, callback) => {
+      if (!this.form.termDateManage) {
         callback(new Error("请选择积分活动的结束时间"));
         return;
       }
-      if(this.form.termDateManage == 2){
-        if(!this.form.emptyDate){
+      if (this.form.termDateManage == 2) {
+        if (!this.form.emptyDate) {
           callback(new Error("请填写积分活动的结束时间"));
           return;
         }
       }
       callback();
-    }
-    let validateDatePicker =(rule, value, callback)=>{
-      if(this.form.integralActivity==0){
-        callback()
+    };
+    let validateDatePicker = (rule, value, callback) => {
+      if (this.form.integralActivity == 0) {
+        callback();
         return;
       }
-      if(!this.form.datePicker){
+      if (!this.form.datePicker) {
         callback(new Error("请选择多倍积分的周期类型"));
         return;
       }
-      if(this.form.datePicker == 1 || this.form.datePicker == 2){
-        if(this.form.collectClickCalendar.length<= 0){
+      if (this.form.datePicker == 1 || this.form.datePicker == 2) {
+        if (this.form.collectClickCalendar.length <= 0) {
           callback(new Error("请选择多倍积分的时间"));
           return;
         }
       }
-      if(this.form.datePicker == 3){
-        if(this.form.collectClickDay==null || this.form.collectClickDay.length<= 0){
+      if (this.form.datePicker == 3) {
+        if (
+          this.form.collectClickDay == null ||
+          this.form.collectClickDay.length <= 0
+        ) {
           callback(new Error("请填写指定的多倍积分日"));
           return;
         }
       }
       callback();
-    }
+    };
     return {
       oilNameOptions: [],
       dialogImageUrl: "",
@@ -378,14 +390,17 @@ export default {
         integralFlag: [
           { required: true, message: "请选择是否开启积分", trigger: "change" },
         ],
-        integralTermSetting: [{ validator:validateIntegralTermSetting, trigger: "change" }],
+        integralTermSetting: [
+          { validator: validateIntegralTermSetting, trigger: "change" },
+        ],
         // termDateManage:[{ required: true, message: "请选择是否开启积分", trigger: "change" }],
         // integralActivity:[{ required: true, message: "请选择是否开启积分", trigger: "change" }],
         imgFileList: [{ required: true, message: "", trigger: "change" }],
         itemsDetail: [{ validator: validateItemsDetail, trigger: "change" }],
-        termDateManage:[{ validator: validateTermDateManage, trigger: "change" }],
-        datePicker:[{ validator: validateDatePicker, trigger: "change" }],
-        
+        termDateManage: [
+          { validator: validateTermDateManage, trigger: "change" },
+        ],
+        datePicker: [{ validator: validateDatePicker, trigger: "change" }],
       },
       headers: {
         Authorization: "Bearer " + getToken(),
@@ -434,45 +449,59 @@ export default {
         location.host +
         process.env.VUE_APP_BASE_API +
         "/common/upload",
+      pageStatus: 0,
     };
   },
   created() {
-    listRuleOne({
-      pageNum: 1,
-      pageSize: 100,
-    }).then((response) => {
-      this.form = response.data;
-      this.form.collectClickCalendar = [];
-      this.form.collectClickDay = "";
-      if (!this.form.itemsDetail || this.form.itemsDetail.length == 0) {
-        this.form.itemsDetail = [{}];
-      }
-      if (this.form.datePicker == "1" || this.form.datePicker == "2") {
-        // if( this.form.datePickerTime == ""){
-        //   this.form.collectClickCalendar = [];
-        // }
-        this.form.collectClickCalendar = this.form.datePickerTime
-          .split(",")
-          .map(parseFloat);
-      } else if(this.form.datePicker == "3") {
-        if(this.form.datePickerTime.length == 0){
-          this.form.collectClickDay = []
-        }else{
-          this.form.collectClickDay = this.form.datePickerTime
-          .split(",");
-        }
-      }
-      this.form = { ...this.form };
-    });
-
-    oilNameList({
-      pageNum: 1,
-      pageSize: 100,
-    }).then((response) => {
-      this.oilNameOptions = response.rows;
-    });
+    this.init();
+    this.setPageStatus();
   },
   methods: {
+    init() {
+      this.listRule();
+      this.listOilName();
+    },
+    setPageStatus() {
+      this.queryPageStatus([1, 2], 1).then((res) => {
+        this.pageStatus = res;
+      });
+    },
+    listOilName() {
+      oilNameList({
+        pageNum: 1,
+        pageSize: 100,
+      }).then((response) => {
+        this.oilNameOptions = response.rows;
+      });
+    },
+    listRule() {
+      listRuleOne({
+        pageNum: 1,
+        pageSize: 100,
+      }).then((response) => {
+        this.form = response.data;
+        this.form.collectClickCalendar = [];
+        this.form.collectClickDay = "";
+        if (!this.form.itemsDetail || this.form.itemsDetail.length == 0) {
+          this.form.itemsDetail = [{}];
+        }
+        if (this.form.datePicker == "1" || this.form.datePicker == "2") {
+          // if( this.form.datePickerTime == ""){
+          //   this.form.collectClickCalendar = [];
+          // }
+          this.form.collectClickCalendar = this.form.datePickerTime
+            .split(",")
+            .map(parseFloat);
+        } else if (this.form.datePicker == "3") {
+          if (this.form.datePickerTime.length == 0) {
+            this.form.collectClickDay = [];
+          } else {
+            this.form.collectClickDay = this.form.datePickerTime.split(",");
+          }
+        }
+        this.form = { ...this.form };
+      });
+    },
     timeClear() {
       this.form.collectClickCalendar = [];
       this.form.collectClickDay = [];
@@ -582,8 +611,8 @@ export default {
         });
         this.form.collectClickCalendar.splice(temp, 1);
       }
-      this.$refs.form.validateField("datePicker")
-      this.form = {...this.form}
+      this.$refs.form.validateField("datePicker");
+      this.form = { ...this.form };
     },
   },
 };

+ 17 - 7
src/views/station/Station_Group.vue

@@ -1,5 +1,9 @@
 <template>
-  <div class="app-container" v-if="jiBie==1">    
+  <div v-if="pageStatus == 0">配置加载中...</div>
+  <div v-else-if="pageStatus == 1">此页面不对此账号开放</div>
+  <div v-else-if="pageStatus == 2">权限已下放到站点,请登录站点账号配置</div>
+  <div v-else-if="pageStatus == 3">加载发生错误</div>
+  <div v-else-if="pageStatus == 4">
     <el-form ref="form" :model="form" :rules="rules" label-width="160px">
       <el-form-item label="集团内共享积分" prop="integralRuleFlag">
         <el-radio-group v-model="form.integralRuleFlag" :disabled="disabled">
@@ -43,7 +47,7 @@
             icon="el-icon-edit"
             size="mini"
             @click="edit"
-            >{{this.disabled ? "修改配置": "取消修改"}}</el-button
+            >{{ this.disabled ? "修改配置" : "取消修改" }}</el-button
           >
         </el-col>
         <el-col :span="4" :offset="4">
@@ -59,9 +63,6 @@
       </el-row>
     </div>
   </div>
-  <div v-else>
-    该页面只对集团账号开放
-  </div>
 </template>
 
 <script>
@@ -84,15 +85,23 @@ export default {
           { required: true, message: "请选择是否开启积分", trigger: "change" },
         ],
       },
+      pageStatus: 0
     };
   },
   created() {
     this.init();
+    this.setPageStatus();
   },
   methods: {
-    init(){
+    init() {
       this.getGroupInfo();
     },
+    setPageStatus() {
+      this.queryPageStatus([1]).then((res) => {
+
+        this.pageStatus = res;
+      });
+    },
     edit() {
       this.disabled = !this.disabled;
     },
@@ -100,6 +109,7 @@ export default {
     getGroupInfo() {
       getGroupInfo().then((response) => {
         this.form = response.data;
+        console.log(response);
       });
     },
     /** 提交按钮 */
@@ -109,7 +119,7 @@ export default {
           if (this.form.deptId != null) {
             updateDept(this.form).then((response) => {
               this.msgSuccess("修改成功");
-              this.disabled=true
+              this.disabled = true;
             });
           }
         }

+ 2 - 2
src/views/system/dept/index.vue

@@ -102,7 +102,7 @@
               <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
             </el-form-item>
           </el-col>
-
+          <!--
           <el-col :span="12">
             <el-form-item label="油站类型" prop="singleStationFlag" :required="isShow" v-show="isShow">
               <el-radio-group v-model="form.singleStationFlag">
@@ -119,7 +119,7 @@
               </el-radio-group>
             </el-form-item>
           </el-col>
-
+          -->
           <el-col :span="12">
             <el-form-item label="负责人" prop="leader">
               <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" />