diff --git a/.gitignore b/.gitignore index 3284cf7..003118e 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,2 @@ /.hbuilderx/ -/unpackage/ -/node_modules/ \ No newline at end of file +/unpackage/ \ No newline at end of file diff --git a/components/selectCalendar.vue b/components/selectCalendar.vue new file mode 100644 index 0000000..1e2d2a2 --- /dev/null +++ b/components/selectCalendar.vue @@ -0,0 +1,76 @@ + + + \ No newline at end of file diff --git a/node_modules/mobile-calendar-simple/Calendar.vue b/node_modules/mobile-calendar-simple/Calendar.vue new file mode 100644 index 0000000..1f1a459 --- /dev/null +++ b/node_modules/mobile-calendar-simple/Calendar.vue @@ -0,0 +1,585 @@ + + + + + \ No newline at end of file diff --git a/node_modules/mobile-calendar-simple/README.md b/node_modules/mobile-calendar-simple/README.md new file mode 100644 index 0000000..a3283a3 --- /dev/null +++ b/node_modules/mobile-calendar-simple/README.md @@ -0,0 +1,87 @@ + 同程艺龙-多种模式日历插件,支持标准选择模式、酒店入住离开模式、飞机往返模式,可自定义主题色 + * Calendar.vue 可以传参设置主题色,如theme-color="#ff6600 或 #f60"(依赖less),如用sass可在源代码style标签内修改 + + ![](https://file.40017.cn/tcyp/tz/11.png) + ![](https://file.40017.cn/tcyp/tz/22.png) + ![](https://file.40017.cn/tcyp/tz/33.png) + + + +```diff ++ 为了及时响应大家的各种功能需求,可谓不遗余力 ++ 所以希望能在上面github链接里点个star,也算是鼓励一下了! ++ 同时有什么新的需求和建议可以继续联系我,我及时更新... +``` + +github链接 +[链接名称](https://github.com/tanagang/mobile-calendar-simple) + + +### 使用方法 +若在vue-cli项目中安装:npm install mobile-calendar-simple -S (若使用uniapp的工具HBuilderX导入,可以忽略此步骤) +```javascript + + +``` +### 参数如下 + * is-show 控制控件的显示隐藏,模式false + * start-date 默认当天,当mode=2、3的模式下分别为(酒店\往返)的出发日期 + * end-date 当mode=2、3的模式下分别为(酒店\往返)的离开日期 + * between-start 和 between-end 可以操作的日期范围 + * theme-color 日历的主题色,例 '#FF6600'或者简写'#f60'(默认#1C75FF) + * mode 模式选择(默认1标准模式),2酒店模式,3往返模式 + * transition 支持动画,属性为slide + * init-month 初始月份数(默认6个月)最小1个月 + * title 日历顶部的一段文本 + * is-fixed 日历是否定位全屏显示,默认true + + +### 回调函数 + * @callback:日期选择后获取到的数据(所有你想要的都有) +*** + + diff --git a/node_modules/mobile-calendar-simple/package.json b/node_modules/mobile-calendar-simple/package.json new file mode 100644 index 0000000..a1bd0b7 --- /dev/null +++ b/node_modules/mobile-calendar-simple/package.json @@ -0,0 +1,60 @@ +{ + "_from": "mobile-calendar-simple", + "_id": "mobile-calendar-simple@2.4.0", + "_inBundle": false, + "_integrity": "sha512-67Dg/pxQ7EK2uxGrjv4tLOBx+upIErxdtTC27o+luGFmhBtZ3+k1C2DGIzzJYhAF/YsMG9zkSl9XZY0TEt/HOg==", + "_location": "/mobile-calendar-simple", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "mobile-calendar-simple", + "name": "mobile-calendar-simple", + "escapedName": "mobile-calendar-simple", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmmirror.com/mobile-calendar-simple/-/mobile-calendar-simple-2.4.0.tgz", + "_shasum": "1fa196cfd8f10d95042f78599ddfd1d14100c847", + "_spec": "mobile-calendar-simple", + "_where": "D:\\work\\tourist", + "author": { + "name": "tanzheng" + }, + "bugs": { + "url": "https://github.com/tanagang/vue-calendar/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "同程艺龙-多种模式日历插件,支持标准选择模式、酒店入住离开模式、飞机往返模式,可自定义主题色", + "homepage": "https://github.com/tanagang/vue-calendar#readme", + "keywords": [ + "mobile", + "calendar", + "datepicker", + "vue日期范围选择", + "日历", + "日历范围", + "价格日历", + "日历价格", + "酒店日历", + "日历酒店", + "往返" + ], + "license": "ISC", + "main": "Calendar.vue", + "name": "mobile-calendar-simple", + "repository": { + "type": "git", + "url": "git+https://github.com/tanagang/mobile-calendar-simple.git" + }, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "version": "2.4.0" +} diff --git a/node_modules/weixin-js-sdk/LICENSE b/node_modules/weixin-js-sdk/LICENSE new file mode 100644 index 0000000..4045e80 --- /dev/null +++ b/node_modules/weixin-js-sdk/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Yanxi + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/weixin-js-sdk/README.md b/node_modules/weixin-js-sdk/README.md new file mode 100644 index 0000000..62143d2 --- /dev/null +++ b/node_modules/weixin-js-sdk/README.md @@ -0,0 +1,36 @@ +微信官方 js-sdk +---- + +说明: 仅将官方 js-sdk 发布到 npm,支持 CommonJS,便于 browserify, webpack 等直接使用,支持 TypeScript。 + + +官方 JS 源码: https://res.wx.qq.com/open/js/jweixin-1.6.0.js + +官方使用说明: https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html + +安装: +```shell +npm install weixin-js-sdk +``` + +使用: +```javascript +// commonjs +var wx = require('weixin-js-sdk'); + +// es module +import wx from 'weixin-js-sdk' +``` + +### Old versions + +* [1.0.0](https://github.com/yanxi123-com/weixin-js-sdk/tree/1.0.0) +* [1.2.0](https://github.com/yanxi123-com/weixin-js-sdk/tree/1.2.0) + +### 个人主页 + +* [https://yanxi123.com/](https://yanxi123.com/) + +### 感谢 + +TypeScript 定义文件来自 [wx-jssdk-ts](https://github.com/zhaoky/wx-jssdk-ts/blob/master/index.d.ts) diff --git a/node_modules/weixin-js-sdk/index.d.ts b/node_modules/weixin-js-sdk/index.d.ts new file mode 100644 index 0000000..133a421 --- /dev/null +++ b/node_modules/weixin-js-sdk/index.d.ts @@ -0,0 +1,601 @@ +// Type definitions for weixin jssdk 1.6.0 +// Project: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115 +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +declare namespace wx { + type ImageSizeType = "original" | "compressed"; + type ImageSourceType = "album" | "camera"; + type VideoSourceType = "album" | "camera"; + type ApiMethod = + | "onMenuShareTimeline" + | "onMenuShareAppMessage" + | "onMenuShareQQ" + | "onMenuShareWeibo" + | "onMenuShareQZone" + | "updateAppMessageShareData" + | "updateTimelineShareData" + | "startRecord" + | "stopRecord" + | "onVoiceRecordEnd" + | "playVoice" + | "pauseVoice" + | "stopVoice" + | "onVoicePlayEnd" + | "uploadVoice" + | "downloadVoice" + | "chooseImage" + | "previewImage" + | "uploadImage" + | "downloadImage" + | "translateVoice" + | "getNetworkType" + | "openLocation" + | "getLocation" + | "hideOptionMenu" + | "showOptionMenu" + | "hideMenuItems" + | "showMenuItems" + | "hideAllNonBaseMenuItem" + | "showAllNonBaseMenuItem" + | "closeWindow" + | "scanQRCode" + | "chooseWXPay" + | "openProductSpecificView" + | "addCard" + | "chooseCard" + | "openCard"; + // 所有JS接口列表 + type jsApiList = ApiMethod[]; + + // 开放标签列表 + // https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_Open_Tag.html + type openTag = "wx-open-launch-weapp" | "wx-open-launch-app" | "wx-open-subscribe" | "wx-open-audio" + type openTagList = openTag[]; + + // 所有菜单项列表 + // 基本类 + type menuBase = + | "menuItem:exposeArticle" // 举报 + | "menuItem:setFont" // 调整字体 + | "menuItem:dayMode" // 日间模式 + | "menuItem:nightMode" // 夜间模式 + | "menuItem:refresh" // 刷新 + | "menuItem:profile" // 查看公众号(已添加) + | "menuItem:addContact"; // 查看公众号(未添加) + // 传播类 + type menuShare = + | "menuItem:share:appMessage" // 发送给朋友 + | "menuItem:share:timeline" // 分享到朋友圈 + | "menuItem:share:qq" // 分享到QQ + | "menuItem:share:weiboApp" // 分享到Weibo + | "menuItem:favorite" // 收藏 + | "menuItem:share:facebook" // 分享到FB + | "menuItem:share:QZone"; // 分享到 QQ 空间 + + // 保护类 + type menuProtected = + | "menuItem:editTag" // 编辑标签 + | "menuItem:delete" // 删除 + | "menuItem:copyUrl" // 复制链接 + | "menuItem:originPage" // 原网页 + | "menuItem:readMode" // 阅读模式 + | "menuItem:openWithQQBrowser" // 在QQ浏览器中打开 + | "menuItem:openWithSafari" // 在Safari中打开 + | "menuItem:share:email" // 邮件 + | "menuItem:share:brand"; // 一些特殊公众号 + + type menuList = Array; + + function config(conf: { + debug?: boolean; // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 + appId: string; // 必填,公众号的唯一标识 + timestamp: number; // 必填,生成签名的时间戳 + nonceStr: string; // 必填,生成签名的随机串 + signature: string; // 必填,签名,见附录1 + jsApiList?: jsApiList; // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 + openTagList?: openTagList; + }): void; + + interface Resouce { + localId: string; + } + interface BaseParams { + success?(...args: any[]): void; + /** 接口调用失败的回调函数 */ + fail?(...args: any[]): void; + /** 接口取消调用的回调函数 */ + cancel?(...args: any[]): void; + /** 接口调用结束的回调函数(调用成功、失败都会执行) */ + complete?(...args: any[]): void; + } + function ready(fn: () => void): void; + function error(fn: (err: { errMsg: string }) => void): void; + + interface IcheckJsApi extends BaseParams { + jsApiList: jsApiList; // 需要检测的JS接口列表,所有JS接口列表见附录2, + // 以键值对的形式返回,可用的api值true,不可用为false + // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"} + success(res: { + checkResult: { [api: string]: boolean }; + errMsg: string; + }): void; + } + /** + * 判断当前客户端版本是否支持指定JS接口 + * 备注:checkJsApi接口是客户端6.0.2新引入的一个预留接口,第一期开放的接口均可不使用checkJsApi来检测。 + */ + function checkJsApi(params: IcheckJsApi): void; + + interface IonMenuShareTimeline extends BaseParams { + title: string; // 分享标题 + link: string; // 分享链接 + imgUrl: string; // 分享图标 + // 用户确认分享后执行的回调函数 + success(): void; + // 用户取消分享后执行的回调函数 + cancel(): void; + } + /*=============================基础接口================================*/ + /** + * 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareTimeline(params: IonMenuShareTimeline): void; + + interface IonMenuShareAppMessage extends BaseParams { + title: string; // 分享标题 + desc: string; // 分享描述 + link: string; // 分享链接 + imgUrl: string; // 分享图标 + type?: "music" | "video或link" | "link"; // 分享类型,music、video或link,不填默认为link + dataUrl?: string; // 如果type是music或video,则要提供数据链接,默认为空 + // 用户确认分享后执行的回调函数 + success(): void; + // 用户取消分享后执行的回调函数 + cancel(): void; + } + /** + * 获取“分享给朋友”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareAppMessage(params: IonMenuShareAppMessage): void; + + interface IonMenuShareQQ extends BaseParams { + title: string; // 分享标题 + desc: string; // 分享描述 + link: string; // 分享链接 + imgUrl: string; // 分享图标 + // 用户确认分享后执行的回调函数 + success(): void; + // 用户取消分享后执行的回调函数 + cancel(): void; + } + /** + * 获取“分享到QQ”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareQQ(params: IonMenuShareQQ): void; + + interface IonMenuShareWeibo extends BaseParams { + title: string; // 分享标题 + desc: string; // 分享描述 + link: string; // 分享链接 + imgUrl: string; // 分享图标 + // 用户确认分享后执行的回调函数 + success(): void; + // 用户取消分享后执行的回调函数 + cancel(): void; + } + /** + * 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareWeibo(params: IonMenuShareWeibo): void; + + interface IonMenuShareQZone extends BaseParams { + title: string; // 分享标题 + desc: string; // 分享描述 + link: string; // 分享链接 + imgUrl: string; // 分享图标 + // 用户确认分享后执行的回调函数 + success(): void; + // 用户取消分享后执行的回调函数 + cancel(): void; + } + /** + * 获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 + */ + function onMenuShareQZone(params: IonMenuShareQZone): void; + + interface IupdateAppMessageShareData extends BaseParams { + title: string; // 分享标题 + desc: string; // 分享描述 + link: string; // 分享链接 + imgUrl: string; // 分享图标 + // 用户确认分享后执行的回调函数 + success(): void; + } + /** + * 获取“分享给朋友”及“分享到QQ”按钮点击状态及自定义分享内容接口(新) + */ + function updateAppMessageShareData(params: IupdateAppMessageShareData): void; + + interface IupdateTimelineShareData extends BaseParams { + title: string; // 分享标题 + link: string; // 分享链接 + imgUrl: string; // 分享图标 + // 用户确认分享后执行的回调函数 + success(): void; + } + /** + * 获取“分享到朋友圈”及“分享到QQ空间”按钮点击状态及自定义分享内容接口 + */ + function updateTimelineShareData(params: IupdateTimelineShareData): void; + /*=============================基础接口================================*/ + + /*=============================图像接口================================*/ + interface IchooseImage extends BaseParams { + /** 最多可以选择的图片张数,默认9 */ + count?: number; + /** original 原图,compressed 压缩图,默认二者都有 */ + sizeType?: ImageSizeType[]; + /** album 从相册选图,camera 使用相机,默认二者都有 */ + sourceType?: ImageSourceType[]; + /** 成功则返回图片的本地文件路径列表 tempFilePaths */ + success(res: { + sourceType: string; // weixin album camera + localIds: string[]; + errMsg: string; + }): void; + cancel(): void; + } + /** + * 从本地相册选择图片或使用相机拍照。 + */ + function chooseImage(params: IchooseImage): void; + + interface IpreviewImage extends BaseParams { + current: string; // 当前显示图片的http链接 + urls: string[]; // 需要预览的图片http链接列表 + } + /** + * 预览图片接口 + */ + function previewImage(params: IpreviewImage): void; + + interface IuploadResource extends BaseParams { + localId: string; // 需要上传的图片的本地ID,由chooseImage接口获得 + isShowProgressTips: number; // 默认为1,显示进度提示 + // 返回图片的服务器端ID + success(res: { serverId: string }): void; + } + /** + * 上传图片接口 + */ + function uploadImage(params: IuploadResource): void; + + interface IdownloadResource extends BaseParams { + serverId: string; // 需要下载的图片的服务器端ID,由uploadImage接口获得 + isShowProgressTips: number; // 默认为1,显示进度提示 + // 返回图片下载后的本地ID + success(res: Resouce): void; + } + /** + * 下载图片接口 + */ + function downloadImage(params: IdownloadResource): void; + + interface IgetLocalImgData extends BaseParams { + localId: string; // 图片的localID + // localData是图片的base64数据,可以用img标签显示 + success(res: { localData: string }): void; + } + + /** + * 获取本地图片接口 + */ + function getLocalImgData(params: IgetLocalImgData): void; + /*=============================图像接口================================*/ + /*=============================音频接口================================*/ + /** + * 开始录音接口 + */ + function startRecord(): void; + + interface IstopRecord extends BaseParams { + success(res: Resouce): void; + } + /** + * 停止录音接口 + */ + function stopRecord(params: IstopRecord): void; + + interface IonVoiceRecordEnd extends BaseParams { + // 录音时间超过一分钟没有停止的时候会执行 complete 回调 + complete(res: Resouce): void; + } + /** + * 监听录音自动停止接口 + */ + function onVoiceRecordEnd(params: IonVoiceRecordEnd): void; + + interface IplaypausestopVoice extends BaseParams { + localId: string; // 需要播放的音频的本地ID,由stopRecord接口获得 + } + /** + * 播放语音接口 + */ + function playVoice(params: IplaypausestopVoice): void; + + /** + * 暂停播放接口 + */ + function pauseVoice(params: IplaypausestopVoice): void; + /** + * 停止播放接口 + */ + function stopVoice(params: IplaypausestopVoice): void; + + interface IonVoicePlayEnd extends BaseParams { + success(res: Resouce): void; + } + /** + * 监听语音播放完毕接口 + */ + function onVoicePlayEnd(params: IonVoicePlayEnd): void; + /** + * 上传语音接口 + * 备注:上传语音有效期3天,可用微信多媒体接口下载语音到自己的服务器 + * ,此处获得的 serverId 即 media_id,参考文档 + * ../12 / 58bfcfabbd501c7cd77c19bd9cfa8354.html + * 目前多媒体文件下载接口的频率限制为10000次/ 天, + * 如需要调高频率,请邮件weixin - open@qq.com, + * 邮件主题为【申请多媒体接口调用量】,请对你的项目进行简单描述, + * 附上产品体验链接,并对用户量和使用量进行说明。 + */ + function uploadVoice(params: IuploadResource): void; + /** + * 下载语音接口 + */ + function downloadVoice(params: IdownloadResource): void; + /*=============================音频接口================================*/ + /*=============================智能接口================================*/ + + interface ItranslateVoice extends BaseParams { + localId: string; // 需要识别的音频的本地Id,由录音相关接口获得 + isShowProgressTips: number; // 默认为1,显示进度提示 + success(res: { translateResult: string }): void; + } + /** + * 识别音频并返回识别结果接口 + */ + function translateVoice(params: ItranslateVoice): void; + + /*=============================智能接口================================*/ + + /*=============================设备信息================================*/ + type networkType = "2g" | "3g" | "4g" | "wifi"; + interface IgetNetworkType extends BaseParams { + success(res: { networkType: networkType }): void; + } + /** + * 获取网络状态接口 + */ + function getNetworkType(params: IgetNetworkType): void; + /*=============================设备信息================================*/ + + /*=============================地理位置================================*/ + interface IopenLocation extends BaseParams { + latitude: number; // 纬度,浮点数,范围为90 ~ -90 + longitude: number; // 经度,浮点数,范围为180 ~ -180。 + name: string; // 位置名 + address: string; // 地址详情说明 + scale: number; // 地图缩放级别,整形值,范围从1~28。默认为最大 + infoUrl: string; // 在查看位置界面底部显示的超链接,可点击跳转 + } + /** + * 使用微信内置地图查看位置接口 + */ + function openLocation(params: IopenLocation): void; + + interface IgetLocation extends BaseParams { + type: "wgs84" | "gcj02"; // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02' + success(res: { + latitude: number; // 纬度,浮点数,范围为90 ~ -90 + longitude: number; // 经度,浮点数,范围为180 ~ -180。 + speed: number; // 速度,以米/每秒计 + accuracy: number; // 位置精度 + }): void; + } + /** + * 获取地理位置接口 + */ + function getLocation(params: IgetLocation): void; + /*=============================地理位置================================*/ + /*=============================摇一摇周边================================*/ + interface IstartSearchBeacons extends BaseParams { + ticket: string; // 摇周边的业务ticket, 系统自动添加在摇出来的页面链接后面 + // 开启查找完成后的回调函数 + complete(argv: any): void; + } + /** + * 开启查找周边ibeacon设备接口 + * 备注:如需接入摇一摇周边功能,请参考:申请开通摇一摇周边 + */ + function startSearchBeacons(params: IstartSearchBeacons): void; + + interface IstopSearchBeacons extends BaseParams { + // 关闭查找完成后的回调函数 + complete(res: any): void; + } + + /** + * 关闭查找周边ibeacon设备接口 + */ + function stopSearchBeacons(params: IstopSearchBeacons): void; + + interface IonSearchBeacons extends BaseParams { + // 回调函数,可以数组形式取得该商家注册的在周边的相关设备列表 + complete(argv: any): void; + } + /** + * 监听周边ibeacon设备接口 + */ + function onSearchBeacons(params: IonSearchBeacons): void; + /*=============================摇一摇周边================================*/ + /*=============================界面操作================================*/ + + /** + * 隐藏右上角菜单接口 + */ + function hideOptionMenu(): void; + + /** + * 显示右上角菜单接口 + */ + function showOptionMenu(): void; + + /** + * 关闭当前网页窗口接口 + */ + function closeWindow(): void; + + interface IhideMenuItems extends BaseParams { + menuList: Array; // 要隐藏的菜单项,只能隐藏“传播类”和“保护类”按钮,所有menu项见附录3 + } + /** + * 批量隐藏功能按钮接口 + */ + function hideMenuItems(params: IhideMenuItems): void; + + interface IshowMenuItems extends BaseParams { + menuList: menuList; // 要显示的菜单项,所有menu项见附录3 + } + /** + * 批量显示功能按钮接口 + */ + function showMenuItems(params: IshowMenuItems): void; + + /** + * 隐藏所有非基础按钮接口 + * “基本类”按钮详见附录3 + */ + function hideAllNonBaseMenuItem(): void; + + /** + * 显示所有功能按钮接口 + */ + function showAllNonBaseMenuItem(): void; + /*=============================界面操作================================*/ + /*=============================微信扫一扫================================*/ + + type scanType = "qrCode" | "barCode"; + + interface IscanQRCode extends BaseParams { + needResult: 0 | 1; // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, + scanType: scanType[]; // 可以指定扫二维码还是一维码,默认二者都有 + // 当needResult 为 1 时,扫码返回的结果 + success(res: { resultStr: string }): void; + } + /** + * 调起微信扫一扫接口 + */ + function scanQRCode(params: IscanQRCode): void; + /*=============================微信扫一扫================================*/ + /*=============================微信小店================================*/ + + interface IopenProductSpecificView extends BaseParams { + productId: string; // 商品id + viewType: "0" | "1" | "2"; // 0.默认值,普通商品详情页1.扫一扫商品详情页2.小店商品详情页 + } + /** + * 跳转微信商品页接口 + */ + function openProductSpecificView(params: IopenProductSpecificView): void; + /*=============================微信卡券================================*/ + + interface IchooseCard extends BaseParams { + shopId: string; // 门店Id + cardType: string; // 卡券类型 + cardId: string; // 卡券Id + timestamp: number; // 卡券签名时间戳 + nonceStr: string; // 卡券签名随机串 + signType: string; // 签名方式,默认'SHA1' + cardSign: string; // 卡券签名 + success(res: { cardList: string[] }): void; + } + /** + * 拉取适用卡券列表并获取用户选择信息 + */ + function chooseCard(params: IchooseCard): void; + + interface IaddCard extends BaseParams { + cardList: Array<{ + cardId: string; + cardExt: string; + }>; // 需要添加的卡券列表 + success(res: { cardList: string[] }): void; + } + /** + * 批量添加卡券接口 + */ + function addCard(): void; + + interface IopenCard extends BaseParams { + cardList: Array<{ + cardId: string; + code: string; + }>; // 需要打开的卡券列表 + } + /** + * 查看微信卡包中的卡券接口 + */ + function openCard(params: IopenCard): void; + + interface IconsumeAndShareCard extends BaseParams { + cardId: string; + code: string; + } + /** + * 核销后再次赠送卡券接口 + */ + function consumeAndShareCard(params: IconsumeAndShareCard): void; + /*=============================微信卡券================================*/ + /*=============================微信支付================================*/ + + interface IchooseWXPay extends BaseParams { + timestamp: number; // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符 + nonceStr: string; // 支付签名随机串,不长于 32 位 + package: string; // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***) + signType: string; // 签名方式,默认为'SHA1',使用新版支付需传入'MD5' + paySign: string; // 支付签名 + // 支付成功后的回调函数 + success(res: any): void; + } + /** + * 发起一个微信支付请求 + */ + function chooseWXPay(params: IchooseWXPay): void; + /*=============================微信支付================================*/ + /*=============================微信小程序==============================*/ + interface miniProgramMethodsParams extends BaseParams { + url: string; + } + interface miniProgramMethods { + navigateTo(params: miniProgramMethodsParams): void; + navigateBack(params: miniProgramMethodsParams): void; + switchTab(params: miniProgramMethodsParams): void; + reLaunch(params: miniProgramMethodsParams): void; + redirectTo(params: miniProgramMethodsParams): void; + postMessage(params: { data: any }): void; + getEnv(fn: (res: any) => void): void; + } + const miniProgram: miniProgramMethods; + /*=============================微信小程序==============================*/ +} +declare function wx(): void; +/*=============================微信内全局变量==============================*/ +declare global { + interface Window { + WeixinJSBridge: any; + __wxjs_environment: any; + } + const WeixinJSBridge: any; +} +export default wx; diff --git a/node_modules/weixin-js-sdk/index.js b/node_modules/weixin-js-sdk/index.js new file mode 100644 index 0000000..aed0a87 --- /dev/null +++ b/node_modules/weixin-js-sdk/index.js @@ -0,0 +1,891 @@ +!(function (e, n) { + module.exports = n(e); +})(typeof window === "object" && window, function (r, e) { + if (!r) { + console.warn("can't use weixin-js-sdk in server side"); + return; + } + var a, c, n, i, t, o, s, d, l, u, p, f, m, g, h, S, y, I, v, _, w, T; + if (!r.jWeixin) + return ( + (a = { + config: "preVerifyJSAPI", + onMenuShareTimeline: "menu:share:timeline", + onMenuShareAppMessage: "menu:share:appmessage", + onMenuShareQQ: "menu:share:qq", + onMenuShareWeibo: "menu:share:weiboApp", + onMenuShareQZone: "menu:share:QZone", + previewImage: "imagePreview", + getLocation: "geoLocation", + openProductSpecificView: "openProductViewWithPid", + addCard: "batchAddCard", + openCard: "batchViewCard", + chooseWXPay: "getBrandWCPayRequest", + openEnterpriseRedPacket: "getRecevieBizHongBaoRequest", + startSearchBeacons: "startMonitoringBeacons", + stopSearchBeacons: "stopMonitoringBeacons", + onSearchBeacons: "onBeaconsInRange", + consumeAndShareCard: "consumedShareCard", + openAddress: "editAddress", + }), + (c = (function () { + var e, + n = {}; + for (e in a) n[a[e]] = e; + return n; + })()), + (n = r.document), + (i = n.title), + (t = navigator.userAgent.toLowerCase()), + (f = navigator.platform.toLowerCase()), + (o = !(!f.match("mac") && !f.match("win"))), + (s = -1 != t.indexOf("wxdebugger")), + (d = -1 != t.indexOf("micromessenger")), + (l = -1 != t.indexOf("android")), + (u = -1 != t.indexOf("iphone") || -1 != t.indexOf("ipad")), + (p = (f = + t.match(/micromessenger\/(\d+\.\d+\.\d+)/) || + t.match(/micromessenger\/(\d+\.\d+)/)) + ? f[1] + : ""), + (m = { + initStartTime: L(), + initEndTime: 0, + preVerifyStartTime: 0, + preVerifyEndTime: 0, + }), + (g = { + version: 1, + appId: "", + initTime: 0, + preVerifyTime: 0, + networkType: "", + isPreVerifyOk: 1, + systemType: u ? 1 : l ? 2 : -1, + clientVersion: p, + url: encodeURIComponent(location.href), + }), + (h = {}), + (S = { _completes: [] }), + (y = { state: 0, data: {} }), + O(function () { + m.initEndTime = L(); + }), + (I = !1), + (v = []), + (_ = { + config: function (e) { + C("config", (h = e)); + var o = !1 !== h.check; + O(function () { + if (o) + k( + a.config, + { + verifyJsApiList: A(h.jsApiList), + verifyOpenTagList: A(h.openTagList), + }, + ((S._complete = function (e) { + (m.preVerifyEndTime = L()), (y.state = 1), (y.data = e); + }), + (S.success = function (e) { + g.isPreVerifyOk = 0; + }), + (S.fail = function (e) { + S._fail ? S._fail(e) : (y.state = -1); + }), + (t = S._completes).push(function () { + B(); + }), + (S.complete = function (e) { + for (var n = 0, i = t.length; n < i; ++n) t[n](); + S._completes = []; + }), + S) + ), + (m.preVerifyStartTime = L()); + else { + y.state = 1; + for (var e = S._completes, n = 0, i = e.length; n < i; ++n) + e[n](); + S._completes = []; + } + var t; + }), + _.invoke || + ((_.invoke = function (e, n, i) { + r.WeixinJSBridge && WeixinJSBridge.invoke(e, P(n), i); + }), + (_.on = function (e, n) { + r.WeixinJSBridge && WeixinJSBridge.on(e, n); + })); + }, + ready: function (e) { + (0 != y.state || (S._completes.push(e), !d && h.debug)) && e(); + }, + error: function (e) { + p < "6.0.2" || (-1 == y.state ? e(y.data) : (S._fail = e)); + }, + checkJsApi: function (e) { + k( + "checkJsApi", + { jsApiList: A(e.jsApiList) }, + ((e._complete = function (e) { + l && (i = e.checkResult) && (e.checkResult = JSON.parse(i)); + var n, + i = e, + t = i.checkResult; + for (n in t) { + var o = c[n]; + o && ((t[o] = t[n]), delete t[n]); + } + }), + e) + ); + }, + onMenuShareTimeline: function (e) { + M( + a.onMenuShareTimeline, + { + complete: function () { + k( + "shareTimeline", + { + title: e.title || i, + desc: e.title || i, + img_url: e.imgUrl || "", + link: e.link || location.href, + type: e.type || "link", + data_url: e.dataUrl || "", + }, + e + ); + }, + }, + e + ); + }, + onMenuShareAppMessage: function (n) { + M( + a.onMenuShareAppMessage, + { + complete: function (e) { + "favorite" === e.scene + ? k("sendAppMessage", { + title: n.title || i, + desc: n.desc || "", + link: n.link || location.href, + img_url: n.imgUrl || "", + type: n.type || "link", + data_url: n.dataUrl || "", + }) + : k( + "sendAppMessage", + { + title: n.title || i, + desc: n.desc || "", + link: n.link || location.href, + img_url: n.imgUrl || "", + type: n.type || "link", + data_url: n.dataUrl || "", + }, + n + ); + }, + }, + n + ); + }, + onMenuShareQQ: function (e) { + M( + a.onMenuShareQQ, + { + complete: function () { + k( + "shareQQ", + { + title: e.title || i, + desc: e.desc || "", + img_url: e.imgUrl || "", + link: e.link || location.href, + }, + e + ); + }, + }, + e + ); + }, + onMenuShareWeibo: function (e) { + M( + a.onMenuShareWeibo, + { + complete: function () { + k( + "shareWeiboApp", + { + title: e.title || i, + desc: e.desc || "", + img_url: e.imgUrl || "", + link: e.link || location.href, + }, + e + ); + }, + }, + e + ); + }, + onMenuShareQZone: function (e) { + M( + a.onMenuShareQZone, + { + complete: function () { + k( + "shareQZone", + { + title: e.title || i, + desc: e.desc || "", + img_url: e.imgUrl || "", + link: e.link || location.href, + }, + e + ); + }, + }, + e + ); + }, + updateTimelineShareData: function (e) { + k( + "updateTimelineShareData", + { title: e.title, link: e.link, imgUrl: e.imgUrl }, + e + ); + }, + updateAppMessageShareData: function (e) { + k( + "updateAppMessageShareData", + { title: e.title, desc: e.desc, link: e.link, imgUrl: e.imgUrl }, + e + ); + }, + startRecord: function (e) { + k("startRecord", {}, e); + }, + stopRecord: function (e) { + k("stopRecord", {}, e); + }, + onVoiceRecordEnd: function (e) { + M("onVoiceRecordEnd", e); + }, + playVoice: function (e) { + k("playVoice", { localId: e.localId }, e); + }, + pauseVoice: function (e) { + k("pauseVoice", { localId: e.localId }, e); + }, + stopVoice: function (e) { + k("stopVoice", { localId: e.localId }, e); + }, + onVoicePlayEnd: function (e) { + M("onVoicePlayEnd", e); + }, + uploadVoice: function (e) { + k( + "uploadVoice", + { + localId: e.localId, + isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1, + }, + e + ); + }, + downloadVoice: function (e) { + k( + "downloadVoice", + { + serverId: e.serverId, + isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1, + }, + e + ); + }, + translateVoice: function (e) { + k( + "translateVoice", + { + localId: e.localId, + isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1, + }, + e + ); + }, + chooseImage: function (e) { + k( + "chooseImage", + { + scene: "1|2", + count: e.count || 9, + sizeType: e.sizeType || ["original", "compressed"], + sourceType: e.sourceType || ["album", "camera"], + }, + ((e._complete = function (e) { + if (l) { + var n = e.localIds; + try { + n && (e.localIds = JSON.parse(n)); + } catch (e) {} + } + }), + e) + ); + }, + getLocation: function (e) { + (e = e || {}), + k( + a.getLocation, + { type: e.type || "wgs84" }, + ((e._complete = function (e) { + delete e.type; + }), + e) + ); + }, + previewImage: function (e) { + k(a.previewImage, { current: e.current, urls: e.urls }, e); + }, + uploadImage: function (e) { + k( + "uploadImage", + { + localId: e.localId, + isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1, + }, + e + ); + }, + downloadImage: function (e) { + k( + "downloadImage", + { + serverId: e.serverId, + isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1, + }, + e + ); + }, + getLocalImgData: function (e) { + !1 === I + ? ((I = !0), + k( + "getLocalImgData", + { localId: e.localId }, + ((e._complete = function (e) { + var n; + (I = !1), + 0 < v.length && ((n = v.shift()), wx.getLocalImgData(n)); + }), + e) + )) + : v.push(e); + }, + getNetworkType: function (e) { + k( + "getNetworkType", + {}, + ((e._complete = function (e) { + var n = e, + e = n.errMsg, + i = ((n.errMsg = "getNetworkType:ok"), n.subtype); + if ((delete n.subtype, i)) n.networkType = i; + else { + var i = e.indexOf(":"), + t = e.substring(i + 1); + switch (t) { + case "wifi": + case "edge": + case "wwan": + n.networkType = t; + break; + default: + n.errMsg = "getNetworkType:fail"; + } + } + }), + e) + ); + }, + openLocation: function (e) { + k( + "openLocation", + { + latitude: e.latitude, + longitude: e.longitude, + name: e.name || "", + address: e.address || "", + scale: e.scale || 28, + infoUrl: e.infoUrl || "", + }, + e + ); + }, + hideOptionMenu: function (e) { + k("hideOptionMenu", {}, e); + }, + showOptionMenu: function (e) { + k("showOptionMenu", {}, e); + }, + closeWindow: function (e) { + k("closeWindow", {}, (e = e || {})); + }, + hideMenuItems: function (e) { + k("hideMenuItems", { menuList: e.menuList }, e); + }, + showMenuItems: function (e) { + k("showMenuItems", { menuList: e.menuList }, e); + }, + hideAllNonBaseMenuItem: function (e) { + k("hideAllNonBaseMenuItem", {}, e); + }, + showAllNonBaseMenuItem: function (e) { + k("showAllNonBaseMenuItem", {}, e); + }, + scanQRCode: function (e) { + k( + "scanQRCode", + { + needResult: (e = e || {}).needResult || 0, + scanType: e.scanType || ["qrCode", "barCode"], + }, + ((e._complete = function (e) { + var n; + u && + (n = e.resultStr) && + ((n = JSON.parse(n)), + (e.resultStr = n && n.scan_code && n.scan_code.scan_result)); + }), + e) + ); + }, + openAddress: function (e) { + k( + a.openAddress, + {}, + ((e._complete = function (e) { + ((e = e).postalCode = e.addressPostalCode), + delete e.addressPostalCode, + (e.provinceName = e.proviceFirstStageName), + delete e.proviceFirstStageName, + (e.cityName = e.addressCitySecondStageName), + delete e.addressCitySecondStageName, + (e.countryName = e.addressCountiesThirdStageName), + delete e.addressCountiesThirdStageName, + (e.detailInfo = e.addressDetailInfo), + delete e.addressDetailInfo; + }), + e) + ); + }, + openProductSpecificView: function (e) { + k( + a.openProductSpecificView, + { + pid: e.productId, + view_type: e.viewType || 0, + ext_info: e.extInfo, + }, + e + ); + }, + addCard: function (e) { + for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) { + var r = n[t], + r = { card_id: r.cardId, card_ext: r.cardExt }; + i.push(r); + } + k( + a.addCard, + { card_list: i }, + ((e._complete = function (e) { + if ((n = e.card_list)) { + for (var n, i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) { + var o = n[i]; + (o.cardId = o.card_id), + (o.cardExt = o.card_ext), + (o.isSuccess = !!o.is_succ), + delete o.card_id, + delete o.card_ext, + delete o.is_succ; + } + (e.cardList = n), delete e.card_list; + } + }), + e) + ); + }, + chooseCard: function (e) { + k( + "chooseCard", + { + app_id: h.appId, + location_id: e.shopId || "", + sign_type: e.signType || "SHA1", + card_id: e.cardId || "", + card_type: e.cardType || "", + card_sign: e.cardSign, + time_stamp: e.timestamp + "", + nonce_str: e.nonceStr, + }, + ((e._complete = function (e) { + (e.cardList = e.choose_card_info), delete e.choose_card_info; + }), + e) + ); + }, + openCard: function (e) { + for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) { + var r = n[t], + r = { card_id: r.cardId, code: r.code }; + i.push(r); + } + k(a.openCard, { card_list: i }, e); + }, + consumeAndShareCard: function (e) { + k( + a.consumeAndShareCard, + { consumedCardId: e.cardId, consumedCode: e.code }, + e + ); + }, + chooseWXPay: function (e) { + k(a.chooseWXPay, x(e), e), B({ jsApiName: "chooseWXPay" }); + }, + openEnterpriseRedPacket: function (e) { + k(a.openEnterpriseRedPacket, x(e), e); + }, + startSearchBeacons: function (e) { + k(a.startSearchBeacons, { ticket: e.ticket }, e); + }, + stopSearchBeacons: function (e) { + k(a.stopSearchBeacons, {}, e); + }, + onSearchBeacons: function (e) { + M(a.onSearchBeacons, e); + }, + openEnterpriseChat: function (e) { + k( + "openEnterpriseChat", + { useridlist: e.userIds, chatname: e.groupName }, + e + ); + }, + launchMiniProgram: function (e) { + k( + "launchMiniProgram", + { + targetAppId: e.targetAppId, + path: (function (e) { + var n; + if ("string" == typeof e && 0 < e.length) + return ( + (n = e.split("?")[0]), + (n += ".html"), + void 0 !== (e = e.split("?")[1]) ? n + "?" + e : n + ); + })(e.path), + envVersion: e.envVersion, + }, + e + ); + }, + openBusinessView: function (e) { + k( + "openBusinessView", + { + businessType: e.businessType, + queryString: e.queryString || "", + envVersion: e.envVersion, + }, + ((e._complete = function (n) { + if (l) { + var e = n.extraData; + if (e) + try { + n.extraData = JSON.parse(e); + } catch (e) { + n.extraData = {}; + } + } + }), + e) + ); + }, + miniProgram: { + navigateBack: function (e) { + (e = e || {}), + O(function () { + k( + "invokeMiniProgramAPI", + { name: "navigateBack", arg: { delta: e.delta || 1 } }, + e + ); + }); + }, + navigateTo: function (e) { + O(function () { + k( + "invokeMiniProgramAPI", + { name: "navigateTo", arg: { url: e.url } }, + e + ); + }); + }, + redirectTo: function (e) { + O(function () { + k( + "invokeMiniProgramAPI", + { name: "redirectTo", arg: { url: e.url } }, + e + ); + }); + }, + switchTab: function (e) { + O(function () { + k( + "invokeMiniProgramAPI", + { name: "switchTab", arg: { url: e.url } }, + e + ); + }); + }, + reLaunch: function (e) { + O(function () { + k( + "invokeMiniProgramAPI", + { name: "reLaunch", arg: { url: e.url } }, + e + ); + }); + }, + postMessage: function (e) { + O(function () { + k( + "invokeMiniProgramAPI", + { name: "postMessage", arg: e.data || {} }, + e + ); + }); + }, + getEnv: function (e) { + O(function () { + e({ miniprogram: "miniprogram" === r.__wxjs_environment }); + }); + }, + }, + }), + (w = 1), + (T = {}), + n.addEventListener( + "error", + function (e) { + var n, i, t; + l || + ((t = (n = e.target).tagName), + (i = n.src), + "IMG" != t && "VIDEO" != t && "AUDIO" != t && "SOURCE" != t) || + (-1 != i.indexOf("wxlocalresource://") && + (e.preventDefault(), + e.stopPropagation(), + (t = n["wx-id"]) || ((t = w++), (n["wx-id"] = t)), + T[t] || + ((T[t] = !0), + wx.ready(function () { + wx.getLocalImgData({ + localId: i, + success: function (e) { + n.src = e.localData; + }, + }); + })))); + }, + !0 + ), + n.addEventListener( + "load", + function (e) { + var n; + l || + ((n = (e = e.target).tagName), + e.src, + "IMG" != n && "VIDEO" != n && "AUDIO" != n && "SOURCE" != n) || + ((n = e["wx-id"]) && (T[n] = !1)); + }, + !0 + ), + e && (r.wx = r.jWeixin = _), + _ + ); + else return r.jWeixin; + function k(n, e, i) { + r.WeixinJSBridge + ? WeixinJSBridge.invoke(n, P(e), function (e) { + V(n, e, i); + }) + : C(n, i); + } + function M(n, i, t) { + r.WeixinJSBridge + ? WeixinJSBridge.on(n, function (e) { + t && t.trigger && t.trigger(e), V(n, e, i); + }) + : C(n, t || i); + } + function P(e) { + return ( + ((e = e || {}).appId = h.appId), + (e.verifyAppId = h.appId), + (e.verifySignType = "sha1"), + (e.verifyTimestamp = h.timestamp + ""), + (e.verifyNonceStr = h.nonceStr), + (e.verifySignature = h.signature), + e + ); + } + function x(e) { + return { + timeStamp: e.timestamp + "", + nonceStr: e.nonceStr, + package: e.package, + paySign: e.paySign, + signType: e.signType || "SHA1", + }; + } + function V(e, n, i) { + ("openEnterpriseChat" != e && "openBusinessView" !== e) || + (n.errCode = n.err_code), + delete n.err_code, + delete n.err_desc, + delete n.err_detail; + var t = n.errMsg, + e = + (t || + ((t = n.err_msg), + delete n.err_msg, + (t = (function (e, n) { + var i = c[e]; + i && (e = i); + i = "ok"; + { + var t; + n && + ((t = n.indexOf(":")), + ("access denied" != + (i = (i = (i = + -1 != + (i = + -1 != + (i = + "failed" == + (i = "confirm" == (i = n.substring(t + 1)) ? "ok" : i) + ? "fail" + : i).indexOf("failed_") + ? i.substring(7) + : i).indexOf("fail_") + ? i.substring(5) + : i).replace(/_/g, " ")).toLowerCase()) && + "no permission to execute" != i) || + (i = "permission denied"), + "" == + (i = + "config" == e && "function not exist" == i ? "ok" : i)) && + (i = "fail"); + } + return (n = e + ":" + i); + })(e, t)), + (n.errMsg = t)), + (i = i || {})._complete && (i._complete(n), delete i._complete), + (t = n.errMsg || ""), + h.debug && !i.isInnerInvoke && alert(JSON.stringify(n)), + t.indexOf(":")); + switch (t.substring(e + 1)) { + case "ok": + i.success && i.success(n); + break; + case "cancel": + i.cancel && i.cancel(n); + break; + default: + i.fail && i.fail(n); + } + i.complete && i.complete(n); + } + function A(e) { + if (e) { + for (var n = 0, i = e.length; n < i; ++n) { + var t = e[n], + t = a[t]; + t && (e[n] = t); + } + return e; + } + } + function C(e, n) { + var i; + !h.debug || + (n && n.isInnerInvoke) || + ((i = c[e]) && (e = i), + n && n._complete && delete n._complete, + console.log('"' + e + '",', n || "")); + } + function B(n) { + var i; + o || + s || + h.debug || + p < "6.0.2" || + g.systemType < 0 || + ((i = new Image()), + (g.appId = h.appId), + (g.initTime = m.initEndTime - m.initStartTime), + (g.preVerifyTime = m.preVerifyEndTime - m.preVerifyStartTime), + _.getNetworkType({ + isInnerInvoke: !0, + success: function (e) { + g.networkType = e.networkType; + e = + "https://open.weixin.qq.com/sdk/report?v=" + + g.version + + "&o=" + + g.isPreVerifyOk + + "&s=" + + g.systemType + + "&c=" + + g.clientVersion + + "&a=" + + g.appId + + "&n=" + + g.networkType + + "&i=" + + g.initTime + + "&p=" + + g.preVerifyTime + + "&u=" + + g.url + + "&jsapi_name=" + + (n ? n.jsApiName : ""); + i.src = e; + }, + })); + } + function L() { + return new Date().getTime(); + } + function O(e) { + d && + (r.WeixinJSBridge + ? e() + : n.addEventListener && + n.addEventListener("WeixinJSBridgeReady", e, !1)); + } +}); diff --git a/node_modules/weixin-js-sdk/package.json b/node_modules/weixin-js-sdk/package.json new file mode 100644 index 0000000..91b7fb0 --- /dev/null +++ b/node_modules/weixin-js-sdk/package.json @@ -0,0 +1,41 @@ +{ + "_from": "weixin-js-sdk", + "_id": "weixin-js-sdk@1.6.5", + "_inBundle": false, + "_integrity": "sha512-Gph1WAWB2YN/lMOFB/ymb+hbU/wYazzJgu6PMMktCy9cSCeW5wA6Zwt0dpahJbJ+RJEwtTv2x9iIu0U4enuVSQ==", + "_location": "/weixin-js-sdk", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "weixin-js-sdk", + "name": "weixin-js-sdk", + "escapedName": "weixin-js-sdk", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz", + "_shasum": "01fe5220b91dbfe089fc0730d061be0e68271e6a", + "_spec": "weixin-js-sdk", + "_where": "D:\\work\\tourGuide", + "bugs": { + "url": "https://github.com/yanxi123-com/weixin-js-sdk/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "微信官方 js-sdk npm 安装版,支持 typescript", + "homepage": "https://yanxi123.com/", + "license": "MIT", + "main": "index.js", + "name": "weixin-js-sdk", + "repository": { + "type": "git", + "url": "git+https://github.com/yanxi123-com/weixin-js-sdk.git" + }, + "version": "1.6.5" +} diff --git a/package-lock.json b/package-lock.json index b041d00..7f6e5e0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2,6 +2,11 @@ "requires": true, "lockfileVersion": 1, "dependencies": { + "mobile-calendar-simple": { + "version": "2.4.0", + "resolved": "https://registry.npmmirror.com/mobile-calendar-simple/-/mobile-calendar-simple-2.4.0.tgz", + "integrity": "sha512-67Dg/pxQ7EK2uxGrjv4tLOBx+upIErxdtTC27o+luGFmhBtZ3+k1C2DGIzzJYhAF/YsMG9zkSl9XZY0TEt/HOg==" + }, "weixin-js-sdk": { "version": "1.6.5", "resolved": "https://registry.npmmirror.com/weixin-js-sdk/-/weixin-js-sdk-1.6.5.tgz", diff --git a/pages.json b/pages.json index 7110695..ce61180 100644 --- a/pages.json +++ b/pages.json @@ -7,15 +7,9 @@ } }, { - "path": "pages/dialogue/index", + "path": "pages/daoyou/index", "style": { - "navigationBarTitleText": "对话" - } - }, - { - "path": "pages/verification/index", - "style": { - "navigationBarTitleText": "核销" + "navigationBarTitleText": "苏州市导游协会" } }, { @@ -42,45 +36,9 @@ } }, { - "path": "user/myNews", - "style": { - "navigationBarTitleText": "我的消息" - } - }, - { - "path": "user/myNewDetail", - "style": { - "navigationBarTitleText": "消息详情" - } - }, - { - "path": "user/register", - "style": { - "navigationBarTitleText": "注册信息" - } - }, - { - "path": "user/accountPassword", - "style": { - "navigationBarTitleText": "账号密码" - } - }, - { - "path": "order/orderList", - "style": { - "navigationBarTitleText": "我的订单" - } - }, - { - "path": "order/orderDetail", - "style": { - "navigationBarTitleText": "订单详情" - } - }, - { - "path": "user/infoFilling", + "path": "daoyou/detail", "style": { - "navigationBarTitleText": "" + "navigationBarTitleText": "导游详情-app" } } ] @@ -99,17 +57,11 @@ "selectedIconPath": "/static/images/homes.png", "text": "首页" }, - // { - // "pagePath": "pages/dialogue/index", - // "iconPath": "/static/images/dialogue.png", - // "selectedIconPath": "/static/images/dialogues.png", - // "text": "对话" - // }, { - "pagePath": "pages/verification/index", - "iconPath": "/static/images/hx.png", - "selectedIconPath": "/static/images/hxs.png", - "text": "核销" + "pagePath": "pages/daoyou/index", + "iconPath": "/static/images/daoyou.png", + "selectedIconPath": "/static/images/daoyous.png", + "text": "导游" }, { "pagePath": "pages/user/user", diff --git a/pages/daoyou/index.vue b/pages/daoyou/index.vue new file mode 100644 index 0000000..9d085b7 --- /dev/null +++ b/pages/daoyou/index.vue @@ -0,0 +1,541 @@ + + + + + \ No newline at end of file diff --git a/pages/dialogue/index.vue b/pages/dialogue/index.vue deleted file mode 100644 index 5ec09d7..0000000 --- a/pages/dialogue/index.vue +++ /dev/null @@ -1,155 +0,0 @@ - - - - - \ No newline at end of file diff --git a/pages/index/index.vue b/pages/index/index.vue index cfc2a30..c5db1af 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -1,257 +1,383 @@ \ No newline at end of file diff --git a/pages/user/user.vue b/pages/user/user.vue index 7070be8..4980566 100644 --- a/pages/user/user.vue +++ b/pages/user/user.vue @@ -1,23 +1,44 @@