Kaynağa Gözat

红德堂-会员管理新增app注册时间和是否下载app相关代码

Long 6 gün önce
ebeveyn
işleme
5b0cd323ae

+ 53 - 19
src/views/member/list.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <!-- Search Form -->
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
       <el-form-item label="项目" prop="projectId">
         <el-select  v-model="queryParams.projectId" placeholder="请选择项目" clearable size="small" >
           <el-option
@@ -89,6 +89,24 @@
           value-format="yyyy-MM-dd"
         ></el-date-picker>
       </el-form-item>
+      <el-form-item label="APP注册时间">
+        <el-date-picker
+          v-model="appCreateTimeRange"
+          size="small"
+          style="width: 240px"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          value-format="yyyy-MM-dd"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="是否下载APP" prop="isDownloadApp">
+        <el-select v-model="queryParams.isDownloadApp" placeholder="请选择" clearable size="small">
+          <el-option label="已下载" value="1" />
+          <el-option label="未下载" value="0" />
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -154,13 +172,13 @@
     <!-- User Table -->
     <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="ID" align="center" prop="userId" />
-      <el-table-column label="项目" align="center" prop="projectId">
+      <el-table-column label="ID" align="center" prop="userId" width="110"/>
+      <el-table-column label="项目" align="center" prop="projectId" width="110">
         <template slot-scope="scope">
           <el-tag v-if="scope.row.projectId !== null">{{ getProjectLabel(scope.row.projectId) }}</el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="昵称" align="center" prop="nickname" />
+      <el-table-column label="昵称" align="center" prop="nickname" width="120"/>
       <el-table-column label="头像" align="center" width="80">
         <template slot-scope="scope">
           <el-popover
@@ -173,13 +191,11 @@
           </el-popover>
         </template>
       </el-table-column>
-      <el-table-column label="手机号码" align="center" prop="phone" />
+      <el-table-column label="手机号码" align="center" prop="phone" width="100"/>
       <el-table-column label="积分" align="center" prop="integral" v-if="false" />
-      <el-table-column label="APP来源" align="center" prop="source" width="120px" />
-      <el-table-column label="登录设备" align="center" prop="loginDevice" width="120px" />
       <el-table-column label="看课数量" align="center" prop="watchCourseCount" />
       <el-table-column label="缺课数量" align="center" prop="missCourseCount" />
-      <el-table-column label="参与营期数量" align="center" prop="partCourseCount" />
+      <el-table-column label="参与营期数量" align="center" prop="partCourseCount" width="160" />
       <el-table-column label="状态" align="center">
         <template slot-scope="scope">
           <el-tag :type="getStatusType(scope.row.status)">
@@ -187,7 +203,7 @@
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="看课状态" align="center" width="80px">
+      <el-table-column label="看课状态" align="center" width="110">
         <template slot-scope="scope">
           <el-tag :type="getCourseStatusType(scope.row.courseCountStatus)">
             {{ getCourseStatusText(scope.row.courseCountStatus) }}
@@ -199,14 +215,22 @@
 <!--      <el-table-column label="停课天数" align="center" prop="stopWatchDays" />-->
       <el-table-column label="绑定时间" align="center" prop="createTime" width="160" />
       <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
-      <el-table-column label="所属员工" align="center" prop="companyUserNickName" />
+      <el-table-column label="所属员工" align="center" prop="companyUserNickName" width="150" />
       <el-table-column label="会员积分" align="center" prop="integral" />
       <el-table-column label="是否购买" align="center" prop="isBuy">
         <template slot-scope="scope">
           <span>{{ scope.row.isBuy === 1 ? '是' : '否' }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="APP注册时间" align="center" prop="appCreateTime" width="100" />
+      <el-table-column label="是否下载APP" align="center" width="100" fixed="right">
+        <template slot-scope="scope">
+          <el-tag :type="(scope.row.source || scope.row.loginDevice || scope.row.appCreateTime) ? 'success' : 'info'">
+            {{ (scope.row.source || scope.row.loginDevice || scope.row.appCreateTime) ? '已下载' : '未下载' }}
+          </el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width" fixed="right">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -364,6 +388,8 @@ export default {
       open: false,
       // 日期范围
       dateRange: [],
+      // APP注册时间范围
+      appCreateTimeRange: [],
       // 状态数据字典
       statusOptions: [],
       // 标签选项
@@ -386,6 +412,10 @@ export default {
         registerStartTime: null,
         registerEndTime: null,
         projectId: null,
+        userId: null,
+        appCreateTimeStart: null,
+        appCreateTimeEnd: null,
+        isDownloadApp: null,
       },
       // 表单参数
       form: {},
@@ -442,14 +472,6 @@ export default {
                  this.$refs.userDetails.getDetails(row.userId);
             }, 1);
      },
