AI销管
選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

App.vue 13 KiB

2年前
2年前
2年前
2年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
2年前
1年前
2年前
2年前
2年前
2年前
1年前
1年前
1年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
1年前
1年前
2年前
2年前
2年前
2年前
2年前
1年前
2年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
1年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
2年前
1年前
2年前
2年前
2年前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587
  1. <script>
  2. import Vue from 'vue';
  3. //app.js
  4. var config = require("./config");
  5. export default {
  6. onLaunch(options) {
  7. uni.getSystemInfo({
  8. success: function(e) {
  9. console.log(e, 'adjsakljdklasjdklsakjdslakjd')
  10. // #ifdef MP-WEIXIN
  11. Vue.prototype.StatusBar = e.statusBarHeight;
  12. let custom = wx.getMenuButtonBoundingClientRect();
  13. Vue.prototype.Custom = custom;
  14. Vue.prototype.CustomBar = custom.bottom + custom.top - e.statusBarHeight;
  15. Vue.prototype.windowHeight = e.safeArea.height
  16. // #endif
  17. Vue.mixin({
  18. data() {
  19. return {
  20. StatusBar: Vue.prototype.StatusBar,
  21. CustomBar: Vue.prototype.CustomBar,
  22. windowHeight: Vue.prototype.windowHeight,
  23. LOADING: false,
  24. bulidIngObj: uni.getStorageSync('buildingID'),
  25. };
  26. },
  27. methods: {
  28. //实时统计
  29. getTabBarBadge() {
  30. uni.request({
  31. url: config.service.realTimeStatistics,
  32. method: "POST",
  33. header: {
  34. 'content-type': 'application/json',
  35. 'Authorization': 'Bearer ' + uni.getStorageSync(
  36. 'weapp_session_login_data').token
  37. },
  38. data: {
  39. houseId: uni.getStorageSync('buildingID').id
  40. },
  41. success: (data) => {
  42. console.log(data.data.data.receivingCustomer, 'receivingCustomer')
  43. if (data.data.data == null) {
  44. uni.removeTabBarBadge({
  45. index: 0,
  46. })
  47. return
  48. } else {
  49. uni.removeTabBarBadge({
  50. index: 0,
  51. })
  52. if (data.data.data.receivingCustomer > 0) {
  53. uni.setTabBarBadge({
  54. index: 0,
  55. text: `${data.data.data.receivingCustomer}`
  56. })
  57. }
  58. }
  59. },
  60. fail: () => {
  61. uni.removeTabBarBadge({
  62. index: 0,
  63. })
  64. }
  65. })
  66. },
  67. upDateBulidIngObj() {
  68. this.bulidIngObj = uni.getStorageSync('buildingID')
  69. },
  70. addLookingCount(id) {
  71. uni.request({
  72. url: config.service.addLookingCount,
  73. method: "POST",
  74. header: {
  75. 'content-type': 'application/json',
  76. 'Authorization': 'Bearer ' + uni.getStorageSync(
  77. 'weapp_session_login_data').token
  78. },
  79. data: {
  80. houseId: uni.getStorageSync(
  81. 'buildingID').id,
  82. houseName: uni.getStorageSync(
  83. 'buildingID').name,
  84. recordId: id
  85. },
  86. })
  87. },
  88. sendLog(data) {
  89. uni.request({
  90. url: config.service.addLog,
  91. method: "POST",
  92. header: {
  93. 'content-type': 'application/json',
  94. 'Authorization': 'Bearer ' + uni.getStorageSync(
  95. 'weapp_session_login_data').token
  96. },
  97. data: {
  98. houseId: data.houseId || uni.getStorageSync(
  99. 'buildingID').id,
  100. houseName: data.houseName || uni.getStorageSync(
  101. 'buildingID').name,
  102. serviceId: "test",
  103. recordId: data.id
  104. },
  105. success: (data) => {
  106. console.log(data)
  107. }
  108. })
  109. },
  110. // 时分秒转换为秒
  111. TIMEEVENT(e) {
  112. var time = e;
  113. var len = time.split(':')
  114. if (len.length == 3) {
  115. var hour = time.split(':')[0];
  116. var min = time.split(':')[1];
  117. var sec = time.split(':')[2];
  118. return Number(hour * 3600) + Number(min * 60) + Number(sec);
  119. }
  120. if (len.length == 2) {
  121. var min = time.split(':')[0];
  122. var sec = time.split(':')[1];
  123. return Number(min * 60) + Number(sec);
  124. }
  125. if (len.length == 1) {
  126. var sec = time.split(':')[0];
  127. return Number(sec);
  128. }
  129. },
  130. // 目前使用页面为录音页面
  131. SPEAKERSTYLE(index) {
  132. let obj = {
  133. color: '',
  134. }
  135. switch (index) {
  136. case 1:
  137. obj.color = '#60CBEC';
  138. break;
  139. case 2:
  140. obj.color = '#EC8B47';
  141. break;
  142. case 3:
  143. obj.color = '#4F861E';
  144. break;
  145. case 5:
  146. obj.color = '#4980C8';
  147. break;
  148. case 6:
  149. obj.color = '#60CBEC';
  150. break;
  151. case 7:
  152. obj.color = '#EC8B47';
  153. break;
  154. case 8:
  155. obj.color = '#4F861E';
  156. break;
  157. default:
  158. obj.color = '#9F61C8';
  159. break;
  160. }
  161. return obj
  162. },
  163. // 检测权限 返回 Boolean类型
  164. CHECKAUTHORITY(name = '') {
  165. let menu = uni.getStorageSync('weapp_session_Menu_data')
  166. return menu[name] === undefined ? false : menu[name]
  167. },
  168. },
  169. filters: {
  170. // ASCII码转换 大写字母A是65 演讲人是从1开始所以num+64
  171. toCapital(num) {
  172. let str = ''
  173. if (num) {
  174. str = String.fromCharCode(num + 64)
  175. }
  176. return str
  177. }
  178. }
  179. });
  180. }
  181. });
  182. if (wx.canIUse('getUpdateManager')) {
  183. const updateManager = wx.getUpdateManager()
  184. updateManager.onCheckForUpdate(function(res) {
  185. if (res.hasUpdate) {
  186. updateManager.onUpdateReady(function() {
  187. uni.showModal({
  188. title: '更新提示',
  189. cancelColor: "#999999",
  190. content: '新版本已经准备好,是否重启应用?',
  191. success: function(res) {
  192. if (res.confirm) {
  193. updateManager.applyUpdate()
  194. }
  195. }
  196. })
  197. })
  198. updateManager.onUpdateFailed(function() {
  199. uni.showModal({
  200. title: '已经有新版本了哟~',
  201. cancelColor: "#999999",
  202. content: '新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~'
  203. })
  204. })
  205. }
  206. })
  207. } else {
  208. uni.showModal({
  209. title: '提示',
  210. cancelColor: "#999999",
  211. content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
  212. })
  213. }
  214. const token = uni.getStorageSync("weapp_session_login_data")
  215. if (typeof token.token != "string") {
  216. return
  217. }
  218. uni.request({
  219. url: config.service.getUser,
  220. method: "GET",
  221. header: {
  222. 'content-type': 'application/json',
  223. 'Authorization': 'Bearer ' + uni.getStorageSync('weapp_session_login_data').token
  224. },
  225. success: (res) => {
  226. let rescor = res.data.data;
  227. console.log(res, '数据', rescor)
  228. // return
  229. if (res.statusCode == 401) {
  230. uni.showToast({
  231. title: '登录过期请重新登录',
  232. icon: "none",
  233. duration: 2000,
  234. })
  235. uni.navigateTo({
  236. url: `/pages/login/index`
  237. })
  238. return
  239. }
  240. if (rescor.user.total == 0) {
  241. uni.showToast({
  242. title: '暂无绑定项目',
  243. duration: 2000,
  244. icon: "none"
  245. });
  246. return
  247. } else {
  248. let lopan = {
  249. id: rescor.houseList[0].id,
  250. name: rescor.houseList[0].propertyName
  251. }
  252. let users = rescor.user
  253. users.zkProperties = rescor.houseList
  254. console.log(users, '角色数据')
  255. uni.setStorageSync("weapp_session_userInfo_data", users); //写入缓存
  256. }
  257. }
  258. })
  259. this.$u.get(config.service.notReadNum, {
  260. id: uni.getStorageSync('weapp_session_userInfo_data').accountId,
  261. projectId: uni.getStorageSync('buildingID').id
  262. }).then(res => {
  263. console.log(res)
  264. if (res > 0) {
  265. uni.setTabBarBadge({ //显示数字
  266. index: 4, //tabbar下标
  267. text: res || 0 //数字
  268. })
  269. } else {
  270. uni.removeTabBarBadge({
  271. index: 4
  272. })
  273. }
  274. }).catch(e => {
  275. uni.removeTabBarBadge({
  276. index: 4
  277. })
  278. })
  279. // this.$u.get("/user/getUser")
  280. // .then(data => {
  281. // if (data.user.total==0) {
  282. // uni.showToast({
  283. // title: '暂无绑定项目',
  284. // duration: 2000,
  285. // icon:"none"
  286. // });
  287. // return
  288. // } else {
  289. // let lopan = {
  290. // id: data.houseList[0].id,
  291. // name: data.houseList[0].propertyName
  292. // }
  293. // let users=data.user
  294. // users.zkProperties=data.houseList
  295. // uni.setStorageSync("weapp_session_userInfo_data",users); //写入缓存
  296. // }
  297. // })
  298. wx.setInnerAudioOption({
  299. obeyMuteSwitch: false
  300. });
  301. },
  302. onShow(options) {
  303. const token = uni.getStorageSync("weapp_session_login_data")
  304. if (typeof token.token != "string") {
  305. console.log("没有")
  306. return
  307. } else {}
  308. }
  309. };
  310. </script>
  311. <style>
  312. @import "./app.css";
  313. </style>
  314. <style lang="scss">
  315. @import "uview-ui/index.scss";
  316. /*每个页面公共css */
  317. //图表样式等
  318. .single {
  319. width: 100%;
  320. background: #FFFFFF;
  321. .title {
  322. width: 100%;
  323. height: 80rpx;
  324. display: flex;
  325. align-items: center;
  326. .title1 {
  327. flex: 2;
  328. font-size: 30rpx;
  329. font-weight: 500;
  330. color: #333333;
  331. line-height: 80rpx;
  332. padding-left: 30rpx;
  333. font-family: PingFangSC-Medium, PingFang SC;
  334. }
  335. .title3 {
  336. flex: 3;
  337. height: 90rpx;
  338. display: flex;
  339. align-items: center;
  340. justify-content: flex-end;
  341. padding-right: 30rpx;
  342. .title3-box {
  343. display: flex;
  344. align-items: center;
  345. width: 25%;
  346. justify-content: center;
  347. .activecltab {
  348. color: #2671E2;
  349. border-bottom: 4rpx solid #2671E2;
  350. }
  351. }
  352. }
  353. .title2 {
  354. flex: 2;
  355. display: flex;
  356. justify-content: flex-end;
  357. align-items: center;
  358. height: 42rpx;
  359. font-size: 30rpx;
  360. font-family: PingFangSC-Regular, PingFang SC;
  361. font-weight: 400;
  362. color: #333333;
  363. line-height: 42rpx;
  364. margin-right: 30rpx;
  365. .righttochoose {
  366. width: 24rpx;
  367. height: 12rpx;
  368. margin-left: 12rpx;
  369. }
  370. }
  371. }
  372. .swiper-box {
  373. width: 97%;
  374. margin: 0 auto 26rpx;
  375. }
  376. .hejibox {
  377. width: 100%;
  378. height: 80rpx;
  379. display: flex;
  380. .heji {
  381. width: 50%;
  382. height: 100%;
  383. font-size: 28rpx;
  384. font-weight: 400;
  385. color: #666666;
  386. line-height: 80rpx;
  387. text-indent: 30rpx;
  388. }
  389. }
  390. .danwei {
  391. width: 100%;
  392. height: 40rpx;
  393. font-size: 24rpx;
  394. font-weight: 400;
  395. color: #999999;
  396. line-height: 40rpx;
  397. text-indent: 30rpx;
  398. }
  399. .uchaserbox {
  400. width: 95%;
  401. height: 470rpx;
  402. }
  403. .jindu {
  404. width: 100%;
  405. min-height: 400rpx;
  406. .jindu-box {
  407. width: 100%;
  408. padding: 0 30rpx;
  409. .jindu-boxche {
  410. width: 100%;
  411. height: 40rpx;
  412. display: flex;
  413. align-items: center;
  414. margin-bottom: 38rpx;
  415. .jindu-name {
  416. width: 120rpx;
  417. font-size: 28rpx;
  418. font-family: PingFangSC-Regular, PingFang SC;
  419. font-weight: 400;
  420. color: #333333;
  421. line-height: 40rpx;
  422. }
  423. .progress-cus {
  424. flex: 1;
  425. height: 30rpx;
  426. margin-left: 10rpx;
  427. background: #F0F1F2;
  428. .color {
  429. height: 30rpx;
  430. background: linear-gradient(90deg, #3A82EF 0%, #7EB2FF 100%);
  431. }
  432. .color4 {
  433. height: 30rpx;
  434. background: linear-gradient(270deg, #6DC5B8 0%, #07B79D 100%);
  435. }
  436. .color1 {
  437. height: 30rpx;
  438. background: linear-gradient(270deg, #F88881 0%, #E6625B 100%); //1
  439. }
  440. .color2 {
  441. height: 30rpx;
  442. background: linear-gradient(270deg, #FFC940 0%, #FF981E 100%); //2
  443. }
  444. .color3 {
  445. height: 30rpx;
  446. background: linear-gradient(270deg, #FFE800 0%, #FFCC00 100%); //3
  447. }
  448. }
  449. .jindu-zxl {
  450. width: 120rpx;
  451. font-size: 28rpx;
  452. margin-left: 12rpx;
  453. color: #333;
  454. text-align: left;
  455. line-height: 40rpx;
  456. }
  457. }
  458. }
  459. }
  460. }
  461. //时间切换的样式
  462. .boxtittab {
  463. width: 100;
  464. height: 92rpx;
  465. background: #FFFFFF;
  466. display: flex;
  467. align-items: center;
  468. .tabbox {
  469. flex: 1;
  470. height: 100%;
  471. text-align: center;
  472. line-height: 92rpx;
  473. color: #666666;
  474. font-size: 28rpx;
  475. font-weight: 400;
  476. display: flex;
  477. justify-content: center;
  478. .activecllasscet {
  479. width: 96rpx;
  480. color: #2671E2;
  481. font-weight: 600;
  482. border-bottom: 4rpx solid #2671E2;
  483. }
  484. }
  485. }
  486. //多个格子的样式
  487. .boxzonglan {
  488. width: 100%;
  489. min-height: 496rpx;
  490. background: #FFFFFF;
  491. padding: 30rpx 30rpx 30rpx 30rpx;
  492. .zonglantit {
  493. font-size: 30rpx;
  494. color: #333333;
  495. font-family: PingFangSC-Semibold, PingFang SC;
  496. font-weight: 500;
  497. }
  498. .zonglanbox {
  499. width: 100%;
  500. display: flex;
  501. flex-wrap: wrap;
  502. margin-top: 24rpx;
  503. box-shadow: 0px 0px 12rpx 0px rgba(38, 113, 226, 0.1);
  504. border-radius: 12rpx;
  505. .grid {
  506. width: 50%;
  507. // height: 128rpx;
  508. padding-bottom: 24rpx;
  509. // border: 1rpx solid #E0E0E0;
  510. .audonum {
  511. color: #666666;
  512. text-indent: 40rpx;
  513. font-size: 28rpx;
  514. margin-top: 20rpx;
  515. line-height: 40rpx;
  516. display: flex;
  517. align-items: center;
  518. .circle {
  519. width: 20rpx;
  520. height: 20rpx;
  521. background: #FFFFFF;
  522. border: 6rpx solid #2671E2;
  523. margin-right: 12rpx;
  524. margin-left: 30rpx;
  525. border-radius: 50%;
  526. }
  527. }
  528. .num {
  529. color: #333333;
  530. text-indent: 40rpx;
  531. font-size: 44rpx;
  532. font-weight: 600;
  533. line-height: 50rpx;
  534. margin-top: 18rpx;
  535. }
  536. }
  537. }
  538. }
  539. </style>