12 changed files with 491 additions and 6 deletions
@ -0,0 +1,31 @@ |
|||
<?php |
|||
|
|||
namespace app\admin\validate; |
|||
|
|||
use think\Validate; |
|||
|
|||
class TaskValidate extends Validate |
|||
{ |
|||
|
|||
protected $rule= [ |
|||
'id|编号' => 'require|number', |
|||
'uuid|任务编号' => 'require|alphaNum|max:50', |
|||
'integral|积分' => 'require|number', |
|||
'live_room_id|直播间编号' => 'require|number', |
|||
'duration|时长' => 'require|number', |
|||
'deduction_ratio|扣减比例' => 'require|float', |
|||
'add_uid|创建用户' => 'require|number', |
|||
'assign_uid|指派用户' => 'require|number', |
|||
'title|任务名称' => 'require', |
|||
'content|任务描述' => 'require', |
|||
]; |
|||
|
|||
protected $message = []; |
|||
|
|||
protected $scene= [ |
|||
'add' => ['uuid', 'integral', 'live_room_id', 'duration', 'deduction_ratio', 'add_uid', 'assign_uid', 'title', 'content'], |
|||
'edit' => ['id', 'uuid', 'integral', 'live_room_id', 'duration', 'deduction_ratio', 'add_uid', 'assign_uid', 'title', 'content'] |
|||
]; |
|||
|
|||
|
|||
} |
|||
@ -0,0 +1,87 @@ |
|||
<div class="layuimini-container"> |
|||
<form id="app-form" class="layui-form layuimini-form"> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">任务编号</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" name="uuid" class="layui-input" lay-verify="required" lay-reqtext="请输入任务编号" placeholder="请输入任务编号" value=""> |
|||
<tip>填写任务编号。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">任务名称</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" name="title" class="layui-input" lay-verify="required" lay-reqtext="请输入任务名称" placeholder="请输入任务名称" value=""> |
|||
<tip>填写任务名称。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">直播间ID</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" id="room_id" class="layui-input" readonly lay-verify="required" lay-reqtext="请输入直播间ID" placeholder="请输入直播间ID" value=""> |
|||
<input type="hidden" name="live_room_id" id="live_room_id" value=""> |
|||
<tip>填写直播间ID。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">创建用户</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" id="add_uname" class="layui-input" readonly lay-verify="required" lay-reqtext="请输入创建用户" placeholder="请输入创建用户" value=""> |
|||
<input type="hidden" name="add_uid" id="add_uid" value=""> |
|||
<tip>填写扣减比例。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">指派用户</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" id="assign_uname" class="layui-input" readonly lay-verify="required" lay-reqtext="请输入指派用户" placeholder="请输入指派用户" value=""> |
|||
<input type="hidden" name="assign_uid" id="assign_uid" value=""> |
|||
<tip>填写扣减比例。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">积分</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" name="integral" class="layui-input" lay-verify="required" lay-reqtext="请输入积分" placeholder="请输入积分" value=""> |
|||
<tip>填写积分。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">任务描述</label> |
|||
<div class="layui-input-block"> |
|||
<textarea name="content" lay-verify="required" lay-reqtext="请输入任务描述" placeholder="请输入任务描述" class="layui-textarea"></textarea> |
|||
<tip>填写任务描述。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">时长(h)</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" name="duration" class="layui-input" lay-verify="required" lay-reqtext="请输入时长" placeholder="请输入时长" value=""> |
|||
<tip>填写时长。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">扣减比例(%)</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" name="deduction_ratio" class="layui-input" lay-verify="required" lay-reqtext="请输入扣减比例" placeholder="请输入扣减比例" value=""> |
|||
<tip>填写扣减比例。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="hr-line"></div> |
|||
<div class="layui-form-item text-center"> |
|||
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button> |
|||
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button> |
|||
</div> |
|||
|
|||
</form> |
|||
</div> |
|||
@ -0,0 +1,87 @@ |
|||
<div class="layuimini-container"> |
|||
<form id="app-form" class="layui-form layuimini-form"> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">任务编号</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" name="uuid" class="layui-input" lay-verify="required" lay-reqtext="请输入任务编号" placeholder="请输入任务编号" value="{$row.uuid|default=''}"> |
|||
<tip>填写任务编号。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">任务名称</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" name="title" class="layui-input" lay-verify="required" lay-reqtext="请输入任务名称" placeholder="请输入任务名称" value="{$row.title|default=''}"> |
|||
<tip>填写任务名称。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">直播间ID</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" id="room_id" class="layui-input" readonly lay-verify="required" lay-reqtext="请输入直播间ID" placeholder="请输入直播间ID" value="{$row.room_id|default=''}"> |
|||
<input type="hidden" name="live_room_id" id="live_room_id" value="{$row.live_room_id|default=''}"> |
|||
<tip>填写直播间ID。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">创建用户</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" id="add_uname" class="layui-input" readonly lay-verify="required" lay-reqtext="请输入创建用户" placeholder="请输入创建用户" value="{$row.add_uname|default=''}"> |
|||
<input type="hidden" name="add_uid" id="add_uid" value="{$row.add_uid|default=''}"> |
|||
<tip>填写扣减比例。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">指派用户</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" id="assign_uname" class="layui-input" readonly lay-verify="required" lay-reqtext="请输入指派用户" placeholder="请输入指派用户" value="{$row.assign_uname|default=''}"> |
|||
<input type="hidden" name="assign_uid" id="assign_uid" value="{$row.assign_uid|default=''}"> |
|||
<tip>填写扣减比例。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">积分</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" name="integral" class="layui-input" lay-verify="required" lay-reqtext="请输入积分" placeholder="请输入积分" value="{$row.integral|default=''}"> |
|||
<tip>填写积分。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">任务描述</label> |
|||
<div class="layui-input-block"> |
|||
<textarea name="content" lay-verify="required" lay-reqtext="请输入任务描述" placeholder="请输入任务描述" class="layui-textarea">{$row.content|default=''}</textarea> |
|||
<tip>填写任务描述。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">时长(h)</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" name="duration" class="layui-input" lay-verify="required" lay-reqtext="请输入时长" placeholder="请输入时长" value="{$row.duration|default=''}"> |
|||
<tip>填写时长。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="layui-form-item"> |
|||
<label class="layui-form-label required">扣减比例(%)</label> |
|||
<div class="layui-input-block"> |
|||
<input type="text" name="deduction_ratio" class="layui-input" lay-verify="required" lay-reqtext="请输入扣减比例" placeholder="请输入扣减比例" value="{$row.deduction_ratio|default=''}"> |
|||
<tip>填写扣减比例。</tip> |
|||
</div> |
|||
</div> |
|||
|
|||
<div class="hr-line"></div> |
|||
<div class="layui-form-item text-center"> |
|||
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button> |
|||
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button> |
|||
</div> |
|||
|
|||
</form> |
|||
</div> |
|||
@ -0,0 +1,11 @@ |
|||
<div class="layuimini-container"> |
|||
<div class="layuimini-main"> |
|||
<table id="currentTable" class="layui-table layui-hide" |
|||
data-auth-add="{:auth('liveroom.task/add')}" |
|||
data-auth-edit="{:auth('liveroom.task/edit')}" |
|||
data-auth-delete="{:auth('liveroom.task/delete')}" |
|||
lay-filter="currentTable"> |
|||
</table> |
|||
<input type="hidden" id="status_json" value="{$status_json}"> |
|||
</div> |
|||
</div> |
|||
@ -0,0 +1,113 @@ |
|||
define(["jquery", "easy-admin", "tableSelect"], function ($, ea) { |
|||
|
|||
let tableSelect = layui.tableSelect; |
|||
|
|||
let init = { |
|||
table_elem: '#currentTable', |
|||
table_render_id: 'currentTableRenderId', |
|||
index_url: 'liveroom.task/index', |
|||
add_url: 'liveroom.task/add', |
|||
edit_url: 'liveroom.task/edit', |
|||
delete_url: 'liveroom.task/delete', |
|||
user_list_url: 'user.api/getUserPageList', |
|||
live_room_list_url: 'user.api/getLiveRoomPageList', |
|||
}; |
|||
|
|||
let TaskController = { |
|||
|
|||
index: function () { |
|||
let status_json = $("#status_json").val(); |
|||
let status_select = JSON.parse(status_json); |
|||
|
|||
ea.table.render({ |
|||
init: init, |
|||
toolbar: [ |
|||
'refresh', |
|||
'add', |
|||
'delete' |
|||
], |
|||
cols: [[ |
|||
{type: "checkbox"}, |
|||
{field: 'id', width: 80, title: '编号'}, |
|||
{field: 'uuid', minWidth: 80, title: '任务编号'}, |
|||
{field: 'title', minWidth: 80, title: '任务名称'}, |
|||
{field: 'live_room_id', width: 100, title: '直播间ID'}, |
|||
{field: 'integral', width: 80, title: '积分'}, |
|||
{field: 'deduction_ratio', width: 110, title: '扣减比例', templet: function (d) { |
|||
return d.deduction_ratio + '%'; |
|||
}}, |
|||
{field: 'duration', width: 80, title: '时长', templet: function (d) { |
|||
return d.duration + 'h'; |
|||
}}, |
|||
{field: 'add_uid', width: 110, title: '创建用户'}, |
|||
{field: 'assign_uid', width: 110, title: '指派用户'}, |
|||
{field: 'status', title: '状态', width: 100, search: 'select', selectList: status_select, templet: function (d) { |
|||
let html_arr = ['disabled', 'primary', '', 'normal', 'warm', 'danger']; |
|||
return '<button type="button" class="layui-btn layui-btn-'+html_arr[d.status]+' layui-btn-xs">' + d.status_str + '</button>'; |
|||
}}, |
|||
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'}, |
|||
{ |
|||
width: 250, |
|||
title: '操作', |
|||
templet: ea.table.tool, |
|||
operat: [ |
|||
'edit', |
|||
'delete' |
|||
] |
|||
} |
|||
]], |
|||
}); |
|||
|
|||
ea.listen(); |
|||
}, |
|||
add: function () { |
|||
getSelect(); |
|||
ea.listen(); |
|||
}, |
|||
edit: function () { |
|||
getSelect(); |
|||
ea.listen(); |
|||
} |
|||
}; |
|||
|
|||
function getSelect() { |
|||
getLiveRoomSelect(); |
|||
getUserSelect(); |
|||
getUserSelect('assign_uname', 'assign_uid'); |
|||
} |
|||
|
|||
function getLiveRoomSelect() { |
|||
let cos = [{ type: 'radio' }, { field: 'id', title: 'ID' }, { field: 'room_id', title: '直播间编号' }] |
|||
getTableSelect('room_id', 'live_room_id', init.live_room_list_url, cos, 'id', 'room_id'); |
|||
} |
|||
|
|||
function getUserSelect(elemKey = 'add_uname', valueKey = 'add_uid') { |
|||
let cos = [{ type: 'radio' }, { field: 'uid', title: 'ID' }, { field: 'nick_name', title: '用户名' }] |
|||
getTableSelect(elemKey, valueKey, init.user_list_url, cos, 'uid', 'nick_name'); |
|||
} |
|||
|
|||
function getTableSelect(elemKey, valueKey, url, cols = [], checkedKey = 'id', dataKey = 'id') { |
|||
tableSelect.render({ |
|||
elem: '#' + elemKey, //定义输入框input对象
|
|||
checkedKey: checkedKey, //表格的唯一建值,非常重要,影响到选中状态 必填
|
|||
searchKey: 'keyword', //搜索输入框的name值 默认keyword
|
|||
searchPlaceholder: '关键词搜索', //搜索输入框的提示文字 默认关键词搜索
|
|||
table: { //定义表格参数,与LAYUI的TABLE模块一致,只是无需再定义表格elem
|
|||
url: ea.url(url), |
|||
cols: [cols] |
|||
}, |
|||
done: function (elem, data) { |
|||
let elemArr = [] |
|||
let valueArr = [] |
|||
layui.each(data.data, function (index, item) { |
|||
valueArr.push(item[checkedKey]) |
|||
elemArr.push(item[dataKey]) |
|||
}) |
|||
$("#"+valueKey).val(valueArr.join(',')) |
|||
$("#"+elemKey).val(elemArr.join(',')) |
|||
} |
|||
}) |
|||
} |
|||
|
|||
return TaskController; |
|||
}); |
|||
Loading…
Reference in new issue