diff --git a/app/culture/config.php b/app/culture/config.php new file mode 100644 index 0000000..0860901 --- /dev/null +++ b/app/culture/config.php @@ -0,0 +1,18 @@ + +// +---------------------------------------------------------------------- +return [ + 'template' => [ + 'taglib_pre_load' => 'app\\culture\\taglib\\Yf', + ], + 'hostpath'=>'https://xcx.szcaee.cn', + 'aes'=>[ + 'key'=>'92dbf2e19f802e68755a0917eb42071b', + 'iv'=>'91828dd543e6db32', + ], +]; diff --git a/app/culture/controller/Agency.php b/app/culture/controller/Agency.php new file mode 100644 index 0000000..b7badf9 --- /dev/null +++ b/app/culture/controller/Agency.php @@ -0,0 +1,158 @@ + +// +---------------------------------------------------------------------- +namespace app\culture\controller; + +use think\Controller; +use think\Validate; + +class Agency extends Base{ + protected $current=[['title'=>'文化金融服务机构']]; + protected $apitoken=''; + public function _initialize(){ + parent::_initialize(); + $this->assign('current',$this->current); + $this->apitoken=session('api_token'); + } + /** + * 机构列表 + * @return string + */ + public function investors(){ + $page=input('page',1,'intval'); + $industry_id=input('industry_id','','intval'); + $investment_id=input('investment_id','','intval'); + $region_id=input('region_id','','intval'); + $keyword=input('keyword'); + $sort=input('sort'); + + $token=request()->token('__agen__'); + if($keyword){ + $rule = [ + '__agen__' =>'require|token:__agen__' + ]; + $message =[ + '__agen__.require'=>'令牌缺失' + ]; + + $validate=new Validate($rule,$message); + $result=$validate->check(input()); + if(!$result){ + return json_encode(['investors'=>[],'token'=>$token]); + } + } + + $parmas=['page'=>$page,'industry_id'=>$industry_id,'region_id'=>$region_id,'investment_id'=>$investment_id,'keyword'=>$keyword,'sort'=>$sort]; + $params=http_build_query($parmas); + $url=$this->hostpath."/api/investors/index?".$params; + $investors="[]"; + try { + $investors=go_curl($url,'GET',false,['Accept'=>'application/json']); + }catch (\Exception $e){ + + } + return json_encode(['investors'=>$investors,'token'=>$token]); + } + /** + * 获取机构联系⽅式 + * @return array|mixed + */ + public function contact(){ + $id=input('id','','intval'); + $url=$this->hostpath."/api/investors/".$id."/contact"; + $pro=[]; + try { + $pro=go_curl($url,'GET',false,['Accept'=>'application/json']); + $pro=json_decode($pro,true); + if(!isset($pro['name']))$pro=[]; + }catch (\Exception $e){ + + } + return $pro; + } + /** + * 机构详情 + * @return string + */ + public function detail(){ + $id=input('id','','intval'); + $this->assign('id',$id); + $this->assign('type','机构'); + + $apitoken=session('api_token'); + if(empty($apitoken)){ + $this->error('请先登录'); + } + + $pro=[]; + $title=""; + if($id){ + $url=$this->hostpath."/api/investors/".$id; + try { + $header=['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]; + $pro=go_curl($url,'GET',false,$header); + $pro=json_decode($pro,true); + $title=$pro['name']; + }catch (\Exception $e){ + + } + } + if(isset($pro['id'])&&isset($pro['message'])){ + $this->error($pro['message']); + } + if(!isset($pro['name']))$pro=['avatar'=>'','name'=>'','industries'=>[],'investable_type'=>'','individual_info'=>[],'description'=>'','reputation'=>0]; + if(isset($pro['reputation'])){ + $score=$pro['reputation']; + $userinfo=$this->getUserProfile(); + if(!isset($userinfo['reputation'])||$score>$userinfo['reputation']){ + $this->error('你的信誉积分不足,请补全认证资料增加信誉积分才可以查看'); + } + } + + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>$title]); + $this->assign('current',$current); + $this->assign('detail',$pro); + + return $this->view->fetch(':agency_detail'); + } + /** + * 机构列表 + * @return string + */ + public function index(){ + $userscore=''; + $profile=false; + $apitoken=session('api_token'); + if($apitoken){ + $userinfo=$this->getUserProfile(); + if(isset($userinfo['reputation'])){ + $userscore=$userinfo['reputation']; + } + + if(isset($userinfo['profile_completed'])){ + $profile=$userinfo['profile_completed']; + } + } + $this->assign('profile',intval($profile)); + $this->assign('userscore',$userscore); + $url=$this->hostpath."/api/investor/filters"; + $profilters="[]"; + try { + $profilters=go_curl($url,'GET',false,['Accept'=>'application/json']); + $profilters=json_decode($profilters,true); + if(isset($profilters['id']))$profilters=[]; + }catch (\Exception $e){ + + } + $this->assign('profilters',$profilters); + return $this->view->fetch(':agency'); + } + +} \ No newline at end of file diff --git a/app/culture/controller/Base.php b/app/culture/controller/Base.php new file mode 100644 index 0000000..aca6c63 --- /dev/null +++ b/app/culture/controller/Base.php @@ -0,0 +1,197 @@ + +// +---------------------------------------------------------------------- +namespace app\culture\controller; + +use app\common\controller\Common; +use app\admin\model\Options; +use think\Db; +use think\Session; +use think\Request; + +class Base extends Common{ + protected $hostpath; + protected $menu_arr; + protected function _initialize(){ + parent::_initialize(); + $this->hostpath=config('hostpath'); + $this->curren_menu_id=7; + //菜单 + $this->menu_id=input('id',0,'intval'); + if($this->menu_id){ + $this->menu_arr=get_menu_parents($this->menu_id); + if($this->menu_arr){ + $this->curren_menu_id=$this->menu_arr[0]; + } + } + $this->assign('curren_menu_id',$this->curren_menu_id); + + $this->assign('menu_arr',$this->menu_arr); + //主题 + $site_options=Options::get_options('site_options',$this->lang); + + $this->site_options=$site_options; + $site_options['site_tongji']=htmlspecialchars_decode($site_options['site_tongji']); + $site_options['site_copyright']=htmlspecialchars_decode($site_options['site_copyright']); + //主题 + $theme=$site_options['site_tpl']; + $this->assign($site_options); + + $this->view=$this->view->config('view_path',APP_PATH.request()->module().'/view/'.$theme.'/'); + $yf_theme_path=__ROOT__.'/app/culture/view/'.$theme.'/'; + $this->assign('yf_theme_path',$yf_theme_path); + + $yf_theme_path=__ROOT__.'/app/home/view/'.$theme.'/'; + $this->assign('yf_home_path',$yf_theme_path); + + $home_slides=Db::name('link')->where(['lk_cid'=>3,'lk_status'=>1])->order('lk_order')->select(); + $this->assign("home_slides",$home_slides); + + $is_mobile=0; + if(request()->isMobile()){ + $is_mobile=1; + } + $is_admin=false; + $address=''; + $this->user=array(); + $uid=session('hid'); + + if(session('hid')){ + $this->user=Db::name('member_list')->find(session('hid')); + if(!empty($this->user['member_list_province'])){ + $rst=Db::name('region')->field('name')->find($this->user['member_list_province']); + $address.=$rst?$rst['name'].lang('province'):''; + } + if(!empty($this->user['member_list_city'])){ + $rst=Db::name('region')->field('name')->find($this->user['member_list_city']); + $address.=$rst?$rst['name'].lang('city'):''; + } + if(!empty($this->user['member_list_town'])){ + $rst=Db::name('region')->field('name')->find($this->user['member_list_town']); + $address.=$rst?$rst['name']:''; + } + //未读通知数 + $notice_unread=Db::name('cult4notice')->alias('a') + ->where(['a.user_id'=>session('hid'),'is_read'=>0]) + ->count(); + $this->assign('notice_unread',$notice_unread); + } + //友情链接 + $links=get_links(2); + + $this->assign("links",$links);$this->user['address']=$address; + $this->assign("user",$this->user); + $this->assign("is_admin",$is_admin); + $this->assign("is_mobile",$is_mobile); + + //同意协议 + $agreesys=Options::get_options('agree_options',$this->lang); + $this->assign("agreesys",$agreesys); + + //托管同意协议 + $tg_agreesys1=Options::get_options('agree_options1',$this->lang); + $this->assign("agreesys1",$tg_agreesys1); + + $tg_agreesys2=Options::get_options('agree_options2',$this->lang); + $this->assign("agreesys2",$tg_agreesys2); + + $tg_agreesys3=Options::get_options('agree_options3',$this->lang); + $this->assign("agreesys3",$tg_agreesys3); + + $tg_agreesys4=Options::get_options('agree_options4',$this->lang); + $this->assign("agreesys4",$tg_agreesys4); + + $tg_agreesys5=Options::get_options('agree_options5',$this->lang); + $this->assign("agreesys5",$tg_agreesys5); + + //托管同意协议 + $tg_agreesys1=Options::get_options('tgagree_options1',$this->lang); + $this->assign("tg_agreesys1",$tg_agreesys1); + + $tg_agreesys2=Options::get_options('tgagree_options2',$this->lang); + $this->assign("tg_agreesys2",$tg_agreesys2); + + $tg_agreesys3=Options::get_options('tgagree_options3',$this->lang); + $this->assign("tg_agreesys3",$tg_agreesys3); + + $tg_agreesys4=Options::get_options('tgagree_options4',$this->lang); + $this->assign("tg_agreesys4",$tg_agreesys4); + + $tg_agreesys5=Options::get_options('tgagree_options5',$this->lang); + $this->assign("tg_agreesys5",$tg_agreesys5); + + + + //托管同意协议 + $org_agreesys= Db::name('org_temp')->where(['code'=>'orgagree_options'])->find(); + $this->assign("org_agreesys",$org_agreesys); + //登录掌柜文化金服token + $this->assign("user_token",session('user_token')); + + + //浏览器检测 + $broswer=getBroswer(true); + $this->assign('broswer', $broswer); + + } + // 获取sign + protected function getSign2($data){ + $aes=config('aes'); + $crypt = new \Aes(\Aes::AES_128_CBC); + $crypt->setKey($aes['key']); + $crypt->setIV($aes['iv']); + + if (isset($data['token'])) + unset($data['token']); + // 对数组的值按key排序 + ksort($data); + // 生成url的形式 + $params = http_build_query($data); + // 生成sign + $sign = md5($params.$aes['key']); + return $crypt->enUrl($sign); + } + /** + * 上传方法 + */ + public function upload(Request $request){ + // 获取表单上传文件 + $key=$request->param('key'); + if(!$key)return $this->error('參數錯誤'); + $file = request()->file($key); + // 移动到框架应用根目录/uploads/ 目录下 + $uploadpath=config('upload_path'); + $path=ROOT_PATH . config('upload_path'); + $validate = config('upload_validate'); + $info = $file->validate($validate)->move($path); + if($info){ + $data=array(); + $data['ext']=$info->getExtension(); + $data['path']=$uploadpath.DS.$info->getSaveName(); + $data['filename']=$info->getFilename(); + return $this->success('上傳成功','',$data); + }else{ + return $this->error($file->getError()); + } + } + protected function getUserProfile(){ + $url=$this->hostpath."/api/user/profiles"; + $userinfo=[]; + try { + $apitoken=session("api_token"); + $res=go_curl($url,'GET',false,["Accept:application/json","Authorization:Bearer ".$apitoken]); + $userinfo=json_decode($res,true); + if(empty($res)){ + $userinfo=[]; + } + }catch (\Exception $e){ + + } + return $userinfo; + } +} diff --git a/app/culture/controller/Common.php b/app/culture/controller/Common.php new file mode 100644 index 0000000..4b0e968 --- /dev/null +++ b/app/culture/controller/Common.php @@ -0,0 +1,140 @@ + +// +---------------------------------------------------------------------- +namespace app\culture\controller; + +use think\captcha\Captcha; +use think\Session; +use think\Log; + +class Common extends Base{ + public function _initialize(){ + parent::_initialize(); + $this->assign('current',[['title'=>'文化金融服务项目']]); + } + public function verify(){ + $key=request()->param('key'); + if(empty($key))$this->error('缺少参数'); + return $this->verify_build($key); + } + protected function verify_build($id=''){ + ob_end_clean(); + $verify = new Captcha (config('verify')); + return $verify->entry($id); + } + /** + * 登录页面 + * @return mixed|string + */ + public function login(){ + $apitoken=session('api_token'); + if(!empty($apitoken)){ + $this->redirect(url('culture/user/index')); + } + $this->assign('current',[['title'=>'用户登录']]); + return $this->fetch(':login'); + } + /** + * 退出 + */ + public function logout(){ + Session::delete('api_token'); + $this->success("登出成功",url('culture/common/login')); + } + /** + * 注册小程序用户 + */ + public function register(){ + $token=md5('szcaee_culture'); + $options = array( + 'token'=>$token, //填写你设定的key + 'appid'=>'wx5cf3b72f956ecbe1', //填写高级调用功能的app id, 请在微信开发模式后台查询 + 'appsecret'=>'281ad0e4de4c56fe39893d05c1222357', //填写高级调用功能的密钥 + ); + + $we_obj = new \Wechat($options); + $code =input('code'); + if ($code) { + Log::write($code); + try { + $json = $we_obj->getOauthAccessToken(); + }catch (\Exception $e){ + $this->redirect(url('culture/common/login')); + } + Log::write($json); + if (!$json) { + $this->redirect(url('culture/common/login')); + } + $openid=$json["openid"]; + $unionid=$json["unionid"]; + $access_token = $json['access_token']; + + $wxuser=['open_id'=>$openid]; + //缓存获取用户资料 + $cache=cache($openid); + $nickname=$avatar=''; + if($cache){ + try { + $userinfo=json_decode($cache,true); + $nickname=$userinfo['nickname']; + $avatar=$userinfo['avatar']; + }catch (\Exception $e){} + }else{ + $userinfo=$we_obj->getOauthUserinfo($access_token,$openid); + if ($userinfo && !empty($userinfo['nickname'])) { + $nickname=$userinfo['nickname']; + $avatar=$userinfo['headimgurl']; + } + $params=['nickname'=>$nickname,'avatar'=>$avatar]; + cache($openid,json_encode($params)); + } + if($nickname)$wxuser['nickname']=$nickname; + if($avatar)$wxuser['avatar']=$avatar; + $wxuser['unionid']=$unionid; + $wxuser['timestamp']=time(); + + $url=$this->hostpath."/api/auth/register"; + $secret="098f6bcd4621d373cade4e832627b4f6"; + $token=$this->getSign($secret, $wxuser); + $wxuser['token']=$token; + $result=['status'=>0]; + Log::write($wxuser); + try { + $res=go_curl($url,'POST',$wxuser,['Accept'=>'application/json']); + Log::write($res); + $res=json_decode($res,true); + if(isset($res['status'])&&$res['status']){ + $result['status']=$res['status']; + Session::delete('api_token'); + session('api_token',$res['access_token']); + } + }catch (\Exception $e){ + + } + + if($result['status']){ + $this->redirect(url('culture/user/index')); + }else{ + $this->redirect(url('culture/common/login')); + } + } + } + // 获取sign + protected function getSign($secret, $data) + { + if (isset($data['token'])) + unset($data['token']); + // 对数组的值按key排序 + ksort($data); + // 生成url的形式 + $params = http_build_query($data); + // 生成sign + $sign = md5($params . $secret); + return $sign; + } +} \ No newline at end of file diff --git a/app/culture/controller/Index.php b/app/culture/controller/Index.php new file mode 100644 index 0000000..f66c950 --- /dev/null +++ b/app/culture/controller/Index.php @@ -0,0 +1,218 @@ + +// +---------------------------------------------------------------------- +namespace app\culture\controller; + +use think\Db; +class Index extends Base{ + protected $current=[['title'=>'文化金融服务项目']]; + protected $apitoken=''; + public function _initialize(){ + parent::_initialize(); + $this->assign('current',$this->current); + $this->apitoken=session('api_token'); + } + protected function test(){ + $apply_list=Db::name('cult4apply')->alias("a")->join(config('database.prefix').'cult4baseinfo b','a.apply_id =b.apply_id')->where(['b.new_flag'=>1,'a.status'=>array('in',[30,31])])->select(); + + foreach ($apply_list as $row){ + $data=[]; + $data['user_id']='57'; + $data['logo']=$row['logo']; + $region_id='2162'; + switch ($row['apply_type']){ + case 1: + $addr=$row['c_reg_addr']; + $addrs=explode('市', $addr); + $city=$addrs[0]; + if(strpos($city,'省')!=false){ + $addrs=explode('省', $city); + $city=$addrs[1]; + } + if($city){ + $res=Db::connect('db1')->query("select * from regions where name like '%".$city."%'"); + if($res){ + $region_id=$res[0]['id']; + } + } + $data['name']=$row['c_name']; + $data['minimum_amount']=$row['c_reg_capital']; + $data['maximum_amount']=$row['c_reg_capital']; + $data['business_introduction']=$row['c_business_model_descr']; + $data['project_introduction']=$row['c_business_model_descr']; + $data['created_at']=$row['c_appl_date']?date("Y-m-d H:i:s",$row['c_appl_date']):''; + $data['updated_at']=$row['c_appl_date']?date("Y-m-d H:i:s",$row['c_appl_date']):''; + break; + case 2: + $data['name']=$row['p_name']; + $data['minimum_amount']=$row['p_amount']; + $data['maximum_amount']=$row['p_amount']; + $data['business_introduction']=$row['p_business_model_descr']; + $data['project_introduction']=$row['p_descr']; + $data['created_at']=$row['create_time']?date("Y-m-d H:i:s",$row['create_time']):''; + $data['updated_at']=$row['create_time']?date("Y-m-d H:i:s",$row['create_time']):''; + break; + case 3: + break; + } + + + $data['industry_id']=1; + $data['region_id']=$region_id; + $data['investment_id']=1; + $data['major_product_introduction']=''; + $data['core_team_introduction']=''; + $data['financing_introduction']=''; + $data['proposal_images']=''; + $data['proposal_file']=''; + $data['approved_at']=$row['code_oper_time']?date("Y-m-d H:i:s",$row['code_oper_time']):''; + $data['tag']=1; + $query=Db::connect('db1')->table('projects')->insert($data); + $lastid=Db::connect('db1')->table('projects')->getLastInsID(); + + $data=[]; + $data['user_id']='57'; + $data['auditable_type']='App\Project'; + $data['auditable_id']=$lastid; + $data['audited_at']=date("Y-m-d H:i:s",time()); + $data['created_at']=date("Y-m-d H:i:s",time()); + $data['updated_at']=date("Y-m-d H:i:s",time()); + $data['tag']=1; + $query=Db::connect('db1')->table('audits')->insert($data); + } + } + /** + * 中心简介 + * @return string + */ + public function index(){ + $current=[]; + $current[0]['jump']=url('introduction'); + $current[0]['title']='中心简介'; + $this->assign('current',$current); + + $url=$this->hostpath."/api/about"; + + $page="[]"; + try { + $page=go_curl($url,'GET',false,['Accept'=>'application/json']); + $page=json_decode($page,true); + }catch (\Exception $e){ + + } + $this->assign('page',$page); + return $this->view->fetch(':introduction'); + } + /** + * 文化金融政策 + * @return string + */ + public function policy(){ + $current=[]; + $current[0]['jump']=url('policy'); + $current[0]['title']='文化金融政策'; + $this->assign('current',$current); + return $this->view->fetch(':policy'); + } + /** + * 政策列表 + * @return string + */ + public function ajaxpolicys(){ + $page=input('page',1,'intval'); + + $parmas=['page'=>$page]; + $params=http_build_query($parmas); + $url=$this->hostpath."/api/policys/index?".$params; + + $policys="[]"; + try { + $policys=go_curl($url,'GET',false,['Accept'=>'application/json']); + }catch (\Exception $e){ + + } + return $policys; + } + /** + * 政策详情 + * @return string + */ + public function policydetail(){ + $id=input('id','','intval'); + $this->assign('id',$id); + $pro=[]; + $url=$this->hostpath."/api/policys/".$id; + + try { + $pro=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $pro=json_decode($pro,true); + }catch (\Exception $e){ + + } + if(isset($pro['id'])&&isset($pro['message'])){ + $this->error($pro['message']); + } + + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>$pro['name']]); + $this->assign('current',$current); + $this->assign('detail',$pro); + return $this->view->fetch(':policy_detail'); + } + /** + * 轮播图展示 + * @return string + */ + public function carousels(){ + $url=$this->hostpath."/api/carousels"; + $carousels="[]"; + try { + $carousels=go_curl($url,'GET',false,['Accept'=>'application/json']); + }catch (\Exception $e){ + } + return $carousels; + } + + /** + * 获取项⽬联系⽅式 + * @return array|mixed + */ + public function contact(){ + $id=input('id','','intval'); + $url=$this->hostpath."/api/projects/".$id."/contact"; + $pro=[]; + try { + $pro=go_curl($url,'GET',false,['Accept'=>'application/json']); + $pro=json_decode($pro,true); + if(!isset($pro['name']))$pro=[]; + }catch (\Exception $e){ + } + return $pro; + } + + /** + * 检查积分 + */ + protected function checkscore(){ + $apitoken=session('api_token'); + if(empty($apitoken)){ + $this->error('请先登录'); + } + $id=input('id'); + $score=input('score'); + $userinfo=$this->getUserProfile(); + if(!isset($userinfo['reputation'])||$score>$userinfo['reputation']){ + $this->error('你的信誉积分不足,请补全认证资料增加信誉积分才可以查看'); + } + $jump=url('detail',['id'=>$id]); + $this->success('可访问',$jump); + } + + +} \ No newline at end of file diff --git a/app/culture/controller/Policy.php b/app/culture/controller/Policy.php new file mode 100644 index 0000000..c5f4087 --- /dev/null +++ b/app/culture/controller/Policy.php @@ -0,0 +1,80 @@ + +// +---------------------------------------------------------------------- +namespace app\culture\controller; + +use think\Db; +class Policy extends Base{ + protected $current=[['title'=>'文化金融政策']]; + protected $apitoken=''; + public function _initialize(){ + parent::_initialize(); + $this->assign('current',$this->current); + $this->apitoken=session('api_token'); + } + + /** + * 文化金融政策 + * @return string + */ + public function index(){ + $current=[]; + $current[0]['jump']=url('policy'); + $current[0]['title']='文化金融政策'; + $this->assign('current',$current); + return $this->view->fetch(':policy'); + } + /** + * 政策列表 + * @return string + */ + public function ajaxpolicys(){ + $page=input('page',1,'intval'); + + $parmas=['page'=>$page]; + $params=http_build_query($parmas); + $url=$this->hostpath."/api/policys/index?".$params; + + $policys="[]"; + try { + $policys=go_curl($url,'GET',false,['Accept'=>'application/json']); + }catch (\Exception $e){ + + } + return $policys; + } + /** + * 政策详情 + * @return string + */ + public function policydetail(){ + $id=input('id','','intval'); + $this->assign('id',$id); + $pro=[]; + $url=$this->hostpath."/api/policys/".$id; + + try { + $pro=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $pro=json_decode($pro,true); + }catch (\Exception $e){ + + } + if(isset($pro['id'])&&isset($pro['message'])){ + $this->error($pro['message']); + } + + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>$pro['name']]); + $this->assign('current',$current); + $this->assign('detail',$pro); + + return $this->view->fetch(':policy_detail'); + } + +} \ No newline at end of file diff --git a/app/culture/controller/Project.php b/app/culture/controller/Project.php new file mode 100644 index 0000000..665f81e --- /dev/null +++ b/app/culture/controller/Project.php @@ -0,0 +1,155 @@ + +// +---------------------------------------------------------------------- +namespace app\culture\controller; + +use think\Db; +use think\Validate; +class Project extends Base{ + protected $current=[['title'=>'文化金融服务项目']]; + protected $apitoken=''; + public function _initialize(){ + parent::_initialize(); + $this->assign('current',$this->current); + $this->apitoken=session('api_token'); + } + + /** + * 项目列表 + * @return string + */ + public function ajaxprojects(){ + $page=input('page',1,'intval'); + $industry_id=input('industry_id','','intval'); + $investment_id=input('investment_id','','intval'); + $region_id=input('region_id','','intval'); + $keyword=input('keyword'); + $sort=input('sort'); + + $token=request()->token('__cult__'); + if($keyword){ + $rule = [ + '__cult__' =>'require|token:__cult__' + ]; + $message =[ + '__cult__.require'=>'令牌缺失' + ]; + + $validate=new Validate($rule,$message); + $result=$validate->check(input()); + if(!$result){ + return json_encode(['projects'=>[],'token'=>$token]); + } + } + $parmas=['page'=>$page,'industry_id'=>$industry_id,'region_id'=>$region_id,'investment_id'=>$investment_id,'keyword'=>$keyword,'sort'=>$sort]; + $params=http_build_query($parmas); + $url=$this->hostpath."/api/projects/index?".$params; + + $projects="[]"; + try { + $projects=go_curl($url,'GET',false,['Accept'=>'application/json']); + }catch (\Exception $e){ + + } + return json_encode(['projects'=>$projects,'token'=>$token]); + } + + /** + * 机构详情 + * @return string + */ + public function detail(){ + $id=input('id','','intval'); + $this->assign('id',$id); + $this->assign('type','项目'); + + $apitoken=session('api_token'); + if(empty($apitoken)){ + $this->error('请先登录'); + } + $pro=[]; + $url=$this->hostpath."/api/projects/".$id; + + try { + $pro=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $pro=json_decode($pro,true); + }catch (\Exception $e){ + + } + if(isset($pro['id'])&&isset($pro['message'])){ + $this->error($pro['message']); + } + if(!isset($pro['name']))$pro=['name'=>'','reputation'=>0,'logo'=>'','project_introduction'=>'','major_product_introduction'=>'','core_team_introduction'=>'','financing_introduction'=>'']; + if(isset($pro['reputation'])){ + $score=$pro['reputation']; + $userinfo=$this->getUserProfile(); + if(!isset($userinfo['reputation'])||$score>$userinfo['reputation']){ + $this->error('你的信誉积分不足,请补全认证资料增加信誉积分才可以查看'); + } + } + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>$pro['name']]); + $this->assign('current',$current); + $this->assign('detail',$pro); + + return $this->view->fetch(':project_detail'); + } + /** + * 检查积分 + */ + protected function checkscore(){ + $apitoken=session('api_token'); + if(empty($apitoken)){ + $this->error('请先登录'); + } + $id=input('id'); + $score=input('score'); + $userinfo=$this->getUserProfile(); + if(!isset($userinfo['reputation'])||$score>$userinfo['reputation']){ + $this->error('你的信誉积分不足,请补全认证资料增加信誉积分才可以查看'); + } + $jump=url('detail',['id'=>$id]); + $this->success('可访问',$jump); + } + /** + * 项目列表 + * @return string + */ + public function index(){ + $userscore=''; + $profile=false; + $apitoken=session('api_token'); + if($apitoken){ + $userinfo=$this->getUserProfile(); + + if(isset($userinfo['reputation'])){ + $userscore=$userinfo['reputation']; + } + if(isset($userinfo['profile_completed'])){ + $profile=$userinfo['profile_completed']; + } + } + $this->assign('profile',intval($profile)); + $this->assign('userscore',$userscore); + $url=$this->hostpath."/api/project/filters"; + $profilters="[]"; + try { + $profilters=go_curl($url,'GET',false,['Accept'=>'application/json']); + $profilters=json_decode($profilters,true); + if(isset($profilters['id']))$profilters=[]; + }catch (\Exception $e){ + + } + $this->assign('profilters',$profilters); + + return $this->view->fetch(':index'); + } + + +} \ No newline at end of file diff --git a/app/culture/controller/User.php b/app/culture/controller/User.php new file mode 100644 index 0000000..c93dc91 --- /dev/null +++ b/app/culture/controller/User.php @@ -0,0 +1,894 @@ + +// +---------------------------------------------------------------------- +namespace app\culture\controller; + + +use think\Validate; + +class User extends Base{ + protected $userinfo=[]; + protected $apitoken=''; + protected $current=[['title'=>'个人中心']]; + protected function _initialize(){ + parent::_initialize(); + $this->assign('current',$this->current); + $apitoken=session('api_token'); + if(empty($apitoken)){ + if(request()->isAjax()){ + $this->error('请先登录',url('culture/common/login')); + }else{ + $this->redirect(url('culture/common/login')); + } + } + $this->apitoken=$apitoken; + $this->userinfo=$this->getUserProfile(); + } + public function index(){ + + $this->assign('profile',$this->userinfo); + return $this->fetch(':user'); + } + /** + * 获取已购买服务 + * @return string + */ + public function mymarkets(){ + $url=$this->hostpath."/api/user/markets"; + $showlist=[]; + try { + $showlist=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $showlist=json_decode($showlist,true); + if(count($showlist)==0||isset($showlist['id']))$showlist=[]; + }catch (\Exception $e){ + + } + $this->assign('showlist',$showlist); + $this->assign('my',1); + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>'我已购买的服务']); + $this->assign('current',$current); + + $this->assign('profile',$this->userinfo); + return $this->view->fetch(':markets'); + } + /** + * 商城服务列表 + * @return string + */ + public function markets(){ + $url=$this->hostpath."/api/markets"; + $showlist=[]; + try { + $showlist=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $showlist=json_decode($showlist,true); + if(count($showlist)==0)$showlist=[]; + }catch (\Exception $e){ + + } + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>'积分商城']); + $this->assign('current',$current); + $this->assign('showlist',$showlist); + + $this->assign('profile',$this->userinfo); + return $this->view->fetch(':markets'); + } + /** + * 服务兑换 + * @return string[]|mixed + */ + public function redeem(){ + $id=input('id','','intval'); + if(empty($id))$this->error('缺少id'); + $url=$this->hostpath."/api/markets/".$id."/redeem"; + $res=['message'=>'兑换失败']; + + try { + $res=go_curl($url,'POST',false,["Accept:application/json","Authorization:Bearer ".$this->apitoken]); + + $res=json_decode($res,true); + if(empty($res)){ + $res=['message'=>'兑换失败']; + } + if(isset($res['id'])){ + switch($res['message']){ + case 'Unauthenticated.': + $res['message']='接口未授权'; + break; + } + } + }catch (\Exception $e){ + + } + + return $res; + } + /** + * 服务详情 + * @return string + */ + public function market_detail(){ + $id=input('id','','intval'); + $this->assign('id',$id); + $this->assign('type','服务'); + $title=''; + $pro=[]; + $url=$this->hostpath."/api/markets/".$id; + try { + $pro=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $pro=json_decode($pro,true); + if(!isset($pro['name']))$pro=[]; + else $title=$pro['name']; + }catch (\Exception $e){ + + } + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>'已购买的服务','jump'=>url('mymarkets')]); + if($title){ + array_push($current, ['title'=>$title]); + } + $this->assign('current',$current); + $this->assign('detail',$pro); + + $this->assign('profile',$this->userinfo); + return $this->view->fetch(':market_detail'); + } + /** + * 获取个⼈资料 + */ + public function individual_presentations(){ + $url=$this->hostpath."/api/individual-investor/presentations"; + if(request()->isPost()){ + $rule=[ + 'avatar'=>'require', + 'description'=>'require', + 'images'=>'require' + ]; + $msg=[ + 'avatar.require'=>'请输入投资者照片', + 'description.require'=>'请输入介绍文字', + 'images.require'=>'请输入照片' + ]; + + $data=request()->param(); + $validate = new Validate($rule,$msg); + $result = $validate->check($data); + if(!$result){ + $this->error($validate->getError()); + } + + $res=['message'=>'编辑失败']; + try { + $res=go_curl($url,'POST',$data,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $res=json_decode($res,true); + }catch (\Exception $e){ + + } + + $this->success('编辑成功'); + } + $res=[]; + try { + $res=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $res=json_decode($res,true); + }catch (\Exception $e){ + + } + $this->assign('detail',$res); + return $this->fetch(':indpresentations'); + } + /** + * 获取机构资料 + */ + public function institutional_presentations(){ + $url=$this->hostpath."/api/institutional-investor/presentations"; + if(request()->isPost()){ + $rule=[ + 'avatar'=>'require', + 'description'=>'require', + 'images'=>'require' + ]; + $msg=[ + 'avatar.require'=>'请输入机构logo照片', + 'description.require'=>'请输入介绍文字', + 'images.require'=>'请输入照片' + ]; + + $data=request()->param(); + $validate = new Validate($rule,$msg); + $result = $validate->check($data); + if(!$result){ + $this->error($validate->getError()); + } + + $res=['message'=>'编辑失败']; + try { + $res=go_curl($url,'POST',$data,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $res=json_decode($res,true); + }catch (\Exception $e){ + + } + + $this->success('编辑成功'); + } + $res=[]; + try { + $res=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $res=json_decode($res,true); + }catch (\Exception $e){ + + } + $this->assign('detail',$res); + return $this->fetch(':inspresentations'); + } + /** + * ⽤户信息 + * @return mixed|string + */ + public function profile(){ + $this->assign('profiles',$this->userinfo); + if(request()->isPost()){ + $rule=[ + 'name'=>'require', + 'phone'=>'require|length:11', + 'position'=>'require', + 'email'=>'require|email', + 'company'=>'require', + 'avatar'=>'require' + ]; + $msg=[ + 'name.require'=>'请输入用户名称', + 'phone.require'=>'请输入用户手机号码', + 'phone.length'=>'请输入11位手机号码', + 'position.require'=>'请输入用户职位', + 'email.require'=>'请输入用户邮箱', + 'email.email'=>'邮箱格式错误', + 'company.require'=>'请输入公司名称', + 'avatar.require'=>'请输入用户头像 ' + ]; + + $data=request()->param(); + $validate = new Validate($rule,$msg); + $result = $validate->check($data); + if(!$result){ + $this->error($validate->getError()); + } + if(strpos($data['avatar'],'http')===false)$data['avatar']=SITE_PATH.$data['avatar']; + $url=$this->hostpath."/api/user/profiles"; + $res=['message'=>'编辑失败']; + try { + $res=go_curl($url,'POST',$data,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + + $res=json_decode($res,true); + }catch (\Exception $e){ + + } + + $this->success('编辑成功',url('profile')); + } + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>'修改个人信息']); + $this->assign('current',$current); + $this->assign('profile',$this->userinfo); + return $this->fetch(':profile'); + } + /** + * 投资认证 + * @return mixed|string + */ + public function certification(){ + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>'投资认证']); + $this->assign('current',$current); + $this->assign('profile',$this->userinfo); + + $url=$this->hostpath."/api/individual-investor/verifications"; + $regions=$this->regions(); + $res=[]; + try { + $res=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + + $res=json_decode($res,true); + + if(isset($res['id'])&&$res['id']=='model.not_found'){ + $res=[ + 'contact_name'=>'', + 'contact_phone'=>'', + 'region_id'=>'', + 'address'=>'', + 'industry_id'=>'', + 'company'=>'', + 'position'=>'', + 'email'=>'', + 'investment_stage_id'=>'', + 'interested_industry_ids'=>'', + 'investment_concerns'=>'', + 'invested_projects'=>'', + 'investment_point'=>'', + 'province'=>'', + 'city'=>'', + ]; + } + if(isset($res['region_id'])){ + $row=deep_in_array($res['region_id'],$regions); + if(isset($row['id'])){ + $res['province']=$row['id']; + $res['city']=$res['region_id']; + } + } + }catch (\Exception $e){ + + } + $this->assign('detail1',$res); + + + $url=$this->hostpath."/api/institutional-investor/verifications"; + $res=[]; + try { + $res=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + + $res=json_decode($res,true); + + if(isset($res['id'])&&$res['id']=='model.not_found'){ + $res=[ + 'contact_name'=>'', + 'contact_phone'=>'', + 'company'=>'', + 'name'=>'', + 'region_id'=>'', + 'address'=>'', + 'establish_date'=>'', + 'registration_capital'=>'', + 'company_size'=>'', + 'company_website'=>'', + 'legal_representative'=>'', + 'investment_stage_id'=>'', + 'interested_industry_ids'=>'', + 'investment_concerns'=>'', + 'invested_projects'=>'', + 'investment_point'=>'', + 'province'=>'', + 'city'=>'', + ]; + } + if(isset($res['region_id'])){ + $row=deep_in_array($res['region_id'],$regions); + if(isset($row['id'])){ + $res['province']=$row['id']; + $res['city']=$res['region_id']; + } + } + }catch (\Exception $e){ + + } + + $this->assign('detail2',$res); + + $stages=$this->stages(); + $this->assign('stages',$stages); + + $industries=$this->industries(); + $this->assign('industries',$industries); + + $this->assign('regions',$regions); + return $this->fetch(':certification'); + } + /** + * 个⼈投资者认证信息 + * @return mixed|string + */ + public function individual(){ + $url=$this->hostpath."/api/individual-investor/verifications"; + $regions=$this->regions(); + if(request()->isPost()){ + $res=['message'=>'编辑失败']; + + $rule=[ + 'contact_name'=>'require', + 'contact_phone'=>'require', + 'region_id'=>'require', + 'address'=>'require', + 'industry_id'=>'require', + 'company'=>'require', + 'position'=>'require', + 'email'=>'require|email', + 'investment_stage_id'=>'require', + 'interested_industry_ids'=>'require', + ]; + $msg=[ + 'contact_name.require'=>'请输入联系人', + 'contact_phone.require'=>'请输入联系手机号', + 'region_id.require'=>'请输入地区', + 'address.require'=>'请输入地址', + 'industry_id.require'=>'请选择行业', + 'company.require'=>'请输入任职机构', + 'position.require'=>'请输入职位', + 'email.require'=>'请输入公司邮箱', + 'email.email'=>'错误邮箱地址', + 'investment_stage_id.require'=>'请选择投资阶段', + 'interested_industry_ids.require'=>'请选择关注行业', + ]; + $data=request()->param(); + $validate = new Validate($rule,$msg); + $result = $validate->check($data); + if(!$result){ + $this->error($validate->getError()); + } + if(count($data['investment_stage_id'])){ + $data['investment_stage_id']=$data['investment_stage_id']; + } + if(count($data['interested_industry_ids'])){ + $data['interested_industry_ids']=$data['interested_industry_ids']; + } + + try { + $res=go_curl($url,'POST',$data,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + + $res=json_decode($res,true); + + }catch (\Exception $e){ + $this->error('编辑失败'); + } + + if(isset($res['id'])){ + $this->error($res['message']); + } + $this->success('编辑成功',url('index')); + } + $res=[]; + try { + $res=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $res=json_decode($res,true); + + if(isset($res['id'])&&$res['id']=='model.not_found'){ + $res=[ + 'contact_name'=>'', + 'contact_phone'=>'', + 'region_id'=>'', + 'address'=>'', + 'industry_id'=>'', + 'company'=>'', + 'position'=>'', + 'email'=>'', + 'investment_stage_id'=>'', + 'interested_industry_ids'=>'', + 'investment_concerns'=>'', + 'invested_projects'=>'', + 'investment_point'=>'', + 'province'=>'', + 'city'=>'', + ]; + } + if(isset($res['region_id'])){ + $row=deep_in_array($res['region_id'],$regions); + if(isset($row['id'])){ + $res['province']=$row['id']; + $res['city']=$res['region_id']; + } + } + }catch (\Exception $e){ + + } + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>'投资认证']); + $this->assign('current',$current); + $this->assign('profile',$this->userinfo); + $this->assign('detail',$res); + + + $stages=$this->stages(); + $this->assign('stages',$stages); + + $industries=$this->industries(); + $this->assign('industries',$industries); + + $this->assign('regions',$regions); + return $this->fetch(':individual'); + } + /** + * 投资机构认证 + * @return mixed|string + */ + public function institutional(){ + $url=$this->hostpath."/api/institutional-investor/verifications"; + + $regions=$this->regions(); + if(request()->isPost()){ + $res=['message'=>'编辑失败']; + + $rule=[ + 'contact_name'=>'require', + 'contact_phone'=>'require', + 'company'=>'require', + 'name'=>'require', + 'region_id'=>'require', + 'address'=>'require', + 'establish_date'=>'require', + 'registration_capital'=>'require', + 'company_size'=>'require', + 'legal_representative'=>'require', + 'investment_stage_id'=>'require', + 'interested_industry_ids'=>'require', + ]; + $msg=[ + 'contact_name.require'=>'请输入联系人', + 'contact_phone.require'=>'请输入联系手机号', + 'company.require'=>'请输入任职机构', + 'name.require'=>'请输入用户姓名', + 'region_id.require'=>'请输入地区', + 'address.require'=>'请输入地址', + 'establish_date.require'=>'请输入注册日期', + 'registration_capital.require'=>'请输入注册资本', + 'company_size.require'=>'请输入公司人数', + 'company_website.require'=>'请输入公司网站', + 'legal_representative.require'=>'请输入法人代表', + 'investment_stage_id.require'=>'请选择投资阶段', + 'interested_industry_ids.require'=>'请选择关注行业' + ]; + $data=request()->param(); + $validate = new Validate($rule,$msg); + $result = $validate->check($data); + if(!$result){ + $this->error($validate->getError()); + } + if(count($data['investment_stage_id'])){ + $data['investment_stage_id']=$data['investment_stage_id']; + } + if(count($data['interested_industry_ids'])){ + $data['interested_industry_ids']=$data['interested_industry_ids']; + } + + try { + $res=go_curl($url,'POST',$data,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $res=json_decode($res,true); + + }catch (\Exception $e){ + $this->success('编辑失败'); + } + if(isset($res['id'])){ + $this->error($res['message']); + } + $this->success('编辑成功',url('index')); + } + $res=[]; + try { + $res=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $res=json_decode($res,true); + if(isset($res['id'])&&$res['id']=='model.not_found'){ + $res=[ + 'contact_name'=>'', + 'contact_phone'=>'', + 'company'=>'', + 'name'=>'', + 'region_id'=>'', + 'address'=>'', + 'establish_date'=>'', + 'registration_capital'=>'', + 'company_size'=>'', + 'company_website'=>'', + 'legal_representative'=>'', + 'investment_stage_id'=>'', + 'interested_industry_ids'=>'', + 'investment_concerns'=>'', + 'invested_projects'=>'', + 'investment_point'=>'', + 'province'=>'', + 'city'=>'', + ]; + } + if(isset($res['region_id'])){ + $row=deep_in_array($res['region_id'],$regions); + if(isset($row['id'])){ + $res['province']=$row['id']; + $res['city']=$res['region_id']; + } + } + }catch (\Exception $e){ + + } + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>'投资机构认证']); + $this->assign('current',$current); + $this->assign('profile',$this->userinfo); + $this->assign('detail',$res); + + + $stages=$this->stages(); + $this->assign('stages',$stages); + + $industries=$this->industries(); + $this->assign('industries',$industries); + + $this->assign('regions',$regions); + return $this->fetch(':institutional'); + } + /** + * 申请企业认证 + */ + public function corporate(){ + $url=$this->hostpath."/api/corporate/verifications"; + $regions=$this->regions(); + if(request()->isPost()){ + $res=['message'=>'编辑失败']; + + $rule=[ + 'name'=>'require', + 'legal_person'=>'require', + 'region_id'=>'require', + 'address'=>'require', + 'nature'=>'require', + 'registration_date'=>'require', + 'registration_capital'=>'require', + 'contact_name'=>'require', + 'contact_email'=>'require', + 'contact_name'=>'require', + 'contact_phone'=>'require', + 'financing_way'=>'require', + 'stock_transfer_proportion'=>'require', + ]; + $msg=[ + 'name.require'=>'请输入企业名称', + 'legal_person.require'=>'请输入法人姓名', + 'region_id.require'=>'请输入地区', + 'address.require'=>'请输入地址', + 'nature.require'=>'请输入企业性质', + 'registration_date.require'=>'请输入注册日期', + 'registration_capital.require'=>'请输入注册资本', + 'contact_name.require'=>'请输入联系人', + 'contact_email.require'=>'请输入联系邮箱', + 'contact_phone.require'=>'请输入联系手机号', + 'financing_way.require'=>'请输入融资方式', + 'stock_transfer_proportion.require'=>'请输入股权出让比例' + ]; + $data=request()->param(); + $validate = new Validate($rule,$msg); + $result = $validate->check($data); + if(!$result){ + $this->error($validate->getError()); + } + try { + $res=go_curl($url,'POST',$data,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $res=json_decode($res,true); + }catch (\Exception $e){ + $this->error('保存失败'); + } + if(isset($res['id'])){ + $msg=isset($res['message'])&&$res['message']?$res['message']:'保存失败'; + $this->error($msg); + } + $this->success('保存成功'); + } + $res=[]; + try { + $res=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + + $res=json_decode($res,true); + if(isset($res['id'])){ + $res=[ + 'name'=>'', + 'legal_person'=>'', + 'region_id'=>'', + 'address'=>'', + 'nature'=>'', + 'registration_date'=>'', + 'registration_capital'=>'', + 'contact_name'=>'', + 'contact_phone'=>'', + 'contact_fax'=>'', + 'contact_email'=>'', + 'financing_way'=>'', + 'stock_transfer_proportion'=>'', + 'province'=>'', + 'city'=>'', + ]; + } + if(isset($res['region_id'])){ + $row=deep_in_array($res['region_id'],$regions); + if(isset($row['id'])){ + $res['province']=$row['id']; + $res['city']=$res['region_id']; + } + } + }catch (\Exception $e){ + + } + + + $this->assign('regions',$regions); + + $this->assign('detail',$res); + $this->assign('profile',$this->userinfo); + + $current=$this->current; + $current[0]['jump']=url('index'); + array_push($current, ['title'=>'企业认证']); + $this->assign('current',$current); + return $this->fetch(':corporate'); + } + /** + * 项目列表 + * @return string + */ + public function ajaxprojects(){ + $page=input('page',1,'intval'); + $industry_id=input('industry_id','','intval'); + $investment_id=input('investment_id','','intval'); + $region_id=input('region_id','','intval'); + $keyword=input('keyword'); + $sort=input('sort'); + + $parmas=['page'=>$page,'industry_id'=>$industry_id,'region_id'=>$region_id,'investment_id'=>$investment_id,'keyword'=>$keyword,'sort'=>$sort]; + $params=http_build_query($parmas); + $url=$this->hostpath."/api/user/projects?".$params; + $projects="[]"; + try { + $projects=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + }catch (\Exception $e){ + + } + return $projects; + } + /** + * 机构详情 + * @return string + */ + public function detail(){ + $id=input('id','','intval'); + $this->assign('id',$id); + $this->assign('type','项目'); + + + $pro=[]; + $url=$this->hostpath."/api/user/projects/".$id; + try { + $pro=go_curl($url,'GET',false,['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $pro=json_decode($pro,true); + if(!isset($pro['name']))$pro=[]; + }catch (\Exception $e){ + + } + if(isset($pro['reputation'])){ + $score=$pro['reputation']; + if(!isset($this->userinfo['reputation'])||$score>$this->userinfo['reputation']){ + $this->error('你的信誉积分不足,请补全认证资料增加信誉积分才可以查看'); + } + } + $this->assign('detail',$pro); + + return $this->view->fetch(':project_detail'); + } + /** + * 删除自己项目 + * @return string[]|mixed + */ + public function delprojects(){ + $id=input('id','','intval'); + $url=$this->hostpath."/api/user/delete-projects"; + if(empty($id)){ + return ['message'=>'缺少参数id']; + } + $res=['message'=>'删除失败']; + try { + $res=go_curl($url,'POST',["project_id"=>$id],['Accept'=>'application/json',"Authorization:Bearer ".$this->apitoken]); + $res=json_decode($res,true); + }catch (\Exception $e){ + + } + return $res; + } + /** + * 项目列表 + * @return string + */ + public function projects(){ + $userscore=''; + $apitoken=session('api_token'); + if(isset($this->userinfo['reputation'])){ + $userscore=$this->userinfo['reputation']; + } + $this->assign('userscore',$userscore); + $url=$this->hostpath."/api/project/filters"; + $profilters="[]"; + try { + $profilters=go_curl($url,'GET',false,['Accept'=>'application/json']); + $profilters=json_decode($profilters,true); + if(isset($profilters['id']))$profilters=[]; + }catch (\Exception $e){ + + } + $this->assign('profilters',$profilters); + + return $this->view->fetch(':index'); + } + + /** + * 获取所属⾏业 + * @return array|mixed + */ + protected function industries(){ + $url=$this->hostpath."/api/association/industries"; + $list=[]; + try { + $investors=go_curl($url,'GET',false,['Accept'=>'application/json']); + $list=json_decode($investors); + $list=object_to_array($list); + if(!isset($list[0]['id'])){ + $list=[]; + } + }catch (\Exception $e){ + + } + return $list; + } + /** + * 获取投资⽅式 + * @return array|mixed + */ + protected function investments(){ + $url=$this->hostpath."/api/association/investments"; + $list=[]; + try { + $investors=go_curl($url,'GET',false,['Accept'=>'application/json']); + $list=json_decode($investors); + $list=object_to_array($list); + if(!isset($list[0]['id'])){ + $list=[]; + } + }catch (\Exception $e){ + + } + return $list; + } + /** + * 获取地区数据 + * @return array|mixed + */ + protected function regions(){ + $url=$this->hostpath."/api/association/regions"; + $list=[]; + try { + $investors=go_curl($url,'GET',false,['Accept'=>'application/json']); + $list=json_decode($investors); + $list=object_to_array($list); + if(!isset($list[0]['id'])){ + $list=[]; + } + }catch (\Exception $e){ + + } + return $list; + } + /** + * 获取投资阶段 + * @return array|mixed + */ + protected function stages(){ + $url=$this->hostpath."/api/association/investment-stages"; + $list=[]; + try { + $investors=go_curl($url,'GET',false,['Accept'=>'application/json']); + $list=json_decode($investors); + $list=object_to_array($list); + if(!isset($list[0]['id'])){ + $list=[]; + } + + }catch (\Exception $e){ + + } + return $list; + } +} \ No newline at end of file diff --git a/app/culture/taglib/Yf.php b/app/culture/taglib/Yf.php new file mode 100644 index 0000000..9378131 --- /dev/null +++ b/app/culture/taglib/Yf.php @@ -0,0 +1,459 @@ + +// +---------------------------------------------------------------------- + +//------------------------ +// 自定义标签库 +//------------------------- + +namespace app\culture\taglib; + +use think\template\TagLib; +use think\Db; + +class Yf extends Taglib +{ + + // 标签定义 + protected $tags = [ + // 标签定义: attr 属性列表 close 是否闭合(0 或者1 默认1) alias 标签别名 level 嵌套层次 + 'menu'=>['attr' => 'top_ul_id,top_ul_class,child_ul_class,child_li_class,firstchild_dropdown_class,haschild_a_class,haschild_span_class,nochild_a_class,showlevel', 'close' => 0], + 'webuploader'=>['attr'=>'name,url,word,multiple,nums','close'=>0] + ]; + /** + * 返回前台menu + * @param $tag + * @return string + */ + public function tagMenu($tag) + { + $top_ul_id=isset($tag['top_ul_id']) ? $tag['top_ul_id'] : ''; + $top_ul_class=isset($tag['top_ul_class']) ? $tag['top_ul_class'] : ''; + $child_ul_class=isset($tag['child_ul_class']) ? $tag['child_ul_class'] : ''; + $child_li_class=isset($tag['child_li_class']) ? $tag['child_li_class'] : ''; + $firstchild_dropdown_class=isset($tag['firstchild_dropdown_class']) ? $tag['firstchild_dropdown_class'] : ''; + $haschild_a_class=isset($tag['haschild_a_class']) ? $tag['haschild_a_class'] : ''; + $haschild_span_class=isset($tag['haschild_span_class']) ? $tag['haschild_span_class'] : ''; + $nochild_a_class=isset($tag['nochild_a_class']) ? $tag['nochild_a_class'] : ''; + $showlevel=!empty($tag['showlevel']) ? intval($tag['showlevel']) : 6; + + $childtpl='\$menu_name'; + $parenttpl='\$menu_name '; + $parseStr = '"; + if (!empty($parseStr)) { + return $parseStr; + } + return ''; + } + /** + * 上传标签 + * @param string $tag + * url:上传的图片处理的控制器方法 + * name:表单name + * word:提示文字 + */ + public function tagWebuploader($tag){ + $url=isset($tag['url'])?$tag['url']:url('home/Listn/upload');//上传后台地址 + $name=isset($tag['name'])?$tag['name']:'file_name'; + $nums=(isset($tag['nums']) && intval($tag['nums'])>0)?intval($tag['nums']):10; + $word=isset($tag['word'])?$tag['word']:'或将文件拖到这里'; + $multiple=isset($tag['multiple'])?$tag['multiple']:'false'; + $id_name='upload-'.uniqid();//避免重复 + $str=<< +
+
+
+

$word

+
+
+ + + +php; + return $str; + } +} \ No newline at end of file diff --git a/app/culture/view/szwjs/Copy of markets.html b/app/culture/view/szwjs/Copy of markets.html new file mode 100644 index 0000000..d8e6504 --- /dev/null +++ b/app/culture/view/szwjs/Copy of markets.html @@ -0,0 +1,52 @@ +{layout name="layout" /} + +
+
+
+
+ {if condition="count($showlist)"} + {foreach name="showlist" item="vo"} +
+
+
+
+ +
+
+
+

{$vo.name}

+
{$vo.description}
+
信誉积分:{$vo.redeem_point}兑换
+
+
+ {/foreach} + {/if} +
+
+
    +
+
+
+
+
+ \ No newline at end of file diff --git a/app/culture/view/szwjs/agency.html b/app/culture/view/szwjs/agency.html new file mode 100644 index 0000000..d2c361e --- /dev/null +++ b/app/culture/view/szwjs/agency.html @@ -0,0 +1,304 @@ +{layout name="layout" /} + +
+
+
+ {if condition="count($profilters)"} + {foreach name="profilters" item="vo"} + +
+
{$vo.title}:
+
+ 不限 + {if condition="count($vo['filters'])"} + {foreach name="vo['filters']" item="jo"} + {$jo.name} + {/foreach} + {/if} +
+
+
+ {/foreach} + {/if} +
+
+
+
+
+
+
更新
+
+
+
+
按照信用积分排序
+
+
+ + +
+
+
+
+
+
+ +
+
+
    +
