| @@ -0,0 +1,21 @@ | |||||
| # Logs | |||||
| logs | |||||
| *.log | |||||
| npm-debug.log* | |||||
| yarn-debug.log* | |||||
| yarn-error.log* | |||||
| pnpm-debug.log* | |||||
| lerna-debug.log* | |||||
| node_modules | |||||
| .DS_Store | |||||
| dist | |||||
| *.local | |||||
| # Editor directories and files | |||||
| .idea | |||||
| *.suo | |||||
| *.ntvs* | |||||
| *.njsproj | |||||
| *.sln | |||||
| *.sw? | |||||
| @@ -0,0 +1,16 @@ | |||||
| { // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ | |||||
| // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 | |||||
| "version": "0.0", | |||||
| "configurations": [{ | |||||
| "app-plus" : | |||||
| { | |||||
| "launchtype" : "local" | |||||
| }, | |||||
| "default" : | |||||
| { | |||||
| "launchtype" : "local" | |||||
| }, | |||||
| "type" : "uniCloud" | |||||
| } | |||||
| ] | |||||
| } | |||||
| @@ -0,0 +1,20 @@ | |||||
| <!DOCTYPE html> | |||||
| <html> | |||||
| <head> | |||||
| <meta charset="UTF-8" /> | |||||
| <script> | |||||
| var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') || | |||||
| CSS.supports('top: constant(a)')) | |||||
| document.write( | |||||
| '<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' + | |||||
| (coverSupport ? ', viewport-fit=cover' : '') + '" />') | |||||
| </script> | |||||
| <title></title> | |||||
| <!--preload-links--> | |||||
| <!--app-context--> | |||||
| </head> | |||||
| <body> | |||||
| <div id="app"><!--app-html--></div> | |||||
| <script type="module" src="/src/main.ts"></script> | |||||
| </body> | |||||
| </html> | |||||
| @@ -0,0 +1,75 @@ | |||||
| { | |||||
| "name": "uni-preset-vue", | |||||
| "version": "0.0.0", | |||||
| "scripts": { | |||||
| "dev:app": "uni -p app", | |||||
| "dev:app-android": "uni -p app-android", | |||||
| "dev:app-ios": "uni -p app-ios", | |||||
| "dev:custom": "uni -p", | |||||
| "dev:h5": "uni", | |||||
| "dev:h5:ssr": "uni --ssr", | |||||
| "dev:mp-alipay": "uni -p mp-alipay", | |||||
| "dev:mp-baidu": "uni -p mp-baidu", | |||||
| "dev:mp-jd": "uni -p mp-jd", | |||||
| "dev:mp-kuaishou": "uni -p mp-kuaishou", | |||||
| "dev:mp-lark": "uni -p mp-lark", | |||||
| "dev:mp-qq": "uni -p mp-qq", | |||||
| "dev:mp-toutiao": "uni -p mp-toutiao", | |||||
| "dev:mp-weixin": "uni -p mp-weixin", | |||||
| "dev:quickapp-webview": "uni -p quickapp-webview", | |||||
| "dev:quickapp-webview-huawei": "uni -p quickapp-webview-huawei", | |||||
| "dev:quickapp-webview-union": "uni -p quickapp-webview-union", | |||||
| "build:app": "uni build -p app", | |||||
| "build:app-android": "uni build -p app-android", | |||||
| "build:app-ios": "uni build -p app-ios", | |||||
| "build:custom": "uni build -p", | |||||
| "build:h5": "uni build", | |||||
| "build:h5:ssr": "uni build --ssr", | |||||
| "build:mp-alipay": "uni build -p mp-alipay", | |||||
| "build:mp-baidu": "uni build -p mp-baidu", | |||||
| "build:mp-jd": "uni build -p mp-jd", | |||||
| "build:mp-kuaishou": "uni build -p mp-kuaishou", | |||||
| "build:mp-lark": "uni build -p mp-lark", | |||||
| "build:mp-qq": "uni build -p mp-qq", | |||||
| "build:mp-toutiao": "uni build -p mp-toutiao", | |||||
| "build:mp-weixin": "uni build -p mp-weixin", | |||||
| "build:quickapp-webview": "uni build -p quickapp-webview", | |||||
| "build:quickapp-webview-huawei": "uni build -p quickapp-webview-huawei", | |||||
| "build:quickapp-webview-union": "uni build -p quickapp-webview-union", | |||||
| "type-check": "vue-tsc --noEmit" | |||||
| }, | |||||
| "dependencies": { | |||||
| "@dcloudio/uni-app": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-app-plus": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-components": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-h5": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-mp-alipay": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-mp-baidu": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-mp-jd": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-mp-kuaishou": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-mp-lark": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-mp-qq": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-mp-toutiao": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-mp-weixin": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-quickapp-webview": "3.0.0-3081220230817001", | |||||
| "dayjs": "^1.10.4", | |||||
| "less": "^4.2.0", | |||||
| "less-loader": "^11.1.3", | |||||
| "mp-html": "^2.4.1", | |||||
| "vant": "^4.7.3", | |||||
| "vue": "^3.2.45", | |||||
| "vue-i18n": "^9.1.9" | |||||
| }, | |||||
| "devDependencies": { | |||||
| "@dcloudio/types": "^3.3.2", | |||||
| "@dcloudio/uni-automator": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-cli-shared": "3.0.0-3081220230817001", | |||||
| "@dcloudio/uni-stacktracey": "3.0.0-3081220230817001", | |||||
| "@dcloudio/vite-plugin-uni": "3.0.0-3081220230817001", | |||||
| "@vue/runtime-core": "^3.2.45", | |||||
| "@vue/tsconfig": "^0.1.3", | |||||
| "typescript": "^4.9.4", | |||||
| "vite": "4.1.4", | |||||
| "vue-tsc": "^1.0.24" | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,10 @@ | |||||
| /// <reference types='@dcloudio/types' /> | |||||
| import 'vue' | |||||
| declare module '@vue/runtime-core' { | |||||
| type Hooks = App.AppInstance & Page.PageInstance; | |||||
| interface ComponentCustomOptions extends Hooks { | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,17 @@ | |||||
| .DS_Store | |||||
| node_modules/ | |||||
| platforms/ | |||||
| dist/ | |||||
| npm-debug.log* | |||||
| yarn-debug.log* | |||||
| yarn-error.log* | |||||
| package-lock.json | |||||
| unpackage/ | |||||
| # Editor directories and files | |||||
| .idea | |||||
| .vscode | |||||
| *.suo | |||||
| *.ntvs* | |||||
| *.njsproj | |||||
| *.sln | |||||
| @@ -0,0 +1,42 @@ | |||||
| <script> | |||||
| import promisifyAll from './lib/wx-promise-pro/index'; | |||||
| import config from './config/index'; | |||||
| import server from './utils/server'; | |||||
| import api from './api/index'; | |||||
| import util from './utils/util'; | |||||
| import upload from './utils/upload'; | |||||
| import './utils/share'; | |||||
| // 日志调试模式 | |||||
| if (config.debug) { | |||||
| // eslint-disable-next-line no-console | |||||
| console.log('小程序配置:', config); | |||||
| // eslint-disable-next-line no-console | |||||
| // console.log('微信全局配置:', __wxConfig); | |||||
| } | |||||
| // 微信API支持Promise风格 | |||||
| promisifyAll(); | |||||
| export default { | |||||
| globalData:{ | |||||
| config, | |||||
| env: config.env, | |||||
| api, | |||||
| util, | |||||
| userId: uni.getStorageSync('userInfoData').userId, | |||||
| login: server.login, | |||||
| register: server.register, | |||||
| upload | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| }; | |||||
| }, | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| @import 'style/theme.less'; | |||||
| @import 'style/normalize.less'; | |||||
| @import 'style/public.less'; | |||||
| </style> | |||||
| @@ -0,0 +1,21 @@ | |||||
| /** | |||||
| * @name 新闻咨询API | |||||
| * @description 请求示例 | |||||
| * @param {Object} data 请求参数 | |||||
| * @param {String} url 请求地址 | |||||
| * @param {String} method 请求类型 可以不设置,默认GET | |||||
| */ | |||||
| import request from '../utils/request'; | |||||
| /** | |||||
| * 获取工作公告列表 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getNewAPI = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/news/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| export { getNewAPI }; | |||||
| @@ -0,0 +1,103 @@ | |||||
| /** | |||||
| * @name 企业API | |||||
| * @description 请求示例 | |||||
| * @param {Object} data 请求参数 | |||||
| * @param {String} url 请求地址 | |||||
| * @param {String} method 请求类型 可以不设置,默认GET | |||||
| */ | |||||
| import request from '../utils/request'; | |||||
| /** | |||||
| * 获得企业分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getEnterpriseListApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/enterprise/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 删除企业 | |||||
| * @param {*} data | |||||
| */ | |||||
| const DeleteEnterpriseIdApi = function (id) { | |||||
| return request({ | |||||
| url: `/admin-api/people/enterprise/delete?id=${id}`, | |||||
| method: 'delete' | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 创建企业 | |||||
| * @param {*} data | |||||
| */ | |||||
| const createAffiliatedEnterprise = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/enterprise/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 创建诉求 | |||||
| * @param {*} data | |||||
| */ | |||||
| const createAppealApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/appeal/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得诉求分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getAppealListApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/appeal/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得诉求详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getAppealIdApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/appeal/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得优质回复 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getPerfectReplyApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/appeal/perfect/reply/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 更新企业 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getEnterpriseApi = function (id) { | |||||
| return request({ | |||||
| url: `/admin-api/people/enterprise/get?id=${id}`, | |||||
| method: 'get' | |||||
| }); | |||||
| }; | |||||
| export { getEnterpriseListApi, DeleteEnterpriseIdApi, createAffiliatedEnterprise, createAppealApi, getAppealListApi, getAppealIdApi, getPerfectReplyApi, getEnterpriseApi }; | |||||
| @@ -0,0 +1,23 @@ | |||||
| /** | |||||
| * @name API管理 | |||||
| * @description 导出所有的API模块 | |||||
| **/ | |||||
| import * as publicApi from './publicApi.js'; // 公共 API | |||||
| import * as consult from './consult'; // 咨询 | |||||
| import * as enterprise from './enterprise'; // 企业 | |||||
| import * as lifeApi from './lifeApi'; // 生活 | |||||
| import * as peopleApi from './peopleApi'; // 民生 | |||||
| import * as myApi from './myApi'; // 我的 | |||||
| export default { | |||||
| data() { | |||||
| return {}; | |||||
| }, | |||||
| consult, | |||||
| enterprise, | |||||
| publicApi, | |||||
| lifeApi, | |||||
| peopleApi, | |||||
| myApi | |||||
| }; | |||||
| @@ -0,0 +1,45 @@ | |||||
| /** | |||||
| * @name 生活API | |||||
| * @description 请求示例 | |||||
| * @param {Object} data 请求参数 | |||||
| * @param {String} url 请求地址 | |||||
| * @param {String} method 请求类型 可以不设置,默认GET | |||||
| */ | |||||
| import request from '../utils/request'; | |||||
| /** | |||||
| * 生活对应栏目的分页查询 | |||||
| * @param {*} data | |||||
| */ | |||||
| const lifeListApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/life/list', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得商户分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const merchantPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/merchant/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得商户详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const merchantGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/merchant/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| export { lifeListApi, merchantPageApi, merchantGetApi }; | |||||
| @@ -0,0 +1,171 @@ | |||||
| /** | |||||
| * @name 我的 | |||||
| * @description 请求示例 | |||||
| * @param {Object} data 请求参数 | |||||
| * @param {String} url 请求地址 | |||||
| * @param {String} method 请求类型 可以不设置,默认GET | |||||
| */ | |||||
| import request from '../utils/request'; | |||||
| /** | |||||
| * 获取工作公告列表 | |||||
| * @param {*} data | |||||
| */ | |||||
| const nameAuthApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/system/auth/real/name/auth', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获取我的信息 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getUserInfoApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/system/user/profile/get/my/info', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得用户积分规则分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const userIntegralRruleApi = function (data) { | |||||
| return request( | |||||
| { | |||||
| url: '/admin-api/system/user-integral-rule/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }, | |||||
| false | |||||
| ); | |||||
| }; | |||||
| /** | |||||
| * 获得用户积分明细分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const userIntegralDetailApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/system/user-integral-detail/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得用户我的收藏分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const myInfoPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/collection/myInfo/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 统计党员-群众点单数据 | |||||
| * @param {*} data | |||||
| */ | |||||
| const myMasserCountApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/seek-help/count', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 党员认证 | |||||
| * @param {*} data | |||||
| */ | |||||
| const myMemberAuthApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/system/auth/party/member/auth', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 创建群众点单回复 | |||||
| * @param {*} data | |||||
| */ | |||||
| const replyCreateApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/seek-help-reply/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得群众点单回复 | |||||
| * @param {*} data | |||||
| */ | |||||
| const replyCreateGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/seek-help-reply/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 更新群众点单回复 | |||||
| * @param {*} data | |||||
| */ | |||||
| const replyCreatUpdateApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/seek-help-reply/update', | |||||
| method: 'PUT', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 查询优质回复 | |||||
| * @param {*} data | |||||
| */ | |||||
| const replyGoodPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/seek-help-reply/good-page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| // 发送验证码 | |||||
| const sendSmSCodeApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/system/auth/send-sms-code', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| const systemAuthSmsLogin = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/system/auth/sms-login', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| export { | |||||
| nameAuthApi, | |||||
| getUserInfoApi, | |||||
| userIntegralRruleApi, | |||||
| userIntegralDetailApi, | |||||
| myInfoPageApi, | |||||
| myMasserCountApi, | |||||
| myMemberAuthApi, | |||||
| replyCreateApi, | |||||
| replyCreateGetApi, | |||||
| replyCreatUpdateApi, | |||||
| replyGoodPageApi, | |||||
| sendSmSCodeApi, | |||||
| systemAuthSmsLogin | |||||
| }; | |||||
| @@ -0,0 +1,526 @@ | |||||
| /** | |||||
| * @name 民生API | |||||
| * @description 请求示例 | |||||
| * @param {Object} data 请求参数 | |||||
| * @param {String} url 请求地址 | |||||
| * @param {String} method 请求类型 可以不设置,默认GET | |||||
| */ | |||||
| import request from '../utils/request'; | |||||
| /** | |||||
| * 获得议事厅分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const assemblyHallPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/assembly-hall/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得人民调解员分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const mediatorPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/mediator/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得人民调解员详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const mediatorGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/mediator/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得群众点单分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const seekHelpPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/seek-help/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 创建群众点单 | |||||
| * @param {*} data | |||||
| */ | |||||
| const seekHelpCreateApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/seek-help/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得群众点单详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const seekHelpGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/seek-help/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| const massesDetailUpdate = function (data) { | |||||
| // 点单状态变化如:接单 | |||||
| return request({ | |||||
| url: '/admin-api/people/seek-help/update', | |||||
| method: 'put', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| const seekHelpApi = function (data) { | |||||
| // 点单 进行帮助 | |||||
| return request({ | |||||
| url: `/admin-api/people/seek-help/help/${data.id}`, | |||||
| method: 'put', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得法律法规分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const lawsRegulationPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/laws-regulation/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得法律法规详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const lawsRegulationGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/laws-regulation/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得调解案件分页分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const casesListApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/cases/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得调解案件 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getCasesIdApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/cases/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 创建调解案件 | |||||
| * @param {*} data | |||||
| */ | |||||
| const createCasesApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/cases/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得党建引领详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const newsGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/news/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得医院分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const hospitalPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/hospital/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得医院详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const hospitalGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/hospital/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得医生分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const doctorPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/doctor/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得议事厅分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const assemblyIdApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/assemblymen/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得议事厅分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const assemblyhallIdApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/assembly-hall/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得评论分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const commentPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/comment/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 创建评论 | |||||
| * @param {*} data | |||||
| */ | |||||
| const commentCreateApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/comment/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得议事厅详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const assemblyHallGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/assembly-hall/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 星级党支部 | |||||
| * @param {*} data | |||||
| */ | |||||
| const partyBranchApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/party-branch/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得党建引领 - 获得新闻资讯及活动分页 | |||||
| * @param {*} data | |||||
| * @param {*} data.categoryId // 取字典新闻类型的键值 | |||||
| */ | |||||
| const newsPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/news/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 星级党支部详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const partyBranchGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/party-branch/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得优秀党员分页 - 五星党员 | |||||
| * @param {*} data | |||||
| */ | |||||
| const excellentPartMemberPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/excellent-party-member/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获取部门列表 | |||||
| * @param {*} data | |||||
| */ | |||||
| const deptListApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/system/dept/list', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得优秀党员详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const excellentPartMemberGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/excellent-party-member/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得办事处分页 - 最美乡村 | |||||
| * @param {*} data | |||||
| */ | |||||
| const agencyPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/agency/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得村务公开分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const villageAffairsPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/village-affairs/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得办事处分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const agencyContentPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/agency-content/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得群众点单评论 | |||||
| * @param {*} data | |||||
| */ | |||||
| const CrateAppraiseApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/seek-help/appraise', | |||||
| method: 'put', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得办事处内容详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const agencyContentGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/agency-content/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得办事处分页详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const agencyGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/agency/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得办事处内容 + 根据部门id | |||||
| * @param {*} data | |||||
| */ | |||||
| const agencyContentGetOrgIdApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/agency-content/getOrgId', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得办事处内容 + 根据部门id | |||||
| * @param {*} data | |||||
| */ | |||||
| const villageAffairsGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/village-affairs/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得党活动事件分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const partyEventPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/party-event/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得党活动事件分页详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const partyEventGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/party-event/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 创建患者 - 申请签约家庭医生 | |||||
| * @param {*} data | |||||
| */ | |||||
| const patientCreateApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/patient/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获取网格列表 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getGridListApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/grid/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获取网格成员列表 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getGridMemberListApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/grid-member/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| export { | |||||
| assemblyHallPageApi, | |||||
| mediatorPageApi, | |||||
| mediatorGetApi, | |||||
| seekHelpPageApi, | |||||
| seekHelpCreateApi, | |||||
| seekHelpGetApi, | |||||
| lawsRegulationPageApi, | |||||
| lawsRegulationGetApi, | |||||
| massesDetailUpdate, | |||||
| seekHelpApi, | |||||
| casesListApi, | |||||
| getCasesIdApi, | |||||
| createCasesApi, | |||||
| newsGetApi, | |||||
| hospitalPageApi, | |||||
| hospitalGetApi, | |||||
| doctorPageApi, | |||||
| commentPageApi, | |||||
| commentCreateApi, | |||||
| assemblyHallGetApi, | |||||
| newsPageApi, | |||||
| assemblyIdApi, | |||||
| assemblyhallIdApi, | |||||
| partyBranchApi, | |||||
| partyBranchGetApi, | |||||
| excellentPartMemberPageApi, | |||||
| deptListApi, | |||||
| excellentPartMemberGetApi, | |||||
| agencyPageApi, | |||||
| villageAffairsPageApi, | |||||
| agencyContentPageApi, | |||||
| CrateAppraiseApi, | |||||
| agencyContentGetApi, | |||||
| agencyGetApi, | |||||
| agencyContentGetOrgIdApi, | |||||
| villageAffairsGetApi, | |||||
| partyEventPageApi, | |||||
| partyEventGetApi, | |||||
| patientCreateApi, | |||||
| getGridListApi, | |||||
| getGridMemberListApi | |||||
| }; | |||||
| @@ -0,0 +1,209 @@ | |||||
| /** | |||||
| * @name 公共接口API | |||||
| * @description 请求示例 | |||||
| * @param {Object} data 请求参数 | |||||
| * @param {String} url 请求地址 | |||||
| * @param {String} method 请求类型 可以不设置,默认GET | |||||
| */ | |||||
| import request from '../utils/request'; | |||||
| /** | |||||
| * 获得banner图分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getBannerApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/banner/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得字典类型的分页列表 | |||||
| * @param {*} data | |||||
| */ | |||||
| const getDictDataApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/system/dict-data/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 上传文件 | |||||
| * @param {*} data | |||||
| */ | |||||
| const uploadApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/infra/file/upload', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 分类树--查询下级分类 | |||||
| * @param {*} data | |||||
| * @param {*} data.bannerType // 字典TabBar模块 1民生、2生活... | |||||
| * @param {*} data.parentId // 根据上级列表id查询下级列表 | |||||
| */ | |||||
| const recursionApi = function (data) { | |||||
| return request( | |||||
| { | |||||
| url: '/admin-api/people/category/recursion', | |||||
| method: 'get', | |||||
| data: data | |||||
| }, | |||||
| false | |||||
| ); | |||||
| }; | |||||
| /** | |||||
| * 创建点赞 | |||||
| * @param {*} data | |||||
| */ | |||||
| const praiseCreateApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/praise/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 取消点赞 | |||||
| * @param {*} data | |||||
| */ | |||||
| const praiseCancelApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/praise/cancel', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 创建分享 | |||||
| * @param {*} data | |||||
| */ | |||||
| const shareCreateApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/share/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 创建用户收藏 | |||||
| * @param {*} data | |||||
| */ | |||||
| const collectionCreateApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/collection/create', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 取消用户收藏 | |||||
| * @param {*} data | |||||
| */ | |||||
| const collectionCancelApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/collection/cancel', | |||||
| method: 'post', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得案件处理过程分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const casesProcessPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/cases-process/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获取部门树 | |||||
| * @param {*} data | |||||
| */ | |||||
| const deptTreeApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/system/dept/tree', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得服务记录详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const serveRecordGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/serve-record/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得服务记录分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const serveRecordPageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/serve-record/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得线上问诊分页 | |||||
| * @param {*} data | |||||
| */ | |||||
| const inquiriesOnlinePageApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/inquiries-online/page', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| /** | |||||
| * 获得线上问诊详情 | |||||
| * @param {*} data | |||||
| */ | |||||
| const inquiriesOnlineGetApi = function (data) { | |||||
| return request({ | |||||
| url: '/admin-api/people/inquiries-online/get', | |||||
| method: 'get', | |||||
| data: data | |||||
| }); | |||||
| }; | |||||
| export { | |||||
| getBannerApi, | |||||
| getDictDataApi, | |||||
| uploadApi, | |||||
| recursionApi, | |||||
| praiseCreateApi, | |||||
| praiseCancelApi, | |||||
| shareCreateApi, | |||||
| collectionCreateApi, | |||||
| collectionCancelApi, | |||||
| casesProcessPageApi, | |||||
| deptTreeApi, | |||||
| serveRecordGetApi, | |||||
| serveRecordPageApi, | |||||
| inquiriesOnlineGetApi, | |||||
| inquiriesOnlinePageApi | |||||
| }; | |||||
| @@ -0,0 +1,160 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <view v-if="position === 'fixed'" :style="'height: calc(46px + 17rpx);'" /> | |||||
| <view | |||||
| :class="'custom-nav-bar ' + (position === 'fixed' ? 'custom-nav-bar__fixed' : '') + ' ' + (position === 'absolute' ? 'custom-nav-bar__absolute' : '')" | |||||
| :style=" | |||||
| 'padding-top:0px;line-height:20px;z-index: ' + | |||||
| zIndex + | |||||
| ';background-color: ' + | |||||
| (color === 'white' ? 'transparent' : '#ffffff') + | |||||
| ';height:calc(46px + 17rpx);' | |||||
| "> | |||||
| <view :class="'custom-nav-bar-content__content ' + (border ? 'custom-nav-bar__border-bottom' : '')"> | |||||
| <view class="custom-nav-bar-content__left" @click="onClickLeft"> | |||||
| <block v-if="leftArrow || leftText"> | |||||
| <image v-if="leftArrow" class="custom-nav-bar-content__img" | |||||
| :src="color === 'white' ? '/static/images/ic-arrow-white.png' : '/static/images/ic-arrow-black.png'"> | |||||
| </image> | |||||
| <view v-if="leftText" | |||||
| :style="'color: ' + (color === 'white' ? '#FFFFFF' : color === 'black' ? '#333333' : color) + ';'" | |||||
| class="custom-nav-bar-content__text"> | |||||
| {{ leftText }} | |||||
| </view> | |||||
| </block> | |||||
| <slot v-else name="left" /> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| // import vanIcon from '@vant/weapp/icon/index'; | |||||
| // const app = getApp(); | |||||
| export default { | |||||
| components: { | |||||
| // vanIcon | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| // sysConfig: app.globalData.config, | |||||
| height: 46, | |||||
| top: 0 | |||||
| }; | |||||
| }, | |||||
| props: { | |||||
| leftText: { | |||||
| type: String, | |||||
| default: '' | |||||
| }, | |||||
| position: { | |||||
| type: String, | |||||
| default: 'absolute' | |||||
| }, | |||||
| leftArrow: { | |||||
| type: Boolean, | |||||
| default: false | |||||
| }, | |||||
| zIndex: { | |||||
| type: Number, | |||||
| default: 99 | |||||
| }, | |||||
| color: { | |||||
| type: String, | |||||
| default: 'white' | |||||
| }, | |||||
| border: { | |||||
| type: Boolean, | |||||
| default: false | |||||
| }, | |||||
| back: { | |||||
| type: Boolean, | |||||
| default: false | |||||
| } | |||||
| }, | |||||
| options: { | |||||
| virtualHost: true | |||||
| }, | |||||
| methods: { | |||||
| onClickLeft: function() { | |||||
| if (this.leftArrow && !this.back) { | |||||
| uni.navigateBack({ | |||||
| delta: 1 | |||||
| }); | |||||
| return; | |||||
| } | |||||
| this.$emit('customClickLeft'); | |||||
| } | |||||
| }, | |||||
| created: function() {} | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| .custom-nav-bar { | |||||
| width: 100%; | |||||
| height: var(--custom-nav-bar-height, 68rpx); | |||||
| height: 46px; | |||||
| background-color: var(--custom-nav-bar-background-color, #fff); | |||||
| box-sizing: initial; | |||||
| position: relative; | |||||
| text-align: center; | |||||
| -webkit-user-select: none; | |||||
| user-select: none; | |||||
| } | |||||
| .custom-nav-bar__fixed { | |||||
| position: fixed; | |||||
| top: 0; | |||||
| left: 0; | |||||
| } | |||||
| .custom-nav-bar__absolute { | |||||
| position: absolute; | |||||
| left: 0; | |||||
| top: 0; | |||||
| } | |||||
| .custom-nav-bar-content__content { | |||||
| position: relative; | |||||
| height: 100%; | |||||
| padding: 0 40rpx; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| } | |||||
| .custom-nav-bar__border-bottom::before { | |||||
| content: ''; | |||||
| position: absolute; | |||||
| bottom: 0; | |||||
| left: 50%; | |||||
| width: var(--custom-nav-bar-bor-bottom-w, 670rpx); | |||||
| height: 1px; | |||||
| transform: translateX(-50%); | |||||
| background-color: #efefef; | |||||
| } | |||||
| .custom-nav-bar-content__left { | |||||
| height: 100%; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| // position: absolute; | |||||
| // top: 0; | |||||
| // left: 44rpx; | |||||
| } | |||||
| .custom-nav-bar-content__img { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| margin-bottom: 1px; | |||||
| margin-right: 18rpx; | |||||
| } | |||||
| .custom-nav-bar-content__text { | |||||
| font-size: 34rpx; | |||||
| font-weight: 500; | |||||
| color: #333333; | |||||
| line-height: 34rpx; | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,50 @@ | |||||
| /** | |||||
| * @name 常量 | |||||
| * @description 多环境配置 | |||||
| * @param {Boolean} debug 是否开启debug模式 | |||||
| * @param {Object} env 当前的项目环境配置 | |||||
| * @param {Object} systemInfo 当前的系统信息 | |||||
| * @param {Boolean} isIPhone 判断机型是否是iPhone | |||||
| * @param {Boolean} isIPhoneX 判断机型是否是iPhoneX系列 | |||||
| * @param {Boolean} menu 小程序顶部胶囊按钮的信息 | |||||
| * @param {Object} locationInfo 用户的当前位置信息 | |||||
| */ | |||||
| import env from './env'; | |||||
| import amap from "@/lib/wx-map-sdk/amap-wx.130.js"; | |||||
| function getLocationInfo() { | |||||
| const info = {}; | |||||
| uni.getLocation(function(res) { | |||||
| console.log('纬度:' + res.latitude); | |||||
| console.log('经度:' + res.longitude); | |||||
| }); | |||||
| const myAmapFun = new amap.AMapWX({ | |||||
| key: env.aMapKey | |||||
| }); | |||||
| myAmapFun.getRegeo({ | |||||
| success: function (res) { | |||||
| if (!res.length) { | |||||
| return; | |||||
| } | |||||
| Object.assign(info, res[0]); | |||||
| }, | |||||
| fail: function (info) { | |||||
| uni.showModal({ | |||||
| title: info.errMsg | |||||
| }); | |||||
| } | |||||
| }); | |||||
| return info; | |||||
| } | |||||
| export default { | |||||
| data() { | |||||
| return {}; | |||||
| }, | |||||
| debug: true, | |||||
| env, | |||||
| systemInfo: uni.getSystemInfoSync(), | |||||
| menu: uni.getSystemInfoSync(), | |||||
| isIPhone: uni.getSystemInfoSync().model.indexOf('iPhone') >= 0, | |||||
| isIPhoneX: uni.getSystemInfoSync().model.lastIndexOf('X') >= 0, | |||||
| locationInfo: getLocationInfo() | |||||
| }; | |||||
| @@ -0,0 +1,35 @@ | |||||
| /** | |||||
| * @name 小程序环境 | |||||
| * @description 多环境配置 | |||||
| */ | |||||
| const envName = 'development'; | |||||
| const envs = [{ | |||||
| envName: 'production', | |||||
| appID: 'wx736395182f05a1b7', | |||||
| appName: '介休网格通', | |||||
| version: '1.0.0', | |||||
| baseUrl: 'https://jxwgtjm.xuqidata.com:8088', | |||||
| fileUrl: 'https://jiexiu.xuqidata.com:8083/jiexiujumin', | |||||
| loginPath: '/admin-api/system/auth/wechat/app/login', | |||||
| aMapKey: '29103dae675e5788eb011fb77ade8e3f', | |||||
| pubkey: 'Si9veMEER0LGTcLL6xwRWxUB7UCF7jjb00548e0ddc1501de0f' | |||||
| }, | |||||
| { | |||||
| envName: 'development', | |||||
| appID: 'wxcee598c3eb71e48d', | |||||
| appName: '智慧旭奇', | |||||
| version: '1.0.0', | |||||
| baseUrl: 'http://47.92.245.35:5002', | |||||
| // 接口前缀 | |||||
| fileUrl: 'http://47.92.245.35:5009/xq-ssg', | |||||
| // 图片服务器 | |||||
| loginPath: '/admin-api/system/auth/wechat/app/login', | |||||
| // 登陆接口 | |||||
| aMapKey: '6e488a3ed079adbb01de2ecb88ca5905', | |||||
| // 高德地图key | |||||
| pubkey: 'O9eM4Cv5bpi30mgUw9GEkf19KVE8KE8D00a46a6e50bb9465b2' // 吾来对话机器人平台key | |||||
| } | |||||
| ]; | |||||
| const isFind = envs.find((item) => item.envName === envName); | |||||
| export default isFind; | |||||
| @@ -0,0 +1,13 @@ | |||||
| /** | |||||
| * @name Config | |||||
| * @description 项目配置 | |||||
| */ | |||||
| import env from './env'; | |||||
| import constant from './constant'; | |||||
| export default { | |||||
| data() { | |||||
| return {}; | |||||
| }, | |||||
| env, | |||||
| ...constant | |||||
| }; | |||||
| @@ -0,0 +1,8 @@ | |||||
| /// <reference types="vite/client" /> | |||||
| declare module '*.vue' { | |||||
| import { DefineComponent } from 'vue' | |||||
| // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/ban-types | |||||
| const component: DefineComponent<{}, {}, any> | |||||
| export default component | |||||
| } | |||||
| @@ -0,0 +1,573 @@ | |||||
| <template> | |||||
| <view | |||||
| :class="'wux-class ' + wrapCls + ' ' + animateCss" | |||||
| @tap="onTap" | |||||
| @touchmove.stop.prevent="parseEventDynamicCode($event, disableScroll ? 'noop' : '')" | |||||
| @transitionend="onTransitionEnd" | |||||
| @animationend="onAnimationEnd" | |||||
| v-if="animateStatus !== 'unmounted'" | |||||
| :style="extStyle" | |||||
| > | |||||
| <slot></slot> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| 'use strict'; | |||||
| var _baseComponent = _interopRequireDefault(require('../helpers/baseComponent')); | |||||
| var _styleToCssString = _interopRequireDefault(require('../helpers/styleToCssString')); | |||||
| function _interopRequireDefault(t) { | |||||
| return t && t.__esModule | |||||
| ? t | |||||
| : { | |||||
| default: t | |||||
| }; | |||||
| } | |||||
| function _typeof(t) { | |||||
| return (_typeof = | |||||
| 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator | |||||
| ? function (t) { | |||||
| return typeof t; | |||||
| } | |||||
| : function (t) { | |||||
| return t && 'function' == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? 'symbol' : typeof t; | |||||
| })(t); | |||||
| } | |||||
| var ENTER = 'enter'; | |||||
| var ENTERING = 'entering'; | |||||
| var ENTERED = 'entered'; | |||||
| var EXIT = 'exit'; | |||||
| var EXITING = 'exiting'; | |||||
| var EXITED = 'exited'; | |||||
| var UNMOUNTED = 'unmounted'; | |||||
| var TRANSITION = 'transition'; | |||||
| var ANIMATION = 'animation'; | |||||
| var TIMEOUT = 16.666666666666668; | |||||
| var defaultClassNames = { | |||||
| enter: '', | |||||
| enterActive: '', | |||||
| enterDone: '', | |||||
| exit: '', | |||||
| exitActive: '', | |||||
| exitDone: '' | |||||
| }; | |||||
| (0, _baseComponent.default)({ | |||||
| properties: { | |||||
| in: { | |||||
| type: Boolean, | |||||
| value: false, | |||||
| observer: function (t) { | |||||
| if (this.isMounting) { | |||||
| this.updated(t); | |||||
| } | |||||
| } | |||||
| }, | |||||
| classNames: { | |||||
| type: null, | |||||
| value: defaultClassNames | |||||
| }, | |||||
| duration: { | |||||
| type: null, | |||||
| value: null | |||||
| }, | |||||
| type: { | |||||
| type: String, | |||||
| value: TRANSITION | |||||
| }, | |||||
| appear: { | |||||
| type: Boolean, | |||||
| value: false | |||||
| }, | |||||
| enter: { | |||||
| type: Boolean, | |||||
| value: true | |||||
| }, | |||||
| exit: { | |||||
| type: Boolean, | |||||
| value: true | |||||
| }, | |||||
| mountOnEnter: { | |||||
| type: Boolean, | |||||
| value: true | |||||
| }, | |||||
| unmountOnExit: { | |||||
| type: Boolean, | |||||
| value: true | |||||
| }, | |||||
| wrapCls: { | |||||
| type: String, | |||||
| value: '' | |||||
| }, | |||||
| wrapStyle: { | |||||
| type: [String, Object], | |||||
| value: '', | |||||
| observer: function (t) { | |||||
| this.setData({ | |||||
| extStyle: (0, _styleToCssString.default)(t) | |||||
| }); | |||||
| } | |||||
| }, | |||||
| disableScroll: { | |||||
| type: Boolean, | |||||
| value: false | |||||
| } | |||||
| }, | |||||
| data: { | |||||
| animateCss: '', | |||||
| animateStatus: EXITED, | |||||
| isMounting: false, | |||||
| extStyle: '' | |||||
| }, | |||||
| methods: { | |||||
| addEventListener: function () { | |||||
| var t = this.animateStatus; | |||||
| var e = this.getTimeouts(); | |||||
| var a = e.enter; | |||||
| var n = e.exit; | |||||
| if (t === ENTERING && !a && this.enter) { | |||||
| this.performEntered(); | |||||
| } | |||||
| if (t === EXITING && !n && this.exit) { | |||||
| this.performExited(); | |||||
| } | |||||
| }, | |||||
| onTransitionEnd: function () { | |||||
| if (this.type === TRANSITION) { | |||||
| this.addEventListener(); | |||||
| } | |||||
| }, | |||||
| onAnimationEnd: function () { | |||||
| if (this.type === ANIMATION) { | |||||
| this.addEventListener(); | |||||
| } | |||||
| }, | |||||
| updateStatus: function (t, e) { | |||||
| var a = 1 < arguments.length && void 0 !== e && e; | |||||
| if (null !== t) { | |||||
| this.cancelNextCallback(); | |||||
| this.isAppearing = a; | |||||
| t === ENTERING ? this.performEnter() : this.performExit(); | |||||
| } | |||||
| }, | |||||
| performEnter: function () { | |||||
| var that = this; | |||||
| var e = this.getClassNames(ENTER); | |||||
| var a = e.className; | |||||
| var n = e.activeClassName; | |||||
| var i = this.getTimeouts().enter; | |||||
| var s = { | |||||
| animateStatus: ENTER, | |||||
| animateCss: a | |||||
| }; | |||||
| var r = { | |||||
| animateStatus: ENTERING, | |||||
| animateCss: ''.concat(a, ' ').concat(n) | |||||
| }; | |||||
| if (!this.isAppearing && !this.enter) { | |||||
| return this.performEntered(); | |||||
| } | |||||
| this.safeSetData(s, function () { | |||||
| that.$emit('change', { | |||||
| detail: { | |||||
| animateStatus: ENTER | |||||
| } | |||||
| }); | |||||
| that.$emit(ENTER, { | |||||
| detail: { | |||||
| isAppearing: that.isAppearing | |||||
| } | |||||
| }); | |||||
| that.delayHandler(TIMEOUT, function () { | |||||
| that.safeSetData(r, function () { | |||||
| that.$emit('change', { | |||||
| detail: { | |||||
| animateStatus: ENTERING | |||||
| } | |||||
| }); | |||||
| that.$emit(ENTERING, { | |||||
| detail: { | |||||
| isAppearing: that.isAppearing | |||||
| } | |||||
| }); | |||||
| if (i) { | |||||
| that.delayHandler(i, that.performEntered); | |||||
| } | |||||
| }); | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| performEntered: function () { | |||||
| var that = this; | |||||
| var e = this.getClassNames(ENTER).doneClassName; | |||||
| var a = { | |||||
| animateStatus: ENTERED, | |||||
| animateCss: e | |||||
| }; | |||||
| this.safeSetData(a, function () { | |||||
| that.$emit('change', { | |||||
| detail: { | |||||
| animateStatus: ENTERED | |||||
| } | |||||
| }); | |||||
| that.$emit(ENTERED, { | |||||
| detail: { | |||||
| isAppearing: that.isAppearing | |||||
| } | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| performExit: function () { | |||||
| var that = this; | |||||
| var e = this.getClassNames(EXIT); | |||||
| var a = e.className; | |||||
| var n = e.activeClassName; | |||||
| var i = this.getTimeouts().exit; | |||||
| var s = { | |||||
| animateStatus: EXIT, | |||||
| animateCss: a | |||||
| }; | |||||
| var r = { | |||||
| animateStatus: EXITING, | |||||
| animateCss: ''.concat(a, ' ').concat(n) | |||||
| }; | |||||
| if (!this.exit) { | |||||
| return this.performExited(); | |||||
| } | |||||
| this.safeSetData(s, function () { | |||||
| that.$emit('change', { | |||||
| detail: { | |||||
| animateStatus: EXIT | |||||
| } | |||||
| }); | |||||
| that.$emit(EXIT); | |||||
| that.delayHandler(TIMEOUT, function () { | |||||
| that.safeSetData(r, function () { | |||||
| that.$emit('change', { | |||||
| detail: { | |||||
| animateStatus: EXITING | |||||
| } | |||||
| }); | |||||
| that.$emit(EXITING); | |||||
| if (i) { | |||||
| that.delayHandler(i, that.performExited); | |||||
| } | |||||
| }); | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| performExited: function () { | |||||
| var that = this; | |||||
| var e = this.getClassNames(EXIT).doneClassName; | |||||
| var a = { | |||||
| animateStatus: EXITED, | |||||
| animateCss: e | |||||
| }; | |||||
| this.safeSetData(a, function () { | |||||
| that.$emit('change', { | |||||
| detail: { | |||||
| animateStatus: EXITED | |||||
| } | |||||
| }); | |||||
| that.$emit(EXITED); | |||||
| if (that.unmountOnExit) { | |||||
| that.setData( | |||||
| { | |||||
| animateStatus: UNMOUNTED | |||||
| }, | |||||
| function () { | |||||
| that.$emit('change', { | |||||
| detail: { | |||||
| animateStatus: UNMOUNTED | |||||
| } | |||||
| }); | |||||
| } | |||||
| ); | |||||
| } | |||||
| }); | |||||
| }, | |||||
| getClassNames: function (t) { | |||||
| var e = this.classNames; | |||||
| return { | |||||
| className: 'string' != typeof e ? e[t] : ''.concat(e, '-').concat(t), | |||||
| activeClassName: 'string' != typeof e ? e[''.concat(t, 'Active')] : ''.concat(e, '-').concat(t, '-active'), | |||||
| doneClassName: 'string' != typeof e ? e[''.concat(t, 'Done')] : ''.concat(e, '-').concat(t, '-done') | |||||
| }; | |||||
| }, | |||||
| getTimeouts: function () { | |||||
| var t = this.duration; | |||||
| return null !== t && 'object' === _typeof(t) | |||||
| ? { | |||||
| enter: t.enter, | |||||
| exit: t.exit | |||||
| } | |||||
| : 'number' == typeof t | |||||
| ? { | |||||
| enter: t, | |||||
| exit: t | |||||
| } | |||||
| : {}; | |||||
| }, | |||||
| updated: function (t) { | |||||
| var that = this; | |||||
| var a = (this.pendingData || this).animateStatus; | |||||
| var n = null; | |||||
| t | |||||
| ? (a === UNMOUNTED && | |||||
| ((a = EXITED), | |||||
| this.setData( | |||||
| { | |||||
| animateStatus: EXITED | |||||
| }, | |||||
| function () { | |||||
| that.$emit('change', { | |||||
| detail: { | |||||
| animateStatus: EXITED | |||||
| } | |||||
| }); | |||||
| } | |||||
| )), | |||||
| a !== ENTER && a !== ENTERING && a !== ENTERED && (n = ENTERING)) | |||||
| : (a !== ENTER && a !== ENTERING && a !== ENTERED) || (n = EXITING); | |||||
| this.updateStatus(n); | |||||
| }, | |||||
| delayHandler: function (t, e) { | |||||
| if (t) { | |||||
| this.setNextCallback(e); | |||||
| setTimeout(this.nextCallback, t); | |||||
| } | |||||
| }, | |||||
| onTap: function () { | |||||
| this.$emit('click'); | |||||
| }, | |||||
| noop: function () {} | |||||
| }, | |||||
| attached: function () { | |||||
| var that = this; | |||||
| var e = null; | |||||
| var a = null; | |||||
| this.in ? (this.appear ? ((e = EXITED), (a = ENTERING)) : (e = ENTERED)) : (e = this.unmountOnExit || this.mountOnEnter ? UNMOUNTED : EXITED); | |||||
| this.safeSetData( | |||||
| { | |||||
| animateStatus: e, | |||||
| isMounting: true | |||||
| }, | |||||
| function () { | |||||
| that.$emit('change', { | |||||
| detail: { | |||||
| animateStatus: e | |||||
| } | |||||
| }); | |||||
| that.updateStatus(a, true); | |||||
| } | |||||
| ); | |||||
| } | |||||
| }); | |||||
| </script> | |||||
| <style> | |||||
| .wux-animate--fadeIn-enter { | |||||
| transition: opacity 0.3s; | |||||
| opacity: 0; | |||||
| } | |||||
| .wux-animate--fadeIn-enter-active, | |||||
| .wux-animate--fadeIn-enter-done { | |||||
| opacity: 1; | |||||
| } | |||||
| .wux-animate--fadeIn-exit { | |||||
| transition: opacity 0.3s; | |||||
| opacity: 1; | |||||
| } | |||||
| .wux-animate--fadeIn-exit-active, | |||||
| .wux-animate--fadeIn-exit-done { | |||||
| opacity: 0; | |||||
| } | |||||
| .wux-animate--fadeInDown-enter { | |||||
| transition: opacity 0.3s, transform 0.3s; | |||||
| opacity: 0; | |||||
| transform: translate3d(0, -100%, 0); | |||||
| } | |||||
| .wux-animate--fadeInDown-enter-active, | |||||
| .wux-animate--fadeInDown-enter-done { | |||||
| opacity: 1; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--fadeInDown-exit { | |||||
| transition: opacity 0.3s, transform 0.3s; | |||||
| opacity: 1; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--fadeInDown-exit-active, | |||||
| .wux-animate--fadeInDown-exit-done { | |||||
| opacity: 0; | |||||
| transform: translate3d(0, -100%, 0); | |||||
| } | |||||
| .wux-animate--fadeInLeft-enter { | |||||
| transition: opacity 0.3s, transform 0.3s; | |||||
| opacity: 0; | |||||
| transform: translate3d(-100%, 0, 0); | |||||
| } | |||||
| .wux-animate--fadeInLeft-enter-active, | |||||
| .wux-animate--fadeInLeft-enter-done { | |||||
| opacity: 1; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--fadeInLeft-exit { | |||||
| transition: opacity 0.3s, transform 0.3s; | |||||
| opacity: 1; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--fadeInLeft-exit-active, | |||||
| .wux-animate--fadeInLeft-exit-done { | |||||
| opacity: 0; | |||||
| transform: translate3d(-100%, 0, 0); | |||||
| } | |||||
| .wux-animate--fadeInRight-enter { | |||||
| transition: opacity 0.3s, transform 0.3s; | |||||
| opacity: 0; | |||||
| transform: translate3d(100%, 0, 0); | |||||
| } | |||||
| .wux-animate--fadeInRight-enter-active, | |||||
| .wux-animate--fadeInRight-enter-done { | |||||
| opacity: 1; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--fadeInRight-exit { | |||||
| transition: opacity 0.3s, transform 0.3s; | |||||
| opacity: 1; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--fadeInRight-exit-active, | |||||
| .wux-animate--fadeInRight-exit-done { | |||||
| opacity: 0; | |||||
| transform: translate3d(100%, 0, 0); | |||||
| } | |||||
| .wux-animate--fadeInUp-enter { | |||||
| transition: opacity 0.3s, transform 0.3s; | |||||
| opacity: 0; | |||||
| transform: translate3d(0, 100%, 0); | |||||
| } | |||||
| .wux-animate--fadeInUp-enter-active, | |||||
| .wux-animate--fadeInUp-enter-done { | |||||
| opacity: 1; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--fadeInUp-exit { | |||||
| transition: opacity 0.3s, transform 0.3s; | |||||
| opacity: 1; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--fadeInUp-exit-active, | |||||
| .wux-animate--fadeInUp-exit-done { | |||||
| opacity: 0; | |||||
| transform: translate3d(0, 100%, 0); | |||||
| } | |||||
| .wux-animate--slideInUp-enter { | |||||
| transition: transform 0.3s; | |||||
| transform: translate3d(0, 100%, 0); | |||||
| visibility: visible; | |||||
| } | |||||
| .wux-animate--slideInUp-enter-active, | |||||
| .wux-animate--slideInUp-enter-done { | |||||
| transform: translateZ(0); | |||||
| } | |||||
| .wux-animate--slideInUp-exit { | |||||
| transition: transform 0.3s; | |||||
| transform: translateZ(0); | |||||
| } | |||||
| .wux-animate--slideInUp-exit-active, | |||||
| .wux-animate--slideInUp-exit-done { | |||||
| transform: translate3d(0, 100%, 0); | |||||
| visibility: visible; | |||||
| } | |||||
| .wux-animate--slideInDown-enter { | |||||
| transition: transform 0.3s; | |||||
| transform: translate3d(0, -100%, 0); | |||||
| visibility: visible; | |||||
| } | |||||
| .wux-animate--slideInDown-enter-active, | |||||
| .wux-animate--slideInDown-enter-done { | |||||
| transform: translateZ(0); | |||||
| } | |||||
| .wux-animate--slideInDown-exit { | |||||
| transition: transform 0.3s; | |||||
| transform: translateZ(0); | |||||
| } | |||||
| .wux-animate--slideInDown-exit-active, | |||||
| .wux-animate--slideInDown-exit-done { | |||||
| transform: translate3d(0, -100%, 0); | |||||
| visibility: visible; | |||||
| } | |||||
| .wux-animate--slideInLeft-enter { | |||||
| transition: transform 0.3s; | |||||
| transform: translate3d(-100%, 0, 0); | |||||
| visibility: visible; | |||||
| } | |||||
| .wux-animate--slideInLeft-enter-active, | |||||
| .wux-animate--slideInLeft-enter-done { | |||||
| transform: translateZ(0); | |||||
| } | |||||
| .wux-animate--slideInLeft-exit { | |||||
| transition: transform 0.3s; | |||||
| transform: translateZ(0); | |||||
| } | |||||
| .wux-animate--slideInLeft-exit-active, | |||||
| .wux-animate--slideInLeft-exit-done { | |||||
| transform: translate3d(-100%, 0, 0); | |||||
| visibility: visible; | |||||
| } | |||||
| .wux-animate--slideInRight-enter { | |||||
| transition: transform 0.3s; | |||||
| transform: translate3d(100%, 0, 0); | |||||
| visibility: visible; | |||||
| } | |||||
| .wux-animate--slideInRight-enter-active, | |||||
| .wux-animate--slideInRight-enter-done { | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--slideInRight-exit { | |||||
| transition: transform 0.3s; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--slideInRight-exit-active, | |||||
| .wux-animate--slideInRight-exit-done { | |||||
| transform: translate3d(100%, 0, 0); | |||||
| visibility: visible; | |||||
| } | |||||
| .wux-animate--zoom-enter { | |||||
| transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); | |||||
| opacity: 0.01; | |||||
| transform: scale(0.75); | |||||
| } | |||||
| .wux-animate--zoom-enter-active, | |||||
| .wux-animate--zoom-enter-done { | |||||
| opacity: 1; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--zoom-exit { | |||||
| transition: all 0.25s linear; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--zoom-exit-active, | |||||
| .wux-animate--zoom-exit-done { | |||||
| opacity: 0.01; | |||||
| transform: scale(0.75); | |||||
| } | |||||
| .wux-animate--punch-enter { | |||||
| transition: all 0.3s cubic-bezier(0.215, 0.61, 0.355, 1); | |||||
| opacity: 0.01; | |||||
| transform: scale(1.35); | |||||
| } | |||||
| .wux-animate--punch-enter-active, | |||||
| .wux-animate--punch-enter-done { | |||||
| opacity: 1; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--punch-exit { | |||||
| transition: all 0.25s linear; | |||||
| transform: none; | |||||
| } | |||||
| .wux-animate--punch-exit-active, | |||||
| .wux-animate--punch-exit-done { | |||||
| opacity: 0.01; | |||||
| transform: scale(1.35); | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,87 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <wux-animation-group :wux-class="classes.wrap" :in="in" :classNames="classNames" @click="onClick" :wrapStyle="" disableScroll /> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| 'use strict'; | |||||
| import wuxAnimationGroup from '../animation-group/index'; | |||||
| var _baseComponent = _interopRequireDefault(require('../helpers/baseComponent')); | |||||
| function _interopRequireDefault(e) { | |||||
| return e && e.__esModule | |||||
| ? e | |||||
| : { | |||||
| default: e | |||||
| }; | |||||
| } | |||||
| (0, _baseComponent.default)({ | |||||
| properties: { | |||||
| prefixCls: { | |||||
| type: String, | |||||
| value: 'wux-backdrop' | |||||
| }, | |||||
| transparent: { | |||||
| type: Boolean, | |||||
| value: false | |||||
| }, | |||||
| zIndex: { | |||||
| type: Number, | |||||
| value: 1000 | |||||
| }, | |||||
| classNames: { | |||||
| type: null, | |||||
| value: 'wux-animate--fadeIn' | |||||
| } | |||||
| }, | |||||
| computed: { | |||||
| classes: [ | |||||
| 'prefixCls, transparent', | |||||
| function (e, t) { | |||||
| return { | |||||
| wrap: t ? ''.concat(e, '--transparent') : e | |||||
| }; | |||||
| } | |||||
| ] | |||||
| }, | |||||
| methods: { | |||||
| retain: function () { | |||||
| ('number' == typeof this.backdropHolds && this.backdropHolds) || (this.backdropHolds = 0); | |||||
| this.backdropHolds = this.backdropHolds + 1; | |||||
| if (1 === this.backdropHolds) { | |||||
| this.setData({ | |||||
| in: true | |||||
| }); | |||||
| } | |||||
| }, | |||||
| release: function () { | |||||
| if (1 === this.backdropHolds) { | |||||
| this.setData({ | |||||
| in: false | |||||
| }); | |||||
| } | |||||
| this.backdropHolds = Math.max(0, this.backdropHolds - 1); | |||||
| }, | |||||
| onClick: function () { | |||||
| this.$emit('click'); | |||||
| } | |||||
| } | |||||
| }); | |||||
| </script> | |||||
| <style> | |||||
| .wux-backdrop { | |||||
| background: rgba(0, 0, 0, 0.4); | |||||
| } | |||||
| .wux-backdrop, | |||||
| .wux-backdrop--transparent { | |||||
| position: fixed; | |||||
| z-index: 1000; | |||||
| top: 0; | |||||
| right: 0; | |||||
| left: 0; | |||||
| bottom: 0; | |||||
| } | |||||
| .wux-backdrop--transparent { | |||||
| background: 0 0; | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,489 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <wux-popup position="bottom" :visible="visible" safeArea="bottom" @close="onPopupClose"> | |||||
| <view :class="'wux-class ' + classes.wrap"> | |||||
| <view :class="classes.hd"> | |||||
| <view :class="classes.title" v-if="title">{{ title }}</view> | |||||
| <view :class="classes.menus" v-if="activeOptions.length"> | |||||
| <block v-for="(item, index) in activeOptions" :key="index"> | |||||
| <view :class="classes.menu + ' ' + (activeIndex === index ? prefixCls + '__menu--active' : '')" :data-menu-index="index" @tap="onMenuClick"> | |||||
| {{ item[fieldNames['label']] }} | |||||
| </view> | |||||
| </block> | |||||
| </view> | |||||
| </view> | |||||
| <view :class="classes.bd" :style="bodyStyle"> | |||||
| <block v-for="(option, optionIndex) in showOptions" :key="optionIndex"> | |||||
| <view :class="classes.inner"> | |||||
| <scroll-view scroll-y :class="'wux-scroll-view-class ' + classes.scrollView"> | |||||
| <view :class="classes.option"> | |||||
| <block v-for="(item, index) in option" :key="index"> | |||||
| <view | |||||
| :class=" | |||||
| classes.item + | |||||
| ' ' + | |||||
| (activeValue[optionIndex] === item[fieldNames['value']] ? prefixCls + '__item--active' : '') + | |||||
| ' ' + | |||||
| (item.disabled ? prefixCls + '__item--disabled' : '') | |||||
| " | |||||
| :data-option-index="optionIndex" | |||||
| :data-item="item" | |||||
| @tap="onItemSelect" | |||||
| > | |||||
| <text>{{ item[fieldNames['label']] }}</text> | |||||
| <icon | |||||
| :class="classes.icon" | |||||
| type="success_no_circle" | |||||
| size="16" | |||||
| color="#ef473a" | |||||
| v-if="activeValue[optionIndex] === item[fieldNames['value']]" | |||||
| /> | |||||
| </view> | |||||
| </block> | |||||
| </view> | |||||
| </scroll-view> | |||||
| </view> | |||||
| </block> | |||||
| </view> | |||||
| </view> | |||||
| </wux-popup> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| 'use strict'; | |||||
| import wuxPopup from '../popup/index'; | |||||
| var _baseComponent = _interopRequireDefault(require('../helpers/baseComponent')); | |||||
| var _classNames = _interopRequireDefault(require('../helpers/classNames')); | |||||
| var _arrayTreeFilter = _interopRequireDefault(require('../helpers/arrayTreeFilter')); | |||||
| function _interopRequireDefault(e) { | |||||
| return e && e.__esModule | |||||
| ? e | |||||
| : { | |||||
| default: e | |||||
| }; | |||||
| } | |||||
| function _defineProperty(e, t, a) { | |||||
| t in e | |||||
| ? Object.defineProperty(e, t, { | |||||
| value: a, | |||||
| enumerable: true, | |||||
| configurable: true, | |||||
| writable: true | |||||
| }) | |||||
| : (e[t] = a); | |||||
| return e; | |||||
| } | |||||
| function _toConsumableArray(e) { | |||||
| return _arrayWithoutHoles(e) || _iterableToArray(e) || _nonIterableSpread(); | |||||
| } | |||||
| function _nonIterableSpread() { | |||||
| throw new TypeError('Invalid attempt to spread non-iterable instance'); | |||||
| } | |||||
| function _iterableToArray(e) { | |||||
| if (Symbol.iterator in Object(e) || '[object Arguments]' === Object.prototype.toString.call(e)) { | |||||
| return Array.from(e); | |||||
| } | |||||
| } | |||||
| function _arrayWithoutHoles(e) { | |||||
| if (Array.isArray(e)) { | |||||
| for (t = 0, a = new Array(e.length), void 0; t < e.length; t++) { | |||||
| var t; | |||||
| var a; | |||||
| a[t] = e[t]; | |||||
| } | |||||
| return a; | |||||
| } | |||||
| } | |||||
| var WUX_CASCADER = 'wux-cascader'; | |||||
| var defaultFieldNames = { | |||||
| label: 'label', | |||||
| value: 'value', | |||||
| children: 'children' | |||||
| }; | |||||
| (0, _baseComponent.default)({ | |||||
| externalClasses: ['wux-scroll-view-class'], | |||||
| properties: { | |||||
| prefixCls: { | |||||
| type: String, | |||||
| value: 'wux-cascader' | |||||
| }, | |||||
| defaultValue: { | |||||
| type: Array, | |||||
| value: [] | |||||
| }, | |||||
| value: { | |||||
| type: Array, | |||||
| value: [] | |||||
| }, | |||||
| controlled: { | |||||
| type: Boolean, | |||||
| value: false | |||||
| }, | |||||
| title: { | |||||
| type: String, | |||||
| value: '' | |||||
| }, | |||||
| options: { | |||||
| type: Array, | |||||
| value: [] | |||||
| }, | |||||
| chooseTitle: { | |||||
| type: String, | |||||
| value: '请选择' | |||||
| }, | |||||
| visible: { | |||||
| type: Boolean, | |||||
| value: false | |||||
| }, | |||||
| defaultFieldNames: { | |||||
| type: Object, | |||||
| value: defaultFieldNames | |||||
| } | |||||
| }, | |||||
| data: { | |||||
| activeOptions: [], | |||||
| activeIndex: 0, | |||||
| bodyStyle: '', | |||||
| activeValue: [], | |||||
| showOptions: [], | |||||
| fieldNames: {} | |||||
| }, | |||||
| computed: { | |||||
| classes: [ | |||||
| 'prefixCls', | |||||
| function (e) { | |||||
| return { | |||||
| wrap: (0, _classNames.default)(e), | |||||
| hd: ''.concat(e, '__hd'), | |||||
| title: ''.concat(e, '__title'), | |||||
| menus: ''.concat(e, '__menus'), | |||||
| menu: ''.concat(e, '__menu'), | |||||
| bd: ''.concat(e, '__bd'), | |||||
| inner: ''.concat(e, '__inner'), | |||||
| scrollView: ''.concat(e, '__scroll-view'), | |||||
| option: ''.concat(e, '__option'), | |||||
| item: ''.concat(e, '__item'), | |||||
| icon: ''.concat(e, '__icon'), | |||||
| ft: ''.concat(e, '__ft') | |||||
| }; | |||||
| } | |||||
| ] | |||||
| }, | |||||
| observers: { | |||||
| value: function (e) { | |||||
| if (this.controlled) { | |||||
| this.setData({ | |||||
| activeValue: e | |||||
| }); | |||||
| this.getCurrentOptions(e); | |||||
| } | |||||
| }, | |||||
| options: function () { | |||||
| this.getCurrentOptions(this.activeValue); | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| getActiveOptions: function (a) { | |||||
| var e = this.options; | |||||
| var i = this.getFieldName('value'); | |||||
| var t = this.getFieldName('children'); | |||||
| return (0, _arrayTreeFilter.default)( | |||||
| e, | |||||
| function (e, t) { | |||||
| return e[i] === a[t]; | |||||
| }, | |||||
| { | |||||
| childrenKeyName: t | |||||
| } | |||||
| ); | |||||
| }, | |||||
| getShowOptions: function (e) { | |||||
| var t = this.options; | |||||
| var a = this.getFieldName('children'); | |||||
| var i = this.getActiveOptions(e) | |||||
| .map(function (e) { | |||||
| return e[a]; | |||||
| }) | |||||
| .filter(function (e) { | |||||
| return !!e; | |||||
| }); | |||||
| return [t].concat(_toConsumableArray(i)); | |||||
| }, | |||||
| getMenus: function (e, t) { | |||||
| if (0 < arguments.length && void 0 !== e) { | |||||
| var a = e; | |||||
| } else { | |||||
| var a = []; | |||||
| } | |||||
| if (1 < arguments.length) { | |||||
| var i = t; | |||||
| } else { | |||||
| var i = void 0; | |||||
| } | |||||
| var n = this; | |||||
| var r = (n.options, n.chooseTitle); | |||||
| var o = this.getActiveOptions(a); | |||||
| if (i) { | |||||
| var l; | |||||
| var s = this.getFieldName('value'); | |||||
| var u = this.getFieldName('label'); | |||||
| o.push((_defineProperty((l = {}), s, WUX_CASCADER), _defineProperty(l, u, r), l)); | |||||
| } | |||||
| return o; | |||||
| }, | |||||
| getNextActiveValue: function (e, t) { | |||||
| var a = this.activeValue; | |||||
| (a = a.slice(0, t + 1))[t] = e; | |||||
| return a; | |||||
| }, | |||||
| updated: function (e, t, a, i) { | |||||
| var n = this.getFieldName('value'); | |||||
| var r = this.getFieldName('children'); | |||||
| var o = e[r] && 0 < e[r].length; | |||||
| var l = this.getNextActiveValue(e[n], t); | |||||
| var s = this.getMenus(l, o); | |||||
| var u = s.length - 1; | |||||
| var c = this.getShowOptions(l); | |||||
| var d = { | |||||
| activeValue: l, | |||||
| activeOptions: s, | |||||
| activeIndex: u, | |||||
| showOptions: c | |||||
| }; | |||||
| if (o || (l.length === c.length && (t = Math.max(0, t - 1)))) { | |||||
| d.bodyStyle = 'transform: translate('.concat(-50 * t, '%)'); | |||||
| d.showOptions = c; | |||||
| } | |||||
| if (a) { | |||||
| this.setData(d); | |||||
| } | |||||
| if ('function' == typeof i) { | |||||
| i.call(this, e, s, !o); | |||||
| } | |||||
| }, | |||||
| getCurrentOptions: function (e) { | |||||
| var t = 0 < arguments.length && void 0 !== e ? e : this.activeValue; | |||||
| var a = Math.max(0, t.length - 1); | |||||
| var i = this.getActiveOptions(t); | |||||
| var n = i[a]; | |||||
| if (n) { | |||||
| this.updated(n, a, true); | |||||
| } else { | |||||
| var r; | |||||
| var o = this.getFieldName('value'); | |||||
| var l = this.getFieldName('label'); | |||||
| i.push((_defineProperty((r = {}), o, WUX_CASCADER), _defineProperty(r, l, this.chooseTitle), r)); | |||||
| var s = { | |||||
| showOptions: this.getShowOptions(t), | |||||
| activeOptions: i, | |||||
| activeIndex: i.length - 1, | |||||
| bodyStyle: '' | |||||
| }; | |||||
| this.setData(s); | |||||
| } | |||||
| }, | |||||
| onMenuClick: function (e) { | |||||
| var t = e.currentTarget.dataset.menuIndex; | |||||
| var a = 'transform: translate('.concat(-50 * (1 < t ? t - 1 : 0), '%)'); | |||||
| this.setData({ | |||||
| bodyStyle: a, | |||||
| activeIndex: t | |||||
| }); | |||||
| }, | |||||
| onItemSelect: function (e) { | |||||
| var t = e.currentTarget.dataset; | |||||
| var a = t.item; | |||||
| var i = t.optionIndex; | |||||
| if (a && !a.disabled) { | |||||
| this.updated(a, i, !this.controlled, this.onChange); | |||||
| } | |||||
| }, | |||||
| onPopupClose: function () { | |||||
| this.$emit('close'); | |||||
| }, | |||||
| onChange: function (e, t, a) { | |||||
| var that = this; | |||||
| var n = 0 < arguments.length && void 0 !== e ? e : {}; | |||||
| var r = 2 < arguments.length && void 0 !== a && a; | |||||
| var o = (1 < arguments.length && void 0 !== t ? t : []).filter(function (e) { | |||||
| return e[that.getFieldName('value')] !== WUX_CASCADER; | |||||
| }); | |||||
| var l = o.map(function (e) { | |||||
| return e[that.getFieldName('value')]; | |||||
| }); | |||||
| if (false === n.isLeaf && !n.children) { | |||||
| this.emitEvent({ | |||||
| value: l, | |||||
| options: o, | |||||
| done: false | |||||
| }); | |||||
| return void this.$emit('load', { | |||||
| detail: { | |||||
| value: l, | |||||
| options: o | |||||
| } | |||||
| }); | |||||
| } | |||||
| this.emitEvent({ | |||||
| value: l, | |||||
| options: o, | |||||
| done: r | |||||
| }); | |||||
| }, | |||||
| emitEvent: function (e) { | |||||
| var t = 0 < arguments.length && void 0 !== e ? e : {}; | |||||
| this.$emit('change', { | |||||
| detail: t | |||||
| }); | |||||
| if (t.done) { | |||||
| this.onPopupClose(); | |||||
| } | |||||
| }, | |||||
| getFieldName: function (e) { | |||||
| return this.fieldNames[e]; | |||||
| } | |||||
| }, | |||||
| attached: function () { | |||||
| var e = this; | |||||
| var t = e.defaultValue; | |||||
| var a = e.value; | |||||
| var i = e.controlled ? a : t; | |||||
| var n = Object.assign({}, defaultFieldNames, this.defaultFieldNames); | |||||
| this.setData({ | |||||
| activeValue: i, | |||||
| fieldNames: n | |||||
| }); | |||||
| this.getCurrentOptions(i); | |||||
| } | |||||
| }); | |||||
| </script> | |||||
| <style> | |||||
| .wux-cascader__hd { | |||||
| position: relative; | |||||
| width: 100%; | |||||
| font-size: 34rpx; | |||||
| line-height: 1.5; | |||||
| color: #444; | |||||
| } | |||||
| .wux-cascader__hd::after { | |||||
| content: ' '; | |||||
| position: absolute; | |||||
| left: 0; | |||||
| bottom: 0; | |||||
| right: 0; | |||||
| height: 1px; | |||||
| border-bottom: 1px solid #d9d9d9; | |||||
| color: #d9d9d9; | |||||
| transform-origin: 0 100%; | |||||
| transform: scaleY(0.5); | |||||
| } | |||||
| .wux-cascader__title { | |||||
| position: relative; | |||||
| height: 88rpx; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: center; | |||||
| text-align: center; | |||||
| box-sizing: border-box; | |||||
| } | |||||
| .wux-cascader__title::after { | |||||
| content: ' '; | |||||
| position: absolute; | |||||
| left: 0; | |||||
| bottom: 0; | |||||
| right: 0; | |||||
| height: 1px; | |||||
| border-bottom: 1px solid #d9d9d9; | |||||
| color: #d9d9d9; | |||||
| transform-origin: 0 100%; | |||||
| transform: scaleY(0.5); | |||||
| } | |||||
| .wux-cascader__menus { | |||||
| display: flex; | |||||
| height: 88rpx; | |||||
| padding: 0 20rpx; | |||||
| align-items: center; | |||||
| box-sizing: border-box; | |||||
| } | |||||
| .wux-cascader__menu { | |||||
| font-size: 26rpx; | |||||
| padding: 0 20rpx; | |||||
| max-width: 40%; | |||||
| width: auto; | |||||
| overflow: hidden; | |||||
| text-overflow: ellipsis; | |||||
| white-space: nowrap; | |||||
| word-wrap: normal; | |||||
| } | |||||
| .wux-cascader__menu--active { | |||||
| color: #ef473a; | |||||
| } | |||||
| .wux-cascader__bd { | |||||
| width: 100%; | |||||
| display: flex; | |||||
| transition: transform 0.3s; | |||||
| background-color: #f5f5f5; | |||||
| min-height: 540rpx; | |||||
| } | |||||
| .wux-cascader__inner { | |||||
| display: block; | |||||
| height: inherit; | |||||
| width: 50%; | |||||
| flex: 0 0 50%; | |||||
| background-color: #fff; | |||||
| } | |||||
| .wux-cascader__inner:nth-child(2n) { | |||||
| background-color: #f5f5f5; | |||||
| } | |||||
| .wux-cascader__scroll-view { | |||||
| max-height: 540rpx; | |||||
| } | |||||
| .wux-cascader__option { | |||||
| width: 100%; | |||||
| height: inherit; | |||||
| display: block; | |||||
| padding: 0 40rpx; | |||||
| box-sizing: border-box; | |||||
| } | |||||
| .wux-cascader__item { | |||||
| position: relative; | |||||
| z-index: 10; | |||||
| display: block; | |||||
| color: rgba(0, 0, 0, 0.85); | |||||
| font-size: 26rpx; | |||||
| /* height: 80rpx; */ | |||||
| padding: 25rpx 0; | |||||
| text-align: left; | |||||
| width: auto; | |||||
| /* overflow: hidden; */ | |||||
| /* white-space: nowrap; */ | |||||
| } | |||||
| .wux-cascader__item::after { | |||||
| content: ' '; | |||||
| position: absolute; | |||||
| left: 0; | |||||
| bottom: 0; | |||||
| right: 0; | |||||
| height: 1px; | |||||
| border-bottom: 1px solid #d9d9d9; | |||||
| color: #d9d9d9; | |||||
| transform-origin: 0 100%; | |||||
| transform: scaleY(0.5); | |||||
| } | |||||
| .wux-cascader__item--active { | |||||
| color: #ef473a; | |||||
| padding-right: 36rpx; | |||||
| } | |||||
| .wux-cascader__item--disabled { | |||||
| opacity: 0.3; | |||||
| } | |||||
| .wux-cascader__icon { | |||||
| position: absolute; | |||||
| top: 24rpx; | |||||
| right: 0; | |||||
| z-index: 20; | |||||
| font-size: 0; | |||||
| line-height: 1; | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,25 @@ | |||||
| 'use strict'; | |||||
| function arrayTreeFilter(e, r, t) { | |||||
| (t = t || {}).childrenKeyName = t.childrenKeyName || 'children'; | |||||
| var a = e || []; | |||||
| var l = []; | |||||
| var i = 0; | |||||
| do { | |||||
| var d = a.filter(function (e) { | |||||
| return r(e, i); | |||||
| })[0]; | |||||
| if (!d) { | |||||
| break; | |||||
| } | |||||
| l.push(d); | |||||
| a = d[t.childrenKeyName] || []; | |||||
| i += 1; | |||||
| } while (0 < a.length); | |||||
| return l; | |||||
| } | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var _default = arrayTreeFilter; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,141 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var _computedBehavior = _interopRequireDefault(require('./computedBehavior')); | |||||
| var _relationsBehavior = _interopRequireDefault(require('./relationsBehavior')); | |||||
| var _safeAreaBehavior = _interopRequireDefault(require('./safeAreaBehavior')); | |||||
| var _safeSetDataBehavior = _interopRequireDefault(require('./safeSetDataBehavior')); | |||||
| var _funcBehavior = _interopRequireDefault(require('./funcBehavior')); | |||||
| var _compareVersion = _interopRequireDefault(require('./compareVersion')); | |||||
| function _interopRequireDefault(e) { | |||||
| return e && e.__esModule | |||||
| ? e | |||||
| : { | |||||
| default: e | |||||
| }; | |||||
| } | |||||
| function ownKeys(r, e) { | |||||
| var t = Object.keys(r); | |||||
| if (Object.getOwnPropertySymbols) { | |||||
| var o = Object.getOwnPropertySymbols(r); | |||||
| if (e) { | |||||
| o = o.filter(function (e) { | |||||
| return Object.getOwnPropertyDescriptor(r, e).enumerable; | |||||
| }); | |||||
| } | |||||
| t.push.apply(t, o); | |||||
| } | |||||
| return t; | |||||
| } | |||||
| function _objectSpread(r) { | |||||
| for (var e = 1; e < arguments.length; e++) { | |||||
| if (null != arguments[e]) { | |||||
| var t = arguments[e]; | |||||
| } else { | |||||
| } | |||||
| e % 2 | |||||
| ? ownKeys(t, true).forEach(function (e) { | |||||
| _defineProperty(r, e, t[e]); | |||||
| }) | |||||
| : Object.getOwnPropertyDescriptors | |||||
| ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(t)) | |||||
| : ownKeys(t).forEach(function (e) { | |||||
| Object.defineProperty(r, e, Object.getOwnPropertyDescriptor(t, e)); | |||||
| }); | |||||
| } | |||||
| return r; | |||||
| } | |||||
| function _defineProperty(e, r, t) { | |||||
| r in e | |||||
| ? Object.defineProperty(e, r, { | |||||
| value: t, | |||||
| enumerable: true, | |||||
| configurable: true, | |||||
| writable: true | |||||
| }) | |||||
| : (e[r] = t); | |||||
| return e; | |||||
| } | |||||
| function _toConsumableArray(e) { | |||||
| return _arrayWithoutHoles(e) || _iterableToArray(e) || _nonIterableSpread(); | |||||
| } | |||||
| function _nonIterableSpread() { | |||||
| throw new TypeError('Invalid attempt to spread non-iterable instance'); | |||||
| } | |||||
| function _iterableToArray(e) { | |||||
| if (Symbol.iterator in Object(e) || '[object Arguments]' === Object.prototype.toString.call(e)) { | |||||
| return Array.from(e); | |||||
| } | |||||
| } | |||||
| function _arrayWithoutHoles(e) { | |||||
| if (Array.isArray(e)) { | |||||
| for (r = 0, t = new Array(e.length), void 0; r < e.length; r++) { | |||||
| var r; | |||||
| var t; | |||||
| t[r] = e[r]; | |||||
| } | |||||
| return t; | |||||
| } | |||||
| } | |||||
| var _wx$getSystemInfoSync = uni.getSystemInfoSync(); | |||||
| var platform = _wx$getSystemInfoSync.platform; | |||||
| var SDKVersion = _wx$getSystemInfoSync.SDKVersion; | |||||
| var libVersion = '2.6.6'; | |||||
| if ('devtools' === platform && (0, _compareVersion.default)(SDKVersion, libVersion) < 0 && wx && uni.showModal) { | |||||
| uni.showModal({ | |||||
| title: '提示', | |||||
| content: '当前基础库版本('.concat(SDKVersion, ')过低,无法使用 Wux Weapp 组件库,请更新基础库版本 >=').concat(libVersion, ' 后重试。') | |||||
| }); | |||||
| } | |||||
| var baseComponent = function (e) { | |||||
| if (0 < arguments.length && void 0 !== e) { | |||||
| var t = e; | |||||
| } else { | |||||
| } | |||||
| t.externalClasses = ['wux-class', 'wux-hover-class'].concat(_toConsumableArray((t.externalClasses = t.externalClasses || []))); | |||||
| t.behaviors = [_relationsBehavior.default, _safeSetDataBehavior.default].concat(_toConsumableArray((t.behaviors = t.behaviors || [])), [_computedBehavior.default]); | |||||
| if (t.useSafeArea) { | |||||
| t.behaviors = [].concat(_toConsumableArray(t.behaviors), [_safeAreaBehavior.default]); | |||||
| delete t.useSafeArea; | |||||
| } | |||||
| if (t.useFunc) { | |||||
| t.behaviors = [].concat(_toConsumableArray(t.behaviors), [_funcBehavior.default]); | |||||
| delete t.useFunc; | |||||
| } | |||||
| if (t.useField) { | |||||
| t.behaviors = [].concat(_toConsumableArray(t.behaviors), ['wx://form-field']); | |||||
| delete t.useField; | |||||
| } | |||||
| if (t.useExport) { | |||||
| t.behaviors = [].concat(_toConsumableArray(t.behaviors), ['wx://component-export']); | |||||
| t.methods = _objectSpread( | |||||
| { | |||||
| export: function () { | |||||
| return this; | |||||
| } | |||||
| }, | |||||
| t.methods | |||||
| ); | |||||
| delete t.useExport; | |||||
| } | |||||
| t.options = _objectSpread( | |||||
| { | |||||
| multipleSlots: true, | |||||
| addGlobalClass: true | |||||
| }, | |||||
| t.options | |||||
| ); | |||||
| if (t.properties) { | |||||
| Object.keys(t.properties).forEach(function (e) { | |||||
| var r = t.properties[e]; | |||||
| if (Array.isArray(r.type)) { | |||||
| r.optionalTypes = r.type; | |||||
| } | |||||
| }); | |||||
| } | |||||
| return Component(t); | |||||
| }; | |||||
| var _default = baseComponent; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,42 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.checkIPhoneX = exports.getSystemInfo = exports.safeAreaInset = void 0; | |||||
| var systemInfo = null; | |||||
| var safeAreaInset = { | |||||
| top: 88, | |||||
| left: 0, | |||||
| right: 0, | |||||
| bottom: 34 | |||||
| }; | |||||
| exports.safeAreaInset = safeAreaInset; | |||||
| var getSystemInfo = function (e) { | |||||
| if (!systemInfo || e) { | |||||
| try { | |||||
| systemInfo = uni.getSystemInfoSync(); | |||||
| } catch (e) { | |||||
| console.log('CatchClause', e); | |||||
| console.log('CatchClause', e); | |||||
| } | |||||
| try { | |||||
| safeAreaInset.top = systemInfo.statusBarHeight + systemInfo.safeArea.top; | |||||
| safeAreaInset.bottom = systemInfo.screenHeight - systemInfo.safeArea.bottom; | |||||
| } catch (e) { | |||||
| console.log('CatchClause', e); | |||||
| console.log('CatchClause', e); | |||||
| } | |||||
| } | |||||
| return systemInfo; | |||||
| }; | |||||
| exports.getSystemInfo = getSystemInfo; | |||||
| var isIPhoneX = function (e) { | |||||
| var t = e.model; | |||||
| var s = e.windowHeight; | |||||
| var o = e.windowWidth; | |||||
| return /iphone (x|12|13)/.test(t.toLowerCase()) || (812 <= s && 2 < s / o); | |||||
| }; | |||||
| var checkIPhoneX = function (e) { | |||||
| return isIPhoneX(getSystemInfo(e)); | |||||
| }; | |||||
| (exports.checkIPhoneX = checkIPhoneX)(); | |||||
| @@ -0,0 +1,42 @@ | |||||
| 'use strict'; | |||||
| function _typeof(e) { | |||||
| return (_typeof = | |||||
| 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator | |||||
| ? function (e) { | |||||
| return typeof e; | |||||
| } | |||||
| : function (e) { | |||||
| return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e; | |||||
| })(e); | |||||
| } | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var hasOwn = {}.hasOwnProperty; | |||||
| function classNames() { | |||||
| for (e = [], t = 0, void 0; t < arguments.length; t++) { | |||||
| var e; | |||||
| var t; | |||||
| var o = arguments[t]; | |||||
| if (o) { | |||||
| var r = _typeof(o); | |||||
| if ('string' === r || 'number' === r) e.push(o); | |||||
| else if (Array.isArray(o) && o.length) { | |||||
| var n = classNames.apply(null, o); | |||||
| if (n) { | |||||
| e.push(n); | |||||
| } | |||||
| } else if ('object' === r) { | |||||
| for (var s in o) { | |||||
| if (hasOwn.call(o, s) && o[s]) { | |||||
| e.push(s); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| return e.join(' '); | |||||
| } | |||||
| var _default = classNames; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,21 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.isPresetColor = exports.colors = void 0; | |||||
| var colors = { | |||||
| light: '#ddd', | |||||
| stable: '#b2b2b2', | |||||
| positive: '#387ef5', | |||||
| calm: '#11c1f3', | |||||
| balanced: '#33cd5f', | |||||
| energized: '#ffc900', | |||||
| assertive: '#ef473a', | |||||
| royal: '#886aea', | |||||
| dark: '#444' | |||||
| }; | |||||
| exports.colors = colors; | |||||
| var isPresetColor = function (e) { | |||||
| return !!e && (colors[e] ? colors[e] : e); | |||||
| }; | |||||
| exports.isPresetColor = isPresetColor; | |||||
| @@ -0,0 +1,29 @@ | |||||
| 'use strict'; | |||||
| function compareVersion(e, r) { | |||||
| for (t = e.split('.'), a = r.split('.'), n = Math.max(t.length, a.length), void 0; t.length < n; ) { | |||||
| var t; | |||||
| var a; | |||||
| var n; | |||||
| t.push('0'); | |||||
| } | |||||
| for (; a.length < n; ) { | |||||
| a.push('0'); | |||||
| } | |||||
| for (var o = 0; o < n; o++) { | |||||
| var s = parseInt(t[o]); | |||||
| var u = parseInt(a[o]); | |||||
| if (u < s) { | |||||
| return 1; | |||||
| } | |||||
| if (s < u) { | |||||
| return -1; | |||||
| } | |||||
| } | |||||
| return 0; | |||||
| } | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var _default = compareVersion; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,178 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var _isEmpty = _interopRequireDefault(require('./isEmpty')); | |||||
| var _shallowEqual = _interopRequireDefault(require('./shallowEqual')); | |||||
| function _interopRequireDefault(e) { | |||||
| return e && e.__esModule | |||||
| ? e | |||||
| : { | |||||
| default: e | |||||
| }; | |||||
| } | |||||
| function _toConsumableArray(e) { | |||||
| return _arrayWithoutHoles(e) || _iterableToArray(e) || _nonIterableSpread(); | |||||
| } | |||||
| function _nonIterableSpread() { | |||||
| throw new TypeError('Invalid attempt to spread non-iterable instance'); | |||||
| } | |||||
| function _iterableToArray(e) { | |||||
| if (Symbol.iterator in Object(e) || '[object Arguments]' === Object.prototype.toString.call(e)) { | |||||
| return Array.from(e); | |||||
| } | |||||
| } | |||||
| function _arrayWithoutHoles(e) { | |||||
| if (Array.isArray(e)) { | |||||
| for (r = 0, t = new Array(e.length), void 0; r < e.length; r++) { | |||||
| var r; | |||||
| var t; | |||||
| t[r] = e[r]; | |||||
| } | |||||
| return t; | |||||
| } | |||||
| } | |||||
| function ownKeys(r, e) { | |||||
| var t = Object.keys(r); | |||||
| if (Object.getOwnPropertySymbols) { | |||||
| var n = Object.getOwnPropertySymbols(r); | |||||
| if (e) { | |||||
| n = n.filter(function (e) { | |||||
| return Object.getOwnPropertyDescriptor(r, e).enumerable; | |||||
| }); | |||||
| } | |||||
| t.push.apply(t, n); | |||||
| } | |||||
| return t; | |||||
| } | |||||
| function _objectSpread(r) { | |||||
| for (var e = 1; e < arguments.length; e++) { | |||||
| if (null != arguments[e]) { | |||||
| var t = arguments[e]; | |||||
| } else { | |||||
| var t = {}; | |||||
| } | |||||
| e % 2 | |||||
| ? ownKeys(t, true).forEach(function (e) { | |||||
| _defineProperty(r, e, t[e]); | |||||
| }) | |||||
| : Object.getOwnPropertyDescriptors | |||||
| ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(t)) | |||||
| : ownKeys(t).forEach(function (e) { | |||||
| Object.defineProperty(r, e, Object.getOwnPropertyDescriptor(t, e)); | |||||
| }); | |||||
| } | |||||
| return r; | |||||
| } | |||||
| function _defineProperty(e, r, t) { | |||||
| r in e | |||||
| ? Object.defineProperty(e, r, { | |||||
| value: t, | |||||
| enumerable: true, | |||||
| configurable: true, | |||||
| writable: true | |||||
| }) | |||||
| : (e[r] = t); | |||||
| return e; | |||||
| } | |||||
| function _slicedToArray(e, r) { | |||||
| return _arrayWithHoles(e) || _iterableToArrayLimit(e, r) || _nonIterableRest(); | |||||
| } | |||||
| function _nonIterableRest() { | |||||
| throw new TypeError('Invalid attempt to destructure non-iterable instance'); | |||||
| } | |||||
| function _iterableToArrayLimit(e, r) { | |||||
| var t = []; | |||||
| var n = true; | |||||
| var o = false; | |||||
| var i = void 0; | |||||
| try { | |||||
| for (u = e[Symbol.iterator](), void 0; !(n = (a = u.next()).done) && (t.push(a.value), !r || t.length !== r); n = true) { | |||||
| var a; | |||||
| var u; | |||||
| } | |||||
| } catch (e) { | |||||
| console.log('CatchClause', e); | |||||
| console.log('CatchClause', e); | |||||
| o = true; | |||||
| i = e; | |||||
| } finally { | |||||
| try { | |||||
| n || null == u.return || u.return(); | |||||
| } finally { | |||||
| if (o) { | |||||
| throw i; | |||||
| } | |||||
| } | |||||
| } | |||||
| return t; | |||||
| } | |||||
| function _arrayWithHoles(e) { | |||||
| if (Array.isArray(e)) { | |||||
| return e; | |||||
| } | |||||
| } | |||||
| var ALL_DATA_KEY = '**'; | |||||
| var trim = function (e) { | |||||
| return (0 < arguments.length && void 0 !== e ? e : '').replace(/\s/g, ''); | |||||
| }; | |||||
| var _default = { | |||||
| lifetimes: { | |||||
| attached: function () { | |||||
| this.initComputed(); | |||||
| } | |||||
| }, | |||||
| definitionFilter: function (e) { | |||||
| var r = e.computed; | |||||
| if (void 0 === r) { | |||||
| var n = {}; | |||||
| } else { | |||||
| var n = r; | |||||
| } | |||||
| var a = Object.keys(n).reduce(function (e, i) { | |||||
| var r = _slicedToArray(Array.isArray(n[i]) ? n[i] : [ALL_DATA_KEY, n[i]], 2); | |||||
| var t = r[0]; | |||||
| var a = r[1]; | |||||
| return _objectSpread( | |||||
| {}, | |||||
| e, | |||||
| _defineProperty({}, t, function () { | |||||
| if ('function' == typeof a) { | |||||
| for (e = arguments.length, r = new Array(e), t = 0, void 0; t < e; t++) { | |||||
| var e; | |||||
| var r; | |||||
| var t; | |||||
| r[t] = arguments[t]; | |||||
| } | |||||
| var n = a.apply(this, r); | |||||
| var o = this[i]; | |||||
| (0, _isEmpty.default)(n) || (0, _shallowEqual.default)(n, o) || this.setData(_defineProperty({}, i, n)); | |||||
| } | |||||
| }) | |||||
| ); | |||||
| }, {}); | |||||
| Object.assign((e.observers = e.observers || {}), a); | |||||
| Object.assign((e.methods = e.methods || {}), { | |||||
| initComputed: function (e, r) { | |||||
| var t = 0 < arguments.length && void 0 !== e ? e : {}; | |||||
| var n = 1 < arguments.length && void 0 !== r && r; | |||||
| if (!this.runInitComputed || n) { | |||||
| this.runInitComputed = false; | |||||
| var that = this; | |||||
| var i = _objectSpread({}, this, {}, t); | |||||
| Object.keys(a).forEach(function (e) { | |||||
| var r = trim(e) | |||||
| .split(',') | |||||
| .reduce(function (e, r) { | |||||
| return [].concat(_toConsumableArray(e), [i[r]]); | |||||
| }, []); | |||||
| a[e].apply(that, r); | |||||
| }); | |||||
| this.runInitComputed = true; | |||||
| } | |||||
| } | |||||
| }); | |||||
| } | |||||
| }; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,170 @@ | |||||
| 'use strict'; | |||||
| function ownKeys(t, e) { | |||||
| var r = Object.keys(t); | |||||
| if (Object.getOwnPropertySymbols) { | |||||
| var n = Object.getOwnPropertySymbols(t); | |||||
| if (e) { | |||||
| n = n.filter(function (e) { | |||||
| return Object.getOwnPropertyDescriptor(t, e).enumerable; | |||||
| }); | |||||
| } | |||||
| r.push.apply(r, n); | |||||
| } | |||||
| return r; | |||||
| } | |||||
| function _objectSpread(t) { | |||||
| for (var e = 1; e < arguments.length; e++) { | |||||
| if (null != arguments[e]) { | |||||
| var r = arguments[e]; | |||||
| } else { | |||||
| var r = {}; | |||||
| } | |||||
| if (e % 2) { | |||||
| ownKeys(r, true).forEach(function (e) { | |||||
| _defineProperty(t, e, r[e]); | |||||
| }); | |||||
| } else { | |||||
| Object.getOwnPropertyDescriptors | |||||
| ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(r)) | |||||
| : ownKeys(r).forEach(function (e) { | |||||
| Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(r, e)); | |||||
| }); | |||||
| } | |||||
| } | |||||
| return t; | |||||
| } | |||||
| function _defineProperty(e, t, r) { | |||||
| t in e | |||||
| ? Object.defineProperty(e, t, { | |||||
| value: r, | |||||
| enumerable: true, | |||||
| configurable: true, | |||||
| writable: true | |||||
| }) | |||||
| : (e[t] = r); | |||||
| return e; | |||||
| } | |||||
| function _classCallCheck(e, t) { | |||||
| if (!(e instanceof t)) { | |||||
| throw new TypeError('Cannot call a class as a function'); | |||||
| } | |||||
| } | |||||
| function _defineProperties(e, t) { | |||||
| for (var r = 0; r < t.length; r++) { | |||||
| var n = t[r]; | |||||
| n.enumerable = n.enumerable || false; | |||||
| n.configurable = true; | |||||
| if ('value' in n) { | |||||
| n.writable = true; | |||||
| } | |||||
| Object.defineProperty(e, n.key, n); | |||||
| } | |||||
| } | |||||
| function _createClass(e, t, r) { | |||||
| if (t) { | |||||
| _defineProperties(e.prototype, t); | |||||
| } | |||||
| if (r) { | |||||
| _defineProperties(e, r); | |||||
| } | |||||
| return e; | |||||
| } | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = createFieldsStore; | |||||
| var FieldsStore = (function () { | |||||
| function t() { | |||||
| if (0 < arguments.length && void 0 !== arguments[0]) { | |||||
| var e = arguments[0]; | |||||
| } else { | |||||
| var e = {}; | |||||
| } | |||||
| _classCallCheck(this, t); | |||||
| this.fields = e; | |||||
| } | |||||
| _createClass(t, [ | |||||
| { | |||||
| key: 'setFields', | |||||
| value: function (e) { | |||||
| Object.assign(this.fields, e); | |||||
| } | |||||
| }, | |||||
| { | |||||
| key: 'updateFields', | |||||
| value: function (e) { | |||||
| this.fields = e; | |||||
| } | |||||
| }, | |||||
| { | |||||
| key: 'clearField', | |||||
| value: function (e) { | |||||
| delete this.fields[e]; | |||||
| } | |||||
| }, | |||||
| { | |||||
| key: 'getValueFromFields', | |||||
| value: function (e, t) { | |||||
| var r = t[e]; | |||||
| return r && 'value' in r ? r.value : r.initialValue; | |||||
| } | |||||
| }, | |||||
| { | |||||
| key: 'getAllFieldsName', | |||||
| value: function () { | |||||
| var e = this.fields; | |||||
| return e ? Object.keys(e) : []; | |||||
| } | |||||
| }, | |||||
| { | |||||
| key: 'getField', | |||||
| value: function (e) { | |||||
| return _objectSpread({}, this.fields[e], { | |||||
| name: e | |||||
| }); | |||||
| } | |||||
| }, | |||||
| { | |||||
| key: 'getFieldValuePropValue', | |||||
| value: function (e) { | |||||
| var t = e.name; | |||||
| var r = e.valuePropName; | |||||
| var n = this.getField(t); | |||||
| return _defineProperty({}, r, 'value' in n ? n.value : n.initialValue); | |||||
| } | |||||
| }, | |||||
| { | |||||
| key: 'getFieldValue', | |||||
| value: function (e) { | |||||
| return this.getValueFromFields(e, this.fields); | |||||
| } | |||||
| }, | |||||
| { | |||||
| key: 'getFieldsValue', | |||||
| value: function (e) { | |||||
| var that = this; | |||||
| return (e || this.getAllFieldsName()).reduce(function (e, t) { | |||||
| e[t] = that.getFieldValue(t); | |||||
| return e; | |||||
| }, {}); | |||||
| } | |||||
| }, | |||||
| { | |||||
| key: 'resetFields', | |||||
| value: function (e) { | |||||
| var n = this.fields; | |||||
| return (e || this.getAllFieldsName()).reduce(function (e, t) { | |||||
| var r = n[t]; | |||||
| if (r) { | |||||
| e[t] = r.initialValue; | |||||
| } | |||||
| return e; | |||||
| }, {}); | |||||
| } | |||||
| } | |||||
| ]); | |||||
| return t; | |||||
| })(); | |||||
| function createFieldsStore(e) { | |||||
| return new FieldsStore(e); | |||||
| } | |||||
| @@ -0,0 +1,41 @@ | |||||
| 'use strict'; | |||||
| function debounce(t, o, i) { | |||||
| var n; | |||||
| var u; | |||||
| var r; | |||||
| var a; | |||||
| var c; | |||||
| function d() { | |||||
| var e = +new Date() - a; | |||||
| if (e < o && 0 <= e) { | |||||
| n = setTimeout(d, o - e); | |||||
| } else { | |||||
| n = void 0; | |||||
| i || ((c = t.apply(r, u)), n || (u = r = void 0)); | |||||
| } | |||||
| } | |||||
| function e() { | |||||
| r = this; | |||||
| u = arguments; | |||||
| a = +new Date(); | |||||
| var e = i && !n; | |||||
| n = n || setTimeout(d, o); | |||||
| if (e) { | |||||
| c = t.apply(r, u); | |||||
| u = r = void 0; | |||||
| } | |||||
| return c; | |||||
| } | |||||
| e.cancel = function () { | |||||
| if (void 0 !== n) { | |||||
| clearTimeout(n); | |||||
| n = void 0; | |||||
| } | |||||
| u = r = void 0; | |||||
| }; | |||||
| return e; | |||||
| } | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = debounce; | |||||
| @@ -0,0 +1,56 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = eventsMixin; | |||||
| var defaultEvents = { | |||||
| onChange: function () {} | |||||
| }; | |||||
| function eventsMixin() { | |||||
| return { | |||||
| data() { | |||||
| return { | |||||
| inputEvents: defaultEvents | |||||
| }; | |||||
| }, | |||||
| lifetimes: { | |||||
| created: function () { | |||||
| this._oriTriggerEvent = this.triggerEvent; | |||||
| this.triggerEvent = this._triggerEvent; | |||||
| } | |||||
| }, | |||||
| props: { | |||||
| events: { | |||||
| type: Object, | |||||
| value: defaultEvents | |||||
| } | |||||
| }, | |||||
| definitionFilter: function (t) { | |||||
| Object.assign((t.data = t.data || {}), { | |||||
| inputEvents: Object.assign({}, defaultEvents, t.inputEvents) | |||||
| }); | |||||
| Object.assign((t.methods = t.methods || {}), { | |||||
| _triggerEvent: function (t, e, n, i) { | |||||
| var s = !(2 < arguments.length && void 0 !== n) || n; | |||||
| if (3 < arguments.length) { | |||||
| var a = i; | |||||
| } else { | |||||
| var a = void 0; | |||||
| } | |||||
| var r = this.inputEvents['on'.concat(t[0].toUpperCase()).concat(t.slice(1))]; | |||||
| if (s && 'function' == typeof r) { | |||||
| r.call(this, e); | |||||
| } | |||||
| this._oriTriggerEvent(t, e, a); | |||||
| } | |||||
| }); | |||||
| Object.assign((t.observers = t.observers || {}), { | |||||
| events: function (t) { | |||||
| this.setData({ | |||||
| inputEvents: Object.assign({}, defaultEvents, this.inputEvents, t) | |||||
| }); | |||||
| } | |||||
| }); | |||||
| } | |||||
| }; | |||||
| } | |||||
| @@ -0,0 +1,92 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var mergeOptionsToData = function (t) { | |||||
| if (0 < arguments.length && void 0 !== t) { | |||||
| var e = t; | |||||
| } else { | |||||
| var e = {}; | |||||
| } | |||||
| var n = Object.assign({}, e); | |||||
| for (var r in n) { | |||||
| if (n.hasOwnProperty(r) && 'function' == typeof n[r]) { | |||||
| delete n[r]; | |||||
| } | |||||
| } | |||||
| return n; | |||||
| }; | |||||
| var bind = function (r, i) { | |||||
| return function () { | |||||
| for (t = arguments.length, e = new Array(t), n = 0, void 0; n < t; n++) { | |||||
| var t; | |||||
| var e; | |||||
| var n; | |||||
| e[n] = arguments[n]; | |||||
| } | |||||
| return e.length ? r.apply(i, e) : r.call(i); | |||||
| }; | |||||
| }; | |||||
| var assign = function () { | |||||
| for (t = arguments.length, e = new Array(t), n = 0, void 0; n < t; n++) { | |||||
| var t; | |||||
| var e; | |||||
| var n; | |||||
| e[n] = arguments[n]; | |||||
| } | |||||
| return Object.assign.apply(Object, [{}].concat(e)); | |||||
| }; | |||||
| var _default = { | |||||
| definitionFilter: function (t) { | |||||
| t.data = mergeOptionsToData(t.data); | |||||
| t.data.in = false; | |||||
| t.data.visible = false; | |||||
| }, | |||||
| methods: { | |||||
| $mergeOptionsToData: mergeOptionsToData, | |||||
| $mergeOptionsAndBindMethods: function (t, e) { | |||||
| if (0 < arguments.length && void 0 !== t) { | |||||
| var n = t; | |||||
| } else { | |||||
| var n = {}; | |||||
| } | |||||
| var r = 1 < arguments.length && void 0 !== e ? e : this.fns; | |||||
| var i = Object.assign({}, n); | |||||
| for (var a in i) { | |||||
| if (i.hasOwnProperty(a) && 'function' == typeof i[a]) { | |||||
| r[a] = bind(i[a], this); | |||||
| delete i[a]; | |||||
| } | |||||
| } | |||||
| return i; | |||||
| }, | |||||
| $setData: function () { | |||||
| for (e = this, t = arguments.length, n = new Array(t), r = 0, void 0; r < t; r++) { | |||||
| var e; | |||||
| var t; | |||||
| var n; | |||||
| var r; | |||||
| n[r] = arguments[r]; | |||||
| } | |||||
| var i = assign.apply(void 0, [{}].concat(n)); | |||||
| return new Promise(function (t) { | |||||
| e.setData(i, t); | |||||
| }); | |||||
| }, | |||||
| $requestAnimationFrame: function (t, e) { | |||||
| var n = 0 < arguments.length && void 0 !== t ? t : function () {}; | |||||
| var r = 1 < arguments.length && void 0 !== e ? e : 16.666666666666668; | |||||
| return new Promise(function (t) { | |||||
| return setTimeout(t, r); | |||||
| }).then(n); | |||||
| } | |||||
| }, | |||||
| created: function () { | |||||
| this.fns = {}; | |||||
| }, | |||||
| destroyed: function () { | |||||
| this.fns = {}; | |||||
| } | |||||
| }; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,49 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.getSwipeDirection = exports.getPointsDistance = exports.isNearbyPoints = exports.isEqualPoints = exports.getPointsNumber = exports.getTouchPoints = void 0; | |||||
| var getTouchPoints = function (t, e) { | |||||
| if (1 < arguments.length && void 0 !== e) { | |||||
| var s = e; | |||||
| } else { | |||||
| var s = 0; | |||||
| } | |||||
| var o = t.touches; | |||||
| var n = t.changedTouches; | |||||
| var i = o && 0 < o.length; | |||||
| var r = n && 0 < n.length; | |||||
| if (!i && r) { | |||||
| var a = n[s]; | |||||
| } else { | |||||
| var a = i ? o[s] : t; | |||||
| } | |||||
| return { | |||||
| x: a.pageX, | |||||
| y: a.pageY | |||||
| }; | |||||
| }; | |||||
| exports.getTouchPoints = getTouchPoints; | |||||
| var getPointsNumber = function (t) { | |||||
| return (t.touches && t.touches.length) || (t.changedTouches && t.changedTouches.length); | |||||
| }; | |||||
| exports.getPointsNumber = getPointsNumber; | |||||
| var isEqualPoints = function (t, e) { | |||||
| return t.x === e.x && t.y === e.y; | |||||
| }; | |||||
| exports.isEqualPoints = isEqualPoints; | |||||
| var isNearbyPoints = function (t, e, s) { | |||||
| var o = 2 < arguments.length && void 0 !== s ? s : 25; | |||||
| return (Math.abs(t.x - e.x) < o) & (Math.abs(t.y - e.y) < o); | |||||
| }; | |||||
| exports.isNearbyPoints = isNearbyPoints; | |||||
| var getPointsDistance = function (t, e) { | |||||
| var s = Math.abs(t.x - e.x); | |||||
| var o = Math.abs(t.y - e.y); | |||||
| return Math.sqrt(s * s + o * o); | |||||
| }; | |||||
| exports.getPointsDistance = getPointsDistance; | |||||
| var getSwipeDirection = function (t, e, s, o) { | |||||
| return Math.abs(t - e) >= Math.abs(s - o) ? (0 < t - e ? 'Left' : 'Right') : 0 < s - o ? 'Up' : 'Down'; | |||||
| }; | |||||
| exports.getSwipeDirection = getSwipeDirection; | |||||
| @@ -0,0 +1,31 @@ | |||||
| 'use strict'; | |||||
| function _typeof(t) { | |||||
| return (_typeof = | |||||
| 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator | |||||
| ? function (t) { | |||||
| return typeof t; | |||||
| } | |||||
| : function (t) { | |||||
| return t && 'function' == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? 'symbol' : typeof t; | |||||
| })(t); | |||||
| } | |||||
| function isEmpty(t) { | |||||
| if (Array.isArray(t)) { | |||||
| return 0 === t.length; | |||||
| } | |||||
| if ('object' !== _typeof(t)) { | |||||
| return !t; | |||||
| } | |||||
| if (t) { | |||||
| for (var e in t) { | |||||
| return false; | |||||
| } | |||||
| } | |||||
| return true; | |||||
| } | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var _default = isEmpty; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,21 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var mergeOptionsToData = function (e) { | |||||
| if (0 < arguments.length && void 0 !== e) { | |||||
| var t = e; | |||||
| } else { | |||||
| var t = {}; | |||||
| } | |||||
| var o = Object.assign({}, t); | |||||
| for (var r in o) { | |||||
| if (o.hasOwnProperty(r) && 'function' == typeof o[r]) { | |||||
| delete o[r]; | |||||
| } | |||||
| } | |||||
| return o; | |||||
| }; | |||||
| var _default = mergeOptionsToData; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,338 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = popupMixin; | |||||
| var _classNames3 = _interopRequireDefault(require('./classNames')); | |||||
| var _eventsMixin = _interopRequireDefault(require('./eventsMixin')); | |||||
| function _interopRequireDefault(e) { | |||||
| return e && e.__esModule | |||||
| ? e | |||||
| : { | |||||
| default: e | |||||
| }; | |||||
| } | |||||
| function ownKeys(t, e) { | |||||
| var i = Object.keys(t); | |||||
| if (Object.getOwnPropertySymbols) { | |||||
| var n = Object.getOwnPropertySymbols(t); | |||||
| if (e) { | |||||
| n = n.filter(function (e) { | |||||
| return Object.getOwnPropertyDescriptor(t, e).enumerable; | |||||
| }); | |||||
| } | |||||
| i.push.apply(i, n); | |||||
| } | |||||
| return i; | |||||
| } | |||||
| function _objectSpread(t) { | |||||
| for (var e = 1; e < arguments.length; e++) { | |||||
| if (null != arguments[e]) { | |||||
| var i = arguments[e]; | |||||
| } else { | |||||
| var i = {}; | |||||
| } | |||||
| e % 2 | |||||
| ? ownKeys(i, true).forEach(function (e) { | |||||
| _defineProperty(t, e, i[e]); | |||||
| }) | |||||
| : Object.getOwnPropertyDescriptors | |||||
| ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(i)) | |||||
| : ownKeys(i).forEach(function (e) { | |||||
| Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(i, e)); | |||||
| }); | |||||
| } | |||||
| return t; | |||||
| } | |||||
| function _defineProperty(e, t, i) { | |||||
| t in e | |||||
| ? Object.defineProperty(e, t, { | |||||
| value: i, | |||||
| enumerable: true, | |||||
| configurable: true, | |||||
| writable: true | |||||
| }) | |||||
| : (e[t] = i); | |||||
| return e; | |||||
| } | |||||
| var DEFAULT_TRIGGER = 'onClick'; | |||||
| var CELL_NAME = '../cell/index'; | |||||
| var FIELD_NAME = '../field/index'; | |||||
| var defaultToolbar = { | |||||
| title: '请选择', | |||||
| cancelText: '取消', | |||||
| confirmText: '确定' | |||||
| }; | |||||
| var defaultEvents = { | |||||
| onChange: function () {}, | |||||
| onConfirm: function () {}, | |||||
| onCancel: function () {}, | |||||
| onVisibleChange: function () {}, | |||||
| onValueChange: function () {} | |||||
| }; | |||||
| var defaultPlatformProps = { | |||||
| labelPropName: 'label', | |||||
| format: function (e, t) { | |||||
| return Array.isArray(e.displayValue) ? e.displayValue.join(',') : e.displayValue; | |||||
| } | |||||
| }; | |||||
| var defaultFieldNames = { | |||||
| label: 'label', | |||||
| value: 'value', | |||||
| children: 'children' | |||||
| }; | |||||
| function popupMixin() { | |||||
| if (0 < arguments.length && void 0 !== arguments[0]) { | |||||
| var i = arguments[0]; | |||||
| } else { | |||||
| var i = '#wux-picker'; | |||||
| } | |||||
| var t = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : defaultPlatformProps; | |||||
| return { | |||||
| data() { | |||||
| return { | |||||
| mounted: false, | |||||
| popupVisible: false, | |||||
| inputValue: [] | |||||
| }; | |||||
| }, | |||||
| mixins: [ | |||||
| (0, _eventsMixin.default)({ | |||||
| defaultEvents: defaultEvents | |||||
| }) | |||||
| ], | |||||
| props: { | |||||
| toolbar: { | |||||
| type: Object, | |||||
| value: defaultToolbar | |||||
| }, | |||||
| trigger: { | |||||
| type: String, | |||||
| value: DEFAULT_TRIGGER | |||||
| }, | |||||
| defaultVisible: { | |||||
| type: Boolean, | |||||
| value: false | |||||
| }, | |||||
| visible: { | |||||
| type: Boolean, | |||||
| value: false | |||||
| }, | |||||
| controlled: { | |||||
| type: Boolean, | |||||
| value: false | |||||
| }, | |||||
| disabled: { | |||||
| type: Boolean, | |||||
| value: false | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| setVisibleState: function (t, e) { | |||||
| var that = this; | |||||
| var n = 1 < arguments.length && void 0 !== e ? e : function () {}; | |||||
| if (this.popupVisible !== t) { | |||||
| var a = { | |||||
| mounted: true, | |||||
| inputValue: this.value, | |||||
| popupVisible: t | |||||
| }; | |||||
| this.setData( | |||||
| t | |||||
| ? a | |||||
| : { | |||||
| popupVisible: t | |||||
| }, | |||||
| function () { | |||||
| if (t && that.hasFieldDecorator) { | |||||
| var e = that.getFieldElem(); | |||||
| if (e) { | |||||
| e.changeValue(e.data.value); | |||||
| } | |||||
| } | |||||
| n(); | |||||
| } | |||||
| ); | |||||
| } | |||||
| }, | |||||
| fireVisibleChange: function (e) { | |||||
| if (this.popupVisible !== e) { | |||||
| this.controlled || this.setVisibleState(e); | |||||
| this.setScrollValue(void 0); | |||||
| this.$emit('visibleChange', { | |||||
| detail: { | |||||
| visible: e | |||||
| } | |||||
| }); | |||||
| } | |||||
| }, | |||||
| open: function () { | |||||
| this.fireVisibleChange(true); | |||||
| }, | |||||
| close: function (e) { | |||||
| if ('function' == typeof e) { | |||||
| var t = this.getPickerValue(this.scrollValue || this.inputValue); | |||||
| e.call(this, this.formatPickerValue(t)); | |||||
| } | |||||
| this.fireVisibleChange(false); | |||||
| }, | |||||
| onClosed: function () { | |||||
| this.picker = null; | |||||
| this.setData({ | |||||
| mounted: false, | |||||
| inputValue: null | |||||
| }); | |||||
| }, | |||||
| onConfirm: function () { | |||||
| var that = this; | |||||
| this.close(function (e) { | |||||
| that.$emit('change', { | |||||
| detail: e | |||||
| }); | |||||
| that.$emit('confirm', { | |||||
| detail: e | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| onCancel: function () { | |||||
| var that = this; | |||||
| this.close(function (e) { | |||||
| return that.$emit('cancel', { | |||||
| detail: e | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| onValueChange: function (e) { | |||||
| if (this.mounted) { | |||||
| var t = e.detail.value; | |||||
| this.cascade ? this.setCasecadeScrollValue(t) : this.setScrollValue(t); | |||||
| this.updated(t, true); | |||||
| this.$emit('valueChange', { | |||||
| detail: this.formatPickerValue(e.detail) | |||||
| }); | |||||
| } | |||||
| }, | |||||
| getPickerValue: function (e) { | |||||
| var t = 0 < arguments.length && void 0 !== e ? e : this.inputValue; | |||||
| this.picker = this.picker || this.zpSelectComponent(i); | |||||
| return this.picker && this.picker.getValue(t); | |||||
| }, | |||||
| formatPickerValue: function (e) { | |||||
| return _objectSpread({}, e, _defineProperty({}, t.labelPropName, t.format(e, this))); | |||||
| }, | |||||
| getFieldElem: function () { | |||||
| return (this.field = this.field || this.getRelationNodes(FIELD_NAME)[0]); | |||||
| }, | |||||
| setChildProps: function () { | |||||
| var that = this; | |||||
| if (!this.disabled) { | |||||
| var e = this.getRelationNodes(CELL_NAME); | |||||
| var t = this.trigger; | |||||
| var a = void 0 === t ? DEFAULT_TRIGGER : t; | |||||
| if (0 < e.length) { | |||||
| e.forEach(function (e) { | |||||
| var t = e.data.inputEvents; | |||||
| var i = e.data.oriInputEvents || _objectSpread({}, t); | |||||
| t[a] = function () { | |||||
| if (i && i[a]) { | |||||
| i[a].apply(i, arguments); | |||||
| } | |||||
| that.onTriggerClick(); | |||||
| }; | |||||
| e.setData({ | |||||
| oriInputEvents: i, | |||||
| inputEvents: t | |||||
| }); | |||||
| }); | |||||
| } | |||||
| } | |||||
| }, | |||||
| onTriggerClick: function () { | |||||
| this.fireVisibleChange(!this.popupVisible); | |||||
| }, | |||||
| noop: function () {}, | |||||
| updated: function (e, t) { | |||||
| (this.hasFieldDecorator && !t) || | |||||
| (this.inputValue !== e && | |||||
| this.setData({ | |||||
| inputValue: e | |||||
| })); | |||||
| }, | |||||
| setScrollValue: function (e) { | |||||
| this.scrollValue = e; | |||||
| }, | |||||
| setCasecadeScrollValue: function (e) { | |||||
| if (e && this.scrollValue) { | |||||
| var t = this.scrollValue.length; | |||||
| if (t === e.length && this.scrollValue[t - 1] === e[t - 1]) { | |||||
| return; | |||||
| } | |||||
| } | |||||
| this.setScrollValue(e); | |||||
| } | |||||
| }, | |||||
| lifetimes: { | |||||
| ready: function () { | |||||
| var e = this; | |||||
| var t = e.defaultVisible; | |||||
| var i = e.visible; | |||||
| var n = e.controlled; | |||||
| var a = (e.value, n ? i : t); | |||||
| if ('defaultFieldNames' in this) { | |||||
| this.setData({ | |||||
| fieldNames: Object.assign({}, defaultFieldNames, this.defaultFieldNames) | |||||
| }); | |||||
| } | |||||
| this.mounted = true; | |||||
| this.scrollValue = void 0; | |||||
| this.setVisibleState(a); | |||||
| this.setChildProps(); | |||||
| }, | |||||
| detached: function () { | |||||
| this.mounted = false; | |||||
| } | |||||
| }, | |||||
| definitionFilter: function (e) { | |||||
| var t; | |||||
| Object.assign( | |||||
| (e.relations = e.relations || {}), | |||||
| (_defineProperty((t = {}), CELL_NAME, { | |||||
| type: 'child', | |||||
| observer: function () { | |||||
| this.setChildProps(); | |||||
| } | |||||
| }), | |||||
| _defineProperty(t, FIELD_NAME, { | |||||
| type: 'ancestor' | |||||
| }), | |||||
| t) | |||||
| ); | |||||
| Object.assign((e.computed = e.computed || {}), { | |||||
| classes: [ | |||||
| 'prefixCls', | |||||
| function (e) { | |||||
| return { | |||||
| wrap: (0, _classNames3.default)(e), | |||||
| toolbar: ''.concat(e, '__toolbar'), | |||||
| inner: ''.concat(e, '__inner'), | |||||
| cancel: (0, _classNames3.default)(''.concat(e, '__button'), _defineProperty({}, ''.concat(e, '__button--cancel'), true)), | |||||
| confirm: (0, _classNames3.default)(''.concat(e, '__button'), _defineProperty({}, ''.concat(e, '__button--confirm'), true)), | |||||
| hover: ''.concat(e, '__button--hover'), | |||||
| title: ''.concat(e, '__title') | |||||
| }; | |||||
| } | |||||
| ] | |||||
| }); | |||||
| Object.assign((e.observers = e.observers || {}), { | |||||
| visible: function (e) { | |||||
| if (this.controlled) { | |||||
| this.setVisibleState(e); | |||||
| } | |||||
| }, | |||||
| value: function (e) { | |||||
| this.updated(e); | |||||
| } | |||||
| }); | |||||
| } | |||||
| }; | |||||
| } | |||||
| @@ -0,0 +1,93 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var _isEmpty = _interopRequireDefault(require('./isEmpty')); | |||||
| var _debounce2 = _interopRequireDefault(require('./debounce')); | |||||
| function _interopRequireDefault(e) { | |||||
| return e && e.__esModule | |||||
| ? e | |||||
| : { | |||||
| default: e | |||||
| }; | |||||
| } | |||||
| function _defineProperty(e, t, n) { | |||||
| t in e | |||||
| ? Object.defineProperty(e, t, { | |||||
| value: n, | |||||
| enumerable: true, | |||||
| configurable: true, | |||||
| writable: true | |||||
| }) | |||||
| : (e[t] = n); | |||||
| return e; | |||||
| } | |||||
| function bindFunc(e, t, n) { | |||||
| var i = e[t]; | |||||
| e[t] = function (e) { | |||||
| if (n) { | |||||
| n.call(this, e, _defineProperty({}, t, true)); | |||||
| } | |||||
| if (i) { | |||||
| i.call(this, e); | |||||
| } | |||||
| }; | |||||
| } | |||||
| var methods = ['linked', 'linkChanged', 'unlinked']; | |||||
| var extProps = ['observer']; | |||||
| var _default = { | |||||
| lifetimes: { | |||||
| created: function () { | |||||
| this._debounce = null; | |||||
| }, | |||||
| detached: function () { | |||||
| if (this._debounce && this._debounce.cancel) { | |||||
| this._debounce.cancel(); | |||||
| } | |||||
| } | |||||
| }, | |||||
| definitionFilter: function (e) { | |||||
| var n = e.relations; | |||||
| if (!(0, _isEmpty.default)(n)) { | |||||
| var t = function (e) { | |||||
| var t = n[e]; | |||||
| methods.forEach(function (e) { | |||||
| return bindFunc(t, e, t.observer); | |||||
| }); | |||||
| extProps.forEach(function (e) { | |||||
| return delete t[e]; | |||||
| }); | |||||
| }; | |||||
| for (var i in n) { | |||||
| t(i); | |||||
| } | |||||
| } | |||||
| Object.assign((e.methods = e.methods || {}), { | |||||
| getRelationsName: function (e) { | |||||
| if (0 < arguments.length && void 0 !== e) { | |||||
| var t = e; | |||||
| } else { | |||||
| var t = ['parent', 'child', 'ancestor', 'descendant']; | |||||
| } | |||||
| return Object.keys(n || {}) | |||||
| .map(function (e) { | |||||
| return n[e] && t.includes(n[e].type) ? e : null; | |||||
| }) | |||||
| .filter(function (e) { | |||||
| return !!e; | |||||
| }); | |||||
| }, | |||||
| debounce: function (e, t, n) { | |||||
| if (1 < arguments.length && void 0 !== t) { | |||||
| var i = t; | |||||
| } else { | |||||
| var i = 0; | |||||
| } | |||||
| var r = 2 < arguments.length && void 0 !== n && n; | |||||
| return (this._debounce = this._debounce || (0, _debounce2.default)(e.bind(this), i, r)).call(this); | |||||
| } | |||||
| }); | |||||
| } | |||||
| }; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,71 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var _checkIPhoneX = require('./checkIPhoneX'); | |||||
| function _defineProperty(e, t, o) { | |||||
| if (t in e) { | |||||
| Object.defineProperty(e, t, { | |||||
| value: o, | |||||
| enumerable: true, | |||||
| configurable: true, | |||||
| writable: true | |||||
| }); | |||||
| } else { | |||||
| e[t] = o; | |||||
| } | |||||
| return e; | |||||
| } | |||||
| function _typeof(e) { | |||||
| return (_typeof = | |||||
| 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator | |||||
| ? function (e) { | |||||
| return typeof e; | |||||
| } | |||||
| : function (e) { | |||||
| return e && 'function' == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? 'symbol' : typeof e; | |||||
| })(e); | |||||
| } | |||||
| var defaultSafeArea = { | |||||
| top: false, | |||||
| bottom: false | |||||
| }; | |||||
| var setSafeArea = function (e) { | |||||
| return 'boolean' == typeof e | |||||
| ? Object.assign({}, defaultSafeArea, { | |||||
| top: e, | |||||
| bottom: e | |||||
| }) | |||||
| : null !== e && 'object' === _typeof(e) | |||||
| ? Object.assign({}, defaultSafeArea) | |||||
| : 'string' == typeof e | |||||
| ? Object.assign({}, defaultSafeArea, _defineProperty({}, e, true)) | |||||
| : defaultSafeArea; | |||||
| }; | |||||
| var _default = { | |||||
| props: { | |||||
| safeArea: { | |||||
| type: [Boolean, String, Object], | |||||
| optionalTypes: [Boolean, String, Object], | |||||
| value: false | |||||
| } | |||||
| }, | |||||
| watch: { | |||||
| safeArea: function (e) { | |||||
| this.setData({ | |||||
| safeAreaConfig: setSafeArea(e) | |||||
| }); | |||||
| } | |||||
| }, | |||||
| definitionFilter: function (e) { | |||||
| var t = ((0, _checkIPhoneX.getSystemInfo)() || {}).statusBarHeight; | |||||
| var o = (0, _checkIPhoneX.checkIPhoneX)(); | |||||
| Object.assign((e.data = e.data || {}), { | |||||
| safeAreaConfig: defaultSafeArea, | |||||
| statusBarHeight: t, | |||||
| isIPhoneX: o | |||||
| }); | |||||
| } | |||||
| }; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,48 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var _default = { | |||||
| lifetimes: { | |||||
| created: function () { | |||||
| this.nextCallback = null; | |||||
| }, | |||||
| detached: function () { | |||||
| this.cancelNextCallback(); | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| safeSetData: function (t, a) { | |||||
| var that = this; | |||||
| this.pendingData = Object.assign({}, this, t); | |||||
| a = this.setNextCallback(a); | |||||
| this.setData(t, function () { | |||||
| that.pendingData = null; | |||||
| a(); | |||||
| }); | |||||
| }, | |||||
| setNextCallback: function (a) { | |||||
| var that = this; | |||||
| var l = true; | |||||
| this.nextCallback = function (t) { | |||||
| if (l) { | |||||
| l = false; | |||||
| that.nextCallback = null; | |||||
| a.call(that, t); | |||||
| } | |||||
| }; | |||||
| this.nextCallback.cancel = function () { | |||||
| l = false; | |||||
| }; | |||||
| return this.nextCallback; | |||||
| }, | |||||
| cancelNextCallback: function () { | |||||
| if (null !== this.nextCallback) { | |||||
| this.nextCallback.cancel(); | |||||
| this.nextCallback = null; | |||||
| } | |||||
| } | |||||
| } | |||||
| }; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,40 @@ | |||||
| 'use strict'; | |||||
| function _typeof(t) { | |||||
| return (_typeof = | |||||
| 'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator | |||||
| ? function (t) { | |||||
| return typeof t; | |||||
| } | |||||
| : function (t) { | |||||
| return t && 'function' == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype ? 'symbol' : typeof t; | |||||
| })(t); | |||||
| } | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.default = void 0; | |||||
| var hasOwnProperty = Object.prototype.hasOwnProperty; | |||||
| function is(t, e) { | |||||
| return t === e ? 0 !== t || 0 !== e || 1 / t == 1 / e : t != t && e != e; | |||||
| } | |||||
| function shallowEqual(t, e) { | |||||
| if (is(t, e)) { | |||||
| return true; | |||||
| } | |||||
| if ('object' !== _typeof(t) || null === t || 'object' !== _typeof(e) || null === e) { | |||||
| return false; | |||||
| } | |||||
| var o = Object.keys(t); | |||||
| var r = Object.keys(e); | |||||
| if (o.length !== r.length) { | |||||
| return false; | |||||
| } | |||||
| for (var n = 0; n < o.length; n++) { | |||||
| if (!hasOwnProperty.call(e, o[n]) || !is(t[o[n]], e[o[n]])) { | |||||
| return false; | |||||
| } | |||||
| } | |||||
| return true; | |||||
| } | |||||
| var _default = shallowEqual; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,83 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| var isUnitlessNumber = { | |||||
| boxFlex: !(exports.default = void 0), | |||||
| boxFlexGroup: true, | |||||
| columnCount: true, | |||||
| flex: true, | |||||
| flexGrow: true, | |||||
| flexPositive: true, | |||||
| flexShrink: true, | |||||
| flexNegative: true, | |||||
| fontWeight: true, | |||||
| lineClamp: true, | |||||
| lineHeight: true, | |||||
| opacity: true, | |||||
| order: true, | |||||
| orphans: true, | |||||
| widows: true, | |||||
| zIndex: true, | |||||
| zoom: true, | |||||
| fillOpacity: true, | |||||
| strokeDashoffset: true, | |||||
| strokeOpacity: true, | |||||
| strokeWidth: true | |||||
| }; | |||||
| function prefixKey(e, t) { | |||||
| return e + t.charAt(0).toUpperCase() + t.substring(1); | |||||
| } | |||||
| var prefixes = ['Webkit', 'ms', 'Moz', 'O']; | |||||
| Object.keys(isUnitlessNumber).forEach(function (t) { | |||||
| prefixes.forEach(function (e) { | |||||
| isUnitlessNumber[prefixKey(e, t)] = isUnitlessNumber[t]; | |||||
| }); | |||||
| }); | |||||
| var msPattern = /^ms-/; | |||||
| var _uppercasePattern = /([A-Z])/g; | |||||
| function hyphenate(e) { | |||||
| return e.replace(_uppercasePattern, '-$1').toLowerCase(); | |||||
| } | |||||
| function hyphenateStyleName(e) { | |||||
| return hyphenate(e).replace(msPattern, '-ms-'); | |||||
| } | |||||
| var isArray = Array.isArray; | |||||
| var keys = Object.keys; | |||||
| var unquotedContentValueRegex = /^(normal|none|(\b(url\([^)]*\)|chapter_counter|attr\([^)]*\)|(no-)?(open|close)-quote|inherit)((\b\s*)|$|\s+))+)$/; | |||||
| function buildRule(e, t) { | |||||
| if (isUnitlessNumber[e] || 'number' != typeof t) { | |||||
| 'content' !== e || unquotedContentValueRegex.test(t) || (t = "'" + t.replace(/'/g, "\\'") + "'"); | |||||
| } else { | |||||
| t += 'px'; | |||||
| } | |||||
| return hyphenateStyleName(e) + ': ' + t + '; '; | |||||
| } | |||||
| function styleToCssString(e) { | |||||
| var t = ''; | |||||
| if ('string' == typeof e) { | |||||
| return ';' === (e = e.trim()).slice(-1) ? ''.concat(e, ' ') : ''.concat(e, '; '); | |||||
| } | |||||
| if (!e || 0 === keys(e).length) { | |||||
| return t; | |||||
| } | |||||
| for (r = keys(e), n = 0, s = r.length, void 0; n < s; n++) { | |||||
| var r; | |||||
| var n; | |||||
| var s; | |||||
| var o = r[n]; | |||||
| var i = e[o]; | |||||
| if (isArray(i)) { | |||||
| for (a = 0, u = i.length, void 0; a < u; a++) { | |||||
| var a; | |||||
| var u; | |||||
| t += buildRule(o, i[a]); | |||||
| } | |||||
| } else { | |||||
| t += buildRule(o, i); | |||||
| } | |||||
| } | |||||
| return t; | |||||
| } | |||||
| var _default = styleToCssString; | |||||
| exports.default = _default; | |||||
| @@ -0,0 +1,19 @@ | |||||
| 'use strict'; | |||||
| Object.defineProperty(exports, '__esModule', { | |||||
| value: true | |||||
| }); | |||||
| exports.$wuxBackdrop = exports.version = exports.getCtx = void 0; | |||||
| var getCtx = function (e, t) { | |||||
| var r = (1 < arguments.length && void 0 !== t ? t : getCurrentPages()[getCurrentPages().length - 1].zpSelectComponent)(e); | |||||
| if (!r) { | |||||
| throw new Error('无法找到对应的组件,请按文档说明使用组件'); | |||||
| } | |||||
| return r; | |||||
| }; | |||||
| exports.getCtx = getCtx; | |||||
| var version = '3.8.9'; | |||||
| exports.version = version; | |||||
| var $wuxBackdrop = function (e, t) { | |||||
| return getCtx(0 < arguments.length && void 0 !== e ? e : '#wux-backdrop', 1 < arguments.length ? t : void 0); | |||||
| }; | |||||
| exports.$wuxBackdrop = $wuxBackdrop; | |||||
| @@ -0,0 +1,359 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <wux-backdrop id="wux-backdrop" v-if="mask" @click="onMaskClick($event, { tagId: 'wux-backdrop' })" :zIndex="zIndex" /> | |||||
| <view :class="'wux-class ' + classes.wrap" :style="extStyle"> | |||||
| <wux-animation-group | |||||
| :wux-class="prefixCls" | |||||
| :in="popupVisible" | |||||
| :classNames="transitionName" | |||||
| @exited="onExited" | |||||
| :wrapStyle="" | |||||
| :mountOnEnter="mountOnEnter" | |||||
| :unmountOnExit="unmountOnExit" | |||||
| > | |||||
| <view :class="'wux-content-class ' + classes.content"> | |||||
| <view :class="'wux-header-class ' + classes.hd" v-if="hasHeader"> | |||||
| <view :class="classes.title" v-if="title">{{ title }}</view> | |||||
| <block v-else> | |||||
| <slot name="header"></slot> | |||||
| </block> | |||||
| </view> | |||||
| <view :class="'wux-body-class ' + classes.bd"> | |||||
| <view v-if="content">{{ content }}</view> | |||||
| <slot></slot> | |||||
| </view> | |||||
| <view :class="'wux-footer-class ' + classes.ft" v-if="hasFooter"> | |||||
| <view :class="classes.extra" v-if="extra">{{ extra }}</view> | |||||
| <block v-else> | |||||
| <slot name="footer"></slot> | |||||
| </block> | |||||
| </view> | |||||
| <view :class="'wux-close-class ' + classes.close" v-if="closable" @tap="close"> | |||||
| <text :class="classes.x"></text> | |||||
| </view> | |||||
| </view> | |||||
| </wux-animation-group> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| 'use strict'; | |||||
| import wuxAnimationGroup from '../animation-group/index'; | |||||
| import wuxBackdrop from '../backdrop/index'; | |||||
| var _baseComponent = _interopRequireDefault(require('../helpers/baseComponent')); | |||||
| var _classNames2 = _interopRequireDefault(require('../helpers/classNames')); | |||||
| var _styleToCssString = _interopRequireDefault(require('../helpers/styleToCssString')); | |||||
| var _index = require('../index'); | |||||
| function _interopRequireDefault(e) { | |||||
| return e && e.__esModule | |||||
| ? e | |||||
| : { | |||||
| default: e | |||||
| }; | |||||
| } | |||||
| function _defineProperty(e, t, a) { | |||||
| t in e | |||||
| ? Object.defineProperty(e, t, { | |||||
| value: a, | |||||
| enumerable: true, | |||||
| configurable: true, | |||||
| writable: true | |||||
| }) | |||||
| : (e[t] = a); | |||||
| return e; | |||||
| } | |||||
| (0, _baseComponent.default)({ | |||||
| useSafeArea: true, | |||||
| externalClasses: ['wux-content-class', 'wux-header-class', 'wux-body-class', 'wux-footer-class', 'wux-close-class'], | |||||
| properties: { | |||||
| prefixCls: { | |||||
| type: String, | |||||
| value: 'wux-popup' | |||||
| }, | |||||
| animationPrefixCls: { | |||||
| type: String, | |||||
| value: 'wux-animate' | |||||
| }, | |||||
| title: { | |||||
| type: String, | |||||
| value: '' | |||||
| }, | |||||
| content: { | |||||
| type: String, | |||||
| value: '' | |||||
| }, | |||||
| extra: { | |||||
| type: String, | |||||
| value: '' | |||||
| }, | |||||
| position: { | |||||
| type: String, | |||||
| value: 'center', | |||||
| observer: 'getTransitionName' | |||||
| }, | |||||
| wrapStyle: { | |||||
| type: [String, Object], | |||||
| value: '', | |||||
| observer: function (e) { | |||||
| this.setData({ | |||||
| extStyle: (0, _styleToCssString.default)(e) | |||||
| }); | |||||
| } | |||||
| }, | |||||
| closable: { | |||||
| type: Boolean, | |||||
| value: false | |||||
| }, | |||||
| mask: { | |||||
| type: Boolean, | |||||
| value: true | |||||
| }, | |||||
| maskClosable: { | |||||
| type: Boolean, | |||||
| value: true | |||||
| }, | |||||
| visible: { | |||||
| type: Boolean, | |||||
| value: false, | |||||
| observer: 'setPopupVisible' | |||||
| }, | |||||
| zIndex: { | |||||
| type: Number, | |||||
| value: 1000 | |||||
| }, | |||||
| hasHeader: { | |||||
| type: Boolean, | |||||
| value: true | |||||
| }, | |||||
| hasFooter: { | |||||
| type: Boolean, | |||||
| value: true | |||||
| }, | |||||
| mountOnEnter: { | |||||
| type: Boolean, | |||||
| value: true | |||||
| }, | |||||
| unmountOnExit: { | |||||
| type: Boolean, | |||||
| value: true | |||||
| } | |||||
| }, | |||||
| data: { | |||||
| transitionName: '', | |||||
| popupVisible: false, | |||||
| extStyle: '' | |||||
| }, | |||||
| computed: { | |||||
| classes: [ | |||||
| 'prefixCls, position, safeAreaConfig, isIPhoneX', | |||||
| function (e, t, a, i) { | |||||
| var o; | |||||
| return { | |||||
| wrap: (0, _classNames2.default)( | |||||
| ''.concat(e, '-position'), | |||||
| (_defineProperty((o = {}), ''.concat(e, '-position--').concat(t), t), _defineProperty(o, ''.concat(e, '-position--is-iphonex'), a.bottom && i), o) | |||||
| ), | |||||
| content: ''.concat(e, '__content'), | |||||
| hd: ''.concat(e, '__hd'), | |||||
| title: ''.concat(e, '__title'), | |||||
| bd: ''.concat(e, '__bd'), | |||||
| ft: ''.concat(e, '__ft'), | |||||
| extra: ''.concat(e, '__extra'), | |||||
| close: ''.concat(e, '__close'), | |||||
| x: ''.concat(e, '__close-x') | |||||
| }; | |||||
| } | |||||
| ] | |||||
| }, | |||||
| methods: { | |||||
| close: function () { | |||||
| this.$emit('close'); | |||||
| }, | |||||
| onMaskClick: function () { | |||||
| if (this.maskClosable) { | |||||
| this.close(); | |||||
| } | |||||
| }, | |||||
| onExited: function () { | |||||
| this.$emit('closed'); | |||||
| }, | |||||
| getTransitionName: function (e) { | |||||
| if (0 < arguments.length && void 0 !== e) { | |||||
| var t = e; | |||||
| } else { | |||||
| var t = this.position; | |||||
| } | |||||
| var a = this.animationPrefixCls; | |||||
| var i = ''; | |||||
| switch (t) { | |||||
| case 'top': | |||||
| i = ''.concat(a, '--slideInDown'); | |||||
| break; | |||||
| case 'right': | |||||
| i = ''.concat(a, '--slideInRight'); | |||||
| break; | |||||
| case 'bottom': | |||||
| i = ''.concat(a, '--slideInUp'); | |||||
| break; | |||||
| case 'left': | |||||
| i = ''.concat(a, '--slideInLeft'); | |||||
| break; | |||||
| default: | |||||
| i = ''.concat(a, '--fadeIn'); | |||||
| } | |||||
| this.setData({ | |||||
| transitionName: i | |||||
| }); | |||||
| }, | |||||
| setPopupVisible: function (e) { | |||||
| if (this.popupVisible !== e) { | |||||
| this.setData({ | |||||
| popupVisible: e | |||||
| }); | |||||
| this.setBackdropVisible(e); | |||||
| } | |||||
| }, | |||||
| setBackdropVisible: function (e) { | |||||
| if (this.mask && this.$wuxBackdrop) { | |||||
| this.$wuxBackdrop[e ? 'retain' : 'release'](); | |||||
| } | |||||
| } | |||||
| }, | |||||
| created: function () { | |||||
| if (this.mask) { | |||||
| this.$wuxBackdrop = (0, _index.$wuxBackdrop)('#wux-backdrop', this); | |||||
| } | |||||
| }, | |||||
| attached: function () { | |||||
| this.setPopupVisible(this.visible); | |||||
| this.getTransitionName(); | |||||
| } | |||||
| }); | |||||
| </script> | |||||
| <style> | |||||
| .wux-popup { | |||||
| position: fixed; | |||||
| z-index: 1000; | |||||
| width: 80%; | |||||
| max-width: 600rpx; | |||||
| } | |||||
| .wux-popup-position.wux-popup-position--center .wux-popup { | |||||
| top: 50%; | |||||
| left: 50%; | |||||
| transform: translate(-50%, -50%); | |||||
| } | |||||
| .wux-popup-position.wux-popup-position--center .wux-popup__content { | |||||
| border-radius: 8rpx; | |||||
| } | |||||
| .wux-popup-position.wux-popup-position--center .wux-popup__hd { | |||||
| padding: 1.3em 1.6em 0.5em; | |||||
| } | |||||
| .wux-popup-position.wux-popup-position--center .wux-popup__bd { | |||||
| padding: 0 1.6em 0.8em; | |||||
| } | |||||
| .wux-popup-position.wux-popup-position--center .wux-popup__ft::after { | |||||
| content: ' '; | |||||
| position: absolute; | |||||
| left: 0; | |||||
| top: 0; | |||||
| right: 0; | |||||
| height: 1px; | |||||
| border-top: 1px solid #d9d9d9; | |||||
| color: #d9d9d9; | |||||
| transform-origin: 0 0; | |||||
| transform: scaleY(0.5); | |||||
| } | |||||
| .wux-popup-position.wux-popup-position--top .wux-popup { | |||||
| position: fixed; | |||||
| left: 0; | |||||
| top: 0; | |||||
| width: 100%; | |||||
| max-width: 100%; | |||||
| } | |||||
| .wux-popup-position.wux-popup-position--right .wux-popup { | |||||
| position: fixed; | |||||
| top: 0; | |||||
| right: 0; | |||||
| width: 80%; | |||||
| max-width: 100%; | |||||
| height: 100%; | |||||
| max-height: 100%; | |||||
| } | |||||
| .wux-popup-position.wux-popup-position--bottom .wux-popup { | |||||
| position: fixed; | |||||
| left: 0; | |||||
| bottom: 0; | |||||
| width: 100%; | |||||
| max-width: 100%; | |||||
| } | |||||
| .wux-popup-position.wux-popup-position--left .wux-popup { | |||||
| position: fixed; | |||||
| left: 0; | |||||
| top: 0; | |||||
| width: 80%; | |||||
| max-width: 100%; | |||||
| height: 100%; | |||||
| max-height: 100%; | |||||
| } | |||||
| .wux-popup-position.wux-popup-position--is-iphonex .wux-popup__content { | |||||
| padding-bottom: 68rpx; | |||||
| } | |||||
| @supports (padding-bottom: constant(safe-area-inset-bottom)) { | |||||
| .wux-popup-position.wux-popup-position--is-iphonex .wux-popup__content { | |||||
| padding-bottom: constant(safe-area-inset-bottom); | |||||
| } | |||||
| } | |||||
| @supports (padding-bottom: env(safe-area-inset-bottom)) { | |||||
| .wux-popup-position.wux-popup-position--is-iphonex .wux-popup__content { | |||||
| padding-bottom: env(safe-area-inset-bottom); | |||||
| } | |||||
| } | |||||
| .wux-popup__content { | |||||
| position: relative; | |||||
| background-color: #fff; | |||||
| border: 0; | |||||
| background-clip: padding-box; | |||||
| height: 100%; | |||||
| text-align: center; | |||||
| overflow: hidden; | |||||
| } | |||||
| .wux-popup__title { | |||||
| font-weight: 400; | |||||
| font-size: 36rpx; | |||||
| color: rgba(0, 0, 0, 0.85); | |||||
| } | |||||
| .wux-popup__bd { | |||||
| min-height: 80rpx; | |||||
| font-size: 30rpx; | |||||
| line-height: 1.3; | |||||
| word-wrap: break-word; | |||||
| word-break: break-all; | |||||
| color: rgba(0, 0, 0, 0.45); | |||||
| } | |||||
| .wux-popup__ft { | |||||
| position: relative; | |||||
| line-height: 96rpx; | |||||
| font-size: 36rpx; | |||||
| display: flex; | |||||
| } | |||||
| .wux-popup__close { | |||||
| border: 0; | |||||
| padding: 6rpx; | |||||
| background-color: transparent; | |||||
| outline: 0; | |||||
| position: absolute; | |||||
| top: 12rpx; | |||||
| right: 12rpx; | |||||
| height: 42rpx; | |||||
| width: 42rpx; | |||||
| } | |||||
| .wux-popup__close-x { | |||||
| display: inline-block; | |||||
| width: 30rpx; | |||||
| height: 30rpx; | |||||
| background-repeat: no-repeat; | |||||
| background-size: cover; | |||||
| background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg%20width%3D%2230%22%20height%3D%2230%22%20viewBox%3D%220%200%2030%2030%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cg%20fill%3D%22%23888%22%20fill-rule%3D%22evenodd%22%3E%3Cpath%20d%3D%22M1.414%200l28.284%2028.284-1.414%201.414L0%201.414z%22%2F%3E%3Cpath%20d%3D%22M28.284%200L0%2028.284l1.414%201.414L29.698%201.414z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E'); | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,583 @@ | |||||
| .wux-text--left { | |||||
| text-align: left !important; | |||||
| } | |||||
| .wux-text--right { | |||||
| text-align: right !important; | |||||
| } | |||||
| .wux-text--center { | |||||
| text-align: center !important; | |||||
| } | |||||
| .wux-text--justify { | |||||
| text-align: justify !important; | |||||
| } | |||||
| .wux-text--nowrap { | |||||
| text-align: nowrap !important; | |||||
| } | |||||
| .wux-text--lowercase { | |||||
| text-transform: lowercase !important; | |||||
| } | |||||
| .wux-text--uppercase { | |||||
| text-transform: uppercase !important; | |||||
| } | |||||
| .wux-text--capitalize { | |||||
| text-transform: capitalize !important; | |||||
| } | |||||
| .wux-light { | |||||
| color: #fff !important; | |||||
| } | |||||
| .wux-light--bg { | |||||
| background-color: #fff !important; | |||||
| } | |||||
| .wux-light--border { | |||||
| border-color: #fff !important; | |||||
| } | |||||
| .wux-stable { | |||||
| color: #f8f8f8 !important; | |||||
| } | |||||
| .wux-stable--bg { | |||||
| background-color: #f8f8f8 !important; | |||||
| } | |||||
| .wux-stable--border { | |||||
| border-color: #f8f8f8 !important; | |||||
| } | |||||
| .wux-positive { | |||||
| color: #387ef5 !important; | |||||
| } | |||||
| .wux-positive--bg { | |||||
| background-color: #387ef5 !important; | |||||
| } | |||||
| .wux-positive--border { | |||||
| border-color: #387ef5 !important; | |||||
| } | |||||
| .wux-calm { | |||||
| color: #11c1f3 !important; | |||||
| } | |||||
| .wux-calm--bg { | |||||
| background-color: #11c1f3 !important; | |||||
| } | |||||
| .wux-calm--border { | |||||
| border-color: #11c1f3 !important; | |||||
| } | |||||
| .wux-balanced { | |||||
| color: #33cd5f !important; | |||||
| } | |||||
| .wux-balanced--bg { | |||||
| background-color: #33cd5f !important; | |||||
| } | |||||
| .wux-balanced--border { | |||||
| border-color: #33cd5f !important; | |||||
| } | |||||
| .wux-energized { | |||||
| color: #ffc900 !important; | |||||
| } | |||||
| .wux-energized--bg { | |||||
| background-color: #ffc900 !important; | |||||
| } | |||||
| .wux-energized--border { | |||||
| border-color: #ffc900 !important; | |||||
| } | |||||
| .wux-assertive { | |||||
| color: #ef473a !important; | |||||
| } | |||||
| .wux-assertive--bg { | |||||
| background-color: #ef473a !important; | |||||
| } | |||||
| .wux-assertive--border { | |||||
| border-color: #ef473a !important; | |||||
| } | |||||
| .wux-royal { | |||||
| color: #886aea !important; | |||||
| } | |||||
| .wux-royal--bg { | |||||
| background-color: #886aea !important; | |||||
| } | |||||
| .wux-royal--border { | |||||
| border-color: #886aea !important; | |||||
| } | |||||
| .wux-dark { | |||||
| color: #444 !important; | |||||
| } | |||||
| .wux-dark--bg { | |||||
| background-color: #444 !important; | |||||
| } | |||||
| .wux-dark--border { | |||||
| border-color: #444 !important; | |||||
| } | |||||
| .wux-m--30, | |||||
| .wux-margin--30 { | |||||
| margin: 60rpx !important; | |||||
| } | |||||
| .wux-margin-top--30, | |||||
| .wux-mt--30 { | |||||
| margin-top: 60rpx !important; | |||||
| } | |||||
| .wux-margin-right--30, | |||||
| .wux-mr--30 { | |||||
| margin-right: 60rpx !important; | |||||
| } | |||||
| .wux-margin-bottom--30, | |||||
| .wux-mb--30 { | |||||
| margin-bottom: 60rpx !important; | |||||
| } | |||||
| .wux-margin-left--30, | |||||
| .wux-ml--30 { | |||||
| margin-left: 60rpx !important; | |||||
| } | |||||
| .wux-margin-vertical--30, | |||||
| .wux-mv--30 { | |||||
| margin: 60rpx 0 !important; | |||||
| } | |||||
| .wux-margin-horizontal--30, | |||||
| .wux-mh--30 { | |||||
| margin: 0 60rpx !important; | |||||
| } | |||||
| .wux-p--30, | |||||
| .wux-padding--30 { | |||||
| padding: 60rpx !important; | |||||
| } | |||||
| .wux-padding-top--30, | |||||
| .wux-pt--30 { | |||||
| padding-top: 60rpx !important; | |||||
| } | |||||
| .wux-padding-right--30, | |||||
| .wux-pr--30 { | |||||
| padding-right: 60rpx !important; | |||||
| } | |||||
| .wux-padding-bottom--30, | |||||
| .wux-pb--30 { | |||||
| padding-bottom: 60rpx !important; | |||||
| } | |||||
| .wux-padding-left--30, | |||||
| .wux-pl--30 { | |||||
| padding-left: 60rpx !important; | |||||
| } | |||||
| .wux-padding-vertical--30, | |||||
| .wux-pv--30 { | |||||
| padding: 60rpx 0 !important; | |||||
| } | |||||
| .wux-padding-horizontal--30, | |||||
| .wux-ph--30 { | |||||
| padding: 0 60rpx !important; | |||||
| } | |||||
| .wux-m--25, | |||||
| .wux-margin--25 { | |||||
| margin: 50rpx !important; | |||||
| } | |||||
| .wux-margin-top--25, | |||||
| .wux-mt--25 { | |||||
| margin-top: 50rpx !important; | |||||
| } | |||||
| .wux-margin-right--25, | |||||
| .wux-mr--25 { | |||||
| margin-right: 50rpx !important; | |||||
| } | |||||
| .wux-margin-bottom--25, | |||||
| .wux-mb--25 { | |||||
| margin-bottom: 50rpx !important; | |||||
| } | |||||
| .wux-margin-left--25, | |||||
| .wux-ml--25 { | |||||
| margin-left: 50rpx !important; | |||||
| } | |||||
| .wux-margin-vertical--25, | |||||
| .wux-mv--25 { | |||||
| margin: 50rpx 0 !important; | |||||
| } | |||||
| .wux-margin-horizontal--25, | |||||
| .wux-mh--25 { | |||||
| margin: 0 50rpx !important; | |||||
| } | |||||
| .wux-p--25, | |||||
| .wux-padding--25 { | |||||
| padding: 50rpx !important; | |||||
| } | |||||
| .wux-padding-top--25, | |||||
| .wux-pt--25 { | |||||
| padding-top: 50rpx !important; | |||||
| } | |||||
| .wux-padding-right--25, | |||||
| .wux-pr--25 { | |||||
| padding-right: 50rpx !important; | |||||
| } | |||||
| .wux-padding-bottom--25, | |||||
| .wux-pb--25 { | |||||
| padding-bottom: 50rpx !important; | |||||
| } | |||||
| .wux-padding-left--25, | |||||
| .wux-pl--25 { | |||||
| padding-left: 50rpx !important; | |||||
| } | |||||
| .wux-padding-vertical--25, | |||||
| .wux-pv--25 { | |||||
| padding: 50rpx 0 !important; | |||||
| } | |||||
| .wux-padding-horizontal--25, | |||||
| .wux-ph--25 { | |||||
| padding: 0 50rpx !important; | |||||
| } | |||||
| .wux-m--20, | |||||
| .wux-margin--20 { | |||||
| margin: 40rpx !important; | |||||
| } | |||||
| .wux-margin-top--20, | |||||
| .wux-mt--20 { | |||||
| margin-top: 40rpx !important; | |||||
| } | |||||
| .wux-margin-right--20, | |||||
| .wux-mr--20 { | |||||
| margin-right: 40rpx !important; | |||||
| } | |||||
| .wux-margin-bottom--20, | |||||
| .wux-mb--20 { | |||||
| margin-bottom: 40rpx !important; | |||||
| } | |||||
| .wux-margin-left--20, | |||||
| .wux-ml--20 { | |||||
| margin-left: 40rpx !important; | |||||
| } | |||||
| .wux-margin-vertical--20, | |||||
| .wux-mv--20 { | |||||
| margin: 40rpx 0 !important; | |||||
| } | |||||
| .wux-margin-horizontal--20, | |||||
| .wux-mh--20 { | |||||
| margin: 0 40rpx !important; | |||||
| } | |||||
| .wux-p--20, | |||||
| .wux-padding--20 { | |||||
| padding: 40rpx !important; | |||||
| } | |||||
| .wux-padding-top--20, | |||||
| .wux-pt--20 { | |||||
| padding-top: 40rpx !important; | |||||
| } | |||||
| .wux-padding-right--20, | |||||
| .wux-pr--20 { | |||||
| padding-right: 40rpx !important; | |||||
| } | |||||
| .wux-padding-bottom--20, | |||||
| .wux-pb--20 { | |||||
| padding-bottom: 40rpx !important; | |||||
| } | |||||
| .wux-padding-left--20, | |||||
| .wux-pl--20 { | |||||
| padding-left: 40rpx !important; | |||||
| } | |||||
| .wux-padding-vertical--20, | |||||
| .wux-pv--20 { | |||||
| padding: 40rpx 0 !important; | |||||
| } | |||||
| .wux-padding-horizontal--20, | |||||
| .wux-ph--20 { | |||||
| padding: 0 40rpx !important; | |||||
| } | |||||
| .wux-m--15, | |||||
| .wux-margin--15 { | |||||
| margin: 30rpx !important; | |||||
| } | |||||
| .wux-margin-top--15, | |||||
| .wux-mt--15 { | |||||
| margin-top: 30rpx !important; | |||||
| } | |||||
| .wux-margin-right--15, | |||||
| .wux-mr--15 { | |||||
| margin-right: 30rpx !important; | |||||
| } | |||||
| .wux-margin-bottom--15, | |||||
| .wux-mb--15 { | |||||
| margin-bottom: 30rpx !important; | |||||
| } | |||||
| .wux-margin-left--15, | |||||
| .wux-ml--15 { | |||||
| margin-left: 30rpx !important; | |||||
| } | |||||
| .wux-margin-vertical--15, | |||||
| .wux-mv--15 { | |||||
| margin: 30rpx 0 !important; | |||||
| } | |||||
| .wux-margin-horizontal--15, | |||||
| .wux-mh--15 { | |||||
| margin: 0 30rpx !important; | |||||
| } | |||||
| .wux-p--15, | |||||
| .wux-padding--15 { | |||||
| padding: 30rpx !important; | |||||
| } | |||||
| .wux-padding-top--15, | |||||
| .wux-pt--15 { | |||||
| padding-top: 30rpx !important; | |||||
| } | |||||
| .wux-padding-right--15, | |||||
| .wux-pr--15 { | |||||
| padding-right: 30rpx !important; | |||||
| } | |||||
| .wux-padding-bottom--15, | |||||
| .wux-pb--15 { | |||||
| padding-bottom: 30rpx !important; | |||||
| } | |||||
| .wux-padding-left--15, | |||||
| .wux-pl--15 { | |||||
| padding-left: 30rpx !important; | |||||
| } | |||||
| .wux-padding-vertical--15, | |||||
| .wux-pv--15 { | |||||
| padding: 30rpx 0 !important; | |||||
| } | |||||
| .wux-padding-horizontal--15, | |||||
| .wux-ph--15 { | |||||
| padding: 0 30rpx !important; | |||||
| } | |||||
| .wux-m--10, | |||||
| .wux-margin--10 { | |||||
| margin: 20rpx !important; | |||||
| } | |||||
| .wux-margin-top--10, | |||||
| .wux-mt--10 { | |||||
| margin-top: 20rpx !important; | |||||
| } | |||||
| .wux-margin-right--10, | |||||
| .wux-mr--10 { | |||||
| margin-right: 20rpx !important; | |||||
| } | |||||
| .wux-margin-bottom--10, | |||||
| .wux-mb--10 { | |||||
| margin-bottom: 20rpx !important; | |||||
| } | |||||
| .wux-margin-left--10, | |||||
| .wux-ml--10 { | |||||
| margin-left: 20rpx !important; | |||||
| } | |||||
| .wux-margin-vertical--10, | |||||
| .wux-mv--10 { | |||||
| margin: 20rpx 0 !important; | |||||
| } | |||||
| .wux-margin-horizontal--10, | |||||
| .wux-mh--10 { | |||||
| margin: 0 20rpx !important; | |||||
| } | |||||
| .wux-p--10, | |||||
| .wux-padding--10 { | |||||
| padding: 20rpx !important; | |||||
| } | |||||
| .wux-padding-top--10, | |||||
| .wux-pt--10 { | |||||
| padding-top: 20rpx !important; | |||||
| } | |||||
| .wux-padding-right--10, | |||||
| .wux-pr--10 { | |||||
| padding-right: 20rpx !important; | |||||
| } | |||||
| .wux-padding-bottom--10, | |||||
| .wux-pb--10 { | |||||
| padding-bottom: 20rpx !important; | |||||
| } | |||||
| .wux-padding-left--10, | |||||
| .wux-pl--10 { | |||||
| padding-left: 20rpx !important; | |||||
| } | |||||
| .wux-padding-vertical--10, | |||||
| .wux-pv--10 { | |||||
| padding: 20rpx 0 !important; | |||||
| } | |||||
| .wux-padding-horizontal--10, | |||||
| .wux-ph--10 { | |||||
| padding: 0 20rpx !important; | |||||
| } | |||||
| .wux-m--5, | |||||
| .wux-margin--5 { | |||||
| margin: 10rpx !important; | |||||
| } | |||||
| .wux-margin-top--5, | |||||
| .wux-mt--5 { | |||||
| margin-top: 10rpx !important; | |||||
| } | |||||
| .wux-margin-right--5, | |||||
| .wux-mr--5 { | |||||
| margin-right: 10rpx !important; | |||||
| } | |||||
| .wux-margin-bottom--5, | |||||
| .wux-mb--5 { | |||||
| margin-bottom: 10rpx !important; | |||||
| } | |||||
| .wux-margin-left--5, | |||||
| .wux-ml--5 { | |||||
| margin-left: 10rpx !important; | |||||
| } | |||||
| .wux-margin-vertical--5, | |||||
| .wux-mv--5 { | |||||
| margin: 10rpx 0 !important; | |||||
| } | |||||
| .wux-margin-horizontal--5, | |||||
| .wux-mh--5 { | |||||
| margin: 0 10rpx !important; | |||||
| } | |||||
| .wux-p--5, | |||||
| .wux-padding--5 { | |||||
| padding: 10rpx !important; | |||||
| } | |||||
| .wux-padding-top--5, | |||||
| .wux-pt--5 { | |||||
| padding-top: 10rpx !important; | |||||
| } | |||||
| .wux-padding-right--5, | |||||
| .wux-pr--5 { | |||||
| padding-right: 10rpx !important; | |||||
| } | |||||
| .wux-padding-bottom--5, | |||||
| .wux-pb--5 { | |||||
| padding-bottom: 10rpx !important; | |||||
| } | |||||
| .wux-padding-left--5, | |||||
| .wux-pl--5 { | |||||
| padding-left: 10rpx !important; | |||||
| } | |||||
| .wux-padding-vertical--5, | |||||
| .wux-pv--5 { | |||||
| padding: 10rpx 0 !important; | |||||
| } | |||||
| .wux-padding-horizontal--5, | |||||
| .wux-ph--5 { | |||||
| padding: 0 10rpx !important; | |||||
| } | |||||
| .wux-m--0, | |||||
| .wux-margin--0 { | |||||
| margin: 0rpx !important; | |||||
| } | |||||
| .wux-margin-top--0, | |||||
| .wux-mt--0 { | |||||
| margin-top: 0rpx !important; | |||||
| } | |||||
| .wux-margin-right--0, | |||||
| .wux-mr--0 { | |||||
| margin-right: 0rpx !important; | |||||
| } | |||||
| .wux-margin-bottom--0, | |||||
| .wux-mb--0 { | |||||
| margin-bottom: 0rpx !important; | |||||
| } | |||||
| .wux-margin-left--0, | |||||
| .wux-ml--0 { | |||||
| margin-left: 0rpx !important; | |||||
| } | |||||
| .wux-margin-vertical--0, | |||||
| .wux-mv--0 { | |||||
| margin: 0rpx 0 !important; | |||||
| } | |||||
| .wux-margin-horizontal--0, | |||||
| .wux-mh--0 { | |||||
| margin: 0 0rpx !important; | |||||
| } | |||||
| .wux-p--0, | |||||
| .wux-padding--0 { | |||||
| padding: 0rpx !important; | |||||
| } | |||||
| .wux-padding-top--0, | |||||
| .wux-pt--0 { | |||||
| padding-top: 0rpx !important; | |||||
| } | |||||
| .wux-padding-right--0, | |||||
| .wux-pr--0 { | |||||
| padding-right: 0rpx !important; | |||||
| } | |||||
| .wux-padding-bottom--0, | |||||
| .wux-pb--0 { | |||||
| padding-bottom: 0rpx !important; | |||||
| } | |||||
| .wux-padding-left--0, | |||||
| .wux-pl--0 { | |||||
| padding-left: 0rpx !important; | |||||
| } | |||||
| .wux-padding-vertical--0, | |||||
| .wux-pv--0 { | |||||
| padding: 0rpx 0 !important; | |||||
| } | |||||
| .wux-padding-horizontal--0, | |||||
| .wux-ph--0 { | |||||
| padding: 0 0rpx !important; | |||||
| } | |||||
| .wux-clearfix::after, | |||||
| .wux-clearfix::before { | |||||
| display: table; | |||||
| content: ' '; | |||||
| } | |||||
| .wux-clearfix::after { | |||||
| clear: both; | |||||
| } | |||||
| .wux-pull-right { | |||||
| float: right !important; | |||||
| } | |||||
| .wux-pull-left { | |||||
| float: left !important; | |||||
| } | |||||
| .wux-ellipsis { | |||||
| width: auto; | |||||
| overflow: hidden; | |||||
| text-overflow: ellipsis; | |||||
| white-space: nowrap; | |||||
| word-wrap: normal; | |||||
| } | |||||
| .wux-ellipsis--l2 { | |||||
| overflow: hidden; | |||||
| text-overflow: ellipsis; | |||||
| display: -webkit-box; | |||||
| -webkit-line-clamp: 2; | |||||
| -webkit-box-orient: vertical; | |||||
| } | |||||
| .wux-ellipsis--l3 { | |||||
| overflow: hidden; | |||||
| text-overflow: ellipsis; | |||||
| display: -webkit-box; | |||||
| -webkit-line-clamp: 3; | |||||
| -webkit-box-orient: vertical; | |||||
| } | |||||
| .wux-hairline, | |||||
| .wux-hairline--bottom, | |||||
| .wux-hairline--horizontal, | |||||
| .wux-hairline--left, | |||||
| .wux-hairline--right, | |||||
| .wux-hairline--surrounded, | |||||
| .wux-hairline--top, | |||||
| .wux-hairline--vertical { | |||||
| position: relative; | |||||
| } | |||||
| .wux-hairline--bottom::after, | |||||
| .wux-hairline--horizontal::after, | |||||
| .wux-hairline--left::after, | |||||
| .wux-hairline--right::after, | |||||
| .wux-hairline--surrounded::after, | |||||
| .wux-hairline--top::after, | |||||
| .wux-hairline--vertical::after, | |||||
| .wux-hairline::after { | |||||
| content: ' '; | |||||
| position: absolute; | |||||
| top: 0; | |||||
| left: 0; | |||||
| width: 200%; | |||||
| height: 200%; | |||||
| transform: scale(0.5); | |||||
| transform-origin: 0 0; | |||||
| pointer-events: none; | |||||
| box-sizing: border-box; | |||||
| border: 0 solid #d9d9d9; | |||||
| } | |||||
| .wux-hairline--top::after { | |||||
| border-top-width: 1px; | |||||
| } | |||||
| .wux-hairline--right::after { | |||||
| border-right-width: 1px; | |||||
| } | |||||
| .wux-hairline--bottom::after { | |||||
| border-bottom-width: 1px; | |||||
| } | |||||
| .wux-hairline--left::after { | |||||
| border-left-width: 1px; | |||||
| } | |||||
| .wux-hairline--horizontal::after { | |||||
| border-width: 1px 0; | |||||
| } | |||||
| .wux-hairline--vertical::after { | |||||
| border-width: 0 1px; | |||||
| } | |||||
| .wux-hairline--surrounded::after { | |||||
| border-width: 1px; | |||||
| } | |||||
| @@ -0,0 +1 @@ | |||||
| # PS:注意,cascader 存在源码级别更改,按业务要求改造过 | |||||
| @@ -0,0 +1,849 @@ | |||||
| function AMapWX(a) { | |||||
| this.key = a.key; | |||||
| this.requestConfig = { | |||||
| key: a.key, | |||||
| s: 'rsx', | |||||
| platform: 'WXJS', | |||||
| appname: a.key, | |||||
| sdkversion: '1.2.0', | |||||
| logversion: '2.0' | |||||
| }; | |||||
| this.MeRequestConfig = { | |||||
| key: a.key, | |||||
| serviceName: 'https://restapi.amap.com/rest/me' | |||||
| }; | |||||
| } | |||||
| AMapWX.prototype.getWxLocation = function (a, b) { | |||||
| uni.getLocation({ | |||||
| type: 'gcj02', | |||||
| success: function (c) { | |||||
| c = c.longitude + ',' + c.latitude; | |||||
| uni.setStorage({ | |||||
| key: 'userLocation', | |||||
| data: c | |||||
| }); | |||||
| b(c); | |||||
| }, | |||||
| fail: function (c) { | |||||
| uni.getStorage({ | |||||
| key: 'userLocation', | |||||
| success: function (d) { | |||||
| if (d.data) { | |||||
| b(d.data); | |||||
| } | |||||
| } | |||||
| }); | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: c.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getMEKeywordsSearch = function (a) { | |||||
| if (!a.options) { | |||||
| return a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: '\u7F3A\u5C11\u5FC5\u8981\u53C2\u6570' | |||||
| }); | |||||
| } | |||||
| var b = a.options; | |||||
| var c = this.MeRequestConfig; | |||||
| var d = { | |||||
| key: c.key, | |||||
| s: 'rsx', | |||||
| platform: 'WXJS', | |||||
| appname: a.key, | |||||
| sdkversion: '1.2.0', | |||||
| logversion: '2.0' | |||||
| }; | |||||
| if (b.layerId) { | |||||
| d.layerId = b.layerId; | |||||
| } | |||||
| if (b.keywords) { | |||||
| d.keywords = b.keywords; | |||||
| } | |||||
| if (b.city) { | |||||
| d.city = b.city; | |||||
| } | |||||
| if (b.filter) { | |||||
| d.filter = b.filter; | |||||
| } | |||||
| if (b.sortrule) { | |||||
| d.sortrule = b.sortrule; | |||||
| } | |||||
| if (b.pageNum) { | |||||
| d.pageNum = b.pageNum; | |||||
| } | |||||
| if (b.pageSize) { | |||||
| d.pageSize = b.pageSize; | |||||
| } | |||||
| if (b.sig) { | |||||
| d.sig = b.sig; | |||||
| } | |||||
| uni.request({ | |||||
| url: c.serviceName + '/cpoint/datasearch/local', | |||||
| data: d, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (e) { | |||||
| if ((e = e.data) && e.status && '1' === e.status && 0 === e.code) { | |||||
| a.success(e.data); | |||||
| } else { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: e | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (e) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: e.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getMEIdSearch = function (a) { | |||||
| if (!a.options) { | |||||
| return a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: '\u7F3A\u5C11\u5FC5\u8981\u53C2\u6570' | |||||
| }); | |||||
| } | |||||
| var b = a.options; | |||||
| var c = this.MeRequestConfig; | |||||
| var d = { | |||||
| key: c.key, | |||||
| s: 'rsx', | |||||
| platform: 'WXJS', | |||||
| appname: a.key, | |||||
| sdkversion: '1.2.0', | |||||
| logversion: '2.0' | |||||
| }; | |||||
| if (b.layerId) { | |||||
| d.layerId = b.layerId; | |||||
| } | |||||
| if (b.id) { | |||||
| d.id = b.id; | |||||
| } | |||||
| if (b.sig) { | |||||
| d.sig = b.sig; | |||||
| } | |||||
| uni.request({ | |||||
| url: c.serviceName + '/cpoint/datasearch/id', | |||||
| data: d, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (e) { | |||||
| if ((e = e.data) && e.status && '1' === e.status && 0 === e.code) { | |||||
| a.success(e.data); | |||||
| } else { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: e | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (e) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: e.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getMEPolygonSearch = function (a) { | |||||
| if (!a.options) { | |||||
| return a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: '\u7F3A\u5C11\u5FC5\u8981\u53C2\u6570' | |||||
| }); | |||||
| } | |||||
| var b = a.options; | |||||
| var c = this.MeRequestConfig; | |||||
| var d = { | |||||
| key: c.key, | |||||
| s: 'rsx', | |||||
| platform: 'WXJS', | |||||
| appname: a.key, | |||||
| sdkversion: '1.2.0', | |||||
| logversion: '2.0' | |||||
| }; | |||||
| if (b.layerId) { | |||||
| d.layerId = b.layerId; | |||||
| } | |||||
| if (b.keywords) { | |||||
| d.keywords = b.keywords; | |||||
| } | |||||
| if (b.polygon) { | |||||
| d.polygon = b.polygon; | |||||
| } | |||||
| if (b.filter) { | |||||
| d.filter = b.filter; | |||||
| } | |||||
| if (b.sortrule) { | |||||
| d.sortrule = b.sortrule; | |||||
| } | |||||
| if (b.pageNum) { | |||||
| d.pageNum = b.pageNum; | |||||
| } | |||||
| if (b.pageSize) { | |||||
| d.pageSize = b.pageSize; | |||||
| } | |||||
| if (b.sig) { | |||||
| d.sig = b.sig; | |||||
| } | |||||
| uni.request({ | |||||
| url: c.serviceName + '/cpoint/datasearch/polygon', | |||||
| data: d, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (e) { | |||||
| (e = e.data) && e.status && '1' === e.status && 0 === e.code | |||||
| ? a.success(e.data) | |||||
| : a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: e | |||||
| }); | |||||
| }, | |||||
| fail: function (e) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: e.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getMEaroundSearch = function (a) { | |||||
| if (!a.options) { | |||||
| return a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: '\u7F3A\u5C11\u5FC5\u8981\u53C2\u6570' | |||||
| }); | |||||
| } | |||||
| var b = a.options; | |||||
| var c = this.MeRequestConfig; | |||||
| var d = { | |||||
| key: c.key, | |||||
| s: 'rsx', | |||||
| platform: 'WXJS', | |||||
| appname: a.key, | |||||
| sdkversion: '1.2.0', | |||||
| logversion: '2.0' | |||||
| }; | |||||
| if (b.layerId) { | |||||
| d.layerId = b.layerId; | |||||
| } | |||||
| if (b.keywords) { | |||||
| d.keywords = b.keywords; | |||||
| } | |||||
| if (b.center) { | |||||
| d.center = b.center; | |||||
| } | |||||
| if (b.radius) { | |||||
| d.radius = b.radius; | |||||
| } | |||||
| if (b.filter) { | |||||
| d.filter = b.filter; | |||||
| } | |||||
| if (b.sortrule) { | |||||
| d.sortrule = b.sortrule; | |||||
| } | |||||
| if (b.pageNum) { | |||||
| d.pageNum = b.pageNum; | |||||
| } | |||||
| if (b.pageSize) { | |||||
| d.pageSize = b.pageSize; | |||||
| } | |||||
| if (b.sig) { | |||||
| d.sig = b.sig; | |||||
| } | |||||
| uni.request({ | |||||
| url: c.serviceName + '/cpoint/datasearch/around', | |||||
| data: d, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (e) { | |||||
| (e = e.data) && e.status && '1' === e.status && 0 === e.code | |||||
| ? a.success(e.data) | |||||
| : a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: e | |||||
| }); | |||||
| }, | |||||
| fail: function (e) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: e.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getGeo = function (a) { | |||||
| var b = this.requestConfig; | |||||
| var c = a.options; | |||||
| b = { | |||||
| key: this.key, | |||||
| extensions: 'all', | |||||
| s: b.s, | |||||
| platform: b.platform, | |||||
| appname: this.key, | |||||
| sdkversion: b.sdkversion, | |||||
| logversion: b.logversion | |||||
| }; | |||||
| if (c.address) { | |||||
| b.address = c.address; | |||||
| } | |||||
| if (c.city) { | |||||
| b.city = c.city; | |||||
| } | |||||
| if (c.batch) { | |||||
| b.batch = c.batch; | |||||
| } | |||||
| if (c.sig) { | |||||
| b.sig = c.sig; | |||||
| } | |||||
| uni.request({ | |||||
| url: 'https://restapi.amap.com/v3/geocode/geo', | |||||
| data: b, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (d) { | |||||
| (d = d.data) && d.status && '1' === d.status | |||||
| ? a.success(d) | |||||
| : a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: d | |||||
| }); | |||||
| }, | |||||
| fail: function (d) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: d.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getRegeo = function (a) { | |||||
| function b(d) { | |||||
| var e = that.requestConfig; | |||||
| uni.request({ | |||||
| url: 'https://restapi.amap.com/v3/geocode/regeo', | |||||
| data: { | |||||
| key: that.key, | |||||
| location: d, | |||||
| extensions: 'all', | |||||
| s: e.s, | |||||
| platform: e.platform, | |||||
| appname: that.key, | |||||
| sdkversion: e.sdkversion, | |||||
| logversion: e.logversion | |||||
| }, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (g) { | |||||
| if (g.data.status && '1' == g.data.status) { | |||||
| g = g.data.regeocode; | |||||
| var h = g.addressComponent; | |||||
| var f = []; | |||||
| var k = g.roads[0].name + '\u9644\u8FD1'; | |||||
| var m = d.split(',')[0]; | |||||
| var n = d.split(',')[1]; | |||||
| if (g.pois && g.pois[0]) { | |||||
| k = g.pois[0].name + '\u9644\u8FD1'; | |||||
| var l = g.pois[0].location; | |||||
| if (l) { | |||||
| m = parseFloat(l.split(',')[0]); | |||||
| n = parseFloat(l.split(',')[1]); | |||||
| } | |||||
| } | |||||
| if (h.provice) { | |||||
| f.push(h.provice); | |||||
| } | |||||
| if (h.city) { | |||||
| f.push(h.city); | |||||
| } | |||||
| if (h.district) { | |||||
| f.push(h.district); | |||||
| } | |||||
| h.streetNumber && h.streetNumber.street && h.streetNumber.number ? (f.push(h.streetNumber.street), f.push(h.streetNumber.number)) : f.push(g.roads[0].name); | |||||
| f = f.join(''); | |||||
| a.success([ | |||||
| { | |||||
| iconPath: a.iconPath, | |||||
| width: a.iconWidth, | |||||
| height: a.iconHeight, | |||||
| name: f, | |||||
| desc: k, | |||||
| longitude: m, | |||||
| latitude: n, | |||||
| id: 0, | |||||
| regeocodeData: g | |||||
| } | |||||
| ]); | |||||
| } else { | |||||
| a.fail({ | |||||
| errCode: g.data.infocode, | |||||
| errMsg: g.data.info | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (g) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: g.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| } | |||||
| var that = this; | |||||
| a.location | |||||
| ? b(a.location) | |||||
| : that.getWxLocation(a, function (d) { | |||||
| b(d); | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getWeather = function (a) { | |||||
| function b(g) { | |||||
| var h = 'base'; | |||||
| if (a.type && 'forecast' == a.type) { | |||||
| h = 'all'; | |||||
| } | |||||
| uni.request({ | |||||
| url: 'https://restapi.amap.com/v3/weather/weatherInfo', | |||||
| data: { | |||||
| key: that.key, | |||||
| city: g, | |||||
| extensions: h, | |||||
| s: e.s, | |||||
| platform: e.platform, | |||||
| appname: that.key, | |||||
| sdkversion: e.sdkversion, | |||||
| logversion: e.logversion | |||||
| }, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (f) { | |||||
| if (f.data.status && '1' == f.data.status) { | |||||
| if (f.data.lives) { | |||||
| if ((f = f.data.lives) && 0 < f.length) { | |||||
| f = f[0]; | |||||
| var k = { | |||||
| city: { | |||||
| text: '\u57CE\u5E02', | |||||
| data: f.city | |||||
| }, | |||||
| weather: { | |||||
| text: '\u5929\u6C14', | |||||
| data: f.weather | |||||
| }, | |||||
| temperature: { | |||||
| text: '\u6E29\u5EA6', | |||||
| data: f.temperature | |||||
| }, | |||||
| winddirection: { | |||||
| text: '\u98CE\u5411', | |||||
| data: f.winddirection + '\u98CE' | |||||
| }, | |||||
| windpower: { | |||||
| text: '\u98CE\u529B', | |||||
| data: f.windpower + '\u7EA7' | |||||
| }, | |||||
| humidity: { | |||||
| text: '\u6E7F\u5EA6', | |||||
| data: f.humidity + '%' | |||||
| } | |||||
| }; | |||||
| k.liveData = f; | |||||
| a.success(k); | |||||
| } | |||||
| } else { | |||||
| if (f.data.forecasts && f.data.forecasts[0]) { | |||||
| a.success({ | |||||
| forecast: f.data.forecasts[0] | |||||
| }); | |||||
| } | |||||
| } | |||||
| } else { | |||||
| a.fail({ | |||||
| errCode: f.data.infocode, | |||||
| errMsg: f.data.info | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (f) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: f.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| } | |||||
| function c(g) { | |||||
| uni.request({ | |||||
| url: 'https://restapi.amap.com/v3/geocode/regeo', | |||||
| data: { | |||||
| key: that.key, | |||||
| location: g, | |||||
| extensions: 'all', | |||||
| s: e.s, | |||||
| platform: e.platform, | |||||
| appname: that.key, | |||||
| sdkversion: e.sdkversion, | |||||
| logversion: e.logversion | |||||
| }, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (h) { | |||||
| if (h.data.status && '1' == h.data.status) { | |||||
| h = h.data.regeocode; | |||||
| if (h.addressComponent) { | |||||
| var f = h.addressComponent.adcode; | |||||
| } else { | |||||
| if (h.aois && 0 < h.aois.length) { | |||||
| f = h.aois[0].adcode; | |||||
| } | |||||
| } | |||||
| b(f); | |||||
| } else { | |||||
| a.fail({ | |||||
| errCode: h.data.infocode, | |||||
| errMsg: h.data.info | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (h) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: h.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| } | |||||
| var that = this; | |||||
| var e = that.requestConfig; | |||||
| a.city | |||||
| ? b(a.city) | |||||
| : that.getWxLocation(a, function (g) { | |||||
| c(g); | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getPoiAround = function (a) { | |||||
| function b(e) { | |||||
| e = { | |||||
| key: that.key, | |||||
| location: e, | |||||
| s: d.s, | |||||
| platform: d.platform, | |||||
| appname: that.key, | |||||
| sdkversion: d.sdkversion, | |||||
| logversion: d.logversion | |||||
| }; | |||||
| if (a.querytypes) { | |||||
| e.types = a.querytypes; | |||||
| } | |||||
| if (a.querykeywords) { | |||||
| e.keywords = a.querykeywords; | |||||
| } | |||||
| uni.request({ | |||||
| url: 'https://restapi.amap.com/v3/place/around', | |||||
| data: e, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (g) { | |||||
| if (g.data.status && '1' == g.data.status) { | |||||
| if ((g = g.data) && g.pois) { | |||||
| for (h = [], f = 0, void 0; f < g.pois.length; f++) { | |||||
| var h; | |||||
| var f; | |||||
| if (0 == f) { | |||||
| var k = a.iconPathSelected; | |||||
| } else { | |||||
| var k = a.iconPath; | |||||
| } | |||||
| h.push({ | |||||
| latitude: parseFloat(g.pois[f].location.split(',')[1]), | |||||
| longitude: parseFloat(g.pois[f].location.split(',')[0]), | |||||
| iconPath: k, | |||||
| width: 22, | |||||
| height: 32, | |||||
| id: f, | |||||
| name: g.pois[f].name, | |||||
| address: g.pois[f].address | |||||
| }); | |||||
| } | |||||
| a.success({ | |||||
| markers: h, | |||||
| poisData: g.pois | |||||
| }); | |||||
| } | |||||
| } else { | |||||
| a.fail({ | |||||
| errCode: g.data.infocode, | |||||
| errMsg: g.data.info | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (g) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: g.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| } | |||||
| var that = this; | |||||
| var d = that.requestConfig; | |||||
| a.location | |||||
| ? b(a.location) | |||||
| : that.getWxLocation(a, function (e) { | |||||
| b(e); | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getStaticmap = function (a) { | |||||
| function b(e) { | |||||
| c.push('location=' + e); | |||||
| if (a.zoom) { | |||||
| c.push('zoom=' + a.zoom); | |||||
| } | |||||
| if (a.size) { | |||||
| c.push('size=' + a.size); | |||||
| } | |||||
| if (a.scale) { | |||||
| c.push('scale=' + a.scale); | |||||
| } | |||||
| if (a.markers) { | |||||
| c.push('markers=' + a.markers); | |||||
| } | |||||
| if (a.labels) { | |||||
| c.push('labels=' + a.labels); | |||||
| } | |||||
| if (a.paths) { | |||||
| c.push('paths=' + a.paths); | |||||
| } | |||||
| if (a.traffic) { | |||||
| c.push('traffic=' + a.traffic); | |||||
| } | |||||
| e = 'https://restapi.amap.com/v3/staticmap?' + c.join('&'); | |||||
| a.success({ | |||||
| url: e | |||||
| }); | |||||
| } | |||||
| var c = []; | |||||
| c.push('key=' + this.key); | |||||
| var d = this.requestConfig; | |||||
| c.push('s=' + d.s); | |||||
| c.push('platform=' + d.platform); | |||||
| c.push('appname=' + d.appname); | |||||
| c.push('sdkversion=' + d.sdkversion); | |||||
| c.push('logversion=' + d.logversion); | |||||
| a.location | |||||
| ? b(a.location) | |||||
| : this.getWxLocation(a, function (e) { | |||||
| b(e); | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getInputtips = function (a) { | |||||
| var b = Object.assign({}, this.requestConfig); | |||||
| if (a.location) { | |||||
| b.location = a.location; | |||||
| } | |||||
| if (a.keywords) { | |||||
| b.keywords = a.keywords; | |||||
| } | |||||
| if (a.type) { | |||||
| b.type = a.type; | |||||
| } | |||||
| if (a.city) { | |||||
| b.city = a.city; | |||||
| } | |||||
| if (a.citylimit) { | |||||
| b.citylimit = a.citylimit; | |||||
| } | |||||
| uni.request({ | |||||
| url: 'https://restapi.amap.com/v3/assistant/inputtips', | |||||
| data: b, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (c) { | |||||
| if (c && c.data && c.data.tips) { | |||||
| a.success({ | |||||
| tips: c.data.tips | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (c) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: c.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getDrivingRoute = function (a) { | |||||
| var b = Object.assign({}, this.requestConfig); | |||||
| if (a.origin) { | |||||
| b.origin = a.origin; | |||||
| } | |||||
| if (a.destination) { | |||||
| b.destination = a.destination; | |||||
| } | |||||
| if (a.strategy) { | |||||
| b.strategy = a.strategy; | |||||
| } | |||||
| if (a.waypoints) { | |||||
| b.waypoints = a.waypoints; | |||||
| } | |||||
| if (a.avoidpolygons) { | |||||
| b.avoidpolygons = a.avoidpolygons; | |||||
| } | |||||
| if (a.avoidroad) { | |||||
| b.avoidroad = a.avoidroad; | |||||
| } | |||||
| uni.request({ | |||||
| url: 'https://restapi.amap.com/v3/direction/driving', | |||||
| data: b, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (c) { | |||||
| if (c && c.data && c.data.route) { | |||||
| a.success({ | |||||
| paths: c.data.route.paths, | |||||
| taxi_cost: c.data.route.taxi_cost || '' | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (c) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: c.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getWalkingRoute = function (a) { | |||||
| var b = Object.assign({}, this.requestConfig); | |||||
| if (a.origin) { | |||||
| b.origin = a.origin; | |||||
| } | |||||
| if (a.destination) { | |||||
| b.destination = a.destination; | |||||
| } | |||||
| uni.request({ | |||||
| url: 'https://restapi.amap.com/v3/direction/walking', | |||||
| data: b, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (c) { | |||||
| if (c && c.data && c.data.route) { | |||||
| a.success({ | |||||
| paths: c.data.route.paths | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (c) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: c.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getTransitRoute = function (a) { | |||||
| var b = Object.assign({}, this.requestConfig); | |||||
| if (a.origin) { | |||||
| b.origin = a.origin; | |||||
| } | |||||
| if (a.destination) { | |||||
| b.destination = a.destination; | |||||
| } | |||||
| if (a.strategy) { | |||||
| b.strategy = a.strategy; | |||||
| } | |||||
| if (a.city) { | |||||
| b.city = a.city; | |||||
| } | |||||
| if (a.cityd) { | |||||
| b.cityd = a.cityd; | |||||
| } | |||||
| uni.request({ | |||||
| url: 'https://restapi.amap.com/v3/direction/transit/integrated', | |||||
| data: b, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (c) { | |||||
| if (c && c.data && c.data.route) { | |||||
| c = c.data.route; | |||||
| a.success({ | |||||
| distance: c.distance || '', | |||||
| taxi_cost: c.taxi_cost || '', | |||||
| transits: c.transits | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (c) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: c.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| AMapWX.prototype.getRidingRoute = function (a) { | |||||
| var b = Object.assign({}, this.requestConfig); | |||||
| if (a.origin) { | |||||
| b.origin = a.origin; | |||||
| } | |||||
| if (a.destination) { | |||||
| b.destination = a.destination; | |||||
| } | |||||
| uni.request({ | |||||
| url: 'https://restapi.amap.com/v3/direction/riding', | |||||
| data: b, | |||||
| method: 'GET', | |||||
| header: { | |||||
| 'content-type': 'application/json' | |||||
| }, | |||||
| success: function (c) { | |||||
| if (c && c.data && c.data.route) { | |||||
| a.success({ | |||||
| paths: c.data.route.paths | |||||
| }); | |||||
| } | |||||
| }, | |||||
| fail: function (c) { | |||||
| a.fail({ | |||||
| errCode: '0', | |||||
| errMsg: c.errMsg || '' | |||||
| }); | |||||
| } | |||||
| }); | |||||
| }; | |||||
| export default { AMapWX }; | |||||
| @@ -0,0 +1,85 @@ | |||||
| # wx-promise-pro | |||||
| <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> | |||||
| [](#contributors-) | |||||
| <!-- ALL-CONTRIBUTORS-BADGE:END --> | |||||
| ✨ 强大、优雅的微信小程序异步库 🚀 | |||||
| [](https://www.npmjs.com/package/wx-promise-pro) [](https://www.npmjs.com/package/wx-promise-pro) [](https://opencollective.com/wx-promise-pro) | |||||
| [](https://nodei.co/npm/wx-promise-pro/) | |||||
| ## 优势 | |||||
| - 方便集成:一处引用,处处使用 | |||||
| - 把微信小程序所有异步 API promise 化并挂在到`wx.pro` 对象下 | |||||
| - 支持 ES2018 `finally` 特性 | |||||
| - 支持 TypeScript 开发 | |||||
| ## 安装 | |||||
| > 你也可以直接把 `dist` 目录下的 `wx-promise-pro.js` 拷贝到项目里使用 | |||||
| ```bash | |||||
| $ npm i wx-promise-pro -S | |||||
| # or | |||||
| $ yarn add wx-promise-pro | |||||
| ``` | |||||
| ## 初始化 | |||||
| ```js | |||||
| import { promisifyAll, promisify } from 'wx-promise-pro'; | |||||
| // promisify all wx‘s api | |||||
| promisifyAll(); | |||||
| // promisify single api | |||||
| promisify(wx.getSystemInfo)().then(console.log); | |||||
| ``` | |||||
| ## 示例代码 | |||||
| ```js | |||||
| wx.pro.showLoading({ | |||||
| title: '加载中', | |||||
| mask: true, | |||||
| }); | |||||
| wx.pro | |||||
| .request({ | |||||
| url: 'https://cnodejs.org/api/v1/topics', | |||||
| data: {}, | |||||
| method: 'GET', | |||||
| header: { 'content-type': 'application/json' }, | |||||
| }) | |||||
| .then((res) => { | |||||
| console.log(res); | |||||
| }) | |||||
| .catch((err) => { | |||||
| console.log(err); | |||||
| }) | |||||
| .finally(() => { | |||||
| wx.pro.hideLoading(); | |||||
| }); | |||||
| ``` | |||||
| ## 贡献者 ✨ | |||||
| 感谢如下贡献者的贡献 ([emoji key](https://allcontributors.org/docs/en/emoji-key)): | |||||
| <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --> | |||||
| <!-- prettier-ignore-start --> | |||||
| <!-- markdownlint-disable --> | |||||
| <table> | |||||
| <tr> | |||||
| <td align="center"><a href="https://github.com/wss534857356"><img src="https://avatars0.githubusercontent.com/u/13204332?s=60&v=4" width="100px;" alt=""/><br /><sub><b>Shenshun Weng</b></sub></a><br /><a href="https://github.com/youngjuning/wx-promise-pro/commits?author=youngjuning" title="Code">💻</a></td> | |||||
| <td align="center"><a href="https://github.com/kala888"><img src="https://avatars2.githubusercontent.com/u/1215976?v=4" width="100px;" alt=""/><br /><sub><b>kala888</b></sub></a><br /><a href="https://github.com/youngjuning/wx-promise-pro/commits?author=kala888" title="Code">💻</a></td> | |||||
| <td align="center"><a href="https://upupming.site"><img src="https://avatars1.githubusercontent.com/u/24741764?v=4" width="100px;" alt=""/><br /><sub><b>Yiming Li</b></sub></a><br /><a href="https://github.com/youngjuning/wx-promise-pro/issues?q=author%3Aupupming" title="Bug reports">🐛</a></td> | |||||
| </tr> | |||||
| </table> | |||||
| <!-- markdownlint-enable --> | |||||
| <!-- prettier-ignore-end --> | |||||
| <!-- ALL-CONTRIBUTORS-LIST:END --> | |||||
| @@ -0,0 +1,39 @@ | |||||
| import { asyncMethods } from './methods'; | |||||
| // polyfill for finally | |||||
| if (!Promise.prototype.finally) { | |||||
| Promise.prototype.finally = function (callback) { | |||||
| const P = this.constructor; | |||||
| return this.then( | |||||
| (value) => P.resolve(callback()).then(() => value), | |||||
| (reason) => | |||||
| P.resolve(callback()).then(() => { | |||||
| throw reason; | |||||
| }) | |||||
| ); | |||||
| }; | |||||
| } | |||||
| // core method | |||||
| export const promisify = (api) => { | |||||
| return (args = {}) => { | |||||
| return new Promise((resolve, reject) => { | |||||
| api({ | |||||
| fail: reject, | |||||
| success: resolve, | |||||
| ...args | |||||
| }); | |||||
| }); | |||||
| }; | |||||
| }; | |||||
| export const promisifyAll = () => { | |||||
| uni.pro = {}; | |||||
| Object.keys(wx).forEach((key) => { | |||||
| if (asyncMethods.indexOf(key) >= 0) { | |||||
| uni.pro[key] = promisify(uni[key]); | |||||
| } else if (key !== 'createSignal') { | |||||
| uni.pro[key] = uni[key]; | |||||
| } | |||||
| }); | |||||
| }; | |||||
| export default promisifyAll; | |||||
| @@ -0,0 +1,2 @@ | |||||
| // 指定微信api支持Promise风格 | |||||
| export const asyncMethods = ['downloadFile', 'request', 'uploadFile', 'connectSocket']; | |||||
| @@ -0,0 +1,93 @@ | |||||
| import App from './App'; | |||||
| // 全局mixins,用于实现setData等功能,请勿删除!'; | |||||
| // import zpMixins from '@/uni_modules/zp-mixins/index.js'; | |||||
| // 2. 引入组件样式 | |||||
| import 'vant/lib/index.css'; | |||||
| import { | |||||
| Button, | |||||
| Tab, | |||||
| Tabs, | |||||
| Empty, | |||||
| Loading, | |||||
| Icon, | |||||
| CellGroup, | |||||
| Cell, | |||||
| NavBar, | |||||
| Popup, | |||||
| Picker, | |||||
| Rate, | |||||
| SwipeCell, | |||||
| Search, | |||||
| Uploader, | |||||
| NoticeBar, | |||||
| Checkbox, | |||||
| Cascader, | |||||
| Grid, | |||||
| GridItem, | |||||
| Dialog, | |||||
| Field, | |||||
| TimePicker, | |||||
| DatePicker, | |||||
| Form | |||||
| } from 'vant'; | |||||
| import share from '@/utils/share.js' | |||||
| import tootls from './utils/util.map.js' | |||||
| // #ifndef VUE3 | |||||
| import Vue from 'vue'; | |||||
| // Vue.prototype.$tootls = tootls | |||||
| // 导入并挂载全局的分享方法 | |||||
| Vue.config.productionTip = false; | |||||
| App.mpType = 'app'; | |||||
| const app = new Vue({ | |||||
| ...App | |||||
| }); | |||||
| app.$mount(); | |||||
| // #endif | |||||
| // #ifdef VUE3 | |||||
| import { | |||||
| createSSRApp | |||||
| } from 'vue'; | |||||
| export function createApp() { | |||||
| const app = createSSRApp(App); | |||||
| app.config.globalProperties.$tootls = tootls; | |||||
| app.use(Button); | |||||
| app.use(Tab); | |||||
| app.use(Tabs); | |||||
| app.use(Empty); | |||||
| app.use(Loading); | |||||
| app.use(Icon); | |||||
| app.use(CellGroup); | |||||
| app.use(Cell); | |||||
| app.use(NavBar); | |||||
| app.use(Popup); | |||||
| app.use(Picker); | |||||
| app.use(Rate); | |||||
| app.use(SwipeCell); | |||||
| app.use(Search); | |||||
| app.use(Uploader); | |||||
| app.use(NoticeBar); | |||||
| app.use(Checkbox); | |||||
| app.use(Cascader); | |||||
| app.use(Grid); | |||||
| app.use(GridItem); | |||||
| app.use(Dialog); | |||||
| app.use(Field); | |||||
| app.use(TimePicker); | |||||
| app.use(DatePicker); | |||||
| app.use(Form); | |||||
| // app.mixin(zpMixins); | |||||
| return { | |||||
| app | |||||
| }; | |||||
| } | |||||
| // #endif | |||||
| @@ -0,0 +1,83 @@ | |||||
| { | |||||
| "name" : "", | |||||
| "appid" : "", | |||||
| "description" : "", | |||||
| "versionName" : "1.0.0", | |||||
| "versionCode" : "100", | |||||
| "transformPx" : false, | |||||
| /* 5+App特有相关 */ | |||||
| "app-plus" : { | |||||
| "usingComponents" : true, | |||||
| "nvueStyleCompiler" : "uni-app", | |||||
| "compilerVersion" : 3, | |||||
| "splashscreen" : { | |||||
| "alwaysShowBeforeRender" : true, | |||||
| "waiting" : true, | |||||
| "autoclose" : true, | |||||
| "delay" : 0 | |||||
| }, | |||||
| /* 模块配置 */ | |||||
| "modules" : {}, | |||||
| /* 应用发布信息 */ | |||||
| "distribute" : { | |||||
| /* android打包配置 */ | |||||
| "android" : { | |||||
| "permissions" : [ | |||||
| "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.VIBRATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.READ_LOGS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", | |||||
| "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", | |||||
| "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.CAMERA\"/>", | |||||
| "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", | |||||
| "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", | |||||
| "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", | |||||
| "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", | |||||
| "<uses-feature android:name=\"android.hardware.camera\"/>", | |||||
| "<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>" | |||||
| ] | |||||
| }, | |||||
| /* ios打包配置 */ | |||||
| "ios" : {}, | |||||
| /* SDK配置 */ | |||||
| "sdkConfigs" : {} | |||||
| } | |||||
| }, | |||||
| /* 快应用特有相关 */ | |||||
| "quickapp" : {}, | |||||
| /* 小程序特有相关 */ | |||||
| "mp-weixin" : { | |||||
| "appid" : "", | |||||
| "setting" : { | |||||
| "urlCheck" : false | |||||
| }, | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "mp-alipay" : { | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "mp-baidu" : { | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "mp-toutiao" : { | |||||
| "usingComponents" : true | |||||
| }, | |||||
| "uniStatistics" : { | |||||
| "enable" : false | |||||
| }, | |||||
| "vueVersion" : "3", | |||||
| "h5" : { | |||||
| "sdkConfigs" : { | |||||
| "maps" : { | |||||
| "amap" : { | |||||
| "key" : "29103dae675e5788eb011fb77ade8e3f", | |||||
| "securityJsCode" : "", | |||||
| "serviceHost" : "" | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| @@ -0,0 +1,518 @@ | |||||
| module.exports = (function () { | |||||
| var __MODS__ = {}; | |||||
| var __DEFINE__ = function (modId, func, req) { | |||||
| var m = { | |||||
| exports: {}, | |||||
| _tempexports: {} | |||||
| }; | |||||
| __MODS__[modId] = { | |||||
| status: 0, | |||||
| func: func, | |||||
| req: req, | |||||
| m: m | |||||
| }; | |||||
| }; | |||||
| var __REQUIRE__ = function (modId, source) { | |||||
| if (!__MODS__[modId]) { | |||||
| return require(source); | |||||
| } | |||||
| if (!__MODS__[modId].status) { | |||||
| var m = __MODS__[modId].m; | |||||
| m._exports = m._tempexports; | |||||
| var desp = Object.getOwnPropertyDescriptor(m, 'exports'); | |||||
| if (desp && desp.configurable) { | |||||
| Object.defineProperty(m, 'exports', { | |||||
| set: function (val) { | |||||
| if (typeof val === 'object' && val !== m._exports) { | |||||
| m._exports.__proto__ = val.__proto__; | |||||
| Object.keys(val).forEach(function (k) { | |||||
| m._exports[k] = val[k]; | |||||
| }); | |||||
| } | |||||
| m._tempexports = val; | |||||
| }, | |||||
| get: function () { | |||||
| return m._tempexports; | |||||
| } | |||||
| }); | |||||
| } | |||||
| __MODS__[modId].status = 1; | |||||
| __MODS__[modId].func(__MODS__[modId].req, m, m.exports); | |||||
| } | |||||
| return __MODS__[modId].m.exports; | |||||
| }; | |||||
| __DEFINE__( | |||||
| 1683361815807, | |||||
| function (require, module, exports) { | |||||
| !(function (t, e) { | |||||
| if ('object' == typeof exports && 'undefined' != typeof module) { | |||||
| module.exports = e(); | |||||
| } else { | |||||
| if ('function' == typeof define && define.amd) { | |||||
| define(e); | |||||
| } else { | |||||
| (t = 'undefined' != typeof globalThis ? globalThis : t || self).dayjs = e(); | |||||
| } | |||||
| } | |||||
| })(this, function () { | |||||
| var t = 1000; | |||||
| var e = 60000; | |||||
| var n = 3600000; | |||||
| var r = 'millisecond'; | |||||
| var i = 'second'; | |||||
| var s = 'minute'; | |||||
| var u = 'hour'; | |||||
| var a = 'day'; | |||||
| var o = 'week'; | |||||
| var f = 'month'; | |||||
| var h = 'quarter'; | |||||
| var c = 'year'; | |||||
| var d = 'date'; | |||||
| var l = 'Invalid Date'; | |||||
| var $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/; | |||||
| var y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g; | |||||
| var M = { | |||||
| name: 'en', | |||||
| weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), | |||||
| months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), | |||||
| ordinal: function (t) { | |||||
| var e = ['th', 'st', 'nd', 'rd']; | |||||
| var n = t % 100; | |||||
| return '[' + t + (e[(n - 20) % 10] || e[n] || e[0]) + ']'; | |||||
| } | |||||
| }; | |||||
| var m = function (t, e, n) { | |||||
| var r = String(t); | |||||
| return !r || r.length >= e ? t : '' + Array(e + 1 - r.length).join(n) + t; | |||||
| }; | |||||
| var v = { | |||||
| s: m, | |||||
| z: function (t) { | |||||
| var e = -t.utcOffset(); | |||||
| var n = Math.abs(e); | |||||
| var r = Math.floor(n / 60); | |||||
| var i = n % 60; | |||||
| return (e <= 0 ? '+' : '-') + m(r, 2, '0') + ':' + m(i, 2, '0'); | |||||
| }, | |||||
| m: function t(e, n) { | |||||
| if (e.date() < n.date()) { | |||||
| return -t(n, e); | |||||
| } | |||||
| var r = 12 * (n.year() - e.year()) + (n.month() - e.month()); | |||||
| var i = e.clone().add(r, f); | |||||
| var s = n - i < 0; | |||||
| var u = e.clone().add(r + (s ? -1 : 1), f); | |||||
| return +(-(r + (n - i) / (s ? i - u : u - i)) || 0); | |||||
| }, | |||||
| a: function (t) { | |||||
| return t < 0 ? Math.ceil(t) || 0 : Math.floor(t); | |||||
| }, | |||||
| p: function (t) { | |||||
| return ( | |||||
| { | |||||
| M: f, | |||||
| y: c, | |||||
| w: o, | |||||
| d: a, | |||||
| D: d, | |||||
| h: u, | |||||
| m: s, | |||||
| s: i, | |||||
| ms: r, | |||||
| Q: h | |||||
| }[t] || | |||||
| String(t || '') | |||||
| .toLowerCase() | |||||
| .replace(/s$/, '') | |||||
| ); | |||||
| }, | |||||
| u: function (t) { | |||||
| return void 0 === t; | |||||
| } | |||||
| }; | |||||
| var g = 'en'; | |||||
| var D = {}; | |||||
| D[g] = M; | |||||
| var p = function (t) { | |||||
| return t instanceof _; | |||||
| }; | |||||
| var S = function t(e, n, r) { | |||||
| var i; | |||||
| if (!e) { | |||||
| return g; | |||||
| } | |||||
| if ('string' == typeof e) { | |||||
| var s = e.toLowerCase(); | |||||
| if (D[s]) { | |||||
| i = s; | |||||
| } | |||||
| if (n) { | |||||
| D[s] = n; | |||||
| i = s; | |||||
| } | |||||
| var u = e.split('-'); | |||||
| if (!i && u.length > 1) { | |||||
| return t(u[0]); | |||||
| } | |||||
| } else { | |||||
| var a = e.name; | |||||
| D[a] = e; | |||||
| i = a; | |||||
| } | |||||
| if (!r && i) { | |||||
| g = i; | |||||
| } | |||||
| return i || (!r && g); | |||||
| }; | |||||
| var w = function (t, e) { | |||||
| if (p(t)) { | |||||
| return t.clone(); | |||||
| } | |||||
| if ('object' == typeof e) { | |||||
| var n = e; | |||||
| } else { | |||||
| var n = {}; | |||||
| } | |||||
| n.date = t; | |||||
| n.args = arguments; | |||||
| return new _(n); | |||||
| }; | |||||
| var O = v; | |||||
| O.l = S; | |||||
| O.i = p; | |||||
| O.w = function (t, e) { | |||||
| return w(t, { | |||||
| locale: e.$L, | |||||
| utc: e.$u, | |||||
| x: e.$x, | |||||
| $offset: e.$offset | |||||
| }); | |||||
| }; | |||||
| var _ = (function () { | |||||
| function M(t) { | |||||
| this.$L = S(t.locale, null, true); | |||||
| this.parse(t); | |||||
| } | |||||
| var m = M.prototype; | |||||
| m.parse = function (t) { | |||||
| this.$d = (function (t) { | |||||
| var e = t.date; | |||||
| var n = t.utc; | |||||
| if (null === e) { | |||||
| return new Date(NaN); | |||||
| } | |||||
| if (O.u(e)) { | |||||
| return new Date(); | |||||
| } | |||||
| if (e instanceof Date) { | |||||
| return new Date(e); | |||||
| } | |||||
| if ('string' == typeof e && !/Z$/i.test(e)) { | |||||
| var r = e.match($); | |||||
| if (r) { | |||||
| var i = r[2] - 1 || 0; | |||||
| var s = (r[7] || '0').substring(0, 3); | |||||
| return n | |||||
| ? new Date(Date.UTC(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s)) | |||||
| : new Date(r[1], i, r[3] || 1, r[4] || 0, r[5] || 0, r[6] || 0, s); | |||||
| } | |||||
| } | |||||
| return new Date(e); | |||||
| })(t); | |||||
| this.$x = t.x || {}; | |||||
| this.init(); | |||||
| }; | |||||
| m.init = function () { | |||||
| var t = this.$d; | |||||
| this.$y = t.getFullYear(); | |||||
| this.$M = t.getMonth(); | |||||
| this.$D = t.getDate(); | |||||
| this.$W = t.getDay(); | |||||
| this.$H = t.getHours(); | |||||
| this.$m = t.getMinutes(); | |||||
| this.$s = t.getSeconds(); | |||||
| this.$ms = t.getMilliseconds(); | |||||
| }; | |||||
| m.$utils = function () { | |||||
| return O; | |||||
| }; | |||||
| m.isValid = function () { | |||||
| return !(this.$d.toString() === l); | |||||
| }; | |||||
| m.isSame = function (t, e) { | |||||
| var n = w(t); | |||||
| return this.startOf(e) <= n && n <= this.endOf(e); | |||||
| }; | |||||
| m.isAfter = function (t, e) { | |||||
| return w(t) < this.startOf(e); | |||||
| }; | |||||
| m.isBefore = function (t, e) { | |||||
| return this.endOf(e) < w(t); | |||||
| }; | |||||
| m.$g = function (t, e, n) { | |||||
| return O.u(t) ? this[e] : this.set(n, t); | |||||
| }; | |||||
| m.unix = function () { | |||||
| return Math.floor(this.valueOf() / 1000); | |||||
| }; | |||||
| m.valueOf = function () { | |||||
| return this.$d.getTime(); | |||||
| }; | |||||
| m.startOf = function (t, e) { | |||||
| var that = this; | |||||
| var r = !!O.u(e) || e; | |||||
| var h = O.p(t); | |||||
| var l = function (t, e) { | |||||
| var i = O.w(that.$u ? Date.UTC(that.$y, e, t) : new Date(that.$y, e, t), that); | |||||
| return r ? i : i.endOf(a); | |||||
| }; | |||||
| var $ = function (t, e) { | |||||
| return O.w(that.toDate()[t].apply(that.toDate('s'), (r ? [0, 0, 0, 0] : [23, 59, 59, 999]).slice(e)), that); | |||||
| }; | |||||
| var y = this.$W; | |||||
| var M = this.$M; | |||||
| var m = this.$D; | |||||
| var v = 'set' + (this.$u ? 'UTC' : ''); | |||||
| switch (h) { | |||||
| case c: | |||||
| return r ? l(1, 0) : l(31, 11); | |||||
| case f: | |||||
| return r ? l(1, M) : l(0, M + 1); | |||||
| case o: | |||||
| var g = this.$locale().weekStart || 0; | |||||
| var D = (y < g ? y + 7 : y) - g; | |||||
| return l(r ? m - D : m + (6 - D), M); | |||||
| case a: | |||||
| case d: | |||||
| return $(v + 'Hours', 0); | |||||
| case u: | |||||
| return $(v + 'Minutes', 1); | |||||
| case s: | |||||
| return $(v + 'Seconds', 2); | |||||
| case i: | |||||
| return $(v + 'Milliseconds', 3); | |||||
| default: | |||||
| return this.clone(); | |||||
| } | |||||
| }; | |||||
| m.endOf = function (t) { | |||||
| return this.startOf(t, false); | |||||
| }; | |||||
| m.$set = function (t, e) { | |||||
| var n; | |||||
| var o = O.p(t); | |||||
| var h = 'set' + (this.$u ? 'UTC' : ''); | |||||
| var l = ((n = {}), | |||||
| (n[a] = h + 'Date'), | |||||
| (n[d] = h + 'Date'), | |||||
| (n[f] = h + 'Month'), | |||||
| (n[c] = h + 'FullYear'), | |||||
| (n[u] = h + 'Hours'), | |||||
| (n[s] = h + 'Minutes'), | |||||
| (n[i] = h + 'Seconds'), | |||||
| (n[r] = h + 'Milliseconds'), | |||||
| n)[o]; | |||||
| if (o === a) { | |||||
| var $ = this.$D + (e - this.$W); | |||||
| } else { | |||||
| var $ = e; | |||||
| } | |||||
| if (o === f || o === c) { | |||||
| var y = this.clone().set(d, 1); | |||||
| y.$d[l]($); | |||||
| y.init(); | |||||
| this.$d = y.set(d, Math.min(this.$D, y.daysInMonth())).$d; | |||||
| } else { | |||||
| if (l) { | |||||
| this.$d[l]($); | |||||
| } | |||||
| } | |||||
| this.init(); | |||||
| return this; | |||||
| }; | |||||
| m.set = function (t, e) { | |||||
| return this.clone().$set(t, e); | |||||
| }; | |||||
| m.get = function (t) { | |||||
| return this[O.p(t)](); | |||||
| }; | |||||
| m.add = function (r, h) { | |||||
| var d; | |||||
| var that = this; | |||||
| r = Number(r); | |||||
| var $ = O.p(h); | |||||
| var y = function (t) { | |||||
| var e = w(that); | |||||
| return O.w(e.date(e.date() + Math.round(t * r)), that); | |||||
| }; | |||||
| if ($ === f) { | |||||
| return this.set(f, this.$M + r); | |||||
| } | |||||
| if ($ === c) { | |||||
| return this.set(c, this.$y + r); | |||||
| } | |||||
| if ($ === a) { | |||||
| return y(1); | |||||
| } | |||||
| if ($ === o) { | |||||
| return y(7); | |||||
| } | |||||
| var M = ((d = {}), (d[s] = e), (d[u] = n), (d[i] = t), d)[$] || 1; | |||||
| var m = this.$d.getTime() + r * M; | |||||
| return O.w(m, this); | |||||
| }; | |||||
| m.subtract = function (t, e) { | |||||
| return this.add(-1 * t, e); | |||||
| }; | |||||
| m.format = function (t) { | |||||
| var that = this; | |||||
| var n = this.$locale(); | |||||
| if (!this.isValid()) { | |||||
| return n.invalidDate || l; | |||||
| } | |||||
| var r = t || 'YYYY-MM-DDTHH:mm:ssZ'; | |||||
| var i = O.z(this); | |||||
| var s = this.$H; | |||||
| var u = this.$m; | |||||
| var a = this.$M; | |||||
| var o = n.weekdays; | |||||
| var f = n.months; | |||||
| var h = function (t, n, i, s) { | |||||
| return (t && (t[n] || t(that, r))) || i[n].slice(0, s); | |||||
| }; | |||||
| var c = function (t) { | |||||
| return O.s(s % 12 || 12, t, '0'); | |||||
| }; | |||||
| var d = | |||||
| n.meridiem || | |||||
| function (t, e, n) { | |||||
| var r = t < 12 ? 'AM' : 'PM'; | |||||
| return n ? r.toLowerCase() : r; | |||||
| }; | |||||
| var $ = { | |||||
| YY: String(this.$y).slice(-2), | |||||
| YYYY: this.$y, | |||||
| M: a + 1, | |||||
| MM: O.s(a + 1, 2, '0'), | |||||
| MMM: h(n.monthsShort, a, f, 3), | |||||
| MMMM: h(f, a), | |||||
| D: this.$D, | |||||
| DD: O.s(this.$D, 2, '0'), | |||||
| d: String(this.$W), | |||||
| dd: h(n.weekdaysMin, this.$W, o, 2), | |||||
| ddd: h(n.weekdaysShort, this.$W, o, 3), | |||||
| dddd: o[this.$W], | |||||
| H: String(s), | |||||
| HH: O.s(s, 2, '0'), | |||||
| h: c(1), | |||||
| hh: c(2), | |||||
| a: d(s, u, true), | |||||
| A: d(s, u, false), | |||||
| m: String(u), | |||||
| mm: O.s(u, 2, '0'), | |||||
| s: String(this.$s), | |||||
| ss: O.s(this.$s, 2, '0'), | |||||
| SSS: O.s(this.$ms, 3, '0'), | |||||
| Z: i | |||||
| }; | |||||
| return r.replace(y, function (t, e) { | |||||
| return e || $[t] || i.replace(':', ''); | |||||
| }); | |||||
| }; | |||||
| m.utcOffset = function () { | |||||
| return 15 * -Math.round(this.$d.getTimezoneOffset() / 15); | |||||
| }; | |||||
| m.diff = function (r, d, l) { | |||||
| var $; | |||||
| var y = O.p(d); | |||||
| var M = w(r); | |||||
| var m = (M.utcOffset() - this.utcOffset()) * e; | |||||
| var v = this - M; | |||||
| var g = O.m(this, M); | |||||
| g = | |||||
| (($ = {}), | |||||
| ($[c] = g / 12), | |||||
| ($[f] = g), | |||||
| ($[h] = g / 3), | |||||
| ($[o] = (v - m) / 604800000), | |||||
| ($[a] = (v - m) / 86400000), | |||||
| ($[u] = v / n), | |||||
| ($[s] = v / e), | |||||
| ($[i] = v / t), | |||||
| $)[y] || v; | |||||
| return l ? g : O.a(g); | |||||
| }; | |||||
| m.daysInMonth = function () { | |||||
| return this.endOf(f).$D; | |||||
| }; | |||||
| m.$locale = function () { | |||||
| return D[this.$L]; | |||||
| }; | |||||
| m.locale = function (t, e) { | |||||
| if (!t) { | |||||
| return this.$L; | |||||
| } | |||||
| var n = this.clone(); | |||||
| var r = S(t, e, true); | |||||
| if (r) { | |||||
| n.$L = r; | |||||
| } | |||||
| return n; | |||||
| }; | |||||
| m.clone = function () { | |||||
| return O.w(this.$d, this); | |||||
| }; | |||||
| m.toDate = function () { | |||||
| return new Date(this.valueOf()); | |||||
| }; | |||||
| m.toJSON = function () { | |||||
| return this.isValid() ? this.toISOString() : null; | |||||
| }; | |||||
| m.toISOString = function () { | |||||
| return this.$d.toISOString(); | |||||
| }; | |||||
| m.toString = function () { | |||||
| return this.$d.toUTCString(); | |||||
| }; | |||||
| return M; | |||||
| })(); | |||||
| var T = _.prototype; | |||||
| w.prototype = T; | |||||
| [ | |||||
| ['$ms', r], | |||||
| ['$s', i], | |||||
| ['$m', s], | |||||
| ['$H', u], | |||||
| ['$W', a], | |||||
| ['$M', f], | |||||
| ['$y', c], | |||||
| ['$D', d] | |||||
| ].forEach(function (t) { | |||||
| T[t[1]] = function (e) { | |||||
| return this.$g(e, t[0], t[1]); | |||||
| }; | |||||
| }); | |||||
| w.extend = function (t, e) { | |||||
| t.$i || (t(e, _, w), (t.$i = true)); | |||||
| return w; | |||||
| }; | |||||
| w.locale = S; | |||||
| w.isDayjs = p; | |||||
| w.unix = function (t) { | |||||
| return w(1000 * t); | |||||
| }; | |||||
| w.en = D[g]; | |||||
| w.Ls = D; | |||||
| w.p = {}; | |||||
| return w; | |||||
| }); | |||||
| }, | |||||
| function (modId) { | |||||
| var map = {}; | |||||
| return __REQUIRE__(map[modId], modId); | |||||
| } | |||||
| ); | |||||
| return __REQUIRE__(1683361815807); | |||||
| })(); | |||||
| //miniprogram-npm-outsideDeps=[] | |||||
| //# sourceMappingURL=index.js.map | |||||
| @@ -0,0 +1,252 @@ | |||||
| <template> | |||||
| <view :class="'_root ' + (selectable ? '_select' : '')" :style="containerStyle"> | |||||
| <slot v-if="!nodes[0]" /> | |||||
| <node id="_root" :childs="nodes" :opts="[lazyLoad, loadingImg, errorImg, showImgMenu, selectable]" @add.stop.prevent="addFun($event, { tagId: '_root' })" /> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| 'use strict'; | |||||
| import node from './node/node'; | |||||
| function e(e, t, n) { | |||||
| if (t in e) { | |||||
| Object.defineProperty(e, t, { | |||||
| value: n, | |||||
| enumerable: true, | |||||
| configurable: true, | |||||
| writable: true | |||||
| }); | |||||
| } else { | |||||
| e[t] = n; | |||||
| } | |||||
| return e; | |||||
| } | |||||
| /*! | |||||
| * mp-html v2.4.1 | |||||
| * https://github.com/jin-yufeng/mp-html | |||||
| * | |||||
| * Released under the MIT license | |||||
| * Author: Jin Yufeng | |||||
| */ | |||||
| var t = require('./parser'); | |||||
| var n = []; | |||||
| export default { | |||||
| components: { | |||||
| node | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| nodes: [] | |||||
| }; | |||||
| }, | |||||
| props: { | |||||
| containerStyle: String, | |||||
| content: { | |||||
| type: String, | |||||
| default: '' | |||||
| }, | |||||
| copyLink: { | |||||
| type: Boolean, | |||||
| default: true | |||||
| }, | |||||
| domain: String, | |||||
| errorImg: String, | |||||
| lazyLoad: Boolean, | |||||
| loadingImg: String, | |||||
| pauseVideo: { | |||||
| type: Boolean, | |||||
| default: true | |||||
| }, | |||||
| previewImg: { | |||||
| type: Boolean, | |||||
| default: true | |||||
| }, | |||||
| scrollTable: Boolean, | |||||
| selectable: null, | |||||
| setTitle: { | |||||
| type: Boolean, | |||||
| default: true | |||||
| }, | |||||
| showImgMenu: { | |||||
| type: Boolean, | |||||
| default: true | |||||
| }, | |||||
| tagStyle: Object, | |||||
| useAnchor: null | |||||
| }, | |||||
| created: function () { | |||||
| this.plugins = []; | |||||
| for (var e = n.length; e--; ) { | |||||
| this.plugins.push(new n[e](this)); | |||||
| } | |||||
| }, | |||||
| destroyed: function () { | |||||
| this.hookFun('onDetached'); | |||||
| }, | |||||
| methods: { | |||||
| inFun: function (e, t, n) { | |||||
| if (e && t && n) { | |||||
| this._in = { | |||||
| page: e, | |||||
| selector: t, | |||||
| scrollTop: n | |||||
| }; | |||||
| } | |||||
| }, | |||||
| navigateTo: function (t, n) { | |||||
| var that = this; | |||||
| return new Promise(function (o, r) { | |||||
| if (!that.useAnchor) { | |||||
| return void r(Error('Anchor is disabled')); | |||||
| } | |||||
| var a = uni | |||||
| .createSelectorQuery() | |||||
| .in(that._in ? that._in.page : that) | |||||
| .select((that._in ? that._in.selector : '._root') + (t ? ''.concat('>>>', '#').concat(t) : '')) | |||||
| .boundingClientRect(); | |||||
| that._in ? a.select(that._in.selector).scrollOffset().select(that._in.selector).boundingClientRect() : a.selectViewport().scrollOffset(); | |||||
| a.exec(function (t) { | |||||
| if (!t[0]) { | |||||
| return void r(Error('Label not found')); | |||||
| } | |||||
| var a = t[1].scrollTop + t[0].top - (t[2] ? t[2].top : 0) + (n || parseInt(that.useAnchor) || 0); | |||||
| that._in | |||||
| ? that._in.page.setData(e({}, that._in.scrollTop, a)) | |||||
| : uni.pageScrollTo({ | |||||
| scrollTop: a, | |||||
| duration: 300 | |||||
| }); | |||||
| o(); | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| getText: function (e) { | |||||
| var t = ''; | |||||
| (function e(n) { | |||||
| for (var i = 0; i < n.length; i++) { | |||||
| var o = n[i]; | |||||
| if ('text' === o.type) t += o.text.replace(/&/g, '&'); | |||||
| else if ('br' === o.name) { | |||||
| t += '\n'; | |||||
| } else { | |||||
| var r = 'p' === o.name || 'div' === o.name || 'tr' === o.name || 'li' === o.name || ('h' === o.name[0] && o.name[1] > '0' && o.name[1] < '7'); | |||||
| if (r && t && '\n' !== t[t.length - 1]) { | |||||
| t += '\n'; | |||||
| } | |||||
| if (o.children) { | |||||
| e(o.children); | |||||
| } | |||||
| r && '\n' !== t[t.length - 1] ? (t += '\n') : ('td' !== o.name && 'th' !== o.name) || (t += '\t'); | |||||
| } | |||||
| } | |||||
| })(e || this.nodes); | |||||
| return t; | |||||
| }, | |||||
| getRect: function () { | |||||
| var that = this; | |||||
| return new Promise(function (t, n) { | |||||
| uni.createSelectorQuery() | |||||
| .in(that) | |||||
| .select('._root') | |||||
| .boundingClientRect() | |||||
| .exec(function (e) { | |||||
| return e[0] ? t(e[0]) : n(Error('Root label not found')); | |||||
| }); | |||||
| }); | |||||
| }, | |||||
| pauseMedia: function () { | |||||
| for (var e = (this._videos || []).length; e--; ) { | |||||
| this._videos[e].pause(); | |||||
| } | |||||
| }, | |||||
| setPlaybackRate: function (e) { | |||||
| this.playbackRate = e; | |||||
| for (var t = (this._videos || []).length; t--; ) { | |||||
| this._videos[t].playbackRate(e); | |||||
| } | |||||
| }, | |||||
| setContent: function (e, n) { | |||||
| var that = this; | |||||
| (this.imgList && n) || (this.imgList = []); | |||||
| this._videos = []; | |||||
| var o = {}; | |||||
| var r = new t(this).parse(e); | |||||
| if (n) { | |||||
| for (a = this.nodes.length, s = r.length, void 0; s--; ) { | |||||
| var a; | |||||
| var s; | |||||
| o['nodes['.concat(a + s, ']')] = r[s]; | |||||
| } | |||||
| } else { | |||||
| o.nodes = r; | |||||
| } | |||||
| this.setData(o, function () { | |||||
| that.hookFun('onLoad'); | |||||
| that.$emit('load'); | |||||
| }); | |||||
| if (this.lazyLoad || this.imgList._unloadimgs < this.imgList.length / 2) { | |||||
| var l = 0; | |||||
| var c = function e(t) { | |||||
| (t && t.height) || (t = {}); | |||||
| t.height === l | |||||
| ? that.$emit('ready', { | |||||
| detail: t | |||||
| }) | |||||
| : ((l = t.height), | |||||
| setTimeout(function () { | |||||
| that.getRect().then(e).catch(e); | |||||
| }, 350)); | |||||
| }; | |||||
| this.getRect().then(c).catch(c); | |||||
| } else { | |||||
| this.imgList._unloadimgs || | |||||
| this.getRect() | |||||
| .then(function (e) { | |||||
| that.$emit('ready', { | |||||
| detail: e | |||||
| }); | |||||
| }) | |||||
| .catch(function () { | |||||
| that.$emit('ready', { | |||||
| detail: {} | |||||
| }); | |||||
| }); | |||||
| } | |||||
| }, | |||||
| hookFun: function (e) { | |||||
| for (var t = n.length; t--; ) { | |||||
| if (this.plugins[t][e]) { | |||||
| this.plugins[t][e](); | |||||
| } | |||||
| } | |||||
| }, | |||||
| addFun: function (e, _dataset) { | |||||
| /* ---处理dataset begin--- */ | |||||
| this.handleDataset(e, _dataset); | |||||
| /* ---处理dataset end--- */ | |||||
| e.detail.root = this; | |||||
| } | |||||
| }, | |||||
| watch: { | |||||
| content: { | |||||
| handler: function (e) { | |||||
| this.setContent(e); | |||||
| }, | |||||
| immediate: true | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style> | |||||
| ._root { | |||||
| padding: 1px 0; | |||||
| overflow-x: auto; | |||||
| overflow-y: hidden; | |||||
| -webkit-overflow-scrolling: touch; | |||||
| } | |||||
| ._select { | |||||
| -webkit-user-select: text; | |||||
| user-select: text; | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,124 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <template v-if="compName === 'el'"> | |||||
| <block v-if="n.name === 'img'"> | |||||
| <rich-text | |||||
| v-if="n.t" | |||||
| :style="'display:' + n.t" | |||||
| :nodes="'<img class='_img' style=''+(n.attrs.style)+'' src=''+(n.attrs.src)+''>'" | |||||
| :data-i="i" | |||||
| @tap.stop.prevent="imgTap" | |||||
| /> | |||||
| <block v-else> | |||||
| <image v-if="(opts[1] && !ctrl[i]) || ctrl[i] < 0" class="_img" :style="n.attrs.style" :src="ctrl[i] < 0 ? opts[2] : opts[1]" mode="widthFix" /> | |||||
| <image | |||||
| :id="n.attrs.id" | |||||
| :class="'_img ' + n.attrs.class" | |||||
| :style="(ctrl[i] === -1 ? 'display:none;' : '') + 'width:' + (ctrl[i] || 1) + 'px;height:1px;' + n.attrs.style" | |||||
| :src="n.attrs.src" | |||||
| :mode="!n.h ? 'widthFix' : !n.w ? 'heightFix' : ''" | |||||
| :lazy-load="opts[0]" | |||||
| :webp="n.webp" | |||||
| :show-menu-by-longpress="opts[3] && !n.attrs.ignore" | |||||
| :data-i="i" | |||||
| @load="imgLoad" | |||||
| @error="mediaError" | |||||
| @tap.stop.prevent="imgTap" | |||||
| @longpress="noop" | |||||
| /> | |||||
| </block> | |||||
| </block> | |||||
| <text v-else-if="n.text" :user-select="opts[4] == 'force' && isiOS" decode>{{ n.text }}</text> | |||||
| <text v-else-if="n.name === 'br'">\n</text> | |||||
| <view | |||||
| v-else-if="n.name === 'a'" | |||||
| :id="n.attrs.id" | |||||
| :class="(n.attrs.href ? '_a ' : '') + n.attrs.class" | |||||
| hover-class="_hover" | |||||
| :style="'display:inline;' + n.attrs.style" | |||||
| :data-i="i" | |||||
| @tap.stop.prevent="linkTap" | |||||
| > | |||||
| <node :childs="n.children" :opts="opts" style="display: inherit" /> | |||||
| </view> | |||||
| <video | |||||
| v-else-if="n.name === 'video'" | |||||
| :id="n.attrs.id" | |||||
| :class="n.attrs.class" | |||||
| :style="n.attrs.style" | |||||
| :autoplay="n.attrs.autoplay" | |||||
| :controls="n.attrs.controls" | |||||
| :loop="n.attrs.loop" | |||||
| :muted="n.attrs.muted" | |||||
| :object-fit="n.attrs['object-fit']" | |||||
| :poster="n.attrs.poster" | |||||
| :src="n.src[ctrl[i] || 0]" | |||||
| :data-i="i" | |||||
| @play="play" | |||||
| @error="mediaError" | |||||
| /> | |||||
| <audio | |||||
| v-else-if="n.name === 'audio'" | |||||
| :id="n.attrs.id" | |||||
| :class="n.attrs.class" | |||||
| :style="n.attrs.style" | |||||
| :author="n.attrs.author" | |||||
| :controls="n.attrs.controls" | |||||
| :loop="n.attrs.loop" | |||||
| :name="n.attrs.name" | |||||
| :poster="n.attrs.poster" | |||||
| :src="n.src[ctrl[i] || 0]" | |||||
| :data-i="i" | |||||
| @play="play" | |||||
| @error="mediaError" | |||||
| /> | |||||
| <rich-text v-else :id="n.attrs.id" :style="n.f" :user-select="opts[4]" :nodes="[n]" /> | |||||
| </template> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import node from './node'; | |||||
| export default { | |||||
| components: { | |||||
| node | |||||
| }, | |||||
| props: ['data', 'compName'], | |||||
| computed: { | |||||
| n() { | |||||
| return this.data.n; | |||||
| }, | |||||
| i() { | |||||
| return this.data.i; | |||||
| }, | |||||
| opts() { | |||||
| return this.data.opts; | |||||
| }, | |||||
| ctrl() { | |||||
| return this.data.ctrl; | |||||
| }, | |||||
| isiOS() { | |||||
| return this.data.isiOS; | |||||
| }, | |||||
| imgTap() { | |||||
| return this.data.imgTap; | |||||
| }, | |||||
| imgLoad() { | |||||
| return this.data.imgLoad; | |||||
| }, | |||||
| mediaError() { | |||||
| return this.data.mediaError; | |||||
| }, | |||||
| noop() { | |||||
| return this.data.noop; | |||||
| }, | |||||
| linkTap() { | |||||
| return this.data.linkTap; | |||||
| }, | |||||
| play() { | |||||
| return this.data.play; | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style></style> | |||||
| @@ -0,0 +1,479 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <block v-for="(n1, i1) in childs" :key="i1"> | |||||
| <El compName="el" :data="{ n: n1, i: '' + i1, opts: opts, ctrl: ctrl }" v-if="!n1.c && (!n1.children || n1.name === 'a' || !isInline(n1.name, n1.attrs.style))"></El> | |||||
| <view v-else :id="n1.attrs.id" :class="'_' + n1.name + ' ' + n1.attrs.class" :style="n1.attrs.style"> | |||||
| <block v-for="(n2, i2) in n1.children" :key="i2"> | |||||
| <El | |||||
| compName="el" | |||||
| :data="{ n: n2, i: i1 + '_' + i2, opts: opts, ctrl: ctrl }" | |||||
| v-if="!n2.c && (!n2.children || n2.name === 'a' || !isInline(n2.name, n2.attrs.style))" | |||||
| ></El> | |||||
| <view v-else :id="n2.attrs.id" :class="'_' + n2.name + ' ' + n2.attrs.class" :style="n2.attrs.style"> | |||||
| <block v-for="(n3, i3) in n2.children" :key="i3"> | |||||
| <El | |||||
| compName="el" | |||||
| :data="{ n: n3, i: i1 + '_' + i2 + '_' + i3, opts: opts, ctrl: ctrl }" | |||||
| v-if="!n3.c && (!n3.children || n3.name === 'a' || !isInline(n3.name, n3.attrs.style))" | |||||
| ></El> | |||||
| <view v-else :id="n3.attrs.id" :class="'_' + n3.name + ' ' + n3.attrs.class" :style="n3.attrs.style"> | |||||
| <block v-for="(n4, i4) in n3.children" :key="i4"> | |||||
| <El | |||||
| compName="el" | |||||
| :data="{ n: n4, i: i1 + '_' + i2 + '_' + i3 + '_' + i4, opts: opts, ctrl: ctrl }" | |||||
| v-if="!n4.c && (!n4.children || n4.name === 'a' || !isInline(n4.name, n4.attrs.style))" | |||||
| ></El> | |||||
| <view v-else :id="n4.attrs.id" :class="'_' + n4.name + ' ' + n4.attrs.class" :style="n4.attrs.style"> | |||||
| <block v-for="(n5, i5) in n4.children" :key="i5"> | |||||
| <El | |||||
| compName="el" | |||||
| :data="{ n: n5, i: i1 + '_' + i2 + '_' + i3 + '_' + i4 + '_' + i5, opts: opts, ctrl: ctrl }" | |||||
| v-if="!n5.c && (!n5.children || n5.name === 'a' || !isInline(n5.name, n5.attrs.style))" | |||||
| ></El> | |||||
| <node | |||||
| v-else | |||||
| :id="n5.attrs.id" | |||||
| :class="'_' + n5.name + ' ' + n5.attrs.class" | |||||
| :style="n5.attrs.style" | |||||
| :childs="n5.children" | |||||
| :opts="opts" | |||||
| /> | |||||
| </block> | |||||
| </view> | |||||
| </block> | |||||
| </view> | |||||
| </block> | |||||
| </view> | |||||
| </block> | |||||
| </view> | |||||
| </block> | |||||
| </view> | |||||
| </template> | |||||
| <script module="isInline" lang="wxs"> | |||||
| var e={abbr:!0,b:!0,big:!0,code:!0,del:!0,em:!0,i:!0,ins:!0,label:!0,q:!0,small:!0,span:!0,strong:!0,sub:!0,sup:!0};module.exports=function(n,i){return e[n]||-1!==(i||"").indexOf("inline")}; | |||||
| </script> | |||||
| <script> | |||||
| 'use strict'; | |||||
| import node from './node'; | |||||
| import El from './node-el.vue'; | |||||
| function t(t, e, i) { | |||||
| if (e in t) { | |||||
| Object.defineProperty(t, e, { | |||||
| value: i, | |||||
| enumerable: true, | |||||
| configurable: true, | |||||
| writable: true | |||||
| }); | |||||
| } else { | |||||
| t[e] = i; | |||||
| } | |||||
| return t; | |||||
| } | |||||
| export default { | |||||
| components: { | |||||
| node, | |||||
| El | |||||
| }, | |||||
| data() { | |||||
| return { | |||||
| ctrl: {}, | |||||
| isiOS: uni.getSystemInfoSync().system.includes('iOS'), | |||||
| i1: '', | |||||
| n1: { | |||||
| c: '', | |||||
| children: '', | |||||
| name: '', | |||||
| attrs: { | |||||
| id: '', | |||||
| class: '', | |||||
| style: '' | |||||
| } | |||||
| }, | |||||
| i2: '', | |||||
| n2: { | |||||
| c: '', | |||||
| children: '', | |||||
| name: '', | |||||
| attrs: { | |||||
| id: '', | |||||
| class: '', | |||||
| style: '' | |||||
| } | |||||
| }, | |||||
| i3: '', | |||||
| n3: { | |||||
| c: '', | |||||
| children: '', | |||||
| name: '', | |||||
| attrs: { | |||||
| id: '', | |||||
| class: '', | |||||
| style: '' | |||||
| } | |||||
| }, | |||||
| i4: '', | |||||
| n4: { | |||||
| c: '', | |||||
| children: '', | |||||
| name: '', | |||||
| attrs: { | |||||
| id: '', | |||||
| class: '', | |||||
| style: '' | |||||
| } | |||||
| }, | |||||
| i5: '', | |||||
| n5: { | |||||
| c: '', | |||||
| children: '', | |||||
| name: '', | |||||
| attrs: { | |||||
| id: '', | |||||
| class: '', | |||||
| style: '' | |||||
| } | |||||
| } | |||||
| }; | |||||
| }, | |||||
| props: { | |||||
| childs: Array, | |||||
| opts: Array | |||||
| }, | |||||
| options: { | |||||
| addGlobalClass: true | |||||
| }, | |||||
| mounted() { | |||||
| // 处理小程序 attached 生命周期 | |||||
| this.attached(); | |||||
| }, | |||||
| methods: { | |||||
| attached: function () { | |||||
| this.$emit( | |||||
| 'add', | |||||
| { | |||||
| detail: this | |||||
| }, | |||||
| { | |||||
| bubbles: true, | |||||
| composed: true | |||||
| } | |||||
| ); | |||||
| }, | |||||
| noop: function () {}, | |||||
| getNode: function (t) { | |||||
| try { | |||||
| for (e = t.split('_'), i = this.childs[e[0]], r = 1, void 0; r < e.length; r++) { | |||||
| var e; | |||||
| var i; | |||||
| var r; | |||||
| i = i.children[e[r]]; | |||||
| } | |||||
| return i; | |||||
| } catch (t) { | |||||
| console.log('CatchClause', t); | |||||
| console.log('CatchClause', t); | |||||
| return { | |||||
| text: '', | |||||
| attrs: {}, | |||||
| children: [] | |||||
| }; | |||||
| } | |||||
| }, | |||||
| play: function (t) { | |||||
| this.root.$emit('play'); | |||||
| if (this.root.data.pauseVideo) { | |||||
| for (e = false, i = t.target.id, r = this.root._videos.length, void 0; r--; ) { | |||||
| var e; | |||||
| var i; | |||||
| var r; | |||||
| this.root._videos[r].id === i ? (e = true) : this.root._videos[r].pause(); | |||||
| } | |||||
| if (!e) { | |||||
| var o = uni.createVideoContext(i, this); | |||||
| o.id = i; | |||||
| if (this.root.playbackRate) { | |||||
| o.playbackRate(this.root.playbackRate); | |||||
| } | |||||
| this.root._videos.push(o); | |||||
| } | |||||
| } | |||||
| }, | |||||
| imgTap: function (t) { | |||||
| var e = this.getNode(t.target.dataset.i); | |||||
| if (e.a) { | |||||
| return this.linkTap(e.a); | |||||
| } | |||||
| if ( | |||||
| !e.attrs.ignore && | |||||
| (this.root.$emit('imgtap', { | |||||
| detail: e.attrs | |||||
| }), | |||||
| this.root.data.previewImg) | |||||
| ) { | |||||
| var i = this.root.imgList[e.i]; | |||||
| uni.previewImage({ | |||||
| showmenu: this.root.data.showImgMenu, | |||||
| current: i, | |||||
| urls: this.root.imgList | |||||
| }); | |||||
| } | |||||
| }, | |||||
| imgLoad: function (e) { | |||||
| var i; | |||||
| var r = e.target.dataset.i; | |||||
| var o = this.getNode(r); | |||||
| o.w ? ((this.opts[1] && !this.ctrl[r]) || -1 === this.ctrl[r]) && (i = 1) : (i = e.detail.width); | |||||
| if (i) { | |||||
| this.setData(t({}, 'ctrl.' + r, i)); | |||||
| } | |||||
| this.checkReady(); | |||||
| }, | |||||
| checkReady: function () { | |||||
| var that = this; | |||||
| this.root.data.lazyLoad || | |||||
| ((this.root.imgList._unloadimgs -= 1), | |||||
| this.root.imgList._unloadimgs || | |||||
| setTimeout(function () { | |||||
| that.root | |||||
| .getRect() | |||||
| .then(function (e) { | |||||
| that.root.$emit('ready', { | |||||
| detail: e | |||||
| }); | |||||
| }) | |||||
| .catch(function () { | |||||
| that.root.$emit('ready', { | |||||
| detail: {} | |||||
| }); | |||||
| }); | |||||
| }, 350)); | |||||
| }, | |||||
| linkTap: function (t) { | |||||
| if (t.currentTarget) { | |||||
| var e = this.getNode(t.currentTarget.dataset.i); | |||||
| } else { | |||||
| var e = {}; | |||||
| } | |||||
| var i = e.attrs || t; | |||||
| var r = i.href; | |||||
| this.root.$emit('linktap', { | |||||
| detail: Object.assign( | |||||
| { | |||||
| innerText: this.root.getText(e.children || []) | |||||
| }, | |||||
| i | |||||
| ) | |||||
| }); | |||||
| if (r) { | |||||
| '#' === r[0] | |||||
| ? this.root.navigateTo(r.substring(1)).catch(function () {}) | |||||
| : r.split('?')[0].includes('://') | |||||
| ? this.root.data.copyLink && | |||||
| uni.setClipboardData({ | |||||
| data: r, | |||||
| success: function () { | |||||
| return uni.showToast({ | |||||
| title: '链接已复制' | |||||
| }); | |||||
| } | |||||
| }) | |||||
| : uni.navigateTo({ | |||||
| url: r, | |||||
| fail: function () { | |||||
| uni.switchTab({ | |||||
| url: r, | |||||
| fail: function () {} | |||||
| }); | |||||
| } | |||||
| }); | |||||
| } | |||||
| }, | |||||
| mediaError: function (e) { | |||||
| var i = e.target.dataset.i; | |||||
| var r = this.getNode(i); | |||||
| if ('video' === r.name || 'audio' === r.name) { | |||||
| var o = (this.ctrl[i] || 0) + 1; | |||||
| if (o > r.src.length) { | |||||
| o = 0; | |||||
| } | |||||
| if (o < r.src.length) { | |||||
| return this.setData(t({}, 'ctrl.' + i, o)); | |||||
| } | |||||
| } else { | |||||
| if ('img' === r.name) { | |||||
| if (this.opts[2]) { | |||||
| this.setData(t({}, 'ctrl.' + i, -1)); | |||||
| } | |||||
| this.checkReady(); | |||||
| } | |||||
| } | |||||
| if (this.root) { | |||||
| this.root.$emit('error', { | |||||
| detail: { | |||||
| source: r.name, | |||||
| attrs: r.attrs, | |||||
| errMsg: e.detail.errMsg | |||||
| } | |||||
| }); | |||||
| } | |||||
| } | |||||
| }, | |||||
| created: function () {} | |||||
| }; | |||||
| </script> | |||||
| <style> | |||||
| ._a { | |||||
| padding: 1.5px 0 1.5px 0; | |||||
| color: #366092; | |||||
| word-break: break-all; | |||||
| } | |||||
| ._hover { | |||||
| text-decoration: underline; | |||||
| opacity: 0.7; | |||||
| } | |||||
| ._img { | |||||
| max-width: 100%; | |||||
| -webkit-touch-callout: none; | |||||
| } | |||||
| ._b, | |||||
| ._strong { | |||||
| font-weight: 700; | |||||
| } | |||||
| ._code { | |||||
| font-family: monospace; | |||||
| } | |||||
| ._del { | |||||
| text-decoration: line-through; | |||||
| } | |||||
| ._em, | |||||
| ._i { | |||||
| font-style: italic; | |||||
| } | |||||
| ._h1 { | |||||
| font-size: 2em; | |||||
| } | |||||
| ._h2 { | |||||
| font-size: 1.5em; | |||||
| } | |||||
| ._h3 { | |||||
| font-size: 1.17em; | |||||
| } | |||||
| ._h5 { | |||||
| font-size: 0.83em; | |||||
| } | |||||
| ._h6 { | |||||
| font-size: 0.67em; | |||||
| } | |||||
| ._h1, | |||||
| ._h2, | |||||
| ._h3, | |||||
| ._h4, | |||||
| ._h5, | |||||
| ._h6 { | |||||
| display: block; | |||||
| font-weight: 700; | |||||
| } | |||||
| ._ins { | |||||
| text-decoration: underline; | |||||
| } | |||||
| ._li { | |||||
| display: list-item; | |||||
| } | |||||
| ._ol { | |||||
| list-style-type: decimal; | |||||
| } | |||||
| ._ol, | |||||
| ._ul { | |||||
| display: block; | |||||
| padding-left: 40px; | |||||
| margin: 1em 0; | |||||
| } | |||||
| ._q::before { | |||||
| content: '"'; | |||||
| } | |||||
| ._q::after { | |||||
| content: '"'; | |||||
| } | |||||
| ._sub { | |||||
| font-size: smaller; | |||||
| vertical-align: sub; | |||||
| } | |||||
| ._sup { | |||||
| font-size: smaller; | |||||
| vertical-align: super; | |||||
| } | |||||
| ._tbody, | |||||
| ._tfoot, | |||||
| ._thead { | |||||
| display: table-row-group; | |||||
| } | |||||
| ._tr { | |||||
| display: table-row; | |||||
| } | |||||
| ._td, | |||||
| ._th { | |||||
| display: table-cell; | |||||
| vertical-align: middle; | |||||
| } | |||||
| ._th { | |||||
| font-weight: 700; | |||||
| text-align: center; | |||||
| } | |||||
| ._ul { | |||||
| list-style-type: disc; | |||||
| } | |||||
| ._ul ._ul { | |||||
| margin: 0; | |||||
| list-style-type: circle; | |||||
| } | |||||
| ._ul ._ul ._ul { | |||||
| list-style-type: square; | |||||
| } | |||||
| ._abbr, | |||||
| ._b, | |||||
| ._code, | |||||
| ._del, | |||||
| ._em, | |||||
| ._i, | |||||
| ._ins, | |||||
| ._label, | |||||
| ._q, | |||||
| ._span, | |||||
| ._strong, | |||||
| ._sub, | |||||
| ._sup { | |||||
| display: inline; | |||||
| } | |||||
| ._blockquote, | |||||
| ._div, | |||||
| ._p { | |||||
| display: block; | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,410 @@ | |||||
| "use strict"; | |||||
| function t(t) { | |||||
| for (var i = Object.create(null), e = t.split(","), s = e.length; s--;) i[e[s]] = !0; | |||||
| return i; | |||||
| } | |||||
| function i(t, i) { | |||||
| for (var e = t.indexOf("&"); -1 !== e;) { | |||||
| var s = t.indexOf(";", e + 3), | |||||
| a = void 0; | |||||
| if (-1 === s) break; | |||||
| "#" === t[e + 1] ? (a = parseInt(("x" === t[e + 2] ? "0" : "") + t.substring(e + 2, s)), isNaN(a) || (t = t.substr(0, e) + String.fromCharCode(a) + t.substr(s + 1))) : (a = t.substring(e + 1, s), (n.entities[a] || "amp" === a && i) && (t = t.substr(0, e) + (n.entities[a] || "&") + t.substr(s + 1))), e = t.indexOf("&", e + 1); | |||||
| } | |||||
| return t; | |||||
| } | |||||
| function e(t) { | |||||
| for (var i = t.length - 1, e = i; e >= -1; e--) (-1 === e || t[e].c || !t[e].name || "div" !== t[e].name && "p" !== t[e].name && "h" !== t[e].name[0] || (t[e].attrs.style || "").includes("inline")) && (i - e >= 5 && t.splice(e + 1, i - e, { | |||||
| name: "div", | |||||
| attrs: {}, | |||||
| children: t.slice(e + 1, i + 1) | |||||
| }), i = e - 1); | |||||
| } | |||||
| function s(t) { | |||||
| this.options = t.data || {}, this.tagStyle = Object.assign({}, n.tagStyle, this.options.tagStyle), this.imgList = t.imgList || [], this.imgList._unloadimgs = 0, this.plugins = t.plugins || [], this.attrs = Object.create(null), this.stack = [], this.nodes = [], this.pre = (this.options.containerStyle || "").includes("white-space") && this.options.containerStyle.includes("pre") ? 2 : 0; | |||||
| } | |||||
| function a(t) { | |||||
| this.handler = t; | |||||
| } | |||||
| var n = { | |||||
| trustTags: t("a,abbr,ad,audio,b,blockquote,br,code,col,colgroup,dd,del,dl,dt,div,em,fieldset,h1,h2,h3,h4,h5,h6,hr,i,img,ins,label,legend,li,ol,p,q,ruby,rt,source,span,strong,sub,sup,table,tbody,td,tfoot,th,thead,tr,title,ul,video"), | |||||
| blockTags: t("address,article,aside,body,caption,center,cite,footer,header,html,nav,pre,section"), | |||||
| ignoreTags: t("area,base,canvas,embed,frame,head,iframe,input,link,map,meta,param,rp,script,source,style,textarea,title,track,wbr"), | |||||
| voidTags: t("area,base,br,col,circle,ellipse,embed,frame,hr,img,input,line,link,meta,param,path,polygon,rect,source,track,use,wbr"), | |||||
| entities: { | |||||
| lt: "<", | |||||
| gt: ">", | |||||
| quot: '"', | |||||
| apos: "'", | |||||
| ensp: " ", | |||||
| emsp: " ", | |||||
| nbsp: " ", | |||||
| semi: ";", | |||||
| ndash: "–", | |||||
| mdash: "—", | |||||
| middot: "·", | |||||
| lsquo: "‘", | |||||
| rsquo: "’", | |||||
| ldquo: "“", | |||||
| rdquo: "”", | |||||
| bull: "•", | |||||
| hellip: "…", | |||||
| larr: "←", | |||||
| uarr: "↑", | |||||
| rarr: "→", | |||||
| darr: "↓" | |||||
| }, | |||||
| tagStyle: { | |||||
| address: "font-style:italic", | |||||
| big: "display:inline;font-size:1.2em", | |||||
| caption: "display:table-caption;text-align:center", | |||||
| center: "text-align:center", | |||||
| cite: "font-style:italic", | |||||
| dd: "margin-left:40px", | |||||
| mark: "background-color:yellow", | |||||
| pre: "font-family:monospace;white-space:pre", | |||||
| s: "text-decoration:line-through", | |||||
| small: "display:inline;font-size:0.8em", | |||||
| strike: "text-decoration:line-through", | |||||
| u: "text-decoration:underline" | |||||
| }, | |||||
| svgDict: { | |||||
| animatetransform: "animateTransform", | |||||
| lineargradient: "linearGradient", | |||||
| viewbox: "viewBox", | |||||
| attributename: "attributeName", | |||||
| repeatcount: "repeatCount", | |||||
| repeatdur: "repeatDur" | |||||
| } | |||||
| }, | |||||
| r = {}, | |||||
| o = uni.getSystemInfoSync(), | |||||
| h = o.windowWidth, | |||||
| l = o.system, | |||||
| c = t(" ,\r,\n,\t,\f"), | |||||
| d = 0; | |||||
| s.prototype.parse = function (t) { | |||||
| for (var i = this.plugins.length; i--;) this.plugins[i].onUpdate && (t = this.plugins[i].onUpdate(t, n) || t); | |||||
| for (new a(this).parse(t); this.stack.length;) this.popNode(); | |||||
| return this.nodes.length > 50 && e(this.nodes), this.nodes; | |||||
| }, s.prototype.expose = function () { | |||||
| for (var t = this.stack.length; t--;) { | |||||
| var i = this.stack[t]; | |||||
| if (i.c || "a" === i.name || "video" === i.name || "audio" === i.name) return; | |||||
| i.c = 1; | |||||
| } | |||||
| }, s.prototype.hook = function (t) { | |||||
| for (var i = this.plugins.length; i--;) if (this.plugins[i].onParse && !1 === this.plugins[i].onParse(t, this)) return !1; | |||||
| return !0; | |||||
| }, s.prototype.getUrl = function (t) { | |||||
| var i = this.options.domain; | |||||
| return "/" === t[0] ? "/" === t[1] ? t = (i ? i.split("://")[0] : "http") + ":" + t : i && (t = i + t) : !i || t.includes("data:") || t.includes("://") || (t = i + "/" + t), t; | |||||
| }, s.prototype.parseStyle = function (t) { | |||||
| var i = t.attrs, | |||||
| e = (this.tagStyle[t.name] || "").split(";").concat((i.style || "").split(";")), | |||||
| s = {}, | |||||
| a = ""; | |||||
| i.id && !this.xml && (this.options.useAnchor ? this.expose() : "img" !== t.name && "a" !== t.name && "video" !== t.name && "audio" !== t.name && (i.id = void 0)), i.width && (s.width = parseFloat(i.width) + (i.width.includes("%") ? "%" : "px"), i.width = void 0), i.height && (s.height = parseFloat(i.height) + (i.height.includes("%") ? "%" : "px"), i.height = void 0); | |||||
| for (var n = 0, r = e.length; n < r; n++) { | |||||
| var o = e[n].split(":"); | |||||
| if (!(o.length < 2)) { | |||||
| var l = o.shift().trim().toLowerCase(), | |||||
| d = o.join(":").trim(); | |||||
| if ("-" === d[0] && d.lastIndexOf("-") > 0 || d.includes("safe")) a += ";".concat(l, ":").concat(d);else if (!s[l] || d.includes("import") || !s[l].includes("import")) { | |||||
| if (d.includes("url")) { | |||||
| var p = d.indexOf("(") + 1; | |||||
| if (p) { | |||||
| for (; '"' === d[p] || "'" === d[p] || c[d[p]];) p++; | |||||
| d = d.substr(0, p) + this.getUrl(d.substr(p)); | |||||
| } | |||||
| } else d.includes("rpx") && (d = d.replace(/[0-9.]+\s*rpx/g, function (t) { | |||||
| return parseFloat(t) * h / 750 + "px"; | |||||
| })); | |||||
| s[l] = d; | |||||
| } | |||||
| } | |||||
| } | |||||
| return t.attrs.style = a, s; | |||||
| }, s.prototype.onTagName = function (t) { | |||||
| this.tagName = this.xml ? t : t.toLowerCase(), "svg" === this.tagName && (this.xml = (this.xml || 0) + 1); | |||||
| }, s.prototype.onAttrName = function (t) { | |||||
| t = this.xml ? t : t.toLowerCase(), "data-" === t.substr(0, 5) ? "data-src" !== t || this.attrs.src ? "img" === this.tagName || "a" === this.tagName ? this.attrName = t : this.attrName = void 0 : this.attrName = "src" : (this.attrName = t, this.attrs[t] = "T"); | |||||
| }, s.prototype.onAttrVal = function (t) { | |||||
| var e = this.attrName || ""; | |||||
| "style" === e || "href" === e ? this.attrs[e] = i(t, !0) : e.includes("src") ? this.attrs[e] = this.getUrl(i(t, !0)) : e && (this.attrs[e] = t); | |||||
| }, s.prototype.onOpenTag = function (t) { | |||||
| var i = Object.create(null); | |||||
| i.name = this.tagName, i.attrs = this.attrs, this.attrs = Object.create(null); | |||||
| var e = i.attrs, | |||||
| s = this.stack[this.stack.length - 1], | |||||
| a = s ? s.children : this.nodes, | |||||
| o = this.xml ? t : n.voidTags[i.name]; | |||||
| if (r[i.name] && (e.class = r[i.name] + (e.class ? " " + e.class : "")), "embed" === i.name) { | |||||
| var l = e.src || ""; | |||||
| l.includes(".mp4") || l.includes(".3gp") || l.includes(".m3u8") || (e.type || "").includes("video") ? i.name = "video" : (l.includes(".mp3") || l.includes(".wav") || l.includes(".aac") || l.includes(".m4a") || (e.type || "").includes("audio")) && (i.name = "audio"), e.autostart && (e.autoplay = "T"), e.controls = "T"; | |||||
| } | |||||
| if ("video" !== i.name && "audio" !== i.name || ("video" !== i.name || e.id || (e.id = "v" + d++), e.controls || e.autoplay || (e.controls = "T"), i.src = [], e.src && (i.src.push(e.src), e.src = void 0), this.expose()), o) { | |||||
| if (!this.hook(i) || n.ignoreTags[i.name]) return void ("base" !== i.name || this.options.domain ? "source" === i.name && s && ("video" === s.name || "audio" === s.name) && e.src && s.src.push(e.src) : this.options.domain = e.href); | |||||
| var c = this.parseStyle(i); | |||||
| if ("img" === i.name) { | |||||
| if (e.src && (e.src.includes("webp") && (i.webp = "T"), e.src.includes("data:") && !e["original-src"] && (e.ignore = "T"), !e.ignore || i.webp || e.src.includes("cloud://"))) { | |||||
| for (var p = this.stack.length; p--;) { | |||||
| var u = this.stack[p]; | |||||
| "table" !== u.name || i.webp || e.src.includes("cloud://") || (!c.display || c.display.includes("inline") ? i.t = "inline-block" : i.t = c.display, c.display = void 0); | |||||
| var g = u.attrs.style || ""; | |||||
| if (!g.includes("flex:") || g.includes("flex:0") || g.includes("flex: 0") || c.width && !(parseInt(c.width) > 100)) { | |||||
| if (g.includes("flex") && "100%" === c.width) for (var f = p + 1; f < this.stack.length; f++) { | |||||
| var m = this.stack[f].attrs.style || ""; | |||||
| if (!m.includes(";width") && !m.includes(" width") && 0 !== m.indexOf("width")) { | |||||
| c.width = ""; | |||||
| break; | |||||
| } | |||||
| } else g.includes("inline-block") && (c.width && "%" === c.width[c.width.length - 1] ? (u.attrs.style += ";max-width:" + c.width, c.width = "") : u.attrs.style += ";max-width:100%"); | |||||
| } else { | |||||
| c.width = "100% !important", c.height = ""; | |||||
| for (var v = p + 1; v < this.stack.length; v++) this.stack[v].attrs.style = (this.stack[v].attrs.style || "").replace("inline-", ""); | |||||
| } | |||||
| "a" === u.name ? i.a = u.attrs : u.c = 1; | |||||
| } | |||||
| i.i = this.imgList.length; | |||||
| var y = e["original-src"] || e.src; | |||||
| if (this.imgList.includes(y)) { | |||||
| var x = y.indexOf("://"); | |||||
| if (-1 !== x) { | |||||
| x += 3; | |||||
| for (var b = y.substr(0, x); x < y.length && "/" !== y[x]; x++) b += Math.random() > .5 ? y[x].toUpperCase() : y[x]; | |||||
| b += y.substr(x), y = b; | |||||
| } | |||||
| } | |||||
| this.imgList.push(y), i.t || (this.imgList._unloadimgs += 1); | |||||
| } | |||||
| "inline" === c.display && (c.display = ""), e.ignore && (c["max-width"] = c["max-width"] || "100%", e.style += ";-webkit-touch-callout:none"), parseInt(c.width) > h && (c.height = void 0), isNaN(parseInt(c.width)) || (i.w = "T"), !isNaN(parseInt(c.height)) && (!c.height.includes("%") || s && (s.attrs.style || "").includes("height")) && (i.h = "T"); | |||||
| } else if ("svg" === i.name) return a.push(i), this.stack.push(i), void this.popNode(); | |||||
| for (var w in c) c[w] && (e.style += ";".concat(w, ":").concat(c[w].replace(" !important", ""))); | |||||
| e.style = e.style.substr(1) || void 0; | |||||
| } else ("pre" === i.name || (e.style || "").includes("white-space") && e.style.includes("pre")) && 2 !== this.pre && (this.pre = i.pre = 1), i.children = [], this.stack.push(i); | |||||
| a.push(i); | |||||
| }, s.prototype.onCloseTag = function (t) { | |||||
| t = this.xml ? t : t.toLowerCase(); | |||||
| var i; | |||||
| for (i = this.stack.length; i-- && this.stack[i].name !== t;); | |||||
| if (-1 !== i) for (; this.stack.length > i;) this.popNode();else if ("p" === t || "br" === t) { | |||||
| var e = this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes; | |||||
| e.push({ | |||||
| name: t, | |||||
| attrs: { | |||||
| class: r[t], | |||||
| style: this.tagStyle[t] | |||||
| } | |||||
| }); | |||||
| } | |||||
| }, s.prototype.popNode = function () { | |||||
| var t = this.stack.pop(), | |||||
| i = t.attrs, | |||||
| s = t.children, | |||||
| a = this.stack[this.stack.length - 1], | |||||
| r = a ? a.children : this.nodes; | |||||
| if (!this.hook(t) || n.ignoreTags[t.name]) return "title" === t.name && s.length && "text" === s[0].type && this.options.setTitle && uni.setNavigationBarTitle({ | |||||
| title: s[0].text | |||||
| }), void r.pop(); | |||||
| if (t.pre && 2 !== this.pre) { | |||||
| this.pre = t.pre = void 0; | |||||
| for (var o = this.stack.length; o--;) this.stack[o].pre && (this.pre = 1); | |||||
| } | |||||
| if ("svg" === t.name) { | |||||
| if (this.xml > 1) return void this.xml--; | |||||
| var l = "", | |||||
| c = i.style; | |||||
| return i.style = "", i.xmlns = "http://www.w3.org/2000/svg", function t(i) { | |||||
| if ("text" === i.type) return void (l += i.text); | |||||
| var e = n.svgDict[i.name] || i.name; | |||||
| l += "<" + e; | |||||
| for (var s in i.attrs) { | |||||
| var a = i.attrs[s]; | |||||
| a && (l += " ".concat(n.svgDict[s] || s, '="').concat(a, '"')); | |||||
| } | |||||
| if (i.children) { | |||||
| l += ">"; | |||||
| for (var r = 0; r < i.children.length; r++) t(i.children[r]); | |||||
| l += "</" + e + ">"; | |||||
| } else l += "/>"; | |||||
| }(t), t.name = "img", t.attrs = { | |||||
| src: "data:image/svg+xml;utf8," + l.replace(/#/g, "%23"), | |||||
| style: c, | |||||
| ignore: "T" | |||||
| }, t.children = void 0, void (this.xml = !1); | |||||
| } | |||||
| var d = {}; | |||||
| if (i.align && ("table" === t.name ? "center" === i.align ? d["margin-inline-start"] = d["margin-inline-end"] = "auto" : d.float = i.align : d["text-align"] = i.align, i.align = void 0), i.dir && (d.direction = i.dir, i.dir = void 0), "font" === t.name && (i.color && (d.color = i.color, i.color = void 0), i.face && (d["font-family"] = i.face, i.face = void 0), i.size)) { | |||||
| var p = parseInt(i.size); | |||||
| isNaN(p) || (p < 1 ? p = 1 : p > 7 && (p = 7), d["font-size"] = ["x-small", "small", "medium", "large", "x-large", "xx-large", "xxx-large"][p - 1]), i.size = void 0; | |||||
| } | |||||
| if ((i.class || "").includes("align-center") && (d["text-align"] = "center"), Object.assign(d, this.parseStyle(t)), "table" !== t.name && parseInt(d.width) > h && (d["max-width"] = "100%", d["box-sizing"] = "border-box"), n.blockTags[t.name]) t.name = "div";else if (n.trustTags[t.name] || this.xml) { | |||||
| if ("a" === t.name || "ad" === t.name) this.expose();else if ("video" === t.name || "audio" === t.name) (d.height || "").includes("auto") && (d.height = void 0), t.children = void 0;else if ("ul" !== t.name && "ol" !== t.name || !t.c) { | |||||
| if ("table" === t.name) { | |||||
| var u = parseFloat(i.cellpadding), | |||||
| g = parseFloat(i.cellspacing), | |||||
| f = parseFloat(i.border), | |||||
| m = d["border-color"], | |||||
| v = d["border-style"]; | |||||
| if (t.c && (isNaN(u) && (u = 2), isNaN(g) && (g = 2)), f && (i.style += ";border:".concat(f, "px ").concat(v || "solid", " ").concat(m || "gray")), t.flag && t.c) { | |||||
| t.flag = void 0, d.display = "grid", g ? (d["grid-gap"] = g + "px", d.padding = g + "px") : f && (i.style += ";border-left:0;border-top:0"); | |||||
| var y = [], | |||||
| x = [], | |||||
| b = [], | |||||
| w = {}; | |||||
| !function t(i) { | |||||
| for (var e = 0; e < i.length; e++) "tr" === i[e].name ? x.push(i[e]) : t(i[e].children || []); | |||||
| }(s); | |||||
| for (var k = 1; k <= x.length; k++) { | |||||
| for (var N = 1, T = 0; T < x[k - 1].children.length; T++) { | |||||
| var O = x[k - 1].children[T]; | |||||
| if ("td" === O.name || "th" === O.name) { | |||||
| for (; w[k + "." + N];) N++; | |||||
| O.c = 1; | |||||
| var C = O.attrs.style || "", | |||||
| S = C.indexOf("width") ? C.indexOf(";width") : 0; | |||||
| if (-1 !== S) { | |||||
| var I = C.indexOf(";", S + 6); | |||||
| -1 === I && (I = C.length), O.attrs.colspan || (y[N] = C.substring(S ? S + 7 : 6, I)), C = C.substr(0, S) + C.substr(I); | |||||
| } | |||||
| if (C += ";display:flex", -1 !== (S = C.indexOf("vertical-align"))) { | |||||
| var j = C.substr(S + 15, 10); | |||||
| j.includes("middle") ? C += ";align-items:center" : j.includes("bottom") && (C += ";align-items:flex-end"); | |||||
| } else C += ";align-items:center"; | |||||
| if (-1 !== (S = C.indexOf("text-align"))) { | |||||
| var A = C.substr(S + 11, 10); | |||||
| A.includes("center") ? C += ";justify-content: center" : A.includes("right") && (C += ";justify-content: right"); | |||||
| } | |||||
| if (C = (f ? ";border:".concat(f, "px ").concat(v || "solid", " ").concat(m || "gray") + (g ? "" : ";border-right:0;border-bottom:0") : "") + (u ? ";padding:".concat(u, "px") : "") + ";" + C, O.attrs.colspan && (C += ";grid-column-start:".concat(N, ";grid-column-end:").concat(N + parseInt(O.attrs.colspan)), O.attrs.rowspan || (C += ";grid-row-start:".concat(k, ";grid-row-end:").concat(k + 1)), N += parseInt(O.attrs.colspan) - 1), O.attrs.rowspan) { | |||||
| C += ";grid-row-start:".concat(k, ";grid-row-end:").concat(k + parseInt(O.attrs.rowspan)), O.attrs.colspan || (C += ";grid-column-start:".concat(N, ";grid-column-end:").concat(N + 1)); | |||||
| for (var L = 1; L < O.attrs.rowspan; L++) for (var z = 0; z < (O.attrs.colspan || 1); z++) w[k + L + "." + (N - z)] = 1; | |||||
| } | |||||
| C && (O.attrs.style = C), b.push(O), N++; | |||||
| } | |||||
| } | |||||
| if (1 === k) { | |||||
| for (var q = "", U = 1; U < N; U++) q += (y[U] ? y[U] : "auto") + " "; | |||||
| d["grid-template-columns"] = q; | |||||
| } | |||||
| } | |||||
| t.children = b; | |||||
| } else t.c && (d.display = "table"), isNaN(g) || (d["border-spacing"] = g + "px"), (f || u || t.c) && function i(e) { | |||||
| for (var s = 0; s < e.length; s++) { | |||||
| var a = e[s]; | |||||
| t.c && (a.c = 1), "th" === a.name || "td" === a.name ? (f && (a.attrs.style = "border:".concat(f, "px ").concat(v || "solid", " ").concat(m || "gray", ";").concat(a.attrs.style || "")), u && (a.attrs.style = "padding:".concat(u, "px;").concat(a.attrs.style || ""))) : a.children && i(a.children); | |||||
| } | |||||
| }(s); | |||||
| if (this.options.scrollTable && !(i.style || "").includes("inline")) { | |||||
| var F = Object.assign({}, t); | |||||
| t.name = "div", t.attrs = { | |||||
| style: "overflow-x:auto;padding:1px" | |||||
| }, t.children = [F], i = F.attrs; | |||||
| } | |||||
| } else if ("td" !== t.name && "th" !== t.name || !i.colspan && !i.rowspan) { | |||||
| if ("ruby" === t.name) { | |||||
| t.name = "span"; | |||||
| for (var V = 0; V < s.length - 1; V++) "text" === s[V].type && "rt" === s[V + 1].name && (s[V] = { | |||||
| name: "span", | |||||
| attrs: { | |||||
| style: "display:inline-block;text-align:center" | |||||
| }, | |||||
| children: [{ | |||||
| name: "div", | |||||
| attrs: { | |||||
| style: "font-size:50%;" + (s[V + 1].attrs.style || "") | |||||
| }, | |||||
| children: s[V + 1].children | |||||
| }, s[V]] | |||||
| }, s.splice(V + 1, 1)); | |||||
| } | |||||
| } else for (var D = this.stack.length; D--;) if ("table" === this.stack[D].name) { | |||||
| this.stack[D].flag = 1; | |||||
| break; | |||||
| } | |||||
| } else { | |||||
| var B = { | |||||
| a: "lower-alpha", | |||||
| A: "upper-alpha", | |||||
| i: "lower-roman", | |||||
| I: "upper-roman" | |||||
| }; | |||||
| B[i.type] && (i.style += ";list-style-type:" + B[i.type], i.type = void 0), t.c = 1; | |||||
| for (var P = s.length; P--;) "li" === s[P].name && (s[P].c = 1); | |||||
| } | |||||
| } else t.name = "span"; | |||||
| if ((d.display || "").includes("flex") && !t.c) for (var Z = s.length; Z--;) { | |||||
| var _ = s[Z]; | |||||
| _.f && (_.attrs.style = (_.attrs.style || "") + _.f, _.f = void 0); | |||||
| } | |||||
| var G = a && ((a.attrs.style || "").includes("flex") || (a.attrs.style || "").includes("grid")) && !t.c && !(d.display || "").includes("inline"); | |||||
| G && (t.f = ";max-width:100%"), s.length >= 50 && t.c && !(d.display || "").includes("flex") && e(s); | |||||
| for (var M in d) if (d[M]) { | |||||
| var W = ";".concat(M, ":").concat(d[M].replace(" !important", "")); | |||||
| G && (M.includes("flex") && "flex-direction" !== M || "align-self" === M || M.includes("grid") || "-" === d[M][0] || M.includes("width") && W.includes("%")) ? (t.f += W, "width" === M && (i.style += ";width:100%")) : i.style += W; | |||||
| } | |||||
| i.style = i.style.substr(1) || void 0; | |||||
| }, s.prototype.onText = function (t) { | |||||
| if (!this.pre) { | |||||
| for (var e, s = "", a = 0, n = t.length; a < n; a++) c[t[a]] ? (" " !== s[s.length - 1] && (s += " "), "\n" !== t[a] || e || (e = !0)) : s += t[a]; | |||||
| if (" " === s && e) return; | |||||
| t = s; | |||||
| } | |||||
| var r = Object.create(null); | |||||
| if (r.type = "text", r.text = i(t), this.hook(r)) { | |||||
| "force" === this.options.selectable && l.includes("iOS") && !uni.canIUse("rich-text.user-select") && this.expose(); | |||||
| (this.stack.length ? this.stack[this.stack.length - 1].children : this.nodes).push(r); | |||||
| } | |||||
| }, a.prototype.parse = function (t) { | |||||
| this.content = t || "", this.i = 0, this.start = 0, this.state = this.text; | |||||
| for (var i = this.content.length; -1 !== this.i && this.i < i;) this.state(); | |||||
| }, a.prototype.checkClose = function (t) { | |||||
| var i = "/" === this.content[this.i]; | |||||
| return !!(">" === this.content[this.i] || i && ">" === this.content[this.i + 1]) && (t && this.handler[t](this.content.substring(this.start, this.i)), this.i += i ? 2 : 1, this.start = this.i, this.handler.onOpenTag(i), "script" === this.handler.tagName ? (this.i = this.content.indexOf("</", this.i), -1 !== this.i && (this.i += 2, this.start = this.i), this.state = this.endTag) : this.state = this.text, !0); | |||||
| }, a.prototype.text = function () { | |||||
| if (this.i = this.content.indexOf("<", this.i), -1 === this.i) return void (this.start < this.content.length && this.handler.onText(this.content.substring(this.start, this.content.length))); | |||||
| var t = this.content[this.i + 1]; | |||||
| if (t >= "a" && t <= "z" || t >= "A" && t <= "Z") this.start !== this.i && this.handler.onText(this.content.substring(this.start, this.i)), this.start = ++this.i, this.state = this.tagName;else if ("/" === t || "!" === t || "?" === t) { | |||||
| this.start !== this.i && this.handler.onText(this.content.substring(this.start, this.i)); | |||||
| var i = this.content[this.i + 2]; | |||||
| if ("/" === t && (i >= "a" && i <= "z" || i >= "A" && i <= "Z")) return this.i += 2, this.start = this.i, void (this.state = this.endTag); | |||||
| var e = "--\x3e"; | |||||
| "!" === t && "-" === this.content[this.i + 2] && "-" === this.content[this.i + 3] || (e = ">"), this.i = this.content.indexOf(e, this.i), -1 !== this.i && (this.i += e.length, this.start = this.i); | |||||
| } else this.i++; | |||||
| }, a.prototype.tagName = function () { | |||||
| if (c[this.content[this.i]]) { | |||||
| for (this.handler.onTagName(this.content.substring(this.start, this.i)); c[this.content[++this.i]];); | |||||
| this.i < this.content.length && !this.checkClose() && (this.start = this.i, this.state = this.attrName); | |||||
| } else this.checkClose("onTagName") || this.i++; | |||||
| }, a.prototype.attrName = function () { | |||||
| var t = this.content[this.i]; | |||||
| if (c[t] || "=" === t) { | |||||
| this.handler.onAttrName(this.content.substring(this.start, this.i)); | |||||
| for (var i = "=" === t, e = this.content.length; ++this.i < e;) if (t = this.content[this.i], !c[t]) { | |||||
| if (this.checkClose()) return; | |||||
| if (i) return this.start = this.i, void (this.state = this.attrVal); | |||||
| if ("=" !== this.content[this.i]) return this.start = this.i, void (this.state = this.attrName); | |||||
| i = !0; | |||||
| } | |||||
| } else this.checkClose("onAttrName") || this.i++; | |||||
| }, a.prototype.attrVal = function () { | |||||
| var t = this.content[this.i], | |||||
| i = this.content.length; | |||||
| if ('"' === t || "'" === t) { | |||||
| if (this.start = ++this.i, this.i = this.content.indexOf(t, this.i), -1 === this.i) return; | |||||
| this.handler.onAttrVal(this.content.substring(this.start, this.i)); | |||||
| } else for (; this.i < i; this.i++) { | |||||
| if (c[this.content[this.i]]) { | |||||
| this.handler.onAttrVal(this.content.substring(this.start, this.i)); | |||||
| break; | |||||
| } | |||||
| if (this.checkClose("onAttrVal")) return; | |||||
| } | |||||
| for (; c[this.content[++this.i]];); | |||||
| this.i < i && !this.checkClose() && (this.start = this.i, this.state = this.attrName); | |||||
| }, a.prototype.endTag = function () { | |||||
| var t = this.content[this.i]; | |||||
| if (c[t] || ">" === t || "/" === t) { | |||||
| if (this.handler.onCloseTag(this.content.substring(this.start, this.i)), ">" !== t && (this.i = this.content.indexOf(">", this.i), -1 === this.i)) return; | |||||
| this.start = ++this.i, this.state = this.text; | |||||
| } else this.i++; | |||||
| }, module.exports = s; | |||||
| @@ -0,0 +1,181 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <custom-nav-bar position="fixed" color="black" left-text="新增关联企业" left-arrow /> | |||||
| <scroll-view :scroll-y="true" :style="'height: ' + (windowHeight - 80 - 36 - 20) + 'px;'"> | |||||
| <view class="create-enterprise"> | |||||
| <view class="border"> | |||||
| <view class="create-enterprise-title"> | |||||
| 企业名称 | |||||
| <text class="red ml-10">*</text> | |||||
| </view> | |||||
| <input class="create-enterprise-input" @input="headleInput" :value="form.enterpriseName" | |||||
| data-name="enterpriseName" type="text" placeholder="请输入企业名称" /> | |||||
| </view> | |||||
| <view class="border"> | |||||
| <view class="create-enterprise-title"> | |||||
| 法人姓名 | |||||
| <text class="red ml-10">*</text> | |||||
| </view> | |||||
| <input class="create-enterprise-input" @input="headleInput" :value="form.legalName" data-name="legalName" | |||||
| type="text" placeholder="请输入法人姓名" /> | |||||
| </view> | |||||
| <view class="border"> | |||||
| <view class="create-enterprise-title"> | |||||
| 企业社会统一信用代码 | |||||
| <text class="red ml-10">*</text> | |||||
| </view> | |||||
| <input class="create-enterprise-input" @input="headleInput" :value="form.identificationNumber" | |||||
| data-name="identificationNumber" type="text" placeholder="请输入企业社会统一信用代码" /> | |||||
| </view> | |||||
| </view> | |||||
| </scroll-view> | |||||
| <view class="enterprise-button"> | |||||
| <van-button v-if="isForm" @tap.native="submit" custom-style="height: 80rpx;" color="#E0383E" | |||||
| block>立即关联</van-button> | |||||
| <van-button v-if="!isForm" custom-style="height: 80rpx;" color="#C1C1C1" block>立即关联</van-button> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| // const app = getApp(); | |||||
| // const { enterprise } = app.globalData.api; | |||||
| import * as enterprise from '@/api/enterprise'; // 企业 | |||||
| export default { | |||||
| components: {}, | |||||
| data() { | |||||
| return { | |||||
| // env: app.globalData.env, | |||||
| // appName: app.globalData.env.appName, | |||||
| form: { | |||||
| enterpriseName: '', | |||||
| legalName: '', | |||||
| identificationNumber: '' | |||||
| }, | |||||
| isForm: false, | |||||
| windowHeight: null, | |||||
| name: '' | |||||
| }; | |||||
| }, | |||||
| async onLoad() { | |||||
| const res = uni.getSystemInfoSync(); | |||||
| this.setData({ | |||||
| windowHeight: res.windowHeight | |||||
| }); | |||||
| }, | |||||
| async onShow() {}, | |||||
| methods: { | |||||
| // 返回首页企业 | |||||
| onClickLeft() { | |||||
| uni.navigateTo({ | |||||
| url: '/packages/enterprise/pages/relation-enterprise/relation-enterprise' | |||||
| }); | |||||
| }, | |||||
| // 输入框重新赋值 | |||||
| headleInput(event) { | |||||
| let { | |||||
| value | |||||
| } = event.detail; | |||||
| const { | |||||
| name | |||||
| } = event.currentTarget.dataset; | |||||
| this.form[name] = value; | |||||
| this.setData({ | |||||
| ...this.form, | |||||
| [name]: this[name] | |||||
| }); | |||||
| const { | |||||
| enterpriseName, | |||||
| identificationNumber, | |||||
| legalName | |||||
| } = this.form; | |||||
| if (enterpriseName !== '' && identificationNumber !== '' && legalName !== '') { | |||||
| this.setData({ | |||||
| isForm: true | |||||
| }); | |||||
| } else { | |||||
| this.setData({ | |||||
| isForm: false | |||||
| }); | |||||
| } | |||||
| }, | |||||
| async submit() { | |||||
| const { | |||||
| enterpriseName, | |||||
| identificationNumber, | |||||
| legalName | |||||
| } = this.form; | |||||
| if (enterpriseName === '' || identificationNumber === '' || legalName === '') { | |||||
| uni.showToast({ | |||||
| title: enterpriseName === '' ? | |||||
| '企业名称不能为空' : legalName === '' ? | |||||
| '法人姓名不能为空' : identificationNumber === '' ? | |||||
| '企业社会统一信用代码不能为空' : '其中一项不能为空', | |||||
| icon: 'none' | |||||
| }); | |||||
| return false; | |||||
| } | |||||
| let params = { | |||||
| enterpriseName, | |||||
| legalName, | |||||
| identificationNumber | |||||
| }; | |||||
| const res = await enterprise.createAffiliatedEnterprise(params); | |||||
| if (res.code !== 0) { | |||||
| uni.showToast({ | |||||
| title: '添加关联企业失败', | |||||
| icon: 'none' | |||||
| }); | |||||
| return; | |||||
| } | |||||
| uni.showToast({ | |||||
| title: '添加企业成功', | |||||
| icon: 'none' | |||||
| }); | |||||
| uni.redirectTo({ | |||||
| url: '../relation-enterprise/relation-enterprise' | |||||
| }); | |||||
| //获取已经打开的页面的数组 | |||||
| var pages = getCurrentPages(); | |||||
| //获取上一个页面的所有的方法和data中的数据 | |||||
| var lastpage = pages[pages.length - 2]; | |||||
| lastpage.getEnterpriseList(); | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| .create-enterprise { | |||||
| padding: 136rpx 40rpx; | |||||
| } | |||||
| .border { | |||||
| padding: 42rpx 0; | |||||
| border-bottom: 1px solid #efefef; | |||||
| } | |||||
| .create-enterprise-title { | |||||
| font-size: 28rpx; | |||||
| font-weight: 400; | |||||
| color: #333333; | |||||
| } | |||||
| .create-enterprise-input { | |||||
| margin-top: 24rpx; | |||||
| } | |||||
| .ml-10 { | |||||
| margin-left: 10px; | |||||
| } | |||||
| .enterprise-button { | |||||
| padding: 25rpx 36rpx; | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,340 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <custom-nav-bar position="fixed" color="black" left-text="诉求详情" left-arrow border /> | |||||
| <view class="myAppeal"> | |||||
| <!-- 内容部分 --> | |||||
| <view class="myAppeal-conent"> | |||||
| <view class="godd-replay-head"> | |||||
| <image src="/static/packages/enterprise/image/my-appeal.png" mode="aspectFill" /> | |||||
| <text class="myAppeal-head-title">{{ List.enterpriseName }}</text> | |||||
| </view> | |||||
| <view class="myAppeal-flex"> | |||||
| <block v-for="(type, index) in typeList" :key="index"> | |||||
| <view v-if="List.appealType + '' === type.value" class="myAppeal-type" | |||||
| :style="'background-color: ' + type.cssClass + ';'">{{ type.label }}</view> | |||||
| </block> | |||||
| <view> | |||||
| <text class="myAppeal-conent-block">{{ toods.getDateTime(List.createTime, 2) }}</text> | |||||
| <block v-for="(state, index) in statusList" :key="index"> | |||||
| <text v-if="List.appealProcessStatus + '' === state.value" | |||||
| class="myAppeal-conent-bg myAppeal-conent-block" :style="'background-color: ' + state.cssClass + ';'"> | |||||
| {{ state.label }} | |||||
| </text> | |||||
| </block> | |||||
| </view> | |||||
| </view> | |||||
| <view class="myAppeal-title mt-21 uniline">{{ List.appealTitle }}</view> | |||||
| <view class="myAppeal-subheading"> | |||||
| <rich-text :nodes="List.appealContent" /> | |||||
| </view> | |||||
| <view class="myAppeal-imgage" v-if="List.appealEnclosure"> | |||||
| <image mode="aspectFill" data-name="appealEnclosure" @tap="viewImage" :data-item="item" :src="item" | |||||
| v-for="(item, index) in List.appealEnclosure" :key="index"></image> | |||||
| </view> | |||||
| <view class="myAppeal-conent-block mt-21" v-if="List.appealCurrentLocation !== null"> | |||||
| {{ List.appealCurrentLocation }} | |||||
| </view> | |||||
| <!-- 判断是否有回复信息 --> | |||||
| <block v-if="List.perfectReplyFlag === 1"> | |||||
| <view class="good-reply-title"> | |||||
| <text>处理过程</text> | |||||
| </view> | |||||
| <view class="myAppeal-bg"> | |||||
| <view> | |||||
| <view class="flex flex-v-center"> | |||||
| <image src="/static/images/ic-success.png" mode="aspectFill"></image> | |||||
| <text>{{ List.nickName || '' }}</text> | |||||
| </view> | |||||
| </view> | |||||
| <view class="myAppeal-bg-conent"> | |||||
| <rich-text :nodes="List.appealReply || ''" /> | |||||
| <view class="myAppeal-conent-block mt-16">{{ toods.getDateTime(List.replyTime, 2) }}</view> | |||||
| </view> | |||||
| </view> | |||||
| </block> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <!-- <script module="toods" lang="wxs" src="@/wxs/util.wxs"></script> --> | |||||
| <script> | |||||
| // TODO: 企业-我的诉求详情 + 民生-我的调解详情此页面复用 | |||||
| import * as enterprise from '@/api/enterprise'; | |||||
| import * as publicApi from '@/api/publicApi'; | |||||
| import * as peopleApi from '@/api/peopleApi'; | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| option: {}, | |||||
| type: { | |||||
| value: '', | |||||
| cssClass: '', | |||||
| label: '' | |||||
| }, | |||||
| status: 'appeal_process_status', | |||||
| typeList: [], | |||||
| statusList: [], | |||||
| List: null, | |||||
| state: { | |||||
| value: '', | |||||
| cssClass: '', | |||||
| label: '' | |||||
| } | |||||
| }; | |||||
| }, | |||||
| async onLoad(option) { | |||||
| // TODO: key:是区分企业-我的诉求详情和民生-我的调解详情 key默认为 1:企业 | |||||
| this.setData({ | |||||
| option | |||||
| }); | |||||
| await this.getAppealApi(); | |||||
| await this.getTypeList(); | |||||
| await this.getStateList(); | |||||
| }, | |||||
| methods: { | |||||
| // 返回我的诉求 | |||||
| onClickLeft() { | |||||
| uni.navigateTo({ | |||||
| url: `/packages/enterprise/pages/my-appeal/my-appeal?name=${this.option.name}` | |||||
| }); | |||||
| }, | |||||
| // 获取类型字典 | |||||
| async getTypeList() { | |||||
| const res = await publicApi.getDictDataApi({ | |||||
| dictType: this.type | |||||
| }); | |||||
| if (res.data) { | |||||
| this.setData({ | |||||
| typeList: res.data.list | |||||
| }); | |||||
| } | |||||
| }, | |||||
| // 获取状态字典 | |||||
| async getStateList() { | |||||
| const res = await publicApi.getDictDataApi({ | |||||
| dictType: this.status | |||||
| }); | |||||
| if (res.data) { | |||||
| this.setData({ | |||||
| statusList: res.data.list | |||||
| }); | |||||
| } | |||||
| }, | |||||
| // 查看图片 | |||||
| viewImage(event) { | |||||
| const url = event.currentTarget.dataset.item; | |||||
| const name = event.currentTarget.dataset.name; | |||||
| uni.previewImage({ | |||||
| current: url, | |||||
| // 当前显示图片的http链接 | |||||
| urls: this.List[name] // 需要预览的图片http链接列表 | |||||
| }); | |||||
| }, | |||||
| // 获得诉求 | |||||
| async getAppealApi() { | |||||
| let res = await enterprise.getAppealIdApi({ | |||||
| id: this.option.id | |||||
| }); | |||||
| if (res.data) { | |||||
| this.setData({ | |||||
| List: res.data | |||||
| }); | |||||
| } | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| page { | |||||
| background-color: #fff; | |||||
| } | |||||
| .mt-16 { | |||||
| margin-top: 16rpx; | |||||
| } | |||||
| .mt-20 { | |||||
| margin-top: 40rpx; | |||||
| } | |||||
| .mt-21 { | |||||
| margin-top: 21rpx; | |||||
| } | |||||
| .myAppeal { | |||||
| padding: 37rpx 32rpx 40rpx 40rpx; | |||||
| } | |||||
| .myAppeal>.myAppeal-title { | |||||
| position: relative; | |||||
| width: 175rpx; | |||||
| height: 10rpx; | |||||
| background: #ffe5e9; | |||||
| border-radius: 2rpx; | |||||
| line-height: 0; | |||||
| margin-top: 10px; | |||||
| text { | |||||
| position: absolute; | |||||
| top: -5px; | |||||
| text-align: center; | |||||
| width: 100%; | |||||
| font-size: 36rpx; | |||||
| font-weight: 500; | |||||
| color: #000000; | |||||
| } | |||||
| } | |||||
| .myAppeal-conent { | |||||
| height: 100%; | |||||
| &:not(:first-child) { | |||||
| margin-top: 37rpx; | |||||
| } | |||||
| .godd-replay-head { | |||||
| display: flex; | |||||
| .myAppeal-head-title { | |||||
| font-size: 32rpx; | |||||
| font-weight: 500; | |||||
| color: #fe3b53; | |||||
| } | |||||
| image { | |||||
| width: 44rpx; | |||||
| height: 44rpx; | |||||
| border-radius: 50%; | |||||
| margin-right: 24rpx; | |||||
| } | |||||
| } | |||||
| .myAppeal-flex { | |||||
| margin-top: 32rpx; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: space-between; | |||||
| .myAppeal-type { | |||||
| width: 88rpx; | |||||
| height: 38rpx; | |||||
| line-height: 38rpx; | |||||
| text-align: center; | |||||
| color: #fff; | |||||
| box-shadow: 2px 2px 2px 0px rgba(12, 181, 207, 0.1); | |||||
| border-radius: 8rpx; | |||||
| } | |||||
| .myAppeal-conent-title { | |||||
| font-size: 32rpx; | |||||
| font-weight: 400; | |||||
| color: #fe3b53; | |||||
| } | |||||
| .myAppeal-conent-bg { | |||||
| padding: 5rpx 20rpx; | |||||
| height: 38rpx; | |||||
| text-align: center; | |||||
| color: #fff; | |||||
| line-height: 38rpx; | |||||
| box-shadow: 2px 2px 2px 0px rgba(254, 61, 85, 0.1); | |||||
| border-radius: 500rpx; | |||||
| margin-left: 39rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| .myAppeal-conent-block { | |||||
| font-size: 24rpx; | |||||
| font-weight: 400; | |||||
| color: #999999; | |||||
| } | |||||
| .myAppeal-title { | |||||
| font-size: 32rpx; | |||||
| font-weight: 500; | |||||
| color: #000000; | |||||
| } | |||||
| .myAppeal-subheading { | |||||
| font-size: 28rpx; | |||||
| font-weight: 400; | |||||
| color: #333333; | |||||
| margin-top: 24rpx; | |||||
| } | |||||
| .myAppeal-imgage { | |||||
| margin-top: 24rpx; | |||||
| display: grid; | |||||
| grid-template-columns: 1fr 1fr 1fr; | |||||
| image { | |||||
| width: 222rpx; | |||||
| height: 222rpx; | |||||
| border-radius: 10rpx; | |||||
| margin-right: 10rpx; | |||||
| } | |||||
| } | |||||
| .good-reply-title { | |||||
| position: relative; | |||||
| width: 175rpx; | |||||
| height: 10rpx; | |||||
| background: #ffced6; | |||||
| border-radius: 2rpx; | |||||
| line-height: 0; | |||||
| margin-top: 60rpx; | |||||
| text { | |||||
| position: absolute; | |||||
| top: -5px; | |||||
| text-align: center; | |||||
| width: 100%; | |||||
| font-size: 36rpx; | |||||
| font-weight: 500; | |||||
| color: #000000; | |||||
| } | |||||
| } | |||||
| .myAppeal-bg { | |||||
| width: 678rpx; | |||||
| height: 232rpx; | |||||
| border-radius: 8px; | |||||
| margin-top: 50rpx; | |||||
| image { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| margin-right: 8rpx; | |||||
| } | |||||
| text { | |||||
| font-size: 28rpx; | |||||
| font-weight: 400; | |||||
| color: #fe3b53; | |||||
| } | |||||
| .myAppeal-bg-conent { | |||||
| margin-top: 16rpx; | |||||
| margin-left: 30rpx; | |||||
| padding: 20rpx 24rpx 20rpx 28rpx; | |||||
| font-size: 28rpx; | |||||
| font-weight: 400; | |||||
| color: #333333; | |||||
| border-radius: 8rpx; | |||||
| background: #f7f7f7; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,72 @@ | |||||
| <template> | |||||
| <view> | |||||
| <custom-nav-bar position="fixed" color="black" :left-text="options.name" left-arrow border /> | |||||
| <view class="list flex flex-center flex-col"> | |||||
| <image class="qr" :src="recursionObj.icon" :show-menu-by-longpress="true"></image> | |||||
| <view class="qr-text">{{ recursionObj.remark }}</view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| import * as publicApi from '@/api/publicApi'; | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| recursionObj: { | |||||
| icon: '', | |||||
| remark: '' | |||||
| }, | |||||
| options: { | |||||
| name: '' | |||||
| } | |||||
| }; | |||||
| } | |||||
| /** | |||||
| * 生命周期函数--监听页面加载 | |||||
| */ | |||||
| , | |||||
| onLoad(options) { | |||||
| this.options = options | |||||
| this.recursionApi(); | |||||
| }, | |||||
| methods: { | |||||
| async recursionApi() { | |||||
| const { | |||||
| data | |||||
| } = await publicApi.recursionApi({ | |||||
| bannerType: this.options.bannerType, | |||||
| parentId: this.options.parentId | |||||
| }); | |||||
| if (data.length) { | |||||
| this.recursionObj = data[0] | |||||
| } | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| .list { | |||||
| margin-top: 207rpx; | |||||
| width: 100%; | |||||
| .qr { | |||||
| width: 576rpx; | |||||
| height: 576rpx; | |||||
| } | |||||
| .qr-text { | |||||
| margin-top: 55rpx; | |||||
| width: 543rpx; | |||||
| font-size: 30rpx; | |||||
| font-weight: 400; | |||||
| color: #222222; | |||||
| line-height: 40rpx; | |||||
| text-align: justify; | |||||
| text-align-last: center; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,199 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <block v-if="options.name === '便民办事'"> | |||||
| <custom-nav-bar position="fixed" color="black" :left-text="options.name" left-arrow /> | |||||
| <view class="second-model"> | |||||
| <view class="second-line flex flex-v-center flex-between" :data-item="item" @tap="headleDetails" | |||||
| v-for="(item, index) in newsPageList" :key="index"> | |||||
| <view class="line-name flex1 line-text-1">{{ item.title }}</view> | |||||
| <image class="line-you" src="/static/images/ic-you.png"></image> | |||||
| </view> | |||||
| </view> | |||||
| </block> | |||||
| <block v-if="options.name === '政策推送'"> | |||||
| <custom-nav-bar :left-text="options.name" left-arrow /> | |||||
| <image class="second-header" :src="recursionObj.icon"></image> | |||||
| <view class="second-section"> | |||||
| <view class="section-item flex flex-between" :data-item="item" @tap="headleDetails" | |||||
| v-for="(item, index) in newsPageList" :key="index"> | |||||
| <view class="section-item-left flex1 flex flex-between flex-col"> | |||||
| <view class="consult-content-title text-line-2">{{ item.title }}</view> | |||||
| <view class="consult-content-block"> | |||||
| <text class="block-first">{{ toods.getDateTime(item.createTime) }}</text> | |||||
| <text>{{ item.publisher }}</text> | |||||
| </view> | |||||
| </view> | |||||
| <image class="section-item-right" :src="item.pics" mode="aspectFill"></image> | |||||
| </view> | |||||
| </view> | |||||
| </block> | |||||
| <!-- 此处归属于生活模块 --> | |||||
| <block v-if="options.pageType === '1'"> | |||||
| <custom-nav-bar position="fixed" color="black" :left-text="options.name" left-arrow /> | |||||
| <view class="second-model"> | |||||
| <view class="second-line flex flex-v-center flex-between" :data-item="item" @tap="headleDetails2" | |||||
| v-for="(item, index) in newsPageList" :key="index"> | |||||
| <view class="line-name flex1 line-text-1">{{ item.title }}</view> | |||||
| <image class="line-you" src="/static/images/ic-you.png"></image> | |||||
| </view> | |||||
| </view> | |||||
| </block> | |||||
| </view> | |||||
| </template> | |||||
| <!-- <script module="toods" lang="wxs" src="@/wxs/util.wxs"></script> --> | |||||
| <script> | |||||
| // const app = getApp(); | |||||
| // const { | |||||
| // peopleApi, | |||||
| // publicApi | |||||
| // } = app.globalData.api; | |||||
| import * as publicApi from '@/api/publicApi'; | |||||
| import * as peopleApi from '@/api/peopleApi'; | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| options: { | |||||
| name: '', | |||||
| pageType: '' | |||||
| }, | |||||
| recursionObj: { | |||||
| icon: '' | |||||
| }, | |||||
| newsPageList: [] | |||||
| }; | |||||
| }, | |||||
| onLoad(options) { | |||||
| this.options = options | |||||
| this.newsPageApi(); | |||||
| if (this.options.name === '政策推送') { | |||||
| this.recursionApi(); | |||||
| } | |||||
| }, | |||||
| methods: { | |||||
| async newsPageApi() { | |||||
| const param = { | |||||
| pageNo: 1, | |||||
| pageSize: 99, | |||||
| categoryId: this.options.categoryId | |||||
| }; | |||||
| const { | |||||
| data: { | |||||
| list = [] | |||||
| } | |||||
| } = await peopleApi.newsPageApi(param); | |||||
| if (list.length) { | |||||
| this.newsPageList = list | |||||
| } | |||||
| }, | |||||
| async recursionApi() { | |||||
| const res = await publicApi.recursionApi({ | |||||
| bannerType: 3, | |||||
| parentId: this.options.parentId | |||||
| }); | |||||
| if (res.data) { | |||||
| this.recursionObj = res.data[0] | |||||
| } | |||||
| }, | |||||
| // 进入详情页 | |||||
| headleDetails(event) { | |||||
| const { | |||||
| item | |||||
| } = event.currentTarget.dataset; | |||||
| uni.navigateTo({ | |||||
| url: `/packages/public/pages/details/details-no-ops?name=${this.options.name}详情&referId=${item.id}` | |||||
| }); | |||||
| }, | |||||
| headleDetails2(event) { | |||||
| const { | |||||
| item | |||||
| } = event.currentTarget.dataset; | |||||
| uni.navigateTo({ | |||||
| url: `/packages/public/pages/details/details-no-ops?name=介休政务百科-详情&referId=${item.id}` | |||||
| }); | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| // 办事指南 start | |||||
| .second-model { | |||||
| margin-top: 32rpx; | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| padding: 0 12rpx; | |||||
| .second-line { | |||||
| height: 120rpx; | |||||
| border-bottom: 1px solid #efefef; | |||||
| position: relative; | |||||
| .line-name { | |||||
| font-size: 34rpx; | |||||
| font-weight: 400; | |||||
| color: #007bd7; | |||||
| line-height: 34rpx; | |||||
| margin-left: 42rpx; | |||||
| } | |||||
| .line-you { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| // 政策推送 start | |||||
| .second-header { | |||||
| width: 100%; | |||||
| height: 330rpx; | |||||
| } | |||||
| .second-section { | |||||
| margin-top: 50rpx; | |||||
| padding: 0 40rpx 0; | |||||
| .section-item { | |||||
| padding: 24rpx 0; | |||||
| border-bottom: 1px solid #e1e1e1; | |||||
| &:first-child { | |||||
| padding-top: 0; | |||||
| } | |||||
| .section-item-left { | |||||
| margin-right: 50rpx; | |||||
| .consult-content-title { | |||||
| font-size: 32rpx; | |||||
| font-weight: 400; | |||||
| color: #333333; | |||||
| } | |||||
| .consult-content-block { | |||||
| font-size: 24rpx; | |||||
| font-weight: 400; | |||||
| color: #999999; | |||||
| .block-first { | |||||
| margin-right: 18rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| .section-item-right { | |||||
| width: 200rpx; | |||||
| height: 150rpx; | |||||
| border-radius: 8rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,228 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <custom-nav-bar position="fixed" color="black" :left-text="options.name" left-arrow /> | |||||
| <view class="second-model" v-if="options.name === '办事指南'"> | |||||
| <view class="second-line flex flex-v-center flex-between" :style="itemName.cssStyle" | |||||
| v-for="(itemName, idx) in recursionList" :key="idx"> | |||||
| <navigator v-if="itemName.clickUrl" class="line-navigator" :url="toods.updateQuery(itemName.clickUrl, itemName)" | |||||
| hover-class="none"></navigator> | |||||
| <image class="line-img" :src="itemName.icon"></image> | |||||
| <view class="line-name flex1">{{ itemName.name }}</view> | |||||
| <image class="line-you" src="/static/images/ic-you.png"></image> | |||||
| </view> | |||||
| </view> | |||||
| <view class="two-model flex flex-v-center flex-between" v-if="options.name === '事务办理'"> | |||||
| <view class="second-line flex flex-col line1" :style="itemName.cssStyle" v-for="(itemName, idx) in recursionList" | |||||
| :key="idx"> | |||||
| <navigator v-if="itemName.clickUrl" class="line-navigator" :url="toods.updateQuery(itemName.clickUrl, itemName)" | |||||
| hover-class="none"></navigator> | |||||
| <image class="line-bg" :src="itemName.icon"></image> | |||||
| <view class="line-title">{{ itemName.name }}</view> | |||||
| <view v-if="itemName.remark" class="line-msg">{{ itemName.remark }}</view> | |||||
| </view> | |||||
| </view> | |||||
| <view class="three-model" v-if="options.name === '便民小知识'"> | |||||
| <view class="second-line flex flex-v-center flex-between" :style="itemName.cssStyle" | |||||
| v-for="(itemName, idx) in recursionList" :key="idx"> | |||||
| <navigator v-if="itemName.clickUrl" class="line-navigator" :url="toods.updateQuery(itemName.clickUrl, itemName)" | |||||
| hover-class="none"></navigator> | |||||
| <view class="line-name flex1 line-text-1">{{ itemName.name }}</view> | |||||
| <image class="line-you" src="/static/images/ic-you.png"></image> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <!-- <script module="toods" lang="wxs" src="@/wxs/util.wxs"></script> --> | |||||
| <script> | |||||
| // const app = getApp(); | |||||
| // const { | |||||
| // publicApi | |||||
| // } = app.globalData.api; | |||||
| import * as publicApi from '@/api/publicApi'; | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| options: { | |||||
| name: '' | |||||
| }, | |||||
| recursionList: [] | |||||
| }; | |||||
| }, | |||||
| onLoad(options) { | |||||
| console.log(options) | |||||
| this.options = options | |||||
| this.recursionApi(); | |||||
| }, | |||||
| methods: { | |||||
| async recursionApi() { | |||||
| const { | |||||
| bannerType, | |||||
| parentId | |||||
| } = this.options; | |||||
| const res = await publicApi.recursionApi({ | |||||
| bannerType, | |||||
| parentId | |||||
| }); | |||||
| if (res.data) { | |||||
| this.recursionList = res.data | |||||
| } | |||||
| }, | |||||
| // 通用函数 | |||||
| generalFunction(res) { | |||||
| if (res.data && res.data.createTime) { | |||||
| // res.data.createTime = app.globalData.util.timeFormat(res.data.createTime); | |||||
| if (res.data.content) { | |||||
| res.data.content = res.data.content | |||||
| .replace(/<img/gi, '<img style="max-width:100%;height:auto;display:block" ') | |||||
| .replace(/</g, '<') | |||||
| .replace(/>/g, '>') | |||||
| .replace(/&nbsp;/g, ' ') | |||||
| .replace(/"/g, '"'); | |||||
| } | |||||
| return res.data; | |||||
| } | |||||
| return {}; | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| .line-navigator { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| position: absolute; | |||||
| z-index: 10; | |||||
| top: 0; | |||||
| left: 0; | |||||
| } | |||||
| .second-model { | |||||
| margin-top: 32rpx; | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| padding: 0 12rpx; | |||||
| .second-line { | |||||
| height: 120rpx; | |||||
| border-bottom: 1px solid #efefef; | |||||
| position: relative; | |||||
| .line-img { | |||||
| width: 70rpx; | |||||
| height: 70rpx; | |||||
| border-radius: 50%; | |||||
| } | |||||
| .line-bg { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| position: absolute; | |||||
| z-index: -1; | |||||
| top: 0; | |||||
| left: 0; | |||||
| } | |||||
| .line-name { | |||||
| font-size: 34rpx; | |||||
| font-weight: 400; | |||||
| color: #333333; | |||||
| line-height: 34rpx; | |||||
| margin-left: 42rpx; | |||||
| } | |||||
| .line-you { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| .two-model { | |||||
| margin-top: 29rpx; | |||||
| flex-wrap: wrap; | |||||
| .second-line { | |||||
| width: 343rpx; | |||||
| height: 110rpx; | |||||
| justify-content: center; | |||||
| padding-left: 39rpx; | |||||
| position: relative; | |||||
| &:not(:first-child) { | |||||
| margin-top: 16rpx; | |||||
| } | |||||
| .line-bg { | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| position: absolute; | |||||
| z-index: -1; | |||||
| top: 0; | |||||
| left: 0; | |||||
| } | |||||
| .line-title { | |||||
| font-size: 40rpx; | |||||
| font-weight: 500; | |||||
| line-height: 32rpx; | |||||
| } | |||||
| .line-msg { | |||||
| margin-top: 21rpx; | |||||
| font-size: 26rpx; | |||||
| font-weight: 400; | |||||
| color: #666666; | |||||
| line-height: 26rpx; | |||||
| } | |||||
| } | |||||
| .line1 { | |||||
| width: 100%; | |||||
| height: 171rpx; | |||||
| .line-title { | |||||
| font-size: 40rpx; | |||||
| font-weight: 500; | |||||
| line-height: 40rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| .three-model { | |||||
| margin-top: 32rpx; | |||||
| width: 100%; | |||||
| height: 100%; | |||||
| padding: 0 12rpx; | |||||
| .second-line { | |||||
| height: 120rpx; | |||||
| border-bottom: 1px solid #efefef; | |||||
| position: relative; | |||||
| .line-name { | |||||
| font-size: 34rpx; | |||||
| font-weight: 400; | |||||
| color: #007bd7; | |||||
| line-height: 34rpx; | |||||
| margin-left: 42rpx; | |||||
| } | |||||
| .line-you { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,444 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <custom-nav-bar position="fixed" color="black" left-text="发布诉求" left-arrow /> | |||||
| <view class="line"></view> | |||||
| <van-notice-bar color="#FF7F34" background="#FEF9F5" text="* 属于必填项" /> | |||||
| <view class="card"> | |||||
| <view class="flex flex-between issue-pd"> | |||||
| <view class="card-title"> | |||||
| 关联企业 | |||||
| <text class="red ml-10">*</text> | |||||
| </view> | |||||
| <view> | |||||
| <text v-if="appealDetails !== null">{{ appealDetails.enterpriseName }}</text> | |||||
| <block v-if="appealDetails === null"> | |||||
| <text class="card-placeholder">您未关联企业,去关联</text> | |||||
| <van-icon @tap.native="headleEnterprise" color="#FE3B53" class="ml-10" name="add-o" size="16px" /> | |||||
| </block> | |||||
| </view> | |||||
| </view> | |||||
| <view class="flex flex-between issue-pd"> | |||||
| <view class="card-title"> | |||||
| 诉求类型 | |||||
| <text class="red ml-10">*</text> | |||||
| </view> | |||||
| <view class="flex"> | |||||
| <picker @change="bindPickerChange" data-name="appealType" data-index="appealTypeIndex" | |||||
| data-list="appealTypeList" range-key="label" :value="value" :range="appealTypeList"> | |||||
| <view class="picker"> | |||||
| <text v-if="form.appealType !== ''" class="card-placeholder" | |||||
| style="color: #000000">{{ appealTypeList[appealTypeIndex].label }}</text> | |||||
| <text v-if="form.appealType === ''" class="card-placeholder" style="color: #999">请选择诉求类型</text> | |||||
| <van-icon color="#FE3B53" class="ml-10" name="arrow-down" size="16px" /> | |||||
| </view> | |||||
| </picker> | |||||
| </view> | |||||
| </view> | |||||
| <view class="issue-pd"> | |||||
| <view class="card-title"> | |||||
| 诉求标题 | |||||
| <text class="red ml-10">*</text> | |||||
| </view> | |||||
| <view class="mt-16"> | |||||
| <input class="card-content" type="text" @input="headleInput" :value="form.appealTitle" data-name="appealTitle" | |||||
| maxlength="30" placeholder="请输入诉求标题,文字不超过30字" /> | |||||
| </view> | |||||
| </view> | |||||
| <view class="issue-pd"> | |||||
| <view class="card-title"> | |||||
| 诉求内容 | |||||
| <text class="red ml-10">*</text> | |||||
| </view> | |||||
| <view class="mt-16"> | |||||
| <textarea class="textarea card-content" :value="form.appealContent" @input="headleInput" | |||||
| data-name="appealContent" maxlength="200" placeholder="请输入诉求内容,文字不超过200字"></textarea> | |||||
| <view class="mt-16"> | |||||
| <van-uploader :file-list="fileList" :deletable="true" @after-read="afterRead" max-count="9" | |||||
| @delete="imageDelete"> | |||||
| <van-icon name="/packages/enterprise/image/camera.png" size="80px" /> | |||||
| </van-uploader> | |||||
| <view class="mt-16 card-block">附件不超过9个,每个大小不超过1M</view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class="issue-pd"> | |||||
| <view class="card-title"> | |||||
| 姓名 | |||||
| <text class="red ml-10">*</text> | |||||
| </view> | |||||
| <view class="mt-16"> | |||||
| <input class="flex1 textarea-class" @input="headleInput" v-model="form.name" type="text" data-name="name" | |||||
| placeholder="请输入姓名" /> | |||||
| </view> | |||||
| </view> | |||||
| <view class="issue-pd"> | |||||
| <view class="card-title">当前位置</view> | |||||
| <view class="mt-16 flex flex-between"> | |||||
| <input style="width: 90%" class="card-content" type="text" :value="form.appealCurrentLocation" disabled | |||||
| maxlength="30" placeholder="请选择地址" /> | |||||
| <van-icon name="location-o" @click="headleAdress" color="#FE3B53" size="16px" /> | |||||
| </view> | |||||
| </view> | |||||
| <view class="flex flex-between issue-pd"> | |||||
| <view class="card-title">同意对外展示我的诉求</view> | |||||
| <view class="flex"> | |||||
| <picker @change="bindPickerChange" data-name="appealShowFlag" data-index="appealShowFlagIndex" | |||||
| data-list="agreeList" range-key="label" :value="value" :range="agreeList"> | |||||
| <view class="picker"> | |||||
| <text v-if="form.appealShowFlag !== ''" class="card-placeholder" | |||||
| style="color: #000000">{{ agreeList[appealShowFlagIndex].label }}</text> | |||||
| <text v-if="form.appealShowFlag === ''" class="card-placeholder" style="color: #999">请选择诉求类型</text> | |||||
| <van-icon color="#FE3B53" class="ml-10" name="arrow-down" size="16px" /> | |||||
| </view> | |||||
| </picker> | |||||
| </view> | |||||
| </view> | |||||
| <view class="mt-50"> | |||||
| <van-button @click="submit" block color="#FE3B53">提交信息</van-button> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| // const app = getApp(); | |||||
| // const { enterprise, publicApi } = app.globalData.api; | |||||
| import * as publicApi from '@/api/publicApi'; | |||||
| import * as enterprise from '@/api/enterprise'; | |||||
| export default { | |||||
| components: {}, | |||||
| data() { | |||||
| return { | |||||
| userInfoCount: null, | |||||
| userId: uni.getStorageSync('userInfoData').userId, | |||||
| fileList: [], | |||||
| appealEnclosure: [], | |||||
| appealTypeList: [], | |||||
| agreeList: [{ | |||||
| label: '是', | |||||
| value: 1 | |||||
| }, | |||||
| { | |||||
| label: '否', | |||||
| value: 0 | |||||
| } | |||||
| ], | |||||
| enterpriseList: [], | |||||
| enterpriseIndex: '', | |||||
| appealTypeIndex: '', | |||||
| appealShowFlagIndex: 0, | |||||
| appealDetails: null, | |||||
| form: { | |||||
| appealShowFlag: 1, | |||||
| enterpriseId: '', | |||||
| appealType: '', | |||||
| appealTitle: '', | |||||
| appealContent: '', | |||||
| // appealCurrentLocation: app.globalData.config.locationInfo.name, | |||||
| name: '' | |||||
| }, | |||||
| checked: false, | |||||
| name: '', | |||||
| value: '', | |||||
| label: '' | |||||
| }; | |||||
| }, | |||||
| async onLoad(optons) { | |||||
| if (Object.keys(optons).length) { | |||||
| this.getEnterprise(optons.id); | |||||
| } | |||||
| }, | |||||
| async onShow() { | |||||
| const userInfoCount = uni.getStorageSync('userInfoCount'); | |||||
| this.setData({ | |||||
| userInfoCount | |||||
| }); | |||||
| this.getEnterpriseList(); | |||||
| this.getAppelaTypeList(); | |||||
| const userInfoData = uni.getStorageSync('userInfoData'); | |||||
| this.setData({ | |||||
| userId: userInfoData.userId | |||||
| }); | |||||
| }, | |||||
| methods: { | |||||
| // 获取企业列表 | |||||
| async getEnterpriseList() { | |||||
| const res = await enterprise.getEnterpriseListApi({ | |||||
| userId: this.userId | |||||
| }); | |||||
| if (res.data) { | |||||
| this.setData({ | |||||
| enterpriseList: res.data.list | |||||
| }); | |||||
| } | |||||
| }, | |||||
| // 字典请求-诉求类型 | |||||
| async getAppelaTypeList() { | |||||
| const res = await publicApi.getDictDataApi({ | |||||
| dictType: 'appeal_type' | |||||
| }); | |||||
| if (res.data) { | |||||
| this.setData({ | |||||
| appealTypeList: res.data.list | |||||
| }); | |||||
| } | |||||
| }, | |||||
| // 跳转关联企业页面 | |||||
| headleEnterprise() { | |||||
| // 暂时去除跳转实名认证 | |||||
| // const { | |||||
| // userInfoCount | |||||
| // } = this.data; | |||||
| // if (userInfoCount.realNameAuthFlag === 1) { | |||||
| uni.navigateTo({ | |||||
| url: `/packages/enterprise/pages/relation-enterprise/relation-enterprise` | |||||
| }); | |||||
| // } else if (userInfoCount.realNameAuthFlag === 0) { | |||||
| // wx.navigateTo({ | |||||
| // url: `/packages/enterprise/pages/enterprise-certification/enterprise-certification`, | |||||
| // }); | |||||
| // } | |||||
| }, | |||||
| // 选择对应的诉求类型 | |||||
| bindPickerChange: function(e) { | |||||
| let { | |||||
| name | |||||
| } = e.target.dataset; | |||||
| const { | |||||
| index | |||||
| } = e.target.dataset; | |||||
| const Listname = e.target.dataset.list; | |||||
| const List = this[Listname]; | |||||
| name = `form.${name}`; | |||||
| this.setData({ | |||||
| [index]: e.detail.value, | |||||
| [name]: Listname === 'enterpriseList' ? List[e.detail.value].id : List[e.detail.value].value | |||||
| }); | |||||
| }, | |||||
| // 清楚对应的image图片 | |||||
| imageDelete(event) { | |||||
| const { | |||||
| index | |||||
| } = event.detail; | |||||
| const Image = this.fileList; | |||||
| Image.splice(index, 1); | |||||
| this.setData({ | |||||
| fileList: Image | |||||
| }); | |||||
| }, | |||||
| // 上传图片 | |||||
| async afterRead(event) { | |||||
| const { | |||||
| file | |||||
| } = event.detail; | |||||
| // const res = await app.globalData.upload({ | |||||
| // file | |||||
| // }); | |||||
| if (res.code !== 0) { | |||||
| uni.showToast({ | |||||
| title: '上传图片失败', | |||||
| icon: 'none' | |||||
| }); | |||||
| return false; | |||||
| } | |||||
| const { | |||||
| fileList | |||||
| } = this; | |||||
| const { | |||||
| appealEnclosure | |||||
| } = this; | |||||
| const url = res.data; | |||||
| fileList.push({ | |||||
| url | |||||
| }); | |||||
| appealEnclosure.push(url); | |||||
| this.setData({ | |||||
| fileList, | |||||
| appealEnclosure | |||||
| }); | |||||
| }, | |||||
| // 输入框重新赋值 | |||||
| headleInput(event) { | |||||
| const { | |||||
| value | |||||
| } = event.detail; | |||||
| const { | |||||
| name | |||||
| } = event.currentTarget.dataset; | |||||
| this.form[name] = value; | |||||
| this.setData({ | |||||
| ...this.form, | |||||
| [name]: this[name] | |||||
| }); | |||||
| console.log(this.form); | |||||
| }, | |||||
| // 选择地址 | |||||
| headleAdress() { | |||||
| this.setData({ | |||||
| form: { | |||||
| ...this.form, | |||||
| // appealCurrentLocation: app.globalData.config.locationInfo.name | |||||
| } | |||||
| }); | |||||
| }, | |||||
| // 获得企业详情 | |||||
| async getEnterprise(id) { | |||||
| const res = await enterprise.getEnterpriseApi(id); | |||||
| if (res.data) { | |||||
| this.setData({ | |||||
| ...this, | |||||
| appealDetails: res.data, | |||||
| form: { | |||||
| ...this.form, | |||||
| enterpriseId: res.data.id | |||||
| } | |||||
| }); | |||||
| } | |||||
| }, | |||||
| // 提交form表单 | |||||
| async submit() { | |||||
| const { | |||||
| enterpriseId, | |||||
| appealType, | |||||
| appealTitle, | |||||
| appealContent, | |||||
| appealCurrentLocation, | |||||
| name | |||||
| } = this.form; | |||||
| const params = { | |||||
| enterpriseId, | |||||
| appealType, | |||||
| appealTitle, | |||||
| appealContent, | |||||
| appealCurrentLocation, | |||||
| appealProcessStatus: 1, | |||||
| appealShowFlag: 1, | |||||
| appealEnclosure: this.appealEnclosure, | |||||
| name | |||||
| }; | |||||
| if (enterpriseId === '' || appealType === '' || appealTitle === '' || appealContent === '') { | |||||
| /* eslint-disable*/ | |||||
| uni.showToast({ | |||||
| title: enterpriseId == '' ? | |||||
| '请选择关联企业' : appealType == '' ? | |||||
| '请选择选择诉求类型' : appealType == '' ? | |||||
| '请输入诉求标题' : appealType == '' ? | |||||
| '请输入诉求内容' : '带*属于必填项', | |||||
| icon: 'none' | |||||
| }); | |||||
| return false; | |||||
| } | |||||
| const res = await enterprise.createAppealApi(params); | |||||
| if (res.code !== 0) { | |||||
| uni.showToast({ | |||||
| title: res.msg, | |||||
| icon: 'none' | |||||
| }); | |||||
| return; | |||||
| } | |||||
| uni.showToast({ | |||||
| title: '发布诉求成功', | |||||
| icon: 'none' | |||||
| }); | |||||
| uni.redirectTo({ | |||||
| url: '/packages/enterprise/pages/my-appeal/my-appeal' | |||||
| }); | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| .ml-10 { | |||||
| margin-left: 20rpx; | |||||
| } | |||||
| .mt-16 { | |||||
| margin-top: 16rpx; | |||||
| } | |||||
| .mt-50 { | |||||
| margin-top: 50rpx; | |||||
| } | |||||
| .mt-100 { | |||||
| margin-top: 100rpx; | |||||
| } | |||||
| page { | |||||
| background-color: #fff; | |||||
| } | |||||
| .van-notice-bar { | |||||
| --notice-bar-padding: 0 40rpx; | |||||
| } | |||||
| .line { | |||||
| width: 100%; | |||||
| height: 36rpx; | |||||
| } | |||||
| .card { | |||||
| padding: 0rpx 40rpx 40rpx 40rpx; | |||||
| } | |||||
| .issue-pd { | |||||
| align-items: center; | |||||
| padding: 42rpx 0; | |||||
| border-bottom: 1px solid #efefef; | |||||
| } | |||||
| .card-title { | |||||
| font-size: 28rpx; | |||||
| font-weight: 400; | |||||
| color: #333333; | |||||
| } | |||||
| .card-content { | |||||
| font-size: 32rpx; | |||||
| font-weight: 400; | |||||
| } | |||||
| .card-placeholder { | |||||
| font-size: 32rpx; | |||||
| font-weight: 400; | |||||
| color: #999999; | |||||
| } | |||||
| .card-block { | |||||
| font-size: 26rpx; | |||||
| font-weight: 400; | |||||
| color: #999999; | |||||
| } | |||||
| .textarea { | |||||
| width: 100%; | |||||
| height: 180rpx; | |||||
| line-height: 40rpx; | |||||
| } | |||||
| .ic-check { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| margin-right: 20rpx; | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,345 @@ | |||||
| <template> | |||||
| <view> | |||||
| <custom-nav-bar position="fixed" color="black" left-text="我的诉求" left-arrow border /> | |||||
| <scroll-view :scroll-y="true" :style="'height:' + (windowHeight + 'px')" @scrolltolower="headleTopLower"> | |||||
| <view class="myAppeal"> | |||||
| <!-- 内容部分 --> | |||||
| <view v-if="List.length !== 0" class="myAppeal-conent" @tap="details" :data-item="item" | |||||
| v-for="(item, index) in List" :key="index"> | |||||
| <view class="godd-replay-head"> | |||||
| <image src="/static/packages/enterprise/image/my-appeal.png" mode="aspectFill" /> | |||||
| <text class="myAppeal-head-title">{{ item.enterpriseName }}</text> | |||||
| </view> | |||||
| <view class="myAppeal-flex"> | |||||
| <block v-for="(type, index1) in typeList" :key="index1"> | |||||
| <view v-if="item.appealType + '' === type.value" class="myAppeal-type" | |||||
| :style="'background-color: ' + type.cssClass + ';'">{{ type.label }}</view> | |||||
| </block> | |||||
| <view> | |||||
| <text class="myAppeal-conent-block">{{ toods.getDateTime(item.createTime, 2) }}</text> | |||||
| <block v-for="(state, index1) in statusList" :key="index1"> | |||||
| <text v-if="item.appealProcessStatus + '' === state.value" | |||||
| class="myAppeal-conent-bg myAppeal-conent-block" :style="'background-color: ' + state.cssClass + ';'"> | |||||
| {{ state.label }} | |||||
| </text> | |||||
| </block> | |||||
| </view> | |||||
| </view> | |||||
| <view class="myAppeal-title mt-21 uniline">{{ item.appealTitle }}</view> | |||||
| <view class="myAppeal-subheading multi-line"> | |||||
| <rich-text :nodes="item.appealContent"></rich-text> | |||||
| </view> | |||||
| <view class="myAppeal-imgage" v-if="item.appealEnclosure"> | |||||
| <image v-if="key < 3" :src="url" v-for="(url, key) in item.appealEnclosure" :key="key"></image> | |||||
| </view> | |||||
| <view class="myAppeal-conent-block mt-21 uniline" v-if="item.appealCurrentLocation !== null"> | |||||
| <rich-text :nodes="item.appealCurrentLocation" /> | |||||
| </view> | |||||
| <view class="border"></view> | |||||
| <view class="myAppeal-bg" v-if="item.perfectReplyFlag === 1"> | |||||
| <view> | |||||
| <view> | |||||
| <image src="/static/images/ic-success.png" mode="aspectFill"></image> | |||||
| <text>{{ item.nickName }}</text> | |||||
| </view> | |||||
| <view class="myAppeal-conent-block">{{ toods.getDateTime(item.replyTime, 2) }}</view> | |||||
| </view> | |||||
| <view class="myAppeal-bg-conent"> | |||||
| <rich-text :nodes="item.appealReply"></rich-text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <van-empty v-if="List.length === 0" description="暂时没有我的诉求" /> | |||||
| </view> | |||||
| </scroll-view> | |||||
| </view> | |||||
| </template> | |||||
| <!-- <script module="toods" lang="wxs" src="@/wxs/util.wxs"></script> --> | |||||
| <script> | |||||
| // const app = getApp(); | |||||
| // const { | |||||
| // enterprise, | |||||
| // publicApi | |||||
| // } = app.globalData.api; | |||||
| import * as publicApi from '@/api/publicApi'; | |||||
| import * as enterprise from '@/api/enterprise'; | |||||
| export default { | |||||
| data() { | |||||
| return { | |||||
| windowHeight: null, | |||||
| option: {}, | |||||
| type: { | |||||
| value: '', | |||||
| cssClass: '', | |||||
| label: '' | |||||
| }, | |||||
| status: 'appeal_process_status', | |||||
| typeList: [], | |||||
| statusList: [], | |||||
| List: [], | |||||
| params: { | |||||
| userId: uni.getStorageSync('userInfoData').userId, | |||||
| pageNo: 1, | |||||
| pageSize: 15 | |||||
| }, | |||||
| state: { | |||||
| value: '', | |||||
| cssClass: '', | |||||
| label: '' | |||||
| }, | |||||
| url: '' | |||||
| }; | |||||
| }, | |||||
| async onLoad(option) { | |||||
| const res = uni.getSystemInfoSync(); | |||||
| this.windowHeight = res.windowHeight | |||||
| this.option = option | |||||
| await this.getAppealList(); | |||||
| await this.getTypeList(); | |||||
| await this.getStateList(); | |||||
| }, | |||||
| methods: { | |||||
| // 详情页跳转 | |||||
| details(event) { | |||||
| const { | |||||
| item | |||||
| } = event.currentTarget.dataset; | |||||
| uni.navigateTo({ | |||||
| url: `/packages/enterprise/pages/details/details?id=${item.id}` | |||||
| }); | |||||
| }, | |||||
| // 获取我的企业列表 | |||||
| async getAppealList() { | |||||
| const res = await enterprise.getAppealListApi(this.params); | |||||
| if (res.data && res.data.list.length === 0) { | |||||
| uni.showToast({ | |||||
| title: '已经加载底部了', | |||||
| icon: 'none' | |||||
| }); | |||||
| return; | |||||
| } | |||||
| if (res.data) { | |||||
| this.List = this.List.concat(res.data.list) | |||||
| } | |||||
| }, | |||||
| // 获取类型字典 | |||||
| async getTypeList() { | |||||
| const res = await publicApi.getDictDataApi({ | |||||
| dictType: this.type | |||||
| }); | |||||
| if (res.data) { | |||||
| this.typeList = res.data.list | |||||
| } | |||||
| }, | |||||
| // 获取状态字典 | |||||
| async getStateList() { | |||||
| const res = await publicApi.getDictDataApi({ | |||||
| dictType: this.status | |||||
| }); | |||||
| if (res.data) { | |||||
| this.statusList = res.data.list | |||||
| } | |||||
| }, | |||||
| // 分页加载 | |||||
| headleTopLower() { | |||||
| const { | |||||
| userId, | |||||
| pageNo, | |||||
| pageSize | |||||
| } = this.params; | |||||
| this.params = { | |||||
| userId: userId, | |||||
| pageNo: pageNo + 1, | |||||
| pageSize: pageSize | |||||
| } | |||||
| this.getAppealList(); | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| page { | |||||
| background-color: #fff; | |||||
| } | |||||
| .mt-20 { | |||||
| margin-top: 40rpx; | |||||
| } | |||||
| .mt-21 { | |||||
| margin-top: 21rpx; | |||||
| } | |||||
| .myAppeal { | |||||
| padding: 37rpx 40rpx 40rpx 40rpx; | |||||
| } | |||||
| .myAppeal>.myAppeal-title { | |||||
| position: relative; | |||||
| width: 175rpx; | |||||
| height: 10rpx; | |||||
| background: #ffe5e9; | |||||
| border-radius: 2rpx; | |||||
| line-height: 0; | |||||
| margin-top: 10px; | |||||
| text { | |||||
| position: absolute; | |||||
| top: -5px; | |||||
| text-align: center; | |||||
| width: 100%; | |||||
| font-size: 36rpx; | |||||
| font-weight: 500; | |||||
| color: #000000; | |||||
| } | |||||
| } | |||||
| .myAppeal-conent { | |||||
| height: 100%; | |||||
| &:not(:first-child) { | |||||
| margin-top: 37rpx; | |||||
| } | |||||
| .godd-replay-head { | |||||
| display: flex; | |||||
| .myAppeal-head-title { | |||||
| font-size: 32rpx; | |||||
| font-weight: 500; | |||||
| color: #fe3b53; | |||||
| } | |||||
| image { | |||||
| width: 44rpx; | |||||
| height: 44rpx; | |||||
| margin-right: 24rpx; | |||||
| } | |||||
| } | |||||
| .myAppeal-flex { | |||||
| margin-top: 32rpx; | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: space-between; | |||||
| .myAppeal-type { | |||||
| width: 88rpx; | |||||
| height: 38rpx; | |||||
| line-height: 38rpx; | |||||
| text-align: center; | |||||
| color: #fff; | |||||
| box-shadow: 2px 2px 2px 0px rgba(12, 181, 207, 0.1); | |||||
| border-radius: 8rpx; | |||||
| } | |||||
| .myAppeal-conent-title { | |||||
| font-size: 32rpx; | |||||
| font-weight: 400; | |||||
| color: #fe3b53; | |||||
| } | |||||
| .myAppeal-conent-bg { | |||||
| padding: 5rpx 20rpx; | |||||
| height: 38rpx; | |||||
| text-align: center; | |||||
| color: #fff; | |||||
| line-height: 38rpx; | |||||
| box-shadow: 2px 2px 2px 0px rgba(254, 61, 85, 0.1); | |||||
| border-radius: 500rpx; | |||||
| margin-left: 39rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| .border { | |||||
| padding: 16rpx 0 18rpx 0; | |||||
| border-bottom: 1px solid #efefef; | |||||
| } | |||||
| .myAppeal-conent-block { | |||||
| font-size: 24rpx; | |||||
| font-weight: 400; | |||||
| color: #999999; | |||||
| } | |||||
| .myAppeal-title { | |||||
| font-size: 32rpx; | |||||
| font-weight: 500; | |||||
| color: #000000; | |||||
| } | |||||
| .myAppeal-subheading { | |||||
| font-size: 28rpx; | |||||
| font-weight: 400; | |||||
| color: #333333; | |||||
| margin-top: 24rpx; | |||||
| } | |||||
| .myAppeal-imgage { | |||||
| margin-top: 24rpx; | |||||
| display: grid; | |||||
| grid-template-columns: 1fr 1fr 1fr; | |||||
| image { | |||||
| width: 222rpx; | |||||
| height: 222rpx; | |||||
| border-radius: 10rpx; | |||||
| margin-right: 10rpx; | |||||
| } | |||||
| } | |||||
| .myAppeal-bg { | |||||
| width: 678rpx; | |||||
| background: #f7f7f7; | |||||
| border-radius: 8px; | |||||
| margin-top: 32rpx; | |||||
| padding: 28rpx 20rpx; | |||||
| view { | |||||
| display: flex; | |||||
| align-items: center; | |||||
| justify-content: space-between; | |||||
| image { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| margin-right: 8rpx; | |||||
| } | |||||
| text { | |||||
| font-size: 28rpx; | |||||
| font-weight: 400; | |||||
| color: #fe3b53; | |||||
| } | |||||
| } | |||||
| .myAppeal-bg-conent { | |||||
| padding: 16rpx 0 0 40rpx; | |||||
| font-size: 28rpx; | |||||
| font-weight: 400; | |||||
| color: #333333; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,211 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <custom-nav-bar position="fixed" color="black" left-text="关联企业" left-arrow /> | |||||
| <view class="enterprise" v-if="List.length !== 0"> | |||||
| <van-swipe-cell :right-width="80" async-close v-for="(item, index) in List" :key="index"> | |||||
| <view class="flex flex-v-center border" @tap="relationDetails" :data-item="item"> | |||||
| <image class="enterprise-icon" src="/static/packages/enterprise/image/my-appeal.png" mode="aspectFill"> | |||||
| </image> | |||||
| <view> | |||||
| <view class="enterprise-title">{{ item.enterpriseName }}</view> | |||||
| <view class="mt-24 enterprise-block"> | |||||
| <text class="">法人姓名:</text> | |||||
| <text class="red">{{ item.legalName }}</text> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view slot="right" :data-item="item" :data-index="index" @tap="swipeCell" class="enterprise-right"> | |||||
| <view class="enterprise-circle"> | |||||
| <van-icon name="delete-o" size="28px" color="#fff" /> | |||||
| </view> | |||||
| </view> | |||||
| </van-swipe-cell> | |||||
| </view> | |||||
| <view class="custom-image" v-if="List.length === 0"> | |||||
| <view style="width: 100%"> | |||||
| <image class="image" src="/static/packages/enterprise/image/enterprise-none.png" mode="aspectFill"></image> | |||||
| <view class="custom-image-title">您还未关联任何企业</view> | |||||
| <van-button @tap.native="createEnterprise" custom-style="width:300rpx;height: 80rpx;" type="primary" | |||||
| color="#E0383E">新增关联企业</van-button> | |||||
| </view> | |||||
| </view> | |||||
| <view class="enterprise-button" v-if="List.length !== 0"> | |||||
| <van-button @tap.native="createEnterprise" custom-style="height: 80rpx;" color="#E0383E" block>新增关联企业</van-button> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| // const app = getApp(); | |||||
| // const { enterprise } = app.globalData.api; | |||||
| // import * as publicApi from '@/api/publicApi'; | |||||
| import * as enterprise from '@/api/enterprise'; | |||||
| export default { | |||||
| components: {}, | |||||
| data() { | |||||
| return { | |||||
| List: null | |||||
| }; | |||||
| }, | |||||
| async onLoad() { | |||||
| const res = uni.getSystemInfoSync(); | |||||
| this.getEnterpriseList(); | |||||
| }, | |||||
| methods: { | |||||
| // 返回上一步 | |||||
| onClickLeft() { | |||||
| uni.navigateTo({ | |||||
| url: '/packages/enterprise/pages/issue-appeal/issue-appeal' | |||||
| }); | |||||
| }, | |||||
| // 清楚对应的企业列表 | |||||
| async swipeCell(event) { | |||||
| const { | |||||
| item, | |||||
| index | |||||
| } = event.currentTarget.dataset; | |||||
| const res = await enterprise.DeleteEnterpriseIdApi(item.id); | |||||
| if (res.code !== 0) { | |||||
| uni.showToast({ | |||||
| title: res.msg, | |||||
| icon: 'none' | |||||
| }); | |||||
| return false; | |||||
| } | |||||
| uni.showToast({ | |||||
| title: '移除成功', | |||||
| icon: 'none' | |||||
| }); | |||||
| const { | |||||
| List | |||||
| } = this; | |||||
| List.splice(index, 1); | |||||
| this.setData({ | |||||
| List: List | |||||
| }); | |||||
| }, | |||||
| // 跳转-添加企业 | |||||
| createEnterprise() { | |||||
| uni.navigateTo({ | |||||
| url: '/packages/enterprise/pages/create-enterprise/create-enterprise' | |||||
| }); | |||||
| }, | |||||
| // 获取企业列表 | |||||
| async getEnterpriseList() { | |||||
| const res = await enterprise.getEnterpriseListApi({ | |||||
| pageNo: 1, | |||||
| pageSize: 15, | |||||
| userId: uni.getStorageSync('userInfoData').userId | |||||
| }); | |||||
| if (res.data) { | |||||
| this.setData({ | |||||
| List: res.data.list | |||||
| }); | |||||
| } | |||||
| }, | |||||
| // 跳转我的诉求列表 | |||||
| relationDetails(event) { | |||||
| const { | |||||
| item | |||||
| } = event.currentTarget.dataset; | |||||
| uni.redirectTo({ | |||||
| url: `/packages/enterprise/pages/issue-appeal/issue-appeal?id=${item.id}` | |||||
| }); | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| .mt-78 { | |||||
| margin-top: 78rpx; | |||||
| } | |||||
| .enterprise { | |||||
| padding: 36rpx 36rpx 0rpx 36rpx; | |||||
| padding-bottom: 140rpx; | |||||
| } | |||||
| .border { | |||||
| padding: 23rpx 0; | |||||
| border-bottom: 1px solid #efefef; | |||||
| } | |||||
| .mt-24 { | |||||
| margin-top: 24rpx; | |||||
| } | |||||
| .enterprise-title { | |||||
| font-size: 32rpx; | |||||
| font-weight: 500; | |||||
| color: #333333; | |||||
| } | |||||
| .enterprise-block { | |||||
| font-size: 28rpx; | |||||
| font-weight: 400; | |||||
| color: #666666; | |||||
| } | |||||
| .enterprise-icon { | |||||
| width: 122rpx; | |||||
| height: 122rpx; | |||||
| margin-right: 23rpx; | |||||
| border-radius: 10rpx; | |||||
| } | |||||
| .enterprise-right { | |||||
| width: 160rpx; | |||||
| height: 100%; | |||||
| background: #f2f2f2; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| } | |||||
| .enterprise-circle { | |||||
| width: 90rpx; | |||||
| height: 90rpx; | |||||
| background-color: #e0383f; | |||||
| border-radius: 50%; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| } | |||||
| .enterprise-button { | |||||
| padding: 25rpx 36rpx; | |||||
| position: fixed; | |||||
| bottom: 0; | |||||
| left: 0; | |||||
| width: 100%; | |||||
| background-color: #ffffff; | |||||
| } | |||||
| .custom-image { | |||||
| padding: 122rpx 25rpx 0 25rpx; | |||||
| text-align: center; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| .image { | |||||
| width: 100%; | |||||
| height: 241rpx; | |||||
| } | |||||
| .custom-image-title { | |||||
| margin: 78rpx 0 60rpx 0; | |||||
| font-size: 32rpx; | |||||
| font-weight: 400; | |||||
| color: #333333; | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,243 @@ | |||||
| <template> | |||||
| <view style="height: 100%"> | |||||
| <custom-nav-bar position="fixed" color="black" left-text="精彩介休" left-arrow /> | |||||
| <view class="search"> | |||||
| <view> | |||||
| <view class="flex flex-between search-input"> | |||||
| <input class="input" type="text" placeholder-class="placeholder-style" placeholder="请输入你想查询的内容" /> | |||||
| <view class="search-icon flex flex-center"> | |||||
| <image class="imgage" | |||||
| src="https://zongzhi.xuqidata.com:5009/xq-ssg/d17f4b5125b293f8cf7ff1b633e4722c105ec1411347a9df1e0737c47300e535.png"> | |||||
| </image> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <view class="life-tabs"> | |||||
| <van-tabs :active="tabs.active" title-active-color="#FE3B53" line-width="40px" | |||||
| @change="onChange($event, { tagId: 'lifeListTabs' })" :ellipsis="false" id="lifeListTabs"> | |||||
| <van-tab :title="key.name" v-for="(key, index) in recursionList" :key="index"> | |||||
| <view class="life-tabs-flex"> | |||||
| <van-grid column-num="2" :border="false" :center="false"> | |||||
| <van-grid-item use-slot :url="item.clickUrl + '&name=' + item.name" | |||||
| v-for="(item, index1) in key.children" :key="index1"> | |||||
| <view class="flex flex-v-center"> | |||||
| <view class="life-tabs-icon flex flex-center"> | |||||
| <image class="icon" :src="item.icon" /> | |||||
| </view> | |||||
| <text class="life-iocn-title">{{ item.name }}</text> | |||||
| </view> | |||||
| </van-grid-item> | |||||
| </van-grid> | |||||
| </view> | |||||
| </van-tab> | |||||
| </van-tabs> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <script> | |||||
| // const app = getApp(); | |||||
| // const { publicApi } = app.globalData.api; | |||||
| import * as publicApi from '@/api/publicApi'; | |||||
| export default { | |||||
| components: {}, | |||||
| data() { | |||||
| return { | |||||
| // env: app.globalData.env, | |||||
| // appName: app.globalData.env.appName, | |||||
| tabs: { | |||||
| active: 0, | |||||
| list: [{ | |||||
| id: 1, | |||||
| title: '政务服务' | |||||
| }, | |||||
| { | |||||
| id: 2, | |||||
| title: '公共服务' | |||||
| }, | |||||
| { | |||||
| id: 3, | |||||
| title: '生活服务' | |||||
| }, | |||||
| { | |||||
| id: 4, | |||||
| title: '企业服务' | |||||
| }, | |||||
| { | |||||
| id: 5, | |||||
| title: '区级服务' | |||||
| }, | |||||
| { | |||||
| id: 6, | |||||
| title: '全部' | |||||
| } | |||||
| ], | |||||
| first: { | |||||
| title: '精彩介休', | |||||
| list: [{ | |||||
| bgColor: 'linear-gradient(180deg, #FC9D38 0%, #FE9153 100%)', | |||||
| icon: '/images/life/gourmet.png', | |||||
| name: '美食' | |||||
| }, | |||||
| { | |||||
| bgColor: 'linear-gradient(180deg, #FF5F7A 0%, #FE3B53 100%)', | |||||
| icon: '/images/life/market.png', | |||||
| name: '商场' | |||||
| }, | |||||
| { | |||||
| bgColor: 'linear-gradient(180deg, #FF95A7 0%, #FF6A7C 100%)', | |||||
| icon: '/images/life/film.png', | |||||
| name: '电影演出' | |||||
| }, | |||||
| { | |||||
| bgColor: 'linear-gradient(180deg, #F48BC0 0%, #EF6BA8 100%)', | |||||
| icon: '/images/life/park.png', | |||||
| name: '公园' | |||||
| }, | |||||
| { | |||||
| bgColor: 'linear-gradient(180deg, #B17DF3 0%, #A068F0 100%)', | |||||
| icon: '/images/life/scenic.png', | |||||
| name: '景点' | |||||
| }, | |||||
| { | |||||
| bgColor: 'linear-gradient(180deg, #22ACFB 0%, #1593F7 100%)', | |||||
| icon: '/images/life/hospital.png', | |||||
| name: '医院' | |||||
| }, | |||||
| { | |||||
| bgColor: 'linear-gradient(180deg, #329CF0 0%, #2789EC 100%)', | |||||
| icon: '/images/life/bus.png', | |||||
| name: '公交车' | |||||
| }, | |||||
| { | |||||
| bgColor: 'linear-gradient(180deg, #8D8EFF 0%, #7375F6 100%)', | |||||
| icon: '/images/life/all.png', | |||||
| name: '全部' | |||||
| } | |||||
| ] | |||||
| } | |||||
| }, | |||||
| recursionList: '' | |||||
| }; | |||||
| }, | |||||
| async onLoad() { | |||||
| this.recursionApi(); | |||||
| }, | |||||
| methods: { | |||||
| async recursionApi() { | |||||
| const res = await publicApi.recursionApi({ | |||||
| bannerType: 2, | |||||
| parentId: 15 | |||||
| }); | |||||
| if (res.data) { | |||||
| this.setData({ | |||||
| recursionList: res.data | |||||
| }); | |||||
| // 触发tabs重绘,解决tabs底部下划线位置错误 | |||||
| this.zpSelectComponent('#lifeListTabs').resize(); | |||||
| } | |||||
| }, | |||||
| onChange(e, _dataset) { | |||||
| /* ---处理dataset begin--- */ | |||||
| this.handleDataset(e, _dataset); | |||||
| /* ---处理dataset end--- */ | |||||
| console.log('占位:函数 onChange 未声明'); | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| .right-icon { | |||||
| width: 64rpx; | |||||
| height: 64rpx; | |||||
| background: #ffffff; | |||||
| border-radius: 35px; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| border: 1px solid #e1e1e1; | |||||
| .icon { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| } | |||||
| } | |||||
| .search { | |||||
| padding: 30rpx 30rpx 54rpx 30rpx; | |||||
| .search-input { | |||||
| height: 64rpx; | |||||
| line-height: 64rpx; | |||||
| background: #f9f9f9; | |||||
| border-radius: 1000rpx; | |||||
| border: 1px solid #e1e1e1; | |||||
| .input { | |||||
| width: 87%; | |||||
| line-height: 64rpx; | |||||
| height: 60rpx; | |||||
| text-decoration: 20rpx; | |||||
| padding-left: 30rpx; | |||||
| font-size: 26rpx; | |||||
| font-weight: 400; | |||||
| } | |||||
| .placeholder-style { | |||||
| text-align: center; | |||||
| color: #c1c1c1; | |||||
| } | |||||
| } | |||||
| .search-icon { | |||||
| width: 64rpx; | |||||
| height: 64rpx; | |||||
| background: #ffffff; | |||||
| border-radius: 5000rpx; | |||||
| border: 1px solid #e1e1e1; | |||||
| .imgage { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| } | |||||
| } | |||||
| .life-tabs { | |||||
| margin-top: 40rpx; | |||||
| .van-tabs__wrap { | |||||
| border-bottom: 1px solid #c1c1c1; | |||||
| } | |||||
| .life-tabs-flex { | |||||
| margin-top: 50rpx; | |||||
| .life-tabs-icon { | |||||
| width: 70rpx; | |||||
| height: 70rpx; | |||||
| box-shadow: 0px 6px 4px 0px rgba(254, 80, 107, 0.1); | |||||
| border-radius: 500rpx; | |||||
| .icon { | |||||
| width: 70rpx; | |||||
| height: 70rpx; | |||||
| } | |||||
| } | |||||
| .life-iocn-title { | |||||
| margin-left: 32rpx; | |||||
| font-size: 34rpx; | |||||
| font-weight: 400; | |||||
| color: #333333; | |||||
| line-height: 34rpx; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||
| @@ -0,0 +1,303 @@ | |||||
| <template> | |||||
| <view> | |||||
| <custom-nav-bar position="fixed" color="black" :left-text="optin.name" left-arrow /> | |||||
| <view class="search"> | |||||
| <view class="flex flex-between search-input"> | |||||
| <input class="input" :value="searchValue" type="text" confirm-type="search" | |||||
| placeholder-class="placeholder-style" placeholder="请输入搜索商户名称" @input="onSearch" @confirm="onChange" /> | |||||
| <view class="search-icon flex flex-center"> | |||||
| <image class="imgage" src="/static/images/search.png"></image> | |||||
| </view> | |||||
| </view> | |||||
| <view class="life-tabs" v-if="dataList.length !== 0"> | |||||
| <view class="life-conent" @tap="headleDetails" :data-item="item" v-for="(item, index) in dataList" :key="index"> | |||||
| <image class="life-conent-image" :src="item.merchantPhoto" mode="aspectFill"></image> | |||||
| <view class="life-conent-article flex flex-col flex-between"> | |||||
| <view class="life-conent-title text-line-1">{{ item.merchantName }}</view> | |||||
| <view class="life-conent-block text-line-2"> | |||||
| <rich-text :nodes="item.merchantIntroduce"></rich-text> | |||||
| </view> | |||||
| <view class="life-conent-rate flex flex-v-center flex-between"> | |||||
| <van-rate readonly icon="/images/void-icon2.png" void-icon="/images/rate-icon.png" | |||||
| :value="item.merchantGrade" /> | |||||
| <view> | |||||
| <text>距离</text> | |||||
| <!-- <text class="rate-loca-active">{{ $tootls.setMorKm(item.distance) }}</text> --> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| </view> | |||||
| <van-empty v-if="dataList.length === 0" :description="'暂无' + optin.name" /> | |||||
| </view> | |||||
| </view> | |||||
| </template> | |||||
| <!-- <script module="toods" lang="wxs" src="@/wxs/util.wxs"></script> --> | |||||
| <script> | |||||
| // const app = getApp(); | |||||
| // const { | |||||
| // lifeApi | |||||
| // } = app.globalData.api; | |||||
| import * as lifeApi from '@/api/lifeApi'; | |||||
| export default { | |||||
| components: {}, | |||||
| data() { | |||||
| return { | |||||
| searchValue: '', | |||||
| optin: { | |||||
| name: '' | |||||
| }, | |||||
| dataList: [], | |||||
| pageNo: 1, | |||||
| pageSize: 10, | |||||
| total: 0 | |||||
| }; | |||||
| }, | |||||
| onLoad(optin) { | |||||
| this.optin = optin | |||||
| this.merchantPageApi(); | |||||
| }, | |||||
| onReachBottom() { | |||||
| if (this.dataList.length === this.total) { | |||||
| return; | |||||
| } | |||||
| this.merchantPageApi(false); | |||||
| }, | |||||
| methods: { | |||||
| // 生活对应栏目的分页查询 | |||||
| async merchantPageApi(reset = true) { | |||||
| const params = this.generalQueryData(reset); | |||||
| const res = await lifeApi.merchantPageApi(params); | |||||
| let _goodsList = [] | |||||
| if (res.data) { | |||||
| const { | |||||
| list = [], total = 0 | |||||
| } = res.data; | |||||
| if (reset) { | |||||
| _goodsList = list; | |||||
| } else { | |||||
| _goodsList = this.dataList.concat(list); | |||||
| } | |||||
| this.pageNo = params.pageNo || 1; | |||||
| this.total = total; | |||||
| _goodsList.forEach((element) => { | |||||
| if (element.merchantIntroduce) { | |||||
| element.merchantIntroduce = element.merchantIntroduce.replace(/(\<img|\<p|src=null)/gi, function($0, | |||||
| $1) { | |||||
| console.log($0, $1); | |||||
| return { | |||||
| '<img': '<img style="width:100%;height:auto;display:block;" ', | |||||
| '<p': '<p', | |||||
| '<article': '<div', | |||||
| '</article': '</div', | |||||
| '<header': '<div', | |||||
| '</header': '</div' | |||||
| } [$1]; | |||||
| }); | |||||
| } | |||||
| }); | |||||
| console.log(_goodsList) | |||||
| this.dataList = _goodsList | |||||
| // this.setData({ | |||||
| // dataList: _goodsList | |||||
| // }); | |||||
| } | |||||
| }, | |||||
| onChange(e) { | |||||
| this.searchValue = e.detail.value | |||||
| // this.setData({ | |||||
| // searchValue: e.detail.value | |||||
| // }); | |||||
| this.merchantPageApi(); | |||||
| }, | |||||
| onSearch(e) { | |||||
| if (e.detail.value !== '') { | |||||
| return; | |||||
| } | |||||
| this.searchValue = e.detail.value | |||||
| // this.setData({ | |||||
| // searchValue: e.detail.value | |||||
| // }); | |||||
| this.merchantPageApi(); | |||||
| }, | |||||
| // 分页参数处理事件 | |||||
| generalQueryData(reset = false) { | |||||
| const { | |||||
| pageNo, | |||||
| pageSize, | |||||
| searchValue, | |||||
| optin | |||||
| } = this; | |||||
| // const { | |||||
| // latitude, | |||||
| // longitude | |||||
| // } = app.globalData.config.locationInfo; | |||||
| const params = { | |||||
| pageNo: 1, | |||||
| pageSize: 10 | |||||
| }; | |||||
| if (optin.type === '1') { | |||||
| params.latitude = latitude; | |||||
| params.longitude = longitude; | |||||
| // params.nearFlag = 1; | |||||
| } | |||||
| if (searchValue) { | |||||
| params.merchantName = searchValue; | |||||
| } | |||||
| if (optin.id) { | |||||
| params.merchantType = optin.id; | |||||
| } | |||||
| if (reset) { | |||||
| return params; | |||||
| } | |||||
| return { | |||||
| ...params, | |||||
| pageNo: pageNo + 1, | |||||
| pageSize | |||||
| }; | |||||
| }, | |||||
| // 进入详情页 | |||||
| headleDetails(event) { | |||||
| const { | |||||
| id | |||||
| } = event.currentTarget.dataset.item; | |||||
| uni.navigateTo({ | |||||
| url: `/packages/public/pages/details/details?name=店铺详情&referId=${id}` | |||||
| }); | |||||
| } | |||||
| } | |||||
| }; | |||||
| </script> | |||||
| <style lang="less"> | |||||
| page { | |||||
| --rate-icon-size: 26rpx; // 评分大小 | |||||
| --rate-icon-gutter: 8rpx; // 评分图标之前的距离 | |||||
| } | |||||
| .right-icon { | |||||
| width: 64rpx; | |||||
| height: 64rpx; | |||||
| background: #ffffff; | |||||
| border-radius: 35px; | |||||
| display: flex; | |||||
| justify-content: center; | |||||
| align-items: center; | |||||
| border: 1px solid #e1e1e1; | |||||
| .icon { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| } | |||||
| } | |||||
| .search { | |||||
| padding: 30rpx 30rpx 54rpx 30rpx; | |||||
| .search-input { | |||||
| height: 64rpx; | |||||
| line-height: 64rpx; | |||||
| background: #f9f9f9; | |||||
| border-radius: 35rpx; | |||||
| border: 1px solid #e1e1e1; | |||||
| text-align: center; | |||||
| position: relative; | |||||
| box-sizing: content-box; | |||||
| .input { | |||||
| width: 100%; | |||||
| height: 64rpx; | |||||
| line-height: 64rpx; | |||||
| text-decoration: 20rpx; | |||||
| padding: 0 64rpx; | |||||
| font-size: 26rpx; | |||||
| font-weight: 400; | |||||
| } | |||||
| .placeholder-style { | |||||
| text-align: center; | |||||
| color: #c1c1c1; | |||||
| } | |||||
| } | |||||
| .search-icon { | |||||
| width: 64rpx; | |||||
| height: 64rpx; | |||||
| background: #ffffff; | |||||
| border-radius: 35rpx; | |||||
| border: 1px solid #e1e1e1; | |||||
| position: absolute; | |||||
| right: -1px; | |||||
| top: 0; | |||||
| z-index: 1; | |||||
| .imgage { | |||||
| width: 32rpx; | |||||
| height: 32rpx; | |||||
| } | |||||
| } | |||||
| .life-tabs { | |||||
| margin-top: 40rpx; | |||||
| .van-tabs__wrap { | |||||
| border-bottom: 1px solid #c1c1c1; | |||||
| } | |||||
| .life-conent { | |||||
| margin-top: 37rpx; | |||||
| display: flex; | |||||
| justify-content: space-between; | |||||
| padding-bottom: 24rpx; | |||||
| border-bottom: 1px solid #efefef; | |||||
| .life-conent-image { | |||||
| width: 160rpx; | |||||
| height: 160rpx; | |||||
| border-radius: 10rpx; | |||||
| } | |||||
| .life-conent-article { | |||||
| flex: 1; | |||||
| margin-left: 24rpx; | |||||
| .life-conent-title { | |||||
| font-size: 30rpx; | |||||
| font-weight: 500; | |||||
| color: #333333; | |||||
| line-height: 30rpx; | |||||
| } | |||||
| .life-conent-block { | |||||
| margin-top: 21rpx; | |||||
| font-size: 26rpx; | |||||
| font-weight: 400; | |||||
| color: #666666; | |||||
| line-height: 38rpx; | |||||
| height: 66rpx; | |||||
| } | |||||
| .life-conent-rate { | |||||
| font-size: 24rpx; | |||||
| font-weight: 400; | |||||
| color: #999999; | |||||
| line-height: 24rpx; | |||||
| margin-top: 9rpx; | |||||
| .rate-loca-active { | |||||
| color: #333333; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| </style> | |||||