This commit is contained in:
parent
e2b7a9c570
commit
8efdd69259
|
@ -209,29 +209,7 @@ class ClassesLib extends Backend
|
|||
|
||||
}
|
||||
|
||||
protected function no_auth_fields_check($params,$row){
|
||||
|
||||
foreach ($params as $k=>$v){
|
||||
|
||||
//说明数值有变动
|
||||
//$params[$k] 去掉两端空格
|
||||
$params[$k] = trim($v);
|
||||
|
||||
if($row[$k]!=$params[$k]){
|
||||
//当修改参数不在允许修改的字段中
|
||||
if(!in_array($k,$this->no_auth_fields)){
|
||||
// var_dump($row[$k],$params[$k]);
|
||||
|
||||
$this->have_auth = true;break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $this->have_auth;
|
||||
|
||||
}
|
||||
|
||||
protected function updateCheck($id,$params=[],$row=null){
|
||||
if($params && $row){
|
||||
|
@ -432,7 +410,7 @@ class ClassesLib extends Backend
|
|||
//因为是批量添加,所有规格重新进行检测,防止出现时间重叠
|
||||
$specss = \app\common\model\school\classes\ClassesSpec::where("classes_lib_id",$this->model["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\ClassesSpec)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
@ -551,7 +529,7 @@ class ClassesLib extends Backend
|
|||
$specss = \app\common\model\school\classes\ClassesSpec::where("classes_lib_id",$row["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\ClassesSpec)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
|
|
@ -88,28 +88,7 @@ class ClassesSpec extends Backend
|
|||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
protected function no_auth_fields_check($params,$row){
|
||||
|
||||
foreach ($params as $k=>$v){
|
||||
|
||||
//说明数值有变动
|
||||
//$params[$k] 去掉两端空格
|
||||
$params[$k] = trim($v);
|
||||
|
||||
if($row[$k]!=$params[$k]){
|
||||
//当修改参数不在允许修改的字段中
|
||||
if(!in_array($k,$this->no_auth_fields)){
|
||||
|
||||
$this->have_auth = true;break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $this->have_auth;
|
||||
|
||||
}
|
||||
|
||||
protected function update_classes($classes_lib_id){
|
||||
//更新课程规格库存
|
||||
|
|
|
@ -30,6 +30,11 @@ class Activity extends Backend
|
|||
protected $qSwitch = true;
|
||||
protected $qFields = ["user_id","shop_id","manystore_id"];
|
||||
|
||||
|
||||
//不用审核允许修改的字段
|
||||
protected $no_auth_fields = ["status","weigh","recommend","hot","new","selfhot","feel","start_time","end_time","sign_start_time","sign_end_time","longitude","latitude","address_city","province","city","district","address","address_detail","address_type","title",'headimage','images','content',"price"];
|
||||
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
|
||||
|
@ -70,6 +75,7 @@ class Activity extends Backend
|
|||
{
|
||||
//当前是否为关联查询
|
||||
$this->relationSearch = true;
|
||||
$this->searchFields = ["id","title","address","address_detail","address_city","shop.name"];
|
||||
//设置过滤方法
|
||||
$this->request->filter(['strip_tags', 'trim']);
|
||||
if ($this->request->isAjax()) {
|
||||
|
@ -162,8 +168,8 @@ class Activity extends Backend
|
|||
}
|
||||
|
||||
// 课程存在售后订单则不允许操作
|
||||
$order = Order::where("classes_activity_item_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("{$order['name']}存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
$order = Order::where("classes_activity_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
}
|
||||
|
||||
|
||||
|
@ -174,7 +180,7 @@ class Activity extends Backend
|
|||
if(empty($params["shop_id"]))$params["shop_id"] = $row["shop_id"];
|
||||
}
|
||||
|
||||
try {
|
||||
// try {
|
||||
$classesLib = new \app\common\model\school\classes\activity\Activity();
|
||||
$classesLib->no_auth_fields = $this->no_auth_fields;
|
||||
$classesLib->need_auth = $this->need_auth;
|
||||
|
@ -185,9 +191,9 @@ class Activity extends Backend
|
|||
$this->need_auth = $classesLib->need_auth;
|
||||
$this->have_auth = $classesLib->have_auth;
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
// }catch (\Exception $e){
|
||||
// $this->error($e->getMessage());
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
@ -255,14 +261,14 @@ class Activity extends Backend
|
|||
//因为是批量添加,所有规格重新进行检测,防止出现时间重叠
|
||||
$specss = \app\common\model\school\classes\activity\ActivityItem::where("classes_activity_id",$this->model["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\activity\ActivityItem)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
||||
$this->update_classes($this->model["id"]);
|
||||
Db::commit();
|
||||
} catch (ValidateException|PDOException|Exception $e) {
|
||||
} catch (ValidateException|PDOException|\Exception $e) {
|
||||
Db::rollback();
|
||||
$this->error($e->getMessage().$e->getFile().$e->getLine());
|
||||
}
|
||||
|
@ -352,14 +358,14 @@ class Activity extends Backend
|
|||
$specss = \app\common\model\school\classes\activity\ActivityItem::where("classes_activity_id",$row["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\activity\ActivityItem)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
||||
$this->update_classes($row["id"]);
|
||||
Db::commit();
|
||||
} catch (ValidateException|PDOException|Exception $e) {
|
||||
} catch (ValidateException|PDOException|\Exception $e) {
|
||||
Db::rollback();
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
|
|
@ -33,7 +33,10 @@ class ActivityAuth extends Backend
|
|||
protected $error_auth = false;
|
||||
|
||||
//不用审核允许修改的字段
|
||||
protected $no_auth_fields = ['headimage','images','content',"price"];
|
||||
protected $no_auth_fields = ["status","weigh","recommend","hot","new","selfhot","feel","start_time","end_time","sign_start_time","sign_end_time","longitude","latitude","address_city","province","city","district","address","address_detail","address_type","title",'headimage','images','content',"price"];
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function _initialize()
|
||||
|
@ -78,6 +81,7 @@ class ActivityAuth extends Backend
|
|||
{
|
||||
//当前是否为关联查询
|
||||
$this->relationSearch = true;
|
||||
$this->searchFields = ["id","classes_activity_id","title","address","address_detail","address_city","shop.name"];
|
||||
//设置过滤方法
|
||||
$this->request->filter(['strip_tags', 'trim']);
|
||||
if ($this->request->isAjax()) {
|
||||
|
@ -154,8 +158,8 @@ class ActivityAuth extends Backend
|
|||
}
|
||||
|
||||
// 课程存在售后订单则不允许操作
|
||||
$order = Order::where("classes_activity_item_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("{$order['name']}存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
$order = Order::where("classes_activity_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
}
|
||||
|
||||
|
||||
|
@ -179,7 +183,7 @@ class ActivityAuth extends Backend
|
|||
|
||||
//
|
||||
|
||||
try {
|
||||
// try {
|
||||
$classesLib = new \app\common\model\school\classes\activity\ActivityAuth();
|
||||
$classesLib->no_auth_fields = $this->no_auth_fields;
|
||||
$classesLib->need_auth = $this->need_auth;
|
||||
|
@ -190,9 +194,9 @@ class ActivityAuth extends Backend
|
|||
$this->need_auth = $classesLib->need_auth;
|
||||
$this->have_auth = $classesLib->have_auth;
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
// }catch (\Exception $e){
|
||||
// $this->error($e->getMessage());
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
@ -285,14 +289,14 @@ class ActivityAuth extends Backend
|
|||
//因为是批量添加,所有规格重新进行检测,防止出现时间重叠
|
||||
$specss = \app\common\model\school\classes\activity\ActivityItemAuth::where("classes_activity_auth_id",$this->model["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\activity\ActivityItemAuth)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
||||
$this->update_classes($this->model["classes_activity_id"] ?? 0,$this->model);
|
||||
Db::commit();
|
||||
} catch (ValidateException|PDOException|Exception $e) {
|
||||
} catch (ValidateException|PDOException|\Exception $e) {
|
||||
Db::rollback();
|
||||
$this->error($e->getMessage().$e->getFile().$e->getLine());
|
||||
}
|
||||
|
@ -384,11 +388,12 @@ class ActivityAuth extends Backend
|
|||
$specss = \app\common\model\school\classes\activity\ActivityItemAuth::where("classes_activity_auth_id",$row["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\activity\ActivityItemAuth)->specCheck($params,null,$specs);
|
||||
}
|
||||
$this->update_classes($row["classes_activity_id"] ?? 0 ,$row);
|
||||
if($this->success_auth){
|
||||
|
||||
$activity = (new \app\common\model\school\classes\activity\Activity)->successAuth($row["id"]);
|
||||
|
||||
$this->update_classes($activity["id"] ?? 0 ,$row);
|
||||
|
@ -409,7 +414,7 @@ class ActivityAuth extends Backend
|
|||
|
||||
|
||||
Db::commit();
|
||||
} catch (ValidateException|PDOException|Exception $e) {
|
||||
} catch (ValidateException|PDOException|\Exception $e) {
|
||||
Db::rollback();
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
|
|
@ -45,6 +45,10 @@ class Order extends Backend
|
|||
{
|
||||
//当前是否为关联查询
|
||||
$this->relationSearch = true;
|
||||
|
||||
$this->searchFields = ["id","refund_error","code","refund_no","order_no","pay_no","user_id","orderitem.name","detail.title","user.nickname","user.realname","user.mobile","shop.name"];
|
||||
|
||||
|
||||
//设置过滤方法
|
||||
$this->request->filter(['strip_tags', 'trim']);
|
||||
if ($this->request->isAjax()) {
|
||||
|
@ -55,7 +59,7 @@ class Order extends Backend
|
|||
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
|
||||
|
||||
$list = $this->model
|
||||
->with(['user','manystore','shop','activity','detail'])
|
||||
->with(['user',"orderitem",'manystore','shop','activity','detail'])
|
||||
->where($where)
|
||||
->order($sort, $order)
|
||||
->paginate($limit);
|
||||
|
@ -67,6 +71,7 @@ class Order extends Backend
|
|||
$row->getRelation('shop')->visible(['name','logo']);
|
||||
$row->getRelation('activity')->visible(['title','headimage']);
|
||||
$row->getRelation('detail')->visible(['title','headimage']);
|
||||
$row->getRelation('orderitem')->visible(['name','price','feel']);
|
||||
}
|
||||
|
||||
$result = array("total" => $list->total(), "rows" => $list->items());
|
||||
|
@ -76,4 +81,132 @@ class Order extends Backend
|
|||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 课程订单取消
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\db\exception\BindParamException
|
||||
* @throws \think\exception\DbException
|
||||
* @throws \think\exception\PDOException
|
||||
*/
|
||||
public function cancel($ids = ''){
|
||||
$param = $this->request->param();
|
||||
if($this->request->isPost()){
|
||||
try{
|
||||
if(isset($param['ids']))$ids = $param['ids'];
|
||||
//设置模拟资格
|
||||
$model = (new \app\common\model\school\classes\activity\order\Order);
|
||||
$model->cancel($ids,0,true,'admin',$this->auth->id,true);
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('取消成功!');
|
||||
}
|
||||
$row = $this->model->get($ids);
|
||||
$this->view->assign('vo', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**预约审核
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public function examine($ids = ""){
|
||||
|
||||
if($this->request->isPost())
|
||||
{
|
||||
try{
|
||||
$params = $this->request->post("row/a");
|
||||
|
||||
|
||||
$auth_status = $params["auth_status"];
|
||||
$reason = $params["reason"];
|
||||
$model = (new \app\common\model\school\classes\activity\order\Order);
|
||||
$model->examine($params["id"],$auth_status,$reason,0,true,'admin',$this->auth->id,true);
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
||||
$this->success("已完成审核");
|
||||
}
|
||||
|
||||
$row = $this->model->where(array('id'=>$ids))->find();
|
||||
if (!$row) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
// $row = $this->model->get($param['ids']);
|
||||
$this->view->assign('row', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 后台核销
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\db\exception\BindParamException
|
||||
* @throws \think\exception\DbException
|
||||
* @throws \think\exception\PDOException
|
||||
*/
|
||||
public function verification($ids = ''){
|
||||
$param = $this->request->param();
|
||||
if($this->request->isPost()){
|
||||
try{
|
||||
if(isset($param['ids']))$ids = $param['ids'];
|
||||
//设置模拟资格
|
||||
$model = (new \app\common\model\school\classes\activity\order\Order);
|
||||
$model->verification($ids,0,true,'admin',$this->auth->id,true);
|
||||
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('核销成功!');
|
||||
}
|
||||
$row = $this->model->get($ids);
|
||||
$this->view->assign('vo', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 退款重试
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\db\exception\BindParamException
|
||||
* @throws \think\exception\DbException
|
||||
* @throws \think\exception\PDOException
|
||||
*/
|
||||
public function refund($ids = ''){
|
||||
$param = $this->request->param();
|
||||
if($this->request->isPost()){
|
||||
try{
|
||||
if(isset($param['ids']))$ids = $param['ids'];
|
||||
//设置模拟资格
|
||||
$model = (new \app\common\model\school\classes\activity\order\Order);
|
||||
$model->orderRefund($ids,null,'admin',$this->auth->id,true,true);
|
||||
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('已重新发起退款,如果是第三方支付请等待回调!');
|
||||
}
|
||||
$row = $this->model->get($ids);
|
||||
$this->view->assign('vo', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
<?php
|
||||
|
||||
namespace app\admin\controller\school\help;
|
||||
|
||||
use app\common\controller\Backend;
|
||||
|
||||
/**
|
||||
* 帮助文章
|
||||
*
|
||||
* @icon fa fa-circle-o
|
||||
*/
|
||||
class Article extends Backend
|
||||
{
|
||||
|
||||
/**
|
||||
* Article模型对象
|
||||
* @var \app\admin\model\school\help\Article
|
||||
*/
|
||||
protected $model = null;
|
||||
|
||||
protected $qSwitch = true;
|
||||
protected $qFields = ["help_cate_ids"];
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
$this->model = new \app\admin\model\school\help\Article;
|
||||
parent::_initialize();
|
||||
|
||||
$this->view->assign("statusList", $this->model->getStatusList());
|
||||
$this->view->assign("hotList", $this->model->getHotList());
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
|
||||
* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
|
||||
* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
|
||||
*/
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,165 @@
|
|||
<?php
|
||||
|
||||
namespace app\admin\controller\school\help;
|
||||
|
||||
use app\admin\model\AuthRule;
|
||||
use app\common\controller\Backend;
|
||||
use fast\Tree;
|
||||
use think\Cache;
|
||||
|
||||
/**
|
||||
* 帮助分类
|
||||
*
|
||||
* @icon fa fa-circle-o
|
||||
*/
|
||||
class Cate extends Backend
|
||||
{
|
||||
|
||||
/**
|
||||
* Cate模型对象
|
||||
* @var \app\admin\model\school\help\Cate
|
||||
*/
|
||||
protected $model = null;
|
||||
|
||||
protected $rulelist = [];
|
||||
|
||||
protected $qSwitch = true;
|
||||
protected $qFields = ["pid"];
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
$this->model = new \app\admin\model\school\help\Cate;
|
||||
parent::_initialize();
|
||||
|
||||
$this->view->assign("statusList", $this->model->getStatusList());
|
||||
|
||||
Tree::instance()->init(collection($this->model->order('weigh DESC,id ASC')->select())->toArray())->icon = [' ', ' ', ' '];
|
||||
$this->rulelist = Tree::instance()->getTreeList(Tree::instance()->getTreeArray(0), 'name');
|
||||
$ruledata = [0 => __('None')];
|
||||
foreach ($this->rulelist as $k => &$v) {
|
||||
$ruledata[$v['id']] = $v['name'];
|
||||
}
|
||||
unset($v);
|
||||
$this->view->assign('ruledata', $ruledata);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 默认生成的控制器所继承的父类中有index/add/edit/del/multi五个基础方法、destroy/restore/recyclebin三个回收站方法
|
||||
* 因此在当前控制器中可不用编写增删改查的代码,除非需要自己控制这部分逻辑
|
||||
* 需要将application/admin/library/traits/Backend.php中对应的方法复制到当前控制器,然后进行修改
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查看
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
if ($this->request->isAjax()) {
|
||||
$list = $this->rulelist;
|
||||
$total = count($this->rulelist);
|
||||
$result = array("total" => $total, "rows" => $list);
|
||||
|
||||
return json($result);
|
||||
}
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
$this->token();
|
||||
$params = $this->request->post("row/a", [], 'strip_tags');
|
||||
if ($params) {
|
||||
// if (!$params['ismenu'] && !$params['pid']) {
|
||||
// $this->error(__('The non-menu rule must have parent'));
|
||||
// }
|
||||
$result = $this->model->save($params);
|
||||
if ($result === false) {
|
||||
$this->error($this->model->getError());
|
||||
}
|
||||
|
||||
$this->success();
|
||||
}
|
||||
$this->error();
|
||||
}
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*/
|
||||
public function edit($ids = null)
|
||||
{
|
||||
$row = $this->model->get(['id' => $ids]);
|
||||
if (!$row) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
if ($this->request->isPost()) {
|
||||
$this->token();
|
||||
$params = $this->request->post("row/a", [], 'strip_tags');
|
||||
if ($params) {
|
||||
// if (!$params['ismenu'] && !$params['pid']) {
|
||||
// $this->error(__('The non-menu rule must have parent'));
|
||||
// }
|
||||
if ($params['pid'] == $row['id']) {
|
||||
$this->error(__('Can not change the parent to self'));
|
||||
}
|
||||
if ($params['pid'] != $row['pid']) {
|
||||
$childrenIds = Tree::instance()->init(collection($this->model->order('weigh DESC,id ASC')->select())->toArray())->getChildrenIds($row['id']);
|
||||
if (in_array($params['pid'], $childrenIds)) {
|
||||
$this->error(__('Can not change the parent to child'));
|
||||
}
|
||||
}
|
||||
//这里需要针对name做唯一验证
|
||||
$ruleValidate = \app\admin\model\school\help\Cate::where( 'name' , $params['name'] )-> where( 'id' , '<>' , $row['id'] )->find();
|
||||
|
||||
if( $ruleValidate ){
|
||||
$this->error( '分类名称已存在' );
|
||||
}
|
||||
|
||||
$result = $row->save($params);
|
||||
if ($result === false) {
|
||||
$this->error($row->getError());
|
||||
}
|
||||
|
||||
$this->success();
|
||||
}
|
||||
$this->error();
|
||||
}
|
||||
$this->view->assign("row", $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
public function del($ids = "")
|
||||
{
|
||||
if (!$this->request->isPost()) {
|
||||
$this->error(__("Invalid parameters"));
|
||||
}
|
||||
$ids = $ids ? $ids : $this->request->post("ids");
|
||||
if ($ids) {
|
||||
$delIds = [];
|
||||
foreach (explode(',', $ids) as $k => $v) {
|
||||
$delIds = array_merge($delIds, Tree::instance()->getChildrenIds($v, true));
|
||||
}
|
||||
$delIds = array_unique($delIds);
|
||||
$count = $this->model->where('id', 'in', $delIds)->delete();
|
||||
if ($count) {
|
||||
|
||||
$this->success();
|
||||
}
|
||||
}
|
||||
$this->error();
|
||||
}
|
||||
|
||||
}
|
|
@ -27,6 +27,7 @@ return [
|
|||
'Status 3' => '已预约',
|
||||
'Set status to 3' => '设为已预约',
|
||||
'Status 4' => '售后中',
|
||||
'Status 5' => '退款结算中',
|
||||
'Set status to 4' => '设为售后中',
|
||||
'Status 6' => '已退款',
|
||||
'Set status to 6' => '设为已退款',
|
||||
|
@ -77,5 +78,9 @@ return [
|
|||
'Activity.title' => '标题',
|
||||
'Activity.headimage' => '头图',
|
||||
'Detail.title' => '标题',
|
||||
'Detail.headimage' => '头图'
|
||||
'Detail.headimage' => '头图',
|
||||
'Orderitem.name' => '活动规格',
|
||||
'Feel' => '是否免费',
|
||||
'Feel 0' => '否',
|
||||
'Feel 1' => '是',
|
||||
];
|
||||
|
|
|
@ -12,6 +12,7 @@ return [
|
|||
'Status 3' => '已预约',
|
||||
'Set status to 3' => '设为已预约',
|
||||
'Status 4' => '售后中',
|
||||
'Status 5' => '退款结算中',
|
||||
'Set status to 4' => '设为售后中',
|
||||
'Status 6' => '已退款',
|
||||
'Set status to 6' => '设为已退款',
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'Help_cate_ids' => '平台帮助分类ids',
|
||||
'Title' => '标题',
|
||||
'Content' => '文章详情',
|
||||
'Status' => '状态',
|
||||
'Status 1' => '上架',
|
||||
'Set status to 1'=> '设为上架',
|
||||
'Status 2' => '下架',
|
||||
'Set status to 2'=> '设为下架',
|
||||
'Hot' => '平台热门',
|
||||
'Hot 0' => '否',
|
||||
'Hot 1' => '是',
|
||||
'Start_time' => '更新时间',
|
||||
'Weigh' => '权重',
|
||||
'Views' => '浏览量',
|
||||
'Updatetime' => '修改时间',
|
||||
'Deletetime' => '删除时间'
|
||||
];
|
|
@ -0,0 +1,15 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'Pid' => 'pid',
|
||||
'Name' => '帮助分类名',
|
||||
'Status' => '状态',
|
||||
'Status 1' => '上架',
|
||||
'Set status to 1'=> '设为上架',
|
||||
'Status 2' => '下架',
|
||||
'Set status to 2'=> '设为下架',
|
||||
'Weigh' => '权重',
|
||||
'Createtime' => '创建时间',
|
||||
'Updatetime' => '修改时间',
|
||||
'Deletetime' => '删除时间'
|
||||
];
|
|
@ -43,6 +43,8 @@ class Activity extends Model
|
|||
'has_sign_expire',
|
||||
];
|
||||
|
||||
//不用审核允许修改的字段
|
||||
public $no_auth_fields = ["status","weigh","recommend","hot","new","selfhot","feel","start_time","end_time","sign_start_time","sign_end_time","longitude","latitude","address_city","province","city","district","address","address_detail","address_type","title",'headimage','images','content',"price"];
|
||||
|
||||
public function getHasSignExpireAttr($value, $data)
|
||||
{
|
||||
|
|
|
@ -24,6 +24,7 @@ class ActivityAuth extends Model
|
|||
protected $createTime = 'createtime';
|
||||
protected $updateTime = 'updatetime';
|
||||
protected $deleteTime = 'deletetime';
|
||||
public $no_auth_fields = ["status","weigh","recommend","hot","new","selfhot","feel","start_time","end_time","sign_start_time","sign_end_time","longitude","latitude","address_city","province","city","district","address","address_detail","address_type","title",'headimage','images','content',"price"];
|
||||
|
||||
// 追加属性
|
||||
protected $append = [
|
||||
|
|
|
@ -50,7 +50,7 @@ class Order extends Model
|
|||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '5' => __('Status 5'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
}
|
||||
|
||||
public function getBeforeStatusList()
|
||||
|
@ -209,4 +209,9 @@ class Order extends Model
|
|||
{
|
||||
return $this->belongsTo(OrderDetail::class, 'activity_order_detail_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
public function orderitem()
|
||||
{
|
||||
return $this->belongsTo(OrderItem::class, 'activity_order_item_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ class OrderLog extends Model
|
|||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'),'5' => __('Status 5'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,84 @@
|
|||
<?php
|
||||
|
||||
namespace app\admin\model\school\help;
|
||||
|
||||
use think\Model;
|
||||
use traits\model\SoftDelete;
|
||||
|
||||
class Article extends Model
|
||||
{
|
||||
|
||||
use SoftDelete;
|
||||
|
||||
|
||||
|
||||
// 表名
|
||||
protected $name = 'school_help_article';
|
||||
|
||||
// 自动写入时间戳字段
|
||||
protected $autoWriteTimestamp = 'integer';
|
||||
|
||||
// 定义时间戳字段名
|
||||
protected $createTime = false;
|
||||
protected $updateTime = 'updatetime';
|
||||
protected $deleteTime = 'deletetime';
|
||||
|
||||
// 追加属性
|
||||
protected $append = [
|
||||
'status_text',
|
||||
'hot_text',
|
||||
'start_time_text'
|
||||
];
|
||||
|
||||
|
||||
protected static function init()
|
||||
{
|
||||
self::afterInsert(function ($row) {
|
||||
if (!$row['weigh']) {
|
||||
$pk = $row->getPk();
|
||||
$row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['1' => __('Status 1'), '2' => __('Status 2')];
|
||||
}
|
||||
|
||||
public function getHotList()
|
||||
{
|
||||
return ['0' => __('Hot 0'), '1' => __('Hot 1')];
|
||||
}
|
||||
|
||||
|
||||
public function getStatusTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
|
||||
$list = $this->getStatusList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
public function getHotTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['hot']) ? $data['hot'] : '');
|
||||
$list = $this->getHotList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
public function getStartTimeTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['start_time']) ? $data['start_time'] : '');
|
||||
return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
|
||||
}
|
||||
|
||||
protected function setStartTimeAttr($value)
|
||||
{
|
||||
return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
<?php
|
||||
|
||||
namespace app\admin\model\school\help;
|
||||
|
||||
use think\Model;
|
||||
use traits\model\SoftDelete;
|
||||
|
||||
class Cate extends Model
|
||||
{
|
||||
|
||||
use SoftDelete;
|
||||
|
||||
|
||||
|
||||
// 表名
|
||||
protected $name = 'school_help_cate';
|
||||
|
||||
// 自动写入时间戳字段
|
||||
protected $autoWriteTimestamp = 'integer';
|
||||
|
||||
// 定义时间戳字段名
|
||||
protected $createTime = 'createtime';
|
||||
protected $updateTime = 'updatetime';
|
||||
protected $deleteTime = 'deletetime';
|
||||
|
||||
// 追加属性
|
||||
protected $append = [
|
||||
'status_text'
|
||||
];
|
||||
|
||||
|
||||
protected static function init()
|
||||
{
|
||||
self::afterInsert(function ($row) {
|
||||
if (!$row['weigh']) {
|
||||
$pk = $row->getPk();
|
||||
$row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['1' => __('Status 1'), '2' => __('Status 2')];
|
||||
}
|
||||
|
||||
|
||||
public function getStatusTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
|
||||
$list = $this->getStatusList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
namespace app\admin\validate\school\help;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class Article extends Validate
|
||||
{
|
||||
/**
|
||||
* 验证规则
|
||||
*/
|
||||
protected $rule = [
|
||||
];
|
||||
/**
|
||||
* 提示消息
|
||||
*/
|
||||
protected $message = [
|
||||
];
|
||||
/**
|
||||
* 验证场景
|
||||
*/
|
||||
protected $scene = [
|
||||
'add' => [],
|
||||
'edit' => [],
|
||||
];
|
||||
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
<?php
|
||||
|
||||
namespace app\admin\validate\school\help;
|
||||
|
||||
use think\Validate;
|
||||
|
||||
class Cate extends Validate
|
||||
{
|
||||
/**
|
||||
* 验证规则
|
||||
*/
|
||||
protected $rule = [
|
||||
];
|
||||
/**
|
||||
* 提示消息
|
||||
*/
|
||||
protected $message = [
|
||||
];
|
||||
/**
|
||||
* 验证场景
|
||||
*/
|
||||
protected $scene = [
|
||||
'add' => [],
|
||||
'edit' => [],
|
||||
];
|
||||
|
||||
}
|
|
@ -136,6 +136,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline plupload-preview" id="p-images"></ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:690*482 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -47,6 +48,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -198,12 +200,12 @@
|
|||
<input id="c-price" data-rule="required" class="form-control" step="0.01" name="row[price]" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('People_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-people_num" class="form-control" name="row[people_num]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('People_num')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-people_num" class="form-control" name="row[people_num]" type="number" value="0">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Item')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -35,6 +35,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:690*482 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -49,6 +50,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -193,12 +195,12 @@
|
|||
<input id="c-price" data-rule="required" class="form-control" step="0.01" name="row[price]" type="number" value="{$row.price|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('People_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-people_num" class="form-control" name="row[people_num]" type="number" value="{$row.people_num|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('People_num')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-people_num" class="form-control" name="row[people_num]" type="number" value="{$row.people_num|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Item')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:690*482 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -47,6 +48,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -57,6 +57,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:690*482 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -71,6 +72,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -1,46 +1,57 @@
|
|||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
{if condition="$row.refund_error"}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('三方支付退款错误信息')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<!-- <input id="c-refund_error" class="form-control" readonly disabled name="row[refund_error]" type="text" value="{$row.refund_error|htmlentities}">-->
|
||||
<span style="color: red">{$row.refund_error}</span>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Order_no')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-order_no" class="form-control" name="row[order_no]" type="text" value="{$row.order_no|htmlentities}">
|
||||
<input id="c-order_no" readonly disabled class="form-control" name="row[order_no]" type="text" value="{$row.order_no|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pay_no')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-pay_no" class="form-control" name="row[pay_no]" type="text" value="{$row.pay_no|htmlentities}">
|
||||
<input id="c-pay_no" readonly disabled class="form-control" name="row[pay_no]" type="text" value="{$row.pay_no|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('User_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Manystore_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-manystore_id" data-rule="required" data-source="manystore/index" class="form-control selectpage" name="row[manystore_id]" type="text" value="{$row.manystore_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Shop_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-shop_id" data-rule="required" data-source="manystore/shop/index" class="form-control selectpage" name="row[shop_id]" type="text" value="{$row.shop_id|htmlentities}">
|
||||
<input id="c-user_id" readonly disabled data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Manystore_id')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-manystore_id" data-rule="required" data-source="manystore/index" class="form-control selectpage" name="row[manystore_id]" type="text" value="{$row.manystore_id|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Shop_id')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-shop_id" data-rule="required" data-source="manystore/shop/index" class="form-control selectpage" name="row[shop_id]" type="text" value="{$row.shop_id|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Code')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-code" class="form-control" name="row[code]" type="text" value="{$row.code|htmlentities}">
|
||||
<input id="c-code" class="form-control" readonly disabled name="row[code]" type="text" value="{$row.code|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Codeimage')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-codeimage" class="form-control" size="50" name="row[codeimage]" type="text" value="{$row.codeimage|htmlentities}">
|
||||
<input id="c-codeimage" class="form-control" readonly disabled size="50" name="row[codeimage]" type="text" value="{$row.codeimage|htmlentities}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-codeimage" class="btn btn-danger faupload" data-input-id="c-codeimage" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-codeimage"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-codeimage" class="btn btn-primary fachoose" data-input-id="c-codeimage" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
|
@ -54,7 +65,7 @@
|
|||
<label class="control-label col-xs-12 col-sm-2">{:__('Codeoneimage')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-codeoneimage" class="form-control" size="50" name="row[codeoneimage]" type="text" value="{$row.codeoneimage|htmlentities}">
|
||||
<input id="c-codeoneimage" class="form-control" readonly disabled size="50" name="row[codeoneimage]" type="text" value="{$row.codeoneimage|htmlentities}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-codeoneimage" class="btn btn-danger faupload" data-input-id="c-codeoneimage" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp,image/webp" data-multiple="false" data-preview-id="p-codeoneimage"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-codeoneimage" class="btn btn-primary fachoose" data-input-id="c-codeoneimage" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
|
@ -64,41 +75,41 @@
|
|||
<ul class="row list-inline faupload-preview" id="p-codeoneimage"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_activity_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_activity_id" data-rule="required" data-source="school/classes/activity/index" class="form-control selectpage" name="row[classes_activity_id]" type="text" value="{$row.classes_activity_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_activity_id')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_activity_id" data-rule="required" data-source="school/classes/activity/activity/index" data-field="title" class="form-control selectpage" name="row[classes_activity_id]" type="text" value="{$row.classes_activity_id|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Activity_order_detail_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-activity_order_detail_id" data-rule="required" data-source="school/classes/activity/order/detail/index" class="form-control selectpage" name="row[activity_order_detail_id]" type="text" value="{$row.activity_order_detail_id|htmlentities}">
|
||||
<input id="c-activity_order_detail_id" readonly disabled data-rule="required" data-source="school/classes/activity/order/order_detail/index" data-field="title" class="form-control selectpage" name="row[activity_order_detail_id]" type="text" value="{$row.activity_order_detail_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Beforeprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-beforeprice" class="form-control" step="0.01" name="row[beforeprice]" type="number" value="{$row.beforeprice|htmlentities}">
|
||||
<input id="c-beforeprice" class="form-control" readonly disabled step="0.01" name="row[beforeprice]" type="number" value="{$row.beforeprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Totalprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-totalprice" class="form-control" step="0.01" name="row[totalprice]" type="number" value="{$row.totalprice|htmlentities}">
|
||||
<input id="c-totalprice" class="form-control" readonly disabled step="0.01" name="row[totalprice]" type="number" value="{$row.totalprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Payprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-payprice" class="form-control" step="0.01" name="row[payprice]" type="number" value="{$row.payprice|htmlentities}">
|
||||
<input id="c-payprice" class="form-control" readonly disabled step="0.01" name="row[payprice]" type="number" value="{$row.payprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pay_type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-pay_type" class="form-control selectpicker" name="row[pay_type]">
|
||||
<select id="c-pay_type" readonly disabled class="form-control selectpicker" name="row[pay_type]">
|
||||
{foreach name="payTypeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$row.pay_type"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
|
@ -112,7 +123,7 @@
|
|||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" readonly disabled name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
|
@ -124,7 +135,7 @@
|
|||
|
||||
<div class="radio">
|
||||
{foreach name="beforeStatusList" item="vo"}
|
||||
<label for="row[before_status]-{$key}"><input id="row[before_status]-{$key}" name="row[before_status]" type="radio" value="{$key}" {in name="key" value="$row.before_status"}checked{/in} /> {$vo}</label>
|
||||
<label for="row[before_status]-{$key}"><input id="row[before_status]-{$key}" readonly disabled name="row[before_status]" type="radio" value="{$key}" {in name="key" value="$row.before_status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
|
@ -136,7 +147,7 @@
|
|||
|
||||
<div class="radio">
|
||||
{foreach name="serverStatusList" item="vo"}
|
||||
<label for="row[server_status]-{$key}"><input id="row[server_status]-{$key}" name="row[server_status]" type="radio" value="{$key}" {in name="key" value="$row.server_status"}checked{/in} /> {$vo}</label>
|
||||
<label for="row[server_status]-{$key}"><input id="row[server_status]-{$key}" readonly disabled name="row[server_status]" type="radio" value="{$key}" {in name="key" value="$row.server_status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
|
@ -145,95 +156,95 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Canceltime')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-canceltime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[canceltime]" type="text" value="{:$row.canceltime?datetime($row.canceltime):''}">
|
||||
<input id="c-canceltime" readonly disabled class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[canceltime]" type="text" value="{:$row.canceltime?datetime($row.canceltime):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Paytime')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-paytime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[paytime]" type="text" value="{:$row.paytime?datetime($row.paytime):''}">
|
||||
<input id="c-paytime" readonly disabled class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[paytime]" type="text" value="{:$row.paytime?datetime($row.paytime):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-auth_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[auth_time]" type="text" value="{:$row.auth_time?datetime($row.auth_time):''}">
|
||||
<input id="c-auth_time" readonly disabled class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[auth_time]" type="text" value="{:$row.auth_time?datetime($row.auth_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Reservation_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-reservation_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[reservation_time]" type="text" value="{:$row.reservation_time?datetime($row.reservation_time):''}">
|
||||
<input id="c-reservation_time" readonly disabled class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[reservation_time]" type="text" value="{:$row.reservation_time?datetime($row.reservation_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Finishtime')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-finishtime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[finishtime]" type="text" value="{:$row.finishtime?datetime($row.finishtime):''}">
|
||||
<input id="c-finishtime" readonly disabled class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[finishtime]" type="text" value="{:$row.finishtime?datetime($row.finishtime):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Refundtime')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-refundtime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[refundtime]" type="text" value="{:$row.refundtime?datetime($row.refundtime):''}">
|
||||
<input id="c-refundtime" readonly disabled class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[refundtime]" type="text" value="{:$row.refundtime?datetime($row.refundtime):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Total_refundprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-total_refundprice" class="form-control" step="0.01" name="row[total_refundprice]" type="number" value="{$row.total_refundprice|htmlentities}">
|
||||
<input id="c-total_refundprice" readonly disabled class="form-control" step="0.01" name="row[total_refundprice]" type="number" value="{$row.total_refundprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Real_refundprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-real_refundprice" class="form-control" step="0.01" name="row[real_refundprice]" type="number" value="{$row.real_refundprice|htmlentities}">
|
||||
<input id="c-real_refundprice" readonly disabled class="form-control" step="0.01" name="row[real_refundprice]" type="number" value="{$row.real_refundprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Sub_refundprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-sub_refundprice" class="form-control" step="0.01" name="row[sub_refundprice]" type="number" value="{$row.sub_refundprice|htmlentities}">
|
||||
<input id="c-sub_refundprice" readonly disabled class="form-control" step="0.01" name="row[sub_refundprice]" type="number" value="{$row.sub_refundprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pay_json')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<dl class="fieldlist" data-name="row[pay_json]">
|
||||
<dd>
|
||||
<ins>{:__('Key')}</ins>
|
||||
<ins>{:__('Value')}</ins>
|
||||
</dd>
|
||||
<dd><a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
|
||||
<textarea name="row[pay_json]" class="form-control hide" cols="30" rows="5">{$row.pay_json|htmlentities}</textarea>
|
||||
</dl>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Pay_json')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- -->
|
||||
<!-- <dl class="fieldlist" data-name="row[pay_json]">-->
|
||||
<!-- <dd>-->
|
||||
<!-- <ins>{:__('Key')}</ins>-->
|
||||
<!-- <ins>{:__('Value')}</ins>-->
|
||||
<!-- </dd>-->
|
||||
<!-- <dd><a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>-->
|
||||
<!-- <textarea name="row[pay_json]" class="form-control hide" cols="30" rows="5">{$row.pay_json|htmlentities}</textarea>-->
|
||||
<!-- </dl>-->
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Platform')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-platform" class="form-control" name="row[platform]" type="text" value="{$row.platform|htmlentities}">
|
||||
<input id="c-platform" class="form-control" readonly disabled name="row[platform]" type="text" value="{$row.platform|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Verification_user_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-verification_user_id" data-rule="required" data-source="verification/user/index" class="form-control selectpage" name="row[verification_user_id]" type="text" value="{$row.verification_user_id|htmlentities}">
|
||||
<input id="c-verification_user_id" data-rule="required" readonly disabled class="form-control" name="row[verification_user_id]" type="text" value="{$row.verification_user_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Verification_type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-verification_type" class="form-control" name="row[verification_type]" type="text" value="{$row.verification_type|htmlentities}">
|
||||
<input id="c-verification_type" readonly disabled class="form-control" name="row[verification_type]" type="text" value="{$row.verification_type|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Reason')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-reason" class="form-control" name="row[reason]" type="text" value="{$row.reason|htmlentities}">
|
||||
<input id="c-reason" class="form-control" readonly disabled name="row[reason]" type="text" value="{$row.reason|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -242,7 +253,7 @@
|
|||
|
||||
<div class="radio">
|
||||
{foreach name="authStatusList" item="vo"}
|
||||
<label for="row[auth_status]-{$key}"><input id="row[auth_status]-{$key}" name="row[auth_status]" type="radio" value="{$key}" {in name="key" value="$row.auth_status"}checked{/in} /> {$vo}</label>
|
||||
<label for="row[auth_status]-{$key}"><input id="row[auth_status]-{$key}" readonly disabled name="row[auth_status]" type="radio" value="{$key}" {in name="key" value="$row.auth_status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
|
@ -251,19 +262,22 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_user_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-auth_user_id" data-rule="required" data-source="auth/user/index" class="form-control selectpage" name="row[auth_user_id]" type="text" value="{$row.auth_user_id|htmlentities}">
|
||||
<input id="c-auth_user_id" data-rule="required" readonly disabled class="form-control" name="row[auth_user_id]" type="text" value="{$row.auth_user_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-auth_type" class="form-control" name="row[auth_type]" type="text" value="{$row.auth_type|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
<input id="c-auth_type" class="form-control" readonly disabled name="row[auth_type]" type="text" value="{$row.auth_type|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!-- <div class="form-group layer-footer">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2"></label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</form>
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
<form id="examine-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
<input name="row[id]" type="hidden" value="{$row.id}">
|
||||
<fieldset>
|
||||
<legend><h4>预约报名资格审核,如果您审核不通过,请您填写审核失败原因告知对方!</h4></legend>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="authStatusList" item="vo"}
|
||||
<label for="row[auth_status]-{$key}"><input id="row[auth_status]-{$key}" name="row[auth_status]" type="radio" value="{$key}" {in name="key" value="0"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Reason')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-reason" class="form-control" name="row[reason]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="button" id="examine" data-type="examine" class="btn btn-success btn-embossed">确认提交审核结果</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
|
@ -17,25 +17,25 @@
|
|||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
<!-- -->
|
||||
|
||||
<!-- <div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order/multi')?'':'hide'}">-->
|
||||
<!-- <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>-->
|
||||
<!-- <ul class="dropdown-menu text-left" role="menu">-->
|
||||
<!-- {foreach name="statusList" item="vo"}-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>-->
|
||||
<!-- {/foreach}-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order/recyclebin')?'':'hide'}" href="school/classes/activity/order/order/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
<!-- <a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order/recyclebin')?'':'hide'}" href="school/classes/activity/order/order/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>-->
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/activity/order/order/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/activity/order/order/del')}"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -17,25 +17,25 @@
|
|||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_detail/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_detail/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_detail/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_detail/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_detail/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_detail/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
<!-- -->
|
||||
|
||||
<!-- <div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_detail/multi')?'':'hide'}">-->
|
||||
<!-- <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>-->
|
||||
<!-- <ul class="dropdown-menu text-left" role="menu">-->
|
||||
<!-- {foreach name="statusList" item="vo"}-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>-->
|
||||
<!-- {/foreach}-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_detail/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_detail/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_detail/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
<!-- <a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_detail/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_detail/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>-->
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/activity/order/order_detail/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/activity/order/order_detail/del')}"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -17,25 +17,25 @@
|
|||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_item/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_item/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_item/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_item/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_item/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_item/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
<!-- -->
|
||||
|
||||
<!-- <div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_item/multi')?'':'hide'}">-->
|
||||
<!-- <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>-->
|
||||
<!-- <ul class="dropdown-menu text-left" role="menu">-->
|
||||
<!-- {foreach name="statusList" item="vo"}-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>-->
|
||||
<!-- {/foreach}-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_item/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_item/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_item/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
<!-- <a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_item/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_item/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>-->
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/activity/order/order_item/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/activity/order/order_item/del')}"
|
||||
data-operate-edit="0"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -17,25 +17,25 @@
|
|||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_log/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_log/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_log/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_log/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_log/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_log/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
<!-- -->
|
||||
|
||||
<!-- <div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_log/multi')?'':'hide'}">-->
|
||||
<!-- <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>-->
|
||||
<!-- <ul class="dropdown-menu text-left" role="menu">-->
|
||||
<!-- {foreach name="statusList" item="vo"}-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>-->
|
||||
<!-- {/foreach}-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_log/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_log/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_log/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
<!-- <a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_log/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_log/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>-->
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/activity/order/order_log/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/activity/order/order_log/del')}"
|
||||
data-operate-edit="0"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -131,6 +131,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:280*200 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -145,6 +146,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -276,18 +278,18 @@
|
|||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -169,6 +169,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:280*200 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -183,6 +184,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -320,18 +322,18 @@
|
|||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text" value="{$row.classes_date_text|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text" value="{$row.classes_time_text|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text" value="{$row.classes_date_text|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text" value="{$row.classes_time_text|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -169,6 +169,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:280*200 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -183,6 +184,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -320,18 +322,18 @@
|
|||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text" value="{$row.classes_date_text|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text" value="{$row.classes_time_text|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text" value="{$row.classes_date_text|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text" value="{$row.classes_time_text|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
<span class="msg-box n-right" for="c-head_image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-head_image"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:200*250 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -89,6 +90,7 @@
|
|||
<span class="msg-box n-right" for="c-expert_image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-expert_image"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:200*250 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
<span class="msg-box n-right" for="c-head_image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-head_image"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:200*250 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -90,6 +91,7 @@
|
|||
<span class="msg-box n-right" for="c-expert_image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-expert_image"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:200*250 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -0,0 +1,69 @@
|
|||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Help_cate_ids')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-help_cate_ids" data-rule="required" data-source="school/help/cate/index" data-max-select-limit="3" data-multiple="true" data-params='{"custom[status]":"1"}' class="form-control selectpage" name="row[help_cate_ids]" type="text" value="{$q_help_cate_ids}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-title" class="form-control" name="row[title]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-content" data-rule="required" class="form-control editor" rows="5" name="row[content]" cols="50"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="1"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Hot')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-hot" class="form-control selectpicker" name="row[hot]">
|
||||
{foreach name="hotList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="0"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-start_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[start_time]" type="text" value="{:date('Y-m-d H:i:s')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Views')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-views" class="form-control" name="row[views]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
|
@ -0,0 +1,69 @@
|
|||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Help_cate_ids')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-help_cate_ids" data-rule="required" data-source="school/help/cate/index" data-max-select-limit="3" data-multiple="true" data-params='{"custom[status]":"1"}' class="form-control selectpage" name="row[help_cate_ids]" type="text" value="{$row.help_cate_ids|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-title" class="form-control" name="row[title]" type="text" value="{$row.title|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<textarea id="c-content" data-rule="required" class="form-control editor" rows="5" name="row[content]" cols="50">{$row.content|htmlentities}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Hot')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-hot" class="form-control selectpicker" name="row[hot]">
|
||||
{foreach name="hotList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$row.hot"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Start_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-start_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[start_time]" type="text" value="{:$row.start_time?datetime($row.start_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="{$row.weigh|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Views')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-views" class="form-control" name="row[views]" type="number" value="{$row.views|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
|
@ -0,0 +1,46 @@
|
|||
<div class="panel panel-default panel-intro">
|
||||
|
||||
<div class="panel-heading">
|
||||
{:build_heading(null,FALSE)}
|
||||
<ul class="nav nav-tabs" data-field="status">
|
||||
<li class="{:$Think.get.status === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
|
||||
{foreach name="statusList" item="vo"}
|
||||
<li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/help/article/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/help/article/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/help/article/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/help/article/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/help/article/recyclebin')?'':'hide'}" href="school/help/article/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/help/article/edit')}"
|
||||
data-operate-del="{:$auth->check('school/help/article/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,25 @@
|
|||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh')}
|
||||
<a class="btn btn-info btn-multi btn-disabled disabled {:$auth->check('school/help/article/restore')?'':'hide'}" href="javascript:;" data-url="school/help/article/restore" data-action="restore"><i class="fa fa-rotate-left"></i> {:__('Restore')}</a>
|
||||
<a class="btn btn-danger btn-multi btn-disabled disabled {:$auth->check('school/help/article/destroy')?'':'hide'}" href="javascript:;" data-url="school/help/article/destroy" data-action="destroy"><i class="fa fa-times"></i> {:__('Destroy')}</a>
|
||||
<a class="btn btn-success btn-restoreall {:$auth->check('school/help/article/restore')?'':'hide'}" href="javascript:;" data-url="school/help/article/restore" title="{:__('Restore all')}"><i class="fa fa-rotate-left"></i> {:__('Restore all')}</a>
|
||||
<a class="btn btn-danger btn-destroyall {:$auth->check('school/help/article/destroy')?'':'hide'}" href="javascript:;" data-url="school/help/article/destroy" title="{:__('Destroy all')}"><i class="fa fa-times"></i> {:__('Destroy all')}</a>
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover"
|
||||
data-operate-restore="{:$auth->check('school/help/article/restore')}"
|
||||
data-operate-destroy="{:$auth->check('school/help/article/destroy')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -0,0 +1,39 @@
|
|||
<form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pid')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[pid]', $ruledata, $q_pid, ['class'=>'form-control', 'required'=>''])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" class="form-control" name="row[name]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="1"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
|
@ -0,0 +1,39 @@
|
|||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pid')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
{:build_select('row[pid]', $ruledata, $row['pid'], ['class'=>'form-control', 'required'=>''])}
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Name')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-name" class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Weigh')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-weigh" class="form-control" name="row[weigh]" type="number" value="{$row.weigh|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
|
@ -0,0 +1,95 @@
|
|||
<style>
|
||||
.bootstrap-table tr td .text-muted {color:#888;}
|
||||
</style>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-6 col-md-5 col-lg-5">
|
||||
|
||||
|
||||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar1" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" data-force-refresh="false"><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/help/cate/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/help/cate/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/help/cate/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<div class="dropdown btn-group {:$auth->check('school/help/cate/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=1"><i class="fa fa-eye"></i> {:__('上架')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=2"><i class="fa fa-eye-slash"></i> {:__('下架')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<a href="javascript:;" class="btn btn-danger btn-toggle-all"><i class="fa fa-plus"></i> {:__('Toggle all')}</a>
|
||||
</div>
|
||||
<table id="table1" class="table table-bordered table-hover"
|
||||
data-operate-edit="0"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-xs-12 col-sm-6 col-md-7 col-lg-7">
|
||||
|
||||
|
||||
<div class="panel panel-default panel-intro">
|
||||
|
||||
<div class="panel-heading">
|
||||
{:build_heading(null,FALSE)}
|
||||
<ul class="nav nav-tabs" data-field="status">
|
||||
<li class="{:$Think.get.status === null ? 'active' : ''}"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
|
||||
{foreach name="statusList" item="vo"}
|
||||
<li class="{:$Think.get.status === (string)$key ? 'active' : ''}"><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent2" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="two">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar2" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/help/article/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/help/article/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/help/article/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/help/article/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:" data-params="status={$key}">{:__('Set status to ' . $key)}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/help/article/recyclebin')?'':'hide'}" href="school/help/article/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
</div>
|
||||
<table id="table2" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/help/article/edit')}"
|
||||
data-operate-del="{:$auth->check('school/help/article/del')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
<div class="panel panel-default panel-intro">
|
||||
{:build_heading()}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
{:build_toolbar('refresh')}
|
||||
<a class="btn btn-info btn-multi btn-disabled disabled {:$auth->check('school/help/cate/restore')?'':'hide'}" href="javascript:;" data-url="school/help/cate/restore" data-action="restore"><i class="fa fa-rotate-left"></i> {:__('Restore')}</a>
|
||||
<a class="btn btn-danger btn-multi btn-disabled disabled {:$auth->check('school/help/cate/destroy')?'':'hide'}" href="javascript:;" data-url="school/help/cate/destroy" data-action="destroy"><i class="fa fa-times"></i> {:__('Destroy')}</a>
|
||||
<a class="btn btn-success btn-restoreall {:$auth->check('school/help/cate/restore')?'':'hide'}" href="javascript:;" data-url="school/help/cate/restore" title="{:__('Restore all')}"><i class="fa fa-rotate-left"></i> {:__('Restore all')}</a>
|
||||
<a class="btn btn-danger btn-destroyall {:$auth->check('school/help/cate/destroy')?'':'hide'}" href="javascript:;" data-url="school/help/cate/destroy" title="{:__('Destroy all')}"><i class="fa fa-times"></i> {:__('Destroy all')}</a>
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover"
|
||||
data-operate-restore="{:$auth->check('school/help/cate/restore')}"
|
||||
data-operate-destroy="{:$auth->check('school/help/cate/destroy')}"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -12,6 +12,7 @@
|
|||
<span class="msg-box n-right" for="c-image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-image"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:690*400 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -20,7 +21,7 @@
|
|||
|
||||
<select id="c-type" data-rule="required" class="form-control selectpicker" name="row[type]">
|
||||
{foreach name="typeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="1"}selected{/in}>{$vo}</option>
|
||||
<option value="{$key}" {in name="key" value="in"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
<span class="msg-box n-right" for="c-image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-image"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:690*400 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -97,9 +97,13 @@ class Index extends Api
|
|||
"site_city"=> Virtual::getNowCity(),
|
||||
"site_timezone"=>config('site.timezone'),
|
||||
];
|
||||
$customer_service = [
|
||||
"image"=>cdnurl(config('site.customer_service_image'),true),
|
||||
"mobile"=>config('site.customer_service_mobile'),
|
||||
];
|
||||
$upload_config = config('upload');
|
||||
|
||||
$this->success('',["upload_config"=>$upload_config,"base_info"=>$base_info,"home_data"=>$home_data]);
|
||||
$this->success('',["customer_service"=>$customer_service,"upload_config"=>$upload_config,"base_info"=>$base_info,"home_data"=>$home_data]);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,160 @@
|
|||
<?php
|
||||
|
||||
namespace app\api\controller\school;
|
||||
|
||||
use app\common\model\school\classes\order\Order as OrderModel;
|
||||
use app\common\model\school\classes\Teacher as Teachermodel;
|
||||
|
||||
/**
|
||||
* 用户端:帮助接口
|
||||
*/
|
||||
class Help extends Base
|
||||
{
|
||||
protected $noNeedLogin = '*';
|
||||
protected $noNeedRight = '*';
|
||||
|
||||
protected $model = null;
|
||||
protected $catemodel = null;
|
||||
|
||||
/**
|
||||
* 初始化操作
|
||||
* @access protected
|
||||
*/
|
||||
protected function _initialize()
|
||||
{
|
||||
|
||||
$this->model = new \app\common\model\school\help\Article;
|
||||
$this->catemodel = new \app\common\model\school\help\Cate;
|
||||
parent::_initialize();
|
||||
|
||||
//判断登录用户是否是员工
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @ApiTitle( 帮助文章列表接口)
|
||||
* @ApiSummary(帮助文章列表接口)
|
||||
* @ApiMethod(GET)
|
||||
* @ApiParams(name = "keywords", type = "string",required=false,description = "搜索关键字")
|
||||
* @ApiParams(name = "page", type = "string",required=true,description = "页数")
|
||||
* @ApiParams(name = "limit", type = "string",required=true,description = "条数")
|
||||
* @ApiParams(name = "help_cate_ids", type = "string",required=false,description = "帮助分类id")
|
||||
* @ApiParams(name = "hot", type = "string",required=false,description = "平台热门:0=否,1=是")
|
||||
* @ApiParams(name = "time", type = "string",required=false,description = "复合时间查询:today今天,week本周,month本月,year本年,yesterday昨天,last year上一年,last week上周,last month上個月,lately7最近7天 , lately30最近30天,按开始时间区间查传值格式:Y/m/d H:M:S-Y/m/d H:M:S")
|
||||
*
|
||||
* @ApiReturn({
|
||||
*
|
||||
*})
|
||||
*/
|
||||
public function article_list()
|
||||
{
|
||||
$user_id = 0;
|
||||
$user = $this->auth->getUser();//登录用户
|
||||
if($user)$user_id = $user['id'];
|
||||
|
||||
$params = [];
|
||||
$my = $this->request->get('my/d', 0); //我的评价
|
||||
if($my && $user_id){
|
||||
$params['user_id'] = $user_id;
|
||||
}
|
||||
$page = $this->request->get('page/d', 0); //页数
|
||||
$limit = $this->request->get('limit/d', 0); //条数
|
||||
$params["keywords"] = $this->request->get('keywords/s', ''); //搜索关键字
|
||||
$params["help_cate_ids"] = $this->request->get('help_cate_ids/s', ''); //搜索关键字
|
||||
|
||||
$params["hot"] = $this->request->get('hot/s', ''); //时间
|
||||
|
||||
$params["time"] = $this->request->get('time/s', ''); //时间
|
||||
|
||||
try{
|
||||
//当前申请状态
|
||||
$res = $this->model::articleList($page, $limit,$params);
|
||||
// if($user_id =='670153'){
|
||||
// file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql());
|
||||
// }
|
||||
}catch (\Exception $e){
|
||||
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('查询成功', $res);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @ApiTitle( 帮助分类列表接口)
|
||||
* @ApiSummary(帮助分类列表接口)
|
||||
* @ApiMethod(GET)
|
||||
* @ApiParams(name = "keywords", type = "string",required=false,description = "搜索关键字")
|
||||
* @ApiParams(name = "page", type = "string",required=true,description = "页数")
|
||||
* @ApiParams(name = "limit", type = "string",required=true,description = "条数")
|
||||
* @ApiParams(name = "pid", type = "string",required=true,description = "父级id")
|
||||
* @ApiReturn({
|
||||
*
|
||||
*})
|
||||
*/
|
||||
public function cate_list()
|
||||
{
|
||||
$user_id = 0;
|
||||
$user = $this->auth->getUser();//登录用户
|
||||
if($user)$user_id = $user['id'];
|
||||
|
||||
$params = [];
|
||||
$my = $this->request->get('my/d', 0); //我的评价
|
||||
if($my && $user_id){
|
||||
$params['user_id'] = $user_id;
|
||||
}
|
||||
$page = $this->request->get('page/d', 0); //页数
|
||||
$limit = $this->request->get('limit/d', 0); //条数
|
||||
$params["keywords"] = $this->request->get('keywords/s', ''); //搜索关键字
|
||||
$params["pid"] = $this->request->get('pid/s', ''); //搜索关键字
|
||||
|
||||
try{
|
||||
//当前申请状态
|
||||
$res = $this->catemodel::cateList($page, $limit,$params);
|
||||
// if($user_id =='670153'){
|
||||
// file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql());
|
||||
// }
|
||||
}catch (\Exception $e){
|
||||
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('查询成功', $res);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @ApiTitle( 文章详情)
|
||||
* @ApiSummary(文章详情)
|
||||
* @ApiMethod(GET)
|
||||
* @ApiParams(name = "id", type = "int",required=true,description = "文章id")
|
||||
* @ApiReturn({
|
||||
*
|
||||
*})
|
||||
*/
|
||||
public function detail(){
|
||||
$id = $this->request->get('id/d','');
|
||||
|
||||
if(empty($id)){
|
||||
$this->error(__('缺少必要参数'));
|
||||
}
|
||||
|
||||
try {
|
||||
$res = $this->model->detail($id);
|
||||
} catch (\Exception $e){
|
||||
// Log::log($e->getMessage());
|
||||
$this->error($e->getMessage(),['errcode'=>$e->getCode()]);
|
||||
}
|
||||
$this->success('获取成功', ['detail' => $res]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -293,7 +293,7 @@ class Pay extends Base
|
|||
return $pay->success()->send();
|
||||
// Log::debug('Wechat notify', $data->all());
|
||||
} catch (\Exception $e) {
|
||||
Log::write('notifyreturn-error:' . json_encode($e->getMessage()));
|
||||
Log::write('notifyreturn-error:' . $e->getMessage());
|
||||
}
|
||||
return $pay->success()->send();
|
||||
}
|
||||
|
|
|
@ -70,6 +70,7 @@ class Order extends Base
|
|||
* @ApiParams(name = "page", type = "string",required=true,description = "页数")
|
||||
* @ApiParams(name = "limit", type = "string",required=true,description = "条数")
|
||||
* @ApiParams(name = "status", type = "string",required=false,description = "订单状态:-3=已取消,0=待支付,2=已报名待审核,3=已预约,4=售后中,6=已退款,9=已完成")
|
||||
* @ApiParams(name = "auth_status", type = "string",required=false,description = "审核状态:0=待审核,1=审核通过,2=审核失败")
|
||||
* @ApiParams(name = "classes_activity_id", type = "int",required=false,description = "课程活动id")
|
||||
* @ApiReturn({
|
||||
*
|
||||
|
@ -84,6 +85,7 @@ class Order extends Base
|
|||
$limit = $this->request->get('limit/d', 0); //条数
|
||||
$keywords = $this->request->get('keywords/s', ''); //搜索关键字
|
||||
$status = $this->request->get('status/s', ''); //搜索关键字
|
||||
$auth_status = $this->request->get('auth_status/s', ''); //搜索关键字
|
||||
$classes_activity_id = $this->request->get('classes_activity_id/s', ''); //搜索关键字
|
||||
|
||||
$has_evaluate = $this->request->get('has_evaluate/d', 0); //搜索关键字
|
||||
|
@ -91,7 +93,7 @@ class Order extends Base
|
|||
|
||||
try{
|
||||
//当前申请状态
|
||||
$res = $this->model::allList($user_id,$page, $limit,$keywords,$status,$classes_activity_id,$has_evaluate);
|
||||
$res = $this->model::allList($user_id,$page, $limit,$keywords,$status,$classes_activity_id,$has_evaluate,$auth_status);
|
||||
// if($user_id =='670153'){
|
||||
// file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql());
|
||||
// }
|
||||
|
|
|
@ -289,19 +289,21 @@ class Pay extends Base
|
|||
$out_trade_no = $data['out_trade_no'];
|
||||
|
||||
// 退款
|
||||
$this->refundFinish($out_trade_no, $out_refund_no,$platform);
|
||||
$this->refundFinish($out_trade_no, $out_refund_no,$platform,$data);
|
||||
|
||||
|
||||
return $pay->success()->send();
|
||||
// Log::debug('Wechat notify', $data->all());
|
||||
} catch (\Exception $e) {
|
||||
Log::write('notifyreturn-error:' . json_encode($e->getMessage()));
|
||||
Log::write('notifyreturn-error:' . $e->getMessage());
|
||||
$this->model::orderRefundFail($out_trade_no,$e->getMessage(),'user',0,true);
|
||||
|
||||
}
|
||||
return $pay->success()->send();
|
||||
}
|
||||
|
||||
|
||||
private function refundFinish($out_trade_no, $out_refund_no,$platform) {
|
||||
private function refundFinish($out_trade_no, $out_refund_no,$platform,$refund_json) {
|
||||
|
||||
// $order = Order::where('order_sn', $out_trade_no)->find();
|
||||
// $refundLog = \app\admin\model\shopro\order\RefundLog::where('refund_sn', $out_refund_no)->find();
|
||||
|
@ -316,7 +318,7 @@ class Pay extends Base
|
|||
// Db::transaction(function () use ($order, $item, $refundLog) {
|
||||
// \app\admin\model\shopro\order\Order::refundFinish($order, $item, $refundLog);
|
||||
// });
|
||||
$this->model::refundSuccess($out_refund_no,true);
|
||||
$this->model::refundSuccess($out_refund_no,$refund_json,true);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -267,6 +267,7 @@ class HourOrder extends Base
|
|||
* @ApiParams(name = "status", type = "string",required=false,description = "订单状态:-3=已取消,-1=已报名待审核,0=已预约,3=已完成")
|
||||
* @ApiParams(name = "classes_order_id", type = "string",required=false,description = "课程订单id")
|
||||
* @ApiParams(name = "classes_lib_id", type = "int",required=false,description = "课程id")
|
||||
* @ApiParams(name = "shop_id", type = "int",required=false,description = "机构shopid")
|
||||
* @ApiParams(name = "start_time", type = "string",required=false,description = "按开始时间区间查(传值格式:Y/m/d H:M:S-Y/m/d H:M:S)")
|
||||
* @ApiParams(name = "createtime", type = "string",required=false,description = "按创建时间区间查(传值格式:Y/m/d H:M:S-Y/m/d H:M:S)")
|
||||
* @ApiParams(name = "time", type = "string",required=false,description = "按开始和结束时间区间查(传值格式:Y/m/d H:M:S-Y/m/d H:M:S)")
|
||||
|
@ -287,16 +288,17 @@ class HourOrder extends Base
|
|||
$status = $this->request->get('status/s', ''); //搜索关键字
|
||||
$classes_order_id = $this->request->get('classes_order_id/d', 0); //搜索关键字
|
||||
$classes_lib_ids = $this->request->get('classes_lib_id/s', 0); //搜索关键字
|
||||
$shop_id = $this->request->get('shop_id/d', 0); //搜索关键字
|
||||
|
||||
$start_time = $this->request->get('start_time/s', ''); //搜索关键字
|
||||
$createtime = $this->request->get('createtime/s', ''); //搜索关键字
|
||||
$time = $this->request->get('time/s', ''); //搜索关键字
|
||||
|
||||
// $type = $this->request->get('type/s', ''); //筛选学员和教练单
|
||||
|
||||
// var_dump($this->classes_lib_ids);die;
|
||||
try{
|
||||
//当前申请状态
|
||||
$res = $this->model::workList($page, $limit,$keywords,$status,$classes_order_id,0,$this->classes_lib_ids,$classes_lib_ids,$start_time,$createtime,$time);
|
||||
$res = $this->model::workList($page, $limit,$keywords,$status,$classes_order_id,0,$classes_lib_ids,$this->classes_lib_ids,$start_time,$createtime,$time,$shop_id);
|
||||
// var_dump($this->model->getLastSql());die;
|
||||
// if($user_id =='670153'){
|
||||
// file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql());
|
||||
|
@ -325,9 +327,10 @@ class HourOrder extends Base
|
|||
|
||||
$classes_order_id = $this->request->get('classes_order_id/d', 0); //搜索关键字
|
||||
$classes_lib_ids = $this->request->get('classes_lib_id/s', 0); //搜索关键字
|
||||
$shop_id = $this->request->get('shop_id/d', 0); //搜索关键字
|
||||
|
||||
try{
|
||||
$res = $this->model::workCount($this->classes_lib_ids,$classes_lib_ids,$classes_order_id);
|
||||
$res = $this->model::workCount($classes_lib_ids,$this->classes_lib_ids,$classes_order_id,$shop_id);
|
||||
}catch (\Throwable $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
|
|
@ -68,6 +68,7 @@ class Order extends Base
|
|||
* @ApiParams(name = "page", type = "string",required=true,description = "页数")
|
||||
* @ApiParams(name = "limit", type = "string",required=true,description = "条数")
|
||||
* @ApiParams(name = "status", type = "string",required=false,description = "状态搜索条件:-3=已取消,0=待支付,2=已报名待审核,3=已预约,4=售后中,6=已退款,9=已完成")
|
||||
* @ApiParams(name = "auth_status", type = "string",required=false,description = "审核状态:0=待审核,1=审核通过,2=审核失败")
|
||||
* @ApiParams(name = "classes_activity_id", type = "int",required=false,description = "课程活动id")
|
||||
* @ApiReturn({
|
||||
*
|
||||
|
@ -82,13 +83,14 @@ class Order extends Base
|
|||
$limit = $this->request->get('limit/d', 0); //条数
|
||||
$keywords = $this->request->get('keywords/s', ''); //搜索关键字
|
||||
$status = $this->request->get('status/s', ''); //搜索关键字
|
||||
$auth_status = $this->request->get('auth_status/s', ''); //搜索关键字
|
||||
$classes_activity_id = $this->request->get('classes_activity_id/s', ''); //搜索关键字
|
||||
// $type = $this->request->get('type/s', ''); //筛选学员和教练单
|
||||
|
||||
|
||||
try{
|
||||
//当前申请状态
|
||||
$res = $this->model::workList($user_id,$page, $limit,$keywords,$status,$classes_activity_id,$this->classes_activity_ids);
|
||||
$res = $this->model::workList($user_id,$page, $limit,$keywords,$status,$classes_activity_id,$this->classes_activity_ids,0,$auth_status);
|
||||
// var_dump($this->model->getLastSql());
|
||||
}catch (\Exception $e){
|
||||
|
||||
|
@ -148,5 +150,57 @@ class Order extends Base
|
|||
$this->success('预约课时取消成功', $res);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @ApiTitle( 员工代操作:预约报名审核接口)
|
||||
* @ApiSummary(预约报名审核接口)
|
||||
* @ApiMethod(POST)
|
||||
* @ApiParams(name = "order_no", type = "string",required=true,description = "活动订单号")
|
||||
* @ApiParams(name = "auth_status", type = "int",required=true,description = "审核状态:1=审核通过,2=审核失败")
|
||||
* @ApiParams(name = "reason", type = "string",required=false,description = "审核失败理由")
|
||||
* @ApiReturn({
|
||||
*
|
||||
*})
|
||||
*/
|
||||
public function examine(){
|
||||
$user_id = 0;
|
||||
$user = $this->auth->getUser();//登录用户
|
||||
if($user)$user_id = $user['id'];
|
||||
$order_no = $this->request->post('order_no/s', ''); //订单号
|
||||
$auth_status = $this->request->post('auth_status/d', ''); //审核状态
|
||||
$reason = $this->request->post('reason/s', ''); //审核失败理由
|
||||
try{
|
||||
//当前申请状态
|
||||
$res = $this->model->examine($order_no,$auth_status,$reason,0,true,'user',$user_id,true);
|
||||
}catch (\Throwable $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('预约课时取消成功', $res);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @ApiTitle( 员工代操作:活动核销完成接口)
|
||||
* @ApiSummary(活动核销完成接口)
|
||||
* @ApiMethod(POST)
|
||||
* @ApiParams(name = "order_no", type = "string",required=true,description = "活动订单号")
|
||||
* @ApiReturn({
|
||||
*
|
||||
*})
|
||||
*/
|
||||
public function verification(){
|
||||
$user_id = 0;
|
||||
$user = $this->auth->getUser();//登录用户
|
||||
if($user)$user_id = $user['id'];
|
||||
$order_no = $this->request->post('order_no/s', ''); //订单号
|
||||
try{
|
||||
//当前申请状态
|
||||
$res = $this->model->verification($order_no,0,true,'user',$user_id,true);
|
||||
}catch (\Throwable $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('预约课时核销成功', $res);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -164,6 +164,8 @@ class Backend extends Controller
|
|||
|
||||
protected function no_auth_fields_check($params,$row){
|
||||
|
||||
if($this->no_auth_fields == "*")return $this->have_auth;
|
||||
|
||||
foreach ($params as $k=>$v){
|
||||
|
||||
//说明数值有变动
|
||||
|
|
|
@ -128,6 +128,7 @@ class ManystoreBase extends Controller
|
|||
protected $no_auth_fields = [];
|
||||
|
||||
protected function no_auth_fields_check($params,$row){
|
||||
if($this->no_auth_fields == "*")return $this->have_auth;
|
||||
|
||||
foreach ($params as $k=>$v){
|
||||
|
||||
|
|
|
@ -175,10 +175,10 @@ $activityHooks = [
|
|||
'activity_view_after' => [ // 活动触发浏览后
|
||||
'app\\common\\listener\\classes\\ActivityHook'
|
||||
],
|
||||
'activity_collect_success_after' => [ // 课程收藏后
|
||||
'activity_collect_success_after' => [ // 活动收藏后
|
||||
'app\\common\\listener\\classes\\ActivityHook'
|
||||
],
|
||||
'activity_collect_cancel_after' => [ // 课程取消收藏后
|
||||
'activity_collect_cancel_after' => [ // 活动取消收藏后
|
||||
'app\\common\\listener\\classes\\ActivityHook'
|
||||
],
|
||||
|
||||
|
@ -200,6 +200,23 @@ $activityOrderHooks = [
|
|||
'classes_activity_order_cancel_after' => [ // 订单取消后
|
||||
'app\\common\\listener\\activityorder\\OrderHook'
|
||||
],
|
||||
'classes_activity_order_auth_success_after' => [ // 订单审核通过后
|
||||
'app\\common\\listener\\activityorder\\OrderHook'
|
||||
],
|
||||
'classes_activity_order_auth_fail_after' => [ // 订单审核失败后
|
||||
'app\\common\\listener\\activityorder\\OrderHook'
|
||||
],
|
||||
|
||||
'classes_activity_order_refund_success_after'=> [ // 订单审核失败后退款成功
|
||||
'app\\common\\listener\\activityorder\\OrderHook'
|
||||
],
|
||||
'classes_activity_order_refund_fail_after'=> [ // 订单审核失败后退款成功
|
||||
'app\\common\\listener\\activityorder\\OrderHook'
|
||||
],
|
||||
'classes_activity_order_finish_after' => [ // 订单完成后
|
||||
'app\\common\\listener\\activityorder\\OrderHook'
|
||||
],
|
||||
|
||||
//
|
||||
// 'classes_order_finish_after' => [ // 订单完成后
|
||||
// 'app\\common\\listener\\classesorder\\OrderHook'
|
||||
|
|
|
@ -43,11 +43,7 @@ class OrderHook
|
|||
|
||||
}
|
||||
|
||||
// 订单完成后
|
||||
public function classesActivityOrderFinishAfter(&$params)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
@ -74,5 +70,54 @@ class OrderHook
|
|||
|
||||
|
||||
|
||||
// 订单审核通过后
|
||||
public function classesActivityOrderAuthSuccessAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
$detail = $order->detail;
|
||||
|
||||
}
|
||||
|
||||
// 订单审核失败后
|
||||
public function classesActivityOrderAuthFailAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
$detail = $order->detail;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 订单审核失败退款后
|
||||
public function classesActivityOrderRefundSuccessAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
$detail = $order->detail;
|
||||
|
||||
}
|
||||
|
||||
// 订单审核失败退款失败后
|
||||
public function classesActivityOrderRefundFailAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
$detail = $order->detail;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// 订单核销完成后
|
||||
public function classesActivityOrderFinishAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
$detail = $order->detail;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -77,7 +77,10 @@ class BaseModel extends Model
|
|||
|
||||
|
||||
public function no_auth_fields_check($params,$row){
|
||||
$this->getTableFields();
|
||||
|
||||
$this->have_auth = false;
|
||||
if($this->no_auth_fields == "*")return $this->have_auth;
|
||||
// $this->getTableFields();
|
||||
$params = $this->checkAssemblyParameters($params);
|
||||
foreach ($params as $k=>$v){
|
||||
|
||||
|
|
|
@ -1607,7 +1607,7 @@ $user_unpaid_order = $user_paid_order =null;
|
|||
//因为是批量添加,所有规格重新进行检测,防止出现时间重叠
|
||||
$specss = \app\common\model\school\classes\ClassesSpec::where("classes_lib_id",$model["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\ClassesSpec)->specCheck($params,null,$specs,true,$oper_type,$oper_id);
|
||||
}
|
||||
|
||||
|
@ -1715,7 +1715,7 @@ $user_unpaid_order = $user_paid_order =null;
|
|||
//因为是批量添加,所有规格重新进行检测,防止出现时间重叠
|
||||
$specss = \app\common\model\school\classes\ClassesSpec::where("classes_lib_id",$row["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\ClassesSpec)->specCheck($params,null,$specs,true,$oper_type,$oper_id);
|
||||
}
|
||||
|
||||
|
|
|
@ -56,6 +56,9 @@ class Activity extends BaseModel
|
|||
'has_sign_expire',
|
||||
];
|
||||
|
||||
public $no_auth_fields = ["status","weigh","recommend","hot","new","selfhot","feel","start_time","end_time","sign_start_time","sign_end_time","longitude","latitude","address_city","province","city","district","address","address_detail","address_type","title",'headimage','images','content',"price"];
|
||||
|
||||
|
||||
|
||||
public function getHasSignExpireAttr($value, $data)
|
||||
{
|
||||
|
@ -344,6 +347,16 @@ class Activity extends BaseModel
|
|||
|
||||
|
||||
|
||||
if($row){
|
||||
//统一时间格式成时间戳
|
||||
if( is_string($row["start_time"]))$row["start_time"]=strtotime($row["start_time"]);
|
||||
if( is_string($row["end_time"]))$row["end_time"]=strtotime($row["end_time"]);
|
||||
if( is_string($row["sign_start_time"]))$row["sign_start_time"]=strtotime($row["sign_start_time"]);
|
||||
if( is_string($row["sign_end_time"]))$row["sign_end_time"]=strtotime($row["sign_end_time"]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -545,6 +558,11 @@ class Activity extends BaseModel
|
|||
self::check($params,$rule,$rule_msg);
|
||||
|
||||
|
||||
//统一时间格式成时间戳
|
||||
if( is_string($params["start_time"]))$params["start_time"]=strtotime($params["start_time"]);
|
||||
if( is_string($params["end_time"]))$params["end_time"]=strtotime($params["end_time"]);
|
||||
if( is_string($params["sign_start_time"]))$params["sign_start_time"]=strtotime($params["sign_start_time"]);
|
||||
if( is_string($params["sign_end_time"]))$params["sign_end_time"]=strtotime($params["sign_end_time"]);
|
||||
|
||||
|
||||
|
||||
|
@ -660,15 +678,15 @@ class Activity extends BaseModel
|
|||
|
||||
public function updateCheck($id,$params=[],$row=null){
|
||||
if($params && $row){
|
||||
// var_dump($this->no_auth_fields_check($params,$row));
|
||||
|
||||
if(!$this->no_auth_fields_check($params,$row)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
// 课程存在售后订单则不允许操作
|
||||
$order = Order::where("classes_activity_item_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("{$order['name']}存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
$order = Order::where("classes_activity_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
}
|
||||
|
||||
|
||||
|
@ -697,7 +715,8 @@ class Activity extends BaseModel
|
|||
//如果未创建则创建活动
|
||||
$activityData = $activityAuth->toArray();
|
||||
unset($activityData["id"]);
|
||||
$activity = new self;
|
||||
$activity = self::where("title",$activityData["title"])->find();
|
||||
if(!$activity)$activity = new self;
|
||||
$activity->allowField(true)->save($activityData);
|
||||
//添加活动规格
|
||||
foreach ($itemauths as $k=>$itemauth){
|
||||
|
|
|
@ -49,6 +49,9 @@ class ActivityAuth extends BaseModel
|
|||
'has_expire',
|
||||
];
|
||||
|
||||
public $no_auth_fields = ["status","weigh","recommend","hot","new","selfhot","feel","start_time","end_time","sign_start_time","sign_end_time","longitude","latitude","address_city","province","city","district","address","address_detail","address_type","title",'headimage','images','content',"price"];
|
||||
|
||||
|
||||
public function getHasExpireList()
|
||||
{
|
||||
return ['1' => __('Has_expire 1'), '2' => __('Has_expire 2')];
|
||||
|
@ -294,8 +297,16 @@ class ActivityAuth extends BaseModel
|
|||
public function activityCheck(&$params,$shop_id=null,$row=null,$oper_type='user',$oper_id=0)
|
||||
{
|
||||
|
||||
if($row){
|
||||
//统一时间格式成时间戳
|
||||
if( is_string($row["start_time"]))$row["start_time"]=strtotime($row["start_time"]);
|
||||
if( is_string($row["end_time"]))$row["end_time"]=strtotime($row["end_time"]);
|
||||
if( is_string($row["sign_start_time"]))$row["sign_start_time"]=strtotime($row["sign_start_time"]);
|
||||
if( is_string($row["sign_end_time"]))$row["sign_end_time"]=strtotime($row["sign_end_time"]);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -497,6 +508,11 @@ class ActivityAuth extends BaseModel
|
|||
self::check($params,$rule,$rule_msg);
|
||||
|
||||
|
||||
//统一时间格式成时间戳
|
||||
if( is_string($params["start_time"]))$params["start_time"]=strtotime($params["start_time"]);
|
||||
if( is_string($params["end_time"]))$params["end_time"]=strtotime($params["end_time"]);
|
||||
if( is_string($params["sign_start_time"]))$params["sign_start_time"]=strtotime($params["sign_start_time"]);
|
||||
if( is_string($params["sign_end_time"]))$params["sign_end_time"]=strtotime($params["sign_end_time"]);
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -240,6 +240,8 @@ class ActivityItem extends BaseModel
|
|||
|
||||
}
|
||||
|
||||
// //不用审核允许修改的字段
|
||||
public $no_auth_fields = ["name","price"];
|
||||
|
||||
public function updateCheck($id,$params=[],$row=null){
|
||||
if($params && $row){
|
||||
|
@ -251,7 +253,7 @@ class ActivityItem extends BaseModel
|
|||
|
||||
// 课程存在售后订单则不允许操作
|
||||
$order = Order::where("classes_activity_item_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("{$order['name']}存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
if($order)throw new \Exception("存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ class Order extends BaseModel
|
|||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '5' => __('Status 5'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
}
|
||||
|
||||
public function getBeforeStatusList()
|
||||
|
@ -318,8 +318,8 @@ class Order extends BaseModel
|
|||
if (isset($whereData['status'])) $model = $model->where("{$alisa}status", 'in', $whereData['status']);
|
||||
if (isset($whereData['not_status'])) $model = $model->where("{$alisa}status", 'not in', $whereData['not_status']);
|
||||
|
||||
if (isset($whereData['auth_status'])) $model = $model->where("{$alisa}auth_status", 'in', $whereData['auth_status']);
|
||||
if (isset($whereData['not_auth_status'])) $model = $model->where("{$alisa}auth_status", 'not in', $whereData['not_auth_status']);
|
||||
if (isset($whereData['auth_status']) && $whereData['auth_status']!=="") $model = $model->where("{$alisa}auth_status", 'in', $whereData['auth_status']);
|
||||
if (isset($whereData['not_auth_status'])&& $whereData['not_auth_status']!=="") $model = $model->where("{$alisa}auth_status", 'not in', $whereData['not_auth_status']);
|
||||
|
||||
|
||||
if (isset($whereData['keywords'])&&$whereData['keywords']) $model = $model->where("{$alisa}order_no|{$alisa}pay_no|{$alisa}code", '=', $whereData['keywords']);
|
||||
|
@ -355,7 +355,7 @@ class Order extends BaseModel
|
|||
|
||||
|
||||
|
||||
public static function allList($user_id,$page, $limit,$keywords,$status,$classes_activity_id=[],$has_evaluate=0){
|
||||
public static function allList($user_id,$page, $limit,$keywords,$status,$classes_activity_id=[],$has_evaluate=0,$auth_status=""){
|
||||
$with_field = [
|
||||
'user'=>['nickname','mobile','avatar','realname'],
|
||||
'base'=>['*'],
|
||||
|
@ -370,9 +370,11 @@ class Order extends BaseModel
|
|||
$REFUND = '6';
|
||||
$FINISH = '9';
|
||||
$IN_SERVICE = '4';
|
||||
$IN_REFUND = '5';
|
||||
|
||||
$alisa = (new self)->getWithAlisaName();
|
||||
$sort = "field({$alisa}.status,'{$NOPAY}','{$PAYED}','{$RESERV}','{$FINISH}','{$REFUND}','{$IN_SERVICE}','{$CANCEL}') asc,{$alisa}.id desc";
|
||||
$serch_where = ['status'=>$status,'user_id'=>$user_id,'keywords'=>$keywords,"classes_activity_id"=>$classes_activity_id,"has_evaluate"=>$has_evaluate];
|
||||
$sort = "field({$alisa}.status,'{$NOPAY}','{$PAYED}','{$RESERV}','{$FINISH}','{$REFUND}','{$IN_SERVICE}','{$CANCEL}' ,'{$IN_REFUND}') asc,{$alisa}.id desc";
|
||||
$serch_where = ['status'=>$status,'user_id'=>$user_id,'keywords'=>$keywords,"classes_activity_id"=>$classes_activity_id,"has_evaluate"=>$has_evaluate,"auth_status"=>$auth_status];
|
||||
// if($type)$serch_where['type'] = $type;
|
||||
return (new self)->getBaseList($serch_where, $page, $limit,$sort,$with_field);
|
||||
}
|
||||
|
@ -388,6 +390,8 @@ class Order extends BaseModel
|
|||
$REFUND = '6';
|
||||
$FINISH = '9';
|
||||
$IN_SERVICE = '4';
|
||||
$IN_REFUND = '5';
|
||||
|
||||
$cancel_number = self::getBaseWhere(array_merge(['status'=>$CANCEL],$where))->count();
|
||||
$nopay_number = self::getBaseWhere(array_merge(['status'=>$NOPAY],$where))->count();
|
||||
$payed_number = self::getBaseWhere(array_merge(['status'=>$PAYED],$where))->count();
|
||||
|
@ -395,10 +399,12 @@ class Order extends BaseModel
|
|||
|
||||
|
||||
$retund_number = self::getBaseWhere(array_merge(['status'=>$REFUND],$where))->count();
|
||||
$in_retund_number = self::getBaseWhere(array_merge(['status'=>$IN_REFUND],$where))->count();
|
||||
|
||||
$finish_number = self::getBaseWhere(array_merge(['status'=>$FINISH],$where))->count();
|
||||
$in_service_number = self::getBaseWhere(array_merge(['status'=>$IN_SERVICE],$where))->count();
|
||||
|
||||
return compact('cancel_number','nopay_number','payed_number','in_service_number','retund_number','finish_number','reserv_number');
|
||||
return compact('cancel_number','nopay_number','payed_number','in_service_number','retund_number','in_retund_number','finish_number','reserv_number');
|
||||
}
|
||||
|
||||
|
||||
|
@ -415,7 +421,9 @@ class Order extends BaseModel
|
|||
|
||||
|
||||
|
||||
public static function workList($user_id,$page, $limit,$keywords,$status,$classes_activity_id=[],$classes_activity_ids=[],$has_evaluate=0){
|
||||
public static function workList($user_id,$page, $limit,$keywords,$status,$classes_activity_id=[],$classes_activity_ids=[],$has_evaluate=0,$auth_status=""){
|
||||
if(!$classes_activity_ids) $classes_activity_ids = [-5];
|
||||
|
||||
$with_field = [
|
||||
'user'=>['nickname','mobile','avatar','realname'],
|
||||
'base'=>['*'],
|
||||
|
@ -430,9 +438,10 @@ class Order extends BaseModel
|
|||
$REFUND = '6';
|
||||
$FINISH = '9';
|
||||
$IN_SERVICE = '4';
|
||||
$IN_REFUND = '5';
|
||||
$alisa = (new self)->getWithAlisaName();
|
||||
$sort = "field({$alisa}.status,'{$NOPAY}','{$PAYED}','{$RESERV}','{$FINISH}','{$REFUND}','{$IN_SERVICE}','{$CANCEL}') asc,{$alisa}.id desc";
|
||||
$serch_where = ['status'=>$status,'keywords'=>$keywords,"classes_activity_id"=>$classes_activity_id,"classes_activity_ids"=>$classes_activity_ids];
|
||||
$sort = "field({$alisa}.status,'{$NOPAY}','{$PAYED}','{$RESERV}','{$FINISH}','{$REFUND}','{$IN_SERVICE}','{$CANCEL}','{$IN_REFUND}') asc,{$alisa}.id desc";
|
||||
$serch_where = ['status'=>$status,'keywords'=>$keywords,"classes_activity_id"=>$classes_activity_id,"classes_activity_ids"=>$classes_activity_ids,"auth_status"=>$auth_status];
|
||||
// if($type)$serch_where['type'] = $type;
|
||||
return (new self)->getBaseList($serch_where, $page, $limit,$sort,$with_field);
|
||||
}
|
||||
|
@ -447,6 +456,8 @@ class Order extends BaseModel
|
|||
* @return array
|
||||
*/
|
||||
public static function workCount($classes_activity_id=[],$classes_activity_ids=[]){
|
||||
if(!$classes_activity_ids) $classes_activity_ids = [-5];
|
||||
|
||||
return self::baseCount(["classes_activity_id"=>$classes_activity_id,"classes_activity_ids"=>$classes_activity_ids]);
|
||||
}
|
||||
|
||||
|
@ -1452,6 +1463,28 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
|
||||
/**更新订单结算中状态
|
||||
* @param $order
|
||||
* @return array|false|\PDOStatement|string|Model
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public static function updateExamineFailSettlement($order,$reason,$oper_id = 0,$oper_type='user'){
|
||||
if(is_string($order))$order = self::getHaveExamineOrder($order);
|
||||
$order->status = "5";
|
||||
$order->auth_status = "2";
|
||||
$order->auth_time = time();
|
||||
$order->refundsendtime = time();
|
||||
$order->reason = $reason;
|
||||
$order->auth_user_id = $oper_id;
|
||||
$order->auth_type = $oper_type;
|
||||
$order->save();
|
||||
return $order;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -1517,7 +1550,7 @@ class Order extends BaseModel
|
|||
$order = self::updateExamineFail($order,$reason,$user_id ?: $oper_id,$oper_type);
|
||||
|
||||
//审核失败逻辑
|
||||
OrderLog::log($order['id'],$pron."课程活动单审核不通过,原因;{$reason},该活动单将取消(若已支付将自动退款)以便重新下单",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
OrderLog::log($order['id'],$pron."课程活动单审核不通过,原因;{$reason},该活动单将取消",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
//调用订单事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_activity_order_auth_fail_after', $data);
|
||||
|
@ -1525,6 +1558,16 @@ class Order extends BaseModel
|
|||
$this->cancel($order_no,$user_id,false,$oper_type,$oper_id);
|
||||
}else{
|
||||
//调用退款发起
|
||||
//更新订单状态
|
||||
$order = self::updateExamineFailSettlement($order,$reason,$user_id ?: $oper_id,$oper_type);
|
||||
|
||||
//审核失败逻辑
|
||||
OrderLog::log($order['id'],$pron."课程活动单审核不通过,原因;{$reason},该活动单将自动退款以便重新下单",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
//调用订单事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_activity_order_auth_fail_after', $data);
|
||||
|
||||
|
||||
self::orderRefund($order,$order['sub_refundprice'],$oper_type,$oper_id,$trans=false,$admin=false);
|
||||
}
|
||||
|
||||
|
@ -1553,7 +1596,7 @@ class Order extends BaseModel
|
|||
* @param $trans
|
||||
*/
|
||||
public static function orderRefund($order,$refund_money,$oper_type='user',$oper_id=0,$trans=false,$admin=false){
|
||||
if(is_numeric($order))$order = self::getBaseWhere(['id'=>$order])->find();
|
||||
if(is_numeric($order))$order = self::getHaveRefundOrder($order);
|
||||
if(!$order)throw new \Exception("找不到订单");
|
||||
//判断逻辑
|
||||
if($trans){
|
||||
|
@ -1562,9 +1605,13 @@ class Order extends BaseModel
|
|||
$res = true;
|
||||
try{
|
||||
//生成退款单号
|
||||
if(!$order['refund_no']){
|
||||
$order['refund_no'] = get_order_sn();
|
||||
$order->save();
|
||||
|
||||
}
|
||||
if(!$refund_money)$refund_money = $order['sub_refundprice'];
|
||||
if($refund_money<=0)$refund_money = 0;
|
||||
if(!$refund_money)throw new \Exception("退款金额异常!");
|
||||
//事务逻辑
|
||||
switch ($order['pay_type']) {
|
||||
case "wechat": //微信退款
|
||||
|
@ -1597,6 +1644,13 @@ class Order extends BaseModel
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**微信退款
|
||||
* @param $order
|
||||
* @param $refund_money
|
||||
|
@ -1672,7 +1726,7 @@ class Order extends BaseModel
|
|||
*/
|
||||
public static function getHaveRefundOrder($refund_sn){
|
||||
// $where = [self::STATUS_NOPAY,self::STATUS_PAYED];
|
||||
$order = self::where('refund_no',$refund_sn)->where("sub_refundprice",">",0)->find();
|
||||
$order = self::where('refund_no|order_no|id',$refund_sn)->where('status','5')->where("sub_refundprice",">",0)->find();
|
||||
if(!$order)throw new \Exception("不是可直接退款的订单!");
|
||||
|
||||
return $order;
|
||||
|
@ -1713,7 +1767,7 @@ class Order extends BaseModel
|
|||
* @return bool
|
||||
* @throws \Exception
|
||||
*/
|
||||
public static function refundSuccess($refund_sn,$trans=false){
|
||||
public static function refundSuccess($refund_sn,$refund_json=[],$trans=false){
|
||||
//得到机构售后提交确认订单
|
||||
$order = self::getHaveRefundOrder($refund_sn);
|
||||
|
||||
|
@ -1726,7 +1780,7 @@ class Order extends BaseModel
|
|||
//事务逻辑
|
||||
|
||||
//更新订单状态为同意
|
||||
$order = self::updateRefundOrder($refund_sn);
|
||||
$order = self::updateRefundOrder($refund_sn,$refund_json);
|
||||
|
||||
//插入订单日志
|
||||
OrderLog::log($order['id'],"活动订单退全款已原路退回", 'admin', 0);
|
||||
|
@ -1736,7 +1790,7 @@ class Order extends BaseModel
|
|||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"user_id"=>$order['user_id'],"oper_type"=>'admin',"oper_id"=>0];
|
||||
\think\Hook::listen('classes_activity_order_auth_success_after', $data);
|
||||
\think\Hook::listen('classes_activity_order_refund_success_after', $data);
|
||||
|
||||
|
||||
|
||||
|
@ -1755,4 +1809,144 @@ class Order extends BaseModel
|
|||
|
||||
|
||||
|
||||
/**订单退款失败记录
|
||||
* @param $order
|
||||
* @param $refund_money
|
||||
* @param $trans
|
||||
*/
|
||||
public static function orderRefundFail($order,$msg,$oper_type='user',$oper_id=0,$trans=false,$admin=false){
|
||||
if(is_numeric($order))$order = self::getOrder($order);
|
||||
if(!$order)throw new \Exception("找不到订单");
|
||||
//判断逻辑
|
||||
if($trans){
|
||||
self::beginTrans();
|
||||
}
|
||||
$res = true;
|
||||
try{
|
||||
|
||||
//事务逻辑
|
||||
$order->refund_error = $msg;
|
||||
$order->save();
|
||||
//插入订单日志
|
||||
OrderLog::log($order['id'],"活动订单退款失败:".$msg, $oper_type, $oper_id);
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"user_id"=>$order['user_id'],"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_activity_order_refund_fail_after', $data);
|
||||
|
||||
if($trans){
|
||||
self::commitTrans();
|
||||
}
|
||||
}catch (\Exception $e){
|
||||
if($trans){
|
||||
self::rollbackTrans();
|
||||
}
|
||||
throw new \Exception($e->getMessage());
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**更新订单核销状态
|
||||
* @param $order
|
||||
* @return array|false|\PDOStatement|string|Model
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public static function updateVerification($order,$oper_id = 0,$oper_type='user'){
|
||||
if(is_string($order))$order = self::getHaveVerificationOrder($order);
|
||||
$order->status = "9";//refund_status
|
||||
$order->verification_user_id = $oper_id;
|
||||
$order->verification_type = $oper_type;
|
||||
$order->finishtime = time();
|
||||
$order->save();
|
||||
return $order;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**得到可核销订单
|
||||
* @param $order_no
|
||||
* @return array|false|\PDOStatement|string|Model
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public static function getHaveVerificationOrder($order_no){
|
||||
// $where = [self::STATUS_NOPAY,self::STATUS_PAYED];
|
||||
$order = self::where('order_no|id|code',$order_no)->where("status","in",["3"])->find();
|
||||
if(!$order)throw new \Exception("不是待核销的订单!");
|
||||
|
||||
return $order;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**订单核销
|
||||
* @param $order_no
|
||||
* @param int $user_id
|
||||
* @param bool $check
|
||||
* @param bool $trans
|
||||
* @return bool
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function verification($order_no,$user_id=0,$check=false,$oper_type='user',$oper_id=0,$trans=false){
|
||||
//得到可取消订单
|
||||
$order = self::getHaveVerificationOrder($order_no);
|
||||
if($check){
|
||||
//用户操作权限检测
|
||||
self::checkOptionAuth($order['id'],$user_id ?: $oper_id,$oper_type);
|
||||
|
||||
// self::serverCheck($order['classes_order_id']);
|
||||
|
||||
}
|
||||
|
||||
//判断逻辑
|
||||
if($trans){
|
||||
self::beginTrans();
|
||||
}
|
||||
$res = true;
|
||||
try{
|
||||
//事务逻辑
|
||||
//更新订单状态
|
||||
//如果没有审核,先审核成功再核销
|
||||
// if($order["status"] == '2'){
|
||||
// $order = $this->examine($order_no,'1',"",$user_id,$check,$oper_type,$oper_id);
|
||||
// }
|
||||
$order = self::updateVerification($order,$user_id ?: $oper_id,$oper_type);
|
||||
//插入订单取消日志
|
||||
if(!$user_id ||$order["user_id"] !=$user_id ){
|
||||
OrderLog::log($order['id'],"[员工操作]活动单核销成功,当前活动已完成",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
}else{
|
||||
OrderLog::log($order['id'],"活动单核销成功,当前活动已完成",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_activity_order_finish_after', $data);
|
||||
//执行课时数更新
|
||||
self::statisticsAndUpdateClassesNumber($order['id']);
|
||||
|
||||
|
||||
if($trans){
|
||||
self::commitTrans();
|
||||
}
|
||||
}catch (\Exception $e){
|
||||
if($trans){
|
||||
self::rollbackTrans();
|
||||
}
|
||||
throw new \Exception($e->getMessage());
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ class OrderLog extends BaseModel
|
|||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'),'5' => __('Status 5'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -346,7 +346,11 @@ class Order extends BaseModel
|
|||
|
||||
|
||||
|
||||
public static function workList($page, $limit,$keywords,$status,$classes_order_id=0,$user_id=0,$classes_lib_id = [],$classes_lib_ids = [],$start_time = null,$createtime = null,$time=null){
|
||||
public static function workList($page, $limit,$keywords,$status,$classes_order_id=0,$user_id=0,$classes_lib_id = [],$classes_lib_ids = [],$start_time = null,$createtime = null,$time=null,$shop_id=0){
|
||||
if(!$classes_lib_ids) $classes_lib_ids = [-5];
|
||||
|
||||
// var_dump($classes_lib_ids);die;
|
||||
|
||||
$with_field = [
|
||||
'user'=>['nickname','mobile','avatar','realname'],
|
||||
'base'=>['*'],
|
||||
|
@ -356,12 +360,13 @@ class Order extends BaseModel
|
|||
$CANCEL = '-3';
|
||||
$NOAUDIT = '-1';
|
||||
$HAVE = '0';
|
||||
|
||||
// var_dump($classes_lib_ids);die;
|
||||
$FINISH = '3';
|
||||
$alisa = (new self)->getWithAlisaName();
|
||||
$sort = "field({$alisa}.status,'{$NOAUDIT}','{$HAVE}','{$FINISH}','{$CANCEL}') asc,{$alisa}.id desc";
|
||||
$serch_where = ['status'=>$status,'user_id'=>$user_id,'keywords'=>$keywords,'classes_order_id'=>$classes_order_id,"classes_lib_id"=>$classes_lib_id,"classes_lib_ids"=>$classes_lib_ids,"start_time"=>$start_time,"createtime"=>$createtime,"time"=>$time];
|
||||
// if($type)$serch_where['type'] = $type;
|
||||
$serch_where = ['status'=>$status,'user_id'=>$user_id,'keywords'=>$keywords,'classes_order_id'=>$classes_order_id,"classes_lib_id"=>$classes_lib_id,"classes_lib_ids"=>$classes_lib_ids,"start_time"=>$start_time,"createtime"=>$createtime,"time"=>$time,"shop_id"=>$shop_id];
|
||||
|
||||
|
||||
return (new self)->getBaseList($serch_where, $page, $limit,$sort,$with_field);
|
||||
}
|
||||
|
||||
|
@ -372,8 +377,9 @@ class Order extends BaseModel
|
|||
* @param int $user_id
|
||||
* @return array
|
||||
*/
|
||||
public static function workCount($classes_lib_id = [],$classes_lib_ids = [],$classes_order_id=0){
|
||||
return self::baseCount(['classes_lib_id'=>$classes_lib_id,'classes_order_id'=>$classes_order_id,"classes_lib_ids"=>$classes_lib_ids]);
|
||||
public static function workCount($classes_lib_id = [],$classes_lib_ids = [],$classes_order_id=0,$shop_id=0){
|
||||
if(!$classes_lib_ids) $classes_lib_ids = [-5];
|
||||
return self::baseCount(['classes_lib_id'=>$classes_lib_id,'classes_order_id'=>$classes_order_id,"classes_lib_ids"=>$classes_lib_ids,"shop_id"=>$shop_id]);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -973,6 +973,8 @@ class Order extends BaseModel
|
|||
|
||||
|
||||
public static function workList($user_id,$page, $limit,$keywords,$status,$classes_lib_id=[],$classes_lib_ids=[],$has_evaluate=0){
|
||||
|
||||
if(!$classes_lib_ids) $classes_lib_ids = [-5];
|
||||
$with_field = [
|
||||
'user'=>['nickname','mobile','avatar','realname'],
|
||||
'base'=>['*'],
|
||||
|
@ -1004,6 +1006,7 @@ class Order extends BaseModel
|
|||
* @return array
|
||||
*/
|
||||
public static function workCount($classes_lib_id=[],$classes_lib_ids=[]){
|
||||
if(!$classes_lib_ids) $classes_lib_ids = [-5];
|
||||
return self::baseCount(["classes_lib_id"=>$classes_lib_id,"classes_lib_ids"=>$classes_lib_ids]);
|
||||
}
|
||||
|
||||
|
|
|
@ -791,6 +791,8 @@ class ServiceOrder extends BaseModel
|
|||
|
||||
|
||||
public static function workList($page, $limit,$keywords,$status,$service_stauts,$sales_type,$classes_order_id=[],$classes_order_detail_id=[],$classes_lib_id=[],$classes_lib_ids=[]){
|
||||
if(!$classes_lib_ids) $classes_lib_ids = [-5];
|
||||
|
||||
$with_field = [
|
||||
'user'=>['nickname','mobile','avatar','realname'],
|
||||
'base'=>['*'],
|
||||
|
@ -817,6 +819,8 @@ class ServiceOrder extends BaseModel
|
|||
* @return array
|
||||
*/
|
||||
public static function workCount($classes_order_id=0,$classes_lib_id=[],$classes_lib_ids=[]){
|
||||
if(!$classes_lib_ids) $classes_lib_ids = [-5];
|
||||
|
||||
return self::baseCount(["classes_lib_id"=>$classes_lib_id,"classes_lib_ids"=>$classes_lib_ids,"classes_order_id"=>$classes_order_id]);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,219 @@
|
|||
<?php
|
||||
|
||||
namespace app\common\model\school\help;
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\Model;
|
||||
use traits\model\SoftDelete;
|
||||
|
||||
class Article extends BaseModel
|
||||
{
|
||||
|
||||
use SoftDelete;
|
||||
|
||||
|
||||
|
||||
// 表名
|
||||
protected $name = 'school_help_article';
|
||||
|
||||
// 自动写入时间戳字段
|
||||
protected $autoWriteTimestamp = 'integer';
|
||||
|
||||
// 定义时间戳字段名
|
||||
protected $createTime = false;
|
||||
protected $updateTime = 'updatetime';
|
||||
protected $deleteTime = 'deletetime';
|
||||
|
||||
// 追加属性
|
||||
protected $append = [
|
||||
'status_text',
|
||||
'hot_text',
|
||||
'start_time_text'
|
||||
];
|
||||
|
||||
|
||||
protected static function init()
|
||||
{
|
||||
self::afterInsert(function ($row) {
|
||||
if (!$row['weigh']) {
|
||||
$pk = $row->getPk();
|
||||
$row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['1' => __('Status 1'), '2' => __('Status 2')];
|
||||
}
|
||||
|
||||
public function getHotList()
|
||||
{
|
||||
return ['0' => __('Hot 0'), '1' => __('Hot 1')];
|
||||
}
|
||||
|
||||
|
||||
public function getStatusTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
|
||||
$list = $this->getStatusList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
public function getHotTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['hot']) ? $data['hot'] : '');
|
||||
$list = $this->getHotList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
public function getStartTimeTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['start_time']) ? $data['start_time'] : '');
|
||||
return is_numeric($value) ? date("Y-m-d H:i:s", $value) : $value;
|
||||
}
|
||||
|
||||
protected function setStartTimeAttr($value)
|
||||
{
|
||||
return $value === '' ? null : ($value && !is_numeric($value) ? strtotime($value) : $value);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**得到基础条件
|
||||
* @param $status
|
||||
* @param null $model
|
||||
* @param string $alisa
|
||||
*/
|
||||
public static function getBaseWhere($whereData = [], $model = null, $alisa = '',$with = false)
|
||||
{
|
||||
|
||||
if (!$model) {
|
||||
$model = new static;
|
||||
if ($alisa&&!$with) $model = $model->alias($alisa);
|
||||
}
|
||||
if ($alisa) $alisa = $alisa . '.';
|
||||
$tableFields = (new static)->getTableFields();
|
||||
foreach ($tableFields as $fields)
|
||||
{
|
||||
if(in_array($fields, ['status',"help_cate_ids"]))continue;
|
||||
// if (isset($whereData[$fields]) && $whereData[$fields]) $model = $model->where("{$alisa}{$fields}", '=', $whereData[$fields]);
|
||||
|
||||
if (isset($whereData[$fields]) && $whereData[$fields]){
|
||||
if(is_array($whereData[$fields])){
|
||||
$model = $model->where("{$alisa}{$fields}", $whereData[$fields][0], $whereData[$fields][1]);
|
||||
}else{
|
||||
$model = $model->where("{$alisa}{$fields}", '=', $whereData[$fields]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if (isset($whereData['status']) && $whereData['status']) $model = $model->where("{$alisa}status", 'in', $whereData['status']);
|
||||
if (isset($whereData['not_status']) && $whereData['not_status']) $model = $model->where("{$alisa}status", 'not in', $whereData['not_status']);
|
||||
|
||||
|
||||
if (isset($whereData['keywords'])&&$whereData['keywords']) $model = $model->where("{$alisa}title|{$alisa}content", 'like', "%". $whereData['keywords']."%");
|
||||
if (isset($whereData['time'])&&$whereData['time']){
|
||||
$model = $model->time(["{$alisa}start_time",$whereData['time']]);
|
||||
}
|
||||
|
||||
if (isset($whereData['help_cate_ids']) && $whereData['help_cate_ids']){
|
||||
$help_cate_ids = implode("|",explode(',',$whereData['help_cate_ids']));
|
||||
$model = $model->whereRaw(" {$alisa}help_cate_ids REGEXP '({$help_cate_ids})'");
|
||||
}
|
||||
|
||||
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static function articleList($page, $limit,$params=[]){
|
||||
$with_field = [
|
||||
'base'=>['*'],
|
||||
];
|
||||
$alisa = (new self)->getWithAlisaName();
|
||||
$sort = "{$alisa}.hot desc,{$alisa}.weigh desc,{$alisa}.id desc";
|
||||
$serch_where = ["status"=>'1'];
|
||||
$serch_where = array_merge($serch_where,$params);
|
||||
return (new self)->getBaseList($serch_where, $page, $limit,$sort,$with_field);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** 文章详情
|
||||
* @param $id
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public function detail($id,$user_id=0,$oper_type='user',$trans=false){
|
||||
$self = self::get($id);
|
||||
if(!$self) throw new \Exception("未找到相关数据");
|
||||
if($self["status"] != 1) throw new \Exception("未找到相关数据");
|
||||
|
||||
if($user_id){
|
||||
// if($self["user_id"] != $user_id) throw new \Exception("非法访问");
|
||||
}
|
||||
|
||||
// $self->getRelation('user')->visible(['nickname','realname','mobile','avatar']);
|
||||
// $self->getRelation('shop')->visible(['name','logo']);
|
||||
// $self->getRelation('lib')->visible(['title','headimage']);
|
||||
// $self->getRelation('classesorder')->visible(['order_no']);
|
||||
// $self->getRelation('teacher')->visible(['name',"head_image"]);
|
||||
//增加浏览量
|
||||
$this->setViews($id,$user_id,$oper_type,$user_id,$trans);
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
|
||||
/**设置浏览量
|
||||
* @param $id
|
||||
* @param int $user_id
|
||||
* @param bool $check
|
||||
* @param bool $trans
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function setViews($id,$user_id,$oper_type='user',$oper_id=0,$trans=false){
|
||||
$classes_lib = self::where("id",$id)->find();
|
||||
if(!$classes_lib)throw new \Exception("找不到活动!");
|
||||
//判断逻辑
|
||||
if($trans){
|
||||
self::beginTrans();
|
||||
}
|
||||
|
||||
try{
|
||||
//事务逻辑
|
||||
$classes_lib->views = $classes_lib->views + 1;
|
||||
//查询是否已收藏
|
||||
$classes_lib->save();
|
||||
|
||||
//调用事件
|
||||
$data = ['help_article' => $classes_lib,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('help_article_view_after', $data);
|
||||
|
||||
|
||||
if($trans){
|
||||
self::commitTrans();
|
||||
}
|
||||
}catch (\Exception $e){
|
||||
if($trans){
|
||||
self::rollbackTrans();
|
||||
}
|
||||
throw new \Exception($e->getMessage());
|
||||
}
|
||||
return $classes_lib;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,133 @@
|
|||
<?php
|
||||
|
||||
namespace app\common\model\school\help;
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\Model;
|
||||
use traits\model\SoftDelete;
|
||||
|
||||
class Cate extends BaseModel
|
||||
{
|
||||
|
||||
use SoftDelete;
|
||||
|
||||
|
||||
|
||||
// 表名
|
||||
protected $name = 'school_help_cate';
|
||||
|
||||
// 自动写入时间戳字段
|
||||
protected $autoWriteTimestamp = 'integer';
|
||||
|
||||
// 定义时间戳字段名
|
||||
protected $createTime = 'createtime';
|
||||
protected $updateTime = 'updatetime';
|
||||
protected $deleteTime = 'deletetime';
|
||||
|
||||
// 追加属性
|
||||
protected $append = [
|
||||
'status_text'
|
||||
];
|
||||
|
||||
|
||||
protected static function init()
|
||||
{
|
||||
self::afterInsert(function ($row) {
|
||||
if (!$row['weigh']) {
|
||||
$pk = $row->getPk();
|
||||
$row->getQuery()->where($pk, $row[$pk])->update(['weigh' => $row[$pk]]);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['1' => __('Status 1'), '2' => __('Status 2')];
|
||||
}
|
||||
|
||||
|
||||
public function getStatusTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
|
||||
$list = $this->getStatusList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
public function parent()
|
||||
{
|
||||
return $this->belongsTo(self::class, 'pid', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**得到基础条件
|
||||
* @param $status
|
||||
* @param null $model
|
||||
* @param string $alisa
|
||||
*/
|
||||
public static function getBaseWhere($whereData = [], $model = null, $alisa = '',$with = false)
|
||||
{
|
||||
|
||||
if (!$model) {
|
||||
$model = new static;
|
||||
if ($alisa&&!$with) $model = $model->alias($alisa);
|
||||
}
|
||||
if ($alisa) $alisa = $alisa . '.';
|
||||
$tableFields = (new static)->getTableFields();
|
||||
foreach ($tableFields as $fields)
|
||||
{
|
||||
if(in_array($fields, ['status',"id","pid"]))continue;
|
||||
// if (isset($whereData[$fields]) && $whereData[$fields]) $model = $model->where("{$alisa}{$fields}", '=', $whereData[$fields]);
|
||||
|
||||
if (isset($whereData[$fields]) && $whereData[$fields]){
|
||||
if(is_array($whereData[$fields])){
|
||||
$model = $model->where("{$alisa}{$fields}", $whereData[$fields][0], $whereData[$fields][1]);
|
||||
}else{
|
||||
$model = $model->where("{$alisa}{$fields}", '=', $whereData[$fields]);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if (isset($whereData['status']) && $whereData['status']) $model = $model->where("{$alisa}status", 'in', $whereData['status']);
|
||||
if (isset($whereData['not_status']) && $whereData['not_status']) $model = $model->where("{$alisa}status", 'not in', $whereData['not_status']);
|
||||
|
||||
|
||||
if (isset($whereData['keywords'])&&$whereData['keywords']) $model = $model->where("{$alisa}name", 'like', "%". $whereData['keywords']."%");
|
||||
if (isset($whereData['time'])&&$whereData['time']){
|
||||
$model = $model->time(["{$alisa}start_time",$whereData['time']]);
|
||||
}
|
||||
|
||||
if (isset($whereData['id']) && $whereData['id']){
|
||||
$model = $model->where("{$alisa}id", 'in', $whereData['id']);
|
||||
}
|
||||
|
||||
if (isset($whereData['pid']) && $whereData['pid']){
|
||||
$model = $model->where("{$alisa}pid", 'in', $whereData['pid']);
|
||||
}
|
||||
|
||||
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static function cateList($page, $limit,$params=[]){
|
||||
$with_field = [
|
||||
'base'=>['*'],
|
||||
];
|
||||
$alisa = (new self)->getWithAlisaName();
|
||||
$sort = "{$alisa}.weigh desc,{$alisa}.id desc";
|
||||
$serch_where = ["status"=>'1'];
|
||||
$serch_where = array_merge($serch_where,$params);
|
||||
return (new self)->getBaseList($serch_where, $page, $limit,$sort,$with_field);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -199,7 +199,7 @@ class ClassesLib extends ManystoreBase
|
|||
}
|
||||
|
||||
protected function no_auth_fields_check($params,$row){
|
||||
|
||||
if($this->no_auth_fields == "*")return $this->have_auth;
|
||||
foreach ($params as $k=>$v){
|
||||
|
||||
//说明数值有变动
|
||||
|
@ -370,7 +370,7 @@ class ClassesLib extends ManystoreBase
|
|||
//因为是批量添加,所有规格重新进行检测,防止出现时间重叠
|
||||
$specss = \app\common\model\school\classes\ClassesSpec::where("classes_lib_id",$this->model["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\ClassesSpec)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
@ -530,7 +530,7 @@ class ClassesLib extends ManystoreBase
|
|||
//因为是批量添加,所有规格重新进行检测,防止出现时间重叠
|
||||
$specss = \app\common\model\school\classes\ClassesSpec::where("classes_lib_id",$row["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\ClassesSpec)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
|
|
@ -95,28 +95,6 @@ class ClassesSpec extends ManystoreBase
|
|||
}
|
||||
|
||||
|
||||
protected function no_auth_fields_check($params,$row){
|
||||
|
||||
foreach ($params as $k=>$v){
|
||||
|
||||
//说明数值有变动
|
||||
//$params[$k] 去掉两端空格
|
||||
$params[$k] = trim($v);
|
||||
|
||||
if($row[$k]!=$params[$k]){
|
||||
//当修改参数不在允许修改的字段中
|
||||
if(!in_array($k,$this->no_auth_fields)){
|
||||
|
||||
$this->have_auth = true;break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $this->have_auth;
|
||||
|
||||
}
|
||||
|
||||
protected function updateCheck($id,$params=[],$row=null){
|
||||
if($params && $row){
|
||||
|
|
|
@ -77,6 +77,8 @@ class Activity extends ManystoreBase
|
|||
{
|
||||
//当前是否为关联查询
|
||||
$this->relationSearch = true;
|
||||
$this->searchFields = ["id","title","address","address_detail","address_city","manystoreshop.name"];
|
||||
|
||||
//设置过滤方法
|
||||
$this->request->filter(['strip_tags', 'trim']);
|
||||
if ($this->request->isAjax()) {
|
||||
|
@ -167,8 +169,8 @@ class Activity extends ManystoreBase
|
|||
}
|
||||
|
||||
// 课程存在售后订单则不允许操作
|
||||
$order = Order::where("classes_activity_item_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("{$order['name']}存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
$order = Order::where("classes_activity_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
}
|
||||
|
||||
|
||||
|
@ -196,6 +198,7 @@ class Activity extends ManystoreBase
|
|||
$this->need_auth = $classesLib->need_auth;
|
||||
$this->have_auth = $classesLib->have_auth;
|
||||
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
@ -229,7 +232,7 @@ class Activity extends ManystoreBase
|
|||
$params = $this->request->post("row/a");
|
||||
if ($params) {
|
||||
$params = $this->preExcludeFields($params);
|
||||
|
||||
$this->error(__('添加功能已被禁用!', ''));
|
||||
if($this->storeIdFieldAutoFill && STORE_ID ){
|
||||
$params['store_id'] = STORE_ID;
|
||||
}
|
||||
|
@ -266,7 +269,7 @@ class Activity extends ManystoreBase
|
|||
//因为是批量添加,所有规格重新进行检测,防止出现时间重叠
|
||||
$specss = \app\common\model\school\classes\activity\ActivityItem::where("classes_activity_id",$this->model["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\activity\ActivityItem)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
@ -323,10 +326,12 @@ class Activity extends ManystoreBase
|
|||
$row->validateFailException(true)->validate($validate);
|
||||
}
|
||||
$this->update_check($params,$row);
|
||||
|
||||
if($this->have_auth){
|
||||
(new \app\common\model\school\classes\activity\Activity)->applyAuth($row["id"],$params);
|
||||
$result = true;
|
||||
}else{
|
||||
// var_dump($this->have_auth);
|
||||
|
||||
$spec = $params["item_json"] ?? [];
|
||||
|
||||
|
@ -365,7 +370,7 @@ class Activity extends ManystoreBase
|
|||
$specss = \app\common\model\school\classes\activity\ActivityItem::where("classes_activity_id",$row["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\activity\ActivityItem)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
|
|
@ -73,6 +73,7 @@ class ActivityAuth extends ManystoreBase
|
|||
{
|
||||
//当前是否为关联查询
|
||||
$this->relationSearch = true;
|
||||
$this->searchFields = ["id","classes_activity_id","title","address","address_detail","address_city","manystoreshop.name"];
|
||||
//设置过滤方法
|
||||
$this->request->filter(['strip_tags', 'trim']);
|
||||
if ($this->request->isAjax()) {
|
||||
|
@ -148,8 +149,8 @@ class ActivityAuth extends ManystoreBase
|
|||
}
|
||||
|
||||
// 课程存在售后订单则不允许操作
|
||||
$order = Order::where("classes_activity_item_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("{$order['name']}存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
$order = Order::where("classes_activity_id",$id)->where("status","not in","-3,6,9")->find();
|
||||
if($order)throw new \Exception("存在正在使用中的订单报名学员,规格无法继续操作,如规格有误请下架!");
|
||||
}
|
||||
|
||||
|
||||
|
@ -238,7 +239,18 @@ class ActivityAuth extends ManystoreBase
|
|||
$this->update_check($params,$row=null);
|
||||
$spec = $params["item_json"];
|
||||
unset($params["item_json"]);
|
||||
// $params["status"] = "2";
|
||||
$result = $this->model->allowField(true)->save($params);
|
||||
// $this->model = new \app\manystore\model\school\classes\activity\Activity;
|
||||
// $this->itemmodel = new \app\manystore\model\school\classes\activity\ActivityItem();
|
||||
|
||||
$activity = \app\manystore\model\school\classes\activity\Activity::where("title",$params["title"])->find();
|
||||
if(!$activity){
|
||||
$params["status"] = "3";
|
||||
$params["classes_activity_auth_id"] = $this->model["id"];
|
||||
$activity = new \app\manystore\model\school\classes\activity\Activity;
|
||||
$result2 = $activity->allowField(true)->save($params);
|
||||
}
|
||||
|
||||
//添加课程规格
|
||||
foreach ($spec as $k=>$v){
|
||||
|
@ -251,12 +263,15 @@ class ActivityAuth extends ManystoreBase
|
|||
|
||||
unset($v["id"]);
|
||||
(new \app\common\model\school\classes\activity\ActivityItemAuth())->allowField(true)->save($v);
|
||||
if(isset($result2)){
|
||||
(new \app\common\model\school\classes\activity\ActivityItem())->allowField(true)->save($v);
|
||||
}
|
||||
}
|
||||
|
||||
//因为是批量添加,所有规格重新进行检测,防止出现时间重叠
|
||||
$specss = \app\common\model\school\classes\activity\ActivityItemAuth::where("classes_activity_auth_id",$this->model["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\activity\ActivityItemAuth)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
@ -358,7 +373,7 @@ class ActivityAuth extends ManystoreBase
|
|||
$specss = \app\common\model\school\classes\activity\ActivityItemAuth::where("classes_activity_auth_id",$row["id"])->select();
|
||||
foreach ($specss as $k=>$specs){
|
||||
|
||||
$params =$specs;
|
||||
$params =$specs->toArray();
|
||||
(new \app\common\model\school\classes\activity\ActivityItemAuth)->specCheck($params,null,$specs);
|
||||
}
|
||||
|
||||
|
|
|
@ -48,6 +48,8 @@ class Order extends ManystoreBase
|
|||
{
|
||||
//当前是否为关联查询
|
||||
$this->relationSearch = true;
|
||||
$this->searchFields = ["id","refund_error","code","refund_no","order_no","pay_no","user_id","orderitem.name","schoolclassesactivityorderdetail.title","user.nickname","user.realname","user.mobile","manystoreshop.name"];
|
||||
|
||||
//设置过滤方法
|
||||
$this->request->filter(['strip_tags', 'trim']);
|
||||
if ($this->request->isAjax()) {
|
||||
|
@ -58,7 +60,7 @@ class Order extends ManystoreBase
|
|||
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
|
||||
|
||||
$list = $this->model
|
||||
->with(['user','manystore','manystoreshop','schoolclassesactivity','schoolclassesactivityorderdetail'])
|
||||
->with(['user',"orderitem",'manystore','manystoreshop','schoolclassesactivity','schoolclassesactivityorderdetail'])
|
||||
->where($where)
|
||||
->order($sort, $order)
|
||||
->paginate($limit);
|
||||
|
@ -70,6 +72,7 @@ class Order extends ManystoreBase
|
|||
$row->getRelation('manystoreshop')->visible(['name','logo']);
|
||||
$row->getRelation('schoolclassesactivity')->visible(['title','headimage']);
|
||||
$row->getRelation('schoolclassesactivityorderdetail')->visible(['title','headimage']);
|
||||
$row->getRelation('orderitem')->visible(['name','price','feel']);
|
||||
}
|
||||
|
||||
$result = array("total" => $list->total(), "rows" => $list->items());
|
||||
|
@ -79,4 +82,130 @@ class Order extends ManystoreBase
|
|||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 课程订单取消
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\db\exception\BindParamException
|
||||
* @throws \think\exception\DbException
|
||||
* @throws \think\exception\PDOException
|
||||
*/
|
||||
public function cancel($ids = ''){
|
||||
$param = $this->request->param();
|
||||
if($this->request->isPost()){
|
||||
try{
|
||||
if(isset($param['ids']))$ids = $param['ids'];
|
||||
//设置模拟资格
|
||||
$model = (new \app\common\model\school\classes\activity\order\Order);
|
||||
$model->cancel($ids,0,true,'shop',$this->auth->id,true);;
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('取消成功!');
|
||||
}
|
||||
$row = $this->model->get($ids);
|
||||
$this->view->assign('vo', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**预约审核
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public function examine($ids = ""){
|
||||
|
||||
if($this->request->isPost())
|
||||
{
|
||||
try{
|
||||
$params = $this->request->post("row/a");
|
||||
|
||||
|
||||
$auth_status = $params["auth_status"];
|
||||
$reason = $params["reason"];
|
||||
$model = (new \app\common\model\school\classes\activity\order\Order);
|
||||
$model->examine($params["id"],$auth_status,$reason,0,true,'shop',$this->auth->id,true);
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
|
||||
$this->success("已完成审核");
|
||||
}
|
||||
|
||||
$row = $this->model->where(array('id'=>$ids))->find();
|
||||
if (!$row) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
// $row = $this->model->get($param['ids']);
|
||||
$this->view->assign('row', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 后台核销
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\db\exception\BindParamException
|
||||
* @throws \think\exception\DbException
|
||||
* @throws \think\exception\PDOException
|
||||
*/
|
||||
public function verification($ids = ''){
|
||||
$param = $this->request->param();
|
||||
if($this->request->isPost()){
|
||||
try{
|
||||
if(isset($param['ids']))$ids = $param['ids'];
|
||||
//设置模拟资格
|
||||
$model = (new \app\common\model\school\classes\activity\order\Order);
|
||||
$model->verification($ids,0,true,'shop',$this->auth->id,true);
|
||||
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('核销成功!');
|
||||
}
|
||||
$row = $this->model->get($ids);
|
||||
$this->view->assign('vo', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 退款重试
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\db\exception\BindParamException
|
||||
* @throws \think\exception\DbException
|
||||
* @throws \think\exception\PDOException
|
||||
*/
|
||||
public function refund($ids = ''){
|
||||
$param = $this->request->param();
|
||||
if($this->request->isPost()){
|
||||
try{
|
||||
if(isset($param['ids']))$ids = $param['ids'];
|
||||
//设置模拟资格
|
||||
$model = (new \app\common\model\school\classes\activity\order\Order);
|
||||
$model->orderRefund($ids,null,'shop',$this->auth->id,true);
|
||||
|
||||
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('已重新发起退款,如果是第三方支付请等待回调!');
|
||||
}
|
||||
$row = $this->model->get($ids);
|
||||
$this->view->assign('vo', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -101,7 +101,7 @@ class Order extends ManystoreBase
|
|||
if(isset($param['ids']))$ids = $param['ids'];
|
||||
//设置模拟资格
|
||||
$model = (new \app\common\model\school\classes\order\Order);
|
||||
$model->cancel($ids,0,true,'shop',$this->auth->id,true);;
|
||||
$model->cancel($ids,0,true,'shop',$this->auth->id,true);
|
||||
|
||||
|
||||
}catch (\Exception $e){
|
||||
|
|
|
@ -58,8 +58,8 @@ class User extends ManystoreBase
|
|||
list($where, $sort, $order, $offset, $limit) = $this->buildparams();
|
||||
// $where[] = [$aliasName.'shop_id','eq',SHOP_ID];
|
||||
$user_ids = Order::where("shop_id",SHOP_ID)->where("status","<>","-3")->column("user_id");
|
||||
|
||||
|
||||
$activity_user_ids = \app\manystore\model\school\classes\activity\order\Order::where("shop_id",SHOP_ID)->where("status","<>","-3")->column("user_id");
|
||||
$user_ids = array_merge($user_ids ,$activity_user_ids);
|
||||
$list = $this->model
|
||||
->where($where)
|
||||
->where("id","in",$user_ids)
|
||||
|
|
|
@ -68,6 +68,6 @@ return [
|
|||
'Has_expire' => '活动是否过期',
|
||||
'Has_expire 1' => '往期活动',
|
||||
'Has_expire 2' => '进行中活动',
|
||||
'OK' => '确认提交审核',
|
||||
'OK' => '确认',
|
||||
'Has_sign_expire' => '报名是否过期',
|
||||
];
|
||||
|
|
|
@ -76,5 +76,5 @@ return [
|
|||
'Has_expire' => '是否过期',
|
||||
'Has_expire 1' => '往期活动',
|
||||
'Has_expire 2' => '进行中活动',
|
||||
'OK' => '确认提交重新审核',
|
||||
'OK' => '确认提交',
|
||||
];
|
||||
|
|
|
@ -23,6 +23,7 @@ return [
|
|||
'Status 2' => '已报名待审核',
|
||||
'Status 3' => '已预约',
|
||||
'Status 4' => '售后中',
|
||||
'Status 5' => '退款结算中',
|
||||
'Status 6' => '已退款',
|
||||
'Status 9' => '已完成',
|
||||
'Before_status' => '售后前状态',
|
||||
|
@ -70,5 +71,9 @@ return [
|
|||
'Schoolclassesactivity.title' => '标题',
|
||||
'Schoolclassesactivity.headimage' => '头图',
|
||||
'Schoolclassesactivityorderdetail.title' => '标题',
|
||||
'Schoolclassesactivityorderdetail.headimage' => '头图'
|
||||
'Schoolclassesactivityorderdetail.headimage' => '头图',
|
||||
'Orderitem.name' => '活动规格',
|
||||
'Feel' => '是否免费',
|
||||
'Feel 0' => '否',
|
||||
'Feel 1' => '是',
|
||||
];
|
||||
|
|
|
@ -8,6 +8,7 @@ return [
|
|||
'Status 2' => '已报名待审核',
|
||||
'Status 3' => '已预约',
|
||||
'Status 4' => '售后中',
|
||||
'Status 5' => '退款结算中',
|
||||
'Status 6' => '已退款',
|
||||
'Status 9' => '已完成',
|
||||
'Log_text' => '记录内容',
|
||||
|
|
|
@ -50,7 +50,7 @@ class Order extends Model
|
|||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '5' => __('Status 5'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
}
|
||||
|
||||
public function getBeforeStatusList()
|
||||
|
@ -209,4 +209,9 @@ class Order extends Model
|
|||
{
|
||||
return $this->belongsTo(OrderDetail::class, 'activity_order_detail_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
|
||||
public function orderitem()
|
||||
{
|
||||
return $this->belongsTo(OrderItem::class, 'activity_order_item_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,7 +32,7 @@ class OrderLog extends Model
|
|||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
return ['-3' => __('Status -3'), '0' => __('Status 0'), '2' => __('Status 2'), '3' => __('Status 3'), '4' => __('Status 4'),'5' => __('Status 5'), '6' => __('Status 6'), '9' => __('Status 9')];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:690*482 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -34,6 +35,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -185,12 +187,12 @@
|
|||
<input id="c-price" data-rule="required" class="form-control" step="0.01" name="row[price]" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('People_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-people_num" class="form-control" name="row[people_num]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('People_num')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-people_num" class="form-control" name="row[people_num]" type="number" value="0">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Item')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:690*482 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -33,6 +34,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -177,12 +179,12 @@
|
|||
<input id="c-price" data-rule="required" class="form-control" step="0.01" name="row[price]" type="number" value="{$row.price|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('People_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-people_num" class="form-control" name="row[people_num]" type="number" value="{$row.people_num|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('People_num')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-people_num" class="form-control" name="row[people_num]" type="number" value="{$row.people_num|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Item')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
@ -270,7 +272,7 @@
|
|||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('提交审核')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:690*482 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -34,6 +35,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -283,7 +285,7 @@
|
|||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('提交审核')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:690*482 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -52,6 +53,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -289,7 +291,7 @@
|
|||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('重新提交审核')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -1,98 +1,109 @@
|
|||
<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
{if condition="$row.refund_error"}
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('三方支付退款错误信息')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<!-- <input id="c-refund_error" class="form-control" readonly disabled name="row[refund_error]" type="text" value="{$row.refund_error|htmlentities}">-->
|
||||
<span style="color: red">{$row.refund_error}</span>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Order_no')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-order_no" class="form-control" name="row[order_no]" type="text" value="{$row.order_no|htmlentities}">
|
||||
<input id="c-order_no" readonly disabled class="form-control" name="row[order_no]" type="text" value="{$row.order_no|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pay_no')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-pay_no" class="form-control" name="row[pay_no]" type="text" value="{$row.pay_no|htmlentities}">
|
||||
<input id="c-pay_no" readonly disabled class="form-control" name="row[pay_no]" type="text" value="{$row.pay_no|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('User_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-user_id" data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Manystore_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-manystore_id" data-rule="required" data-source="manystore/index" class="form-control selectpage" name="row[manystore_id]" type="text" value="{$row.manystore_id|htmlentities}">
|
||||
<input id="c-user_id" readonly disabled data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Manystore_id')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-manystore_id" data-rule="required" data-source="manystore/index" class="form-control selectpage" name="row[manystore_id]" type="text" value="{$row.manystore_id|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Code')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-code" class="form-control" name="row[code]" type="text" value="{$row.code|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Codeimage')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-codeimage" class="form-control" size="50" name="row[codeimage]" type="text" value="{$row.codeimage|htmlentities}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-codeimage" class="btn btn-danger faupload" data-input-id="c-codeimage" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-codeimage"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-codeimage" class="btn btn-primary fachoose" data-input-id="c-codeimage" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-codeimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-codeimage"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Codeoneimage')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-codeoneimage" class="form-control" size="50" name="row[codeoneimage]" type="text" value="{$row.codeoneimage|htmlentities}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-codeoneimage" class="btn btn-danger faupload" data-input-id="c-codeoneimage" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-codeoneimage"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-codeoneimage" class="btn btn-primary fachoose" data-input-id="c-codeoneimage" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-codeoneimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-codeoneimage"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_activity_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_activity_id" data-rule="required" data-source="classes/activity/index" class="form-control selectpage" name="row[classes_activity_id]" type="text" value="{$row.classes_activity_id|htmlentities}">
|
||||
<input id="c-code" class="form-control" readonly disabled name="row[code]" type="text" value="{$row.code|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Codeimage')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <div class="input-group">-->
|
||||
<!-- <input id="c-codeimage" class="form-control" readonly disabled size="50" name="row[codeimage]" type="text" value="{$row.codeimage|htmlentities}">-->
|
||||
<!-- <div class="input-group-addon no-border no-padding">-->
|
||||
<!-- <span><button type="button" id="faupload-codeimage" class="btn btn-danger faupload" data-input-id="c-codeimage" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-codeimage"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>-->
|
||||
<!-- <span><button type="button" id="fachoose-codeimage" class="btn btn-primary fachoose" data-input-id="c-codeimage" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <span class="msg-box n-right" for="c-codeimage"></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <ul class="row list-inline faupload-preview" id="p-codeimage"></ul>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Codeoneimage')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <div class="input-group">-->
|
||||
<!-- <input id="c-codeoneimage" class="form-control" readonly disabled size="50" name="row[codeoneimage]" type="text" value="{$row.codeoneimage|htmlentities}">-->
|
||||
<!-- <div class="input-group-addon no-border no-padding">-->
|
||||
<!-- <span><button type="button" id="faupload-codeoneimage" class="btn btn-danger faupload" data-input-id="c-codeoneimage" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-codeoneimage"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>-->
|
||||
<!-- <span><button type="button" id="fachoose-codeoneimage" class="btn btn-primary fachoose" data-input-id="c-codeoneimage" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <span class="msg-box n-right" for="c-codeoneimage"></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <ul class="row list-inline faupload-preview" id="p-codeoneimage"></ul>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_activity_id')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_activity_id" data-rule="required" data-source="school/classes/activity/activity/index" data-field="title" class="form-control selectpage" name="row[classes_activity_id]" type="text" value="{$row.classes_activity_id|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Activity_order_detail_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-activity_order_detail_id" data-rule="required" data-source="activity/order/detail/index" class="form-control selectpage" name="row[activity_order_detail_id]" type="text" value="{$row.activity_order_detail_id|htmlentities}">
|
||||
<input id="c-activity_order_detail_id" readonly disabled data-rule="required" data-source="school/classes/activity/order/order_detail/index" data-field="title" class="form-control selectpage" name="row[activity_order_detail_id]" type="text" value="{$row.activity_order_detail_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Beforeprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-beforeprice" class="form-control" step="0.01" name="row[beforeprice]" type="number" value="{$row.beforeprice|htmlentities}">
|
||||
<input id="c-beforeprice" class="form-control" readonly disabled step="0.01" name="row[beforeprice]" type="number" value="{$row.beforeprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Totalprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-totalprice" class="form-control" step="0.01" name="row[totalprice]" type="number" value="{$row.totalprice|htmlentities}">
|
||||
<input id="c-totalprice" class="form-control" readonly disabled step="0.01" name="row[totalprice]" type="number" value="{$row.totalprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Payprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-payprice" class="form-control" step="0.01" name="row[payprice]" type="number" value="{$row.payprice|htmlentities}">
|
||||
<input id="c-payprice" class="form-control" readonly disabled step="0.01" name="row[payprice]" type="number" value="{$row.payprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pay_type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-pay_type" class="form-control selectpicker" name="row[pay_type]">
|
||||
<select id="c-pay_type" readonly disabled class="form-control selectpicker" name="row[pay_type]">
|
||||
{foreach name="payTypeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$row.pay_type"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
|
@ -106,7 +117,7 @@
|
|||
|
||||
<div class="radio">
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" readonly disabled name="row[status]" type="radio" value="{$key}" {in name="key" value="$row.status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
|
@ -118,7 +129,7 @@
|
|||
|
||||
<div class="radio">
|
||||
{foreach name="beforeStatusList" item="vo"}
|
||||
<label for="row[before_status]-{$key}"><input id="row[before_status]-{$key}" name="row[before_status]" type="radio" value="{$key}" {in name="key" value="$row.before_status"}checked{/in} /> {$vo}</label>
|
||||
<label for="row[before_status]-{$key}"><input id="row[before_status]-{$key}" readonly disabled name="row[before_status]" type="radio" value="{$key}" {in name="key" value="$row.before_status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
|
@ -130,7 +141,7 @@
|
|||
|
||||
<div class="radio">
|
||||
{foreach name="serverStatusList" item="vo"}
|
||||
<label for="row[server_status]-{$key}"><input id="row[server_status]-{$key}" name="row[server_status]" type="radio" value="{$key}" {in name="key" value="$row.server_status"}checked{/in} /> {$vo}</label>
|
||||
<label for="row[server_status]-{$key}"><input id="row[server_status]-{$key}" readonly disabled name="row[server_status]" type="radio" value="{$key}" {in name="key" value="$row.server_status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
|
@ -139,95 +150,95 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Canceltime')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-canceltime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[canceltime]" type="text" value="{:$row.canceltime?datetime($row.canceltime):''}">
|
||||
<input id="c-canceltime" class="form-control datetimepicker" readonly disabled data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[canceltime]" type="text" value="{:$row.canceltime?datetime($row.canceltime):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Paytime')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-paytime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[paytime]" type="text" value="{:$row.paytime?datetime($row.paytime):''}">
|
||||
<input id="c-paytime" class="form-control datetimepicker" readonly disabled data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[paytime]" type="text" value="{:$row.paytime?datetime($row.paytime):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-auth_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[auth_time]" type="text" value="{:$row.auth_time?datetime($row.auth_time):''}">
|
||||
<input id="c-auth_time" class="form-control datetimepicker" readonly disabled data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[auth_time]" type="text" value="{:$row.auth_time?datetime($row.auth_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Reservation_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-reservation_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[reservation_time]" type="text" value="{:$row.reservation_time?datetime($row.reservation_time):''}">
|
||||
<input id="c-reservation_time" class="form-control datetimepicker" readonly disabled data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[reservation_time]" type="text" value="{:$row.reservation_time?datetime($row.reservation_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Finishtime')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-finishtime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[finishtime]" type="text" value="{:$row.finishtime?datetime($row.finishtime):''}">
|
||||
<input id="c-finishtime" class="form-control datetimepicker" readonly disabled data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[finishtime]" type="text" value="{:$row.finishtime?datetime($row.finishtime):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Refundtime')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-refundtime" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[refundtime]" type="text" value="{:$row.refundtime?datetime($row.refundtime):''}">
|
||||
<input id="c-refundtime" class="form-control datetimepicker" readonly disabled data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[refundtime]" type="text" value="{:$row.refundtime?datetime($row.refundtime):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Total_refundprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-total_refundprice" class="form-control" step="0.01" name="row[total_refundprice]" type="number" value="{$row.total_refundprice|htmlentities}">
|
||||
<input id="c-total_refundprice" class="form-control" readonly disabled step="0.01" name="row[total_refundprice]" type="number" value="{$row.total_refundprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Real_refundprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-real_refundprice" class="form-control" step="0.01" name="row[real_refundprice]" type="number" value="{$row.real_refundprice|htmlentities}">
|
||||
<input id="c-real_refundprice" class="form-control" readonly disabled step="0.01" name="row[real_refundprice]" type="number" value="{$row.real_refundprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Sub_refundprice')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-sub_refundprice" class="form-control" step="0.01" name="row[sub_refundprice]" type="number" value="{$row.sub_refundprice|htmlentities}">
|
||||
<input id="c-sub_refundprice" class="form-control" readonly disabled step="0.01" name="row[sub_refundprice]" type="number" value="{$row.sub_refundprice|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Pay_json')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<dl class="fieldlist" data-name="row[pay_json]">
|
||||
<dd>
|
||||
<ins>{:__('Key')}</ins>
|
||||
<ins>{:__('Value')}</ins>
|
||||
</dd>
|
||||
<dd><a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>
|
||||
<textarea name="row[pay_json]" class="form-control hide" cols="30" rows="5">{$row.pay_json|htmlentities}</textarea>
|
||||
</dl>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Pay_json')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- -->
|
||||
<!-- <dl class="fieldlist" data-name="row[pay_json]">-->
|
||||
<!-- <dd>-->
|
||||
<!-- <ins>{:__('Key')}</ins>-->
|
||||
<!-- <ins>{:__('Value')}</ins>-->
|
||||
<!-- </dd>-->
|
||||
<!-- <dd><a href="javascript:;" class="btn btn-sm btn-success btn-append"><i class="fa fa-plus"></i> {:__('Append')}</a></dd>-->
|
||||
<!-- <textarea name="row[pay_json]" class="form-control hide" cols="30" rows="5">{$row.pay_json|htmlentities}</textarea>-->
|
||||
<!-- </dl>-->
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Platform')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-platform" class="form-control" name="row[platform]" type="text" value="{$row.platform|htmlentities}">
|
||||
<input id="c-platform" class="form-control" name="row[platform]" readonly disabled type="text" value="{$row.platform|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Verification_user_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-verification_user_id" data-rule="required" data-source="verification/user/index" class="form-control selectpage" name="row[verification_user_id]" type="text" value="{$row.verification_user_id|htmlentities}">
|
||||
<input id="c-verification_user_id" data-rule="required" readonly disabled class="form-control" name="row[verification_user_id]" type="text" value="{$row.verification_user_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Verification_type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-verification_type" class="form-control" name="row[verification_type]" type="text" value="{$row.verification_type|htmlentities}">
|
||||
<input id="c-verification_type" class="form-control" readonly disabled name="row[verification_type]" type="text" value="{$row.verification_type|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Reason')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-reason" class="form-control" name="row[reason]" type="text" value="{$row.reason|htmlentities}">
|
||||
<input id="c-reason" class="form-control" readonly disabled name="row[reason]" type="text" value="{$row.reason|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -236,7 +247,7 @@
|
|||
|
||||
<div class="radio">
|
||||
{foreach name="authStatusList" item="vo"}
|
||||
<label for="row[auth_status]-{$key}"><input id="row[auth_status]-{$key}" name="row[auth_status]" type="radio" value="{$key}" {in name="key" value="$row.auth_status"}checked{/in} /> {$vo}</label>
|
||||
<label for="row[auth_status]-{$key}"><input readonly disabled id="row[auth_status]-{$key}" name="row[auth_status]" type="radio" value="{$key}" {in name="key" value="$row.auth_status"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
|
@ -245,20 +256,29 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_user_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-auth_user_id" data-rule="required" data-source="auth/user/index" class="form-control selectpage" name="row[auth_user_id]" type="text" value="{$row.auth_user_id|htmlentities}">
|
||||
<input id="c-auth_user_id" data-rule="required" class="form-control" name="row[auth_user_id]" type="text" value="{$row.auth_user_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-auth_type" class="form-control" name="row[auth_type]" type="text" value="{$row.auth_type|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
<input id="c-auth_type" class="form-control" readonly disabled name="row[auth_type]" type="text" value="{$row.auth_type|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('三方支付退款错误信息')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-refund_error" class="form-control" readonly disabled name="row[refund_error]" type="text" value="{$row.refund_error|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
|
||||
|
||||
|
||||
<!-- <div class="form-group layer-footer">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2"></label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>-->
|
||||
<!-- <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
</form>
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
<form id="examine-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
<fieldset>
|
||||
<legend><h4>预约报名资格审核,如果您审核不通过,请您填写审核失败原因告知对方!</h4></legend>
|
||||
<div class="form-group">
|
||||
<input name="row[id]" type="hidden" value="{$row.id}">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="authStatusList" item="vo"}
|
||||
<label for="row[auth_status]-{$key}"><input id="row[auth_status]-{$key}" name="row[auth_status]" type="radio" value="{$key}" {in name="key" value="0"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Reason')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-reason" class="form-control" name="row[reason]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
||||
<div class="form-group layer-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="button" id="examine" data-type="examine" class="btn btn-success btn-embossed">确认提交审核结果</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
|
@ -17,23 +17,23 @@
|
|||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- <div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order/multi')?'':'hide'}">-->
|
||||
<!-- <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>-->
|
||||
<!-- <ul class="dropdown-menu text-left" role="menu">-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order/recyclebin')?'':'hide'}" href="school/classes/activity/order/order/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
<!-- <a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order/recyclebin')?'':'hide'}" href="school/classes/activity/order/order/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>-->
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/activity/order/order/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/activity/order/order/del')}"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -17,23 +17,23 @@
|
|||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_detail/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_detail/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_detail/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_detail/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_detail/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_detail/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_detail/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- <div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_detail/multi')?'':'hide'}">-->
|
||||
<!-- <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>-->
|
||||
<!-- <ul class="dropdown-menu text-left" role="menu">-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_detail/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_detail/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
<!-- <a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_detail/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_detail/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>-->
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/activity/order/order_detail/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/activity/order/order_detail/del')}"
|
||||
data-operate-edit="0"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -17,23 +17,23 @@
|
|||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_item/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_item/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_item/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_item/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_item/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_item/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_item/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- <div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_item/multi')?'':'hide'}">-->
|
||||
<!-- <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>-->
|
||||
<!-- <ul class="dropdown-menu text-left" role="menu">-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_item/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_item/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
<!-- <a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_item/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_item/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>-->
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/activity/order/order_item/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/activity/order/order_item/del')}"
|
||||
data-operate-edit="0"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -17,23 +17,23 @@
|
|||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_log/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_log/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_log/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/activity/order/order_log/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('school/classes/activity/order/order_log/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>-->
|
||||
<!-- <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/activity/order/order_log/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_log/multi')?'':'hide'}">
|
||||
<a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
|
||||
<ul class="dropdown-menu text-left" role="menu">
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
|
||||
<li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<!-- <div class="dropdown btn-group {:$auth->check('school/classes/activity/order/order_log/multi')?'':'hide'}">-->
|
||||
<!-- <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>-->
|
||||
<!-- <ul class="dropdown-menu text-left" role="menu">-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>-->
|
||||
<!-- <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>-->
|
||||
<!-- </ul>-->
|
||||
<!-- </div>-->
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_log/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_log/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>
|
||||
<!-- <a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/activity/order/order_log/recyclebin')?'':'hide'}" href="school/classes/activity/order/order_log/recyclebin" title="{:__('Recycle bin')}"><i class="fa fa-recycle"></i> {:__('Recycle bin')}</a>-->
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/activity/order/order_log/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/activity/order/order_log/del')}"
|
||||
data-operate-edit="0"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -106,6 +106,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:280*200 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -120,6 +121,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -253,18 +255,18 @@
|
|||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -141,6 +141,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:280*200 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -155,6 +156,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -290,18 +292,18 @@
|
|||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text" value="{$row.classes_date_text|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text" value="{$row.classes_time_text|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text" value="{$row.classes_date_text|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text" value="{$row.classes_time_text|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -141,6 +141,7 @@
|
|||
<span class="msg-box n-right" for="c-headimage"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-headimage"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:280*200 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -155,6 +156,7 @@
|
|||
<span class="msg-box n-right" for="c-images"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-images"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:750*450 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -290,18 +292,18 @@
|
|||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text" value="{$row.classes_date_text|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text" value="{$row.classes_time_text|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_date_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_date_text" class="form-control" name="row[classes_date_text]" type="text" value="{$row.classes_date_text|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_time_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_time_text" class="form-control" name="row[classes_time_text]" type="text" value="{$row.classes_time_text|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Content')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
<span class="msg-box n-right" for="c-head_image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-head_image"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:200*250 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -73,6 +74,7 @@
|
|||
<span class="msg-box n-right" for="c-expert_image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-expert_image"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:200*250 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
<span class="msg-box n-right" for="c-head_image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-head_image"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:200*250 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -70,6 +71,7 @@
|
|||
<span class="msg-box n-right" for="c-expert_image"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-expert_image"></ul>
|
||||
<span style="color: red"><br> ( 推荐图片尺寸:200*250 )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
|
||||
|
||||
var Controller = {
|
||||
index: function () {
|
||||
// 初始化表格参数配置
|
||||
Table.api.init();
|
||||
this.table.first();
|
||||
this.table.second();
|
||||
},
|
||||
table: {
|
||||
first: function () {
|
||||
// 表格1
|
||||
var table1 = $("#table1");
|
||||
table1.bootstrapTable({
|
||||
url: 'example/tablelink/table1',
|
||||
toolbar: '#toolbar1',
|
||||
sortName: 'id',
|
||||
search: false,
|
||||
columns: [
|
||||
[
|
||||
// {field: 'state', checkbox: true,},
|
||||
{field: 'id', title: 'ID'},
|
||||
{field: 'username', title: __('Nickname')},
|
||||
{
|
||||
field: 'operate', title: __('Operate'), table: table1, events: Table.api.events.operate, buttons: [
|
||||
{
|
||||
name: 'log',
|
||||
title: '日志列表',
|
||||
text: '日志列表',
|
||||
icon: 'fa fa-list',
|
||||
classname: 'btn btn-primary btn-xs btn-click',
|
||||
click: function (e, data) {
|
||||
$("#myTabContent2 .form-commonsearch input[name='username']").val(data.username);
|
||||
$("#myTabContent2 .btn-refresh").trigger("click");
|
||||
}
|
||||
}
|
||||
], formatter: Table.api.formatter.operate
|
||||
}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
||||
// 为表格1绑定事件
|
||||
Table.api.bindevent(table1);
|
||||
},
|
||||
second: function () {
|
||||
// 表格2
|
||||
var table2 = $("#table2");
|
||||
table2.bootstrapTable({
|
||||
url: 'example/tablelink/table2',
|
||||
extend: {
|
||||
index_url: '',
|
||||
add_url: '',
|
||||
edit_url: '',
|
||||
del_url: '',
|
||||
multi_url: '',
|
||||
table: '',
|
||||
},
|
||||
toolbar: '#toolbar2',
|
||||
sortName: 'id',
|
||||
search: false,
|
||||
columns: [
|
||||
[
|
||||
{field: 'state', checkbox: true,},
|
||||
{field: 'id', title: 'ID'},
|
||||
{field: 'username', title: __('Nickname')},
|
||||
{field: 'title', title: __('Title')},
|
||||
{field: 'url', title: __('Url'), align: 'left', formatter: Table.api.formatter.url},
|
||||
{field: 'ip', title: __('ip')},
|
||||
{field: 'createtime', title: __('Createtime'), formatter: Table.api.formatter.datetime, operate: 'RANGE', addclass: 'datetimerange', sortable: true},
|
||||
]
|
||||
]
|
||||
});
|
||||
|
||||
// 为表格2绑定事件
|
||||
Table.api.bindevent(table2);
|
||||
}
|
||||
},
|
||||
};
|
||||
return Controller;
|
||||
});
|
|
@ -123,6 +123,21 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
{
|
||||
name: 'activity',
|
||||
text: __('机构线上活动'),
|
||||
title: __('机构线上活动'),
|
||||
classname: 'btn btn-dialog',
|
||||
icon: 'fa fa-leanpub',
|
||||
dropdown : '更多',
|
||||
url: activity_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.paytime;
|
||||
// }
|
||||
},
|
||||
|
||||
{
|
||||
name: 'teacher',
|
||||
|
@ -199,6 +214,21 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
{
|
||||
name: 'activity_order',
|
||||
text: __('机构活动订单'),
|
||||
title: __('机构活动订单'),
|
||||
classname: 'btn btn-dialog',
|
||||
icon: 'fa fa-cart-arrow-down',
|
||||
dropdown : '更多',
|
||||
url: activity_order_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
{
|
||||
name: 'user_auth',
|
||||
text: __('机构授权用户'),
|
||||
|
@ -381,23 +411,31 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
|
||||
|
||||
var order_url = function (row,dom) {
|
||||
return 'school/classes/order/order/index?shop_id='+row.id;
|
||||
return 'school/classes/order/order/index?shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
//hourorder_url
|
||||
var hourorder_url = function (row,dom) {
|
||||
return 'school/classes/hourorder/order/index?shop_id='+row.id;
|
||||
return 'school/classes/hourorder/order/index?shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
var user_auth_url = function (row,dom) {
|
||||
return 'manystore/user_auth/index?shop_id='+row.id;
|
||||
return 'manystore/user_auth/index?shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
var evaluate_url= function (row,dom) {
|
||||
return 'school/classes/evaluate/index?shop_id='+row.id;
|
||||
return 'school/classes/evaluate/index?shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
|
||||
var activity_order_url = function (row,dom) {
|
||||
return 'school/classes/activity/order/order/index?shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
var activity_url = function (row,dom) {
|
||||
return 'school/classes/activity/activity/index?shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
|
||||
var generrate = {
|
||||
listen:function () {
|
||||
|
|
|
@ -28,8 +28,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
[
|
||||
{checkbox: true},
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'manystore_id', title: __('Manystore_id')},
|
||||
{field: 'shop_id', title: __('Shop_id')},
|
||||
{field: 'manystore_id',visible:false, title: __('Manystore_id')},
|
||||
{field: 'shop_id',visible:false, title: __('Shop_id')},
|
||||
{field: 'title', title: __('Title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'headimage', title: __('Headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
||||
|
@ -57,7 +57,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
{field: 'sign_start_time', title: __('Sign_start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'sign_end_time', title: __('Sign_end_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'price', title: __('Price'), operate:'BETWEEN'},
|
||||
{field: 'people_num', title: __('People_num')},
|
||||
// {field: 'people_num', title: __('People_num')},
|
||||
{field: 'item', title: __('Item'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'weigh', title: __('Weigh'), operate: false},
|
||||
{field: 'recommend', title: __('Recommend'), searchList: {"0":__('Recommend 0'),"1":__('Recommend 1')}, formatter: Table.api.formatter.normal},
|
||||
|
@ -94,6 +94,22 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
{
|
||||
name: 'order',
|
||||
text: __('活动订单'),
|
||||
title: __('活动订单'),
|
||||
classname: 'btn btn-dialog',
|
||||
icon: 'fa fa-cart-arrow-down',
|
||||
dropdown : '更多',
|
||||
url: order_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
|
||||
{
|
||||
name: 'manystore',
|
||||
text: __('查看机构'),
|
||||
|
@ -363,5 +379,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
return 'school/classes/activity/activity_auth/edit/ids/'+row.classes_activity_auth_id;
|
||||
}
|
||||
|
||||
var order_url = function (row,dom) {
|
||||
return 'school/classes/activity/order/order/index?classes_activity_id='+row.id;
|
||||
}
|
||||
|
||||
return Controller;
|
||||
});
|
||||
|
|
|
@ -28,9 +28,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
[
|
||||
{checkbox: true},
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'classes_activity_id', title: __('Classes_activity_id')},
|
||||
{field: 'manystore_id', title: __('Manystore_id')},
|
||||
{field: 'shop_id', title: __('Shop_id')},
|
||||
{field: 'classes_activity_id',visible:false, title: __('Classes_activity_id')},
|
||||
{field: 'manystore_id',visible:false, title: __('Manystore_id')},
|
||||
{field: 'shop_id',visible:false, title: __('Shop_id')},
|
||||
{field: 'title', title: __('Title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'headimage', title: __('Headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue