Sfoglia il codice sorgente

会员详情里添加 积分记录 企微添加会员详情

xgb 3 settimane fa
parent
commit
5b8f493ebb

+ 11 - 0
src/api/company/userIntegralLogs.js

@@ -0,0 +1,11 @@
+import request from '@/utils/request'
+
+// 查询积分记录列表
+export function listUserIntegralLogs(query) {
+  return request({
+    url: '/company/companyIntegral/list',
+    method: 'get',
+    params: query
+  })
+}
+

+ 23 - 1
src/views/qw/externalContact/index.vue

@@ -480,6 +480,14 @@
              @click="handledetails(scope.row)"
              >AI获取用户信息
           </el-button>
+          <el-button
+             size="mini"
+             type="text"
+             @click="handleMemberdetails(scope.row)"
+             v-if="scope.row.fsUserId"
+             >
+             <span>会员详细</span>
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -496,6 +504,13 @@
       <customer-details  ref="customerDetails" @refreshList="refreshList"/>
     </el-drawer>
 
+    <el-drawer
+        :with-header="false"
+        size="75%"
+          :title="show.title" :visible.sync="show.open">
+      <userDetails  ref="userDetails" />
+    </el-drawer>
+
 
     <!--  搜索标签   -->
     <el-dialog :title="changeTagDialog.title" :visible.sync="changeTagDialog.open" style="width:100%;height: 100%" append-to-body>
@@ -770,9 +785,10 @@ import  selectUser  from "@/views/qw/externalContact/selectUser.vue";
 import info from "@/views/qw/externalContact/info.vue";
 import { editTalk } from "@/api/qw/externalContactInfo";
 import PaginationMore from "../../../components/PaginationMore/index.vue";
+import userDetails from '@/views/store/components/userDetails.vue';
 export default {
   name: "ExternalContact",
-  components:{PaginationMore, mycustomer,customerDetails,SopDialog,selectUser,info},
+  components:{PaginationMore, mycustomer,customerDetails,SopDialog,selectUser,info,userDetails},
   data() {
     return {
       notesOpen: {
@@ -1005,6 +1021,12 @@ export default {
 
   },
   methods: {
+    handleMemberdetails(row){
+            this.show.open=true;
+            setTimeout(() => {
+                 this.$refs.userDetails.getDetails(row.fsUserId);
+            }, 1);
+    },
     onQwUserNameClear() {
       this.queryParams.qwUserId = null;  // 同时清空 qwUserId
     },

+ 16 - 2
src/views/store/components/userDetailsTemp.vue

@@ -125,7 +125,18 @@
           用户问诊订单
      </div>
         <userInquiryOrderDetails  ref="InquiryDetails" />
+
+        
        </div>
+      <!-- 积分记录 -->
+      <div class="contentx" v-if="item!=null" >
+        <div class="desct">
+              用户积分记录
+        </div>
+            <userIntegralDetails  ref="userIntegralDetail" />
+      </div>
+
+
      </div>
     </template>
     
@@ -139,10 +150,11 @@
     import userPatietDetails from "../components/userPatietDetails.vue";
     import userInquiryOrderDetails from "../components/userInquiryOrderDetails.vue";
     import userAddDetails from "../components/userAddDetails.vue";
+    import userIntegralDetails from "../components/userIntegralDetails.vue";
       export default {
         name: "storedet",
         props:["data"],
-         components: { userStorerDetails ,userInquiryOrderDetails,userPatietDetails,userAddDetails},
+         components: { userStorerDetails ,userInquiryOrderDetails,userPatietDetails,userAddDetails,userIntegralDetails},
         data() {
           return {
             patientInfo: process.env.VUE_APP_PATIENT_INFO,
@@ -208,7 +220,6 @@
               this.loading = false;
             });
           },
-    
           getDetails(orderId) {
               this.item=null;
               getUser(orderId).then(response => {
@@ -225,6 +236,9 @@
                   setTimeout(() => {
                        this.$refs.userAddDetail.getAddList(orderId);
                   }, 1);
+                  setTimeout(() => {
+                       this.$refs.userIntegralDetail.getIntegralLogs(orderId);
+                  }, 1);
     
               });
               this.patient=null;

+ 111 - 0
src/views/store/components/userIntegralDetails.vue

@@ -0,0 +1,111 @@
+<!-- UserIntegralLogs.vue -->
+<template>
+  <div class="integral-logs-container">
+    <el-table 
+      v-loading="loading" 
+      border 
+      :data="userIntegralLogsList" 
+      @selection-change="handleSelectionChange"
+    >
+      <el-table-column label="用户id" align="center" prop="userId" />
+      <el-table-column label="用户昵称" align="center" prop="nickName" />
+      <el-table-column label="用户电话" align="center" prop="phone" />
+      <el-table-column label="类别" align="center" prop="logType">
+        <template slot-scope="scope">
+          <dict-tag :options="intefralLogTypeOptions" :value="scope.row.logType"/>
+        </template>
+      </el-table-column>
+      <el-table-column label="积分" align="center" prop="integral" />
+      <el-table-column label="积分余额" align="center" prop="balance" />
+      <el-table-column label="订单关联id" align="center" prop="businessId" />
+      <el-table-column label="时间" align="center" prop="createTime" />
+    </el-table>
+    
+    <!-- 分页组件 -->
+    <pagination
+      v-show="total > 0"
+      :total="total"
+      :page.sync="queryParams.pageNum"
+      :limit.sync="queryParams.pageSize"
+      @pagination="getList"
+    />
+  </div>
+</template>
+
+<script>
+import { listUserIntegralLogs} from "@/api/company/userIntegralLogs";
+
+export default {
+  name: 'UserIntegralLogs',
+  props: {
+    fsUserId: {
+      type: [String, Number],
+      required: false
+    }
+  },
+  data() {
+    return {
+      loading: false,
+      userIntegralLogsList: [],
+      total: 0,
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        userId: this.fsUserId
+      },
+      intefralLogTypeOptions: [],
+      selections: []
+    }
+  },
+  watch: {
+    fsUserId: {
+      handler(newVal) {
+        this.queryParams.userId = newVal;
+        this.getList();
+      },
+      immediate: true
+    }
+  },
+
+  created() {
+    this.getList();
+    this.getDictOptions();
+  },
+  methods: {
+    // 获取积分日志列表
+    getList() {
+
+      if (!this.queryParams.userId) return;
+      
+      this.loading = true;
+      listUserIntegralLogs(this.queryParams).then(response => {
+        this.userIntegralLogsList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    getIntegralLogs(fsUserId){
+        this.queryParams.userId=fsUserId;
+        this.getList();
+    },
+    // 获取字典选项
+    getDictOptions() {
+      // 获取积分日志类型字典
+        this.getDicts("sys_integral_log_type").then(response => {
+            this.intefralLogTypeOptions = response.data;
+        });
+    },
+    
+    // 处理选择变化
+    handleSelectionChange(selection) {
+      this.selections = selection;
+    }
+  }
+}
+</script>
+
+<style scoped>
+.integral-logs-container {
+  padding: 20px;
+}
+</style>