Ver Fonte

积分管理页面

MS-QJVSRANLTYEO\Administrator há 4 anos atrás
pai
commit
e5d9a17003

+ 31 - 0
Yijia-SaaS/yijia-ui/src/components/SelectDept/index.vue

@@ -0,0 +1,31 @@
+<template>
+  <el-select
+    v-model="stationId"
+    placeholder="请选择油站"
+    clearable
+    size="small"
+  >
+    <el-option
+      v-for="item in stationOptions"
+      :key="item.deptId"
+      :label="item.deptName"
+      :value="item.deptId"
+    ></el-option>
+  </el-select>
+</template>
+<script>
+import selectDept from 'SelectDept'
+
+export default {
+  name: "index",
+  data() {
+    return {
+      search: '',
+      options: [],
+      searchPool: [],
+    }
+  },
+}
+</script>
+
+

+ 8 - 1
Yijia-SaaS/yijia-ui/src/layout/components/Navbar.vue

@@ -5,7 +5,8 @@
     <breadcrumb id="breadcrumb-container" class="breadcrumb-container" />
 
     <div class="right-menu">
-      <template v-if="device!=='mobile'">
+     <template>
+<!--       <selectDept id="select_dept" />-->
         <search id="header-search" class="right-menu-item" />
         <screenfull id="screenfull" class="right-menu-item hover-effect" />
         <el-tooltip content="布局大小" effect="dark" placement="bottom">
@@ -44,7 +45,13 @@ import Search from '@/components/HeaderSearch'
 import RuoYiGit from '@/components/RuoYi/Git'
 import RuoYiDoc from '@/components/RuoYi/Doc'
 
