Ver código fonte

页面级权限控制

Joe 4 anos atrás
pai
commit
cfbda8ec9c

+ 12 - 2
src/api/system/dept.js

@@ -36,7 +36,7 @@ export function getDept(deptId) {
 // 查询当前登录人集团详细
 export function getGroupInfo() {
   return request({
-    url: '/system/dept/getGroupInfo',
+    url: '/system/dept/getGroupByUser',
     method: 'get'
   })
 }
@@ -112,4 +112,14 @@ export function getStations(query) {
     method: 'get',
     params: query
   })
-}
+}
+
+
+// 查询集团 和 站点的配置
+export function selectDeptFlage(query) {
+  return request({
+    url: '/system/dept/selectDeptFlage',
+    method: 'get',
+    params: query
+  })
+}

+ 18 - 103
src/components/PermissionContainer/index.vue

@@ -1,14 +1,15 @@
 <template>
   <div>
-      <template v-if="pageStatus == 4">
+      <template v-if="pageStatus == 5||(pageStatus == 4 && isFlag)">
         <slot></slot>
       </template>
-      <div v-else style="text-align: center;margin-top:60px">
+      <div v-else style="text-align: center;margin-top:40px">
         {{
-          (pageStatus == 0 ? "配置加载中..." : "") 
-          + (pageStatus == 1 ? "此页面不对此账号开放" : "")
-          + (pageStatus == 2 ? "没有此页内容的配置权限,请检查集团上的配置":"")
-          + (pageStatus == 3 ? "加载发生错误" : "")
+          (pageStatus == 0 ? tipArr[0] || "配置加载中..." : "") 
+          + (pageStatus == 1 ? tipArr[1] || "此页面不对此账号开放" : "")
+          + (pageStatus == 2 ? tipArr[2] || "没有此页内容的配置权限,请检查集团上的配置":"")
+          + (pageStatus == 3 ? tipArr[3] || "加载发生错误" : "")
+          + (pageStatus == 4 ? tipArr[4] || "开关暂未开启" : "")
         }}
       </div>
   </div>
