agentsManage.html 50 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073
  1. <div class="bg-light lter b-b wrapper-md">
  2. <h1 class="m-n font-thin h3">代理商管理</h1>
  3. </div>
  4. <div class="wrapper-md" ng-controller="agentsManageCtrl">
  5. <div class="panel panel-default">
  6. <div class="row wrapper">
  7. <div class="col-sm-4">
  8. <div class="btn btn-default" ng-click="editAgents()"><i class="fa fa-edit"></i> 编辑</div>
  9. <div class="btn btn-default" ng-click="editPassword()"><i class="fa fa-key "></i> 修改密码</div>
  10. <div class="btn btn-default" ng-click="unfreeze()"><i class="fa fa-unlock "></i> 解除密码限制</div>
  11. <div class="btn-group dropdown" dropdown>
  12. <button class="btn btn-default dropdown-toggle" dropdown-toggle>
  13. <span class="dropdown-label fa fa-cog"> 配置</span>
  14. <span class="caret"></span>
  15. </button>
  16. <ul class="dropdown-menu">
  17. <li ng-click="editAdShow()">
  18. <a href><i class="fa fa-bullhorn text-danger-dk"> </i> 广告</a></li>
  19. <li ng-click="editCardShow()">
  20. <a href><i class="fa fa-credit-card text-info-dk"> </i> 流量卡</a></li>
  21. <li ng-click="editFeature()">
  22. <a href><i class="fa fa-cubes text-danger-dk"> </i> 配置特性</a></li>
  23. <li ng-click="editDeviceType()">
  24. <a href><i class="fa fa-paw text-info-dk"> </i> 配置设备类型</a></li>
  25. <li class="divider"></li>
  26. <li ng-click="openLinkPanel()">
  27. <a href><i class="fa fa-link text-info-dk"> </i> 界面链接入口</a></li>
  28. <li class="divider"></li>
  29. <li ng-click="editWechat()">
  30. <a href><i class="fa fa-weixin c-wechat"> </i> 消息公众号</a></li>
  31. <li class="divider"></li>
  32. <li ng-click="cashPoolWechat()">
  33. <a href><i class="iconfont icon-wechat c-wechat"></i> 微信资金池</a></li>
  34. <li ng-click="cashPoolAlipay()">
  35. <a href><i class="iconfont icon-alipay c-alipay"></i> 支付宝资金池</a></li>
  36. <li class="divider"></li>
  37. <li ng-click="moniConfig()">
  38. <a href><i class="fa fa-weixin text-danger-dk"></i> 监督号</a></li>
  39. <li ng-click="moniPointConfig()">
  40. <a href><i class="glyphicon glyphicon-qrcode text-success-dk"></i> 监督号广告位置</a></li>
  41. <li ng-click="forceFollowGzh()">
  42. <a href><i class="fa fa-weixin text-danger-dk"> </i> 强制关注公众号</a></li>
  43. <li ng-click="editSupporter()">
  44. <a href><i class="iconfont icon-service text-info-dk"> </i> 客服接管</a></li>
  45. <li class="divider"></li>
  46. <li ng-click="setDisclaimer()">
  47. <a href><i class="fa fa-file-text text-danger-dk"></i> 用户协议</a></li>
  48. </ul>
  49. </div>
  50. </div>
  51. <div class="col-sm-8 form-inline text-right">
  52. <!--强制关注查询-->
  53. <div class="btn-group dropdown" dropdown>
  54. <button class="btn btn-default dropdown-toggle" dropdown-toggle>
  55. <span class="dropdown-label">{{condition.forceFollowGzh.label}}</span>
  56. <span class="caret"></span>
  57. </button>
  58. <ul class="dropdown-menu">
  59. <li ng-repeat="item in enum.forceFollowGzh"
  60. ng-click="event.statusChange('forceFollowGzh',item)">
  61. <a href ng-bind="item.label"></a></li>
  62. </ul>
  63. </div>
  64. <div class="btn-group dropdown" dropdown>
  65. <button class="btn btn-default dropdown-toggle" dropdown-toggle>
  66. <span class="dropdown-label">{{condition.forceFollowGzhForDealer.label}}</span>
  67. <span class="caret"></span>
  68. </button>
  69. <ul class="dropdown-menu">
  70. <li ng-repeat="item in enum.forceFollowGzhForDealer"
  71. ng-click="event.statusChange('forceFollowGzhForDealer',item)">
  72. <a href ng-bind="item.label"></a></li>
  73. </ul>
  74. </div>
  75. <!--广告查询-->
  76. <div class="btn-group dropdown" dropdown>
  77. <button class="btn btn-default dropdown-toggle" dropdown-toggle>
  78. <span class="dropdown-label">{{condition.adShow.label}}</span>
  79. <span class="caret"></span>
  80. </button>
  81. <ul class="dropdown-menu">
  82. <li ng-repeat="item in enum.adShow" ng-click="event.statusChange('adShow',item)">
  83. <a href ng-bind="item.label"></a></li>
  84. </ul>
  85. </div>
  86. <div class="input-group ">
  87. <ui-select ng-model="condition.manager" theme="bootstrap" class=" inline v-middle"
  88. ng-keyup="event.managerInit($event)">
  89. <ui-select-match placeholder="">{{$select.selected.nickname}}
  90. </ui-select-match>
  91. <ui-select-choices repeat="item in condition.managerList">
  92. <div ng-bind-html="item.nickname | highlight: $select.search"></div>
  93. <small ng-bind-html="item.username | highlight: $select.search"></small>
  94. </ui-select-choices>
  95. </ui-select>
  96. <span class="input-group-btn">
  97. <button ng-click="condition.manager = condition.managerDefault;" class="btn btn-default">
  98. <span class="glyphicon glyphicon-trash"></span>
  99. </button>
  100. </span>
  101. </div>
  102. <div class="input-group ">
  103. <input type="text" class=" form-control" ng-model="condition.searchKey"
  104. ng-keydown="$event.keyCode==13&&event.search()"
  105. placeholder="代理商名称、联系方式、详情等">
  106. <span class="input-group-btn">
  107. <div class="btn btn-default" ng-click="event.search()"><i class="fa fa-search"></i> 搜索</div>
  108. </span>
  109. </div>
  110. </div>
  111. </div>
  112. <div class="table-responsive">
  113. <div ui-grid="gridOptions" style="min-height:620px" ui-grid-pagination ui-grid-selection></div>
  114. <div class="grid-mask" ng-if="gridOptionsLoading"><span>正在加载,请稍候...</span></div>
  115. </div>
  116. </div>
  117. <div id="copyLinkPanel" class="form-horizontal form-validation modal fade" role="dialog"
  118. style="width: 960px;min-height: 180px;height: 640px">
  119. <div class="panel panel-default">
  120. <div class="panel-heading text-center">
  121. <strong>复制链接</strong>
  122. </div>
  123. <div class="panel-body">
  124. <div class="form-group">
  125. <label class="col-sm-3 control-label">经销商入口 <i class="fa fa-users"></i></label>
  126. <div class="col-sm-6">
  127. <input type="text" ng-model="copyLinkData.link1" class="form-control" placeholder=""
  128. id="copyLinkInput1"
  129. required>
  130. </div>
  131. <div class="col-sm-3">
  132. <button data-clipboard-target="#copyLinkInput1"
  133. class="copyLinkBtn btn btn-info">复制
  134. </button>
  135. </div>
  136. </div>
  137. <div class="form-group">
  138. <label class="col-sm-3 control-label">用户个人中心 <i class="fa fa-user"></i></label>
  139. <div class="col-sm-6">
  140. <input type="text" ng-model="copyLinkData.link2" class="form-control" placeholder=""
  141. id="copyLinkInput2"
  142. required>
  143. </div>
  144. <div class="col-sm-3">
  145. <button data-clipboard-target="#copyLinkInput2"
  146. class="copyLinkBtn btn btn-info">复制
  147. </button>
  148. </div>
  149. </div>
  150. <div class="form-group">
  151. <label class="col-sm-3 control-label">用户地图 <i class="iconfont icon-ditu"></i></label>
  152. <div class="col-sm-6">
  153. <input type="text" ng-model="copyLinkData.link3" class="form-control" placeholder=""
  154. id="copyLinkInput3"
  155. required>
  156. </div>
  157. <div class="col-sm-3">
  158. <button data-clipboard-target="#copyLinkInput3"
  159. class="copyLinkBtn btn btn-info">复制
  160. </button>
  161. </div>
  162. </div>
  163. <div class="form-group">
  164. <label class="col-sm-3 control-label">用户扫码 <i class="fa fa-qrcode"></i></label>
  165. <div class="col-sm-6">
  166. <input type="text" ng-model="copyLinkData.link4" class="form-control" placeholder=""
  167. id="copyLinkInput4"
  168. required>
  169. </div>
  170. <div class="col-sm-3">
  171. <button data-clipboard-target="#copyLinkInput4"
  172. class="copyLinkBtn btn btn-info">复制
  173. </button>
  174. </div>
  175. </div>
  176. </div>
  177. <footer class="panel-footer text-center bg-light lter">
  178. <button type="button" class="btn btn-info margin-5" ng-click="closeCopyLinkPanel()"
  179. style="margin-left: 8px"><i
  180. class="fa fa-close"></i> 关闭
  181. </button>
  182. </footer>
  183. </div>
  184. </div>
  185. <div id="detailInfoPanel" class="form-horizontal form-validation modal fade" role="dialog"
  186. style="min-height: 300px;height: 300px">
  187. <div class="panel panel-default">
  188. <div class="panel-heading">
  189. <strong>{{ infoDetail.title }}</strong>
  190. </div>
  191. <div class="panel-body">
  192. <div class="form-group">
  193. <div class="col-sm-12">
  194. <pre>{{ infoDetail.content | json }}</pre>
  195. </div>
  196. </div>
  197. </div>
  198. <footer class="panel-footer text-center bg-light lter">
  199. <button type="button" class="btn btn-info margin-5" ng-click="closeDetailInfoPanel()"
  200. style="margin-left: 8px"><i
  201. class="fa fa-close"></i> 关闭
  202. </button>
  203. </footer>
  204. </div>
  205. </div>
  206. <form name="featureForm" id="featureForm" class="form-horizontal form-validation modal fade" role="dialog"
  207. style=" width: 860px;height: 480px">
  208. <div class="panel panel-default">
  209. <div class="panel-heading">
  210. <strong>特性配置</strong>
  211. </div>
  212. <div class="panel-body">
  213. <div class="form-group">
  214. <label class="col-sm-2 control-label">通用特性:</label>
  215. <div class="col-sm-10">
  216. <div class="pull-left m-r-sm" ng-repeat="item in dialogData.featureList ">
  217. <div class="checkbox">
  218. <label class="i-checks">
  219. <input type="checkbox" value="{{item.value}}" ng-model="item.value">
  220. <i></i>
  221. </label>
  222. {{item.name}}
  223. </div>
  224. </div>
  225. </div>
  226. </div>
  227. <div class="form-group">
  228. <label class="col-sm-2 control-label">特殊特性:</label>
  229. <div class="col-sm-5">
  230. <input type="text" ng-model="dialogData.specialFeature"
  231. class="form-control" placeholder="请填入特性标记">
  232. </div>
  233. </div>
  234. </div>
  235. <footer class="panel-footer text-right bg-light lter">
  236. <button type="submit" class="btn btn-success" ng-click="saveFeature()">保存
  237. </button>
  238. </footer>
  239. </div>
  240. </form>
  241. <form name="editAdForm" id="editAdForm" class="form-horizontal form-validation modal fade" role="dialog"
  242. style=" width: 480px;height:280px;min-height: 280px">
  243. <div class="panel panel-default">
  244. <div class="panel-heading">
  245. <strong>配置广告</strong>
  246. </div>
  247. <div class="panel-body">
  248. <div class="form-group">
  249. <label class="col-sm-2 control-label">开关:</label>
  250. <div class="col-sm-10">
  251. <div class="radio pull-left">
  252. <label class="i-checks">
  253. <input type="radio" name="adShow" required ng-value="true"
  254. ng-model="dialogData.adShow">
  255. <i></i>
  256. 开启
  257. </label>
  258. </div>
  259. <div class="radio pull-left m-l">
  260. <label class="i-checks">
  261. <input type="radio" name="adShow" required ng-value="false"
  262. ng-model="dialogData.adShow">
  263. <i></i>
  264. 关闭
  265. </label>
  266. </div>
  267. </div>
  268. </div>
  269. </div>
  270. <footer class="panel-footer text-right bg-light lter">
  271. <button type="submit" class="btn btn-success" ng-click="saveAdEdit()">保存
  272. </button>
  273. </footer>
  274. </div>
  275. </form>
  276. <form name="editCardForm" id="editCardForm" class="form-horizontal form-validation modal fade" role="dialog"
  277. style=" width: 480px;height:280px;min-height: 280px">
  278. <div class="panel panel-default">
  279. <div class="panel-heading">
  280. <strong>配置流量卡</strong>
  281. </div>
  282. <div class="panel-body">
  283. <div class="form-group">
  284. <label class="col-sm-3 control-label">年费成本:</label>
  285. <div class="col-sm-6">
  286. <input type="number" step="0.01" ng-model="dialogData.cost" min="0" required
  287. class="form-control" placeholder="流量卡年费成本">
  288. </div>
  289. </div>
  290. </div>
  291. <footer class="panel-footer text-right bg-light lter">
  292. <button type="submit" class="btn btn-success" ng-click="saveCardEdit()">保存
  293. </button>
  294. </footer>
  295. </div>
  296. </form>
  297. <form name="agentsForm" id="agentsForm" class="form-horizontal form-validation modal fade" role="dialog"
  298. style=" width: 60%;height: 400px">
  299. <div class="panel panel-default">
  300. <div class="panel-heading">
  301. <strong>编辑</strong>
  302. </div>
  303. <div class="panel-body">
  304. <div class="form-group">
  305. <label class="col-sm-3 control-label">电话</label>
  306. <div class="col-sm-3">
  307. <input type="tel" ng-pattern="/^[1][3456789]\d{9}$/" pattern="^[1][3456789]\d{9}$"
  308. ng-maxlength="11" maxlength="11"
  309. ng-model="dialogData.username"
  310. class="form-control" placeholder="电话" required>
  311. </div>
  312. </div>
  313. <div class="form-group">
  314. <label class="col-sm-3 control-label">允许修改资金池</label>
  315. <div class="col-sm-3">
  316. <div class="pull-left m-r-sm">
  317. <div class="checkbox">
  318. <label class="i-checks">
  319. <input type="checkbox" ng-model="dialogData.isChangingPaymentGateway">
  320. <i></i>
  321. </label>
  322. </div>
  323. </div>
  324. </div>
  325. </div>
  326. <div class="form-group">
  327. <label class="col-sm-3 control-label">最大套餐金额</label>
  328. <div class="col-sm-3">
  329. <input type="tel"
  330. ng-model="dialogData.maxPayLimit"
  331. class="form-control" placeholder="最大套餐金额" required>
  332. </div>
  333. </div>
  334. </div>
  335. <footer class="panel-footer text-right bg-light lter">
  336. <button type="submit" class="btn btn-success" ng-click="saveAgents()">保存
  337. </button>
  338. </footer>
  339. </div>
  340. </form>
  341. <!--微信消息公众号配置-->
  342. <form name="wechatForm" id="wechatForm" class="form-horizontal form-validation modal fade"
  343. role="dialog"
  344. data-backdrop="static"
  345. style=" width: 100%;height: 100%;max-width: 1024px;max-height: 720px;">
  346. <div class="panel panel-default">
  347. <div class="modal-header">
  348. <i class="fa fa-wechat c-wechat"></i> <strong> 微信消息公众号配置</strong>
  349. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  350. </div>
  351. <div class="panel-body">
  352. <div style="background: rgba(39, 194, 76,.2);padding-bottom: 1px">
  353. <div class="form-group">
  354. <label class="col-sm-2 control-label" style="font-weight: bold;">经销商消息公众号</label>
  355. <div class="col-sm-3">
  356. <div class="checkbox">
  357. <label class="i-checks">
  358. <input type="checkbox" ng-model="dialogData.customizedDealerGzhAllowable">
  359. <i></i>
  360. </label>
  361. </div>
  362. </div>
  363. </div>
  364. <div ng-class="{'noClick fadeNode':!dialogData.customizedDealerGzhAllowable}">
  365. <div class="form-group">
  366. <label class="col-sm-2 control-label">APP ID</label>
  367. <div class="col-sm-6">
  368. <input type="text" ng-model="dialogData.dealer.appid" class="form-control"
  369. placeholder=""
  370. required>
  371. </div>
  372. </div>
  373. <div class="form-group">
  374. <label class="col-sm-2 control-label">公众号名称</label>
  375. <div class="col-sm-6">
  376. <input type="text" ng-model="dialogData.dealer.name" class="form-control"
  377. placeholder=""
  378. required>
  379. </div>
  380. </div>
  381. <div class="form-group">
  382. <label class="col-sm-2 control-label">公司名称</label>
  383. <div class="col-sm-6">
  384. <input type="text" ng-model="dialogData.dealer.companyName" class="form-control"
  385. placeholder=""
  386. required>
  387. </div>
  388. </div>
  389. <div class="form-group">
  390. <label class="col-sm-2 control-label">AppSecret</label>
  391. <div class="col-sm-6">
  392. <input type="text" ng-model="dialogData.dealer.secret" class="form-control"
  393. placeholder=""
  394. required>
  395. </div>
  396. </div>
  397. <div class="form-group">
  398. <label class="col-sm-2 control-label">消息模板</label>
  399. <div class="col-sm-6">
  400. <div class="form-group" ng-repeat="item in dialogData.dealer.templateIdMap">
  401. <div class="col-sm-12">
  402. <span>{{item.name}}</span>
  403. <input type="text" ng-model="item.value" class="form-control" placeholder=""
  404. >
  405. </div>
  406. </div>
  407. </div>
  408. </div>
  409. </div>
  410. </div>
  411. <div class="line line-dashed b-b line-lg pull-in"></div>
  412. <div style="background: rgba(39, 194, 76,.2);padding-bottom: 1px">
  413. <div class="form-group">
  414. <label class="col-sm-2 control-label" style="font-weight: bold;">经销商订阅通知公众号</label>
  415. <div class="col-sm-3">
  416. <div class="checkbox">
  417. <label class="i-checks">
  418. <input type="checkbox" ng-model="dialogData.customizedDealerSubGzhAllowable">
  419. <i></i>
  420. </label>
  421. </div>
  422. </div>
  423. </div>
  424. <div ng-class="{'noClick fadeNode':!dialogData.customizedDealerSubGzhAllowable}">
  425. <div class="form-group">
  426. <label class="col-sm-2 control-label">APP ID</label>
  427. <div class="col-sm-6">
  428. <input type="text" ng-model="dialogData.dealer_sub.appid" class="form-control"
  429. placeholder=""
  430. required>
  431. </div>
  432. </div>
  433. <div class="form-group">
  434. <label class="col-sm-2 control-label">公众号名称</label>
  435. <div class="col-sm-6">
  436. <input type="text" ng-model="dialogData.dealer_sub.name" class="form-control"
  437. placeholder=""
  438. required>
  439. </div>
  440. </div>
  441. <div class="form-group">
  442. <label class="col-sm-2 control-label">公司名称</label>
  443. <div class="col-sm-6">
  444. <input type="text" ng-model="dialogData.dealer_sub.companyName" class="form-control"
  445. placeholder=""
  446. required>
  447. </div>
  448. </div>
  449. <div class="form-group">
  450. <label class="col-sm-2 control-label">AppSecret</label>
  451. <div class="col-sm-6">
  452. <input type="text" ng-model="dialogData.dealer_sub.secret" class="form-control"
  453. placeholder=""
  454. required>
  455. </div>
  456. </div>
  457. <div class="form-group">
  458. <label class="col-sm-2 control-label">消息模板</label>
  459. <div class="col-sm-6">
  460. <div class="form-group" ng-repeat="item in dialogData.dealer_sub.templateIdMap">
  461. <div class="col-sm-12">
  462. <span>{{item.name}}</span>
  463. <input type="text" ng-model="item.value" class="form-control" placeholder=""
  464. >
  465. </div>
  466. </div>
  467. </div>
  468. </div>
  469. </div>
  470. </div>
  471. <div class="line line-dashed b-b line-lg pull-in"></div>
  472. <div style="background: rgba(240, 80, 80,.2);padding-bottom: 1px">
  473. <div class="form-group">
  474. <label class="col-sm-2 control-label" style="font-weight: bold;">用户消息公众号</label>
  475. <div class="col-sm-3">
  476. <div class="checkbox">
  477. <label class="i-checks">
  478. <input type="checkbox" ng-model="dialogData.customizedUserGzhAllowable">
  479. <i></i>
  480. </label>
  481. </div>
  482. </div>
  483. </div>
  484. <div ng-class="{'noClick fadeNode':!dialogData.customizedUserGzhAllowable}">
  485. <div class="form-group">
  486. <label class="col-sm-2 control-label">APP ID</label>
  487. <div class="col-sm-6">
  488. <input type="text" ng-model="dialogData.user.appid" class="form-control"
  489. placeholder=""
  490. required>
  491. </div>
  492. </div>
  493. <div class="form-group">
  494. <label class="col-sm-2 control-label">公众号名称</label>
  495. <div class="col-sm-6">
  496. <input type="text" ng-model="dialogData.user.name" class="form-control"
  497. placeholder=""
  498. required>
  499. </div>
  500. </div>
  501. <div class="form-group">
  502. <label class="col-sm-2 control-label">公司名称</label>
  503. <div class="col-sm-6">
  504. <input type="text" ng-model="dialogData.user.companyName" class="form-control"
  505. placeholder=""
  506. required>
  507. </div>
  508. </div>
  509. <div class="form-group">
  510. <label class="col-sm-2 control-label">AppSecret</label>
  511. <div class="col-sm-6">
  512. <input type="text" ng-model="dialogData.user.secret" class="form-control"
  513. placeholder=""
  514. required>
  515. </div>
  516. </div>
  517. <div class="form-group">
  518. <label class="col-sm-2 control-label">消息模板</label>
  519. <div class="col-sm-6">
  520. <div class="form-group" ng-repeat="item in dialogData.user.templateIdMap">
  521. <div class="col-sm-12">
  522. <span>{{item.name}}</span>
  523. <input type="text" ng-model="item.value" class="form-control" placeholder=""
  524. >
  525. </div>
  526. </div>
  527. </div>
  528. </div>
  529. </div>
  530. </div>
  531. <div class="line line-dashed b-b line-lg pull-in"></div>
  532. <div style="background: rgba(240, 80, 80,.2);padding-bottom: 1px">
  533. <div class="form-group">
  534. <label class="col-sm-2 control-label" style="font-weight: bold;">用户订阅通知公众号</label>
  535. <div class="col-sm-3">
  536. <div class="checkbox">
  537. <label class="i-checks">
  538. <input type="checkbox" ng-model="dialogData.customizedUserSubGzhAllowable">
  539. <i></i>
  540. </label>
  541. </div>
  542. </div>
  543. </div>
  544. <div ng-class="{'noClick fadeNode':!dialogData.customizedUserSubGzhAllowable}">
  545. <div class="form-group">
  546. <label class="col-sm-2 control-label">APP ID</label>
  547. <div class="col-sm-6">
  548. <input type="text" ng-model="dialogData.user_sub.appid" class="form-control"
  549. placeholder=""
  550. required>
  551. </div>
  552. </div>
  553. <div class="form-group">
  554. <label class="col-sm-2 control-label">公众号名称</label>
  555. <div class="col-sm-6">
  556. <input type="text" ng-model="dialogData.user_sub.name" class="form-control"
  557. placeholder=""
  558. required>
  559. </div>
  560. </div>
  561. <div class="form-group">
  562. <label class="col-sm-2 control-label">公司名称</label>
  563. <div class="col-sm-6">
  564. <input type="text" ng-model="dialogData.user_sub.companyName" class="form-control"
  565. placeholder=""
  566. required>
  567. </div>
  568. </div>
  569. <div class="form-group">
  570. <label class="col-sm-2 control-label">AppSecret</label>
  571. <div class="col-sm-6">
  572. <input type="text" ng-model="dialogData.user_sub.secret" class="form-control"
  573. placeholder=""
  574. required>
  575. </div>
  576. </div>
  577. <div class="form-group">
  578. <label class="col-sm-2 control-label">消息模板</label>
  579. <div class="col-sm-6">
  580. <div class="form-group" ng-repeat="item in dialogData.user_sub.templateIdMap">
  581. <div class="col-sm-12">
  582. <span>{{item.name}}</span>
  583. <input type="text" ng-model="item.value" class="form-control" placeholder=""
  584. >
  585. </div>
  586. </div>
  587. </div>
  588. </div>
  589. </div>
  590. </div>
  591. </div>
  592. <footer class="panel-footer text-right bg-light lter">
  593. <button type="submit" class="btn btn-success m-l-sm " ng-click="saveWechat()">保存
  594. </button>
  595. </footer>
  596. </div>
  597. </form>
  598. <!--微信资金池配置-->
  599. <form name="cashPoolWechatForm" id="cashPoolWechatForm" class="form-horizontal form-validation modal fade"
  600. role="dialog"
  601. data-backdrop="static"
  602. style=" width: 100%;height: 100%;max-width: 1024px;max-height: 720px;">
  603. <div class="panel panel-default">
  604. <div class="modal-header">
  605. <i class="iconfont icon-wechat c-wechat"></i> <strong> 微信资金池</strong>
  606. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  607. </div>
  608. <div class="panel-body" style="background: rgba(7, 193, 96,.2);padding-bottom: 1px">
  609. <div class="form-group">
  610. <label class="col-sm-2 control-label">是否开启</label>
  611. <div class="col-sm-3">
  612. <div class="checkbox">
  613. <label class="i-checks">
  614. <input type="checkbox" ng-model="dialogData.customizedWechatCashflowAllowable" disabled>
  615. <i></i>
  616. </label>
  617. </div>
  618. </div>
  619. </div>
  620. <!--必须使用 ng-if, 否则不勾选时,无法保存,因为表单校验无法通过-->
  621. <div ng-class="{'noClick fadeNode':!dialogData.customizedWechatCashflowAllowable}"
  622. ng-if="dialogData.customizedWechatCashflowAllowable">
  623. <div class="form-group">
  624. <label class="col-sm-2 control-label">手动提现</label>
  625. <div class="col-sm-3">
  626. <div class="checkbox">
  627. <label class="i-checks">
  628. <input type="checkbox" ng-model="dialogData.wechatPayApp.manual_withdraw" disabled>
  629. <i></i>
  630. </label>
  631. </div>
  632. </div>
  633. </div>
  634. <div class="form-group">
  635. <label class="col-sm-2 control-label">商户ID</label>
  636. <div class="col-sm-6">
  637. <input type="text" ng-model="dialogData.wechatPayApp.mchid" class="form-control"
  638. placeholder="" required readonly>
  639. </div>
  640. </div>
  641. <div class="form-group">
  642. <label class="col-sm-2 control-label">APP ID</label>
  643. <div class="col-sm-6">
  644. <input type="text" ng-model="dialogData.wechatPayApp.appid" class="form-control"
  645. placeholder="" required readonly>
  646. </div>
  647. </div>
  648. <div class="form-group">
  649. <label class="col-sm-2 control-label">公司名称</label>
  650. <div class="col-sm-6">
  651. <input type="text" ng-model="dialogData.wechatPayApp.companyName" class="form-control"
  652. placeholder="" required readonly>
  653. </div>
  654. </div>
  655. <div class="form-group">
  656. <label class="col-sm-2 control-label">应用名称</label>
  657. <div class="col-sm-6">
  658. <input type="text" ng-model="dialogData.wechatPayApp.appName" class="form-control"
  659. placeholder="" required readonly>
  660. </div>
  661. </div>
  662. </div>
  663. </div>
  664. </div>
  665. </form>
  666. <!--支付宝资金池配置-->
  667. <form name="cashPoolAlipayForm" id="cashPoolAlipayForm" class="form-horizontal form-validation modal fade"
  668. role="dialog"
  669. data-backdrop="static"
  670. style=" width: 100%;height: 100%;max-width: 1024px;max-height: 420px;">
  671. <div class="panel panel-default">
  672. <div class="modal-header">
  673. <i class="iconfont icon-alipay c-alipay"></i> <strong> 支付宝资金池</strong>
  674. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  675. </div>
  676. <div class="panel-body" style="background: rgba(16, 142, 233,.2);padding-bottom: 1px">
  677. <div class="form-group">
  678. <label class="col-sm-2 control-label">是否开启</label>
  679. <div class="col-sm-3">
  680. <div class="checkbox">
  681. <label class="i-checks">
  682. <input type="checkbox" ng-model="dialogData.customizedAlipayCashflowAllowable" disabled>
  683. <i></i>
  684. </label>
  685. </div>
  686. </div>
  687. </div>
  688. <!--必须使用 ng-if, 否则不勾选时,无法保存,因为表单校验无法通过-->
  689. <div ng-class="{'noClick fadeNode':!dialogData.customizedAlipayCashflowAllowable}"
  690. ng-if="dialogData.customizedAlipayCashflowAllowable">
  691. <div class="form-group">
  692. <label class="col-sm-2 control-label">APP ID</label>
  693. <div class="col-sm-6">
  694. <input type="text" ng-model="dialogData.aliPayApp.appid" class="form-control"
  695. placeholder=""
  696. required readonly>
  697. </div>
  698. <div class="col-sm-3">
  699. <div class="checkbox">
  700. <label class="i-checks">
  701. <input type="checkbox" ng-model="dialogData.aliPayApp.shadow" disabled>
  702. <i></i>
  703. 沙箱版本
  704. </label>
  705. </div>
  706. </div>
  707. </div>
  708. <div class="form-group">
  709. <label class="col-sm-2 control-label">公司名称</label>
  710. <div class="col-sm-6">
  711. <input type="text" ng-model="dialogData.aliPayApp.companyName" class="form-control"
  712. placeholder="公司名称"
  713. required readonly>
  714. </div>
  715. </div>
  716. <div class="form-group">
  717. <label class="col-sm-2 control-label">应用名称</label>
  718. <div class="col-sm-6">
  719. <input type="text" ng-model="dialogData.aliPayApp.appName" class="form-control"
  720. placeholder="支付宝收款"
  721. required readonly>
  722. </div>
  723. </div>
  724. </div>
  725. </div>
  726. </div>
  727. </form>
  728. <!--微信监督号配置 -->
  729. <form name="moniConfigForm" id="moniConfigForm" class="form-horizontal form-validation modal fade"
  730. role="dialog"
  731. data-backdrop="static"
  732. style=" max-width: 640px;max-height: 360px;">
  733. <div class="panel panel-default">
  734. <div class="modal-header">
  735. <strong>监督号批量配置</strong>
  736. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  737. </div>
  738. <div class="panel-body">
  739. <div class="form-group" ng-repeat="item in moniApps">
  740. <div class="col-sm-3"></div>
  741. <div class="col-sm-6">
  742. <div class="pull-left m-r-sm">
  743. <div class="checkbox">
  744. <label class="i-checks">
  745. <input type="checkbox" ng-model="dialogData[item.appId]">
  746. <i></i>
  747. {{item.appName}}
  748. </label>
  749. </div>
  750. </div>
  751. </div>
  752. <div class="col-sm-3 form-inline">
  753. <button type="button" class="btn btn-danger" ng-click="setMoniAppId(item.appId)">单独保存
  754. </button>
  755. </div>
  756. </div>
  757. </div>
  758. <footer class="panel-footer text-right bg-light lter">
  759. <button type="submit" class="btn btn-danger m-l-sm " ng-click="setMoniAppId()">全部保存
  760. </button>
  761. </footer>
  762. </div>
  763. </form>
  764. <!--监督号的展现位置 -->
  765. <form name="moniPointForm" id="moniPointForm" class="form-horizontal form-validation modal fade"
  766. role="dialog"
  767. data-backdrop="static"
  768. style=" max-width: 540px;max-height: 280px;">
  769. <div class="panel panel-default">
  770. <div class="modal-header">
  771. <strong>展现位置批量配置</strong>
  772. <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  773. </div>
  774. <div class="panel-body">
  775. <div class="form-group" ng-repeat="item in moniPoint">
  776. <div class="col-sm-3"></div>
  777. <div class="col-sm-6">
  778. <div class="pull-left m-r-sm">
  779. <div class="checkbox">
  780. <label class="i-checks">
  781. <input type="checkbox" ng-model="dialogData[item.key]">
  782. <i></i>
  783. {{item.name}}
  784. </label>
  785. </div>
  786. </div>
  787. </div>
  788. <div class="col-sm-3 form-inline">
  789. <button type="button" class="btn btn-success" ng-click="setMoniPoint(item.key)">单独保存
  790. </button>
  791. </div>
  792. </div>
  793. </div>
  794. <footer class="panel-footer text-right bg-light lter">
  795. <button type="submit" class="btn btn-success m-l-sm " ng-click="setMoniPoint()">全部保存
  796. </button>
  797. </footer>
  798. </div>
  799. </form>
  800. <form name="editGzhForm" id="editGzhForm" class="form-horizontal form-validation modal fade" role="dialog"
  801. style=" width: 760px;height:400px;min-height: 400px">
  802. <div class="panel panel-default">
  803. <div class="panel-heading">
  804. <strong>强制关注公众号</strong>
  805. </div>
  806. <div class="panel-body">
  807. <div class="form-group">
  808. <label class="col-sm-3 control-label">强制关注公众号开关:</label>
  809. <div class="col-sm-9">
  810. <div class="radio pull-left" style="margin-right: 10px" ng-repeat="item in enum.forceFollowGzh"
  811. ng-if="item.value!=''">
  812. <label class="i-checks">
  813. <input type="radio" name="forceFollowGzh" required value="{{item.value}}"
  814. ng-model="dialogData.forceFollowGzh">
  815. <i></i>
  816. {{item.label}}
  817. </label>
  818. </div>
  819. </div>
  820. </div>
  821. <div class="form-group">
  822. <label class="col-sm-3 control-label">经销商是否允许关注:</label>
  823. <div class="col-sm-9">
  824. <div class="radio pull-left" style="margin-right: 10px"
  825. ng-repeat="item in enum.forceFollowGzhForDealer" ng-if="item.value!=''">
  826. <label class="i-checks">
  827. <input type="radio" name="forceFollowGzhForDealer" required value="{{item.value}}"
  828. ng-model="dialogData.forceFollowGzhForDealer">
  829. <i></i>
  830. {{item.label}}
  831. </label>
  832. </div>
  833. </div>
  834. </div>
  835. </div>
  836. <footer class="panel-footer text-right bg-light lter">
  837. <button type="submit" class="btn btn-success" ng-click="saveGzg()">保存
  838. </button>
  839. </footer>
  840. </div>
  841. </form>
  842. <form name="editSupporterForm" id="editSupporterForm" class="form-horizontal form-validation modal fade"
  843. role="dialog"
  844. style=" width: 760px;height:400px;min-height: 400px">
  845. <div class="panel panel-default">
  846. <div class="panel-heading">
  847. <strong>客服接管</strong>
  848. </div>
  849. <div class="panel-body">
  850. <div class="form-group">
  851. <label class="col-sm-3 control-label">客服接管开关:</label>
  852. <div class="col-sm-9">
  853. <div class="radio pull-left" style="margin-right: 10px" ng-repeat="item in enum.platformSupport"
  854. ng-if="item.value!=''">
  855. <label class="i-checks">
  856. <input type="radio" name="platformSupport" required value="{{item.value}}"
  857. ng-model="dialogData.platformSupport">
  858. <i></i>
  859. {{item.label}}
  860. </label>
  861. </div>
  862. </div>
  863. </div>
  864. </div>
  865. <footer class="panel-footer text-right bg-light lter">
  866. <button type="submit" class="btn btn-success" ng-click="saveSuporter()">保存
  867. </button>
  868. </footer>
  869. </div>
  870. </form>
  871. <!--使用前充值-->
  872. <form name="beforeChargeUnpayForm" id="beforeChargeUnpayForm" class="form-horizontal form-validation modal fade"
  873. role="dialog"
  874. style=" width: 760px;height:400px;min-height: 400px">
  875. <div class="panel panel-default">
  876. <div class="panel-heading">
  877. <strong>使用前充值</strong>
  878. </div>
  879. <div class="panel-body">
  880. <div class="form-group">
  881. <label class="col-sm-3 control-label">状态:</label>
  882. <div class="col-sm-9">
  883. <div class="radio pull-left" style="margin-right: 10px"
  884. ng-repeat="item in enum.beforeChargeUnpay" ng-if="item.value!=''">
  885. <label class="i-checks">
  886. <input type="radio" name="beforeChargeUnpay" required value="{{item.value}}"
  887. ng-model="dialogData.beforeChargeUnpay">
  888. <i></i>
  889. {{item.label}}
  890. </label>
  891. </div>
  892. </div>
  893. </div>
  894. </div>
  895. <footer class="panel-footer text-right bg-light lter">
  896. <button type="submit" class="btn btn-success" ng-click="saveBeforeChargeUnpay()">保存
  897. </button>
  898. </footer>
  899. </div>
  900. </form>
  901. <form name="passwordForm" id="passwordPanel" class="form-horizontal form-validation modal fade" role="dialog"
  902. style=" width: 800px;min-height: 300px;height: 300px;">
  903. <div class="panel panel-default">
  904. <div class="panel-heading">
  905. <strong>修改密码</strong>
  906. </div>
  907. <div class="panel-body">
  908. <div class="form-group">
  909. <label class="col-sm-3 control-label">密码</label>
  910. <div class="col-sm-9">
  911. <input type="text" ng-model="passwordData.password"
  912. class="form-control" ng-minlength="6" minlength="6" ng-maxlength="20" maxlength="20"
  913. placeholder="输入密码"
  914. required>
  915. </div>
  916. </div>
  917. <div class="line line-dashed b-b line-lg pull-in"></div>
  918. </div>
  919. <footer class="panel-footer text-right bg-light lter">
  920. <button type="submit" class="btn btn-success" ng-click="savePassword()">保存
  921. </button>
  922. </footer>
  923. </div>
  924. </form>
  925. <div class="modal fade" role="dialog" id="editDeviceTypePanel" style="width: 80%; min-width: 1024px;height: 80%"
  926. ng-style="{'min-width':'1024px','min-height':'80%'}">
  927. <div class="panel panel-default">
  928. <div class="panel-heading">
  929. <strong>{{dialogName}}</strong>
  930. </div>
  931. <dev-type-config></dev-type-config>
  932. <footer class="panel-footer text-center bg-light lter">
  933. <button type="button" class="btn btn-info margin-5" ng-click="closeDeviceConfig()"
  934. style="margin-left: 8px"><i
  935. class="fa fa-close"></i> 关闭
  936. </button>
  937. </footer>
  938. </div>
  939. </div>
  940. </div>