diff --git a/traits/think/controller/ajax.php b/traits/think/controller/ajax.php new file mode 100644 index 00000000..59019a96 --- /dev/null +++ b/traits/think/controller/ajax.php @@ -0,0 +1,72 @@ +result(); + * } + * } + */ +namespace traits\think\controller; +use think\Config; + +trait Ajax +{ + /** + * 返回封装后的API数据到客户端 + * @access protected + * @param mixed $data 要返回的数据 + * @param string $msg 提示信息 + * @param integer $code 返回的code + * @param string $url 重定向地址 + * @param integer $wait 跳转等待时间 + * @return void + */ + public function result($data = '', $msg = '', $code = 0, $url = '', $wait = 0) + { + $result = [ + 'code' => $code, + 'msg' => $msg, + 'data' => $data, + 'url' => $url, + 'wait' => $wait, + ]; + if ('html' == Config::get('default_return_type')) { + return $this->fetch(Config::get('dispatch_jump_tmpl'), $result); + } else { + return $result; + } + } + + /** + * 操作错误跳转的快捷方法 + * @access protected + * @param string $message 错误信息 + * @param string $jumpUrl 页面跳转地址 + * @param integer $wait 跳转等待时间 + * @return void + */ + protected function error($message, $jumpUrl = '', $wait = 5) + { + $jumpUrl = $jumpUrl ?: 'javascript:history.back(-1);'; + return $this->result('', $message, 0, $jumpUrl, $wait); + } + + /** + * 操作成功跳转的快捷方法 + * @access protected + * @param string $message 提示信息 + * @param string $jumpUrl 页面跳转地址 + * @param integer $wait 跳转等待时间 + * @return void + */ + protected function success($message, $jumpUrl = '', $wait = 3) + { + $jumpUrl = $jumpUrl ?: $_SERVER["HTTP_REFERER"]; + return $this->result('', $message, 1, $jumpUrl, $wait); + } + +} \ No newline at end of file