@@ -20,13 +21,15 @@ export default {
   name: "PermissionContainer",
   data() {
     return {
-      pageStatus:4,
+      pageStatus:0,
     };
   },
   async created() {
     try {
       this.pageStatus = await this.queryPageStatus(this.jiBieArr,this.type)
+      console.log('返回码',this.pageStatus)
     } catch (error) {
+      console.log(error);
       this.pageStatus = 3  
     } 
   },
@@ -40,103 +43,15 @@ export default {
     type: {
       type: Number
     },
-    // page: {
-    //   type: Number,
-    //   default: 1,
-    // },
-    // limit: {
-    //   type: Number,
-    //   default: 10,
-    // },
-    // pageSizes: {
-    //   type: Array,
-    //   default() {
-    //     return [10, 20, 30, 50];
-    //   },
-    // },
-    // layout: {
-    //   type: String,
-    //   default: "total, sizes, prev, pager, next, jumper",
-    // },
-    // background: {
-    //   type: Boolean,
-    //   default: true,
-    // },
-    // autoScroll: {
-    //   type: Boolean,
-    //   default: true,
-    // },
-    // hidden: {
-    //   type: Boolean,
-    //   default: false,
-    // },
-    // pagerCount: {
-    //   type: Number,
-    //   default: 7,
-    // },
-    // text: {
-    //   type: String,
-    //   required: true,
-    // },
-    // name:{
-    //   type: String,
-    //   required: true,
-    // }
-  },
-  computed: {
-    // currentPage: {
-    //   get() {
-    //     return this.page;
-    //   },
-    //   set(val) {
-    //     this.$emit("update:page", val);
-    //   },
-    // },
-    // pageSize: {
-    //   get() {
-    //     return this.limit;
-    //   },
-    //   set(val) {
-    //     this.$emit("update:limit", val);
-    //   },
-    // },
-  },
-  methods: {
-    downloadImg() {
-      try {
-        window.pageYoffset = 0;
-        document.documentElement.scrollTop = 0;
-        document.body.scrollTop = 0;
-
-        html2canvas(document.getElementById("qrDiv_QrCode"), {
-          allowTaint: false,
-        }).then((canvas) => {
-          const a = document.createElement("a");
-          const event = new MouseEvent("click");
-          a.download = this.name;
-          a.href = canvas.toDataURL();
-          a.dispatchEvent(event);
-          this.$emit("downloadImg")
-        });
-      } catch (error) {
-        this.msgError("导出二维码失败,请刷新重试~")
-      }
-    },
-    exportQr(text) {
-      this.text = "https://goto.huijy.net/" + this.deptId + "/" + trimEqualStr;
-      this.exportQrDialog = true;
+    isFlag: { // 是开关界面,状态 5 和 4 都会显示出 内容
+      type: Boolean,
+      default: false
     },
-    handleSizeChange(val) {
-      this.$emit("pagination", { page: this.currentPage, limit: val });
-      if (this.autoScroll) {
-        scrollTo(0, 800);
-      }
-    },
-    handleCurrentChange(val) {
-      this.$emit("pagination", { page: val, limit: this.pageSize });
-      if (this.autoScroll) {
-        scrollTo(0, 800);
-      }
+    tipArr: {
+      type: Array,
+      default() {
+        return [];
+      },
     },
   },
 };

+ 2 - 0
src/main.js

@@ -27,6 +27,7 @@ import Pagination from "@/components/Pagination";
 //自定义表格工具扩展
 import RightToolbar from "@/components/RightToolbar"
 import { queryPageStatus } from "@/utils/pageStatus";
+import PermissionContainer from "@/components/PermissionContainer";
 
 // 全局方法挂载
 Vue.prototype.getDicts = getDicts
@@ -67,6 +68,7 @@ Vue.prototype.queryPageStatus = queryPageStatus
 // 全局组件挂载
 Vue.component('Pagination', Pagination)
 Vue.component('RightToolbar', RightToolbar)
+Vue.component('PermissionContainer', PermissionContainer)
 
 Vue.use(permission)
 

+ 0 - 1
src/store/modules/user.js

@@ -79,7 +79,6 @@ const user = {
     GetInfo({ commit, state }) {
       return new Promise((resolve, reject) => {
         getInfo(state.token).then(res => {
-          console.log('用户信息',res)
           const user = res.user
           const avatar = user.avatar == "" ? require("@/assets/image/profile.jpg") : process.env.VUE_APP_BASE_API + user.avatar;
           if (res.roles && res.roles.length > 0) { // 验证返回的roles是否是一个非空数组

+ 108 - 54
src/utils/pageStatus.js

@@ -1,90 +1,144 @@
-import { getGroupInfo } from "@/api/system/dept";
+import { getGroupInfo, selectDeptFlage } from "@/api/system/dept";
+
 import store from '@/store'
 /**
  * 油品,根据油品名查类型
  */
-export async function queryPageStatus(allowJiBieArr=[], type) { // 1 积分 2 电子卡 3 优惠券
-  //返回值  0 页面初始状态 1 此页面不对此用户不开放 2 权限不在此页面 3 发生错误 4 正常显示
+export async function queryPageStatus(allowJiBieArr = [], type) { 
+  // type 1 积分 2 电子卡 3 优惠券 4 标签
+  
+
+  //返回值  0 页面初始状态 1 此页面不对此用户不开放 2 权限不在此页面 3 发生错误 4 页面在此页面,但未开启功能 5 正常显示 
   const currentJiBie = store.state.user.jiBie
-  // 不符合jiBie
+  //不符合jiBie
   if(!allowJiBieArr.includes(currentJiBie)){
     return 1;
   }
   // 符合jiBie 不要求type
   if(!type){
-    return 4
+    return 5
   }
-  
-  const getGroupInfoRes = await getGroupInfo()
-  
-  if(getGroupInfoRes.code != 200){
+
+  if(currentJiBie == 0){
+    return 1
+  }
+
+  const confData = await selectDeptFlage();
+  if (confData.code != 200) {
     return 3
   }
+  let integralRuleFlag = 0
+  let integralFlag = 0
+  let cardRuleFlag = 0
+  let cardEnabledFlag = 0
+  let couponFlag = 0
+  let couponEnabledFlag = 0
+  let labelFlag = 0
 
-  // 存疑
-  if(getGroupInfoRes.data == null){
-    return 1
+
+  integralRuleFlag = confData.data.groupDept.integralRuleFlag; // 0 不共享 1 共享
+  cardRuleFlag = confData.data.groupDept.cardRuleFlag; // 0 不共享 1 共享
+  couponFlag = confData.data.groupDept.couponFlag; // 0 不共享 1 共享
+
+  if(integralRuleFlag == 1){
+    integralFlag = confData.data.groupDept.integralFlag; // 开启 不开启
+  }else{
+    if(currentJiBie == 2){
+      integralFlag = confData.data.userDept.integralFlag
+    }
   }
 
-  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){
+  if(cardRuleFlag == 1){
+    cardEnabledFlag = confData.data.groupDept.cardEnabledFlag; 
+  }else{
+    if(currentJiBie == 2){
+      cardEnabledFlag = confData.data.userDept.cardEnabledFlag
+    }
+  }
+
+
+  if(couponFlag == 1){
+    couponEnabledFlag = confData.data.groupDept.couponEnabledFlag; 
+  }else{
+    if(currentJiBie == 2){
+      couponEnabledFlag = confData.data.userDept.couponEnabledFlag
+    }
+  }
+
+  if(currentJiBie == 2){
+    labelFlag =  confData.data.userDept.labelFlag;
+  }
+  
+  
+  if (currentJiBie == 1) { // 集团 
+    if (type == 1) {
+      if (integralRuleFlag == 1) {
+        if (integralFlag == 1) {
+          return 5
+        }
         return 4
-      }else if(currentJiBie == 2){
+      } else {
         return 2
-      }else if(currentJiBie == 0){
-        return 1
       }
-    }
 
-  } else if(type == 2){
-    if(cardRuleFlag == 0){
-      if(currentJiBie == 1){
-        return 2
-      }else if(currentJiBie == 2){
+    } else if (type == 2) {
+      if (cardRuleFlag == 1 ) { 
+        if (cardEnabledFlag == 1) {
+          return 5
+        }
         return 4
-      }else if(currentJiBie == 0){
-        return 1
+      } else {
+        return 2
       }
-    }else if(cardRuleFlag == 1){
-      if(currentJiBie == 1){
+    } else if (type == 3) {
+      if (couponFlag == 1 ) {
+
+        if (couponEnabledFlag == 1) {
+          return 5
+        }
         return 4
-      }else if(currentJiBie == 2){
+      } else {
         return 2
-      }else if(currentJiBie == 0){
-        return 1
       }
+    } else if (type == 4) {
+      return 2
     }
-  }else if(type == 3){
-    if(couponFlag == 0){ // 不共享
-      if(currentJiBie == 1){ 
+  } else if (currentJiBie == 2) { // 站点
+    if (type == 1) {
+      if (integralRuleFlag != 1) {
+        if (integralFlag == 1) {
+          return 5
+        }
+        return 4
+      } else {
         return 2
-      }else if(currentJiBie == 2){
+      }
+
+    } else if (type == 2) {
+      if (cardRuleFlag != 1) { 
+        if (cardEnabledFlag == 1) {
+          return 5
+        }
         return 4
-      }else if(currentJiBie == 0){
-        return 1
+      } else {
+        return 2
       }
-    }else if(couponFlag == 1){
-      if(currentJiBie == 1){
+    } else if (type == 3) {
+      if (couponFlag != 1) { 
+        if (couponEnabledFlag == 1) {
+          return 5
+        }
         return 4
-      }else if(currentJiBie == 2){
+      } else {
         return 2
-      }else if(currentJiBie == 0){
-        return 1
+      }
+    } else if (type == 4) {
+      if (labelFlag != 1) { 
+        return 4
+      } else {
+        return 5
       }
     }
   }
-  return 3
 }

+ 10 - 14
src/views/coupon/Coupon_CreateCoupon.vue

@@ -1,11 +1,12 @@
 <template>
-  <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" class="app-container">
+  
+  <PermissionContainer 
+    :jiBieArr=[1,2] 
+    :type="3" 
+    :isFlag="true"
+    :tipArr="[,'优惠券功能只对集团和站点级别开放','因为集团上关于优惠券的共享配置,此级没有配置权限',,'您暂未启动优惠券功能',]"  
+  > 
+  <div class="app-container">
     <el-form>
       <el-form-item label="启动优惠劵" label-width="88px">
         <el-switch
@@ -660,6 +661,8 @@
       </div>
     </el-dialog>
   </div>
+  
+  </PermissionContainer>
 </template>
 
 <script>
@@ -736,7 +739,6 @@ export default {
        //创建优惠券的时间
       dateRangeCreatedDate: [],
       couponEnabledFlag: "1",
-      pageStatus: 4,
       // 油站设备管理表格数据
       createForm: {
         couponRemark: "",
@@ -858,7 +860,6 @@ export default {
   created() {
     this.init();
     this.getCoupon();
-    this.setPageStatus();
   },
   computed: {
     toggleable() {
@@ -1113,11 +1114,6 @@ export default {
       this.getCoupon();
       this.getVerificationList();
     },
-    setPageStatus() {
-      this.queryPageStatus([2]).then((res) => {
-        this.pageStatus = res;
-      });
-    },
     // 取消按钮
     cancel() {
       this.open = false;

Diferenças do arquivo suprimidas por serem muito extensas
+ 496 - 501
src/views/coupon/Coupon_CreateIssue.vue


+ 2 - 1
src/views/coupon/Coupon_Grant.vue

@@ -1,6 +1,7 @@
 <template>
 <div>
-    <al>1231</al>
+    <al :jiBieArr=[1] :type="2">1231</al>
+    <PermissionContainer :jiBieArr=[1] :type="2"> 1255555</PermissionContainer>
 </div>
 </template>
 

+ 28 - 24
src/views/coupon/Coupon_Statistics/index.vue

@@ -1,23 +1,29 @@
 <template>
-  <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" class="app-container">
-    <el-tabs v-model="activeName">
-      <el-tab-pane label="实时发放" name="realTime" :key="'info'">
-        <child1></child1>
-      </el-tab-pane>
-      <el-tab-pane label="按发放方式" name="issue" :key="'issue'">
-        <child2></child2>
-      </el-tab-pane>
-      <el-tab-pane label="按优惠券类" name="model" :key="'pay'">
-         <child3></child3>
-      </el-tab-pane>
-    </el-tabs>
-  </div>
+  <PermissionContainer
+    :jiBieArr="[1, 2]"
+    :type="3"
+    :tipArr="[
+      ,
+      '优惠券功能只对集团和站点级别开放',
+      '因为集团上关于优惠券的共享配置,此级没有配置权限',
+      ,
+      '您暂未启动优惠券功能',
+    ]"
+  >
+    <div>
+      <el-tabs v-model="activeName">
+        <el-tab-pane label="实时发放" name="realTime" :key="'info'">
+          <child1></child1>
+        </el-tab-pane>
+        <el-tab-pane label="按发放方式" name="issue" :key="'issue'">
+          <child2></child2>
+        </el-tab-pane>
+        <el-tab-pane label="按优惠券类" name="model" :key="'pay'">
+          <child3></child3>
+        </el-tab-pane>
+      </el-tabs>
+    </div>
+  </PermissionContainer>
 </template>
 
 <script>
@@ -87,7 +93,7 @@ export default {
       callback();
     };
     return {
-      activeName:'realTime',
+      activeName: "realTime",
       couponEnabledFlag: "1",
       exportQrDialog: false,
       pageStatus: 4,
@@ -279,7 +285,7 @@ export default {
         settings.baseURL + this.deptId + "/" + trimEqualStr;
     },
     downloadImg() {
-      console.log('');
+      console.log("");
     },
     translateTime(row) {
       let timeString = "";
@@ -496,9 +502,7 @@ export default {
         couponIssueRelationList: [],
         giveLimit: 9,
         giveCount: 999999,
-      }
-      
-      ;
+      };
       this.title = "添加优惠券";
       // this.createForm = {
       //   couponName: "",

+ 0 - 1
src/views/coupon/Coupon_Statistics1.vue

@@ -843,7 +843,6 @@ export default {
     console.log("settings", settings);
     // this.init();
     this.getCoupon();
-    // this.setPageStatus();
     this.getIssueList();
   },
   computed: {

+ 6 - 0
src/views/dzk/Dzk_Bill.vue

@@ -1,4 +1,8 @@
 <template>
+<PermissionContainer 
+  :jiBieArr="[0, 1, 2]" 
+  :tipArr="[,'电子卡功能只对集团和站点级别开放','因为集团上关于电子卡的共享配置,此级没有配置权限',,'您暂未启动电子卡功能',]" 
+> 
   <div class="app-container">
     <el-form
       :model="queryParams"
@@ -109,6 +113,8 @@
       @pagination="getList"
     />
   </div>
+</PermissionContainer>
+
 </template>
 
 <script>

+ 10 - 12
src/views/dzk/Dzk_Rule.vue

@@ -1,9 +1,11 @@
 <template>
-  <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" class="app-container">
+<PermissionContainer 
+  :jiBieArr=[1,2] 
+  :type="2" 
+  :isFlag="true"
+  :tipArr="[,'电子卡功能只对集团和站点级别开放','因为集团上关于电子卡的共享配置,此级没有配置权限',,'您暂未启动电子卡功能',]" 
+> 
+    <div  class="app-container">
     <el-form
       ref="settingForm"
       :model="settingForm"
@@ -320,6 +322,9 @@
       </div>
     </el-dialog>
   </div>
+</PermissionContainer>
+
+
 </template>
 
 <script>
@@ -393,7 +398,6 @@ export default {
       callback();
     };
     return {
-      pageStatus: 0,
       title: "",
       // 表单参数
       settingForm: {
@@ -473,7 +477,6 @@ export default {
     };
   },
   created() {
-    this.setPageStatus();
     this.init();
   },
   methods: {
@@ -511,11 +514,6 @@ export default {
         this.settingForm ={...this.settingForm}
       });
     },
-    setPageStatus() {
-      this.queryPageStatus([1,2],2).then((res) => {
-        this.pageStatus = res;
-      });
-    },
     timeClear() {
       this.settingForm.collectClickCalendar = [];
       this.settingForm.collectClickDay = [];

+ 77 - 72
src/views/dzk/Dzk_RuleList.vue

@@ -1,25 +1,26 @@
 <template>
-  <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" class="app-container">
-    <el-form :model="sumForm">
-      <el-form-item label="电子卡启动状态">
-        {{ sumForm.cardEnabledFlag == 0 ? "未开启" : "已开启" }}
-      </el-form-item>
-      <el-form-item
-        label="目前启动的电子卡"
-        v-if="sumForm.cardEnabledFlag == 1"
-      >
-        {{
-          sumForm.cardOilsType.length == 0
-            ? "你尚未选择要启动的电子卡"
-            : sumForm.cardOilsType.join(", ")
-        }}
-      </el-form-item>
+  <PermissionContainer
+    :jiBieArr="[1, 2]"
+    :type="2"
+    :tipArr="[,'电子卡功能只对集团和站点级别开放','因为集团上关于电子卡的共享配置,此级没有配置权限',,'您暂未启动电子卡功能',]"
+  >
+    <div class="app-container">
+      <el-form :model="sumForm">
+        <el-form-item label="电子卡启动状态">
+          {{ sumForm.cardEnabledFlag == 0 ? "未开启" : "已开启" }}
+        </el-form-item>
+        <el-form-item
+          label="目前启动的电子卡"
+          v-if="sumForm.cardEnabledFlag == 1"
+        >
+          {{
+            sumForm.cardOilsType.length == 0
+              ? "你尚未选择要启动的电子卡"
+              : sumForm.cardOilsType.join(", ")
+          }}
+        </el-form-item>
 
-      <!-- <el-form-item
+        <!-- <el-form-item
         label="所有积分规则的失效时间"
         v-if="sumForm.termDateManage == 2"
       >
@@ -32,12 +33,15 @@
           sumForm.integralActivity == 0 ? "未开启" : integralActivityDatePicker
         }}
       </el-form-item> -->
-      <el-form-item 
-        label="正在生效中的充值规则" 
-        v-if="sumForm.cardEnabledFlag == 1"
-      >
-          {{ sumForm.detailList.length===0 ? "你尚没有正在生效的规则":"" }}
-          <el-table :data="sumForm.detailList" v-if="sumForm.detailList.length!==0">
+        <el-form-item
+          label="正在生效中的充值规则"
+          v-if="sumForm.cardEnabledFlag == 1"
+        >
+          {{ sumForm.detailList.length === 0 ? "你尚没有正在生效的规则" : "" }}
+          <el-table
+            :data="sumForm.detailList"
+            v-if="sumForm.detailList.length !== 0"
+          >
             <af-table-column
               label="电子卡"
               align="center"
@@ -71,30 +75,37 @@
               </template>
             </af-table-column>
           </el-table>
-      </el-form-item>
-      <el-form-item
-        label="电子卡会叠加的优惠方案"
-        v-if="sumForm.cardEnabledFlag == 1"
-      >
-        <div>
-          {{ sumForm.isMarket == 1 ? "营销方案 ":""}}
-          {{ sumForm.isGradeSetting == 1 ? "等级优惠 ":""}}
-          {{ sumForm.isDiscountCoupon == 1 ? "优惠券 ":""}}
-          {{ sumForm.isLabel == 1 ? "标签 ":""}}
-          {{ sumForm.isMarket == 1 || sumForm.isGradeSetting == 1 || sumForm.isDiscountCoupon == 1 || sumForm.isLabel == 1 ? '' : "您未启动叠加,电子卡不会执行任何优惠方案" }}
-        </div>
-      </el-form-item>
-      
-      <el-form-item
-        label="充值活动"
-        v-if="sumForm.cardEnabledFlag == 1"
-      >
-        {{
-          sumForm.discountTimeSetting == 0 ? "未开启" : integralActivityDatePicker
-        }}
-      </el-form-item>
-    </el-form>
-  </div>
+        </el-form-item>
+        <el-form-item
+          label="电子卡会叠加的优惠方案"
+          v-if="sumForm.cardEnabledFlag == 1"
+        >
+          <div>
+            {{ sumForm.isMarket == 1 ? "营销方案 " : "" }}
+            {{ sumForm.isGradeSetting == 1 ? "等级优惠 " : "" }}
+            {{ sumForm.isDiscountCoupon == 1 ? "优惠券 " : "" }}
+            {{ sumForm.isLabel == 1 ? "标签 " : "" }}
+            {{
+              sumForm.isMarket == 1 ||
+              sumForm.isGradeSetting == 1 ||
+              sumForm.isDiscountCoupon == 1 ||
+              sumForm.isLabel == 1
+                ? ""
+                : "您未启动叠加,电子卡不会执行任何优惠方案"
+            }}
+          </div>
+        </el-form-item>
+
+        <el-form-item label="充值活动" v-if="sumForm.cardEnabledFlag == 1">
+          {{
+            sumForm.discountTimeSetting == 0
+              ? "未开启"
+              : integralActivityDatePicker
+          }}
+        </el-form-item>
+      </el-form>
+    </div>
+  </PermissionContainer>
 </template>
 
 <script>
@@ -159,15 +170,13 @@ export default {
           "31号",
         ],
       ],
-      pageStatus: 0,
     };
   },
   created() {
-    this.setPageStatus();
     this.getList();
     this.init();
   },
-  computed:{
+  computed: {
     integralActivityDatePicker() {
       if (!this.sumForm.discountTime) {
         return "";
@@ -197,7 +206,11 @@ export default {
         timeString += this.sumForm.discountTime.toString();
       }
 
-      timeString = timeString.replace(/(、)$/g, "") + " 享受赠送比例是" + this.sumForm.presentScale + '%的活动优惠';
+      timeString =
+        timeString.replace(/(、)$/g, "") +
+        " 享受赠送比例是" +
+        this.sumForm.presentScale +
+        "%的活动优惠";
       return timeString;
     },
   },
@@ -205,18 +218,17 @@ export default {
     init() {
       selectCustomerCardSetting().then((response) => {
         this.sumForm = response.data;
-        const cardOilsType = this.sumForm.cardOilsType == null ? "" : this.sumForm.cardOilsType
-        this.sumForm.cardOilsType = cardOilsType
-          .split(",")
-          .filter((ele) => {
-            return ele != "";
-          });
+        const cardOilsType =
+          this.sumForm.cardOilsType == null ? "" : this.sumForm.cardOilsType;
+        this.sumForm.cardOilsType = cardOilsType.split(",").filter((ele) => {
+          return ele != "";
+        });
 
-        this.sumForm.detailList = this.sumForm.detailList.filter((ele)=>{
-          return this.sumForm.cardOilsType.includes(ele.cardType)
-        })
+        this.sumForm.detailList = this.sumForm.detailList.filter((ele) => {
+          return this.sumForm.cardOilsType.includes(ele.cardType);
+        });
 
-        const oilType = ['',"汽油卡", "柴油卡", "非油品卡", "LNG卡", "CNG卡"];
+        const oilType = ["", "汽油卡", "柴油卡", "非油品卡", "LNG卡", "CNG卡"];
         this.sumForm.cardOilsType.map((ele, index) => {
           this.sumForm.cardOilsType[index] = oilType[ele];
         });
@@ -235,18 +247,11 @@ export default {
           if (this.sumForm.discountTime.length == 0) {
             this.sumForm.discountTime = [];
           } else {
-            this.sumForm.discountTime = this.sumForm.discountTime.split(
-              ","
-            );
+            this.sumForm.discountTime = this.sumForm.discountTime.split(",");
           }
         }
       });
     },
-    setPageStatus() {
-      this.queryPageStatus([1,2],2).then((res) => {
-        this.pageStatus = res;
-      });
-    },
     oilNameFormatter(row, column) {
       if (row.cardType === "1") {
         return "汽油卡";

+ 212 - 188
src/views/label/Label_AddLabel.vue

@@ -1,206 +1,227 @@
 <template>
-  <div v-if="pageStatus == 0">配置加载中...</div>
-  <div v-else-if="pageStatus == 1">此页面只对站点用户开发</div>
-  <div v-else-if="pageStatus == 4">
-    <div
-      style="
-        width: 450px;
-        margin: 0 auto;
-        margin-top: 20px;
-        margin-bottom: 60px;
-        border: 1px solid red;
-        box-sizing: border-box;
-        padding: 20px;
-      "
-    >
-      <div style="color: red; font-size: 12px">
-        <span style="display: inline-block; width: 20px"> </span>
-        1、标签用于对不同用户群体进行区别定价。
-      </div>
-      <div style="color: red; font-size: 12px">
-        <span style="display: inline-block; width: 20px"> </span>
-        2、标签的优先级高于营销方案。所以将用户加入标签后,此用户将优先执行标签的优惠规则,不会再执行营销方案。
-      </div>
-      <div style="color: red; font-size: 12px">
-        <span style="display: inline-block; width: 20px"> </span>
-        3、标签码用于给用户扫码使用,从而让用户享受对应的标签优惠,实现灵活处理,方便快捷。您还可以配置是否强制拉用户进入标签,实现用户长期留在此标签。
-      </div>
-    </div>
-
-    <el-form
-      :model="labelForm"
-      ref="labelForm"
-      label-width="90px"
-      style="width: 400px; margin: 0 auto"
-      label-position="left"
-    >
-      <el-form-item
-        label="启用标签"
-        prop="labelFlag"
-        :rules="{
-          required: true,
-          message: '请选择是否开启标签',
-          trigger: 'change',
-        }"
-      >
-        <el-radio-group v-model="labelForm.labelFlag" :disabled="editable">
-          <el-radio label="0">关闭</el-radio>
-          <el-radio label="1">开启</el-radio>
-        </el-radio-group>
-      </el-form-item>
+  <PermissionContainer
+    :jiBieArr="[2]"
+    :isFlag="true"
+    :tipArr="[, '标签配置只对站点级别开放', '', , '您没有开启标签功能']"
+  >
+    <div>
       <div
-        v-if="
-          labelForm.labelFlag == 1 && (labelForm.labelArr || []).length == 0
+        style="
+          width: 450px;
+          margin: 0 auto;
+          margin-top: 20px;
+          margin-bottom: 60px;
+          border: 1px solid red;
+          box-sizing: border-box;
+          padding: 20px;
         "
       >
-        <el-form-item label=" ">
-          您没有添加标签,所以标签功能尚未生效
-        </el-form-item>
+        <div style="color: red; font-size: 12px">
+          <span style="display: inline-block; width: 20px"> </span>
+          1、标签用于对不同用户群体进行区别定价。
+        </div>
+        <div style="color: red; font-size: 12px">
+          <span style="display: inline-block; width: 20px"> </span>
+          2、标签的优先级高于营销方案。所以将用户加入标签后,此用户将优先执行标签的优惠规则,不会再执行营销方案。
+        </div>
+        <div style="color: red; font-size: 12px">
+          <span style="display: inline-block; width: 20px"> </span>
+          3、标签码用于给用户扫码使用,从而让用户享受对应的标签优惠,实现灵活处理,方便快捷。您还可以配置是否强制拉用户进入标签,实现用户长期留在此标签。
+        </div>
       </div>
-      <div v-if="labelForm.labelFlag == 1">
+
+      <el-form
+        :model="labelForm"
+        ref="labelForm"
+        label-width="90px"
+        style="width: 400px; margin: 0 auto"
+        label-position="left"
+      >
         <el-form-item
-          v-for="(label, index) in labelForm.labelArr"
-          :label="'标签' + (index + 1)"
-          :key="index"
-          :prop="'labelArr.' + index + '.labelName'"
+          label="启用标签"
+          prop="labelFlag"
           :rules="{
             required: true,
-            message: '标签不能为空,不需要请删除此项',
-            trigger: 'blur',
+            message: '请选择是否开启标签',
+            trigger: 'change',
           }"
         >
-          <el-input v-model="label.labelName" :disabled="editable"></el-input>
-          <el-popconfirm
-            title="此标签在用,删除后之前导出的支付码将失效,删除前请仔细检查,是否删除?"
-            confirm-button-text="删除"
-            @onConfirm="removeLabel(label)"
-            v-if="!!label.id"
+          <el-radio-group v-model="labelForm.labelFlag" :disabled="editable">
+            <el-radio label="0">关闭</el-radio>
+            <el-radio label="1">开启</el-radio>
+          </el-radio-group>
+        </el-form-item>
+        <div
+          v-if="
+            labelForm.labelFlag == 1 && (labelForm.labelArr || []).length == 0
+          "
+        >
+          <el-form-item label=" ">
+            您没有添加标签,所以标签功能尚未生效
+          </el-form-item>
+        </div>
+        <div v-if="labelForm.labelFlag == 1">
+          <el-form-item
+            v-for="(label, index) in labelForm.labelArr"
+            :label="'标签' + (index + 1)"
+            :key="index"
+            :prop="'labelArr.' + index + '.labelName'"
+            :rules="{
+              required: true,
+              message: '标签不能为空,不需要请删除此项',
+              trigger: 'blur',
+            }"
           >
+            <el-input v-model="label.labelName" :disabled="editable"></el-input>
+            <el-popconfirm
+              title="此标签在用,删除后之前导出的支付码将失效,删除前请仔细检查,是否删除?"
+              confirm-button-text="删除"
+              @onConfirm="removeLabel(label)"
+              v-if="!!label.id"
+            >
+              <el-button
+                slot="reference"
+                :disabled="editable"
+                :loading="label.loading"
+                class="mt-2"
+                >删除</el-button
+              >
+            </el-popconfirm>
             <el-button
-              slot="reference"
+              @click="removeLabel(label)"
               :disabled="editable"
               :loading="label.loading"
               class="mt-2"
+              v-else
               >删除</el-button
             >
-          </el-popconfirm>
+            <el-button
+              @click="exportPayCode(label)"
+              v-show="editable"
+              :loading="label.loading"
+              class="mt-2 ml-3"
+              >导出标签码</el-button
+            >
+          </el-form-item>
+        </div>
+        <el-form-item>
           <el-button
-            @click="removeLabel(label)"
+            @click="addLabel"
             :disabled="editable"
-            :loading="label.loading"
-            class="mt-2"
-            v-else
-            >删除</el-button
+            v-show="labelForm.labelFlag == 1"
+            >新增</el-button
           >
+          <el-button type="danger" @click="editLabel">{{
+            editable ? "修改标签" : "取消"
+          }}</el-button>
           <el-button
-            @click="exportPayCode(label)"
-            v-show="editable"
-            :loading="label.loading"
-            class="mt-2 ml-3"
-            >导出标签码</el-button
+            type="primary"
+            @click="submitForm('labelForm')"
+            :disabled="editable"
+            v-show="!editable"
+            >提交</el-button
           >
         </el-form-item>
-      </div>
-      <el-form-item>
-        <el-button
-          @click="addLabel"
-          :disabled="editable"
-          v-show="labelForm.labelFlag == 1"
-          >新增</el-button
-        >
-        <el-button type="danger" @click="editLabel">{{
-          editable ? "修改标签" : "取消"
-        }}</el-button>
-        <el-button
-          type="primary"
-          @click="submitForm('labelForm')"
-          :disabled="editable"
-          v-show="!editable"
-          >提交</el-button
-        >
-      </el-form-item>
-    </el-form>
+      </el-form>
 
-    <el-dialog
-      :visible.sync="selectQrDialog"
-      width="700px"
-      append-to-body
-      title="选择导出标签"
-    >
-      <div
-        class="d-block mx-auto"
-        style="width: 600px; text-align: center"
-        id="qrDiv"
+      <el-dialog
+        :visible.sync="selectQrDialog"
+        width="700px"
+        append-to-body
+        title="选择导出标签"
       >
-        <h5>标签码设置</h5>
-        用户扫码支付后,是否<b>强制将用户拉入此标签</b>?
-        <el-switch
-          v-model="exportLabelQr.isAddLabel"
-          active-value="1"
-          inactive-value="0"
-          @change="handleStatusChange"
-        ></el-switch
-        ><br />
-        当前设置:{{
-          exportLabelQr.isAddLabel == "1"
-            ? "支付后强拉至此标签,下次扫员工码和站点码都可以实现此标签优惠~"
-            : "支付后不强拉到此标签,下次想再享受此标签优惠需要再次扫此标签码~"
-        }}
-        <hr />
-        <div v-if="personnelList.length != 1">
-          <h5>总标签码</h5>
-          <div>
-            用户可以先扫描<span style="color: red; font-weight: bold">
-              总标签码</span
-            >,再让用户扫描
-            <span style="color: red; font-weight: bold">{{
-              personnelList.length == 1 ? "站点码" : "员工码"
-            }}</span>
-            ,即可实现标签优惠。
-          </div>
-          <div>此码<b>适用所有的加油员</b>,不过需要<b>用户扫码两次</b>~</div>
-          <div class="btn btn-success mt-3" @click="exportSumLabel">导出【总标签码】</div>
+        <div
+          class="d-block mx-auto"
+          style="width: 600px; text-align: center"
+          id="qrDiv"
+        >
+          <h5>标签码设置</h5>
+          用户扫码支付后,是否<b>强制将用户拉入此标签</b>?
+          <el-switch
+            v-model="exportLabelQr.isAddLabel"
+            active-value="1"
+            inactive-value="0"
+            @change="handleStatusChange"
+          ></el-switch
+          ><br />
+          当前设置:{{
+            exportLabelQr.isAddLabel == "1"
+              ? "支付后强拉至此标签,下次扫员工码和站点码都可以实现此标签优惠~"
+              : "支付后不强拉到此标签,下次想再享受此标签优惠需要再次扫此标签码~"
+          }}
           <hr />
-        </div>
-        <div>
-          <h5>员工标签码</h5>
-          <div>
-            用户可以一次性扫描<span style="color: red; font-weight: bold">
-              员工标签码</span
-            >,实现标签优惠。
+          <div v-if="personnelList.length != 1">
+            <h5>总标签码</h5>
+            <div>
+              用户可以先扫描<span style="color: red; font-weight: bold">
+                总标签码</span
+              >,再让用户扫描
+              <span style="color: red; font-weight: bold">{{
+                personnelList.length == 1 ? "站点码" : "员工码"
+              }}</span>
+              ,即可实现标签优惠。
+            </div>
+            <div>此码<b>适用所有的加油员</b>,不过需要<b>用户扫码两次</b>~</div>
+            <div class="btn btn-success mt-3" @click="exportSumLabel">
+              导出【总标签码】
+            </div>
+            <hr />
           </div>
           <div>
-            此码是<b>一个加油员一个标签码</b>,用户只需要<b>扫码一次</b>。
-          </div>
-          <div v-if="personnelList.length == 1">
-            <h5 style="color: red">
-              您的站点目前<b>仅有一个加油员</b>,请优先使用此码~
-            </h5>
-          </div>
-          <div v-for="emp in personnelList" :key="emp.personnelId">
-            <div class="btn btn-primary mt-3" @click="exportEmployeeLabel(emp)">
-              导出{{ emp.personnelName }}的【员工标签码】
+            <h5>员工标签码</h5>
+            <div>
+              用户可以一次性扫描<span style="color: red; font-weight: bold">
+                员工标签码</span
+              >,实现标签优惠。
+            </div>
+            <div>
+              此码是<b>一个加油员一个标签码</b>,用户只需要<b>扫码一次</b>。
+            </div>
+            <div v-if="personnelList.length == 1">
+              <h5 style="color: red">
+                您的站点目前<b>仅有一个加油员</b>,请优先使用此码~
+              </h5>
+            </div>
+            <div v-for="emp in personnelList" :key="emp.personnelId">
+              <div
+                class="btn btn-primary mt-3"
+                @click="exportEmployeeLabel(emp)"
+              >
+                导出{{ emp.personnelName }}的【员工标签码】
+              </div>
             </div>
+            <br />
           </div>
-          <br />
         </div>
-      </div>
-    </el-dialog>
+      </el-dialog>
 
-    <el-dialog
-      :visible.sync="exportQrDialog"
-      width="600px"
-      append-to-body
-      title="导出标签"
-    >
-      <div>
-        <qr :text="currentExport.text" @downloadImg="downloadImg" :name="currentExport.type==1 ? '员工标签码':'总标签码'">
-          <div v-if="currentExport.type==1">员工标签码:{{this.$store.state.user.deptName}}-{{currentExport.name}}-{{ currentExport.labelName }}</div>
-          <div v-if="currentExport.type==0">总标签码:{{this.$store.state.user.deptName}}-{{ currentExport.labelName }}</div>
-        </qr>
-      </div>
-    </el-dialog>
-  </div>
+      <el-dialog
+        :visible.sync="exportQrDialog"
+        width="600px"
+        append-to-body
+        title="导出标签"
+      >
+        <div>
+          <qr
+            :text="currentExport.text"
+            @downloadImg="downloadImg"
+            :name="currentExport.type == 1 ? '员工标签码' : '总标签码'"
+          >
+            <div v-if="currentExport.type == 1">
+              员工标签码:{{ this.$store.state.user.deptName }}-{{
+                currentExport.name
+              }}-{{ currentExport.labelName }}
+            </div>
+            <div v-if="currentExport.type == 0">
+              总标签码:{{ this.$store.state.user.deptName }}-{{
+                currentExport.labelName
+              }}
+            </div>
+          </qr>
+        </div>
+      </el-dialog>
+    </div>
+  </PermissionContainer>
 </template>
 <script>
 import {
@@ -235,14 +256,14 @@ export default {
       exportLabelQr: {},
       exportEmployeeQr: {},
       personnelList: [],
-      currentExport:{
-        name:'',
-        type:1, // 0 总标签码 1 员工标签码
-        text:'',
-        labelName:'',
-        labelId:'',
+      currentExport: {
+        name: "",
+        type: 1, // 0 总标签码 1 员工标签码
+        text: "",
+        labelName: "",
+        labelId: "",
       },
-      base:null
+      base: null,
     };
   },
   created() {
@@ -406,27 +427,30 @@ export default {
           this.msgError("抱歉,修改失败了,请刷新网页重试~");
         });
     },
-    downloadImg(){
-      this.msgSuccess("亲,导出成功了~")
+    downloadImg() {
+      this.msgSuccess("亲,导出成功了~");
     },
-    exportEmployeeLabel(emp){
+    exportEmployeeLabel(emp) {
       this.currentExport.name = emp.personnelName;
       this.currentExport.type = 1;
 
-      const encodeStr = "e" + emp.personnelId + "/l" + this.currentExport.labelId + "/";
+      const encodeStr =
+        "e" + emp.personnelId + "/l" + this.currentExport.labelId + "/";
       const encodedStr = this.base.encode(encodeStr);
       const trimEqualStr = encodedStr.replace(/={1,}$/g, "");
-      this.currentExport.text = "https://goto.huijy.net/" + this.deptId + "/" + trimEqualStr;
+      this.currentExport.text =
+        "https://goto.huijy.net/" + this.deptId + "/" + trimEqualStr;
       this.exportQrDialog = true;
     },
-    exportSumLabel(){
-      const encodeStr =  "l" + this.currentExport.labelId + "/";
+    exportSumLabel() {
+      const encodeStr = "l" + this.currentExport.labelId + "/";
       const encodedStr = this.base.encode(encodeStr);
       const trimEqualStr = encodedStr.replace(/={1,}$/g, "");
-      this.currentExport.text = "https://goto.huijy.net/" + this.deptId + "/" + trimEqualStr;
-      this.currentExport.type = 0
+      this.currentExport.text =
+        "https://goto.huijy.net/" + this.deptId + "/" + trimEqualStr;
+      this.currentExport.type = 0;
       this.exportQrDialog = true;
-    }
+    },
   },
 };
 </script>

+ 101 - 89
src/views/label/Label_AddUser.vue

@@ -1,27 +1,30 @@
 <template>
-  <div v-if="pageStatus == 0">配置加载中...</div>
-  <div v-else-if="pageStatus == 1">此页面只对站点用户开发</div>
-  <div v-else-if="pageStatus == 4">
-    <div  class="Label_AddUser" v-if="labelList.labelFlag == 1">
-      <div v-if="(labelList.labelArr||[]).length == 0">
-        你未添加标签,请先添加标签后再来设置规则
-      </div>
-      
-      <el-collapse
-        v-model="activeNames"
-        @change="openLabel"
-        class=""
-        accordion
-      >
-        <el-collapse-item
-          :name="ele.id"
-          v-for="(ele, index) in labelList.labelArr"
-          :key="ele.id"
+  <PermissionContainer
+    :jiBieArr="[2]"
+    :type="4"
+    :tipArr="[, '标签配置只对站点级别开放', '', , '您没有开启标签功能']"
+  >
+    <div>
+      <div class="Label_AddUser" v-if="labelList.labelFlag == 1">
+        <div v-if="(labelList.labelArr || []).length == 0">
+          你未添加标签,请先添加标签后再来设置规则
+        </div>
+
+        <el-collapse
+          v-model="activeNames"
+          @change="openLabel"
+          class=""
+          accordion
         >
-          <template slot="title">
-            标签{{ index + 1 }} <i class="header-icon el-icon-info"></i>
-            <b>{{ ele.labelName }}</b>
-          </template>
+          <el-collapse-item
+            :name="ele.id"
+            v-for="(ele, index) in labelList.labelArr"
+            :key="ele.id"
+          >
+            <template slot="title">
+              标签{{ index + 1 }} <i class="header-icon el-icon-info"></i>
+              <b>{{ ele.labelName }}</b>
+            </template>
             <el-col :span="11">
               <div>
                 <el-input
@@ -89,26 +92,33 @@
                         class="underline btn24"
                         size="mini"
                         @click="handleMoveLabel('right', 1, scope.row)"
-                      >添加</el-button>
+                        >添加</el-button
+                      >
                     </template>
                   </el-table-column>
                 </el-table-column>
               </el-table>
-  
+
               <pagination
                 v-show="leftTotal > 0"
                 :total="leftTotal"
                 :page.sync="leftQuery.pageNum"
                 :limit.sync="leftQuery.pageSize"
                 @pagination="getLeftData"
-                style="margin-bottom:30px"
+                style="margin-bottom: 30px"
                 :pagerCount="5"
                 layout="total, prev, pager, next"
               />
-              
             </el-col>
-            <el-col :span="2" style="text-align: center;">
-               <el-button type="primary" size="mini" @click="toggleLabel" style="margin-top:200px" :disabled="toggleable">切换</el-button>
+            <el-col :span="2" style="text-align: center">
+              <el-button
+                type="primary"
+                size="mini"
+                @click="toggleLabel"
+                style="margin-top: 200px"
+                :disabled="toggleable"
+                >切换</el-button
+              >
             </el-col>
             <el-col :span="11">
               <div>
@@ -187,17 +197,17 @@
                 :page.sync="rightQuery.pageNum"
                 :limit.sync="rightQuery.pageSize"
                 @pagination="getRightData"
-                style="margin-bottom:30px"
+                style="margin-bottom: 30px"
                 :pagerCount="5"
                 layout="total, prev, pager, next"
               />
             </el-col>
-          
-        </el-collapse-item>
-      </el-collapse>
+          </el-collapse-item>
+        </el-collapse>
+      </div>
+      <div v-else>你未启用标签功能</div>
     </div>
-    <div v-else>你未启用标签功能</div>
-  </div>
+  </PermissionContainer>
 </template>
 
 <script>
@@ -223,45 +233,45 @@ export default {
       timer: null,
       leftData: [],
       rightData: [],
-      leftTotal:100,
-      rightTotal:100,
+      leftTotal: 100,
+      rightTotal: 100,
       leftQuery: {
         pageNum: 1,
         pageSize: 10,
-        labelId:null,
+        labelId: null,
         customerName: null,
-        phone:null
+        phone: null,
       },
       rightQuery: {
         pageNum: 1,
         pageSize: 10,
-        labelId:null,
+        labelId: null,
         customerName: null,
-        phone:null
+        phone: null,
       },
-      moveRightData:[],
-      moveLeftData:[]
+      moveRightData: [],
+      moveLeftData: [],
     };
   },
   created() {
     this.init();
   },
-  computed:{
-    toggleable(){
-      if(this.moveRightData.length === 0 && this.moveLeftData.length === 0){
+  computed: {
+    toggleable() {
+      if (this.moveRightData.length === 0 && this.moveLeftData.length === 0) {
         return true;
       }
       return false;
-    }
+    },
   },
   methods: {
-    getLeftData(){
+    getLeftData() {
       // this.leftData = [];
       selectNotCustomerLabelInfo(this.leftQuery)
         .then((res) => {
           if (res.code == 200) {
             this.leftData = res.rows;
-            this.leftTotal = res.total
+            this.leftTotal = res.total;
           } else {
             throw new Error("");
           }
@@ -271,9 +281,8 @@ export default {
           this.leftTotal = 0;
           this.msgError("拉取左边标签用户失败,请刷新~");
         });
-      
     },
-    getRightData(){
+    getRightData() {
       // this.rightData = [];
       selectPhoneList(this.rightQuery)
         .then((res) => {
@@ -289,17 +298,20 @@ export default {
           this.rightTotal = 0;
           this.msgError("拉取右边标签用户失败,请刷新~");
         });
-
     },
-    handleMoveLabel(direction = 'right', type = 1, row, labelIdArr){  // type 1 传row  type 2 idArr    direction right 向右转移 left 向左转移
-       let changeArr = []
-       if(type == 1){
-          changeArr.push(row.phone)
-       }else if(type == 2){
-         changeArr = labelIdArr
-       }
+    handleMoveLabel(direction = "right", type = 1, row, labelIdArr) {
+      // type 1 传row  type 2 idArr    direction right 向右转移 left 向左转移
+      let changeArr = [];
+      if (type == 1) {
+        changeArr.push(row.phone);
+      } else if (type == 2) {
+        changeArr = labelIdArr;
+      }
       const query = {
-        labelId: direction == 'right' ? this.leftQuery.labelId : this.rightQuery.labelId,
+        labelId:
+          direction == "right"
+            ? this.leftQuery.labelId
+            : this.rightQuery.labelId,
         flag: "1",
         phoneList: changeArr,
       };
@@ -308,44 +320,44 @@ export default {
       } else if (direction == "left") {
         query.flag = "1";
       }
-      addAndDelCustomerLabel(query).then((res) => {
-        if (res.code == 200) {
-          this.getLeftData();
-          this.getRightData();
-        } else {
-          throw new Error("");
-        }
-      }).catch((err)=>{
-        
-      });
+      addAndDelCustomerLabel(query)
+        .then((res) => {
+          if (res.code == 200) {
+            this.getLeftData();
+            this.getRightData();
+          } else {
+            throw new Error("");
+          }
+        })
+        .catch((err) => {});
     },
-    clearLeftQuery(labelId = this.leftQuery.labelId){
-      this.leftQuery =  {
+    clearLeftQuery(labelId = this.leftQuery.labelId) {
+      this.leftQuery = {
         pageNum: 1,
         pageSize: 10,
         labelId,
         customerName: null,
-        phone:null
-      }
+        phone: null,
+      };
     },
-    clearRightQuery(labelId = this.rightQuery.labelId){
+    clearRightQuery(labelId = this.rightQuery.labelId) {
       console.log(this.rightQuery);
-      this.rightQuery =  {
+      this.rightQuery = {
         pageNum: 1,
         pageSize: 10,
         labelId,
         customerName: null,
-        phone:null
-      }
+        phone: null,
+      };
     },
     handleLeftChange(val) {
       let changeArr = [];
       val.map((ele) => {
         changeArr.push(ele.phone);
       });
-      this.moveLeftData = []
-      this.moveRightData = changeArr
-      this.$refs.rightTable.map((ele)=>{
+      this.moveLeftData = [];
+      this.moveRightData = changeArr;
+      this.$refs.rightTable.map((ele) => {
         ele.clearSelection();
       });
     },
@@ -354,10 +366,10 @@ export default {
       val.map((ele) => {
         changeArr.push(ele.phone);
       });
-      this.moveLeftData = changeArr
-      this.moveRightData = []
-      this.$refs.leftTable.map((ele)=>{
-        ele.clearSelection()
+      this.moveLeftData = changeArr;
+      this.moveRightData = [];
+      this.$refs.leftTable.map((ele) => {
+        ele.clearSelection();
       });
     },
     init() {
@@ -394,15 +406,15 @@ export default {
     //       this.msgError("拉取标签下用户信息失败");
     //     });
     // },
-    toggleLabel(){
+    toggleLabel() {
       console.log(this.moveLeftData);
       console.log(this.moveRightData);
-      if(this.moveLeftData.length !== 0){
-        this.handleMoveLabel('left',2,null,this.moveLeftData)
+      if (this.moveLeftData.length !== 0) {
+        this.handleMoveLabel("left", 2, null, this.moveLeftData);
         return;
       }
-      if(this.moveRightData.length !== 0){
-        this.handleMoveLabel('right',2,null,this.moveRightData)
+      if (this.moveRightData.length !== 0) {
+        this.handleMoveLabel("right", 2, null, this.moveRightData);
         return;
       }
       return;

+ 8 - 1
src/views/label/Label_Batch.vue

@@ -1,5 +1,10 @@
 <template>
-  <div class="app-container">
+  <PermissionContainer
+    :jiBieArr="[2]"
+    :type="4"
+    :tipArr="[, '标签配置只对站点级别开放', '', , '您没有开启标签功能']"
+  >
+    <div class="app-container">
     <div class="card card-body">
       <div class="container">
         <div class="row">
@@ -604,6 +609,8 @@
       </div>
     </el-dialog>
   </div>
+  </PermissionContainer>
+
 </template>
 
 <script>

+ 152 - 152
src/views/label/Label_SetLabel.vue

@@ -1,165 +1,165 @@
 <template>
-  <div v-if="pageStatus == 0">配置加载中...</div>
-  <div v-else-if="pageStatus == 1">此页面只对站点用户开发</div>
-  <div v-else-if="pageStatus == 4" >
-      <div v-if="labelForm.labelFlag == 1">
-    <div v-if="labelForm.labelArr.length == 0">
-      你未添加标签,请先添加标签后再来设置规则
-    </div>
-    <el-collapse v-model="activeNames">
-      <el-collapse-item
-        :title="ele.labelName"
-        :name="ele.id"
-        v-for="(ele, index) in labelForm.labelArr"
-        :key="ele.id"
-      >
-        <template slot="title">
-          标签{{ index + 1 }} <i class="header-icon el-icon-info"></i>
-          <b>{{ ele.labelName }}</b>
-        </template>
-        <div v-if="(ele.labelRuleDetailList || []).length == 0">
-          此条标签下面没有规则
-        </div>
-        <div
-          style="margin-left: 200px; float: right"
-          @click="addRule($event, ele)"
-        >
-          <i class="header-icon el-icon-plus"></i>添加规则
-        </div>
-        <el-table
-          :data="ele.labelRuleDetailList"
-          v-if="(ele.labelRuleDetailList || []).length != 0"
+  <PermissionContainer
+    :jiBieArr="[2]"
+    :type="4"
+    :tipArr="[, '标签配置只对站点级别开放', '', , '您没有开启标签功能']"
+  >
+   <div v-if="labelForm.labelFlag == 1">
+      <div v-if="labelForm.labelArr.length == 0">
+        你未添加标签,请先添加标签后再来设置规则
+      </div>
+      <el-collapse v-model="activeNames">
+        <el-collapse-item
+          :title="ele.labelName"
+          :name="ele.id"
+          v-for="(ele, index) in labelForm.labelArr"
+          :key="ele.id"
         >
-          <af-table-column label="油品名称" align="center" prop="oilName" />
-          <af-table-column label="优惠条件" align="center">
-            <template slot-scope="scope">
-              满 {{ scope.row.discountAmt }}
-              {{ scope.row.discountTerm == 2 ? "元" : "L" }},每升优惠
-              {{ scope.row.discountLitersAmt }} 元
-            </template>
-          </af-table-column>
-          <af-table-column
-            label="优惠条件金额"
-            v-if="false"
-            align="center"
-            prop="discountAmt"
-          />
-          <af-table-column
-            label="优惠金额"
-            v-if="false"
-            align="center"
-            prop="discountLitersAmt"
-          />
-          <af-table-column
-            label="优惠方案类型"
-            v-if="false"
-            align="center"
-            prop="discountPlanType"
-          />
-          <af-table-column
-            label="操作"
-            align="center"
-            class-name="small-padding fixed-width"
+          <template slot="title">
+            标签{{ index + 1 }} <i class="header-icon el-icon-info"></i>
+            <b>{{ ele.labelName }}</b>
+          </template>
+          <div v-if="(ele.labelRuleDetailList || []).length == 0">
+            此条标签下面没有规则
+          </div>
+          <div
+            style="margin-left: 200px; float: right"
+            @click="addRule($event, ele)"
+          >
+            <i class="header-icon el-icon-plus"></i>添加规则
+          </div>
+          <el-table
+            :data="ele.labelRuleDetailList"
+            v-if="(ele.labelRuleDetailList || []).length != 0"
           >
-            <template slot-scope="scope">
-              <!-- <el-button
+            <af-table-column label="油品名称" align="center" prop="oilName" />
+            <af-table-column label="优惠条件" align="center">
+              <template slot-scope="scope">
+                满 {{ scope.row.discountAmt }}
+                {{ scope.row.discountTerm == 2 ? "元" : "L" }},每升优惠
+                {{ scope.row.discountLitersAmt }} 元
+              </template>
+            </af-table-column>
+            <af-table-column
+              label="优惠条件金额"
+              v-if="false"
+              align="center"
+              prop="discountAmt"
+            />
+            <af-table-column
+              label="优惠金额"
+              v-if="false"
+              align="center"
+              prop="discountLitersAmt"
+            />
+            <af-table-column
+              label="优惠方案类型"
+              v-if="false"
+              align="center"
+              prop="discountPlanType"
+            />
+            <af-table-column
+              label="操作"
+              align="center"
+              class-name="small-padding fixed-width"
+            >
+              <template slot-scope="scope">
+                <!-- <el-button
             size="mini"
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
             >修改</el-button
           > -->
-              <el-popconfirm
-                title="确认删除此条规则?"
-                confirm-button-text="删除"
-                @onConfirm="handleDelete(scope.row, ele)"
-              >
-                <el-button
-                  slot="reference"
-                  size="mini"
-                  type="text"
-                  icon="el-icon-delete"
-                  >删除</el-button
+                <el-popconfirm
+                  title="确认删除此条规则?"
+                  confirm-button-text="删除"
+                  @onConfirm="handleDelete(scope.row, ele)"
                 >
-              </el-popconfirm>
-            </template>
-          </af-table-column>
-        </el-table>
-      </el-collapse-item>
-    </el-collapse>
-    <el-dialog
-      :visible.sync="openDialog"
-      width="600px"
-      append-to-body
-      :title="'为' + '【' + currentLabel.labelName + '】 ' + '标签设置规则'"
-    >
-      <el-form ref="addRulesForm" :model="addRulesForm" label-width="140px">
-        <el-form-item
-          label="油品名称"
-          prop="oilName"
-          :rules="{
-            required: true,
-            message: '请填入油品名称',
-            trigger: 'change',
-          }"
-        >
-          <el-select
-            v-model="addRulesForm.oilName"
-            placeholder="油品名称"
-            clearable
+                  <el-button
+                    slot="reference"
+                    size="mini"
+                    type="text"
+                    icon="el-icon-delete"
+                    >删除</el-button
+                  >
+                </el-popconfirm>
+              </template>
+            </af-table-column>
+          </el-table>
+        </el-collapse-item>
+      </el-collapse>
+      <el-dialog
+        :visible.sync="openDialog"
+        width="600px"
+        append-to-body
+        :title="'为' + '【' + currentLabel.labelName + '】 ' + '标签设置规则'"
+      >
+        <el-form ref="addRulesForm" :model="addRulesForm" label-width="140px">
+          <el-form-item
+            label="油品名称"
+            prop="oilName"
+            :rules="{
+              required: true,
+              message: '请填入油品名称',
+              trigger: 'change',
+            }"
           >
-            <el-option
-              v-for="dict in filterOilNameOptions"
-              :key="dict.oilName"
-              :label="dict.oilName"
-              :value="dict.oilName"
-            />
-          </el-select>
-        </el-form-item>
-        <el-form-item
-          label="优惠条件"
-          prop="discountLitersAmt"
-          :rules="{
-            required: true,
-            message: '优惠条件不能为空',
-            trigger: 'blur',
-          }"
-        >
-          <el-radio-group v-model="addRulesForm.discountTerm">
-            <el-radio :label="2">按加油金额优惠</el-radio>
-            <el-radio :label="1">按加油升数优惠</el-radio>
-          </el-radio-group>
-          <div
-            v-show="
-              addRulesForm.discountTerm == 2 || addRulesForm.discountTerm == 1
-            "
+            <el-select
+              v-model="addRulesForm.oilName"
+              placeholder="油品名称"
+              clearable
+            >
+              <el-option
+                v-for="dict in filterOilNameOptions"
+                :key="dict.oilName"
+                :label="dict.oilName"
+                :value="dict.oilName"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item
+            label="优惠条件"
+            prop="discountLitersAmt"
+            :rules="{
+              required: true,
+              message: '优惠条件不能为空',
+              trigger: 'blur',
+            }"
           >
-            满
-            <el-input-number
-              v-model="addRulesForm.discountAmt"
-              size="mini"
-              :min="0"
-            />
-
-            <span>{{ addRulesForm.discountTerm == 1 ? "L" : "元" }}</span>
-            ,每升优惠
-            <el-input-number
-              v-model="addRulesForm.discountLitersAmt"
-              size="mini"
-              :min="0"
-            />元
-          </div>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="handleSubmit">确 定</el-button>
-        <el-button @click="cancelSubmit">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-  <div v-else>你未启用标签功能</div>
-  </div>
+            <el-radio-group v-model="addRulesForm.discountTerm">
+              <el-radio :label="2">按加油金额优惠</el-radio>
+              <el-radio :label="1">按加油升数优惠</el-radio>
+            </el-radio-group>
+            <div
+              v-show="
+                addRulesForm.discountTerm == 2 || addRulesForm.discountTerm == 1
+              "
+            >
+              满
+              <el-input-number
+                v-model="addRulesForm.discountAmt"
+                size="mini"
+                :min="0"
+              />
 
+              <span>{{ addRulesForm.discountTerm == 1 ? "L" : "元" }}</span>
+              ,每升优惠
+              <el-input-number
+                v-model="addRulesForm.discountLitersAmt"
+                size="mini"
+                :min="0"
+              />元
+            </div>
+          </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="handleSubmit">确 定</el-button>
+          <el-button @click="cancelSubmit">取 消</el-button>
+        </div>
+      </el-dialog>
+    </div>
+  </PermissionContainer>
 </template>
 
 <script>
@@ -169,7 +169,7 @@ import {
   selectLabelList,
   deleteLabelRuleDetail,
   addDetail,
-  detailList
+  detailList,
 } from "@/api/label/label";
 import { listPrice } from "@/api/station/price";
 export default {
@@ -183,7 +183,7 @@ export default {
       oilNameOptions: [],
       filterOilNameOptions: [],
       currentLabel: {},
-      pageStatus:0
+      pageStatus: 0,
     };
   },
   created() {
@@ -191,7 +191,7 @@ export default {
   },
   methods: {
     init() {
-      this.setPageStatus()
+      this.setPageStatus();
       this.getList();
       this.getOilName();
     },

+ 54 - 53
src/views/lng/Lng_GroupSet.vue

@@ -1,12 +1,16 @@
 <template>
-  <div>
+  <PermissionContainer
+    :jiBieArr="[2]"
+    :isFlag="true"
+    :tipArr="[, '平台设价只对站点级别开放', '', , '']"
+  >
     <div
       class="accordion"
       :id="'accordionExample' + index"
       v-for="(ele, index) in list"
       :key="index"
     >
-      <div class="card  m-auto" style="width: 500px">
+      <div class="card m-auto" style="width: 500px">
         <div class="card-header" :id="'headingOne' + index">
           <h2 class="mb-0">
             <button
@@ -66,7 +70,7 @@
                 </el-radio-group>
               </el-form-item>
               <el-form-item label="司机优惠折扣" prop="driverPrice">
-                 {{ ele.driverPriceType == 1 ? "直降" : "折扣" }}
+                {{ ele.driverPriceType == 1 ? "直降" : "折扣" }}
                 <input
                   type="text"
                   class="form-control form-control-sm d-inline-block"
@@ -78,9 +82,7 @@
               </el-form-item>
               <el-form-item label="站点交易余额" prop="balance">
                 {{ ele.balance === null ? 0 : ele.balance }}
-                <a href="#"
-                  class="mb-2 ml-2"
-                  @click="toggleBalanceFlag(ele)"
+                <a href="#" class="mb-2 ml-2" @click="toggleBalanceFlag(ele)"
                   >{{ !ele.balanceFlag ? "调整" : "收起" }}
                 </a>
                 <div class="mt-2" v-show="!!ele.balanceFlag">
@@ -91,8 +93,8 @@
                     :disabled="!ele.balanceFlag"
                     v-model.number="ele.type"
                   >
-                    <option value="+"> + </option>
-                    <option value="-"> - </option>
+                    <option value="+">+</option>
+                    <option value="-">-</option>
                   </select>
                   <input
                     type="text"
@@ -114,12 +116,12 @@
               <el-form-item>
                 <el-button
                   type="primary"
-                  @click="submitForm(ele,index)"
+                  @click="submitForm(ele, index)"
                   class="mr-2"
                   :disabled="!ele.editFlag"
                   >提交</el-button
                 >
-                <el-button @click="toggleEditFlag(ele,index)" >{{
+                <el-button @click="toggleEditFlag(ele, index)">{{
                   !ele.editFlag ? "修改" : "取消"
                 }}</el-button>
               </el-form-item>
@@ -128,16 +130,11 @@
         </div>
       </div>
     </div>
-  </div>
+  </PermissionContainer>
 </template>
 
 <script>
-import { 
-getLngList, 
-getLngSingle,
-updateInfo,
-balanceChange
-} from "@/api/lng";
+import { getLngList, getLngSingle, updateInfo, balanceChange } from "@/api/lng";
 
 export default {
   name: "Lng_GroupSet",
@@ -191,7 +188,7 @@ export default {
         });
     },
     toggleBalanceFlag(ele) {
-      ele.type = "+"
+      ele.type = "+";
       ele.balanceFlag = !ele.balanceFlag;
       ele.editFlag = false;
       this.list = [...this.list];
@@ -200,49 +197,53 @@ export default {
       ele.editFlag = !ele.editFlag;
       ele.balanceFlag = false;
       if (!ele.editFlag) {
-        this.getLngSingle(ele.id, index)
-      }else{
+        this.getLngSingle(ele.id, index);
+      } else {
         this.list = [...this.list];
       }
     },
-    submitForm(ele, index){
-      console.log(12)
-      updateInfo(ele).then((res)=>{
-        console.log(12);
-        if(res.code == 200){
-          this.getLngSingle(ele.id, index).then((res)=>{
-            this.editFlag = false
-          })
-        }else{
-          throw new Error("");
-        }
-      }).catch(()=>{
-        this.msgError("修改失败,请刷新后重试")
-      }) 
+    submitForm(ele, index) {
+      console.log(12);
+      updateInfo(ele)
+        .then((res) => {
+          console.log(12);
+          if (res.code == 200) {
+            this.getLngSingle(ele.id, index).then((res) => {
+              this.editFlag = false;
+            });
+          } else {
+            throw new Error("");
+          }
+        })
+        .catch(() => {
+          this.msgError("修改失败,请刷新后重试");
+        });
     },
-    changeBalance(ele, index){
-      if(!ele.type || !ele.amt || !ele.deptId || ele.amt<=0){
-        this.msgError("请正确填写参数")
+    changeBalance(ele, index) {
+      if (!ele.type || !ele.amt || !ele.deptId || ele.amt <= 0) {
+        this.msgError("请正确填写参数");
         return;
       }
       balanceChange({
-        type:ele.type,
-        amt:ele.amt,
-        stationId: ele.deptId
-      }).then((res)=>{
-        if(res.code == 200){
-          this.getLngSingle(ele.id,index).then((res)=>{
-            ele.type = '+'
-            ele.amt = 0
-            ele.balanceFlag = false;
-          })
-        }else{
-          throw new Error("");
-        }
-      }).catch(()=>{
-        this.msgError("修改失败,请刷新后重试")
+        type: ele.type,
+        amt: ele.amt,
+        stationId: ele.deptId,
       })
-    }
+        .then((res) => {
+          if (res.code == 200) {
+            this.getLngSingle(ele.id, index).then((res) => {
+              ele.type = "+";
+              ele.amt = 0;
+              ele.balanceFlag = false;
+            });
+          } else {
+            throw new Error("");
+          }
+        })
+        .catch(() => {
+          this.msgError("修改失败,请刷新后重试");
+        });
+    },
   },
 };
 </script>

+ 221 - 220
src/views/point/Point_Product.vue

@@ -1,216 +1,231 @@
 <template>
-  <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" class="app-container">
-    <el-form
-      :model="queryParams"
-      ref="queryForm"
-      :inline="true"
-      label-width="68px"
-    >
-      <el-form-item label="商品名称" prop="waresName">
-        <el-input
-          v-model="queryParams.waresName"
-          placeholder="请输入商品名称"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button
-          type="cyan"
-          icon="el-icon-search"
-          size="mini"
-          @click="handleQuery"
-          >搜索</el-button
-        >
-        <el-button
-          type="info"
-          icon="el-icon-refresh"
-          size="mini"
-          @click="resetQuery"
-          >重置</el-button
-        >
-        <el-button
-          type="primary"
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          >新增</el-button
-        >
-      </el-form-item>
-    </el-form>
-
-    <el-table :data="waresList">
-      <af-table-column label="商品id" align="center" prop="id" v-if="false" />
-      <af-table-column
-        label="商品类别"
-        align="center"
-        prop="waresType"
-        v-if="false"
-      />
-      <af-table-column label="商品名称" align="center" prop="waresName" />
-      <af-table-column label="兑换所需积分" align="center" prop="saleIntegral" />
-      <af-table-column
-        label="商品图片"
-        align="center"
-        prop="waresPic"
-        v-if="false"
-      />
-      <af-table-column
-        label="商品详情文案"
-        align="center"
-        prop="waresDetail"
-        width="155"
-      />
-      <af-table-column label="油站名称" align="center" prop="stationName" />
-      <af-table-column label="库存" align="center" prop="waresCount" />
-      <af-table-column
-        label="商品状态"
-        align="center"
-        prop="waresStatus"
-        :formatter="waresStatusFotmat"
-      />
-      <af-table-column
-        label="操作"
-        align="center"
-        class-name="small-padding fixed-width"
-        
+  <PermissionContainer
+    :jiBieArr="[2]"
+    :tipArr="[
+      ,
+      '积分商品只对站点级别开放',
+      '因为集团上关于积分的共享配置,此级没有配置权限',
+      ,
+      '您暂未启动积分功能',
+    ]"
+  >
+    <div>
+      <el-form
+        :model="queryParams"
+        ref="queryForm"
+        :inline="true"
+        label-width="68px"
       >
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="updateSJ(scope.row)"
-          >
-            {{
-              scope.row.waresStatus == 1
-                ? "下架"
-                : scope.row.waresStatus == 2
-                ? "上架"
-                : ""
-            }}
-          </el-button>
+        <el-form-item label="商品名称" prop="waresName">
+          <el-input
+            v-model="queryParams.waresName"
+            placeholder="请输入商品名称"
+            clearable
+            size="small"
+            @keyup.enter.native="handleQuery"
+          />
+        </el-form-item>
+        <el-form-item>
           <el-button
+            type="cyan"
+            icon="el-icon-search"
             size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleDataUpdate(scope.row)"
+            @click="handleQuery"
+            >搜索</el-button
           >
-            修改资料
-          </el-button>
           <el-button
+            type="info"
+            icon="el-icon-refresh"
             size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleStockUpdate(scope.row)"
+            @click="resetQuery"
+            >重置</el-button
           >
-            修改库存
-          </el-button>
           <el-button
+            type="primary"
+            icon="el-icon-plus"
             size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleDelete(scope.row)"
-            >删除</el-button
+            @click="handleAdd"
+            >新增</el-button
           >
-        </template>
-      </af-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total > 0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+        </el-form-item>
+      </el-form>
 
-    <!-- 添加或修改【请填写功能名称】对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="120px">
-        <el-form-item
+      <el-table :data="waresList">
+        <af-table-column label="商品id" align="center" prop="id" v-if="false" />
+        <af-table-column
+          label="商品类别"
+          align="center"
+          prop="waresType"
+          v-if="false"
+        />
+        <af-table-column label="商品名称" align="center" prop="waresName" />
+        <af-table-column
+          label="兑换所需积分"
+          align="center"
+          prop="saleIntegral"
+        />
+        <af-table-column
           label="商品图片"
+          align="center"
           prop="waresPic"
-          :required="operation == 1 || operation == 3"
-          v-if="operation == 1 || operation == 3"
+          v-if="false"
+        />
+        <af-table-column
+          label="商品详情文案"
+          align="center"
+          prop="waresDetail"
+          width="155"
+        />
+        <af-table-column label="油站名称" align="center" prop="stationName" />
+        <af-table-column label="库存" align="center" prop="waresCount" />
+        <af-table-column
+          label="商品状态"
+          align="center"
+          prop="waresStatus"
+          :formatter="waresStatusFotmat"
+        />
+        <af-table-column
+          label="操作"
+          align="center"
+          class-name="small-padding fixed-width"
         >
-          <el-upload
-            class="avatar-uploader"
-            :action="addressUrl"
-            :headers="headers"
-            :show-file-list="false"
-            :on-success="handleAvatarSuccess"
-            :before-upload="beforeAvatarUpload"
+          <template slot-scope="scope">
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="updateSJ(scope.row)"
+            >
+              {{
+                scope.row.waresStatus == 1
+                  ? "下架"
+                  : scope.row.waresStatus == 2
+                  ? "上架"
+                  : ""
+              }}
+            </el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleDataUpdate(scope.row)"
+            >
+              修改资料
+            </el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleStockUpdate(scope.row)"
+            >
+              修改库存
+            </el-button>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              @click="handleDelete(scope.row)"
+              >删除</el-button
+            >
+          </template>
+        </af-table-column>
+      </el-table>
+
+      <pagination
+        v-show="total > 0"
+        :total="total"
+        :page.sync="queryParams.pageNum"
+        :limit.sync="queryParams.pageSize"
+        @pagination="getList"
+      />
+
+      <!-- 添加或修改【请填写功能名称】对话框 -->
+      <el-dialog
+        :title="title"
+        :visible.sync="open"
+        width="500px"
+        append-to-body
+      >
+        <el-form ref="form" :model="form" :rules="rules" label-width="120px">
+          <el-form-item
+            label="商品图片"
+            prop="waresPic"
+            :required="operation == 1 || operation == 3"
+            v-if="operation == 1 || operation == 3"
+          >
+            <el-upload
+              class="avatar-uploader"
+              :action="addressUrl"
+              :headers="headers"
+              :show-file-list="false"
+              :on-success="handleAvatarSuccess"
+              :before-upload="beforeAvatarUpload"
+            >
+              <img
+                v-if="form.waresPic"
+                :src="form.waresPic"
+                style="width: 150px; height: 150px"
+                class="avatar"
+              />
+              <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+              <div class="el-upload__tip" slot="tip">
+                点击图片重新上传,图片大小不超过5M
+              </div>
+            </el-upload>
+          </el-form-item>
+          <el-form-item
+            label="商品名称"
+            prop="waresName"
+            :required="operation == 1 || operation == 3"
+            v-if="operation == 1 || operation == 3"
+          >
+            <el-input v-model="form.waresName" placeholder="请输入商品名称" />
+          </el-form-item>
+          <el-form-item
+            label="商品介绍文案"
+            prop="waresDetail"
+            :required="operation == 1 || operation == 3"
+            v-if="operation == 1 || operation == 3"
+          >
+            <textarea
+              v-model="form.waresDetail"
+              placeholder="介绍文案"
+              rows="4"
+              cols="40"
+            ></textarea>
+          </el-form-item>
+          <el-form-item
+            label="兑换所需积分"
+            prop="saleIntegral"
+            :required="operation == 1 || operation == 3"
+            v-if="operation == 1 || operation == 3"
           >
-            <img
-              v-if="form.waresPic"
-              :src="form.waresPic"
-              style="width: 150px; height: 150px"
-              class="avatar"
+            <el-input-number
+              v-model="form.saleIntegral"
+              :min="0"
+              placeholder="兑换积分"
             />
-            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
-            <div class="el-upload__tip" slot="tip">
-              点击图片重新上传,图片大小不超过5M
-            </div>
-          </el-upload>
-        </el-form-item>
-        <el-form-item
-          label="商品名称"
-          prop="waresName"
-          :required="operation == 1 || operation == 3"
-          v-if="operation == 1 || operation == 3"
-        >
-          <el-input v-model="form.waresName" placeholder="请输入商品名称" />
-        </el-form-item>
-        <el-form-item
-          label="商品介绍文案"
-          prop="waresDetail"
-          :required="operation == 1 || operation == 3"
-          v-if="operation == 1 || operation == 3"
-        >
-          <textarea
-            v-model="form.waresDetail"
-            placeholder="介绍文案"
-            rows="4"
-            cols="40"
-          ></textarea>
-        </el-form-item>
-        <el-form-item
-          label="兑换所需积分"
-          prop="saleIntegral"
-          :required="operation == 1 || operation == 3"
-          v-if="operation == 1 || operation == 3"
-        >
-          <el-input-number
-            v-model="form.saleIntegral"
-            :min="0"
-            placeholder="兑换积分"
-          />
-        </el-form-item>
-        <el-form-item
-          label="库存"
-          prop="waresCount"
-          :required="operation == 2 || operation == 3"
-          v-if="operation == 2 || operation == 3"
-        >
-          <el-input-number
-            v-model="form.waresCount"
-            :min="0"
-            placeholder="请输入库存数量"
-          />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
+          </el-form-item>
+          <el-form-item
+            label="库存"
+            prop="waresCount"
+            :required="operation == 2 || operation == 3"
+            v-if="operation == 2 || operation == 3"
+          >
+            <el-input-number
+              v-model="form.waresCount"
+              :min="0"
+              placeholder="请输入库存数量"
+            />
+          </el-form-item>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="primary" @click="submitForm">确 定</el-button>
+          <el-button @click="cancel">取 消</el-button>
+        </div>
+      </el-dialog>
+    </div>
+  </PermissionContainer>
 </template>
 
 <script>
@@ -246,26 +261,14 @@ export default {
       // 表单校验
       rules: {},
       headers: { Authorization: "Bearer " + getToken() },
-      addressUrl:
-        location.protocol +
-        "//" +
-        location.host +
-        process.env.VUE_APP_BASE_API +
-        "/common/upload",
+      addressUrl: process.env.VUE_APP_BASE_API + "/common/upload",
       operation: 1, // 1 修改资料 2修改库存 3 添加
-      pageStatus: 0
     };
   },
   created() {
-    this.setPageStatus();
     this.getList();
   },
   methods: {
-    setPageStatus() {
-      this.queryPageStatus([2]).then((res) => {
-        this.pageStatus = res;
-      });
-    },
     waresStatusFotmat(row, column) {
       if (row.waresStatus === "1") {
         return "已上架";
@@ -376,21 +379,19 @@ export default {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning",
-      })
-        .then(()=>{
-          this.form = row
-          this.form.waresStatus = 3;
-          editInfoWares(this.form).then((response) => {
-            this.msgSuccess("删除成功");
-            this.getList();
-          });
+      }).then(() => {
+        this.form = row;
+        this.form.waresStatus = 3;
+        editInfoWares(this.form).then((response) => {
+          this.msgSuccess("删除成功");
+          this.getList();
         });
-
+      });
     },
     // 文件上传成功处理++ =
     handleAvatarSuccess(res, file) {
-      this.form.waresPic = res.url; 
-      this.form = {...this.form} ;
+      this.form.waresPic = res.url;
+      this.form = { ...this.form };
     },
     beforeAvatarUpload(file) {
       // const isJPG = file.type === "image/jpeg" || "image/png";

+ 10 - 18
src/views/point/Point_Rule.vue

@@ -1,9 +1,11 @@
 <template>
-  <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">
+  <PermissionContainer
+    :jiBieArr="[1, 2]"
+    :type="1"
+    :isFlag="true"
+    :tipArr="[,'积分功能只对集团和站点级别开放','因为集团上关于积分的共享配置,此级没有配置权限',,'您暂未启动积分功能',]"
+  >
+    <div>
     <el-form ref="form" :model="form" :rules="rules" label-width="120px">
       <el-form-item
         label="是否开启积分"
@@ -290,6 +292,8 @@
       >
     </div>
   </div>
+  </PermissionContainer>
+
 </template>
 
 <script>
@@ -450,29 +454,17 @@ export default {
           "31",
         ],
       ],
-      addressUrl:
-        location.protocol +
-        "//" +
-        location.host +
-        process.env.VUE_APP_BASE_API +
-        "/common/upload",
-      pageStatus: 0,
+      addressUrl:  process.env.VUE_APP_BASE_API + "/common/upload",
     };
   },
   created() {
     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,

+ 82 - 77
src/views/point/Point_RuleList.vue

@@ -1,74 +1,86 @@
 <template>
-  <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" class="app-container">
-    <el-form :model="sumForm">
-      <el-form-item label="开始积分功能">
-        {{ sumForm.integralFlag == 0 ? "未关闭" : "已开启" }}
-      </el-form-item>
-      <el-form-item
-        label="积分清空的日期"
-        v-if="sumForm.integralTermSetting == 2"
-      >
-        {{
-          sumForm.integralFlag == 0 ? "积分永久有效" : sumForm.integralEmptyTime
-        }}
-      </el-form-item>
-      <el-form-item
-        label="所有积分规则的失效时间"
-        v-if="sumForm.termDateManage == 2"
-      >
-        {{
-          sumForm.termDateManage == 0 ? "积分规则永久有效" : sumForm.emptyDate
-        }}
-      </el-form-item>
-      <el-form-item label="多倍积分活动的状态">
-        {{
-          sumForm.integralActivity == 0 ? "未开启" : integralActivityDatePicker
-        }}
-      </el-form-item>
-      <el-form-item label="正在生效的积分规则">
-        {{ ruleList.length == 0 ? "当前尚没有正在生效的规则" : "" }}
-        <el-table :data="ruleList">
-          <af-table-column
-            label="油站id"
-            align="center"
-            prop="stationId"
-            v-if="false"
-          />
-          <af-table-column label="油品" align="center" prop="oilName" />
-          <af-table-column label="会员等级" align="center">
-            <template slot-scope="scope">
-              <span>{{
-                scope.row.gradeName === null ? "所有人" : scope.row.gradeName
-              }}</span>
-            </template>
-          </af-table-column>
-          <af-table-column label="规则" align="center">
-            <template slot-scope="scope">
-              <span>{{
-                (!scope.row.ruleType
-                  ? ""
-                  : ruleTypeFormat[scope.row.ruleType] + "---") +
-                "满" +
-                scope.row.ruleTerms +
-                (!scope.row.ruleType
-                  ? "元开始积分"
-                  : ruleTermsFormat[scope.row.ruleType] + "---") +
-                "---每消费" +
-                scope.row.saleAmt +
-                "元获得" +
-                scope.row.integral +
-                "积分"
-              }}</span>
-            </template>
-          </af-table-column>
-        </el-table>
-      </el-form-item>
-    </el-form>
-  </div>
+  <PermissionContainer
+    :jiBieArr="[1, 2]"
+    :type="1"
+    :tipArr="[
+      ,
+      '积分功能只对集团和站点级别开放',
+      '因为集团上关于积分的共享配置,此级没有配置权限',
+      ,
+      '您暂未启动积分功能',
+    ]"
+  >
+    <div>
+      <el-form :model="sumForm">
+        <el-form-item label="开始积分功能">
+          {{ sumForm.integralFlag == 0 ? "已关闭" : "已开启" }}
+        </el-form-item>
+        <el-form-item
+          label="积分清空的日期"
+          v-if="sumForm.integralTermSetting == 2"
+        >
+          {{
+            sumForm.integralFlag == 0
+              ? "积分永久有效"
+              : sumForm.integralEmptyTime
+          }}
+        </el-form-item>
+        <el-form-item
+          label="所有积分规则的失效时间"
+          v-if="sumForm.termDateManage == 2"
+        >
+          {{
+            sumForm.termDateManage == 0 ? "积分规则永久有效" : sumForm.emptyDate
+          }}
+        </el-form-item>
+        <el-form-item label="多倍积分活动的状态">
+          {{
+            sumForm.integralActivity == 0
+              ? "未开启"
+              : integralActivityDatePicker
+          }}
+        </el-form-item>
+        <el-form-item label="正在生效的积分规则">
+          {{ ruleList.length == 0 ? "当前尚没有正在生效的规则" : "" }}
+          <el-table :data="ruleList">
+            <af-table-column
+              label="油站id"
+              align="center"
+              prop="stationId"
+              v-if="false"
+            />
+            <af-table-column label="油品" align="center" prop="oilName" />
+            <af-table-column label="会员等级" align="center">
+              <template slot-scope="scope">
+                <span>{{
+                  scope.row.gradeName === null ? "所有人" : scope.row.gradeName
+                }}</span>
+              </template>
+            </af-table-column>
+            <af-table-column label="规则" align="center">
+              <template slot-scope="scope">
+                <span>{{
+                  (!scope.row.ruleType
+                    ? ""
+                    : ruleTypeFormat[scope.row.ruleType] + "---") +
+                  "满" +
+                  scope.row.ruleTerms +
+                  (!scope.row.ruleType
+                    ? "元开始积分"
+                    : ruleTermsFormat[scope.row.ruleType] + "---") +
+                  "---每消费" +
+                  scope.row.saleAmt +
+                  "元获得" +
+                  scope.row.integral +
+                  "积分"
+                }}</span>
+              </template>
+            </af-table-column>
+          </el-table>
+        </el-form-item>
+      </el-form>
+    </div>
+  </PermissionContainer>
 </template>
 
 <script>
@@ -135,7 +147,6 @@ export default {
           "31号",
         ],
       ],
-      pageStatus: 0,
     };
   },
   computed: {
@@ -174,7 +185,6 @@ export default {
     },
   },
   created() {
-    this.setPageStatus();
     // 5.20
     listRuleOne({
       pageNum: 1,
@@ -201,11 +211,6 @@ export default {
     this.getList();
   },
   methods: {
-    setPageStatus() {
-      this.queryPageStatus([1, 2], 1).then((res) => {
-        this.pageStatus = res;
-      });
-    },
     /** 查询列表 */
     getList() {
       //积分规则信息

+ 7 - 11
src/views/station/Station_Accounting.vue

@@ -1,9 +1,9 @@
 <template>
-  <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" class="app-container">
+<PermissionContainer 
+    :jiBieArr=[2] 
+    :tipArr="[,'班结只对站点级别开放','',,'',]"  
+  >
+    <div>
     <el-form
       :model="queryParams"
       ref="queryForm"
@@ -69,6 +69,8 @@
       </div>
     </el-dialog>
   </div>
+</PermissionContainer> 
+
 </template>
 
 <script>
@@ -115,16 +117,10 @@ export default {
   },
   created() {
     // 查询班结数据
-    this.setPageStatus();
     this.getStructure();
     this.initFromOrder();
   },
   methods: {
-    setPageStatus() {
-      this.queryPageStatus([2]).then((res) => {
-        this.pageStatus = res;
-      });
-    },
     async getStructure() {
       this.opo.classStructureMan = this.$store.state.user.name;
       const structureRes = await getAgeClassStructure();

+ 9 - 5
src/views/station/Station_Adjustment/index.vue

@@ -1,9 +1,10 @@
 <template>
-  <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 class="tabZujian" v-else-if="pageStatus == 4">
+<PermissionContainer 
+    :jiBieArr=[2] 
+    :isFlag="true"
+    :tipArr="[,'油站调价只对集团和站点级别开放','',,'',]"  
+  > 
+    <div class="tabZujian" >
     <el-tabs v-model="activeName"  @tab-click="handleClick">
       <el-tab-pane label="油品管理" name="adjust" key="adjust">
         <adjust />
@@ -13,6 +14,9 @@
       </el-tab-pane>
     </el-tabs>
   </div>
+</PermissionContainer>
+
+
 </template>
 <script>
 import adjust from "./adjust";

+ 9 - 11
src/views/station/Station_Configuration/index.vue

@@ -1,9 +1,10 @@
 <template>
-  <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" class="tabZujian">
+<PermissionContainer 
+    :jiBieArr=[2] 
+    :isFlag="true"
+    :tipArr="[,'油站配置只对集团和站点级别开放','',,'',]"  
+  > 
+  <div  class="tabZujian">
     <el-tabs v-model="activeName">
       <el-tab-pane label="油站信息" name="info" :key="'info'">
         <child1></child1>
@@ -13,6 +14,9 @@
       </el-tab-pane>
     </el-tabs>
   </div>
+
+</PermissionContainer>
+
 </template>
 <script>
 import tabZujianChild1 from "./info.vue";
@@ -32,14 +36,8 @@ export default {
     };
   },
   created() {
-    this.setPageStatus();
   },
   methods: {
-    setPageStatus() {
-      this.queryPageStatus([2]).then((res) => {
-        this.pageStatus = res;
-      });
-    },
   },
 };
 </script>

+ 7 - 7
src/views/station/Station_Employee.vue

@@ -1,11 +1,9 @@
 <template>
-  <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" class="app-container">
+<PermissionContainer 
+    :jiBieArr=[2] 
+    :tipArr="[,'员工的配置只对站点级别开放','',,'',]"  
+  > 
+    <div>
     <el-form
       :model="queryParams"
       ref="queryForm"
@@ -246,6 +244,8 @@
       </div>
     </el-dialog>
   </div>
+</PermissionContainer>
+
 </template>
 
 <script>

+ 7 - 7
src/views/station/Station_Equipment.vue

@@ -1,11 +1,9 @@
 <template>
-  <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" class="app-container">
+<PermissionContainer 
+    :jiBieArr=[2] 
+    :tipArr="[,'设备管理只对站点级别开放','',,'',]"  
+  > 
+    <div>
     <el-form
       :model="queryForm"
       ref="queryForm"
@@ -242,6 +240,8 @@
       </div>
     </el-dialog>
   </div>
+</PermissionContainer>
+
 </template>
 
 <script>

+ 8 - 5
src/views/station/Station_Group.vue

@@ -1,9 +1,10 @@
 <template>
-  <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">
+
+<PermissionContainer 
+    :jiBieArr=[1] 
+    :tipArr="[,'集团的配置信息只对集团级别开放','',,'',]"  
+  > 
+    <div>
     <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">
@@ -66,6 +67,8 @@
       </el-row>
     </div>
   </div>
+</PermissionContainer>
+
 </template>
 
 <script>

+ 7 - 5
src/views/station/Station_OilGun.vue

@@ -1,9 +1,9 @@
 <template>
-  <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" class="app-container">
+<PermissionContainer 
+    :jiBieArr=[2] 
+    :tipArr="[,'油枪的配置只对站点级别开放','',,'',]"  
+  > 
+   <div>
     <el-form
       :model="queryParams"
       ref="queryForm"
@@ -114,6 +114,8 @@
       </div>
     </el-dialog>
   </div>
+</PermissionContainer>
+ 
 </template>
 
 <script>

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff