diff --git a/src/App.vue b/src/App.vue index 5335f6f..541ee89 100644 --- a/src/App.vue +++ b/src/App.vue @@ -3,9 +3,8 @@ import util from './utils/util'; export default { onLaunch: function() { - // #ifndef H5 + // this.$store.commit('setLoginState', { loginState: false }); this.updateManager(); - // #endif }, methods: { isLogin(){ diff --git a/src/components/period_select.vue b/src/components/period_select.vue new file mode 100644 index 0000000..9220387 --- /dev/null +++ b/src/components/period_select.vue @@ -0,0 +1,138 @@ + + + + + \ No newline at end of file diff --git a/src/js/api.js b/src/js/api.js index 550179d..7762a45 100644 --- a/src/js/api.js +++ b/src/js/api.js @@ -167,5 +167,10 @@ API['party'] = { bindingOpenId: `${ORIGIN}/assistant/bindingOpenId`, //改为小程序端绑定openid } +API['mine'] = { + userCurrent:`${ORIGIN}/user/current`, //获取账户信息, (不要传品牌id) + unbindAssistant:`${ORIGIN}/admin/user/unbindAssistant`, // 解绑退出 +} + export default { ORIGIN, API }; diff --git a/src/js/server.js b/src/js/server.js index c671b75..dc191c7 100644 --- a/src/js/server.js +++ b/src/js/server.js @@ -1,5 +1,6 @@ import util from '../utils/util'; // import { app as vm } from '../main'; +import { app as vm } from '../main'; const islog = true; @@ -27,6 +28,9 @@ export class Server { method: method, data: res, }) + + handleUserExceptions({ res }); + if(isDefaultGet){ if(failMsg == '')throw Error('默认回调,失败提示不能为空 key -> failMsg'); defaultGet({ @@ -70,6 +74,14 @@ export class Server { reject({url,res,data}); } } + // 用户信息异常 + function handleUserExceptions({ res }){ + if(res?.data?.code === 401&&res?.data?.message?.indexOf('用户') !== -1){ + console.log('用户信息异常,请重新登录'); + const _store = vm.$store; + _store.commit('setLoginState', { loginState: false }); + } + } } get({url,data={},header={},isDefaultGet=true,failMsg=''}){ return this.request(url,data,'GET',header,isDefaultGet,failMsg); diff --git a/src/main.js b/src/main.js index 38f2407..049f478 100644 --- a/src/main.js +++ b/src/main.js @@ -6,8 +6,9 @@ Vue.config.productionTip = false App.mpType = 'app' -const app = new Vue({ +export const app = new Vue({ ...App, store }) app.$mount() + diff --git a/src/manifest.json b/src/manifest.json index d409cc9..7ac6737 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -76,7 +76,9 @@ "appid" : "wx7106e84614cf0060", "setting" : { "urlCheck" : false, - "minified" : true + "minified" : true, + "ignoreDevUnusedFiles": false, + "ignoreUploadUnusedFiles": false }, "usingComponents" : true, "optimization": { diff --git a/src/pages.json b/src/pages.json index 6b6ba06..653a2a4 100644 --- a/src/pages.json +++ b/src/pages.json @@ -1,12 +1,47 @@ { "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages - { "path": "pages/index/index", "style": { + "componentPlaceholder": { + "bottom-logo": "view", + "authorization-login": "view" + } + } + }, + { + "path": "pages/menu/second", + "style": { + "navigationBarTitleText": "推广营销", + "componentPlaceholder": { + "bottom-logo": "view" + } + } + }, + { + "path": "pages/menu/third", + "style": { + "navigationBarTitleText": "商家服务", + "componentPlaceholder": { + "bottom-logo": "view" + } } }, { + "path": "pages/menu/forth", + "style": { + "navigationBarTitleText": "个人中心", + "componentPlaceholder": { + "mine-header": "view", + "bottom-logo": "view", + "line-tab": "view", + "authorization-login": "view", + "authorization-user": "view" + } + } + }, + + { "path": "pages/login/login", "style": { "navigationBarTitleText": "登录" @@ -171,18 +206,6 @@ } }, { - "path": "pages/write_off/mall/list/list", - "style": { - "navigationBarTitleText": "商城订单核销" - } - }, - { - "path": "pages/write_off/menu/menu", - "style": { - "navigationBarTitleText": "核销订单" - } - }, - { "path": "pages/write_off/ym_card_gated/ym_card_gated", "style": { "navigationBarTitleText": "核销订单" @@ -195,36 +218,12 @@ } }, { - "path": "pages/write_off/search_result/search_result", - "style": { - "navigationBarTitleText": "核销查询" - } - }, - { - "path": "pages/write_off/operate/operate", - "style": { - "navigationBarTitleText": "核销订单" - } - }, - { "path": "pages/write_off/confirm_order/confirm_order", "style": { "navigationBarTitleText": "核销订单" } }, { - "path": "pages/write_off/null/null", - "style": { - "navigationBarTitleText": "确认订单信息" - } - }, - { - "path": "pages/write_off/douyin/poi_list", - "style": { - "navigationBarTitleText": "核销订单" - } - }, - { "path": "pages/employee/review_list/review_list", "style": { "navigationBarTitleText": "员工管理" @@ -759,9 +758,15 @@ } }, { + "path": "pages/index/recharge_record", + "style" : { + "navigationBarTitleText": "充值记录" + } + }, + { "path": "pages/douyin_withdraw/index", "style" : { - "navigationBarTitleText": "抖音提现" + "navigationBarTitleText": "平台提现" } }, { @@ -895,10 +900,99 @@ "root": "subpackage/verification", "pages": [ { + "path": "pages/null", + "style" : { + "navigationBarTitleText": "核销查询" + } + }, + { + "path": "pages/record_search", + "style" : { + "navigationBarTitleText": "核销查询" + } + }, + { + "path": "pages/index", + "style" : { + "navigationBarTitleText": "核销查询" + } + }, + { "path": "pages/site_people/index", "style" : { "navigationBarTitleText": "现场人数" } + }, + { + "path": "pages/record", + "style" : { + "navigationBarTitleText": "核销记录" + } + } + ] + }, + { + "root": "subpackage/message", + "pages": [ + { + "path": "pages/complaint/edit", + "style" : { + "navigationBarTitleText": "投诉建议" + } + }, + { + "path": "pages/complaint/list", + "style" : { + "enablePullDownRefresh" : true, + "navigationBarTitleText": "投诉建议" + } + }, + { + "path": "pages/complaint/detail", + "style" : { + "navigationBarTitleText": "投诉详情" + } + }, + { + "path": "pages/work_order/list", + "style" : { + "enablePullDownRefresh" : true, + "navigationBarTitleText": "工单列表" + } + }, + { + "path": "pages/work_order/detail", + "style" : { + "navigationBarTitleText": "工单详情" + } + }, + { + "path": "pages/work_order/edit", + "style" : { + "navigationBarTitleText": "提交工单" + } + } + ] + }, + { + "root": "subpackage/menu", + "pages": [ + { + "path": "pages/index", + "style" : { + "navigationBarTitleText": "" + } + } + ] + }, + { + "root": "subpackage/authorization", + "pages": [ + { + "path": "pages/index", + "style" : { + "navigationBarTitleText": "" + } } ] }, @@ -955,5 +1049,36 @@ "navigationBarTitleText": "欧轩智能商家助手", "navigationBarBackgroundColor": "#009874", "backgroundColor": "#f2f2f7" + }, + "tabBar": { + "color": "#B2B2B2", + "selectedColor": "#009874", + "backgroundColor": "#FFFFFF", + "list": [ + { + "pagePath": "pages/index/index", + "text": "工作台", + "iconPath": "static/images/tab/tab_1.png", + "selectedIconPath": "static/images/tab/ta_1.png" + }, + { + "pagePath": "pages/menu/second", + "text": "推广营销", + "iconPath": "static/images/tab/tab_2.png", + "selectedIconPath": "static/images/tab/ta_2.png" + }, + { + "pagePath": "pages/menu/third", + "text": "商家服务", + "iconPath": "static/images/tab/tab_3.png", + "selectedIconPath": "static/images/tab/ta_3.png" + }, + { + "pagePath": "pages/menu/forth", + "text": "我的", + "iconPath": "static/images/tab/tab_4.png", + "selectedIconPath": "static/images/tab/ta_4.png" + } + ] } } diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index a4d1d78..dc4721c 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -2,22 +2,22 @@ - + {{indexData.brand_name || '-'}}(共{{indexData.stadium_num || '0'}}家) 点击登陆 今日总收入 - {{loginStatus?'¥':''}}{{loginStatus?(indexData.amount || '0'):'***'}} + {{loginState?'¥':''}}{{loginState?(indexData.amount || '0'):'***'}} 收款笔数 - {{loginStatus?(indexData.in_count || '0'):'**'}} + {{loginState?(indexData.in_count || '0'):'**'}} 退款笔数 - {{loginStatus?(indexData.out_count || '0'):'**'}} + {{loginState?(indexData.out_count || '0'):'**'}} @@ -37,7 +37,8 @@ - + + {{e.name}} @@ -49,33 +50,12 @@ party/pages/login/login --> - - - 微信授权 - 您的信息和数据将受到保护 - - - + + - - - - - + - + 核销 @@ -88,6 +68,19 @@ import util from '../../utils/util'; import { servers } from '../../js/server'; import { API } from '../../js/api'; + import { mapGetters } from 'vuex'; + import bottomLogo from "@/subpackage/menu/components/bottom_logo.vue"; + import authorizationLogin from "@/subpackage/authorization/components/login.vue"; + /** + * tid1807 + * 1、去掉"核销查询“菜单(已有悬浮按钮) * + * 2、去掉“收款记录”(在收入统计页面已有入口进入收款记录) * + * 3、去掉“进场人数异常”(该入口计划放入新改版的“核销查询”页面) * + * 4、原“系统工具”文案改为“小程序管理”;原“钱包提现”文案改为“钱包&提现”: 原“设备管理”文案改为“智能设备”; * + * 5、增加底部 (工作台、推广营销、商家服务、我的) * + * 6、增加“工单”功能 + * + * */ const tabList = [ { id: 0, @@ -96,16 +89,10 @@ serverKey: 1001 // 后端对应权限编号 }, { - id: 1, - name: '收款记录', - path: '/subpackage/income/pages/details_record/details_record', - serverKey: 1002 // 后端对应权限编号 - }, - { - id: 2, - name: '订单管理', - path: '/subpackage/order/pages/order_manage/order_manage', - serverKey: 1012 // 后端对应权限编号 + id: 11, + name: '钱包&提现', + path: '/subpackage/wallet/pages/index/index', + serverKey: 1017 // 后端对应权限编号 1017 }, { id: 3, @@ -114,10 +101,10 @@ serverKey: 1007 // 后端对应权限编号 }, { - id: 4, - name: '核销查询', - path: '/pages/write_off/menu/menu', - serverKey: 1008 // 后端对应权限编号 + id: 2, + name: '订单管理', + path: '/subpackage/order/pages/order_manage/order_manage', + serverKey: 1012 // 后端对应权限编号 }, { id: 5, @@ -127,23 +114,11 @@ serverKey: 1009 // 后端对应权限编号 }, { - id: 6, - name: '设备管理', - path: '/subpackage/device/pages/index/index', - serverKey: 1010 // 后端对应权限编号 - }, - { id: 7, name: '商品零售', path: '/subpackage/retail/pages/index/index', serverKey: 1011 // 后端对应权限编号 }, - // { - // id: 8, - // name: '课程管理', - // path: '/subpackage/course/pages/index/index', - // serverKey: 1013 // 后端对应权限编号 1013 - // }, { id: 9, name: '储值卡管理', @@ -151,85 +126,91 @@ serverKey: 1014 // 后端对应权限编号 1014 }, { - id: 13, - name: '水阀卡管理', - path: '/subpackage/shower/pages/card/manage', - serverKey: 1019 // 后端对应权限编号 1019 + id: 6, + name: '智能设备', + path: '/subpackage/device/pages/index/index', + serverKey: 1010 // 后端对应权限编号 + }, + {//需求要求更改ICON位置 + id: 12, + name: '小程序管理', + path: '/subpackage/party/pages/index/index', + serverKey: 1016 // 后端对应权限编号 1016 }, { - id: 10, - name: '进场人数异常', - path: '/subpackage/blacklist/pages/abnormal_list/abnormal_list', - serverKey: 1015 // 后端对应权限编号 1015 + id: 13, + name: '工单', + path: '/subpackage/message/pages/work_order/list', + serverKey: 1022 // 后端对应权限编号 1022 }, + // { + // id: 1, + // name: '收款记录', + // path: '/subpackage/income/pages/details_record/details_record', + // serverKey: 1002 // 后端对应权限编号 + // }, { - id: 11, - name: '钱包提现', - path: '/subpackage/wallet/pages/index/index', - serverKey: 1017 // 后端对应权限编号 1017 + id: 4, + name: '核销查询', + path: '/subpackage/verification/pages/index', + serverKey: 1008 // 后端对应权限编号 }, + // { + // id: 8, + // name: '课程管理', + // path: '/subpackage/course/pages/index/index', + // serverKey: 1013 // 后端对应权限编号 1013 + // }, - {//需求要求更改ICON位置 - id: 12, - name: '系统工具', - path: '/subpackage/party/pages/index/index', - serverKey: 1016 // 后端对应权限编号 1016 + // { + // id: 10, + // name: '进场人数异常', + // path: '/subpackage/blacklist/pages/abnormal_list/abnormal_list', + // serverKey: 1015 // 后端对应权限编号 1015 + // }, + { + id: 13, + name: '水阀卡管理', + path: '/subpackage/shower/pages/card/manage', + serverKey: 1019 // 后端对应权限编号 1019 }, + ]; const app = getApp(); - - // #ifndef H5 - - const uniGetSetting = util.promisify(uni.getSetting); - const uniLogin = util.promisify(uni.login); - const uniGetUserInfo= util.promisify(uni.getUserInfo); const APPID = uni.getAccountInfoSync().miniProgram.appId; - - // #endif - - // #ifdef H5 - const APPID = "wx7106e84614cf0060" //TODO - // #endif export default { + components: { bottomLogo, authorizationLogin }, computed: { - isProfile: _=>util.isProfile(), - // loginStatus(){ - // return app.isLogin(); - // } + ...mapGetters([ 'loginState' ]), }, data() { return { tabList, - isShowAuthorModal: false, indexData: {}, - loginStatus: false, } }, async onLoad(options) { - try{ - util.showLoad(); + let _loginRes = {}; // 20230829 新增平台账户不绑定,不检验,每次进来走重新登陆绑定流程 - if(options.role !== 'ADMIN-PLATFORM')await this.checkUserAuthor(); - - util.hideLoad(); - this.loginStatus = app.isLogin(); - if(!!app.isLogin())this.getIndexInfo(); + if(options.role !== 'ADMIN-PLATFORM')_loginRes = await this.$store.dispatch('checkUserAuthor'); + // 20240325 新增openid绑定账号检测 + if(_loginRes?.data === '')this.webBrandUserCheck(); + if(_loginRes?.data)this.getIndexInfo(); }catch(err){ - util.hideLoad(); - uni.removeStorageSync('token'); - // util.showNone(err.message || '身份校验失败!'); - console.log('onLoad err',err); - this.loginStatus = app.isLogin(); + console.warn('pages index onLoad err--->', err); } }, onShow(){ - let { indexData } = this; - if(JSON.stringify(indexData)!='{}'&&!!app.isLogin())this.getIndexInfo(); + let { indexData, loginState, getIndexInfo } = this; + if(JSON.stringify(indexData)!='{}'&&loginState)getIndexInfo(); }, methods: { + getTabForID(id){ + return tabList.find(e=>e.id === id) || {} + }, // 账号有开启了权限的才显示菜单,否则不显示【ID1000840】 isPermissionShowTab(e){ let { indexData } = this; @@ -239,13 +220,13 @@ return false; }, toNoticeList(){ - if(!app.isLogin())return this.showAuthor(); + if(!this.loginState)return this.showAuthor(); util.routeTo(`/pages/message/list/list`,'nT'); }, toPageInfo(tabInfo){ - let { indexData } = this; + let { indexData, loginState } = this; let _permission = indexData.permission || {}; - if(!app.isLogin())return this.showAuthor(); + if(!loginState)return this.showAuthor(); if(!tabInfo.path)return util.showNone('暂未开放!'); //if(tabInfo.id == 2)return util.routeTo(tabInfo.path,'nT'); //测试 if(!_permission[tabInfo.serverKey])return util.showNone('暂无权限,请联系管理员开启!') @@ -260,7 +241,6 @@ if([ 10, 11, 4, 13 ].includes(tabInfo.id))return util.routeTo(tabInfo.path + `?brand_id=${indexData.brand.id}`,'nT'); if(tabInfo.id === 12){ - // if(!indexData.brand.mini_wechat_appid)return util.showNone('暂无appid!') let url = tabInfo.path + `?appid=${indexData.brand.mini_wechat_appid}` return util.routeTo(url,'nT'); } @@ -280,137 +260,15 @@ this.$store.commit('setBrandInfo',res); }) }, - // 看是否授权,清除token - async checkUserAuthor(){ - try{ - let loginRes ="" - // #ifndef H5 - loginRes = await uniLogin(); - // #endif - // #ifdef H5 - loginRes = {errMsg: "login:ok", code: "0c3xEi0w3kr1t23zcU3w3ZQR3w3xEi0h"} //TODO 设置H5测试数据 - // #endif - console.log(loginRes) - return servers.get({ - url: API.wechatMiniAppLoginAndSync, - data: { - code: loginRes.code, - appid: APPID, - // #ifdef H5 - token:"3d2b0092-e761-11ee-8a66-5254005df464", //TODO - // #endif - }, - isDefaultGet: false, - }) - .then(res=>{ - util.hideLoad(); - let _data = res.data; - if(_data.code == 0){ - // let _data = res.data.data; - - if(_data.data == ''){ - uni.removeStorageSync('token'); - this.loginStatus = app.isLogin(); - // 20240325 新增openid绑定账号检测 - this.webBrandUserCheck(); - - // return util.routeTo(`/pages/login/login`,'rL'); - } - uni.setStorageSync('token',_data.data); - return _data; - }else{ - util.showNone(_data.message || '校验身份失败!'); - throw res.data || {}; - } - - }) - .catch(err=>{ - throw err; - }) - }catch(err){ - throw err; - } - }, showAuthor(){ - this.isShowAuthorModal = true - }, - closeAuthor(){ - this.isShowAuthorModal = false - }, - cancelAuthor(){ - this.closeAuthor(); - }, - getLoginQuery({ - userInfo, - loginRes - }){ - return { - appid: APPID, - code: loginRes.code, - encryptedData: userInfo.encryptedData, - // is_details: 1, - // 后端解密错误,直接传用户信息 - user_info: userInfo.userInfo, - user_raw_data: userInfo.rawData, - ...userInfo.userInfo, - } - }, - // 新获取用户信息 - profileConfirm(){ - uni.getUserProfile({ - lang: 'zh_CN', desc: '授权登陆', - success: res => { - this.confirmAuthor({detail: {...res}}); + this.$refs?.authorizationLogin?.alert?.({ + success: ()=>{ + setTimeout(this.getIndexInfo, 1000); }, - fail: function(err) { - util.showNone('获取用户信息失败!请重试'); - console.warn('getUserProfile Err', err) + fail: err =>{ + // console.warn('pages index showAuthor authorizationLogin Err ->', err) } }) - }, - - async confirmAuthor(userRes){ - if(!userRes.detail.userInfo){ - this.closeAuthor(); - return util.showNone('获取用户信息失败!请稍后重试'); - } - let loginRes = await uniLogin(); - - if(!loginRes.code){ - this.closeAuthor(); - return util.showNone('获取登陆凭证失败!稍后重试'); - } - - servers.post({ - url: API.wechatMiniAppLoginAndSync, - data: this.getLoginQuery({ - userInfo: userRes.detail, - loginRes - }), - isDefaultGet: false, - }) - .then(res=>{ - util.hideLoad(); - let _data = res.data || {}; - if(_data.code == 0){ - if(_data.data == '')return util.routeTo(`/pages/login/login`,'rL'); - util.showNone(_data.message || '登陆成功!'); - // let _data = res.data.data; - // if(_data.user.role == '')return util.routeTo(`/pages/merchant_login/merchant_login`,'rL'); - - uni.setStorageSync('token',_data.data); - setTimeout(_=>{ - this.getIndexInfo(); - this.closeAuthor(); - this.loginStatus = app.isLogin(); - }, 1200); - }else{ - util.showNone(_data.message || '后台登陆失败!'); - setTimeout(_=>this.closeAuthor(), 1200); - } - - }).catch(util.hideLoad) - }, webBrandUserCheck(){ @@ -456,8 +314,8 @@ }) }, toStoreList(){ - if(!app.isLogin())return this.showAuthor(); - let { indexData } = this; + let { indexData, loginState } = this; + if(!loginState)return this.showAuthor(); util.routeTo(`/pages/store_list/store_list?brand_id=${indexData.brand.id}`,'nT'); }, bindUserOpenid(){ @@ -687,57 +545,6 @@ } } - .ic-author-modal{ - position: absolute; - left: 50%; - top: 50%; - transform: translate(-50%, -50%); - padding-top: 60upx; - width: 662upx; - height: 884upx; - border-radius: 10upx; - background-color: #fff; - .iam-title{ - margin-bottom: 22upx; - text-align: center; - line-height: 60upx; - font-size: 44upx; - font-weight: 500; - color: #1a1a1a; - } - .iam-tip{ - margin-bottom: 52upx; - line-height: 40upx; - text-align: center; - font-size: 28upx; - color: #9c9c9f; - } - .iam-pic{ - margin: 0 auto 62upx; - display: block; - width: 488upx; - height: 416upx; - } - .iam-btns{ - @include centerFlex(center); - >button{ - margin: 0 20upx; - width: 240upx; - height: 92upx; - line-height: 88upx; - text-align: center; - border-radius: 46upx; - border: 2upx solid $themeColor; - font-size: 32upx; - color: $themeColor; - &+button{ - background-color: $themeColor; - color: #fff; - } - } - } - - } // fly_btn .fly_btn{ diff --git a/src/pages/login/login.vue b/src/pages/login/login.vue index c7b5177..df342e7 100644 --- a/src/pages/login/login.vue +++ b/src/pages/login/login.vue @@ -43,7 +43,7 @@ + + \ No newline at end of file diff --git a/src/pages/menu/second.vue b/src/pages/menu/second.vue new file mode 100644 index 0000000..0e40ef5 --- /dev/null +++ b/src/pages/menu/second.vue @@ -0,0 +1,32 @@ + + + + + \ No newline at end of file diff --git a/src/pages/menu/third.vue b/src/pages/menu/third.vue new file mode 100644 index 0000000..92636e0 --- /dev/null +++ b/src/pages/menu/third.vue @@ -0,0 +1,117 @@ + + + + + \ No newline at end of file diff --git a/src/pages/merchant_login/merchant_login.vue b/src/pages/merchant_login/merchant_login.vue index c8f7a1c..8327f6b 100644 --- a/src/pages/merchant_login/merchant_login.vue +++ b/src/pages/merchant_login/merchant_login.vue @@ -8,11 +8,11 @@ \ No newline at end of file diff --git a/src/pages/write_off/douyin/poi_list.vue b/src/pages/write_off/douyin/poi_list.vue deleted file mode 100644 index 2ee4882..0000000 --- a/src/pages/write_off/douyin/poi_list.vue +++ /dev/null @@ -1,175 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/pages/write_off/mall/list/list.vue b/src/pages/write_off/mall/list/list.vue deleted file mode 100644 index d8379cd..0000000 --- a/src/pages/write_off/mall/list/list.vue +++ /dev/null @@ -1,237 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/pages/write_off/menu/menu.vue b/src/pages/write_off/menu/menu.vue deleted file mode 100644 index 5e75f0b..0000000 --- a/src/pages/write_off/menu/menu.vue +++ /dev/null @@ -1,131 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/pages/write_off/null/null.vue b/src/pages/write_off/null/null.vue deleted file mode 100644 index 1bccb32..0000000 --- a/src/pages/write_off/null/null.vue +++ /dev/null @@ -1,70 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/pages/write_off/number_of_people/number_of_people.vue b/src/pages/write_off/number_of_people/number_of_people.vue deleted file mode 100644 index bdeb3c9..0000000 --- a/src/pages/write_off/number_of_people/number_of_people.vue +++ /dev/null @@ -1,496 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/pages/write_off/operate/operate.vue b/src/pages/write_off/operate/operate.vue deleted file mode 100644 index 001bbe4..0000000 --- a/src/pages/write_off/operate/operate.vue +++ /dev/null @@ -1,364 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/pages/write_off/search_result/search_result.vue b/src/pages/write_off/search_result/search_result.vue deleted file mode 100644 index 993764c..0000000 --- a/src/pages/write_off/search_result/search_result.vue +++ /dev/null @@ -1,339 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/static/images/code_null.png b/src/static/images/code_null.png deleted file mode 100644 index 8b41375..0000000 Binary files a/src/static/images/code_null.png and /dev/null differ diff --git a/src/static/images/countdown_bg.png b/src/static/images/countdown_bg.png deleted file mode 100644 index 5df6951..0000000 Binary files a/src/static/images/countdown_bg.png and /dev/null differ diff --git a/src/static/images/icon/arrow_b2.png b/src/static/images/icon/arrow_b2.png index 54df2b3..e4e1580 100644 Binary files a/src/static/images/icon/arrow_b2.png and b/src/static/images/icon/arrow_b2.png differ diff --git a/src/static/images/icon/index/green_bg_circle.png b/src/static/images/icon/index/green_bg_circle.png index 0117de2..3f1a34e 100644 Binary files a/src/static/images/icon/index/green_bg_circle.png and b/src/static/images/icon/index/green_bg_circle.png differ diff --git a/src/static/images/icon/index/tab_12.png b/src/static/images/icon/index/tab_12.png index 1860a67..8e0eec8 100644 Binary files a/src/static/images/icon/index/tab_12.png and b/src/static/images/icon/index/tab_12.png differ diff --git a/src/static/images/icon/index/tab_8.png b/src/static/images/icon/index/tab_8.png index 4b19fe3..d126d71 100644 Binary files a/src/static/images/icon/index/tab_8.png and b/src/static/images/icon/index/tab_8.png differ diff --git a/src/static/images/icon/scan_code_btn.png b/src/static/images/icon/scan_code_btn.png deleted file mode 100644 index 5dfbb52..0000000 Binary files a/src/static/images/icon/scan_code_btn.png and /dev/null differ diff --git a/src/static/images/icon/selected_ring.png b/src/static/images/icon/selected_ring.png deleted file mode 100644 index 0f01616..0000000 Binary files a/src/static/images/icon/selected_ring.png and /dev/null differ diff --git a/src/static/images/icon/write_off_fail.png b/src/static/images/icon/write_off_fail.png deleted file mode 100644 index 47ee4fa..0000000 Binary files a/src/static/images/icon/write_off_fail.png and /dev/null differ diff --git a/src/static/images/order_null.png b/src/static/images/order_null.png deleted file mode 100644 index 5183533..0000000 Binary files a/src/static/images/order_null.png and /dev/null differ diff --git a/src/static/images/scan_null.png b/src/static/images/scan_null.png deleted file mode 100644 index d9ffc21..0000000 Binary files a/src/static/images/scan_null.png and /dev/null differ diff --git a/src/static/images/tab/ta_1.png b/src/static/images/tab/ta_1.png new file mode 100644 index 0000000..21bd06c Binary files /dev/null and b/src/static/images/tab/ta_1.png differ diff --git a/src/static/images/tab/ta_2.png b/src/static/images/tab/ta_2.png new file mode 100644 index 0000000..b6d3942 Binary files /dev/null and b/src/static/images/tab/ta_2.png differ diff --git a/src/static/images/tab/ta_3.png b/src/static/images/tab/ta_3.png new file mode 100644 index 0000000..0b7764d Binary files /dev/null and b/src/static/images/tab/ta_3.png differ diff --git a/src/static/images/tab/ta_4.png b/src/static/images/tab/ta_4.png new file mode 100644 index 0000000..360d429 Binary files /dev/null and b/src/static/images/tab/ta_4.png differ diff --git a/src/static/images/tab/tab_1.png b/src/static/images/tab/tab_1.png new file mode 100644 index 0000000..2a2de1d Binary files /dev/null and b/src/static/images/tab/tab_1.png differ diff --git a/src/static/images/tab/tab_2.png b/src/static/images/tab/tab_2.png new file mode 100644 index 0000000..e5dd78d Binary files /dev/null and b/src/static/images/tab/tab_2.png differ diff --git a/src/static/images/tab/tab_3.png b/src/static/images/tab/tab_3.png new file mode 100644 index 0000000..cc1f30d Binary files /dev/null and b/src/static/images/tab/tab_3.png differ diff --git a/src/static/images/tab/tab_4.png b/src/static/images/tab/tab_4.png new file mode 100644 index 0000000..d5e9890 Binary files /dev/null and b/src/static/images/tab/tab_4.png differ diff --git a/src/static/images/third_pages/banner.png b/src/static/images/third_pages/banner.png new file mode 100644 index 0000000..1732315 Binary files /dev/null and b/src/static/images/third_pages/banner.png differ diff --git a/src/static/images/third_pages/bg.png b/src/static/images/third_pages/bg.png new file mode 100644 index 0000000..e52e905 Binary files /dev/null and b/src/static/images/third_pages/bg.png differ diff --git a/src/static/images/third_pages/tab_a.png b/src/static/images/third_pages/tab_a.png new file mode 100644 index 0000000..afc8d31 Binary files /dev/null and b/src/static/images/third_pages/tab_a.png differ diff --git a/src/static/images/third_pages/tab_b.png b/src/static/images/third_pages/tab_b.png new file mode 100644 index 0000000..545b00b Binary files /dev/null and b/src/static/images/third_pages/tab_b.png differ diff --git a/src/static/images/write_off/mall.png b/src/static/images/write_off/mall.png deleted file mode 100644 index 12e4248..0000000 Binary files a/src/static/images/write_off/mall.png and /dev/null differ diff --git a/src/static/images/write_off/order.png b/src/static/images/write_off/order.png deleted file mode 100644 index 2ef7ab0..0000000 Binary files a/src/static/images/write_off/order.png and /dev/null differ diff --git a/src/static/images/write_off/people.png b/src/static/images/write_off/people.png deleted file mode 100644 index 2f24e54..0000000 Binary files a/src/static/images/write_off/people.png and /dev/null differ diff --git a/src/static/images/write_off/site.png b/src/static/images/write_off/site.png deleted file mode 100644 index 9aa1577..0000000 Binary files a/src/static/images/write_off/site.png and /dev/null differ diff --git a/src/store/actions.js b/src/store/actions.js index d0cf110..c5ebddc 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -1,6 +1,8 @@ // 异步方法 import { servers } from '../js/server'; import { API } from '../js/api'; +import { showLoad, hideLoad, showModal, promisify } from '../utils/util'; + export default { getBrandInfo({commit, state}){ if(state?.brandInfo?.brand?.id)return Promise.resolve(state.brandInfo); @@ -24,5 +26,75 @@ export default { .catch(err=>{ console.warn('actions getOrderRefundList err -->', err); }) - } + }, + + // 获取门店列表 + getStadiumLs({ commit, state }, brand_id){ + showLoad(); + return servers.post({ + url: API.stadiumList, + data: { page_size: 9999, page: 1, brand_id }, + isDefaultGet: false, + }) + .then(res => { + hideLoad(); + let _data = res?.data || {}; + if(_data.code === 0){ + let _ls = _data?.data?.list || []; + return _ls; + }else{ + return Promise.reject(_data); + } + }) + .catch(err => { + hideLoad(); + showModal({ + title: '提示', + content: err.message || '加载店铺失败!' + }) + console.warn('store actions getStadiumLs err --->', err); + // return Promise.reject(err); + }) + }, + // 看是否授权,清除token 也可以理解自动登陆 + async checkUserAuthor({ commit, state }){ + let loginRes = {}; + try{ + const uniLogin = promisify(uni.login); + loginRes = await uniLogin(); + }catch(err){ + console.warn('store actions checkUserAuthor login err', err); + showModal({ content: '获取登陆凭证失败!请稍后重新登录!' }); + return Promise.reject(err); + } + showLoad(); + return servers.post({ + url: API.wechatMiniAppLoginAndSync, + data: { + code: loginRes.code, + appid: state.APPID, + }, + isDefaultGet: false, + }) + .then(res => { + hideLoad(); + let _data = res?.data || {}; + if(_data.code === 0){ + if(_data.data === ''){ + commit('setLoginState', { loginState: false, token: '' }); + return _data; + } + commit('setLoginState', { loginState: true, token: _data.data }); + return _data; + }else{ + return Promise.reject(_data); + } + }) + .catch(err=>{ + console.warn('store actions checkUserAuthor wechatMiniAppLoginAndSync err --->', err); + hideLoad(); + showModal({ content: err?.message || '静默登录失败!请稍后重试!' }); + return Promise.reject(err); + }) + }, } \ No newline at end of file diff --git a/src/store/index.js b/src/store/index.js index b127398..4a1ba51 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -33,19 +33,20 @@ export default new Vuex.Store({ // }, permissionObj: { // 权限代号对应 '1001': '营业额', - '1002': '收款记录', + // '1002': '收款记录', '1012': '订单管理', '1007': '员工管理', '1008': '核销查询', - '1009': '场地管理', - '1010': '设备管理', + '1009': '场地看板', + '1010': '智能设备', '1011': '商品零售', // '1013': '课程管理', '1014': '储值卡管理', - '1015': '进场人数异常', - '1016': '系统工具', - '1017': '钱包提现', + // '1015': '进场人数异常', + '1016': '小程序管理', + '1017': '钱包&提现', '1018': '退款权限', + '1022': '工单', '1019': '水阀卡管理', }, // 场地占用提交页面信息 @@ -55,7 +56,8 @@ export default new Vuex.Store({ typeInfo: {}, // 球场类型 venueList: [], // 选择场地列表 orderInfo: {}, // 订单信息 // 20230620 新增挂账需求,用于回显确认订单 - } + }, + isLogin: false, // 登陆状态 }, mutations, actions, @@ -70,6 +72,12 @@ export default new Vuex.Store({ } console.warn(_arr.length) return _arr; + }, + loginState: state =>{ + let _isLogin = state.isLogin; + let _token = uni.getStorageSync('token'); + // 只是想获得一个响应的token状态 + if(_isLogin || !_isLogin)return !!_token; } } }); diff --git a/src/store/mutations.js b/src/store/mutations.js index 0918706..4d9a91d 100644 --- a/src/store/mutations.js +++ b/src/store/mutations.js @@ -10,5 +10,18 @@ export default { // 场地占用信息 setOccupyInfo(state, _occupyInfo){ state.occupyInfo = _occupyInfo; + }, + + // + setLoginState(state, { loginState = false, token = '' }){ + console.log(loginState, token); + if(loginState&&token){ + uni.setStorageSync('token', token); + state.isLogin = loginState; + }else{ + uni.removeStorageSync('token', token); + state.isLogin = false; + } + } } \ No newline at end of file diff --git a/src/subpackage/authorization/components/login.vue b/src/subpackage/authorization/components/login.vue new file mode 100644 index 0000000..4ec018b --- /dev/null +++ b/src/subpackage/authorization/components/login.vue @@ -0,0 +1,188 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/authorization/components/user_info/iconfont.css b/src/subpackage/authorization/components/user_info/iconfont.css new file mode 100644 index 0000000..217a692 --- /dev/null +++ b/src/subpackage/authorization/components/user_info/iconfont.css @@ -0,0 +1,25 @@ +@charset "UTF-8"; + +@font-face { + font-family: "tuniaoFont"; /* Project id 3784643 */ + src: + url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAAAN8AAsAAAAAB4gAAAMvAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACDBgqCQIIdATYCJAMMCwgABCAFhH8HPRuYBiMRpmvPIfurAzsYPj7DCVbrRAmElfXCs4V6xacO8aHO69VXu54tTy8h0hcJ7ufgieY+3+xscrn9B8wKQQFBywplLZCw9SwcOyZ5pKsoAQAbcICJTr7AjPPqr06NRkeIAemFpXv8cje1+/LkuLvD789WJZUANjOe9F76qptDOSMUui/Ua0WQKpZGXaqf5hHZdAD6x8tRJtRKtQd7j5UKkk6lWywYkGADCZBnGLugJd6CAI4GOjH956Ep4k7imdNkYTGFAkm2nJyPrBNwA7YhWwgQ/K4bLXITD8wl8xxuBN+XwyYJwOAp5jFjOwNbPNwd3l3WiyFAv3sCBLjcAB6gQM3GjLLSbJpDo1ANiqsiFiX7WAQzqTcMA06j/pb/eAbEx8yMAaAChg3sDjs6COwub8IAoAD4PEZkA7iAZClPKdicmJLc2OiZcQC3cV613sc3Ab9W7YItQtio9YgdKGjgr+ANlbg5gPvXFacv8IyvKTH4pcjV7VIcfnuIAUd3VCbxcCIKj++rvr/hpx/iwxd4/5mxDXeILbBp2+ByMIlGMuQEU3gjiVaMcXk8Dn2gWo5wuRwuIldLRqRwWogvmCRXE9/kSvrVQP4iFDVWRSbRakMk/AtcBYVpO6rpah1V9J/m/Wt+q8WfsOV+S5KFTGD5dwW9KFstZUs5smuYK3V495zwUG+r/Izf0PWtbWj/HUQsAL9u+cGK8NCiAgRnaRJ49fqljrxWc4PaKs4pQwBlMLUeAzgcEGLakvg5nCZ3zgTBkZzAEEUuFEeJyMrq4BGhGT6OPjiqGd4eIZkLKGKjgTKuAAgpPIAhjmdQUngnsrJdeKTxBz4pkgjHjJQeFqFMXv8PQqg0QP+F2cbAdoHqFmaM52jYlcbNoeTq4CtPkjzHAE1Zl0QvFEjGmp9fY6vKwBI9kOvIuQhJ4kJWy0k1dVXFVXcpbfTmIIRKA/RfmG0M7G1T3cKM8VwMXGlEnR1KY0uU+CTJnM1ODk1ZdxJdSOjYdGOp+TW2k6szsNg8qIvIuQipetFCVstpQCB1lcXHXUl5ZOpfdBvgMI9QMaJi8TZdzLS36K8/ueDZOWMAAA==') format('woff2'), + url('//at.alicdn.com/t/c/font_3784643_5jru9pe5fad.woff?t=1669045092678') format('woff'), + url('//at.alicdn.com/t/c/font_3784643_5jru9pe5fad.ttf?t=1669045092678') format('truetype'); +} + +[class*='tn-icon-'] { + font-family: 'tuniaoFont' !important; + font-style: normal; + -webkit-font-smoothing: antialiased; + text-align: center; + text-decoration: none; +} + +.tn-icon-close:before { + content: "\e74d"; +} + +.tn-icon-camera-fill:before { + content: "\e75d"; +} diff --git a/src/subpackage/authorization/components/user_info/impower.vue b/src/subpackage/authorization/components/user_info/impower.vue new file mode 100644 index 0000000..e3f4571 --- /dev/null +++ b/src/subpackage/authorization/components/user_info/impower.vue @@ -0,0 +1,133 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/authorization/components/user_info/tuniaoui-wx-user-info.vue b/src/subpackage/authorization/components/user_info/tuniaoui-wx-user-info.vue new file mode 100644 index 0000000..0d9d7bc --- /dev/null +++ b/src/subpackage/authorization/components/user_info/tuniaoui-wx-user-info.vue @@ -0,0 +1,357 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/authorization/js/api.js b/src/subpackage/authorization/js/api.js new file mode 100644 index 0000000..19ed53b --- /dev/null +++ b/src/subpackage/authorization/js/api.js @@ -0,0 +1,9 @@ +import { ORIGIN } from '@/js/api'; + +export const AUTHOR_API = { + wechatMiniAppLoginAndSync: `${ORIGIN}/assistant/WechatMiniAppGetToken`, // 小程序授权获取token,为空就登录 + zs_user_avatar:`${ORIGIN}/upload/file/zs_user_avatar`, // 头像图片上传 + changeAvatar: `${ORIGIN}/admin/assistant/changeAvatar`, // 修改用户头像、昵称 +} + +export default AUTHOR_API; \ No newline at end of file diff --git a/src/subpackage/authorization/js/server.js b/src/subpackage/authorization/js/server.js new file mode 100644 index 0000000..ac1b071 --- /dev/null +++ b/src/subpackage/authorization/js/server.js @@ -0,0 +1,10 @@ +import { Server } from '@/js/server'; + +class _Server extends Server { + constructor(props){ + super(props) + } +} + + +export default new _Server(); \ No newline at end of file diff --git a/src/subpackage/authorization/pages/index.vue b/src/subpackage/authorization/pages/index.vue new file mode 100644 index 0000000..b3f8694 --- /dev/null +++ b/src/subpackage/authorization/pages/index.vue @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/src/static/images/icon/author_modal.png b/src/subpackage/authorization/static/images/author_modal.png similarity index 100% rename from src/static/images/icon/author_modal.png rename to src/subpackage/authorization/static/images/author_modal.png diff --git a/src/subpackage/blacklist/pages/abnormal_list/abnormal_list.vue b/src/subpackage/blacklist/pages/abnormal_list/abnormal_list.vue index 9e30f69..e73ea36 100644 --- a/src/subpackage/blacklist/pages/abnormal_list/abnormal_list.vue +++ b/src/subpackage/blacklist/pages/abnormal_list/abnormal_list.vue @@ -102,10 +102,10 @@ export default { async onLoad(options){ try{ let _date = this.curDate = util.formatDate({}); - let _stadiumLs = await this.getStoreList({}); + let _stadiumLs = await this.getStoreList({ brand_id: options?.brand_id ?? '' }); let { curTimeTab } = this; this.getRecords({ - brand_id: options.brand_id, + brand_id: options?.brand_id ?? '', [ curTimeTab?.label || '-' ]: _date }); }catch(err){ diff --git a/src/subpackage/menu/components/bottom_logo.vue b/src/subpackage/menu/components/bottom_logo.vue new file mode 100644 index 0000000..56a1a45 --- /dev/null +++ b/src/subpackage/menu/components/bottom_logo.vue @@ -0,0 +1,41 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/menu/components/mine/header.vue b/src/subpackage/menu/components/mine/header.vue new file mode 100644 index 0000000..712f6af --- /dev/null +++ b/src/subpackage/menu/components/mine/header.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/menu/components/mine/line_tab.vue b/src/subpackage/menu/components/mine/line_tab.vue new file mode 100644 index 0000000..1fdd4fe --- /dev/null +++ b/src/subpackage/menu/components/mine/line_tab.vue @@ -0,0 +1,63 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/menu/pages/index.vue b/src/subpackage/menu/pages/index.vue new file mode 100644 index 0000000..914b254 --- /dev/null +++ b/src/subpackage/menu/pages/index.vue @@ -0,0 +1,16 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/menu/static/images/arrow_b2.png b/src/subpackage/menu/static/images/arrow_b2.png new file mode 100644 index 0000000..e4e1580 Binary files /dev/null and b/src/subpackage/menu/static/images/arrow_b2.png differ diff --git a/src/subpackage/menu/static/images/bot_logo.png b/src/subpackage/menu/static/images/bot_logo.png new file mode 100644 index 0000000..5ef008a Binary files /dev/null and b/src/subpackage/menu/static/images/bot_logo.png differ diff --git a/src/subpackage/menu/static/images/mine_tab/0.png b/src/subpackage/menu/static/images/mine_tab/0.png new file mode 100644 index 0000000..0a80539 Binary files /dev/null and b/src/subpackage/menu/static/images/mine_tab/0.png differ diff --git a/src/subpackage/menu/static/images/mine_tab/1.png b/src/subpackage/menu/static/images/mine_tab/1.png new file mode 100644 index 0000000..3efd220 Binary files /dev/null and b/src/subpackage/menu/static/images/mine_tab/1.png differ diff --git a/src/subpackage/menu/static/images/mine_tab/2.png b/src/subpackage/menu/static/images/mine_tab/2.png new file mode 100644 index 0000000..8c1b55c Binary files /dev/null and b/src/subpackage/menu/static/images/mine_tab/2.png differ diff --git a/src/subpackage/menu/static/images/mine_tab/3.png b/src/subpackage/menu/static/images/mine_tab/3.png new file mode 100644 index 0000000..b203514 Binary files /dev/null and b/src/subpackage/menu/static/images/mine_tab/3.png differ diff --git a/src/subpackage/menu/static/images/mine_tab/4.png b/src/subpackage/menu/static/images/mine_tab/4.png new file mode 100644 index 0000000..9722c80 Binary files /dev/null and b/src/subpackage/menu/static/images/mine_tab/4.png differ diff --git a/src/subpackage/menu/static/images/mine_tab/5.png b/src/subpackage/menu/static/images/mine_tab/5.png new file mode 100644 index 0000000..5ada9fe Binary files /dev/null and b/src/subpackage/menu/static/images/mine_tab/5.png differ diff --git a/src/subpackage/menu/static/images/mine_tab/6.png b/src/subpackage/menu/static/images/mine_tab/6.png new file mode 100644 index 0000000..496eed0 Binary files /dev/null and b/src/subpackage/menu/static/images/mine_tab/6.png differ diff --git a/src/subpackage/message/components/detail/answer_item.vue b/src/subpackage/message/components/detail/answer_item.vue new file mode 100644 index 0000000..ccfbe25 --- /dev/null +++ b/src/subpackage/message/components/detail/answer_item.vue @@ -0,0 +1,59 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/components/detail/image_flow.vue b/src/subpackage/message/components/detail/image_flow.vue new file mode 100644 index 0000000..748a691 --- /dev/null +++ b/src/subpackage/message/components/detail/image_flow.vue @@ -0,0 +1,51 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/components/detail/info.vue b/src/subpackage/message/components/detail/info.vue new file mode 100644 index 0000000..ccadc39 --- /dev/null +++ b/src/subpackage/message/components/detail/info.vue @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/components/edit/fixed_button.vue b/src/subpackage/message/components/edit/fixed_button.vue new file mode 100644 index 0000000..fa8b4e1 --- /dev/null +++ b/src/subpackage/message/components/edit/fixed_button.vue @@ -0,0 +1,37 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/components/edit/info_edit.vue b/src/subpackage/message/components/edit/info_edit.vue new file mode 100644 index 0000000..63f54eb --- /dev/null +++ b/src/subpackage/message/components/edit/info_edit.vue @@ -0,0 +1,195 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/components/edit/upload_img.vue b/src/subpackage/message/components/edit/upload_img.vue new file mode 100644 index 0000000..bbaa0d5 --- /dev/null +++ b/src/subpackage/message/components/edit/upload_img.vue @@ -0,0 +1,189 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/components/fixed_button.vue b/src/subpackage/message/components/fixed_button.vue new file mode 100644 index 0000000..45203d5 --- /dev/null +++ b/src/subpackage/message/components/fixed_button.vue @@ -0,0 +1,33 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/components/message_item.vue b/src/subpackage/message/components/message_item.vue new file mode 100644 index 0000000..b25b83a --- /dev/null +++ b/src/subpackage/message/components/message_item.vue @@ -0,0 +1,85 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/js/api.js b/src/subpackage/message/js/api.js new file mode 100644 index 0000000..2385d0b --- /dev/null +++ b/src/subpackage/message/js/api.js @@ -0,0 +1,16 @@ +import { ORIGIN } from '@/js/api'; + +export const MESSAGE_API = { + zs_message_imgs:`${ORIGIN}/upload/file/zs_message_imgs`, // 投诉/工单图片 + complaintSubmit:`${ORIGIN}/admin/assistant/complaint/submit`, // 投诉提交 + complaintList:`${ORIGIN}/admin/assistant/complaint/list`, // 投诉列表 + complaintInfo:`${ORIGIN}/admin/assistant/complaint/info`, // 投诉详情 + complaintReply:`${ORIGIN}/admin/assistant/complaint/reply`, // 投诉回复 + workorderSubmit:`${ORIGIN}/admin/assistant/workorder/submit`, // 工单提交 + workorderList:`${ORIGIN}/admin/assistant/workorder/list`, // 工单列表 + workorderInfo:`${ORIGIN}/admin/assistant/workorder/info`, // 工单详情 + workorderReply:`${ORIGIN}/admin/assistant/workorder/reply`, // 工单回复 +} + + +export default { ORIGIN, MESSAGE_API }; \ No newline at end of file diff --git a/src/subpackage/message/js/server.js b/src/subpackage/message/js/server.js new file mode 100644 index 0000000..c06aecb --- /dev/null +++ b/src/subpackage/message/js/server.js @@ -0,0 +1,9 @@ +import { Server } from '@/js/server'; + +class _server extends Server { + constructor(props){ + super(props) + } +} + +export default new _server(); \ No newline at end of file diff --git a/src/subpackage/message/pages/complaint/detail.vue b/src/subpackage/message/pages/complaint/detail.vue new file mode 100644 index 0000000..fe5ded5 --- /dev/null +++ b/src/subpackage/message/pages/complaint/detail.vue @@ -0,0 +1,171 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/pages/complaint/edit.vue b/src/subpackage/message/pages/complaint/edit.vue new file mode 100644 index 0000000..b0a409e --- /dev/null +++ b/src/subpackage/message/pages/complaint/edit.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/pages/complaint/list.vue b/src/subpackage/message/pages/complaint/list.vue new file mode 100644 index 0000000..a6188e2 --- /dev/null +++ b/src/subpackage/message/pages/complaint/list.vue @@ -0,0 +1,105 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/pages/work_order/detail.vue b/src/subpackage/message/pages/work_order/detail.vue new file mode 100644 index 0000000..3c74259 --- /dev/null +++ b/src/subpackage/message/pages/work_order/detail.vue @@ -0,0 +1,171 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/pages/work_order/edit.vue b/src/subpackage/message/pages/work_order/edit.vue new file mode 100644 index 0000000..7863694 --- /dev/null +++ b/src/subpackage/message/pages/work_order/edit.vue @@ -0,0 +1,99 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/pages/work_order/list.vue b/src/subpackage/message/pages/work_order/list.vue new file mode 100644 index 0000000..014eeb5 --- /dev/null +++ b/src/subpackage/message/pages/work_order/list.vue @@ -0,0 +1,105 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/message/static/images/arrow_b2.png b/src/subpackage/message/static/images/arrow_b2.png new file mode 100644 index 0000000..e4e1580 Binary files /dev/null and b/src/subpackage/message/static/images/arrow_b2.png differ diff --git a/src/subpackage/message/static/images/close.png b/src/subpackage/message/static/images/close.png new file mode 100644 index 0000000..3844523 Binary files /dev/null and b/src/subpackage/message/static/images/close.png differ diff --git a/src/subpackage/message/static/images/message.png b/src/subpackage/message/static/images/message.png new file mode 100644 index 0000000..6e182f8 Binary files /dev/null and b/src/subpackage/message/static/images/message.png differ diff --git a/src/subpackage/message/static/images/unfold.png b/src/subpackage/message/static/images/unfold.png new file mode 100644 index 0000000..5456142 Binary files /dev/null and b/src/subpackage/message/static/images/unfold.png differ diff --git a/src/subpackage/verification/components/head_bar.vue b/src/subpackage/verification/components/head_bar.vue new file mode 100644 index 0000000..b442c13 --- /dev/null +++ b/src/subpackage/verification/components/head_bar.vue @@ -0,0 +1,59 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/verification/components/record/dy_item.vue b/src/subpackage/verification/components/record/dy_item.vue new file mode 100644 index 0000000..95af761 --- /dev/null +++ b/src/subpackage/verification/components/record/dy_item.vue @@ -0,0 +1,78 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/verification/components/record/mall_item.vue b/src/subpackage/verification/components/record/mall_item.vue new file mode 100644 index 0000000..a703a57 --- /dev/null +++ b/src/subpackage/verification/components/record/mall_item.vue @@ -0,0 +1,95 @@ + + + \ No newline at end of file diff --git a/src/subpackage/verification/components/record/site_item.vue b/src/subpackage/verification/components/record/site_item.vue new file mode 100644 index 0000000..11345ae --- /dev/null +++ b/src/subpackage/verification/components/record/site_item.vue @@ -0,0 +1,87 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/verification/components/stadium_picker.vue b/src/subpackage/verification/components/stadium_picker.vue new file mode 100644 index 0000000..95b9fa5 --- /dev/null +++ b/src/subpackage/verification/components/stadium_picker.vue @@ -0,0 +1,15 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/verification/js/api.js b/src/subpackage/verification/js/api.js index 306d14d..e354cda 100644 --- a/src/subpackage/verification/js/api.js +++ b/src/subpackage/verification/js/api.js @@ -6,6 +6,13 @@ export const SUB_API = { skNotLeavingNums: `${ORIGIN}/stadium/sk/notLeavingNums`, // 【1001536】散客人数 - 未离场订单数量 setStadiumPresentNumber: `${ORIGIN}/admin/stadium/setStadiumPresentNumber`, // 商家助手散客人数校正 timingOpen: `${ORIGIN}/stadium/person/timing/open`, // 【20220208】凌晨自动清零【开/关】 + // tid1803 + enterVerifyOrder: `${ORIGIN}/admin/stadium/order/enterVerifyOrder`, // 商家助手-核销查询-输入验证码 + listVerifyRecord: `${ORIGIN}/admin/stadium/order/listVerifyRecord`, // 商家助手-核销查询列表 + leaveVerifyOrder:`${ORIGIN}/admin/stadium/order/leaveVerifyOrder`, // 【20220208】核销记录列表 - 手动离场 + dyPoiOrderList: `${ORIGIN}/admin/douyinPlatformProductOrder/list`, // 商家助手-dypoi订单 + shop2WriteoffList: `${ORIGIN}/admin/assistant/shop2/writeoffList`, // 商城订单核销 - 列表 + } diff --git a/src/subpackage/verification/pages/index.vue b/src/subpackage/verification/pages/index.vue new file mode 100644 index 0000000..3878e1a --- /dev/null +++ b/src/subpackage/verification/pages/index.vue @@ -0,0 +1,282 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/verification/pages/null.vue b/src/subpackage/verification/pages/null.vue new file mode 100644 index 0000000..1796319 --- /dev/null +++ b/src/subpackage/verification/pages/null.vue @@ -0,0 +1,62 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/verification/pages/record.vue b/src/subpackage/verification/pages/record.vue new file mode 100644 index 0000000..f7b0359 --- /dev/null +++ b/src/subpackage/verification/pages/record.vue @@ -0,0 +1,400 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/verification/pages/record_search.vue b/src/subpackage/verification/pages/record_search.vue new file mode 100644 index 0000000..8815cfc --- /dev/null +++ b/src/subpackage/verification/pages/record_search.vue @@ -0,0 +1,244 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/verification/pages/site_people/index.vue b/src/subpackage/verification/pages/site_people/index.vue index 324395a..60d0974 100644 --- a/src/subpackage/verification/pages/site_people/index.vue +++ b/src/subpackage/verification/pages/site_people/index.vue @@ -77,7 +77,10 @@ export default { } }, async onLoad(options){ - this.$refs.stadiumSelect.initStadium(options?.brand_id || '') + this.$refs.stadiumSelect.initStadium({ + brand_id: options?.brand_id ?? '', + stadium_id: options?.stadium_id ?? '', + }) .then(stadiumInfo=>{ if(!stadiumInfo?.id) return; this.stadiumInfo = stadiumInfo; diff --git a/src/subpackage/verification/pages/site_people/modules/not_leave_modal.vue b/src/subpackage/verification/pages/site_people/modules/not_leave_modal.vue index 3bc401d..8d263f1 100644 --- a/src/subpackage/verification/pages/site_people/modules/not_leave_modal.vue +++ b/src/subpackage/verification/pages/site_people/modules/not_leave_modal.vue @@ -27,7 +27,9 @@ export default { data(){ return { visible: false, - notLeaveInfo: {} + notLeaveInfo: {}, + brand_id: '', + stadium_id: '', } }, methods: { @@ -39,6 +41,8 @@ export default { }, initData(e){ let { igsType, key, stadium_id, brand_id } = e; + this.brand_id = brand_id ?? ''; + this.stadium_id = stadium_id ?? ''; this.show(); let _keyName = igsType === 1 ? 'gate_id' : igsType === 2 ? 'venue_type_key' : ''; let _query = { brand_id, stadium_id }; @@ -69,7 +73,8 @@ export default { }) }, checkBtn(type){ - if(type == 0)return routeTo(`/pages/write_off/search_result/search_result`, 'nT'); + let { brand_id, stadium_id } = this; + if(type == 0)return routeTo(`/subpackage/verification/pages/record?brand_id=${brand_id?? ''}&stadium_id=${stadium_id??''}`, 'nT'); if(type == 1)return routeTo(`/pages/order_list/order_list?order_type=1`, 'nT'); }, } diff --git a/src/subpackage/verification/pages/site_people/modules/stadium_select.vue b/src/subpackage/verification/pages/site_people/modules/stadium_select.vue index e7714e8..66441f3 100644 --- a/src/subpackage/verification/pages/site_people/modules/stadium_select.vue +++ b/src/subpackage/verification/pages/site_people/modules/stadium_select.vue @@ -27,7 +27,7 @@ export default { this.curStadium = stadiumLs?.[value] || {}; this.$emit('change:stadium', this.curStadium); }, - async initStadium(brand_id){ + async initStadium({ brand_id, stadium_id }){ try{ showLoad(); let _ls = await this.getStadiumLs({ brand_id }); @@ -36,10 +36,19 @@ export default { // }) this.stadiumLs = _ls || []; hideLoad(); - if(_ls.length){ + if(stadium_id&&_ls?.length){ + let _cur = _ls.find(e=>Number(e.id) === Number(stadium_id)); + if(_cur){ + this.curStadium = _cur; + return _cur; + } else { + this.curStadium = _ls[0]; + return _ls[0]; + } + } else if (_ls.length){ this.curStadium = _ls[0]; return _ls[0]; - }else{ + } else { showNone('暂无店铺信息!'); } }catch(err){ diff --git a/src/subpackage/verification/static/images/arrow_c9f.png b/src/subpackage/verification/static/images/arrow_c9f.png new file mode 100644 index 0000000..e8471dd Binary files /dev/null and b/src/subpackage/verification/static/images/arrow_c9f.png differ diff --git a/src/subpackage/verification/static/images/calendar.png b/src/subpackage/verification/static/images/calendar.png new file mode 100644 index 0000000..63425c2 Binary files /dev/null and b/src/subpackage/verification/static/images/calendar.png differ diff --git a/src/subpackage/verification/static/images/order/null_code.png b/src/subpackage/verification/static/images/order/null_code.png new file mode 100644 index 0000000..a1e5134 Binary files /dev/null and b/src/subpackage/verification/static/images/order/null_code.png differ diff --git a/src/subpackage/verification/static/images/order/null_range.png b/src/subpackage/verification/static/images/order/null_range.png new file mode 100644 index 0000000..9dcfdcb Binary files /dev/null and b/src/subpackage/verification/static/images/order/null_range.png differ diff --git a/src/subpackage/verification/static/images/order/null_search.png b/src/subpackage/verification/static/images/order/null_search.png new file mode 100644 index 0000000..b8a2037 Binary files /dev/null and b/src/subpackage/verification/static/images/order/null_search.png differ diff --git a/src/subpackage/verification/static/images/round_close.png b/src/subpackage/verification/static/images/round_close.png new file mode 100644 index 0000000..c563ecb Binary files /dev/null and b/src/subpackage/verification/static/images/round_close.png differ diff --git a/src/subpackage/verification/static/images/scan.png b/src/subpackage/verification/static/images/scan.png new file mode 100644 index 0000000..21cfa76 Binary files /dev/null and b/src/subpackage/verification/static/images/scan.png differ diff --git a/src/subpackage/verification/static/images/search.png b/src/subpackage/verification/static/images/search.png new file mode 100644 index 0000000..de695bf Binary files /dev/null and b/src/subpackage/verification/static/images/search.png differ diff --git a/src/subpackage/verification/static/images/tab0.png b/src/subpackage/verification/static/images/tab0.png new file mode 100644 index 0000000..c72f2c9 Binary files /dev/null and b/src/subpackage/verification/static/images/tab0.png differ diff --git a/src/subpackage/verification/static/images/tab1.png b/src/subpackage/verification/static/images/tab1.png new file mode 100644 index 0000000..79f4c07 Binary files /dev/null and b/src/subpackage/verification/static/images/tab1.png differ diff --git a/src/subpackage/verification/static/images/tab2.png b/src/subpackage/verification/static/images/tab2.png new file mode 100644 index 0000000..5d55288 Binary files /dev/null and b/src/subpackage/verification/static/images/tab2.png differ diff --git a/src/subpackage/wallet/js/api.js b/src/subpackage/wallet/js/api.js index 4ff0fc2..654bb3a 100644 --- a/src/subpackage/wallet/js/api.js +++ b/src/subpackage/wallet/js/api.js @@ -8,6 +8,9 @@ export const WALLET_API = { // 宝付 getPayAssureConfigs:`${ORIGIN}/admin/pay/assure/getPayAssureConfigs`, // 查看可选择的支付账户列表 baofuV2Gateway:`${ORIGIN}/admin/pay/assure/baofuV2/gateway`, // 宝付v2获取金额信息 + // tid1819 + wxpayinfo:`${ORIGIN}/admin/assistant/merchantwallet/wxpayinfo`, // 这个是充值 + rechargeList:`${ORIGIN}/admin/merchantwallet/recharge/list`, // 这是充值记录 } export default WALLET_API; \ No newline at end of file diff --git a/src/subpackage/wallet/pages/douyin_withdraw/apply.vue b/src/subpackage/wallet/pages/douyin_withdraw/apply.vue index f6a84ce..8119da8 100644 --- a/src/subpackage/wallet/pages/douyin_withdraw/apply.vue +++ b/src/subpackage/wallet/pages/douyin_withdraw/apply.vue @@ -34,6 +34,11 @@ 联系电话 + + + *证件号码 + + @@ -41,6 +46,7 @@ 温馨提示 1、账户请预留一定的余额,避免余额不足导致退款失败! 2、提现申请成功提交后,预计在3~7个工作日内进行处理。 + 3、提现需要扣除1元/次手续费。 确认提现 @@ -82,14 +88,25 @@ export default { account: '', bank_name: '', bank_address: '', - mobile: '' - } + mobile: '', + // 20241113 【ID1001577】商家助手小程序-抖音提现申请增加证件号码输入 + credentials_number: '' // 证件号码 + }, + // md【241024】 241113新增 + source: '', // 提现源:0抖音;1微信 } }, async onLoad(options){ let _bid = options.brand_id || ''; this.brand_id = _bid; - await this.getDouyinWalletBalance(_bid); + + // md【241024】 241113新增 + let { source } = options; + if(![ 0, 1 ].includes(+source))return showNone('缺少参数 source'); + this.source = +source; + + await this.getDouyinWalletBalance(_bid, +source); + if(this.isEmptyInfo())this.getStorageAndSet(); }, methods: { @@ -144,8 +161,10 @@ export default { }, // 提现申请确认 dyConfirmExtract(e){ + let { brand_id, source } = this; this.douyinWalletExtract({ - brand_id: this.brand_id, + brand_id, + source, ...e, }) }, @@ -154,7 +173,7 @@ export default { return _infoValues.every(item=>item === ''); }, infoCheck(){ - let { amount, account_name_of_bank, account, bank_name, bank_address, mobile } = this.info; + let { amount, account_name_of_bank, account, bank_name, bank_address, mobile, credentials_number } = this.info; let _amount = +(amount ?? 0); if(_amount <= 0){ showNone('提现金额不正确'); @@ -180,13 +199,19 @@ export default { showNone('支行名称不能为空'); return false } + + if(credentials_number === ''){ + showNone('证件号码不能为空'); + return false + } + return true }, /** * http://api.ouxuan.net:61080/project/11/interface/api/2195 * @param {String} brand_id 品牌id * */ - getDouyinWalletBalance(brand_id){ + getDouyinWalletBalance(brand_id, source){ showLoad(); return servers.get({ url: WALLET_API.withdrawalOfDouyinOrg_totalAmount, @@ -196,8 +221,11 @@ export default { failMsg: '获取钱包余额失败' }) .then(res=>{ + hideLoad(); - let _balance = +res.total_amount ?? 0; + let _balance = 0; + if(source === 0)_balance = +res.total_amount_of_douyin ?? 0; + if(source === 1)_balance = +res.total_amount_of_wechat ?? 0; return this.balance = _balance * 0.01; }) .catch(hideLoad) @@ -212,6 +240,11 @@ export default { * @param {String} bank_address // 银行地址 * @param {String} mobile 手机号 * @param {Number} status // 0未处理,1已处理 + * md【241024】 241113新增 + * @param {Number} source // 提现源:0抖音;1微信 + * // 20241113 【ID1001577】商家助手小程序-抖音提现申请增加证件号码输入 + * @param {String} credentials_number // 证件号码 + * * */ douyinWalletExtract({ brand_id, @@ -221,7 +254,9 @@ export default { bank_name, bank_address, mobile, - status = 0 + status = 0, + credentials_number, + source, }){ showLoad(); servers.post({ @@ -235,6 +270,8 @@ export default { bank_address, mobile, status, + credentials_number, + source, }, failMsg: '申请提现失败' }) @@ -242,7 +279,7 @@ export default { hideLoad(); this.$refs.walletModalSuccess.alert(); setTimeout(_=>{ - this.getDouyinWalletBalance(brand_id); + this.getDouyinWalletBalance(brand_id, source); }, 1200); }) .catch(hideLoad) @@ -250,7 +287,6 @@ export default { } } - \ No newline at end of file diff --git a/src/subpackage/wallet/pages/douyin_withdraw/record.vue b/src/subpackage/wallet/pages/douyin_withdraw/record.vue index 01941e7..5fd1d9e 100644 --- a/src/subpackage/wallet/pages/douyin_withdraw/record.vue +++ b/src/subpackage/wallet/pages/douyin_withdraw/record.vue @@ -12,10 +12,12 @@ name="提现金额" :tag="getTagTxt(e.status)" >{{ formatAmount(e.amount || 0) }} + {{ getSourceTxt(e.source) }} {{ e.number || '-' }} {{ e.request_time || '-' }} {{ e.account_name_of_bank || '-' }} {{ e.account || '-' }} + {{ e.credentials_number || '-' }} {{ e.updated_at || '-' }} {{ e.remark || '-' }} @@ -65,6 +67,10 @@ export default { }); }, methods: { + getSourceTxt(source = ''){ + return source === 0 ? '抖音平台' : + source === 1 ? '微信平台' : '-'; + }, formatAmount(num = 0){ let _num = Number(num) || 0; return _num * 0.01; diff --git a/src/subpackage/wallet/pages/index/index.vue b/src/subpackage/wallet/pages/index/index.vue index 7dd37cd..34175d7 100644 --- a/src/subpackage/wallet/pages/index/index.vue +++ b/src/subpackage/wallet/pages/index/index.vue @@ -5,31 +5,41 @@ @click:douyin="dyBtnClick" @click:baofu="bfBtnClick" @click:admin="toWebView" + @click:recharge="rechargeBtn" + @click:record="toRechargeRecord" > 温馨提示: - 如需要分账账户可以自己单独提现,请访问 {{ oxAddress }} + 1、如需要宝付分账账户可以自己单独提现,请访问 {{ oxAddress }} 复制 - \r\n账户为宝付的商户号,密码为申请时预留的手机号码 + \r\n 账户为宝付的商户号,密码为申请时预留的手机号码 + \r\n 2、平台提现为平台版抖音小程序、平台版微信小程序的分账结算金额提现。 - + + + + + + + - diff --git a/src/subpackage/wallet/pages/index/modules/recharge_modal.vue b/src/subpackage/wallet/pages/index/modules/recharge_modal.vue new file mode 100644 index 0000000..784cc5b --- /dev/null +++ b/src/subpackage/wallet/pages/index/modules/recharge_modal.vue @@ -0,0 +1,82 @@ + + + + + \ No newline at end of file diff --git a/src/subpackage/wallet/pages/index/modules/wallet_info.vue b/src/subpackage/wallet/pages/index/modules/wallet_info.vue index 807e312..7826478 100644 --- a/src/subpackage/wallet/pages/index/modules/wallet_info.vue +++ b/src/subpackage/wallet/pages/index/modules/wallet_info.vue @@ -7,10 +7,10 @@ - + 充值 @@ -26,8 +26,9 @@ 宝付提现 - - 抖音提现 + + + 平台提现 diff --git a/src/subpackage/wallet/pages/index/recharge_record.vue b/src/subpackage/wallet/pages/index/recharge_record.vue new file mode 100644 index 0000000..d557240 --- /dev/null +++ b/src/subpackage/wallet/pages/index/recharge_record.vue @@ -0,0 +1,137 @@ + + + + + \ No newline at end of file diff --git a/src/uni.scss b/src/uni.scss index 7745bde..082358c 100644 --- a/src/uni.scss +++ b/src/uni.scss @@ -105,4 +105,16 @@ $mColor: #009874; padding-bottom: $height; padding-bottom: calc( $height + constant(safe-area-inset-bottom)); /* 兼容 iOS < 11.2 */ padding-bottom: calc( $height + env(safe-area-inset-bottom)); /* 兼容 iOS >= 11.2 */ +} + +@mixin clearBtn{ + margin: 0; + padding: 0; + line-height: 0; + background-color: transparent; + border-radius: 0; + &::after{ + position: unset !important; + border: unset; + } } \ No newline at end of file diff --git a/src/utils/util.js b/src/utils/util.js index cb9c6d4..11d2ae1 100644 --- a/src/utils/util.js +++ b/src/utils/util.js @@ -80,7 +80,9 @@ export function showModal({ confirmColor='#009874', success, fail, - complete + complete, + editable = false, + placeholderText = '' }){ uni.showModal({ title, @@ -91,7 +93,9 @@ export function showModal({ confirmText, success, fail, - complete + complete, + editable, + placeholderText, }) } @@ -362,7 +366,7 @@ function isProfile(){ return !!uni.getUserProfile } -function changeLowerCase(str){ +export function changeLowerCase(str){ return str.toString().toLocaleLowerCase(); } @@ -371,7 +375,7 @@ function changeLowerCase(str){ // 大数据量跨页/跨组件传参------$_once && $_emit // 单次监听器 // 到文件src\js\once_name.js,进行命名,防止命名冲突导致错误监听 -function $_once(name, cb){ +export function $_once(name, cb){ uni.$once(name + '',function(data){ cb&&cb(data); }) @@ -380,7 +384,7 @@ function $_once(name, cb){ }, 50) } // 促发单次监听 -function $_emit(name, data){ +export function $_emit(name, data){ uni.$once((name + '')+'1',function(){ uni.$emit(name + '', data); })