消费项目排序和样式

This commit is contained in:
zhanglipeng 2021-03-09 11:44:57 +08:00
parent 43203ff88d
commit 2ad86d7945
3 changed files with 193 additions and 149 deletions

View File

@ -1,11 +1,8 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form <el-form :model="queryParams" ref="queryForm" label-width="70px">
:model="queryParams" <el-row :gutter="10">
ref="queryForm" <el-col :xs="24" :ms="12" :md="5">
:inline="true"
label-width="88px"
>
<el-form-item label="客户姓名" prop="name"> <el-form-item label="客户姓名" prop="name">
<el-input <el-input
v-model="queryParams.name" v-model="queryParams.name"
@ -15,6 +12,8 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
</el-col>
<el-col :xs="24" :ms="12" :md="5">
<el-form-item label="联系电话" prop="lxdh"> <el-form-item label="联系电话" prop="lxdh">
<el-input <el-input
v-model="queryParams.lxdh" v-model="queryParams.lxdh"
@ -24,15 +23,19 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="幼儿园名称" prop="schoolname"> </el-col>
<el-col :xs="24" :ms="12" :md="5">
<el-form-item label="园所名称" prop="schoolname">
<el-input <el-input
v-model="queryParams.schoolname" v-model="queryParams.schoolname"
placeholder="请输入幼儿园名称" placeholder="请输入名称"
clearable clearable
size="small" size="small"
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
</el-col>
<el-col :xs="24" :ms="12" :md="5">
<el-form-item label="所在省" prop="sheng"> <el-form-item label="所在省" prop="sheng">
<el-input <el-input
v-model="queryParams.sheng" v-model="queryParams.sheng"
@ -42,6 +45,8 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
</el-col>
<el-col :xs="24" :ms="12" :md="5">
<el-form-item label="客户来源" prop="khly"> <el-form-item label="客户来源" prop="khly">
<el-select v-model="queryParams.khly" placeholder="请选择客户来源"> <el-select v-model="queryParams.khly" placeholder="请选择客户来源">
<el-option <el-option
@ -52,6 +57,8 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col>
<el-col :xs="24" :ms="12" :md="5">
<el-form-item label="客户身份" prop="sflx"> <el-form-item label="客户身份" prop="sflx">
<el-select v-model="queryParams.sflx" placeholder="请选择客户身份"> <el-select v-model="queryParams.sflx" placeholder="请选择客户身份">
<el-option <el-option
@ -62,7 +69,9 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> </el-col>
<el-col :xs="24" :ms="12" :md="4">
<el-form-item class="no-margin">
<el-button <el-button
type="primary" type="primary"
icon="el-icon-search" icon="el-icon-search"
@ -74,10 +83,11 @@
>重置</el-button >重置</el-button
> >
</el-form-item> </el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <div class="mb8 btn-list">
<el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
icon="el-icon-plus" icon="el-icon-plus"
@ -86,8 +96,6 @@
v-hasPermi="['benyi:customer:add']" v-hasPermi="['benyi:customer:add']"
>新增</el-button >新增</el-button
> >
</el-col>
<el-col :span="1.5">
<el-button <el-button
type="success" type="success"
icon="el-icon-edit" icon="el-icon-edit"
@ -97,8 +105,6 @@
v-hasPermi="['benyi:customer:edit']" v-hasPermi="['benyi:customer:edit']"
>修改</el-button >修改</el-button
> >
</el-col>
<el-col :span="1.5">
<el-button <el-button
type="danger" type="danger"
icon="el-icon-delete" icon="el-icon-delete"
@ -108,20 +114,26 @@
v-hasPermi="['benyi:customer:remove']" v-hasPermi="['benyi:customer:remove']"
>删除</el-button >删除</el-button
> >
</el-col> </div>
</el-row>
<el-table <el-table
v-loading="loading" v-loading="loading"
border
:data="customerList" :data="customerList"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
@sort-change="sortChange" @sort-change="sortChange"
> >
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" />
<el-table-column label="客户姓名" align="center" prop="name" /> <el-table-column fixed label="客户姓名" align="center" prop="name" />
<el-table-column label="幼儿园名称" align="center" prop="schoolname" />
<el-table-column <el-table-column
label="幼儿园人数" fixed
label="园所名称"
align="center"
prop="schoolname"
/>
<el-table-column
label="园所人数"
width="100"
align="center" align="center"
prop="rs" prop="rs"
sortable="rs" sortable="rs"
@ -141,11 +153,23 @@
<el-table-column label="联系电话" align="center" prop="lxdh" /> <el-table-column label="联系电话" align="center" prop="lxdh" />
<el-table-column label="微信号" align="center" prop="wx" /> <el-table-column label="微信号" align="center" prop="wx" />
<el-table-column label="抖音号" align="center" prop="dy" /> <el-table-column label="抖音号" align="center" prop="dy" />
<el-table-column label="其他联系方式" align="center" prop="qt" /> <el-table-column label="其他联系方式" width="100" align="center" prop="qt" />
<el-table-column label="所在省" align="center" prop="sheng" /> <el-table-column label="所在省" align="center" prop="sheng" />
<el-table-column label="所在市" align="center" prop="shi" /> <el-table-column label="所在市" align="center" prop="shi" />
<el-table-column label="消费项目" align="center" prop="xfxm" sortable="xfxm" /> <el-table-column
<el-table-column label="消费价值" align="center" prop="xfjz" sortable="xfjz" /> label="消费项目"
align="center"
prop="xfxm"
width="110"
sortable="xfxm"
/>
<el-table-column
label="消费价值"
width="110"
align="center"
prop="xfjz"
sortable="xfjz"
/>
<el-table-column <el-table-column
label="录入人" label="录入人"
align="center" align="center"
@ -154,11 +178,13 @@
/> />
<el-table-column label="录入时间" align="center" prop="createTime" /> <el-table-column label="录入时间" align="center" prop="createTime" />
<el-table-column label="过保时间" align="center" prop="gbtime" /> <el-table-column label="过保时间" align="center" prop="gbtime" />
<el-table-column label="转换跟进" align="center" prop="zhgj" /> <el-table-column label="转换跟进" show-overflow-tooltip align="center" prop="zhgj" />
<el-table-column <el-table-column
fixed="right"
label="操作" label="操作"
align="center" align="center"
class-name="small-padding fixed-width" width="60"
class-name="small-padding fixed-width edit-btns"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -199,18 +225,18 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="幼儿园名称" prop="schoolname"> <el-form-item label="名称" prop="schoolname">
<el-input <el-input
v-model="form.schoolname" v-model="form.schoolname"
placeholder="请输入幼儿园名称" placeholder="请输入名称"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="幼儿园人数" prop="rs"> <el-form-item label="人数" prop="rs">
<el-input-number <el-input-number
v-model="form.rs" v-model="form.rs"
placeholder="请输入幼儿园人数" placeholder="请输入人数"
/> />
</el-form-item> </el-form-item>
</el-col> </el-col>
@ -402,10 +428,10 @@ export default {
{ required: true, message: "客户姓名不能为空", trigger: "blur" }, { required: true, message: "客户姓名不能为空", trigger: "blur" },
], ],
schoolname: [ schoolname: [
{ required: true, message: "幼儿园名称不能为空", trigger: "blur" }, { required: true, message: "名称不能为空", trigger: "blur" },
], ],
lxdh: [ lxdh: [
{ required: true, message: "幼儿园名称不能为空", trigger: "blur" }, { required: true, message: "联系电话不能为空", trigger: "blur" },
], ],
sheng: [ sheng: [
{ {
@ -630,3 +656,20 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped>
.el-select {
width: 100%;
}
.my-date-picker {
width: 100%;
}
.edit-btns {
.el-button {
display: block;
margin: 0 auto;
}
}
.no-margin ::v-deep.el-form-item__content {
margin: 0 !important;
}
</style>

View File

@ -82,6 +82,7 @@ public class SysLoginService {
Collection<String> keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*"); Collection<String> keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*");
List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>(); List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
for (String key : keys) { for (String key : keys) {
try {
LoginUser user = redisCache.getCacheObject(key); LoginUser user = redisCache.getCacheObject(key);
if (StringUtils.isNotEmpty(username) && StringUtils.isNotNull(user.getUser())) { if (StringUtils.isNotEmpty(username) && StringUtils.isNotNull(user.getUser())) {
if (StringUtils.equals(username, user.getUsername())) { if (StringUtils.equals(username, user.getUsername())) {
@ -92,6 +93,8 @@ public class SysLoginService {
redisCache.deleteObject(key); redisCache.deleteObject(key);
} }
} }
} catch (Exception e) {
}
} }
AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success"))); AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));

View File

@ -27,12 +27,10 @@ import com.ruoyi.framework.web.page.TableSupport;
* *
* @author ruoyi * @author ruoyi
*/ */
public class BaseController public class BaseController {
{
protected final Logger logger = LoggerFactory.getLogger(BaseController.class); protected final Logger logger = LoggerFactory.getLogger(BaseController.class);
public static String getUUID32() public static String getUUID32() {
{
return UUID.randomUUID().toString().replace("-", "").toLowerCase(); return UUID.randomUUID().toString().replace("-", "").toLowerCase();
} }
@ -40,14 +38,11 @@ public class BaseController
* 将前台传递过来的日期格式的字符串自动转化为Date类型 * 将前台传递过来的日期格式的字符串自动转化为Date类型
*/ */
@InitBinder @InitBinder
public void initBinder(WebDataBinder binder) public void initBinder(WebDataBinder binder) {
{
// Date 类型转换 // Date 类型转换
binder.registerCustomEditor(Date.class, new PropertyEditorSupport() binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
{
@Override @Override
public void setAsText(String text) public void setAsText(String text) {
{
setValue(DateUtils.parseDate(text)); setValue(DateUtils.parseDate(text));
} }
}); });
@ -56,14 +51,19 @@ public class BaseController
/** /**
* 设置请求分页数据 * 设置请求分页数据
*/ */
protected void startPage() protected void startPage() {
{
PageDomain pageDomain = TableSupport.buildPageRequest(); PageDomain pageDomain = TableSupport.buildPageRequest();
Integer pageNum = pageDomain.getPageNum(); Integer pageNum = pageDomain.getPageNum();
Integer pageSize = pageDomain.getPageSize(); Integer pageSize = pageDomain.getPageSize();
if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)) {
{
String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy()); String orderBy = SqlUtil.escapeOrderBySql(pageDomain.getOrderBy());
// System.out.println("order:" + orderBy);
//特殊情况处理 汉字排序
if (orderBy.equals("xfxm asc")) {
orderBy = "CONVERT(xfxm USING gbk) asc";
} else if (orderBy.equals("xfxm desc")) {
orderBy = "CONVERT(xfxm USING gbk) desc";
}
PageHelper.startPage(pageNum, pageSize, orderBy); PageHelper.startPage(pageNum, pageSize, orderBy);
} }
} }
@ -72,8 +72,7 @@ public class BaseController
* 响应请求分页数据 * 响应请求分页数据
*/ */
@SuppressWarnings({"rawtypes", "unchecked"}) @SuppressWarnings({"rawtypes", "unchecked"})
protected TableDataInfo getDataTable(List<?> list) protected TableDataInfo getDataTable(List<?> list) {
{
TableDataInfo rspData = new TableDataInfo(); TableDataInfo rspData = new TableDataInfo();
rspData.setCode(HttpStatus.SUCCESS); rspData.setCode(HttpStatus.SUCCESS);
rspData.setRows(list); rspData.setRows(list);
@ -87,8 +86,7 @@ public class BaseController
* @param rows 影响行数 * @param rows 影响行数
* @return 操作结果 * @return 操作结果
*/ */
protected AjaxResult toAjax(int rows) protected AjaxResult toAjax(int rows) {
{
return rows > 0 ? AjaxResult.success() : AjaxResult.error(); return rows > 0 ? AjaxResult.success() : AjaxResult.error();
} }
} }