Browse Source

Merge remote-tracking branch 'origin/master'

yuhongqi 3 days ago
parent
commit
685269dde4

+ 26 - 0
.env.prod-sczy

@@ -0,0 +1,26 @@
+# 页面标题
+VUE_APP_TITLE =致医SCRM销售端
+# 公司名称
+VUE_APP_COMPANY_NAME =云联融智互联网医院有限公司
+# ICP备案号
+VUE_APP_ICP_RECORD =渝ICP备2024031984号-1
+# ICP网站访问地址
+VUE_APP_ICP_URL =https://beian.miit.gov.cn
+# 网站LOG
+VUE_APP_LOG_URL =@/assets/logo/sczy.png
+
+# 生产环境配置
+ENV = 'production'
+
+# FS管理系统/开发环境
+VUE_APP_BASE_API = '/prod-api'
+
+#默认 1、会员 2、企微
+VUE_APP_COURSE_DEFAULT = 2
+
+
+#项目所属
+VUE_APP_PROJECT_FROM=sczy
+
+# 路由懒加载
+VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 1 - 0
package.json

@@ -46,6 +46,7 @@
     "build:prod-hyt": "vue-cli-service build --mode prod-hyt",
     "build:prod-hst": "vue-cli-service build --mode prod-hst",
     "build:prod-hat": "vue-cli-service build --mode prod-hat",
+    "build:prod-sczy": "vue-cli-service build --mode prod-sczy",
     "build:prod-ddgy": "vue-cli-service build --mode prod-ddgy",
     "build:prod-czt": "vue-cli-service build --mode prod-czt",
     "build:prod-jnsyj": "vue-cli-service build --mode prod-jnsyj",

+ 14 - 0
src/api/course/userCoursePeriod.js

@@ -8,6 +8,14 @@ export function listPeriod(query) {
     params: query
   })
 }
+// 获取营期名称列表
+export function listPeriodLabel(query) {
+  return request({
+    url: '/course/period/listLabel',
+    method: 'get',
+    params: query
+  })
+}
 // 查询会员营期列表
 export function getDays(query) {
   return request({
@@ -175,6 +183,12 @@ export function updatePeriod(data) {
     method: 'put',
     data: data
   })
+}export function updatePeriodIsNeedRegisterMember(data) {
+  return request({
+    url: '/course/period/editIsNeedRegisterMember',
+    method: 'put',
+    data: data
+  })
 }
 
 // 根据营期id获取公司红包金额列表

BIN
src/assets/logo/sczy.png


+ 19 - 0
src/views/course/courseWatchLog/index.vue

@@ -48,6 +48,17 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <!-- 营期名称  periodIds-->
+      <el-form-item label="营期名称" prop="periodId">
+        <el-select filterable  v-model="queryParams.periodId" placeholder="请选择营期名称"  clearable size="small">
+          <el-option
+            v-for="dict in scheduleLists"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="课程" prop="courseId">
         <el-select filterable  v-model="queryParams.courseId" placeholder="请选择课程"  clearable size="small" @change="courseChange(queryParams.courseId)">
           <el-option
@@ -603,6 +614,7 @@
 
 <script>
 import { listCourseWatchLog, getCourseWatchLog, delCourseWatchLog, addCourseWatchLog, updateCourseWatchLog, exportCourseWatchLog } from "@/api/course/courseWatchLog";
+import {listPeriodLabel} from "@/api/course/userCoursePeriod";
 import {courseList, listCourseRedPacketLog, videoList} from '@/api/course/courseRedPacketLog'
 import {listLogs} from "@/api/course/courseAnswerlogs";
 import {allListTagGroup} from "../../../api/qw/tagGroup";
@@ -670,6 +682,7 @@ export default {
         }
       },
       courseLists:[],
+      scheduleLists:[], // 营期名称
       videoList:[],
       logTypeOptions:[],
       projectOptions:[],