+
+
+
+
+ + \ No newline at end of file diff --git a/app/culture/view/szwjs/agency_detail.html b/app/culture/view/szwjs/agency_detail.html new file mode 100644 index 0000000..e106041 --- /dev/null +++ b/app/culture/view/szwjs/agency_detail.html @@ -0,0 +1,90 @@ +{layout name="layout" /} +
+
+
+
+
+
+ {if condition="$detail['avatar']"} + {$detail.name} + {else} + + {/if} +
+
+
+
+

{$detail.name}

+
+ {if condition="count($detail['industries'])"} + {foreach name="detail['industries']" item="jo"} + {$jo.name} + {/foreach} + {/if} +
+
信誉积分:{$detail.reputation}
+
+ +
+
+
+
基本信息
+
+ {if condition="$detail['investable_type'] eq 2"} + {if condition="count($detail['institutional_info'])"} +
+ 成立时间:{$detail.institutional_info.establish_date} +
+
+ 公司名称:{$detail.institutional_info.company} +
+
+ 注册资本:{$detail.institutional_info.registration_capital}万元 +
+
+ 公司网站:{$detail.institutional_info.company_website} +
+
+ 法人代表:{$detail.institutional_info.legal_representative} +
+
+ 归属地域:{$detail.institutional_info.region_name} +
+
+ 管理规模:{$detail.institutional_info.company_size}万元 +
+ {/if} + {else} + {if condition="count($detail['individual_info'])"} +
+ 所属公司:{$detail.individual_info.company} +
+
+ 职务:{$detail.individual_info.position} +
+ {if condition="isset($detail['individual_info']['industry']['name'])"} +
+ 所属行业:{$detail.individual_info.industry.name|default="暂无"} +
+ {/if} +
+ E-mail:{$detail.individual_info.email} +
+ {/if} + {/if} +
+ +
介绍
+
{$detail.description|default="暂无"}
+ {if condition="$detail['investable_type'] eq 1"} +
已投项目
+
{$detail.invested_projects|default="暂无"}
+
投资关注点
+
{$detail.investment_point|default="暂无"}
+
本年度投资规划
+
{$detail.investment_concerns|default="暂无"}
+ {/if} +
+
+
+
\ No newline at end of file diff --git a/app/culture/view/szwjs/assets/css/style0331.css b/app/culture/view/szwjs/assets/css/style0331.css new file mode 100644 index 0000000..399755d --- /dev/null +++ b/app/culture/view/szwjs/assets/css/style0331.css @@ -0,0 +1,1896 @@ +@charset "UTF-8"; +* { + padding: 0; + margin: 0; } + +html::-webkit-scrollbar { + width: 0; } + +html { + font-size: 20px; + -webkit-text-size-adjust: 100%; } + +body { + background-color: #ECF0F1; + font-family: "微软雅黑", "Microsoft Yahei", "PingFang SC", "PingFang SC Light", tahoma, "Hiragino Sans GB", Arial, Helvetica, sans-serif, "微软雅黑"; + -webkit-font-smoothing: antialiased; + line-height: 1.428571429; + font-size: 0.6rem; + color: #3A4145; + min-width: 1130px; } + +.container { + width: 1130px; } + +.href-abs { + position: absolute; + display: block; + top: 0; + left: 0; + width: 100%; + height: 100%; + opacity: 0; + background-color: rgba(0, 0, 0, 0.1); + font-weight: bold; + font-size: 0; + cursor: pointer; } + +.icon { + display: inline-block; + vertical-align: middle; + -webkit-background-size: contain; + background-size: contain; + background-position: center; + background-repeat: no-repeat; } + +a { + color: #f4731c; } + +a:hover, a:focus, a:active { + text-decoration: none; } + +h1, h2, h3, h4, h5, p, ol, ul { + padding: 0; + margin: 0; } + +ul, ol { + list-style: none; } + +.min-width { + min-width: 1130px; + margin-left: auto; + margin-right: auto; } + +.dinline-left { + display: inline-block; + float: left; } + +.dinline { + display: inline-block; } + +.linh1-7 { + line-height: 1.7rem; + padding: 0 0.2rem; } + +.img-100 { + width: 100%; + height: auto; } + +.padding-lr-0 { + padding-right: 0; + padding-left: 0; } + +.padding-r-0 { + padding-right: 0; } + +.padding-l-0 { + padding-left: 0; } + +.border-top0 { + border-top: 0 !important; } + +.overflow-h { + overflow: hidden; } + +.float-left { + float: left; } + +.bg-fff { + background-color: #ffffff; } + +.scroll-y { + overflow-y: scroll; } + +.border-green { + border-color: #00c099; } + +.cat-header { + position: relative; + color: #2e485f; + border-bottom: 0.1rem solid #e9e9e9; } + .cat-header .tit, .cat-header .list { + display: inline-block; + float: left; } + .cat-header .tit { + font-size: 1.1rem; + border-bottom: 0.1rem solid #2e485f; + line-height: 2.00rem; + padding-right: 1.8rem; + margin-bottom: -0.1rem; } + .cat-header .list { + padding-left: 0.5rem; } + .cat-header .list a { + color: #2e485f; + padding: 0 0.5rem; + line-height: 2rem; + font-size: 0.7rem; } + .cat-header .list a:hover { + color: #f4731c; } + .cat-header .more { + display: inline-block; + color: #00c099; + font-size: 0.6rem; + float: right; + vertical-align: bottom; + margin-top: 0.5rem; + cursor: pointer; } + .cat-header .more:hover { + color: #f4731c; } + +.line-box { + min-width: 6rem; + width: 100%; + background-color: #eee; + height: 0.75rem; } + .line-box .line-zhi { + height: 0.75rem; + background-color: #f4731c; } + +input:focus, button:focus, textarea:focus { + outline: 0; } + +.dropdown-menu { + position: absolute !important; } + +.min80vh { + min-height: 80vh; } + +.dis-block { + display: block; } + +.color-success { + color: green !important; + font-weight: bolder; } + +.color-warning { + color: red !important; + font-weight: bolder; } + +.pull-right { + float: right !important; } + +.pull-left { + float: left !important; } + +.cols-1, .cols-2, .cols-3, .cols-4, .cols-5, .cols-6, .cols-7, .cols-8, .cols-9, .cols-10, .cols-11, .cols-12, .cols-13, .cols-14, .cols-15, .cols-16, .cols-17, .cols-18, .cols-19, .cols-20 { + position: relative; + min-height: 1px; + float: left; + padding-left: 0.5rem; + padding-right: 0.5rem; } + +.cols-1 { + width: 5%; } + +.cols-2 { + width: 10%; } + +.cols-3 { + width: 15%; } + +.cols-4 { + width: 20%; } + +.cols-5 { + width: 25%; } + +.cols-6 { + width: 30%; } + +.cols-7 { + width: 35%; } + +.cols-8 { + width: 40%; } + +.cols-9 { + width: 45%; } + +.cols-10 { + width: 50%; } + +.cols-11 { + width: 55%; } + +.cols-12 { + width: 60%; } + +.cols-13 { + width: 65%; } + +.cols-14 { + width: 70%; } + +.cols-15 { + width: 75%; } + +.cols-16 { + width: 80%; } + +.cols-17 { + width: 85%; } + +.cols-18 { + width: 90%; } + +.cols-19 { + width: 95%; } + +.cols-20 { + width: 100%; } + +.preloader { + display: inline-block; + width: 1rem; + height: 1rem; + -webkit-transform-origin: 50%; + transform-origin: 50%; + -webkit-animation: preloader-spin 1s steps(12, end) infinite; + animation: preloader-spin 1s steps(12, end) infinite; } + .preloader:after { + display: block; + content: ""; + width: 100%; + height: 100%; + background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%236c6c6c'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"); + background-position: 50%; + background-size: 100%; + background-repeat: no-repeat; } + +@-webkit-keyframes preloader-spin { + 100% { + -webkit-transform: rotate(360deg); } } +@keyframes preloader-spin { + 100% { + -webkit-transform: rotate(360deg); + transform: rotate(360deg); } } +.preloader-box { + margin: 0.5rem; + text-align: center; + padding-top: 2rem; } + .preloader-box .preloader { + width: 1.5rem; + height: 1.5rem; } + +.load-qianyin { + padding-top: 2rem; } + .load-qianyin .qiyin-msg { + margin-top: 2rem; + font-size: 0.8rem; } + +.ball-pulse > div { + background-color: #f4731c; + border-radius: 100%; + margin: 2px; + display: inline-block; } + +.ball-pulse > div { + width: 15px; + height: 15px; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; } + +.ball-pulse > div:nth-child(1) { + -webkit-animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); + animation: scale 0.75s -0.24s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } + +.ball-pulse > div:nth-child(2) { + -webkit-animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); + animation: scale 0.75s -0.12s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } + +.ball-pulse > div:nth-child(3) { + -webkit-animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); + animation: scale 0.75s 0s infinite cubic-bezier(0.2, 0.68, 0.18, 1.08); } + +@-webkit-keyframes scale { + 0%, 80% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; } + 45% { + -webkit-transform: scale(0.1); + transform: scale(0.1); + opacity: 0.7; } } +@keyframes scale { + 0%, 80% { + -webkit-transform: scale(1); + transform: scale(1); + opacity: 1; } + 45% { + -webkit-transform: scale(0.1); + transform: scale(0.1); + opacity: 0.7; } } +@-webkit-keyframes line-scale-pulse-out { + 0% { + -webkit-transform: scaley(1); + transform: scaley(1); } + 50% { + -webkit-transform: scaley(0.4); + transform: scaley(0.4); } + 100% { + -webkit-transform: scaley(1); + transform: scaley(1); } } +@keyframes line-scale-pulse-out { + 0% { + -webkit-transform: scaley(1); + transform: scaley(1); } + 50% { + -webkit-transform: scaley(0.4); + transform: scaley(0.4); } + 100% { + -webkit-transform: scaley(1); + transform: scaley(1); } } +.line-scale-pulse-out > div { + background-color: #f4731c; + width: 4px; + height: 35px; + border-radius: 2px; + margin: 2px; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; + display: inline-block; + -webkit-animation: line-scale-pulse-out 0.9s -0.6s infinite cubic-bezier(0.85, 0.25, 0.37, 0.85); + animation: line-scale-pulse-out 0.9s -0.6s infinite cubic-bezier(0.85, 0.25, 0.37, 0.85); } + +.line-scale-pulse-out > div:nth-child(2), .line-scale-pulse-out > div:nth-child(4) { + -webkit-animation-delay: -0.4s !important; + animation-delay: -0.4s !important; } + +.line-scale-pulse-out > div:nth-child(1), .line-scale-pulse-out > div:nth-child(5) { + -webkit-animation-delay: -0.2s !important; + animation-delay: -0.2s !important; } + +.w100 { + width: 100%; } + +.w76-6 { + width: 76.6%; } + +.w70 { + width: 70%; } + +.w73-2 { + width: 73.2%; } + +.w26-8 { + width: 26.8%; } + +.w54 { + width: 54%; } + +.w50 { + width: 50%; } + +.w46 { + width: 46%; } + +.w30 { + width: 30%; } + +.w23-4 { + width: 23.4%; } + +.w16-5 { + width: 18.5%; } + +.w56-5 { + width: 56.5%; } + +.w27 { + width: 25%; } + +.icon { + display: inline-block; + vertical-align: middle; + background-repeat: no-repeat; + background-position: center; } + +.icon-xs { + width: 17px; + height: 17px; } + +.ic-clock { + background-image: url(../img/clock.png); } + +.icon-dh { + width: 54px; + height: 54px; + background-image: url("../img/icon-dh.png"); + -webkit-background-size: auto; + background-size: auto; } + +.icon-font { + position: relative; + display: inline-block; + text-align: center; + vertical-align: middle; } + +.checkbox-ui { + position: relative; + overflow: hidden; + vertical-align: middle; } + .checkbox-ui input { + position: absolute; + top: 100%; + right: 100%; } + +.checkbox-ui input:checked + .icon-font:after { + content: '\2713'; + position: absolute; + top: 0; + left: 0; + color: #758794; + width: 100%; + text-align: center; + font-size: 1em; + vertical-align: text-top; } + +.btn-submit { + color: #fff; + padding:8px 28px; + font-size:1.1em; + background-color: #bf3628; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + cursor: pointer; + border:none; +} + +.btn-group-1 { + position: relative; + display: inline-block; + width: 200px; } + .btn-group-1 button { + display: inline-block; + text-align: left; + width: 100%; + margin-bottom: 0; + font-size: 14px; + font-weight: 400; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid #ddd; + line-height: 25px; + padding: 0 10px; } + .btn-group-1 button .caret { + margin-top: 10px; } + .btn-group-1 .select-dropdwon { + display: none; + position: absolute; + top: 100%; + left: 0; + background-color: #FFFFFF; + padding: 10px; + border: 1px solid #ddd; + border-top-color: #FFFFFF; } + .btn-group-1 .select-dropdwon li { + line-height: 25px; + cursor: pointer; + border-bottom: 1px dashed #ddd; } + .btn-group-1.open .select-dropdwon { + display: inline-block; } + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent; } + +figure { + position: relative; } + +.fig-default { + position: relative; } + .fig-default .fig-img-wrapper { + position: relative; } + .fig-default .fig-img-wrapper .paddingT { + padding-top: 100%; } + .fig-default .fig-img-wrapper img { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: block; + max-height: 100%; + max-width: 100%; + margin: auto; } + .fig-default > figcaption { + padding: 0.5rem 0; } + .fig-default > figcaption .fig-tit { + font-size: 0.7rem; + margin-bottom: 0.5rem; + overflow: hidden; } + .fig-default > figcaption .fig-info { + font-size: 0.6rem; + margin-bottom: 0.3rem; + overflow: hidden; } + +.fig-one { + position: relative; } + .fig-one > figcaption { + position: absolute; + bottom: 0; + left: 0; + right: 0; + background-color: rgba(1, 1, 1, 0.5); + line-height: 1.2rem; + font-size: 0.6rem; + white-space: nowrap; + -ms-text-overflow: ellipsis; + text-overflow: ellipsis; + overflow: hidden; + color: #fff; + padding: 0.2rem; } + +.fig-normal { + padding: 0.5rem; } + .fig-normal .fig-img { + display: block; + margin: 0 auto; } + .fig-normal figcaption { + padding: 0.5rem 0; } + .fig-normal figcaption .fig-tit { + font-size: 0.7rem; + margin-bottom: 0.5rem; + overflow: hidden; } + +.fig-inline .fig-img-wrapper, .fig-inline-v2 .fig-img-wrapper { + position: relative; + width: 40%; + display: inline-block; + float: left; + border: 1px solid #ddd; } + .fig-inline .fig-img-wrapper .paddingT, .fig-inline-v2 .fig-img-wrapper .paddingT { + padding-top: 100%; } + .fig-inline .fig-img-wrapper img, .fig-inline-v2 .fig-img-wrapper img { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: block; + max-height: 100%; + max-width: 100%; + margin: auto; } +.fig-inline figcaption, .fig-inline-v2 figcaption { + width: 60%; + display: inline-block; + float: left; + padding: 0.5rem; } + .fig-inline figcaption .fig-tit, .fig-inline-v2 figcaption .fig-tit { + font-size: 0.9rem; + margin-bottom: 0.5rem; } + .fig-inline figcaption .fig-info, .fig-inline-v2 figcaption .fig-info { + font-size: 0.6rem; + margin-bottom: 0.3rem; } + +.fig-inline-v2 figcaption { + width: auto; } + .fig-inline-v2 figcaption .fig-tit { + font-size: 0.9rem; + margin-bottom: 0.5rem; } + .fig-inline-v2 figcaption .fig-info { + font-size: 0.6rem; + margin-bottom: 0.3rem; } + +.msg-box { + border-top: 1px solid #ddd; + padding-top: 0.75rem; + position: relative; } + .msg-box .msg-nav .nav-item { + display: block; + line-height: 1.55rem; + padding-left: 0.75rem; + margin-bottom: 0.5rem; + width: 5.7rem; + color: #283e52; + cursor: pointer; } + .msg-box .msg-nav .nav-item.active, .msg-box .msg-nav .nav-item:hover { + background-color: #f4731c; + color: #fff; + -webkit-border-radius: 0.2rem; + -moz-border-radius: 0.2rem; + border-radius: 0.2rem; } + .msg-box .msg-nav .nav-item.active i, .msg-box .msg-nav .nav-item:hover i { + font-size: 0.8rem; } + .msg-box .msg-nav .nav-item i { + margin-right: 0.3rem; } + .msg-box .msg-nav .nav-item .badge { + color: #283e52; + background-color: #fff; } + .msg-box .msg-list .msg-item { + position: relative; + padding: 1rem 0.5rem; + border: 1px solid #ddd; + margin-bottom: 0.5rem; + -webkit-border-radius: 0.2rem; + -moz-border-radius: 0.2rem; + border-radius: 0.2rem; + cursor: pointer; } + .msg-box .msg-list .msg-item input[type=checkbox] { + position: absolute; + top: 50%; + margin-top: -0.2rem; } + .msg-box .msg-list .msg-item .fig-inline { + margin-left: 1.5rem; } + .msg-box .msg-list .msg-item .fig-inline .fig-img { + width: 1.75rem; + -webkit-border-radius: 100%; + -moz-border-radius: 100%; + border-radius: 100%; + overflow: hidden; + border: 1px solid #ddd; } + .msg-box .msg-list .msg-item .fig-inline figcaption { + padding: 0; + padding-left: 0.5rem; } + .msg-box .msg-list .msg-item .fig-inline figcaption .fig-tit { + font-size: 0.6rem; + color: #999; + white-space: nowrap; + overflow: hidden; + -ms-text-overflow: ellipsis; + text-overflow: ellipsis; + margin-bottom: 0.2rem; } + .msg-box .msg-list .msg-item .fig-inline figcaption .fig-info { + font-size: 0.6rem; + color: #666; + white-space: nowrap; + overflow: hidden; + -ms-text-overflow: ellipsis; + text-overflow: ellipsis; } + .msg-box .msg-list .msg-item .time { + position: absolute; + top: 1rem; + right: 1rem; + color: #999; } + .msg-box .msg-list .msg-item.active, .msg-box .msg-list .msg-item:hover { + background-color: #00c099; + border-color: #00c099; } + .msg-box .msg-list .msg-item.active .time, .msg-box .msg-list .msg-item:hover .time { + color: #fff; } + .msg-box .msg-list .msg-item.active .fig-inline figcaption .fig-tit, .msg-box .msg-list .msg-item:hover .fig-inline figcaption .fig-tit { + color: #fff; } + .msg-box .msg-list .msg-item.active .fig-inline figcaption .fig-info, .msg-box .msg-list .msg-item:hover .fig-inline figcaption .fig-info { + color: #fff; } + .msg-box .msg-detail { + padding-left: 2rem; } + .msg-box .msg-detail .msg-head { + margin-bottom: 2rem; } + .msg-box .msg-detail .msg-head .fig-inline .fig-img { + width: 2rem; + -webkit-border-radius: 2rem; + -moz-border-radius: 2rem; + border-radius: 2rem; + border: 1px solid #ddd; + overflow: hidden; } + .msg-box .msg-detail .msg-head .fig-inline figcaption { + padding: 0; + padding-left: 0.75rem; } + .msg-box .msg-detail .msg-head .fig-inline figcaption .fig-tit { + font-size: 0.6rem; + color: #333; + margin-bottom: 0.1rem; } + .msg-box .msg-detail .msg-body .msg-tit { + font-size: 0.9rem; + color: #333; + padding-bottom: 1rem; + border-bottom: 1px solid #ddd; } + .msg-box .msg-detail .msg-body .msg-content { + padding: 0.5rem 0 6.25rem; + color: #333; } + .msg-box .msg-detail .msg-return .return-input { + display: block; + width: 100%; + border: 1px solid #ddd; + border-bottom: 0; + -webkit-border-top-right-radius: 0.2rem; + -moz-border-top-right-radius: 0.2rem; + border-top-right-radius: 0.2rem; + -webkit-border-top-left-radius: 0.2rem; + -moz-border-top-left-radius: 0.2rem; + border-top-left-radius: 0.2rem; + padding: 0.5rem; + color: #999; + font-size: 0.6rem; + resize: none; } + .msg-box .msg-detail .msg-return .submit-box { + background-color: #eee; + line-height: 2rem; + -webkit-border-bottom-right-radius: 0.2rem; + -moz-border-bottom-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; + -webkit-border-bottom-left-radius: 0.2rem; + -moz-border-bottom-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; + overflow: hidden; } + .msg-box .msg-detail .msg-return .submit-box .btn { + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; } + .msg-box .action-box { + position: absolute; + top: -1.5rem; + right: 1rem; + font-size: 0.8rem; } + .msg-box .action-box i { + margin-right: 0.5rem; + cursor: pointer; } + +.resCodeMsg { + padding-top: 0.5rem; + line-height: 1.5rem; + color: red; + text-align: center; + display: none; + -webkit-transition: all 0.35s; + -moz-transition: all 0.35s; + -ms-transition: all 0.35s; + -o-transition: all 0.35s; + transition: all 0.35s; } + +.f-form { + font-size: 12px; } + .f-form .f-item { + margin-bottom:15px; } + .f-form .f-item .left { + display: inline-block; + float: left; + width: 100px; } + .f-form .f-item .right { + padding-left: 100px; } + .f-form .f-item .f-txt, .f-form .f-item .f-label { + display: inline-block; + float: left; + line-height: 25px; } + .f-form .f-item .f-label { + font-size: 14px; + font-weight: bolder; + width: 100px; + text-align: right; + padding-right: 10px; + min-height: 1px; } + .f-form .f-item .f-txt { + width: 300px; + padding-left: 10px; + padding-right: 10px; } + .f-form .f-item .tx-edit { + position: relative; + height: 88px; + width: 88px; + cursor: pointer; } + .f-form .f-item .tx-edit .btn-edit { + display: block; + position: absolute; + opacity: 0; + top: 0; + left: 0; + right: 0; + bottom: 0; + color: #fff; + z-index: 9; + text-align: center; + font-size: 14px; + line-height: 150px; } + .f-form .f-item .tx-edit .img-shell { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; } + .f-form .f-item .tx-edit .img-shell img { + display: block; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + max-width: 100%; + max-height: 100%; + margin: auto; } + .f-form .f-item .tx-edit:hover .btn-edit { + opacity: 1; + background-color: rgba(0, 0, 0, 0.4); } + +.f-form-2 .form-control { + width: 80%; + display: inline-block; } +.f-form-2 .sub-tit { + color: #999; + padding: 10px 0px; + font-size: 14px; } + +.edui-container { + box-shadow: none; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + .edui-container .edui-toolbar { + box-shadow: none; } + +.header { + display: block; + width: 100%; + padding: 1rem 0 0.75rem; + position: relative; + overflow: hidden; + background-color: #fff; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); } + .header .container .main-nav { + line-height: 1.55rem; + font-size: 32px; + position: relative; } + .header .container .main-nav .nav-logo { + height: 2.5rem; + line-height: 2.5rem; + color: #f4731c; + font-size: 1.1rem; + width: 12.7rem; } + .header .container .main-nav .nav-logo img { + vertical-align: middle; + height: auto; + width: 3.5rem; } + .header .container .main-nav .nav-right { + display: block; + float: left; + width: 42.3rem; } + .header .container .main-nav .nav-list { + display: inline-block; + padding: 0 1rem; + line-height: 2.5rem; + font-size: 0.8rem; + width: 28.5rem; + overflow: hidden; + border-top: 0; + height: auto !important; } + .header .container .main-nav .nav-list .nav-list-item { + position: relative; + display: block; + float: left; + text-align: center; + overflow: hidden; } + .header .container .main-nav .nav-list .nav-list-item .nav-list-link { + position: relative; + display: block; + width: 100%; + color: #999999; + padding: 0 1rem; } + .header .container .main-nav .nav-list .nav-list-item .nav-list-link:hover, .header .container .main-nav .nav-list .nav-list-item .nav-list-link.active { + color: #2e485f; + text-decoration: none; } + .header .container .serach { + float: right; + width: 11rem; } + +.f-search-box-top { + position: relative; } + +.f-search-form-top { + margin: 0 auto; + margin-top: 0.5rem; } + +.f-search-text-top { + width: 8rem; + float: left; + display: inline-block; + outline: none; + padding: 0 0.4rem; + height: 1.7rem; + font-size: 0.7rem; + line-height: 1.6rem; + -webkit-border-radius: 5px 0 0 5px; + -moz-border-radius: 5px 0 0 5px; + border-radius: 5px 0 0 5px; + border: 1px solid #a8a8a8; } + +.f-search-text-top:focus { + -webkit-box-shadow: inset 1px 0 30px rgba(255, 255, 255, 0.8); + -moz-box-shadow: inset 1px 0 30px rgba(255, 255, 255, 0.8); + box-shadow: inset 1px 0 30px rgba(255, 255, 255, 0.8); } + +.f-search-form-top.focus { + background-color: red; } + +.f-search-button-top { + float: left; + display: inline-block; + height: 1.7rem; + padding: 0 0.45rem; + font-size: 0.75rem; + line-height: 1.7rem; + cursor: pointer; + -webkit-border-radius: 0 5px 5px 0; + -moz-border-radius: 0 5px 5px 0; + border-radius: 0 5px 5px 0; + border: 0; + background-color: #00c099; + color: #ffffff; } + +.footer { + padding: 1rem 0; + background-color: #2e4960; + line-height: 1.0rem; + font-size: 0.6rem; } + .footer .footer-nav .footer-a { + display: inline-block; + padding-right: 1rem; + color: #fff; + cursor: pointer; } + .footer .footer-nav .footer-a:hover { + color: #fff; } + .footer .footer-copyright { + color: #fff; } + .footer .footer-copyright a { + color: #fff; } + .footer .footer-copyright a:hover { + color: #fff; } + .footer .beian { + color: #fff; } + .footer .container { + position: relative; } + .footer .container .contact { + position: absolute; + top: 1rem; + right: 3rem; + font-size: 0.7rem; + color: #fff; } + .footer .container .contact p { + margin-bottom: 0.2rem; } + .footer .container .contact p:first-child { + font-size: 0.8rem; } + +.carousel-index { + width: 100%; } + .carousel-index img { + display: block; + width: 100%; } + +.xcx-menu-wrapper { + padding: 10px; + background-color: #fff; + -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 0 10px rgba(0, 0, 0, 0.2); + margin-bottom: 18px; } + .xcx-menu-wrapper .new-content { + max-width: 1080px; + margin: 0 auto; + padding: 0 10px; } + .xcx-menu-wrapper .xcx-menu-item { + display: inline-block; + float: left; + padding-left:60px; + padding-right:40px; + position: relative; + height:60px; } + .xcx-menu-wrapper .xcx-menu-item .media { + position: absolute; + width: 60px; + height: 60px; + padding: 15px; + top: 0; + left: 0px; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + background-color: #821919; + margin: 0; } + .xcx-menu-wrapper .xcx-menu-item .media img { + display: block; + height: 100%; + margin: 0 auto; } + .xcx-menu-wrapper .xcx-menu-item .info { + padding: 20px 10px 0px 10px; + color: #bf3628; + line-height: 1.2; + -webkit-transform-origin: top center; + -moz-transform-origin: top center; + -ms-transform-origin: top center; + -o-transform-origin: top center; + transform-origin: top center; + -webkit-transform: scale(0.9); + -moz-transform: scale(0.9); + -ms-transform: scale(0.9); + -o-transform: scale(0.9); + transform: scale(0.9); } + .xcx-menu-wrapper .xcx-menu-item .info .top { + font-size: 22px; + font-weight: bolder; } + .xcx-menu-wrapper .xcx-menu-item .info .down { + font-size: 12px; + text-transform: uppercase; } + .xcx-menu-wrapper .xcx-menu-item:last-child { + padding-right: 0; } +.page-wrapper .content{ + min-height:400px; +} +.retrieve-wrapper .content,.page-wrapper .content { + padding: 20px; + background-color: #fff; + margin-bottom: 10px; } + .retrieve-wrapper .content .ret-item { + margin-bottom: 20px; + max-height: 26px; + overflow: hidden; + -webkit-transition: all 0.35s; + -moz-transition: all 0.35s; + -ms-transition: all 0.35s; + -o-transition: all 0.35s; + transition: all 0.35s; } + .retrieve-wrapper .content .ret-item:last-child { + margin-bottom: 0; } + .retrieve-wrapper .content .ret-item .right { + padding-left: 80px; + text-align: left; + padding-right: 30px; + position: relative; + line-height: 26px; } + .retrieve-wrapper .content .ret-item .right a { + color: #333; + padding: 0 20px; + display: inline-block; } + .retrieve-wrapper .content .ret-item .right a.active, .retrieve-wrapper .content .ret-item .right a:hover { + color: #bf3628; } + .retrieve-wrapper .content .ret-item .right .more { + position: absolute; + right: 10px; + top: 0; + -webkit-transition: all 0.35s; + -moz-transition: all 0.35s; + -ms-transition: all 0.35s; + -o-transition: all 0.35s; + transition: all 0.35s; + cursor:pointer; + display: none; } + .retrieve-wrapper .content .ret-item .right .more.open { + -webkit-transform: rotateX(180deg); + -moz-transform: rotateX(180deg); + -ms-transform: rotateX(180deg); + -o-transform: rotateX(180deg); + transform: rotateX(180deg); } + .retrieve-wrapper .content .ret-item .right .num-wrapper { + padding-left: 20px; } + .retrieve-wrapper .content .ret-item .right .num { + color: #bf3628; + font-weight: bolder; } + .retrieve-wrapper .content .ret-item .left { + width: 80px; + display: inline-block; + line-height: 26px; + float: left; + color: #999999; } + +.paixu-wrapper { + margin-bottom: 20px; } + .paixu-wrapper .content { + background-color: #fff; } + .paixu-wrapper .content .paixu { + font-size: 14px; + line-height: 44px; + border: 1px solid #ddd; } + .paixu-wrapper .content .paixu .px-update { + width: 150px; + float: left; + border-right: 1px solid #ddd; } + .paixu-wrapper .content .paixu .px-jifen { + width: 210px; + float: left; + border-right: 1px solid #ddd; } + .paixu-wrapper .content .paixu .px-search { + width: 340px; + float: right; } + .paixu-wrapper .content .paixu .paixu-item { + padding: 0 10px; + color: #999; + cursor: pointer; } + .paixu-wrapper .content .paixu .paixu-item.active { + color: #bf3628; } + .paixu-wrapper .content .paixu .paixu-item.active.up .arrow { + transform: rotateX(180deg); } + .paixu-wrapper .content .paixu .paixu-item .word, .paixu-wrapper .content .paixu .paixu-item .arrow { + display: inline-block; + padding-right: 10px; } + .paixu-wrapper .content .paixu .paixu-item .arrow { + float: right; } + .paixu-wrapper .content .paixu .paixu-item .search-wrapper { + position: relative; } + .paixu-wrapper .content .paixu .paixu-item .search-wrapper .search-form { + margin-top: 7px; + padding-left: 10px; + height: 32px; + border: 1px solid #ddd; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; } + .paixu-wrapper .content .paixu .paixu-item .search-wrapper .search-form .search-input { + line-height: 30px; + padding-left: 10px; + height: 30px; + width: 250px; + outline: none; + border: 0; + display: inline-block; + float: left; } + .paixu-wrapper .content .paixu .paixu-item .search-wrapper .search-form .icon-search { + display: inline-block; + line-height: 30px; + float: left; + color: #999; } +.policy{ + padding:20px 40px 0px 40px; + width:80%; + margin:0px auto; +} +.policy-item{ + width:100%; + display:inline-block; + margin-bottom: 10px; + color: #333; + padding:10px 20px; + cursor:pointer; + background-color: #fff; +} +.policy-item .title{display:inline-block;font-size:1.4em;} +.policy-item .date{display:inline-block;float:right;color:#bf3628;} +.project-wrapper .project-item { + width: 50%; + float: left; + margin-bottom: 10px; + background-color: #fff; + color: #777; } + .project-wrapper .project-item .project-media .title { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + padding: 25px; + font-size: 30px; + font-weight: 500; + color: #fff; } + .project-wrapper .project-item .project-media a { + background: linear-gradient(#ccc, #333); } + .project-wrapper .project-item .project-content .project-title { + margin-bottom: 10px; } + .project-wrapper .project-item .project-content .cats { + color: #999; } + .project-wrapper .project-item .project-content .project-info { + line-height: 25px; + max-height: 50px; + overflow: hidden; } + .project-wrapper .project-item .project-content .content-content { + padding: 25px 35px; } + .project-wrapper .project-item .project-content .content-content .top { + margin-bottom: 30px; } + .project-wrapper .project-item .project-content .content-content .top .cats, .project-wrapper .project-item .project-content .content-content .top .go-detail { + display: inline-block; } + .project-wrapper .project-item .project-content .content-content .top .go-detail { + float: right; } + .project-wrapper .project-item .project-content .content-content .top .go-detail a { + color: #bf3628; } + .project-wrapper .project-item .project-content .content-content .top .cats { + color: #999; } + .project-wrapper .project-item .project-content .content-content .middle { + overflow: hidden; + margin-bottom: 40px; } + .project-wrapper .project-item .project-content .content-content .middle .left, .project-wrapper .project-item .project-content .content-content .middle .right { + float: left; } + .project-wrapper .project-item .project-content .content-content .middle .left .project-fs, .project-wrapper .project-item .project-content .content-content .middle .right .project-fs { + color: #999; } + .project-wrapper .project-item .project-content .content-content .middle .left h2, .project-wrapper .project-item .project-content .content-content .middle .right h2 { + font-size: 40px; + font-weight: bolder; + margin-top: 20px; } + .project-wrapper .project-item .project-content .content-content .middle .left { + width: 60%; + text-align: center; } + .project-wrapper .project-item .project-content .content-content .middle .right { + width: 40%; } + .project-wrapper .project-item .project-content .content-content .bottom { + color: #999; } + +.sec-bread .bread-crumb { + padding: 0px 0 15px 0; + background-color: transparent; + font-size: 14px; } + .sec-bread .bread-crumb li { + display: inline-block; } + .sec-bread .bread-crumb li:after { + display: inline-block; + content: ">"; + padding-left: 10px; + padding-right: 5px; } + .sec-bread .bread-crumb li:last-child:after { + content: ''; } + .sec-bread .bread-crumb li a { + color: #333; + display: inline-block; } + .sec-bread .bread-crumb li.active a { + color: #999; } + +.sec-detail .detail { + padding: 55px; + background-color: #fff; } + .sec-detail .detail .detail-head .media { + position: relative; + width: 285px; + float: left; + display: inline-block; } + .sec-detail .detail .detail-head .media:before { + content: ""; + display: block; + padding-top: 78%; } + .sec-detail .detail .detail-head .media .img-wrapper { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; } + .sec-detail .detail .detail-head .media .img-wrapper img { + display: block; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + max-height: 100%; + max-width: 100%; + margin: auto; } + .sec-detail .detail .detail-head .media-content { + padding-left: 295px; } + .sec-detail .detail .detail-head .media-content .content-content { + padding-top: 30px; + padding-left: 30px; } + .sec-detail .detail .detail-head .media-content .content-content .title { + font-size: 24px; + font-weight: bolder; + margin-bottom: 10px; } + .sec-detail .detail .detail-head .media-content .content-content .tags { + font-size: 12px; + margin-bottom: 40px; } + .sec-detail .detail .detail-head .media-content .content-content .tags a { + display: inline-block; + padding: 0px 10px; + line-height: 25px; + border: 1px solid #ddd; + -webkit-border-radius: 13px; + -moz-border-radius: 13px; + border-radius: 13px; + color: #666666; } + .sec-detail .detail .detail-head .media-content .content-content .jifen { + font-size: 18px; + color: #999; } + .sec-detail .detail .detail-head .media-content .content-content .jifen span { + font-size: 48px; + color: #bf3628; } + .sec-detail .detail .detail-content .cats-title { + line-height: 40px; + font-size: 18px; + color: #bf3628; + border-bottom: 1px solid #ddd; } + .sec-detail .detail .detail-content .cats-title span { + display: inline-block; + border-bottom: 2px solid #bf3628; + margin-bottom: -1px; } + .sec-detail .detail .detail-content .detail-info { + padding-top: 10px; + font-size: 14px; + line-height: 30px; + color: #999; + margin-bottom: 30px; } + .sec-detail .detail .detail-content .detail-info .base-item { + width: 50%; + display: inline-block; + float: left; } + .sec-detail .detail .detail-content .detail-info .base-item span:first-child { + color: #333333; + font-weight: bolder; + margin-right: 10px; } + +.project-item { + padding: 1rem; + border-bottom: 1px solid #eee; + background-color: #fff; + -webkit-transition: all 0.35s; + -moz-transition: all 0.35s; + -ms-transition: all 0.35s; + -o-transition: all 0.35s; + transition: all 0.35s; } + .project-item:hover { + cursor:pointer; + background-color: #f9fafd; } + .project-item .project-media { + position: relative; + display: inline-block; + float: left; + width: 185px; + overflow: hidden; } + .project-item .project-media .top-padding { + padding-top: 78%; } + .project-item .project-media .img-box { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + display: block; } + .project-item .project-media .img-box img { + display: block; + width: 100%; } + .project-item .project-content { + padding-left: 195px; } + .project-item .project-content .project-title { + position: relative; + font-size: 0.9rem; + margin-bottom: 0.75rem; + font-weight: bold; } + .project-item .project-content .project-info { + line-height: 1.6; + color: #777; + font-size: 0.7rem; } +.project-item .right .project-title{color:#bf3628; } +.float-tool { + position: fixed; + _position: absolute; + bottom: 33%; + right: .1%; + z-index: 250; + margin-bottom: -90px; + cursor: pointer; } + +.xiaoyu-box, .yun95187 { + cursor: pointer; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .yun95187 { + display: block; + position: relative; + margin-bottom: 5px; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .showTel { + position: absolute; + top: 0; + right: 50px; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .yun95187 .white { + display: block; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .showTel .tel-hover-panel { + width: 360px; + height: 100px; + background: #fff; + border: 1px solid #c5d8db; + padding: 0 20px; + border-top: 5px solid #00C1DE; + text-align: left; + -webkit-box-shadow: 0 0 7.5px rgba(0, 0, 0, 0.15); + -moz-box-shadow: 0 0 7.5px rgba(0, 0, 0, 0.15); + box-shadow: 0 0 7.5px rgba(0, 0, 0, 0.15); } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .showTel .tel-hover-panel .top-area { + position: relative; + width: 100%; + padding: 15px 0; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .showTel .tel-hover-panel .top-area .top-left-icon { + width: 50px; + float: left; + padding-top: 10px; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .showTel .tel-hover-panel .top-area .top-right-text { + padding-left: 70px; + height: 54px; + color: #373D41; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .showTel .tel-hover-panel .top-area .top-right-text .desc { + font-size: 14px !important; + line-height: 22px; + margin-bottom: 4px; + color: #5F6367; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .showTel .tel-hover-panel .top-area .top-right-text .phone { + font-size: 18px !important; + line-height: 28px; + color: #00C1DE; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .showTel .tel-hover-panel .bottom-area { + width: 100%; + font-size: 12px; + color: #9B9EA0; + padding-top: 16px; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .showTel .tel-hover-panel .bottom-area .bottom-li li { + float: left; + width: 40%; + list-style-type: circle; + margin-left: 10%; } + +.aliyun-individuation-xiaoyun-95187 .module-wrap .showTel .tel-hover-panel .bottom-area a { + font-size: 14px; + color: #A9B0B4; } + +.article-container { + background-color: transparent; + display: flex; + flex-direction: row-reverse; } + +.section-group h4 { + padding: 0.2rem 0.3rem; + border-left: 2px solid blue; + margin-top: 1rem; + margin-bottom: 0.8rem; } + .section-group h4.bg-primary small { + color: #fff; } +.section-group .content { + padding: 1rem 0; } + .section-group .content p { + text-indent: 0.3rem; + margin-bottom: 0.3rem; + font-size: 0.7rem; + line-height: 1.5rem; } + .section-group .content pre { + padding: 1.5rem 1rem; } + .section-group .content .ul-default { + padding: 0.5rem 1rem; + border-left: 2px solid orange; + background-color: #cfd9db; } + .section-group .content .ul-default li { + font-size: 0.7rem; + line-height: 2rem; } + +.detail-container { + min-height: 80vh; + padding: 1.75rem 0; } + +.detail-main .detail-shell { + border: 1px solid #ddd; } + .detail-main .detail-shell .breadcrumb { + padding: 0.6rem 0.75rem; + -webkit-border-radius: 0rem; + -moz-border-radius: 0rem; + border-radius: 0rem; + margin-bottom: 0; } + .detail-main .detail-shell .breadcrumb a { + color: #666; } + .detail-main .detail-shell .detail-body { + position: relative; + overflow: hidden; + color: #333; + min-height: 30rem; } + .detail-main .detail-shell .detail-body .waiting { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + font-size: 2rem; + font-weight: bolder; + text-align: center; + padding-top: 10rem; + background-color: white; + color: #000; + z-index: 99; } + .detail-main .detail-shell .detail-body .waiting h1 { + margin-bottom: 0.5rem; } + .detail-main .detail-shell .detail-body .detail-tit { + font-size: 1.2rem; + padding: 0.75rem; + color: #000; } + .detail-main .detail-shell .detail-body .detail-actions { + overflow: hidden; + padding: 0.5rem; + border-top: 1px solid #ddd; } + .detail-main .detail-shell .detail-body .detail-actions .item { + margin-right: 1rem; } + .detail-main .detail-shell .detail-body .detail-actions .item i { + color: #f4731c; + margin-right: 0.3rem; } + .detail-main .detail-shell .detail-body .detail-other { + padding-left: 0.75rem; + padding-bottom: 1rem; + border-bottom: 1px solid #ddd; } + .detail-main .detail-shell .detail-body .detail-other .tit { + color: #2e485f; } + .detail-main .detail-shell .detail-body .detail-other .content { + color: #999; } + .detail-main .detail-shell .detail-body .detail-info { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; } + .detail-main .detail-shell .detail-body .detail-info .item { + display: inline-block; + float: left; + border-bottom: 1px solid #ddd; } + .detail-main .detail-shell .detail-body .detail-info .item:nth-last-child(1), .detail-main .detail-shell .detail-body .detail-info .item:nth-last-child(2) { + border-bottom: 0; } + .detail-main .detail-shell .detail-body .detail-info .item .item-tit, .detail-main .detail-shell .detail-body .detail-info .item .item-txt { + padding: 0.5rem 1rem; } + .detail-main .detail-shell .detail-body .detail-info .item .item-tit { + background-color: #eee; + width: 4.6rem; } + .detail-main .detail-shell .detail-body .detail-detail { + padding: 1.5rem; + line-height: 1.2rem; } + .detail-main .detail-shell .detail-body .detail-detail .dd-content img { + display: block; + max-width: 100%; + margin: 0.75rem auto; } + .detail-main .detail-shell .detail-body .detail-detail .dd-content p { + margin-bottom: 0.5rem; + text-indent: 1.2rem; } + .detail-main .detail-shell .detail-body .detail-detail .dd-content p > small { + text-align: center; + display: block; } + .detail-main .detail-shell .detail-body .detail-detail .dd-content h3 { + font-size: 0.8rem; + margin-bottom: 0.75rem; } + .detail-main .detail-shell .detail-body .detail-detail .dd-content h4 { + font-size: 0.7rem; + margin-bottom: 0.75rem; } + .detail-main .detail-shell .detail-body .detail-bottom { + padding: 1rem; + text-align: center; } + .detail-main .detail-shell .detail-body .fenxi-box .fx-tit { + line-height: 2rem; + font-size: 0.8rem; + padding-left: 1rem; + background-color: #eee; + border-top: 1px solid #ddd; } + .detail-main .detail-shell .detail-body .fenxi-box .fx-content { + line-height: 1.2rem; + padding: 0.75rem 1.5rem; } + .detail-main .detail-shell .detail-body .fenxi-box .fx-content h4 { + font-size: 0.8rem; + line-height: 1rem; + margin: 0.5rem 0; + padding-left: 0.3rem; + border-left: 2px solid #333; } + .detail-main .detail-shell .detail-body .sh-msg { + text-align: center; + padding-top: 5rem; + color: #f4731c; } + +.detail-dianping .dp-tit { + line-height: 2rem; + font-size: 0.8rem; + padding-left: 1rem; + background-color: #eee; + border-top: 1px solid #ddd; } +.detail-dianping .dp-container { + padding: 0.75rem 1.5rem; } + .detail-dianping .dp-container .dp-item { + padding: 0.75rem 0; } + .detail-dianping .dp-container .dp-item .dp-zj-shell .dp-header { + display: inline-block; + float: left; + width: 3rem; + height: 3rem; + -webkit-border-radius: .4rem; + -moz-border-radius: .4rem; + border-radius: .4rem; + overflow: hidden; + background-color: #eee; } + .detail-dianping .dp-container .dp-item .dp-zj-shell .dp-body { + position: relative; + display: inline-block; + float: left; + padding-left: 0.5rem; + margin-bottom: 0.5rem; } + .detail-dianping .dp-container .dp-item .dp-zj-shell .dp-body .dp-name { + font-size: 0.7rem; + margin-bottom: 0.3rem; } + .detail-dianping .dp-container .dp-item .dp-zj-shell .dp-body .dp-name small { + margin-left: 0.5rem; + color: #999; } + .detail-dianping .dp-container .dp-item .dp-zj-shell .dp-body .dp-tags { + margin-bottom: 0.2rem; } + .detail-dianping .dp-container .dp-item .dp-zj-shell .dp-body .dp-tags span { + margin-right: 0.2rem; } + .detail-dianping .dp-container .dp-item .dp-zj-shell .dp-body .erma { + background-color: #fff; + width: 5rem; + height: 5rem; } + .detail-dianping .dp-container .dp-item .dp-content { + position: relative; } + .detail-dianping .dp-container .dp-item .dp-content i { + position: absolute; + font-size: 0.8rem; + top: -12px; + left: 1.1rem; + -webkit-transform: rotate(-90deg); + -moz-transform: rotate(-90deg); + -ms-transform: rotate(-90deg); + -o-transform: rotate(-90deg); + transform: rotate(-90deg); + color: #f1f1f1; } + .detail-dianping .dp-container .dp-item .dp-content .dp-txt { + background-color: #f1f1f1; + padding: 1rem; + line-height: 1.25rem; + -webkit-border-radius: 0.2rem; + -moz-border-radius: 0.2rem; + border-radius: 0.2rem; } + .detail-dianping .dp-container .dp-item .dp-input { + border-radius: 0.2rem; + width: 100%; + margin-top: 1rem; + border: 1px solid #ddd; } + +.detail-aside .suggests { + margin-top: 1rem; + border: 1px solid #ddd; } + .detail-aside .suggests .tit { + font-size: 0.7rem; + color: #333; + background-color: #eee; + padding-left: 0.5rem; + line-height: 2rem; } + .detail-aside .suggests .sug-list { + padding: 0.3rem 0.3rem; } + .detail-aside .suggests .sug-list .list-item { + position: relative; + color: #666; } + .detail-aside .suggests .sug-list .list-item a { + line-height: 1.25rem; + color: #666; + cursor: pointer; } + .detail-aside .suggests .sug-list .list-item a:hover { + color: #f4731c; } + .detail-aside .suggests .sug-list .list-item .time { + position: absolute; + right: 0; + top: 0; } + .detail-aside .suggests .sug-list .fig-normal { + padding: 0; + margin-bottom: 0.5rem; } + .detail-aside .suggests .sug-list .fig-normal:hover .fig-img { + opacity: 0.8; } + .detail-aside .suggests .sug-list .fig-normal .fig-tit { + white-space: nowrap; + overflow: hidden; + -ms-text-overflow: ellipsis; + text-overflow: ellipsis; } + +.san-biao { + border: 1px solid #ddd; + padding: 0.5rem 0.75rem; } + .san-biao .top-shell { + border: 1px solid #ddd; + padding: 0.35rem 0; + margin-bottom: 0.65rem; } + .san-biao .bottom { + padding: 0 !important; } + .san-biao .tit { + font-size: 0.8rem; + text-align: center; + color: #333; } + .san-biao .body { + padding-top: 1rem; } + .san-biao .body .fig-normal { + display: inline-block; + float: left; + width: 33.33%; + padding: 0; } + .san-biao .body .fig-normal a { + padding: 0 0.75rem; + display: block; + border-right: 1px solid #ddd; } + .san-biao .body .fig-normal figcaption { + text-align: center; + color: #333; } + .san-biao .body .fig-normal:last-child > a { + border-right: 0; } + +.detail-container-dc .detail-main .detail-shell { + border: 0; } + +.sec-user .content .user-detail { + width: 66.7%; + float: left; + background-color: #fff; } + .sec-user .content .user-detail .head { + padding:20px 15px; } + .sec-user .content .user-detail .head .left, .sec-user .content .user-detail .head .right { + width: 50%; + float: left; + border-bottom: 1px solid #ddd; + min-height: 320px; } + .sec-user .content .user-detail .head .left { + border-right: 1px solid #ddd; } + .sec-user .content .user-detail .head .left .head-shell { + position: relative; + width: 130px; + height: 130px; + margin: 0 auto; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + border-radius: 50%; + border: 1px solid #ddd; + overflow: hidden; + margin-bottom: 10px; } + .sec-user .content .user-detail .head .left .head-shell .img-shell { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; } + .sec-user .content .user-detail .head .left .head-shell .img-shell img { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + max-width: 100%; + max-height: 100%; + margin: auto; } + .sec-user .content .user-detail .head .left .user-name { + font-size: 18px; + color: #666; + font-weight: bolder; + margin-bottom: 50px; + text-align: center; } + .sec-user .content .user-detail .head .left .info .info-item { + width: 50%; + float: left; + color: #666; + text-align: center; } + .sec-user .content .user-detail .head .left .info .info-item .num { + color: #bf3628; + font-size: 18px; } + .sec-user .content .user-detail .head .left .info .info-item .txt { + font-size: 14px; } + .sec-user .content .user-detail .head .right {padding-left:20px; } + .sec-user .content .user-detail .head p { + color: rgba(0, 0, 0, 0.4); + display: block; + height: 1.8rem; + line-height: 2.5em; } + + .sec-user .content .user-detail .head p span { + vertical-align:top; + display: inline-block; + height: 2.5em; + line-height:2em; + overflow: hidden; } + .sec-user .content .user-detail .head p span:nth-child(1) { + color: rgba(0, 0, 0, 0.7); + width:65px; + vertical-align:middle; + text-align: justify; } + .sec-user .content .user-detail .head p span:nth-child(2):after { + display: inline-block; + width: 100%; + content: ''; } + .sec-user .content .user-detail .head p span.special:after{ + content:none; + } + .sec-user .content .user-detail .foot { + padding-bottom: 30px; + font-size: 14px; + width: 100%; + text-align: center; } + .sec-user .content .user-detail .foot .btn-xiugai { + display: inline-block; + margin: 0 auto; + color: #fff; + padding: 10px 15px; + background-color: #bf3628; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; } + .sec-user .content .user-detail .detail-edit { + min-height:430px; + padding: 20px; } + .sec-user .content .user-detail .detail-edit .tit { + text-align: center; + font-size: 16px; + font-weight: bolder; + padding-bottom: 15px; + border-bottom: 1px dashed #ddd; } + .sec-user .content .user-detail .detail-edit .choose-type { + padding:10px 20px; + margin-bottom:20px; + } + .sec-user .content .user-detail .detail-edit .choose-type .type-box { + border-bottom: 1px dashed #bf3628; + padding-bottom: 20px; } + .sec-user .content .user-detail .detail-edit .choose-type a { + display: inline-block; + padding: 5px 15px; + border-radius: 4px; + background-color: #FFFFFF; + border: 1px solid #bf3628; + color: #bf3628; } + .sec-user .content .user-detail .detail-edit .choose-type a.active { + background-color: #bf3628; + color: #fff; } + .sec-user .content .user-detail .detail-edit .f-form { + display: none; } + .sec-user .content .user-detail .detail-edit .f-form.active { + display: block; } +.sec-user .content .user-detail .body .body-content .item-jifen { + position: relative; + float: left; + overflow: hidden;width:100%; } + .sec-user .content .user-detail .body .body-content .item-jifen .item-wrapper { + border-bottom: 1px solid #ddd; + padding: 15px; + margin-bottom: 10px; } + .sec-user .content .user-detail .body .body-content .item-jifen .title { + font-size: 14px; + margin-bottom: 5px; + white-space: nowrap; + -ms-text-overflow: ellipsis; + text-overflow: ellipsis; + overflow: hidden; } + .sec-user .content .user-detail .body .body-content .item-jifen .info { + color: #999; + font-size: 12px; } + .sec-user .content .user-detail .body .body-content .item-jifen .func { + text-align: right; } + .sec-user .content .user-detail .body .body-content .item-jifen .func small { + font-size: 12px; + color: #f4731c; + padding-left: 20px; } +.sec-user .content .user-caidan { + width: 33.3%; + float: left; + padding-left: 10px; } + .sec-user .content .user-caidan .caidan-items { + padding: 40px; + background-color: #fff; + min-height: 430px; } + .sec-user .content .user-caidan .caidan-items .cd-item { + line-height: 22px; + margin-bottom: 20px; } + .sec-user .content .user-caidan .caidan-items .cd-item a { + border-left: 3px solid #333; + color: #333; + font-size: 18px; + font-weight: bolder; + padding-left: 5px; } + .sec-user .content .user-caidan .caidan-items .cd-item a span { + display: inline-block; + padding: 0 10px; + color: #fff; + background-color: #333333; + font-size: 12px; + -webkit-border-radius: 15px; + -moz-border-radius: 15px; + border-radius: 15px; } + .sec-user .content .user-caidan .caidan-items .cd-item p { + padding-left: 8px; } + +/*# sourceMappingURL=style0331.css.map */ diff --git a/app/culture/view/szwjs/assets/css/style0331.css.map b/app/culture/view/szwjs/assets/css/style0331.css.map new file mode 100644 index 0000000..8e94d11 --- /dev/null +++ b/app/culture/view/szwjs/assets/css/style0331.css.map @@ -0,0 +1,7 @@ +{ +"version": 3, +"mappings": "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", +"sources": ["../sass/scss/_base.scss","../sass/scss/_variables.scss","../sass/scss/mixins/_cols.scss","../sass/scss/_loading.scss","../sass/scss/_width.scss","../sass/scss/_icon.scss","../sass/scss/_figure.scss","../sass/scss/_table.scss","../sass/scss/_pagination.scss","../sass/scss/_list.scss","../sass/scss/_selects.scss","../sass/scss/_modal.scss","../sass/scss/_paginate.scss","../sass/scss/_upload.scss","../sass/scss/_msg.scss","../sass/scss/_forms.scss","../sass/scss/_umeditor.scss","../sass/scss/_header.scss","../sass/scss/_foot.scss","../sass/scss/_index.scss","../sass/scss/_projectItem.scss","../sass/scss/_fixed.scss","../sass/scss/_article.scss","../sass/scss/_section-group.scss","../sass/scss/_xuqiu.scss","../sass/scss/_qianyin.scss","../sass/scss/_xiangmu.scss","../sass/scss/_products.scss","../sass/scss/_detail.scss"], +"names": [], +"file": "style0331.css" +} \ No newline at end of file diff --git a/app/culture/view/szwjs/assets/img/bg-logo.png b/app/culture/view/szwjs/assets/img/bg-logo.png new file mode 100644 index 0000000..d30e30d Binary files /dev/null and b/app/culture/view/szwjs/assets/img/bg-logo.png differ diff --git a/app/culture/view/szwjs/assets/img/center.png b/app/culture/view/szwjs/assets/img/center.png new file mode 100644 index 0000000..55ea14a Binary files /dev/null and b/app/culture/view/szwjs/assets/img/center.png differ diff --git a/app/culture/view/szwjs/assets/img/default.png b/app/culture/view/szwjs/assets/img/default.png new file mode 100644 index 0000000..a00e2cb Binary files /dev/null and b/app/culture/view/szwjs/assets/img/default.png differ diff --git a/app/culture/view/szwjs/assets/img/jigou.png b/app/culture/view/szwjs/assets/img/jigou.png new file mode 100644 index 0000000..c4b75f0 Binary files /dev/null and b/app/culture/view/szwjs/assets/img/jigou.png differ diff --git a/app/culture/view/szwjs/assets/img/project-item.jpg b/app/culture/view/szwjs/assets/img/project-item.jpg new file mode 100644 index 0000000..252eec0 Binary files /dev/null and b/app/culture/view/szwjs/assets/img/project-item.jpg differ diff --git a/app/culture/view/szwjs/assets/img/xiangmu.png b/app/culture/view/szwjs/assets/img/xiangmu.png new file mode 100644 index 0000000..941dcdc Binary files /dev/null and b/app/culture/view/szwjs/assets/img/xiangmu.png differ diff --git a/app/culture/view/szwjs/assets/js/common.js b/app/culture/view/szwjs/assets/js/common.js new file mode 100644 index 0000000..fc3ff98 --- /dev/null +++ b/app/culture/view/szwjs/assets/js/common.js @@ -0,0 +1,40 @@ +/** + * Created by jsbfec on 2017/8/14. + */ +require.config({ + baseUrl: '/xcxpc/assets/', + urlArgs:'_='+new Date().getTime(), + shim: { + "bootstrap": {"deps": ['jquery']}, + "swiper": {"deps": ['jquery'],"exports": 'Swiper'}, + "mixins":{"deps":['jquery']}, + "quDong": {"deps": ['jquery','mixins']}, + "bootstrapValidator":{ + "deps":['jquery','bootstrap'] + }, + "formjs":{ + "deps":['jquery'] + } + }, + paths: { + + jquery: ['//cdn.bootcss.com/jquery/1.11.1/jquery.min','statics/jquery/1.11.1/jquery.min'], + bootstrap: ['//cdn.bootcss.com/bootstrap/3.3.2/js/bootstrap.min','statics/bootstrap/bootstrap.min'], + bootstrapValidator:'statics/bootstrapvalidator/js/bootstrapValidator.min', + swiper: 'statics/swiper/swiper.min', + formjs:'statics/formjs/jquery.form.min', + mixins:'js/app/mixins', + quDong:'js/app/qudong-plugin', + login:'js/app/login', + api:'js/app/api', + mainMenu:'js/app/mainMenu', + siderBar:'js/app/siderBar', + + }, + map:{ + //'*':{ + // 'jquery':['//cdn.bootcss.com/jquery/1.11.1/jquery.min','statics/jquery/1.11.1/jquery.min'] + //} + } +}); + diff --git a/app/culture/view/szwjs/assets/js/pages/index.js b/app/culture/view/szwjs/assets/js/pages/index.js new file mode 100644 index 0000000..c939861 --- /dev/null +++ b/app/culture/view/szwjs/assets/js/pages/index.js @@ -0,0 +1,8 @@ +$(function () { + //轮播 + let swiper = new Swiper('.js-swiper-index', { + autoplay: 5000,//可选选项,自动滑动 + pagination: '.swiper-pagination', + paginationClickable: true + }) +}) \ No newline at end of file diff --git a/app/culture/view/szwjs/assets/require.js b/app/culture/view/szwjs/assets/require.js new file mode 100644 index 0000000..0fc1082 --- /dev/null +++ b/app/culture/view/szwjs/assets/require.js @@ -0,0 +1,2145 @@ +/** vim: et:ts=4:sw=4:sts=4 + * @license RequireJS 2.3.3 Copyright jQuery Foundation and other contributors. + * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE + */ +//Not using strict: uneven strict support in browsers, #392, and causes +//problems with requirejs.exec()/transpiler plugins that may not be strict. +/*jslint regexp: true, nomen: true, sloppy: true */ +/*global window, navigator, document, importScripts, setTimeout, opera */ + +var requirejs, require, define; +(function (global, setTimeout) { + var req, s, head, baseElement, dataMain, src, + interactiveScript, currentlyAddingScript, mainScript, subPath, + version = '2.3.3', + commentRegExp = /\/\*[\s\S]*?\*\/|([^:"'=]|^)\/\/.*$/mg, + cjsRequireRegExp = /[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g, + jsSuffixRegExp = /\.js$/, + currDirRegExp = /^\.\//, + op = Object.prototype, + ostring = op.toString, + hasOwn = op.hasOwnProperty, + isBrowser = !!(typeof window !== 'undefined' && typeof navigator !== 'undefined' && window.document), + isWebWorker = !isBrowser && typeof importScripts !== 'undefined', + //PS3 indicates loaded and complete, but need to wait for complete + //specifically. Sequence is 'loading', 'loaded', execution, + // then 'complete'. The UA check is unfortunate, but not sure how + //to feature test w/o causing perf issues. + readyRegExp = isBrowser && navigator.platform === 'PLAYSTATION 3' ? + /^complete$/ : /^(complete|loaded)$/, + defContextName = '_', + //Oh the tragedy, detecting opera. See the usage of isOpera for reason. + isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]', + contexts = {}, + cfg = {}, + globalDefQueue = [], + useInteractive = false; + + //Could match something like ')//comment', do not lose the prefix to comment. + function commentReplace(match, singlePrefix) { + return singlePrefix || ''; + } + + function isFunction(it) { + return ostring.call(it) === '[object Function]'; + } + + function isArray(it) { + return ostring.call(it) === '[object Array]'; + } + + /** + * Helper function for iterating over an array. If the func returns + * a true value, it will break out of the loop. + */ + function each(ary, func) { + if (ary) { + var i; + for (i = 0; i < ary.length; i += 1) { + if (ary[i] && func(ary[i], i, ary)) { + break; + } + } + } + } + + /** + * Helper function for iterating over an array backwards. If the func + * returns a true value, it will break out of the loop. + */ + function eachReverse(ary, func) { + if (ary) { + var i; + for (i = ary.length - 1; i > -1; i -= 1) { + if (ary[i] && func(ary[i], i, ary)) { + break; + } + } + } + } + + function hasProp(obj, prop) { + return hasOwn.call(obj, prop); + } + + function getOwn(obj, prop) { + return hasProp(obj, prop) && obj[prop]; + } + + /** + * Cycles over properties in an object and calls a function for each + * property value. If the function returns a truthy value, then the + * iteration is stopped. + */ + function eachProp(obj, func) { + var prop; + for (prop in obj) { + if (hasProp(obj, prop)) { + if (func(obj[prop], prop)) { + break; + } + } + } + } + + /** + * Simple function to mix in properties from source into target, + * but only if target does not already have a property of the same name. + */ + function mixin(target, source, force, deepStringMixin) { + if (source) { + eachProp(source, function (value, prop) { + if (force || !hasProp(target, prop)) { + if (deepStringMixin && typeof value === 'object' && value && + !isArray(value) && !isFunction(value) && + !(value instanceof RegExp)) { + + if (!target[prop]) { + target[prop] = {}; + } + mixin(target[prop], value, force, deepStringMixin); + } else { + target[prop] = value; + } + } + }); + } + return target; + } + + //Similar to Function.prototype.bind, but the 'this' object is specified + //first, since it is easier to read/figure out what 'this' will be. + function bind(obj, fn) { + return function () { + return fn.apply(obj, arguments); + }; + } + + function scripts() { + return document.getElementsByTagName('script'); + } + + function defaultOnError(err) { + throw err; + } + + //Allow getting a global that is expressed in + //dot notation, like 'a.b.c'. + function getGlobal(value) { + if (!value) { + return value; + } + var g = global; + each(value.split('.'), function (part) { + g = g[part]; + }); + return g; + } + + /** + * Constructs an error with a pointer to an URL with more information. + * @param {String} id the error ID that maps to an ID on a web page. + * @param {String} message human readable error. + * @param {Error} [err] the original error, if there is one. + * + * @returns {Error} + */ + function makeError(id, msg, err, requireModules) { + var e = new Error(msg + '\nhttp://requirejs.org/docs/errors.html#' + id); + e.requireType = id; + e.requireModules = requireModules; + if (err) { + e.originalError = err; + } + return e; + } + + if (typeof define !== 'undefined') { + //If a define is already in play via another AMD loader, + //do not overwrite. + return; + } + + if (typeof requirejs !== 'undefined') { + if (isFunction(requirejs)) { + //Do not overwrite an existing requirejs instance. + return; + } + cfg = requirejs; + requirejs = undefined; + } + + //Allow for a require config object + if (typeof require !== 'undefined' && !isFunction(require)) { + //assume it is a config object. + cfg = require; + require = undefined; + } + + function newContext(contextName) { + var inCheckLoaded, Module, context, handlers, + checkLoadedTimeoutId, + config = { + //Defaults. Do not set a default for map + //config to speed up normalize(), which + //will run faster if there is no default. + waitSeconds: 7, + baseUrl: './', + paths: {}, + bundles: {}, + pkgs: {}, + shim: {}, + config: {} + }, + registry = {}, + //registry of just enabled modules, to speed + //cycle breaking code when lots of modules + //are registered, but not activated. + enabledRegistry = {}, + undefEvents = {}, + defQueue = [], + defined = {}, + urlFetched = {}, + bundlesMap = {}, + requireCounter = 1, + unnormalizedCounter = 1; + + /** + * Trims the . and .. from an array of path segments. + * It will keep a leading path segment if a .. will become + * the first path segment, to help with module name lookups, + * which act like paths, but can be remapped. But the end result, + * all paths that use this function should look normalized. + * NOTE: this method MODIFIES the input array. + * @param {Array} ary the array of path segments. + */ + function trimDots(ary) { + var i, part; + for (i = 0; i < ary.length; i++) { + part = ary[i]; + if (part === '.') { + ary.splice(i, 1); + i -= 1; + } else if (part === '..') { + // If at the start, or previous value is still .., + // keep them so that when converted to a path it may + // still work when converted to a path, even though + // as an ID it is less than ideal. In larger point + // releases, may be better to just kick out an error. + if (i === 0 || (i === 1 && ary[2] === '..') || ary[i - 1] === '..') { + continue; + } else if (i > 0) { + ary.splice(i - 1, 2); + i -= 2; + } + } + } + } + + /** + * Given a relative module name, like ./something, normalize it to + * a real name that can be mapped to a path. + * @param {String} name the relative name + * @param {String} baseName a real name that the name arg is relative + * to. + * @param {Boolean} applyMap apply the map config to the value. Should + * only be done if this normalization is for a dependency ID. + * @returns {String} normalized name + */ + function normalize(name, baseName, applyMap) { + var pkgMain, mapValue, nameParts, i, j, nameSegment, lastIndex, + foundMap, foundI, foundStarMap, starI, normalizedBaseParts, + baseParts = (baseName && baseName.split('/')), + map = config.map, + starMap = map && map['*']; + + //Adjust any relative paths. + if (name) { + name = name.split('/'); + lastIndex = name.length - 1; + + // If wanting node ID compatibility, strip .js from end + // of IDs. Have to do this here, and not in nameToUrl + // because node allows either .js or non .js to map + // to same file. + if (config.nodeIdCompat && jsSuffixRegExp.test(name[lastIndex])) { + name[lastIndex] = name[lastIndex].replace(jsSuffixRegExp, ''); + } + + // Starts with a '.' so need the baseName + if (name[0].charAt(0) === '.' && baseParts) { + //Convert baseName to array, and lop off the last part, + //so that . matches that 'directory' and not name of the baseName's + //module. For instance, baseName of 'one/two/three', maps to + //'one/two/three.js', but we want the directory, 'one/two' for + //this normalization. + normalizedBaseParts = baseParts.slice(0, baseParts.length - 1); + name = normalizedBaseParts.concat(name); + } + + trimDots(name); + name = name.join('/'); + } + + //Apply map config if available. + if (applyMap && map && (baseParts || starMap)) { + nameParts = name.split('/'); + + outerLoop: for (i = nameParts.length; i > 0; i -= 1) { + nameSegment = nameParts.slice(0, i).join('/'); + + if (baseParts) { + //Find the longest baseName segment match in the config. + //So, do joins on the biggest to smallest lengths of baseParts. + for (j = baseParts.length; j > 0; j -= 1) { + mapValue = getOwn(map, baseParts.slice(0, j).join('/')); + + //baseName segment has config, find if it has one for + //this name. + if (mapValue) { + mapValue = getOwn(mapValue, nameSegment); + if (mapValue) { + //Match, update name to the new value. + foundMap = mapValue; + foundI = i; + break outerLoop; + } + } + } + } + + //Check for a star map match, but just hold on to it, + //if there is a shorter segment match later in a matching + //config, then favor over this star map. + if (!foundStarMap && starMap && getOwn(starMap, nameSegment)) { + foundStarMap = getOwn(starMap, nameSegment); + starI = i; + } + } + + if (!foundMap && foundStarMap) { + foundMap = foundStarMap; + foundI = starI; + } + + if (foundMap) { + nameParts.splice(0, foundI, foundMap); + name = nameParts.join('/'); + } + } + + // If the name points to a package's name, use + // the package main instead. + pkgMain = getOwn(config.pkgs, name); + + return pkgMain ? pkgMain : name; + } + + function removeScript(name) { + if (isBrowser) { + each(scripts(), function (scriptNode) { + if (scriptNode.getAttribute('data-requiremodule') === name && + scriptNode.getAttribute('data-requirecontext') === context.contextName) { + scriptNode.parentNode.removeChild(scriptNode); + return true; + } + }); + } + } + + function hasPathFallback(id) { + var pathConfig = getOwn(config.paths, id); + if (pathConfig && isArray(pathConfig) && pathConfig.length > 1) { + //Pop off the first array value, since it failed, and + //retry + pathConfig.shift(); + context.require.undef(id); + + //Custom require that does not do map translation, since + //ID is "absolute", already mapped/resolved. + context.makeRequire(null, { + skipMap: true + })([id]); + + return true; + } + } + + //Turns a plugin!resource to [plugin, resource] + //with the plugin being undefined if the name + //did not have a plugin prefix. + function splitPrefix(name) { + var prefix, + index = name ? name.indexOf('!') : -1; + if (index > -1) { + prefix = name.substring(0, index); + name = name.substring(index + 1, name.length); + } + return [prefix, name]; + } + + /** + * Creates a module mapping that includes plugin prefix, module + * name, and path. If parentModuleMap is provided it will + * also normalize the name via require.normalize() + * + * @param {String} name the module name + * @param {String} [parentModuleMap] parent module map + * for the module name, used to resolve relative names. + * @param {Boolean} isNormalized: is the ID already normalized. + * This is true if this call is done for a define() module ID. + * @param {Boolean} applyMap: apply the map config to the ID. + * Should only be true if this map is for a dependency. + * + * @returns {Object} + */ + function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) { + var url, pluginModule, suffix, nameParts, + prefix = null, + parentName = parentModuleMap ? parentModuleMap.name : null, + originalName = name, + isDefine = true, + normalizedName = ''; + + //If no name, then it means it is a require call, generate an + //internal name. + if (!name) { + isDefine = false; + name = '_@r' + (requireCounter += 1); + } + + nameParts = splitPrefix(name); + prefix = nameParts[0]; + name = nameParts[1]; + + if (prefix) { + prefix = normalize(prefix, parentName, applyMap); + pluginModule = getOwn(defined, prefix); + } + + //Account for relative paths if there is a base name. + if (name) { + if (prefix) { + if (isNormalized) { + normalizedName = name; + } else if (pluginModule && pluginModule.normalize) { + //Plugin is loaded, use its normalize method. + normalizedName = pluginModule.normalize(name, function (name) { + return normalize(name, parentName, applyMap); + }); + } else { + // If nested plugin references, then do not try to + // normalize, as it will not normalize correctly. This + // places a restriction on resourceIds, and the longer + // term solution is not to normalize until plugins are + // loaded and all normalizations to allow for async + // loading of a loader plugin. But for now, fixes the + // common uses. Details in #1131 + normalizedName = name.indexOf('!') === -1 ? + normalize(name, parentName, applyMap) : + name; + } + } else { + //A regular module. + normalizedName = normalize(name, parentName, applyMap); + + //Normalized name may be a plugin ID due to map config + //application in normalize. The map config values must + //already be normalized, so do not need to redo that part. + nameParts = splitPrefix(normalizedName); + prefix = nameParts[0]; + normalizedName = nameParts[1]; + isNormalized = true; + + url = context.nameToUrl(normalizedName); + } + } + + //If the id is a plugin id that cannot be determined if it needs + //normalization, stamp it with a unique ID so two matching relative + //ids that may conflict can be separate. + suffix = prefix && !pluginModule && !isNormalized ? + '_unnormalized' + (unnormalizedCounter += 1) : + ''; + + return { + prefix: prefix, + name: normalizedName, + parentMap: parentModuleMap, + unnormalized: !!suffix, + url: url, + originalName: originalName, + isDefine: isDefine, + id: (prefix ? + prefix + '!' + normalizedName : + normalizedName) + suffix + }; + } + + function getModule(depMap) { + var id = depMap.id, + mod = getOwn(registry, id); + + if (!mod) { + mod = registry[id] = new context.Module(depMap); + } + + return mod; + } + + function on(depMap, name, fn) { + var id = depMap.id, + mod = getOwn(registry, id); + + if (hasProp(defined, id) && + (!mod || mod.defineEmitComplete)) { + if (name === 'defined') { + fn(defined[id]); + } + } else { + mod = getModule(depMap); + if (mod.error && name === 'error') { + fn(mod.error); + } else { + mod.on(name, fn); + } + } + } + + function onError(err, errback) { + var ids = err.requireModules, + notified = false; + + if (errback) { + errback(err); + } else { + each(ids, function (id) { + var mod = getOwn(registry, id); + if (mod) { + //Set error on module, so it skips timeout checks. + mod.error = err; + if (mod.events.error) { + notified = true; + mod.emit('error', err); + } + } + }); + + if (!notified) { + req.onError(err); + } + } + } + + /** + * Internal method to transfer globalQueue items to this context's + * defQueue. + */ + function takeGlobalQueue() { + //Push all the globalDefQueue items into the context's defQueue + if (globalDefQueue.length) { + each(globalDefQueue, function(queueItem) { + var id = queueItem[0]; + if (typeof id === 'string') { + context.defQueueMap[id] = true; + } + defQueue.push(queueItem); + }); + globalDefQueue = []; + } + } + + handlers = { + 'require': function (mod) { + if (mod.require) { + return mod.require; + } else { + return (mod.require = context.makeRequire(mod.map)); + } + }, + 'exports': function (mod) { + mod.usingExports = true; + if (mod.map.isDefine) { + if (mod.exports) { + return (defined[mod.map.id] = mod.exports); + } else { + return (mod.exports = defined[mod.map.id] = {}); + } + } + }, + 'module': function (mod) { + if (mod.module) { + return mod.module; + } else { + return (mod.module = { + id: mod.map.id, + uri: mod.map.url, + config: function () { + return getOwn(config.config, mod.map.id) || {}; + }, + exports: mod.exports || (mod.exports = {}) + }); + } + } + }; + + function cleanRegistry(id) { + //Clean up machinery used for waiting modules. + delete registry[id]; + delete enabledRegistry[id]; + } + + function breakCycle(mod, traced, processed) { + var id = mod.map.id; + + if (mod.error) { + mod.emit('error', mod.error); + } else { + traced[id] = true; + each(mod.depMaps, function (depMap, i) { + var depId = depMap.id, + dep = getOwn(registry, depId); + + //Only force things that have not completed + //being defined, so still in the registry, + //and only if it has not been matched up + //in the module already. + if (dep && !mod.depMatched[i] && !processed[depId]) { + if (getOwn(traced, depId)) { + mod.defineDep(i, defined[depId]); + mod.check(); //pass false? + } else { + breakCycle(dep, traced, processed); + } + } + }); + processed[id] = true; + } + } + + function checkLoaded() { + var err, usingPathFallback, + waitInterval = config.waitSeconds * 1000, + //It is possible to disable the wait interval by using waitSeconds of 0. + expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(), + noLoads = [], + reqCalls = [], + stillLoading = false, + needCycleCheck = true; + + //Do not bother if this call was a result of a cycle break. + if (inCheckLoaded) { + return; + } + + inCheckLoaded = true; + + //Figure out the state of all the modules. + eachProp(enabledRegistry, function (mod) { + var map = mod.map, + modId = map.id; + + //Skip things that are not enabled or in error state. + if (!mod.enabled) { + return; + } + + if (!map.isDefine) { + reqCalls.push(mod); + } + + if (!mod.error) { + //If the module should be executed, and it has not + //been inited and time is up, remember it. + if (!mod.inited && expired) { + if (hasPathFallback(modId)) { + usingPathFallback = true; + stillLoading = true; + } else { + noLoads.push(modId); + removeScript(modId); + } + } else if (!mod.inited && mod.fetched && map.isDefine) { + stillLoading = true; + if (!map.prefix) { + //No reason to keep looking for unfinished + //loading. If the only stillLoading is a + //plugin resource though, keep going, + //because it may be that a plugin resource + //is waiting on a non-plugin cycle. + return (needCycleCheck = false); + } + } + } + }); + + if (expired && noLoads.length) { + //If wait time expired, throw error of unloaded modules. + err = makeError('timeout', 'Load timeout for modules: ' + noLoads, null, noLoads); + err.contextName = context.contextName; + return onError(err); + } + + //Not expired, check for a cycle. + if (needCycleCheck) { + each(reqCalls, function (mod) { + breakCycle(mod, {}, {}); + }); + } + + //If still waiting on loads, and the waiting load is something + //other than a plugin resource, or there are still outstanding + //scripts, then just try back later. + if ((!expired || usingPathFallback) && stillLoading) { + //Something is still waiting to load. Wait for it, but only + //if a timeout is not already in effect. + if ((isBrowser || isWebWorker) && !checkLoadedTimeoutId) { + checkLoadedTimeoutId = setTimeout(function () { + checkLoadedTimeoutId = 0; + checkLoaded(); + }, 50); + } + } + + inCheckLoaded = false; + } + + Module = function (map) { + this.events = getOwn(undefEvents, map.id) || {}; + this.map = map; + this.shim = getOwn(config.shim, map.id); + this.depExports = []; + this.depMaps = []; + this.depMatched = []; + this.pluginMaps = {}; + this.depCount = 0; + + /* this.exports this.factory + this.depMaps = [], + this.enabled, this.fetched + */ + }; + + Module.prototype = { + init: function (depMaps, factory, errback, options) { + options = options || {}; + + //Do not do more inits if already done. Can happen if there + //are multiple define calls for the same module. That is not + //a normal, common case, but it is also not unexpected. + if (this.inited) { + return; + } + + this.factory = factory; + + if (errback) { + //Register for errors on this module. + this.on('error', errback); + } else if (this.events.error) { + //If no errback already, but there are error listeners + //on this module, set up an errback to pass to the deps. + errback = bind(this, function (err) { + this.emit('error', err); + }); + } + + //Do a copy of the dependency array, so that + //source inputs are not modified. For example + //"shim" deps are passed in here directly, and + //doing a direct modification of the depMaps array + //would affect that config. + this.depMaps = depMaps && depMaps.slice(0); + + this.errback = errback; + + //Indicate this module has be initialized + this.inited = true; + + this.ignore = options.ignore; + + //Could have option to init this module in enabled mode, + //or could have been previously marked as enabled. However, + //the dependencies are not known until init is called. So + //if enabled previously, now trigger dependencies as enabled. + if (options.enabled || this.enabled) { + //Enable this module and dependencies. + //Will call this.check() + this.enable(); + } else { + this.check(); + } + }, + + defineDep: function (i, depExports) { + //Because of cycles, defined callback for a given + //export can be called more than once. + if (!this.depMatched[i]) { + this.depMatched[i] = true; + this.depCount -= 1; + this.depExports[i] = depExports; + } + }, + + fetch: function () { + if (this.fetched) { + return; + } + this.fetched = true; + + context.startTime = (new Date()).getTime(); + + var map = this.map; + + //If the manager is for a plugin managed resource, + //ask the plugin to load it now. + if (this.shim) { + context.makeRequire(this.map, { + enableBuildCallback: true + })(this.shim.deps || [], bind(this, function () { + return map.prefix ? this.callPlugin() : this.load(); + })); + } else { + //Regular dependency. + return map.prefix ? this.callPlugin() : this.load(); + } + }, + + load: function () { + var url = this.map.url; + + //Regular dependency. + if (!urlFetched[url]) { + urlFetched[url] = true; + context.load(this.map.id, url); + } + }, + + /** + * Checks if the module is ready to define itself, and if so, + * define it. + */ + check: function () { + if (!this.enabled || this.enabling) { + return; + } + + var err, cjsModule, + id = this.map.id, + depExports = this.depExports, + exports = this.exports, + factory = this.factory; + + if (!this.inited) { + // Only fetch if not already in the defQueue. + if (!hasProp(context.defQueueMap, id)) { + this.fetch(); + } + } else if (this.error) { + this.emit('error', this.error); + } else if (!this.defining) { + //The factory could trigger another require call + //that would result in checking this module to + //define itself again. If already in the process + //of doing that, skip this work. + this.defining = true; + + if (this.depCount < 1 && !this.defined) { + if (isFunction(factory)) { + //If there is an error listener, favor passing + //to that instead of throwing an error. However, + //only do it for define()'d modules. require + //errbacks should not be called for failures in + //their callbacks (#699). However if a global + //onError is set, use that. + if ((this.events.error && this.map.isDefine) || + req.onError !== defaultOnError) { + try { + exports = context.execCb(id, factory, depExports, exports); + } catch (e) { + err = e; + } + } else { + exports = context.execCb(id, factory, depExports, exports); + } + + // Favor return value over exports. If node/cjs in play, + // then will not have a return value anyway. Favor + // module.exports assignment over exports object. + if (this.map.isDefine && exports === undefined) { + cjsModule = this.module; + if (cjsModule) { + exports = cjsModule.exports; + } else if (this.usingExports) { + //exports already set the defined value. + exports = this.exports; + } + } + + if (err) { + err.requireMap = this.map; + err.requireModules = this.map.isDefine ? [this.map.id] : null; + err.requireType = this.map.isDefine ? 'define' : 'require'; + return onError((this.error = err)); + } + + } else { + //Just a literal value + exports = factory; + } + + this.exports = exports; + + if (this.map.isDefine && !this.ignore) { + defined[id] = exports; + + if (req.onResourceLoad) { + var resLoadMaps = []; + each(this.depMaps, function (depMap) { + resLoadMaps.push(depMap.normalizedMap || depMap); + }); + req.onResourceLoad(context, this.map, resLoadMaps); + } + } + + //Clean up + cleanRegistry(id); + + this.defined = true; + } + + //Finished the define stage. Allow calling check again + //to allow define notifications below in the case of a + //cycle. + this.defining = false; + + if (this.defined && !this.defineEmitted) { + this.defineEmitted = true; + this.emit('defined', this.exports); + this.defineEmitComplete = true; + } + + } + }, + + callPlugin: function () { + var map = this.map, + id = map.id, + //Map already normalized the prefix. + pluginMap = makeModuleMap(map.prefix); + + //Mark this as a dependency for this plugin, so it + //can be traced for cycles. + this.depMaps.push(pluginMap); + + on(pluginMap, 'defined', bind(this, function (plugin) { + var load, normalizedMap, normalizedMod, + bundleId = getOwn(bundlesMap, this.map.id), + name = this.map.name, + parentName = this.map.parentMap ? this.map.parentMap.name : null, + localRequire = context.makeRequire(map.parentMap, { + enableBuildCallback: true + }); + + //If current map is not normalized, wait for that + //normalized name to load instead of continuing. + if (this.map.unnormalized) { + //Normalize the ID if the plugin allows it. + if (plugin.normalize) { + name = plugin.normalize(name, function (name) { + return normalize(name, parentName, true); + }) || ''; + } + + //prefix and name should already be normalized, no need + //for applying map config again either. + normalizedMap = makeModuleMap(map.prefix + '!' + name, + this.map.parentMap, + true); + on(normalizedMap, + 'defined', bind(this, function (value) { + this.map.normalizedMap = normalizedMap; + this.init([], function () { return value; }, null, { + enabled: true, + ignore: true + }); + })); + + normalizedMod = getOwn(registry, normalizedMap.id); + if (normalizedMod) { + //Mark this as a dependency for this plugin, so it + //can be traced for cycles. + this.depMaps.push(normalizedMap); + + if (this.events.error) { + normalizedMod.on('error', bind(this, function (err) { + this.emit('error', err); + })); + } + normalizedMod.enable(); + } + + return; + } + + //If a paths config, then just load that file instead to + //resolve the plugin, as it is built into that paths layer. + if (bundleId) { + this.map.url = context.nameToUrl(bundleId); + this.load(); + return; + } + + load = bind(this, function (value) { + this.init([], function () { return value; }, null, { + enabled: true + }); + }); + + load.error = bind(this, function (err) { + this.inited = true; + this.error = err; + err.requireModules = [id]; + + //Remove temp unnormalized modules for this module, + //since they will never be resolved otherwise now. + eachProp(registry, function (mod) { + if (mod.map.id.indexOf(id + '_unnormalized') === 0) { + cleanRegistry(mod.map.id); + } + }); + + onError(err); + }); + + //Allow plugins to load other code without having to know the + //context or how to 'complete' the load. + load.fromText = bind(this, function (text, textAlt) { + /*jslint evil: true */ + var moduleName = map.name, + moduleMap = makeModuleMap(moduleName), + hasInteractive = useInteractive; + + //As of 2.1.0, support just passing the text, to reinforce + //fromText only being called once per resource. Still + //support old style of passing moduleName but discard + //that moduleName in favor of the internal ref. + if (textAlt) { + text = textAlt; + } + + //Turn off interactive script matching for IE for any define + //calls in the text, then turn it back on at the end. + if (hasInteractive) { + useInteractive = false; + } + + //Prime the system by creating a module instance for + //it. + getModule(moduleMap); + + //Transfer any config to this other module. + if (hasProp(config.config, id)) { + config.config[moduleName] = config.config[id]; + } + + try { + req.exec(text); + } catch (e) { + return onError(makeError('fromtexteval', + 'fromText eval for ' + id + + ' failed: ' + e, + e, + [id])); + } + + if (hasInteractive) { + useInteractive = true; + } + + //Mark this as a dependency for the plugin + //resource + this.depMaps.push(moduleMap); + + //Support anonymous modules. + context.completeLoad(moduleName); + + //Bind the value of that module to the value for this + //resource ID. + localRequire([moduleName], load); + }); + + //Use parentName here since the plugin's name is not reliable, + //could be some weird string with no path that actually wants to + //reference the parentName's path. + plugin.load(map.name, localRequire, load, config); + })); + + context.enable(pluginMap, this); + this.pluginMaps[pluginMap.id] = pluginMap; + }, + + enable: function () { + enabledRegistry[this.map.id] = this; + this.enabled = true; + + //Set flag mentioning that the module is enabling, + //so that immediate calls to the defined callbacks + //for dependencies do not trigger inadvertent load + //with the depCount still being zero. + this.enabling = true; + + //Enable each dependency + each(this.depMaps, bind(this, function (depMap, i) { + var id, mod, handler; + + if (typeof depMap === 'string') { + //Dependency needs to be converted to a depMap + //and wired up to this module. + depMap = makeModuleMap(depMap, + (this.map.isDefine ? this.map : this.map.parentMap), + false, + !this.skipMap); + this.depMaps[i] = depMap; + + handler = getOwn(handlers, depMap.id); + + if (handler) { + this.depExports[i] = handler(this); + return; + } + + this.depCount += 1; + + on(depMap, 'defined', bind(this, function (depExports) { + if (this.undefed) { + return; + } + this.defineDep(i, depExports); + this.check(); + })); + + if (this.errback) { + on(depMap, 'error', bind(this, this.errback)); + } else if (this.events.error) { + // No direct errback on this module, but something + // else is listening for errors, so be sure to + // propagate the error correctly. + on(depMap, 'error', bind(this, function(err) { + this.emit('error', err); + })); + } + } + + id = depMap.id; + mod = registry[id]; + + //Skip special modules like 'require', 'exports', 'module' + //Also, don't call enable if it is already enabled, + //important in circular dependency cases. + if (!hasProp(handlers, id) && mod && !mod.enabled) { + context.enable(depMap, this); + } + })); + + //Enable each plugin that is used in + //a dependency + eachProp(this.pluginMaps, bind(this, function (pluginMap) { + var mod = getOwn(registry, pluginMap.id); + if (mod && !mod.enabled) { + context.enable(pluginMap, this); + } + })); + + this.enabling = false; + + this.check(); + }, + + on: function (name, cb) { + var cbs = this.events[name]; + if (!cbs) { + cbs = this.events[name] = []; + } + cbs.push(cb); + }, + + emit: function (name, evt) { + each(this.events[name], function (cb) { + cb(evt); + }); + if (name === 'error') { + //Now that the error handler was triggered, remove + //the listeners, since this broken Module instance + //can stay around for a while in the registry. + delete this.events[name]; + } + } + }; + + function callGetModule(args) { + //Skip modules already defined. + if (!hasProp(defined, args[0])) { + getModule(makeModuleMap(args[0], null, true)).init(args[1], args[2]); + } + } + + function removeListener(node, func, name, ieName) { + //Favor detachEvent because of IE9 + //issue, see attachEvent/addEventListener comment elsewhere + //in this file. + if (node.detachEvent && !isOpera) { + //Probably IE. If not it will throw an error, which will be + //useful to know. + if (ieName) { + node.detachEvent(ieName, func); + } + } else { + node.removeEventListener(name, func, false); + } + } + + /** + * Given an event from a script node, get the requirejs info from it, + * and then removes the event listeners on the node. + * @param {Event} evt + * @returns {Object} + */ + function getScriptData(evt) { + //Using currentTarget instead of target for Firefox 2.0's sake. Not + //all old browsers will be supported, but this one was easy enough + //to support and still makes sense. + var node = evt.currentTarget || evt.srcElement; + + //Remove the listeners once here. + removeListener(node, context.onScriptLoad, 'load', 'onreadystatechange'); + removeListener(node, context.onScriptError, 'error'); + + return { + node: node, + id: node && node.getAttribute('data-requiremodule') + }; + } + + function intakeDefines() { + var args; + + //Any defined modules in the global queue, intake them now. + takeGlobalQueue(); + + //Make sure any remaining defQueue items get properly processed. + while (defQueue.length) { + args = defQueue.shift(); + if (args[0] === null) { + return onError(makeError('mismatch', 'Mismatched anonymous define() module: ' + + args[args.length - 1])); + } else { + //args are id, deps, factory. Should be normalized by the + //define() function. + callGetModule(args); + } + } + context.defQueueMap = {}; + } + + context = { + config: config, + contextName: contextName, + registry: registry, + defined: defined, + urlFetched: urlFetched, + defQueue: defQueue, + defQueueMap: {}, + Module: Module, + makeModuleMap: makeModuleMap, + nextTick: req.nextTick, + onError: onError, + + /** + * Set a configuration for the context. + * @param {Object} cfg config object to integrate. + */ + configure: function (cfg) { + //Make sure the baseUrl ends in a slash. + if (cfg.baseUrl) { + if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') { + cfg.baseUrl += '/'; + } + } + + // Convert old style urlArgs string to a function. + if (typeof cfg.urlArgs === 'string') { + var urlArgs = cfg.urlArgs; + cfg.urlArgs = function(id, url) { + return (url.indexOf('?') === -1 ? '?' : '&') + urlArgs; + }; + } + + //Save off the paths since they require special processing, + //they are additive. + var shim = config.shim, + objs = { + paths: true, + bundles: true, + config: true, + map: true + }; + + eachProp(cfg, function (value, prop) { + if (objs[prop]) { + if (!config[prop]) { + config[prop] = {}; + } + mixin(config[prop], value, true, true); + } else { + config[prop] = value; + } + }); + + //Reverse map the bundles + if (cfg.bundles) { + eachProp(cfg.bundles, function (value, prop) { + each(value, function (v) { + if (v !== prop) { + bundlesMap[v] = prop; + } + }); + }); + } + + //Merge shim + if (cfg.shim) { + eachProp(cfg.shim, function (value, id) { + //Normalize the structure + if (isArray(value)) { + value = { + deps: value + }; + } + if ((value.exports || value.init) && !value.exportsFn) { + value.exportsFn = context.makeShimExports(value); + } + shim[id] = value; + }); + config.shim = shim; + } + + //Adjust packages if necessary. + if (cfg.packages) { + each(cfg.packages, function (pkgObj) { + var location, name; + + pkgObj = typeof pkgObj === 'string' ? {name: pkgObj} : pkgObj; + + name = pkgObj.name; + location = pkgObj.location; + if (location) { + config.paths[name] = pkgObj.location; + } + + //Save pointer to main module ID for pkg name. + //Remove leading dot in main, so main paths are normalized, + //and remove any trailing .js, since different package + //envs have different conventions: some use a module name, + //some use a file name. + config.pkgs[name] = pkgObj.name + '/' + (pkgObj.main || 'main') + .replace(currDirRegExp, '') + .replace(jsSuffixRegExp, ''); + }); + } + + //If there are any "waiting to execute" modules in the registry, + //update the maps for them, since their info, like URLs to load, + //may have changed. + eachProp(registry, function (mod, id) { + //If module already has init called, since it is too + //late to modify them, and ignore unnormalized ones + //since they are transient. + if (!mod.inited && !mod.map.unnormalized) { + mod.map = makeModuleMap(id, null, true); + } + }); + + //If a deps array or a config callback is specified, then call + //require with those args. This is useful when require is defined as a + //config object before require.js is loaded. + if (cfg.deps || cfg.callback) { + context.require(cfg.deps || [], cfg.callback); + } + }, + + makeShimExports: function (value) { + function fn() { + var ret; + if (value.init) { + ret = value.init.apply(global, arguments); + } + return ret || (value.exports && getGlobal(value.exports)); + } + return fn; + }, + + makeRequire: function (relMap, options) { + options = options || {}; + + function localRequire(deps, callback, errback) { + var id, map, requireMod; + + if (options.enableBuildCallback && callback && isFunction(callback)) { + callback.__requireJsBuild = true; + } + + if (typeof deps === 'string') { + if (isFunction(callback)) { + //Invalid call + return onError(makeError('requireargs', 'Invalid require call'), errback); + } + + //If require|exports|module are requested, get the + //value for them from the special handlers. Caveat: + //this only works while module is being defined. + if (relMap && hasProp(handlers, deps)) { + return handlers[deps](registry[relMap.id]); + } + + //Synchronous access to one module. If require.get is + //available (as in the Node adapter), prefer that. + if (req.get) { + return req.get(context, deps, relMap, localRequire); + } + + //Normalize module name, if it contains . or .. + map = makeModuleMap(deps, relMap, false, true); + id = map.id; + + if (!hasProp(defined, id)) { + return onError(makeError('notloaded', 'Module name "' + + id + + '" has not been loaded yet for context: ' + + contextName + + (relMap ? '' : '. Use require([])'))); + } + return defined[id]; + } + + //Grab defines waiting in the global queue. + intakeDefines(); + + //Mark all the dependencies as needing to be loaded. + context.nextTick(function () { + //Some defines could have been added since the + //require call, collect them. + intakeDefines(); + + requireMod = getModule(makeModuleMap(null, relMap)); + + //Store if map config should be applied to this require + //call for dependencies. + requireMod.skipMap = options.skipMap; + + requireMod.init(deps, callback, errback, { + enabled: true + }); + + checkLoaded(); + }); + + return localRequire; + } + + mixin(localRequire, { + isBrowser: isBrowser, + + /** + * Converts a module name + .extension into an URL path. + * *Requires* the use of a module name. It does not support using + * plain URLs like nameToUrl. + */ + toUrl: function (moduleNamePlusExt) { + var ext, + index = moduleNamePlusExt.lastIndexOf('.'), + segment = moduleNamePlusExt.split('/')[0], + isRelative = segment === '.' || segment === '..'; + + //Have a file extension alias, and it is not the + //dots from a relative path. + if (index !== -1 && (!isRelative || index > 1)) { + ext = moduleNamePlusExt.substring(index, moduleNamePlusExt.length); + moduleNamePlusExt = moduleNamePlusExt.substring(0, index); + } + + return context.nameToUrl(normalize(moduleNamePlusExt, + relMap && relMap.id, true), ext, true); + }, + + defined: function (id) { + return hasProp(defined, makeModuleMap(id, relMap, false, true).id); + }, + + specified: function (id) { + id = makeModuleMap(id, relMap, false, true).id; + return hasProp(defined, id) || hasProp(registry, id); + } + }); + + //Only allow undef on top level require calls + if (!relMap) { + localRequire.undef = function (id) { + //Bind any waiting define() calls to this context, + //fix for #408 + takeGlobalQueue(); + + var map = makeModuleMap(id, relMap, true), + mod = getOwn(registry, id); + + mod.undefed = true; + removeScript(id); + + delete defined[id]; + delete urlFetched[map.url]; + delete undefEvents[id]; + + //Clean queued defines too. Go backwards + //in array so that the splices do not + //mess up the iteration. + eachReverse(defQueue, function(args, i) { + if (args[0] === id) { + defQueue.splice(i, 1); + } + }); + delete context.defQueueMap[id]; + + if (mod) { + //Hold on to listeners in case the + //module will be attempted to be reloaded + //using a different config. + if (mod.events.defined) { + undefEvents[id] = mod.events; + } + + cleanRegistry(id); + } + }; + } + + return localRequire; + }, + + /** + * Called to enable a module if it is still in the registry + * awaiting enablement. A second arg, parent, the parent module, + * is passed in for context, when this method is overridden by + * the optimizer. Not shown here to keep code compact. + */ + enable: function (depMap) { + var mod = getOwn(registry, depMap.id); + if (mod) { + getModule(depMap).enable(); + } + }, + + /** + * Internal method used by environment adapters to complete a load event. + * A load event could be a script load or just a load pass from a synchronous + * load call. + * @param {String} moduleName the name of the module to potentially complete. + */ + completeLoad: function (moduleName) { + var found, args, mod, + shim = getOwn(config.shim, moduleName) || {}, + shExports = shim.exports; + + takeGlobalQueue(); + + while (defQueue.length) { + args = defQueue.shift(); + if (args[0] === null) { + args[0] = moduleName; + //If already found an anonymous module and bound it + //to this name, then this is some other anon module + //waiting for its completeLoad to fire. + if (found) { + break; + } + found = true; + } else if (args[0] === moduleName) { + //Found matching define call for this script! + found = true; + } + + callGetModule(args); + } + context.defQueueMap = {}; + + //Do this after the cycle of callGetModule in case the result + //of those calls/init calls changes the registry. + mod = getOwn(registry, moduleName); + + if (!found && !hasProp(defined, moduleName) && mod && !mod.inited) { + if (config.enforceDefine && (!shExports || !getGlobal(shExports))) { + if (hasPathFallback(moduleName)) { + return; + } else { + return onError(makeError('nodefine', + 'No define call for ' + moduleName, + null, + [moduleName])); + } + } else { + //A script that does not call define(), so just simulate + //the call for it. + callGetModule([moduleName, (shim.deps || []), shim.exportsFn]); + } + } + + checkLoaded(); + }, + + /** + * Converts a module name to a file path. Supports cases where + * moduleName may actually be just an URL. + * Note that it **does not** call normalize on the moduleName, + * it is assumed to have already been normalized. This is an + * internal API, not a public one. Use toUrl for the public API. + */ + nameToUrl: function (moduleName, ext, skipExt) { + var paths, syms, i, parentModule, url, + parentPath, bundleId, + pkgMain = getOwn(config.pkgs, moduleName); + + if (pkgMain) { + moduleName = pkgMain; + } + + bundleId = getOwn(bundlesMap, moduleName); + + if (bundleId) { + return context.nameToUrl(bundleId, ext, skipExt); + } + + //If a colon is in the URL, it indicates a protocol is used and it is just + //an URL to a file, or if it starts with a slash, contains a query arg (i.e. ?) + //or ends with .js, then assume the user meant to use an url and not a module id. + //The slash is important for protocol-less URLs as well as full paths. + if (req.jsExtRegExp.test(moduleName)) { + //Just a plain path, not module name lookup, so just return it. + //Add extension if it is included. This is a bit wonky, only non-.js things pass + //an extension, this method probably needs to be reworked. + url = moduleName + (ext || ''); + } else { + //A module that needs to be converted to a path. + paths = config.paths; + + syms = moduleName.split('/'); + //For each module name segment, see if there is a path + //registered for it. Start with most specific name + //and work up from it. + for (i = syms.length; i > 0; i -= 1) { + parentModule = syms.slice(0, i).join('/'); + + parentPath = getOwn(paths, parentModule); + if (parentPath) { + //If an array, it means there are a few choices, + //Choose the one that is desired + if (isArray(parentPath)) { + parentPath = parentPath[0]; + } + syms.splice(0, i, parentPath); + break; + } + } + + //Join the path parts together, then figure out if baseUrl is needed. + url = syms.join('/'); + url += (ext || (/^data\:|^blob\:|\?/.test(url) || skipExt ? '' : '.js')); + url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url; + } + + return config.urlArgs && !/^blob\:/.test(url) ? + url + config.urlArgs(moduleName, url) : url; + }, + + //Delegates to req.load. Broken out as a separate function to + //allow overriding in the optimizer. + load: function (id, url) { + req.load(context, id, url); + }, + + /** + * Executes a module callback function. Broken out as a separate function + * solely to allow the build system to sequence the files in the built + * layer in the right sequence. + * + * @private + */ + execCb: function (name, callback, args, exports) { + return callback.apply(exports, args); + }, + + /** + * callback for script loads, used to check status of loading. + * + * @param {Event} evt the event from the browser for the script + * that was loaded. + */ + onScriptLoad: function (evt) { + //Using currentTarget instead of target for Firefox 2.0's sake. Not + //all old browsers will be supported, but this one was easy enough + //to support and still makes sense. + if (evt.type === 'load' || + (readyRegExp.test((evt.currentTarget || evt.srcElement).readyState))) { + //Reset interactive script so a script node is not held onto for + //to long. + interactiveScript = null; + + //Pull out the name of the module and the context. + var data = getScriptData(evt); + context.completeLoad(data.id); + } + }, + + /** + * Callback for script errors. + */ + onScriptError: function (evt) { + var data = getScriptData(evt); + if (!hasPathFallback(data.id)) { + var parents = []; + eachProp(registry, function(value, key) { + if (key.indexOf('_@r') !== 0) { + each(value.depMaps, function(depMap) { + if (depMap.id === data.id) { + parents.push(key); + return true; + } + }); + } + }); + return onError(makeError('scripterror', 'Script error for "' + data.id + + (parents.length ? + '", needed by: ' + parents.join(', ') : + '"'), evt, [data.id])); + } + } + }; + + context.require = context.makeRequire(); + return context; + } + + /** + * Main entry point. + * + * If the only argument to require is a string, then the module that + * is represented by that string is fetched for the appropriate context. + * + * If the first argument is an array, then it will be treated as an array + * of dependency string names to fetch. An optional function callback can + * be specified to execute when all of those dependencies are available. + * + * Make a local req variable to help Caja compliance (it assumes things + * on a require that are not standardized), and to give a short + * name for minification/local scope use. + */ + req = requirejs = function (deps, callback, errback, optional) { + + //Find the right context, use default + var context, config, + contextName = defContextName; + + // Determine if have config object in the call. + if (!isArray(deps) && typeof deps !== 'string') { + // deps is a config object + config = deps; + if (isArray(callback)) { + // Adjust args if there are dependencies + deps = callback; + callback = errback; + errback = optional; + } else { + deps = []; + } + } + + if (config && config.context) { + contextName = config.context; + } + + context = getOwn(contexts, contextName); + if (!context) { + context = contexts[contextName] = req.s.newContext(contextName); + } + + if (config) { + context.configure(config); + } + + return context.require(deps, callback, errback); + }; + + /** + * Support require.config() to make it easier to cooperate with other + * AMD loaders on globally agreed names. + */ + req.config = function (config) { + return req(config); + }; + + /** + * Execute something after the current tick + * of the event loop. Override for other envs + * that have a better solution than setTimeout. + * @param {Function} fn function to execute later. + */ + req.nextTick = typeof setTimeout !== 'undefined' ? function (fn) { + setTimeout(fn, 4); + } : function (fn) { fn(); }; + + /** + * Export require as a global, but only if it does not already exist. + */ + if (!require) { + require = req; + } + + req.version = version; + + //Used to filter out dependencies that are already paths. + req.jsExtRegExp = /^\/|:|\?|\.js$/; + req.isBrowser = isBrowser; + s = req.s = { + contexts: contexts, + newContext: newContext + }; + + //Create default context. + req({}); + + //Exports some context-sensitive methods on global require. + each([ + 'toUrl', + 'undef', + 'defined', + 'specified' + ], function (prop) { + //Reference from contexts instead of early binding to default context, + //so that during builds, the latest instance of the default context + //with its config gets used. + req[prop] = function () { + var ctx = contexts[defContextName]; + return ctx.require[prop].apply(ctx, arguments); + }; + }); + + if (isBrowser) { + head = s.head = document.getElementsByTagName('head')[0]; + //If BASE tag is in play, using appendChild is a problem for IE6. + //When that browser dies, this can be removed. Details in this jQuery bug: + //http://dev.jquery.com/ticket/2709 + baseElement = document.getElementsByTagName('base')[0]; + if (baseElement) { + head = s.head = baseElement.parentNode; + } + } + + /** + * Any errors that require explicitly generates will be passed to this + * function. Intercept/override it if you want custom error handling. + * @param {Error} err the error object. + */ + req.onError = defaultOnError; + + /** + * Creates the node for the load command. Only used in browser envs. + */ + req.createNode = function (config, moduleName, url) { + var node = config.xhtml ? + document.createElementNS('http://www.w3.org/1999/xhtml', 'html:script') : + document.createElement('script'); + node.type = config.scriptType || 'text/javascript'; + node.charset = 'utf-8'; + node.async = true; + return node; + }; + + /** + * Does the request to load a module for the browser case. + * Make this a separate function to allow other environments + * to override it. + * + * @param {Object} context the require context to find state. + * @param {String} moduleName the name of the module. + * @param {Object} url the URL to the module. + */ + req.load = function (context, moduleName, url) { + var config = (context && context.config) || {}, + node; + if (isBrowser) { + //In the browser so use a script tag + node = req.createNode(config, moduleName, url); + + node.setAttribute('data-requirecontext', context.contextName); + node.setAttribute('data-requiremodule', moduleName); + + //Set up load listener. Test attachEvent first because IE9 has + //a subtle issue in its addEventListener and script onload firings + //that do not match the behavior of all other browsers with + //addEventListener support, which fire the onload event for a + //script right after the script execution. See: + //https://connect.microsoft.com/IE/feedback/details/648057/script-onload-event-is-not-fired-immediately-after-script-execution + //UNFORTUNATELY Opera implements attachEvent but does not follow the script + //script execution mode. + if (node.attachEvent && + //Check if node.attachEvent is artificially added by custom script or + //natively supported by browser + //read https://github.com/requirejs/requirejs/issues/187 + //if we can NOT find [native code] then it must NOT natively supported. + //in IE8, node.attachEvent does not have toString() + //Note the test for "[native code" with no closing brace, see: + //https://github.com/requirejs/requirejs/issues/273 + !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) && + !isOpera) { + //Probably IE. IE (at least 6-8) do not fire + //script onload right after executing the script, so + //we cannot tie the anonymous define call to a name. + //However, IE reports the script as being in 'interactive' + //readyState at the time of the define call. + useInteractive = true; + + node.attachEvent('onreadystatechange', context.onScriptLoad); + //It would be great to add an error handler here to catch + //404s in IE9+. However, onreadystatechange will fire before + //the error handler, so that does not help. If addEventListener + //is used, then IE will fire error before load, but we cannot + //use that pathway given the connect.microsoft.com issue + //mentioned above about not doing the 'script execute, + //then fire the script load event listener before execute + //next script' that other browsers do. + //Best hope: IE10 fixes the issues, + //and then destroys all installs of IE 6-9. + //node.attachEvent('onerror', context.onScriptError); + } else { + node.addEventListener('load', context.onScriptLoad, false); + node.addEventListener('error', context.onScriptError, false); + } + node.src = url; + + //Calling onNodeCreated after all properties on the node have been + //set, but before it is placed in the DOM. + if (config.onNodeCreated) { + config.onNodeCreated(node, config, moduleName, url); + } + + //For some cache cases in IE 6-8, the script executes before the end + //of the appendChild execution, so to tie an anonymous define + //call to the module name (which is stored on the node), hold on + //to a reference to this node, but clear after the DOM insertion. + currentlyAddingScript = node; + if (baseElement) { + head.insertBefore(node, baseElement); + } else { + head.appendChild(node); + } + currentlyAddingScript = null; + + return node; + } else if (isWebWorker) { + try { + //In a web worker, use importScripts. This is not a very + //efficient use of importScripts, importScripts will block until + //its script is downloaded and evaluated. However, if web workers + //are in play, the expectation is that a build has been done so + //that only one script needs to be loaded anyway. This may need + //to be reevaluated if other use cases become common. + + // Post a task to the event loop to work around a bug in WebKit + // where the worker gets garbage-collected after calling + // importScripts(): https://webkit.org/b/153317 + setTimeout(function() {}, 0); + importScripts(url); + + //Account for anonymous modules + context.completeLoad(moduleName); + } catch (e) { + context.onError(makeError('importscripts', + 'importScripts failed for ' + + moduleName + ' at ' + url, + e, + [moduleName])); + } + } + }; + + function getInteractiveScript() { + if (interactiveScript && interactiveScript.readyState === 'interactive') { + return interactiveScript; + } + + eachReverse(scripts(), function (script) { + if (script.readyState === 'interactive') { + return (interactiveScript = script); + } + }); + return interactiveScript; + } + + //Look for a data-main script attribute, which could also adjust the baseUrl. + if (isBrowser && !cfg.skipDataMain) { + //Figure out baseUrl. Get it from the script tag with require.js in it. + eachReverse(scripts(), function (script) { + //Set the 'head' where we can append children by + //using the script's parent. + if (!head) { + head = script.parentNode; + } + + //Look for a data-main attribute to set main script for the page + //to load. If it is there, the path to data main becomes the + //baseUrl, if it is not already set. + dataMain = script.getAttribute('data-main'); + if (dataMain) { + //Preserve dataMain in case it is a path (i.e. contains '?') + mainScript = dataMain; + + //Set final baseUrl if there is not already an explicit one, + //but only do so if the data-main value is not a loader plugin + //module ID. + if (!cfg.baseUrl && mainScript.indexOf('!') === -1) { + //Pull off the directory of data-main for use as the + //baseUrl. + src = mainScript.split('/'); + mainScript = src.pop(); + subPath = src.length ? src.join('/') + '/' : './'; + + cfg.baseUrl = subPath; + } + + //Strip off any trailing .js since mainScript is now + //like a module name. + mainScript = mainScript.replace(jsSuffixRegExp, ''); + + //If mainScript is still a path, fall back to dataMain + if (req.jsExtRegExp.test(mainScript)) { + mainScript = dataMain; + } + + //Put the data-main script in the files to load. + cfg.deps = cfg.deps ? cfg.deps.concat(mainScript) : [mainScript]; + + return true; + } + }); + } + + /** + * The function that handles definitions of modules. Differs from + * require() in that a string for the module should be the first argument, + * and the function to execute after dependencies are loaded should + * return a value to define the module corresponding to the first argument's + * name. + */ + define = function (name, deps, callback) { + var node, context; + + //Allow for anonymous modules + if (typeof name !== 'string') { + //Adjust args appropriately + callback = deps; + deps = name; + name = null; + } + + //This module may not have dependencies + if (!isArray(deps)) { + callback = deps; + deps = null; + } + + //If no name, and callback is a function, then figure out if it a + //CommonJS thing with dependencies. + if (!deps && isFunction(callback)) { + deps = []; + //Remove comments from the callback string, + //look for require calls, and pull them into the dependencies, + //but only if there are function args. + if (callback.length) { + callback + .toString() + .replace(commentRegExp, commentReplace) + .replace(cjsRequireRegExp, function (match, dep) { + deps.push(dep); + }); + + //May be a CommonJS thing even without require calls, but still + //could use exports, and module. Avoid doing exports and module + //work though if it just needs require. + //REQUIRES the function to expect the CommonJS variables in the + //order listed below. + deps = (callback.length === 1 ? ['require'] : ['require', 'exports', 'module']).concat(deps); + } + } + + //If in IE 6-8 and hit an anonymous define() call, do the interactive + //work. + if (useInteractive) { + node = currentlyAddingScript || getInteractiveScript(); + if (node) { + if (!name) { + name = node.getAttribute('data-requiremodule'); + } + context = contexts[node.getAttribute('data-requirecontext')]; + } + } + + //Always save off evaluating the def call until the script onload handler. + //This allows multiple modules to be in a file without prematurely + //tracing dependencies, and allows for anonymous module support, + //where the module name is not known until the script onload event + //occurs. If no context, use the global queue, and get it processed + //in the onscript load callback. + if (context) { + context.defQueue.push([name, deps, callback]); + context.defQueueMap[name] = true; + } else { + globalDefQueue.push([name, deps, callback]); + } + }; + + define.amd = { + jQuery: true + }; + + /** + * Executes the text. Normally just uses eval, but can be modified + * to use a better, environment-specific call. Only used for transpiling + * loader plugins, not for plain JS modules. + * @param {String} text the text to execute/evaluate. + */ + req.exec = function (text) { + /*jslint evil: true */ + return eval(text); + }; + + //Set up with config info. + req(cfg); +}(this, (typeof setTimeout === 'undefined' ? undefined : setTimeout))); diff --git a/app/culture/view/szwjs/certification.html b/app/culture/view/szwjs/certification.html new file mode 100644 index 0000000..3788ae7 --- /dev/null +++ b/app/culture/view/szwjs/certification.html @@ -0,0 +1,454 @@ +{layout name="layout" /} + + +
+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + + +
+
+
+ +
+ +
+
+
+ +
+ {foreach name="stages" id="vo" key="key"} + + {/foreach} +
+
+
+ +
+ {foreach name="industries" id="vo" key="key"} + + {/foreach} +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ {if condition="$profile['individual_investor_verification_status'] eq 1"} + + {else} + + {/if} +
+
+
+
+ +
+
+
+ {include file="public:userinfo" /} +
+
+
+ + + + + + \ No newline at end of file diff --git a/app/culture/view/szwjs/corporate.html b/app/culture/view/szwjs/corporate.html new file mode 100644 index 0000000..5978af6 --- /dev/null +++ b/app/culture/view/szwjs/corporate.html @@ -0,0 +1,220 @@ +{layout name="layout" /} + + +
+
+
+
+
+
企业基本信息
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
融资计划信息(选填)
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ {if condition="$profile['corporate_verification_status'] eq 1"} + + {else} + + {/if} +
+
+
+
+
+
+ {include file="public:userinfo" /} +
+
+
+ + + + + \ No newline at end of file diff --git a/app/culture/view/szwjs/static/css/iconfont/iconfont.css b/app/culture/view/szwjs/static/css/iconfont/iconfont.css new file mode 100644 index 0000000..2959aa1 --- /dev/null +++ b/app/culture/view/szwjs/static/css/iconfont/iconfont.css @@ -0,0 +1,193 @@ +@font-face {font-family: "iconfont_tm"; + src: url('iconfont.eot?t=1563861841586'); /* IE9 */ + src: url('iconfont.eot?t=1563861841586#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'), + url('iconfont.woff?t=1563861841586') format('woff'), + url('iconfont.ttf?t=1563861841586') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1563861841586#iconfont') format('svg'); /* iOS 4.1- */ +} + +.iconfont_tm { + font-family: "iconfont_tm" !important; + /*font-size: 16px;*/ + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.iconweixin:before { + content: "\e601"; +} + +.iconqq:before { + content: "\e602"; +} + +.iconclock:before { + content: "\e603"; +} + +.iconmoney:before { + content: "\e604"; +} + +.iconmultilayer:before { + content: "\e606"; +} + +.icondetails:before { + content: "\e607"; +} + +.icontel:before { + content: "\e608"; +} + +.iconemail:before { + content: "\e609"; +} + +.iconlisting:before { + content: "\e60a"; +} + +.iconarrow_r:before { + content: "\e60b"; +} + +.iconarrow_l:before { + content: "\e60c"; +} + +.iconarrow_t:before { + content: "\e60d"; +} + +.iconarrow_b:before { + content: "\e60e"; +} + +.iconyiduiyi:before { + content: "\e610"; +} + +.iconjiaoyi:before { + content: "\e612"; +} + +.iconhezuojigouzaixianshenqing:before { + content: "\e613"; +} + +.iconguapai:before { + content: "\e614"; +} + +.iconzhaipai:before { + content: "\e615"; +} + +.icondajiangtang:before { + content: "\e616"; +} + +.icontuoguan:before { + content: "\e617"; +} + +.iconluyan:before { + content: "\e618"; +} + +.iconhuiyuan:before { + content: "\e619"; +} + +.icontouzi:before { + content: "\e61a"; +} + +.iconpaimai:before { + content: "\e61b"; +} + +.iconxueyuan:before { + content: "\e61c"; +} + +.iconlist:before { + content: "\e61d"; +} + +.iconjijin:before { + content: "\e61e"; +} + +.iconzichanguanli:before { + content: "\e61f"; +} + +.iconeye:before { + content: "\e620"; +} + +.iconyinhangcunguan:before { + content: "\e621"; +} + +.iconmap:before { + content: "\e622"; +} + +.icondianying:before { + content: "\e623"; +} + +.iconmeitituoguan:before { + content: "\e624"; +} + +.iconyinle:before { + content: "\e625"; +} + +.iconwenhuamingsheng:before { + content: "\e626"; +} + +.iconwenhua:before { + content: "\e627"; +} + +.iconzhishichanquan:before { + content: "\e628"; +} + +.iconhuihua:before { + content: "\e629"; +} + +.iconzhongguo:before { + content: "\e62a"; +} + +.iconsearch:before { + content: "\e62b"; +} + +.iconwjs:before { + content: "\e62c"; +} + +.icondiamond:before { + content: "\e62d"; +} + +.iconboard:before { + content: "\e62e"; +} + +.iconhouse:before { + content: "\e62f"; +} + diff --git a/app/culture/view/szwjs/static/css/iconfont/iconfont.eot b/app/culture/view/szwjs/static/css/iconfont/iconfont.eot new file mode 100644 index 0000000..a8a12a9 Binary files /dev/null and b/app/culture/view/szwjs/static/css/iconfont/iconfont.eot differ diff --git a/app/culture/view/szwjs/static/css/iconfont/iconfont.js b/app/culture/view/szwjs/static/css/iconfont/iconfont.js new file mode 100644 index 0000000..6de3b99 --- /dev/null +++ b/app/culture/view/szwjs/static/css/iconfont/iconfont.js @@ -0,0 +1 @@ +!function(m){var a,l='',c=(a=document.getElementsByTagName("script"))[a.length-1].getAttribute("data-injectcss");if(c&&!m.__iconfont__svg__cssinject__){m.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}!function(a){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(a,0);else{var c=function(){document.removeEventListener("DOMContentLoaded",c,!1),a()};document.addEventListener("DOMContentLoaded",c,!1)}else document.attachEvent&&(h=a,t=m.document,o=!1,(i=function(){try{t.documentElement.doScroll("left")}catch(a){return void setTimeout(i,50)}l()})(),t.onreadystatechange=function(){"complete"==t.readyState&&(t.onreadystatechange=null,l())});function l(){o||(o=!0,h())}var h,t,o,i}(function(){var a,c;(a=document.createElement("div")).innerHTML=l,l=null,(c=a.getElementsByTagName("svg")[0])&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",function(a,c){c.firstChild?function(a,c){c.parentNode.insertBefore(a,c)}(a,c.firstChild):c.appendChild(a)}(c,document.body))})}(window); \ No newline at end of file diff --git a/app/culture/view/szwjs/static/css/iconfont/iconfont.svg b/app/culture/view/szwjs/static/css/iconfont/iconfont.svg new file mode 100644 index 0000000..53db3e8 --- /dev/null +++ b/app/culture/view/szwjs/static/css/iconfont/iconfont.svg @@ -0,0 +1,158 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/culture/view/szwjs/static/css/iconfont/iconfont.ttf b/app/culture/view/szwjs/static/css/iconfont/iconfont.ttf new file mode 100644 index 0000000..620f1b5 Binary files /dev/null and b/app/culture/view/szwjs/static/css/iconfont/iconfont.ttf differ diff --git a/app/culture/view/szwjs/static/css/iconfont/iconfont.woff b/app/culture/view/szwjs/static/css/iconfont/iconfont.woff new file mode 100644 index 0000000..9922ba5 Binary files /dev/null and b/app/culture/view/szwjs/static/css/iconfont/iconfont.woff differ diff --git a/app/culture/view/szwjs/static/css/iconfont/iconfont.woff2 b/app/culture/view/szwjs/static/css/iconfont/iconfont.woff2 new file mode 100644 index 0000000..20e0407 Binary files /dev/null and b/app/culture/view/szwjs/static/css/iconfont/iconfont.woff2 differ diff --git a/app/culture/view/szwjs/static/img/activity/bg.png b/app/culture/view/szwjs/static/img/activity/bg.png new file mode 100644 index 0000000..4f48841 Binary files /dev/null and b/app/culture/view/szwjs/static/img/activity/bg.png differ diff --git a/app/culture/view/szwjs/static/img/activity/more.jpg b/app/culture/view/szwjs/static/img/activity/more.jpg new file mode 100644 index 0000000..d83fc41 Binary files /dev/null and b/app/culture/view/szwjs/static/img/activity/more.jpg differ diff --git a/app/culture/view/szwjs/static/img/activity/sure.png b/app/culture/view/szwjs/static/img/activity/sure.png new file mode 100644 index 0000000..2f035c1 Binary files /dev/null and b/app/culture/view/szwjs/static/img/activity/sure.png differ diff --git a/app/culture/view/szwjs/static/img/ccde.jpg b/app/culture/view/szwjs/static/img/ccde.jpg new file mode 100644 index 0000000..11befdb Binary files /dev/null and b/app/culture/view/szwjs/static/img/ccde.jpg differ diff --git a/app/culture/view/szwjs/static/img/indexhbg.jpg b/app/culture/view/szwjs/static/img/indexhbg.jpg new file mode 100644 index 0000000..4e94a57 Binary files /dev/null and b/app/culture/view/szwjs/static/img/indexhbg.jpg differ diff --git a/app/culture/view/szwjs/static/img/logo.png b/app/culture/view/szwjs/static/img/logo.png new file mode 100644 index 0000000..bccedab Binary files /dev/null and b/app/culture/view/szwjs/static/img/logo.png differ diff --git a/app/culture/view/szwjs/static/img/logo_gray.png b/app/culture/view/szwjs/static/img/logo_gray.png new file mode 100644 index 0000000..2877c3b Binary files /dev/null and b/app/culture/view/szwjs/static/img/logo_gray.png differ diff --git a/app/culture/view/szwjs/static/img/logoold.png b/app/culture/view/szwjs/static/img/logoold.png new file mode 100644 index 0000000..dd2a82f Binary files /dev/null and b/app/culture/view/szwjs/static/img/logoold.png differ diff --git a/app/culture/view/szwjs/static/img/qrcode_jf.jpg b/app/culture/view/szwjs/static/img/qrcode_jf.jpg new file mode 100644 index 0000000..1be8e40 Binary files /dev/null and b/app/culture/view/szwjs/static/img/qrcode_jf.jpg differ diff --git a/app/culture/view/szwjs/static/img/qrcode_wjs.jpg b/app/culture/view/szwjs/static/img/qrcode_wjs.jpg new file mode 100644 index 0000000..9337fbb Binary files /dev/null and b/app/culture/view/szwjs/static/img/qrcode_wjs.jpg differ