+
 export default {
+  data() {
+    return {
+      stationOptions:[]
+    }
+  },
   components: {
     Breadcrumb,
     Hamburger,

+ 96 - 96
Yijia-SaaS/yijia-ui/src/store/modules/user.js

@@ -1,96 +1,96 @@
-import { login, logout, getInfo } from '@/api/login'
-import { getToken, setToken, removeToken } from '@/utils/auth'
-
-const user = {
-  state: {
-    token: getToken(),
-    name: '',
-    avatar: '',
-    roles: [],
-    permissions: []
-  },
-
-  mutations: {
-    SET_TOKEN: (state, token) => {
-      state.token = token
-    },
-    SET_NAME: (state, name) => {
-      state.name = name
-    },
-    SET_AVATAR: (state, avatar) => {
-      state.avatar = avatar
-    },
-    SET_ROLES: (state, roles) => {
-      state.roles = roles
-    },
-    SET_PERMISSIONS: (state, permissions) => {
-      state.permissions = permissions
-    }
-  },
-
-  actions: {
-    // 登录
-    Login({ commit }, userInfo) {
-      const username = userInfo.username.trim()
-      const password = userInfo.password
-      const code = userInfo.code
-      const uuid = userInfo.uuid
-      return new Promise((resolve, reject) => {
-        login(username, password, code, uuid).then(res => {
-          setToken(res.token)
-          commit('SET_TOKEN', res.token)
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
-
-    // 获取用户信息
-    GetInfo({ commit, state }) {
-      return new Promise((resolve, reject) => {
-        getInfo(state.token).then(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是否是一个非空数组
-            commit('SET_ROLES', res.roles)
-            commit('SET_PERMISSIONS', res.permissions)
-          } else {
-            commit('SET_ROLES', ['ROLE_DEFAULT'])
-          }
-          commit('SET_NAME', user.userName)
-          commit('SET_AVATAR', avatar)
-          resolve(res)
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
-    
-    // 退出系统
-    LogOut({ commit, state }) {
-      return new Promise((resolve, reject) => {
-        logout(state.token).then(() => {
-          commit('SET_TOKEN', '')
-          commit('SET_ROLES', [])
-          commit('SET_PERMISSIONS', [])
-          removeToken()
-          resolve()
-        }).catch(error => {
-          reject(error)
-        })
-      })
-    },
-
-    // 前端 登出
-    FedLogOut({ commit }) {
-      return new Promise(resolve => {
-        commit('SET_TOKEN', '')
-        removeToken()
-        resolve()
-      })
-    }
-  }
-}
-
-export default user
+import { login, logout, getInfo } from '@/api/login'
+import { getToken, setToken, removeToken } from '@/utils/auth'
+
+const user = {
+  state: {
+    token: getToken(),
+    name: '',
+    avatar: '',
+    roles: [],
+    permissions: []
+  },
+
+  mutations: {
+    SET_TOKEN: (state, token) => {
+      state.token = token
+    },
+    SET_NAME: (state, name) => {
+      state.name = name
+    },
+    SET_AVATAR: (state, avatar) => {
+      state.avatar = avatar
+    },
+    SET_ROLES: (state, roles) => {
+      state.roles = roles
+    },
+    SET_PERMISSIONS: (state, permissions) => {
+      state.permissions = permissions
+    }
+  },
+
+  actions: {
+    // 登录
+    Login({ commit }, userInfo) {
+      const username = userInfo.username.trim()
+      const password = userInfo.password
+      const code = userInfo.code
+      const uuid = userInfo.uuid
+      return new Promise((resolve, reject) => {
+        login(username, password, code, uuid).then(res => {
+          setToken(res.token)
+          commit('SET_TOKEN', res.token)
+          resolve()
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
+
+    // 获取用户信息
+    GetInfo({ commit, state }) {
+      return new Promise((resolve, reject) => {
+        getInfo(state.token).then(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是否是一个非空数组
+            commit('SET_ROLES', res.roles)
+            commit('SET_PERMISSIONS', res.permissions)
+          } else {
+            commit('SET_ROLES', ['ROLE_DEFAULT'])
+          }
+          commit('SET_NAME', user.userName)
+          commit('SET_AVATAR', avatar)
+          resolve(res)
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
+    
+    // 退出系统
+    LogOut({ commit, state }) {
+      return new Promise((resolve, reject) => {
+        logout(state.token).then(() => {
+          commit('SET_TOKEN', '')
+          commit('SET_ROLES', [])
+          commit('SET_PERMISSIONS', [])
+          removeToken()
+          resolve()
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
+
+    // 前端 登出
+    FedLogOut({ commit }) {
+      return new Promise(resolve => {
+        commit('SET_TOKEN', '')
+        removeToken()
+        resolve()
+      })
+    }
+  }
+}
+
+export default user

+ 10 - 2
Yijia-SaaS/yijia-ui/src/views/integral/points/index.vue

@@ -58,10 +58,11 @@
       <div class="app-container">
         <el-table v-loading="loadingInfo" :data="recordList" @selection-change="handleSelectionChange">
           <el-table-column label="主键自增" align="center" prop="id"  v-if ="false"/>
-          <el-table-column label="微信用户唯一标识" align="center" prop="unionId" />
+          <el-table-column label="微信用户唯一标识" align="center" prop="unionId"  v-if ="false"/>
           <el-table-column label="客户名称" align="center" prop="customerName" />
-          <el-table-column label="积分记录类型" align="center" prop="recordType" />
+          <el-table-column label="积分记录类型" align="center" prop="recordType" :formatter="recordTypeFotmat" />
           <el-table-column label="消耗或增加积分" align="center" prop="integral" />
+          <el-table-column label="时间" align="center" prop="createTime" />
           <el-table-column label="油站ID" align="center" prop="stationId"  v-if ="false" />
           <el-table-column label="油站名称" align="center" prop="stationName" />
         </el-table>
@@ -144,6 +145,13 @@ export default {
     this.getList();
   },
   methods: {
+    recordTypeFotmat(row, column){
+      if(row.recordType === '-'){
+        return '兑换积分'
+      }else if(row.recordType === '+'){
+        return '增加积分'
+      }
+    },
     /** 查询用户积分列表 */
     getList() {
       this.loading = true;

+ 2 - 1
Yijia-SaaS/yijia-ui/src/views/integral/record/index.vue

@@ -5,8 +5,9 @@
       <el-table-column label="主键自增" align="center" prop="id" />
       <el-table-column label="微信用户唯一标识" align="center" prop="unionId" />
       <el-table-column label="客户名称" align="center" prop="customerName" />
-      <el-table-column label="积分记录类型:-,消耗; +,增加;" align="center" prop="recordType" />
+      <el-table-column label="积分记录类型:-,消耗; +,增加;" align="center" prop="recordType"  />
       <el-table-column label="消耗或增加积分" align="center" prop="integral" />
+      <el-table-column label="时间" align="center" prop="createTime" />
       <el-table-column label="油站ID" align="center" prop="stationId" />
       <el-table-column label="油站名称" align="center" prop="stationName" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">

+ 30 - 8
Yijia-SaaS/yijia-ui/src/views/integral/rule/index1.vue

@@ -22,23 +22,22 @@
       <el-table-column label="主键id" align="center" prop="id" v-if="false"/>
       <el-table-column label="油站id" align="center" prop="stationId" v-if="false"/>
       <el-table-column label="油站名称" align="center" prop="stationName" />
-      <el-table-column label="积分计算规则类型" align="center" prop="ruleType" />
-      <el-table-column label="有效期设置" align="center" prop="termDateManage" />
+      <el-table-column label="有效期设置" align="center" prop="termDateManage" :formatter="termDateManageFormat"/>
       <el-table-column label="清空积分时间" align="center" prop="emptyDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.emptyDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="到期提醒设置" align="center" prop="expirationReminder" />
+      <el-table-column label="到期提醒设置" align="center" prop="expirationReminder" :formatter="expirationReminderFormat" />
       <el-table-column label="提醒时间设置" align="center" prop="remindDate" width="180">
         <template slot-scope="scope">
           <span>{{ parseTime(scope.row.remindDate, '{y}-{m}-{d}') }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="积分活动设置" align="center" prop="integralActivity" />
+      <el-table-column label="积分活动设置" align="center" prop="integralActivity" :formatter="activityFormat" />
       <el-table-column label="日期选择" align="center" prop="datePicker" />
       <el-table-column label="积分比例" align="center" prop="integralProportion" />
-      <el-table-column label="积分抵扣油品规则" align="center" prop="integralDeductionOil" />
+      <el-table-column label="积分抵扣油品规则" align="center" prop="integralDeductionOil" :formatter="integralDeductionOilFormat" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
           <el-button
@@ -122,6 +121,32 @@ export default {
     });
   },
   methods: {
+    integralDeductionOilFormat(row, column){
+      if(row.integralDeductionOil === '1'){
+        return '不可抵扣'
+      }else if(row.integralDeductionOil === '2'){
+        return '可抵扣'
+      }
+    },
+    activityFormat(row, column){
+      if(row.integralActivity === '1'){
+        return '会员活动'
+      }
+    },
+    expirationReminderFormat(row, column){
+      if(row.expirationReminder === '1'){
+        return '不提醒'
+      }else if(row.expirationReminder === '2'){
+        return '提醒'
+      }
+    },
+    termDateManageFormat(row, column){
+      if(row.termDateManage === '1'){
+        return '永久有效'
+      }else if(row.termDateManage === '2'){
+        return '自定义时间'
+      }
+    },
     /** 查询规则设置列表 */
     getList() {
       this.loading = true;
@@ -167,9 +192,6 @@ export default {
     },
     /** 新增按钮操作 */
     handleAdd() {
-      // this.reset();
-      // this.open = true;
-      // this.title = "添加";
       this.$router.push({path:'/integral/ruledetail',query:{stationId:"",parentId:""}});
     },
     /** 修改按钮操作 */

+ 5 - 74
Yijia-SaaS/yijia-ui/src/views/integral/ruledetail/index.vue

@@ -194,7 +194,7 @@
           :on-remove="handleRemove"
           :on-success="handlepaymentSuccess">
           <i class="el-icon-plus"></i>
-          <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,最多上传5张且单张图片不超过5M</div>
+          <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,最多上传5张且单张图片不超过1M</div>
         </el-upload>
         <el-dialog :visible.sync="dialogVisible" append-to-body>
           <img width="100%" :src="dialogImageUrl" alt="" />
@@ -267,7 +267,6 @@ name: "ruleDetail",
     //判断是否是做修改
     if(this.$route.query.stationId!=null && this.$route.query.stationId!="" && this.$route.query.parentId !=null &&this.$route.query.parentId !=""){
       this.queryParams.stationId=this.$route.query.stationId;
-      //this.form.imgFileList=[];
       let id=this.$route.query.parentId;
       if(id!=null && id != ""){
         getRule(id).then(response => {
@@ -342,7 +341,6 @@ name: "ruleDetail",
         this.oilNameOptions = response.rows;
       });
     },
-
     oilNameChang(e){
       let obj = {};
       obj = this.oilNameOptions.find((item)=>{//这里的userList就是上面遍历的数据源
@@ -363,13 +361,10 @@ name: "ruleDetail",
       this.dialogVisible = true;
     },
     handleRemove(file, fileList) {
-      // if (file.id) {
-      //   console.log('删除了已被上传过的图片')
-      //   console.log(file.id)
-      //   this.deleteImgFileList.push(file.id)
-      // }
-      // console.log("wewewewew");
-      // this.form.imgFileList = fileList;
+      if (file.id) {
+        this.deleteImgFileList.push(file.id)
+      }
+      this.form.imgFileList = fileList;
       //this.hideUpload = fileList.length >= this.limit
     },
     beforeAvatarUpload(file) {
@@ -383,74 +378,10 @@ name: "ruleDetail",
       }
       return isType && isLt5M;
     },
-    picture1Change(file, fileList) {
-      const isType = file.type === 'image/jpeg' || 'image/png'
-      const isLt5M = file.size / 1024 / 1024 < 1
-      if (!isType) {
-        this.$message.error('上传头像图片只能是 JPG 或 PNG格式!');
-        fileList.pop();
-      }
-      if (!isLt5M) {
-        this.$message.error('上传头像图片大小不能超过 1MB!');
-        fileList.pop();
-      }
-      console.log("file",file);
-      console.log("this.form.imgFileList",this.form.imgFileList);
-      console.log("this.form",this.form);
-      // if(this.form.imgFileList!=null){
-      //   this.form.imgFileList.push(file); 
-      // }else{
-      //   this.form.imgFileList=[];
-      //   this.form.imgFileList.push(file);
-      // }
-      // // this.hideUpload = fileList.length >= this.limit;
-      // console.log("this.form.imgFileList1",this.form.imgFileList);
-    },
    //上传成功
     handlepaymentSuccess(response,file, fileList){
-        console.log("fileList",fileList);
-        console.log("response",response);
-        console.log("file",file);
-        //this.form.imgFileList.push(file);
-
-
         this.form.imgFileList.push({name:file.name,url:response.url});
-       //this.form.imgFileList=fileList;
-        console.log("11:",this.form.imgFileList);
     },
-    // submitUpload() {
-    //   this.uploadUrl =  this.$http.adornUrl(`/common/upload?token=${this.$cookie.get('token')}`);
-    //   console.log("uploadUrl", this.uploadUrl);
-    //   let formData = new FormData(); //  用FormData存放上传文件
-    //   this.form.imgFileList.forEach(file => {
-    //     console.log(file.raw)
-    //     console.log(file.size)
-    //     formData.append('file', file.raw)
-    //   })
-    //   console.log("formData",formData);
-    //   this.$http({
-    //     url: this.uploadUrl,
-    //     method: 'post',
-    //     data: formData,
-    //     headers: {
-    //       "Content-Type": "multipart/form-data"
-    //     }
-    //   }).then(({
-    //              data
-    //            }) => {
-    //     if (data && data.code === 0) {
-    //          console.log("data",data);
-    //       for (var i = 0; i < data.imgNameList.length; i++) {
-    //         this.imgNameList.push(data.imgNameList[i].name)
-    //         this.imgSize.push(data.imgNameList[i].size)
-    //       }
-    //       //this.submitForm()
-    //       this.$refs.upload.clearFiles();
-    //     } else {
-    //       this.$message.error(data.msg)
-    //     }
-    //   })
-    // },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {

+ 0 - 6
Yijia-SaaS/yijia-ui/src/views/station/info/index.vue

@@ -64,12 +64,6 @@
         <el-form-item label="电话" prop="phone">
           <el-input v-model="form.phone" placeholder="请输入电话" />
         </el-form-item>
-        <!--        <el-form-item label="集团名称" prop="parentId">-->
-        <!--          <treeselect v-model="form.parentId" :options="deptOptions"   @select="selectDepart" :show-count="true" placeholder="请选择归属集团" />-->
-        <!--        </el-form-item>-->
-        <!--        <el-form-item label="集团名称" prop="stationGroupName" v-show="false">-->
-        <!--          <el-input v-model="form.stationGroupName"  placeholder="请输入所属集团名称" />-->
-        <!--        </el-form-item>-->
         <el-form-item label="油站经度" prop="stationLongitude">
           <el-input v-model="form.stationLongitude" :disabled="true" placeholder="请输入油站经度" />
         </el-form-item>

+ 50 - 5
Yijia-SaaS/yijia-ui/src/views/station/pay/index.vue

@@ -3,13 +3,25 @@
     <el-form ref="ruleForm" :model="ruleForm" :rules="rules" label-width="120px">
       <el-form-item label="支付模板"  prop="payMode">
         <el-upload
+          class="avatar-uploader"
           action="http://localhost:8080/common/upload"
+          :headers=headers
+          multiple
           list-type="picture-card"
-          :auto-upload="false">
-          <i slot="default" class="el-icon-plus"></i>
+          :limit='5'
+          :file-list="ruleForm.imgFileList"
+          accept="image/gif,image/jpeg,image/png,image/jpg,image/bmp"
+          :before-upload="beforeAvatarUpload"
+          :on-remove="handleRemove"
+          :on-success="handlepaymentSuccess">
+          <i class="el-icon-plus"></i>
+          <div class="el-upload__tip" slot="tip">只能上传jpg/png文件,最多上传5张且单张图片不超过1M</div>
         </el-upload>
+        <el-dialog :visible.sync="dialogVisible" append-to-body>
+          <img width="100%" :src="dialogImageUrl" alt="" />
+        </el-dialog>
       </el-form-item>
-      <el-form-item label="油站名称" prop="stationId" >
+      <el-form-item label="油站名称" >
         <el-select
           v-model="ruleForm.stationId"
           placeholder="请选择油站"
@@ -99,6 +111,7 @@
 </template>
 
 <script>
+import { getToken } from "@/utils/auth";
 import {addPay, updatePay,getStationPay} from "@/api/station/pay";
 import {stationinfo} from "@/api/station/gun";
 export default {
@@ -113,11 +126,16 @@ export default {
       discountSettingOptions:[],
       stationOptions:[],
       isNoOilOptions:[],
+      deleteImgFileList: [], //存已被删除了的图片的id
+      dialogImageUrl: '',
+      dialogVisible: false,
       ruleForm:{
+        imgFileList:[]
       },
       // 表单校验
       rules: {
-      }
+      },
+      headers: { Authorization: "Bearer " + getToken() }
     };
   },
   created() {
@@ -146,16 +164,43 @@ export default {
 
   },
   methods: {
+    handleRemove(file, fileList) {
+      if (file.id) {
+        this.deleteImgFileList.push(file.id)
+      }
+      //this.ruleForm.imgFileList = fileList;
+    },
+    beforeAvatarUpload(file) {
+      const isType = file.type === 'image/jpeg' || 'image/png';
+      const isLt5M = file.size / 1024 / 1024 < 1;
+      if (!isType) {
+        this.$message.error('上传头像图片只能是 JPG 或 PNG格式!');
+      }
+      if (!isLt5M) {
+        this.$message.error('上传头像图片大小不能超过 1MB!');
+      }
+      return isType && isLt5M;
+    },
+     //上传成功
+    handlepaymentSuccess(response,file, fileList){
+        console.log("上传图片:",file);
+        this.ruleForm.imgFileList.push({name:file.name,url:response.url});
+    },
     onInstitutionChang(e){
       let obj = {};
       obj = this.stationOptions.find((item)=>{//这里的userList就是上面遍历的数据源
-        return item.stationId === e;//筛选出匹配数据
+        return item.deptId === e;//筛选出匹配数据
       })
+        this.ruleForm.stationName =obj.deptName;
     },
     /** 进入信息 */
     look() {
       getStationPay().then(response => {
+        console.log("response,response:",response.data);
         this.ruleForm = response.data;
+        if(response.data.imgFileList==null){
+          this.ruleForm.imgFileList=[];
+        }
       });
     },
     /** 提交按钮 */