adManage.html 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656
  1. <div class="bg-light lter b-b wrapper-md">
  2. <h1 class="m-n font-thin h4">投放广告</h1>
  3. </div>
  4. <div class="wrapper-md" ng-controller="adManageCtrl">
  5. <style>
  6. .condition-row{
  7. background: #eee;
  8. margin: 10px -5px !important;
  9. border: 1px solid #ccc;
  10. padding: 5px !important;
  11. }
  12. </style>
  13. <div class="panel panel-default">
  14. <div class="row wrapper">
  15. <div class="col-sm-4">
  16. <div>
  17. <div class="btn btn-default" ng-click="addAd()"><i class="fa fa-plus-circle"></i> 新增</div>
  18. <div class="btn btn-default" ng-click="editAd()"><i class="fa fa-edit "></i> 修改</div>
  19. <div class="btn btn-default" ng-click="deleteAd()"><i class="fa fa-trash-o"></i> 删除</div>
  20. </div>
  21. </div>
  22. <div class="col-sm-2">
  23. </div>
  24. <div class="col-sm-6">
  25. <div class="col-sm-6 text-right">
  26. <div class="btn-group dropdown" dropdown>
  27. <button class="btn btn-default dropdown-toggle" dropdown-toggle>
  28. <span class="dropdown-label">{{condition.online.label}}</span>
  29. <span class="caret"></span>
  30. </button>
  31. <ul class="dropdown-menu">
  32. <li ng-repeat="item in enum.online" ng-click="event.conditionChange('online',item)">
  33. <a href ng-bind="item.label"></a></li>
  34. </ul>
  35. </div>
  36. <div class="btn-group dropdown" dropdown>
  37. <button class="btn btn-default dropdown-toggle" dropdown-toggle>
  38. <span class="dropdown-label">{{condition.adType.label}}</span>
  39. <span class="caret"></span>
  40. </button>
  41. <ul class="dropdown-menu">
  42. <li ng-repeat="item in enum.adType" ng-click="event.conditionChange('adType',item)">
  43. <a href ng-bind="item.label"></a></li>
  44. </ul>
  45. </div>
  46. </div>
  47. <div class="col-sm-6">
  48. <div class="btn-group input-group">
  49. <input type="text" class=" form-control" ng-model="condition.searchKey"
  50. ng-keydown="$event.keyCode==13&&event.search()"
  51. placeholder="名称、广告词等">
  52. <span class="input-group-btn">
  53. <div class="btn btn-default" ng-click="event.search()"><i class="fa fa-search"></i> 搜索</div>
  54. </span>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. <div class="table-responsive">
  60. <div ui-grid="gridOptions" style="min-height:420px" ui-grid-pagination ui-grid-selection ui-grid-expandable
  61. ui-grid-resize-columns></div>
  62. <div class="grid-mask" ng-if="gridOptionsLoading"><span>正在加载,请稍候...</span></div>
  63. </div>
  64. </div>
  65. <!--禁止enter提交-->
  66. <form name="adForm" id="adPanel" class="form-horizontal form-validation modal fade" role="dialog"
  67. onkeydown="if(event.keyCode==13){return false;}"
  68. style=" width: 1280px;height: 80%">
  69. <div class="panel panel-default">
  70. <div class="panel-heading">
  71. <strong ng-bind="dialogName"></strong>
  72. </div>
  73. <div class="panel-body no-animate">
  74. <accordion close-others="false">
  75. <accordion-group is-open="dialogStatus.openbase">
  76. <accordion-heading>
  77. 基本配置<i class="pull-right fa fa-angle-right"
  78. ng-class="{'fa-angle-down': dialogStatus.openbase, 'fa-angle-right': !dialogStatus.openbase}"></i>
  79. </accordion-heading>
  80. <div class="form-group">
  81. <label class="col-sm-3 control-label">是否开启</label>
  82. <div class="col-sm-3">
  83. <div class="checkbox">
  84. <label class="i-checks">
  85. <input type="checkbox" ng-model="dialogData.online">
  86. <i></i>
  87. </label>
  88. </div>
  89. </div>
  90. </div>
  91. <div class="form-group">
  92. <label class="col-sm-3 control-label">名称<i class="text-danger text-base"> *</i></label>
  93. <div class="col-sm-4">
  94. <input type="text" ng-model="dialogData.name" class="form-control" placeholder="名称"
  95. required>
  96. </div>
  97. </div>
  98. <div class="form-group">
  99. <label class="col-sm-3 control-label">广告场景<i class="text-danger text-base"> *</i></label>
  100. <div class="col-sm-9">
  101. <div class="radio pull-left">
  102. <label class="i-checks">
  103. <input type="radio" name="adType" value="init" required
  104. ng-model="dialogData.adType">
  105. <i></i>
  106. 主页广告
  107. </label>
  108. </div>
  109. <!--<div class="radio pull-left m-l">-->
  110. <!--<label class="i-checks">-->
  111. <!--<input type="radio" name="adType" value="payAfter" required-->
  112. <!--ng-model="dialogData.adType">-->
  113. <!--<i></i>-->
  114. <!--投币后-->
  115. <!--</label>-->
  116. <!--</div>-->
  117. </div>
  118. </div>
  119. <div ng-if="dialogData.adType=='init'">
  120. <div class="form-group">
  121. <label class="col-sm-3 control-label">自动下线</label>
  122. <div class="col-sm-2">
  123. <input type="number" min="0" ng-model="dialogData.offlineFansNumber"
  124. class="form-control"
  125. placeholder="0"
  126. required>
  127. </div>
  128. <div class="col-sm-7 m-t-xs ">
  129. <span class="">吸粉达到指定数目下线,输入0则不下线</span>
  130. </div>
  131. </div>
  132. <div class="form-group">
  133. <label class="col-sm-3 control-label">吸粉号类型<i class="text-danger text-base">
  134. *</i></label>
  135. <div class="col-sm-9">
  136. <div class="radio pull-left">
  137. <label class="i-checks">
  138. <input type="radio" name="fansType" value="person" required
  139. ng-model="dialogData.fansType">
  140. <i></i>
  141. 个人号
  142. </label>
  143. </div>
  144. <div class="radio pull-left m-l">
  145. <label class="i-checks">
  146. <input type="radio" name="fansType" value="official" required
  147. ng-model="dialogData.fansType">
  148. <i></i>
  149. 公众号
  150. </label>
  151. </div>
  152. </div>
  153. </div>
  154. </div>
  155. <div ng-if="dialogData.adType=='payAfter'&&(!dialogData.scriptType)">
  156. <div class="line line-dashed b-b line-lg pull-in"></div>
  157. <div class="form-group">
  158. <label class="col-sm-3 control-label">跳转行为<i class="text-danger text-base">
  159. *</i></label>
  160. <div class="col-sm-9">
  161. <div class="radio pull-left">
  162. <label class="i-checks">
  163. <input type="radio" name="autoRedirect" ng-value="false" required
  164. ng-model="dialogData.configs.autoRedirect">
  165. <i></i>
  166. 点击跳转
  167. </label>
  168. </div>
  169. <div class="radio pull-left m-l">
  170. <label class="i-checks">
  171. <input type="radio" name="autoRedirect" ng-value="true" required
  172. ng-model="dialogData.configs.autoRedirect">
  173. <i></i>
  174. 自动跳转
  175. </label>
  176. </div>
  177. </div>
  178. </div>
  179. <div class="form-group">
  180. <label class="col-sm-3 control-label">广告链接<i class="text-danger text-base"> *</i></label>
  181. <div class="col-sm-9">
  182. <input type="url" ng-model="dialogData.link" class="form-control"
  183. placeholder="http://www.baidu.com" required>
  184. </div>
  185. </div>
  186. </div>
  187. <div ng-if="dialogData.adType=='payAfter'">
  188. <div class="line line-dashed b-b line-lg pull-in"></div>
  189. <div class="form-group">
  190. <label class="col-sm-3 control-label">广告脚本</label>
  191. <div class="col-sm-9">
  192. <div class="radio pull-left ">
  193. <label class="i-checks">
  194. <input type="radio" name="fansType" value="remote"
  195. ng-model="dialogData.scriptType">
  196. <i></i>
  197. 远程脚本路径
  198. </label>
  199. </div>
  200. <div class="radio pull-left m-l">
  201. <label class="i-checks">
  202. <input type="radio" name="fansType" value="inline"
  203. ng-model="dialogData.scriptType">
  204. <i></i>
  205. 代码文本
  206. </label>
  207. </div>
  208. <div class="radio pull-left m-l">
  209. <label class="i-checks">
  210. <input type="radio" name="fansType" value=""
  211. ng-model="dialogData.scriptType">
  212. <i></i>
  213. </label>
  214. </div>
  215. </div>
  216. </div>
  217. <div class="form-group" ng-if="dialogData.scriptType=='remote'">
  218. <label class="col-sm-3 control-label">脚本代码</label>
  219. <div class="col-sm-9">
  220. <input type="url" ng-model="dialogData.script" class="form-control"
  221. placeholder="">
  222. </div>
  223. </div>
  224. <div class="form-group" ng-if="dialogData.scriptType=='inline'">
  225. <label class="col-sm-3 control-label">脚本代码</label>
  226. <div class="col-sm-9">
  227. <textarea ng-model="dialogData.script" style="height: 100px;"
  228. class="form-control" placeholder="代码"></textarea>
  229. </div>
  230. </div>
  231. </div>
  232. <div class="line line-dashed b-b line-lg pull-in"></div>
  233. <div class="form-group">
  234. <label class="col-sm-3 control-label">广告词<i ng-if="dialogData.adType=='init'"
  235. class="text-danger text-base"> *</i></label>
  236. <div class="col-sm-4">
  237. <input type="text" ng-model="dialogData.word" class="form-control" name="word"
  238. placeholder="广告词"
  239. ng-required="dialogData.adType=='init'">
  240. </div>
  241. </div>
  242. <div class="form-group">
  243. <label class="col-sm-3 control-label">图片|素材</label>
  244. <div class="col-sm-5">
  245. <!---文件选择-->
  246. <input type="file" nv-file-select="" id="fileUpload" uploader="uploader"/>
  247. <input type="hidden" name="img" id="fileUploadValue" title="图片路径隐藏域"
  248. class="form-control hide-required-img-input img-input"
  249. ng-model="dialogData.img"/>
  250. <!---上传进度-->
  251. <div class="progress bg-light dker" style="margin-top: 10px;margin-bottom: 10px">
  252. <div class="progress-bar progress-bar-striped bg-info" role="progressbar"
  253. ng-style="{ 'width': uploader.progress + '%' }"></div>
  254. </div>
  255. <!---上传按钮-->
  256. <button type="button" class="btn btn-addon btn-success" ng-click="uploader.uploadAll()"
  257. ng-disabled="!uploader.getNotUploadedItems().length">
  258. <i class="fa fa-arrow-circle-o-up"></i> 上传图片
  259. </button>
  260. </div>
  261. <div class="col-sm-4">
  262. <!---图片预览-->
  263. <img id="previewImg"
  264. ng-src="{{dialogData.img+(dialogData.img?('?t='+dialogData._nowTime):'')}}"
  265. style="max-height: 160px;max-width: 100%">
  266. </div>
  267. </div>
  268. </accordion-group>
  269. <accordion-group is-open="dialogStatus.opentarget" ng-click="ngEvent.openDeviceTarget()">
  270. <accordion-heading>
  271. 投放目标<i class="pull-right fa fa-angle-right"
  272. ng-class="{'fa-angle-down': dialogStatus.opentarget, 'fa-angle-right': !dialogStatus.opentarget}"></i>
  273. </accordion-heading>
  274. <div style="min-height: 600px">
  275. <div class="form-group m-b-xs ">
  276. <label class="col-sm-4 control-label text-left padding-t-0">地址类型</label>
  277. </div>
  278. <div class="form-group form-inline ">
  279. <div class="col-sm-12">
  280. <div class="checkbox m-l m-r-xs"
  281. ng-repeat="item in dialogData.selectAddressType">
  282. <label class="i-checks">
  283. <input type="checkbox"
  284. ng-true-value="true"
  285. ng-false-value="false" ng-model="item.checked"><i></i>
  286. {{item.label}}
  287. </label>
  288. </div>
  289. </div>
  290. </div>
  291. <div class="form-group m-b-xs ">
  292. <label class="col-sm-4 control-label text-left padding-t-0">设备类型</label>
  293. </div>
  294. <div class="form-group form-inline ">
  295. <div class="col-sm-12">
  296. <div class="checkbox m-l m-r-xs"
  297. ng-repeat="item in dialogData.selectDevType">
  298. <label class="i-checks">
  299. <input type="checkbox"
  300. ng-true-value="true"
  301. ng-false-value="false" ng-model="item.checked"><i></i>
  302. {{item.name}}
  303. </label>
  304. </div>
  305. </div>
  306. </div>
  307. <div class="form-group m-b-xs col-sm-12">
  308. <button type="button" class="btn btn-info" ng-click="ngEvent.findDevList()">查询
  309. </button>
  310. </div>
  311. <div class="line line-dashed b-b line-lg pull-in"></div>
  312. <div class="form-group m-b-xs ">
  313. <div class="checkbox m-l m-r-xs">
  314. <label class="i-checks">
  315. <input type="checkbox" ng-change="ngEvent.selectAllDevice()"
  316. ng-true-value="true"
  317. ng-false-value="false"
  318. ng-model="dialogData.selectAllDeviceChecked"><i></i>
  319. 全选
  320. </label>
  321. <label class=" control-label text-left padding-t-0">目标设备(将投放广告给这些选中设备)</label>
  322. </div>
  323. </div>
  324. <div class="form-group ">
  325. <div class="table-responsive">
  326. <div ui-grid="deviceGridOptions" ui-grid-pagination
  327. ui-grid-resize-columns></div>
  328. </div>
  329. </div>
  330. <div class="line line-dashed b-b line-lg pull-in"></div>
  331. <div class="form-group m-b-xs ">
  332. <label class="col-sm-4 control-label text-left ">目标人群性别</label>
  333. </div>
  334. <div class="form-group">
  335. <div class="col-sm-4">
  336. <select class="form-control" ng-model="dialogData.targetSex">
  337. <option value="*">*</option>
  338. <option value="男">男</option>
  339. <option value="女">女</option>
  340. </select>
  341. </div>
  342. </div>
  343. <div class="form-group m-b-xs ">
  344. <label class="col-sm-4 control-label text-left ">手机系统</label>
  345. </div>
  346. <div class="form-group form-inline">
  347. <div class="col-sm-12">
  348. <div class="checkbox m-l m-r-xs"
  349. ng-repeat="item in dialogData.selectPhoneOS">
  350. <label class="i-checks">
  351. <input type="checkbox" value="item.name"
  352. ng-true-value="true"
  353. ng-false-value="false" ng-model="item.checked"><i></i>
  354. {{item.name}}
  355. </label>
  356. </div>
  357. </div>
  358. </div>
  359. <div class="form-group m-b-xs ">
  360. <label class="col-sm-4 control-label text-left ">网关</label>
  361. </div>
  362. <div class="form-group form-inline">
  363. <div class="col-sm-12">
  364. <div class="checkbox m-l m-r-xs"
  365. ng-repeat="item in dialogData.selectGateway">
  366. <label class="i-checks">
  367. <input type="checkbox" value="item.name"
  368. ng-true-value="true"
  369. ng-false-value="false" ng-model="item.checked"><i></i>
  370. {{item.name}}
  371. </label>
  372. </div>
  373. </div>
  374. </div>
  375. </div>
  376. </accordion-group>
  377. <accordion-group is-open="dialogStatus.openptime">
  378. <accordion-heading>
  379. 投放时间<i class="pull-right fa fa-angle-right"
  380. ng-class="{'fa-angle-down': dialogStatus.openptime, 'fa-angle-right': !dialogStatus.openptime}"></i>
  381. </accordion-heading>
  382. <div style="min-height: 400px">
  383. <div class="form-group">
  384. <label class="col-sm-3 control-label">开始时间</label>
  385. <div class="col-sm-4">
  386. <div class="dropdown" dropdown is-open="startTimeOpen">
  387. <a class="dropdown-toggle" data-target="#" href="">
  388. <div class="input-group" dropdown-toggle>
  389. <input type="text" class="form-control" onkeydown="return false"
  390. name="startTime"
  391. ui-validate="'$value==null||$value&&$value<dialogData.endTime'"
  392. ui-validate-watch=" 'dialogData.endTime'"
  393. ng-model="dialogData.startTime"
  394. placeholder="请选择开始时间">
  395. <span class="input-group-addon"><i
  396. class="glyphicon glyphicon-calendar"></i></span>
  397. </div>
  398. </a>
  399. <span ng-show="adForm.startTime.$invalid"
  400. class="text-danger">开始时间必须小于结束时间!</span>
  401. <ul class="dropdown-menu" dropdown-menu>
  402. <datetimepicker on-set-time="timeChange()" class="max"
  403. data-datetimepicker-config="{modelType: 'YYYY-MM-DD HH:mm'}"
  404. data-ng-model="dialogData.startTime"></datetimepicker>
  405. </ul>
  406. </div>
  407. </div>
  408. </div>
  409. <div class="form-group">
  410. <label class="col-sm-3 control-label">结束时间</label>
  411. <div class="col-sm-4">
  412. <div class="dropdown" dropdown is-open="endTimeOpen">
  413. <a class="dropdown-toggle" data-target="#" href="">
  414. <div class="input-group" dropdown-toggle>
  415. <input type="text" class="form-control" onkeydown="return false"
  416. name="endTime"
  417. ui-validate="'$value==null||$value&&$value>dialogData.startTime'"
  418. ui-validate-watch=" 'dialogData.startTime'"
  419. ng-model="dialogData.endTime"
  420. placeholder="请选择结束时间">
  421. <span class="input-group-addon"><i
  422. class="glyphicon glyphicon-calendar"></i></span>
  423. </div>
  424. </a>
  425. <span ng-show="adForm.endTime.$invalid"
  426. class="text-danger">开始时间必须小于结束时间!</span>
  427. <ul class="dropdown-menu" dropdown-menu>
  428. <datetimepicker on-set-time="timeChange()" class="max"
  429. data-datetimepicker-config="{modelType: 'YYYY-MM-DD HH:mm'}"
  430. data-ng-model="dialogData.endTime"></datetimepicker>
  431. </ul>
  432. </div>
  433. </div>
  434. <div class="col-sm-4">
  435. <div class="btn-group dropdown" dropdown>
  436. <input type="button" class="dropdown-toggle form-control v-middle" value="快速选择"
  437. dropdown-toggle>
  438. <ul class="dropdown-menu" id="adTimeRange">
  439. <li ng-click="modelEvent.adQuickTime($event,3)"><a href>未来3天</a></li>
  440. <li ng-click="modelEvent.adQuickTime($event,30)"><a href>未来30天</a></li>
  441. <li ng-click="modelEvent.adQuickTime($event,90)"><a href>未来90天</a></li>
  442. <li ng-click="modelEvent.adQuickTime($event,180)"><a href>未来180天</a></li>
  443. <li ng-click="modelEvent.adQuickTime($event,365)"><a href>未来1年</a></li>
  444. <li ng-click="modelEvent.adQuickTime($event,365*3)"><a href>未来3年</a></li>
  445. <li ng-click="modelEvent.adQuickTime($event,365*10)"><a href>未来10年</a></li>
  446. </ul>
  447. </div>
  448. </div>
  449. </div>
  450. </div>
  451. </accordion-group>
  452. </accordion>
  453. </div>
  454. <footer class="panel-footer text-right bg-light lter">
  455. <button type="submit" class="btn btn-success" ng-click="saveData()">保存
  456. </button>
  457. </footer>
  458. </div>
  459. </form>
  460. <div id="copyLinkPanel" class="form-horizontal form-validation modal fade" role="dialog"
  461. style="width: 480px;min-height: 180px;height: 180px">
  462. <div class="panel panel-default">
  463. <div class="panel-heading text-center">
  464. <strong>复制链接</strong>
  465. </div>
  466. <div class="panel-body">
  467. <div class="form-group">
  468. <div class="col-sm-12">
  469. <input type="text" ng-model="copyLinkData.link" class="form-control" placeholder=""
  470. id="copyLinkInput"
  471. required>
  472. </div>
  473. </div>
  474. </div>
  475. <footer class="panel-footer text-center bg-light lter">
  476. <button id="copyLinkBtn" data-clipboard-target="#copyLinkInput" type="submit" class="btn btn-info"
  477. >复制
  478. </button>
  479. </footer>
  480. </div>
  481. </div>
  482. <div id="chartInfoPanel" class="form-horizontal form-validation modal fade" role="dialog"
  483. style="height:80%;width: 80%;">
  484. <div class="panel panel-default">
  485. <div class="nav-tabs-alt panel-heading">
  486. <ul class="nav nav-tabs ">
  487. <li ng-class="{active:adFansDetailShow=='chart'}">
  488. <a ng-click="modelEvent.adFansDetailShow('chart')"><i class="fa fa-bar-chart-o"></i> 查看统计图</a>
  489. </li>
  490. <li ng-class="{active:adFansDetailShow=='grid'}">
  491. <a ng-click="modelEvent.adFansDetailShow('grid')"><i class="fa fa-list"></i> 查看列表</a>
  492. </li>
  493. </ul>
  494. </div>
  495. <div class="panel-heading" style="height: auto">
  496. <div class="m-l-xs btn-group dropdown" dropdown is-open="modelEvent.startTimeOpen">
  497. <input type="text" class="form-control w-xs" dropdown-toggle
  498. ng-model="chartCondition.startTime"
  499. placeholder="开始日期">
  500. <ul class="dropdown-menu" dropdown-menu>
  501. <datetimepicker
  502. data-datetimepicker-config="{modelType: 'YYYY-MM-DD',startView:'day',minView:'day'}"
  503. on-set-time="modelEvent.timeChange()"
  504. data-ng-model="chartCondition.startTime"></datetimepicker>
  505. </ul>
  506. </div>
  507. <span class="v-middle">至</span>
  508. <div class="btn-group dropdown" dropdown is-open="modelEvent.endTimeOpen">
  509. <input type="text" class=" form-control w-xs" dropdown-toggle
  510. ng-model="chartCondition.endTime"
  511. placeholder="结束日期">
  512. <ul class="dropdown-menu" dropdown-menu>
  513. <datetimepicker
  514. data-datetimepicker-config="{modelType: 'YYYY-MM-DD',startView:'day',minView:'day'}"
  515. on-set-time="modelEvent.timeChange()"
  516. data-ng-model="chartCondition.endTime"></datetimepicker>
  517. </ul>
  518. </div>
  519. <div class="btn-group dropdown" dropdown>
  520. <input type="button" class="dropdown-toggle form-control v-middle" value="快捷日期"
  521. dropdown-toggle>
  522. <ul class="dropdown-menu" id="timeRange">
  523. <li ng-click="modelEvent.quickTime($event,1)"><a href>今天</a></li>
  524. <li ng-click="modelEvent.quickTime($event,7)"><a href>过去7天</a></li>
  525. <li ng-click="modelEvent.quickTime($event,15)"><a href>过去15天</a></li>
  526. <li ng-click="modelEvent.quickTime($event,30)"><a href>最近30天</a></li>
  527. <li ng-click="modelEvent.quickTime($event,60)"><a href>最近60天</a></li>
  528. <li ng-click="modelEvent.quickTime($event,90)"><a href>最近90天</a></li>
  529. </ul>
  530. </div>
  531. <div class="btn btn-default btn-info" ng-click="modelEvent.searchDetail()"><i
  532. class="fa fa-search"></i> 查询
  533. </div>
  534. <!--<div class=" inline" ng-show="adFansDetailShow=='grid'">-->
  535. <!--<div ng-disabled="ngEvent.exportExcelOpen" class="btn btn-default btn-success"-->
  536. <!--ng-click="ngEvent.exportExcel()"><i class="fa fa-file-excel-o"></i>-->
  537. <!--生成报表-->
  538. <!--</div>-->
  539. <!--</div>-->
  540. </div>
  541. <div class="panel-body">
  542. <div id="adChartPanel" style="height: 100%" ng-show="adFansDetailShow=='chart'"></div>
  543. <div class="table-responsive" style="height: 100%" ng-show="adFansDetailShow=='grid'">
  544. <div ui-grid="adFansDetailGridOptions" style="min-height:96%" ui-grid-pagination
  545. ui-grid-resize-columns></div>
  546. </div>
  547. </div>
  548. <footer class="panel-footer text-center bg-light lter">
  549. <button type="button" class="btn btn-info margin-5" ng-click="closeChart()"
  550. style="margin-left: 8px"><i
  551. class="fa fa-close"></i> 关闭
  552. </button>
  553. </footer>
  554. </div>
  555. </div>
  556. <div id="QRCodePanel" class="form-horizontal form-validation modal fade" role="dialog"
  557. style=" width: 360px;min-height: 388px;height: 388px">
  558. <div class="panel panel-default">
  559. <div class="panel-heading text-center">
  560. <strong ng-if="!currentWxIsLogin">扫码登录</strong>
  561. <strong ng-if="currentWxIsLogin" class="text-success">{{currentWxUserName}}已登录</strong>
  562. </div>
  563. <div class="panel-body">
  564. <div class="form-group text-center">
  565. <img id="qrCodePreviewImg"
  566. style="z-index: 9;position:relative;box-shadow: 0 0 4px #ccc;background: #fff"
  567. width="200"
  568. height="230"/></div>
  569. <div class="text-center">
  570. <a href="javascript:void(0)" ng-if="currentWxTimeout" ng-click="refreshQRCode()"
  571. class="text-danger">已超时,点此处刷新二维码</a>
  572. </div>
  573. </div>
  574. <footer class="panel-footer text-center bg-light lter">
  575. <button type="button" class="btn btn-info margin-5" ng-click="closeQRCode()" style="margin-left: 8px"><i
  576. class="fa fa-close"></i> 关闭
  577. </button>
  578. </footer>
  579. </div>
  580. </div>
  581. </div>