-    // 重置表单
-    resetForm() {
-      this.linkForm={
-        days:null,
-        courseId:null,
-        videoId:null
-      }
-    },
     /** 转移按钮操作 */
     handleTransfer(row) {
 
@@ -485,6 +507,15 @@ export default {
         this.queryParams.registerEndTime = null;
       }
 
+      // 处理APP注册时间范围
+      if (this.appCreateTimeRange && this.appCreateTimeRange.length > 0) {
+        this.queryParams.appCreateTimeStart = this.appCreateTimeRange[0];
+        this.queryParams.appCreateTimeEnd = this.appCreateTimeRange[1];
+      } else {
+        this.queryParams.appCreateTimeStart = null;
+        this.queryParams.appCreateTimeEnd = null;
+      }
+
       listUser(this.queryParams).then(response => {
         this.userList = response.rows;
         this.total = response.total;
@@ -557,6 +588,9 @@ export default {
     /** 重置按钮操作 */
     resetQuery() {
       this.dateRange = [];
+      this.appCreateTimeRange = [];
+      this.queryParams.appCreateTimeStart=null;
+      this.queryParams.appCreateTimeEnd=null;
       this.resetForm("queryForm");
       this.handleQuery();
     },

+ 52 - 17
src/views/member/mylist.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container">
     <!-- Search Form -->
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
       <el-form-item label="项目" prop="projectId">
         <el-select  v-model="queryParams.projectId" placeholder="请选择项目" clearable size="small" >
           <el-option
@@ -79,6 +79,24 @@
           value-format="yyyy-MM-dd"
         ></el-date-picker>
       </el-form-item>
+      <el-form-item label="APP注册时间">
+        <el-date-picker
+          v-model="appCreateTimeRange"
+          size="small"
+          style="width: 240px"
+          type="daterange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          value-format="yyyy-MM-dd"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="是否下载APP" prop="isDownloadApp">
+        <el-select v-model="queryParams.isDownloadApp" placeholder="请选择" clearable size="small">
+          <el-option label="已下载" value="1" />
+          <el-option label="未下载" value="0" />
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -153,13 +171,13 @@
     <!-- User Table -->
     <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange" border>
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="ID" align="center" prop="userId" />
-      <el-table-column label="项目" align="center" prop="projectId">
+      <el-table-column label="ID" align="center" prop="userId" width="110"/>
+      <el-table-column label="项目" align="center" prop="projectId" width="110">
         <template slot-scope="scope">
           <el-tag v-if="scope.row.projectId !== null">{{ getProjectLabel(scope.row.projectId) }}</el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="昵称" align="center" prop="nickname" />
+      <el-table-column label="昵称" align="center" prop="nickname" width="120"/>
       <el-table-column label="头像" align="center" width="80">
         <template slot-scope="scope">
           <el-popover
@@ -172,11 +190,11 @@
           </el-popover>
         </template>
       </el-table-column>
-      <el-table-column label="手机号码" align="center" prop="phone" />
+      <el-table-column label="手机号码" align="center" prop="phone" width="100"/>
       <el-table-column label="积分" align="center" prop="integral" v-if="false" />
       <el-table-column label="看课数量" align="center" prop="watchCourseCount" />
       <el-table-column label="缺课数量" align="center" prop="missCourseCount" />
-      <el-table-column label="参与营期数量" align="center" prop="partCourseCount" />
+      <el-table-column label="参与营期数量" align="center" prop="partCourseCount" width="160"/>
       <el-table-column label="状态" align="center">
         <template slot-scope="scope">
           <el-tag :type="getStatusType(scope.row.status)">
@@ -184,7 +202,7 @@
           </el-tag>
         </template>
       </el-table-column>
-      <el-table-column label="看课状态" align="center">
+      <el-table-column label="看课状态" align="center" width="110">
         <template slot-scope="scope">
           <el-tag :type="getCourseStatusType(scope.row.courseCountStatus)">
             {{ getCourseStatusText(scope.row.courseCountStatus) }}
@@ -196,14 +214,22 @@
       <el-table-column label="停课天数" align="center" prop="stopWatchDays" />
       <el-table-column label="注册时间" align="center" prop="createTime" width="160" />
       <el-table-column label="备注" align="center" prop="remark" show-overflow-tooltip />
-      <el-table-column label="所属员工" align="center" prop="companyUserNickName" />
+      <el-table-column label="所属员工" align="center" prop="companyUserNickName" width="150"/>
       <el-table-column label="会员积分" align="center" prop="integral" />
       <el-table-column label="是否购买" align="center" prop="isBuy">
         <template slot-scope="scope">
           <span>{{ scope.row.isBuy === 1 ? '是' : '否' }}</span>
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width">
+      <el-table-column label="APP注册时间" align="center" prop="appCreateTime" width="100" />
+      <el-table-column label="是否下载APP" align="center" width="100" fixed="right">
+        <template slot-scope="scope">
+          <el-tag :type="(scope.row.source || scope.row.loginDevice || scope.row.appCreateTime) ? 'success' : 'info'">
+            {{ (scope.row.source || scope.row.loginDevice || scope.row.appCreateTime) ? '已下载' : '未下载' }}
+          </el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="操作" align="center" width="120" class-name="small-padding fixed-width" fixed="right">
         <template slot-scope="scope">
           <el-button
             size="mini"
@@ -376,6 +402,8 @@ export default {
       open: false,
       // 日期范围
       dateRange: [],
+      // APP注册时间范围
+      appCreateTimeRange: [],
       // 状态数据字典
       statusOptions: [],
       // 标签选项
@@ -397,6 +425,9 @@ export default {
         registerStartTime: null,
         registerEndTime: null,
         projectId: null,
+        appCreateTimeStart: null,
+        appCreateTimeEnd: null,
+        isDownloadApp: null,
       },
       // 表单参数
       form: {},
@@ -487,14 +518,6 @@ export default {
       this.resetTransferForm();
       this.openTransferDialog = true;
     },
-    // 重置表单
-    resetForm() {
-      this.linkForm={
-        days:null,
-        courseId:null,
-        videoId:null
-      }
-    },
     resetTransferForm() {
       this.transferForm = {
         targetUserId: null,
@@ -519,6 +542,15 @@ export default {
         this.queryParams.registerEndTime = null;
       }
 
+      // 处理APP注册时间范围
+      if (this.appCreateTimeRange && this.appCreateTimeRange.length > 0) {
+        this.queryParams.appCreateTimeStart = this.appCreateTimeRange[0];
+        this.queryParams.appCreateTimeEnd = this.appCreateTimeRange[1];
+      } else {
+        this.queryParams.appCreateTimeStart = null;
+        this.queryParams.appCreateTimeEnd = null;
+      }
+
       myListUser(this.queryParams).then(response => {
         this.userList = response.rows;
         this.total = response.total;
@@ -591,6 +623,9 @@ export default {
     /** 重置按钮操作 */
     resetQuery() {
       this.dateRange = [];
+      this.appCreateTimeRange = [];
+      this.queryParams.appCreateTimeStart=null;
+      this.queryParams.appCreateTimeEnd=null;
       this.resetForm("queryForm");
       this.handleQuery();
     },

+ 35 - 2
src/views/store/user/list.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
       <el-form-item label="会员ID" prop="userId">
         <el-input
           v-model="queryParams.userId"
@@ -58,7 +58,16 @@
         </el-select>
       </el-form-item>
        <el-form-item label="注册时间" prop="createTime">
-                 <el-date-picker v-model="createTime" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="change"></el-date-picker>
+                  <el-date-picker v-model="createTime" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="change"></el-date-picker>
+        </el-form-item>
+       <el-form-item label="APP注册时间">
+                  <el-date-picker v-model="appCreateTimeRange" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="changeAppCreateTime"></el-date-picker>
+        </el-form-item>
+       <el-form-item label="是否下载APP" prop="isDownloadApp">
+         <el-select v-model="queryParams.isDownloadApp" placeholder="请选择" clearable size="small">
+           <el-option label="已下载" value="1" />
+           <el-option label="未下载" value="0" />
+         </el-select>
        </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -102,6 +111,14 @@
          </template>
       </el-table-column>
       <el-table-column label="注册时间" align="center" prop="createTime" width="150px" />
+      <el-table-column label="APP注册时间" align="center" prop="appCreateTime"/>
+      <el-table-column label="是否下载APP" align="center" width="120">
+        <template slot-scope="scope">
+          <el-tag :type="(scope.row.source || scope.row.loginDevice || scope.row.appCreateTime) ? 'success' : 'info'">
+            {{ (scope.row.source || scope.row.loginDevice || scope.row.appCreateTime) ? '已下载' : '未下载' }}
+          </el-tag>
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150px">
         <template slot-scope="scope">
 
@@ -198,6 +215,7 @@ export default {
       // 是否显示弹出层
       open: false,
       createTime:null,
+      appCreateTimeRange:null,
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -221,6 +239,9 @@ export default {
         sTime:null,
         eTime:null,
         isBuy:null,
+        appCreateTimeStart: null,
+        appCreateTimeEnd: null,
+        isDownloadApp: null,
       },
       // 表单参数
       form: {},
@@ -257,6 +278,15 @@ export default {
             this.queryParams.eTime=null;
           }
         },
+    changeAppCreateTime(){
+          if(this.appCreateTimeRange!=null){
+            this.queryParams.appCreateTimeStart=this.appCreateTimeRange[0];
+            this.queryParams.appCreateTimeEnd=this.appCreateTimeRange[1];
+          }else{
+            this.queryParams.appCreateTimeStart=null;
+            this.queryParams.appCreateTimeEnd=null;
+          }
+        },
     handledetails(row){
             this.show.open=true;
             setTimeout(() => {
@@ -311,6 +341,9 @@ export default {
     resetQuery() {
       this.resetForm("queryForm");
        this.createTime=null;
+       this.appCreateTimeRange=null;
+      this.queryParams.appCreateTimeStart=null;
+      this.queryParams.appCreateTimeEnd=null;
       this.queryParams.sTime=null;
       this.queryParams.eTime=null;
       this.handleQuery();

+ 36 - 3
src/views/store/user/myList.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
+    <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px">
       <el-form-item label="会员ID" prop="userId">
         <el-input
           v-model="queryParams.userId"
@@ -58,8 +58,17 @@
         </el-select>
       </el-form-item>
        <el-form-item label="注册时间" prop="createTime">
-                 <el-date-picker v-model="createTime" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="change"></el-date-picker>
-              </el-form-item>
+                  <el-date-picker v-model="createTime" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="change"></el-date-picker>
+               </el-form-item>
+       <el-form-item label="APP注册时间">
+                  <el-date-picker v-model="appCreateTimeRange" size="small" style="width: 220px" value-format="yyyy-MM-dd" type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" @change="changeAppCreateTime"></el-date-picker>
+               </el-form-item>
+       <el-form-item label="是否下载APP" prop="isDownloadApp">
+         <el-select v-model="queryParams.isDownloadApp" placeholder="请选择" clearable size="small">
+           <el-option label="已下载" value="1" />
+           <el-option label="未下载" value="0" />
+         </el-select>
+       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -102,6 +111,14 @@
          </template>
       </el-table-column>
       <el-table-column label="注册时间" align="center" prop="createTime" width="150px" />
+      <el-table-column label="APP注册时间" align="center" prop="appCreateTime"/>
+      <el-table-column label="是否下载APP" align="center" width="120">
+        <template slot-scope="scope">
+          <el-tag :type="(scope.row.source || scope.row.loginDevice || scope.row.appCreateTime) ? 'success' : 'info'">
+            {{ (scope.row.source || scope.row.loginDevice || scope.row.appCreateTime) ? '已下载' : '未下载' }}
+          </el-tag>
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150px">
         <template slot-scope="scope">
 
@@ -198,6 +215,7 @@ export default {
       // 是否显示弹出层
       open: false,
       createTime:null,
+      appCreateTimeRange:null,
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -221,6 +239,9 @@ export default {
         sTime:null,
         eTime:null,
         isBuy:null,
+        appCreateTimeStart: null,
+        appCreateTimeEnd: null,
+        isDownloadApp: null,
       },
       // 表单参数
       form: {},
@@ -260,6 +281,15 @@ export default {
             this.queryParams.eTime=null;
           }
         },
+    changeAppCreateTime(){
+          if(this.appCreateTimeRange!=null){
+            this.queryParams.appCreateTimeStart=this.appCreateTimeRange[0];
+            this.queryParams.appCreateTimeEnd=this.appCreateTimeRange[1];
+          }else{
+            this.queryParams.appCreateTimeStart=null;
+            this.queryParams.appCreateTimeEnd=null;
+          }
+        },
     handledetails(row){
             this.show.open=true;
             setTimeout(() => {
@@ -318,8 +348,11 @@ export default {
     resetQuery() {
       this.resetForm("queryForm");
        this.createTime=null;
+       this.appCreateTimeRange=null;
       this.queryParams.sTime=null;
       this.queryParams.eTime=null;
+      this.queryParams.appCreateTimeStart=null;
+      this.queryParams.appCreateTimeEnd=null;
       this.handleQuery();
     },
     // 多选框选中数据