Merge remote-tracking branch 'origin/feature-20240104' into feature-20240104

master
382696293@qq.com 2 years ago
commit c307d04179

@ -1,5 +1,6 @@
package com.flossom.common.core.domain.entity;
import com.flossom.common.core.annotation.Excel;
import com.flossom.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
@ -30,9 +31,11 @@ public class SysTag extends BaseEntity
private String ancestors;
/** 标签名称 */
@Excel(name = "标签名称")
private String tagName;
/** 显示顺序 */
@Excel(name = "排序顺序")
private Integer orderNum;
/** 负责人 */
@ -45,6 +48,7 @@ public class SysTag extends BaseEntity
private String email;
/** 标签状态:0正常,1停用 */
@Excel(name = "标签状态:0正常,1停用")
private String status;
/** 标签状态:1小程序标签,2企微标签 */

@ -67,4 +67,12 @@ public interface WxScriptTagMapper
* @return
*/
public int deleteWxScriptByScriptId(Long scriptId);
/**
* ID
*
* @param tagId ID
* @return
*/
public int deleteWxScriptTagByTagId(Long tagId);
}

@ -53,6 +53,14 @@ public interface WxUserTagMapper {
*/
public int deleteWxUserTagById(Long id);
/**
*
*
* @param tagId
* @return
*/
public int deleteWxUserTagByTagId(Long tagId);
/**
*
*

@ -46,6 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="videoNo != null and videoNo != ''"> and video_no = #{videoNo}</if>
<if test="feedId != null and feedId != ''"> and feed_id = #{feedId}</if>
</where>
order by create_time desc
</select>
<select id="selectWxScriptMessageById" parameterType="Long" resultMap="WxScriptMessageResult">

@ -87,4 +87,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</delete>
<delete id="deleteWxScriptTagByTagId" parameterType="Long">
delete from wx_script_tag where id = #{tagId}
</delete>
</mapper>

@ -3,7 +3,7 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.flossom.common.core.mapper.WxUserTagMapper">
<resultMap type="WxUserTag" id="WxUserTagResult">
<result property="id" column="id" />
<result property="userId" column="user_id" />
@ -23,7 +23,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectWxUserTagList" parameterType="WxUserTag" resultMap="WxUserTagResult">
<include refid="selectWxUserTagVo"/>
<where>
<where>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="tagName != null and tagName != ''"> and tag_name like concat('%', #{tagName}, '%')</if>
<if test="tagId != null "> and tag_id = #{tagId}</if>
@ -31,7 +31,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="status != null "> and status = #{status}</if>
</where>
</select>
<select id="selectWxUserTagById" parameterType="Long" resultMap="WxUserTagResult">
<include refid="selectWxUserTagVo"/>
where id = #{id}
@ -107,7 +107,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</delete>
<delete id="deleteWxUserTagByIds" parameterType="String">
delete from wx_user_tag where id in
delete from wx_user_tag where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
@ -131,4 +131,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<delete id="deleteWxUserTagByUserId">
delete from wx_user_tag where user_id = #{userId}
</delete>
</mapper>
<delete id="deleteWxUserTagByTagId">
delete from wx_user_tag where tag_id = #{tagId}
</delete>
</mapper>

@ -2,9 +2,11 @@ package com.flossom.system.controller;
import com.flossom.common.core.constant.UserConstants;
import com.flossom.common.core.domain.R;
import com.flossom.common.core.domain.SysFiringInfo;
import com.flossom.common.core.domain.entity.SysDept;
import com.flossom.common.core.domain.entity.SysTag;
import com.flossom.common.core.utils.StringUtils;
import com.flossom.common.core.utils.poi.ExcelUtil;
import com.flossom.common.core.web.controller.BaseController;
import com.flossom.common.core.web.domain.AjaxResult;
import com.flossom.common.log.annotation.Log;
@ -13,11 +15,14 @@ import com.flossom.common.security.annotation.RequiresPermissions;
import com.flossom.common.security.utils.SecurityUtils;
import com.flossom.system.service.ISysDeptService;
import com.flossom.system.service.ISysTagService;
import com.flossom.system.service.IWxScriptTagService;
import com.flossom.system.service.IWxUserTagService;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@ -30,7 +35,10 @@ import java.util.List;
public class SysTagController extends BaseController {
@Autowired
private ISysTagService tagService;
@Autowired
private IWxUserTagService wxUserTagService;
@Autowired
private IWxScriptTagService wxScriptTagService;
/**
*
*/
@ -106,6 +114,11 @@ public class SysTagController extends BaseController {
if (tagService.hasChildByDeptId(id)) {
return warn("存在下级标签,不允许删除");
}
// 删除用户标签
wxUserTagService.deleteWxUserTagByTagId(id);
// 删除话术关联标签
wxScriptTagService.deleteWxScriptTagByTagId(id);
// 删除用户标签
// if (tagService.checkDeptExistUser(id))
// {
// return warn("标签存在用户,不允许删除");
@ -143,4 +156,17 @@ public class SysTagController extends BaseController {
public R getWecomTags() {
return R.ok(tagService.getWecomTags());
}
/**
*
*/
@RequiresPermissions("system:tagInfo:export")
@Log(title = "标签信息数据信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, SysTag tag)
{
List<SysTag> list = tagService.selectDeptList(tag);
ExcelUtil<SysTag> util = new ExcelUtil<SysTag>(SysTag.class);
util.exportExcel(response, list, "标签信息数据");
}
}

@ -0,0 +1,71 @@
package com.flossom.system.service;
import com.flossom.common.core.domain.entity.WxScriptTag;
import java.util.List;
/**
* Service
*
* @author flossom
* @date 2024-01-05
*/
public interface IWxScriptTagService
{
/**
*
*
* @param id
* @return
*/
public WxScriptTag selectWxScriptTagById(Long id);
/**
*
*
* @param wxScriptTag
* @return
*/
public List<WxScriptTag> selectWxScriptTagList(WxScriptTag wxScriptTag);
/**
*
*
* @param wxScriptTag
* @return
*/
public int insertWxScriptTag(WxScriptTag wxScriptTag);
/**
*
*
* @param wxScriptTag
* @return
*/
public int updateWxScriptTag(WxScriptTag wxScriptTag);
/**
*
*
* @param ids
* @return
*/
public int deleteWxScriptTagByIds(Long[] ids);
/**
*
*
* @param id
* @return
*/
public int deleteWxScriptTagById(Long id);
/**
*
*
* @param tagId ID
* @return
*/
public int deleteWxScriptTagByTagId(Long tagId);
}

@ -58,4 +58,12 @@ public interface IWxUserTagService {
* @return
*/
public int deleteWxUserTagById(Long id);
/**
*
*
* @param tagId
* @return
*/
public int deleteWxUserTagByTagId(Long tagId);
}

@ -0,0 +1,102 @@
package com.flossom.system.service.impl;
import java.util.List;
import com.flossom.common.core.domain.entity.WxScriptTag;
import com.flossom.common.core.mapper.WxScriptTagMapper;
import com.flossom.common.core.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.flossom.system.service.IWxScriptTagService;
/**
* Service
*
* @author flossom
* @date 2024-01-05
*/
@Service
public class WxScriptTagServiceImpl implements IWxScriptTagService
{
@Autowired
private WxScriptTagMapper wxScriptTagMapper;
/**
*
*
* @param id
* @return
*/
@Override
public WxScriptTag selectWxScriptTagById(Long id)
{
return wxScriptTagMapper.selectWxScriptTagById(id);
}
/**
*
*
* @param wxScriptTag
* @return
*/
@Override
public List<WxScriptTag> selectWxScriptTagList(WxScriptTag wxScriptTag)
{
return wxScriptTagMapper.selectWxScriptTagList(wxScriptTag);
}
/**
*
*
* @param wxScriptTag
* @return
*/
@Override
public int insertWxScriptTag(WxScriptTag wxScriptTag)
{
wxScriptTag.setCreateTime(DateUtils.getNowDate());
return wxScriptTagMapper.insertWxScriptTag(wxScriptTag);
}
/**
*
*
* @param wxScriptTag
* @return
*/
@Override
public int updateWxScriptTag(WxScriptTag wxScriptTag)
{
wxScriptTag.setUpdateTime(DateUtils.getNowDate());
return wxScriptTagMapper.updateWxScriptTag(wxScriptTag);
}
/**
*
*
* @param ids
* @return
*/
@Override
public int deleteWxScriptTagByIds(Long[] ids)
{
return wxScriptTagMapper.deleteWxScriptTagByIds(ids);
}
/**
*
*
* @param id
* @return
*/
@Override
public int deleteWxScriptTagById(Long id)
{
return wxScriptTagMapper.deleteWxScriptTagById(id);
}
@Override
public int deleteWxScriptTagByTagId(Long tagId) {
return wxScriptTagMapper.deleteWxScriptTagByTagId(tagId);
}
}

@ -87,4 +87,9 @@ public class WxUserTagServiceImpl implements IWxUserTagService {
public int deleteWxUserTagById(Long id) {
return wxUserTagMapper.deleteWxUserTagById(id);
}
@Override
public int deleteWxUserTagByTagId(Long tagId) {
return wxUserTagMapper.deleteWxUserTagByTagId(tagId);
}
}

@ -1,6 +1,6 @@
import request from '@/utils/request'
// 查询部门列表
// 查询标签列表
export function listDept(query) {
return request({
url: '/system/tagInfo/list',
@ -9,7 +9,7 @@ export function listDept(query) {
})
}
// 查询部门列表(排除节点)
// 查询标签列表(排除节点)
export function listDeptExcludeChild(deptId) {
return request({
url: '/system/tagInfo/list/exclude/' + deptId,
@ -17,7 +17,7 @@ export function listDeptExcludeChild(deptId) {
})
}
// 查询部门详细
// 查询标签详细
export function getDept(deptId) {
return request({
url: '/system/tagInfo/' + deptId,
@ -25,7 +25,7 @@ export function getDept(deptId) {
})
}
// 新增部门
// 新增标签
export function addDept(data) {
return request({
url: '/system/tagInfo',
@ -34,7 +34,7 @@ export function addDept(data) {
})
}
// 修改部门
// 修改标签
export function updateDept(data) {
return request({
url: '/system/tagInfo',
@ -43,7 +43,7 @@ export function updateDept(data) {
})
}
// 删除部门
// 删除标签
export function delDept(deptId) {
return request({
url: '/system/tagInfo/' + deptId,
@ -51,7 +51,7 @@ export function delDept(deptId) {
})
}
// 查询部门下拉树结构
// 查询标签下拉树结构
export function tagTreeSelect(query) {
return request({
url: '/system/tagInfo/tagTree',

@ -17,7 +17,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API,
// 超时
timeout: 10000,
timeout: 60 * 1000,
});
// request拦截器

@ -36,6 +36,16 @@
<!-- v-hasPermi="['system:dept: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="['system:tagInfo:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="info"
@ -330,6 +340,12 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/tagInfo/export', {
...this.queryParams
}, `info_${new Date().getTime()}.xlsx`)
}
}
};

@ -96,7 +96,7 @@
<el-table-column label="用户编号" align="center" prop="userNumber" />
<el-table-column label="用户手机号码" align="center" prop="userPhone" />
<el-table-column label="用户留言" align="center" prop="messageInfo" />
<el-table-column label="创建时间" align="center" prop="createTime" width="160">
<el-table-column label="提交时间" align="center" prop="createTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime,'{y}-{m}-{d} {h}:{i}') }}</span>
</template>

@ -1,14 +1,14 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="标题" prop="messageTitle">
<el-input
v-model="queryParams.messageTitle"
placeholder="请输入消息标题"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">-->
<!-- <el-form-item label="标题" prop="messageTitle">-->
<!-- <el-input-->
<!-- v-model="queryParams.messageTitle"-->
<!-- placeholder="请输入消息标题"-->
<!-- clearable-->
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </el-form-item>-->
<!-- <el-form-item label="仪器ID" prop="machineId">-->
<!-- <el-input-->
<!-- v-model="queryParams.machineId"-->
@ -73,11 +73,11 @@
<!-- @keyup.enter.native="handleQuery"-->
<!-- />-->
<!-- </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>
</el-form-item>
</el-form>
<!-- <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>-->
<!-- </el-form-item>-->
<!-- </el-form>-->
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
@ -88,40 +88,40 @@
size="mini"
@click="handleAdd"
v-hasPermi="['system:scriptMessage:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:scriptMessage:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:scriptMessage:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:scriptMessage:export']"
>导出</el-button>
>新增绑定仪器模板</el-button>
</el-col>
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="success"-->
<!-- plain-->
<!-- icon="el-icon-edit"-->
<!-- size="mini"-->
<!-- :disabled="single"-->
<!-- @click="handleUpdate"-->
<!-- v-hasPermi="['system:scriptMessage:edit']"-->
<!-- >修改</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="danger"-->
<!-- plain-->
<!-- icon="el-icon-delete"-->
<!-- size="mini"-->
<!-- :disabled="multiple"-->
<!-- @click="handleDelete"-->
<!-- v-hasPermi="['system:scriptMessage:remove']"-->
<!-- >删除</el-button>-->
<!-- </el-col>-->
<!-- <el-col :span="1.5">-->
<!-- <el-button-->
<!-- type="warning"-->
<!-- plain-->
<!-- icon="el-icon-download"-->
<!-- size="mini"-->
<!-- @click="handleExport"-->
<!-- v-hasPermi="['system:scriptMessage:export']"-->
<!-- >导出</el-button>-->
<!-- </el-col>-->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -143,13 +143,11 @@
</template>
</el-table-column>
<el-table-column label="消息内容" align="center" prop="messageContent" />
<el-table-column label="更新人" align="center" prop="updateBy" />
<el-table-column label="更新时间" align="center" prop="createTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.updateTime,'{y}-{m}-{d} {h}:{i}') }}</span>
</template>
</el-table-column>
<el-table-column label="创建人" align="center" prop="createBy" />
<el-table-column label="创建时间" align="center" prop="createTime" width="160">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime,'{y}-{m}-{d} {h}:{i}') }}</span>
@ -164,13 +162,13 @@
@click="handleUpdate(scope.row)"
v-hasPermi="['system:scriptMessage:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:scriptMessage:remove']"
>删除</el-button>
<!-- <el-button-->
<!-- size="mini"-->
<!-- type="text"-->
<!-- icon="el-icon-delete"-->
<!-- @click="handleDelete(scope.row)"-->
<!-- v-hasPermi="['system:scriptMessage:remove']"-->
<!-- >删除</el-button>-->
<el-button
size="mini"
type="text"
@ -230,10 +228,10 @@
</el-form-item>
<el-form-item label="标题" prop="messageTitle">
<el-input v-model="form.messageTitle" placeholder="请输入消息标题" />
<el-input v-model="form.messageTitle" placeholder="请输入消息标题" maxlength="20"/>
</el-form-item>
<el-form-item label="消息内容">
<editor v-model="form.messageContent" :min-height="192"/>
<el-form-item label="消息内容" prop="messageContent">
<el-input type="" v-model="form.messageContent"type="textarea" :rows="5" maxlength="50"/>
</el-form-item>
<el-row>
<el-col :span="24">
@ -269,8 +267,8 @@
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.type == 4" label-width="90px">
<el-form-item label="页面链接" prop="redirectUrl">
<el-input v-model="form.redirectUrl" placeholder="请输入页面链接" />
<el-form-item label="小程序页面" prop="redirectUrl">
<el-input v-model="form.redirectUrl" placeholder="请输入小程序页面" />
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.type == 5 || form.type == 6">
@ -286,8 +284,8 @@
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="cancel"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
@ -340,6 +338,36 @@ export default {
form: {},
//
rules: {
messageType: [
{ required: true, message: "类型不能为空", trigger: "blur" }
],
messageTitle: [
{ required: true, message: "消息标题不能为空", trigger: "blur" }
],
messageContent: [
{ required: true, message: "消息内容不能为空", trigger: "blur" }
],
type: [
{ required: true, message: "跳转类型不能为空", trigger: "blur" }
],
link: [
{ required: true, message: "参数不能为空", trigger: "blur" }
],
redirectAppid: [
{ required: true, message: "APPID不能为空", trigger: "blur" }
],
linkParams: [
{ required: true, message: "跳转参数不能为空", trigger: "blur" }
],
redirectUrl: [
{ required: true, message: "页面链接不能为空", trigger: "blur" }
],
videoNo: [
{ required: true, message: "视频号ID不能为空", trigger: "blur" }
],
feedId: [
{ required: true, message: "视频号feedId不能为空", trigger: "blur" }
],
}
};
},
@ -414,7 +442,7 @@ export default {
handleAdd() {
this.reset();
this.open = true;
this.title = "添加消息模版";
this.title = "新建";
},
/** 修改按钮操作 */
handleUpdate(row) {
@ -428,7 +456,7 @@ export default {
this.form.status = true;
}
this.open = true;
this.title = "修改消息模版";
this.title = "编辑";
});
},
/** 提交按钮 */

@ -29,16 +29,16 @@
<el-form-item label="开启时间" prop="siteStartTime">
<el-date-picker clearable
v-model="queryParams.siteStartTime"
type="date"
value-format="yyyy-MM-dd HH:mm"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择开启开始时间">
</el-date-picker>
</el-form-item>
<el-form-item label="" prop="siteEndTime">
<el-date-picker clearable
v-model="queryParams.siteEndTime"
type="date"
value-format="yyyy-MM-dd HH:mm"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="请选择开启结束时间">
</el-date-picker>
</el-form-item>
@ -132,6 +132,13 @@
<span v-show="scope.row.operate == 2"></span>
</template>
</el-table-column>
<el-table-column label="弹窗类型" align="center" prop="openType" >
<template slot-scope="scope">
<span v-show="scope.row.openType == 1"></span>
<span v-show="scope.row.openType == 2"></span>
<span v-show="scope.row.openType == 3"></span>
</template>
</el-table-column>
<el-table-column label="推送频次" align="center" prop="pushType" >
<template slot-scope="scope">
<span v-show="scope.row.pushType == 1"></span>
@ -218,7 +225,7 @@
</el-upload>
</el-form-item>
<el-form-item label="标题" prop="siteName">
<el-input v-model="form.siteName" placeholder="请输入标题" style="width: 80%" />
<el-input v-model="form.siteName" placeholder="请输入标题" style="width: 80%" maxlength="21"/>
</el-form-item>
<el-form-item label="开启时间" prop="siteStartTime">
<el-date-picker
@ -249,7 +256,7 @@
<el-option label="活动模块" :value="3" :key="3"></el-option>
</el-select>
</el-form-item>
<el-form-item label="推送次数" prop="pushNumber">
<el-form-item label="推送次数" prop="pushType">
<el-radio-group v-model="form.pushType">
<el-radio :label="1">永久一次</el-radio>
<el-radio :label="2">每次进入</el-radio>
@ -373,8 +380,8 @@
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.type == 4" label-width="90px">
<el-form-item label="页面链接" prop="redirectUrl">
<el-input v-model="form.redirectUrl" placeholder="请输入页面链接" />
<el-form-item label="小程序页面" prop="redirectUrl">
<el-input v-model="form.redirectUrl" placeholder="请输入小程序页面" />
</el-form-item>
</el-col>
<el-col :span="24" v-if="form.type == 5 || form.type == 6">
@ -459,7 +466,7 @@ export default {
siteEndTime: null,
userRegisterStartTime: null,
userRegisterEndTime: null,
openType: null,
openType: "",
pushType: null,
pushNumber: null,
pushTimer: null,
@ -476,7 +483,7 @@ export default {
machineName: null,
machineId: null,
userType: null,
operate: null,
operate: "",
signNumber: null,
orderNumber: null,
type: null,
@ -491,10 +498,57 @@ export default {
form: {},
//
rules: {
fileUrl: [
{ required: true, message: "弹窗封面不能为空", trigger: "blur" }
],
pushType: [
{ required: true, message: "推送频次不能为空", trigger: "blur" }
],
siteName: [
{ required: true, message: "标题不能为空", trigger: "blur" }
],
openType: [
{ required: true, message: "弹窗类型不能为空", trigger: "blur" }
],
userType: [
{ required: true, message: "用户类型不能为空", trigger: "blur" }
],
orderNumber: [
{ required: true, message: "排序不能为空", trigger: "blur" }
],
type: [
{ required: true, message: "跳转类型不能为空", trigger: "blur" }
],
link: [
{ required: true, message: "参数不能为空", trigger: "blur" }
],
redirectAppid: [
{ required: true, message: "APPID不能为空", trigger: "blur" }
],
linkParams: [
{ required: true, message: "跳转参数不能为空", trigger: "blur" }
],
redirectUrl: [
{ required: true, message: "页面链接不能为空", trigger: "blur" }
],
videoNo: [
{ required: true, message: "视频号ID不能为空", trigger: "blur" }
],
feedId: [
{ required: true, message: "视频号feedId不能为空", trigger: "blur" }
],
pushTimer: [
{ required: true, message: "自定义频次时间不能为空", trigger: "blur" }
],
pushNumber: [
{ required: true, message: "每天推送次数不能为空", trigger: "blur" }
],
}
};
},
created() {
this.queryParams.siteStartTime = this.dateUtil(new Date(new Date().toLocaleDateString()));
this.queryParams.siteEndTime = this.dateUtil(new Date(new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1));
this.getList();
this.getDeptTree();
},
@ -562,6 +616,16 @@ export default {
};
this.resetForm("form");
},
dateUtil(date){
//
const year = date.getFullYear().toString(); //
const months = (date.getMonth() + 1).toString().padStart(2, '0'); //
const day = date.getDate().toString().padStart(2, '0'); //
const hours = date.getHours().toString().padStart(2, '0'); //
const minutes = date.getMinutes().toString().padStart(2, '0'); //
const seconds = date.getSeconds().toString().padStart(2, '0');
return `${year}-${months}-${day} ${hours}:${minutes}:${seconds}`;
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
@ -583,6 +647,7 @@ export default {
this.reset();
this.open = true;
this.title = "添加站点管理";
this.form.orderNumber = 1000;
},
/** 修改按钮操作 */
handleUpdate(row, operate) {
@ -621,12 +686,16 @@ export default {
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (!this.form.fileUrl) {
this.$modal.msgError("弹窗封面不能为空");
return;
}
//
if(this.form.startTime.length > 0) {
if(this.form.startTime && this.form.startTime.length > 0) {
this.form.siteStartTime = this.form.startTime[0];
this.form.siteEndTime = this.form.startTime[1];
}
if(this.form.registerTime.length > 0) {
if(this.form.registerTime && this.form.registerTime.length > 0) {
this.form.userRegisterStartTime = this.form.registerTime[0];
this.form.userRegisterEndTime = this.form.registerTime[1];
}

@ -26,6 +26,16 @@
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:tagInfo:export']"
>导出</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="primary"
@ -99,7 +109,7 @@
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="24" v-if="form.parentId !== 0">
<el-col :span="24" v-if="showParent == 0">
<el-form-item label="上级标签" prop="parentId">
<treeselect v-model="form.parentId" :options="deptOptions" :normalizer="normalizer" placeholder="选择上级标签" />
</el-form-item>
@ -137,6 +147,8 @@ export default {
components: { Treeselect },
data() {
return {
//
showParent: "",
//
loading: true,
//
@ -245,10 +257,11 @@ export default {
this.reset();
if (row != undefined) {
this.form.parentId = row.id;
this.showParent = row.parentId;
}
this.open = true;
this.title = "添加标签";
listDept().then(response => {
listDept({ type: 1}).then(response => {
this.deptOptions = this.handleTree(response.data, "id");
});
},
@ -316,6 +329,12 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/tagInfo/export', {
...this.queryParams
}, `info_${new Date().getTime()}.xlsx`)
}
}
};

Loading…
Cancel
Save