| @@ -5,16 +5,10 @@ import java.util.List; | ||||
|  | ||||
| import com.stdiet.common.utils.DateUtils; | ||||
| import com.stdiet.common.utils.StringUtils; | ||||
| import com.stdiet.custom.domain.SysLiveSchedulFanRecord; | ||||
| import org.springframework.security.access.prepost.PreAuthorize; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.GetMapping; | ||||
| import org.springframework.web.bind.annotation.PostMapping; | ||||
| import org.springframework.web.bind.annotation.PutMapping; | ||||
| import org.springframework.web.bind.annotation.DeleteMapping; | ||||
| import org.springframework.web.bind.annotation.PathVariable; | ||||
| import org.springframework.web.bind.annotation.RequestBody; | ||||
| import org.springframework.web.bind.annotation.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| import com.stdiet.common.annotation.Log; | ||||
| import com.stdiet.common.core.controller.BaseController; | ||||
| import com.stdiet.common.core.domain.AjaxResult; | ||||
| @@ -261,4 +255,21 @@ public class SysLiveSchedulController extends BaseController | ||||
|         } | ||||
|         return AjaxResult.success(live); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 给对应直播添加、更新进粉记录 | ||||
|      */ | ||||
|     @PostMapping(value = "/addOrEditSysLiveSchedulFanRecord") | ||||
|     public AjaxResult addOrEditSysLiveSchedulFanRecord(@RequestBody  SysLiveSchedulFanRecord sysLiveSchedulFanRecord){ | ||||
|         int row = sysLiveSchedulFanRecord.getId() == null ? sysLiveSchedulService.addLiveSchedulFanRecord(sysLiveSchedulFanRecord) : sysLiveSchedulService.updateLiveSchedulFanRecord(sysLiveSchedulFanRecord); | ||||
|         return toAjax(row); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 给对应直播删除进粉记录 | ||||
|      */ | ||||
|     @GetMapping(value = "/delSysLiveSchedulFanRecord") | ||||
|     public AjaxResult delSysLiveSchedulFanRecord(@RequestParam("id")Long id){ | ||||
|         return toAjax(sysLiveSchedulService.delLiveSchedulFanRecord(id)); | ||||
|     } | ||||
| } | ||||
| @@ -119,4 +119,13 @@ public class SysWxSaleAccountController extends BaseController | ||||
|     { | ||||
|         return toAjax(sysWxSaleAccountService.deleteSysWxSaleAccountByIds(ids)); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 查询所有微信账号 | ||||
|      */ | ||||
|     @GetMapping("/getAllWxAccount") | ||||
|     public AjaxResult getAllWxAccount() { | ||||
|         List<SysWxSaleAccount> list = sysWxSaleAccountService.selectSysWxSaleAccountList(new SysWxSaleAccount()); | ||||
|         return AjaxResult.success(list); | ||||
|     } | ||||
| } | ||||
| @@ -81,5 +81,9 @@ public class SysLiveSchedul extends BaseEntity | ||||
|  | ||||
|     private String fanChannelName; | ||||
|  | ||||
|     //导粉情况 | ||||
|     private List<Map<String,Object>> wxAccountList; | ||||
|  | ||||
|     //进粉情况 | ||||
|     private List<Map<String,Object>> addFanList; | ||||
| } | ||||
| @@ -0,0 +1,43 @@ | ||||
| package com.stdiet.custom.domain; | ||||
|  | ||||
| import java.util.Date; | ||||
| import com.fasterxml.jackson.annotation.JsonFormat; | ||||
| import com.stdiet.common.utils.DateUtils; | ||||
| import lombok.Data; | ||||
| import com.stdiet.common.annotation.Excel; | ||||
| import com.stdiet.common.core.domain.BaseEntity; | ||||
|  | ||||
| /** | ||||
|  * 直播记录中每场直播对应进粉记录对象 sys_live_schedul_fan_record | ||||
|  * | ||||
|  * @author xzj | ||||
|  * @date 2021-08-19 | ||||
|  */ | ||||
| @Data | ||||
| public class SysLiveSchedulFanRecord extends BaseEntity | ||||
| { | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     /** $column.columnComment */ | ||||
|     private Long id; | ||||
|  | ||||
|     /** 直播ID */ | ||||
|     @Excel(name = "直播ID") | ||||
|     private Long liveSchedulId; | ||||
|  | ||||
|     /** 微信账号ID */ | ||||
|     @Excel(name = "微信账号ID") | ||||
|     private Long saleWxAccountId; | ||||
|  | ||||
|     /** 进粉客户微信号 */ | ||||
|     @Excel(name = "进粉客户微信号") | ||||
|     private String fanWxNumber; | ||||
|  | ||||
|     /** 进粉时间 */ | ||||
|     @JsonFormat(pattern = "yyyy-MM-dd HH:mm") | ||||
|     @Excel(name = "进粉时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm") | ||||
|     private Date enterFanTime; | ||||
|  | ||||
|     /** 删除标识 0未删除 1已删除 */ | ||||
|     private Integer delFlag; | ||||
| } | ||||
| @@ -0,0 +1,61 @@ | ||||
| package com.stdiet.custom.mapper; | ||||
|  | ||||
| import java.util.List; | ||||
| import com.stdiet.custom.domain.SysLiveSchedulFanRecord; | ||||
|  | ||||
| /** | ||||
|  * 直播记录中每场直播对应进粉记录Mapper接口 | ||||
|  * | ||||
|  * @author xzj | ||||
|  * @date 2021-08-19 | ||||
|  */ | ||||
| public interface SysLiveSchedulFanRecordMapper | ||||
| { | ||||
|     /** | ||||
|      * 查询直播记录中每场直播对应进粉记录 | ||||
|      * | ||||
|      * @param id 直播记录中每场直播对应进粉记录ID | ||||
|      * @return 直播记录中每场直播对应进粉记录 | ||||
|      */ | ||||
|     public SysLiveSchedulFanRecord selectSysLiveSchedulFanRecordById(Long id); | ||||
|  | ||||
|     /** | ||||
|      * 查询直播记录中每场直播对应进粉记录列表 | ||||
|      * | ||||
|      * @param sysLiveSchedulFanRecord 直播记录中每场直播对应进粉记录 | ||||
|      * @return 直播记录中每场直播对应进粉记录集合 | ||||
|      */ | ||||
|     public List<SysLiveSchedulFanRecord> selectSysLiveSchedulFanRecordList(SysLiveSchedulFanRecord sysLiveSchedulFanRecord); | ||||
|  | ||||
|     /** | ||||
|      * 新增直播记录中每场直播对应进粉记录 | ||||
|      * | ||||
|      * @param sysLiveSchedulFanRecord 直播记录中每场直播对应进粉记录 | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int insertSysLiveSchedulFanRecord(SysLiveSchedulFanRecord sysLiveSchedulFanRecord); | ||||
|  | ||||
|     /** | ||||
|      * 修改直播记录中每场直播对应进粉记录 | ||||
|      * | ||||
|      * @param sysLiveSchedulFanRecord 直播记录中每场直播对应进粉记录 | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int updateSysLiveSchedulFanRecord(SysLiveSchedulFanRecord sysLiveSchedulFanRecord); | ||||
|  | ||||
|     /** | ||||
|      * 删除直播记录中每场直播对应进粉记录 | ||||
|      * | ||||
|      * @param id 直播记录中每场直播对应进粉记录ID | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int deleteSysLiveSchedulFanRecordById(Long id); | ||||
|  | ||||
|     /** | ||||
|      * 批量删除直播记录中每场直播对应进粉记录 | ||||
|      * | ||||
|      * @param ids 需要删除的数据ID | ||||
|      * @return 结果 | ||||
|      */ | ||||
|     public int deleteSysLiveSchedulFanRecordByIds(Long[] ids); | ||||
| } | ||||
| @@ -4,6 +4,7 @@ import java.util.List; | ||||
|  | ||||
| import com.stdiet.common.core.domain.AjaxResult; | ||||
| import com.stdiet.custom.domain.SysLiveSchedul; | ||||
| import com.stdiet.custom.domain.SysLiveSchedulFanRecord; | ||||
|  | ||||
| /** | ||||
|  * 直播排班Service接口 | ||||
| @@ -91,4 +92,25 @@ public interface ISysLiveSchedulService | ||||
|      * @return | ||||
|      */ | ||||
|     public SysLiveSchedul getLiveSchedulByTime(SysLiveSchedul sysLiveSchedul); | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      * 给对应直播添加进粉记录 | ||||
|      * @return | ||||
|      */ | ||||
|     int addLiveSchedulFanRecord(SysLiveSchedulFanRecord sysLiveSchedulFanRecord); | ||||
|  | ||||
|     /** | ||||
|      * 给对应直播更新进粉记录 | ||||
|      * @param sysLiveSchedulFanRecord | ||||
|      * @return | ||||
|      */ | ||||
|     int updateLiveSchedulFanRecord(SysLiveSchedulFanRecord sysLiveSchedulFanRecord); | ||||
|  | ||||
|     /** | ||||
|      * 给对应直播删除进粉记录 | ||||
|      * @param id | ||||
|      * @return | ||||
|      */ | ||||
|     int delLiveSchedulFanRecord(Long id); | ||||
| } | ||||
| @@ -8,6 +8,8 @@ import java.util.List; | ||||
| import com.stdiet.common.core.domain.AjaxResult; | ||||
| import com.stdiet.common.utils.DateUtils; | ||||
| import com.stdiet.common.utils.SecurityUtils; | ||||
| import com.stdiet.custom.domain.SysLiveSchedulFanRecord; | ||||
| import com.stdiet.custom.mapper.SysLiveSchedulFanRecordMapper; | ||||
| import lombok.Data; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | ||||
| @@ -27,6 +29,9 @@ public class SysLiveSchedulServiceImpl implements ISysLiveSchedulService | ||||
|     @Autowired | ||||
|     private SysLiveSchedulMapper sysLiveSchedulMapper; | ||||
|  | ||||
|     @Autowired | ||||
|     private SysLiveSchedulFanRecordMapper sysLiveSchedulFanRecordMapper; | ||||
|  | ||||
|     /** | ||||
|      * 查询直播排班 | ||||
|      * | ||||
| @@ -186,4 +191,29 @@ public class SysLiveSchedulServiceImpl implements ISysLiveSchedulService | ||||
|     public SysLiveSchedul getLiveSchedulByTime(SysLiveSchedul sysLiveSchedul){ | ||||
|         return sysLiveSchedulMapper.getLiveSchedulByTime(sysLiveSchedul); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 给对应直播添加进粉记录 | ||||
|      * @return | ||||
|      */ | ||||
|     public int addLiveSchedulFanRecord(SysLiveSchedulFanRecord sysLiveSchedulFanRecord){ | ||||
|         return sysLiveSchedulFanRecordMapper.insertSysLiveSchedulFanRecord(sysLiveSchedulFanRecord); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 给对应直播修改进粉记录 | ||||
|      * @return | ||||
|      */ | ||||
|     public int updateLiveSchedulFanRecord(SysLiveSchedulFanRecord sysLiveSchedulFanRecord){ | ||||
|         return sysLiveSchedulFanRecordMapper.updateSysLiveSchedulFanRecord(sysLiveSchedulFanRecord); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * 给对应直播删除进粉记录 | ||||
|      * @param id | ||||
|      * @return | ||||
|      */ | ||||
|     public int delLiveSchedulFanRecord(Long id){ | ||||
|         return sysLiveSchedulFanRecordMapper.deleteSysLiveSchedulFanRecordById(id); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,85 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" ?> | ||||
| <!DOCTYPE mapper | ||||
|         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||||
|         "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> | ||||
| <mapper namespace="com.stdiet.custom.mapper.SysLiveSchedulFanRecordMapper"> | ||||
|  | ||||
|     <resultMap type="SysLiveSchedulFanRecord" id="SysLiveSchedulFanRecordResult"> | ||||
|         <result property="id"    column="id"    /> | ||||
|         <result property="liveSchedulId"    column="live_schedul_id"    /> | ||||
|         <result property="saleWxAccountId"    column="sale_wx_account_id"    /> | ||||
|         <result property="fanWxNumber"    column="fan_wx_number"    /> | ||||
|         <result property="enterFanTime"    column="enter_fan_time"    /> | ||||
|         <result property="createTime"    column="create_time"    /> | ||||
|         <result property="createBy"    column="create_by"    /> | ||||
|         <result property="updateTime"    column="update_time"    /> | ||||
|         <result property="updateBy"    column="update_by"    /> | ||||
|         <result property="delFlag"    column="del_flag"    /> | ||||
|     </resultMap> | ||||
|  | ||||
|     <sql id="selectSysLiveSchedulFanRecordVo"> | ||||
|         select id, live_schedul_id, sale_wx_account_id, fan_wx_number, enter_fan_time, create_time, create_by, update_time, update_by, del_flag from sys_live_schedul_fan_record | ||||
|     </sql> | ||||
|  | ||||
|     <select id="selectSysLiveSchedulFanRecordList" parameterType="SysLiveSchedulFanRecord" resultMap="SysLiveSchedulFanRecordResult"> | ||||
|         <include refid="selectSysLiveSchedulFanRecordVo"/> where del_flag = 0 | ||||
|     </select> | ||||
|  | ||||
|     <select id="selectSysLiveSchedulFanRecordById" parameterType="Long" resultMap="SysLiveSchedulFanRecordResult"> | ||||
|         <include refid="selectSysLiveSchedulFanRecordVo"/> | ||||
|         where id = #{id} and del_flag = 0 | ||||
|     </select> | ||||
|  | ||||
|     <insert id="insertSysLiveSchedulFanRecord" parameterType="SysLiveSchedulFanRecord" useGeneratedKeys="true" keyProperty="id"> | ||||
|         insert into sys_live_schedul_fan_record | ||||
|         <trim prefix="(" suffix=")" suffixOverrides=","> | ||||
|             <if test="liveSchedulId != null">live_schedul_id,</if> | ||||
|             <if test="saleWxAccountId != null">sale_wx_account_id,</if> | ||||
|             <if test="fanWxNumber != null">fan_wx_number,</if> | ||||
|             <if test="enterFanTime != null">enter_fan_time,</if> | ||||
|             <if test="createTime != null">create_time,</if> | ||||
|             <if test="createBy != null">create_by,</if> | ||||
|             <if test="updateTime != null">update_time,</if> | ||||
|             <if test="updateBy != null">update_by,</if> | ||||
|             <if test="delFlag != null">del_flag,</if> | ||||
|         </trim> | ||||
|         <trim prefix="values (" suffix=")" suffixOverrides=","> | ||||
|             <if test="liveSchedulId != null">#{liveSchedulId},</if> | ||||
|             <if test="saleWxAccountId != null">#{saleWxAccountId},</if> | ||||
|             <if test="fanWxNumber != null">#{fanWxNumber},</if> | ||||
|             <if test="enterFanTime != null">#{enterFanTime},</if> | ||||
|             <if test="createTime != null">#{createTime},</if> | ||||
|             <if test="createBy != null">#{createBy},</if> | ||||
|             <if test="updateTime != null">#{updateTime},</if> | ||||
|             <if test="updateBy != null">#{updateBy},</if> | ||||
|             <if test="delFlag != null">#{delFlag},</if> | ||||
|         </trim> | ||||
|     </insert> | ||||
|  | ||||
|     <update id="updateSysLiveSchedulFanRecord" parameterType="SysLiveSchedulFanRecord"> | ||||
|         update sys_live_schedul_fan_record | ||||
|         <trim prefix="SET" suffixOverrides=","> | ||||
|             <if test="liveSchedulId != null">live_schedul_id = #{liveSchedulId},</if> | ||||
|             <if test="saleWxAccountId != null">sale_wx_account_id = #{saleWxAccountId},</if> | ||||
|             <if test="fanWxNumber != null">fan_wx_number = #{fanWxNumber},</if> | ||||
|             <if test="enterFanTime != null">enter_fan_time = #{enterFanTime},</if> | ||||
|             <if test="createTime != null">create_time = #{createTime},</if> | ||||
|             <if test="createBy != null">create_by = #{createBy},</if> | ||||
|             <if test="updateTime != null">update_time = #{updateTime},</if> | ||||
|             <if test="updateBy != null">update_by = #{updateBy},</if> | ||||
|             <if test="delFlag != null">del_flag = #{delFlag},</if> | ||||
|         </trim> | ||||
|         where id = #{id} | ||||
|     </update> | ||||
|  | ||||
|     <update id="deleteSysLiveSchedulFanRecordById" parameterType="Long"> | ||||
|         update sys_live_schedul_fan_record set del_flag = 1  where id = #{id} | ||||
|     </update> | ||||
|  | ||||
|     <update id="deleteSysLiveSchedulFanRecordByIds" parameterType="String"> | ||||
|         update sys_live_schedul_fan_record set del_flag = 1 where id in | ||||
|         <foreach item="id" collection="array" open="(" separator="," close=")"> | ||||
|             #{id} | ||||
|         </foreach> | ||||
|     </update> | ||||
| </mapper> | ||||
| @@ -29,6 +29,8 @@ | ||||
|  | ||||
|         <!-- 根据渠道查询对应微信号(微信账号分配表中) --> | ||||
|         <association property="wxAccountList" column="id" select="getWxAccountListByLiveId"/> | ||||
|         <!-- 查询该场直播真实进粉情况 --> | ||||
|         <association property="addFanList" column="id" select="getAddFanRecordByLiveSchedulId"></association> | ||||
|     </resultMap> | ||||
|  | ||||
|     <resultMap type="SysLiveSchedul" id="SysLiveSchedulResultSigle"> | ||||
| @@ -220,5 +222,16 @@ | ||||
|         and  #{liveStartTime} >= live_start_time order by live_start_time desc limit 1 | ||||
|     </select> | ||||
|  | ||||
|     <!-- 根据直播记录ID查询对应进粉情况 --> | ||||
|     <select id="getAddFanRecordByLiveSchedulId" parameterType="Long" resultType="Map"> | ||||
|         select | ||||
|         fr.id, fr.live_schedul_id liveSchedulId, fr.sale_wx_account_id saleWxAccountId, fr.fan_wx_number as fanWxNumber, DATE_FORMAT(fr.enter_fan_time,'%Y-%m-%d %H:%i') as enterFanTime, | ||||
|         w.wx_account as saleWxAccount, u.nick_name as saleName | ||||
|         from sys_live_schedul_fan_record as fr | ||||
|         left join sys_wx_sale_account as w on w.id = fr.sale_wx_account_id and w.del_flag = 0 | ||||
|         left join sys_wx_distribution as swd on swd.wechat_account = w.id and swd.del_flag = 0 | ||||
|         left join sys_user u on u.user_id = swd.user_id | ||||
|         where fr.del_flag = 0 and fr.live_schedul_id = #{id} order by fr.create_time desc | ||||
|     </select> | ||||
|  | ||||
| </mapper> | ||||
| @@ -89,5 +89,23 @@ export function getLiveSchedulByTime(data) { | ||||
|   }) | ||||
| } | ||||
|  | ||||
| //添加、编辑进粉记录 | ||||
| export function addOrEditSysLiveSchedulFanRecord(data){ | ||||
|   return request({ | ||||
|     url: '/custom/liveSchedul/addOrEditSysLiveSchedulFanRecord', | ||||
|     method: 'post', | ||||
|     data: data | ||||
|   }) | ||||
| } | ||||
|  | ||||
| //删除进粉记录 | ||||
| export function delSysLiveSchedulFanRecord(query){ | ||||
|   return request({ | ||||
|     url: '/custom/liveSchedul/delSysLiveSchedulFanRecord', | ||||
|     method: 'get', | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -51,3 +51,12 @@ export function exportWxAccount(query) { | ||||
|     params: query | ||||
|   }) | ||||
| } | ||||
|  | ||||
| // 查询所有微信账号 | ||||
| export function getAllWxAccount() { | ||||
|   return request({ | ||||
|     url: '/custom/wxAccount/getAllWxAccount', | ||||
|     method: 'get' | ||||
|   }) | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -137,16 +137,18 @@ | ||||
|         </template> | ||||
|       </el-table-column> | ||||
|       <el-table-column label="直播营养师" align="center" prop="liveNutritionistName" /> | ||||
|       <el-table-column label="直播运营" align="center" prop="liveOperatorName" /> | ||||
|       <el-table-column label="直播策划" align="center" prop="livePlannerName" /> | ||||
|       <!--<el-table-column label="直播运营" align="center" prop="liveOperatorName" /> | ||||
|       <el-table-column label="直播策划" align="center" prop="livePlannerName" />--> | ||||
|       <el-table-column label="所属账号" align="center" prop="fanChannelName" /> | ||||
|       <el-table-column label="接粉微信号" align="center" prop="wxAccountList"> | ||||
|       <el-table-column label="导粉情况" align="center" prop="wxAccountList"> | ||||
|         <template slot-scope="scope"> | ||||
|           <span style="margin-right:10px">{{scope.row.wxAccountList.length}}</span> | ||||
|           <el-popover | ||||
|           placement="left" | ||||
|           width="370" | ||||
|           trigger="click"> | ||||
|           <el-table :data="scope.row.wxAccountList" style="width:360;height: 300px;overflow: auto;"> | ||||
|            | ||||
|           <el-table :data="scope.row.wxAccountList" height="300" style="width: 100%"> | ||||
|             <el-table-column width="80" property="saleName" label="销售"></el-table-column> | ||||
|             <el-table-column width="180" property="wxAccount" label="微信号" align="center"></el-table-column> | ||||
|             <el-table-column width="80" property="fanNum" label="导粉量" align="center"></el-table-column> | ||||
| @@ -155,6 +157,55 @@ | ||||
|           </el-popover> | ||||
|         </template> | ||||
|       </el-table-column> | ||||
|       <el-table-column label="进粉情况" align="center" prop="addFanList"> | ||||
|         <template slot-scope="scope"> | ||||
|           <span style="margin-right:10px">{{scope.row.addFanList.length}}</span> | ||||
|           <el-popover | ||||
|           :title="scope.row.liveRoomName + '-'  + scope.row.fanChannelName + '-' + scope.row.liveNutritionistName + '-' + parseTime(scope.row.liveStartTime, '{h}:{i}') + '至' + parseTime(scope.row.liveEndTime, '{h}:{i}') + '直播进粉记录'" | ||||
|           placement="left" | ||||
|           width="680" | ||||
|           trigger="click"> | ||||
|           <el-row :gutter="10" class="mb8"> | ||||
|             <el-col :span="1.5"> | ||||
|               <el-button | ||||
|                 type="primary" | ||||
|                 icon="el-icon-plus" | ||||
|                 size="mini" | ||||
|                 @click="addFanRecord(scope.row)" | ||||
|               >新增</el-button> | ||||
|               <span style="margin-left:5px;color:red">总数:{{scope.row.addFanList.length}}</span> | ||||
|             </el-col> | ||||
|           </el-row> | ||||
|           <el-table :data="scope.row.addFanList" height="250" style="width: 100%"><!-- 620;height: 300px;overflow: auto; --> | ||||
|             <el-table-column width="70" property="saleName" label="销售"></el-table-column> | ||||
|             <el-table-column width="140" property="saleWxAccount" label="销售微信号" align="center"></el-table-column> | ||||
|             <el-table-column width="140" property="fanWxNumber" label="客户微信号" align="center"></el-table-column> | ||||
|             <el-table-column width="140" property="enterFanTime" label="进粉时间" align="center"></el-table-column> | ||||
|             <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="140"> | ||||
|                 <template slot-scope="scope"> | ||||
|                       <el-button | ||||
|                         style="margin-left:16px" | ||||
|                           size="normal" | ||||
|                           type="text" | ||||
|                           icon="el-icon-edit" | ||||
|                           @click="updateFanRecord(scope.row)" | ||||
|                       >修改</el-button> | ||||
|                       <el-popconfirm title="确定要删除吗?" @onConfirm="delFanRecord(scope.row)"> | ||||
|                           <el-button | ||||
|                              slot="reference" | ||||
|                             size="normal" | ||||
|                             type="text" | ||||
|                             icon="el-icon-delete" | ||||
|                           >删除</el-button>  | ||||
|                       </el-popconfirm> | ||||
|                      | ||||
|                 </template> | ||||
|             </el-table-column> | ||||
|           </el-table> | ||||
|           <el-button slot="reference">详情</el-button> | ||||
|           </el-popover> | ||||
|         </template> | ||||
|       </el-table-column> | ||||
|       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="300"> | ||||
|         <template slot-scope="scope"><!-- scope.row.statusTrueName,scope.row.statusFalseName --> | ||||
|           <el-switch | ||||
| @@ -344,12 +395,58 @@ | ||||
|         <el-button @click="cancel">取 消</el-button> | ||||
|       </div> | ||||
|     </el-dialog> | ||||
|  | ||||
|      <el-dialog :title="addEditFanRecordTitle" :visible.sync="addEditFanRecordOpen" width="600px" append-to-body :close-on-click-modal="false"> | ||||
|         <el-form ref="addEditFanRecordForm" :model="addEditFanRecordForm" :rules="addEditFanRecordRules" label-width="120px"> | ||||
|             <el-form-item label="销售微信号" prop="saleWxAccountId"> | ||||
|             <el-select | ||||
|                 v-model="addEditFanRecordForm.saleWxAccountId" | ||||
|                 placeholder="请选择销售微信号" | ||||
|                 clearable | ||||
|                 filterable | ||||
|                 size="small" | ||||
|                 style="width:300px" | ||||
|               > | ||||
|               <el-option | ||||
|                 v-for="dict in wxAccountList" | ||||
|                 :key="dict.id" | ||||
|                 :label="dict.wxAccount" | ||||
|                 :value="parseInt(dict.id)" | ||||
|               /> | ||||
|             </el-select> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="粉丝微信号" prop="fanWxNumber"> | ||||
|                 <el-input | ||||
|                   v-model="addEditFanRecordForm.fanWxNumber" | ||||
|                   placeholder="请输入微信号" | ||||
|                   clearable | ||||
|                   size="small" | ||||
|                   maxlength="50" | ||||
|                   style="width:300px" | ||||
|                 /> | ||||
|             </el-form-item> | ||||
|             <el-form-item label="进粉时间" prop="enterFanTime"> | ||||
|                 <el-date-picker | ||||
|                 v-model="addEditFanRecordForm.enterFanTime" | ||||
|                 format="yyyy-MM-dd HH:mm" | ||||
|                 value-format="yyyy-MM-dd HH:mm" | ||||
|                 type="datetime" | ||||
|                 style="width:300px" | ||||
|                 placeholder="进粉时间"> | ||||
|             </el-date-picker> | ||||
|           </el-form-item> | ||||
|         </el-form> | ||||
|         <div slot="footer" class="dialog-footer"> | ||||
|           <el-button type="primary" @click="submitAddEditFanRecordForm">确 定</el-button> | ||||
|           <el-button @click="cancelAddEditFanRecordForm">取 消</el-button> | ||||
|         </div> | ||||
|     </el-dialog> | ||||
|   </div> | ||||
| </template> | ||||
|  | ||||
| <script> | ||||
| import { listLiveSchedul, getLiveSchedul, delLiveSchedul, addLiveSchedul, updateLiveSchedul, exportLiveSchedul,updateLiveStatus,copyLastTimeLiveSchedul } from "@/api/custom/liveSchedul"; | ||||
| import { listWxAccount } from "@/api/custom/wxAccount"; | ||||
| import { listLiveSchedul, getLiveSchedul, delLiveSchedul, addLiveSchedul, updateLiveSchedul, exportLiveSchedul,updateLiveStatus,copyLastTimeLiveSchedul,addOrEditSysLiveSchedulFanRecord,delSysLiveSchedulFanRecord } from "@/api/custom/liveSchedul"; | ||||
| import { getAllWxAccount } from "@/api/custom/wxAccount"; | ||||
| import AutoHideInfo from "@/components/AutoHideInfo"; | ||||
| import dayjs from "dayjs"; | ||||
| const nowDate = dayjs().format("YYYY-MM-DD"); | ||||
| @@ -414,7 +511,19 @@ export default { | ||||
|       //接粉渠道 | ||||
|       fanChanneloptions: [], | ||||
|       //所有微信号 | ||||
|       wxAccountList:[] | ||||
|       wxAccountList:[], | ||||
|  | ||||
|       addEditFanRecordTitle: "", | ||||
|       addEditFanRecordOpen: false, | ||||
|       addEditFanRecordForm: {}, | ||||
|       addEditFanRecordRules: { | ||||
|         saleWxAccountId: [{ required: true, trigger: "blur", message: "请选择销售微信号" }], | ||||
|         fanWxNumber:[{ required: true, trigger: "blur", message: "请填写粉丝微信号" }], | ||||
|         enterFanTime:[{ required: true, trigger: "blur", message: "请选择进粉时间" }], | ||||
|       }, | ||||
|       //记录当前添加或编辑进粉记录对应直播记录的ID | ||||
|       addOrEditSchedulId: null, | ||||
|  | ||||
|     }; | ||||
|   }, | ||||
|   components:{ | ||||
| @@ -454,16 +563,18 @@ export default { | ||||
|                 item.status = (item.liveStatus == 0 || item.liveStatus == 2) ? false : true;  | ||||
|                 item.statusFalseName = item.liveStatus == 0 ? '未开播' : '已下播'; | ||||
|                 item.statusTrueName = '已开播'; | ||||
|                 item.addFanVisible = this.addOrEditSchedulId == item.id;   | ||||
|             }); | ||||
|         } | ||||
|         this.total = response.total; | ||||
|         this.loading = false; | ||||
|         this.addOrEditSchedulId = null; | ||||
|       }); | ||||
|     }, | ||||
|     //获取所有微信号 | ||||
|     getListWxAccount() { | ||||
|       listWxAccount(this.queryParams).then((response) => { | ||||
|         this.wxAccountList = response.rows; | ||||
|       getAllWxAccount().then((response) => { | ||||
|         this.wxAccountList = response.data; | ||||
|       }); | ||||
|     }, | ||||
|     // 取消按钮 | ||||
| @@ -620,6 +731,79 @@ export default { | ||||
|           } | ||||
|       }); | ||||
|        | ||||
|     }, | ||||
|     addEditFanRecordFormRest(){ | ||||
|         this.addEditFanRecordForm = { | ||||
|           id: null, | ||||
|           liveSchedulId: null, | ||||
|           saleWxAccountId: null, | ||||
|           fanWxNumber: null, | ||||
|           enterFanTime: nowTime | ||||
|         }, | ||||
|         this.addOrEditSchedulId = null; | ||||
|     },  | ||||
|     addFanRecord(item){ | ||||
|         this.addEditFanRecordFormRest(); | ||||
|         this.addEditFanRecordForm.liveSchedulId = item.id; | ||||
|         this.addEditFanRecordTitle = item.liveRoomName + "-" + item.fanChannelName + "-" + item.liveNutritionistName + "-" + this.parseTime(item.liveStartTime, '{h}:{i}') +"至" + this.parseTime(item.liveEndTime, '{h}:{i}') + "直播-添加进粉记录"; | ||||
|         this.addEditFanRecordOpen = true; | ||||
|     }, | ||||
|     updateFanRecord(item){ | ||||
|         this.addEditFanRecordFormRest(); | ||||
|         if(item.id == null){ | ||||
|             return; | ||||
|         } | ||||
|         this.addEditFanRecordForm = { | ||||
|           id: item.id, | ||||
|           liveSchedulId: item.liveSchedulId, | ||||
|           saleWxAccountId: item.saleWxAccountId, | ||||
|           fanWxNumber: item.fanWxNumber, | ||||
|           enterFanTime: item.enterFanTime | ||||
|         }; | ||||
|         let liveSchedul = this.getLiveSchedulById(item.liveSchedulId); | ||||
|         this.addEditFanRecordTitle = liveSchedul.liveRoomName + "-" + liveSchedul.fanChannelName + "-" + liveSchedul.liveNutritionistName + "-" + this.parseTime(liveSchedul.liveStartTime, '{h}:{i}') +"至" + this.parseTime(liveSchedul.liveEndTime, '{h}:{i}') + "直播-编辑进粉记录"; | ||||
|         this.addEditFanRecordOpen = true; | ||||
|     }, | ||||
|     delFanRecord(item){ | ||||
|         if(item == null || item.id == null){ | ||||
|           return; | ||||
|         } | ||||
|         delSysLiveSchedulFanRecord({'id': item.id}).then((reponse) => { | ||||
|             if(reponse.code == 200){ | ||||
|               this.msgSuccess("删除成功"); | ||||
|               this.addEditFanRecordOpen = false; | ||||
|                this.getList(); | ||||
|             }else{ | ||||
|               this.msgSuccess("删除失败"); | ||||
|             } | ||||
|         }); | ||||
|     }, | ||||
|     submitAddEditFanRecordForm(){ | ||||
|          this.$refs["addEditFanRecordForm"].validate(valid => { | ||||
|             if (valid) { | ||||
|                   addOrEditSysLiveSchedulFanRecord(this.addEditFanRecordForm).then((response) => { | ||||
|                       if(response.code == 200){ | ||||
|                             this.msgSuccess(this.addEditFanRecordForm.id == null ? "添加成功" : "编辑成功"); | ||||
|                             this.addEditFanRecordOpen = false; | ||||
|                             this.addOrEditSchedulId = this.addEditFanRecordForm.liveSchedulId; | ||||
|                             this.getList(); | ||||
|                       }else{ | ||||
|                          this.msgError(this.addEditFanRecordForm.id == null ? "添加失败" : "编辑失败"); | ||||
|                       } | ||||
|  | ||||
|                   }); | ||||
|             }else{ | ||||
|               this.msgError("数据未填写完整"); | ||||
|             } | ||||
|          }); | ||||
|     }, | ||||
|     cancelAddEditFanRecordForm(){ | ||||
|         this.addEditFanRecordOpen = false; | ||||
|     }, | ||||
|     getLiveSchedulById(id){ | ||||
|       if(this.liveSchedulList != null && this.liveSchedulList.length > 0 && id != null){ | ||||
|          return this.liveSchedulList.find((opt) => opt.id === id); | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user