1,完成总后台分后台订单所有特权逻辑
2,完成站内信接口和后台管理 3,完成站内信每个流程的埋点和通知 4,对接测试订单预约流程完成
This commit is contained in:
parent
23f8715a95
commit
35904ee8be
|
@ -58,6 +58,8 @@ class Index extends Backend
|
|||
$this->shopModel = new ManystoreShop();
|
||||
$this->view->assign("statusList", $this->shopModel->getStatusList());
|
||||
$this->view->assign("typeList", $this->shopModel->getTypeList());
|
||||
$this->view->assign("shop_backend_url", config("site.shop_backend_url"));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -190,11 +192,11 @@ class Index extends Backend
|
|||
if($params["status"] == 'hidden')$params["status"] = 'normal';
|
||||
|
||||
//当前密码
|
||||
$password = $params['password'] ? $params['password'] : \app\common\model\dyqc\ManystoreShop::getDefaultPassword($params["type"],$params["user_id"],$params);
|
||||
// $password = $params['password'] ? $params['password'] : \app\common\model\dyqc\ManystoreShop::getDefaultPassword($params["type"],$params["user_id"],$params);
|
||||
|
||||
//调用通过事件
|
||||
$data = ['shop' => $row,"password"=>$password];
|
||||
\think\Hook::listen('shop_auth_success_after', $data);
|
||||
// $data = ['shop' => $row,"password"=>$password];
|
||||
// \think\Hook::listen('shop_auth_success_after', $data);
|
||||
|
||||
|
||||
}
|
||||
|
@ -203,8 +205,8 @@ class Index extends Backend
|
|||
$params["status"] = 'hidden';
|
||||
//调用通过事件
|
||||
//调用通过事件
|
||||
$data = ['shop' => $row];
|
||||
\think\Hook::listen('shop_auth_fail_after', $data);
|
||||
// $data = ['shop' => $row];
|
||||
// \think\Hook::listen('shop_auth_fail_after', $data);
|
||||
|
||||
}
|
||||
|
||||
|
@ -403,6 +405,21 @@ class Index extends Backend
|
|||
$this->error(__("修改商家信息资料失败"));
|
||||
}
|
||||
|
||||
if($this->success_auth){
|
||||
//当前密码
|
||||
$password = $params['password'] ? $params['password'] : \app\common\model\dyqc\ManystoreShop::getDefaultPassword($params["type"],$params["user_id"],$params);
|
||||
//调用通过事件
|
||||
$data = ['shop' => $row,"password"=>$password];
|
||||
\think\Hook::listen('shop_auth_success_after', $data);
|
||||
}
|
||||
if($this->error_auth){
|
||||
|
||||
//调用通过事件
|
||||
$data = ['shop' => $row];
|
||||
\think\Hook::listen('shop_auth_fail_after', $data);
|
||||
}
|
||||
|
||||
|
||||
if ($params['password']) {
|
||||
if (!Validate::is($params['password'], '\S{6,16}')) {
|
||||
$this->error(__("Please input correct password"));
|
||||
|
|
|
@ -25,6 +25,7 @@ class Message extends Backend
|
|||
$this->view->assign("platformList", $this->model->getPlatformList());
|
||||
$this->view->assign("operTypeList", $this->model->getOperTypeList());
|
||||
$this->view->assign("toTypeList", $this->model->getToTypeList());
|
||||
$this->view->assign("typeList", $this->model->getTypeList());
|
||||
$this->view->assign("statusList", $this->model->getStatusList());
|
||||
$this->view->assign("miniTypeList", $this->model->getMiniTypeList());
|
||||
}
|
||||
|
|
|
@ -40,6 +40,7 @@ class ClassesLib extends Backend
|
|||
protected $have_auth = false;
|
||||
|
||||
protected $success_auth = false;
|
||||
protected $error_auth = false;
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
|
@ -130,11 +131,29 @@ class ClassesLib extends Backend
|
|||
//审核通过
|
||||
$this->success_auth = true;
|
||||
}
|
||||
|
||||
if($params["auth_status"] == '2'){
|
||||
//审核通过
|
||||
$this->error_auth = true;
|
||||
}
|
||||
}
|
||||
//审核通过
|
||||
if($this->success_auth){
|
||||
//如果是平台下架,则更新成正常下架
|
||||
if($params["status"] == '3') $params["status"] = '2';
|
||||
|
||||
//调用通过事件
|
||||
// $data = ['shop' => $row];
|
||||
// \think\Hook::listen('classes_auth_success_after', $data);
|
||||
}
|
||||
|
||||
|
||||
if($this->error_auth){
|
||||
|
||||
//调用通过事件
|
||||
// $data = ['shop' => $row];
|
||||
// \think\Hook::listen('classes_auth_fail_after', $data);
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
|
@ -387,6 +406,31 @@ class ClassesLib extends Backend
|
|||
}
|
||||
$this->update_check($params,$row);
|
||||
$result = $row->allowField(true)->save($params);
|
||||
|
||||
|
||||
if($this->success_auth){
|
||||
//调用通过事件
|
||||
$data = ['classes' => $row];
|
||||
\think\Hook::listen('classes_auth_success_after', $data);
|
||||
}
|
||||
|
||||
|
||||
if($this->error_auth){
|
||||
//调用通过事件
|
||||
$data = ['classes' => $row];
|
||||
\think\Hook::listen('classes_auth_fail_after', $data);
|
||||
|
||||
}
|
||||
// protected $have_auth = false;
|
||||
if($this->have_auth){
|
||||
//调用通过事件
|
||||
$data = ['classes' => $row];
|
||||
\think\Hook::listen('classes_auth_need_after', $data);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Db::commit();
|
||||
} catch (ValidateException|PDOException|Exception $e) {
|
||||
Db::rollback();
|
||||
|
|
|
@ -3,6 +3,12 @@
|
|||
namespace app\admin\controller\school\classes\hourorder;
|
||||
|
||||
use app\common\controller\Backend;
|
||||
use think\Db;
|
||||
use think\db\exception\DataNotFoundException;
|
||||
use think\db\exception\ModelNotFoundException;
|
||||
use think\exception\DbException;
|
||||
use think\exception\PDOException;
|
||||
use think\exception\ValidateException;
|
||||
|
||||
/**
|
||||
* 课时订单
|
||||
|
@ -18,11 +24,16 @@ class Order extends Backend
|
|||
*/
|
||||
protected $model = null;
|
||||
|
||||
protected $qSwitch = true;
|
||||
protected $qFields = ["classes_order_id","classes_lib_spec_id","user_id","classes_order_detail_id","classes_lib_id"];
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
parent::_initialize();
|
||||
$this->model = new \app\admin\model\school\classes\hourorder\Order;
|
||||
parent::_initialize();
|
||||
|
||||
$this->view->assign("statusList", $this->model->getStatusList());
|
||||
$this->view->assign("authStatusList", $this->model->getAuthStatusList());
|
||||
}
|
||||
|
||||
|
||||
|
@ -72,4 +83,242 @@ class Order extends Backend
|
|||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
if (false === $this->request->isPost()) {
|
||||
return $this->view->fetch();
|
||||
}
|
||||
$params = $this->request->post('row/a');
|
||||
if (empty($params)) {
|
||||
$this->error(__('Parameter %s can not be empty', ''));
|
||||
}
|
||||
$params = $this->preExcludeFields($params);
|
||||
|
||||
if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
|
||||
$params[$this->dataLimitField] = $this->auth->id;
|
||||
}
|
||||
$result = false;
|
||||
|
||||
try {
|
||||
//是否采用模型验证
|
||||
if ($this->modelValidate) {
|
||||
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
|
||||
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;
|
||||
$this->model->validateFailException()->validate($validate);
|
||||
}
|
||||
|
||||
//记录代下单人信息
|
||||
$param = [
|
||||
"type" =>'2',
|
||||
"help_user_id" =>$this->auth->id,
|
||||
"help_type" => 'admin',
|
||||
];
|
||||
//确认订单
|
||||
$res = (new \app\common\model\school\classes\hourorder\Order)->confirm($this->auth->id,$params['classes_order_id'],null, $params['classes_lib_spec_id'],$param, true);
|
||||
$remark = "总后台管理员帮忙下课时预约";
|
||||
//创建订单
|
||||
$result = (new \app\common\model\school\classes\hourorder\Order)->cacheCreateOrder($res['order_no'], $this->auth->id,$remark, true);
|
||||
|
||||
|
||||
|
||||
} catch (ValidateException|PDOException|\Exception $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
if ($result === false) {
|
||||
$this->error(__('No rows were inserted'));
|
||||
}
|
||||
$this->success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*
|
||||
* @param $ids
|
||||
* @return string
|
||||
* @throws DbException
|
||||
* @throws \think\Exception
|
||||
*/
|
||||
public function edit($ids = null)
|
||||
{
|
||||
$row = $this->model->get($ids);
|
||||
if (!$row) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
$adminIds = $this->getDataLimitAdminIds();
|
||||
if (is_array($adminIds) && !in_array($row[$this->dataLimitField], $adminIds)) {
|
||||
$this->error(__('You have no permission'));
|
||||
}
|
||||
if (false === $this->request->isPost()) {
|
||||
$this->view->assign('row', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
$params = $this->request->post('row/a');
|
||||
if (empty($params)) {
|
||||
$this->error(__('Parameter %s can not be empty', ''));
|
||||
}
|
||||
$params = $this->preExcludeFields($params);
|
||||
$result = false;
|
||||
|
||||
try {
|
||||
//是否采用模型验证
|
||||
if ($this->modelValidate) {
|
||||
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
|
||||
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
|
||||
$row->validateFailException()->validate($validate);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//记录代下单人信息
|
||||
|
||||
//修改订单课时
|
||||
$result = (new \app\common\model\school\classes\hourorder\Order)->updateClassesSpec($row["id"],$params["classes_lib_spec_id"],0,true,'admin',$this->auth->id,true);
|
||||
|
||||
|
||||
|
||||
} catch (ValidateException|PDOException|\Exception $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
if (false === $result) {
|
||||
$this->error(__('No rows were updated'));
|
||||
}
|
||||
$this->success();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param $ids
|
||||
* @return void
|
||||
* @throws DbException
|
||||
* @throws DataNotFoundException
|
||||
* @throws ModelNotFoundException
|
||||
*/
|
||||
public function del($ids = null)
|
||||
{
|
||||
if (false === $this->request->isPost()) {
|
||||
$this->error(__("Invalid parameters"));
|
||||
}
|
||||
$ids = $ids ?: $this->request->post("ids");
|
||||
if (empty($ids)) {
|
||||
$this->error(__('Parameter %s can not be empty', 'ids'));
|
||||
}
|
||||
$pk = $this->model->getPk();
|
||||
$adminIds = $this->getDataLimitAdminIds();
|
||||
if (is_array($adminIds)) {
|
||||
$this->model->where($this->dataLimitField, 'in', $adminIds);
|
||||
}
|
||||
$list = $this->model->where($pk, 'in', $ids)->select();
|
||||
|
||||
$count = 0;
|
||||
|
||||
try {
|
||||
foreach ($list as $item) {
|
||||
$res = (new \app\common\model\school\classes\hourorder\Order)->cancel($item["id"],0,true,'admin',$this->auth->id,true);
|
||||
$count++;
|
||||
}
|
||||
|
||||
} catch (PDOException|\Exception $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
if ($count) {
|
||||
$this->success();
|
||||
}
|
||||
$this->error(__('No rows were deleted'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**预约审核
|
||||
* @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\hourorder\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\hourorder\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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -77,4 +77,32 @@ 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\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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -247,4 +247,33 @@ class User extends Backend
|
|||
return json(['list' => $list, 'total' => $total]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**变更学员信息(教练专属)
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public function changeuser(){
|
||||
if($this->request->isPost())
|
||||
{
|
||||
try{
|
||||
$people_name = $this->request->param('people_name/s');
|
||||
$people_mobile = $this->request->param('people_mobile/s');
|
||||
$user = \app\common\model\User::where("mobile",$people_mobile)->find();
|
||||
//检测更新教练下单学员账号创建状态 2022/8/27 new
|
||||
if(!$user)$user = (new \app\common\model\User)->addUserByMobile($people_mobile,$people_name);
|
||||
$user['nickname'] = $people_name;
|
||||
$user->save();
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
//退押金
|
||||
$this->success("已成功创建{$people_name}");
|
||||
}
|
||||
// $row = $this->model->get($param['ids']);
|
||||
// $this->view->assign('vo', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ return [
|
|||
'Manystore_id' => '机构账号id',
|
||||
'Shop_id' => '机构店铺id',
|
||||
'User_id' => '主讲师用户id',
|
||||
'Classes_cate_ids' => '平台课程分类ids',
|
||||
'Classes_label_ids' => '平台课程类型ids',
|
||||
'Classes_cate_ids' => '平台课程分类',
|
||||
'Classes_label_ids' => '平台课程热门标签',
|
||||
'Self_label_tag' => '机构特色标签',
|
||||
'Add_type' => '添加人类型',
|
||||
'Add_type 1' => '机构',
|
||||
|
|
|
@ -2,8 +2,21 @@
|
|||
|
||||
return [
|
||||
'Order_no' => '订单号',
|
||||
|
||||
'Edit'=>'修改用户预约的课时',
|
||||
'Add'=>'帮用户预约课时',
|
||||
'Delete'=>'帮用户取消预约',
|
||||
'Del'=>'帮用户取消预约',
|
||||
'Auth_status' => '审核状态',
|
||||
'Auth_status 0' => '待审核',
|
||||
'Auth_status 1' => '审核通过',
|
||||
'Auth_status 2' => '审核失败',
|
||||
'Reason' => '审核不通过原因',
|
||||
'Auth_time' => '审核时间',
|
||||
'Admin_id' => '审核管理员id',
|
||||
|
||||
'Classes_order_id' => '课程订单id',
|
||||
'Classes_lib_spec_id' => '课时id',
|
||||
'Classes_lib_spec_id' => '选择要预约的课时',
|
||||
'User_id' => '下单人id',
|
||||
'Classes_order_detail_id' => '订单课程id',
|
||||
'Classes_lib_id' => '课程id',
|
||||
|
|
|
@ -1,6 +1,10 @@
|
|||
<?php
|
||||
|
||||
return [
|
||||
'Type' => '已读状态',
|
||||
'Type 1' => '未读',
|
||||
'Type 2' => '已读',
|
||||
'Weigh' => '权重',
|
||||
'Platform' => '消息平台',
|
||||
'Platform admin' => '总后台',
|
||||
'Platform user' => '用户端',
|
||||
|
|
|
@ -29,11 +29,36 @@ class Message extends Model
|
|||
'oper_type_text',
|
||||
'to_type_text',
|
||||
'status_text',
|
||||
'mini_type_text'
|
||||
'mini_type_text',
|
||||
"type_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 getTypeList()
|
||||
{
|
||||
return ['1' => __('Type 1'), '2' => __('Type 2')];
|
||||
}
|
||||
|
||||
public function getTypeTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['type']) ? $data['type'] : '');
|
||||
$list = $this->getTypeList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function getPlatformList()
|
||||
{
|
||||
return ['admin' => __('Platform admin'), 'user' => __('Platform user'), 'shop' => __('Platform shop')];
|
||||
|
@ -60,6 +85,8 @@ class Message extends Model
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function getPlatformTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ?: ($data['platform'] ?? '');
|
||||
|
|
|
@ -30,11 +30,33 @@ class Order extends Model
|
|||
'status_text',
|
||||
'reservation_time_text',
|
||||
'finish_time_text',
|
||||
'cancel_time_text'
|
||||
'cancel_time_text',
|
||||
'auth_status_text',
|
||||
];
|
||||
|
||||
|
||||
|
||||
|
||||
public function getAuthStatusList()
|
||||
{
|
||||
return ['0' => __('Auth_status 0'), '1' => __('Auth_status 1'), '2' => __('Auth_status 2')];
|
||||
}
|
||||
|
||||
public function getAuthStatusTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['auth_status']) ? $data['auth_status'] : '');
|
||||
$list = $this->getAuthStatusList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
public function getStatusTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
|
||||
$list = $this->getStatusList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['-3' => __('Status -3'),'-1' => __('Status -1'), '0' => __('Status 0'), '3' => __('Status 3')];
|
||||
|
@ -55,12 +77,6 @@ class Order extends Model
|
|||
}
|
||||
|
||||
|
||||
public function getStatusTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['status']) ? $data['status'] : '');
|
||||
$list = $this->getStatusList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
public function getReservationTimeTextAttr($value, $data)
|
||||
|
|
|
@ -39,9 +39,16 @@
|
|||
<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="mobile" data-format-item="{id} - {nickname} - {mobile}" class="form-control selectpage" name="row[user_id]" type="text" value="">
|
||||
<span style="color: red">
|
||||
|
||||
(没找到用户则点击按钮创建用户后重新下拉框选用户)
|
||||
<a data-url="user/user/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('user/user/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
|
||||
</span>
|
||||
</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">
|
||||
|
|
|
@ -40,7 +40,16 @@
|
|||
<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="mobile" data-format-item="{id} - {nickname} - {mobile}" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
|
||||
<span style="color: red">
|
||||
|
||||
(没找到用户则点击按钮创建用户后重新下拉框选用户)
|
||||
<a data-url="user/user/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('user/user/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
|
||||
</span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
|
|
|
@ -36,3 +36,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
var shop_backend_url = "{$shop_backend_url}";
|
||||
</script>
|
|
@ -10,6 +10,12 @@
|
|||
<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="mobile" data-format-item="{id} - {nickname} - {mobile}" class="form-control selectpage" name="row[user_id]" type="text" value="">
|
||||
<span style="color: red">
|
||||
|
||||
(没找到用户则点击按钮创建用户后重新下拉框选用户)
|
||||
<a data-url="user/user/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('user/user/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -10,6 +10,13 @@
|
|||
<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="mobile" data-format-item="{id} - {nickname} - {mobile}" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
|
||||
<span style="color: red">
|
||||
|
||||
(没找到用户则点击按钮创建用户后重新下拉框选用户)
|
||||
<a data-url="user/user/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('user/user/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -22,6 +22,13 @@
|
|||
<label class="control-label col-xs-12 col-sm-2">{:__('讲师id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-teacher_id" data-rule="required" data-source="school/classes/teacher/index" data-field="name" class="form-control selectpage" name="row[teacher_id]" type="text" value="{$q_teacher_id}">
|
||||
|
||||
<span style="color: red">
|
||||
|
||||
(没找到讲师则点击按钮创建讲师后重新下拉框选讲师)
|
||||
<a href="javascript:;" data-url="school/classes/teacher/add?shop_id={$q_shop_id}" class="btn btn-success btn-changeuser {:$auth->check('school/classes/teacher/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -29,12 +36,25 @@
|
|||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_cate_ids')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_cate_ids" data-rule="required" data-source="school/classes/cate/index" data-multiple="true" class="form-control selectpage" name="row[classes_cate_ids]" type="text" value="">
|
||||
|
||||
<span style="color: red">
|
||||
(没找到分类则点击按钮创建分类后重新下拉框选分类)
|
||||
<a href="javascript:;" data-url="school/classes/cate/index" class="btn btn-success btn-changeuser {:$auth->check('school/classes/cate/index')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_label_ids')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_label_ids" data-rule="required" data-source="school/classes/label/index" data-multiple="true" class="form-control selectpage" name="row[classes_label_ids]" type="text" value="">
|
||||
|
||||
<span style="color: red">
|
||||
(没找到标签则点击按钮创建标签后重新下拉框选标签)
|
||||
<a href="javascript:;" data-url="school/classes/label/index" class="btn btn-success btn-changeuser {:$auth->check('school/classes/label/index')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -23,6 +23,12 @@
|
|||
<label class="control-label col-xs-12 col-sm-2">{:__('讲师id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-teacher_id" data-rule="required" data-source="school/classes/teacher/index" data-field="name" class="form-control selectpage" name="row[teacher_id]" type="text" value="{$row.teacher_id|htmlentities}">
|
||||
<span style="color: red">
|
||||
|
||||
(没找到讲师则点击按钮创建讲师后重新下拉框选讲师)
|
||||
<a href="javascript:;" data-url="school/classes/teacher/add?shop_id={$row.shop_id}" class="btn btn-success btn-changeuser {:$auth->check('school/classes/teacher/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -30,12 +36,24 @@
|
|||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_cate_ids')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_cate_ids" data-rule="required" data-source="school/classes/cate/index" data-multiple="true" class="form-control selectpage" name="row[classes_cate_ids]" type="text" value="{$row.classes_cate_ids|htmlentities}">
|
||||
|
||||
<span style="color: red">
|
||||
(没找到分类则点击按钮创建分类后重新下拉框选分类)
|
||||
<a href="javascript:;" data-url="school/classes/cate/index" class="btn btn-success btn-changeuser {:$auth->check('school/classes/cate/index')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_label_ids')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_label_ids" data-rule="required" data-source="school/classes/label/index" data-multiple="true" class="form-control selectpage" name="row[classes_label_ids]" type="text" value="{$row.classes_label_ids|htmlentities}">
|
||||
|
||||
<span style="color: red">
|
||||
(没找到标签则点击按钮创建标签后重新下拉框选标签)
|
||||
<a href="javascript:;" data-url="school/classes/label/index" class="btn btn-success btn-changeuser {:$auth->check('school/classes/label/index')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
@ -338,6 +356,8 @@
|
|||
<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>
|
||||
<button type="button" data-url="school/classes/classes_spec/index?classes_lib_id={$row.id}" class="btn btn-success btn-changeuser {:$auth->check('school/classes/classes_spec/index')?'':'hide'}" title="{:__('设置课时')}" ><i class="fa fa-plus"></i> {:__('设置课时')}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -16,6 +16,9 @@
|
|||
<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/classes/classes_lib/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/classes_lib/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
|
|
|
@ -1,113 +1,16 @@
|
|||
<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">{:__('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">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_order_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_order_id" data-rule="required" data-source="school/classes/order/index" class="form-control selectpage" name="row[classes_order_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<input id="c-classes_lib_id" name="row[classes_lib_id]" type="hidden" value="{$q_classes_lib_id}">
|
||||
<input id="c-classes_order_id" name="row[classes_order_id]" type="hidden" value="{$q_classes_order_id}">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_lib_spec_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_lib_spec_id" data-rule="required" data-source="school/classes/lib/spec/index" class="form-control selectpage" name="row[classes_lib_spec_id]" type="text" value="">
|
||||
<input id="c-classes_lib_spec_id" data-rule="required" data-source="school/classes/classes_spec/index" class="form-control selectpage" name="row[classes_lib_spec_id]" type="text" value="{$q_classes_lib_spec_id}">
|
||||
</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="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_order_detail_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_order_detail_id" data-rule="required" data-source="school/classes/order/detail/index" class="form-control selectpage" name="row[classes_order_detail_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_lib_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_lib_id" data-rule="required" data-source="school/classes/lib/index" class="form-control selectpage" name="row[classes_lib_id]" type="text" value="">
|
||||
</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">{:__('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">{:__('End_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-end_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[end_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">{:__('Limit_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-limit_num" class="form-control" name="row[limit_num]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Sign_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-sign_num" class="form-control" name="row[sign_num]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Verification_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-verification_num" class="form-control" name="row[verification_num]" type="number">
|
||||
</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="-3"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</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="">
|
||||
</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="{:date('Y-m-d H:i:s')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Finish_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-finish_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[finish_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">{:__('Cancel_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-cancel_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[cancel_time]" type="text" value="{:date('Y-m-d H:i:s')}">
|
||||
</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">
|
||||
|
|
|
@ -1,113 +1,19 @@
|
|||
<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">{:__('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}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_order_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_order_id" data-rule="required" data-source="school/classes/order/index" class="form-control selectpage" name="row[classes_order_id]" type="text" value="{$row.classes_order_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input id="c-classes_lib_id" name="row[classes_lib_id]" type="hidden" value="{$row.classes_lib_id|htmlentities}">
|
||||
<input id="c-classes_order_id" name="row[classes_order_id]" type="hidden" value="{$row.classes_order_id|htmlentities}">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_lib_spec_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_lib_spec_id" data-rule="required" data-source="school/classes/lib/spec/index" class="form-control selectpage" name="row[classes_lib_spec_id]" type="text" value="{$row.classes_lib_spec_id|htmlentities}">
|
||||
<input id="c-classes_lib_spec_id" data-rule="required" data-source="school/classes/classes_spec/index" class="form-control selectpage" name="row[classes_lib_spec_id]" type="text" value="{$row.classes_lib_spec_id|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">{:__('Classes_order_detail_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_order_detail_id" data-rule="required" data-source="school/classes/order/detail/index" class="form-control selectpage" name="row[classes_order_detail_id]" type="text" value="{$row.classes_order_detail_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_lib_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_lib_id" data-rule="required" data-source="school/classes/lib/index" class="form-control selectpage" name="row[classes_lib_id]" type="text" value="{$row.classes_lib_id|htmlentities}">
|
||||
</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">{:__('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">{:__('End_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-end_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[end_time]" type="text" value="{:$row.end_time?datetime($row.end_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Limit_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-limit_num" class="form-control" name="row[limit_num]" type="number" value="{$row.limit_num|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Sign_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-sign_num" class="form-control" name="row[sign_num]" type="number" value="{$row.sign_num|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Verification_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-verification_num" class="form-control" name="row[verification_num]" type="number" value="{$row.verification_num|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">{:__('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}">
|
||||
</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):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Finish_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-finish_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[finish_time]" type="text" value="{:$row.finish_time?datetime($row.finish_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Cancel_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-cancel_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[cancel_time]" type="text" value="{:$row.cancel_time?datetime($row.cancel_time):''}">
|
||||
</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">
|
||||
|
|
|
@ -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,28 @@
|
|||
<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>
|
||||
|
||||
{neq name="q_classes_order_id" value=""}
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/hourorder/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/hourorder/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/hourorder/order/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
{/neq}
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/hourorder/order/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/hourorder/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/hourorder/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/hourorder/order/recyclebin')?'':'hide'}" href="school/classes/hourorder/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/hourorder/order/recyclebin')?'':'hide'}" href="school/classes/hourorder/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/hourorder/order/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/hourorder/order/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/hourorder/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/hourorder/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/hourorder/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/hourorder/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/hourorder/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/hourorder/order_log/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
<!-- -->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/hourorder/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/hourorder/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>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/hourorder/order_log/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/hourorder/order_log/del')}"
|
||||
data-operate-edit="0"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -113,140 +113,140 @@
|
|||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Before_status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<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>
|
||||
{/foreach}
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Before_status')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- -->
|
||||
<!-- <div class="radio">-->
|
||||
<!-- {foreach name="beforeStatusList" item="vo"}-->
|
||||
<!-- <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>-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Server_status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<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>
|
||||
{/foreach}
|
||||
</div>
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Server_status')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- -->
|
||||
<!-- <div class="radio">-->
|
||||
<!-- {foreach name="serverStatusList" item="vo"}-->
|
||||
<!-- <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>-->
|
||||
|
||||
</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}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_manystore_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-auth_manystore_id" data-rule="required" data-source="auth/manystore/index" class="form-control selectpage" name="row[auth_manystore_id]" type="text" value="{$row.auth_manystore_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_opinion')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-auth_opinion" class="form-control" name="row[auth_opinion]" type="text" value="{$row.auth_opinion|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_file')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-auth_file" class="form-control" size="50" name="row[auth_file]" type="text" value="{$row.auth_file|htmlentities}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-auth_file" class="btn btn-danger faupload" data-input-id="c-auth_file" data-multiple="false" data-preview-id="p-auth_file"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-auth_file" class="btn btn-primary fachoose" data-input-id="c-auth_file" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-auth_file"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-auth_file"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Result_status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="resultStatusList" item="vo"}
|
||||
<label for="row[result_status]-{$key}"><input id="row[result_status]-{$key}" name="row[result_status]" type="radio" value="{$key}" {in name="key" value="$row.result_status"}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="{$row.reason|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Auth_manystore_id')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-auth_manystore_id" data-rule="required" data-source="auth/manystore/index" class="form-control selectpage" name="row[auth_manystore_id]" type="text" value="{$row.auth_manystore_id|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Auth_opinion')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-auth_opinion" class="form-control" name="row[auth_opinion]" type="text" value="{$row.auth_opinion|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Auth_file')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <div class="input-group">-->
|
||||
<!-- <input id="c-auth_file" class="form-control" size="50" name="row[auth_file]" type="text" value="{$row.auth_file|htmlentities}">-->
|
||||
<!-- <div class="input-group-addon no-border no-padding">-->
|
||||
<!-- <span><button type="button" id="faupload-auth_file" class="btn btn-danger faupload" data-input-id="c-auth_file" data-multiple="false" data-preview-id="p-auth_file"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>-->
|
||||
<!-- <span><button type="button" id="fachoose-auth_file" class="btn btn-primary fachoose" data-input-id="c-auth_file" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <span class="msg-box n-right" for="c-auth_file"></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <ul class="row list-inline faupload-preview" id="p-auth_file"></ul>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Result_status')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- -->
|
||||
<!-- <div class="radio">-->
|
||||
<!-- {foreach name="resultStatusList" item="vo"}-->
|
||||
<!-- <label for="row[result_status]-{$key}"><input id="row[result_status]-{$key}" name="row[result_status]" type="radio" value="{$key}" {in name="key" value="$row.result_status"}checked{/in} /> {$vo}</label> -->
|
||||
<!-- {/foreach}-->
|
||||
<!-- </div>-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Result_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-result_text" class="form-control" name="row[result_text]" type="text" value="{$row.result_text|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Result_file')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-result_file" class="form-control" size="50" name="row[result_file]" type="text" value="{$row.result_file|htmlentities}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-result_file" class="btn btn-danger faupload" data-input-id="c-result_file" data-multiple="false" data-preview-id="p-result_file"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-result_file" class="btn btn-primary fachoose" data-input-id="c-result_file" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-result_file"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-result_file"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Result_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-result_text" class="form-control" name="row[result_text]" type="text" value="{$row.result_text|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Result_file')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <div class="input-group">-->
|
||||
<!-- <input id="c-result_file" class="form-control" size="50" name="row[result_file]" type="text" value="{$row.result_file|htmlentities}">-->
|
||||
<!-- <div class="input-group-addon no-border no-padding">-->
|
||||
<!-- <span><button type="button" id="faupload-result_file" class="btn btn-danger faupload" data-input-id="c-result_file" data-multiple="false" data-preview-id="p-result_file"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>-->
|
||||
<!-- <span><button type="button" id="fachoose-result_file" class="btn btn-primary fachoose" data-input-id="c-result_file" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <span class="msg-box n-right" for="c-result_file"></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <ul class="row list-inline faupload-preview" id="p-result_file"></ul>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<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">{:__('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" step="0.01" readonly disabled 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" step="0.01" readonly disabled 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" step="0.01" readonly disabled name="row[sub_refundprice]" type="number" value="{$row.sub_refundprice|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>
|
||||
<!-- <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>-->
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<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/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/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/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/order/order/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
|
||||
|
||||
<!-- <div class="dropdown btn-group {:$auth->check('school/classes/order/order/multi')?'':'hide'}">-->
|
||||
|
@ -35,7 +35,7 @@
|
|||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/order/order/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/order/order/del')}"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -7,18 +7,18 @@
|
|||
<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/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/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/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/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/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/order/order_detail/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
<!-- -->
|
||||
|
||||
|
||||
|
||||
<a class="btn btn-success btn-recyclebin btn-dialog {:$auth->check('school/classes/order/order_detail/recyclebin')?'':'hide'}" href="school/classes/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/order/order_detail/recyclebin')?'':'hide'}" href="school/classes/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/order/order_detail/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/order/order_detail/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/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/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/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/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/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/order/order_log/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
<!-- -->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/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/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>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/order/order_log/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/order/order_log/del')}"
|
||||
data-operate-edit="0"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -16,8 +16,15 @@
|
|||
<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="mobile" data-format-item="{id} - {nickname} - {mobile}" class="form-control selectpage" name="row[user_id]" type="text" value="">
|
||||
<span style="color: red">
|
||||
|
||||
(没找到用户则点击按钮创建用户后重新下拉框选用户)
|
||||
<a data-url="user/user/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('user/user/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
|
||||
</span>
|
||||
</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">
|
||||
|
|
|
@ -16,6 +16,13 @@
|
|||
<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="mobile" data-format-item="{id} - {nickname} - {mobile}" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
<span style="color: red">
|
||||
|
||||
(没找到用户则点击按钮创建用户后重新下拉框选用户)
|
||||
<a data-url="user/user/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('user/user/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -16,6 +16,12 @@
|
|||
<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="mobile" data-format-item="{id} - {nickname} - {mobile}" class="form-control selectpage" name="row[user_id]" type="text" value="">
|
||||
<span style="color: red">
|
||||
|
||||
(没找到用户则点击按钮创建用户后重新下拉框选用户)
|
||||
<a data-url="user/user/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('user/user/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -16,6 +16,12 @@
|
|||
<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="mobile" data-format-item="{id} - {nickname} - {mobile}" class="form-control selectpage" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
<span style="color: red">
|
||||
|
||||
(没找到用户则点击按钮创建用户后重新下拉框选用户)
|
||||
<a data-url="user/user/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('user/user/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -23,8 +23,7 @@
|
|||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_lib_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_lib_id" data-rule="required" data-source="school/classes/classes_lib/index" data-field="title" class="form-control selectpage" name="row[classes_lib_id]" type="text" value="{$row.classes_lib_id|htmlentities}">
|
||||
</div>
|
||||
<input id="c-classes_lib_id" data-rule="required" data-source="school/classes/classes_lib/index" data-field="title" class="form-control selectpage" name="row[classes_lib_id]" type="text" value="{$row.classes_lib_id|htmlentities}"> </div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Time')}:</label>
|
||||
|
@ -32,6 +31,30 @@
|
|||
<input id="c-time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[time]" type="text" value="{:$row.time?datetime($row.time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Jointype')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-jointype" class="form-control selectpicker" name="row[jointype]">
|
||||
{foreach name="jointypeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$row.jointype"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Havetype')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<select id="c-havetype" class="form-control selectpicker" name="row[havetype]">
|
||||
{foreach name="havetypeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$row.havetype"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</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">
|
||||
|
|
|
@ -90,6 +90,14 @@
|
|||
<input id="c-params" class="form-control" name="row[params]" type="text">
|
||||
</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">
|
||||
|
|
|
@ -90,6 +90,14 @@
|
|||
<input id="c-params" class="form-control" name="row[params]" type="text" value="{$row.params|htmlentities}">
|
||||
</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">
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<form id="changeuser-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<fieldset>
|
||||
<legend><h4>根据手机号和姓名创建用户(已存在则不更改任何信息!)</h4></legend>
|
||||
<div class="form-group">
|
||||
<label for="c-people_name" class="control-label col-xs-12 col-sm-2">姓名(昵称):</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input placeholder="" id="c-people_name" data-rule="required" class="form-control" name="people_name" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-people_mobile" class="control-label col-xs-12 col-sm-2">手机号:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input placeholder="" id="c-people_mobile" data-rule="required" class="form-control" name="people_mobile" type="text" value="">
|
||||
<span style="color: red">(手机号将自动创建并关联对应微信小程序账号,请认真核对确认无误!)</span>
|
||||
</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="changeuser" data-type="changeuser" class="btn btn-success btn-embossed">确认创建</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
|
@ -14,6 +14,8 @@
|
|||
<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 data-url="user/user/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('user/user/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
|
||||
</div>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('user/user/edit')}"
|
||||
|
|
|
@ -0,0 +1,129 @@
|
|||
<?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 Message extends Base
|
||||
{
|
||||
protected $noNeedLogin = [];
|
||||
protected $noNeedRight = '*';
|
||||
|
||||
protected $model = null;
|
||||
|
||||
/**
|
||||
* 初始化操作
|
||||
* @access protected
|
||||
*/
|
||||
protected function _initialize()
|
||||
{
|
||||
|
||||
$this->model = new \app\common\model\school\Message();
|
||||
parent::_initialize();
|
||||
|
||||
//判断登录用户是否是员工
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @ApiTitle( 站内信详情-确认已读)
|
||||
* @ApiSummary(站内信详情-确认已读)
|
||||
* @ApiRoute(/api/school/message/detail)
|
||||
* @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::getDetail($id);
|
||||
} catch (\Exception $e){
|
||||
// Log::log($e->getMessage());
|
||||
$this->error($e->getMessage(),['errcode'=>$e->getCode()]);
|
||||
}
|
||||
$this->success('获取成功', ['detail' => $res]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @ApiTitle( 我的消息列表接口)
|
||||
* @ApiSummary(我的消息列表接口)
|
||||
* @ApiRoute(/api/school/message/message_list)
|
||||
* @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 = "status", type = "string",required=false,description = "消息总类型:system=系统消息,classes=课程消息,order=订单消息")
|
||||
* @ApiParams(name = "mini_type", type = "string",required=false,description = "小消息类型:order_notice=课程订单通知,classes_auth=课程报名审核,classes_apply=课程上新审核,shop_apply=机构审核,classes_order_notice=课时预约,user_auth=机构授权用户信息,aftercare=售后服务,other=其他")
|
||||
*@ApiParams(name = "type", type = "string",required=false,description = "已读状态:1=未读,2=已读")
|
||||
*
|
||||
* @ApiReturn({
|
||||
*
|
||||
*})
|
||||
*/
|
||||
public function message_list()
|
||||
{
|
||||
$user_id = 0;
|
||||
$user = $this->auth->getUser();//登录用户
|
||||
if($user)$user_id = $user['id'];
|
||||
$page = $this->request->get('page/d', 0); //页数
|
||||
$limit = $this->request->get('limit/d', 0); //条数
|
||||
$keywords = $this->request->get('keywords/s', ''); //搜索关键字
|
||||
$status = $this->request->get('status/s', ''); //搜索关键字
|
||||
$mini_type = $this->request->get('mini_type/s', ''); //搜索关键字
|
||||
$type = $this->request->get('type/s', ''); //搜索关键字
|
||||
// $type = $this->request->get('type/s', ''); //筛选学员和教练单
|
||||
$to_id = $user_id;
|
||||
try{
|
||||
//当前申请状态
|
||||
$res = $this->model::messageList($page, $limit,$to_id,$keywords,$status,$mini_type,$type);
|
||||
// if($user_id =='670153'){
|
||||
// file_put_contents("ceshi66.txt",(new AppointmentOrder())->getLastSql());
|
||||
// }
|
||||
}catch (\Exception $e){
|
||||
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('查询成功', $res);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @ApiTitle( 我的消息数量接口)
|
||||
* @ApiSummary(我的消息数量接口)
|
||||
* @ApiRoute(/api/school/message/message_count)
|
||||
* @ApiMethod(GET)
|
||||
* @ApiReturn({
|
||||
*
|
||||
*})
|
||||
*/
|
||||
public function message_count(){
|
||||
$user_id = 0;
|
||||
$user = $this->auth->getUser();//登录用户
|
||||
if($user)$user_id = $user['id'];
|
||||
|
||||
try{
|
||||
$res = $this->model::messageCount($user_id);
|
||||
}catch (\Throwable $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
$this->success('查询成功', $res);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -12,7 +12,7 @@ $defaultHooks = [
|
|||
'app\\common\\listener\\classesorder\\OrderHook'
|
||||
],
|
||||
'classes_order_cancel_after' => [ // 订单取消后
|
||||
'addons\\shopro\\listener\\classesorder\\OrderHook'
|
||||
'app\\common\\listener\\classesorder\\OrderHook'
|
||||
],
|
||||
|
||||
'classes_order_finish_after' => [ // 订单完成后
|
||||
|
@ -54,7 +54,7 @@ $hourHooks = [
|
|||
'app\\common\\listener\\classeshourorder\\OrderHook'
|
||||
],
|
||||
'classeshour_order_cancel_after' => [ // 订单取消后
|
||||
'addons\\shopro\\listener\\classeshourorder\\OrderHook'
|
||||
'app\\common\\listener\\classeshourorder\\OrderHook'
|
||||
],
|
||||
];
|
||||
|
||||
|
|
|
@ -201,6 +201,77 @@ class Auth
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 注册用户(自定义)
|
||||
*
|
||||
* @param string $username 用户名
|
||||
* @param string $password 密码
|
||||
* @param string $email 邮箱
|
||||
* @param string $mobile 手机号
|
||||
* @param array $extend 扩展参数
|
||||
*/
|
||||
public function registerNoLogin($username, $password, $email = '', $mobile = '', $extend = [])
|
||||
{
|
||||
// 检测用户名、昵称、邮箱、手机号是否存在
|
||||
if (User::getByUsername($username)) {
|
||||
$this->setError('Username already exist');
|
||||
return false;
|
||||
}
|
||||
if (User::getByNickname($username)) {
|
||||
$this->setError('Nickname already exist');
|
||||
return false;
|
||||
}
|
||||
if ($email && User::getByEmail($email)) {
|
||||
$this->setError('Email already exist');
|
||||
return false;
|
||||
}
|
||||
if ($mobile && User::getByMobile($mobile)) {
|
||||
$this->setError('Mobile already exist');
|
||||
return false;
|
||||
}
|
||||
|
||||
$ip = request()->ip();
|
||||
$time = time();
|
||||
|
||||
$data = [
|
||||
'username' => $username,
|
||||
'password' => $password,
|
||||
'email' => $email,
|
||||
'mobile' => $mobile,
|
||||
'level' => 1,
|
||||
'score' => 0,
|
||||
'avatar' => '',
|
||||
];
|
||||
$params = array_merge($data, [
|
||||
'nickname' => preg_match("/^1[3-9]{1}\d{9}$/",$username) ? substr_replace($username,'****',3,4) : $username,
|
||||
'salt' => Random::alnum(),
|
||||
'jointime' => $time,
|
||||
'joinip' => $ip,
|
||||
'logintime' => $time,
|
||||
'loginip' => $ip,
|
||||
'prevtime' => $time,
|
||||
'status' => 'normal'
|
||||
]);
|
||||
$params['password'] = $this->getEncryptPassword($password, $params['salt']);
|
||||
$params = array_merge($params, $extend);
|
||||
|
||||
//账号注册时需要开启事务,避免出现垃圾数据
|
||||
Db::startTrans();
|
||||
try {
|
||||
$user = User::create($params, true);
|
||||
|
||||
//注册成功的事件
|
||||
Hook::listen("user_register_successed", $this->_user, $data);
|
||||
Db::commit();
|
||||
} catch (Exception $e) {
|
||||
$this->setError($e->getMessage());
|
||||
Db::rollback();
|
||||
return false;
|
||||
}
|
||||
return User::get($user->id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户登录
|
||||
*
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
<?php
|
||||
namespace app\common\listener\classes;
|
||||
use app\common\model\school\Message;
|
||||
|
||||
class ClassesHook
|
||||
{
|
||||
|
||||
|
||||
|
||||
|
||||
// 机构账号提交审核申请后
|
||||
public function shopApplyAfter(&$params)
|
||||
{
|
||||
["shop"=>$shop] = $params;
|
||||
|
||||
|
||||
//记录订单日志
|
||||
|
||||
$desc = "您申请的认证{$shop['name']}已提交审核,审核时间为1-3日内,请耐心等待审核结果";
|
||||
|
||||
$title = "入驻申请提交";
|
||||
$mini_type = "shop_apply";
|
||||
$to_type="user";
|
||||
$to_id = $shop["user_id"];
|
||||
$status ="system";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"shop_create_after",
|
||||
"shop_id"=>$shop["id"],
|
||||
"desc"=>$shop["desc"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 机构账号审核成功后
|
||||
public function shopAuthSuccessAfter(&$params)
|
||||
{
|
||||
['shop' => $shop,"password"=>$password] = $params;
|
||||
$user = $shop->user;
|
||||
$mobile = $user['mobile'] ?? "";
|
||||
$shop_backend_url = config("site.shop_backend_ur");
|
||||
$desc = "您申请的认证:{$shop['name']}已审核通过,您可登录官方后台补充完其余资料,并开始发布课程<br>
|
||||
后台地址是: {$shop_backend_url}<br>
|
||||
账号是: {$shop['username']} 或 您的手机号 {$mobile}<br>
|
||||
初始化密码是: {$password}<br>
|
||||
";
|
||||
|
||||
$title = "入驻申请通过";
|
||||
$mini_type = "shop_apply";
|
||||
$to_type="user";
|
||||
$to_id = $shop["user_id"];
|
||||
$status ="system";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"shop_auth_success_after",
|
||||
"shop_id"=>$shop["id"],
|
||||
"desc"=>$shop["desc"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 机构账号审核失败后
|
||||
public function shopAuthFailAfter(&$params)
|
||||
{
|
||||
["shop"=>$shop] = $params;
|
||||
|
||||
|
||||
//记录订单日志
|
||||
|
||||
$desc = "您申请的认证{$shop['name']}审核未通过,未通过原因为:{$shop['reason']},如已整改,可重新发起申请";
|
||||
|
||||
$title = "入驻申请失败";
|
||||
$mini_type = "shop_apply";
|
||||
$to_type="user";
|
||||
$to_id = $shop["user_id"];
|
||||
$status ="system";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"shop_auth_fail_after",
|
||||
"shop_id"=>$shop["id"],
|
||||
"desc"=>$shop["desc"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -1,18 +1,46 @@
|
|||
<?php
|
||||
namespace app\common\listener\classeshourorder;
|
||||
use app\common\model\school\classes\hourorder\OrderLog;
|
||||
use app\common\model\school\Message;
|
||||
|
||||
class OrderHook
|
||||
{
|
||||
// 订单创建成功前(订单计算)
|
||||
|
||||
public function classeshourOrderCreateBefore(&$params)
|
||||
{
|
||||
|
||||
|
||||
['user_id'=>$user_id, 'classes_order_id'=>$classes_order_id,'param'=>$param, 'order_no'=>$order_no, 'price_info'=>$price_info,'classes_lib_spec_id'=>$classes_lib_spec_id] = $params;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// 订单创建成功后
|
||||
public function classeshourOrderCreateAfter(&$params)
|
||||
{
|
||||
["order"=>$order] = $params;
|
||||
$detail = $order->detail;
|
||||
//记录订单日志
|
||||
if($order["type"] == "1"){
|
||||
$desc = "{$detail["title"]}课程课时{$order["name"]}课程预约下单成功,等待机构老师审核";
|
||||
}else{
|
||||
$desc = "{$detail["title"]}课程课时{$order["name"]}预约机构老师代下单成功";
|
||||
}
|
||||
$title = "创建课时预约成功";
|
||||
$mini_type = "classes_auth";
|
||||
$to_type="user";
|
||||
$to_id = $order["user_id"];
|
||||
$status ="order";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"classeshour_order_create_after",
|
||||
"order_id"=>$order["id"],
|
||||
"order_no"=>$order["order_no"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
}
|
||||
|
||||
|
@ -20,6 +48,30 @@ class OrderHook
|
|||
// 订单变更课时后
|
||||
public function classeshourOrderUpdateAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
$detail = $order->detail;
|
||||
//插入订单取消日志
|
||||
if(!$user_id ||$order["user_id"] !=$user_id ){
|
||||
$desc = "[员工操作]预约{$detail["title"]}课程订单规格已变更课时为{$order["name"]}";
|
||||
}else{
|
||||
$desc = "预约{$detail["title"]}课程订单规格已变更课时为{$order["name"]}";
|
||||
}
|
||||
|
||||
$title = "课时预约单更换课时";
|
||||
$mini_type = "classes_order_notice";
|
||||
$to_type="user";
|
||||
$to_id = $order["user_id"];
|
||||
$status ="order";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"classeshour_order_update_after",
|
||||
"order_id"=>$order["id"],
|
||||
"order_no"=>$order["order_no"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -29,18 +81,93 @@ class OrderHook
|
|||
// 订单审核通过后
|
||||
public function classeshourOrderAuthSuccessAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
$detail = $order->detail;
|
||||
//插入订单取消日志
|
||||
if(!$user_id ||$order["user_id"] !=$user_id ){
|
||||
$pron = "[员工操作]";
|
||||
}else{
|
||||
$pron = "";
|
||||
}
|
||||
$desc = $pron."{$detail["title"]}课程课时{$order["name"]}预约单审核成功,预约成功等待核销!";
|
||||
|
||||
$title = "课时预约单审核通过";
|
||||
$mini_type = "classes_auth";
|
||||
$to_type="user";
|
||||
$to_id = $order["user_id"];
|
||||
$status ="order";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"classeshour_order_auth_success_after",
|
||||
"order_id"=>$order["id"],
|
||||
"order_no"=>$order["order_no"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
}
|
||||
|
||||
// 订单审核失败后
|
||||
public function classeshourOrderAuthFailAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
$detail = $order->detail;
|
||||
|
||||
//插入订单取消日志
|
||||
if(!$user_id ||$order["user_id"] !=$user_id ){
|
||||
$pron = "[员工操作]";
|
||||
}else{
|
||||
$pron = "";
|
||||
}
|
||||
$desc = $pron."{$detail["title"]}课程课时{$order["name"]}预约单审核不通过,原因;{$order['reason']},该课时单将取消以便重新下单";
|
||||
|
||||
$title = "课时预约单审核不通过";
|
||||
$mini_type = "classes_auth";
|
||||
$to_type="user";
|
||||
$to_id = $order["user_id"];
|
||||
$status ="order";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"classeshour_order_auth_fail_after",
|
||||
"order_id"=>$order["id"],
|
||||
"order_no"=>$order["order_no"],
|
||||
"reason"=>$order['reason']
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 订单核销完成后
|
||||
public function classeshourOrderFinishAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
$detail = $order->detail;
|
||||
|
||||
|
||||
if(!$user_id ||$order["user_id"] !=$user_id ){
|
||||
$desc = "[员工操作]{$detail["title"]}课程课时{$order["name"]}预约单核销成功,当前课时已完成";
|
||||
}else{
|
||||
$desc = "{$detail["title"]}课程课时{$order["name"]}预约单核销成功,当前课时已完成";
|
||||
}
|
||||
|
||||
$title = "课时预约单已核销";
|
||||
$mini_type = "classes_order_notice";
|
||||
$to_type="user";
|
||||
$to_id = $order["user_id"];
|
||||
$status ="order";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"classeshour_order_finish_after",
|
||||
"order_id"=>$order["id"],
|
||||
"order_no"=>$order["order_no"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -50,6 +177,32 @@ class OrderHook
|
|||
// 订单取消成功后
|
||||
public function classeshourOrderCancelAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
$detail = $order->detail;
|
||||
|
||||
if(!$user_id ||$order["user_id"] !=$user_id ){
|
||||
$desc = "[员工代操作]{$detail["title"]}课程课时{$order["name"]}预约单取消成功,课时已原路退回";
|
||||
}else{
|
||||
$desc = "{$detail["title"]}课程课时{$order["name"]}预约单取消成功,课时已原路退回";
|
||||
}
|
||||
|
||||
$title = "课时预约单已取消";
|
||||
$mini_type = "classes_order_notice";
|
||||
$to_type="user";
|
||||
$to_id = $order["user_id"];
|
||||
$status ="order";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"classeshour_order_cancel_after",
|
||||
"order_id"=>$order["id"],
|
||||
"order_no"=>$order["order_no"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,18 +1,41 @@
|
|||
<?php
|
||||
namespace app\common\listener\classesorder;
|
||||
use app\common\model\school\Message;
|
||||
|
||||
class OrderHook
|
||||
{
|
||||
// 订单创建成功前(订单计算)
|
||||
|
||||
public function classesOrderCreateBefore(&$params)
|
||||
{
|
||||
|
||||
['user_id'=>$user_id, 'classes_lib_id'=>$classes_lib_id,'param'=>$param, 'order_no'=>$order_no, 'price_info'=>$price_info] = $params;
|
||||
}
|
||||
|
||||
|
||||
// 订单创建成功后
|
||||
public function classesOrderCreateAfter(&$params)
|
||||
{
|
||||
["order"=>$order] = $params;
|
||||
$detail = $order->detail;
|
||||
//记录订单日志
|
||||
|
||||
$desc = "课程{$detail["title"]}订单创建成功,等待【学员】支付";
|
||||
|
||||
$title = "课程订单创建成功";
|
||||
$mini_type = "order_notice";
|
||||
$to_type="user";
|
||||
$to_id = $order["user_id"];
|
||||
$status ="classes";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"classes_order_create_after",
|
||||
"order_id"=>$order["id"],
|
||||
"order_no"=>$order["order_no"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -21,18 +44,85 @@ class OrderHook
|
|||
// 订单支付成功后
|
||||
public function classesOrderPayedAfter(&$params)
|
||||
{
|
||||
["order"=>$order] = $params;
|
||||
$detail = $order->detail;
|
||||
//记录订单日志
|
||||
|
||||
$desc = "课程{$detail["title"]}订单支付成功,您可以正常约课了";
|
||||
|
||||
$title = "课程订单支付成功";
|
||||
$mini_type = "order_notice";
|
||||
$to_type="user";
|
||||
$to_id = $order["user_id"];
|
||||
$status ="classes";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"classes_order_payed_after",
|
||||
"order_id"=>$order["id"],
|
||||
"order_no"=>$order["order_no"],
|
||||
"classes_lib_id"=>$order["classes_lib_id"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 订单取消成功后
|
||||
public function classesOrderCancelAfter(&$params)
|
||||
{
|
||||
['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id] = $params;
|
||||
|
||||
$detail = $order->detail;
|
||||
if(!$user_id ||$order["user_id"] !=$user_id ){
|
||||
$desc = "[系统操作]课程{$detail["title"]}订单未支付取消成功";
|
||||
}else{
|
||||
$desc = "课程{$detail["title"]}订单未支付取消成功";
|
||||
}
|
||||
|
||||
$title = "课程订单已取消";
|
||||
$mini_type = "order_notice";
|
||||
$to_type="user";
|
||||
$to_id = $order["user_id"];
|
||||
$status ="classes";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"classes_order_cancel_after",
|
||||
"order_id"=>$order["id"],
|
||||
"order_no"=>$order["order_no"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
}
|
||||
|
||||
// 订单完成后
|
||||
public function classesOrderFinishAfter(&$params)
|
||||
{
|
||||
["order"=>$order] = $params;
|
||||
$detail = $order->detail;
|
||||
|
||||
//记录订单日志
|
||||
|
||||
$desc = "恭喜您!您的{$detail["title"]}课程完结啦";
|
||||
|
||||
$title = "课程完结撒花!";
|
||||
$mini_type = "order_notice";
|
||||
$to_type="user";
|
||||
$to_id = $order["user_id"];
|
||||
$status ="classes";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"classes_order_finish_after",
|
||||
"order_id"=>$order["id"],
|
||||
"order_no"=>$order["order_no"],
|
||||
"classes_lib_id"=>$order["classes_lib_id"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
<?php
|
||||
namespace app\common\listener\manystore;
|
||||
use app\common\model\school\Message;
|
||||
|
||||
class ShopHook
|
||||
{
|
||||
|
||||
|
@ -7,6 +9,11 @@ class ShopHook
|
|||
// 机构账号创建成功后(审核之前)
|
||||
public function shopCreateAfter(&$params)
|
||||
{
|
||||
["shop"=>$shop] = $params;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -15,6 +22,30 @@ class ShopHook
|
|||
// 机构账号提交审核申请后
|
||||
public function shopApplyAfter(&$params)
|
||||
{
|
||||
["shop"=>$shop] = $params;
|
||||
|
||||
|
||||
//记录订单日志
|
||||
|
||||
$desc = "您申请的认证{$shop['name']}已提交审核,审核时间为1-3日内,请耐心等待审核结果";
|
||||
|
||||
$title = "入驻申请提交";
|
||||
$mini_type = "shop_apply";
|
||||
$to_type="user";
|
||||
$to_id = $shop["user_id"];
|
||||
$status ="system";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"shop_create_after",
|
||||
"shop_id"=>$shop["id"],
|
||||
"desc"=>$shop["desc"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -23,12 +54,62 @@ class ShopHook
|
|||
// 机构账号审核成功后
|
||||
public function shopAuthSuccessAfter(&$params)
|
||||
{
|
||||
['shop' => $shop,"password"=>$password] = $params;
|
||||
$user = $shop->user;
|
||||
$mobile = $user['mobile'] ?? "";
|
||||
$shop_backend_url = config("site.shop_backend_ur");
|
||||
$desc = "您申请的认证:{$shop['name']}已审核通过,您可登录官方后台补充完其余资料,并开始发布课程<br>
|
||||
后台地址是: {$shop_backend_url}<br>
|
||||
账号是: {$shop['username']} 或 您的手机号 {$mobile}<br>
|
||||
初始化密码是: {$password}<br>
|
||||
";
|
||||
|
||||
$title = "入驻申请通过";
|
||||
$mini_type = "shop_apply";
|
||||
$to_type="user";
|
||||
$to_id = $shop["user_id"];
|
||||
$status ="system";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"shop_auth_success_after",
|
||||
"shop_id"=>$shop["id"],
|
||||
"desc"=>$shop["desc"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 机构账号审核失败后
|
||||
public function shopAuthFailAfter(&$params)
|
||||
{
|
||||
["shop"=>$shop] = $params;
|
||||
|
||||
|
||||
//记录订单日志
|
||||
|
||||
$desc = "您申请的认证{$shop['name']}审核未通过,未通过原因为:{$shop['reason']},如已整改,可重新发起申请";
|
||||
|
||||
$title = "入驻申请失败";
|
||||
$mini_type = "shop_apply";
|
||||
$to_type="user";
|
||||
$to_id = $shop["user_id"];
|
||||
$status ="system";
|
||||
$platform="user";
|
||||
$oper_id=0;
|
||||
$oper_type="system";
|
||||
$params=[
|
||||
"event"=>"shop_auth_fail_after",
|
||||
"shop_id"=>$shop["id"],
|
||||
"desc"=>$shop["desc"],
|
||||
];
|
||||
Message::send($title,$desc,$mini_type,$to_id,$to_type,$status,$platform,$params,$oper_id,$oper_type);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ use think\Model;
|
|||
/**
|
||||
* 会员模型
|
||||
*/
|
||||
class User extends Model
|
||||
class User extends BaseModel
|
||||
{
|
||||
|
||||
// 开启自动写入时间戳字段
|
||||
|
@ -70,7 +70,7 @@ class User extends Model
|
|||
public function getVerificationAttr($value, $data)
|
||||
{
|
||||
$value = array_filter((array)json_decode($value, true));
|
||||
$value = array_merge(['email' => 0, 'mobile' => 0], $value);
|
||||
$value = array_merge(['email' => 0, 'mobile' => 0, 'mini_wechat' => 0], $value);
|
||||
return (object)$value;
|
||||
}
|
||||
|
||||
|
@ -253,4 +253,53 @@ class User extends Model
|
|||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**添加用户:通过 手机号 和昵称
|
||||
* @param $mobile
|
||||
* @param $nickname
|
||||
*/
|
||||
public function addUserByMobile($mobile,$nickname,$check=true){
|
||||
if($check){
|
||||
//去除空格
|
||||
$nickname = trim($nickname);
|
||||
$mobile = trim($mobile);
|
||||
if(!is_numeric($mobile))throw new \Exception("不是合法手机号!");
|
||||
if(strlen($mobile)!=11)throw new \Exception("请输入11位手机号!");
|
||||
if (!preg_match("/[\x7f-\xff]/", $nickname)) throw new \Exception("名称必须是汉字,请去除空格和其他特殊符号!");
|
||||
preg_match_all("/[\x{4e00}-\x{9fa5}]/u","$nickname",$result);
|
||||
if(!$result || join('',$result[0])!=$nickname)throw new \Exception("名称必须是汉字,请去除空格和其他特殊符号!");
|
||||
}
|
||||
|
||||
|
||||
//判断用户存不存在
|
||||
$user = self::where("mobile",$mobile)->find();
|
||||
if($user){
|
||||
//如果存在,直接返回
|
||||
return $user;
|
||||
}else{
|
||||
//如果不存在,创建并返回
|
||||
//得到认证实例
|
||||
$auth = Auth::instance();
|
||||
//拼装提交参数
|
||||
// $extend = $this->getUserDefaultFields();
|
||||
$extend=[];
|
||||
$extend['nickname'] = $nickname;
|
||||
$extend['avatar'] = config("site.default_avatar");
|
||||
//调用注册方法
|
||||
$user = $auth->registerNoLogin("{$mobile}_user", rand(100000,999999), "{$mobile}@user.com", $mobile,$extend);
|
||||
if(!$user)throw new \Exception($auth->getError());
|
||||
//更新已认证方式
|
||||
$user = self::where("id", $user->id)->find();
|
||||
$verification = $user->verification;
|
||||
$verification->mobile = 1;
|
||||
$user->verification = $verification;
|
||||
$user->save();
|
||||
//返回对象
|
||||
return self::where("id", $user->id)->find();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -2,10 +2,11 @@
|
|||
|
||||
namespace app\common\model\school;
|
||||
|
||||
use app\common\model\BaseModel;
|
||||
use think\Model;
|
||||
|
||||
|
||||
class Message extends Model
|
||||
class Message extends BaseModel
|
||||
{
|
||||
|
||||
|
||||
|
@ -29,11 +30,24 @@ class Message extends Model
|
|||
'oper_type_text',
|
||||
'to_type_text',
|
||||
'status_text',
|
||||
'mini_type_text'
|
||||
'mini_type_text',
|
||||
"type_text"
|
||||
];
|
||||
|
||||
public function getTypeList()
|
||||
{
|
||||
return ['1' => __('Type 1'), '2' => __('Type 2')];
|
||||
}
|
||||
|
||||
public function getTypeTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['type']) ? $data['type'] : '');
|
||||
$list = $this->getTypeList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public function getPlatformList()
|
||||
{
|
||||
return ['admin' => __('Platform admin'), 'user' => __('Platform user'), 'shop' => __('Platform shop')];
|
||||
|
@ -149,4 +163,163 @@ class Message extends Model
|
|||
}
|
||||
|
||||
|
||||
|
||||
/**展示订单信息
|
||||
* @param $order_no
|
||||
* @param $price_info
|
||||
* @return array
|
||||
*/
|
||||
public static function showInfo($id, $price_info = []){
|
||||
$data = [];
|
||||
$data['id'] =$id;
|
||||
$data['message_info'] = self::getDetail($id);
|
||||
return array_merge($data,$price_info);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**得到订单详情
|
||||
* @param $order_no
|
||||
*/
|
||||
public static function getDetail($id,$oper_id = []){
|
||||
$model = self::where('id',$id);
|
||||
if($oper_id)$model = $model->where("oper_id","in",$oper_id);
|
||||
$data = $model->find();
|
||||
|
||||
if(!$data) return $data;
|
||||
|
||||
//如果非全局消息,更新成已读
|
||||
|
||||
if($data->to_id != 0){
|
||||
$data["type"]= '2';
|
||||
$data->save();
|
||||
}
|
||||
|
||||
// //加载订单详情
|
||||
// $data->detail->teacher;
|
||||
// //订单用户
|
||||
//// $data->user;
|
||||
// $data->user->visible(['id','nickname','mobile','avatar','realname']);
|
||||
//
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**得到基础条件
|
||||
* @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, ['platform','oper_type','to_type','status','mini_type','to_id']))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'])) $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['keywords'])&&$whereData['keywords']) $model = $model->where("{$alisa}id|{$alisa}title|{$alisa}desc", '=', $whereData['keywords']);
|
||||
if (isset($whereData['time'])&&$whereData['time']){
|
||||
$model = $model->time($whereData['time']);
|
||||
}
|
||||
if (isset($whereData['user_id']) && $whereData['user_id']) $model = $model->where("{$alisa}to_id", '=', $whereData['user_id']);
|
||||
|
||||
if (isset($whereData['platform']) && $whereData['platform']){
|
||||
$platforms = implode("|",explode(',',$whereData['platform']));
|
||||
$model = $model->whereRaw(" {$alisa}platform REGEXP '({$platforms})'");
|
||||
// $model = $model->where("{$alisa}platform", 'in', $whereData['platform']);
|
||||
}
|
||||
|
||||
|
||||
if (isset($whereData['oper_type']) && $whereData['oper_type']) $model = $model->where("{$alisa}oper_type", 'in', $whereData['oper_type']);
|
||||
if (isset($whereData['to_type']) && $whereData['to_type']) $model = $model->where("{$alisa}to_type", 'in', $whereData['to_type']);
|
||||
if (isset($whereData['mini_type']) && $whereData['mini_type']) $model = $model->where("{$alisa}mini_type", 'in', $whereData['mini_type']);
|
||||
|
||||
|
||||
if (isset($whereData['to_id']) && $whereData['to_id']){
|
||||
$model = $model->where(function ($query) use($whereData,$alisa) {
|
||||
$query->where("{$alisa}to_id", $whereData['to_id'])
|
||||
->whereOr("{$alisa}to_id", '=', 0);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
return $model;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function baseCount($where = []){
|
||||
$where["type"] = '1';
|
||||
$where["platform"]= 'user';
|
||||
$unread_number = self::getBaseWhere($where)->count();
|
||||
$unread_system_number = self::getBaseWhere(array_merge(['status'=>'system'],$where))->count();
|
||||
$unread_classes_number = self::getBaseWhere(array_merge(['status'=>'classes'],$where))->count();
|
||||
$unread_order_number = self::getBaseWhere(array_merge(['status'=>'order'],$where))->count();
|
||||
|
||||
return compact('unread_number','unread_system_number','unread_classes_number','unread_order_number');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**订单数量统计
|
||||
* @param int $user_id
|
||||
* @return array
|
||||
*/
|
||||
public static function messageCount($user_id = 0){
|
||||
return self::baseCount(['user_id'=>$user_id]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static function messageList($page, $limit,$to_id,$keywords,$status,$mini_type,$type){
|
||||
$with_field = [
|
||||
'user'=>['nickname','mobile','avatar','realname'],
|
||||
'base'=>['*'],
|
||||
// 'shop'=>['*'],
|
||||
// 'detail'=>['*'],
|
||||
];
|
||||
|
||||
$alisa = (new self)->getWithAlisaName();
|
||||
$sort = "field({$alisa}.type,'1','2') asc,{$alisa}.weigh desc,{$alisa}.id desc";
|
||||
$serch_where = ["to_id"=>$to_id,'platform'=>"user",'status'=>$status,'keywords'=>$keywords,"mini_type"=>$mini_type,"type"=>$type];
|
||||
// if($type)$serch_where['type'] = $type;
|
||||
return (new self)->getBaseList($serch_where, $page, $limit,$sort,$with_field);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -426,7 +426,7 @@ class ClassesLib extends BaseModel
|
|||
|
||||
|
||||
$order = $order?? 'normal';
|
||||
$per_page = $params['page'] ?? 10;
|
||||
$per_page = $limit ?? 10;
|
||||
|
||||
|
||||
$field = "{$a}id,{$a}shop_id,{$a}user_id,{$a}teacher_id,{$a}classes_cate_ids,{$a}classes_label_ids,{$a}self_label_tag,{$a}title,{$a}headimage,{$a}type,{$a}classes_date_text,{$a}classes_time_text,{$a}virtual_num,{$a}sale,{$a}price,{$a}underline_price,{$a}virtual_collect,{$a}status,{$a}auth_status,{$a}weigh,{$a}recommend,{$a}hot,{$a}new,{$a}selfhot,{$a}createtime,{$a}virtual_people,{$a}feel,{$a}limit_num,{$a}sign_num,{$a}verification_num";
|
||||
|
@ -568,6 +568,7 @@ class ClassesLib extends BaseModel
|
|||
|
||||
|
||||
$selfetch = $selfetch->paginate($per_page);
|
||||
// var_dump(self::getLastSql());
|
||||
//额外附加数据
|
||||
|
||||
return $selfetch;
|
||||
|
|
|
@ -6,6 +6,7 @@ use app\admin\model\Admin;
|
|||
use app\common\model\school\classes\ClassesLib;
|
||||
use app\common\model\school\classes\ClassesSpec;
|
||||
use app\common\model\User;
|
||||
use app\manystore\model\Manystore;
|
||||
use bw\Common;
|
||||
use fast\Random;
|
||||
use think\Cache;
|
||||
|
@ -594,12 +595,16 @@ class Order extends BaseModel
|
|||
$order = $this->createOrder($user_id,$orderInfo['classes_order_id'],$orderInfo['classes_lib_spec_id'],$order_no,$orderInfo['param'],$remark);
|
||||
//5删除缓存
|
||||
self::deleteOrderCache($user_id, $order_no);
|
||||
// var_dump($order["type"]);
|
||||
//代下单直接执行审核成功的预约中状态
|
||||
if($order["type"] == '2'){
|
||||
//兼容代下单逻辑,修正下单人信息
|
||||
// $user_id =$order['user_id'];
|
||||
|
||||
// var_dump($order["status"]);
|
||||
|
||||
//do something...
|
||||
$this->examine($order_no,1,"",0,false,$order["help_type"],$order["help_user_id"],false);
|
||||
if(config("site.admin_approved_swtich"))$this->examine($order_no,1,"",0,false,$order["help_type"],$order["help_user_id"],false);
|
||||
|
||||
}
|
||||
if ($trans) {
|
||||
|
@ -668,6 +673,7 @@ class Order extends BaseModel
|
|||
$classes_lib_spec_data = $classes_lib_spec->toArray();
|
||||
$classes_lib_spec_data['classes_lib_spec_id'] = $classes_lib_spec_data['id'];
|
||||
unset($classes_lib_spec_data['id']);
|
||||
unset($classes_lib_spec_data['status']);
|
||||
unset($classes_lib_spec_data['createtime']);
|
||||
unset($classes_lib_spec_data['updatetime']);
|
||||
unset($classes_lib_spec_data['deletetime']);
|
||||
|
@ -705,13 +711,13 @@ class Order extends BaseModel
|
|||
$order = self::buildLibSpec($res1,$classes_lib_spec_id);
|
||||
|
||||
//扣减课程数
|
||||
$res1 = \app\common\model\school\classes\order\Order::statisticsAndUpdateClassesNumber($classes_order_id);
|
||||
\app\common\model\school\classes\order\Order::statisticsAndUpdateClassesNumber($classes_order_id);
|
||||
|
||||
//记录订单日志
|
||||
if($order["type"] == "1"){
|
||||
OrderLog::log($res1['id'],"课时预约下单成功,等待机构老师审核",'user',$user_id);
|
||||
OrderLog::log($order['id'],"课时预约下单成功,等待机构老师审核",'user',$user_id);
|
||||
}else{
|
||||
OrderLog::log($res1['id'],"课时预约机构老师代下单成功",'user',$order["help_user_id"]);
|
||||
OrderLog::log($order['id'],"课时预约机构老师代下单成功",'user',$order["help_user_id"]);
|
||||
}
|
||||
|
||||
//7事件
|
||||
|
@ -772,10 +778,10 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order];
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classeshour_order_cancel_after', $data);
|
||||
//执行课时数更新
|
||||
$res1 = \app\common\model\school\classes\order\Order::statisticsAndUpdateClassesNumber($order['classes_order_id']);
|
||||
\app\common\model\school\classes\order\Order::statisticsAndUpdateClassesNumber($order['classes_order_id']);
|
||||
|
||||
|
||||
if($trans){
|
||||
|
@ -877,6 +883,10 @@ class Order extends BaseModel
|
|||
$admin_info = Admin::where('id',$oper_id)->find();
|
||||
if(!$admin_info) throw new \Exception("代下单管理员不存在!");
|
||||
break;
|
||||
case 'shop':
|
||||
$admin_info = Manystore::where('id',$oper_id)->find();
|
||||
if(!$admin_info) throw new \Exception("代下单管理员不存在!");
|
||||
break;
|
||||
default:
|
||||
throw new \Exception("请选择正确的代下单类型!");
|
||||
}
|
||||
|
@ -957,8 +967,11 @@ class Order extends BaseModel
|
|||
* @throws \Exception
|
||||
*/
|
||||
public function examine($order_no,$auth_status,$reason="",$user_id=0,$check=false,$oper_type='user',$oper_id=0,$trans=false){
|
||||
|
||||
|
||||
//得到可取消订单
|
||||
$order = self::getHaveExamineOrder($order_no);
|
||||
|
||||
if($check){
|
||||
//用户操作权限检测
|
||||
self::checkOptionAuth($order['classes_order_id'],$user_id ?: $oper_id,$oper_type);
|
||||
|
@ -991,7 +1004,7 @@ class Order extends BaseModel
|
|||
|
||||
OrderLog::log($order['id'],$pron."课时预约单审核成功,预约成功等待核销!",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
//调用订单事件
|
||||
$data = ['order' => $order];
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classeshour_order_auth_success_after', $data);
|
||||
|
||||
}else{
|
||||
|
@ -1002,7 +1015,7 @@ class Order extends BaseModel
|
|||
//审核失败逻辑
|
||||
OrderLog::log($order['id'],$pron."课时预约单审核不通过,原因;{$reason},该课时单将取消以便重新下单",$oper_type ?: 'user', $oper_id ?: $order['user_id']);
|
||||
//调用订单事件
|
||||
$data = ['order' => $order];
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classeshour_order_auth_fail_after', $data);
|
||||
|
||||
//执行订单取消逻辑
|
||||
|
@ -1103,10 +1116,10 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order];
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classeshour_order_finish_after', $data);
|
||||
//执行课时数更新
|
||||
$res1 = \app\common\model\school\classes\order\Order::statisticsAndUpdateClassesNumber($order['classes_order_id']);
|
||||
\app\common\model\school\classes\order\Order::statisticsAndUpdateClassesNumber($order['classes_order_id']);
|
||||
|
||||
|
||||
if($trans){
|
||||
|
@ -1171,7 +1184,7 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单事件
|
||||
$data = ['order' => $order];
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classeshour_order_update_after', $data);
|
||||
//执行课时数更新
|
||||
$res1 = \app\common\model\school\classes\order\Order::statisticsAndUpdateClassesNumber($order['classes_order_id']);
|
||||
|
|
|
@ -59,7 +59,10 @@ class OrderLog extends BaseModel
|
|||
* @throws \Exception
|
||||
*/
|
||||
public static function log($order,$mark='更新订单状态',$oper_type='user',$oper_id = 0,$trans=false){
|
||||
if(is_numeric($order))$order = Order::where('order_no|id',$order)->find();
|
||||
// var_dump($order);
|
||||
if(is_numeric($order)||is_string($order))$order = Order::where('order_no|id',$order)->find();
|
||||
|
||||
|
||||
if(!$order)throw new \Exception("找不到订单");
|
||||
//操作人信息(可扩展)
|
||||
$data = [
|
||||
|
|
|
@ -1044,7 +1044,7 @@ class Order extends BaseModel
|
|||
}
|
||||
|
||||
//调用订单取消事件
|
||||
$data = ['order' => $order];
|
||||
$data = ['order' => $order,"user_id"=>$user_id,"oper_type"=>$oper_type,"oper_id"=>$oper_id];
|
||||
\think\Hook::listen('classes_order_cancel_after', $data);
|
||||
//执行课时数更新
|
||||
$res1 = self::statisticsAndUpdateClassesNumber($order['id']);
|
||||
|
|
|
@ -104,7 +104,7 @@ class OrderLog extends BaseModel
|
|||
* @throws \Exception
|
||||
*/
|
||||
public static function log($order,$mark='更新订单状态',$oper_type='user',$oper_id = 0,$trans=false){
|
||||
if(is_numeric($order))$order = Order::where('order_no|id|pay_no',$order)->find();
|
||||
if(is_numeric($order)||is_string($order))$order = Order::where('order_no|id|pay_no',$order)->find();
|
||||
if(!$order)throw new \Exception("找不到订单");
|
||||
//操作人信息(可扩展)
|
||||
$data = [
|
||||
|
|
|
@ -72,4 +72,33 @@ class UserAuth extends ManystoreBase
|
|||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**变更学员信息(教练专属)
|
||||
* @return string
|
||||
* @throws \think\Exception
|
||||
* @throws \think\exception\DbException
|
||||
*/
|
||||
public function changeuser(){
|
||||
if($this->request->isPost())
|
||||
{
|
||||
try{
|
||||
$people_name = $this->request->param('people_name/s');
|
||||
$people_mobile = $this->request->param('people_mobile/s');
|
||||
$user = \app\common\model\User::where("mobile",$people_mobile)->find();
|
||||
//检测更新教练下单学员账号创建状态 2022/8/27 new
|
||||
if(!$user)$user = (new \app\common\model\User)->addUserByMobile($people_mobile,$people_name);
|
||||
$user['nickname'] = $people_name;
|
||||
$user->save();
|
||||
}catch (\Exception $e){
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
//退押金
|
||||
$this->success("已成功创建{$people_name}");
|
||||
}
|
||||
// $row = $this->model->get($param['ids']);
|
||||
// $this->view->assign('vo', $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -326,6 +326,7 @@ class ClassesLib extends ManystoreBase
|
|||
if($check_title){
|
||||
$this->error("课程名称已存在或被其他机构占用,请更改!");
|
||||
}
|
||||
$this->have_auth = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -365,6 +366,15 @@ class ClassesLib extends ManystoreBase
|
|||
}
|
||||
$this->update_check($params,$row=null);
|
||||
$result = $this->model->allowField(true)->save($params);
|
||||
|
||||
if($this->have_auth){
|
||||
//调用通过事件
|
||||
$data = ['classes' => $this->model];
|
||||
\think\Hook::listen('classes_auth_need_after', $data);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Db::commit();
|
||||
} catch (ValidateException $e) {
|
||||
Db::rollback();
|
||||
|
@ -417,6 +427,15 @@ class ClassesLib extends ManystoreBase
|
|||
|
||||
|
||||
$result = $row->allowField(true)->save($params);
|
||||
|
||||
if($this->have_auth){
|
||||
//调用通过事件
|
||||
$data = ['classes' => $row];
|
||||
\think\Hook::listen('classes_auth_need_after', $data);
|
||||
|
||||
}
|
||||
|
||||
|
||||
Db::commit();
|
||||
} catch (ValidateException $e) {
|
||||
Db::rollback();
|
||||
|
|
|
@ -261,9 +261,9 @@ class ClassesSpec extends ManystoreBase
|
|||
}
|
||||
|
||||
|
||||
$user = User::where("id", $row["user_id"])->find();
|
||||
// if(!$user) $this->error("未找到用户请先让用户登录小程序再提交表单");
|
||||
$row["user_id"] = $user["mobile"]?? ""; //nickname|realname|mobile
|
||||
// $user = User::where("id", $row["user_id"])->find();
|
||||
//// if(!$user) $this->error("未找到用户请先让用户登录小程序再提交表单");
|
||||
// $row["user_id"] = $user["mobile"]?? ""; //nickname|realname|mobile
|
||||
$this->view->assign("row", $row);
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
|
|
@ -3,6 +3,9 @@
|
|||
namespace app\manystore\controller\school\classes\hourorder;
|
||||
|
||||
use app\common\controller\ManystoreBase;
|
||||
use think\Db;
|
||||
use think\exception\PDOException;
|
||||
use think\exception\ValidateException;
|
||||
|
||||
/**
|
||||
* 课时订单
|
||||
|
@ -18,11 +21,17 @@ class Order extends ManystoreBase
|
|||
*/
|
||||
protected $model = null;
|
||||
|
||||
protected $qSwitch = true;
|
||||
protected $qFields = ["classes_order_id","classes_lib_spec_id","user_id","classes_order_detail_id","classes_lib_id"];
|
||||
|
||||
|
||||
public function _initialize()
|
||||
{
|
||||
parent::_initialize();
|
||||
$this->model = new \app\manystore\model\school\classes\hourorder\Order;
|
||||
parent::_initialize();
|
||||
|
||||
$this->view->assign("statusList", $this->model->getStatusList());
|
||||
$this->view->assign("authStatusList", $this->model->getAuthStatusList());
|
||||
}
|
||||
|
||||
public function import()
|
||||
|
@ -75,4 +84,237 @@ class Order extends ManystoreBase
|
|||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 添加
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
if ($this->request->isPost()) {
|
||||
$params = $this->request->post("row/a");
|
||||
if ($params) {
|
||||
$params = $this->preExcludeFields($params);
|
||||
|
||||
if($this->storeIdFieldAutoFill && STORE_ID ){
|
||||
$params['store_id'] = STORE_ID;
|
||||
}
|
||||
|
||||
if($this->shopIdAutoCondition && SHOP_ID){
|
||||
$params['shop_id'] = SHOP_ID;
|
||||
}
|
||||
|
||||
$result = false;
|
||||
|
||||
try {
|
||||
//是否采用模型验证
|
||||
if ($this->modelValidate) {
|
||||
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
|
||||
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;
|
||||
$this->model->validateFailException(true)->validate($validate);
|
||||
}
|
||||
|
||||
|
||||
//记录代下单人信息
|
||||
$param = [
|
||||
"type" =>'2',
|
||||
"help_user_id" =>$this->auth->id,
|
||||
"help_type" => 'shop',
|
||||
];
|
||||
//确认订单
|
||||
$res = (new \app\common\model\school\classes\hourorder\Order)->confirm($this->auth->id,$params['classes_order_id'],null, $params['classes_lib_spec_id'],$param, true);
|
||||
$remark = "总后台管理员帮忙下课时预约";
|
||||
//创建订单
|
||||
$result = (new \app\common\model\school\classes\hourorder\Order)->cacheCreateOrder($res['order_no'], $this->auth->id,$remark, true);
|
||||
|
||||
|
||||
|
||||
|
||||
} catch (ValidateException $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
} catch (PDOException $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
} catch (\Exception $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
if ($result !== false) {
|
||||
$this->success();
|
||||
} else {
|
||||
$this->error(__('No rows were inserted'));
|
||||
}
|
||||
}
|
||||
$this->error(__('Parameter %s can not be empty', ''));
|
||||
}
|
||||
return $this->view->fetch();
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑
|
||||
*/
|
||||
public function edit($ids = null)
|
||||
{
|
||||
if($this->shopIdAutoCondition){
|
||||
$this->model->where(array('shop_id'=>SHOP_ID));
|
||||
}
|
||||
$row = $this->model->where(array('id'=>$ids))->find();
|
||||
if (!$row) {
|
||||
$this->error(__('No Results were found'));
|
||||
}
|
||||
|
||||
if ($this->request->isPost()) {
|
||||
$params = $this->request->post("row/a");
|
||||
if ($params) {
|
||||
$params = $this->preExcludeFields($params);
|
||||
$result = false;
|
||||
|
||||
try {
|
||||
//是否采用模型验证
|
||||
if ($this->modelValidate) {
|
||||
$name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
|
||||
$validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.edit' : $name) : $this->modelValidate;
|
||||
$row->validateFailException(true)->validate($validate);
|
||||
}
|
||||
|
||||
|
||||
$result = (new \app\common\model\school\classes\hourorder\Order)->updateClassesSpec($row["id"],$params["classes_lib_spec_id"],0,true,'shop',$this->auth->id,true);
|
||||
|
||||
|
||||
|
||||
} catch (ValidateException $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
} catch (PDOException $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
} catch (\Exception $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
if ($result !== false) {
|
||||
$this->success();
|
||||
} else {
|
||||
$this->error(__('No rows were updated'));
|
||||
}
|
||||
}
|
||||
$this->error(__('Parameter %s can not be empty', ''));
|
||||
}
|
||||
$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) {
|
||||
$pk = $this->model->getPk();
|
||||
if($this->shopIdAutoCondition){
|
||||
$this->model->where(array('shop_id'=>SHOP_ID));
|
||||
}
|
||||
$list = $this->model->where($pk, 'in', $ids)->select();
|
||||
|
||||
$count = 0;
|
||||
|
||||
try {
|
||||
foreach ($list as $k => $v) {
|
||||
$res = (new \app\common\model\school\classes\hourorder\Order)->cancel($v["id"],0,true,'shop',$this->auth->id,true);
|
||||
|
||||
$count ++;
|
||||
}
|
||||
|
||||
} catch (PDOException $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
} catch (\Exception $e) {
|
||||
|
||||
$this->error($e->getMessage());
|
||||
}
|
||||
if ($count) {
|
||||
$this->success();
|
||||
} else {
|
||||
$this->error(__('No rows were deleted'));
|
||||
}
|
||||
}
|
||||
$this->error(__('Parameter %s can not be empty', 'ids'));
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**预约审核
|
||||
* @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\hourorder\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\hourorder\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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -80,4 +80,34 @@ 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\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();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -4,8 +4,8 @@ return [
|
|||
'Manystore_id' => '机构账号id',
|
||||
'Shop_id' => '机构店铺id',
|
||||
'User_id' => '主讲师用户id',
|
||||
'Classes_cate_ids' => '平台课程分类ids',
|
||||
'Classes_label_ids' => '平台课程类型ids',
|
||||
'Classes_cate_ids' => '平台课程分类',
|
||||
'Classes_label_ids' => '平台课程热门标签',
|
||||
'Self_label_tag' => '机构特色标签',
|
||||
'Add_type' => '添加人类型',
|
||||
'Add_type 1' => '机构',
|
||||
|
|
|
@ -2,8 +2,21 @@
|
|||
|
||||
return [
|
||||
'Order_no' => '订单号',
|
||||
|
||||
'Edit'=>'修改用户预约的课时',
|
||||
'Add'=>'帮用户预约课时',
|
||||
'Delete'=>'帮用户取消预约',
|
||||
'Del'=>'帮用户取消预约',
|
||||
'Auth_status' => '审核状态',
|
||||
'Auth_status 0' => '待审核',
|
||||
'Auth_status 1' => '审核通过',
|
||||
'Auth_status 2' => '审核失败',
|
||||
'Reason' => '审核不通过原因',
|
||||
'Auth_time' => '审核时间',
|
||||
'Admin_id' => '审核管理员id',
|
||||
|
||||
'Classes_order_id' => '课程订单id',
|
||||
'Classes_lib_spec_id' => '课时id',
|
||||
'Classes_lib_spec_id' => '选择要预约的课时',
|
||||
'User_id' => '下单人id',
|
||||
'Classes_order_detail_id' => '订单课程id',
|
||||
'Classes_lib_id' => '课程id',
|
||||
|
|
|
@ -4,6 +4,7 @@ return [
|
|||
'Order_no' => '订单号',
|
||||
'Pay_no' => '微信支付单号',
|
||||
'User_id' => '下单人id',
|
||||
'Edit'=>'订单详情',
|
||||
'Manystore_id' => '机构账号id',
|
||||
'Shop_id' => '机构店铺id',
|
||||
'Code' => '核销码',
|
||||
|
|
|
@ -29,7 +29,10 @@ class ManystoreShop extends Model
|
|||
'update_time_text'
|
||||
];
|
||||
|
||||
|
||||
public function user()
|
||||
{
|
||||
return $this->belongsTo('app\common\model\User', 'user_id', 'id', [], 'LEFT')->setEagerlyType(0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -30,11 +30,25 @@ class Order extends Model
|
|||
'status_text',
|
||||
'reservation_time_text',
|
||||
'finish_time_text',
|
||||
'cancel_time_text'
|
||||
'cancel_time_text',
|
||||
'auth_status_text',
|
||||
];
|
||||
|
||||
|
||||
|
||||
|
||||
public function getAuthStatusList()
|
||||
{
|
||||
return ['0' => __('Auth_status 0'), '1' => __('Auth_status 1'), '2' => __('Auth_status 2')];
|
||||
}
|
||||
|
||||
public function getAuthStatusTextAttr($value, $data)
|
||||
{
|
||||
$value = $value ? $value : (isset($data['auth_status']) ? $data['auth_status'] : '');
|
||||
$list = $this->getAuthStatusList();
|
||||
return isset($list[$value]) ? $list[$value] : '';
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function getStatusList()
|
||||
{
|
||||
return ['-3' => __('Status -3'),'-1' => __('Status -1'), '0' => __('Status 0'), '3' => __('Status 3')];
|
||||
|
|
|
@ -213,9 +213,9 @@
|
|||
data-toggle="city-picker" name="shop[address_city]"
|
||||
value="{$shop_info.address_city}" type="text">
|
||||
</div>
|
||||
<input type="hidden" id="province" name="shop[province]" value="">
|
||||
<input type="hidden" id="city" name="shop[city]" value="">
|
||||
<input type="hidden" id="district" name="shop[district]" value="">
|
||||
<input type="hidden" id="province" name="shop[province]" value="{$shop_info.province}">
|
||||
<input type="hidden" id="city" name="shop[city]" value="{$shop_info.city}">
|
||||
<input type="hidden" id="district" name="shop[district]" value="{$shop_info.district}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
<form id="changeuser-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
|
||||
<fieldset>
|
||||
<legend><h4>根据手机号和姓名创建用户(已存在则不更改任何信息!)</h4></legend>
|
||||
<div class="form-group">
|
||||
<label for="c-people_name" class="control-label col-xs-12 col-sm-2">姓名(昵称):</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input placeholder="" id="c-people_name" data-rule="required" class="form-control" name="people_name" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-people_mobile" class="control-label col-xs-12 col-sm-2">手机号:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input placeholder="" id="c-people_mobile" data-rule="required" class="form-control" name="people_mobile" type="text" value="">
|
||||
<span style="color: red">(手机号将自动创建并关联对应微信小程序账号,请认真核对确认无误!)</span>
|
||||
</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="changeuser" data-type="changeuser" class="btn btn-success btn-embossed">确认创建</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
|
@ -22,6 +22,13 @@
|
|||
<label class="control-label col-xs-12 col-sm-2">{:__('讲师id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-teacher_id" data-rule="required" data-source="school/classes/teacher/index" data-field="name" class="form-control selectpage" name="row[teacher_id]" type="text" value="">
|
||||
<span style="color: red">
|
||||
<br><br>
|
||||
(没找到讲师则点击按钮创建讲师后重新下拉框选讲师)
|
||||
<a href="javascript:;" data-url="school/classes/teacher/add" class="btn btn-success btn-changeuser {:$auth->check('school/classes/teacher/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
|
||||
</span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -203,12 +210,12 @@
|
|||
</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-virtual_people" class="form-control" name="row[virtual_people]" type="number">-->
|
||||
<!-- </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-virtual_people" class="form-control" name="row[virtual_people]" type="number">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
@ -227,12 +234,12 @@
|
|||
<span style="color: red">( 如果填零则为免费课程,课程下单后无需支付,直接可去预约课时! )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Underline_price')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-underline_price" class="form-control" step="0.01" name="row[underline_price]" type="number">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Underline_price')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-underline_price" class="form-control" step="0.01" name="row[underline_price]" type="number">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Virtual_collect')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -23,6 +23,12 @@
|
|||
<label class="control-label col-xs-12 col-sm-2">{:__('讲师id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-teacher_id" data-rule="required" data-source="school/classes/teacher/index" data-field="name" class="form-control selectpage" name="row[teacher_id]" type="text" value="{$row.teacher_id|htmlentities}">
|
||||
<span style="color: red">
|
||||
<br><br>
|
||||
(没找到讲师则点击按钮创建讲师后重新下拉框选讲师)
|
||||
<a href="javascript:;" data-url="school/classes/teacher/add" class="btn btn-success btn-changeuser {:$auth->check('school/classes/teacher/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
|
||||
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
@ -218,12 +224,12 @@
|
|||
<span style="color: red">( 如果填零则为免费课程,课程下单后无需支付,直接可去预约课时! )</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Underline_price')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-underline_price" class="form-control" step="0.01" name="row[underline_price]" type="number" value="{$row.underline_price|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Underline_price')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-underline_price" class="form-control" step="0.01" name="row[underline_price]" type="number" value="{$row.underline_price|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Virtual_collect')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
|
|
@ -1,111 +1,12 @@
|
|||
<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">{:__('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">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_order_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_order_id" data-rule="required" data-source="classes/order/index" class="form-control selectpage" name="row[classes_order_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<input id="c-classes_lib_id" name="row[classes_lib_id]" type="hidden" value="{$q_classes_lib_id}">
|
||||
<input id="c-classes_order_id" name="row[classes_order_id]" type="hidden" value="{$q_classes_order_id}">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_lib_spec_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_lib_spec_id" data-rule="required" data-source="classes/lib/spec/index" class="form-control selectpage" name="row[classes_lib_spec_id]" type="text" value="">
|
||||
</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="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_order_detail_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_order_detail_id" data-rule="required" data-source="classes/order/detail/index" class="form-control selectpage" name="row[classes_order_detail_id]" type="text" value="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_lib_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_lib_id" data-rule="required" data-source="classes/lib/index" class="form-control selectpage" name="row[classes_lib_id]" type="text" value="">
|
||||
</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">{:__('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">{:__('End_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-end_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[end_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">{:__('Limit_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-limit_num" class="form-control" name="row[limit_num]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Sign_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-sign_num" class="form-control" name="row[sign_num]" type="number" value="0">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Verification_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-verification_num" class="form-control" name="row[verification_num]" type="number">
|
||||
</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="-3"}checked{/in} /> {$vo}</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
|
||||
</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="">
|
||||
</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="{:date('Y-m-d H:i:s')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Finish_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-finish_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[finish_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">{:__('Cancel_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-cancel_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[cancel_time]" type="text" value="{:date('Y-m-d H:i:s')}">
|
||||
<input id="c-classes_lib_spec_id" data-rule="required" data-source="school/classes/classes_spec/index" class="form-control selectpage" name="row[classes_lib_spec_id]" type="text" value="{$q_classes_lib_spec_id}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group layer-footer">
|
||||
|
|
|
@ -1,113 +1,20 @@
|
|||
<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">{:__('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}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_order_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_order_id" data-rule="required" data-source="classes/order/index" class="form-control selectpage" name="row[classes_order_id]" type="text" value="{$row.classes_order_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input id="c-classes_lib_id" name="row[classes_lib_id]" type="hidden" value="{$row.classes_lib_id|htmlentities}">
|
||||
<input id="c-classes_order_id" name="row[classes_order_id]" type="hidden" value="{$row.classes_order_id|htmlentities}">
|
||||
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_lib_spec_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_lib_spec_id" data-rule="required" data-source="classes/lib/spec/index" class="form-control selectpage" name="row[classes_lib_spec_id]" type="text" value="{$row.classes_lib_spec_id|htmlentities}">
|
||||
<input id="c-classes_lib_spec_id" data-rule="required" data-source="school/classes/classes_spec/index" class="form-control selectpage" name="row[classes_lib_spec_id]" type="text" value="{$row.classes_lib_spec_id|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">{:__('Classes_order_detail_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_order_detail_id" data-rule="required" data-source="classes/order/detail/index" class="form-control selectpage" name="row[classes_order_detail_id]" type="text" value="{$row.classes_order_detail_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_lib_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_lib_id" data-rule="required" data-source="classes/lib/index" class="form-control selectpage" name="row[classes_lib_id]" type="text" value="{$row.classes_lib_id|htmlentities}">
|
||||
</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">{:__('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">{:__('End_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-end_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[end_time]" type="text" value="{:$row.end_time?datetime($row.end_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Limit_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-limit_num" class="form-control" name="row[limit_num]" type="number" value="{$row.limit_num|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Sign_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-sign_num" class="form-control" name="row[sign_num]" type="number" value="{$row.sign_num|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Verification_num')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-verification_num" class="form-control" name="row[verification_num]" type="number" value="{$row.verification_num|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">{:__('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}">
|
||||
</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):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Finish_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-finish_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[finish_time]" type="text" value="{:$row.finish_time?datetime($row.finish_time):''}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Cancel_time')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-cancel_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[cancel_time]" type="text" value="{:$row.cancel_time?datetime($row.cancel_time):''}">
|
||||
</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">
|
||||
|
|
|
@ -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,29 @@
|
|||
<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>
|
||||
|
||||
{neq name="q_classes_order_id" value=""}
|
||||
<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('school/classes/hourorder/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/hourorder/order/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
|
||||
{/neq}
|
||||
|
||||
|
||||
|
||||
<a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('school/classes/hourorder/order/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/hourorder/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/hourorder/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/hourorder/order/recyclebin')?'':'hide'}" href="school/classes/hourorder/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/hourorder/order/recyclebin')?'':'hide'}" href="school/classes/hourorder/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/hourorder/order/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/hourorder/order/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/hourorder/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/hourorder/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/hourorder/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/hourorder/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/hourorder/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/hourorder/order_log/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/hourorder/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/hourorder/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>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/hourorder/order_log/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/hourorder/order_log/del')}"
|
||||
data-operate-edit="0"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -3,98 +3,99 @@
|
|||
<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" class="form-control" name="row[order_no]" readonly disabled 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" class="form-control" name="row[pay_no]" readonly disabled 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" data-rule="required" data-source="user/user/index" disabled readonly data-field="mobile" data-format-item="{id} - {nickname} - {mobile}" 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">{:__('Shop_id')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-shop_id" data-rule="required" data-source="dyqc/manystore_shop/index" disabled readonly 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}">
|
||||
</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>
|
||||
<input id="c-code" class="form-control" name="row[code]" readonly disabled 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,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>-->
|
||||
<!-- </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,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>-->
|
||||
<!-- </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_lib_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_lib_id" data-rule="required" data-source="classes/lib/index" class="form-control selectpage" name="row[classes_lib_id]" type="text" value="{$row.classes_lib_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Classes_order_detail_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-classes_order_detail_id" data-rule="required" data-source="classes/order/detail/index" class="form-control selectpage" name="row[classes_order_detail_id]" type="text" value="{$row.classes_order_detail_id|htmlentities}">
|
||||
<input id="c-classes_lib_id" data-rule="required" readonly disabled data-source="school/classes/classes_lib/index" data-field="title" class="form-control selectpage" name="row[classes_lib_id]" type="text" value="{$row.classes_lib_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Classes_order_detail_id')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-classes_order_detail_id" data-rule="required" data-source="school/classes/order/detail/index" class="form-control selectpage" name="row[classes_order_detail_id]" type="text" value="{$row.classes_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" step="0.01" readonly disabled 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" step="0.01" readonly disabled 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" step="0.01" readonly disabled 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" class="form-control selectpicker" readonly disabled name="row[pay_type]">
|
||||
{foreach name="payTypeList" item="vo"}
|
||||
<option value="{$key}" {in name="key" value="$row.pay_type"}selected{/in}>{$vo}</option>
|
||||
<option value="{$key}" {in name="key" value="$row.pay_type"}selected{/in}>{$vo}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
|
@ -103,156 +104,150 @@
|
|||
<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}
|
||||
{foreach name="statusList" item="vo"}
|
||||
<label for="row[status]-{$key}"><input id="row[status]-{$key}" name="row[status]" readonly disabled 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">{:__('Before_status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<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>
|
||||
{/foreach}
|
||||
</div>
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Before_status')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- -->
|
||||
<!-- <div class="radio">-->
|
||||
<!-- {foreach name="beforeStatusList" item="vo"}-->
|
||||
<!-- <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>-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Server_status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<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>
|
||||
{/foreach}
|
||||
</div>
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Server_status')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- -->
|
||||
<!-- <div class="radio">-->
|
||||
<!-- {foreach name="serverStatusList" item="vo"}-->
|
||||
<!-- <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>-->
|
||||
|
||||
</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}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_manystore_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-auth_manystore_id" data-rule="required" data-source="auth/manystore/index" class="form-control selectpage" name="row[auth_manystore_id]" type="text" value="{$row.auth_manystore_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_opinion')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-auth_opinion" class="form-control" name="row[auth_opinion]" type="text" value="{$row.auth_opinion|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Auth_file')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-auth_file" class="form-control" size="50" name="row[auth_file]" type="text" value="{$row.auth_file|htmlentities}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-auth_file" class="btn btn-danger faupload" data-input-id="c-auth_file" data-multiple="false" data-preview-id="p-auth_file"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-auth_file" class="btn btn-primary fachoose" data-input-id="c-auth_file" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-auth_file"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-auth_file"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Admin_id')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-admin_id" data-rule="required" data-source="auth/admin/selectpage" class="form-control selectpage" name="row[admin_id]" type="text" value="{$row.admin_id|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Result_status')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
|
||||
<div class="radio">
|
||||
{foreach name="resultStatusList" item="vo"}
|
||||
<label for="row[result_status]-{$key}"><input id="row[result_status]-{$key}" name="row[result_status]" type="radio" value="{$key}" {in name="key" value="$row.result_status"}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="{$row.reason|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Auth_manystore_id')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-auth_manystore_id" data-rule="required" data-source="auth/manystore/index" class="form-control selectpage" name="row[auth_manystore_id]" type="text" value="{$row.auth_manystore_id|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Auth_opinion')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-auth_opinion" class="form-control" name="row[auth_opinion]" type="text" value="{$row.auth_opinion|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Auth_file')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <div class="input-group">-->
|
||||
<!-- <input id="c-auth_file" class="form-control" size="50" name="row[auth_file]" type="text" value="{$row.auth_file|htmlentities}">-->
|
||||
<!-- <div class="input-group-addon no-border no-padding">-->
|
||||
<!-- <span><button type="button" id="faupload-auth_file" class="btn btn-danger faupload" data-input-id="c-auth_file" data-multiple="false" data-preview-id="p-auth_file"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>-->
|
||||
<!-- <span><button type="button" id="fachoose-auth_file" class="btn btn-primary fachoose" data-input-id="c-auth_file" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <span class="msg-box n-right" for="c-auth_file"></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <ul class="row list-inline faupload-preview" id="p-auth_file"></ul>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Result_status')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- -->
|
||||
<!-- <div class="radio">-->
|
||||
<!-- {foreach name="resultStatusList" item="vo"}-->
|
||||
<!-- <label for="row[result_status]-{$key}"><input id="row[result_status]-{$key}" name="row[result_status]" type="radio" value="{$key}" {in name="key" value="$row.result_status"}checked{/in} /> {$vo}</label> -->
|
||||
<!-- {/foreach}-->
|
||||
<!-- </div>-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Result_text')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-result_text" class="form-control" name="row[result_text]" type="text" value="{$row.result_text|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Result_file')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input id="c-result_file" class="form-control" size="50" name="row[result_file]" type="text" value="{$row.result_file|htmlentities}">
|
||||
<div class="input-group-addon no-border no-padding">
|
||||
<span><button type="button" id="faupload-result_file" class="btn btn-danger faupload" data-input-id="c-result_file" data-multiple="false" data-preview-id="p-result_file"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
<span><button type="button" id="fachoose-result_file" class="btn btn-primary fachoose" data-input-id="c-result_file" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
|
||||
</div>
|
||||
<span class="msg-box n-right" for="c-result_file"></span>
|
||||
</div>
|
||||
<ul class="row list-inline faupload-preview" id="p-result_file"></ul>
|
||||
</div>
|
||||
</div>
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Result_text')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <input id="c-result_text" class="form-control" name="row[result_text]" type="text" value="{$row.result_text|htmlentities}">-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="form-group">-->
|
||||
<!-- <label class="control-label col-xs-12 col-sm-2">{:__('Result_file')}:</label>-->
|
||||
<!-- <div class="col-xs-12 col-sm-8">-->
|
||||
<!-- <div class="input-group">-->
|
||||
<!-- <input id="c-result_file" class="form-control" size="50" name="row[result_file]" type="text" value="{$row.result_file|htmlentities}">-->
|
||||
<!-- <div class="input-group-addon no-border no-padding">-->
|
||||
<!-- <span><button type="button" id="faupload-result_file" class="btn btn-danger faupload" data-input-id="c-result_file" data-multiple="false" data-preview-id="p-result_file"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>-->
|
||||
<!-- <span><button type="button" id="fachoose-result_file" class="btn btn-primary fachoose" data-input-id="c-result_file" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <span class="msg-box n-right" for="c-result_file"></span>-->
|
||||
<!-- </div>-->
|
||||
<!-- <ul class="row list-inline faupload-preview" id="p-result_file"></ul>-->
|
||||
<!-- </div>-->
|
||||
<!-- </div>-->
|
||||
<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">{:__('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" step="0.01" readonly disabled 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" step="0.01" readonly disabled 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" step="0.01" readonly disabled name="row[sub_refundprice]" type="number" value="{$row.sub_refundprice|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>
|
||||
<!-- <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>
|
||||
|
|
|
@ -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/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/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/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/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/order/order/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/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/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/order/order/recyclebin')?'':'hide'}" href="school/classes/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/order/order/recyclebin')?'':'hide'}" href="school/classes/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/order/order/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/order/order/del')}"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -7,23 +7,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/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/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/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/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/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/order/order_detail/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/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/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/order/order_detail/recyclebin')?'':'hide'}" href="school/classes/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/order/order_detail/recyclebin')?'':'hide'}" href="school/classes/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/order/order_detail/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/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/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/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/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/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/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/order/order_log/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>-->
|
||||
|
||||
<div class="dropdown btn-group {:$auth->check('school/classes/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/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>
|
||||
<table id="table" class="table table-striped table-bordered table-hover table-nowrap"
|
||||
data-operate-edit="{:$auth->check('school/classes/order/order_log/edit')}"
|
||||
data-operate-del="{:$auth->check('school/classes/order/order_log/del')}"
|
||||
data-operate-edit="0"
|
||||
data-operate-del="0"
|
||||
width="100%">
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -10,7 +10,11 @@
|
|||
<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" class="form-control" name="row[user_id]" type="text" value="">
|
||||
<span style="color: red">(请先让对方登录小程序,之后输入小程序端用户:手机号,昵称 或 姓名 )</span>
|
||||
<!-- <span style="color: red">(请先让对方登录小程序,之后输入小程序端用户:手机号,昵称 或 姓名 )</span>-->
|
||||
<span style="color: red">
|
||||
(没找到用户则点击按钮创建用户后重新填入用户手机号)
|
||||
<a data-url="manystore/user_auth/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('manystore/user_auth/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
@ -10,7 +10,11 @@
|
|||
<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" class="form-control" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
<span style="color: red">(请先让对方登录小程序,之后输入小程序端用户:手机号,昵称 或 姓名 )</span>
|
||||
<!-- <span style="color: red">(请先让对方登录小程序,之后输入小程序端用户:手机号,昵称 或 姓名 )</span>-->
|
||||
<span style="color: red">
|
||||
(没找到用户则点击按钮创建用户后重新填入用户手机号)
|
||||
<a data-url="manystore/user_auth/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('manystore/user_auth/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -10,7 +10,11 @@
|
|||
<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" class="form-control" name="row[user_id]" type="text" value="">
|
||||
<span style="color: red">(请先让对方登录小程序,之后输入小程序端用户:手机号,昵称 或 姓名 )</span>
|
||||
<!-- <span style="color: red">(请先让对方登录小程序,之后输入小程序端用户:手机号,昵称 或 姓名 )</span>-->
|
||||
<span style="color: red">
|
||||
(没找到用户则点击按钮创建用户后重新填入用户手机号)
|
||||
<a data-url="manystore/user_auth/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('manystore/user_auth/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -10,7 +10,11 @@
|
|||
<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" class="form-control" name="row[user_id]" type="text" value="{$row.user_id|htmlentities}">
|
||||
<span style="color: red">(请先让对方登录小程序,之后输入小程序端用户:手机号,昵称 或 姓名 )</span>
|
||||
<!-- <span style="color: red">(请先让对方登录小程序,之后输入小程序端用户:手机号,昵称 或 姓名 )</span>-->
|
||||
<span style="color: red">
|
||||
(没找到用户则点击按钮创建用户后重新填入用户手机号)
|
||||
<a data-url="manystore/user_auth/changeuser" href="javascript:;" class="btn btn-success btn-changeuser {:$auth->check('manystore/user_auth/changeuser')?'':'hide'}" title="根据手机号生成用户" ><i class="fa fa-plus"></i> 根据手机号生成用户</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
|
|
|
@ -25,7 +25,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{field: 'operate', title: __('Operate'),width:700, table: table , buttons: [
|
||||
{field: 'operate', title: __('Operate'),width:750, table: table , buttons: [
|
||||
{name: 'free',
|
||||
text: '免登录进入机构后台',
|
||||
icon: 'fa fa-sign-in',
|
||||
|
@ -38,7 +38,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
//js获取当前域名
|
||||
|
||||
|
||||
window.open("https://"+window.location.host + "/manystore", '_blank');
|
||||
window.open(shop_backend_url, '_blank');
|
||||
},
|
||||
error: function (data, ret) {
|
||||
Layer.alert(ret.msg);
|
||||
|
@ -108,6 +108,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
{
|
||||
name: 'order',
|
||||
text: __('机构课程订单'),
|
||||
title: __('机构课程订单'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
|
||||
//
|
||||
// {name: 'unsetmockauth',
|
||||
|
@ -195,6 +209,30 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
}
|
||||
$(this).blur();
|
||||
});
|
||||
|
||||
|
||||
|
||||
$(document).on('click', '.btn-changeuser', function (event) {
|
||||
var url = $(this).attr('data-url');
|
||||
if(!url) return false;
|
||||
var title = $(this).attr('title');
|
||||
var width = $(this).attr('data-width');
|
||||
var height = $(this).attr('data-height');
|
||||
// var ids = $(this).attr('data-id');
|
||||
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
|
||||
var options = {
|
||||
shadeClose: false,
|
||||
shade: [0.3, '#393D49'],
|
||||
area: area,
|
||||
callback:function(ret){//回调方法,需要在本页面Controller中增加方法监听且调用Fast.api.close(ret)传递结果;
|
||||
Fast.api.close(ret);
|
||||
}
|
||||
};
|
||||
Fast.api.open(url,title,options);
|
||||
});
|
||||
|
||||
|
||||
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
},
|
||||
edit: function () {
|
||||
|
@ -213,6 +251,28 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
$("#district").val(district);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$(document).on('click', '.btn-changeuser', function (event) {
|
||||
var url = $(this).attr('data-url');
|
||||
if(!url) return false;
|
||||
var title = $(this).attr('title');
|
||||
var width = $(this).attr('data-width');
|
||||
var height = $(this).attr('data-height');
|
||||
// var ids = $(this).attr('data-id');
|
||||
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
|
||||
var options = {
|
||||
shadeClose: false,
|
||||
shade: [0.3, '#393D49'],
|
||||
area: area,
|
||||
callback:function(ret){//回调方法,需要在本页面Controller中增加方法监听且调用Fast.api.close(ret)传递结果;
|
||||
Fast.api.close(ret);
|
||||
}
|
||||
};
|
||||
Fast.api.open(url,title,options);
|
||||
});
|
||||
|
||||
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
}
|
||||
};
|
||||
|
@ -233,5 +293,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
var verification_url = function (row,dom) {
|
||||
return 'school/classes/verification/index?shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
|
||||
var order_url = function (row,dom) {
|
||||
return 'school/classes/order/order/index?shop_id='+row.id;
|
||||
}
|
||||
|
||||
|
||||
return Controller;
|
||||
});
|
||||
|
|
|
@ -51,6 +51,26 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
},
|
||||
api: {
|
||||
bindevent: function () {
|
||||
|
||||
$(document).on('click', '.btn-changeuser', function (event) {
|
||||
var url = $(this).attr('data-url');
|
||||
if(!url) return false;
|
||||
var title = $(this).attr('title');
|
||||
var width = $(this).attr('data-width');
|
||||
var height = $(this).attr('data-height');
|
||||
// var ids = $(this).attr('data-id');
|
||||
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
|
||||
var options = {
|
||||
shadeClose: false,
|
||||
shade: [0.3, '#393D49'],
|
||||
area: area,
|
||||
callback:function(ret){//回调方法,需要在本页面Controller中增加方法监听且调用Fast.api.close(ret)传递结果;
|
||||
Fast.api.close(ret);
|
||||
}
|
||||
};
|
||||
Fast.api.open(url,title,options);
|
||||
});
|
||||
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -33,7 +33,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
name: 'classes_spec',
|
||||
text: __('设置课程规格'),
|
||||
title: __('设置课程规格'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
classname: 'btn btn-xs btn-danger btn-magic btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: classes_spec_url,
|
||||
callback: function (data) {
|
||||
|
@ -57,6 +57,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
name: 'teacher',
|
||||
text: __('主讲老师信息'),
|
||||
|
@ -71,6 +74,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
{
|
||||
name: 'order',
|
||||
text: __('课程订单查看'),
|
||||
title: __('课程订单查看'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
//
|
||||
// {name: 'unsetmockauth',
|
||||
// text: '取消加圈资格',
|
||||
|
@ -279,6 +296,27 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
|
||||
|
||||
|
||||
$(document).on('click', '.btn-changeuser', function (event) {
|
||||
var url = $(this).attr('data-url');
|
||||
if(!url) return false;
|
||||
var title = $(this).attr('title');
|
||||
var width = $(this).attr('data-width');
|
||||
var height = $(this).attr('data-height');
|
||||
// var ids = $(this).attr('data-id');
|
||||
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
|
||||
var options = {
|
||||
shadeClose: false,
|
||||
shade: [0.3, '#393D49'],
|
||||
area: area,
|
||||
callback:function(ret){//回调方法,需要在本页面Controller中增加方法监听且调用Fast.api.close(ret)传递结果;
|
||||
Fast.api.close(ret);
|
||||
}
|
||||
};
|
||||
Fast.api.open(url,title,options);
|
||||
});
|
||||
|
||||
|
||||
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
}
|
||||
}
|
||||
|
@ -321,7 +359,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
var teacher_url = function (row,dom) {
|
||||
return 'school/classes/teacher/index?id='+row.teacher_id +'&shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
var order_url = function (row,dom) {
|
||||
return 'school/classes/order/order/index?classes_lib_id='+row.id +'&shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
|
||||
return Controller;
|
||||
|
|
|
@ -27,6 +27,46 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{field: 'operate', title: __('Operate'), table: table , buttons: [
|
||||
{
|
||||
name: 'order',
|
||||
text: __('课时预约查看'),
|
||||
title: __('课时预约查看'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
//
|
||||
// {name: 'unsetmockauth',
|
||||
// text: '取消加圈资格',
|
||||
// icon: 'fa fa-sign-in',
|
||||
// classname: 'btn btn-xs btn-danger btn-magic btn-ajax',
|
||||
// url: $.fn.bootstrapTable.defaults.extend.unsetmockauth_url,
|
||||
// confirm: '(分车版本)确认取消用户加圈资格!',
|
||||
// success: function (data, ret) {
|
||||
// Layer.alert(ret.msg );
|
||||
// $(".btn-refresh").trigger("click");
|
||||
// },
|
||||
// error: function (data, ret) {
|
||||
// Layer.alert(ret.msg);
|
||||
// return false;
|
||||
// },
|
||||
// visible: function (row) {
|
||||
// //显示条件 只能待入住订单
|
||||
// if((row.status == 2 || row.status == 3) && row.mock_type == "base" && row.add_mock_status == "2"){
|
||||
// return true;
|
||||
// }
|
||||
// return false;
|
||||
// }},
|
||||
|
||||
], events: Table.api.events.operate, formatter: Table.api.formatter.operate},
|
||||
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'classes_lib_id', title: __('Classes_lib_id')},
|
||||
{field: 'name', title: __('Name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
|
@ -41,7 +81,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'lib.title', title: __('Lib.title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'lib.headimage', title: __('Lib.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
@ -122,5 +162,11 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
var order_url = function (row,dom) {
|
||||
return 'school/classes/hourorder/order/index?classes_lib_spec_id='+row.id;
|
||||
}
|
||||
|
||||
|
||||
return Controller;
|
||||
});
|
||||
|
|
|
@ -6,8 +6,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
Table.api.init({
|
||||
extend: {
|
||||
index_url: 'school/classes/hourorder/order/index' + location.search,
|
||||
add_url: 'school/classes/hourorder/order/add',
|
||||
edit_url: 'school/classes/hourorder/order/edit',
|
||||
add_url: 'school/classes/hourorder/order/add'+ location.search,
|
||||
edit_url: 'school/classes/hourorder/order/edit'+ location.search,
|
||||
examine_url: 'school/classes/hourorder/order/examine',
|
||||
verification_url: 'school/classes/hourorder/order/verification',
|
||||
del_url: 'school/classes/hourorder/order/del',
|
||||
multi_url: 'school/classes/hourorder/order/multi',
|
||||
import_url: 'school/classes/hourorder/order/import',
|
||||
|
@ -27,20 +29,107 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{field: 'operate', title: __('Operate'), table: table , buttons: [
|
||||
{name: 'verification',
|
||||
text: '预约核销',
|
||||
icon: 'fa fa-sign-in',
|
||||
classname: 'btn btn-xs btn-warning btn-magic btn-ajax',
|
||||
url: $.fn.bootstrapTable.defaults.extend.verification_url,
|
||||
confirm: '预约核销',
|
||||
success: function (data, ret) {
|
||||
Layer.alert(ret.msg );
|
||||
$(".btn-refresh").trigger("click");
|
||||
},
|
||||
error: function (data, ret) {
|
||||
Layer.alert(ret.msg);
|
||||
return false;
|
||||
},
|
||||
visible: function (row) {
|
||||
//显示条件 只能待入住订单
|
||||
if(row.status == 0){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}},
|
||||
{
|
||||
name: 'examine',
|
||||
text: __('预约审核'),
|
||||
title: __('预约审核'),
|
||||
classname: 'btn btn-xs btn-danger btn-dialog',
|
||||
icon: 'fa fa-sign-in',
|
||||
url: $.fn.bootstrapTable.defaults.extend.examine_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
visible: function (row) {
|
||||
return row.status == '-1';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'order_log',
|
||||
text: __('订单日志'),
|
||||
title: __('订单日志'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_log_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
//
|
||||
// {name: 'unsetmockauth',
|
||||
// text: '取消加圈资格',
|
||||
// icon: 'fa fa-sign-in',
|
||||
// classname: 'btn btn-xs btn-danger btn-magic btn-ajax',
|
||||
// url: $.fn.bootstrapTable.defaults.extend.unsetmockauth_url,
|
||||
// confirm: '(分车版本)确认取消用户加圈资格!',
|
||||
// success: function (data, ret) {
|
||||
// Layer.alert(ret.msg );
|
||||
// $(".btn-refresh").trigger("click");
|
||||
// },
|
||||
// error: function (data, ret) {
|
||||
// Layer.alert(ret.msg);
|
||||
// return false;
|
||||
// },
|
||||
// visible: function (row) {
|
||||
// //显示条件 只能待入住订单
|
||||
// if((row.status == 2 || row.status == 3) && row.mock_type == "base" && row.add_mock_status == "2"){
|
||||
// return true;
|
||||
// }
|
||||
// return false;
|
||||
// }},
|
||||
|
||||
], events: Table.api.events.operate, formatter: Table.api.formatter.operate},
|
||||
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'order_no', title: __('Order_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'classes_order_id', title: __('Classes_order_id')},
|
||||
{field: 'classes_lib_spec_id', title: __('Classes_lib_spec_id')},
|
||||
{field: 'user_id', title: __('User_id')},
|
||||
{field: 'classes_order_detail_id', title: __('Classes_order_detail_id')},
|
||||
{field: 'classes_lib_id', title: __('Classes_lib_id')},
|
||||
{field: 'status', title: __('Status'), searchList: {"-3":__('Status -3'),"-1":__('Status -1'),"0":__('Status 0'),"3":__('Status 3')}, formatter: Table.api.formatter.status},
|
||||
|
||||
{field: 'name', title: __('Name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'start_time', title: __('Start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'end_time', title: __('End_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
|
||||
{field: 'order_no', title: __('Order_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'classes_order_id',visible:false, title: __('Classes_order_id')},
|
||||
{field: 'classes_lib_spec_id',visible:false, title: __('Classes_lib_spec_id')},
|
||||
{field: 'user_id', title: __('User_id')},
|
||||
{field: 'classes_order_detail_id',visible:false, title: __('Classes_order_detail_id')},
|
||||
{field: 'classes_lib_id',visible:false, title: __('Classes_lib_id')},
|
||||
{field: 'limit_num', title: __('Limit_num')},
|
||||
{field: 'sign_num', title: __('Sign_num')},
|
||||
{field: 'verification_num', title: __('Verification_num')},
|
||||
{field: 'status', title: __('Status'), searchList: {"-3":__('Status -3'),"-1":__('Status -1'),"0":__('Status 0'),"3":__('Status 3')}, formatter: Table.api.formatter.status},
|
||||
// {field: 'sign_num', title: __('Sign_num')},
|
||||
// {field: 'verification_num', title: __('Verification_num')},
|
||||
|
||||
{field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
|
||||
{field: 'user.realname', title: __('User.realname'), operate: 'LIKE'},
|
||||
{field: 'user.mobile', title: __('User.mobile'), operate: 'LIKE'},
|
||||
{field: 'user.avatar', title: __('User.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'detail.title', title: __('Detail.title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'detail.headimage', title: __('Detail.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
|
||||
|
||||
|
||||
{field: 'verification_user_id', title: __('Verification_user_id')},
|
||||
{field: 'reservation_time', title: __('Reservation_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'finish_time', title: __('Finish_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
|
@ -48,21 +137,19 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'classesorder.order_no', title: __('Order.order_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'spec.name', title: __('Spec.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
|
||||
{field: 'user.realname', title: __('User.realname'), operate: 'LIKE'},
|
||||
{field: 'user.mobile', title: __('User.mobile'), operate: 'LIKE'},
|
||||
{field: 'user.avatar', title: __('User.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'detail.title', title: __('Detail.title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'detail.headimage', title: __('Detail.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'lib.title', title: __('Lib.title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
// {field: 'spec.name', title: __('Spec.name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
// {field: 'lib.title', title: __('Lib.title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
|
||||
|
||||
|
||||
|
||||
},
|
||||
recyclebin: function () {
|
||||
// 初始化表格参数配置
|
||||
|
@ -131,11 +218,36 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
edit: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
examine: function(){
|
||||
$("#examine").on('click', function() {
|
||||
$("#examine-form").attr("action",'school/classes/hourorder/order/examine').submit();
|
||||
});
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
verification: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
api: {
|
||||
bindevent: function () {
|
||||
|
||||
|
||||
//老师必须是上面机构中的
|
||||
$("#c-classes_lib_spec_id").data("params", function (obj) {
|
||||
//obj为SelectPage对象
|
||||
return {custom: {classes_lib_id: $("#c-classes_lib_id").val(),status: '1'}};
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var order_log_url = function (row,dom) {
|
||||
return 'school/classes/hourorder/order_log/index?classes_hour_order_id='+row.id;
|
||||
}
|
||||
|
||||
return Controller;
|
||||
});
|
||||
|
|
|
@ -26,12 +26,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
[
|
||||
{checkbox: true},
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'classes_hour_order_id', title: __('Classes_hour_order_id')},
|
||||
{field: 'status', title: __('Status'), searchList: {"-3":__('Status -3'),"-1":__('Status -1'),"0":__('Status 0'),"3":__('Status 3')}, formatter: Table.api.formatter.status},
|
||||
{field: 'log_text', title: __('Log_text'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'order.order_no', title: __('Order.order_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
{field: 'log_text', title: __('Log_text'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'status', title: __('Status'), searchList: {"-3":__('Status -3'),"-1":__('Status -1'),"0":__('Status 0'),"3":__('Status 3')}, formatter: Table.api.formatter.status},
|
||||
|
||||
{field: 'classes_hour_order_id', title: __('Classes_hour_order_id')},
|
||||
{field: 'order.order_no', title: __('Order.order_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
|
|
@ -9,6 +9,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
add_url: 'school/classes/order/order/add',
|
||||
edit_url: 'school/classes/order/order/edit',
|
||||
del_url: 'school/classes/order/order/del',
|
||||
cancel_url: 'school/classes/order/order/cancel',
|
||||
multi_url: 'school/classes/order/order/multi',
|
||||
import_url: 'school/classes/order/order/import',
|
||||
table: 'school_classes_order',
|
||||
|
@ -27,62 +28,159 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{field: 'operate', title: __('Operate'), table: table , buttons: [
|
||||
{name: 'cancel',
|
||||
text: '取消订单',
|
||||
icon: 'fa fa-user-times',
|
||||
classname: 'btn btn-xs btn-warning btn-magic btn-ajax',
|
||||
url: $.fn.bootstrapTable.defaults.extend.cancel_url,
|
||||
confirm: '确认取消订单',
|
||||
success: function (data, ret) {
|
||||
Layer.alert(ret.msg );
|
||||
$(".btn-refresh").trigger("click");
|
||||
},
|
||||
error: function (data, ret) {
|
||||
Layer.alert(ret.msg);
|
||||
return false;
|
||||
},
|
||||
visible: function (row) {
|
||||
//显示条件 只能待入住订单
|
||||
if(row.status == '0'){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}},
|
||||
{
|
||||
name: 'order_detail',
|
||||
text: __('课时使用情况'),
|
||||
title: __('课时使用情况'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_detail_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
visible: function (row) {
|
||||
return row.paytime;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'order',
|
||||
text: __('课时预约记录'),
|
||||
title: __('课时预约记录'),
|
||||
classname: 'btn btn-xs btn-danger btn-magic btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
visible: function (row) {
|
||||
return row.paytime;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'order_log',
|
||||
text: __('订单日志'),
|
||||
title: __('订单日志'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_log_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
//
|
||||
// {name: 'unsetmockauth',
|
||||
// text: '取消加圈资格',
|
||||
// icon: 'fa fa-sign-in',
|
||||
// classname: 'btn btn-xs btn-danger btn-magic btn-ajax',
|
||||
// url: $.fn.bootstrapTable.defaults.extend.unsetmockauth_url,
|
||||
// confirm: '(分车版本)确认取消用户加圈资格!',
|
||||
// success: function (data, ret) {
|
||||
// Layer.alert(ret.msg );
|
||||
// $(".btn-refresh").trigger("click");
|
||||
// },
|
||||
// error: function (data, ret) {
|
||||
// Layer.alert(ret.msg);
|
||||
// return false;
|
||||
// },
|
||||
// visible: function (row) {
|
||||
// //显示条件 只能待入住订单
|
||||
// if((row.status == 2 || row.status == 3) && row.mock_type == "base" && row.add_mock_status == "2"){
|
||||
// return true;
|
||||
// }
|
||||
// return false;
|
||||
// }},
|
||||
|
||||
], events: Table.api.events.operate, formatter: Table.api.formatter.operate},
|
||||
|
||||
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'order_no', title: __('Order_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'pay_no', title: __('Pay_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'user_id', title: __('User_id')},
|
||||
{field: 'manystore_id', title: __('Manystore_id')},
|
||||
{field: 'shop_id', title: __('Shop_id')},
|
||||
{field: 'code', title: __('Code'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'codeimage', title: __('Codeimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'codeoneimage', title: __('Codeoneimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'classes_lib_id', title: __('Classes_lib_id')},
|
||||
{field: 'classes_order_detail_id', title: __('Classes_order_detail_id')},
|
||||
{field: 'beforeprice', title: __('Beforeprice'), operate:'BETWEEN'},
|
||||
{field: 'totalprice', title: __('Totalprice'), operate:'BETWEEN'},
|
||||
{field: 'payprice', title: __('Payprice'), operate:'BETWEEN'},
|
||||
{field: 'pay_type', title: __('Pay_type'), searchList: {"yue":__('Pay_type yue'),"wechat":__('Pay_type wechat')}, formatter: Table.api.formatter.normal},
|
||||
{field: 'status', title: __('Status'), searchList: {"-3":__('Status -3'),"0":__('Status 0'),"3":__('Status 3'),"6":__('Status 6'),"9":__('Status 9')}, formatter: Table.api.formatter.status},
|
||||
{field: 'before_status', title: __('Before_status'), searchList: {"-3":__('Before_status -3'),"0":__('Before_status 0'),"3":__('Before_status 3'),"6":__('Before_status 6'),"9":__('Before_status 9')}, formatter: Table.api.formatter.status},
|
||||
{field: 'server_status', title: __('Server_status'), searchList: {"0":__('Server_status 0'),"3":__('Server_status 3'),"6":__('Server_status 6')}, formatter: Table.api.formatter.status},
|
||||
{field: 'reason', title: __('Reason'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'auth_manystore_id', title: __('Auth_manystore_id')},
|
||||
{field: 'auth_opinion', title: __('Auth_opinion'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'auth_file', title: __('Auth_file'), operate: false, formatter: Table.api.formatter.file},
|
||||
{field: 'admin_id', title: __('Admin_id')},
|
||||
{field: 'result_status', title: __('Result_status'), searchList: {"0":__('Result_status 0'),"3":__('Result_status 3'),"6":__('Result_status 6')}, formatter: Table.api.formatter.status},
|
||||
{field: 'result_text', title: __('Result_text'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'result_file', title: __('Result_file'), operate: false, formatter: Table.api.formatter.file},
|
||||
{field: 'canceltime', title: __('Canceltime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'paytime', title: __('Paytime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'finishtime', title: __('Finishtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'refundtime', title: __('Refundtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'total_refundprice', title: __('Total_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'real_refundprice', title: __('Real_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'sub_refundprice', title: __('Sub_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'manystore.nickname', title: __('Manystore.nickname'), operate: 'LIKE'},
|
||||
{field: 'manystore.avatar', title: __('Manystore.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
|
||||
{field: 'pay_no',visible:false, title: __('Pay_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'detail.title', title: __('Detail.title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'detail.headimage', title: __('Detail.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
|
||||
|
||||
|
||||
{field: 'user_id', title: __('User_id'),visible:false},
|
||||
{field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
|
||||
{field: 'user.realname', title: __('User.realname'), operate: 'LIKE'},
|
||||
{field: 'user.mobile', title: __('User.mobile'), operate: 'LIKE'},
|
||||
{field: 'user.avatar', title: __('User.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'shop.name', title: __('Shop.name'), operate: 'LIKE'},
|
||||
{field: 'shop.image', title: __('Shop.image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'shop.address_city', title: __('Shop.address_city'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'shop.province', title: __('Shop.province')},
|
||||
{field: 'shop.city', title: __('Shop.city')},
|
||||
{field: 'shop.district', title: __('Shop.district')},
|
||||
{field: 'shop.address', title: __('Shop.address'), operate: 'LIKE'},
|
||||
{field: 'shop.address_detail', title: __('Shop.address_detail'), operate: 'LIKE'},
|
||||
{field: 'lib.title', title: __('Lib.title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'lib.headimage', title: __('Lib.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'detail.title', title: __('Detail.title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'detail.headimage', title: __('Detail.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'admin.nickname', title: __('Admin.nickname'), operate: 'LIKE'},
|
||||
{field: 'admin.avatar', title: __('Admin.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
{field: 'payprice', title: __('Payprice'), operate:'BETWEEN'},
|
||||
{field: 'pay_type', title: __('Pay_type'), searchList: {"yue":__('Pay_type yue'),"wechat":__('Pay_type wechat')}, formatter: Table.api.formatter.normal},
|
||||
|
||||
|
||||
|
||||
{field: 'manystore_id', title: __('Manystore_id'),visible:false},
|
||||
{field: 'shop_id', title: __('Shop_id'),visible:false},
|
||||
{field: 'code', title: __('Code'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'codeimage', title: __('Codeimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'codeoneimage', title: __('Codeoneimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'classes_lib_id', title: __('Classes_lib_id')},
|
||||
{field: 'classes_order_detail_id', title: __('Classes_order_detail_id'),visible:false},
|
||||
{field: 'beforeprice', title: __('Beforeprice'), operate:'BETWEEN',visible:false},
|
||||
{field: 'totalprice', title: __('Totalprice'), operate:'BETWEEN'},
|
||||
{field: 'before_status',visible:false, title: __('Before_status'), searchList: {"-3":__('Before_status -3'),"0":__('Before_status 0'),"3":__('Before_status 3'),"6":__('Before_status 6'),"9":__('Before_status 9')}, formatter: Table.api.formatter.status},
|
||||
{field: 'server_status',visible:false, title: __('Server_status'), searchList: {"0":__('Server_status 0'),"3":__('Server_status 3'),"6":__('Server_status 6')}, formatter: Table.api.formatter.status},
|
||||
{field: 'reason',visible:false, title: __('Reason'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'auth_manystore_id',visible:false, title: __('Auth_manystore_id')},
|
||||
{field: 'auth_opinion',visible:false, title: __('Auth_opinion'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'auth_file',visible:false, title: __('Auth_file'), operate: false, formatter: Table.api.formatter.file},
|
||||
{field: 'admin_id',visible:false, title: __('Admin_id')},
|
||||
{field: 'result_status',visible:false, title: __('Result_status'), searchList: {"0":__('Result_status 0'),"3":__('Result_status 3'),"6":__('Result_status 6')}, formatter: Table.api.formatter.status},
|
||||
{field: 'result_text',visible:false, title: __('Result_text'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'result_file',visible:false, title: __('Result_file'), operate: false, formatter: Table.api.formatter.file},
|
||||
{field: 'canceltime', title: __('Canceltime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'paytime', title: __('Paytime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'finishtime', title: __('Finishtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'refundtime', title: __('Refundtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'total_refundprice',visible:false, title: __('Total_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'real_refundprice',visible:false, title: __('Real_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'sub_refundprice',visible:false, title: __('Sub_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'manystore.nickname',visible:false, title: __('Manystore.nickname'), operate: 'LIKE'},
|
||||
{field: 'manystore.avatar',visible:false, title: __('Manystore.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'shop.name',visible:false, title: __('Shop.name'), operate: 'LIKE'},
|
||||
{field: 'shop.image',visible:false, title: __('Shop.image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'shop.address_city',visible:false, title: __('Shop.address_city'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'shop.province',visible:false, title: __('Shop.province')},
|
||||
{field: 'shop.city',visible:false, title: __('Shop.city')},
|
||||
{field: 'shop.district',visible:false, title: __('Shop.district')},
|
||||
{field: 'shop.address',visible:false, title: __('Shop.address'), operate: 'LIKE'},
|
||||
{field: 'shop.address_detail',visible:false, title: __('Shop.address_detail'), operate: 'LIKE'},
|
||||
// {field: 'lib.title', title: __('Lib.title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
// {field: 'lib.headimage', title: __('Lib.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
// {field: 'admin.nickname', title: __('Admin.nickname'), operate: 'LIKE'},
|
||||
// {field: 'admin.avatar', title: __('Admin.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
@ -162,5 +260,19 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var order_detail_url = function (row,dom) {
|
||||
return 'school/classes/order/order_detail/index?classes_order_id='+row.id;
|
||||
}
|
||||
|
||||
var order_log_url = function (row,dom) {
|
||||
return 'school/classes/order/order_log/index?classes_order_id='+row.id;
|
||||
}
|
||||
|
||||
var order_url = function (row,dom) {
|
||||
return 'school/classes/hourorder/order/index?classes_order_id='+row.id + '&classes_lib_id='+row.classes_lib_id;
|
||||
}
|
||||
|
||||
return Controller;
|
||||
});
|
||||
|
|
|
@ -28,20 +28,29 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
[
|
||||
{checkbox: true},
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'classes_order_id', title: __('Classes_order_id')},
|
||||
{field: 'manystore_id', title: __('Manystore_id')},
|
||||
{field: 'classes_num', title: __('Classes_num')},
|
||||
{field: 'use_num', title: __('Use_num')},
|
||||
{field: 'sub_num', title: __('Sub_num')},
|
||||
{field: 'classes_order_id',visible:false, title: __('Classes_order_id')},
|
||||
{field: 'manystore_id',visible:false, title: __('Manystore_id')},
|
||||
{field: 'shop_id', title: __('Shop_id')},
|
||||
{field: 'user_id', title: __('User_id')},
|
||||
{field: 'classes_cate_ids', title: __('Classes_cate_ids'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'classes_label_ids', title: __('Classes_label_ids'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'user_id',visible:false, title: __('User_id')},
|
||||
{field: 'classes_cate_ids',visible:false, title: __('Classes_cate_ids'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'classes_label_ids',visible:false, title: __('Classes_label_ids'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'self_label_tag', title: __('Self_label_tag'), operate: 'LIKE', formatter: Table.api.formatter.flag},
|
||||
{field: 'add_type', title: __('Add_type'), searchList: {"1":__('Add_type 1'),"2":__('Add_type 2')}, formatter: Table.api.formatter.normal},
|
||||
{field: 'add_id', title: __('Add_id')},
|
||||
{field: 'add_type',visible:false, title: __('Add_type'), searchList: {"1":__('Add_type 1'),"2":__('Add_type 2')}, formatter: Table.api.formatter.normal},
|
||||
{field: 'add_id',visible:false, title: __('Add_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},
|
||||
{field: 'type', title: __('Type'), searchList: {"out":__('Type out'),"in":__('Type in')}, formatter: Table.api.formatter.normal},
|
||||
{field: 'classes_num', title: __('Classes_num')},
|
||||
{field: 'price', title: __('Price'), operate:'BETWEEN'},
|
||||
|
||||
{field: 'unit_price', title: __('Unit_price'), operate:'BETWEEN'},
|
||||
{field: 'used_price', title: __('Used_price'), operate:'BETWEEN'},
|
||||
|
||||
|
||||
|
||||
{field: 'address_type', title: __('Address_type'), searchList: {"1":__('Address_type 1'),"2":__('Address_type 2')}, formatter: Table.api.formatter.normal},
|
||||
{field: 'address_city', title: __('Address_city'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'province', title: __('Province')},
|
||||
|
@ -49,37 +58,33 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
{field: 'district', title: __('District')},
|
||||
{field: 'address', title: __('Address'), operate: 'LIKE'},
|
||||
{field: 'address_detail', title: __('Address_detail'), operate: 'LIKE'},
|
||||
{field: 'longitude', title: __('Longitude'), operate: 'LIKE'},
|
||||
{field: 'latitude', title: __('Latitude'), operate: 'LIKE'},
|
||||
{field: 'longitude',visible:false, title: __('Longitude'), operate: 'LIKE'},
|
||||
{field: 'latitude',visible:false, title: __('Latitude'), operate: 'LIKE'},
|
||||
{field: 'classes_date_text', title: __('Classes_date_text'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'classes_time_text', title: __('Classes_time_text'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'virtual_num', title: __('Virtual_num')},
|
||||
{field: 'sale', title: __('Sale')},
|
||||
{field: 'price', title: __('Price'), operate:'BETWEEN'},
|
||||
{field: 'underline_price', title: __('Underline_price'), operate:'BETWEEN'},
|
||||
{field: 'virtual_collect', title: __('Virtual_collect')},
|
||||
{field: 'use_num', title: __('Use_num')},
|
||||
{field: 'sub_num', title: __('Sub_num')},
|
||||
{field: 'unit_price', title: __('Unit_price'), operate:'BETWEEN'},
|
||||
{field: 'used_price', title: __('Used_price'), operate:'BETWEEN'},
|
||||
{field: 'virtual_num',visible:false, title: __('Virtual_num')},
|
||||
// {field: 'sale',visible:false, title: __('Sale')},
|
||||
|
||||
{field: 'underline_price',visible:false, title: __('Underline_price'), operate:'BETWEEN'},
|
||||
{field: 'virtual_collect',visible:false, title: __('Virtual_collect')},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'order.order_no', title: __('Order.order_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'manystore.nickname', title: __('Manystore.nickname'), operate: 'LIKE'},
|
||||
{field: 'manystore.avatar', title: __('Manystore.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'shop.name', title: __('Shop.name'), operate: 'LIKE'},
|
||||
{field: 'shop.image', title: __('Shop.image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'shop.address_city', title: __('Shop.address_city'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'shop.province', title: __('Shop.province')},
|
||||
{field: 'shop.city', title: __('Shop.city')},
|
||||
{field: 'shop.district', title: __('Shop.district')},
|
||||
{field: 'shop.address', title: __('Shop.address'), operate: 'LIKE'},
|
||||
{field: 'shop.address_detail', title: __('Shop.address_detail'), operate: 'LIKE'},
|
||||
{field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
|
||||
{field: 'user.realname', title: __('User.realname'), operate: 'LIKE'},
|
||||
{field: 'user.mobile', title: __('User.mobile'), operate: 'LIKE'},
|
||||
{field: 'user.avatar', title: __('User.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
{field: 'order.order_no',visible:false, title: __('Order.order_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
// {field: 'manystore.nickname',visible:false, title: __('Manystore.nickname'), operate: 'LIKE'},
|
||||
// {field: 'manystore.avatar',visible:false, title: __('Manystore.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
// {field: 'shop.name',visible:false, title: __('Shop.name'), operate: 'LIKE'},
|
||||
// {field: 'shop.image',visible:false, title: __('Shop.image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
// {field: 'shop.address_city', title: __('Shop.address_city'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
// {field: 'shop.province', title: __('Shop.province')},
|
||||
// {field: 'shop.city', title: __('Shop.city')},
|
||||
// {field: 'shop.district', title: __('Shop.district')},
|
||||
// {field: 'shop.address', title: __('Shop.address'), operate: 'LIKE'},
|
||||
// {field: 'shop.address_detail', title: __('Shop.address_detail'), operate: 'LIKE'},
|
||||
// {field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
|
||||
// {field: 'user.realname', title: __('User.realname'), operate: 'LIKE'},
|
||||
// {field: 'user.mobile', title: __('User.mobile'), operate: 'LIKE'},
|
||||
// {field: 'user.avatar', title: __('User.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
|
|
@ -26,15 +26,15 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
[
|
||||
{checkbox: true},
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'classes_order_id', title: __('Classes_order_id')},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'log_text', title: __('Log_text'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'status', title: __('Status'), searchList: {"-3":__('Status -3'),"0":__('Status 0'),"3":__('Status 3'),"6":__('Status 6'),"9":__('Status 9')}, formatter: Table.api.formatter.status},
|
||||
{field: 'classes_order_id', title: __('Classes_order_id')},
|
||||
{field: 'before_status', title: __('Before_status'), searchList: {"-3":__('Before_status -3'),"0":__('Before_status 0'),"3":__('Before_status 3'),"6":__('Before_status 6'),"9":__('Before_status 9')}, formatter: Table.api.formatter.status},
|
||||
{field: 'server_status', title: __('Server_status'), searchList: {"0":__('Server_status 0'),"3":__('Server_status 3'),"6":__('Server_status 6')}, formatter: Table.api.formatter.status},
|
||||
{field: 'result_status', title: __('Result_status'), searchList: {"0":__('Result_status 0'),"3":__('Result_status 3'),"6":__('Result_status 6')}, formatter: Table.api.formatter.status},
|
||||
{field: 'log_text', title: __('Log_text'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'order.order_no', title: __('Order.order_no'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
|
|
@ -130,6 +130,26 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
},
|
||||
api: {
|
||||
bindevent: function () {
|
||||
$(document).on('click', '.btn-changeuser', function (event) {
|
||||
var url = $(this).attr('data-url');
|
||||
if(!url) return false;
|
||||
var title = $(this).attr('title');
|
||||
var width = $(this).attr('data-width');
|
||||
var height = $(this).attr('data-height');
|
||||
// var ids = $(this).attr('data-id');
|
||||
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
|
||||
var options = {
|
||||
shadeClose: false,
|
||||
shade: [0.3, '#393D49'],
|
||||
area: area,
|
||||
callback:function(ret){//回调方法,需要在本页面Controller中增加方法监听且调用Fast.api.close(ret)传递结果;
|
||||
Fast.api.close(ret);
|
||||
}
|
||||
};
|
||||
Fast.api.open(url,title,options);
|
||||
});
|
||||
|
||||
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,6 +69,26 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
api: {
|
||||
bindevent: function () {
|
||||
|
||||
|
||||
$(document).on('click', '.btn-changeuser', function (event) {
|
||||
var url = $(this).attr('data-url');
|
||||
if(!url) return false;
|
||||
var title = $(this).attr('title');
|
||||
var width = $(this).attr('data-width');
|
||||
var height = $(this).attr('data-height');
|
||||
// var ids = $(this).attr('data-id');
|
||||
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
|
||||
var options = {
|
||||
shadeClose: false,
|
||||
shade: [0.3, '#393D49'],
|
||||
area: area,
|
||||
callback:function(ret){//回调方法,需要在本页面Controller中增加方法监听且调用Fast.api.close(ret)传递结果;
|
||||
Fast.api.close(ret);
|
||||
}
|
||||
};
|
||||
Fast.api.open(url,title,options);
|
||||
});
|
||||
|
||||
//老师必须是上面机构中的
|
||||
$("#c-classes_lib_ids").data("params", function (obj) {
|
||||
//obj为SelectPage对象
|
||||
|
|
|
@ -30,6 +30,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
{field: 'nickname', title: __('Nickname'), operate: 'LIKE'},
|
||||
{field: 'head_image', title: __('Head_image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'classes_lib_id', title: __('Classes_lib_id')},
|
||||
{field: 'jointype', title: __('Jointype'), searchList: {"1":__('Jointype 1'),"0":__('Jointype 0')}, formatter: Table.api.formatter.normal},
|
||||
{field: 'havetype', title: __('Havetype'), searchList: {"1":__('Havetype 1'),"0":__('Havetype 0')}, formatter: Table.api.formatter.normal},
|
||||
|
||||
{field: 'time', title: __('Time'),operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'lib.title', title: __('Lib.title'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
|
||||
{field: 'lib.headimage', title: __('Lib.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
|
|
|
@ -21,13 +21,19 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
table.bootstrapTable({
|
||||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||||
pk: 'id',
|
||||
sortName: 'id',
|
||||
fixedColumns: true,
|
||||
fixedRightNumber: 1,
|
||||
sortName: 'weigh',
|
||||
// fixedColumns: true,
|
||||
// fixedRightNumber: 1,
|
||||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate},
|
||||
|
||||
{field: 'id', title: __('Id'),sortable: true},
|
||||
{field: 'weigh', title: __('Weigh'), operate: false,sortable: true},
|
||||
|
||||
{field: 'type', title: __('Type'), searchList: {"1":__('Type 1'),"2":__('Type 2')}, formatter: Table.api.formatter.normal},
|
||||
|
||||
{field: 'platform', title: __('Platform'), searchList: {"admin":__('Platform admin'),"user":__('Platform user'),"shop":__('Platform shop')}, operate:'FIND_IN_SET', formatter: Table.api.formatter.label},
|
||||
{field: 'oper_type', title: __('Oper_type'), searchList: {"admin":__('Oper_type admin'),"user":__('Oper_type user'),"system":__('Oper_type system'),"shop":__('Oper_type shop')}, formatter: Table.api.formatter.normal},
|
||||
{field: 'oper_id', title: __('Oper_id')},
|
||||
|
@ -43,8 +49,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
{field: 'admin.avatar', title: __('Admin.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
|
||||
{field: 'user.avatar', title: __('User.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
]
|
||||
});
|
||||
|
||||
|
|
|
@ -48,6 +48,28 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
|
||||
/**
|
||||
* 发放y预约订单
|
||||
* cc
|
||||
* 2020年8月5日
|
||||
*/
|
||||
$(document).on('click', '.btn-changeuser', function (event) {
|
||||
var url = $(this).attr('data-url');
|
||||
if(!url) return false;
|
||||
var title = $(this).attr('title');
|
||||
var width = $(this).attr('data-width');
|
||||
var height = $(this).attr('data-height');
|
||||
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
|
||||
var options = {
|
||||
shadeClose: false,
|
||||
shade: [0.3, '#393D49'],
|
||||
area: area,
|
||||
callback:function(ret){//回调方法,需要在本页面Controller中增加方法监听且调用Fast.api.close(ret)传递结果;
|
||||
}
|
||||
};
|
||||
Fast.api.open(url,title,options);
|
||||
});
|
||||
},
|
||||
add: function () {
|
||||
Controller.api.bindevent();
|
||||
|
@ -55,6 +77,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
edit: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
changeuser: function(){
|
||||
$("#changeuser").on('click', function() {
|
||||
$("#changeuser-form").attr("action",'user/user/changeuser').submit();
|
||||
});
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
api: {
|
||||
bindevent: function () {
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
|
|
|
@ -40,6 +40,24 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
]
|
||||
});
|
||||
|
||||
|
||||
$(document).on('click', '.btn-changeuser', function (event) {
|
||||
var url = $(this).attr('data-url');
|
||||
if(!url) return false;
|
||||
var title = $(this).attr('title');
|
||||
var width = $(this).attr('data-width');
|
||||
var height = $(this).attr('data-height');
|
||||
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
|
||||
var options = {
|
||||
shadeClose: false,
|
||||
shade: [0.3, '#393D49'],
|
||||
area: area,
|
||||
callback:function(ret){//回调方法,需要在本页面Controller中增加方法监听且调用Fast.api.close(ret)传递结果;
|
||||
}
|
||||
};
|
||||
Fast.api.open(url,title,options);
|
||||
});
|
||||
|
||||
// 为表格绑定事件
|
||||
Table.api.bindevent(table);
|
||||
},
|
||||
|
@ -49,6 +67,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
edit: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
changeuser: function(){
|
||||
$("#changeuser").on('click', function() {
|
||||
$("#changeuser-form").attr("action",'manystore/user_auth/changeuser').submit();
|
||||
});
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
api: {
|
||||
bindevent: function () {
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
|
|
|
@ -29,8 +29,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
{field: 'name', title: __('Name'), operate: 'LIKE'},
|
||||
{field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2')}, formatter: Table.api.formatter.status},
|
||||
{field: 'weigh', title: __('Weigh'), operate: false},
|
||||
{field: 'createtime', title: __('Createtime')},
|
||||
{field: 'updatetime', title: __('Updatetime')},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
|
|
|
@ -32,7 +32,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
name: 'classes_spec',
|
||||
text: __('设置课程规格'),
|
||||
title: __('设置课程规格'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
classname: 'btn btn-xs btn-danger btn-magic btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: classes_spec_url,
|
||||
callback: function (data) {
|
||||
|
@ -70,6 +70,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
{
|
||||
name: 'order',
|
||||
text: __('课程订单查看'),
|
||||
title: __('课程订单查看'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
// {name: 'unsetmockauth',
|
||||
// text: '取消加圈资格',
|
||||
// icon: 'fa fa-sign-in',
|
||||
|
@ -279,6 +293,24 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
|
||||
|
||||
|
||||
$(document).on('click', '.btn-changeuser', function (event) {
|
||||
var url = $(this).attr('data-url');
|
||||
if(!url) return false;
|
||||
var title = $(this).attr('title');
|
||||
var width = $(this).attr('data-width');
|
||||
var height = $(this).attr('data-height');
|
||||
// var ids = $(this).attr('data-id');
|
||||
var area = [$(window).width() > 800 ? (width?width:'800px') : '95%', $(window).height() > 600 ? (height?height:'600px') : '95%'];
|
||||
var options = {
|
||||
shadeClose: false,
|
||||
shade: [0.3, '#393D49'],
|
||||
area: area,
|
||||
callback:function(ret){//回调方法,需要在本页面Controller中增加方法监听且调用Fast.api.close(ret)传递结果;
|
||||
Fast.api.close(ret);
|
||||
}
|
||||
};
|
||||
Fast.api.open(url,title,options);
|
||||
});
|
||||
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
}
|
||||
|
@ -323,5 +355,9 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
return 'school/classes/teacher/index?id='+row.teacher_id +'&shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
var order_url = function (row,dom) {
|
||||
return 'school/classes/order/order/index?classes_lib_id='+row.id +'&shop_id='+row.shop_id;
|
||||
}
|
||||
|
||||
return Controller;
|
||||
});
|
||||
|
|
|
@ -25,21 +25,61 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{field: 'operate', title: __('Operate'), table: table , buttons: [
|
||||
{
|
||||
name: 'order',
|
||||
text: __('课时预约查看'),
|
||||
title: __('课时预约查看'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
//
|
||||
// {name: 'unsetmockauth',
|
||||
// text: '取消加圈资格',
|
||||
// icon: 'fa fa-sign-in',
|
||||
// classname: 'btn btn-xs btn-danger btn-magic btn-ajax',
|
||||
// url: $.fn.bootstrapTable.defaults.extend.unsetmockauth_url,
|
||||
// confirm: '(分车版本)确认取消用户加圈资格!',
|
||||
// success: function (data, ret) {
|
||||
// Layer.alert(ret.msg );
|
||||
// $(".btn-refresh").trigger("click");
|
||||
// },
|
||||
// error: function (data, ret) {
|
||||
// Layer.alert(ret.msg);
|
||||
// return false;
|
||||
// },
|
||||
// visible: function (row) {
|
||||
// //显示条件 只能待入住订单
|
||||
// if((row.status == 2 || row.status == 3) && row.mock_type == "base" && row.add_mock_status == "2"){
|
||||
// return true;
|
||||
// }
|
||||
// return false;
|
||||
// }},
|
||||
|
||||
], events: Table.api.events.operate, formatter: Table.api.formatter.operate},
|
||||
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'classes_lib_id', title: __('Classes_lib_id')},
|
||||
{field: 'name', title: __('Name'), operate: 'LIKE'},
|
||||
{field: 'start_time', title: __('Start_time')},
|
||||
{field: 'end_time', title: __('End_time')},
|
||||
{field: 'start_time', title: __('Start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'end_time', title: __('End_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'limit_num', title: __('Limit_num')},
|
||||
{field: 'sign_num', title: __('Sign_num')},
|
||||
{field: 'verification_num', title: __('Verification_num')},
|
||||
{field: 'status', title: __('Status'), searchList: {"1":__('Status 1'),"2":__('Status 2')}, formatter: Table.api.formatter.status},
|
||||
{field: 'weigh', title: __('Weigh'), operate: false},
|
||||
{field: 'createtime', title: __('Createtime')},
|
||||
{field: 'updatetime', title: __('Updatetime')},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'schoolclasseslib.title', title: __('Schoolclasseslib.title'), operate: 'LIKE'},
|
||||
{field: 'schoolclasseslib.headimage', title: __('Schoolclasseslib.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
@ -126,5 +166,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
var order_url = function (row,dom) {
|
||||
return 'school/classes/hourorder/order/index?classes_lib_spec_id='+row.id;
|
||||
}
|
||||
|
||||
return Controller;
|
||||
});
|
|
@ -29,7 +29,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
{field: 'user_id', title: __('User_id')},
|
||||
{field: 'classes_lib_id', title: __('Classes_lib_id')},
|
||||
{field: 'weigh', title: __('Weigh'), operate: false},
|
||||
{field: 'createtime', title: __('Createtime')},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
|
||||
{field: 'user.realname', title: __('User.realname'), operate: 'LIKE'},
|
||||
{field: 'user.mobile', title: __('User.mobile'), operate: 'LIKE'},
|
||||
|
|
|
@ -6,8 +6,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
Table.api.init({
|
||||
extend: {
|
||||
index_url: 'school/classes/hourorder/order/index' + location.search,
|
||||
add_url: 'school/classes/hourorder/order/add',
|
||||
edit_url: 'school/classes/hourorder/order/edit',
|
||||
add_url: 'school/classes/hourorder/order/add'+ location.search,
|
||||
edit_url: 'school/classes/hourorder/order/edit'+ location.search,
|
||||
examine_url: 'school/classes/hourorder/order/examine',
|
||||
verification_url: 'school/classes/hourorder/order/verification',
|
||||
del_url: 'school/classes/hourorder/order/del',
|
||||
multi_url: 'school/classes/hourorder/order/multi',
|
||||
import_url: 'school/classes/hourorder/order/import',
|
||||
|
@ -25,36 +27,118 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
{field: 'operate', title: __('Operate'), table: table , buttons: [
|
||||
{name: 'verification',
|
||||
text: '预约核销',
|
||||
icon: 'fa fa-sign-in',
|
||||
classname: 'btn btn-xs btn-warning btn-magic btn-ajax',
|
||||
url: $.fn.bootstrapTable.defaults.extend.verification_url,
|
||||
confirm: '预约核销',
|
||||
success: function (data, ret) {
|
||||
Layer.alert(ret.msg );
|
||||
$(".btn-refresh").trigger("click");
|
||||
},
|
||||
error: function (data, ret) {
|
||||
Layer.alert(ret.msg);
|
||||
return false;
|
||||
},
|
||||
visible: function (row) {
|
||||
//显示条件 只能待入住订单
|
||||
if(row.status == 0){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}},
|
||||
{
|
||||
name: 'examine',
|
||||
text: __('预约审核'),
|
||||
title: __('预约审核'),
|
||||
classname: 'btn btn-xs btn-danger btn-dialog',
|
||||
icon: 'fa fa-sign-in',
|
||||
url: $.fn.bootstrapTable.defaults.extend.examine_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
visible: function (row) {
|
||||
return row.status == '-1';
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'order_log',
|
||||
text: __('订单日志'),
|
||||
title: __('订单日志'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_log_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
//
|
||||
// {name: 'unsetmockauth',
|
||||
// text: '取消加圈资格',
|
||||
// icon: 'fa fa-sign-in',
|
||||
// classname: 'btn btn-xs btn-danger btn-magic btn-ajax',
|
||||
// url: $.fn.bootstrapTable.defaults.extend.unsetmockauth_url,
|
||||
// confirm: '(分车版本)确认取消用户加圈资格!',
|
||||
// success: function (data, ret) {
|
||||
// Layer.alert(ret.msg );
|
||||
// $(".btn-refresh").trigger("click");
|
||||
// },
|
||||
// error: function (data, ret) {
|
||||
// Layer.alert(ret.msg);
|
||||
// return false;
|
||||
// },
|
||||
// visible: function (row) {
|
||||
// //显示条件 只能待入住订单
|
||||
// if((row.status == 2 || row.status == 3) && row.mock_type == "base" && row.add_mock_status == "2"){
|
||||
// return true;
|
||||
// }
|
||||
// return false;
|
||||
// }},
|
||||
|
||||
], events: Table.api.events.operate, formatter: Table.api.formatter.operate},
|
||||
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'order_no', title: __('Order_no'), operate: 'LIKE'},
|
||||
{field: 'classes_order_id', title: __('Classes_order_id')},
|
||||
{field: 'classes_lib_spec_id', title: __('Classes_lib_spec_id')},
|
||||
{field: 'user_id', title: __('User_id')},
|
||||
{field: 'classes_order_detail_id', title: __('Classes_order_detail_id')},
|
||||
{field: 'classes_lib_id', title: __('Classes_lib_id')},
|
||||
{field: 'name', title: __('Name'), operate: 'LIKE'},
|
||||
{field: 'start_time', title: __('Start_time')},
|
||||
{field: 'end_time', title: __('End_time')},
|
||||
{field: 'limit_num', title: __('Limit_num')},
|
||||
{field: 'sign_num', title: __('Sign_num')},
|
||||
{field: 'verification_num', title: __('Verification_num')},
|
||||
{field: 'status', title: __('Status'), searchList: {"-3":__('Status -3'),"-1":__('Status -1'),"0":__('Status 0'),"3":__('Status 3')}, formatter: Table.api.formatter.status},
|
||||
{field: 'verification_user_id', title: __('Verification_user_id')},
|
||||
{field: 'reservation_time', title: __('Reservation_time')},
|
||||
{field: 'finish_time', title: __('Finish_time')},
|
||||
{field: 'cancel_time', title: __('Cancel_time')},
|
||||
{field: 'createtime', title: __('Createtime')},
|
||||
{field: 'updatetime', title: __('Updatetime')},
|
||||
{field: 'schoolclassesorder.order_no', title: __('Schoolclassesorder.order_no'), operate: 'LIKE'},
|
||||
{field: 'schoolclasseslibspec.name', title: __('Schoolclasseslibspec.name'), operate: 'LIKE'},
|
||||
|
||||
|
||||
{field: 'name', title: __('Name'), operate: 'LIKE'},
|
||||
{field: 'start_time', title: __('Start_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'end_time', title: __('End_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
|
||||
{field: 'order_no', title: __('Order_no'), operate: 'LIKE'},
|
||||
{field: 'classes_order_id',visible:false, title: __('Classes_order_id')},
|
||||
{field: 'classes_lib_spec_id',visible:false, title: __('Classes_lib_spec_id')},
|
||||
{field: 'user_id', title: __('User_id')},
|
||||
{field: 'classes_order_detail_id',visible:false, title: __('Classes_order_detail_id')},
|
||||
{field: 'classes_lib_id',visible:false, title: __('Classes_lib_id')},
|
||||
{field: 'limit_num', title: __('Limit_num')},
|
||||
|
||||
{field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
|
||||
{field: 'user.realname', title: __('User.realname'), operate: 'LIKE'},
|
||||
{field: 'user.mobile', title: __('User.mobile'), operate: 'LIKE'},
|
||||
{field: 'user.avatar', title: __('User.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'schoolclassesorderdetail.title', title: __('Schoolclassesorderdetail.title'), operate: 'LIKE'},
|
||||
{field: 'schoolclassesorderdetail.headimage', title: __('Schoolclassesorderdetail.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'schoolclasseslib.title', title: __('Schoolclasseslib.title'), operate: 'LIKE'},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
{field: 'schoolclassesorderdetail.title',visible:false, title: __('Schoolclassesorderdetail.title'), operate: 'LIKE'},
|
||||
{field: 'schoolclassesorderdetail.headimage',visible:false, title: __('Schoolclassesorderdetail.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
|
||||
|
||||
|
||||
// {field: 'sign_num',visible:false, title: __('Sign_num')},
|
||||
// {field: 'verification_num',visible:false, title: __('Verification_num')},
|
||||
{field: 'verification_user_id',visible:false, title: __('Verification_user_id')},
|
||||
{field: 'reservation_time', title: __('Reservation_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'finish_time', title: __('Finish_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'cancel_time', title: __('Cancel_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'schoolclassesorder.order_no',visible:false, title: __('Schoolclassesorder.order_no'), operate: 'LIKE'},
|
||||
// {field: 'schoolclasseslibspec.name',visible:false, title: __('Schoolclasseslibspec.name'), operate: 'LIKE'},
|
||||
// {field: 'schoolclasseslib.title',visible:false, title: __('Schoolclasseslib.title'), operate: 'LIKE'},
|
||||
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
@ -128,11 +212,33 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
edit: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
examine: function(){
|
||||
$("#examine").on('click', function() {
|
||||
$("#examine-form").attr("action",'school/classes/hourorder/order/examine').submit();
|
||||
});
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
verification: function () {
|
||||
Controller.api.bindevent();
|
||||
},
|
||||
api: {
|
||||
bindevent: function () {
|
||||
|
||||
//老师必须是上面机构中的
|
||||
$("#c-classes_lib_spec_id").data("params", function (obj) {
|
||||
//obj为SelectPage对象
|
||||
return {custom: {classes_lib_id: $("#c-classes_lib_id").val(),status: '1'}};
|
||||
});
|
||||
|
||||
|
||||
Form.api.bindevent($("form[role=form]"));
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var order_log_url = function (row,dom) {
|
||||
return 'school/classes/hourorder/order_log/index?classes_hour_order_id='+row.id;
|
||||
}
|
||||
|
||||
return Controller;
|
||||
});
|
|
@ -26,12 +26,13 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
[
|
||||
{checkbox: true},
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'classes_hour_order_id', title: __('Classes_hour_order_id')},
|
||||
{field: 'status', title: __('Status'), searchList: {"-3":__('Status -3'),"-1":__('Status -1'),"0":__('Status 0'),"3":__('Status 3')}, formatter: Table.api.formatter.status},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'log_text', title: __('Log_text'), operate: 'LIKE'},
|
||||
{field: 'createtime', title: __('Createtime')},
|
||||
{field: 'status', title: __('Status'), searchList: {"-3":__('Status -3'),"-1":__('Status -1'),"0":__('Status 0'),"3":__('Status 3')}, formatter: Table.api.formatter.status},
|
||||
|
||||
{field: 'classes_hour_order_id', title: __('Classes_hour_order_id')},
|
||||
{field: 'schoolclasseshourorder.order_no', title: __('Schoolclasseshourorder.order_no'), operate: 'LIKE'},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
|
|
@ -9,6 +9,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
add_url: 'school/classes/order/order/add',
|
||||
edit_url: 'school/classes/order/order/edit',
|
||||
del_url: 'school/classes/order/order/del',
|
||||
cancel_url: 'school/classes/order/order/cancel',
|
||||
multi_url: 'school/classes/order/order/multi',
|
||||
import_url: 'school/classes/order/order/import',
|
||||
table: 'school_classes_order',
|
||||
|
@ -25,62 +26,162 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
columns: [
|
||||
[
|
||||
{checkbox: true},
|
||||
|
||||
{field: 'operate', title: __('Operate'), table: table , buttons: [
|
||||
|
||||
{name: 'cancel',
|
||||
text: '取消订单',
|
||||
icon: 'fa fa-user-times',
|
||||
classname: 'btn btn-xs btn-warning btn-magic btn-ajax',
|
||||
url: $.fn.bootstrapTable.defaults.extend.cancel_url,
|
||||
confirm: '确认取消订单',
|
||||
success: function (data, ret) {
|
||||
Layer.alert(ret.msg );
|
||||
$(".btn-refresh").trigger("click");
|
||||
},
|
||||
error: function (data, ret) {
|
||||
Layer.alert(ret.msg);
|
||||
return false;
|
||||
},
|
||||
visible: function (row) {
|
||||
//显示条件 只能待入住订单
|
||||
if(row.status == '0'){
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}},
|
||||
{
|
||||
name: 'order_detail',
|
||||
text: __('课时使用情况'),
|
||||
title: __('课时使用情况'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_detail_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
visible: function (row) {
|
||||
return row.paytime;
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
name: 'order',
|
||||
text: __('课时预约记录'),
|
||||
title: __('课时预约记录'),
|
||||
classname: 'btn btn-xs btn-danger btn-magic btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
visible: function (row) {
|
||||
return row.paytime;
|
||||
}
|
||||
},
|
||||
{
|
||||
name: 'order_log',
|
||||
text: __('订单日志'),
|
||||
title: __('订单日志'),
|
||||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||||
icon: 'fa fa-list',
|
||||
url: order_log_url,
|
||||
callback: function (data) {
|
||||
|
||||
},
|
||||
// visible: function (row) {
|
||||
// return row.status == '2'||row.status == '3';
|
||||
// }
|
||||
},
|
||||
//
|
||||
// {name: 'unsetmockauth',
|
||||
// text: '取消加圈资格',
|
||||
// icon: 'fa fa-sign-in',
|
||||
// classname: 'btn btn-xs btn-danger btn-magic btn-ajax',
|
||||
// url: $.fn.bootstrapTable.defaults.extend.unsetmockauth_url,
|
||||
// confirm: '(分车版本)确认取消用户加圈资格!',
|
||||
// success: function (data, ret) {
|
||||
// Layer.alert(ret.msg );
|
||||
// $(".btn-refresh").trigger("click");
|
||||
// },
|
||||
// error: function (data, ret) {
|
||||
// Layer.alert(ret.msg);
|
||||
// return false;
|
||||
// },
|
||||
// visible: function (row) {
|
||||
// //显示条件 只能待入住订单
|
||||
// if((row.status == 2 || row.status == 3) && row.mock_type == "base" && row.add_mock_status == "2"){
|
||||
// return true;
|
||||
// }
|
||||
// return false;
|
||||
// }},
|
||||
|
||||
], events: Table.api.events.operate, formatter: Table.api.formatter.operate},
|
||||
|
||||
|
||||
{field: 'id', title: __('Id')},
|
||||
{field: 'order_no', title: __('Order_no'), operate: 'LIKE'},
|
||||
{field: 'pay_no', title: __('Pay_no'), operate: 'LIKE'},
|
||||
{field: 'user_id', title: __('User_id')},
|
||||
{field: 'manystore_id', title: __('Manystore_id')},
|
||||
{field: 'shop_id', title: __('Shop_id')},
|
||||
{field: 'code', title: __('Code'), operate: 'LIKE'},
|
||||
{field: 'codeimage', title: __('Codeimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'codeoneimage', title: __('Codeoneimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'classes_lib_id', title: __('Classes_lib_id')},
|
||||
{field: 'classes_order_detail_id', title: __('Classes_order_detail_id')},
|
||||
{field: 'beforeprice', title: __('Beforeprice'), operate:'BETWEEN'},
|
||||
{field: 'totalprice', title: __('Totalprice'), operate:'BETWEEN'},
|
||||
{field: 'payprice', title: __('Payprice'), operate:'BETWEEN'},
|
||||
{field: 'pay_type', title: __('Pay_type'), searchList: {"yue":__('Pay_type yue'),"wechat":__('Pay_type wechat')}, formatter: Table.api.formatter.normal},
|
||||
{field: 'status', title: __('Status'), searchList: {"-3":__('Status -3'),"0":__('Status 0'),"3":__('Status 3'),"6":__('Status 6'),"9":__('Status 9')}, formatter: Table.api.formatter.status},
|
||||
{field: 'before_status', title: __('Before_status'), searchList: {"-3":__('Before_status -3'),"0":__('Before_status 0'),"3":__('Before_status 3'),"6":__('Before_status 6'),"9":__('Before_status 9')}, formatter: Table.api.formatter.status},
|
||||
{field: 'server_status', title: __('Server_status'), searchList: {"0":__('Server_status 0'),"3":__('Server_status 3'),"6":__('Server_status 6')}, formatter: Table.api.formatter.status},
|
||||
{field: 'reason', title: __('Reason'), operate: 'LIKE'},
|
||||
{field: 'auth_manystore_id', title: __('Auth_manystore_id')},
|
||||
{field: 'auth_opinion', title: __('Auth_opinion'), operate: 'LIKE'},
|
||||
{field: 'auth_file', title: __('Auth_file'), operate: false},
|
||||
{field: 'admin_id', title: __('Admin_id')},
|
||||
{field: 'result_status', title: __('Result_status'), searchList: {"0":__('Result_status 0'),"3":__('Result_status 3'),"6":__('Result_status 6')}, formatter: Table.api.formatter.status},
|
||||
{field: 'result_text', title: __('Result_text'), operate: 'LIKE'},
|
||||
{field: 'result_file', title: __('Result_file'), operate: false},
|
||||
{field: 'canceltime', title: __('Canceltime')},
|
||||
{field: 'paytime', title: __('Paytime')},
|
||||
{field: 'finishtime', title: __('Finishtime')},
|
||||
{field: 'refundtime', title: __('Refundtime')},
|
||||
{field: 'total_refundprice', title: __('Total_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'real_refundprice', title: __('Real_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'sub_refundprice', title: __('Sub_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'createtime', title: __('Createtime')},
|
||||
{field: 'updatetime', title: __('Updatetime')},
|
||||
{field: 'manystore.nickname', title: __('Manystore.nickname'), operate: 'LIKE'},
|
||||
{field: 'manystore.avatar', title: __('Manystore.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
|
||||
{field: 'pay_no', title: __('Pay_no'), operate: 'LIKE',visible:false},
|
||||
{field: 'schoolclassesorderdetail.title', title: __('Schoolclassesorderdetail.title'), operate: 'LIKE'},
|
||||
{field: 'schoolclassesorderdetail.headimage', title: __('Schoolclassesorderdetail.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'user.nickname', title: __('User.nickname'), operate: 'LIKE'},
|
||||
{field: 'user.realname', title: __('User.realname'), operate: 'LIKE'},
|
||||
{field: 'user.mobile', title: __('User.mobile'), operate: 'LIKE'},
|
||||
{field: 'user.avatar', title: __('User.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'manystoreshop.name', title: __('Manystoreshop.name'), operate: 'LIKE'},
|
||||
{field: 'manystoreshop.image', title: __('Manystoreshop.image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'manystoreshop.address_city', title: __('Manystoreshop.address_city'), operate: 'LIKE'},
|
||||
{field: 'manystoreshop.province', title: __('Manystoreshop.province')},
|
||||
{field: 'manystoreshop.city', title: __('Manystoreshop.city')},
|
||||
{field: 'manystoreshop.district', title: __('Manystoreshop.district')},
|
||||
{field: 'manystoreshop.address', title: __('Manystoreshop.address'), operate: 'LIKE'},
|
||||
{field: 'manystoreshop.address_detail', title: __('Manystoreshop.address_detail'), operate: 'LIKE'},
|
||||
{field: 'schoolclasseslib.title', title: __('Schoolclasseslib.title'), operate: 'LIKE'},
|
||||
{field: 'schoolclasseslib.headimage', title: __('Schoolclasseslib.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'schoolclassesorderdetail.title', title: __('Schoolclassesorderdetail.title'), operate: 'LIKE'},
|
||||
{field: 'schoolclassesorderdetail.headimage', title: __('Schoolclassesorderdetail.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'admin.nickname', title: __('Admin.nickname'), operate: 'LIKE'},
|
||||
{field: 'admin.avatar', title: __('Admin.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
|
||||
|
||||
{field: 'user_id', title: __('User_id')},
|
||||
{field: 'payprice', title: __('Payprice'), operate:'BETWEEN'},
|
||||
{field: 'pay_type', title: __('Pay_type'), searchList: {"yue":__('Pay_type yue'),"wechat":__('Pay_type wechat')}, formatter: Table.api.formatter.normal},
|
||||
|
||||
|
||||
{field: 'manystore_id', title: __('Manystore_id'),visible:false},
|
||||
{field: 'shop_id', title: __('Shop_id'),visible:false},
|
||||
{field: 'code', title: __('Code'),visible:false, operate: 'LIKE'},
|
||||
// {field: 'codeimage', title: __('Codeimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
// {field: 'codeoneimage', title: __('Codeoneimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'classes_lib_id', title: __('Classes_lib_id')},
|
||||
{field: 'classes_order_detail_id',visible:false, title: __('Classes_order_detail_id')},
|
||||
{field: 'beforeprice',visible:false, title: __('Beforeprice'), operate:'BETWEEN'},
|
||||
{field: 'totalprice', title: __('Totalprice'), operate:'BETWEEN'},
|
||||
{field: 'before_status',visible:false, title: __('Before_status'), searchList: {"-3":__('Before_status -3'),"0":__('Before_status 0'),"3":__('Before_status 3'),"6":__('Before_status 6'),"9":__('Before_status 9')}, formatter: Table.api.formatter.status},
|
||||
{field: 'server_status',visible:false, title: __('Server_status'), searchList: {"0":__('Server_status 0'),"3":__('Server_status 3'),"6":__('Server_status 6')}, formatter: Table.api.formatter.status},
|
||||
{field: 'reason',visible:false, title: __('Reason'), operate: 'LIKE'},
|
||||
{field: 'auth_manystore_id',visible:false, title: __('Auth_manystore_id')},
|
||||
{field: 'auth_opinion',visible:false, title: __('Auth_opinion'), operate: 'LIKE'},
|
||||
{field: 'auth_file',visible:false, title: __('Auth_file'), operate: false},
|
||||
{field: 'admin_id',visible:false, title: __('Admin_id')},
|
||||
{field: 'result_status',visible:false, title: __('Result_status'), searchList: {"0":__('Result_status 0'),"3":__('Result_status 3'),"6":__('Result_status 6')}, formatter: Table.api.formatter.status},
|
||||
{field: 'result_text',visible:false, title: __('Result_text'), operate: 'LIKE'},
|
||||
{field: 'result_file',visible:false, title: __('Result_file'), operate: false},
|
||||
{field: 'canceltime', title: __('Canceltime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'paytime', title: __('Paytime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'finishtime', title: __('Finishtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'refundtime', title: __('Refundtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'total_refundprice',visible:false, title: __('Total_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'real_refundprice',visible:false, title: __('Real_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'sub_refundprice',visible:false, title: __('Sub_refundprice'), operate:'BETWEEN'},
|
||||
{field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
|
||||
{field: 'manystore.nickname',visible:false, title: __('Manystore.nickname'), operate: 'LIKE'},
|
||||
{field: 'manystore.avatar',visible:false, title: __('Manystore.avatar'), operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'manystoreshop.name',visible:false, title: __('Manystoreshop.name'), operate: 'LIKE'},
|
||||
{field: 'manystoreshop.image',visible:false, title: __('Manystoreshop.image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'manystoreshop.address_city',visible:false, title: __('Manystoreshop.address_city'), operate: 'LIKE'},
|
||||
{field: 'manystoreshop.province',visible:false, title: __('Manystoreshop.province')},
|
||||
{field: 'manystoreshop.city',visible:false, title: __('Manystoreshop.city')},
|
||||
{field: 'manystoreshop.district',visible:false, title: __('Manystoreshop.district')},
|
||||
{field: 'manystoreshop.address',visible:false, title: __('Manystoreshop.address'), operate: 'LIKE'},
|
||||
{field: 'manystoreshop.address_detail',visible:false, title: __('Manystoreshop.address_detail'), operate: 'LIKE'},
|
||||
{field: 'schoolclasseslib.title',visible:false, title: __('Schoolclasseslib.title'), operate: 'LIKE'},
|
||||
{field: 'schoolclasseslib.headimage',visible:false, title: __('Schoolclasseslib.headimage'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
{field: 'admin.nickname', title: __('Admin.nickname'),visible:false, operate: 'LIKE'},
|
||||
{field: 'admin.avatar', title: __('Admin.avatar'),visible:false, operate: 'LIKE', events: Table.api.events.image, formatter: Table.api.formatter.image},
|
||||
// {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
@ -159,5 +260,20 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
var order_detail_url = function (row,dom) {
|
||||
return 'school/classes/order/order_detail/index?classes_order_id='+row.id;
|
||||
}
|
||||
|
||||
var order_log_url = function (row,dom) {
|
||||
return 'school/classes/order/order_log/index?classes_order_id='+row.id;
|
||||
}
|
||||
|
||||
var order_url = function (row,dom) {
|
||||
return 'school/classes/hourorder/order/index?classes_order_id='+row.id + '&classes_lib_id='+row.classes_lib_id;
|
||||
}
|
||||
|
||||
|
||||
return Controller;
|
||||
});
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue