App.vue 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. <script>
  2. import store from '@/store'
  3. import { mapMutations, mapActions, mapGetters } from 'vuex'
  4. //import { setTimeout } from 'timers'
  5. import { getDictionaries } from '@/api/mini'
  6. import util from "./utils/util"
  7. import priceSocket from "./mixins/priceSocket";
  8. //https://ext.dcloud.net.cn/plugin?id=22675
  9. import permissionListener from "@/uni_modules/c-permission-listener";
  10. export default {
  11. mixins:[priceSocket],
  12. // 全端,数据共享,还可以解决页面初始化模板访问不到值得
  13. // 有坑 分包里的页面访问不到
  14. globalData: {},
  15. onLaunch () {
  16. uni.removeStorageSync('suitInfoList');
  17. uni.removeStorageSync('productInfoList');
  18. uni.removeStorageSync('pxClassInfoList');
  19. // #ifdef APP-PLUS
  20. // 清除角标数字
  21. plus.runtime.setBadgeNumber(0);
  22. // #endif
  23. // 推送消息监听改在登录成功后注册,见 utils/appDevice.js setupAppPushMessageListener
  24. // #ifdef H5
  25. // H5开发环境无法微信授权,使用固定的用户 shish 2020.4.30
  26. if (process.env.NODE_ENV == "development") {
  27. uni.setStorageSync("token","eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImp0aSI6IjBfNTIifQ.eyJpc3MiOiJodHRwczpcL1wvYXBpLnNob3AuaHpnaGQuY29tIiwiYXVkIjoiaHR0cHM6XC9cL2FwaS5zaG9wLmh6Z2hkLmNvbSIsImp0aSI6IjBfNTIiLCJpYXQiOjE2MTYxNTc2NjQsIm5iZiI6MTYxNjE1NzY2NCwiZXhwIjoxNjI0Nzk3NjY0LCJ1bmlxdWVJZCI6IjUyIiwic291cmNlSWQiOjB9.VzSekbSwSczMWsfdPVdrm3gZ-v9o3p01NbMVNT4nGZ4")
  28. uni.setStorageSync("account", "0")
  29. getDictionaries({ token: uni.getStorageSync('token') }).then(res => {
  30. if (util.isEmpty(res)) {
  31. return false
  32. }
  33. store.commit('setDictionariesInfo', {
  34. ...res.data.dict,
  35. ...res.data
  36. })
  37. store.commit('setMyShopInfo', {
  38. ...res.data.shop,
  39. ...res.data
  40. })
  41. })
  42. }
  43. // #endif
  44. // 删除缓存
  45. if (process.env.NODE_ENV == 'production') {
  46. uni.removeStorageSync('shopUser')
  47. }
  48. // #ifdef MP-WEIXIN
  49. // wxLoginFn()
  50. // uni.clearStorage()
  51. const extConfig = wx.getExtConfigSync ? wx.getExtConfigSync() : {}
  52. uni.setStorageSync('account', extConfig.account)
  53. // #endif
  54. },
  55. onLoad () {
  56. // const pages = getCurrentPages();
  57. // const currentPage = pages[pages.length - 1];
  58. // const url = `/${currentPage.route}`;
  59. // console.log(1111,url)
  60. },
  61. onShow (extraData) {
  62. // #ifdef APP-PLUS
  63. // 清除角标数字
  64. plus.runtime.setBadgeNumber(0);
  65. // #endif
  66. if(extraData){
  67. uni.setStorageSync('extraData',extraData)
  68. }
  69. // permissionEnums枚举建议单独一个js文件,然后引入
  70. const permissionEnums = {
  71. "ACCESS_COARSE_LOCATION": {
  72. name: "定位",
  73. explain: "在您主动使用注册填址、查找附近批发店、订单导航等功能时获取位置,用于匹配地址或打开地图"
  74. },
  75. "ACCESS_FINE_LOCATION": {
  76. name: "定位",
  77. explain: "在您主动使用注册填址、查找附近批发店、订单导航等功能时获取位置,用于匹配地址或打开地图"
  78. },
  79. "CALL_PHONE": {
  80. name: "电话", // 当前权限的名称
  81. explain: "为了方便联系客服, 我们需要申请您设备的拨打电话权限" // 权限说明
  82. },
  83. "CAMERA":{
  84. name:"使用摄像头",
  85. explain: "为了方便给花材拍照片,上传花材图片等"
  86. },
  87. "READ_EXTERNAL_STORAGE":{
  88. name:"读取外部存储空间",
  89. explain:"为了修改个人头像和上传花材图片, 我们需要申请您设备的相机和存储权限",
  90. },
  91. "WRITE_EXTERNAL_STORAGE":{
  92. name:"写入外部存储空间",
  93. explain:"为了保存推广海报和小程序码到手机相册, 我们需要申请您设备的存储权限",
  94. },
  95. "READ_MEDIA_IMAGES":{
  96. name:"读取外部存储空间",
  97. explain:"为了修改个人头像和上传花材图片, 我们需要申请您设备的相机和存储权限",
  98. },
  99. "READ_MEDIA_VIDEO":{
  100. name:"读取外部存储空间",
  101. explain:"为了修改个人头像和上传花材图片, 我们需要申请您设备的相机和存储权限",
  102. },
  103. "READ_MEDIA_AUDIO":{
  104. name:"读取外部存储空间",
  105. explain:"为了修改个人头像和上传花材图片, 我们需要申请您设备的相机和存储权限",
  106. },
  107. "POST_NOTIFICATIONS":{
  108. name:"通知",
  109. explain:"为了及时接收订单等重要消息,我们需要申请通知权限",
  110. },
  111. }
  112. // 唤起权限会触发onHide,所以listenerFunc须在onShow生命周期调用
  113. permissionListener && permissionListener.listenerFunc(permissionEnums)
  114. },
  115. onHide () { },
  116. onError (err) {
  117. console.error(err, '错误捕获')
  118. },
  119. methods: {
  120. ...mapActions(['setUserShopAll'])
  121. }
  122. }
  123. </script>
  124. <style lang="scss">
  125. //没有scss变量方法的,主要引入 这样打包的时候就不会所有的组件都打包进去
  126. @import "./static/iconfont/iconfont.css";
  127. @import "./static/css/uni2.css";
  128. @import "./static/css/base.scss";
  129. @import "./static/css/common.scss";
  130. @import "./static/css/reset.scss";
  131. page {
  132. height: 100%;
  133. }
  134. /**开单-扎和支切换样式**/
  135. .switchover-unit{
  136. position: fixed;
  137. left: calc(170upx / 2 - 50upx);
  138. bottom: 140upx;
  139. display: flex;
  140. align-items: center;
  141. justify-content: center;
  142. width: 100upx;
  143. height: 100upx;
  144. color: #FFFFFF;
  145. background: #4b8cf4;
  146. border-radius: 50%;
  147. font-size: 42upx;
  148. font-weight: 700;
  149. z-index: 2;
  150. }
  151. /**开单-增加减少动画**/
  152. .animation{animation:imgmove 0.3s 1;animation-iteration-count:1}
  153. @-webkit-keyframes imgmove{0%{transform: scale(0.7);}100%{transform: scale(1);}}
  154. </style>