menus.php 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. <?php
  2. /**
  3. * @link:http://www.gdqijianshi.com/
  4. * @copyright: Copyright (c) 2020 广东七件事集团
  5. * Created by PhpStorm
  6. * Author: huangpan
  7. * Date: 2020-04-18
  8. * Time: 14:52
  9. */
  10. ?>
  11. <style>
  12. /* 公共颜色变量 */
  13. .clearfix {
  14. *zoom: 1;
  15. }
  16. .clearfix::after {
  17. content: "";
  18. display: table;
  19. clear: both;
  20. }
  21. div {
  22. text-align: left;
  23. }
  24. .form-body {
  25. padding: 20px;
  26. background-color: #fff;
  27. }
  28. .public-account-management {
  29. min-width: 1200px;
  30. width: 1200px;
  31. margin: 0 auto;
  32. /*右边菜单内容*/
  33. height: 680px;
  34. }
  35. .public-account-management .left {
  36. float: left;
  37. display: inline-block;
  38. width: 350px;
  39. /*height: 715px;*/
  40. /*padding: 581px 25px 88px;*/
  41. height: 100%;
  42. background-size: 100% auto;
  43. position: relative;
  44. box-sizing: border-box;
  45. /*第一级菜单*/
  46. border: solid 1px #e7e7eb;
  47. display: flex;
  48. flex-direction: column;
  49. }
  50. .public-account-management .left .titie {
  51. flex: 1;
  52. background: url('/resources/img/mall/wechat/bg_mobile_head.png') no-repeat 0 0 / 100%;
  53. }
  54. .public-account-management .left .menu {
  55. /*第二级菜单*/
  56. display: flex;
  57. position: absolute;
  58. bottom: 0;
  59. left: 0;
  60. right: 0;
  61. margin: 0;
  62. /*border-top: 1px solid #e7e7eb;*/
  63. background: transparent url('https://pic.downk.cc/item/5e9d4aeec2a9a83be55b4ee8.jpg') no-repeat 0 0;
  64. padding-left: 43px;
  65. }
  66. .public-account-management .left .menu .menu_bottom {
  67. position: relative;
  68. float: left;
  69. display: inline-block;
  70. box-sizing: border-box;
  71. width: 100%;
  72. /*height: 44px;*/
  73. /*line-height: 44px;*/
  74. text-align: center;
  75. background-color: #e2e2e2;
  76. border: 1px solid #ebedee;
  77. cursor: pointer;
  78. flex: 1;
  79. }
  80. .public-account-management .left .menu .menu_bottom.menu_addicon {
  81. height: 46px;
  82. line-height: 46px;
  83. flex: 1;
  84. }
  85. .public-account-management .left .menu .menu_bottom .menu_item {
  86. height: 44px;
  87. line-height: 44px;
  88. /*padding: 14px 0;*/
  89. text-align: center;
  90. box-sizing: border-box;
  91. }
  92. .public-account-management .left .menu .menu_bottom .menu_item.active {
  93. border: 1px solid #2bb673;
  94. overflow: hidden;
  95. }
  96. .public-account-management .left .menu .menu_bottom .menu_subItem {
  97. height: 44px;
  98. line-height: 44px;
  99. text-align: center;
  100. box-sizing: border-box;
  101. border: 1px solid #ebedee;
  102. overflow: hidden;
  103. }
  104. .public-account-management .left .menu .menu_bottom .menu_subItem.active {
  105. border: 1px solid #2bb673;
  106. }
  107. .public-account-management .left .menu i {
  108. color: #2bb673;
  109. }
  110. .public-account-management .left .menu .submenu {
  111. position: absolute;
  112. width: 100%;
  113. bottom: 45px;
  114. }
  115. .public-account-management .left .menu .submenu .subtitle {
  116. background-color: #e8e7e7;
  117. box-sizing: border-box;
  118. margin-bottom: 2px;
  119. }
  120. .public-account-management .left .save_btn {
  121. position: absolute;
  122. bottom: -50px;
  123. left: 100px;
  124. }
  125. .public-account-management .right {
  126. float: left;
  127. width: 63%;
  128. background-color: #f4f5f9;
  129. padding: 25px 10px 0px 20px;
  130. /*height: 710px;*/
  131. height: 100%;
  132. margin-left: 20px;
  133. -webkit-box-sizing: border-box;
  134. box-sizing: border-box;
  135. }
  136. .public-account-management .right .configure_page .delete_btn {
  137. text-align: right;
  138. padding-bottom: 10px;
  139. display: flex;
  140. align-items: center;
  141. border-bottom: 1px solid #e7e7eb;
  142. }
  143. .public-account-management .right .configure_page .delete_btn .title {
  144. flex: 1;
  145. }
  146. .public-account-management .right .configure_page .title {
  147. padding-top: 20px !important;
  148. }
  149. .public-account-management .right .configure_page .menu_content {
  150. margin-top: 20px;
  151. }
  152. .public-account-management .right .configure_page .configur_content {
  153. margin-top: 20px;
  154. background-color: #fff;
  155. padding: 16px 20px;
  156. border: 1px solid #e7e7eb;
  157. }
  158. .public-account-management .right .configure_page .blue {
  159. color: #29b6f6;
  160. margin-top: 10px;
  161. }
  162. .public-account-management .right .configure_page .applet {
  163. margin-bottom: 20px;
  164. }
  165. .public-account-management .right .configure_page .applet span {
  166. margin-right: 18px;
  167. }
  168. .public-account-management .right .configure_page .material .input_width {
  169. width: 30%;
  170. }
  171. .public-account-management .right .configure_page .material .el-textarea {
  172. width: 80%;
  173. }
  174. </style>
  175. <div id="app" v-cloak>
  176. <el-card shadow="never" style="border:0" class="box-card" body-style="background-color: #f3f3f3;padding: 10px 0 0;" v-loading="cardLoading">
  177. <div slot="header">
  178. <el-breadcrumb separator="/">
  179. <el-breadcrumb-item>菜单编辑</el-breadcrumb-item>
  180. </el-breadcrumb>
  181. </div>
  182. <div class="form-body">
  183. <div class="public-account-management clearfix">
  184. <!--左边配置菜单-->
  185. <div class="left">
  186. <div class="titie"></div>
  187. <div class="menu clearfix">
  188. <div v-for="(item, i) of menu.button" :key="i" class="menu_bottom">
  189. <!-- 一级菜单 -->
  190. <!-- <div @click="menuFun(i,item)" class="menu_item" :class="{'active': isActive == i}">{{item.name}}</div>-->
  191. <div class="menu_item" @click="menuFun(i,item)">{{ item.name }}
  192. </div>
  193. <!--以下为二级菜单-->
  194. <!-- <div v-if="isSubMenuFlag == i" class="submenu">-->
  195. <div class="submenu">
  196. <div v-for="(subItem, k) in item.sub_button" :key="k" class="subtitle">
  197. <div :class="{'active': isSubMenuActive == i + '' + k}" class="menu_subItem" @click="subMenuFun(item, subItem, i, k)">{{ subItem.name }}
  198. </div>
  199. </div>
  200. <!--二级菜单加号, 当长度 小于 5 才显示二级菜单的加号 -->
  201. <div v-if="item.sub_button.length < 5" class="menu_bottom menu_addicon" @click="addSubMenu(item)"><i class="el-icon-plus"></i></div>
  202. </div>
  203. </div>
  204. <!-- 一级菜单加号 -->
  205. <div v-if="menuKeyLength < 3" class="menu_bottom menu_addicon" @click="addMenu"><i class="el-icon-plus"></i></div>
  206. </div>
  207. </div>
  208. <!--右边配置-->
  209. <div v-if="!showRightFlag" class="right">
  210. <div class="configure_page">
  211. <div class="delete_btn">
  212. <div class="title">
  213. 当前菜单
  214. </div>
  215. <el-button class="save_btn" size="mini" type="success" @click="saveFun">保存并发布</el-button>
  216. <el-button size="mini" type="danger" icon="el-icon-delete" @click="deleteMenu(tempObj)">
  217. 删除当前菜单
  218. </el-button>
  219. </div>
  220. <div class="title">
  221. <span>菜单名称:</span>
  222. <el-input v-model="tempObj.name" class="input_width" placeholder="请输入菜单名称" clearable style="margin-top: 12px;"></el-input>
  223. </div>
  224. <div>
  225. <div class="menu_content">
  226. <span>菜单内容:</span>
  227. <el-radio-group v-model="tempObj.type">
  228. <!-- <el-radio :label="'media_id'">发送素材</el-radio>-->
  229. <el-radio :label="'article_id'">发送图文</el-radio>
  230. <el-radio :label="'view'">跳转链接</el-radio>
  231. <el-radio :label="'click'">发送关键词</el-radio>
  232. <el-radio :label="'miniprogram'">小程序</el-radio>
  233. </el-radio-group>
  234. </div>
  235. <div class="configur_content">
  236. <div v-if="tempObj.type == 'media_id'" class="material">
  237. <span>素材内容:</span>
  238. <el-input v-model="tempObj.media_id" :disabled="true" class="input_width" placeholder="素材名称"></el-input>
  239. <!--下面点击“选择素材”按钮,弹框框-->
  240. <el-popover v-model="visible2" placement="top">
  241. <el-tabs v-model="activeName" @tab-click="handleClick">
  242. <el-tab-pane label="素材管理" name="first">
  243. <el-table :data="tableData" style="width: 100%">
  244. <el-table-column label="文件名" min-width="400" align="center">
  245. <template slot-scope="scope">
  246. <el-popover trigger="hover" placement="top">
  247. <p>文件名: {{ scope.row.media_id }}</p>
  248. <div slot="reference" class="name-wrapper">
  249. <el-tag size="medium">{{ scope.row.media_id }}</el-tag>
  250. </div>
  251. </el-popover>
  252. </template>
  253. </el-table-column>
  254. <el-table-column label="名称" width='150' prop='name' align="center" :show-overflow-tooltip='true'></el-table-column>
  255. <el-table-column label="操作" align="center" min-width="100">
  256. <template slot-scope="scope">
  257. <el-button size="mini" @click="handleEdit(scope.$index, scope.row,'media_id')">选择
  258. </el-button>
  259. </template>
  260. </el-table-column>
  261. </el-table>
  262. <div style="display:flex;justify-content: flex-end;margin-top:10px">
  263. <el-pagination layout="prev, pager, next" :page-count="material_pageCount" @current-change="handleCurrentChange"></el-pagination>
  264. </div>
  265. </el-tab-pane>
  266. </el-tabs>
  267. <el-button slot="reference" type="success">选择素材</el-button>
  268. </el-popover>
  269. <p class="blue">提示:需要调后台获取到内容,弹框出来,然后选择,把名字赋值上去!</p>
  270. </div>
  271. <div v-if="tempObj.type == 'article_id'" class="material">
  272. <span>素材内容:</span>
  273. <el-input v-model="tempObj.article_id" :disabled="true" class="input_width" placeholder="图文名称"></el-input>
  274. <el-popover v-model="visible2" placement="top">
  275. <el-tabs v-model="activeNames" @tab-click="handleClicks">
  276. <el-tab-pane label="图文素材" name="first">
  277. <el-table :data="tableData2" style="width: 100%">
  278. <el-table-column label="文件名" min-width="400" align="center">
  279. <template slot-scope="scope">
  280. <el-popover trigger="hover" placement="top">
  281. <p>文件名: {{ scope.row.article_id }}</p>
  282. <div slot="reference" class="name-wrapper">
  283. <el-tag size="medium">{{ scope.row.article_id }}</el-tag>
  284. </div>
  285. </el-popover>
  286. </template>
  287. </el-table-column>
  288. <el-table-column label="名称" width='150' prop='title' align="center" :show-overflow-tooltip='true'></el-table-column>
  289. <el-table-column label="操作" align="center" min-width="100">
  290. <template slot-scope="scope">
  291. <el-button size="mini" @click="handleEdit(scope.$index, scope.row,'article_id')">选择
  292. </el-button>
  293. </template>
  294. </el-table-column>
  295. </el-table>
  296. <div style="display:flex;justify-content: flex-end;margin-top:10px">
  297. <el-pagination layout="prev, pager, next" :page-count="article_pageCount" @current-change="handleCurrentChange2"></el-pagination>
  298. </div>
  299. </el-tab-pane>
  300. </el-tabs>
  301. <el-button slot="reference" type="success">选择素材</el-button>
  302. </el-popover>
  303. <p class="blue">提示:需要调后台获取到内容,弹框出来,然后选择,把名字赋值上去!</p>
  304. </div>
  305. <div v-if="tempObj.type == 'view'">
  306. <span>跳转链接:</span>
  307. <div flex="center">
  308. <el-input v-model="tempObj.url" class="input_width" placeholder="请输入链接" clearable></el-input>
  309. <com-pick-link @selected="linkSelected">
  310. <el-button>选择链接</el-button>
  311. </com-pick-link>
  312. </div>
  313. </div>
  314. <div v-if="tempObj.type == 'click'">
  315. <div>
  316. <span>关键词:</span>
  317. <el-input v-model="tempObj.key" class="input_width" placeholder="请输入关键词" clearable></el-input>
  318. </div>
  319. <p class="blue">提示:这里需要配合关键词推送消息一起使用</p>
  320. </div>
  321. <div v-if="tempObj.type == 'miniprogram'">
  322. <div class="applet">
  323. <span>小程序的appid:</span>
  324. <el-input v-model="tempObj.appid" class="input_width" placeholder="请输入小程序的appid" clearable></el-input>
  325. </div>
  326. <div>
  327. <span>小程序的页面路径:</span>
  328. <el-input v-model="tempObj.pagepath" class="input_width" placeholder="请输入小程序的页面路径,如:pages/index" clearable></el-input>
  329. </div>
  330. <p class="blue">提示:需要和公众号进行关联才可以把小程序绑定带微信菜单上哟!</p>
  331. </div>
  332. </div>
  333. </div>
  334. </div>
  335. <!-- <div>menu对象值:{{ menu }}</div>-->
  336. </div>
  337. <!--一进页面就显示的默认页面,当点击左边按钮的时候,就不显示了-->
  338. <div v-if="showRightFlag" class="right">
  339. <p>请选择菜单配置</p>
  340. </div>
  341. </div>
  342. </div>
  343. </div>
  344. <script>
  345. var app = new Vue({
  346. el: '#app',
  347. data() {
  348. return {
  349. cardLoading: false,
  350. showRightFlag: true, // 右边配置显示默认详情还是配置详情
  351. menu: {
  352. // 一级菜单
  353. button: [{
  354. type: 'click',
  355. name: '默认菜单',
  356. // key: 'menu1',关键词
  357. url: '', // 跳转链接
  358. media_id: '', // 素材名称--图文消息
  359. sub_button: [{
  360. type: '', // media_id:素材内容; view:跳转链接
  361. name: '默认子菜单1',
  362. url: '', // 跳转链接
  363. media_id: '' // 素材名称--图文消息
  364. }]
  365. }]
  366. }, // 横向菜单
  367. isActive: -1, // 一级菜单点中样式
  368. isSubMenuActive: -1, // 一级菜单点中样式
  369. isSubMenuFlag: -1, // 二级菜单显示标志
  370. tempObj: {
  371. // type: "view",
  372. // media_id: 素材内容
  373. // view: 跳转链接
  374. // name: "",//菜单名称
  375. // material: "",//素材名称
  376. // link: "",//跳转链接
  377. }, // 右边临时变量,作为中间值牵引关系
  378. tempSelfObj: {
  379. // 一些临时值放在这里进行判断,如果放在tempObj,由于引用关系,menu也会多了多余的参数
  380. // grand:"" 1:表示一级菜单; 2:表示二级菜单
  381. // index:"" 表示一级菜单索引
  382. // secondIndex:"" 表示二级菜单索引
  383. },
  384. visible2: false, // 素材内容 "选择素材"按钮弹框显示隐藏
  385. tableData: [], // 素材内容弹框数据
  386. tableData2: [], // 素材内容弹框数据
  387. activeName: 'first',
  388. activeNames: 'first',
  389. page:1,
  390. page2:1,
  391. total_count:1,
  392. total_count2:1,
  393. material_pageCount:1,
  394. article_pageCount:1,
  395. h5: {},
  396. }
  397. },
  398. created() {
  399. this.getWxMenus();
  400. this.getList();
  401. this.getGraphicList();
  402. this.getH5Url();
  403. },
  404. methods: {
  405. handleCurrentChange(val) {
  406. this.page = val;
  407. this.getList();
  408. },
  409. handleCurrentChange2(val) {
  410. this.page2 = val;
  411. this.getGraphicList();
  412. },
  413. handleClick(tab, event) {
  414. console.log(tab, event);
  415. },
  416. handleClicks(tab, event) {
  417. console.log(tab, event);
  418. },
  419. /**
  420. * 获取菜单数组
  421. */
  422. getWxMenus() {
  423. let self = this;
  424. this.cardLoading = true;
  425. request({
  426. params: {
  427. r: 'mall/wechat/menus',
  428. },
  429. method: 'get',
  430. }).then(e => {
  431. this.cardLoading = false;
  432. if (e.data.code === 0) {
  433. if (e.data.data.menu) {
  434. self.menu = e.data.data.menu;
  435. }
  436. } else {
  437. self.$message.error(e.data.msg);
  438. }
  439. }).catch(e => {
  440. self.$message.error(e.data.msg);
  441. });
  442. },
  443. // 素材内容弹框的选择按钮函数
  444. handleEdit(index, row,type) {
  445. this.visible2 = false;
  446. this.tempObj.type =type;
  447. if(type=='media_id'){
  448. this.tempObj.media_id = row.media_id;
  449. }
  450. if(type=='article_id'){
  451. this.tempObj.article_id = row.article_id;
  452. }
  453. },
  454. // 保存发布
  455. saveFun() {
  456. let self = this;
  457. // if (!self.menu.button[0].sub_button[0].type){
  458. // delete self.menu.button[0].sub_button
  459. // }
  460. console.log(self.menu);
  461. self.btnLoading = true;
  462. request({
  463. params: {
  464. r: 'mall/wechat/menus'
  465. },
  466. method: 'post',
  467. data: {
  468. form: self.menu,
  469. }
  470. }).then(e => {
  471. self.btnLoading = false;
  472. if (e.data.code == 0) {
  473. self.$message.success(e.data.msg);
  474. } else {
  475. self.$message.error(e.data.msg);
  476. }
  477. }).catch(e => {
  478. self.$message.error(e.data.msg);
  479. self.btnLoading = false;
  480. });
  481. },
  482. // 一级菜单点击事件
  483. menuFun(i, item) {
  484. this.showRightFlag = false // 右边菜单隐藏
  485. // console.log(i)
  486. this.tempObj = item // 这个如果放在顶部,flag会没有。因为重新赋值了。
  487. this.tempSelfObj.grand = "1" // 表示一级菜单
  488. this.tempSelfObj.index = i // 表示一级菜单索引
  489. this.isActive = i // 一级菜单选中样式
  490. this.isSubMenuFlag = i // 二级菜单显示标志
  491. this.isSubMenuActive = -1 // 二级菜单去除选中样式
  492. },
  493. // 二级菜单点击事件
  494. subMenuFun(item, subItem, index, k) {
  495. this.showRightFlag = false; //右边菜单隐藏
  496. this.tempObj = subItem; //将点击的数据放到临时变量,对象有引用作用
  497. this.tempSelfObj.grand = "2"; //表示二级菜单
  498. this.tempSelfObj.index = index; //表示一级菜单索引
  499. this.tempSelfObj.secondIndex = k; //表示二级菜单索引
  500. this.isSubMenuActive = index + "" + k; //二级菜单选中样式
  501. this.isActive = -1; //一级菜单去除样式
  502. },
  503. // 添加横向一级菜单
  504. addMenu() {
  505. // 先判断1,再判断2,对象增加,会进行往下计算,所以必须先判断2,再判断1
  506. if (this.menuKeyLength == 2) {
  507. this.$set(this.menu.button, "2", {
  508. // type: "",
  509. name: "菜单3",
  510. // url: "",//跳转链接
  511. // media_id:"",//素材名称--图文消息
  512. sub_button: []
  513. });
  514. }
  515. if (this.menuKeyLength == 1) {
  516. this.$set(this.menu.button, "1", {
  517. // type: "",
  518. name: "菜单2",
  519. // url: "",//跳转链接
  520. // media_id:"",//素材名称--图文消息
  521. sub_button: []
  522. });
  523. }
  524. },
  525. // 添加横向二级菜单
  526. addSubMenu(item) {
  527. let subMenuKeyLength = item.sub_button.length; //获取二级菜单key长度
  528. if (subMenuKeyLength == 4) {
  529. this.$set(item.sub_button, "4", {
  530. // type: "",
  531. name: "子菜单5",
  532. // url: "",//跳转链接
  533. // media_id:"",//素材名称--图文消息
  534. });
  535. }
  536. if (subMenuKeyLength == 3) {
  537. this.$set(item.sub_button, "3", {
  538. // type: "",
  539. name: "子菜单4",
  540. // url: "",//跳转链接
  541. // media_id:"",//素材名称--图文消息
  542. });
  543. }
  544. if (subMenuKeyLength == 2) {
  545. this.$set(item.sub_button, "2", {
  546. // type: "",
  547. name: "子菜单3",
  548. // url: "",//跳转链接
  549. // media_id:"",//素材名称--图文消息
  550. });
  551. }
  552. if (subMenuKeyLength == 1) {
  553. this.$set(item.sub_button, "1", {
  554. // type: "",
  555. name: "子菜单2",
  556. // url: "",//跳转链接
  557. // media_id:"",//素材名称--图文消息
  558. });
  559. }
  560. if (subMenuKeyLength == 0) {
  561. this.$set(item.sub_button, "0", {
  562. // type: "",
  563. name: "子菜单1",
  564. // url: "",//跳转链接
  565. // media_id:"",//素材名称--图文消息
  566. });
  567. }
  568. },
  569. //删除当前菜单
  570. deleteMenu(obj) {
  571. console.log(obj);
  572. var _this = this;
  573. this.$confirm('此操作将永久删除该菜单项目, 是否继续?', '提示', {
  574. confirmButtonText: '确定',
  575. cancelButtonText: '取消',
  576. type: 'warning'
  577. }).then(() => {
  578. _this.deleteData(); // 删除菜单数据
  579. }).catch(() => {});
  580. },
  581. // 删除菜单数据
  582. deleteData() {
  583. // 一级菜单的删除方法
  584. if (this.tempSelfObj.grand == "1") {
  585. this.menu.button.splice(this.tempSelfObj.index, 1);
  586. }
  587. // 二级菜单的删除方法
  588. if (this.tempSelfObj.grand == "2") {
  589. this.menu.button[this.tempSelfObj.index].sub_button.splice(this.tempSelfObj.secondIndex, 1);
  590. }
  591. this.$message({
  592. type: 'success',
  593. message: '删除成功!'
  594. });
  595. },
  596. getList() {
  597. let self = this;
  598. //self.listLoading = true;
  599. request({
  600. params: {
  601. r: 'mall/wechat/material',
  602. page: this.page,
  603. },
  604. method: 'get',
  605. }).then(e => {
  606. //console.log('619e='+JSON.stringify(e))
  607. if (e.data.code == 0) {
  608. self.tableData = e.data.data.list;
  609. self.material_pageCount = e.data.data.page_count;
  610. self.total_count = e.data.data.pagination.total_count;
  611. }
  612. //self.listLoading = false;
  613. // self.list = e.data.data.list;
  614. // self.pageCount = e.data.data.pagination.page_count;
  615. // self.pagination = e.data.data.pagination;
  616. }).catch(e => {
  617. console.log(e);
  618. });
  619. },
  620. getGraphicList() {
  621. let self = this;
  622. request({
  623. params: {
  624. r: 'mall/wechat/article-menu-list',
  625. page: this.page2,
  626. },
  627. method: 'get',
  628. }).then(e => {
  629. if (e.data.code == 0) {
  630. self.tableData2 = e.data.data.list;
  631. self.article_pageCount = e.data.data.page_count;
  632. }
  633. }).catch(e => {
  634. console.log(e);
  635. });
  636. },
  637. /**
  638. * 设置链接
  639. */
  640. linkSelected(obj) {
  641. let route = obj.find(function(item) {
  642. return true
  643. })
  644. if (JSON.stringify(this.h5) != "{}") {
  645. let url = this.h5.url + '/#' + route.route
  646. let str = '?'
  647. if (url.indexOf('?') > 0) str = '&'
  648. // this.tempObj.url = url + str + 'sign=' + this.h5.sign
  649. if(this.h5.sign == 6000000){
  650. this.h5.sign = "6E6"
  651. }
  652. this.$set(this.tempObj, 'url', `${url}${str}sign=${this.h5.sign}`);
  653. }
  654. },
  655. /**
  656. * 获取H5的链接和sign
  657. */
  658. getH5Url() {
  659. request({
  660. params: {
  661. r: 'mall/wechat/get-h5-url',
  662. },
  663. method: 'get',
  664. }).then(e => {
  665. this.h5 = e.data.data
  666. })
  667. },
  668. },
  669. computed: {
  670. // menuObj的长度,当长度 小于 3 才显示一级菜单的加号
  671. menuKeyLength: function() {
  672. return this.menu.button.length;
  673. }
  674. },
  675. })
  676. </script>