sunlupeng 1 year ago
parent
commit
abb4ca9070

+ 6 - 14
src/api/pointManage.js

@@ -48,25 +48,17 @@ export function updatePointRulesItem(data) {
   })
 }
 
-export function companyTypeList(query) {
-  return request({
-    url: '/news/createForDGTSiteNews',
-    method: 'post',
-    data:query
-  })
-}
-
-export function depTypeList(query) {
+export function getPointList(query) {
   return request({
-    url: '/news/createForDGTSiteNews',
-    method: 'post',
-    data:query
+    url: '/mall-integral/user/page',
+    method: 'get',
+    params:query
   })
 }
 
-export function getPointList(query) {
+export function getPointDetailList(query) {
   return request({
-    url: '/mall-integral/user/page',
+    url: '/mall-integral/details/page',
     method: 'get',
     params:query
   })

+ 1 - 0
src/permission.js

@@ -32,6 +32,7 @@ const myRoles = [
   'pointInstructions', 
   'pointRulesList', 
   'pointList', 
+  'pointsDetailList',
   'activityManage', 
   'activityList', 
   'noticeManage', 

+ 1 - 0
src/router/index.js

@@ -65,6 +65,7 @@ export const asyncRouterMap = [
       { path: 'pointInstructions', component: _import('pointManage/pointInstructions'), name: 'pointInstructions', meta: { title: '积分规则说明书', noCache: true }},
       { path: 'pointRulesList', component: _import('pointManage/pointRulesList'), name: 'pointRulesList', meta: { title: '积分规则列表', noCache: true }},
       { path: 'pointList', component: _import('pointManage/pointList'), name: 'pointList', meta: { title: '积分列表', noCache: true }},
+      { path: 'pointsDetailList', component: _import('pointManage/pointsDetailList'), name: 'pointsDetailList', meta: { title: '积分明细列表', noCache: true }},
     ]
   },
   {

+ 9 - 0
src/views/exchangeManage/exchangeList.vue

@@ -304,6 +304,15 @@ export default {
                     return false;
                 }
                     
+            };
+            if(val.flag == 0 && val.deliveryType==2){
+                if(!val.trackingNumber){
+                    this.$alert("请填写兑换码", "提示", {
+                        confirmButtonText: "确定",
+                    });
+                    return false;
+                }
+                    
             };
             if(val.flag == 1){
                 if(!val.comment){

+ 167 - 0
src/views/pointManage/pointsDetailList.vue

@@ -0,0 +1,167 @@
+<template>
+    <div class="app-container calendar-list-container">
+
+        <!-- 查询和其他操作 -->
+        <div class="filter-container">
+            <el-input clearable class="filter-item" style="width: 200px;" placeholder="请输入姓名"
+                v-model="listQuery.userName"></el-input>
+            <el-select v-model="listQuery.deptId" clearable placeholder="请选择部门" style="top: -4px;width: 200px;">
+                <el-option :key="item.type" v-for="item in depTypeList" :label="item.deptName" :value="item.deptId">
+                </el-option>
+            </el-select>
+            
+            <el-select v-model="listQuery.integralType" clearable placeholder="请选择积分类型" style="top: -4px;width: 200px;">
+                    <el-option :key="item.dictValue" v-for="item in allTypeList" :label="item.dictLabel" :value="item.dictValue">
+                    </el-option>
+                </el-select>
+                <el-date-picker class="filter-item" value-format="yyyy-MM-dd" v-model="listQuery.createTime" type="date" placeholder="选择获取时间">
+            </el-date-picker>
+            <el-button class="filter-item" type="primary" v-waves icon="el-icon-search" @click="handleFilter">查找</el-button>
+            <el-button class="filter-item" type="primary"  :loading="downloadLoading" v-waves icon="el-icon-download" @click="handleDownload">导出</el-button>
+
+        </div>
+
+        <!-- 查询结果 -->
+        <el-table size="small" :data="list" v-loading="listLoading" element-loading-text="正在查询中。。。" border fit
+            highlight-current-row>
+            <el-table-column type="index" label="序号" header-align="center" align="center">
+            </el-table-column>
+
+            <el-table-column align="center" min-width="80px" label="姓名" prop="userName">
+            </el-table-column>
+            <el-table-column align="center" min-width="150px" label="部门" prop="deptName">
+            </el-table-column>
+            <el-table-column align="center" min-width="80px" label="积分类型" prop="integralTypeName">
+            </el-table-column>
+            <el-table-column align="center" min-width="200px" label="积分说明" prop="comment">
+            </el-table-column>
+            <el-table-column align="center" min-width="80px" label="积分" prop="integral">
+            </el-table-column>
+            <el-table-column align="center" min-width="80px" label="获取时间" prop="createTime">
+                </el-table-column>
+        </el-table>
+
+        <!-- 分页 -->
+        <div class="pagination-container">
+            <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                :current-page="listQuery.page" :page-sizes="[10, 20, 30, 50]" :page-size="listQuery.limit"
+                layout="total, sizes, prev, pager, next, jumper" :total="total">
+            </el-pagination>
+        </div>
+    </div>
+</template>
+  
+<style>
+.demo-table-expand {
+    font-size: 0;
+}
+.demo-table-expand label {
+    width: 200px;
+    color: #99a9bf;
+}
+
+.demo-table-expand .el-form-item {
+    margin-right: 0;
+    margin-bottom: 0;
+}
+</style>
+  
+<script>
+import { getPointDetailList } from "@/api/pointManage";
+import { depTypeList,dataTypeList } from "@/api/public";
+import waves from "@/directive/waves"; // 水波纹指令
+import Tinymce from '@/components/Tinymce'
+
+export default {
+    name: 'pointList',
+    components: { Tinymce },
+    directives: { waves },
+    data() {
+        return {
+            depTypeList: [],
+            allTypeList: [],
+            list: [],
+            total: 0,
+            listLoading: false,
+            downloadLoading: false,
+            listQuery: {
+                page: 1,
+                limit: 10,
+                deptId: '',
+                userName: '',
+                createTime: '',
+                integralType:'',
+            },
+        }
+    },
+    created() {
+        this.getDepTypeList(); 
+        this.getPointRulesType();
+        this.getList();
+    },
+    methods: {
+        handleDownload() {
+            window.location.href = process.env.BASE_API + '/mall-integral/export/details/page?type=' + this.listQuery.type + '&deptId=' + this.listQuery.deptId + '&userName=' + this.listQuery.userName + '&createTime=' + this.listQuery.createTime;
+        },
+        getDepTypeList() {
+            depTypeList().then(response => {
+                this.depTypeList = response.data.data;
+            })
+        },
+        getPointRulesType() {
+            dataTypeList({dictType:'integral_rule_type'}).then(response => {
+                this.allTypeList = response.data.data;
+            })
+        },
+        getList() {
+            this.listLoading = true
+            getPointDetailList(this.listQuery).then(response => {
+                this.list = response.data.data.items
+                this.total = response.data.data.total
+                this.listLoading = false
+            })
+        },
+        handleFilter() {
+            this.listQuery.page = 1
+            this.getList()
+        },
+
+        handleSizeChange(val) {
+            this.listQuery.limit = val
+            this.getList()
+        },
+
+        handleCurrentChange(val) {
+            this.listQuery.page = val
+            this.getList()
+        },
+    }
+}
+</script>
+<style>
+.ad-avatar-uploader .el-upload {
+    border: 1px dashed #d9d9d9;
+    border-radius: 6px;
+    cursor: pointer;
+    position: relative;
+    overflow: hidden;
+}
+
+.ad-avatar-uploader .el-upload:hover {
+    border-color: #409EFF;
+}
+
+.ad-avatar-uploader-icon {
+    font-size: 28px;
+    color: #8c939d;
+    width: 178px;
+    height: 178px;
+    line-height: 178px;
+    text-align: center;
+}
+
+.ad-avatar {
+    display: block;
+}
+</style>
+