@@ -770,6 +783,7 @@ export default {
         companyUserId: null,
         companyId: null,
         courseId: null,
+        periodId:null,
         sTime:null,
         eTime:null,
         upSTime:null,
@@ -822,6 +836,10 @@ export default {
     this.getDicts("sys_course_project").then(response => {
       this.projectOptions = response.data;
     });
+    // 查询营期名称
+    listPeriodLabel().then(response => {
+      this.scheduleLists = response.rows;
+    });
 
     // 设置默认当天时间 xgb 防止频繁查询大量数据
     this.setToday();
@@ -1258,6 +1276,7 @@ export default {
         companyUserId: null,
         companyId: null,
         courseId: null,
+        periodId:null,
         sTime:null,
         eTime:null,
         upSTime:null,

+ 23 - 2
src/views/course/courseWatchLog/watchLog.vue

@@ -68,6 +68,17 @@
           @keyup.enter.native="handleQuery"
         />
       </el-form-item>
+      <!-- 营期名称  periodIds-->
+      <el-form-item label="营期名称" prop="periodId">
+        <el-select filterable  v-model="queryParams.periodId" placeholder="请选择营期名称"  clearable size="small">
+          <el-option
+            v-for="dict in scheduleLists"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
+      </el-form-item>
       <el-form-item label="课程" prop="courseId">
         <el-select filterable v-model="queryParams.courseId" placeholder="请选择课程" clearable size="small"
                    @change="courseChange(queryParams.courseId)">
@@ -370,6 +381,7 @@
           <img v-else :src="scope.row.externalUserAvatar" style="width:50px;height:50px" />
         </template>
       </el-table-column>
+      <el-table-column label="营期名称" align="center" prop="periodIdName" v-if="this.queryParams.sendType==1" />
       <el-table-column label="课程名称" align="center" prop="courseName"/>
       <el-table-column label="小节名称" align="center" prop="videoName"/>
       <el-table-column label="记录类型" align="center" prop="logType">
@@ -393,6 +405,7 @@
       <el-table-column label="更新时间" align="center" prop="updateTime" width="100px" />
       <el-table-column label="完课时间" align="center" prop="finishTime" width="100px" />
       <el-table-column label="营期时间" align="center" prop="campPeriodTime" />
+      <el-table-column label="进线时间" align="center" prop="qecCreateTime" />
       <el-table-column label="是否领奖" align="center" prop="rewardType" >
         <template slot-scope="scope">
           <el-tag
@@ -670,6 +683,7 @@ import {
   updateCourseWatchLog
 } from "@/api/course/courseWatchLog";
 import {courseList, myListCourseRedPacketLog, videoList} from '@/api/course/courseRedPacketLog'
+import {listPeriodLabel} from "@/api/course/userCoursePeriod";
 import {myListLogs} from "@/api/course/courseAnswerlogs";
 import {getMyQwUserList} from "@/api/qw/user";
 import {searchTags} from "../../../api/qw/tag";
@@ -695,7 +709,7 @@ export default {
       createTimeText: '',
       scheduleTimeText: '',  // 新增
       updateTimeText: '',    // 新增
-      qecCreateTimeText: '', // 新增
+      qecCreateTimeText: [], // 新增
       periodTimeText: '', // 营期课程时间
 
       scheduleTime: [],  // 改为数组
@@ -731,6 +745,7 @@ export default {
         }
       },
       courseLists: [],
+      scheduleLists:[], // 营期名称
       videoList: [],
       myQwUserList: [],
       logTypeOptions: [],
@@ -832,6 +847,7 @@ export default {
         companyUserId: null,
         companyId: null,
         courseId: null,
+        periodId:null,
         sTime: null,
         eTime: null,
         upSTime:null,
@@ -874,6 +890,10 @@ export default {
     });
     this.getDicts("sys_course_project").then(response => {
       this.projectOptions = response.data;
+    });
+       // 查询营期名称
+    listPeriodLabel().then(response => {
+      this.scheduleLists = response.rows;
     });
     // 设置默认当天时间 xgb 防止频繁查询大量数据
     this.setToday();
@@ -1081,7 +1101,7 @@ export default {
           return;
         }
 
-        this.qecCreateTimeText = this.formatDateRange(qecCreateTime);
+        // this.qecCreateTimeText = this.formatDateRange(qecCreateTime);
         this.queryParams.qecSTime = qecCreateTime[0] || null;
         this.queryParams.qecETime = qecCreateTime[1] || null;
       } else {
@@ -1199,6 +1219,7 @@ export default {
         companyUserId: null,
         companyId: null,
         courseId: null,
+        periodId:null,
         sTime:null,
         eTime:null,
         upSTime:null,

+ 53 - 56
src/views/course/userCoursePeriod/index.vue

@@ -33,40 +33,6 @@
     </el-form>
 
     <el-row :gutter="10" class="mb8">
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="primary"-->
-<!--          plain-->
-<!--          icon="el-icon-plus"-->
-<!--          size="mini"-->
-<!--          @click="handleAdd"-->
-<!--          v-hasPermi="['course:period:add']"-->
-<!--        >新增-->
-<!--        </el-button>-->
-<!--      </el-col>-->
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="warning"-->
-<!--          plain-->
-<!--          icon="el-icon-download"-->
-<!--          size="mini"-->
-<!--          @click="handleExport"-->
-<!--          v-hasPermi="['course:period:export']"-->
-<!--        >导出-->
-<!--        </el-button>-->
-<!--      </el-col>-->
-<!--      <el-col :span="1.5">-->
-<!--        <el-button-->
-<!--          type="primary"-->
-<!--          plain-->
-<!--          icon="el-icon-edit"-->
-<!--          size="mini"-->
-<!--          @click="handleBatchSetRedPacket"-->
-<!--          v-hasPermi="['course:period:export']"-->
-<!--          :disabled="batchSetRedPacketDisabled"-->
-<!--        >批量设置红包-->
-<!--        </el-button>-->
-<!--      </el-col>-->
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
     </el-row>
 
@@ -95,6 +61,31 @@
             @click="handlePeriodSettings(scope.row)"
           >营期相关设置
           </el-button>
+          <!-- 根据 isNeedRegisterMember 动态显示按钮 -->
+          <el-button
+            v-if="scope.row.isNeedRegisterMember === 0"
+            size="mini"
+            type="text"
+            icon="el-icon-open"
+            @click="handlePeriodUser(scope.row, 1)"
+          >开启单独注册会员
+          </el-button>
+          <el-button
+            v-else-if="scope.row.isNeedRegisterMember === 1"
+            size="mini"
+            type="text"
+            icon="el-icon-turn-off"
+            @click="handlePeriodUser(scope.row, 0)"
+          >关闭单独注册会员
+          </el-button>
+          <el-button
+            v-else
+            size="mini"
+            type="text"
+            icon="el-icon-open"
+            @click="handlePeriodUser(scope.row, 1)"
+          >开启单独注册会员
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -248,13 +239,6 @@
       </div>
     </el-dialog>
 
-    <!--    <red-packet-->
-    <!--      :visible.sync="redPacketVisible"-->
-    <!--      :periodId="currentRedPacketData.periodId"-->
-    <!--      :videoId="currentRedPacketData.videoId"-->
-    <!--      @success="handleRedPacketSuccess"-->
-    <!--    />-->
-
     <!-- 营期相关设置抽屉 -->
     <el-drawer
       title="营期相关设置"
@@ -316,6 +300,7 @@ import {
   getPeriod,
   pagePeriod,
   updatePeriod,
+  updatePeriodIsNeedRegisterMember,
   getDays,
   addCourse,
   updateCourseTime,
@@ -455,7 +440,6 @@ export default {
     };
   },
   created() {
-
     courseList().then(response => {
       this.courseList = response.list;
     });
@@ -569,6 +553,33 @@ export default {
         this.isDisabledDateRange = true;
       });
     },
+    /** 处理单独注册会员开关 */
+    handlePeriodUser(data, open) {
+      const actionText = open === 1 ? '开启' : '关闭';
+      this.$confirm(`确定要${actionText}【${data.periodName}】的单独注册会员功能吗?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        var data1 = {
+          periodId:data.periodId,
+          isNeedRegisterMember:open,
+        }
+        updatePeriodIsNeedRegisterMember(data1).then(response => {
+          if (response.code === 200) {
+            this.msgSuccess(`${actionText}成功`);
+            this.getList();
+          } else {
+            this.msgError(response.msg || `${actionText}失败`);
+          }
+        }).catch(error => {
+          console.error(`${actionText}单独注册会员失败:`, error);
+          this.msgError(`${actionText}失败`);
+        });
+      }).catch(() => {
+        this.$message.info('已取消操作');
+      });
+    },
     /** 提交按钮 */
     submitForm() {
       this.$refs["form"].validate(valid => {
@@ -646,19 +657,6 @@ export default {
       this.batchRedPacketVisible = true;
     },
 
-    /** 处理批量设置红包保存 */
-    // handleBatchRedPacketSave(data) {
-    //   // 这里等待接口提供后补充具体实现
-    //   // 示例代码:
-    //   // batchSetRedPacket(data).then(response => {
-    //   //   if (response.code === 200) {
-    //   //     this.$message.success('批量设置成功');
-    //   //     this.getList();
-    //   //   }
-    //   // });
-    //   this.batchRedPacketVisible = false;
-    // },
-
     /** 获取公司下拉列表*/
     getCompanyList() {
       this.loading = true;
@@ -942,7 +940,6 @@ export default {
         this.form.periodStartingTime = this.form.dateRange[0];
         this.form.periodEndTime = this.form.dateRange[1];
 
-
         // 转换为天数
         let days = this.getDiff(this.form.periodStartingTime, this.form.periodEndTime);
         for (let i = 0; i < days; i++) {

+ 2 - 2
src/views/member/mylist.vue

@@ -326,7 +326,7 @@
 </template>
 
 <script>
-import { listUser, getUser, addUser, updateUser, delUser, exportUser, auditUser } from "@/api/user/fsUser";
+import { listUser, getUser, addUser, updateUser, delUser, exportUser, auditUser,myListUser } from "@/api/user/fsUser";
 import {transferUser} from "@/api/users/user";
 import {getUserList} from "@/api/company/companyUser";
 import userDetails from '@/views/store/components/userDetails.vue';
@@ -503,7 +503,7 @@ export default {
         this.queryParams.registerEndTime = null;
       }
 
-      listUser(this.queryParams).then(response => {
+      myListUser(this.queryParams).then(response => {
         this.userList = response.rows;
         this.total = response.total;
         this.loading = false;

+ 12 - 2
src/views/qw/externalContact/index.vue

@@ -206,8 +206,18 @@
         />
       </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 label="添加时间" prop="createTime">
+        <el-date-picker
+          v-model="createTime"
+          size="small"
+          style="width: 240px"
+          value-format="yyyy-MM-dd HH:mm:ss"
+          type="datetimerange"
+          range-separator="-"
+          start-placeholder="开始日期"
+          end-placeholder="结束日期"
+          @change="change"
+        ></el-date-picker>
       </el-form-item>
 
 

+ 1 - 1
src/views/qw/sop/ImageUpload.vue

@@ -152,7 +152,7 @@ export default {
         return false;
       }
       if (this.fileSize) {
-        const isLt = file.size / 1024 / 1024 < this.fileSize;
+        const isLt = file.size / 10 / 1024 / 1024 < this.fileSize;
         if (!isLt) {
           this.$message.error(`上传头像图片大小不能超过 ${this.fileSize} MB!`);
           return false;