店铺类型编辑页js优化

This commit is contained in:
liuxiaoquan 2023-03-15 16:56:07 +08:00
parent 1595573f52
commit 9408a92034
9 changed files with 438 additions and 248 deletions

View File

@ -10,13 +10,15 @@ declare (strict_types = 1);
namespace app\admin\controller\merchant\system\merchant;
use think\facade\View;
use think\exception\ValidateException;
use think\facade\Request;
use app\admin\BaseController;
use app\common\model\merchant\system\serve\ServeOrder as ServeOrderModel;
use app\common\model\merchant\user\UserBill as UserBillModel;
use app\common\model\merchant\system\merchant\Merchant as MerchantModel;
use think\facade\View;
use think\exception\ValidateException;
use think\facade\Request;
use app\common\model\merchant\system\merchant\MerchantType;
use app\common\model\merchant\system\merchant\MerchantCategory;
/**
* 店铺保证金管理类
@ -37,8 +39,19 @@ class MerchantMargin extends BaseController
];
}
public function Index()
public function index(MerchantCategory $category, MerchantType $type)
{
// 商户分类
$category = $category->select();
//审核
// 店铺类弄
$type = $type->select();
// search
View::assign('category',$category);
View::assign('type',$type);
return View($this->path['index']);
}
@ -47,7 +60,7 @@ class MerchantMargin extends BaseController
*
* @return \think\Response
*/
public function Lst(ServeOrderModel $order)
public function lst(ServeOrderModel $order)
{
$params = get_params();
$page = empty($params['page'])? 1 : (int)$params['page'];

View File

@ -26,17 +26,18 @@ use app\validate\merchant\admin\MerchantTypeValidate;
class MerchantType extends BaseController
{
protected $merchant;
protected $path;
protected $path = [
'index' => 'merchant/system/merchant/type/index',
'read' => 'merchant/system/merchant/type/read',
'add' => 'merchant/system/merchant/type/add',
'edit' => 'merchant/system/merchant/type/edit',
'descr'=>'merchant/system/merchant/descr/index',
'mark' => 'merchant/system/merchant/type/mark'
];
public function __construct(MerchantTypeModel $merchant)
{
$this->merchant = $merchant;
$this->path = [
'index' => 'merchant/system/merchant/type/index',
'read' => 'merchant/system/merchant/type/read',
'add' => 'merchant/system/merchant/type/add',
'edit' => 'merchant/system/merchant/type/edit'
];
}
/**
@ -50,46 +51,28 @@ class MerchantType extends BaseController
/**
* 添加/编辑 表单页
*/
public function Form(MenuModel $menu, FormatList $format)
public function form(MenuModel $menu, FormatList $format)
{
$param = get_params();
$id = isset($param['id']) ? (int)$param['id'] : 0;
$id = (int)get_params('id');
if (!empty($id)) {
// 进入编辑页,显示店铺数据
$detail = $this->merchant->Find($id);
$detail = $this->merchant->get($id);
View::assign('id', $id);
}
if (empty($detail)) {
$detail = [
"create_time" => '',
"description" => '',
"id" => '',
"margin" => 0,
"is_margin" => 0,
"type_info" => '',
"description" => '',
"type_name" => '',
"update_time" => ''
];
View::assign('detail', $detail);
}
// 查出商户所有菜单数据权限 tree
$data = $menu->getList([],1);
$checked_list = [];
if (!empty($id) && $id>0) {
// 获取已有菜单权限
$checked_list = $this->merchant->getList(['mer_type_id'=>$id]);
$detail = $this->merchant->getDetail($id);
// 给菜单权限附加选中状态
foreach($data['list'] as $k=>$item) {
foreach ($checked_list['list'] as $auth) {
if (in_array($item['id'], $auth['auth_ids'])) {
$data['list'][$k]['checked'] = true;
$data['list'][$k]['spread'] = true;
}
if (in_array($item['id'], $detail['auth_ids'])) {
$data['list'][$k]['checked'] = true;
$data['list'][$k]['spread'] = true;
}
}
}
@ -98,7 +81,6 @@ class MerchantType extends BaseController
$treelist = $format->FormatCategory($data['list']);
View::assign('dataTree', $treelist);
View::assign('detail', $detail);
$path = empty($id)?'add':'edit';
@ -110,7 +92,7 @@ class MerchantType extends BaseController
*
* @return \think\Response
*/
public function Lst()
public function lst()
{
$param = get_params();
$page = empty($param['page']) ? 1 : (int)$param['page'];
@ -128,23 +110,14 @@ class MerchantType extends BaseController
*
* @return \think\Response
*/
public function Add()
public function add()
{
$params = get_params();
$data = get_params(['type_name','description','is_margin','margin','type_info','auth']);
$data['auth'] = explode(',', $data['auth']);
$batch['type_name'] = $params['type_name'];
$batch['description'] = $params['description'];
$batch['is_margin'] = $params['is_margin'];
$batch['margin'] = $params['margin'];
$batch['type_info'] = $params['type_info'];
$menu_ids = $params['auth'];
$res = $this->merchant->add($this->getValidParams($data));
// 更新权限
// $this->menu->update($menu_ids);
$rows = $this->merchant->Add($batch);
return $rows>0?to_assign(0, '操作成功'):to_assign(1, '操作失败');
return $res['code']==0?to_assign(0, '操作成功'):to_assign(1, '操作失败');
}
/**
@ -152,31 +125,27 @@ class MerchantType extends BaseController
*
* @return \think\Response
*/
public function Read()
public function read()
{
$param = get_params();
$id = isset($param['id']) ? (int)$param['id'] : 0;
// 获取店铺详情
$detail = $this->merchant->getDetail($id);
if (!empty($detail)) {
// 查出商户所有菜单数据权限 tree
$menu = app()->make(MenuModel::class);
$data = $menu->getList([],1);
// 获取已有权限
$checked_list = $this->merchant->getList(['mer_type_id'=>$id]);
// 给菜单权限附加选中状态
$list = [];
foreach($data['list'] as $k=>$item) {
foreach ($checked_list['list'] as $auth) {
if (in_array($item['id'], $auth['auth_ids'])) {
if ($item['pid']>0 && $item['title']!='权限')
$data['list'][$k]['checked'] = true;
$data['list'][$k]['spread'] = true;
array_push($list, $data['list'][$k]);
}
if (in_array($item['id'], $detail['auth_ids'])) {
if ($item['pid']>0 && $item['title']!='权限')
$data['list'][$k]['checked'] = true;
$data['list'][$k]['spread'] = true;
array_push($list, $data['list'][$k]);
}
}
@ -196,14 +165,14 @@ class MerchantType extends BaseController
* @param int $id
* @return \think\Response
*/
public function Edit()
public function edit()
{
$id = (int)get_params('id');
$data = get_params(['type_name', 'type_info', 'is_margin', 'margin', 'auth','description']);
$data['auth'] = explode(',',$data['auth']);
// 检查id是否存在
if (!$this->merchant->exist($id)) {
if (!$this->merchant->isExist($id)) {
return to_assign(1,'数据不存在');
}
@ -234,7 +203,7 @@ class MerchantType extends BaseController
* @param int $id
* @return \think\Response
*/
public function Del()
public function del()
{
$param = get_params();
if (empty($param['id'])) {
@ -242,7 +211,7 @@ class MerchantType extends BaseController
}
$id = (int)$param['id'];
if (!$this->merchant->exist($id)) {
if (!$this->merchant->isExist($id)) {
return to_assign(1, '数据不存在');
}
@ -255,18 +224,28 @@ class MerchantType extends BaseController
/**
* 店铺类型备注
*/
public function Mark()
public function mark($id='')
{
$params = get_params();
return to_assign(0, '');
if (request()->isAjax()) {
$id = (int)get_params('id');
$data = get_params(['mark']);
try{
$b = $this->merchant->mark($id, $data);
return to_assign(0, '操作成功');
}catch(ValidateException $e){
return to_assign(1, $e->getMessage());
}
}
$info = $this->merchant->get($id);
return View($this->path['mark'], ['id'=>$id,'mark'=>$info['mark']]);
}
/**
* 店铺类型说明
* 店铺类型说明
*/
public function Description()
public function description()
{
View::assign('detail', []);
return View('merchant/system/merchant/descr/index', ['id' => 1]);
return View($this->path['descr'], ['id' => 1]);
}
}

View File

@ -102,7 +102,7 @@ Route::group(function(){
Route::delete('del', '/del')->name('systemMerchantTypeDelete')->option([
'_alias' => '删除',
]);
Route::get('mark/:id', '/markForm')->name('systemMerchantTypeMarkForm')->option([
Route::get('mark/:id', '/mark')->name('systemMerchantTypeMarkForm')->option([
'_alias' => '备注',
'_auth' => false,
'_form' => 'systemMerchantTypeMark',

View File

@ -280,6 +280,7 @@
// 日期范围
layui.use(['laydate','table','element', 'jquery'], function () {
var laydate = layui.laydate;
//日期范围
laydate.render({
elem: '#range_date'

View File

@ -15,29 +15,29 @@
<div class="layui-inline">
<label class="layui-form-label">选择时间</label>
<div class="layui-input-block">
<div class="layui-btn-group" id="witch_date">
<button name="both" lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal">全部</button>
<button name="today" lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">今天</button>
<button name="yeserday" lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">昨天</button>
<button lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">最近7天</button>
<button lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">最近30天</button>
<button lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">本月</button>
<button lay-submit="" lay-filter="searchform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">本年</button>
<div class="layui-btn-group">
<input id="chonse_start_date" type="hidden" name="start_date" value="" readonly placeholder="选择时间">
<input id="chonse_end_date" type="hidden" name="end_date" value="" readonly placeholder="选择时间">
<button id="both" name="both" lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal">全部</button>
<button name="today" lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">今天</button>
<button name="yeserday" lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">昨天</button>
<button name="week" lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">最近7天</button>
<button name="30day" lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">最近30天</button>
<button name="month" lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">本月</button>
<button name="year" lay-submit="" lay-filter="chonse_date" type="button" class="layui-btn layui-btn-normal layui-btn-primary">本年</button>
</div>
</div>
</div>
<div class="layui-inline">
<!-- <label class="layui-form-label">日期范围</label> -->
<div class="layui-inline" id="test6">
<div class="layui-inline" id="range_date">
<div class="layui-input-inline">
<input type="text" autocomplete="off" name="start_date" id="test-startDate-1" class="layui-input"
placeholder="开始日期">
<input type="text" autocomplete="off" name="start_date" id="start-date" class="layui-input" placeholder="开始日期">
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input type="text" autocomplete="off" name="end_date" id="test-endDate-1" class="layui-input"
placeholder="结束日期">
<input type="text" autocomplete="off" name="end_date" id="end-date" class="layui-input" placeholder="结束日期">
</div>
</div>
</div>
@ -46,14 +46,14 @@
<div class="layui-form-item">
<div class="layui-inline" style="width:46%">
<div class="layui-input-inline" style="width:45%;">
<div class="layui-form-item">
<label class="layui-form-label">关键字</label>
<div class="layui-input-block">
<input style="width:80%;float:left" type="text" name="keywords" placeholder="请输入关键字"
<div class="layui-input-block" style="display:flex">
<input style="width:70%;float:left" type="text" name="keywords" placeholder="请输入关键字"
class="layui-input" autocomplete="off" />
<button class="layui-btn layui-btn-normal" style="width:20%" lay-submit=""
lay-filter="searchform" type="button">提交搜索</button>
<button class="layui-btn layui-btn-normal" lay-submit=""
lay-filter="searchform">提交搜索</button>
</div>
</div>
</div>
@ -75,33 +75,29 @@
<div class="layui-form-item">
<div class="layui-input-inline" style="width:46%;">
<div class="layui-input-inline" style="width:45%;float:none;">
<div class="layui-form-item">
<label class="layui-form-label">商户分类</label>
<div class="layui-input-block">
<select name="category" lay-filter="searchform">
<select name="category_id" lay-filter="seleform">
<option value=""></option>
<option value="0">写作</option>
<option value="1">阅读</option>
<option value="2">游戏</option>
<option value="3">音乐</option>
<option value="4">旅行</option>
{volist name="category" key="k" id="vo"}
<option value="{$vo.merchant_category_id}">{$vo.category_name}</option>
{/volist}
</select>
</div>
</div>
</div>
<div class="layui-input-inline" style="width:35%;">
<div class="layui-input-inline" style="width:45%;">
<div class="layui-form-item">
<label class="layui-form-label">店铺类型</label>
<div class="layui-input-block">
<select name="type" lay-filter="type">
<select name="type_id" lay-filter="seleform">
<option value=""></option>
<option value="0">写作</option>
<option value="1">阅读</option>
<option value="2">游戏</option>
<option value="3">音乐</option>
<option value="4">旅行</option>
{volist name="type" key="k" id="vo"}
<option value="{$vo.mer_type_id}">{$vo.type_name}</option>
{/volist}
</select>
</div>
</div>
@ -116,13 +112,10 @@
<label class="layui-form-label">保证金状态</label>
<div class="layui-input-block">
<select class="test_state" name="status" lay-filter="status">
<select class="margin_state" name="margin_state" lay-filter="margin_state">
<option value=""></option>
<option value="0">写作</option>
<option value="1">阅读</option>
<option value="2">游戏</option>
<option value="3">音乐</option>
<option value="4">旅行</option>
<option value="0">已付</option>
<option value="1">未付</option>
</select>
</div>
@ -134,19 +127,18 @@
<!-- change tab -->
<div class="layui-form-item" id="refund_margin" style="display:none;">
<div class="layui-input-inline" style="width:46%;">
<div class="layui-input-inline" style="width:45%;">
<div class="layui-form-item">
<label class="layui-form-label">审核</label>
<div class="layui-input-block">
<div class="layui-btn-group">
<button type="button" class="layui-btn layui-btn-normal">全部</button>
<button type="button" class="layui-btn layui-btn-normal layui-btn-primary">待审核</button>
<button type="button" class="layui-btn layui-btn-normal layui-btn-primary">已审核</button>
<button type="button" class="layui-btn layui-btn-normal layui-btn-primary">审核失败</button>
<input type="hidden" id="status" name="status" value="" readonly placeholder="核审状态值">
<button name="both" lay-submit="" lay-filter="statusform" type="button" class="layui-btn layui-btn-normal">全部</button>
<button name="wait" lay-submit="" lay-filter="statusform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">待审核</button>
<button name="success" lay-submit="" lay-filter="statusform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">审核通过</button>
<button name="failed" lay-submit="" lay-filter="statusform" type="button" class="layui-btn layui-btn-normal layui-btn-primary">审核未通过</button>
</div>
</div>
</div>
</div>
@ -157,11 +149,8 @@
<div class="layui-input-block">
<select name="refund" lay-filter="refund">
<option value=""></option>
<option value="0">写作</option>
<option value="1">阅读</option>
<option value="2">游戏</option>
<option value="3">音乐</option>
<option value="4">旅行</option>
<option value="0">未退回</option>
<option value="1">已退回</option>
</select>
</div>
@ -390,13 +379,6 @@
}
};
//监听表头工具栏事件
// table.on('toolbar(store_product)', function (obj) {
// if (obj.event === 'add') {
// tool.side("/admin/merchant/type/form");
// return false;
// }
// });
//监听表格行工具事件
table.on('tool(reduct_list)', function (obj) {
@ -426,63 +408,24 @@
});
//监听搜索提交
form.on('submit(searchform)', function(data) {
console.log(data.elem.name, data.field)
layui.pageTable.reload({
where: {
date:data.elem.name,
...data.field
},
page: {
curr: 1
}
});
// layui.form.render();
return false;
});
form.on('select(searchform)', function(e) {
let data = getformdata();
layui.pageTable.reload({
where: {
...data
},
page: {
curr: 1
}
});
return false;
});
//监听
$('.test_state .layui-btn').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
// 日期范围
layui.use(['laydate','element', 'jquery'],
function () {
var laydate = layui.laydate;
var $ = layui.jquery,element = layui.element;
//日期范围
laydate.render({
elem: '#test6'
elem: '#range_date'
//设置开始日期、日期日期的 input 选择器
//数组格式为 2.6.6 开始新增,之前版本直接配置 true 或任意分割字符即可
, range: ['#test-startDate-1', '#test-endDate-1']
, range: ['#start-date', '#end-date']
,done: function(value, date, endDate){
let data = getformdata()
data.date = ''
layui.pageTable.reload({
where: {
...data
},
page: {
curr: 1
}
});
switchDateForm(true);
$('#both').removeClass('layui-btn-primary')
$('#both').siblings().addClass('layui-btn-primary')
active['reload'] ? active['reload'].call(this) : '';
}
});
@ -508,14 +451,163 @@
var othis = $(this), type = othis.data('type');
active[type] ? active[type].call(this, othis) : '';
});
//监听button提交
form.on('submit(searchform)', function(data) {
layui.pageTable.reload({
where: {
...data.field
},
page: {
curr: 1
}
});
return false;
});
form.on('select(searchform)', function(e) {
let data = getformdata();
layui.pageTable.reload({
where: {
...data
},
page: {
curr: 1
}
});
return false;
});
//监听保证金状态select
$('.margin_state .layui-btn').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
//Hash地址的定位
// var layid = location.hash.replace(/^#test=/, '');
// element.tabChange('test', layid);
//选择时间
form.on('submit(chonse_date)', function(data){
let start_date = '';
let end_date = getDaysAgo();
let name = data.elem.name;
if (name =='today') {
start_date=end_date;
end_date = getDaysAgo(-1);
}else if(name == 'yeserday'){
start_date = getDaysAgo(1);
}else if(name == 'week'){
start_date = getDaysAgo(7);
}else if(name == '30day'){
start_date = getDaysAgo(30);
}else if(name == 'month'){
let days = (new Date).getDate()-1
start_date = getDaysAgo(days);
}else if(name == 'year'){
var year = (new Date()).getFullYear();//获取当前年份
start_date = year+'-01-01'
}else{
end_date = '';
}
switchClass(this)
switchDateForm(false);
$('#chonse_start_date').val(start_date);
$('#chonse_end_date').val(end_date);
active['reload'] ? active['reload'].call(this) : '';
return false;
})
// 商户审核
form.on('submit(statusform)', function(data) {
let name = data.elem.name
let status = 0;
if (name=='wait') {
status = 0;
}else if(name=='success'){
status = 1;
}else if(name=='failed'){
status = 2;
}
if (name=='both'){
$('#status').attr('disabled', true);
}else{
$('#status').attr('disabled', false);
}
switchClass(this)
$('#status').val(status);
active['reload'] ? active['reload'].call(this) : '';
return false;
});
//监听select提交
form.on('select(seleform)', function(data) {
active['reload'] ? active['reload'].call(this) : '';
return false;
});
}
);
// 切换button选中样式
function switchClass(e)
{
$(e).removeClass('layui-btn-primary')
$(e).siblings().addClass('layui-btn-primary')
}
// 两个时间表单是互斥的,只能提交一个
function switchDateForm(chonse=false)
{
let range = chonse?false:true;
$('#start-date').attr("disabled",range);
$('#end-date').attr("disabled",range);
$('#chonse_start_date').attr("disabled",chonse);
$('#chonse_end_date').attr("disabled",chonse);
if (chonse) {
$('#chonse_start_date').val("");
$('#chonse_end_date').val("");
}else{
$('#start-date').val("");
$('#end-date').val("");
}
}
//获取n天以前日期
function getDaysAgo(n=0) {
let myDate = new Date();
let lw = new Date(myDate - 1000 * 60 * 60 * 24 * n); //最后一个数字30可改n天前的意思
let lastY = lw.getFullYear();
let lastM = lw.getMonth() + 1;
let lastD = lw.getDate();
lastM = lastM < 10 ? "0" + lastM : lastM;
lastD = lastD < 10 ? "0" + lastD : lastD;
let startData = lastY+"-"+lastM+"-" +lastD; //n天之前日期
return startData;
}
// 获取表单所有参数
function getformdata() {
var form = $('#filterform').serializeArray();
var data = new Array();
for(let i=0;i<form.length; i++){
data[form[i].name] = form[i].value;
}
return data;
}
}
</script>

View File

@ -37,15 +37,15 @@
<tr>
<td colspan="2">
<div class="layui-input-block">
<input type="radio" name="is_margin" value="1" title="有" checked="{$detail.is_margin}">
<input type="radio" name="is_margin" value="0" title="无" checked="{$detail.is_margin}">
<input lay-filter="is_margin"type="radio" name="is_margin" value="1" title="有" {if $detail.is_margin == 1}checked{/if}>
<input lay-filter="is_margin" type="radio" name="is_margin" value="0" title="无" {if $detail.is_margin == 0}checked{/if}>
</div>
</td>
<td colspan="5"></td>
</tr>
<tr>
<td colspan="2">
<input type="text" name="margin" lay-verify="required" lay-reqText="0" autocomplete="off" placeholder="0" class="layui-input" value="{$detail.margin}">
<input id="margin" type="text" name="margin" lay-verify="required" lay-reqText="0" autocomplete="off" placeholder="0" class="layui-input" value="{$detail.margin}">
</td>
<td colspan="5">单位:元</td>
</tr>
@ -116,14 +116,34 @@
// }
});
let tval = '';
form.on('radio(is_margin)', (data)=>{
if (data.value>0) {
$('#margin').val(tval);
$('#margin').attr({'disabled':false});
}else{
tval = $('#margin').val();
$('#margin').val('');
$('#margin').attr('disabled',true);
}
});
//监听提交
form.on('submit(webform)', function (data) {
// data.field.content = tinyMCE.editors['container_content'].getContent();
if (data.field == '') {
layer.msg('请先完善店铺类型');
return false;
}
if (data.field.is_margin) {
if (data.field.margin <1) {
layer.msg('请输入店铺压金');
return false;
}
}else{
data.field.margin = ''
}
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {

View File

@ -16,6 +16,7 @@
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="read">查看</a>
<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
<a class="layui-btn layui-btn-xs" lay-event="mark">备注</a>
</div>
</script>
@ -125,22 +126,11 @@
tool.delete("/admin/merchant/type/del", { id: data.id }, callback);
layer.close(index);
});
}else if (obj.event == 'mark'){
tool.side('/admin/merchant/type/mark/'+obj.data.id, {mark:obj.data.mark});
}
return false;
});
//监听搜索提交
// form.on('submit(searchform)', function(data) {
// layui.pageTable.reload({
// where: {
// keywords: data.field.keywords
// },
// page: {
// curr: 1
// }
// });
// return false;
// });
}
</script>
{/block}

View File

@ -0,0 +1,64 @@
{extend name="common/base"/}
{block name="style"}
<style type="text/css">
.editormd-code-toolbar select {display: inline-block}
.editormd li {list-style: inherit;}
</style>
{/block}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-4">
<table class="layui-table layui-table-form">
<tr>
<td colspan="6" class="layui-td-gray" style="text-align:center">
<h3>备注</h3>
</td>
</tr>
<tr>
<td colspan="6">
<textarea name="mark" class="layui-textarea" id="container_content">{$mark}
</textarea>
<input name="id" value="{$id}" type="hidden" readonly>
</td>
</tr>
</table>
<div class="pt-3" style="text-align: center;">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script src="/static/assets/js/xm-select.js"></script>
<script>
var moduleInit = ['tool', 'tagpicker', 'tinymce'];
var group_access = "{:session('gougu_admin')['group_access']}"
function gouguInit() {
var form =layui.form, tool = layui.tool
//监听提交
form.on('submit(webform)', function (data) {
if (data.field == '') {
layer.msg('请先完善文章内容');
return false;
}
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.tabRefresh(71);
tool.sideClose(1000);
}
}
tool.post('/admin/merchant/type/mark/'+data.field.id, data.field, callback);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->

View File

@ -56,9 +56,9 @@ class MerchantType extends Model
*
* @return array|object
*/
function getList($where=[], ?int $page=NULL, ?int $limit=NULL)
public function getList($where=[], ?int $page=NULL, ?int $limit=NULL)
{
$query = $this->search($where)->with(['auth']);
$query = $this->search($where)->withJoin(['auth']);
$count = $query->count();
$list = $query->when(isset($page)&&$page!=''&& isset($limit) && $limit!='',
function($query)use($page,$limit){
@ -74,39 +74,29 @@ class MerchantType extends Model
return compact('count', 'list');
}
/**
* 查询店铺类型表 [全表扫描或指定id]
* @param array $where 条件
* @return Query
*/
protected function search(array $where = [])
{
return MerchantType::when(
isset($where['mer_type_id']) && $where['mer_type_id'] !== '',
function($query) use($where){
$query->where('mer_type_id',$where['mer_type_id']);
}
)->field('type_name,type_info,mer_type_id as id,mer_type_id,mark,margin,is_margin,description,update_time,create_time');
}
/**
* 查询指定店铺类型数据
* 查询指定店铺类型与相关权限数据
*
* @param int $page 过滤字段条件
* @param int $limit 菜单类型: 0商城平台菜单 1商户菜单
*
* @return array|object
*/
function getDetail(int $id)
public function getDetail(int $id)
{
if (empty($id)) {
throw new ValidateException('未传递参数');
return [];
}
$row = self::search(['mer_type_id'=>$id])->find();
return $row;
$row = self::search(['mer_type_id'=>$id])->withJoin(['auth'])->select();
foreach($row as $v) {
$v['auth_ids'] = array_column($v['auth']->toArray(), 'right_id');
unset($v['auth']);
}
return $row[0];
}
/**
@ -117,23 +107,35 @@ class MerchantType extends Model
*
* @return array|object
*/
function Add(array $set_data) {
if (empty($set_data['type_name'])) {
return 0;
public function add(array $data) {
Db::startTrans();
try{
$auth = array_filter(array_unique($data['auth']));
unset($data['auth']);
$type = MerchantType::create($data);
$inserts = [];
foreach ($auth as $id) {
$inserts[] = [
'left_id' => $type->mer_type_id,
'right_id' => (int)$id,
'type' => Relevance::TYPE_MERCHANT_AUTH
];
}
$b = app()->make(Relevance::class)->batchInsert($inserts);
if (empty($type)){
Db::rollback();
throw new DbException('添加店铺类型失败');
}else if(empty($b)){
Db::rollback();
throw new DbException('添加店铺类型权限失败');
}
$res = ['code'=>0,'msg'=>'success'];
}catch(DbException $e){
Db::rollback();
$res = ['code'=>1,'msg'=>$e->getMessage()];
}
$batch['type_name'] = $set_data['type_name'];
$batch['description'] = empty($set_data['description'])?"":$set_data['description'];
$batch['is_margin'] = empty($set_data['is_margin']);
if (!empty($set_data['is_margin'])) {
$batch['margin'] = empty($set_data['margin'])?0:$set_data['margin'];
}
$batch['type_info'] = empty($set_data['type_info'])?'':$set_data['type_info'];
$batch['create_time'] = date('Y-m-d H:i:s',time());
$batch['update_time'] = date('Y-m-d H:i:s',time());
$rows = self::insert($batch);
return $rows;
return $res;
}
@ -188,19 +190,17 @@ class MerchantType extends Model
}
/**
* 更新店铺类型表数据
*
* @param int $id
* @param array $data
* @return int
* @throws DbException
* 更新店铺类型备注
*/
protected function updateMarchantType(int $id, array $data)
public function mark(int $id, array $data)
{
return self::where($this->getPk(), $id)->update($data);
if (!$this->isExist($id))
throw new ValidateException("ID为{$id}的数据不存在");
return $this->updateMarchantType($id, $data);
}
/**
* 删除指定店铺类型数据
*
@ -244,8 +244,39 @@ class MerchantType extends Model
/**
* 是否存在
*/
public function exist(int $id)
public function isExist(int $id)
{
return self::find($id)->count();
return self::where($this->getPk(),$id)->count();
}
/**
* 查询店铺类型表 [全表扫描或指定id]
* @param array $where 条件
* @return Query
*/
protected function search(array $where = [])
{
return MerchantType::when(
isset($where['mer_type_id']) && $where['mer_type_id'] !== '',
function($query) use($where){
$query->where('mer_type_id',$where['mer_type_id']);
}
)->field('type_name,type_info,mer_type_id as id,mer_type_id,mark,margin,is_margin,description,update_time,create_time');
}
/**
* 更新店铺类型表数据
*
* @param int $id
* @param array $data
* @return int
* @throws DbException
*/
protected function updateMarchantType(int $id, array $data)
{
return self::where($this->getPk(), $id)->update($data);
}
}