From 423451c68caf29b9c85a5028c11cc0ce1bec2095 Mon Sep 17 00:00:00 2001 From: zmj <1493694146@qq.com> Date: Wed, 22 Nov 2023 14:28:54 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/animal.js | 45 - api/aquatic.js | 37 - pages/husbandryForm/Pest.vue | 3 - pages/husbandryForm/fertilize.vue | 3 - pages/husbandryForm/harvest.vue | 3 - pages/husbandryForm/irrigate.vue | 3 - pages/husbandryForm/sow.vue | 3 - pages/husbandryForm/weeding.vue | 3 - pages/index/index.vue | 39 +- unpackage/dist/dev/app-plus/__uniappview.html | 23 - .../dist/dev/app-plus/app-config-service.js | 11 - unpackage/dist/dev/app-plus/app-config.js | 1 - unpackage/dist/dev/app-plus/app-service.js | 19029 ---------------- unpackage/dist/dev/app-plus/app.css | 3108 --- unpackage/dist/dev/app-plus/manifest.json | 168 - .../dist/dev/app-plus/pages/index/index.css | 957 - unpackage/dist/dev/app-plus/static/logo.png | Bin 4023 -> 0 bytes 17 files changed, 37 insertions(+), 23399 deletions(-) delete mode 100644 api/animal.js delete mode 100644 api/aquatic.js delete mode 100644 unpackage/dist/dev/app-plus/__uniappview.html delete mode 100644 unpackage/dist/dev/app-plus/app-config-service.js delete mode 100644 unpackage/dist/dev/app-plus/app-config.js delete mode 100644 unpackage/dist/dev/app-plus/app-service.js delete mode 100644 unpackage/dist/dev/app-plus/app.css delete mode 100644 unpackage/dist/dev/app-plus/manifest.json delete mode 100644 unpackage/dist/dev/app-plus/pages/index/index.css delete mode 100644 unpackage/dist/dev/app-plus/static/logo.png diff --git a/api/animal.js b/api/animal.js deleted file mode 100644 index abb66e7..0000000 --- a/api/animal.js +++ /dev/null @@ -1,45 +0,0 @@ -import syhttp from "@/utils/syhttp.js"; - -/** - * 家畜列表 - */ -export const animalListAPI = (data) => syhttp.get('/AnimalBreed/animalList', data) -// 监测数据/api -export const animalEnvDataAPI = (data) => syhttp.get('/AnimalBreed/animalEnvData', data) -// 添加动物 -export const addAnimalAPI = (data) => syhttp.post('/AnimalBreed/addAnimal', data) -// 操作列表 -export const actionsAPI = (data) => syhttp.get('/user/actions', data) -// 操作列表 -export const animalInfoAPI = (data) => syhttp.get('/AnimalBreed/animalInfo', data) -// 操作列表 -export const animalPicListAPI = (data) => syhttp.get('/AnimalBreed/animalPicList', data) -// 上传动物图片 -export const addAnimalPicAPI = (data) => syhttp.post('/AnimalBreed/addAnimalPic', data) -// 更新动物饲养状态 -export const animalStatusAPI = (data) => syhttp.post('/AnimalBreed/animalStatus', data) -// 动物历史养殖记录列表 -export const animalChangeListAPI = (data) => syhttp.get('/AnimalBreed/animalChangeList', data) -// 标记为出栏 -// -export const animalSellAPI = (data) => syhttp.post('/AnimalBreed/animalSell', data) - - - -// 种植操作列表 -export const actionsListAPI = (data) => syhttp.get('/user/actions', data) -// 种植操作详情 -export const actionsDetailAPI = (data) => syhttp.get('/user/actionsDetail', data) - -// 种植操作详情列表 -export const landCropRecordInfoAPI = (data) => syhttp.get('/LandPlant/landCropRecordInfo', data) -// 进行操作 -export const addLandCropRecordAPI = (data) => syhttp.post('/AnimalBreed/addAnimalRecord', data) -// 删除操作 delLandCropRecord -export const delLandCropRecordAPI = (data) => syhttp.post('/AnimalBreed/delAnimalRecord', data) -// 编辑 -export const ediLandCropRecordAPI = (data) => syhttp.post('/AnimalBreed/ediAnimalRecord', data) -// 生长记录表 -export const landCropRecordListAPI = (data) => syhttp.get('/AnimalBreed/animalRecordList', data) -// 搜索 -export const animalSearchByCodeAPI = (data) => syhttp.get('/AnimalBreed/animalSearchByCode', data) \ No newline at end of file diff --git a/api/aquatic.js b/api/aquatic.js deleted file mode 100644 index 4b32bba..0000000 --- a/api/aquatic.js +++ /dev/null @@ -1,37 +0,0 @@ -import syhttp from "@/utils/syhttp.js"; - -/** - * 添加水产养殖信息 - */ -export const addFishAPI = (data) => syhttp.post('/FishBreed/addFish', data) -// 用户池塘信息 -export const pondInfoAPI = (data) => syhttp.get('/FishBreed/pondInfo', data) -// 上传图片 -export const addFishPicAPI = (data) => syhttp.post('/FishBreed/addFishPic', data) -// 实时环境监测 -export const pondEnvDataAPI = (data) => syhttp.get('/FishBreed/pondEnvData', data) -// 图片列表 -export const fishPicListAPI = (data) => syhttp.get('/FishBreed/fishPicList', data) -// 添加水产操作 -export const addFishRecordAPI = (data) => syhttp.post('/FishBreed/addFishRecord', data) - -// -// export const fishPicListAPI = (data) => syhttp.get('/FishBreed/fishPicList', data) - -// 种植操作列表 -export const actionsListAPI = (data) => syhttp.get('/user/actions', data) -// 种植操作详情 -export const actionsDetailAPI = (data) => syhttp.get('/user/actionsDetail', data) - -// 种植操作详情列表 -export const landCropRecordInfoAPI = (data) => syhttp.get('/FishBreed/fishRecordList', data) -// 进行操作 -export const addLandCropRecordAPI = (data) => syhttp.post('/FishBreed/addFishRecord', data) -// 删除操作 delLandCropRecord -export const delLandCropRecordAPI = (data) => syhttp.post('/FishBreed/delFishRecord', data) -// 编辑 -export const ediLandCropRecordAPI = (data) => syhttp.post('/FishBreed/ediFishRecord', data) -// 生长记录表 -export const landCropRecordListAPI = (data) => syhttp.get('/FishBreed/fishRecordList', data) -// 搜索 -// export const animalSearchByCodeAPI = (data) => syhttp.get('/PoultryBreed/poultrySearchByCode', data) \ No newline at end of file diff --git a/pages/husbandryForm/Pest.vue b/pages/husbandryForm/Pest.vue index 58b02e0..126b7df 100644 --- a/pages/husbandryForm/Pest.vue +++ b/pages/husbandryForm/Pest.vue @@ -80,9 +80,6 @@ - - - -
- - - - - - diff --git a/unpackage/dist/dev/app-plus/app-config-service.js b/unpackage/dist/dev/app-plus/app-config-service.js deleted file mode 100644 index 9a6dcfb..0000000 --- a/unpackage/dist/dev/app-plus/app-config-service.js +++ /dev/null @@ -1,11 +0,0 @@ - - ;(function(){ - let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[]; - const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"uni-app","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"test","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"3.96","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"tabBar":{"position":"bottom","color":"#B3B3B3","selectedColor":"#272822","borderStyle":"white","blurEffect":"none","fontSize":"10px","iconWidth":"24px","spacing":"3px","height":"50px","backgroundColor":"#EBF1EF","list":[{"pagePath":"pages/index/index","text":"首页","iconPath":"/static/tabs-icon/home.png","selectedIconPath":"/static/img/DK.png"},{"pagePath":"pages/index/massif","text":"地块","iconPath":"/static/img/SJ (1).png","selectedIconPath":"/static/img/SJ (1).png"},{"pagePath":"pages/index/personal","text":"我的","iconPath":"/static/img/WD.png","selectedIconPath":"/static/img/WD.png"}],"selectedIndex":0,"shown":true},"locales":{},"darkmode":false,"themeConfig":{}}; - const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"isTabBar":true,"tabBarIndex":0,"navigationBar":{"style":"custom","type":"default"},"isNVue":false}},{"path":"pages/landDetail/index","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"土地详情","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/husbandryForm/harvest","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"添加收获信息","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/husbandryForm/Pest","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"添加虫害防治信息","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/husbandryForm/irrigate","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"添加灌溉信息","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/husbandryForm/weeding","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"添加除草信息","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/husbandryForm/fertilize","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"添加施肥信息","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/husbandryForm/sow","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"添加种植信息","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/live/live","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"苗情监测","type":"default","titleColor":"#000000"},"isNVue":true}},{"path":"pages/addLand/addLand","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"添加土地信息","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/updatePassword/updatePassword","meta":{"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"密码修改","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/index/massif","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":1,"enablePullDownRefresh":false,"navigationBar":{"backgroundColor":"#F4F4F4","titleText":"地块","type":"default","titleColor":"#000000"},"isNVue":false}},{"path":"pages/index/personal","meta":{"isQuit":true,"isTabBar":true,"tabBarIndex":2,"navigationBar":{"style":"custom","type":"default"},"isNVue":false}},{"path":"pages/Login/login","meta":{"navigationBar":{"style":"custom","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute)); - __uniConfig.styles=[{"u-line-1":{"":{"lines":1,"textOverflow":"ellipsis","overflow":"hidden","flex":1}},"u-line-2":{"":{"lines":2,"textOverflow":"ellipsis","overflow":"hidden","flex":1}},"u-line-3":{"":{"lines":3,"textOverflow":"ellipsis","overflow":"hidden","flex":1}},"u-line-4":{"":{"lines":4,"textOverflow":"ellipsis","overflow":"hidden","flex":1}},"u-line-5":{"":{"lines":5,"textOverflow":"ellipsis","overflow":"hidden","flex":1}},"u-border":{"":{"!borderWidth":0.5,"!borderColor":"#dadbde","borderStyle":"solid"}},"u-border-top":{"":{"!borderTopWidth":0.5,"!borderColor":"#dadbde","borderTopStyle":"solid"}},"u-border-left":{"":{"!borderLeftWidth":0.5,"!borderColor":"#dadbde","borderLeftStyle":"solid"}},"u-border-right":{"":{"!borderRightWidth":0.5,"!borderColor":"#dadbde","borderRightStyle":"solid"}},"u-border-bottom":{"":{"!borderBottomWidth":0.5,"!borderColor":"#dadbde","borderBottomStyle":"solid"}},"u-border-top-bottom":{"":{"!borderTopWidth":0.5,"!borderBottomWidth":0.5,"!borderColor":"#dadbde","borderTopStyle":"solid","borderBottomStyle":"solid"}},"u-reset-button":{"":{"paddingTop":0,"paddingRight":0,"paddingBottom":0,"paddingLeft":0,"backgroundColor":"rgba(0,0,0,0)","borderWidth":0}},"u-hover-class":{"":{"opacity":0.7}},"u-flex":{"":{"flexDirection":"row"}},"u-flex-row":{"":{"flexDirection":"row"}},"u-flex-x":{"":{"flexDirection":"row"}},"u-flex-y":{"":{"flexDirection":"column"}},"u-flex-column":{"":{"flexDirection":"column"}},"u-flex-x-center":{"":{"flexDirection":"row","justifyContent":"center"}},"u-flex-xy-center":{"":{"flexDirection":"row","justifyContent":"center","alignItems":"center"}},"u-flex-y-center":{"":{"flexDirection":"row","alignItems":"center"}},"u-flex-x-left":{"":{"flexDirection":"row"}},"u-flex-x-reverse":{"":{"flexDirection":"row-reverse"}},"u-flex-row-reverse":{"":{"flexDirection":"row-reverse"}},"u-flex-y-reverse":{"":{"flexDirection":"column-reverse"}},"u-flex-column-reverse":{"":{"flexDirection":"column-reverse"}},"u-flex-wrap":{"":{"flexWrap":"wrap"}},"u-flex-wrap-reverse":{"":{"flexWrap":"wrap-reverse"}},"u-flex-start":{"":{"justifyContent":"flex-start"}},"u-flex-center":{"":{"justifyContent":"center"}},"u-flex-end":{"":{"justifyContent":"flex-end"}},"u-flex-between":{"":{"justifyContent":"space-between"}},"u-flex-around":{"":{"justifyContent":"space-around"}},"u-flex-items-start":{"":{"alignItems":"flex-start"}},"u-flex-items-center":{"":{"alignItems":"center"}},"u-flex-items-end":{"":{"alignItems":"flex-end"}},"u-flex-items-stretch":{"":{"alignItems":"stretch"}},"u-flex-self-start":{"":{"alignSelf":"flex-start"}},"u-flex-self-center":{"":{"alignSelf":"center"}},"u-flex-self-end":{"":{"alignSelf":"flex-end"}},"u-flex-self-baseline":{"":{"alignSelf":"baseline"}},"u-flex-self-stretch":{"":{"alignSelf":"stretch"}},"u-flex-content-start":{"":{"alignContent":"flex-start"}},"u-flex-content-center":{"":{"alignContent":"center"}},"u-flex-content-end":{"":{"alignContent":"flex-end"}},"u-flex-content-between":{"":{"alignContent":"space-between"}},"u-flex-content-around":{"":{"alignContent":"space-around"}},"u-flex-middle":{"":{"justifyContent":"center","alignItems":"center","alignSelf":"center","alignContent":"center"}},"u-flex-grow":{"":{"flexGrow":1}},"u-flex-shrink":{"":{"flexShrink":1}},"u-margin-0":{"":{"!marginTop":"0rpx","!marginRight":"0rpx","!marginBottom":"0rpx","!marginLeft":"0rpx"}},"u-m-0":{"":{"!marginTop":"0rpx","!marginRight":"0rpx","!marginBottom":"0rpx","!marginLeft":"0rpx"}},"u-padding-0":{"":{"!paddingTop":"0rpx","!paddingRight":"0rpx","!paddingBottom":"0rpx","!paddingLeft":"0rpx"}},"u-p-0":{"":{"!paddingTop":"0rpx","!paddingRight":"0rpx","!paddingBottom":"0rpx","!paddingLeft":"0rpx"}},"u-m-l-0":{"":{"!marginLeft":"0rpx"}},"u-p-l-0":{"":{"!paddingLeft":"0rpx"}},"u-margin-left-0":{"":{"!marginLeft":"0rpx"}},"u-padding-left-0":{"":{"!paddingLeft":"0rpx"}},"u-m-t-0":{"":{"!marginTop":"0rpx"}},"u-p-t-0":{"":{"!paddingTop":"0rpx"}},"u-margin-top-0":{"":{"!marginTop":"0rpx"}},"u-padding-top-0":{"":{"!paddingTop":"0rpx"}},"u-m-r-0":{"":{"!marginRight":"0rpx"}},"u-p-r-0":{"":{"!paddingRight":"0rpx"}},"u-margin-right-0":{"":{"!marginRight":"0rpx"}},"u-padding-right-0":{"":{"!paddingRight":"0rpx"}},"u-m-b-0":{"":{"!marginBottom":"0rpx"}},"u-p-b-0":{"":{"!paddingBottom":"0rpx"}},"u-margin-bottom-0":{"":{"!marginBottom":"0rpx"}},"u-padding-bottom-0":{"":{"!paddingBottom":"0rpx"}},"u-margin-2":{"":{"!marginTop":"2rpx","!marginRight":"2rpx","!marginBottom":"2rpx","!marginLeft":"2rpx"}},"u-m-2":{"":{"!marginTop":"2rpx","!marginRight":"2rpx","!marginBottom":"2rpx","!marginLeft":"2rpx"}},"u-padding-2":{"":{"!paddingTop":"2rpx","!paddingRight":"2rpx","!paddingBottom":"2rpx","!paddingLeft":"2rpx"}},"u-p-2":{"":{"!paddingTop":"2rpx","!paddingRight":"2rpx","!paddingBottom":"2rpx","!paddingLeft":"2rpx"}},"u-m-l-2":{"":{"!marginLeft":"2rpx"}},"u-p-l-2":{"":{"!paddingLeft":"2rpx"}},"u-margin-left-2":{"":{"!marginLeft":"2rpx"}},"u-padding-left-2":{"":{"!paddingLeft":"2rpx"}},"u-m-t-2":{"":{"!marginTop":"2rpx"}},"u-p-t-2":{"":{"!paddingTop":"2rpx"}},"u-margin-top-2":{"":{"!marginTop":"2rpx"}},"u-padding-top-2":{"":{"!paddingTop":"2rpx"}},"u-m-r-2":{"":{"!marginRight":"2rpx"}},"u-p-r-2":{"":{"!paddingRight":"2rpx"}},"u-margin-right-2":{"":{"!marginRight":"2rpx"}},"u-padding-right-2":{"":{"!paddingRight":"2rpx"}},"u-m-b-2":{"":{"!marginBottom":"2rpx"}},"u-p-b-2":{"":{"!paddingBottom":"2rpx"}},"u-margin-bottom-2":{"":{"!marginBottom":"2rpx"}},"u-padding-bottom-2":{"":{"!paddingBottom":"2rpx"}},"u-margin-4":{"":{"!marginTop":"4rpx","!marginRight":"4rpx","!marginBottom":"4rpx","!marginLeft":"4rpx"}},"u-m-4":{"":{"!marginTop":"4rpx","!marginRight":"4rpx","!marginBottom":"4rpx","!marginLeft":"4rpx"}},"u-padding-4":{"":{"!paddingTop":"4rpx","!paddingRight":"4rpx","!paddingBottom":"4rpx","!paddingLeft":"4rpx"}},"u-p-4":{"":{"!paddingTop":"4rpx","!paddingRight":"4rpx","!paddingBottom":"4rpx","!paddingLeft":"4rpx"}},"u-m-l-4":{"":{"!marginLeft":"4rpx"}},"u-p-l-4":{"":{"!paddingLeft":"4rpx"}},"u-margin-left-4":{"":{"!marginLeft":"4rpx"}},"u-padding-left-4":{"":{"!paddingLeft":"4rpx"}},"u-m-t-4":{"":{"!marginTop":"4rpx"}},"u-p-t-4":{"":{"!paddingTop":"4rpx"}},"u-margin-top-4":{"":{"!marginTop":"4rpx"}},"u-padding-top-4":{"":{"!paddingTop":"4rpx"}},"u-m-r-4":{"":{"!marginRight":"4rpx"}},"u-p-r-4":{"":{"!paddingRight":"4rpx"}},"u-margin-right-4":{"":{"!marginRight":"4rpx"}},"u-padding-right-4":{"":{"!paddingRight":"4rpx"}},"u-m-b-4":{"":{"!marginBottom":"4rpx"}},"u-p-b-4":{"":{"!paddingBottom":"4rpx"}},"u-margin-bottom-4":{"":{"!marginBottom":"4rpx"}},"u-padding-bottom-4":{"":{"!paddingBottom":"4rpx"}},"u-margin-5":{"":{"!marginTop":"5rpx","!marginRight":"5rpx","!marginBottom":"5rpx","!marginLeft":"5rpx"}},"u-m-5":{"":{"!marginTop":"5rpx","!marginRight":"5rpx","!marginBottom":"5rpx","!marginLeft":"5rpx"}},"u-padding-5":{"":{"!paddingTop":"5rpx","!paddingRight":"5rpx","!paddingBottom":"5rpx","!paddingLeft":"5rpx"}},"u-p-5":{"":{"!paddingTop":"5rpx","!paddingRight":"5rpx","!paddingBottom":"5rpx","!paddingLeft":"5rpx"}},"u-m-l-5":{"":{"!marginLeft":"5rpx"}},"u-p-l-5":{"":{"!paddingLeft":"5rpx"}},"u-margin-left-5":{"":{"!marginLeft":"5rpx"}},"u-padding-left-5":{"":{"!paddingLeft":"5rpx"}},"u-m-t-5":{"":{"!marginTop":"5rpx"}},"u-p-t-5":{"":{"!paddingTop":"5rpx"}},"u-margin-top-5":{"":{"!marginTop":"5rpx"}},"u-padding-top-5":{"":{"!paddingTop":"5rpx"}},"u-m-r-5":{"":{"!marginRight":"5rpx"}},"u-p-r-5":{"":{"!paddingRight":"5rpx"}},"u-margin-right-5":{"":{"!marginRight":"5rpx"}},"u-padding-right-5":{"":{"!paddingRight":"5rpx"}},"u-m-b-5":{"":{"!marginBottom":"5rpx"}},"u-p-b-5":{"":{"!paddingBottom":"5rpx"}},"u-margin-bottom-5":{"":{"!marginBottom":"5rpx"}},"u-padding-bottom-5":{"":{"!paddingBottom":"5rpx"}},"u-margin-6":{"":{"!marginTop":"6rpx","!marginRight":"6rpx","!marginBottom":"6rpx","!marginLeft":"6rpx"}},"u-m-6":{"":{"!marginTop":"6rpx","!marginRight":"6rpx","!marginBottom":"6rpx","!marginLeft":"6rpx"}},"u-padding-6":{"":{"!paddingTop":"6rpx","!paddingRight":"6rpx","!paddingBottom":"6rpx","!paddingLeft":"6rpx"}},"u-p-6":{"":{"!paddingTop":"6rpx","!paddingRight":"6rpx","!paddingBottom":"6rpx","!paddingLeft":"6rpx"}},"u-m-l-6":{"":{"!marginLeft":"6rpx"}},"u-p-l-6":{"":{"!paddingLeft":"6rpx"}},"u-margin-left-6":{"":{"!marginLeft":"6rpx"}},"u-padding-left-6":{"":{"!paddingLeft":"6rpx"}},"u-m-t-6":{"":{"!marginTop":"6rpx"}},"u-p-t-6":{"":{"!paddingTop":"6rpx"}},"u-margin-top-6":{"":{"!marginTop":"6rpx"}},"u-padding-top-6":{"":{"!paddingTop":"6rpx"}},"u-m-r-6":{"":{"!marginRight":"6rpx"}},"u-p-r-6":{"":{"!paddingRight":"6rpx"}},"u-margin-right-6":{"":{"!marginRight":"6rpx"}},"u-padding-right-6":{"":{"!paddingRight":"6rpx"}},"u-m-b-6":{"":{"!marginBottom":"6rpx"}},"u-p-b-6":{"":{"!paddingBottom":"6rpx"}},"u-margin-bottom-6":{"":{"!marginBottom":"6rpx"}},"u-padding-bottom-6":{"":{"!paddingBottom":"6rpx"}},"u-margin-8":{"":{"!marginTop":"8rpx","!marginRight":"8rpx","!marginBottom":"8rpx","!marginLeft":"8rpx"}},"u-m-8":{"":{"!marginTop":"8rpx","!marginRight":"8rpx","!marginBottom":"8rpx","!marginLeft":"8rpx"}},"u-padding-8":{"":{"!paddingTop":"8rpx","!paddingRight":"8rpx","!paddingBottom":"8rpx","!paddingLeft":"8rpx"}},"u-p-8":{"":{"!paddingTop":"8rpx","!paddingRight":"8rpx","!paddingBottom":"8rpx","!paddingLeft":"8rpx"}},"u-m-l-8":{"":{"!marginLeft":"8rpx"}},"u-p-l-8":{"":{"!paddingLeft":"8rpx"}},"u-margin-left-8":{"":{"!marginLeft":"8rpx"}},"u-padding-left-8":{"":{"!paddingLeft":"8rpx"}},"u-m-t-8":{"":{"!marginTop":"8rpx"}},"u-p-t-8":{"":{"!paddingTop":"8rpx"}},"u-margin-top-8":{"":{"!marginTop":"8rpx"}},"u-padding-top-8":{"":{"!paddingTop":"8rpx"}},"u-m-r-8":{"":{"!marginRight":"8rpx"}},"u-p-r-8":{"":{"!paddingRight":"8rpx"}},"u-margin-right-8":{"":{"!marginRight":"8rpx"}},"u-padding-right-8":{"":{"!paddingRight":"8rpx"}},"u-m-b-8":{"":{"!marginBottom":"8rpx"}},"u-p-b-8":{"":{"!paddingBottom":"8rpx"}},"u-margin-bottom-8":{"":{"!marginBottom":"8rpx"}},"u-padding-bottom-8":{"":{"!paddingBottom":"8rpx"}},"u-margin-10":{"":{"!marginTop":"10rpx","!marginRight":"10rpx","!marginBottom":"10rpx","!marginLeft":"10rpx"}},"u-m-10":{"":{"!marginTop":"10rpx","!marginRight":"10rpx","!marginBottom":"10rpx","!marginLeft":"10rpx"}},"u-padding-10":{"":{"!paddingTop":"10rpx","!paddingRight":"10rpx","!paddingBottom":"10rpx","!paddingLeft":"10rpx"}},"u-p-10":{"":{"!paddingTop":"10rpx","!paddingRight":"10rpx","!paddingBottom":"10rpx","!paddingLeft":"10rpx"}},"u-m-l-10":{"":{"!marginLeft":"10rpx"}},"u-p-l-10":{"":{"!paddingLeft":"10rpx"}},"u-margin-left-10":{"":{"!marginLeft":"10rpx"}},"u-padding-left-10":{"":{"!paddingLeft":"10rpx"}},"u-m-t-10":{"":{"!marginTop":"10rpx"}},"u-p-t-10":{"":{"!paddingTop":"10rpx"}},"u-margin-top-10":{"":{"!marginTop":"10rpx"}},"u-padding-top-10":{"":{"!paddingTop":"10rpx"}},"u-m-r-10":{"":{"!marginRight":"10rpx"}},"u-p-r-10":{"":{"!paddingRight":"10rpx"}},"u-margin-right-10":{"":{"!marginRight":"10rpx"}},"u-padding-right-10":{"":{"!paddingRight":"10rpx"}},"u-m-b-10":{"":{"!marginBottom":"10rpx"}},"u-p-b-10":{"":{"!paddingBottom":"10rpx"}},"u-margin-bottom-10":{"":{"!marginBottom":"10rpx"}},"u-padding-bottom-10":{"":{"!paddingBottom":"10rpx"}},"u-margin-12":{"":{"!marginTop":"12rpx","!marginRight":"12rpx","!marginBottom":"12rpx","!marginLeft":"12rpx"}},"u-m-12":{"":{"!marginTop":"12rpx","!marginRight":"12rpx","!marginBottom":"12rpx","!marginLeft":"12rpx"}},"u-padding-12":{"":{"!paddingTop":"12rpx","!paddingRight":"12rpx","!paddingBottom":"12rpx","!paddingLeft":"12rpx"}},"u-p-12":{"":{"!paddingTop":"12rpx","!paddingRight":"12rpx","!paddingBottom":"12rpx","!paddingLeft":"12rpx"}},"u-m-l-12":{"":{"!marginLeft":"12rpx"}},"u-p-l-12":{"":{"!paddingLeft":"12rpx"}},"u-margin-left-12":{"":{"!marginLeft":"12rpx"}},"u-padding-left-12":{"":{"!paddingLeft":"12rpx"}},"u-m-t-12":{"":{"!marginTop":"12rpx"}},"u-p-t-12":{"":{"!paddingTop":"12rpx"}},"u-margin-top-12":{"":{"!marginTop":"12rpx"}},"u-padding-top-12":{"":{"!paddingTop":"12rpx"}},"u-m-r-12":{"":{"!marginRight":"12rpx"}},"u-p-r-12":{"":{"!paddingRight":"12rpx"}},"u-margin-right-12":{"":{"!marginRight":"12rpx"}},"u-padding-right-12":{"":{"!paddingRight":"12rpx"}},"u-m-b-12":{"":{"!marginBottom":"12rpx"}},"u-p-b-12":{"":{"!paddingBottom":"12rpx"}},"u-margin-bottom-12":{"":{"!marginBottom":"12rpx"}},"u-padding-bottom-12":{"":{"!paddingBottom":"12rpx"}},"u-margin-14":{"":{"!marginTop":"14rpx","!marginRight":"14rpx","!marginBottom":"14rpx","!marginLeft":"14rpx"}},"u-m-14":{"":{"!marginTop":"14rpx","!marginRight":"14rpx","!marginBottom":"14rpx","!marginLeft":"14rpx"}},"u-padding-14":{"":{"!paddingTop":"14rpx","!paddingRight":"14rpx","!paddingBottom":"14rpx","!paddingLeft":"14rpx"}},"u-p-14":{"":{"!paddingTop":"14rpx","!paddingRight":"14rpx","!paddingBottom":"14rpx","!paddingLeft":"14rpx"}},"u-m-l-14":{"":{"!marginLeft":"14rpx"}},"u-p-l-14":{"":{"!paddingLeft":"14rpx"}},"u-margin-left-14":{"":{"!marginLeft":"14rpx"}},"u-padding-left-14":{"":{"!paddingLeft":"14rpx"}},"u-m-t-14":{"":{"!marginTop":"14rpx"}},"u-p-t-14":{"":{"!paddingTop":"14rpx"}},"u-margin-top-14":{"":{"!marginTop":"14rpx"}},"u-padding-top-14":{"":{"!paddingTop":"14rpx"}},"u-m-r-14":{"":{"!marginRight":"14rpx"}},"u-p-r-14":{"":{"!paddingRight":"14rpx"}},"u-margin-right-14":{"":{"!marginRight":"14rpx"}},"u-padding-right-14":{"":{"!paddingRight":"14rpx"}},"u-m-b-14":{"":{"!marginBottom":"14rpx"}},"u-p-b-14":{"":{"!paddingBottom":"14rpx"}},"u-margin-bottom-14":{"":{"!marginBottom":"14rpx"}},"u-padding-bottom-14":{"":{"!paddingBottom":"14rpx"}},"u-margin-15":{"":{"!marginTop":"15rpx","!marginRight":"15rpx","!marginBottom":"15rpx","!marginLeft":"15rpx"}},"u-m-15":{"":{"!marginTop":"15rpx","!marginRight":"15rpx","!marginBottom":"15rpx","!marginLeft":"15rpx"}},"u-padding-15":{"":{"!paddingTop":"15rpx","!paddingRight":"15rpx","!paddingBottom":"15rpx","!paddingLeft":"15rpx"}},"u-p-15":{"":{"!paddingTop":"15rpx","!paddingRight":"15rpx","!paddingBottom":"15rpx","!paddingLeft":"15rpx"}},"u-m-l-15":{"":{"!marginLeft":"15rpx"}},"u-p-l-15":{"":{"!paddingLeft":"15rpx"}},"u-margin-left-15":{"":{"!marginLeft":"15rpx"}},"u-padding-left-15":{"":{"!paddingLeft":"15rpx"}},"u-m-t-15":{"":{"!marginTop":"15rpx"}},"u-p-t-15":{"":{"!paddingTop":"15rpx"}},"u-margin-top-15":{"":{"!marginTop":"15rpx"}},"u-padding-top-15":{"":{"!paddingTop":"15rpx"}},"u-m-r-15":{"":{"!marginRight":"15rpx"}},"u-p-r-15":{"":{"!paddingRight":"15rpx"}},"u-margin-right-15":{"":{"!marginRight":"15rpx"}},"u-padding-right-15":{"":{"!paddingRight":"15rpx"}},"u-m-b-15":{"":{"!marginBottom":"15rpx"}},"u-p-b-15":{"":{"!paddingBottom":"15rpx"}},"u-margin-bottom-15":{"":{"!marginBottom":"15rpx"}},"u-padding-bottom-15":{"":{"!paddingBottom":"15rpx"}},"u-margin-16":{"":{"!marginTop":"16rpx","!marginRight":"16rpx","!marginBottom":"16rpx","!marginLeft":"16rpx"}},"u-m-16":{"":{"!marginTop":"16rpx","!marginRight":"16rpx","!marginBottom":"16rpx","!marginLeft":"16rpx"}},"u-padding-16":{"":{"!paddingTop":"16rpx","!paddingRight":"16rpx","!paddingBottom":"16rpx","!paddingLeft":"16rpx"}},"u-p-16":{"":{"!paddingTop":"16rpx","!paddingRight":"16rpx","!paddingBottom":"16rpx","!paddingLeft":"16rpx"}},"u-m-l-16":{"":{"!marginLeft":"16rpx"}},"u-p-l-16":{"":{"!paddingLeft":"16rpx"}},"u-margin-left-16":{"":{"!marginLeft":"16rpx"}},"u-padding-left-16":{"":{"!paddingLeft":"16rpx"}},"u-m-t-16":{"":{"!marginTop":"16rpx"}},"u-p-t-16":{"":{"!paddingTop":"16rpx"}},"u-margin-top-16":{"":{"!marginTop":"16rpx"}},"u-padding-top-16":{"":{"!paddingTop":"16rpx"}},"u-m-r-16":{"":{"!marginRight":"16rpx"}},"u-p-r-16":{"":{"!paddingRight":"16rpx"}},"u-margin-right-16":{"":{"!marginRight":"16rpx"}},"u-padding-right-16":{"":{"!paddingRight":"16rpx"}},"u-m-b-16":{"":{"!marginBottom":"16rpx"}},"u-p-b-16":{"":{"!paddingBottom":"16rpx"}},"u-margin-bottom-16":{"":{"!marginBottom":"16rpx"}},"u-padding-bottom-16":{"":{"!paddingBottom":"16rpx"}},"u-margin-18":{"":{"!marginTop":"18rpx","!marginRight":"18rpx","!marginBottom":"18rpx","!marginLeft":"18rpx"}},"u-m-18":{"":{"!marginTop":"18rpx","!marginRight":"18rpx","!marginBottom":"18rpx","!marginLeft":"18rpx"}},"u-padding-18":{"":{"!paddingTop":"18rpx","!paddingRight":"18rpx","!paddingBottom":"18rpx","!paddingLeft":"18rpx"}},"u-p-18":{"":{"!paddingTop":"18rpx","!paddingRight":"18rpx","!paddingBottom":"18rpx","!paddingLeft":"18rpx"}},"u-m-l-18":{"":{"!marginLeft":"18rpx"}},"u-p-l-18":{"":{"!paddingLeft":"18rpx"}},"u-margin-left-18":{"":{"!marginLeft":"18rpx"}},"u-padding-left-18":{"":{"!paddingLeft":"18rpx"}},"u-m-t-18":{"":{"!marginTop":"18rpx"}},"u-p-t-18":{"":{"!paddingTop":"18rpx"}},"u-margin-top-18":{"":{"!marginTop":"18rpx"}},"u-padding-top-18":{"":{"!paddingTop":"18rpx"}},"u-m-r-18":{"":{"!marginRight":"18rpx"}},"u-p-r-18":{"":{"!paddingRight":"18rpx"}},"u-margin-right-18":{"":{"!marginRight":"18rpx"}},"u-padding-right-18":{"":{"!paddingRight":"18rpx"}},"u-m-b-18":{"":{"!marginBottom":"18rpx"}},"u-p-b-18":{"":{"!paddingBottom":"18rpx"}},"u-margin-bottom-18":{"":{"!marginBottom":"18rpx"}},"u-padding-bottom-18":{"":{"!paddingBottom":"18rpx"}},"u-margin-20":{"":{"!marginTop":"20rpx","!marginRight":"20rpx","!marginBottom":"20rpx","!marginLeft":"20rpx"}},"u-m-20":{"":{"!marginTop":"20rpx","!marginRight":"20rpx","!marginBottom":"20rpx","!marginLeft":"20rpx"}},"u-padding-20":{"":{"!paddingTop":"20rpx","!paddingRight":"20rpx","!paddingBottom":"20rpx","!paddingLeft":"20rpx"}},"u-p-20":{"":{"!paddingTop":"20rpx","!paddingRight":"20rpx","!paddingBottom":"20rpx","!paddingLeft":"20rpx"}},"u-m-l-20":{"":{"!marginLeft":"20rpx"}},"u-p-l-20":{"":{"!paddingLeft":"20rpx"}},"u-margin-left-20":{"":{"!marginLeft":"20rpx"}},"u-padding-left-20":{"":{"!paddingLeft":"20rpx"}},"u-m-t-20":{"":{"!marginTop":"20rpx"}},"u-p-t-20":{"":{"!paddingTop":"20rpx"}},"u-margin-top-20":{"":{"!marginTop":"20rpx"}},"u-padding-top-20":{"":{"!paddingTop":"20rpx"}},"u-m-r-20":{"":{"!marginRight":"20rpx"}},"u-p-r-20":{"":{"!paddingRight":"20rpx"}},"u-margin-right-20":{"":{"!marginRight":"20rpx"}},"u-padding-right-20":{"":{"!paddingRight":"20rpx"}},"u-m-b-20":{"":{"!marginBottom":"20rpx"}},"u-p-b-20":{"":{"!paddingBottom":"20rpx"}},"u-margin-bottom-20":{"":{"!marginBottom":"20rpx"}},"u-padding-bottom-20":{"":{"!paddingBottom":"20rpx"}},"u-margin-22":{"":{"!marginTop":"22rpx","!marginRight":"22rpx","!marginBottom":"22rpx","!marginLeft":"22rpx"}},"u-m-22":{"":{"!marginTop":"22rpx","!marginRight":"22rpx","!marginBottom":"22rpx","!marginLeft":"22rpx"}},"u-padding-22":{"":{"!paddingTop":"22rpx","!paddingRight":"22rpx","!paddingBottom":"22rpx","!paddingLeft":"22rpx"}},"u-p-22":{"":{"!paddingTop":"22rpx","!paddingRight":"22rpx","!paddingBottom":"22rpx","!paddingLeft":"22rpx"}},"u-m-l-22":{"":{"!marginLeft":"22rpx"}},"u-p-l-22":{"":{"!paddingLeft":"22rpx"}},"u-margin-left-22":{"":{"!marginLeft":"22rpx"}},"u-padding-left-22":{"":{"!paddingLeft":"22rpx"}},"u-m-t-22":{"":{"!marginTop":"22rpx"}},"u-p-t-22":{"":{"!paddingTop":"22rpx"}},"u-margin-top-22":{"":{"!marginTop":"22rpx"}},"u-padding-top-22":{"":{"!paddingTop":"22rpx"}},"u-m-r-22":{"":{"!marginRight":"22rpx"}},"u-p-r-22":{"":{"!paddingRight":"22rpx"}},"u-margin-right-22":{"":{"!marginRight":"22rpx"}},"u-padding-right-22":{"":{"!paddingRight":"22rpx"}},"u-m-b-22":{"":{"!marginBottom":"22rpx"}},"u-p-b-22":{"":{"!paddingBottom":"22rpx"}},"u-margin-bottom-22":{"":{"!marginBottom":"22rpx"}},"u-padding-bottom-22":{"":{"!paddingBottom":"22rpx"}},"u-margin-24":{"":{"!marginTop":"24rpx","!marginRight":"24rpx","!marginBottom":"24rpx","!marginLeft":"24rpx"}},"u-m-24":{"":{"!marginTop":"24rpx","!marginRight":"24rpx","!marginBottom":"24rpx","!marginLeft":"24rpx"}},"u-padding-24":{"":{"!paddingTop":"24rpx","!paddingRight":"24rpx","!paddingBottom":"24rpx","!paddingLeft":"24rpx"}},"u-p-24":{"":{"!paddingTop":"24rpx","!paddingRight":"24rpx","!paddingBottom":"24rpx","!paddingLeft":"24rpx"}},"u-m-l-24":{"":{"!marginLeft":"24rpx"}},"u-p-l-24":{"":{"!paddingLeft":"24rpx"}},"u-margin-left-24":{"":{"!marginLeft":"24rpx"}},"u-padding-left-24":{"":{"!paddingLeft":"24rpx"}},"u-m-t-24":{"":{"!marginTop":"24rpx"}},"u-p-t-24":{"":{"!paddingTop":"24rpx"}},"u-margin-top-24":{"":{"!marginTop":"24rpx"}},"u-padding-top-24":{"":{"!paddingTop":"24rpx"}},"u-m-r-24":{"":{"!marginRight":"24rpx"}},"u-p-r-24":{"":{"!paddingRight":"24rpx"}},"u-margin-right-24":{"":{"!marginRight":"24rpx"}},"u-padding-right-24":{"":{"!paddingRight":"24rpx"}},"u-m-b-24":{"":{"!marginBottom":"24rpx"}},"u-p-b-24":{"":{"!paddingBottom":"24rpx"}},"u-margin-bottom-24":{"":{"!marginBottom":"24rpx"}},"u-padding-bottom-24":{"":{"!paddingBottom":"24rpx"}},"u-margin-25":{"":{"!marginTop":"25rpx","!marginRight":"25rpx","!marginBottom":"25rpx","!marginLeft":"25rpx"}},"u-m-25":{"":{"!marginTop":"25rpx","!marginRight":"25rpx","!marginBottom":"25rpx","!marginLeft":"25rpx"}},"u-padding-25":{"":{"!paddingTop":"25rpx","!paddingRight":"25rpx","!paddingBottom":"25rpx","!paddingLeft":"25rpx"}},"u-p-25":{"":{"!paddingTop":"25rpx","!paddingRight":"25rpx","!paddingBottom":"25rpx","!paddingLeft":"25rpx"}},"u-m-l-25":{"":{"!marginLeft":"25rpx"}},"u-p-l-25":{"":{"!paddingLeft":"25rpx"}},"u-margin-left-25":{"":{"!marginLeft":"25rpx"}},"u-padding-left-25":{"":{"!paddingLeft":"25rpx"}},"u-m-t-25":{"":{"!marginTop":"25rpx"}},"u-p-t-25":{"":{"!paddingTop":"25rpx"}},"u-margin-top-25":{"":{"!marginTop":"25rpx"}},"u-padding-top-25":{"":{"!paddingTop":"25rpx"}},"u-m-r-25":{"":{"!marginRight":"25rpx"}},"u-p-r-25":{"":{"!paddingRight":"25rpx"}},"u-margin-right-25":{"":{"!marginRight":"25rpx"}},"u-padding-right-25":{"":{"!paddingRight":"25rpx"}},"u-m-b-25":{"":{"!marginBottom":"25rpx"}},"u-p-b-25":{"":{"!paddingBottom":"25rpx"}},"u-margin-bottom-25":{"":{"!marginBottom":"25rpx"}},"u-padding-bottom-25":{"":{"!paddingBottom":"25rpx"}},"u-margin-26":{"":{"!marginTop":"26rpx","!marginRight":"26rpx","!marginBottom":"26rpx","!marginLeft":"26rpx"}},"u-m-26":{"":{"!marginTop":"26rpx","!marginRight":"26rpx","!marginBottom":"26rpx","!marginLeft":"26rpx"}},"u-padding-26":{"":{"!paddingTop":"26rpx","!paddingRight":"26rpx","!paddingBottom":"26rpx","!paddingLeft":"26rpx"}},"u-p-26":{"":{"!paddingTop":"26rpx","!paddingRight":"26rpx","!paddingBottom":"26rpx","!paddingLeft":"26rpx"}},"u-m-l-26":{"":{"!marginLeft":"26rpx"}},"u-p-l-26":{"":{"!paddingLeft":"26rpx"}},"u-margin-left-26":{"":{"!marginLeft":"26rpx"}},"u-padding-left-26":{"":{"!paddingLeft":"26rpx"}},"u-m-t-26":{"":{"!marginTop":"26rpx"}},"u-p-t-26":{"":{"!paddingTop":"26rpx"}},"u-margin-top-26":{"":{"!marginTop":"26rpx"}},"u-padding-top-26":{"":{"!paddingTop":"26rpx"}},"u-m-r-26":{"":{"!marginRight":"26rpx"}},"u-p-r-26":{"":{"!paddingRight":"26rpx"}},"u-margin-right-26":{"":{"!marginRight":"26rpx"}},"u-padding-right-26":{"":{"!paddingRight":"26rpx"}},"u-m-b-26":{"":{"!marginBottom":"26rpx"}},"u-p-b-26":{"":{"!paddingBottom":"26rpx"}},"u-margin-bottom-26":{"":{"!marginBottom":"26rpx"}},"u-padding-bottom-26":{"":{"!paddingBottom":"26rpx"}},"u-margin-28":{"":{"!marginTop":"28rpx","!marginRight":"28rpx","!marginBottom":"28rpx","!marginLeft":"28rpx"}},"u-m-28":{"":{"!marginTop":"28rpx","!marginRight":"28rpx","!marginBottom":"28rpx","!marginLeft":"28rpx"}},"u-padding-28":{"":{"!paddingTop":"28rpx","!paddingRight":"28rpx","!paddingBottom":"28rpx","!paddingLeft":"28rpx"}},"u-p-28":{"":{"!paddingTop":"28rpx","!paddingRight":"28rpx","!paddingBottom":"28rpx","!paddingLeft":"28rpx"}},"u-m-l-28":{"":{"!marginLeft":"28rpx"}},"u-p-l-28":{"":{"!paddingLeft":"28rpx"}},"u-margin-left-28":{"":{"!marginLeft":"28rpx"}},"u-padding-left-28":{"":{"!paddingLeft":"28rpx"}},"u-m-t-28":{"":{"!marginTop":"28rpx"}},"u-p-t-28":{"":{"!paddingTop":"28rpx"}},"u-margin-top-28":{"":{"!marginTop":"28rpx"}},"u-padding-top-28":{"":{"!paddingTop":"28rpx"}},"u-m-r-28":{"":{"!marginRight":"28rpx"}},"u-p-r-28":{"":{"!paddingRight":"28rpx"}},"u-margin-right-28":{"":{"!marginRight":"28rpx"}},"u-padding-right-28":{"":{"!paddingRight":"28rpx"}},"u-m-b-28":{"":{"!marginBottom":"28rpx"}},"u-p-b-28":{"":{"!paddingBottom":"28rpx"}},"u-margin-bottom-28":{"":{"!marginBottom":"28rpx"}},"u-padding-bottom-28":{"":{"!paddingBottom":"28rpx"}},"u-margin-30":{"":{"!marginTop":"30rpx","!marginRight":"30rpx","!marginBottom":"30rpx","!marginLeft":"30rpx"}},"u-m-30":{"":{"!marginTop":"30rpx","!marginRight":"30rpx","!marginBottom":"30rpx","!marginLeft":"30rpx"}},"u-padding-30":{"":{"!paddingTop":"30rpx","!paddingRight":"30rpx","!paddingBottom":"30rpx","!paddingLeft":"30rpx"}},"u-p-30":{"":{"!paddingTop":"30rpx","!paddingRight":"30rpx","!paddingBottom":"30rpx","!paddingLeft":"30rpx"}},"u-m-l-30":{"":{"!marginLeft":"30rpx"}},"u-p-l-30":{"":{"!paddingLeft":"30rpx"}},"u-margin-left-30":{"":{"!marginLeft":"30rpx"}},"u-padding-left-30":{"":{"!paddingLeft":"30rpx"}},"u-m-t-30":{"":{"!marginTop":"30rpx"}},"u-p-t-30":{"":{"!paddingTop":"30rpx"}},"u-margin-top-30":{"":{"!marginTop":"30rpx"}},"u-padding-top-30":{"":{"!paddingTop":"30rpx"}},"u-m-r-30":{"":{"!marginRight":"30rpx"}},"u-p-r-30":{"":{"!paddingRight":"30rpx"}},"u-margin-right-30":{"":{"!marginRight":"30rpx"}},"u-padding-right-30":{"":{"!paddingRight":"30rpx"}},"u-m-b-30":{"":{"!marginBottom":"30rpx"}},"u-p-b-30":{"":{"!paddingBottom":"30rpx"}},"u-margin-bottom-30":{"":{"!marginBottom":"30rpx"}},"u-padding-bottom-30":{"":{"!paddingBottom":"30rpx"}},"u-margin-32":{"":{"!marginTop":"32rpx","!marginRight":"32rpx","!marginBottom":"32rpx","!marginLeft":"32rpx"}},"u-m-32":{"":{"!marginTop":"32rpx","!marginRight":"32rpx","!marginBottom":"32rpx","!marginLeft":"32rpx"}},"u-padding-32":{"":{"!paddingTop":"32rpx","!paddingRight":"32rpx","!paddingBottom":"32rpx","!paddingLeft":"32rpx"}},"u-p-32":{"":{"!paddingTop":"32rpx","!paddingRight":"32rpx","!paddingBottom":"32rpx","!paddingLeft":"32rpx"}},"u-m-l-32":{"":{"!marginLeft":"32rpx"}},"u-p-l-32":{"":{"!paddingLeft":"32rpx"}},"u-margin-left-32":{"":{"!marginLeft":"32rpx"}},"u-padding-left-32":{"":{"!paddingLeft":"32rpx"}},"u-m-t-32":{"":{"!marginTop":"32rpx"}},"u-p-t-32":{"":{"!paddingTop":"32rpx"}},"u-margin-top-32":{"":{"!marginTop":"32rpx"}},"u-padding-top-32":{"":{"!paddingTop":"32rpx"}},"u-m-r-32":{"":{"!marginRight":"32rpx"}},"u-p-r-32":{"":{"!paddingRight":"32rpx"}},"u-margin-right-32":{"":{"!marginRight":"32rpx"}},"u-padding-right-32":{"":{"!paddingRight":"32rpx"}},"u-m-b-32":{"":{"!marginBottom":"32rpx"}},"u-p-b-32":{"":{"!paddingBottom":"32rpx"}},"u-margin-bottom-32":{"":{"!marginBottom":"32rpx"}},"u-padding-bottom-32":{"":{"!paddingBottom":"32rpx"}},"u-margin-34":{"":{"!marginTop":"34rpx","!marginRight":"34rpx","!marginBottom":"34rpx","!marginLeft":"34rpx"}},"u-m-34":{"":{"!marginTop":"34rpx","!marginRight":"34rpx","!marginBottom":"34rpx","!marginLeft":"34rpx"}},"u-padding-34":{"":{"!paddingTop":"34rpx","!paddingRight":"34rpx","!paddingBottom":"34rpx","!paddingLeft":"34rpx"}},"u-p-34":{"":{"!paddingTop":"34rpx","!paddingRight":"34rpx","!paddingBottom":"34rpx","!paddingLeft":"34rpx"}},"u-m-l-34":{"":{"!marginLeft":"34rpx"}},"u-p-l-34":{"":{"!paddingLeft":"34rpx"}},"u-margin-left-34":{"":{"!marginLeft":"34rpx"}},"u-padding-left-34":{"":{"!paddingLeft":"34rpx"}},"u-m-t-34":{"":{"!marginTop":"34rpx"}},"u-p-t-34":{"":{"!paddingTop":"34rpx"}},"u-margin-top-34":{"":{"!marginTop":"34rpx"}},"u-padding-top-34":{"":{"!paddingTop":"34rpx"}},"u-m-r-34":{"":{"!marginRight":"34rpx"}},"u-p-r-34":{"":{"!paddingRight":"34rpx"}},"u-margin-right-34":{"":{"!marginRight":"34rpx"}},"u-padding-right-34":{"":{"!paddingRight":"34rpx"}},"u-m-b-34":{"":{"!marginBottom":"34rpx"}},"u-p-b-34":{"":{"!paddingBottom":"34rpx"}},"u-margin-bottom-34":{"":{"!marginBottom":"34rpx"}},"u-padding-bottom-34":{"":{"!paddingBottom":"34rpx"}},"u-margin-35":{"":{"!marginTop":"35rpx","!marginRight":"35rpx","!marginBottom":"35rpx","!marginLeft":"35rpx"}},"u-m-35":{"":{"!marginTop":"35rpx","!marginRight":"35rpx","!marginBottom":"35rpx","!marginLeft":"35rpx"}},"u-padding-35":{"":{"!paddingTop":"35rpx","!paddingRight":"35rpx","!paddingBottom":"35rpx","!paddingLeft":"35rpx"}},"u-p-35":{"":{"!paddingTop":"35rpx","!paddingRight":"35rpx","!paddingBottom":"35rpx","!paddingLeft":"35rpx"}},"u-m-l-35":{"":{"!marginLeft":"35rpx"}},"u-p-l-35":{"":{"!paddingLeft":"35rpx"}},"u-margin-left-35":{"":{"!marginLeft":"35rpx"}},"u-padding-left-35":{"":{"!paddingLeft":"35rpx"}},"u-m-t-35":{"":{"!marginTop":"35rpx"}},"u-p-t-35":{"":{"!paddingTop":"35rpx"}},"u-margin-top-35":{"":{"!marginTop":"35rpx"}},"u-padding-top-35":{"":{"!paddingTop":"35rpx"}},"u-m-r-35":{"":{"!marginRight":"35rpx"}},"u-p-r-35":{"":{"!paddingRight":"35rpx"}},"u-margin-right-35":{"":{"!marginRight":"35rpx"}},"u-padding-right-35":{"":{"!paddingRight":"35rpx"}},"u-m-b-35":{"":{"!marginBottom":"35rpx"}},"u-p-b-35":{"":{"!paddingBottom":"35rpx"}},"u-margin-bottom-35":{"":{"!marginBottom":"35rpx"}},"u-padding-bottom-35":{"":{"!paddingBottom":"35rpx"}},"u-margin-36":{"":{"!marginTop":"36rpx","!marginRight":"36rpx","!marginBottom":"36rpx","!marginLeft":"36rpx"}},"u-m-36":{"":{"!marginTop":"36rpx","!marginRight":"36rpx","!marginBottom":"36rpx","!marginLeft":"36rpx"}},"u-padding-36":{"":{"!paddingTop":"36rpx","!paddingRight":"36rpx","!paddingBottom":"36rpx","!paddingLeft":"36rpx"}},"u-p-36":{"":{"!paddingTop":"36rpx","!paddingRight":"36rpx","!paddingBottom":"36rpx","!paddingLeft":"36rpx"}},"u-m-l-36":{"":{"!marginLeft":"36rpx"}},"u-p-l-36":{"":{"!paddingLeft":"36rpx"}},"u-margin-left-36":{"":{"!marginLeft":"36rpx"}},"u-padding-left-36":{"":{"!paddingLeft":"36rpx"}},"u-m-t-36":{"":{"!marginTop":"36rpx"}},"u-p-t-36":{"":{"!paddingTop":"36rpx"}},"u-margin-top-36":{"":{"!marginTop":"36rpx"}},"u-padding-top-36":{"":{"!paddingTop":"36rpx"}},"u-m-r-36":{"":{"!marginRight":"36rpx"}},"u-p-r-36":{"":{"!paddingRight":"36rpx"}},"u-margin-right-36":{"":{"!marginRight":"36rpx"}},"u-padding-right-36":{"":{"!paddingRight":"36rpx"}},"u-m-b-36":{"":{"!marginBottom":"36rpx"}},"u-p-b-36":{"":{"!paddingBottom":"36rpx"}},"u-margin-bottom-36":{"":{"!marginBottom":"36rpx"}},"u-padding-bottom-36":{"":{"!paddingBottom":"36rpx"}},"u-margin-38":{"":{"!marginTop":"38rpx","!marginRight":"38rpx","!marginBottom":"38rpx","!marginLeft":"38rpx"}},"u-m-38":{"":{"!marginTop":"38rpx","!marginRight":"38rpx","!marginBottom":"38rpx","!marginLeft":"38rpx"}},"u-padding-38":{"":{"!paddingTop":"38rpx","!paddingRight":"38rpx","!paddingBottom":"38rpx","!paddingLeft":"38rpx"}},"u-p-38":{"":{"!paddingTop":"38rpx","!paddingRight":"38rpx","!paddingBottom":"38rpx","!paddingLeft":"38rpx"}},"u-m-l-38":{"":{"!marginLeft":"38rpx"}},"u-p-l-38":{"":{"!paddingLeft":"38rpx"}},"u-margin-left-38":{"":{"!marginLeft":"38rpx"}},"u-padding-left-38":{"":{"!paddingLeft":"38rpx"}},"u-m-t-38":{"":{"!marginTop":"38rpx"}},"u-p-t-38":{"":{"!paddingTop":"38rpx"}},"u-margin-top-38":{"":{"!marginTop":"38rpx"}},"u-padding-top-38":{"":{"!paddingTop":"38rpx"}},"u-m-r-38":{"":{"!marginRight":"38rpx"}},"u-p-r-38":{"":{"!paddingRight":"38rpx"}},"u-margin-right-38":{"":{"!marginRight":"38rpx"}},"u-padding-right-38":{"":{"!paddingRight":"38rpx"}},"u-m-b-38":{"":{"!marginBottom":"38rpx"}},"u-p-b-38":{"":{"!paddingBottom":"38rpx"}},"u-margin-bottom-38":{"":{"!marginBottom":"38rpx"}},"u-padding-bottom-38":{"":{"!paddingBottom":"38rpx"}},"u-margin-40":{"":{"!marginTop":"40rpx","!marginRight":"40rpx","!marginBottom":"40rpx","!marginLeft":"40rpx"}},"u-m-40":{"":{"!marginTop":"40rpx","!marginRight":"40rpx","!marginBottom":"40rpx","!marginLeft":"40rpx"}},"u-padding-40":{"":{"!paddingTop":"40rpx","!paddingRight":"40rpx","!paddingBottom":"40rpx","!paddingLeft":"40rpx"}},"u-p-40":{"":{"!paddingTop":"40rpx","!paddingRight":"40rpx","!paddingBottom":"40rpx","!paddingLeft":"40rpx"}},"u-m-l-40":{"":{"!marginLeft":"40rpx"}},"u-p-l-40":{"":{"!paddingLeft":"40rpx"}},"u-margin-left-40":{"":{"!marginLeft":"40rpx"}},"u-padding-left-40":{"":{"!paddingLeft":"40rpx"}},"u-m-t-40":{"":{"!marginTop":"40rpx"}},"u-p-t-40":{"":{"!paddingTop":"40rpx"}},"u-margin-top-40":{"":{"!marginTop":"40rpx"}},"u-padding-top-40":{"":{"!paddingTop":"40rpx"}},"u-m-r-40":{"":{"!marginRight":"40rpx"}},"u-p-r-40":{"":{"!paddingRight":"40rpx"}},"u-margin-right-40":{"":{"!marginRight":"40rpx"}},"u-padding-right-40":{"":{"!paddingRight":"40rpx"}},"u-m-b-40":{"":{"!marginBottom":"40rpx"}},"u-p-b-40":{"":{"!paddingBottom":"40rpx"}},"u-margin-bottom-40":{"":{"!marginBottom":"40rpx"}},"u-padding-bottom-40":{"":{"!paddingBottom":"40rpx"}},"u-margin-42":{"":{"!marginTop":"42rpx","!marginRight":"42rpx","!marginBottom":"42rpx","!marginLeft":"42rpx"}},"u-m-42":{"":{"!marginTop":"42rpx","!marginRight":"42rpx","!marginBottom":"42rpx","!marginLeft":"42rpx"}},"u-padding-42":{"":{"!paddingTop":"42rpx","!paddingRight":"42rpx","!paddingBottom":"42rpx","!paddingLeft":"42rpx"}},"u-p-42":{"":{"!paddingTop":"42rpx","!paddingRight":"42rpx","!paddingBottom":"42rpx","!paddingLeft":"42rpx"}},"u-m-l-42":{"":{"!marginLeft":"42rpx"}},"u-p-l-42":{"":{"!paddingLeft":"42rpx"}},"u-margin-left-42":{"":{"!marginLeft":"42rpx"}},"u-padding-left-42":{"":{"!paddingLeft":"42rpx"}},"u-m-t-42":{"":{"!marginTop":"42rpx"}},"u-p-t-42":{"":{"!paddingTop":"42rpx"}},"u-margin-top-42":{"":{"!marginTop":"42rpx"}},"u-padding-top-42":{"":{"!paddingTop":"42rpx"}},"u-m-r-42":{"":{"!marginRight":"42rpx"}},"u-p-r-42":{"":{"!paddingRight":"42rpx"}},"u-margin-right-42":{"":{"!marginRight":"42rpx"}},"u-padding-right-42":{"":{"!paddingRight":"42rpx"}},"u-m-b-42":{"":{"!marginBottom":"42rpx"}},"u-p-b-42":{"":{"!paddingBottom":"42rpx"}},"u-margin-bottom-42":{"":{"!marginBottom":"42rpx"}},"u-padding-bottom-42":{"":{"!paddingBottom":"42rpx"}},"u-margin-44":{"":{"!marginTop":"44rpx","!marginRight":"44rpx","!marginBottom":"44rpx","!marginLeft":"44rpx"}},"u-m-44":{"":{"!marginTop":"44rpx","!marginRight":"44rpx","!marginBottom":"44rpx","!marginLeft":"44rpx"}},"u-padding-44":{"":{"!paddingTop":"44rpx","!paddingRight":"44rpx","!paddingBottom":"44rpx","!paddingLeft":"44rpx"}},"u-p-44":{"":{"!paddingTop":"44rpx","!paddingRight":"44rpx","!paddingBottom":"44rpx","!paddingLeft":"44rpx"}},"u-m-l-44":{"":{"!marginLeft":"44rpx"}},"u-p-l-44":{"":{"!paddingLeft":"44rpx"}},"u-margin-left-44":{"":{"!marginLeft":"44rpx"}},"u-padding-left-44":{"":{"!paddingLeft":"44rpx"}},"u-m-t-44":{"":{"!marginTop":"44rpx"}},"u-p-t-44":{"":{"!paddingTop":"44rpx"}},"u-margin-top-44":{"":{"!marginTop":"44rpx"}},"u-padding-top-44":{"":{"!paddingTop":"44rpx"}},"u-m-r-44":{"":{"!marginRight":"44rpx"}},"u-p-r-44":{"":{"!paddingRight":"44rpx"}},"u-margin-right-44":{"":{"!marginRight":"44rpx"}},"u-padding-right-44":{"":{"!paddingRight":"44rpx"}},"u-m-b-44":{"":{"!marginBottom":"44rpx"}},"u-p-b-44":{"":{"!paddingBottom":"44rpx"}},"u-margin-bottom-44":{"":{"!marginBottom":"44rpx"}},"u-padding-bottom-44":{"":{"!paddingBottom":"44rpx"}},"u-margin-45":{"":{"!marginTop":"45rpx","!marginRight":"45rpx","!marginBottom":"45rpx","!marginLeft":"45rpx"}},"u-m-45":{"":{"!marginTop":"45rpx","!marginRight":"45rpx","!marginBottom":"45rpx","!marginLeft":"45rpx"}},"u-padding-45":{"":{"!paddingTop":"45rpx","!paddingRight":"45rpx","!paddingBottom":"45rpx","!paddingLeft":"45rpx"}},"u-p-45":{"":{"!paddingTop":"45rpx","!paddingRight":"45rpx","!paddingBottom":"45rpx","!paddingLeft":"45rpx"}},"u-m-l-45":{"":{"!marginLeft":"45rpx"}},"u-p-l-45":{"":{"!paddingLeft":"45rpx"}},"u-margin-left-45":{"":{"!marginLeft":"45rpx"}},"u-padding-left-45":{"":{"!paddingLeft":"45rpx"}},"u-m-t-45":{"":{"!marginTop":"45rpx"}},"u-p-t-45":{"":{"!paddingTop":"45rpx"}},"u-margin-top-45":{"":{"!marginTop":"45rpx"}},"u-padding-top-45":{"":{"!paddingTop":"45rpx"}},"u-m-r-45":{"":{"!marginRight":"45rpx"}},"u-p-r-45":{"":{"!paddingRight":"45rpx"}},"u-margin-right-45":{"":{"!marginRight":"45rpx"}},"u-padding-right-45":{"":{"!paddingRight":"45rpx"}},"u-m-b-45":{"":{"!marginBottom":"45rpx"}},"u-p-b-45":{"":{"!paddingBottom":"45rpx"}},"u-margin-bottom-45":{"":{"!marginBottom":"45rpx"}},"u-padding-bottom-45":{"":{"!paddingBottom":"45rpx"}},"u-margin-46":{"":{"!marginTop":"46rpx","!marginRight":"46rpx","!marginBottom":"46rpx","!marginLeft":"46rpx"}},"u-m-46":{"":{"!marginTop":"46rpx","!marginRight":"46rpx","!marginBottom":"46rpx","!marginLeft":"46rpx"}},"u-padding-46":{"":{"!paddingTop":"46rpx","!paddingRight":"46rpx","!paddingBottom":"46rpx","!paddingLeft":"46rpx"}},"u-p-46":{"":{"!paddingTop":"46rpx","!paddingRight":"46rpx","!paddingBottom":"46rpx","!paddingLeft":"46rpx"}},"u-m-l-46":{"":{"!marginLeft":"46rpx"}},"u-p-l-46":{"":{"!paddingLeft":"46rpx"}},"u-margin-left-46":{"":{"!marginLeft":"46rpx"}},"u-padding-left-46":{"":{"!paddingLeft":"46rpx"}},"u-m-t-46":{"":{"!marginTop":"46rpx"}},"u-p-t-46":{"":{"!paddingTop":"46rpx"}},"u-margin-top-46":{"":{"!marginTop":"46rpx"}},"u-padding-top-46":{"":{"!paddingTop":"46rpx"}},"u-m-r-46":{"":{"!marginRight":"46rpx"}},"u-p-r-46":{"":{"!paddingRight":"46rpx"}},"u-margin-right-46":{"":{"!marginRight":"46rpx"}},"u-padding-right-46":{"":{"!paddingRight":"46rpx"}},"u-m-b-46":{"":{"!marginBottom":"46rpx"}},"u-p-b-46":{"":{"!paddingBottom":"46rpx"}},"u-margin-bottom-46":{"":{"!marginBottom":"46rpx"}},"u-padding-bottom-46":{"":{"!paddingBottom":"46rpx"}},"u-margin-48":{"":{"!marginTop":"48rpx","!marginRight":"48rpx","!marginBottom":"48rpx","!marginLeft":"48rpx"}},"u-m-48":{"":{"!marginTop":"48rpx","!marginRight":"48rpx","!marginBottom":"48rpx","!marginLeft":"48rpx"}},"u-padding-48":{"":{"!paddingTop":"48rpx","!paddingRight":"48rpx","!paddingBottom":"48rpx","!paddingLeft":"48rpx"}},"u-p-48":{"":{"!paddingTop":"48rpx","!paddingRight":"48rpx","!paddingBottom":"48rpx","!paddingLeft":"48rpx"}},"u-m-l-48":{"":{"!marginLeft":"48rpx"}},"u-p-l-48":{"":{"!paddingLeft":"48rpx"}},"u-margin-left-48":{"":{"!marginLeft":"48rpx"}},"u-padding-left-48":{"":{"!paddingLeft":"48rpx"}},"u-m-t-48":{"":{"!marginTop":"48rpx"}},"u-p-t-48":{"":{"!paddingTop":"48rpx"}},"u-margin-top-48":{"":{"!marginTop":"48rpx"}},"u-padding-top-48":{"":{"!paddingTop":"48rpx"}},"u-m-r-48":{"":{"!marginRight":"48rpx"}},"u-p-r-48":{"":{"!paddingRight":"48rpx"}},"u-margin-right-48":{"":{"!marginRight":"48rpx"}},"u-padding-right-48":{"":{"!paddingRight":"48rpx"}},"u-m-b-48":{"":{"!marginBottom":"48rpx"}},"u-p-b-48":{"":{"!paddingBottom":"48rpx"}},"u-margin-bottom-48":{"":{"!marginBottom":"48rpx"}},"u-padding-bottom-48":{"":{"!paddingBottom":"48rpx"}},"u-margin-50":{"":{"!marginTop":"50rpx","!marginRight":"50rpx","!marginBottom":"50rpx","!marginLeft":"50rpx"}},"u-m-50":{"":{"!marginTop":"50rpx","!marginRight":"50rpx","!marginBottom":"50rpx","!marginLeft":"50rpx"}},"u-padding-50":{"":{"!paddingTop":"50rpx","!paddingRight":"50rpx","!paddingBottom":"50rpx","!paddingLeft":"50rpx"}},"u-p-50":{"":{"!paddingTop":"50rpx","!paddingRight":"50rpx","!paddingBottom":"50rpx","!paddingLeft":"50rpx"}},"u-m-l-50":{"":{"!marginLeft":"50rpx"}},"u-p-l-50":{"":{"!paddingLeft":"50rpx"}},"u-margin-left-50":{"":{"!marginLeft":"50rpx"}},"u-padding-left-50":{"":{"!paddingLeft":"50rpx"}},"u-m-t-50":{"":{"!marginTop":"50rpx"}},"u-p-t-50":{"":{"!paddingTop":"50rpx"}},"u-margin-top-50":{"":{"!marginTop":"50rpx"}},"u-padding-top-50":{"":{"!paddingTop":"50rpx"}},"u-m-r-50":{"":{"!marginRight":"50rpx"}},"u-p-r-50":{"":{"!paddingRight":"50rpx"}},"u-margin-right-50":{"":{"!marginRight":"50rpx"}},"u-padding-right-50":{"":{"!paddingRight":"50rpx"}},"u-m-b-50":{"":{"!marginBottom":"50rpx"}},"u-p-b-50":{"":{"!paddingBottom":"50rpx"}},"u-margin-bottom-50":{"":{"!marginBottom":"50rpx"}},"u-padding-bottom-50":{"":{"!paddingBottom":"50rpx"}},"u-margin-52":{"":{"!marginTop":"52rpx","!marginRight":"52rpx","!marginBottom":"52rpx","!marginLeft":"52rpx"}},"u-m-52":{"":{"!marginTop":"52rpx","!marginRight":"52rpx","!marginBottom":"52rpx","!marginLeft":"52rpx"}},"u-padding-52":{"":{"!paddingTop":"52rpx","!paddingRight":"52rpx","!paddingBottom":"52rpx","!paddingLeft":"52rpx"}},"u-p-52":{"":{"!paddingTop":"52rpx","!paddingRight":"52rpx","!paddingBottom":"52rpx","!paddingLeft":"52rpx"}},"u-m-l-52":{"":{"!marginLeft":"52rpx"}},"u-p-l-52":{"":{"!paddingLeft":"52rpx"}},"u-margin-left-52":{"":{"!marginLeft":"52rpx"}},"u-padding-left-52":{"":{"!paddingLeft":"52rpx"}},"u-m-t-52":{"":{"!marginTop":"52rpx"}},"u-p-t-52":{"":{"!paddingTop":"52rpx"}},"u-margin-top-52":{"":{"!marginTop":"52rpx"}},"u-padding-top-52":{"":{"!paddingTop":"52rpx"}},"u-m-r-52":{"":{"!marginRight":"52rpx"}},"u-p-r-52":{"":{"!paddingRight":"52rpx"}},"u-margin-right-52":{"":{"!marginRight":"52rpx"}},"u-padding-right-52":{"":{"!paddingRight":"52rpx"}},"u-m-b-52":{"":{"!marginBottom":"52rpx"}},"u-p-b-52":{"":{"!paddingBottom":"52rpx"}},"u-margin-bottom-52":{"":{"!marginBottom":"52rpx"}},"u-padding-bottom-52":{"":{"!paddingBottom":"52rpx"}},"u-margin-54":{"":{"!marginTop":"54rpx","!marginRight":"54rpx","!marginBottom":"54rpx","!marginLeft":"54rpx"}},"u-m-54":{"":{"!marginTop":"54rpx","!marginRight":"54rpx","!marginBottom":"54rpx","!marginLeft":"54rpx"}},"u-padding-54":{"":{"!paddingTop":"54rpx","!paddingRight":"54rpx","!paddingBottom":"54rpx","!paddingLeft":"54rpx"}},"u-p-54":{"":{"!paddingTop":"54rpx","!paddingRight":"54rpx","!paddingBottom":"54rpx","!paddingLeft":"54rpx"}},"u-m-l-54":{"":{"!marginLeft":"54rpx"}},"u-p-l-54":{"":{"!paddingLeft":"54rpx"}},"u-margin-left-54":{"":{"!marginLeft":"54rpx"}},"u-padding-left-54":{"":{"!paddingLeft":"54rpx"}},"u-m-t-54":{"":{"!marginTop":"54rpx"}},"u-p-t-54":{"":{"!paddingTop":"54rpx"}},"u-margin-top-54":{"":{"!marginTop":"54rpx"}},"u-padding-top-54":{"":{"!paddingTop":"54rpx"}},"u-m-r-54":{"":{"!marginRight":"54rpx"}},"u-p-r-54":{"":{"!paddingRight":"54rpx"}},"u-margin-right-54":{"":{"!marginRight":"54rpx"}},"u-padding-right-54":{"":{"!paddingRight":"54rpx"}},"u-m-b-54":{"":{"!marginBottom":"54rpx"}},"u-p-b-54":{"":{"!paddingBottom":"54rpx"}},"u-margin-bottom-54":{"":{"!marginBottom":"54rpx"}},"u-padding-bottom-54":{"":{"!paddingBottom":"54rpx"}},"u-margin-55":{"":{"!marginTop":"55rpx","!marginRight":"55rpx","!marginBottom":"55rpx","!marginLeft":"55rpx"}},"u-m-55":{"":{"!marginTop":"55rpx","!marginRight":"55rpx","!marginBottom":"55rpx","!marginLeft":"55rpx"}},"u-padding-55":{"":{"!paddingTop":"55rpx","!paddingRight":"55rpx","!paddingBottom":"55rpx","!paddingLeft":"55rpx"}},"u-p-55":{"":{"!paddingTop":"55rpx","!paddingRight":"55rpx","!paddingBottom":"55rpx","!paddingLeft":"55rpx"}},"u-m-l-55":{"":{"!marginLeft":"55rpx"}},"u-p-l-55":{"":{"!paddingLeft":"55rpx"}},"u-margin-left-55":{"":{"!marginLeft":"55rpx"}},"u-padding-left-55":{"":{"!paddingLeft":"55rpx"}},"u-m-t-55":{"":{"!marginTop":"55rpx"}},"u-p-t-55":{"":{"!paddingTop":"55rpx"}},"u-margin-top-55":{"":{"!marginTop":"55rpx"}},"u-padding-top-55":{"":{"!paddingTop":"55rpx"}},"u-m-r-55":{"":{"!marginRight":"55rpx"}},"u-p-r-55":{"":{"!paddingRight":"55rpx"}},"u-margin-right-55":{"":{"!marginRight":"55rpx"}},"u-padding-right-55":{"":{"!paddingRight":"55rpx"}},"u-m-b-55":{"":{"!marginBottom":"55rpx"}},"u-p-b-55":{"":{"!paddingBottom":"55rpx"}},"u-margin-bottom-55":{"":{"!marginBottom":"55rpx"}},"u-padding-bottom-55":{"":{"!paddingBottom":"55rpx"}},"u-margin-56":{"":{"!marginTop":"56rpx","!marginRight":"56rpx","!marginBottom":"56rpx","!marginLeft":"56rpx"}},"u-m-56":{"":{"!marginTop":"56rpx","!marginRight":"56rpx","!marginBottom":"56rpx","!marginLeft":"56rpx"}},"u-padding-56":{"":{"!paddingTop":"56rpx","!paddingRight":"56rpx","!paddingBottom":"56rpx","!paddingLeft":"56rpx"}},"u-p-56":{"":{"!paddingTop":"56rpx","!paddingRight":"56rpx","!paddingBottom":"56rpx","!paddingLeft":"56rpx"}},"u-m-l-56":{"":{"!marginLeft":"56rpx"}},"u-p-l-56":{"":{"!paddingLeft":"56rpx"}},"u-margin-left-56":{"":{"!marginLeft":"56rpx"}},"u-padding-left-56":{"":{"!paddingLeft":"56rpx"}},"u-m-t-56":{"":{"!marginTop":"56rpx"}},"u-p-t-56":{"":{"!paddingTop":"56rpx"}},"u-margin-top-56":{"":{"!marginTop":"56rpx"}},"u-padding-top-56":{"":{"!paddingTop":"56rpx"}},"u-m-r-56":{"":{"!marginRight":"56rpx"}},"u-p-r-56":{"":{"!paddingRight":"56rpx"}},"u-margin-right-56":{"":{"!marginRight":"56rpx"}},"u-padding-right-56":{"":{"!paddingRight":"56rpx"}},"u-m-b-56":{"":{"!marginBottom":"56rpx"}},"u-p-b-56":{"":{"!paddingBottom":"56rpx"}},"u-margin-bottom-56":{"":{"!marginBottom":"56rpx"}},"u-padding-bottom-56":{"":{"!paddingBottom":"56rpx"}},"u-margin-58":{"":{"!marginTop":"58rpx","!marginRight":"58rpx","!marginBottom":"58rpx","!marginLeft":"58rpx"}},"u-m-58":{"":{"!marginTop":"58rpx","!marginRight":"58rpx","!marginBottom":"58rpx","!marginLeft":"58rpx"}},"u-padding-58":{"":{"!paddingTop":"58rpx","!paddingRight":"58rpx","!paddingBottom":"58rpx","!paddingLeft":"58rpx"}},"u-p-58":{"":{"!paddingTop":"58rpx","!paddingRight":"58rpx","!paddingBottom":"58rpx","!paddingLeft":"58rpx"}},"u-m-l-58":{"":{"!marginLeft":"58rpx"}},"u-p-l-58":{"":{"!paddingLeft":"58rpx"}},"u-margin-left-58":{"":{"!marginLeft":"58rpx"}},"u-padding-left-58":{"":{"!paddingLeft":"58rpx"}},"u-m-t-58":{"":{"!marginTop":"58rpx"}},"u-p-t-58":{"":{"!paddingTop":"58rpx"}},"u-margin-top-58":{"":{"!marginTop":"58rpx"}},"u-padding-top-58":{"":{"!paddingTop":"58rpx"}},"u-m-r-58":{"":{"!marginRight":"58rpx"}},"u-p-r-58":{"":{"!paddingRight":"58rpx"}},"u-margin-right-58":{"":{"!marginRight":"58rpx"}},"u-padding-right-58":{"":{"!paddingRight":"58rpx"}},"u-m-b-58":{"":{"!marginBottom":"58rpx"}},"u-p-b-58":{"":{"!paddingBottom":"58rpx"}},"u-margin-bottom-58":{"":{"!marginBottom":"58rpx"}},"u-padding-bottom-58":{"":{"!paddingBottom":"58rpx"}},"u-margin-60":{"":{"!marginTop":"60rpx","!marginRight":"60rpx","!marginBottom":"60rpx","!marginLeft":"60rpx"}},"u-m-60":{"":{"!marginTop":"60rpx","!marginRight":"60rpx","!marginBottom":"60rpx","!marginLeft":"60rpx"}},"u-padding-60":{"":{"!paddingTop":"60rpx","!paddingRight":"60rpx","!paddingBottom":"60rpx","!paddingLeft":"60rpx"}},"u-p-60":{"":{"!paddingTop":"60rpx","!paddingRight":"60rpx","!paddingBottom":"60rpx","!paddingLeft":"60rpx"}},"u-m-l-60":{"":{"!marginLeft":"60rpx"}},"u-p-l-60":{"":{"!paddingLeft":"60rpx"}},"u-margin-left-60":{"":{"!marginLeft":"60rpx"}},"u-padding-left-60":{"":{"!paddingLeft":"60rpx"}},"u-m-t-60":{"":{"!marginTop":"60rpx"}},"u-p-t-60":{"":{"!paddingTop":"60rpx"}},"u-margin-top-60":{"":{"!marginTop":"60rpx"}},"u-padding-top-60":{"":{"!paddingTop":"60rpx"}},"u-m-r-60":{"":{"!marginRight":"60rpx"}},"u-p-r-60":{"":{"!paddingRight":"60rpx"}},"u-margin-right-60":{"":{"!marginRight":"60rpx"}},"u-padding-right-60":{"":{"!paddingRight":"60rpx"}},"u-m-b-60":{"":{"!marginBottom":"60rpx"}},"u-p-b-60":{"":{"!paddingBottom":"60rpx"}},"u-margin-bottom-60":{"":{"!marginBottom":"60rpx"}},"u-padding-bottom-60":{"":{"!paddingBottom":"60rpx"}},"u-margin-62":{"":{"!marginTop":"62rpx","!marginRight":"62rpx","!marginBottom":"62rpx","!marginLeft":"62rpx"}},"u-m-62":{"":{"!marginTop":"62rpx","!marginRight":"62rpx","!marginBottom":"62rpx","!marginLeft":"62rpx"}},"u-padding-62":{"":{"!paddingTop":"62rpx","!paddingRight":"62rpx","!paddingBottom":"62rpx","!paddingLeft":"62rpx"}},"u-p-62":{"":{"!paddingTop":"62rpx","!paddingRight":"62rpx","!paddingBottom":"62rpx","!paddingLeft":"62rpx"}},"u-m-l-62":{"":{"!marginLeft":"62rpx"}},"u-p-l-62":{"":{"!paddingLeft":"62rpx"}},"u-margin-left-62":{"":{"!marginLeft":"62rpx"}},"u-padding-left-62":{"":{"!paddingLeft":"62rpx"}},"u-m-t-62":{"":{"!marginTop":"62rpx"}},"u-p-t-62":{"":{"!paddingTop":"62rpx"}},"u-margin-top-62":{"":{"!marginTop":"62rpx"}},"u-padding-top-62":{"":{"!paddingTop":"62rpx"}},"u-m-r-62":{"":{"!marginRight":"62rpx"}},"u-p-r-62":{"":{"!paddingRight":"62rpx"}},"u-margin-right-62":{"":{"!marginRight":"62rpx"}},"u-padding-right-62":{"":{"!paddingRight":"62rpx"}},"u-m-b-62":{"":{"!marginBottom":"62rpx"}},"u-p-b-62":{"":{"!paddingBottom":"62rpx"}},"u-margin-bottom-62":{"":{"!marginBottom":"62rpx"}},"u-padding-bottom-62":{"":{"!paddingBottom":"62rpx"}},"u-margin-64":{"":{"!marginTop":"64rpx","!marginRight":"64rpx","!marginBottom":"64rpx","!marginLeft":"64rpx"}},"u-m-64":{"":{"!marginTop":"64rpx","!marginRight":"64rpx","!marginBottom":"64rpx","!marginLeft":"64rpx"}},"u-padding-64":{"":{"!paddingTop":"64rpx","!paddingRight":"64rpx","!paddingBottom":"64rpx","!paddingLeft":"64rpx"}},"u-p-64":{"":{"!paddingTop":"64rpx","!paddingRight":"64rpx","!paddingBottom":"64rpx","!paddingLeft":"64rpx"}},"u-m-l-64":{"":{"!marginLeft":"64rpx"}},"u-p-l-64":{"":{"!paddingLeft":"64rpx"}},"u-margin-left-64":{"":{"!marginLeft":"64rpx"}},"u-padding-left-64":{"":{"!paddingLeft":"64rpx"}},"u-m-t-64":{"":{"!marginTop":"64rpx"}},"u-p-t-64":{"":{"!paddingTop":"64rpx"}},"u-margin-top-64":{"":{"!marginTop":"64rpx"}},"u-padding-top-64":{"":{"!paddingTop":"64rpx"}},"u-m-r-64":{"":{"!marginRight":"64rpx"}},"u-p-r-64":{"":{"!paddingRight":"64rpx"}},"u-margin-right-64":{"":{"!marginRight":"64rpx"}},"u-padding-right-64":{"":{"!paddingRight":"64rpx"}},"u-m-b-64":{"":{"!marginBottom":"64rpx"}},"u-p-b-64":{"":{"!paddingBottom":"64rpx"}},"u-margin-bottom-64":{"":{"!marginBottom":"64rpx"}},"u-padding-bottom-64":{"":{"!paddingBottom":"64rpx"}},"u-margin-65":{"":{"!marginTop":"65rpx","!marginRight":"65rpx","!marginBottom":"65rpx","!marginLeft":"65rpx"}},"u-m-65":{"":{"!marginTop":"65rpx","!marginRight":"65rpx","!marginBottom":"65rpx","!marginLeft":"65rpx"}},"u-padding-65":{"":{"!paddingTop":"65rpx","!paddingRight":"65rpx","!paddingBottom":"65rpx","!paddingLeft":"65rpx"}},"u-p-65":{"":{"!paddingTop":"65rpx","!paddingRight":"65rpx","!paddingBottom":"65rpx","!paddingLeft":"65rpx"}},"u-m-l-65":{"":{"!marginLeft":"65rpx"}},"u-p-l-65":{"":{"!paddingLeft":"65rpx"}},"u-margin-left-65":{"":{"!marginLeft":"65rpx"}},"u-padding-left-65":{"":{"!paddingLeft":"65rpx"}},"u-m-t-65":{"":{"!marginTop":"65rpx"}},"u-p-t-65":{"":{"!paddingTop":"65rpx"}},"u-margin-top-65":{"":{"!marginTop":"65rpx"}},"u-padding-top-65":{"":{"!paddingTop":"65rpx"}},"u-m-r-65":{"":{"!marginRight":"65rpx"}},"u-p-r-65":{"":{"!paddingRight":"65rpx"}},"u-margin-right-65":{"":{"!marginRight":"65rpx"}},"u-padding-right-65":{"":{"!paddingRight":"65rpx"}},"u-m-b-65":{"":{"!marginBottom":"65rpx"}},"u-p-b-65":{"":{"!paddingBottom":"65rpx"}},"u-margin-bottom-65":{"":{"!marginBottom":"65rpx"}},"u-padding-bottom-65":{"":{"!paddingBottom":"65rpx"}},"u-margin-66":{"":{"!marginTop":"66rpx","!marginRight":"66rpx","!marginBottom":"66rpx","!marginLeft":"66rpx"}},"u-m-66":{"":{"!marginTop":"66rpx","!marginRight":"66rpx","!marginBottom":"66rpx","!marginLeft":"66rpx"}},"u-padding-66":{"":{"!paddingTop":"66rpx","!paddingRight":"66rpx","!paddingBottom":"66rpx","!paddingLeft":"66rpx"}},"u-p-66":{"":{"!paddingTop":"66rpx","!paddingRight":"66rpx","!paddingBottom":"66rpx","!paddingLeft":"66rpx"}},"u-m-l-66":{"":{"!marginLeft":"66rpx"}},"u-p-l-66":{"":{"!paddingLeft":"66rpx"}},"u-margin-left-66":{"":{"!marginLeft":"66rpx"}},"u-padding-left-66":{"":{"!paddingLeft":"66rpx"}},"u-m-t-66":{"":{"!marginTop":"66rpx"}},"u-p-t-66":{"":{"!paddingTop":"66rpx"}},"u-margin-top-66":{"":{"!marginTop":"66rpx"}},"u-padding-top-66":{"":{"!paddingTop":"66rpx"}},"u-m-r-66":{"":{"!marginRight":"66rpx"}},"u-p-r-66":{"":{"!paddingRight":"66rpx"}},"u-margin-right-66":{"":{"!marginRight":"66rpx"}},"u-padding-right-66":{"":{"!paddingRight":"66rpx"}},"u-m-b-66":{"":{"!marginBottom":"66rpx"}},"u-p-b-66":{"":{"!paddingBottom":"66rpx"}},"u-margin-bottom-66":{"":{"!marginBottom":"66rpx"}},"u-padding-bottom-66":{"":{"!paddingBottom":"66rpx"}},"u-margin-68":{"":{"!marginTop":"68rpx","!marginRight":"68rpx","!marginBottom":"68rpx","!marginLeft":"68rpx"}},"u-m-68":{"":{"!marginTop":"68rpx","!marginRight":"68rpx","!marginBottom":"68rpx","!marginLeft":"68rpx"}},"u-padding-68":{"":{"!paddingTop":"68rpx","!paddingRight":"68rpx","!paddingBottom":"68rpx","!paddingLeft":"68rpx"}},"u-p-68":{"":{"!paddingTop":"68rpx","!paddingRight":"68rpx","!paddingBottom":"68rpx","!paddingLeft":"68rpx"}},"u-m-l-68":{"":{"!marginLeft":"68rpx"}},"u-p-l-68":{"":{"!paddingLeft":"68rpx"}},"u-margin-left-68":{"":{"!marginLeft":"68rpx"}},"u-padding-left-68":{"":{"!paddingLeft":"68rpx"}},"u-m-t-68":{"":{"!marginTop":"68rpx"}},"u-p-t-68":{"":{"!paddingTop":"68rpx"}},"u-margin-top-68":{"":{"!marginTop":"68rpx"}},"u-padding-top-68":{"":{"!paddingTop":"68rpx"}},"u-m-r-68":{"":{"!marginRight":"68rpx"}},"u-p-r-68":{"":{"!paddingRight":"68rpx"}},"u-margin-right-68":{"":{"!marginRight":"68rpx"}},"u-padding-right-68":{"":{"!paddingRight":"68rpx"}},"u-m-b-68":{"":{"!marginBottom":"68rpx"}},"u-p-b-68":{"":{"!paddingBottom":"68rpx"}},"u-margin-bottom-68":{"":{"!marginBottom":"68rpx"}},"u-padding-bottom-68":{"":{"!paddingBottom":"68rpx"}},"u-margin-70":{"":{"!marginTop":"70rpx","!marginRight":"70rpx","!marginBottom":"70rpx","!marginLeft":"70rpx"}},"u-m-70":{"":{"!marginTop":"70rpx","!marginRight":"70rpx","!marginBottom":"70rpx","!marginLeft":"70rpx"}},"u-padding-70":{"":{"!paddingTop":"70rpx","!paddingRight":"70rpx","!paddingBottom":"70rpx","!paddingLeft":"70rpx"}},"u-p-70":{"":{"!paddingTop":"70rpx","!paddingRight":"70rpx","!paddingBottom":"70rpx","!paddingLeft":"70rpx"}},"u-m-l-70":{"":{"!marginLeft":"70rpx"}},"u-p-l-70":{"":{"!paddingLeft":"70rpx"}},"u-margin-left-70":{"":{"!marginLeft":"70rpx"}},"u-padding-left-70":{"":{"!paddingLeft":"70rpx"}},"u-m-t-70":{"":{"!marginTop":"70rpx"}},"u-p-t-70":{"":{"!paddingTop":"70rpx"}},"u-margin-top-70":{"":{"!marginTop":"70rpx"}},"u-padding-top-70":{"":{"!paddingTop":"70rpx"}},"u-m-r-70":{"":{"!marginRight":"70rpx"}},"u-p-r-70":{"":{"!paddingRight":"70rpx"}},"u-margin-right-70":{"":{"!marginRight":"70rpx"}},"u-padding-right-70":{"":{"!paddingRight":"70rpx"}},"u-m-b-70":{"":{"!marginBottom":"70rpx"}},"u-p-b-70":{"":{"!paddingBottom":"70rpx"}},"u-margin-bottom-70":{"":{"!marginBottom":"70rpx"}},"u-padding-bottom-70":{"":{"!paddingBottom":"70rpx"}},"u-margin-72":{"":{"!marginTop":"72rpx","!marginRight":"72rpx","!marginBottom":"72rpx","!marginLeft":"72rpx"}},"u-m-72":{"":{"!marginTop":"72rpx","!marginRight":"72rpx","!marginBottom":"72rpx","!marginLeft":"72rpx"}},"u-padding-72":{"":{"!paddingTop":"72rpx","!paddingRight":"72rpx","!paddingBottom":"72rpx","!paddingLeft":"72rpx"}},"u-p-72":{"":{"!paddingTop":"72rpx","!paddingRight":"72rpx","!paddingBottom":"72rpx","!paddingLeft":"72rpx"}},"u-m-l-72":{"":{"!marginLeft":"72rpx"}},"u-p-l-72":{"":{"!paddingLeft":"72rpx"}},"u-margin-left-72":{"":{"!marginLeft":"72rpx"}},"u-padding-left-72":{"":{"!paddingLeft":"72rpx"}},"u-m-t-72":{"":{"!marginTop":"72rpx"}},"u-p-t-72":{"":{"!paddingTop":"72rpx"}},"u-margin-top-72":{"":{"!marginTop":"72rpx"}},"u-padding-top-72":{"":{"!paddingTop":"72rpx"}},"u-m-r-72":{"":{"!marginRight":"72rpx"}},"u-p-r-72":{"":{"!paddingRight":"72rpx"}},"u-margin-right-72":{"":{"!marginRight":"72rpx"}},"u-padding-right-72":{"":{"!paddingRight":"72rpx"}},"u-m-b-72":{"":{"!marginBottom":"72rpx"}},"u-p-b-72":{"":{"!paddingBottom":"72rpx"}},"u-margin-bottom-72":{"":{"!marginBottom":"72rpx"}},"u-padding-bottom-72":{"":{"!paddingBottom":"72rpx"}},"u-margin-74":{"":{"!marginTop":"74rpx","!marginRight":"74rpx","!marginBottom":"74rpx","!marginLeft":"74rpx"}},"u-m-74":{"":{"!marginTop":"74rpx","!marginRight":"74rpx","!marginBottom":"74rpx","!marginLeft":"74rpx"}},"u-padding-74":{"":{"!paddingTop":"74rpx","!paddingRight":"74rpx","!paddingBottom":"74rpx","!paddingLeft":"74rpx"}},"u-p-74":{"":{"!paddingTop":"74rpx","!paddingRight":"74rpx","!paddingBottom":"74rpx","!paddingLeft":"74rpx"}},"u-m-l-74":{"":{"!marginLeft":"74rpx"}},"u-p-l-74":{"":{"!paddingLeft":"74rpx"}},"u-margin-left-74":{"":{"!marginLeft":"74rpx"}},"u-padding-left-74":{"":{"!paddingLeft":"74rpx"}},"u-m-t-74":{"":{"!marginTop":"74rpx"}},"u-p-t-74":{"":{"!paddingTop":"74rpx"}},"u-margin-top-74":{"":{"!marginTop":"74rpx"}},"u-padding-top-74":{"":{"!paddingTop":"74rpx"}},"u-m-r-74":{"":{"!marginRight":"74rpx"}},"u-p-r-74":{"":{"!paddingRight":"74rpx"}},"u-margin-right-74":{"":{"!marginRight":"74rpx"}},"u-padding-right-74":{"":{"!paddingRight":"74rpx"}},"u-m-b-74":{"":{"!marginBottom":"74rpx"}},"u-p-b-74":{"":{"!paddingBottom":"74rpx"}},"u-margin-bottom-74":{"":{"!marginBottom":"74rpx"}},"u-padding-bottom-74":{"":{"!paddingBottom":"74rpx"}},"u-margin-75":{"":{"!marginTop":"75rpx","!marginRight":"75rpx","!marginBottom":"75rpx","!marginLeft":"75rpx"}},"u-m-75":{"":{"!marginTop":"75rpx","!marginRight":"75rpx","!marginBottom":"75rpx","!marginLeft":"75rpx"}},"u-padding-75":{"":{"!paddingTop":"75rpx","!paddingRight":"75rpx","!paddingBottom":"75rpx","!paddingLeft":"75rpx"}},"u-p-75":{"":{"!paddingTop":"75rpx","!paddingRight":"75rpx","!paddingBottom":"75rpx","!paddingLeft":"75rpx"}},"u-m-l-75":{"":{"!marginLeft":"75rpx"}},"u-p-l-75":{"":{"!paddingLeft":"75rpx"}},"u-margin-left-75":{"":{"!marginLeft":"75rpx"}},"u-padding-left-75":{"":{"!paddingLeft":"75rpx"}},"u-m-t-75":{"":{"!marginTop":"75rpx"}},"u-p-t-75":{"":{"!paddingTop":"75rpx"}},"u-margin-top-75":{"":{"!marginTop":"75rpx"}},"u-padding-top-75":{"":{"!paddingTop":"75rpx"}},"u-m-r-75":{"":{"!marginRight":"75rpx"}},"u-p-r-75":{"":{"!paddingRight":"75rpx"}},"u-margin-right-75":{"":{"!marginRight":"75rpx"}},"u-padding-right-75":{"":{"!paddingRight":"75rpx"}},"u-m-b-75":{"":{"!marginBottom":"75rpx"}},"u-p-b-75":{"":{"!paddingBottom":"75rpx"}},"u-margin-bottom-75":{"":{"!marginBottom":"75rpx"}},"u-padding-bottom-75":{"":{"!paddingBottom":"75rpx"}},"u-margin-76":{"":{"!marginTop":"76rpx","!marginRight":"76rpx","!marginBottom":"76rpx","!marginLeft":"76rpx"}},"u-m-76":{"":{"!marginTop":"76rpx","!marginRight":"76rpx","!marginBottom":"76rpx","!marginLeft":"76rpx"}},"u-padding-76":{"":{"!paddingTop":"76rpx","!paddingRight":"76rpx","!paddingBottom":"76rpx","!paddingLeft":"76rpx"}},"u-p-76":{"":{"!paddingTop":"76rpx","!paddingRight":"76rpx","!paddingBottom":"76rpx","!paddingLeft":"76rpx"}},"u-m-l-76":{"":{"!marginLeft":"76rpx"}},"u-p-l-76":{"":{"!paddingLeft":"76rpx"}},"u-margin-left-76":{"":{"!marginLeft":"76rpx"}},"u-padding-left-76":{"":{"!paddingLeft":"76rpx"}},"u-m-t-76":{"":{"!marginTop":"76rpx"}},"u-p-t-76":{"":{"!paddingTop":"76rpx"}},"u-margin-top-76":{"":{"!marginTop":"76rpx"}},"u-padding-top-76":{"":{"!paddingTop":"76rpx"}},"u-m-r-76":{"":{"!marginRight":"76rpx"}},"u-p-r-76":{"":{"!paddingRight":"76rpx"}},"u-margin-right-76":{"":{"!marginRight":"76rpx"}},"u-padding-right-76":{"":{"!paddingRight":"76rpx"}},"u-m-b-76":{"":{"!marginBottom":"76rpx"}},"u-p-b-76":{"":{"!paddingBottom":"76rpx"}},"u-margin-bottom-76":{"":{"!marginBottom":"76rpx"}},"u-padding-bottom-76":{"":{"!paddingBottom":"76rpx"}},"u-margin-78":{"":{"!marginTop":"78rpx","!marginRight":"78rpx","!marginBottom":"78rpx","!marginLeft":"78rpx"}},"u-m-78":{"":{"!marginTop":"78rpx","!marginRight":"78rpx","!marginBottom":"78rpx","!marginLeft":"78rpx"}},"u-padding-78":{"":{"!paddingTop":"78rpx","!paddingRight":"78rpx","!paddingBottom":"78rpx","!paddingLeft":"78rpx"}},"u-p-78":{"":{"!paddingTop":"78rpx","!paddingRight":"78rpx","!paddingBottom":"78rpx","!paddingLeft":"78rpx"}},"u-m-l-78":{"":{"!marginLeft":"78rpx"}},"u-p-l-78":{"":{"!paddingLeft":"78rpx"}},"u-margin-left-78":{"":{"!marginLeft":"78rpx"}},"u-padding-left-78":{"":{"!paddingLeft":"78rpx"}},"u-m-t-78":{"":{"!marginTop":"78rpx"}},"u-p-t-78":{"":{"!paddingTop":"78rpx"}},"u-margin-top-78":{"":{"!marginTop":"78rpx"}},"u-padding-top-78":{"":{"!paddingTop":"78rpx"}},"u-m-r-78":{"":{"!marginRight":"78rpx"}},"u-p-r-78":{"":{"!paddingRight":"78rpx"}},"u-margin-right-78":{"":{"!marginRight":"78rpx"}},"u-padding-right-78":{"":{"!paddingRight":"78rpx"}},"u-m-b-78":{"":{"!marginBottom":"78rpx"}},"u-p-b-78":{"":{"!paddingBottom":"78rpx"}},"u-margin-bottom-78":{"":{"!marginBottom":"78rpx"}},"u-padding-bottom-78":{"":{"!paddingBottom":"78rpx"}},"u-margin-80":{"":{"!marginTop":"80rpx","!marginRight":"80rpx","!marginBottom":"80rpx","!marginLeft":"80rpx"}},"u-m-80":{"":{"!marginTop":"80rpx","!marginRight":"80rpx","!marginBottom":"80rpx","!marginLeft":"80rpx"}},"u-padding-80":{"":{"!paddingTop":"80rpx","!paddingRight":"80rpx","!paddingBottom":"80rpx","!paddingLeft":"80rpx"}},"u-p-80":{"":{"!paddingTop":"80rpx","!paddingRight":"80rpx","!paddingBottom":"80rpx","!paddingLeft":"80rpx"}},"u-m-l-80":{"":{"!marginLeft":"80rpx"}},"u-p-l-80":{"":{"!paddingLeft":"80rpx"}},"u-margin-left-80":{"":{"!marginLeft":"80rpx"}},"u-padding-left-80":{"":{"!paddingLeft":"80rpx"}},"u-m-t-80":{"":{"!marginTop":"80rpx"}},"u-p-t-80":{"":{"!paddingTop":"80rpx"}},"u-margin-top-80":{"":{"!marginTop":"80rpx"}},"u-padding-top-80":{"":{"!paddingTop":"80rpx"}},"u-m-r-80":{"":{"!marginRight":"80rpx"}},"u-p-r-80":{"":{"!paddingRight":"80rpx"}},"u-margin-right-80":{"":{"!marginRight":"80rpx"}},"u-padding-right-80":{"":{"!paddingRight":"80rpx"}},"u-m-b-80":{"":{"!marginBottom":"80rpx"}},"u-p-b-80":{"":{"!paddingBottom":"80rpx"}},"u-margin-bottom-80":{"":{"!marginBottom":"80rpx"}},"u-padding-bottom-80":{"":{"!paddingBottom":"80rpx"}},"u-primary-light":{"":{"color":"#ecf5ff"}},"u-warning-light":{"":{"color":"#fdf6ec"}},"u-success-light":{"":{"color":"#f5fff0"}},"u-error-light":{"":{"color":"#fef0f0"}},"u-info-light":{"":{"color":"#f4f4f5"}},"u-primary-light-bg":{"":{"backgroundColor":"#ecf5ff"}},"u-warning-light-bg":{"":{"backgroundColor":"#fdf6ec"}},"u-success-light-bg":{"":{"backgroundColor":"#f5fff0"}},"u-error-light-bg":{"":{"backgroundColor":"#fef0f0"}},"u-info-light-bg":{"":{"backgroundColor":"#f4f4f5"}},"u-primary-dark":{"":{"color":"#398ade"}},"u-warning-dark":{"":{"color":"#f1a532"}},"u-success-dark":{"":{"color":"#53c21d"}},"u-error-dark":{"":{"color":"#e45656"}},"u-info-dark":{"":{"color":"#767a82"}},"u-primary-dark-bg":{"":{"backgroundColor":"#398ade"}},"u-warning-dark-bg":{"":{"backgroundColor":"#f1a532"}},"u-success-dark-bg":{"":{"backgroundColor":"#53c21d"}},"u-error-dark-bg":{"":{"backgroundColor":"#e45656"}},"u-info-dark-bg":{"":{"backgroundColor":"#767a82"}},"u-primary-disabled":{"":{"color":"#9acafc"}},"u-warning-disabled":{"":{"color":"#f9d39b"}},"u-success-disabled":{"":{"color":"#a9e08f"}},"u-error-disabled":{"":{"color":"#f7b2b2"}},"u-info-disabled":{"":{"color":"#c4c6c9"}},"u-primary":{"":{"color":"#3c9cff"}},"u-warning":{"":{"color":"#f9ae3d"}},"u-success":{"":{"color":"#5ac725"}},"u-error":{"":{"color":"#f56c6c"}},"u-info":{"":{"color":"#909399"}},"u-primary-bg":{"":{"backgroundColor":"#3c9cff"}},"u-warning-bg":{"":{"backgroundColor":"#f9ae3d"}},"u-success-bg":{"":{"backgroundColor":"#5ac725"}},"u-error-bg":{"":{"backgroundColor":"#f56c6c"}},"u-info-bg":{"":{"backgroundColor":"#909399"}},"u-main-color":{"":{"color":"#303133"}},"u-content-color":{"":{"color":"#606266"}},"u-tips-color":{"":{"color":"#909193"}},"u-light-color":{"":{"color":"#c0c4cc"}},"card":{"":{"position":"relative","width":"693.93rpx","backgroundColor":"#ffffff","boxSizing":"border-box","paddingTop":"20rpx","paddingRight":"20rpx","paddingBottom":"20rpx","paddingLeft":"20rpx","borderTopLeftRadius":"21.03rpx","borderTopRightRadius":"21.03rpx","borderBottomRightRadius":"21.03rpx","borderBottomLeftRadius":"21.03rpx","marginBottom":"40rpx","fontSize":"29.79rpx"}},"card-li":{".card ":{"marginBottom":"17rpx"}},"more-jt":{"":{"display":"flex","alignItems":"center"}}}];//styles - __uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); - __uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}}); - service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:16})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:u,window:u,document:u,frames:u,self:u,location:u,navigator:u,localStorage:u,history:u,Caches:u,screen:u,alert:u,confirm:u,prompt:u,fetch:u,XMLHttpRequest:u,WebSocket:u,webkit:u,print:u}}}}); - })(); - \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/app-config.js b/unpackage/dist/dev/app-plus/app-config.js deleted file mode 100644 index c5168cc..0000000 --- a/unpackage/dist/dev/app-plus/app-config.js +++ /dev/null @@ -1 +0,0 @@ -(function(){})(); \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/app-service.js b/unpackage/dist/dev/app-plus/app-service.js deleted file mode 100644 index e8dbd85..0000000 --- a/unpackage/dist/dev/app-plus/app-service.js +++ /dev/null @@ -1,19029 +0,0 @@ -if (typeof Promise !== "undefined" && !Promise.prototype.finally) { - Promise.prototype.finally = function(callback) { - const promise = this.constructor; - return this.then( - (value) => promise.resolve(callback()).then(() => value), - (reason) => promise.resolve(callback()).then(() => { - throw reason; - }) - ); - }; -} -; -if (typeof uni !== "undefined" && uni && uni.requireGlobal) { - const global2 = uni.requireGlobal(); - ArrayBuffer = global2.ArrayBuffer; - Int8Array = global2.Int8Array; - Uint8Array = global2.Uint8Array; - Uint8ClampedArray = global2.Uint8ClampedArray; - Int16Array = global2.Int16Array; - Uint16Array = global2.Uint16Array; - Int32Array = global2.Int32Array; - Uint32Array = global2.Uint32Array; - Float32Array = global2.Float32Array; - Float64Array = global2.Float64Array; - BigInt64Array = global2.BigInt64Array; - BigUint64Array = global2.BigUint64Array; -} -; -if (uni.restoreGlobal) { - uni.restoreGlobal(Vue, weex, plus, setTimeout, clearTimeout, setInterval, clearInterval); -} -(function(vue, shared) { - "use strict"; - const ON_LOAD = "onLoad"; - function formatAppLog(type2, filename, ...args) { - if (uni.__log__) { - uni.__log__(type2, filename, ...args); - } else { - console[type2].apply(console, [...args, filename]); - } - } - function resolveEasycom(component, easycom2) { - return shared.isString(component) ? easycom2 : component; - } - const createHook = (lifecycle) => (hook, target = vue.getCurrentInstance()) => { - !vue.isInSSRComponentSetup && vue.injectHook(lifecycle, hook, target); - }; - const onLoad = /* @__PURE__ */ createHook(ON_LOAD); - const icons$1 = { - "uicon-level": "", - "uicon-column-line": "", - "uicon-checkbox-mark": "", - "uicon-folder": "", - "uicon-movie": "", - "uicon-star-fill": "", - "uicon-star": "", - "uicon-phone-fill": "", - "uicon-phone": "", - "uicon-apple-fill": "", - "uicon-chrome-circle-fill": "", - "uicon-backspace": "", - "uicon-attach": "", - "uicon-cut": "", - "uicon-empty-car": "", - "uicon-empty-coupon": "", - "uicon-empty-address": "", - "uicon-empty-favor": "", - "uicon-empty-permission": "", - "uicon-empty-news": "", - "uicon-empty-search": "", - "uicon-github-circle-fill": "", - "uicon-rmb": "", - "uicon-person-delete-fill": "", - "uicon-reload": "", - "uicon-order": "", - "uicon-server-man": "", - "uicon-search": "", - "uicon-fingerprint": "", - "uicon-more-dot-fill": "", - "uicon-scan": "", - "uicon-share-square": "", - "uicon-map": "", - "uicon-map-fill": "", - "uicon-tags": "", - "uicon-tags-fill": "", - "uicon-bookmark-fill": "", - "uicon-bookmark": "", - "uicon-eye": "", - "uicon-eye-fill": "", - "uicon-mic": "", - "uicon-mic-off": "", - "uicon-calendar": "", - "uicon-calendar-fill": "", - "uicon-trash": "", - "uicon-trash-fill": "", - "uicon-play-left": "", - "uicon-play-right": "", - "uicon-minus": "", - "uicon-plus": "", - "uicon-info": "", - "uicon-info-circle": "", - "uicon-info-circle-fill": "", - "uicon-question": "", - "uicon-error": "", - "uicon-close": "", - "uicon-checkmark": "", - "uicon-android-circle-fill": "", - "uicon-android-fill": "", - "uicon-ie": "", - "uicon-IE-circle-fill": "", - "uicon-google": "", - "uicon-google-circle-fill": "", - "uicon-setting-fill": "", - "uicon-setting": "", - "uicon-minus-square-fill": "", - "uicon-plus-square-fill": "", - "uicon-heart": "", - "uicon-heart-fill": "", - "uicon-camera": "", - "uicon-camera-fill": "", - "uicon-more-circle": "", - "uicon-more-circle-fill": "", - "uicon-chat": "", - "uicon-chat-fill": "", - "uicon-bag-fill": "", - "uicon-bag": "", - "uicon-error-circle-fill": "", - "uicon-error-circle": "", - "uicon-close-circle": "", - "uicon-close-circle-fill": "", - "uicon-checkmark-circle": "", - "uicon-checkmark-circle-fill": "", - "uicon-question-circle-fill": "", - "uicon-question-circle": "", - "uicon-share": "", - "uicon-share-fill": "", - "uicon-shopping-cart": "", - "uicon-shopping-cart-fill": "", - "uicon-bell": "", - "uicon-bell-fill": "", - "uicon-list": "", - "uicon-list-dot": "", - "uicon-zhihu": "", - "uicon-zhihu-circle-fill": "", - "uicon-zhifubao": "", - "uicon-zhifubao-circle-fill": "", - "uicon-weixin-circle-fill": "", - "uicon-weixin-fill": "", - "uicon-twitter-circle-fill": "", - "uicon-twitter": "", - "uicon-taobao-circle-fill": "", - "uicon-taobao": "", - "uicon-weibo-circle-fill": "", - "uicon-weibo": "", - "uicon-qq-fill": "", - "uicon-qq-circle-fill": "", - "uicon-moments-circel-fill": "", - "uicon-moments": "", - "uicon-qzone": "", - "uicon-qzone-circle-fill": "", - "uicon-baidu-circle-fill": "", - "uicon-baidu": "", - "uicon-facebook-circle-fill": "", - "uicon-facebook": "", - "uicon-car": "", - "uicon-car-fill": "", - "uicon-warning-fill": "", - "uicon-warning": "", - "uicon-clock-fill": "", - "uicon-clock": "", - "uicon-edit-pen": "", - "uicon-edit-pen-fill": "", - "uicon-email": "", - "uicon-email-fill": "", - "uicon-minus-circle": "", - "uicon-minus-circle-fill": "", - "uicon-plus-circle": "", - "uicon-plus-circle-fill": "", - "uicon-file-text": "", - "uicon-file-text-fill": "", - "uicon-pushpin": "", - "uicon-pushpin-fill": "", - "uicon-grid": "", - "uicon-grid-fill": "", - "uicon-play-circle": "", - "uicon-play-circle-fill": "", - "uicon-pause-circle-fill": "", - "uicon-pause": "", - "uicon-pause-circle": "", - "uicon-eye-off": "", - "uicon-eye-off-outline": "", - "uicon-gift-fill": "", - "uicon-gift": "", - "uicon-rmb-circle-fill": "", - "uicon-rmb-circle": "", - "uicon-kefu-ermai": "", - "uicon-server-fill": "", - "uicon-coupon-fill": "", - "uicon-coupon": "", - "uicon-integral": "", - "uicon-integral-fill": "", - "uicon-home-fill": "", - "uicon-home": "", - "uicon-hourglass-half-fill": "", - "uicon-hourglass": "", - "uicon-account": "", - "uicon-plus-people-fill": "", - "uicon-minus-people-fill": "", - "uicon-account-fill": "", - "uicon-thumb-down-fill": "", - "uicon-thumb-down": "", - "uicon-thumb-up": "", - "uicon-thumb-up-fill": "", - "uicon-lock-fill": "", - "uicon-lock-open": "", - "uicon-lock-opened-fill": "", - "uicon-lock": "", - "uicon-red-packet-fill": "", - "uicon-photo-fill": "", - "uicon-photo": "", - "uicon-volume-off-fill": "", - "uicon-volume-off": "", - "uicon-volume-fill": "", - "uicon-volume": "", - "uicon-red-packet": "", - "uicon-download": "", - "uicon-arrow-up-fill": "", - "uicon-arrow-down-fill": "", - "uicon-play-left-fill": "", - "uicon-play-right-fill": "", - "uicon-rewind-left-fill": "", - "uicon-rewind-right-fill": "", - "uicon-arrow-downward": "", - "uicon-arrow-leftward": "", - "uicon-arrow-rightward": "", - "uicon-arrow-upward": "", - "uicon-arrow-down": "", - "uicon-arrow-right": "", - "uicon-arrow-left": "", - "uicon-arrow-up": "", - "uicon-skip-back-left": "", - "uicon-skip-forward-right": "", - "uicon-rewind-right": "", - "uicon-rewind-left": "", - "uicon-arrow-right-double": "", - "uicon-arrow-left-double": "", - "uicon-wifi-off": "", - "uicon-wifi": "", - "uicon-empty-data": "", - "uicon-empty-history": "", - "uicon-empty-list": "", - "uicon-empty-page": "", - "uicon-empty-order": "", - "uicon-man": "", - "uicon-woman": "", - "uicon-man-add": "", - "uicon-man-add-fill": "", - "uicon-man-delete": "", - "uicon-man-delete-fill": "", - "uicon-zh": "", - "uicon-en": "" - }; - const version = "3"; - { - formatAppLog("log", "at node_modules/uview-plus/libs/config/config.js:5", ` - %c uview-plus V${version} %c https://ijry.github.io/uview-plus/ - -`, "color: #ffffff; background: #3c9cff; padding:5px 0;", "color: #3c9cff;background: #ffffff; padding:5px 0;"); - } - const config$1 = { - v: version, - version, - // 主题名称 - type: [ - "primary", - "success", - "info", - "error", - "warning" - ], - // 颜色部分,本来可以通过scss的:export导出供js使用,但是奈何nvue不支持 - color: { - "u-primary": "#2979ff", - "u-warning": "#ff9900", - "u-success": "#19be6b", - "u-error": "#fa3534", - "u-info": "#909399", - "u-main-color": "#303133", - "u-content-color": "#606266", - "u-tips-color": "#909399", - "u-light-color": "#c0c4cc" - }, - // 默认单位,可以通过配置为rpx,那么在用于传入组件大小参数为数值时,就默认为rpx - unit: "px" - }; - const ActionSheet = { - // action-sheet组件 - actionSheet: { - show: false, - title: "", - description: "", - actions: () => [], - index: "", - cancelText: "", - closeOnClickAction: true, - safeAreaInsetBottom: true, - openType: "", - closeOnClickOverlay: true, - round: 0 - } - }; - const Album = { - // album 组件 - album: { - urls: () => [], - keyName: "", - singleSize: 180, - multipleSize: 70, - space: 6, - singleMode: "scaleToFill", - multipleMode: "aspectFill", - maxCount: 9, - previewFullImage: true, - rowCount: 3, - showMore: true - } - }; - const Alert = { - // alert警告组件 - alert: { - title: "", - type: "warning", - description: "", - closable: false, - showIcon: false, - effect: "light", - center: false, - fontSize: 14 - } - }; - const Avatar = { - // avatar 组件 - avatar: { - src: "", - shape: "circle", - size: 40, - mode: "scaleToFill", - text: "", - bgColor: "#c0c4cc", - color: "#ffffff", - fontSize: 18, - icon: "", - mpAvatar: false, - randomBgColor: false, - defaultUrl: "", - colorIndex: "", - name: "" - } - }; - const AvatarGroup = { - // avatarGroup 组件 - avatarGroup: { - urls: () => [], - maxCount: 5, - shape: "circle", - mode: "scaleToFill", - showMore: true, - size: 40, - keyName: "", - gap: 0.5, - extraValue: 0 - } - }; - const Backtop = { - // backtop组件 - backtop: { - mode: "circle", - icon: "arrow-upward", - text: "", - duration: 100, - scrollTop: 0, - top: 400, - bottom: 100, - right: 20, - zIndex: 9, - iconStyle: () => ({ - color: "#909399", - fontSize: "19px" - }) - } - }; - const Badge = { - // 徽标数组件 - badge: { - isDot: false, - value: "", - show: true, - max: 999, - type: "error", - showZero: false, - bgColor: null, - color: null, - shape: "circle", - numberType: "overflow", - offset: () => [], - inverted: false, - absolute: false - } - }; - const Button = { - // button组件 - button: { - hairline: false, - type: "info", - size: "normal", - shape: "square", - plain: false, - disabled: false, - loading: false, - loadingText: "", - loadingMode: "spinner", - loadingSize: 15, - openType: "", - formType: "", - appParameter: "", - hoverStopPropagation: true, - lang: "en", - sessionFrom: "", - sendMessageTitle: "", - sendMessagePath: "", - sendMessageImg: "", - showMessageCard: false, - dataName: "", - throttleTime: 0, - hoverStartTime: 0, - hoverStayTime: 200, - text: "", - icon: "", - iconColor: "", - color: "" - } - }; - const Calendar$1 = { - // calendar 组件 - calendar: { - title: "日期选择", - showTitle: true, - showSubtitle: true, - mode: "single", - startText: "开始", - endText: "结束", - customList: () => [], - color: "#3c9cff", - minDate: 0, - maxDate: 0, - defaultDate: null, - maxCount: Number.MAX_SAFE_INTEGER, - // Infinity - rowHeight: 56, - formatter: null, - showLunar: false, - showMark: true, - confirmText: "确定", - confirmDisabledText: "确定", - show: false, - closeOnClickOverlay: false, - readonly: false, - showConfirm: true, - maxRange: Number.MAX_SAFE_INTEGER, - // Infinity - rangePrompt: "", - showRangePrompt: true, - allowSameDay: false, - round: 0, - monthNum: 3 - } - }; - const CarKeyboard = { - // 车牌号键盘 - carKeyboard: { - random: false - } - }; - const Cell = { - // cell组件的props - cell: { - customClass: "", - title: "", - label: "", - value: "", - icon: "", - disabled: false, - border: true, - center: false, - url: "", - linkType: "navigateTo", - clickable: false, - isLink: false, - required: false, - arrowDirection: "", - iconStyle: {}, - rightIconStyle: {}, - rightIcon: "arrow-right", - titleStyle: {}, - size: "", - stop: true, - name: "" - } - }; - const CellGroup = { - // cell-group组件的props - cellGroup: { - title: "", - border: true, - customStyle: {} - } - }; - const Checkbox = { - // checkbox组件 - checkbox: { - name: "", - shape: "", - size: "", - checkbox: false, - disabled: "", - activeColor: "", - inactiveColor: "", - iconSize: "", - iconColor: "", - label: "", - labelSize: "", - labelColor: "", - labelDisabled: "" - } - }; - const CheckboxGroup = { - // checkbox-group组件 - checkboxGroup: { - name: "", - value: () => [], - shape: "square", - disabled: false, - activeColor: "#2979ff", - inactiveColor: "#c8c9cc", - size: 18, - placement: "row", - labelSize: 14, - labelColor: "#303133", - labelDisabled: false, - iconColor: "#ffffff", - iconSize: 12, - iconPlacement: "left", - borderBottom: false - } - }; - const CircleProgress = { - // circleProgress 组件 - circleProgress: { - percentage: 30 - } - }; - const Code = { - // code 组件 - code: { - seconds: 60, - startText: "获取验证码", - changeText: "X秒重新获取", - endText: "重新获取", - keepRunning: false, - uniqueKey: "" - } - }; - const CodeInput = { - // codeInput 组件 - codeInput: { - adjustPosition: true, - maxlength: 6, - dot: false, - mode: "box", - hairline: false, - space: 10, - value: "", - focus: false, - bold: false, - color: "#606266", - fontSize: 18, - size: 35, - disabledKeyboard: false, - borderColor: "#c9cacc", - disabledDot: true - } - }; - const Col = { - // col 组件 - col: { - span: 12, - offset: 0, - justify: "start", - align: "stretch", - textAlign: "left" - } - }; - const Collapse = { - // collapse 组件 - collapse: { - value: null, - accordion: false, - border: true - } - }; - const CollapseItem = { - // collapseItem 组件 - collapseItem: { - title: "", - value: "", - label: "", - disabled: false, - isLink: true, - clickable: true, - border: true, - align: "left", - name: "", - icon: "", - duration: 300 - } - }; - const ColumnNotice = { - // columnNotice 组件 - columnNotice: { - text: "", - icon: "volume", - mode: "", - color: "#f9ae3d", - bgColor: "#fdf6ec", - fontSize: 14, - speed: 80, - step: false, - duration: 1500, - disableTouch: true - } - }; - const CountDown = { - // u-count-down 计时器组件 - countDown: { - time: 0, - format: "HH:mm:ss", - autoStart: true, - millisecond: false - } - }; - const CountTo = { - // countTo 组件 - countTo: { - startVal: 0, - endVal: 0, - duration: 2e3, - autoplay: true, - decimals: 0, - useEasing: true, - decimal: ".", - color: "#606266", - fontSize: 22, - bold: false, - separator: "" - } - }; - const DatetimePicker = { - // datetimePicker 组件 - datetimePicker: { - show: false, - showToolbar: true, - value: "", - title: "", - mode: "datetime", - maxDate: new Date((/* @__PURE__ */ new Date()).getFullYear() + 10, 0, 1).getTime(), - minDate: new Date((/* @__PURE__ */ new Date()).getFullYear() - 10, 0, 1).getTime(), - minHour: 0, - maxHour: 23, - minMinute: 0, - maxMinute: 59, - filter: null, - formatter: null, - loading: false, - itemHeight: 44, - cancelText: "取消", - confirmText: "确认", - cancelColor: "#909193", - confirmColor: "#3c9cff", - visibleItemCount: 5, - closeOnClickOverlay: false, - defaultIndex: () => [] - } - }; - const Divider = { - // divider组件 - divider: { - dashed: false, - hairline: true, - dot: false, - textPosition: "center", - text: "", - textSize: 14, - textColor: "#909399", - lineColor: "#dcdfe6" - } - }; - const Empty = { - // empty组件 - empty: { - icon: "", - text: "", - textColor: "#c0c4cc", - textSize: 14, - iconColor: "#c0c4cc", - iconSize: 90, - mode: "data", - width: 160, - height: 160, - show: true, - marginTop: 0 - } - }; - const Form = { - // form 组件 - form: { - model: () => ({}), - rules: () => ({}), - errorType: "message", - borderBottom: true, - labelPosition: "left", - labelWidth: 45, - labelAlign: "left", - labelStyle: () => ({}) - } - }; - const GormItem = { - // formItem 组件 - formItem: { - label: "", - prop: "", - borderBottom: "", - labelWidth: "", - rightIcon: "", - leftIcon: "", - required: false, - leftIconStyle: "" - } - }; - const Gap = { - // gap组件 - gap: { - bgColor: "transparent", - height: 20, - marginTop: 0, - marginBottom: 0, - customStyle: {} - } - }; - const Grid = { - // grid组件 - grid: { - col: 3, - border: false, - align: "left" - } - }; - const GridItem = { - // grid-item组件 - gridItem: { - name: null, - bgColor: "transparent" - } - }; - const { - color: color$3 - } = config$1; - const Icon = { - // icon组件 - icon: { - name: "", - color: color$3["u-content-color"], - size: "16px", - bold: false, - index: "", - hoverClass: "", - customPrefix: "uicon", - label: "", - labelPos: "right", - labelSize: "15px", - labelColor: color$3["u-content-color"], - space: "3px", - imgMode: "", - width: "", - height: "", - top: 0, - stop: false - } - }; - const Image = { - // image组件 - image: { - src: "", - mode: "aspectFill", - width: "300", - height: "225", - shape: "square", - radius: 0, - lazyLoad: true, - showMenuByLongpress: true, - loadingIcon: "photo", - errorIcon: "error-circle", - showLoading: true, - showError: true, - fade: true, - webp: false, - duration: 500, - bgColor: "#f3f4f6" - } - }; - const IndexAnchor = { - // indexAnchor 组件 - indexAnchor: { - text: "", - color: "#606266", - size: 14, - bgColor: "#dedede", - height: 32 - } - }; - const IndexList = { - // indexList 组件 - indexList: { - inactiveColor: "#606266", - activeColor: "#5677fc", - indexList: () => [], - sticky: true, - customNavHeight: 0 - } - }; - const Input = { - // index 组件 - input: { - value: "", - type: "text", - fixed: false, - disabled: false, - disabledColor: "#f5f7fa", - clearable: false, - password: false, - maxlength: -1, - placeholder: null, - placeholderClass: "input-placeholder", - placeholderStyle: "color: #c0c4cc", - showWordLimit: false, - confirmType: "done", - confirmHold: false, - holdKeyboard: false, - focus: false, - autoBlur: false, - disableDefaultPadding: false, - cursor: -1, - cursorSpacing: 30, - selectionStart: -1, - selectionEnd: -1, - adjustPosition: true, - inputAlign: "left", - fontSize: "15px", - color: "#303133", - prefixIcon: "", - prefixIconStyle: "", - suffixIcon: "", - suffixIconStyle: "", - border: "surround", - readonly: false, - shape: "square", - formatter: null - } - }; - const Keyboard = { - // 键盘组件 - keyboard: { - mode: "number", - dotDisabled: false, - tooltip: true, - showTips: true, - tips: "", - showCancel: true, - showConfirm: true, - random: false, - safeAreaInsetBottom: true, - closeOnClickOverlay: true, - show: false, - overlay: true, - zIndex: 10075, - cancelText: "取消", - confirmText: "确定", - autoChange: false - } - }; - const Line = { - // line组件 - line: { - color: "#d6d7d9", - length: "100%", - direction: "row", - hairline: true, - margin: 0, - dashed: false - } - }; - const LineProgress = { - // lineProgress 组件 - lineProgress: { - activeColor: "#19be6b", - inactiveColor: "#ececec", - percentage: 0, - showText: true, - height: 12 - } - }; - const { - color: color$2 - } = config$1; - const Link = { - // link超链接组件props参数 - link: { - color: color$2["u-primary"], - fontSize: 15, - underLine: false, - href: "", - mpTips: "链接已复制,请在浏览器打开", - lineColor: "", - text: "" - } - }; - const List = { - // list 组件 - list: { - showScrollbar: false, - lowerThreshold: 50, - upperThreshold: 0, - scrollTop: 0, - offsetAccuracy: 10, - enableFlex: false, - pagingEnabled: false, - scrollable: true, - scrollIntoView: "", - scrollWithAnimation: false, - enableBackToTop: false, - height: 0, - width: 0, - preLoadScreen: 1 - } - }; - const ListItem = { - // listItem 组件 - listItem: { - anchor: "" - } - }; - const { - color: color$1 - } = config$1; - const LoadingIcon = { - // loading-icon加载中图标组件 - loadingIcon: { - show: true, - color: color$1["u-tips-color"], - textColor: color$1["u-tips-color"], - vertical: false, - mode: "spinner", - size: 24, - textSize: 15, - text: "", - timingFunction: "ease-in-out", - duration: 1200, - inactiveColor: "" - } - }; - const LoadingPage = { - // loading-page组件 - loadingPage: { - loadingText: "正在加载", - image: "", - loadingMode: "circle", - loading: false, - bgColor: "#ffffff", - color: "#C8C8C8", - fontSize: 19, - iconSize: 28, - loadingColor: "#C8C8C8" - } - }; - const Loadmore = { - // loadmore 组件 - loadmore: { - status: "loadmore", - bgColor: "transparent", - icon: true, - fontSize: 14, - iconSize: 17, - color: "#606266", - loadingIcon: "spinner", - loadmoreText: "加载更多", - loadingText: "正在加载...", - nomoreText: "没有更多了", - isDot: false, - iconColor: "#b7b7b7", - marginTop: 10, - marginBottom: 10, - height: "auto", - line: false, - lineColor: "#E6E8EB", - dashed: false - } - }; - const Modal = { - // modal 组件 - modal: { - show: false, - title: "", - content: "", - confirmText: "确认", - cancelText: "取消", - showConfirmButton: true, - showCancelButton: false, - confirmColor: "#2979ff", - cancelColor: "#606266", - buttonReverse: false, - zoom: true, - asyncClose: false, - closeOnClickOverlay: false, - negativeTop: 0, - width: "650rpx", - confirmButtonShape: "" - } - }; - const color = { - primary: "#3c9cff", - info: "#909399", - default: "#909399", - warning: "#f9ae3d", - error: "#f56c6c", - success: "#5ac725", - mainColor: "#303133", - contentColor: "#606266", - tipsColor: "#909399", - lightColor: "#c0c4cc", - borderColor: "#e4e7ed" - }; - const Navbar = { - // navbar 组件 - navbar: { - safeAreaInsetTop: true, - placeholder: false, - fixed: true, - border: false, - leftIcon: "arrow-left", - leftText: "", - rightText: "", - rightIcon: "", - title: "", - bgColor: "#ffffff", - titleWidth: "400rpx", - height: "44px", - leftIconSize: 20, - leftIconColor: color.mainColor, - autoBack: false, - titleStyle: "" - } - }; - const NoNetwork = { - // noNetwork - noNetwork: { - tips: "哎呀,网络信号丢失", - zIndex: "", - image: "data:image/png;base64,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" - } - }; - const NoticeBar = { - // noticeBar - noticeBar: { - text: () => [], - direction: "row", - step: false, - icon: "volume", - mode: "", - color: "#f9ae3d", - bgColor: "#fdf6ec", - speed: 80, - fontSize: 14, - duration: 2e3, - disableTouch: true, - url: "", - linkType: "navigateTo" - } - }; - const Notify = { - // notify组件 - notify: { - top: 0, - type: "primary", - color: "#ffffff", - bgColor: "", - message: "", - duration: 3e3, - fontSize: 15, - safeAreaInsetTop: false - } - }; - const NumberBox = { - // 步进器组件 - numberBox: { - name: "", - value: 0, - min: 1, - max: Number.MAX_SAFE_INTEGER, - step: 1, - integer: false, - disabled: false, - disabledInput: false, - asyncChange: false, - inputWidth: 35, - showMinus: true, - showPlus: true, - decimalLength: null, - longPress: true, - color: "#323233", - buttonSize: 30, - bgColor: "#EBECEE", - cursorSpacing: 100, - disableMinus: false, - disablePlus: false, - iconStyle: "" - } - }; - const NumberKeyboard = { - // 数字键盘 - numberKeyboard: { - mode: "number", - dotDisabled: false, - random: false - } - }; - const Overlay = { - // overlay组件 - overlay: { - show: false, - zIndex: 10070, - duration: 300, - opacity: 0.5 - } - }; - const Parse = { - // parse - parse: { - copyLink: true, - errorImg: "", - lazyLoad: false, - loadingImg: "", - pauseVideo: true, - previewImg: true, - setTitle: true, - showImgMenu: true - } - }; - const Picker = { - // picker - picker: { - show: false, - showToolbar: true, - title: "", - columns: () => [], - loading: false, - itemHeight: 44, - cancelText: "取消", - confirmText: "确定", - cancelColor: "#909193", - confirmColor: "#3c9cff", - visibleItemCount: 5, - keyName: "text", - closeOnClickOverlay: false, - defaultIndex: () => [], - immediateChange: false - } - }; - const Popup = { - // popup组件 - popup: { - show: false, - overlay: true, - mode: "bottom", - duration: 300, - closeable: false, - overlayStyle: () => { - }, - closeOnClickOverlay: true, - zIndex: 10075, - safeAreaInsetBottom: true, - safeAreaInsetTop: false, - closeIconPos: "top-right", - round: 0, - zoom: true, - bgColor: "", - overlayOpacity: 0.5 - } - }; - const Radio = { - // radio组件 - radio: { - name: "", - shape: "", - disabled: "", - labelDisabled: "", - activeColor: "", - inactiveColor: "", - iconSize: "", - labelSize: "", - label: "", - labelColor: "", - size: "", - iconColor: "", - placement: "" - } - }; - const RadioGroup = { - // radio-group组件 - radioGroup: { - value: "", - disabled: false, - shape: "circle", - activeColor: "#2979ff", - inactiveColor: "#c8c9cc", - name: "", - size: 18, - placement: "row", - label: "", - labelColor: "#303133", - labelSize: 14, - labelDisabled: false, - iconColor: "#ffffff", - iconSize: 12, - borderBottom: false, - iconPlacement: "left" - } - }; - const Rate = { - // rate组件 - rate: { - value: 1, - count: 5, - disabled: false, - size: 18, - inactiveColor: "#b2b2b2", - activeColor: "#FA3534", - gutter: 4, - minCount: 1, - allowHalf: false, - activeIcon: "star-fill", - inactiveIcon: "star", - touchable: true - } - }; - const ReadMore = { - // readMore - readMore: { - showHeight: 400, - toggle: false, - closeText: "展开阅读全文", - openText: "收起", - color: "#2979ff", - fontSize: 14, - textIndent: "2em", - name: "" - } - }; - const Row = { - // row - row: { - gutter: 0, - justify: "start", - align: "center" - } - }; - const RowNotice = { - // rowNotice - rowNotice: { - text: "", - icon: "volume", - mode: "", - color: "#f9ae3d", - bgColor: "#fdf6ec", - fontSize: 14, - speed: 80 - } - }; - const ScrollList = { - // scrollList - scrollList: { - indicatorWidth: 50, - indicatorBarWidth: 20, - indicator: true, - indicatorColor: "#f2f2f2", - indicatorActiveColor: "#3c9cff", - indicatorStyle: "" - } - }; - const Search = { - // search - search: { - shape: "round", - bgColor: "#f2f2f2", - placeholder: "请输入关键字", - clearabled: true, - focus: false, - showAction: true, - actionStyle: () => ({}), - actionText: "搜索", - inputAlign: "left", - inputStyle: () => ({}), - disabled: false, - borderColor: "transparent", - searchIconColor: "#909399", - searchIconSize: 22, - color: "#606266", - placeholderColor: "#909399", - searchIcon: "search", - margin: "0", - animation: false, - value: "", - maxlength: "-1", - height: 32, - label: null - } - }; - const Section = { - // u-section组件 - section: { - title: "", - subTitle: "更多", - right: true, - fontSize: 15, - bold: true, - color: "#303133", - subColor: "#909399", - showLine: true, - lineColor: "", - arrow: true - } - }; - const Skeleton = { - // skeleton - skeleton: { - loading: true, - animate: true, - rows: 0, - rowsWidth: "100%", - rowsHeight: 18, - title: true, - titleWidth: "50%", - titleHeight: 18, - avatar: false, - avatarSize: 32, - avatarShape: "circle" - } - }; - const Slider = { - // slider组件 - slider: { - value: 0, - blockSize: 18, - min: 0, - max: 100, - step: 1, - activeColor: "#2979ff", - inactiveColor: "#c0c4cc", - blockColor: "#ffffff", - showValue: false, - disabled: false, - blockStyle: () => { - } - } - }; - const StatusBar = { - // statusBar - statusBar: { - bgColor: "transparent" - } - }; - const Steps = { - // steps组件 - steps: { - direction: "row", - current: 0, - activeColor: "#3c9cff", - inactiveColor: "#969799", - activeIcon: "", - inactiveIcon: "", - dot: false - } - }; - const StepsItem = { - // steps-item组件 - stepsItem: { - title: "", - desc: "", - iconSize: 17, - error: false - } - }; - const Sticky = { - // sticky组件 - sticky: { - offsetTop: 0, - customNavHeight: 0, - disabled: false, - bgColor: "transparent", - zIndex: "", - index: "" - } - }; - const Subsection = { - // subsection组件 - subsection: { - list: [], - current: 0, - activeColor: "#3c9cff", - inactiveColor: "#303133", - mode: "button", - fontSize: 12, - bold: true, - bgColor: "#eeeeef", - keyName: "name" - } - }; - const SwipeAction = { - // swipe-action组件 - swipeAction: { - autoClose: true - } - }; - const SwipeActionItem = { - // swipeActionItem 组件 - swipeActionItem: { - show: false, - name: "", - disabled: false, - threshold: 20, - autoClose: true, - options: [], - duration: 300 - } - }; - const Swiper = { - // swiper 组件 - swiper: { - list: () => [], - indicator: false, - indicatorActiveColor: "#FFFFFF", - indicatorInactiveColor: "rgba(255, 255, 255, 0.35)", - indicatorStyle: "", - indicatorMode: "line", - autoplay: true, - current: 0, - currentItemId: "", - interval: 3e3, - duration: 300, - circular: false, - previousMargin: 0, - nextMargin: 0, - acceleration: false, - displayMultipleItems: 1, - easingFunction: "default", - keyName: "url", - imgMode: "aspectFill", - height: 130, - bgColor: "#f3f4f6", - radius: 4, - loading: false, - showTitle: false - } - }; - const SwipterIndicator = { - // swiperIndicator 组件 - swiperIndicator: { - length: 0, - current: 0, - indicatorActiveColor: "", - indicatorInactiveColor: "", - indicatorMode: "line" - } - }; - const Switch = { - // switch - switch: { - loading: false, - disabled: false, - size: 25, - activeColor: "#2979ff", - inactiveColor: "#ffffff", - value: false, - activeValue: true, - inactiveValue: false, - asyncChange: false, - space: 0 - } - }; - const Tabbar = { - // tabbar - tabbar: { - value: null, - safeAreaInsetBottom: true, - border: true, - zIndex: 1, - activeColor: "#1989fa", - inactiveColor: "#7d7e80", - fixed: true, - placeholder: true - } - }; - const TabbarItem = { - // - tabbarItem: { - name: null, - icon: "", - badge: null, - dot: false, - text: "", - badgeStyle: "top: 6px;right:2px;" - } - }; - const Tabs = { - // - tabs: { - duration: 300, - list: () => [], - lineColor: "#3c9cff", - activeStyle: () => ({ - color: "#303133" - }), - inactiveStyle: () => ({ - color: "#606266" - }), - lineWidth: 20, - lineHeight: 3, - lineBgSize: "cover", - itemStyle: () => ({ - height: "44px" - }), - scrollable: true, - current: 0, - keyName: "name" - } - }; - const Tag = { - // tag 组件 - tag: { - type: "primary", - disabled: false, - size: "medium", - shape: "square", - text: "", - bgColor: "", - color: "", - borderColor: "", - closeColor: "#C6C7CB", - name: "", - plainFill: false, - plain: false, - closable: false, - show: true, - icon: "" - } - }; - const Text = { - // text 组件 - text: { - type: "", - show: true, - text: "", - prefixIcon: "", - suffixIcon: "", - mode: "", - href: "", - format: "", - call: false, - openType: "", - bold: false, - block: false, - lines: "", - color: "#303133", - size: 15, - iconStyle: () => ({ - fontSize: "15px" - }), - decoration: "none", - margin: 0, - lineHeight: "", - align: "left", - wordWrap: "normal" - } - }; - const Textarea = { - // textarea 组件 - textarea: { - value: "", - placeholder: "", - placeholderClass: "textarea-placeholder", - placeholderStyle: "color: #c0c4cc", - height: 70, - confirmType: "done", - disabled: false, - count: false, - focus: false, - autoHeight: false, - fixed: false, - cursorSpacing: 0, - cursor: "", - showConfirmBar: true, - selectionStart: -1, - selectionEnd: -1, - adjustPosition: true, - disableDefaultPadding: false, - holdKeyboard: false, - maxlength: 140, - border: "surround", - formatter: null - } - }; - const Toast$1 = { - // toast组件 - toast: { - zIndex: 10090, - loading: false, - text: "", - icon: "", - type: "", - loadingMode: "", - show: "", - overlay: false, - position: "center", - params: () => { - }, - duration: 2e3, - isTab: false, - url: "", - callback: null, - back: false - } - }; - const Toolbar = { - // toolbar 组件 - toolbar: { - show: true, - cancelText: "取消", - confirmText: "确认", - cancelColor: "#909193", - confirmColor: "#3c9cff", - title: "" - } - }; - const Tooltip = { - // tooltip 组件 - tooltip: { - text: "", - copyText: "", - size: 14, - color: "#606266", - bgColor: "transparent", - direction: "top", - zIndex: 10071, - showCopy: true, - buttons: () => [], - overlay: true, - showToast: true - } - }; - const Transition = { - // transition动画组件的props - transition: { - show: false, - mode: "fade", - duration: "300", - timingFunction: "ease-out" - } - }; - const Upload = { - // upload组件 - upload: { - accept: "image", - capture: () => ["album", "camera"], - compressed: true, - camera: "back", - maxDuration: 60, - uploadIcon: "camera-fill", - uploadIconColor: "#D3D4D6", - useBeforeRead: false, - previewFullImage: true, - maxCount: 52, - disabled: false, - imageMode: "aspectFill", - name: "", - sizeType: () => ["original", "compressed"], - multiple: false, - deletable: true, - maxSize: Number.MAX_VALUE, - fileList: () => [], - uploadText: "", - width: 80, - height: 80, - previewImage: true - } - }; - const props$i = { - ...ActionSheet, - ...Album, - ...Alert, - ...Avatar, - ...AvatarGroup, - ...Backtop, - ...Badge, - ...Button, - ...Calendar$1, - ...CarKeyboard, - ...Cell, - ...CellGroup, - ...Checkbox, - ...CheckboxGroup, - ...CircleProgress, - ...Code, - ...CodeInput, - ...Col, - ...Collapse, - ...CollapseItem, - ...ColumnNotice, - ...CountDown, - ...CountTo, - ...DatetimePicker, - ...Divider, - ...Empty, - ...Form, - ...GormItem, - ...Gap, - ...Grid, - ...GridItem, - ...Icon, - ...Image, - ...IndexAnchor, - ...IndexList, - ...Input, - ...Keyboard, - ...Line, - ...LineProgress, - ...Link, - ...List, - ...ListItem, - ...LoadingIcon, - ...LoadingPage, - ...Loadmore, - ...Modal, - ...Navbar, - ...NoNetwork, - ...NoticeBar, - ...Notify, - ...NumberBox, - ...NumberKeyboard, - ...Overlay, - ...Parse, - ...Picker, - ...Popup, - ...Radio, - ...RadioGroup, - ...Rate, - ...ReadMore, - ...Row, - ...RowNotice, - ...ScrollList, - ...Search, - ...Section, - ...Skeleton, - ...Slider, - ...StatusBar, - ...Steps, - ...StepsItem, - ...Sticky, - ...Subsection, - ...SwipeAction, - ...SwipeActionItem, - ...Swiper, - ...SwipterIndicator, - ...Switch, - ...Tabbar, - ...TabbarItem, - ...Tabs, - ...Tag, - ...Text, - ...Textarea, - ...Toast$1, - ...Toolbar, - ...Tooltip, - ...Transition, - ...Upload - }; - const props$h = { - props: { - // 图标类名 - name: { - type: String, - default: props$i.icon.name - }, - // 图标颜色,可接受主题色 - color: { - type: String, - default: props$i.icon.color - }, - // 字体大小,单位px - size: { - type: [String, Number], - default: props$i.icon.size - }, - // 是否显示粗体 - bold: { - type: Boolean, - default: props$i.icon.bold - }, - // 点击图标的时候传递事件出去的index(用于区分点击了哪一个) - index: { - type: [String, Number], - default: props$i.icon.index - }, - // 触摸图标时的类名 - hoverClass: { - type: String, - default: props$i.icon.hoverClass - }, - // 自定义扩展前缀,方便用户扩展自己的图标库 - customPrefix: { - type: String, - default: props$i.icon.customPrefix - }, - // 图标右边或者下面的文字 - label: { - type: [String, Number], - default: props$i.icon.label - }, - // label的位置,只能右边或者下边 - labelPos: { - type: String, - default: props$i.icon.labelPos - }, - // label的大小 - labelSize: { - type: [String, Number], - default: props$i.icon.labelSize - }, - // label的颜色 - labelColor: { - type: String, - default: props$i.icon.labelColor - }, - // label与图标的距离 - space: { - type: [String, Number], - default: props$i.icon.space - }, - // 图片的mode - imgMode: { - type: String, - default: props$i.icon.imgMode - }, - // 用于显示图片小图标时,图片的宽度 - width: { - type: [String, Number], - default: props$i.icon.width - }, - // 用于显示图片小图标时,图片的高度 - height: { - type: [String, Number], - default: props$i.icon.height - }, - // 用于解决某些情况下,让图标垂直居中的用途 - top: { - type: [String, Number], - default: props$i.icon.top - }, - // 是否阻止事件传播 - stop: { - type: Boolean, - default: props$i.icon.stop - } - } - }; - const mpMixin = {}; - const mixin = { - // 定义每个组件都可能需要用到的外部样式以及类名 - props: { - // 每个组件都有的父组件传递的样式,可以为字符串或者对象形式 - customStyle: { - type: [Object, String], - default: () => ({}) - }, - customClass: { - type: String, - default: "" - }, - // 跳转的页面路径 - url: { - type: String, - default: "" - }, - // 页面跳转的类型 - linkType: { - type: String, - default: "navigateTo" - } - }, - data() { - return {}; - }, - onLoad() { - this.$u.getRect = this.$uGetRect; - }, - created() { - this.$u.getRect = this.$uGetRect; - }, - computed: { - // 在2.x版本中,将会把$u挂载到uni对象下,导致在模板中无法使用uni.$u.xxx形式 - // 所以这里通过computed计算属性将其附加到this.$u上,就可以在模板或者js中使用uni.$u.xxx - // 只在nvue环境通过此方式引入完整的$u,其他平台会出现性能问题,非nvue则按需引入(主要原因是props过大) - $u() { - return uni.$u.deepMerge(uni.$u, { - props: void 0, - http: void 0, - mixin: void 0 - }); - }, - /** - * 生成bem规则类名 - * 由于微信小程序,H5,nvue之间绑定class的差异,无法通过:class="[bem()]"的形式进行同用 - * 故采用如下折中做法,最后返回的是数组(一般平台)或字符串(支付宝和字节跳动平台),类似['a', 'b', 'c']或'a b c'的形式 - * @param {String} name 组件名称 - * @param {Array} fixed 一直会存在的类名 - * @param {Array} change 会根据变量值为true或者false而出现或者隐藏的类名 - * @returns {Array|string} - */ - bem() { - return function(name, fixed, change) { - const prefix = `u-${name}--`; - const classes = {}; - if (fixed) { - fixed.map((item) => { - classes[prefix + this[item]] = true; - }); - } - if (change) { - change.map((item) => { - this[item] ? classes[prefix + item] = this[item] : delete classes[prefix + item]; - }); - } - return Object.keys(classes); - }; - } - }, - methods: { - // 跳转某一个页面 - openPage(urlKey = "url") { - const url2 = this[urlKey]; - if (url2) { - this.$u.route({ type: this.linkType, url: url2 }); - } - }, - // 查询节点信息 - // 目前此方法在支付宝小程序中无法获取组件跟接点的尺寸,为支付宝的bug(2020-07-21) - // 解决办法为在组件根部再套一个没有任何作用的view元素 - $uGetRect(selector, all) { - return new Promise((resolve) => { - uni.createSelectorQuery().in(this)[all ? "selectAll" : "select"](selector).boundingClientRect((rect) => { - if (all && Array.isArray(rect) && rect.length) { - resolve(rect); - } - if (!all && rect) { - resolve(rect); - } - }).exec(); - }); - }, - getParentData(parentName = "") { - if (!this.parent) - this.parent = {}; - this.parent = uni.$u.$parent.call(this, parentName); - if (this.parent.children) { - this.parent.children.indexOf(this) === -1 && this.parent.children.push(this); - } - if (this.parent && this.parentData) { - Object.keys(this.parentData).map((key) => { - this.parentData[key] = this.parent[key]; - }); - } - }, - // 阻止事件冒泡 - preventEvent(e2) { - e2 && typeof e2.stopPropagation === "function" && e2.stopPropagation(); - }, - // 空操作 - noop(e2) { - this.preventEvent(e2); - } - }, - onReachBottom() { - uni.$emit("uOnReachBottom"); - }, - beforeDestroy() { - if (this.parent && uni.$u.test.array(this.parent.children)) { - const childrenList = this.parent.children; - childrenList.map((child, index2) => { - if (child === this) { - childrenList.splice(index2, 1); - } - }); - } - } - }; - const _export_sfc = (sfc, props2) => { - const target = sfc.__vccOpts || sfc; - for (const [key, val] of props2) { - target[key] = val; - } - return target; - }; - const _sfc_main$A = { - name: "u-icon", - data() { - return {}; - }, - emits: ["click"], - mixins: [mpMixin, mixin, props$h], - computed: { - uClasses() { - let classes = []; - classes.push(this.customPrefix + "-" + this.name); - if (this.color && uni.$u.config.type.includes(this.color)) - classes.push("u-icon__icon--" + this.color); - return classes; - }, - iconStyle() { - let style = {}; - style = { - fontSize: uni.$u.addUnit(this.size), - lineHeight: uni.$u.addUnit(this.size), - fontWeight: this.bold ? "bold" : "normal", - // 某些特殊情况需要设置一个到顶部的距离,才能更好的垂直居中 - top: uni.$u.addUnit(this.top) - }; - if (this.color && !uni.$u.config.type.includes(this.color)) - style.color = this.color; - return style; - }, - // 判断传入的name属性,是否图片路径,只要带有"/"均认为是图片形式 - isImg() { - return this.name.indexOf("/") !== -1; - }, - imgStyle() { - let style = {}; - style.width = this.width ? uni.$u.addUnit(this.width) : uni.$u.addUnit(this.size); - style.height = this.height ? uni.$u.addUnit(this.height) : uni.$u.addUnit(this.size); - return style; - }, - // 通过图标名,查找对应的图标 - icon() { - return icons$1["uicon-" + this.name] || this.name; - } - }, - methods: { - clickHandler(e2) { - this.$emit("click", this.index); - this.stop && this.preventEvent(e2); - } - } - }; - function _sfc_render$m(_ctx, _cache, $props, $setup, $data, $options) { - return vue.openBlock(), vue.createElementBlock( - "view", - { - class: vue.normalizeClass(["u-icon", ["u-icon--" + _ctx.labelPos]]), - onClick: _cache[0] || (_cache[0] = (...args) => $options.clickHandler && $options.clickHandler(...args)) - }, - [ - $options.isImg ? (vue.openBlock(), vue.createElementBlock("image", { - key: 0, - class: "u-icon__img", - src: _ctx.name, - mode: _ctx.imgMode, - style: vue.normalizeStyle([$options.imgStyle, _ctx.$u.addStyle(_ctx.customStyle)]) - }, null, 12, ["src", "mode"])) : (vue.openBlock(), vue.createElementBlock("text", { - key: 1, - class: vue.normalizeClass(["u-icon__icon", $options.uClasses]), - style: vue.normalizeStyle([$options.iconStyle, _ctx.$u.addStyle(_ctx.customStyle)]), - "hover-class": _ctx.hoverClass - }, vue.toDisplayString($options.icon), 15, ["hover-class"])), - vue.createCommentVNode(' 这里进行空字符串判断,如果仅仅是v-if="label",可能会出现传递0的时候,结果也无法显示 '), - _ctx.label !== "" ? (vue.openBlock(), vue.createElementBlock( - "text", - { - key: 2, - class: "u-icon__label", - style: vue.normalizeStyle({ - color: _ctx.labelColor, - fontSize: _ctx.$u.addUnit(_ctx.labelSize), - marginLeft: _ctx.labelPos == "right" ? _ctx.$u.addUnit(_ctx.space) : 0, - marginTop: _ctx.labelPos == "bottom" ? _ctx.$u.addUnit(_ctx.space) : 0, - marginRight: _ctx.labelPos == "left" ? _ctx.$u.addUnit(_ctx.space) : 0, - marginBottom: _ctx.labelPos == "top" ? _ctx.$u.addUnit(_ctx.space) : 0 - }) - }, - vue.toDisplayString(_ctx.label), - 5 - /* TEXT, STYLE */ - )) : vue.createCommentVNode("v-if", true) - ], - 2 - /* CLASS */ - ); - } - const __easycom_1$4 = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["render", _sfc_render$m], ["__scopeId", "data-v-1c933a9a"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-icon/u-icon.vue"]]); - const props$g = { - props: { - // 是否展示组件 - show: { - type: Boolean, - default: props$i.transition.show - }, - // 使用的动画模式 - mode: { - type: String, - default: props$i.transition.mode - }, - // 动画的执行时间,单位ms - duration: { - type: [String, Number], - default: props$i.transition.duration - }, - // 使用的动画过渡函数 - timingFunction: { - type: String, - default: props$i.transition.timingFunction - } - } - }; - const getClassNames = (name) => ({ - enter: `u-${name}-enter u-${name}-enter-active`, - "enter-to": `u-${name}-enter-to u-${name}-enter-active`, - leave: `u-${name}-leave u-${name}-leave-active`, - "leave-to": `u-${name}-leave-to u-${name}-leave-active` - }); - const transition = { - methods: { - // 组件被点击发出事件 - clickHandler() { - this.$emit("click"); - }, - // vue版本的组件进场处理 - async vueEnter() { - const classNames = getClassNames(this.mode); - this.status = "enter"; - this.$emit("beforeEnter"); - this.inited = true; - this.display = true; - this.classes = classNames.enter; - await vue.nextTick(); - { - this.$emit("enter"); - this.transitionEnded = false; - this.$emit("afterEnter"); - this.classes = classNames["enter-to"]; - } - }, - // 动画离场处理 - async vueLeave() { - if (!this.display) - return; - const classNames = getClassNames(this.mode); - this.status = "leave"; - this.$emit("beforeLeave"); - this.classes = classNames.leave; - await vue.nextTick(); - { - this.transitionEnded = false; - this.$emit("leave"); - setTimeout(this.onTransitionEnd, this.duration); - this.classes = classNames["leave-to"]; - } - }, - // 完成过渡后触发 - onTransitionEnd() { - if (this.transitionEnded) - return; - this.transitionEnded = true; - this.$emit(this.status === "leave" ? "afterLeave" : "afterEnter"); - if (!this.show && this.display) { - this.display = false; - this.inited = false; - } - } - } - }; - const _sfc_main$z = { - name: "u-transition", - data() { - return { - inited: false, - // 是否显示/隐藏组件 - viewStyle: {}, - // 组件内部的样式 - status: "", - // 记录组件动画的状态 - transitionEnded: false, - // 组件是否结束的标记 - display: false, - // 组件是否展示 - classes: "" - // 应用的类名 - }; - }, - emits: ["click", "beforeEnter", "enter", "afterEnter", "beforeLeave", "leave", "afterLeave"], - computed: { - mergeStyle() { - const { viewStyle, customStyle } = this; - return { - transitionDuration: `${this.duration}ms`, - // display: `${this.display ? '' : 'none'}`, - transitionTimingFunction: this.timingFunction, - // 避免自定义样式影响到动画属性,所以写在viewStyle前面 - ...uni.$u.addStyle(customStyle), - ...viewStyle - }; - } - }, - // 将mixin挂在到组件中,uni.$u.mixin实际上为一个vue格式对象 - mixins: [mpMixin, mixin, transition, props$g], - watch: { - show: { - handler(newVal) { - newVal ? this.vueEnter() : this.vueLeave(); - }, - // 表示同时监听初始化时的props的show的意思 - immediate: true - } - } - }; - function _sfc_render$l(_ctx, _cache, $props, $setup, $data, $options) { - return $data.inited ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 0, - class: vue.normalizeClass(["u-transition", $data.classes]), - ref: "u-transition", - onClick: _cache[0] || (_cache[0] = (...args) => _ctx.clickHandler && _ctx.clickHandler(...args)), - style: vue.normalizeStyle([$options.mergeStyle]), - onTouchmove: _cache[1] || (_cache[1] = (...args) => _ctx.noop && _ctx.noop(...args)) - }, - [ - vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) - ], - 38 - /* CLASS, STYLE, HYDRATE_EVENTS */ - )) : vue.createCommentVNode("v-if", true); - } - const __easycom_4 = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["render", _sfc_render$l], ["__scopeId", "data-v-0573594d"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-transition/u-transition.vue"]]); - const props$f = { - props: { - // 图片地址 - src: { - type: String, - default: props$i.image.src - }, - // 裁剪模式 - mode: { - type: String, - default: props$i.image.mode - }, - // 宽度,单位任意 - width: { - type: [String, Number], - default: props$i.image.width - }, - // 高度,单位任意 - height: { - type: [String, Number], - default: props$i.image.height - }, - // 图片形状,circle-圆形,square-方形 - shape: { - type: String, - default: props$i.image.shape - }, - // 圆角,单位任意 - radius: { - type: [String, Number], - default: props$i.image.radius - }, - // 是否懒加载,微信小程序、App、百度小程序、字节跳动小程序 - lazyLoad: { - type: Boolean, - default: props$i.image.lazyLoad - }, - // 开启长按图片显示识别微信小程序码菜单 - showMenuByLongpress: { - type: Boolean, - default: props$i.image.showMenuByLongpress - }, - // 加载中的图标,或者小图片 - loadingIcon: { - type: String, - default: props$i.image.loadingIcon - }, - // 加载失败的图标,或者小图片 - errorIcon: { - type: String, - default: props$i.image.errorIcon - }, - // 是否显示加载中的图标或者自定义的slot - showLoading: { - type: Boolean, - default: props$i.image.showLoading - }, - // 是否显示加载错误的图标或者自定义的slot - showError: { - type: Boolean, - default: props$i.image.showError - }, - // 是否需要淡入效果 - fade: { - type: Boolean, - default: props$i.image.fade - }, - // 只支持网络资源,只对微信小程序有效 - webp: { - type: Boolean, - default: props$i.image.webp - }, - // 过渡时间,单位ms - duration: { - type: [String, Number], - default: props$i.image.duration - }, - // 背景颜色,用于深色页面加载图片时,为了和背景色融合 - bgColor: { - type: String, - default: props$i.image.bgColor - } - } - }; - const _sfc_main$y = { - name: "u-image", - mixins: [mpMixin, mixin, props$f], - data() { - return { - // 图片是否加载错误,如果是,则显示错误占位图 - isError: false, - // 初始化组件时,默认为加载中状态 - loading: true, - // 不透明度,为了实现淡入淡出的效果 - opacity: 1, - // 过渡时间,因为props的值无法修改,故需要一个中间值 - durationTime: this.duration, - // 图片加载完成时,去掉背景颜色,因为如果是png图片,就会显示灰色的背景 - backgroundStyle: {}, - // 用于fade模式的控制组件显示与否 - show: false - }; - }, - watch: { - src: { - immediate: true, - handler(n2) { - if (!n2) { - this.isError = true; - } else { - this.isError = false; - this.loading = true; - } - } - } - }, - computed: { - wrapStyle() { - let style = {}; - style.width = this.$u.addUnit(this.width); - style.height = this.$u.addUnit(this.height); - style.borderRadius = this.shape == "circle" ? "10000px" : uni.$u.addUnit(this.radius); - style.overflow = this.radius > 0 ? "hidden" : "visible"; - return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); - } - }, - mounted() { - this.show = true; - }, - emits: ["click", "error", "load"], - methods: { - // 点击图片 - onClick() { - this.$emit("click"); - }, - // 图片加载失败 - onErrorHandler(err) { - this.loading = false; - this.isError = true; - this.$emit("error", err); - }, - // 图片加载完成,标记loading结束 - onLoadHandler(event) { - this.loading = false; - this.isError = false; - this.$emit("load", event); - this.removeBgColor(); - }, - // 移除图片的背景色 - removeBgColor() { - this.backgroundStyle = { - backgroundColor: "transparent" - }; - } - } - }; - function _sfc_render$k(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_1$4); - const _component_u_transition = resolveEasycom(vue.resolveDynamicComponent("u-transition"), __easycom_4); - return vue.openBlock(), vue.createBlock(_component_u_transition, { - mode: "fade", - show: $data.show, - duration: _ctx.fade ? 1e3 : 0 - }, { - default: vue.withCtx(() => [ - vue.createElementVNode( - "view", - { - class: "u-image", - onClick: _cache[2] || (_cache[2] = (...args) => $options.onClick && $options.onClick(...args)), - style: vue.normalizeStyle([$options.wrapStyle, $data.backgroundStyle]) - }, - [ - !$data.isError ? (vue.openBlock(), vue.createElementBlock("image", { - key: 0, - src: _ctx.src, - mode: _ctx.mode, - onError: _cache[0] || (_cache[0] = (...args) => $options.onErrorHandler && $options.onErrorHandler(...args)), - onLoad: _cache[1] || (_cache[1] = (...args) => $options.onLoadHandler && $options.onLoadHandler(...args)), - "show-menu-by-longpress": _ctx.showMenuByLongpress, - "lazy-load": _ctx.lazyLoad, - class: "u-image__image", - style: vue.normalizeStyle({ - borderRadius: _ctx.shape == "circle" ? "10000px" : _ctx.$u.addUnit(_ctx.radius), - width: _ctx.$u.addUnit(_ctx.width), - height: _ctx.$u.addUnit(_ctx.height) - }) - }, null, 44, ["src", "mode", "show-menu-by-longpress", "lazy-load"])) : vue.createCommentVNode("v-if", true), - _ctx.showLoading && $data.loading ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 1, - class: "u-image__loading", - style: vue.normalizeStyle({ - borderRadius: _ctx.shape == "circle" ? "50%" : _ctx.$u.addUnit(_ctx.radius), - backgroundColor: this.bgColor, - width: _ctx.$u.addUnit(_ctx.width), - height: _ctx.$u.addUnit(_ctx.height) - }) - }, - [ - vue.renderSlot(_ctx.$slots, "loading", {}, () => [ - vue.createVNode(_component_u_icon, { - name: _ctx.loadingIcon, - width: _ctx.width, - height: _ctx.height - }, null, 8, ["name", "width", "height"]) - ], true) - ], - 4 - /* STYLE */ - )) : vue.createCommentVNode("v-if", true), - _ctx.showError && $data.isError && !$data.loading ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 2, - class: "u-image__error", - style: vue.normalizeStyle({ - borderRadius: _ctx.shape == "circle" ? "50%" : _ctx.$u.addUnit(_ctx.radius), - width: _ctx.$u.addUnit(_ctx.width), - height: _ctx.$u.addUnit(_ctx.height) - }) - }, - [ - vue.renderSlot(_ctx.$slots, "error", {}, () => [ - vue.createVNode(_component_u_icon, { - name: _ctx.errorIcon, - width: _ctx.width, - height: _ctx.height - }, null, 8, ["name", "width", "height"]) - ], true) - ], - 4 - /* STYLE */ - )) : vue.createCommentVNode("v-if", true) - ], - 4 - /* STYLE */ - ) - ]), - _: 3 - /* FORWARDED */ - }, 8, ["show", "duration"]); - } - const __easycom_0$7 = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["render", _sfc_render$k], ["__scopeId", "data-v-9d58ba7c"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-image/u-image.vue"]]); - const props$e = { - props: { - // 是否显示组件 - show: { - type: Boolean, - default: props$i.loadingIcon.show - }, - // 颜色 - color: { - type: String, - default: props$i.loadingIcon.color - }, - // 提示文字颜色 - textColor: { - type: String, - default: props$i.loadingIcon.textColor - }, - // 文字和图标是否垂直排列 - vertical: { - type: Boolean, - default: props$i.loadingIcon.vertical - }, - // 模式选择,circle-圆形,spinner-花朵形,semicircle-半圆形 - mode: { - type: String, - default: props$i.loadingIcon.mode - }, - // 图标大小,单位默认px - size: { - type: [String, Number], - default: props$i.loadingIcon.size - }, - // 文字大小 - textSize: { - type: [String, Number], - default: props$i.loadingIcon.textSize - }, - // 文字内容 - text: { - type: [String, Number], - default: props$i.loadingIcon.text - }, - // 动画模式 - timingFunction: { - type: String, - default: props$i.loadingIcon.timingFunction - }, - // 动画执行周期时间 - duration: { - type: [String, Number], - default: props$i.loadingIcon.duration - }, - // mode=circle时的暗边颜色 - inactiveColor: { - type: String, - default: props$i.loadingIcon.inactiveColor - } - } - }; - const _sfc_main$x = { - name: "u-loading-icon", - mixins: [mpMixin, mixin, props$e], - data() { - return { - // Array.form可以通过一个伪数组对象创建指定长度的数组 - // https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/from - array12: Array.from({ - length: 12 - }), - // 这里需要设置默认值为360,否则在安卓nvue上,会延迟一个duration周期后才执行 - // 在iOS nvue上,则会一开始默认执行两个周期的动画 - aniAngel: 360, - // 动画旋转角度 - webviewHide: false, - // 监听webview的状态,如果隐藏了页面,则停止动画,以免性能消耗 - loading: false - // 是否运行中,针对nvue使用 - }; - }, - computed: { - // 当为circle类型时,给其另外三边设置一个更轻一些的颜色 - // 之所以需要这么做的原因是,比如父组件传了color为红色,那么需要另外的三个边为浅红色 - // 而不能是固定的某一个其他颜色(因为这个固定的颜色可能浅蓝,导致效果没有那么细腻良好) - otherBorderColor() { - const lightColor = uni.$u.colorGradient(this.color, "#ffffff", 100)[80]; - if (this.mode === "circle") { - return this.inactiveColor ? this.inactiveColor : lightColor; - } else { - return "transparent"; - } - } - }, - watch: { - show(n2) { - } - }, - mounted() { - this.init(); - }, - methods: { - init() { - setTimeout(() => { - this.show && this.addEventListenerToWebview(); - }, 20); - }, - // 监听webview的显示与隐藏 - addEventListenerToWebview() { - const pages2 = getCurrentPages(); - const page2 = pages2[pages2.length - 1]; - const currentWebview = page2.$getAppWebview(); - currentWebview.addEventListener("hide", () => { - this.webviewHide = true; - }); - currentWebview.addEventListener("show", () => { - this.webviewHide = false; - }); - } - } - }; - function _sfc_render$j(_ctx, _cache, $props, $setup, $data, $options) { - return _ctx.show ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 0, - class: vue.normalizeClass(["u-loading-icon", [_ctx.vertical && "u-loading-icon--vertical"]]), - style: vue.normalizeStyle([_ctx.$u.addStyle(_ctx.customStyle)]) - }, - [ - !$data.webviewHide ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 0, - class: vue.normalizeClass(["u-loading-icon__spinner", [`u-loading-icon__spinner--${_ctx.mode}`]]), - ref: "ani", - style: vue.normalizeStyle({ - color: _ctx.color, - width: _ctx.$u.addUnit(_ctx.size), - height: _ctx.$u.addUnit(_ctx.size), - borderTopColor: _ctx.color, - borderBottomColor: $options.otherBorderColor, - borderLeftColor: $options.otherBorderColor, - borderRightColor: $options.otherBorderColor, - "animation-duration": `${_ctx.duration}ms`, - "animation-timing-function": _ctx.mode === "semicircle" || _ctx.mode === "circle" ? _ctx.timingFunction : "" - }) - }, - [ - _ctx.mode === "spinner" ? (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - { key: 0 }, - vue.renderList($data.array12, (item, index2) => { - return vue.openBlock(), vue.createElementBlock("view", { - key: index2, - class: "u-loading-icon__dot" - }); - }), - 128 - /* KEYED_FRAGMENT */ - )) : vue.createCommentVNode("v-if", true) - ], - 6 - /* CLASS, STYLE */ - )) : vue.createCommentVNode("v-if", true), - _ctx.text ? (vue.openBlock(), vue.createElementBlock( - "text", - { - key: 1, - class: "u-loading-icon__text", - style: vue.normalizeStyle({ - fontSize: _ctx.$u.addUnit(_ctx.textSize), - color: _ctx.textColor - }) - }, - vue.toDisplayString(_ctx.text), - 5 - /* TEXT, STYLE */ - )) : vue.createCommentVNode("v-if", true) - ], - 6 - /* CLASS, STYLE */ - )) : vue.createCommentVNode("v-if", true); - } - const __easycom_0$6 = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["render", _sfc_render$j], ["__scopeId", "data-v-00752c6d"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-loading-icon/u-loading-icon.vue"]]); - const props$d = { - props: { - // 提示内容 - loadingText: { - type: [String, Number], - default: props$i.loadingPage.loadingText - }, - // 文字上方用于替换loading动画的图片 - image: { - type: String, - default: props$i.loadingPage.image - }, - // 加载动画的模式,circle-圆形,spinner-花朵形,semicircle-半圆形 - loadingMode: { - type: String, - default: props$i.loadingPage.loadingMode - }, - // 是否加载中 - loading: { - type: Boolean, - default: props$i.loadingPage.loading - }, - // 背景色 - bgColor: { - type: String, - default: props$i.loadingPage.bgColor - }, - // 文字颜色 - color: { - type: String, - default: props$i.loadingPage.color - }, - // 文字大小 - fontSize: { - type: [String, Number], - default: props$i.loadingPage.fontSize - }, - // 图标大小 - iconSize: { - type: [String, Number], - default: props$i.loadingPage.fontSize - }, - // 加载中图标的颜色,只能rgb或者十六进制颜色值 - loadingColor: { - type: String, - default: props$i.loadingPage.loadingColor - } - } - }; - const _sfc_main$w = { - name: "u-loading-page", - mixins: [mpMixin, mixin, props$d], - data() { - return {}; - }, - methods: {} - }; - function _sfc_render$i(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u_loading_icon = resolveEasycom(vue.resolveDynamicComponent("u-loading-icon"), __easycom_0$6); - const _component_u_transition = resolveEasycom(vue.resolveDynamicComponent("u-transition"), __easycom_4); - return vue.openBlock(), vue.createBlock(_component_u_transition, { - show: _ctx.loading, - "custom-style": { - position: "fixed", - top: 0, - left: 0, - right: 0, - bottom: 0, - backgroundColor: _ctx.bgColor, - display: "flex" - } - }, { - default: vue.withCtx(() => [ - vue.createElementVNode("view", { class: "u-loading-page" }, [ - vue.createElementVNode("view", { class: "u-loading-page__warpper" }, [ - vue.createElementVNode("view", { class: "u-loading-page__warpper__loading-icon" }, [ - _ctx.image ? (vue.openBlock(), vue.createElementBlock("image", { - key: 0, - src: _ctx.image, - class: "u-loading-page__warpper__loading-icon__img", - mode: "widthFit", - style: vue.normalizeStyle({ - width: _ctx.$u.addUnit(_ctx.iconSize), - height: _ctx.$u.addUnit(_ctx.iconSize) - }) - }, null, 12, ["src"])) : (vue.openBlock(), vue.createBlock(_component_u_loading_icon, { - key: 1, - mode: _ctx.loadingMode, - size: _ctx.$u.addUnit(_ctx.iconSize), - color: _ctx.loadingColor - }, null, 8, ["mode", "size", "color"])) - ]), - vue.renderSlot(_ctx.$slots, "default", {}, () => [ - vue.createElementVNode( - "text", - { - class: "u-loading-page__warpper__text", - style: vue.normalizeStyle({ - fontSize: _ctx.$u.addUnit(_ctx.fontSize), - color: _ctx.color - }) - }, - vue.toDisplayString(_ctx.loadingText), - 5 - /* TEXT, STYLE */ - ) - ], true) - ]) - ]) - ]), - _: 3 - /* FORWARDED */ - }, 8, ["show", "custom-style"]); - } - const __easycom_2$2 = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["render", _sfc_render$i], ["__scopeId", "data-v-f571bd8d"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-loading-page/u-loading-page.vue"]]); - const props$c = { - props: { - // 是否展示工具条 - show: { - type: Boolean, - default: props$i.toolbar.show - }, - // 取消按钮的文字 - cancelText: { - type: String, - default: props$i.toolbar.cancelText - }, - // 确认按钮的文字 - confirmText: { - type: String, - default: props$i.toolbar.confirmText - }, - // 取消按钮的颜色 - cancelColor: { - type: String, - default: props$i.toolbar.cancelColor - }, - // 确认按钮的颜色 - confirmColor: { - type: String, - default: props$i.toolbar.confirmColor - }, - // 标题文字 - title: { - type: String, - default: props$i.toolbar.title - } - } - }; - const _sfc_main$v = { - name: "u-toolbar", - mixins: [mpMixin, mixin, props$c], - emits: ["confirm", "cancel"], - methods: { - // 点击取消按钮 - cancel() { - this.$emit("cancel"); - }, - // 点击确定按钮 - confirm() { - this.$emit("confirm"); - } - } - }; - function _sfc_render$h(_ctx, _cache, $props, $setup, $data, $options) { - return _ctx.show ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 0, - class: "u-toolbar", - onTouchmove: _cache[2] || (_cache[2] = vue.withModifiers((...args) => _ctx.noop && _ctx.noop(...args), ["stop", "prevent"])) - }, - [ - vue.createElementVNode("view", { - class: "u-toolbar__cancel__wrapper", - "hover-class": "u-hover-class" - }, [ - vue.createElementVNode( - "text", - { - class: "u-toolbar__wrapper__cancel", - onClick: _cache[0] || (_cache[0] = (...args) => $options.cancel && $options.cancel(...args)), - style: vue.normalizeStyle({ - color: _ctx.cancelColor - }) - }, - vue.toDisplayString(_ctx.cancelText), - 5 - /* TEXT, STYLE */ - ) - ]), - _ctx.title ? (vue.openBlock(), vue.createElementBlock( - "text", - { - key: 0, - class: "u-toolbar__title u-line-1" - }, - vue.toDisplayString(_ctx.title), - 1 - /* TEXT */ - )) : vue.createCommentVNode("v-if", true), - vue.createElementVNode("view", { - class: "u-toolbar__confirm__wrapper", - "hover-class": "u-hover-class" - }, [ - vue.createElementVNode( - "text", - { - class: "u-toolbar__wrapper__confirm", - onClick: _cache[1] || (_cache[1] = (...args) => $options.confirm && $options.confirm(...args)), - style: vue.normalizeStyle({ - color: _ctx.confirmColor - }) - }, - vue.toDisplayString(_ctx.confirmText), - 5 - /* TEXT, STYLE */ - ) - ]) - ], - 32 - /* HYDRATE_EVENTS */ - )) : vue.createCommentVNode("v-if", true); - } - const __easycom_0$5 = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render$h], ["__scopeId", "data-v-3fd495d6"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-toolbar/u-toolbar.vue"]]); - const props$b = { - props: { - // 是否显示遮罩 - show: { - type: Boolean, - default: props$i.overlay.show - }, - // 层级z-index - zIndex: { - type: [String, Number], - default: props$i.overlay.zIndex - }, - // 遮罩的过渡时间,单位为ms - duration: { - type: [String, Number], - default: props$i.overlay.duration - }, - // 不透明度值,当做rgba的第四个参数 - opacity: { - type: [String, Number], - default: props$i.overlay.opacity - } - } - }; - const _sfc_main$u = { - name: "u-overlay", - mixins: [mpMixin, mixin, props$b], - computed: { - overlayStyle() { - const style = { - position: "fixed", - top: 0, - left: 0, - right: 0, - zIndex: this.zIndex, - bottom: 0, - "background-color": `rgba(0, 0, 0, ${this.opacity})` - }; - return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); - } - }, - emits: ["click"], - methods: { - clickHandler() { - this.$emit("click"); - } - } - }; - function _sfc_render$g(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u_transition = resolveEasycom(vue.resolveDynamicComponent("u-transition"), __easycom_4); - return vue.openBlock(), vue.createBlock(_component_u_transition, { - show: _ctx.show, - "custom-class": "u-overlay", - duration: _ctx.duration, - "custom-style": $options.overlayStyle, - onClick: $options.clickHandler - }, { - default: vue.withCtx(() => [ - vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) - ]), - _: 3 - /* FORWARDED */ - }, 8, ["show", "duration", "custom-style", "onClick"]); - } - const __easycom_0$4 = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["render", _sfc_render$g], ["__scopeId", "data-v-35f7c3e5"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-overlay/u-overlay.vue"]]); - const props$a = { - props: { - bgColor: { - type: String, - default: props$i.statusBar.bgColor - } - } - }; - const _sfc_main$t = { - name: "u-status-bar", - mixins: [mpMixin, mixin, props$a], - data() { - return {}; - }, - computed: { - style() { - const style = {}; - style.height = uni.$u.addUnit(uni.$u.sys().statusBarHeight, "px"); - style.backgroundColor = this.bgColor; - return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); - } - } - }; - function _sfc_render$f(_ctx, _cache, $props, $setup, $data, $options) { - return vue.openBlock(), vue.createElementBlock( - "view", - { - style: vue.normalizeStyle([$options.style]), - class: "u-status-bar" - }, - [ - vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) - ], - 4 - /* STYLE */ - ); - } - const __easycom_1$3 = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["render", _sfc_render$f], ["__scopeId", "data-v-c0b45a48"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-status-bar/u-status-bar.vue"]]); - const props$9 = { - props: {} - }; - const _sfc_main$s = { - name: "u-safe-bottom", - mixins: [mpMixin, mixin, props$9], - data() { - return { - safeAreaBottomHeight: 0, - isNvue: false - }; - }, - computed: { - style() { - const style = {}; - return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); - } - }, - mounted() { - } - }; - function _sfc_render$e(_ctx, _cache, $props, $setup, $data, $options) { - return vue.openBlock(), vue.createElementBlock( - "view", - { - class: vue.normalizeClass(["u-safe-bottom", [!$data.isNvue && "u-safe-area-inset-bottom"]]), - style: vue.normalizeStyle([$options.style]) - }, - null, - 6 - /* CLASS, STYLE */ - ); - } - const __easycom_3$2 = /* @__PURE__ */ _export_sfc(_sfc_main$s, [["render", _sfc_render$e], ["__scopeId", "data-v-3ec581de"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-safe-bottom/u-safe-bottom.vue"]]); - const props$8 = { - props: { - // 是否展示弹窗 - show: { - type: Boolean, - default: props$i.popup.show - }, - // 是否显示遮罩 - overlay: { - type: Boolean, - default: props$i.popup.overlay - }, - // 弹出的方向,可选值为 top bottom right left center - mode: { - type: String, - default: props$i.popup.mode - }, - // 动画时长,单位ms - duration: { - type: [String, Number], - default: props$i.popup.duration - }, - // 是否显示关闭图标 - closeable: { - type: Boolean, - default: props$i.popup.closeable - }, - // 自定义遮罩的样式 - overlayStyle: { - type: [Object, String], - default: props$i.popup.overlayStyle - }, - // 点击遮罩是否关闭弹窗 - closeOnClickOverlay: { - type: Boolean, - default: props$i.popup.closeOnClickOverlay - }, - // 层级 - zIndex: { - type: [String, Number], - default: props$i.popup.zIndex - }, - // 是否为iPhoneX留出底部安全距离 - safeAreaInsetBottom: { - type: Boolean, - default: props$i.popup.safeAreaInsetBottom - }, - // 是否留出顶部安全距离(状态栏高度) - safeAreaInsetTop: { - type: Boolean, - default: props$i.popup.safeAreaInsetTop - }, - // 自定义关闭图标位置,top-left为左上角,top-right为右上角,bottom-left为左下角,bottom-right为右下角 - closeIconPos: { - type: String, - default: props$i.popup.closeIconPos - }, - // 是否显示圆角 - round: { - type: [Boolean, String, Number], - default: props$i.popup.round - }, - // mode=center,也即中部弹出时,是否使用缩放模式 - zoom: { - type: Boolean, - default: props$i.popup.zoom - }, - // 弹窗背景色,设置为transparent可去除白色背景 - bgColor: { - type: String, - default: props$i.popup.bgColor - }, - // 遮罩的透明度,0-1之间 - overlayOpacity: { - type: [Number, String], - default: props$i.popup.overlayOpacity - } - } - }; - const _sfc_main$r = { - name: "u-popup", - mixins: [mpMixin, mixin, props$8], - data() { - return { - overlayDuration: this.duration + 50 - }; - }, - watch: { - show(newValue, oldValue) { - } - }, - computed: { - transitionStyle() { - const style = { - zIndex: this.zIndex, - position: "fixed", - display: "flex" - }; - style[this.mode] = 0; - if (this.mode === "left") { - return uni.$u.deepMerge(style, { - bottom: 0, - top: 0 - }); - } else if (this.mode === "right") { - return uni.$u.deepMerge(style, { - bottom: 0, - top: 0 - }); - } else if (this.mode === "top") { - return uni.$u.deepMerge(style, { - left: 0, - right: 0 - }); - } else if (this.mode === "bottom") { - return uni.$u.deepMerge(style, { - left: 0, - right: 0 - }); - } else if (this.mode === "center") { - return uni.$u.deepMerge(style, { - alignItems: "center", - "justify-content": "center", - top: 0, - left: 0, - right: 0, - bottom: 0 - }); - } - }, - contentStyle() { - const style = {}; - uni.$u.sys(); - if (this.mode !== "center") { - style.flex = 1; - } - if (this.bgColor) { - style.backgroundColor = this.bgColor; - } - if (this.round) { - const value = uni.$u.addUnit(this.round); - if (this.mode === "top") { - style.borderBottomLeftRadius = value; - style.borderBottomRightRadius = value; - } else if (this.mode === "bottom") { - style.borderTopLeftRadius = value; - style.borderTopRightRadius = value; - } else if (this.mode === "center") { - style.borderRadius = value; - } - } - return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); - }, - position() { - if (this.mode === "center") { - return this.zoom ? "fade-zoom" : "fade"; - } - if (this.mode === "left") { - return "slide-left"; - } - if (this.mode === "right") { - return "slide-right"; - } - if (this.mode === "bottom") { - return "slide-up"; - } - if (this.mode === "top") { - return "slide-down"; - } - } - }, - emits: ["open", "close", "click"], - methods: { - // 点击遮罩 - overlayClick() { - if (this.closeOnClickOverlay) { - this.$emit("close"); - } - }, - close(e2) { - this.$emit("close"); - }, - afterEnter() { - this.$emit("open"); - }, - clickHandler() { - if (this.mode === "center") { - this.overlayClick(); - } - this.$emit("click"); - } - } - }; - function _sfc_render$d(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u_overlay = resolveEasycom(vue.resolveDynamicComponent("u-overlay"), __easycom_0$4); - const _component_u_status_bar = resolveEasycom(vue.resolveDynamicComponent("u-status-bar"), __easycom_1$3); - const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_1$4); - const _component_u_safe_bottom = resolveEasycom(vue.resolveDynamicComponent("u-safe-bottom"), __easycom_3$2); - const _component_u_transition = resolveEasycom(vue.resolveDynamicComponent("u-transition"), __easycom_4); - return vue.openBlock(), vue.createElementBlock("view", { class: "u-popup" }, [ - _ctx.overlay ? (vue.openBlock(), vue.createBlock(_component_u_overlay, { - key: 0, - show: _ctx.show, - onClick: $options.overlayClick, - duration: $data.overlayDuration, - customStyle: _ctx.overlayStyle, - opacity: _ctx.overlayOpacity - }, null, 8, ["show", "onClick", "duration", "customStyle", "opacity"])) : vue.createCommentVNode("v-if", true), - vue.createVNode(_component_u_transition, { - show: _ctx.show, - customStyle: $options.transitionStyle, - mode: $options.position, - duration: _ctx.duration, - onAfterEnter: $options.afterEnter, - onClick: $options.clickHandler - }, { - default: vue.withCtx(() => [ - vue.createElementVNode( - "view", - { - class: "u-popup__content", - style: vue.normalizeStyle([$options.contentStyle]), - onClick: _cache[1] || (_cache[1] = vue.withModifiers((...args) => _ctx.noop && _ctx.noop(...args), ["stop"])) - }, - [ - _ctx.safeAreaInsetTop ? (vue.openBlock(), vue.createBlock(_component_u_status_bar, { key: 0 })) : vue.createCommentVNode("v-if", true), - vue.renderSlot(_ctx.$slots, "default", {}, void 0, true), - _ctx.closeable ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 1, - onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args) => $options.close && $options.close(...args), ["stop"])), - class: vue.normalizeClass(["u-popup__content__close", ["u-popup__content__close--" + _ctx.closeIconPos]]), - "hover-class": "u-popup__content__close--hover", - "hover-stay-time": "150" - }, - [ - vue.createVNode(_component_u_icon, { - name: "close", - color: "#909399", - size: "18", - bold: "" - }) - ], - 2 - /* CLASS */ - )) : vue.createCommentVNode("v-if", true), - _ctx.safeAreaInsetBottom ? (vue.openBlock(), vue.createBlock(_component_u_safe_bottom, { key: 2 })) : vue.createCommentVNode("v-if", true) - ], - 4 - /* STYLE */ - ) - ]), - _: 3 - /* FORWARDED */ - }, 8, ["show", "customStyle", "mode", "duration", "onAfterEnter", "onClick"]) - ]); - } - const __easycom_2$1 = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$d], ["__scopeId", "data-v-74921bef"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-popup/u-popup.vue"]]); - const props$7 = { - props: { - // 是否展示picker弹窗 - show: { - type: Boolean, - default: props$i.picker.show - }, - // 是否展示顶部的操作栏 - showToolbar: { - type: Boolean, - default: props$i.picker.showToolbar - }, - // 顶部标题 - title: { - type: String, - default: props$i.picker.title - }, - // 对象数组,设置每一列的数据 - columns: { - type: Array, - default: props$i.picker.columns - }, - // 是否显示加载中状态 - loading: { - type: Boolean, - default: props$i.picker.loading - }, - // 各列中,单个选项的高度 - itemHeight: { - type: [String, Number], - default: props$i.picker.itemHeight - }, - // 取消按钮的文字 - cancelText: { - type: String, - default: props$i.picker.cancelText - }, - // 确认按钮的文字 - confirmText: { - type: String, - default: props$i.picker.confirmText - }, - // 取消按钮的颜色 - cancelColor: { - type: String, - default: props$i.picker.cancelColor - }, - // 确认按钮的颜色 - confirmColor: { - type: String, - default: props$i.picker.confirmColor - }, - // 每列中可见选项的数量 - visibleItemCount: { - type: [String, Number], - default: props$i.picker.visibleItemCount - }, - // 选项对象中,需要展示的属性键名 - keyName: { - type: String, - default: props$i.picker.keyName - }, - // 是否允许点击遮罩关闭选择器 - closeOnClickOverlay: { - type: Boolean, - default: props$i.picker.closeOnClickOverlay - }, - // 各列的默认索引 - defaultIndex: { - type: Array, - default: props$i.picker.defaultIndex - }, - // 是否在手指松开时立即触发 change 事件。若不开启则会在滚动动画结束后触发 change 事件,只在微信2.21.1及以上有效 - immediateChange: { - type: Boolean, - default: props$i.picker.immediateChange - } - } - }; - const _sfc_main$q = { - name: "u-picker", - mixins: [mpMixin, mixin, props$7], - data() { - return { - // 上一次选择的列索引 - lastIndex: [], - // 索引值 ,对应picker-view的value - innerIndex: [], - // 各列的值 - innerColumns: [], - // 上一次的变化列索引 - columnIndex: 0 - }; - }, - watch: { - // 监听默认索引的变化,重新设置对应的值 - defaultIndex: { - immediate: true, - handler(n2) { - this.setIndexs(n2, true); - } - }, - // 监听columns参数的变化 - columns: { - immediate: true, - deep: true, - handler(n2) { - this.setColumns(n2); - } - } - }, - emits: ["close", "cancel", "confirm", "change"], - methods: { - // 获取item需要显示的文字,判别为对象还是文本 - getItemText(item) { - if (uni.$u.test.object(item)) { - return item[this.keyName]; - } else { - return item; - } - }, - // 关闭选择器 - closeHandler() { - if (this.closeOnClickOverlay) { - this.$emit("close"); - } - }, - // 点击工具栏的取消按钮 - cancel() { - this.$emit("cancel"); - }, - // 点击工具栏的确定按钮 - confirm() { - this.$emit("confirm", { - indexs: this.innerIndex, - value: this.innerColumns.map((item, index2) => item[this.innerIndex[index2]]), - values: this.innerColumns - }); - }, - // 选择器某一列的数据发生变化时触发 - changeHandler(e2) { - const { - value - } = e2.detail; - let index2 = 0, columnIndex = 0; - for (let i2 = 0; i2 < value.length; i2++) { - let item = value[i2]; - if (item !== (this.lastIndex[i2] || 0)) { - columnIndex = i2; - index2 = item; - break; - } - } - this.columnIndex = columnIndex; - const values = this.innerColumns; - this.setLastIndex(value); - this.setIndexs(value); - this.$emit("change", { - // 微信小程序不能传递this,会因为循环引用而报错 - picker: this, - value: this.innerColumns.map((item, index3) => item[value[index3]]), - index: index2, - indexs: value, - // values为当前变化列的数组内容 - values, - columnIndex - }); - }, - // 设置index索引,此方法可被外部调用设置 - setIndexs(index2, setLastIndex) { - this.innerIndex = uni.$u.deepClone(index2); - if (setLastIndex) { - this.setLastIndex(index2); - } - }, - // 记录上一次的各列索引位置 - setLastIndex(index2) { - this.lastIndex = uni.$u.deepClone(index2); - }, - // 设置对应列选项的所有值 - setColumnValues(columnIndex, values) { - this.innerColumns.splice(columnIndex, 1, values); - let tmpIndex = uni.$u.deepClone(this.innerIndex); - for (let i2 = 0; i2 < this.innerColumns.length; i2++) { - if (i2 > this.columnIndex) { - tmpIndex[i2] = 0; - } - } - this.setIndexs(tmpIndex); - }, - // 获取对应列的所有选项 - getColumnValues(columnIndex) { - (async () => { - await uni.$u.sleep(); - })(); - return this.innerColumns[columnIndex]; - }, - // 设置整体各列的columns的值 - setColumns(columns) { - this.innerColumns = uni.$u.deepClone(columns); - if (this.innerIndex.length === 0) { - this.innerIndex = new Array(columns.length).fill(0); - } - }, - // 获取各列选中值对应的索引 - getIndexs() { - return this.innerIndex; - }, - // 获取各列选中的值 - getValues() { - (async () => { - await uni.$u.sleep(); - })(); - return this.innerColumns.map((item, index2) => item[this.innerIndex[index2]]); - } - } - }; - function _sfc_render$c(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u_toolbar = resolveEasycom(vue.resolveDynamicComponent("u-toolbar"), __easycom_0$5); - const _component_u_loading_icon = resolveEasycom(vue.resolveDynamicComponent("u-loading-icon"), __easycom_0$6); - const _component_u_popup = resolveEasycom(vue.resolveDynamicComponent("u-popup"), __easycom_2$1); - return vue.openBlock(), vue.createBlock(_component_u_popup, { - show: _ctx.show, - onClose: $options.closeHandler - }, { - default: vue.withCtx(() => [ - vue.createElementVNode("view", { class: "u-picker" }, [ - _ctx.showToolbar ? (vue.openBlock(), vue.createBlock(_component_u_toolbar, { - key: 0, - cancelColor: _ctx.cancelColor, - confirmColor: _ctx.confirmColor, - cancelText: _ctx.cancelText, - confirmText: _ctx.confirmText, - title: _ctx.title, - onCancel: $options.cancel, - onConfirm: $options.confirm - }, null, 8, ["cancelColor", "confirmColor", "cancelText", "confirmText", "title", "onCancel", "onConfirm"])) : vue.createCommentVNode("v-if", true), - vue.createElementVNode("picker-view", { - class: "u-picker__view", - indicatorStyle: `height: ${_ctx.$u.addUnit(_ctx.itemHeight)}`, - value: $data.innerIndex, - immediateChange: _ctx.immediateChange, - style: vue.normalizeStyle({ - height: `${_ctx.$u.addUnit(_ctx.visibleItemCount * _ctx.itemHeight)}` - }), - onChange: _cache[0] || (_cache[0] = (...args) => $options.changeHandler && $options.changeHandler(...args)) - }, [ - (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - null, - vue.renderList($data.innerColumns, (item, index2) => { - return vue.openBlock(), vue.createElementBlock("picker-view-column", { - key: index2, - class: "u-picker__view__column" - }, [ - _ctx.$u.test.array(item) ? (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - { key: 0 }, - vue.renderList(item, (item1, index1) => { - return vue.openBlock(), vue.createElementBlock( - "text", - { - class: "u-picker__view__column__item u-line-1", - key: index1, - style: vue.normalizeStyle({ - height: _ctx.$u.addUnit(_ctx.itemHeight), - lineHeight: _ctx.$u.addUnit(_ctx.itemHeight), - fontWeight: index1 === $data.innerIndex[index2] ? "bold" : "normal" - }) - }, - vue.toDisplayString($options.getItemText(item1)), - 5 - /* TEXT, STYLE */ - ); - }), - 128 - /* KEYED_FRAGMENT */ - )) : vue.createCommentVNode("v-if", true) - ]); - }), - 128 - /* KEYED_FRAGMENT */ - )) - ], 44, ["indicatorStyle", "value", "immediateChange"]), - _ctx.loading ? (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "u-picker--loading" - }, [ - vue.createVNode(_component_u_loading_icon, { mode: "circle" }) - ])) : vue.createCommentVNode("v-if", true) - ]) - ]), - _: 1 - /* STABLE */ - }, 8, ["show", "onClose"]); - } - const __easycom_2 = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["render", _sfc_render$c], ["__scopeId", "data-v-1500ce68"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-picker/u-picker.vue"]]); - const _sfc_main$p = { - __name: "index", - setup(__props) { - const url2 = vue.ref("https://ceshi-worker-task.lihaink.cn//uploads//images//20231121//202311211336582b7920656.jpg"); - const soilList = vue.reactive([ - { - icon: "/static/img/sj.png", - name: "土壤温度", - num: 20, - unit: "%" - }, - { - icon: "/static/img/sj.png", - name: "土壤湿度", - num: 20, - unit: "%" - }, - { - icon: "/static/img/sj.png", - name: "土壤导电率", - num: 20, - unit: "%" - }, - { - icon: "/static/img/sj.png", - name: "土壤PH值", - num: 20, - unit: "" - }, - { - icon: "/static/img/sj.png", - name: "土壤含氮量", - num: 20, - unit: "" - }, - { - icon: "/static/img/sj.png", - name: "土壤含磷量", - num: 20, - unit: "" - }, - { - icon: "/static/img/sj.png", - name: "土壤含钾量", - num: 20, - unit: "" - } - ]); - const show = vue.ref(false); - const showLoading = vue.ref(false); - const columns = vue.reactive([ - ["中国", "美国", "日本"] - ]); - const environmentList = vue.reactive([ - { - icon: "/static/img/sj.png", - name: "风速", - num: 20, - unit: "%" - }, - { - icon: "/static/img/sj.png", - name: "风向", - num: 20, - unit: "%" - }, - { - icon: "/static/img/sj.png", - name: "温度", - num: 20, - unit: "%" - }, - { - icon: "/static/img/sj.png", - name: "湿度", - num: 20, - unit: "" - }, - { - icon: "/static/img/sj.png", - name: "二氧化碳", - num: 20, - unit: "" - }, - { - icon: "/static/img/sj.png", - name: "气压", - num: 20, - unit: "" - }, - { - icon: "/static/img/sj.png", - name: "雨量", - num: 20, - unit: "" - }, - { - icon: "/static/img/sj.png", - name: "光照量", - num: 20, - unit: "" - } - ]); - const confirm = (e2) => { - formatAppLog("log", "at pages/index/index.vue:256", e2); - show.value = false; - showLoading.value = true; - setTimeout(() => { - showLoading.value = false; - }, 1e3); - }; - const getNowTimeFn = () => { - const now2 = /* @__PURE__ */ new Date(); - const hour = now2.getHours(); - const minute = now2.getMinutes(); - const formattedHour = hour < 10 ? "0" + hour : hour; - const formattedMinute = minute < 10 ? "0" + minute : minute; - const currentTime = formattedHour + ":" + formattedMinute; - return currentTime; - }; - const navto = (url3) => { - uni.navigateTo({ - url: url3 - }); - }; - getNowTimeFn(); - return (_ctx, _cache) => { - const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_1$4); - const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$7); - const _component_u_loading_page = resolveEasycom(vue.resolveDynamicComponent("u-loading-page"), __easycom_2$2); - const _component_u_picker = resolveEasycom(vue.resolveDynamicComponent("u-picker"), __easycom_2); - return vue.openBlock(), vue.createElementBlock("view", { - class: "", - style: { "position": "relative" } - }, [ - vue.createElementVNode("view", { class: "top" }, [ - vue.createElementVNode("view", { - class: "", - style: { "height": "var(--status-bar-height)" } - }), - vue.createElementVNode("view", { class: "nav" }, [ - vue.createElementVNode("view", { class: "" }, [ - vue.createVNode(_component_u_icon, { - name: "scan", - color: "white", - size: 30 - }) - ]), - vue.createElementVNode("view", { - class: "", - style: { "margin-left": "20rpx" } - }, [ - vue.createVNode(_component_u_icon, { - name: "plus-circle", - color: "white", - size: 28 - }) - ]) - ]) - ]), - vue.createElementVNode("view", { class: "" }, [ - vue.createElementVNode("view", { - class: "", - style: { "height": "var(--status-bar-height)" } - }), - vue.createElementVNode("view", { class: "nav" }) - ]), - (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "content" - }, [ - vue.createCommentVNode(" 土地信息 "), - vue.createElementVNode("view", { class: "" }, [ - vue.createElementVNode("view", { class: "card" }, [ - vue.createElementVNode("view", { class: "" }, [ - vue.createElementVNode("view", { class: "" }, " 土地名称: 土地信息1 "), - vue.createElementVNode("view", { - class: "", - style: { "margin": "10rpx 0" } - }, " 农作物: 洋芋 "), - vue.createElementVNode("view", { class: "" }, " 面积: 20亩 ") - ]), - vue.createElementVNode("view", { - class: "changeLand", - onClick: _cache[0] || (_cache[0] = ($event) => show.value = true) - }, " 切换土地 ") - ]) - ]), - vue.createCommentVNode(" 苗情监测 "), - vue.createElementVNode("view", { class: "" }, [ - vue.createElementVNode("view", { class: "live-video soil-monitor" }, [ - vue.createElementVNode("view", { class: "head" }, [ - vue.createElementVNode("view", { class: "tit" }, " 苗情监测数据 "), - vue.createElementVNode("view", { class: "flushed-time" }, [ - vue.createVNode(_component_u_icon, { name: "clock" }), - vue.createElementVNode( - "text", - null, - "刷新时间: " + vue.toDisplayString(getNowTimeFn()), - 1 - /* TEXT */ - ) - ]) - ]) - ]), - vue.createElementVNode("view", { - class: "video", - onClick: _cache[1] || (_cache[1] = ($event) => navto("/pages/live/live")) - }, [ - vue.createVNode(_component_u__image, { - src: url2.value, - width: "100%", - height: "300rpx" - }, null, 8, ["src"]) - ]) - ]), - vue.createCommentVNode(" 土壤监测 "), - vue.createElementVNode("view", { class: "soil-monitor" }, [ - vue.createElementVNode("view", { class: "head" }, [ - vue.createElementVNode("view", { class: "tit" }, " 土壤监测数据 "), - vue.createElementVNode("view", { class: "flushed-time" }, [ - vue.createVNode(_component_u_icon, { name: "clock" }), - vue.createElementVNode( - "text", - null, - "刷新时间: " + vue.toDisplayString(getNowTimeFn()), - 1 - /* TEXT */ - ) - ]) - ]), - vue.createElementVNode("view", { class: "monitor-content" }, [ - (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - null, - vue.renderList(soilList, (item, index2) => { - return vue.openBlock(), vue.createElementBlock("view", { - class: "monitor-card", - key: index2 - }, [ - vue.createElementVNode("view", { class: "name" }, [ - vue.createElementVNode("view", { class: "" }, [ - vue.createVNode(_component_u__image, { - src: item.icon, - width: "38.55rpx", - height: "38.55rpx" - }, null, 8, ["src"]) - ]), - vue.createElementVNode( - "view", - { - class: "", - style: { "margin-left": "10rpx" } - }, - vue.toDisplayString(item.name), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "num" }, [ - vue.createElementVNode( - "text", - { style: { "font-size": "70rpx" } }, - vue.toDisplayString(item.num), - 1 - /* TEXT */ - ), - vue.createElementVNode( - "text", - null, - vue.toDisplayString(item.unit), - 1 - /* TEXT */ - ) - ]) - ]); - }), - 128 - /* KEYED_FRAGMENT */ - )) - ]) - ]), - vue.createCommentVNode(" 环境监测 "), - vue.createElementVNode("view", { class: "soil-monitor" }, [ - vue.createElementVNode("view", { class: "head" }, [ - vue.createElementVNode("view", { class: "tit" }, " 环境监测数据 "), - vue.createElementVNode("view", { class: "flushed-time" }, [ - vue.createVNode(_component_u_icon, { name: "clock" }), - vue.createElementVNode( - "text", - null, - "刷新时间: " + vue.toDisplayString(getNowTimeFn()), - 1 - /* TEXT */ - ) - ]) - ]), - vue.createElementVNode("view", { class: "monitor-content" }, [ - (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - null, - vue.renderList(environmentList, (item, index2) => { - return vue.openBlock(), vue.createElementBlock("view", { - class: "monitor-card", - key: index2 - }, [ - vue.createElementVNode("view", { class: "name" }, [ - vue.createElementVNode("view", { class: "" }, [ - vue.createVNode(_component_u__image, { - src: item.icon, - width: "38.55rpx", - height: "38.55rpx" - }, null, 8, ["src"]) - ]), - vue.createElementVNode( - "view", - { - class: "", - style: { "margin-left": "10rpx" } - }, - vue.toDisplayString(item.name), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "num" }, [ - vue.createElementVNode( - "text", - { style: { "font-size": "70rpx" } }, - vue.toDisplayString(item.num), - 1 - /* TEXT */ - ), - vue.createElementVNode( - "text", - null, - vue.toDisplayString(item.unit), - 1 - /* TEXT */ - ) - ]) - ]); - }), - 128 - /* KEYED_FRAGMENT */ - )) - ]) - ]), - vue.createCommentVNode(" 组件 "), - vue.createVNode(_component_u_loading_page, { loading: showLoading.value }, null, 8, ["loading"]), - vue.createVNode(_component_u_picker, { - show: show.value, - columns, - onCancel: _cache[2] || (_cache[2] = ($event) => show.value = false), - onConfirm: confirm - }, null, 8, ["show", "columns"]) - ])) - ]); - }; - } - }; - const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-1cf27b2a"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/index/index.vue"]]); - let BASE_URL; - { - BASE_URL = "http://ceshi-suyuan.lihaink.cn/"; - } - let config = { - HTTP_REQUEST_URL: BASE_URL, - HEADER: { - "content-type": "application/json", - "Form-type": "app", - "TOKEN": uni.getStorageSync("SY_TOKEN") || "" - } - }; - function baseRequest(url2, method2, data, { - noAuth = false, - noVerify = false, - onReLogin = false - }) { - let Url = config.HTTP_REQUEST_URL, header = config.HEADER; - return new Promise((reslove, reject) => { - uni.request({ - url: Url + "api" + url2, - method: method2 || "GET", - header: { - ...header - }, - data: method2 != "GET" ? data || {} : {}, - params: method2 == "GET" ? data : {}, - success: (res) => { - if (res.data.show) { - uni.showToast({ - title: res.data.msg || "操作成功", - icon: "success" - }); - } - if (noVerify) - reslove(res.data); - else if (res.data.code == -1) { - if (onReLogin) { - return reject(); - } - } else if (res.data.code == 0) { - if (res.data.msg != "无登录信息") { - uni.showToast({ - title: res.data.msg || "请检查网络", - icon: "none" - }); - } - reject(res.data); - } else if (res.data.code == 1) { - reslove(res.data); - } else if (res.data.code == 200) { - reslove(res.data.data); - } else if ([41e4, 410001, 410002, 4e4].indexOf(res.data.code) !== -1) { - reject(res.data); - } else if (res.data.code == 501) { - reject(res.data); - } else { - uni.showToast({ - title: res.data.msg || "请检查网络", - icon: "none" - }); - reject(res.data.msg || "请检查网络"); - } - }, - fail: (message) => { - formatAppLog("log", "at utils/syhttp.js:67", message, "错误"); - uni.showToast({ - title: "网络错误", - icon: "none" - }); - reject("请求失败"); - } - }); - }); - } - const syhttp = {}; - ["options", "get", "post", "put", "head", "delete", "trace", "connect"].forEach((method2) => { - syhttp[method2] = (api, data, opt) => baseRequest(api, method2, data, opt || {}); - }); - const userInfoAPI = (data) => syhttp.get("/user/userInfo", data); - const landInfoAPI = (data) => syhttp.get("/LandPlant/landInfo", data); - const _sfc_main$o = { - __name: "landInfo", - props: { - land_id: String, - is_cropped: Boolean - }, - emits: ["child-click"], - setup(__props, { emit }) { - const props2 = __props; - const land = vue.reactive({}); - const objFn = (res, data) => { - for (let key in res) { - data[key] = res[key]; - } - }; - vue.watch(props2, (newValue, oldVlaue) => { - if (props2 == null ? void 0 : props2.land_id) { - landInfoAPI({ - land_id: props2.land_id, - user_id: 307 - }).then((res) => { - objFn(res.data, land); - emit("getcropid", { - cropid: res.data.crop_id - }); - }); - } - }, { - immediate: true - }); - return (_ctx, _cache) => { - return vue.openBlock(), vue.createElementBlock("view", { class: "card" }, [ - vue.createElementVNode("view", { class: "tit" }, [ - vue.createElementVNode( - "view", - { class: "" }, - vue.toDisplayString(land.crop_id) + "号土地 ", - 1 - /* TEXT */ - ), - vue.createElementVNode( - "view", - { class: "" }, - " 溯源码: " + vue.toDisplayString(land.source_code), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode( - "view", - { class: "" }, - " 当前种植: " + vue.toDisplayString(land.crop_name), - 1 - /* TEXT */ - ), - vue.createElementVNode( - "view", - { class: "" }, - " 种植品牌: " + vue.toDisplayString(land.crop_brand), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode( - "view", - { class: "" }, - " 土地面积: " + vue.toDisplayString(land.land_area) + "亩 ", - 1 - /* TEXT */ - ), - vue.createElementVNode( - "view", - { class: "" }, - " 种子品牌: " + vue.toDisplayString(land.crop_variety), - 1 - /* TEXT */ - ) - ]), - land.crop_yield ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "card-li" - }, [ - vue.createElementVNode( - "view", - { class: "" }, - " 预计产量: " + vue.toDisplayString(land.crop_yield) + "亩 ", - 1 - /* TEXT */ - ), - vue.createCommentVNode(' \r\n 已出售: ???\r\n ') - ])) : vue.createCommentVNode("v-if", true), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode( - "view", - { class: "" }, - " 播种时间: " + vue.toDisplayString(land.seed_time), - 1 - /* TEXT */ - ) - ]) - ]); - }; - } - }; - const landInfo = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-5f103973"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/components/plant/landInfo.vue"]]); - const _sfc_main$n = { - __name: "index", - setup(__props) { - const dataList = vue.reactive([ - { - type: "0" - }, - { - type: "1" - }, - { - type: "2" - }, - { - type: "3" - }, - { - type: "4" - }, - { - type: "5" - } - ]); - const showPicker = vue.ref(false); - const columns = vue.reactive([ - [ - { - label: "种植", - route: "/pages/husbandryForm/sow" - }, - { - label: "施肥", - route: "/pages/husbandryForm/fertilize" - }, - { - label: "除草", - route: "/pages/husbandryForm/weeding" - }, - { - label: "灌溉", - route: "/pages/husbandryForm/irrigate" - }, - { - label: "除虫", - route: "/pages/husbandryForm/Pest" - }, - { - label: "收获", - route: "/pages/husbandryForm/harvest" - } - ] - ]); - const navto = (url3) => { - uni.navigateTo({ - url: url3 - }); - }; - const navtoForm = (type2) => { - switch (type2) { - case "0": - navto(`/pages/husbandryForm/sow?task_id=${5}`); - break; - case "1": - navto(`/pages/husbandryForm/fertilize?task_id=${5}`); - break; - case "2": - navto(`/pages/husbandryForm/weeding?task_id=${5}`); - break; - case "3": - navto(`/pages/husbandryForm/irrigate?task_id=${5}`); - break; - case "4": - navto(`/pages/husbandryForm/Pest?task_id=${5}`); - break; - case "5": - navto(`/pages/husbandryForm/harvest?task_id=${5}`); - break; - } - }; - const confirm = (e2) => { - showPicker.value = false; - uni.navigateTo({ - url: e2.value[0].route - }); - }; - const url2 = vue.ref("https://ceshi-worker-task.lihaink.cn//uploads//images//20231121//202311211336582b7920656.jpg"); - const getNowTimeFn = () => { - const now2 = /* @__PURE__ */ new Date(); - const hour = now2.getHours(); - const minute = now2.getMinutes(); - const formattedHour = hour < 10 ? "0" + hour : hour; - const formattedMinute = minute < 10 ? "0" + minute : minute; - const currentTime = formattedHour + ":" + formattedMinute; - return currentTime; - }; - const perviewFn = (url3) => { - formatAppLog("log", "at pages/landDetail/index.vue:160", url3); - uni.previewImage({ - urls: [url3] - }); - }; - return (_ctx, _cache) => { - const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$7); - const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_1$4); - const _component_u_picker = resolveEasycom(vue.resolveDynamicComponent("u-picker"), __easycom_2); - return vue.openBlock(), vue.createElementBlock("view", { class: "box" }, [ - vue.createElementVNode("view", { class: "content" }, [ - vue.createElementVNode("view", { - class: "video", - onClick: _cache[0] || (_cache[0] = ($event) => navto("/pages/live/live")) - }, [ - vue.createVNode(_component_u__image, { - src: url2.value, - width: "100%", - height: "300rpx" - }, null, 8, ["src"]) - ]), - vue.createElementVNode("view", { class: "time" }, [ - vue.createVNode(_component_u_icon, { name: "clock" }), - vue.createElementVNode( - "text", - null, - "刷新时间: " + vue.toDisplayString(getNowTimeFn()), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { - class: "add-thing", - onClick: _cache[1] || (_cache[1] = ($event) => showPicker.value = true) - }, " 记农事 "), - vue.createVNode(landInfo), - vue.createElementVNode("view", { class: "" }, [ - vue.createElementVNode("view", { - class: "tit", - style: { "font-size": "33.29rpx", "margin": "20rpx 0" } - }, " 历史农事信息 "), - (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - null, - vue.renderList(dataList, (item, index2) => { - return vue.openBlock(), vue.createElementBlock("view", { - class: "thing-card", - key: index2 - }, [ - vue.createElementVNode("view", { class: "head" }, [ - vue.createElementVNode("view", { class: "" }, " 种植 "), - vue.createElementVNode("view", { - class: "", - onClick: ($event) => navtoForm(item.type) - }, " 农事查看 ", 8, ["onClick"]) - ]), - vue.createElementVNode("view", { class: "body" }, [ - vue.createElementVNode("view", { class: "left" }, [ - vue.createVNode(_component_u__image, { - onClick: _cache[2] || (_cache[2] = ($event) => perviewFn(url2.value)), - radius: "10", - src: url2.value, - width: "200rpx", - height: "200rpx" - }, null, 8, ["src"]) - ]), - vue.createElementVNode("view", { class: "right" }, [ - vue.createElementVNode("view", { class: "" }, " 土地名称: 张伟撒打算撒旦 "), - vue.createElementVNode("view", { class: "" }, " 土地名称: 张伟撒打算撒旦 "), - vue.createElementVNode("view", { class: "" }, " 土地名称: 张伟撒打算撒旦 "), - vue.createElementVNode("view", { class: "" }, " 土地名称: 张伟撒打算撒旦 ") - ]) - ]) - ]); - }), - 128 - /* KEYED_FRAGMENT */ - )) - ]) - ]), - vue.createCommentVNode(" 组件 "), - vue.createElementVNode("view", { class: "" }, [ - vue.createVNode(_component_u_picker, { - keyName: "label", - show: showPicker.value, - onCancel: _cache[3] || (_cache[3] = ($event) => showPicker.value = false), - onConfirm: confirm, - columns - }, null, 8, ["show", "columns"]) - ]) - ]); - }; - } - }; - const PagesLandDetailIndex = /* @__PURE__ */ _export_sfc(_sfc_main$n, [["__scopeId", "data-v-2b983efa"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/landDetail/index.vue"]]); - const props$6 = { - props: { - // 绑定的值 - modelValue: { - type: [String, Number], - default: props$i.input.value - }, - // number-数字输入键盘,app-vue下可以输入浮点数,app-nvue和小程序平台下只能输入整数 - // idcard-身份证输入键盘,微信、支付宝、百度、QQ小程序 - // digit-带小数点的数字键盘,App的nvue页面、微信、支付宝、百度、头条、QQ小程序 - // text-文本输入键盘 - type: { - type: String, - default: props$i.input.type - }, - // 如果 textarea 是在一个 position:fixed 的区域,需要显示指定属性 fixed 为 true, - // 兼容性:微信小程序、百度小程序、字节跳动小程序、QQ小程序 - fixed: { - type: Boolean, - default: props$i.input.fixed - }, - // 是否禁用输入框 - disabled: { - type: Boolean, - default: props$i.input.disabled - }, - // 禁用状态时的背景色 - disabledColor: { - type: String, - default: props$i.input.disabledColor - }, - // 是否显示清除控件 - clearable: { - type: Boolean, - default: props$i.input.clearable - }, - // 是否密码类型 - password: { - type: Boolean, - default: props$i.input.password - }, - // 最大输入长度,设置为 -1 的时候不限制最大长度 - maxlength: { - type: [String, Number], - default: props$i.input.maxlength - }, - // 输入框为空时的占位符 - placeholder: { - type: String, - default: props$i.input.placeholder - }, - // 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ - placeholderClass: { - type: String, - default: props$i.input.placeholderClass - }, - // 指定placeholder的样式 - placeholderStyle: { - type: [String, Object], - default: props$i.input.placeholderStyle - }, - // 是否显示输入字数统计,只在 type ="text"或type ="textarea"时有效 - showWordLimit: { - type: Boolean, - default: props$i.input.showWordLimit - }, - // 设置右下角按钮的文字,有效值:send|search|next|go|done,兼容性详见uni-app文档 - // https://uniapp.dcloud.io/component/input - // https://uniapp.dcloud.io/component/textarea - confirmType: { - type: String, - default: props$i.input.confirmType - }, - // 点击键盘右下角按钮时是否保持键盘不收起,H5无效 - confirmHold: { - type: Boolean, - default: props$i.input.confirmHold - }, - // focus时,点击页面的时候不收起键盘,微信小程序有效 - holdKeyboard: { - type: Boolean, - default: props$i.input.holdKeyboard - }, - // 自动获取焦点 - // 在 H5 平台能否聚焦以及软键盘是否跟随弹出,取决于当前浏览器本身的实现。nvue 页面不支持,需使用组件的 focus()、blur() 方法控制焦点 - focus: { - type: Boolean, - default: props$i.input.focus - }, - // 键盘收起时,是否自动失去焦点,目前仅App3.0.0+有效 - autoBlur: { - type: Boolean, - default: props$i.input.autoBlur - }, - // 是否去掉 iOS 下的默认内边距,仅微信小程序,且type=textarea时有效 - disableDefaultPadding: { - type: Boolean, - default: props$i.input.disableDefaultPadding - }, - // 指定focus时光标的位置 - cursor: { - type: [String, Number], - default: props$i.input.cursor - }, - // 输入框聚焦时底部与键盘的距离 - cursorSpacing: { - type: [String, Number], - default: props$i.input.cursorSpacing - }, - // 光标起始位置,自动聚集时有效,需与selection-end搭配使用 - selectionStart: { - type: [String, Number], - default: props$i.input.selectionStart - }, - // 光标结束位置,自动聚集时有效,需与selection-start搭配使用 - selectionEnd: { - type: [String, Number], - default: props$i.input.selectionEnd - }, - // 键盘弹起时,是否自动上推页面 - adjustPosition: { - type: Boolean, - default: props$i.input.adjustPosition - }, - // 输入框内容对齐方式,可选值为:left|center|right - inputAlign: { - type: String, - default: props$i.input.inputAlign - }, - // 输入框字体的大小 - fontSize: { - type: [String, Number], - default: props$i.input.fontSize - }, - // 输入框字体颜色 - color: { - type: String, - default: props$i.input.color - }, - // 输入框前置图标 - prefixIcon: { - type: String, - default: props$i.input.prefixIcon - }, - // 前置图标样式,对象或字符串 - prefixIconStyle: { - type: [String, Object], - default: props$i.input.prefixIconStyle - }, - // 输入框后置图标 - suffixIcon: { - type: String, - default: props$i.input.suffixIcon - }, - // 后置图标样式,对象或字符串 - suffixIconStyle: { - type: [String, Object], - default: props$i.input.suffixIconStyle - }, - // 边框类型,surround-四周边框,bottom-底部边框,none-无边框 - border: { - type: String, - default: props$i.input.border - }, - // 是否只读,与disabled不同之处在于disabled会置灰组件,而readonly则不会 - readonly: { - type: Boolean, - default: props$i.input.readonly - }, - // 输入框形状,circle-圆形,square-方形 - shape: { - type: String, - default: props$i.input.shape - }, - // 用于处理或者过滤输入框内容的方法 - formatter: { - type: [Function, null], - default: props$i.input.formatter - }, - // 是否忽略组件内对文本合成系统事件的处理 - ignoreCompositionEvent: { - type: Boolean, - default: true - } - } - }; - const _sfc_main$m = { - name: "u-input", - mixins: [mpMixin, mixin, props$6], - data() { - return { - // 输入框的值 - innerValue: "", - // 是否处于获得焦点状态 - focused: false, - // value是否第一次变化,在watch中,由于加入immediate属性,会在第一次触发,此时不应该认为value发生了变化 - firstChange: true, - // value绑定值的变化是由内部还是外部引起的 - changeFromInner: false, - // 过滤处理方法 - innerFormatter: (value) => value - }; - }, - watch: { - modelValue: { - immediate: true, - handler(newVal, oldVal) { - this.innerValue = newVal; - this.firstChange = false; - this.changeFromInner = false; - } - } - }, - computed: { - // 是否显示清除控件 - isShowClear() { - const { clearable, readonly, focused, innerValue } = this; - return !!clearable && !readonly && !!focused && innerValue !== ""; - }, - // 组件的类名 - inputClass() { - let classes = [], { border, disabled, shape } = this; - border === "surround" && (classes = classes.concat(["u-border", "u-input--radius"])); - classes.push(`u-input--${shape}`); - border === "bottom" && (classes = classes.concat([ - "u-border-bottom", - "u-input--no-radius" - ])); - return classes.join(" "); - }, - // 组件的样式 - wrapperStyle() { - const style = {}; - if (this.disabled) { - style.backgroundColor = this.disabledColor; - } - if (this.border === "none") { - style.padding = "0"; - } else { - style.paddingTop = "6px"; - style.paddingBottom = "6px"; - style.paddingLeft = "9px"; - style.paddingRight = "9px"; - } - return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); - }, - // 输入框的样式 - inputStyle() { - const style = { - color: this.color, - fontSize: uni.$u.addUnit(this.fontSize), - textAlign: this.inputAlign - }; - return style; - } - }, - emits: ["update:modelValue", "focus", "blur", "change", "confirm", "clear", "keyboardheightchange"], - methods: { - // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用 - setFormatter(e2) { - this.innerFormatter = e2; - }, - // 当键盘输入时,触发input事件 - onInput(e2) { - let { value = "" } = e2.detail || {}; - const formatter = this.formatter || this.innerFormatter; - const formatValue = formatter(value); - this.innerValue = value; - this.$nextTick(() => { - this.innerValue = formatValue; - this.valueChange(); - }); - }, - // 输入框失去焦点时触发 - onBlur(event) { - this.$emit("blur", event.detail.value); - uni.$u.sleep(50).then(() => { - this.focused = false; - }); - uni.$u.formValidate(this, "blur"); - }, - // 输入框聚焦时触发 - onFocus(event) { - this.focused = true; - this.$emit("focus"); - }, - // 点击完成按钮时触发 - onConfirm(event) { - this.$emit("confirm", this.innerValue); - }, - // 键盘高度发生变化的时候触发此事件 - // 兼容性:微信小程序2.7.0+、App 3.1.0+ - onkeyboardheightchange(event) { - this.$emit("keyboardheightchange", event); - }, - // 内容发生变化,进行处理 - valueChange() { - const value = this.innerValue; - this.$nextTick(() => { - this.$emit("update:modelValue", value); - this.changeFromInner = true; - this.$emit("change", value); - uni.$u.formValidate(this, "change"); - }); - }, - // 点击清除控件 - onClear() { - this.innerValue = ""; - this.$nextTick(() => { - this.valueChange(); - this.$emit("clear"); - }); - }, - /** - * 在安卓nvue上,事件无法冒泡 - * 在某些时间,我们希望监听u-from-item的点击事件,此时会导致点击u-form-item内的u-input后 - * 无法触发u-form-item的点击事件,这里通过手动调用u-form-item的方法进行触发 - */ - clickHandler() { - } - } - }; - function _sfc_render$b(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_1$4); - return vue.openBlock(), vue.createElementBlock( - "view", - { - class: vue.normalizeClass(["u-input", $options.inputClass]), - style: vue.normalizeStyle([$options.wrapperStyle]) - }, - [ - vue.createElementVNode("view", { class: "u-input__content" }, [ - _ctx.prefixIcon || _ctx.$slots.prefix ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "u-input__content__prefix-icon" - }, [ - vue.renderSlot(_ctx.$slots, "prefix", {}, () => [ - vue.createVNode(_component_u_icon, { - name: _ctx.prefixIcon, - size: "18", - customStyle: _ctx.prefixIconStyle - }, null, 8, ["name", "customStyle"]) - ], true) - ])) : vue.createCommentVNode("v-if", true), - vue.createElementVNode("view", { - class: "u-input__content__field-wrapper", - onClick: _cache[5] || (_cache[5] = (...args) => $options.clickHandler && $options.clickHandler(...args)) - }, [ - vue.createCommentVNode(" 根据uni-app的input组件文档,H5和APP中只要声明了password参数(无论true还是false),type均失效,此时\r\n 为了防止type=number时,又存在password属性,type无效,此时需要设置password为undefined\r\n "), - vue.createElementVNode("input", { - class: "u-input__content__field-wrapper__field", - style: vue.normalizeStyle([$options.inputStyle]), - type: _ctx.type, - focus: _ctx.focus, - cursor: _ctx.cursor, - value: $data.innerValue, - "auto-blur": _ctx.autoBlur, - disabled: _ctx.disabled || _ctx.readonly, - maxlength: _ctx.maxlength, - placeholder: _ctx.placeholder, - "placeholder-style": _ctx.placeholderStyle, - "placeholder-class": _ctx.placeholderClass, - "confirm-type": _ctx.confirmType, - "confirm-hold": _ctx.confirmHold, - "hold-keyboard": _ctx.holdKeyboard, - "cursor-spacing": _ctx.cursorSpacing, - "adjust-position": _ctx.adjustPosition, - "selection-end": _ctx.selectionEnd, - "selection-start": _ctx.selectionStart, - password: _ctx.password || _ctx.type === "password" || void 0, - ignoreCompositionEvent: _ctx.ignoreCompositionEvent, - onInput: _cache[0] || (_cache[0] = (...args) => $options.onInput && $options.onInput(...args)), - onBlur: _cache[1] || (_cache[1] = (...args) => $options.onBlur && $options.onBlur(...args)), - onFocus: _cache[2] || (_cache[2] = (...args) => $options.onFocus && $options.onFocus(...args)), - onConfirm: _cache[3] || (_cache[3] = (...args) => $options.onConfirm && $options.onConfirm(...args)), - onKeyboardheightchange: _cache[4] || (_cache[4] = (...args) => $options.onkeyboardheightchange && $options.onkeyboardheightchange(...args)) - }, null, 44, ["type", "focus", "cursor", "value", "auto-blur", "disabled", "maxlength", "placeholder", "placeholder-style", "placeholder-class", "confirm-type", "confirm-hold", "hold-keyboard", "cursor-spacing", "adjust-position", "selection-end", "selection-start", "password", "ignoreCompositionEvent"]) - ]), - $options.isShowClear ? (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "u-input__content__clear", - onClick: _cache[6] || (_cache[6] = (...args) => $options.onClear && $options.onClear(...args)) - }, [ - vue.createVNode(_component_u_icon, { - name: "close", - size: "11", - color: "#ffffff", - customStyle: "line-height: 12px" - }) - ])) : vue.createCommentVNode("v-if", true), - _ctx.suffixIcon || _ctx.$slots.suffix ? (vue.openBlock(), vue.createElementBlock("view", { - key: 2, - class: "u-input__content__subfix-icon" - }, [ - vue.renderSlot(_ctx.$slots, "suffix", {}, () => [ - vue.createVNode(_component_u_icon, { - name: _ctx.suffixIcon, - size: "18", - customStyle: _ctx.suffixIconStyle - }, null, 8, ["name", "customStyle"]) - ], true) - ])) : vue.createCommentVNode("v-if", true) - ]) - ], - 6 - /* CLASS, STYLE */ - ); - } - const __easycom_0$3 = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["render", _sfc_render$b], ["__scopeId", "data-v-5904192e"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-input/u-input.vue"]]); - const props$5 = { - props: { - color: { - type: String, - default: props$i.line.color - }, - // 长度,竖向时表现为高度,横向时表现为长度,可以为百分比,带px单位的值等 - length: { - type: [String, Number], - default: props$i.line.length - }, - // 线条方向,col-竖向,row-横向 - direction: { - type: String, - default: props$i.line.direction - }, - // 是否显示细边框 - hairline: { - type: Boolean, - default: props$i.line.hairline - }, - // 线条与上下左右元素的间距,字符串形式,如"30px"、"20px 30px" - margin: { - type: [String, Number], - default: props$i.line.margin - }, - // 是否虚线,true-虚线,false-实线 - dashed: { - type: Boolean, - default: props$i.line.dashed - } - } - }; - const _sfc_main$l = { - name: "u-line", - mixins: [mpMixin, mixin, props$5], - computed: { - lineStyle() { - const style = {}; - style.margin = this.margin; - if (this.direction === "row") { - style.borderBottomWidth = "1px"; - style.borderBottomStyle = this.dashed ? "dashed" : "solid"; - style.width = uni.$u.addUnit(this.length); - if (this.hairline) - style.transform = "scaleY(0.5)"; - } else { - style.borderLeftWidth = "1px"; - style.borderLeftStyle = this.dashed ? "dashed" : "solid"; - style.height = uni.$u.addUnit(this.length); - if (this.hairline) - style.transform = "scaleX(0.5)"; - } - style.borderColor = this.color; - return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); - } - } - }; - function _sfc_render$a(_ctx, _cache, $props, $setup, $data, $options) { - return vue.openBlock(), vue.createElementBlock( - "view", - { - class: "u-line", - style: vue.normalizeStyle([$options.lineStyle]) - }, - null, - 4 - /* STYLE */ - ); - } - const __easycom_1$2 = /* @__PURE__ */ _export_sfc(_sfc_main$l, [["render", _sfc_render$a], ["__scopeId", "data-v-bbd9963c"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-line/u-line.vue"]]); - const props$4 = { - props: { - // input的label提示语 - label: { - type: String, - default: props$i.formItem.label - }, - // 绑定的值 - prop: { - type: String, - default: props$i.formItem.prop - }, - // 是否显示表单域的下划线边框 - borderBottom: { - type: [String, Boolean], - default: props$i.formItem.borderBottom - }, - // label的宽度,单位px - labelWidth: { - type: [String, Number], - default: props$i.formItem.labelWidth - }, - // 右侧图标 - rightIcon: { - type: String, - default: props$i.formItem.rightIcon - }, - // 左侧图标 - leftIcon: { - type: String, - default: props$i.formItem.leftIcon - }, - // 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置 - required: { - type: Boolean, - default: props$i.formItem.required - }, - leftIconStyle: { - type: [String, Object], - default: props$i.formItem.leftIconStyle - } - } - }; - const _sfc_main$k = { - name: "u-form-item", - mixins: [mpMixin, mixin, props$4], - data() { - return { - // 错误提示语 - message: "", - parentData: { - // 提示文本的位置 - labelPosition: "left", - // 提示文本对齐方式 - labelAlign: "left", - // 提示文本的样式 - labelStyle: {}, - // 提示文本的宽度 - labelWidth: 45, - // 错误提示方式 - errorType: "message" - } - }; - }, - // 组件创建完成时,将当前实例保存到u-form中 - computed: { - propsLine() { - return uni.$u.props.line; - } - }, - mounted() { - this.init(); - }, - emits: ["click"], - methods: { - init() { - this.updateParentData(); - if (!this.parent) { - uni.$u.error("u-form-item需要结合u-form组件使用"); - } - }, - // 获取父组件的参数 - updateParentData() { - this.getParentData("u-form"); - }, - // 移除u-form-item的校验结果 - clearValidate() { - this.message = null; - }, - // 清空当前的组件的校验结果,并重置为初始值 - resetField() { - const value = uni.$u.getProperty(this.parent.originalModel, this.prop); - uni.$u.setProperty(this.parent.model, this.prop, value); - this.message = null; - }, - // 点击组件 - clickHandler() { - this.$emit("click"); - } - } - }; - function _sfc_render$9(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_1$4); - const _component_u_line = resolveEasycom(vue.resolveDynamicComponent("u-line"), __easycom_1$2); - return vue.openBlock(), vue.createElementBlock("view", { class: "u-form-item" }, [ - vue.createElementVNode( - "view", - { - class: "u-form-item__body", - onClick: _cache[0] || (_cache[0] = (...args) => $options.clickHandler && $options.clickHandler(...args)), - style: vue.normalizeStyle([_ctx.$u.addStyle(_ctx.customStyle), { - flexDirection: $data.parentData.labelPosition === "left" ? "row" : "column" - }]) - }, - [ - vue.createCommentVNode(' 微信小程序中,将一个参数设置空字符串,结果会变成字符串"true" '), - vue.renderSlot(_ctx.$slots, "label", {}, () => [ - vue.createCommentVNode(" {{required}} "), - _ctx.required || _ctx.leftIcon || _ctx.label ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 0, - class: "u-form-item__body__left", - style: vue.normalizeStyle({ - width: _ctx.$u.addUnit(_ctx.labelWidth || $data.parentData.labelWidth), - marginBottom: $data.parentData.labelPosition === "left" ? 0 : "5px" - }) - }, - [ - vue.createCommentVNode(" 为了块对齐 "), - vue.createElementVNode("view", { class: "u-form-item__body__left__content" }, [ - vue.createCommentVNode(" nvue不支持伪元素before "), - _ctx.required ? (vue.openBlock(), vue.createElementBlock("text", { - key: 0, - class: "u-form-item__body__left__content__required" - }, "*")) : vue.createCommentVNode("v-if", true), - _ctx.leftIcon ? (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "u-form-item__body__left__content__icon" - }, [ - vue.createVNode(_component_u_icon, { - name: _ctx.leftIcon, - "custom-style": _ctx.leftIconStyle - }, null, 8, ["name", "custom-style"]) - ])) : vue.createCommentVNode("v-if", true), - vue.createElementVNode( - "text", - { - class: "u-form-item__body__left__content__label", - style: vue.normalizeStyle([$data.parentData.labelStyle, { - justifyContent: $data.parentData.labelAlign === "left" ? "flex-start" : $data.parentData.labelAlign === "center" ? "center" : "flex-end" - }]) - }, - vue.toDisplayString(_ctx.label), - 5 - /* TEXT, STYLE */ - ) - ]) - ], - 4 - /* STYLE */ - )) : vue.createCommentVNode("v-if", true) - ], true), - vue.createElementVNode("view", { class: "u-form-item__body__right" }, [ - vue.createElementVNode("view", { class: "u-form-item__body__right__content" }, [ - vue.createElementVNode("view", { class: "u-form-item__body__right__content__slot" }, [ - vue.renderSlot(_ctx.$slots, "default", {}, void 0, true) - ]), - _ctx.$slots.right ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "item__body__right__content__icon" - }, [ - vue.renderSlot(_ctx.$slots, "right", {}, void 0, true) - ])) : vue.createCommentVNode("v-if", true) - ]) - ]) - ], - 4 - /* STYLE */ - ), - vue.renderSlot(_ctx.$slots, "error", {}, () => [ - !!$data.message && $data.parentData.errorType === "message" ? (vue.openBlock(), vue.createElementBlock( - "text", - { - key: 0, - class: "u-form-item__body__right__message", - style: vue.normalizeStyle({ - marginLeft: _ctx.$u.addUnit($data.parentData.labelPosition === "top" ? 0 : _ctx.labelWidth || $data.parentData.labelWidth) - }) - }, - vue.toDisplayString($data.message), - 5 - /* TEXT, STYLE */ - )) : vue.createCommentVNode("v-if", true) - ], true), - _ctx.borderBottom ? (vue.openBlock(), vue.createBlock(_component_u_line, { - key: 0, - color: $data.message && $data.parentData.errorType === "border-bottom" ? _ctx.$u.color.error : $options.propsLine.color, - customStyle: `margin-top: ${$data.message && $data.parentData.errorType === "message" ? "5px" : 0}` - }, null, 8, ["color", "customStyle"])) : vue.createCommentVNode("v-if", true) - ]); - } - const __easycom_1$1 = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["render", _sfc_render$9], ["__scopeId", "data-v-b4fd400b"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-form-item/u-form-item.vue"]]); - const props$3 = { - props: { - // 输入框的内容 - value: { - type: [String, Number], - default: props$i.textarea.value - }, - // 输入框的内容 - modelValue: { - type: [String, Number], - default: props$i.textarea.value - }, - // 输入框为空时占位符 - placeholder: { - type: [String, Number], - default: props$i.textarea.placeholder - }, - // 指定placeholder的样式类,注意页面或组件的style中写了scoped时,需要在类名前写/deep/ - placeholderClass: { - type: String, - default: props$i.input.placeholderClass - }, - // 指定placeholder的样式 - placeholderStyle: { - type: [String, Object], - default: props$i.input.placeholderStyle - }, - // 输入框高度 - height: { - type: [String, Number], - default: props$i.textarea.height - }, - // 设置键盘右下角按钮的文字,仅微信小程序,App-vue和H5有效 - confirmType: { - type: String, - default: props$i.textarea.confirmType - }, - // 是否禁用 - disabled: { - type: Boolean, - default: props$i.textarea.disabled - }, - // 是否显示统计字数 - count: { - type: Boolean, - default: props$i.textarea.count - }, - // 是否自动获取焦点,nvue不支持,H5取决于浏览器的实现 - focus: { - type: Boolean, - default: props$i.textarea.focus - }, - // 是否自动增加高度 - autoHeight: { - type: Boolean, - default: props$i.textarea.autoHeight - }, - // 如果textarea是在一个position:fixed的区域,需要显示指定属性fixed为true - fixed: { - type: Boolean, - default: props$i.textarea.fixed - }, - // 指定光标与键盘的距离 - cursorSpacing: { - type: Number, - default: props$i.textarea.cursorSpacing - }, - // 指定focus时的光标位置 - cursor: { - type: [String, Number], - default: props$i.textarea.cursor - }, - // 是否显示键盘上方带有”完成“按钮那一栏, - showConfirmBar: { - type: Boolean, - default: props$i.textarea.showConfirmBar - }, - // 光标起始位置,自动聚焦时有效,需与selection-end搭配使用 - selectionStart: { - type: Number, - default: props$i.textarea.selectionStart - }, - // 光标结束位置,自动聚焦时有效,需与selection-start搭配使用 - selectionEnd: { - type: Number, - default: props$i.textarea.selectionEnd - }, - // 键盘弹起时,是否自动上推页面 - adjustPosition: { - type: Boolean, - default: props$i.textarea.adjustPosition - }, - // 是否去掉 iOS 下的默认内边距,只微信小程序有效 - disableDefaultPadding: { - type: Boolean, - default: props$i.textarea.disableDefaultPadding - }, - // focus时,点击页面的时候不收起键盘,只微信小程序有效 - holdKeyboard: { - type: Boolean, - default: props$i.textarea.holdKeyboard - }, - // 最大输入长度,设置为 -1 的时候不限制最大长度 - maxlength: { - type: [String, Number], - default: props$i.textarea.maxlength - }, - // 边框类型,surround-四周边框,bottom-底部边框 - border: { - type: String, - default: props$i.textarea.border - }, - // 用于处理或者过滤输入框内容的方法 - formatter: { - type: [Function, null], - default: props$i.textarea.formatter - }, - // 是否忽略组件内对文本合成系统事件的处理 - ignoreCompositionEvent: { - type: Boolean, - default: true - } - } - }; - const _sfc_main$j = { - name: "u-textarea", - mixins: [mpMixin, mixin, props$3], - data() { - return { - // 输入框的值 - innerValue: "", - // 是否处于获得焦点状态 - focused: false, - // value是否第一次变化,在watch中,由于加入immediate属性,会在第一次触发,此时不应该认为value发生了变化 - firstChange: true, - // value绑定值的变化是由内部还是外部引起的 - changeFromInner: false, - // 过滤处理方法 - innerFormatter: (value) => value - }; - }, - created() { - }, - watch: { - modelValue: { - immediate: true, - handler(newVal, oldVal) { - this.innerValue = newVal; - this.firstChange = false; - this.changeFromInner = false; - } - } - }, - computed: { - // 组件的类名 - textareaClass() { - let classes = [], { border, disabled } = this; - border === "surround" && (classes = classes.concat(["u-border", "u-textarea--radius"])); - border === "bottom" && (classes = classes.concat([ - "u-border-bottom", - "u-textarea--no-radius" - ])); - disabled && classes.push("u-textarea--disabled"); - return classes.join(" "); - }, - // 组件的样式 - textareaStyle() { - const style = {}; - return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle)); - } - }, - emits: ["update:modelValue", "linechange", "focus", "blur", "change", "confirm", "keyboardheightchange"], - methods: { - // 在微信小程序中,不支持将函数当做props参数,故只能通过ref形式调用 - setFormatter(e2) { - this.innerFormatter = e2; - }, - onFocus(e2) { - this.$emit("focus", e2); - }, - onBlur(e2) { - this.$emit("blur", e2); - uni.$u.formValidate(this, "blur"); - }, - onLinechange(e2) { - this.$emit("linechange", e2); - }, - onInput(e2) { - let { value = "" } = e2.detail || {}; - const formatter = this.formatter || this.innerFormatter; - const formatValue = formatter(value); - this.innerValue = value; - this.$nextTick(() => { - this.innerValue = formatValue; - this.valueChange(); - }); - }, - // 内容发生变化,进行处理 - valueChange() { - const value = this.innerValue; - this.$nextTick(() => { - this.$emit("update:modelValue", value); - this.changeFromInner = true; - this.$emit("change", value); - uni.$u.formValidate(this, "change"); - }); - }, - onConfirm(e2) { - this.$emit("confirm", e2); - }, - onKeyboardheightchange(e2) { - this.$emit("keyboardheightchange", e2); - } - } - }; - function _sfc_render$8(_ctx, _cache, $props, $setup, $data, $options) { - return vue.openBlock(), vue.createElementBlock( - "view", - { - class: vue.normalizeClass(["u-textarea", $options.textareaClass]), - style: vue.normalizeStyle([$options.textareaStyle]) - }, - [ - vue.createElementVNode("textarea", { - class: "u-textarea__field", - value: $data.innerValue, - style: vue.normalizeStyle({ height: _ctx.$u.addUnit(_ctx.height) }), - placeholder: _ctx.placeholder, - "placeholder-style": _ctx.$u.addStyle(_ctx.placeholderStyle, "string"), - "placeholder-class": _ctx.placeholderClass, - disabled: _ctx.disabled, - focus: _ctx.focus, - autoHeight: _ctx.autoHeight, - fixed: _ctx.fixed, - cursorSpacing: _ctx.cursorSpacing, - cursor: _ctx.cursor, - showConfirmBar: _ctx.showConfirmBar, - selectionStart: _ctx.selectionStart, - selectionEnd: _ctx.selectionEnd, - adjustPosition: _ctx.adjustPosition, - disableDefaultPadding: _ctx.disableDefaultPadding, - holdKeyboard: _ctx.holdKeyboard, - maxlength: _ctx.maxlength, - "confirm-type": _ctx.confirmType, - ignoreCompositionEvent: _ctx.ignoreCompositionEvent, - onFocus: _cache[0] || (_cache[0] = (...args) => $options.onFocus && $options.onFocus(...args)), - onBlur: _cache[1] || (_cache[1] = (...args) => $options.onBlur && $options.onBlur(...args)), - onLinechange: _cache[2] || (_cache[2] = (...args) => $options.onLinechange && $options.onLinechange(...args)), - onInput: _cache[3] || (_cache[3] = (...args) => $options.onInput && $options.onInput(...args)), - onConfirm: _cache[4] || (_cache[4] = (...args) => $options.onConfirm && $options.onConfirm(...args)), - onKeyboardheightchange: _cache[5] || (_cache[5] = (...args) => $options.onKeyboardheightchange && $options.onKeyboardheightchange(...args)) - }, null, 44, ["value", "placeholder", "placeholder-style", "placeholder-class", "disabled", "focus", "autoHeight", "fixed", "cursorSpacing", "cursor", "showConfirmBar", "selectionStart", "selectionEnd", "adjustPosition", "disableDefaultPadding", "holdKeyboard", "maxlength", "confirm-type", "ignoreCompositionEvent"]), - _ctx.count ? (vue.openBlock(), vue.createElementBlock( - "text", - { - key: 0, - class: "u-textarea__count", - style: vue.normalizeStyle({ - "background-color": _ctx.disabled ? "transparent" : "#fff" - }) - }, - vue.toDisplayString($data.innerValue.length) + "/" + vue.toDisplayString(_ctx.maxlength), - 5 - /* TEXT, STYLE */ - )) : vue.createCommentVNode("v-if", true) - ], - 6 - /* CLASS, STYLE */ - ); - } - const __easycom_3$1 = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["render", _sfc_render$8], ["__scopeId", "data-v-31706dd7"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-textarea/u-textarea.vue"]]); - const props$2 = { - props: { - // 当前form的需要验证字段的集合 - model: { - type: Object, - default: props$i.form.model - }, - // 验证规则 - rules: { - type: [Object, Function, Array], - default: props$i.form.rules - }, - // 有错误时的提示方式,message-提示信息,toast-进行toast提示 - // border-bottom-下边框呈现红色,none-无提示 - errorType: { - type: String, - default: props$i.form.errorType - }, - // 是否显示表单域的下划线边框 - borderBottom: { - type: Boolean, - default: props$i.form.borderBottom - }, - // label的位置,left-左边,top-上边 - labelPosition: { - type: String, - default: props$i.form.labelPosition - }, - // label的宽度,单位px - labelWidth: { - type: [String, Number], - default: props$i.form.labelWidth - }, - // lable字体的对齐方式 - labelAlign: { - type: String, - default: props$i.form.labelAlign - }, - // lable的样式,对象形式 - labelStyle: { - type: Object, - default: props$i.form.labelStyle - } - } - }; - const formatRegExp = /%[sdj%]/g; - let warning = function warning2() { - }; - if (typeof process !== "undefined" && process.env && true && typeof window !== "undefined" && typeof document !== "undefined") { - warning = function warning2(type2, errors) { - if (typeof console !== "undefined" && console.warn) { - if (errors.every((e2) => typeof e2 === "string")) { - formatAppLog("warn", "at node_modules/uview-plus/libs/util/async-validator.js:28", type2, errors); - } - } - }; - } - function convertFieldsError(errors) { - if (!errors || !errors.length) - return null; - const fields = {}; - errors.forEach((error2) => { - const { field } = error2; - fields[field] = fields[field] || []; - fields[field].push(error2); - }); - return fields; - } - function format() { - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - let i2 = 1; - const f2 = args[0]; - const len = args.length; - if (typeof f2 === "function") { - return f2.apply(null, args.slice(1)); - } - if (typeof f2 === "string") { - let str = String(f2).replace(formatRegExp, (x) => { - if (x === "%%") { - return "%"; - } - if (i2 >= len) { - return x; - } - switch (x) { - case "%s": - return String(args[i2++]); - case "%d": - return Number(args[i2++]); - case "%j": - try { - return JSON.stringify(args[i2++]); - } catch (_2) { - return "[Circular]"; - } - break; - default: - return x; - } - }); - for (let arg = args[i2]; i2 < len; arg = args[++i2]) { - str += ` ${arg}`; - } - return str; - } - return f2; - } - function isNativeStringType(type2) { - return type2 === "string" || type2 === "url" || type2 === "hex" || type2 === "email" || type2 === "pattern"; - } - function isEmptyValue(value, type2) { - if (value === void 0 || value === null) { - return true; - } - if (type2 === "array" && Array.isArray(value) && !value.length) { - return true; - } - if (isNativeStringType(type2) && typeof value === "string" && !value) { - return true; - } - return false; - } - function asyncParallelArray(arr, func2, callback) { - const results = []; - let total = 0; - const arrLength = arr.length; - function count(errors) { - results.push.apply(results, errors); - total++; - if (total === arrLength) { - callback(results); - } - } - arr.forEach((a2) => { - func2(a2, count); - }); - } - function asyncSerialArray(arr, func2, callback) { - let index2 = 0; - const arrLength = arr.length; - function next(errors) { - if (errors && errors.length) { - callback(errors); - return; - } - const original = index2; - index2 += 1; - if (original < arrLength) { - func2(arr[original], next); - } else { - callback([]); - } - } - next([]); - } - function flattenObjArr(objArr) { - const ret = []; - Object.keys(objArr).forEach((k) => { - ret.push.apply(ret, objArr[k]); - }); - return ret; - } - function asyncMap(objArr, option, func2, callback) { - if (option.first) { - const _pending = new Promise((resolve, reject) => { - const next = function next2(errors) { - callback(errors); - return errors.length ? reject({ - errors, - fields: convertFieldsError(errors) - }) : resolve(); - }; - const flattenArr = flattenObjArr(objArr); - asyncSerialArray(flattenArr, func2, next); - }); - _pending.catch((e2) => e2); - return _pending; - } - let firstFields = option.firstFields || []; - if (firstFields === true) { - firstFields = Object.keys(objArr); - } - const objArrKeys = Object.keys(objArr); - const objArrLength = objArrKeys.length; - let total = 0; - const results = []; - const pending = new Promise((resolve, reject) => { - const next = function next2(errors) { - results.push.apply(results, errors); - total++; - if (total === objArrLength) { - callback(results); - return results.length ? reject({ - errors: results, - fields: convertFieldsError(results) - }) : resolve(); - } - }; - if (!objArrKeys.length) { - callback(results); - resolve(); - } - objArrKeys.forEach((key) => { - const arr = objArr[key]; - if (firstFields.indexOf(key) !== -1) { - asyncSerialArray(arr, func2, next); - } else { - asyncParallelArray(arr, func2, next); - } - }); - }); - pending.catch((e2) => e2); - return pending; - } - function complementError(rule) { - return function(oe2) { - if (oe2 && oe2.message) { - oe2.field = oe2.field || rule.fullField; - return oe2; - } - return { - message: typeof oe2 === "function" ? oe2() : oe2, - field: oe2.field || rule.fullField - }; - }; - } - function deepMerge$2(target, source) { - if (source) { - for (const s2 in source) { - if (source.hasOwnProperty(s2)) { - const value = source[s2]; - if (typeof value === "object" && typeof target[s2] === "object") { - target[s2] = { ...target[s2], ...value }; - } else { - target[s2] = value; - } - } - } - } - return target; - } - function required(rule, value, source, errors, options, type2) { - if (rule.required && (!source.hasOwnProperty(rule.field) || isEmptyValue(value, type2 || rule.type))) { - errors.push(format(options.messages.required, rule.fullField)); - } - } - function whitespace(rule, value, source, errors, options) { - if (/^\s+$/.test(value) || value === "") { - errors.push(format(options.messages.whitespace, rule.fullField)); - } - } - const pattern = { - // http://emailregex.com/ - email: /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/, - url: new RegExp( - "^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-*)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$", - "i" - ), - hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i - }; - var types = { - integer: function integer2(value) { - return /^(-)?\d+$/.test(value); - }, - float: function float(value) { - return /^(-)?\d+(\.\d+)?$/.test(value); - }, - array: function array2(value) { - return Array.isArray(value); - }, - regexp: function regexp2(value) { - if (value instanceof RegExp) { - return true; - } - try { - return !!new RegExp(value); - } catch (e2) { - return false; - } - }, - date: function date2(value) { - return typeof value.getTime === "function" && typeof value.getMonth === "function" && typeof value.getYear === "function"; - }, - number: function number2(value) { - if (isNaN(value)) { - return false; - } - return typeof +value === "number"; - }, - object: function object2(value) { - return typeof value === "object" && !types.array(value); - }, - method: function method2(value) { - return typeof value === "function"; - }, - email: function email2(value) { - return typeof value === "string" && !!value.match(pattern.email) && value.length < 255; - }, - url: function url2(value) { - return typeof value === "string" && !!value.match(pattern.url); - }, - hex: function hex(value) { - return typeof value === "string" && !!value.match(pattern.hex); - } - }; - function type(rule, value, source, errors, options) { - if (rule.required && value === void 0) { - required(rule, value, source, errors, options); - return; - } - const custom = ["integer", "float", "array", "regexp", "object", "method", "email", "number", "date", "url", "hex"]; - const ruleType = rule.type; - if (custom.indexOf(ruleType) > -1) { - if (!types[ruleType](value)) { - errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)); - } - } else if (ruleType && typeof value !== rule.type) { - errors.push(format(options.messages.types[ruleType], rule.fullField, rule.type)); - } - } - function range$2(rule, value, source, errors, options) { - const len = typeof rule.len === "number"; - const min = typeof rule.min === "number"; - const max = typeof rule.max === "number"; - const spRegexp = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; - let val = value; - let key = null; - const num = typeof value === "number"; - const str = typeof value === "string"; - const arr = Array.isArray(value); - if (num) { - key = "number"; - } else if (str) { - key = "string"; - } else if (arr) { - key = "array"; - } - if (!key) { - return false; - } - if (arr) { - val = value.length; - } - if (str) { - val = value.replace(spRegexp, "_").length; - } - if (len) { - if (val !== rule.len) { - errors.push(format(options.messages[key].len, rule.fullField, rule.len)); - } - } else if (min && !max && val < rule.min) { - errors.push(format(options.messages[key].min, rule.fullField, rule.min)); - } else if (max && !min && val > rule.max) { - errors.push(format(options.messages[key].max, rule.fullField, rule.max)); - } else if (min && max && (val < rule.min || val > rule.max)) { - errors.push(format(options.messages[key].range, rule.fullField, rule.min, rule.max)); - } - } - const ENUM = "enum"; - function enumerable(rule, value, source, errors, options) { - rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : []; - if (rule[ENUM].indexOf(value) === -1) { - errors.push(format(options.messages[ENUM], rule.fullField, rule[ENUM].join(", "))); - } - } - function pattern$1(rule, value, source, errors, options) { - if (rule.pattern) { - if (rule.pattern instanceof RegExp) { - rule.pattern.lastIndex = 0; - if (!rule.pattern.test(value)) { - errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); - } - } else if (typeof rule.pattern === "string") { - const _pattern = new RegExp(rule.pattern); - if (!_pattern.test(value)) { - errors.push(format(options.messages.pattern.mismatch, rule.fullField, value, rule.pattern)); - } - } - } - } - const rules = { - required, - whitespace, - type, - range: range$2, - enum: enumerable, - pattern: pattern$1 - }; - function string$1(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value, "string") && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options, "string"); - if (!isEmptyValue(value, "string")) { - rules.type(rule, value, source, errors, options); - rules.range(rule, value, source, errors, options); - rules.pattern(rule, value, source, errors, options); - if (rule.whitespace === true) { - rules.whitespace(rule, value, source, errors, options); - } - } - } - callback(errors); - } - function method(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - if (value !== void 0) { - rules.type(rule, value, source, errors, options); - } - } - callback(errors); - } - function number$1(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (value === "") { - value = void 0; - } - if (isEmptyValue(value) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - if (value !== void 0) { - rules.type(rule, value, source, errors, options); - rules.range(rule, value, source, errors, options); - } - } - callback(errors); - } - function _boolean(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - if (value !== void 0) { - rules.type(rule, value, source, errors, options); - } - } - callback(errors); - } - function regexp(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - if (!isEmptyValue(value)) { - rules.type(rule, value, source, errors, options); - } - } - callback(errors); - } - function integer(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - if (value !== void 0) { - rules.type(rule, value, source, errors, options); - rules.range(rule, value, source, errors, options); - } - } - callback(errors); - } - function floatFn(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - if (value !== void 0) { - rules.type(rule, value, source, errors, options); - rules.range(rule, value, source, errors, options); - } - } - callback(errors); - } - function array$1(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value, "array") && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options, "array"); - if (!isEmptyValue(value, "array")) { - rules.type(rule, value, source, errors, options); - rules.range(rule, value, source, errors, options); - } - } - callback(errors); - } - function object$1(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - if (value !== void 0) { - rules.type(rule, value, source, errors, options); - } - } - callback(errors); - } - const ENUM$1 = "enum"; - function enumerable$1(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - if (value !== void 0) { - rules[ENUM$1](rule, value, source, errors, options); - } - } - callback(errors); - } - function pattern$2(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value, "string") && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - if (!isEmptyValue(value, "string")) { - rules.pattern(rule, value, source, errors, options); - } - } - callback(errors); - } - function date$1(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - if (!isEmptyValue(value)) { - let dateObject; - if (typeof value === "number") { - dateObject = new Date(value); - } else { - dateObject = value; - } - rules.type(rule, dateObject, source, errors, options); - if (dateObject) { - rules.range(rule, dateObject.getTime(), source, errors, options); - } - } - } - callback(errors); - } - function required$1(rule, value, callback, source, options) { - const errors = []; - const type2 = Array.isArray(value) ? "array" : typeof value; - rules.required(rule, value, source, errors, options, type2); - callback(errors); - } - function type$1(rule, value, callback, source, options) { - const ruleType = rule.type; - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value, ruleType) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options, ruleType); - if (!isEmptyValue(value, ruleType)) { - rules.type(rule, value, source, errors, options); - } - } - callback(errors); - } - function any(rule, value, callback, source, options) { - const errors = []; - const validate = rule.required || !rule.required && source.hasOwnProperty(rule.field); - if (validate) { - if (isEmptyValue(value) && !rule.required) { - return callback(); - } - rules.required(rule, value, source, errors, options); - } - callback(errors); - } - const validators = { - string: string$1, - method, - number: number$1, - boolean: _boolean, - regexp, - integer, - float: floatFn, - array: array$1, - object: object$1, - enum: enumerable$1, - pattern: pattern$2, - date: date$1, - url: type$1, - hex: type$1, - email: type$1, - required: required$1, - any - }; - function newMessages() { - return { - default: "Validation error on field %s", - required: "%s is required", - enum: "%s must be one of %s", - whitespace: "%s cannot be empty", - date: { - format: "%s date %s is invalid for format %s", - parse: "%s date could not be parsed, %s is invalid ", - invalid: "%s date %s is invalid" - }, - types: { - string: "%s is not a %s", - method: "%s is not a %s (function)", - array: "%s is not an %s", - object: "%s is not an %s", - number: "%s is not a %s", - date: "%s is not a %s", - boolean: "%s is not a %s", - integer: "%s is not an %s", - float: "%s is not a %s", - regexp: "%s is not a valid %s", - email: "%s is not a valid %s", - url: "%s is not a valid %s", - hex: "%s is not a valid %s" - }, - string: { - len: "%s must be exactly %s characters", - min: "%s must be at least %s characters", - max: "%s cannot be longer than %s characters", - range: "%s must be between %s and %s characters" - }, - number: { - len: "%s must equal %s", - min: "%s cannot be less than %s", - max: "%s cannot be greater than %s", - range: "%s must be between %s and %s" - }, - array: { - len: "%s must be exactly %s in length", - min: "%s cannot be less than %s in length", - max: "%s cannot be greater than %s in length", - range: "%s must be between %s and %s in length" - }, - pattern: { - mismatch: "%s value %s does not match pattern %s" - }, - clone: function clone2() { - const cloned = JSON.parse(JSON.stringify(this)); - cloned.clone = this.clone; - return cloned; - } - }; - } - const messages = newMessages(); - function Schema(descriptor) { - this.rules = null; - this._messages = messages; - this.define(descriptor); - } - Schema.prototype = { - messages: function messages2(_messages) { - if (_messages) { - this._messages = deepMerge$2(newMessages(), _messages); - } - return this._messages; - }, - define: function define(rules2) { - if (!rules2) { - throw new Error("Cannot configure a schema with no rules"); - } - if (typeof rules2 !== "object" || Array.isArray(rules2)) { - throw new Error("Rules must be an object"); - } - this.rules = {}; - let z2; - let item; - for (z2 in rules2) { - if (rules2.hasOwnProperty(z2)) { - item = rules2[z2]; - this.rules[z2] = Array.isArray(item) ? item : [item]; - } - } - }, - validate: function validate(source_, o2, oc) { - const _this = this; - if (o2 === void 0) { - o2 = {}; - } - if (oc === void 0) { - oc = function oc2() { - }; - } - let source = source_; - let options = o2; - let callback = oc; - if (typeof options === "function") { - callback = options; - options = {}; - } - if (!this.rules || Object.keys(this.rules).length === 0) { - if (callback) { - callback(); - } - return Promise.resolve(); - } - function complete(results) { - let i2; - let errors = []; - let fields = {}; - function add(e2) { - if (Array.isArray(e2)) { - let _errors; - errors = (_errors = errors).concat.apply(_errors, e2); - } else { - errors.push(e2); - } - } - for (i2 = 0; i2 < results.length; i2++) { - add(results[i2]); - } - if (!errors.length) { - errors = null; - fields = null; - } else { - fields = convertFieldsError(errors); - } - callback(errors, fields); - } - if (options.messages) { - let messages$1 = this.messages(); - if (messages$1 === messages) { - messages$1 = newMessages(); - } - deepMerge$2(messages$1, options.messages); - options.messages = messages$1; - } else { - options.messages = this.messages(); - } - let arr; - let value; - const series = {}; - const keys = options.keys || Object.keys(this.rules); - keys.forEach((z2) => { - arr = _this.rules[z2]; - value = source[z2]; - arr.forEach((r2) => { - let rule = r2; - if (typeof rule.transform === "function") { - if (source === source_) { - source = { ...source }; - } - value = source[z2] = rule.transform(value); - } - if (typeof rule === "function") { - rule = { - validator: rule - }; - } else { - rule = { ...rule }; - } - rule.validator = _this.getValidationMethod(rule); - rule.field = z2; - rule.fullField = rule.fullField || z2; - rule.type = _this.getType(rule); - if (!rule.validator) { - return; - } - series[z2] = series[z2] || []; - series[z2].push({ - rule, - value, - source, - field: z2 - }); - }); - }); - const errorFields = {}; - return asyncMap(series, options, (data, doIt) => { - const { rule } = data; - let deep = (rule.type === "object" || rule.type === "array") && (typeof rule.fields === "object" || typeof rule.defaultField === "object"); - deep = deep && (rule.required || !rule.required && data.value); - rule.field = data.field; - function addFullfield(key, schema) { - return { ...schema, fullField: `${rule.fullField}.${key}` }; - } - function cb(e2) { - if (e2 === void 0) { - e2 = []; - } - let errors = e2; - if (!Array.isArray(errors)) { - errors = [errors]; - } - if (!options.suppressWarning && errors.length) { - Schema.warning("async-validator:", errors); - } - if (errors.length && rule.message) { - errors = [].concat(rule.message); - } - errors = errors.map(complementError(rule)); - if (options.first && errors.length) { - errorFields[rule.field] = 1; - return doIt(errors); - } - if (!deep) { - doIt(errors); - } else { - if (rule.required && !data.value) { - if (rule.message) { - errors = [].concat(rule.message).map(complementError(rule)); - } else if (options.error) { - errors = [options.error(rule, format(options.messages.required, rule.field))]; - } else { - errors = []; - } - return doIt(errors); - } - let fieldsSchema = {}; - if (rule.defaultField) { - for (const k in data.value) { - if (data.value.hasOwnProperty(k)) { - fieldsSchema[k] = rule.defaultField; - } - } - } - fieldsSchema = { ...fieldsSchema, ...data.rule.fields }; - for (const f2 in fieldsSchema) { - if (fieldsSchema.hasOwnProperty(f2)) { - const fieldSchema = Array.isArray(fieldsSchema[f2]) ? fieldsSchema[f2] : [fieldsSchema[f2]]; - fieldsSchema[f2] = fieldSchema.map(addFullfield.bind(null, f2)); - } - } - const schema = new Schema(fieldsSchema); - schema.messages(options.messages); - if (data.rule.options) { - data.rule.options.messages = options.messages; - data.rule.options.error = options.error; - } - schema.validate(data.value, data.rule.options || options, (errs) => { - const finalErrors = []; - if (errors && errors.length) { - finalErrors.push.apply(finalErrors, errors); - } - if (errs && errs.length) { - finalErrors.push.apply(finalErrors, errs); - } - doIt(finalErrors.length ? finalErrors : null); - }); - } - } - let res; - if (rule.asyncValidator) { - res = rule.asyncValidator(rule, data.value, cb, data.source, options); - } else if (rule.validator) { - res = rule.validator(rule, data.value, cb, data.source, options); - if (res === true) { - cb(); - } else if (res === false) { - cb(rule.message || `${rule.field} fails`); - } else if (res instanceof Array) { - cb(res); - } else if (res instanceof Error) { - cb(res.message); - } - } - if (res && res.then) { - res.then(() => cb(), (e2) => cb(e2)); - } - }, (results) => { - complete(results); - }); - }, - getType: function getType(rule) { - if (rule.type === void 0 && rule.pattern instanceof RegExp) { - rule.type = "pattern"; - } - if (typeof rule.validator !== "function" && rule.type && !validators.hasOwnProperty(rule.type)) { - throw new Error(format("Unknown rule type %s", rule.type)); - } - return rule.type || "string"; - }, - getValidationMethod: function getValidationMethod(rule) { - if (typeof rule.validator === "function") { - return rule.validator; - } - const keys = Object.keys(rule); - const messageIndex = keys.indexOf("message"); - if (messageIndex !== -1) { - keys.splice(messageIndex, 1); - } - if (keys.length === 1 && keys[0] === "required") { - return validators.required; - } - return validators[this.getType(rule)] || false; - } - }; - Schema.register = function register(type2, validator) { - if (typeof validator !== "function") { - throw new Error("Cannot register a validator by type, validator is not a function"); - } - validators[type2] = validator; - }; - Schema.warning = warning; - Schema.messages = messages; - Schema.warning = function() { - }; - const _sfc_main$i = { - name: "u-form", - mixins: [mpMixin, mixin, props$2], - provide() { - return { - uForm: this - }; - }, - data() { - return { - formRules: {}, - // 规则校验器 - validator: {}, - // 原始的model快照,用于resetFields方法重置表单时使用 - originalModel: null - }; - }, - watch: { - // 监听规则的变化 - rules: { - immediate: true, - handler(n2) { - this.setRules(n2); - } - }, - // 监听属性的变化,通知子组件u-form-item重新获取信息 - propsChange(n2) { - var _a; - if ((_a = this.children) == null ? void 0 : _a.length) { - this.children.map((child) => { - typeof child.updateParentData == "function" && child.updateParentData(); - }); - } - }, - // 监听model的初始值作为重置表单的快照 - model: { - immediate: true, - handler(n2) { - if (!this.originalModel) { - this.originalModel = uni.$u.deepClone(n2); - } - } - } - }, - computed: { - propsChange() { - return [ - this.errorType, - this.borderBottom, - this.labelPosition, - this.labelWidth, - this.labelAlign, - this.labelStyle - ]; - } - }, - created() { - this.children = []; - }, - methods: { - // 手动设置校验的规则,如果规则中有函数的话,微信小程序中会过滤掉,所以只能手动调用设置规则 - setRules(rules2) { - if (Object.keys(rules2).length === 0) - return; - if (Object.keys(this.model).length === 0) { - uni.$u.error("设置rules,model必须设置!如果已经设置,请刷新页面。"); - return; - } - this.formRules = rules2; - this.validator = new Schema(rules2); - }, - // 清空所有u-form-item组件的内容,本质上是调用了u-form-item组件中的resetField()方法 - resetFields() { - this.resetModel(); - }, - // 重置model为初始值的快照 - resetModel(obj) { - this.children.map((child) => { - const prop = child == null ? void 0 : child.prop; - const value = uni.$u.getProperty(this.originalModel, prop); - uni.$u.setProperty(this.model, prop, value); - }); - }, - // 清空校验结果 - clearValidate(props2) { - props2 = [].concat(props2); - this.children.map((child) => { - if (props2[0] === void 0 || props2.includes(child.prop)) { - child.message = null; - } - }); - }, - // 对部分表单字段进行校验 - async validateField(value, callback, event = null) { - this.$nextTick(() => { - const errorsRes = []; - value = [].concat(value); - this.children.map((child) => { - const childErrors = []; - if (value.includes(child.prop)) { - const propertyVal = uni.$u.getProperty( - this.model, - child.prop - ); - const propertyChain = child.prop.split("."); - const propertyName = propertyChain[propertyChain.length - 1]; - const rule = this.formRules[child.prop]; - if (!rule) - return; - const rules2 = [].concat(rule); - for (let i2 = 0; i2 < rules2.length; i2++) { - const ruleItem = rules2[i2]; - const trigger = [].concat(ruleItem == null ? void 0 : ruleItem.trigger); - if (event && !trigger.includes(event)) - continue; - const validator = new Schema({ - [propertyName]: ruleItem - }); - validator.validate( - { - [propertyName]: propertyVal - }, - (errors, fields) => { - var _a; - if (uni.$u.test.array(errors)) { - errorsRes.push(...errors); - childErrors.push(...errors); - } - child.message = ((_a = childErrors[0]) == null ? void 0 : _a.message) ? childErrors[0].message : null; - } - ); - } - } - }); - typeof callback === "function" && callback(errorsRes); - }); - }, - // 校验全部数据 - validate(callback) { - if (Object.keys(this.formRules).length === 0) { - uni.$u.error("未设置rules,请看文档说明!如果已经设置,请刷新页面。"); - return; - } - return new Promise((resolve, reject) => { - this.$nextTick(() => { - const formItemProps = this.children.map( - (item) => item.prop - ); - this.validateField(formItemProps, (errors) => { - if (errors.length) { - this.errorType === "toast" && uni.$u.toast(errors[0].message); - reject(errors); - } else { - resolve(true); - } - }); - }); - }); - } - } - }; - function _sfc_render$7(_ctx, _cache, $props, $setup, $data, $options) { - return vue.openBlock(), vue.createElementBlock("view", { class: "u-form" }, [ - vue.renderSlot(_ctx.$slots, "default") - ]); - } - const __easycom_3 = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["render", _sfc_render$7], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-form/u-form.vue"]]); - let uplodeImg = () => { - return new Promise((reslove, reject) => { - uni.chooseImage({ - count: 1, - sizeType: ["compressed"], - sourceType: ["album"], - success: (res) => { - var imageSrc = res.tempFilePaths[0]; - uni.showLoading({ - title: "上传中", - duration: 1e3 - }); - uni.uploadFile({ - url: "http://ceshi-suyuan.lihaink.cn/api/user/imageUpload", - filePath: imageSrc, - name: "file", - // formData: { - // 'user': 'test' - // }, - success: (res2) => { - uni.showToast({ - title: "上传成功", - icon: "success", - duration: 1e3 - }); - reslove(JSON.parse(res2.data)); - }, - fail: (err) => { - reject(err); - uni.showToast({ - title: "检查网络", - duration: 1e3 - }); - } - }); - } - }); - }); - }; - const _sfc_main$h = { - __name: "harvest", - setup(__props) { - const form = vue.ref(null); - const formData = vue.reactive({ - breed: "" - }); - const rules2 = { - "formData.breed": { - type: "string", - required: true, - message: "请填写姓名", - trigger: ["blur", "change"] - } - }; - const addFn = () => { - form.value.validate().then((res) => { - formatAppLog("log", "at pages/husbandryForm/harvest.vue:95", 6); - }).catch((errors) => { - uni.$u.toast("校验失败"); - }); - console.log(); - return; - }; - const updateImgFn = async () => { - if (mode.value == "detail") - return; - let res = await uplodeImg(); - formData.buy_cert = res.data.image; - }; - const mode = vue.ref("add"); - onLoad((options) => { - if (options.task_id) { - mode.value = "detail"; - } - }); - return (_ctx, _cache) => { - const _component_up_input = resolveEasycom(vue.resolveDynamicComponent("up-input"), __easycom_0$3); - const _component_u_form_item = resolveEasycom(vue.resolveDynamicComponent("u-form-item"), __easycom_1$1); - const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$7); - const _component_u__textarea = resolveEasycom(vue.resolveDynamicComponent("u--textarea"), __easycom_3$1); - const _component_u__form = resolveEasycom(vue.resolveDynamicComponent("u--form"), __easycom_3); - return vue.openBlock(), vue.createElementBlock( - vue.Fragment, - null, - [ - vue.createCommentVNode(" 播种 "), - vue.createElementVNode("view", { class: "content" }, [ - vue.createElementVNode("view", { class: "card" }, [ - vue.createVNode(_component_u__form, { - labelPosition: "top", - labelWidth: "100", - model: formData, - rules: rules2, - ref_key: "form", - ref: form - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u_form_item, { - label: "作业地块", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业地块", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "作业面积", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业面积", - disabled: mode.value == "detail", - type: "number", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "参与人", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入参与人", - disabled: mode.value == "detail", - type: "number", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode("view", { class: "card-li-tit" }, " 收获图片 "), - vue.createElementVNode("view", { class: "code-img" }, [ - vue.createElementVNode("view", { - class: "", - onClick: updateImgFn - }, [ - formData.buy_cert ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "" - }, [ - vue.createVNode(_component_u__image, { - src: formData.buy_cert, - width: "637.85rpx", - height: "350.47rpx" - }, null, 8, ["src"]) - ])) : (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "carime-icon" - }, [ - vue.createVNode(_component_u__image, { - src: "/static/img/DJSC.png", - width: "91.12rpx", - height: "91.12rpx" - }), - vue.createElementVNode("view", { class: "" }, " 点击上传图片 ") - ])) - ]) - ]) - ]), - vue.createVNode(_component_u_form_item, { - label: "备注", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u__textarea, { - disabled: mode.value == "detail", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => formData.breed = $event), - placeholder: "请输入内容" - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }) - ]), - _: 1 - /* STABLE */ - }, 8, ["model"]) - ]), - mode.value == "add" ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "confirm" - }, [ - vue.createElementVNode("view", { - class: "confirm-btn", - style: { "color": "white", "background-color": "#0AA565" }, - onClick: addFn - }, " 完成添加 ") - ])) : vue.createCommentVNode("v-if", true) - ]) - ], - 2112 - /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */ - ); - }; - } - }; - const PagesHusbandryFormHarvest = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-4ac40caa"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/husbandryForm/harvest.vue"]]); - var calendar = { - /** - * 农历1900-2100的润大小信息表 - * @Array Of Property - * @return Hex - */ - lunarInfo: [ - 19416, - 19168, - 42352, - 21717, - 53856, - 55632, - 91476, - 22176, - 39632, - 21970, - // 1900-1909 - 19168, - 42422, - 42192, - 53840, - 119381, - 46400, - 54944, - 44450, - 38320, - 84343, - // 1910-1919 - 18800, - 42160, - 46261, - 27216, - 27968, - 109396, - 11104, - 38256, - 21234, - 18800, - // 1920-1929 - 25958, - 54432, - 59984, - 28309, - 23248, - 11104, - 100067, - 37600, - 116951, - 51536, - // 1930-1939 - 54432, - 120998, - 46416, - 22176, - 107956, - 9680, - 37584, - 53938, - 43344, - 46423, - // 1940-1949 - 27808, - 46416, - 86869, - 19872, - 42416, - 83315, - 21168, - 43432, - 59728, - 27296, - // 1950-1959 - 44710, - 43856, - 19296, - 43748, - 42352, - 21088, - 62051, - 55632, - 23383, - 22176, - // 1960-1969 - 38608, - 19925, - 19152, - 42192, - 54484, - 53840, - 54616, - 46400, - 46752, - 103846, - // 1970-1979 - 38320, - 18864, - 43380, - 42160, - 45690, - 27216, - 27968, - 44870, - 43872, - 38256, - // 1980-1989 - 19189, - 18800, - 25776, - 29859, - 59984, - 27480, - 23232, - 43872, - 38613, - 37600, - // 1990-1999 - 51552, - 55636, - 54432, - 55888, - 30034, - 22176, - 43959, - 9680, - 37584, - 51893, - // 2000-2009 - 43344, - 46240, - 47780, - 44368, - 21977, - 19360, - 42416, - 86390, - 21168, - 43312, - // 2010-2019 - 31060, - 27296, - 44368, - 23378, - 19296, - 42726, - 42208, - 53856, - 60005, - 54576, - // 2020-2029 - 23200, - 30371, - 38608, - 19195, - 19152, - 42192, - 118966, - 53840, - 54560, - 56645, - // 2030-2039 - 46496, - 22224, - 21938, - 18864, - 42359, - 42160, - 43600, - 111189, - 27936, - 44448, - // 2040-2049 - /** Add By JJonline@JJonline.Cn**/ - 84835, - 37744, - 18936, - 18800, - 25776, - 92326, - 59984, - 27424, - 108228, - 43744, - // 2050-2059 - 41696, - 53987, - 51552, - 54615, - 54432, - 55888, - 23893, - 22176, - 42704, - 21972, - // 2060-2069 - 21200, - 43448, - 43344, - 46240, - 46758, - 44368, - 21920, - 43940, - 42416, - 21168, - // 2070-2079 - 45683, - 26928, - 29495, - 27296, - 44368, - 84821, - 19296, - 42352, - 21732, - 53600, - // 2080-2089 - 59752, - 54560, - 55968, - 92838, - 22224, - 19168, - 43476, - 41680, - 53584, - 62034, - // 2090-2099 - 54560 - ], - // 2100 - /** - * 公历每个月份的天数普通表 - * @Array Of Property - * @return Number - */ - solarMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31], - /** - * 天干地支之天干速查表 - * @Array Of Property trans["甲","乙","丙","丁","戊","己","庚","辛","壬","癸"] - * @return Cn string - */ - Gan: ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"], - /** - * 天干地支之地支速查表 - * @Array Of Property - * @trans["子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"] - * @return Cn string - */ - Zhi: ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"], - /** - * 天干地支之地支速查表<=>生肖 - * @Array Of Property - * @trans["鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"] - * @return Cn string - */ - Animals: ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"], - /** - * 24节气速查表 - * @Array Of Property - * @trans["小寒","大寒","立春","雨水","惊蛰","春分","清明","谷雨","立夏","小满","芒种","夏至","小暑","大暑","立秋","处暑","白露","秋分","寒露","霜降","立冬","小雪","大雪","冬至"] - * @return Cn string - */ - solarTerm: ["小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至"], - /** - * 1900-2100各年的24节气日期速查表 - * @Array Of Property - * @return 0x string For splice - */ - sTermInfo: [ - "9778397bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf97c3598082c95f8c965cc920f", - "97bd0b06bdb0722c965ce1cfcc920f", - "b027097bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf97c359801ec95f8c965cc920f", - "97bd0b06bdb0722c965ce1cfcc920f", - "b027097bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf97c359801ec95f8c965cc920f", - "97bd0b06bdb0722c965ce1cfcc920f", - "b027097bd097c36b0b6fc9274c91aa", - "9778397bd19801ec9210c965cc920e", - "97b6b97bd19801ec95f8c965cc920f", - "97bd09801d98082c95f8e1cfcc920f", - "97bd097bd097c36b0b6fc9210c8dc2", - "9778397bd197c36c9210c9274c91aa", - "97b6b97bd19801ec95f8c965cc920e", - "97bd09801d98082c95f8e1cfcc920f", - "97bd097bd097c36b0b6fc9210c8dc2", - "9778397bd097c36c9210c9274c91aa", - "97b6b97bd19801ec95f8c965cc920e", - "97bcf97c3598082c95f8e1cfcc920f", - "97bd097bd097c36b0b6fc9210c8dc2", - "9778397bd097c36c9210c9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf97c3598082c95f8c965cc920f", - "97bd097bd097c35b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf97c3598082c95f8c965cc920f", - "97bd097bd097c35b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf97c359801ec95f8c965cc920f", - "97bd097bd097c35b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf97c359801ec95f8c965cc920f", - "97bd097bd097c35b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf97c359801ec95f8c965cc920f", - "97bd097bd07f595b0b6fc920fb0722", - "9778397bd097c36b0b6fc9210c8dc2", - "9778397bd19801ec9210c9274c920e", - "97b6b97bd19801ec95f8c965cc920f", - "97bd07f5307f595b0b0bc920fb0722", - "7f0e397bd097c36b0b6fc9210c8dc2", - "9778397bd097c36c9210c9274c920e", - "97b6b97bd19801ec95f8c965cc920f", - "97bd07f5307f595b0b0bc920fb0722", - "7f0e397bd097c36b0b6fc9210c8dc2", - "9778397bd097c36c9210c9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bd07f1487f595b0b0bc920fb0722", - "7f0e397bd097c36b0b6fc9210c8dc2", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf7f1487f595b0b0bb0b6fb0722", - "7f0e397bd097c35b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf7f1487f595b0b0bb0b6fb0722", - "7f0e397bd097c35b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf7f1487f531b0b0bb0b6fb0722", - "7f0e397bd097c35b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c965cc920e", - "97bcf7f1487f531b0b0bb0b6fb0722", - "7f0e397bd07f595b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b97bd19801ec9210c9274c920e", - "97bcf7f0e47f531b0b0bb0b6fb0722", - "7f0e397bd07f595b0b0bc920fb0722", - "9778397bd097c36b0b6fc9210c91aa", - "97b6b97bd197c36c9210c9274c920e", - "97bcf7f0e47f531b0b0bb0b6fb0722", - "7f0e397bd07f595b0b0bc920fb0722", - "9778397bd097c36b0b6fc9210c8dc2", - "9778397bd097c36c9210c9274c920e", - "97b6b7f0e47f531b0723b0b6fb0722", - "7f0e37f5307f595b0b0bc920fb0722", - "7f0e397bd097c36b0b6fc9210c8dc2", - "9778397bd097c36b0b70c9274c91aa", - "97b6b7f0e47f531b0723b0b6fb0721", - "7f0e37f1487f595b0b0bb0b6fb0722", - "7f0e397bd097c35b0b6fc9210c8dc2", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f595b0b0bb0b6fb0722", - "7f0e397bd097c35b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f531b0b0bb0b6fb0722", - "7f0e397bd097c35b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f531b0b0bb0b6fb0722", - "7f0e397bd097c35b0b6fc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f531b0b0bb0b6fb0722", - "7f0e397bd07f595b0b0bc920fb0722", - "9778397bd097c36b0b6fc9274c91aa", - "97b6b7f0e47f531b0723b0787b0721", - "7f0e27f0e47f531b0b0bb0b6fb0722", - "7f0e397bd07f595b0b0bc920fb0722", - "9778397bd097c36b0b6fc9210c91aa", - "97b6b7f0e47f149b0723b0787b0721", - "7f0e27f0e47f531b0723b0b6fb0722", - "7f0e397bd07f595b0b0bc920fb0722", - "9778397bd097c36b0b6fc9210c8dc2", - "977837f0e37f149b0723b0787b0721", - "7f07e7f0e47f531b0723b0b6fb0722", - "7f0e37f5307f595b0b0bc920fb0722", - "7f0e397bd097c35b0b6fc9210c8dc2", - "977837f0e37f14998082b0787b0721", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e37f1487f595b0b0bb0b6fb0722", - "7f0e397bd097c35b0b6fc9210c8dc2", - "977837f0e37f14998082b0787b06bd", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f531b0b0bb0b6fb0722", - "7f0e397bd097c35b0b6fc920fb0722", - "977837f0e37f14998082b0787b06bd", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f531b0b0bb0b6fb0722", - "7f0e397bd097c35b0b6fc920fb0722", - "977837f0e37f14998082b0787b06bd", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f531b0b0bb0b6fb0722", - "7f0e397bd07f595b0b0bc920fb0722", - "977837f0e37f14998082b0787b06bd", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f531b0b0bb0b6fb0722", - "7f0e397bd07f595b0b0bc920fb0722", - "977837f0e37f14998082b0787b06bd", - "7f07e7f0e47f149b0723b0787b0721", - "7f0e27f0e47f531b0b0bb0b6fb0722", - "7f0e397bd07f595b0b0bc920fb0722", - "977837f0e37f14998082b0723b06bd", - "7f07e7f0e37f149b0723b0787b0721", - "7f0e27f0e47f531b0723b0b6fb0722", - "7f0e397bd07f595b0b0bc920fb0722", - "977837f0e37f14898082b0723b02d5", - "7ec967f0e37f14998082b0787b0721", - "7f07e7f0e47f531b0723b0b6fb0722", - "7f0e37f1487f595b0b0bb0b6fb0722", - "7f0e37f0e37f14898082b0723b02d5", - "7ec967f0e37f14998082b0787b0721", - "7f07e7f0e47f531b0723b0b6fb0722", - "7f0e37f1487f531b0b0bb0b6fb0722", - "7f0e37f0e37f14898082b0723b02d5", - "7ec967f0e37f14998082b0787b06bd", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e37f1487f531b0b0bb0b6fb0722", - "7f0e37f0e37f14898082b072297c35", - "7ec967f0e37f14998082b0787b06bd", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f531b0b0bb0b6fb0722", - "7f0e37f0e37f14898082b072297c35", - "7ec967f0e37f14998082b0787b06bd", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f531b0b0bb0b6fb0722", - "7f0e37f0e366aa89801eb072297c35", - "7ec967f0e37f14998082b0787b06bd", - "7f07e7f0e47f149b0723b0787b0721", - "7f0e27f1487f531b0b0bb0b6fb0722", - "7f0e37f0e366aa89801eb072297c35", - "7ec967f0e37f14998082b0723b06bd", - "7f07e7f0e47f149b0723b0787b0721", - "7f0e27f0e47f531b0723b0b6fb0722", - "7f0e37f0e366aa89801eb072297c35", - "7ec967f0e37f14998082b0723b06bd", - "7f07e7f0e37f14998083b0787b0721", - "7f0e27f0e47f531b0723b0b6fb0722", - "7f0e37f0e366aa89801eb072297c35", - "7ec967f0e37f14898082b0723b02d5", - "7f07e7f0e37f14998082b0787b0721", - "7f07e7f0e47f531b0723b0b6fb0722", - "7f0e36665b66aa89801e9808297c35", - "665f67f0e37f14898082b0723b02d5", - "7ec967f0e37f14998082b0787b0721", - "7f07e7f0e47f531b0723b0b6fb0722", - "7f0e36665b66a449801e9808297c35", - "665f67f0e37f14898082b0723b02d5", - "7ec967f0e37f14998082b0787b06bd", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e36665b66a449801e9808297c35", - "665f67f0e37f14898082b072297c35", - "7ec967f0e37f14998082b0787b06bd", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e26665b66a449801e9808297c35", - "665f67f0e37f1489801eb072297c35", - "7ec967f0e37f14998082b0787b06bd", - "7f07e7f0e47f531b0723b0b6fb0721", - "7f0e27f1487f531b0b0bb0b6fb0722" - ], - /** - * 数字转中文速查表 - * @Array Of Property - * @trans ['日','一','二','三','四','五','六','七','八','九','十'] - * @return Cn string - */ - nStr1: ["日", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"], - /** - * 日期转农历称呼速查表 - * @Array Of Property - * @trans ['初','十','廿','卅'] - * @return Cn string - */ - nStr2: ["初", "十", "廿", "卅"], - /** - * 月份转农历称呼速查表 - * @Array Of Property - * @trans ['正','一','二','三','四','五','六','七','八','九','十','冬','腊'] - * @return Cn string - */ - nStr3: ["正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "冬", "腊"], - /** - * 返回农历y年一整年的总天数 - * @param lunar Year - * @return Number - * @eg:var count = calendar.lYearDays(1987) ;//count=387 - */ - lYearDays: function(y2) { - var i2; - var sum = 348; - for (i2 = 32768; i2 > 8; i2 >>= 1) { - sum += this.lunarInfo[y2 - 1900] & i2 ? 1 : 0; - } - return sum + this.leapDays(y2); - }, - /** - * 返回农历y年闰月是哪个月;若y年没有闰月 则返回0 - * @param lunar Year - * @return Number (0-12) - * @eg:var leapMonth = calendar.leapMonth(1987) ;//leapMonth=6 - */ - leapMonth: function(y2) { - return this.lunarInfo[y2 - 1900] & 15; - }, - /** - * 返回农历y年闰月的天数 若该年没有闰月则返回0 - * @param lunar Year - * @return Number (0、29、30) - * @eg:var leapMonthDay = calendar.leapDays(1987) ;//leapMonthDay=29 - */ - leapDays: function(y2) { - if (this.leapMonth(y2)) { - return this.lunarInfo[y2 - 1900] & 65536 ? 30 : 29; - } - return 0; - }, - /** - * 返回农历y年m月(非闰月)的总天数,计算m为闰月时的天数请使用leapDays方法 - * @param lunar Year - * @return Number (-1、29、30) - * @eg:var MonthDay = calendar.monthDays(1987,9) ;//MonthDay=29 - */ - monthDays: function(y2, m2) { - if (m2 > 12 || m2 < 1) { - return -1; - } - return this.lunarInfo[y2 - 1900] & 65536 >> m2 ? 30 : 29; - }, - /** - * 返回公历(!)y年m月的天数 - * @param solar Year - * @return Number (-1、28、29、30、31) - * @eg:var solarMonthDay = calendar.leapDays(1987) ;//solarMonthDay=30 - */ - solarDays: function(y2, m2) { - if (m2 > 12 || m2 < 1) { - return -1; - } - var ms2 = m2 - 1; - if (ms2 == 1) { - return y2 % 4 == 0 && y2 % 100 != 0 || y2 % 400 == 0 ? 29 : 28; - } else { - return this.solarMonth[ms2]; - } - }, - /** - * 农历年份转换为干支纪年 - * @param lYear 农历年的年份数 - * @return Cn string - */ - toGanZhiYear: function(lYear) { - var ganKey = (lYear - 3) % 10; - var zhiKey = (lYear - 3) % 12; - if (ganKey == 0) - ganKey = 10; - if (zhiKey == 0) - zhiKey = 12; - return this.Gan[ganKey - 1] + this.Zhi[zhiKey - 1]; - }, - /** - * 公历月、日判断所属星座 - * @param cMonth [description] - * @param cDay [description] - * @return Cn string - */ - toAstro: function(cMonth, cDay) { - var s2 = "魔羯水瓶双鱼白羊金牛双子巨蟹狮子处女天秤天蝎射手魔羯"; - var arr = [20, 19, 21, 21, 21, 22, 23, 23, 23, 23, 22, 22]; - return s2.substr(cMonth * 2 - (cDay < arr[cMonth - 1] ? 2 : 0), 2) + "座"; - }, - /** - * 传入offset偏移量返回干支 - * @param offset 相对甲子的偏移量 - * @return Cn string - */ - toGanZhi: function(offset) { - return this.Gan[offset % 10] + this.Zhi[offset % 12]; - }, - /** - * 传入公历(!)y年获得该年第n个节气的公历日期 - * @param y公历年(1900-2100);n二十四节气中的第几个节气(1~24);从n=1(小寒)算起 - * @return day Number - * @eg:var _24 = calendar.getTerm(1987,3) ;//_24=4;意即1987年2月4日立春 - */ - getTerm: function(y2, n2) { - if (y2 < 1900 || y2 > 2100) { - return -1; - } - if (n2 < 1 || n2 > 24) { - return -1; - } - var _table = this.sTermInfo[y2 - 1900]; - var _info = [ - parseInt("0x" + _table.substr(0, 5)).toString(), - parseInt("0x" + _table.substr(5, 5)).toString(), - parseInt("0x" + _table.substr(10, 5)).toString(), - parseInt("0x" + _table.substr(15, 5)).toString(), - parseInt("0x" + _table.substr(20, 5)).toString(), - parseInt("0x" + _table.substr(25, 5)).toString() - ]; - var _calday = [ - _info[0].substr(0, 1), - _info[0].substr(1, 2), - _info[0].substr(3, 1), - _info[0].substr(4, 2), - _info[1].substr(0, 1), - _info[1].substr(1, 2), - _info[1].substr(3, 1), - _info[1].substr(4, 2), - _info[2].substr(0, 1), - _info[2].substr(1, 2), - _info[2].substr(3, 1), - _info[2].substr(4, 2), - _info[3].substr(0, 1), - _info[3].substr(1, 2), - _info[3].substr(3, 1), - _info[3].substr(4, 2), - _info[4].substr(0, 1), - _info[4].substr(1, 2), - _info[4].substr(3, 1), - _info[4].substr(4, 2), - _info[5].substr(0, 1), - _info[5].substr(1, 2), - _info[5].substr(3, 1), - _info[5].substr(4, 2) - ]; - return parseInt(_calday[n2 - 1]); - }, - /** - * 传入农历数字月份返回汉语通俗表示法 - * @param lunar month - * @return Cn string - * @eg:var cnMonth = calendar.toChinaMonth(12) ;//cnMonth='腊月' - */ - toChinaMonth: function(m2) { - if (m2 > 12 || m2 < 1) { - return -1; - } - var s2 = this.nStr3[m2 - 1]; - s2 += "月"; - return s2; - }, - /** - * 传入农历日期数字返回汉字表示法 - * @param lunar day - * @return Cn string - * @eg:var cnDay = calendar.toChinaDay(21) ;//cnMonth='廿一' - */ - toChinaDay: function(d2) { - var s2; - switch (d2) { - case 10: - s2 = "初十"; - break; - case 20: - s2 = "二十"; - break; - case 30: - s2 = "三十"; - break; - default: - s2 = this.nStr2[Math.floor(d2 / 10)]; - s2 += this.nStr1[d2 % 10]; - } - return s2; - }, - /** - * 年份转生肖[!仅能大致转换] => 精确划分生肖分界线是“立春” - * @param y year - * @return Cn string - * @eg:var animal = calendar.getAnimal(1987) ;//animal='兔' - */ - getAnimal: function(y2) { - return this.Animals[(y2 - 4) % 12]; - }, - /** - * 传入阳历年月日获得详细的公历、农历object信息 <=>JSON - * @param y solar year - * @param m solar month - * @param d solar day - * @return JSON object - * @eg:__f__('log','at uni_modules/uni-calendar/components/uni-calendar/calendar.js:381',calendar.solar2lunar(1987,11,01)); - */ - solar2lunar: function(y2, m2, d2) { - if (y2 < 1900 || y2 > 2100) { - return -1; - } - if (y2 == 1900 && m2 == 1 && d2 < 31) { - return -1; - } - if (!y2) { - var objDate = /* @__PURE__ */ new Date(); - } else { - var objDate = new Date(y2, parseInt(m2) - 1, d2); - } - var i2; - var leap = 0; - var temp = 0; - var y2 = objDate.getFullYear(); - var m2 = objDate.getMonth() + 1; - var d2 = objDate.getDate(); - var offset = (Date.UTC(objDate.getFullYear(), objDate.getMonth(), objDate.getDate()) - Date.UTC(1900, 0, 31)) / 864e5; - for (i2 = 1900; i2 < 2101 && offset > 0; i2++) { - temp = this.lYearDays(i2); - offset -= temp; - } - if (offset < 0) { - offset += temp; - i2--; - } - var isTodayObj = /* @__PURE__ */ new Date(); - var isToday = false; - if (isTodayObj.getFullYear() == y2 && isTodayObj.getMonth() + 1 == m2 && isTodayObj.getDate() == d2) { - isToday = true; - } - var nWeek = objDate.getDay(); - var cWeek = this.nStr1[nWeek]; - if (nWeek == 0) { - nWeek = 7; - } - var year = i2; - var leap = this.leapMonth(i2); - var isLeap = false; - for (i2 = 1; i2 < 13 && offset > 0; i2++) { - if (leap > 0 && i2 == leap + 1 && isLeap == false) { - --i2; - isLeap = true; - temp = this.leapDays(year); - } else { - temp = this.monthDays(year, i2); - } - if (isLeap == true && i2 == leap + 1) { - isLeap = false; - } - offset -= temp; - } - if (offset == 0 && leap > 0 && i2 == leap + 1) { - if (isLeap) { - isLeap = false; - } else { - isLeap = true; - --i2; - } - } - if (offset < 0) { - offset += temp; - --i2; - } - var month = i2; - var day = offset + 1; - var sm = m2 - 1; - var gzY = this.toGanZhiYear(year); - var firstNode = this.getTerm(y2, m2 * 2 - 1); - var secondNode = this.getTerm(y2, m2 * 2); - var gzM = this.toGanZhi((y2 - 1900) * 12 + m2 + 11); - if (d2 >= firstNode) { - gzM = this.toGanZhi((y2 - 1900) * 12 + m2 + 12); - } - var isTerm = false; - var Term = null; - if (firstNode == d2) { - isTerm = true; - Term = this.solarTerm[m2 * 2 - 2]; - } - if (secondNode == d2) { - isTerm = true; - Term = this.solarTerm[m2 * 2 - 1]; - } - var dayCyclical = Date.UTC(y2, sm, 1, 0, 0, 0, 0) / 864e5 + 25567 + 10; - var gzD = this.toGanZhi(dayCyclical + d2 - 1); - var astro = this.toAstro(m2, d2); - return { "lYear": year, "lMonth": month, "lDay": day, "Animal": this.getAnimal(year), "IMonthCn": (isLeap ? "闰" : "") + this.toChinaMonth(month), "IDayCn": this.toChinaDay(day), "cYear": y2, "cMonth": m2, "cDay": d2, "gzYear": gzY, "gzMonth": gzM, "gzDay": gzD, "isToday": isToday, "isLeap": isLeap, "nWeek": nWeek, "ncWeek": "星期" + cWeek, "isTerm": isTerm, "Term": Term, "astro": astro }; - }, - /** - * 传入农历年月日以及传入的月份是否闰月获得详细的公历、农历object信息 <=>JSON - * @param y lunar year - * @param m lunar month - * @param d lunar day - * @param isLeapMonth lunar month is leap or not.[如果是农历闰月第四个参数赋值true即可] - * @return JSON object - * @eg:__f__('log','at uni_modules/uni-calendar/components/uni-calendar/calendar.js:500',calendar.lunar2solar(1987,9,10)); - */ - lunar2solar: function(y2, m2, d2, isLeapMonth) { - var isLeapMonth = !!isLeapMonth; - var leapMonth = this.leapMonth(y2); - this.leapDays(y2); - if (isLeapMonth && leapMonth != m2) { - return -1; - } - if (y2 == 2100 && m2 == 12 && d2 > 1 || y2 == 1900 && m2 == 1 && d2 < 31) { - return -1; - } - var day = this.monthDays(y2, m2); - var _day = day; - if (isLeapMonth) { - _day = this.leapDays(y2, m2); - } - if (y2 < 1900 || y2 > 2100 || d2 > _day) { - return -1; - } - var offset = 0; - for (var i2 = 1900; i2 < y2; i2++) { - offset += this.lYearDays(i2); - } - var leap = 0; - var isAdd = false; - for (var i2 = 1; i2 < m2; i2++) { - leap = this.leapMonth(y2); - if (!isAdd) { - if (leap <= i2 && leap > 0) { - offset += this.leapDays(y2); - isAdd = true; - } - } - offset += this.monthDays(y2, i2); - } - if (isLeapMonth) { - offset += day; - } - var stmap = Date.UTC(1900, 1, 30, 0, 0, 0); - var calObj = new Date((offset + d2 - 31) * 864e5 + stmap); - var cY = calObj.getUTCFullYear(); - var cM = calObj.getUTCMonth() + 1; - var cD = calObj.getUTCDate(); - return this.solar2lunar(cY, cM, cD); - } - }; - class Calendar { - constructor({ - date: date2, - selected, - startDate, - endDate, - range: range2 - } = {}) { - this.date = this.getDate(/* @__PURE__ */ new Date()); - this.selected = selected || []; - this.startDate = startDate; - this.endDate = endDate; - this.range = range2; - this.cleanMultipleStatus(); - this.weeks = {}; - } - /** - * 设置日期 - * @param {Object} date - */ - setDate(date2) { - this.selectDate = this.getDate(date2); - this._getWeek(this.selectDate.fullDate); - } - /** - * 清理多选状态 - */ - cleanMultipleStatus() { - this.multipleStatus = { - before: "", - after: "", - data: [] - }; - } - /** - * 重置开始日期 - */ - resetSatrtDate(startDate) { - this.startDate = startDate; - } - /** - * 重置结束日期 - */ - resetEndDate(endDate) { - this.endDate = endDate; - } - /** - * 获取任意时间 - */ - getDate(date2, AddDayCount = 0, str = "day") { - if (!date2) { - date2 = /* @__PURE__ */ new Date(); - } - if (typeof date2 !== "object") { - date2 = date2.replace(/-/g, "/"); - } - const dd = new Date(date2); - switch (str) { - case "day": - dd.setDate(dd.getDate() + AddDayCount); - break; - case "month": - if (dd.getDate() === 31 && AddDayCount > 0) { - dd.setDate(dd.getDate() + AddDayCount); - } else { - const preMonth = dd.getMonth(); - dd.setMonth(preMonth + AddDayCount); - const nextMonth = dd.getMonth(); - if (AddDayCount < 0 && preMonth !== 0 && nextMonth - preMonth > AddDayCount) { - dd.setMonth(nextMonth + (nextMonth - preMonth + AddDayCount)); - } - if (AddDayCount > 0 && nextMonth - preMonth > AddDayCount) { - dd.setMonth(nextMonth - (nextMonth - preMonth - AddDayCount)); - } - } - break; - case "year": - dd.setFullYear(dd.getFullYear() + AddDayCount); - break; - } - const y2 = dd.getFullYear(); - const m2 = dd.getMonth() + 1 < 10 ? "0" + (dd.getMonth() + 1) : dd.getMonth() + 1; - const d2 = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate(); - return { - fullDate: y2 + "-" + m2 + "-" + d2, - year: y2, - month: m2, - date: d2, - day: dd.getDay() - }; - } - /** - * 获取上月剩余天数 - */ - _getLastMonthDays(firstDay, full) { - let dateArr = []; - for (let i2 = firstDay; i2 > 0; i2--) { - const beforeDate = new Date(full.year, full.month - 1, -i2 + 1).getDate(); - dateArr.push({ - date: beforeDate, - month: full.month - 1, - lunar: this.getlunar(full.year, full.month - 1, beforeDate), - disable: true - }); - } - return dateArr; - } - /** - * 获取本月天数 - */ - _currentMonthDys(dateData, full) { - let dateArr = []; - let fullDate = this.date.fullDate; - for (let i2 = 1; i2 <= dateData; i2++) { - let nowDate = full.year + "-" + (full.month < 10 ? full.month : full.month) + "-" + (i2 < 10 ? "0" + i2 : i2); - let isDay = fullDate === nowDate; - let info = this.selected && this.selected.find((item) => { - if (this.dateEqual(nowDate, item.date)) { - return item; - } - }); - let disableBefore = true; - let disableAfter = true; - if (this.startDate) { - disableBefore = this.dateCompare(this.startDate, nowDate); - } - if (this.endDate) { - disableAfter = this.dateCompare(nowDate, this.endDate); - } - let multiples = this.multipleStatus.data; - let checked = false; - let multiplesStatus = -1; - if (this.range) { - if (multiples) { - multiplesStatus = multiples.findIndex((item) => { - return this.dateEqual(item, nowDate); - }); - } - if (multiplesStatus !== -1) { - checked = true; - } - } - let data = { - fullDate: nowDate, - year: full.year, - date: i2, - multiple: this.range ? checked : false, - beforeMultiple: this.dateEqual(this.multipleStatus.before, nowDate), - afterMultiple: this.dateEqual(this.multipleStatus.after, nowDate), - month: full.month, - lunar: this.getlunar(full.year, full.month, i2), - disable: !(disableBefore && disableAfter), - isDay - }; - if (info) { - data.extraInfo = info; - } - dateArr.push(data); - } - return dateArr; - } - /** - * 获取下月天数 - */ - _getNextMonthDays(surplus, full) { - let dateArr = []; - for (let i2 = 1; i2 < surplus + 1; i2++) { - dateArr.push({ - date: i2, - month: Number(full.month) + 1, - lunar: this.getlunar(full.year, Number(full.month) + 1, i2), - disable: true - }); - } - return dateArr; - } - /** - * 获取当前日期详情 - * @param {Object} date - */ - getInfo(date2) { - if (!date2) { - date2 = /* @__PURE__ */ new Date(); - } - const dateInfo = this.canlender.find((item) => item.fullDate === this.getDate(date2).fullDate); - return dateInfo; - } - /** - * 比较时间大小 - */ - dateCompare(startDate, endDate) { - startDate = new Date(startDate.replace("-", "/").replace("-", "/")); - endDate = new Date(endDate.replace("-", "/").replace("-", "/")); - if (startDate <= endDate) { - return true; - } else { - return false; - } - } - /** - * 比较时间是否相等 - */ - dateEqual(before, after) { - before = new Date(before.replace("-", "/").replace("-", "/")); - after = new Date(after.replace("-", "/").replace("-", "/")); - if (before.getTime() - after.getTime() === 0) { - return true; - } else { - return false; - } - } - /** - * 获取日期范围内所有日期 - * @param {Object} begin - * @param {Object} end - */ - geDateAll(begin, end) { - var arr = []; - var ab = begin.split("-"); - var ae2 = end.split("-"); - var db = /* @__PURE__ */ new Date(); - db.setFullYear(ab[0], ab[1] - 1, ab[2]); - var de2 = /* @__PURE__ */ new Date(); - de2.setFullYear(ae2[0], ae2[1] - 1, ae2[2]); - var unixDb = db.getTime() - 24 * 60 * 60 * 1e3; - var unixDe = de2.getTime() - 24 * 60 * 60 * 1e3; - for (var k = unixDb; k <= unixDe; ) { - k = k + 24 * 60 * 60 * 1e3; - arr.push(this.getDate(new Date(parseInt(k))).fullDate); - } - return arr; - } - /** - * 计算阴历日期显示 - */ - getlunar(year, month, date2) { - return calendar.solar2lunar(year, month, date2); - } - /** - * 设置打点 - */ - setSelectInfo(data, value) { - this.selected = value; - this._getWeek(data); - } - /** - * 获取多选状态 - */ - setMultiple(fullDate) { - let { - before, - after - } = this.multipleStatus; - if (!this.range) - return; - if (before && after) { - this.multipleStatus.before = ""; - this.multipleStatus.after = ""; - this.multipleStatus.data = []; - } else { - if (!before) { - this.multipleStatus.before = fullDate; - } else { - this.multipleStatus.after = fullDate; - if (this.dateCompare(this.multipleStatus.before, this.multipleStatus.after)) { - this.multipleStatus.data = this.geDateAll(this.multipleStatus.before, this.multipleStatus.after); - } else { - this.multipleStatus.data = this.geDateAll(this.multipleStatus.after, this.multipleStatus.before); - } - } - } - this._getWeek(fullDate); - } - /** - * 获取每周数据 - * @param {Object} dateData - */ - _getWeek(dateData) { - const { - year, - month - } = this.getDate(dateData); - let firstDay = new Date(year, month - 1, 1).getDay(); - let currentDay = new Date(year, month, 0).getDate(); - let dates = { - lastMonthDays: this._getLastMonthDays(firstDay, this.getDate(dateData)), - // 上个月末尾几天 - currentMonthDys: this._currentMonthDys(currentDay, this.getDate(dateData)), - // 本月天数 - nextMonthDays: [], - // 下个月开始几天 - weeks: [] - }; - let canlender = []; - const surplus = 42 - (dates.lastMonthDays.length + dates.currentMonthDys.length); - dates.nextMonthDays = this._getNextMonthDays(surplus, this.getDate(dateData)); - canlender = canlender.concat(dates.lastMonthDays, dates.currentMonthDys, dates.nextMonthDays); - let weeks = {}; - for (let i2 = 0; i2 < canlender.length; i2++) { - if (i2 % 7 === 0) { - weeks[parseInt(i2 / 7)] = new Array(7); - } - weeks[parseInt(i2 / 7)][i2 % 7] = canlender[i2]; - } - this.canlender = canlender; - this.weeks = weeks; - } - //静态方法 - // static init(date) { - // if (!this.instance) { - // this.instance = new Calendar(date); - // } - // return this.instance; - // } - } - const isObject$1 = (val) => val !== null && typeof val === "object"; - const defaultDelimiters = ["{", "}"]; - class BaseFormatter { - constructor() { - this._caches = /* @__PURE__ */ Object.create(null); - } - interpolate(message, values, delimiters = defaultDelimiters) { - if (!values) { - return [message]; - } - let tokens = this._caches[message]; - if (!tokens) { - tokens = parse(message, delimiters); - this._caches[message] = tokens; - } - return compile(tokens, values); - } - } - const RE_TOKEN_LIST_VALUE = /^(?:\d)+/; - const RE_TOKEN_NAMED_VALUE = /^(?:\w)+/; - function parse(format2, [startDelimiter, endDelimiter]) { - const tokens = []; - let position = 0; - let text = ""; - while (position < format2.length) { - let char = format2[position++]; - if (char === startDelimiter) { - if (text) { - tokens.push({ type: "text", value: text }); - } - text = ""; - let sub = ""; - char = format2[position++]; - while (char !== void 0 && char !== endDelimiter) { - sub += char; - char = format2[position++]; - } - const isClosed = char === endDelimiter; - const type2 = RE_TOKEN_LIST_VALUE.test(sub) ? "list" : isClosed && RE_TOKEN_NAMED_VALUE.test(sub) ? "named" : "unknown"; - tokens.push({ value: sub, type: type2 }); - } else { - text += char; - } - } - text && tokens.push({ type: "text", value: text }); - return tokens; - } - function compile(tokens, values) { - const compiled = []; - let index2 = 0; - const mode = Array.isArray(values) ? "list" : isObject$1(values) ? "named" : "unknown"; - if (mode === "unknown") { - return compiled; - } - while (index2 < tokens.length) { - const token = tokens[index2]; - switch (token.type) { - case "text": - compiled.push(token.value); - break; - case "list": - compiled.push(values[parseInt(token.value, 10)]); - break; - case "named": - if (mode === "named") { - compiled.push(values[token.value]); - } else { - { - console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`); - } - } - break; - case "unknown": - { - console.warn(`Detect 'unknown' type of token!`); - } - break; - } - index2++; - } - return compiled; - } - const LOCALE_ZH_HANS = "zh-Hans"; - const LOCALE_ZH_HANT = "zh-Hant"; - const LOCALE_EN = "en"; - const LOCALE_FR = "fr"; - const LOCALE_ES = "es"; - const hasOwnProperty = Object.prototype.hasOwnProperty; - const hasOwn = (val, key) => hasOwnProperty.call(val, key); - const defaultFormatter = new BaseFormatter(); - function include(str, parts) { - return !!parts.find((part) => str.indexOf(part) !== -1); - } - function startsWith(str, parts) { - return parts.find((part) => str.indexOf(part) === 0); - } - function normalizeLocale(locale, messages2) { - if (!locale) { - return; - } - locale = locale.trim().replace(/_/g, "-"); - if (messages2 && messages2[locale]) { - return locale; - } - locale = locale.toLowerCase(); - if (locale === "chinese") { - return LOCALE_ZH_HANS; - } - if (locale.indexOf("zh") === 0) { - if (locale.indexOf("-hans") > -1) { - return LOCALE_ZH_HANS; - } - if (locale.indexOf("-hant") > -1) { - return LOCALE_ZH_HANT; - } - if (include(locale, ["-tw", "-hk", "-mo", "-cht"])) { - return LOCALE_ZH_HANT; - } - return LOCALE_ZH_HANS; - } - let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES]; - if (messages2 && Object.keys(messages2).length > 0) { - locales = Object.keys(messages2); - } - const lang = startsWith(locale, locales); - if (lang) { - return lang; - } - } - class I18n { - constructor({ locale, fallbackLocale, messages: messages2, watcher, formater }) { - this.locale = LOCALE_EN; - this.fallbackLocale = LOCALE_EN; - this.message = {}; - this.messages = {}; - this.watchers = []; - if (fallbackLocale) { - this.fallbackLocale = fallbackLocale; - } - this.formater = formater || defaultFormatter; - this.messages = messages2 || {}; - this.setLocale(locale || LOCALE_EN); - if (watcher) { - this.watchLocale(watcher); - } - } - setLocale(locale) { - const oldLocale = this.locale; - this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale; - if (!this.messages[this.locale]) { - this.messages[this.locale] = {}; - } - this.message = this.messages[this.locale]; - if (oldLocale !== this.locale) { - this.watchers.forEach((watcher) => { - watcher(this.locale, oldLocale); - }); - } - } - getLocale() { - return this.locale; - } - watchLocale(fn) { - const index2 = this.watchers.push(fn) - 1; - return () => { - this.watchers.splice(index2, 1); - }; - } - add(locale, message, override = true) { - const curMessages = this.messages[locale]; - if (curMessages) { - if (override) { - Object.assign(curMessages, message); - } else { - Object.keys(message).forEach((key) => { - if (!hasOwn(curMessages, key)) { - curMessages[key] = message[key]; - } - }); - } - } else { - this.messages[locale] = message; - } - } - f(message, values, delimiters) { - return this.formater.interpolate(message, values, delimiters).join(""); - } - t(key, locale, values) { - let message = this.message; - if (typeof locale === "string") { - locale = normalizeLocale(locale, this.messages); - locale && (message = this.messages[locale]); - } else { - values = locale; - } - if (!hasOwn(message, key)) { - console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`); - return key; - } - return this.formater.interpolate(message[key], values).join(""); - } - } - function watchAppLocale(appVm, i18n) { - if (appVm.$watchLocale) { - appVm.$watchLocale((newLocale) => { - i18n.setLocale(newLocale); - }); - } else { - appVm.$watch(() => appVm.$locale, (newLocale) => { - i18n.setLocale(newLocale); - }); - } - } - function getDefaultLocale() { - if (typeof uni !== "undefined" && uni.getLocale) { - return uni.getLocale(); - } - if (typeof global !== "undefined" && global.getLocale) { - return global.getLocale(); - } - return LOCALE_EN; - } - function initVueI18n(locale, messages2 = {}, fallbackLocale, watcher) { - if (typeof locale !== "string") { - [locale, messages2] = [ - messages2, - locale - ]; - } - if (typeof locale !== "string") { - locale = getDefaultLocale(); - } - if (typeof fallbackLocale !== "string") { - fallbackLocale = typeof __uniConfig !== "undefined" && __uniConfig.fallbackLocale || LOCALE_EN; - } - const i18n = new I18n({ - locale, - fallbackLocale, - messages: messages2, - watcher - }); - let t2 = (key, values) => { - if (typeof getApp !== "function") { - t2 = function(key2, values2) { - return i18n.t(key2, values2); - }; - } else { - let isWatchedAppLocale = false; - t2 = function(key2, values2) { - const appVm = getApp().$vm; - if (appVm) { - appVm.$locale; - if (!isWatchedAppLocale) { - isWatchedAppLocale = true; - watchAppLocale(appVm, i18n); - } - } - return i18n.t(key2, values2); - }; - } - return t2(key, values); - }; - return { - i18n, - f(message, values, delimiters) { - return i18n.f(message, values, delimiters); - }, - t(key, values) { - return t2(key, values); - }, - add(locale2, message, override = true) { - return i18n.add(locale2, message, override); - }, - watch(fn) { - return i18n.watchLocale(fn); - }, - getLocale() { - return i18n.getLocale(); - }, - setLocale(newLocale) { - return i18n.setLocale(newLocale); - } - }; - } - const en = { - "uni-calender.ok": "ok", - "uni-calender.cancel": "cancel", - "uni-calender.today": "today", - "uni-calender.MON": "MON", - "uni-calender.TUE": "TUE", - "uni-calender.WED": "WED", - "uni-calender.THU": "THU", - "uni-calender.FRI": "FRI", - "uni-calender.SAT": "SAT", - "uni-calender.SUN": "SUN" - }; - const zhHans = { - "uni-calender.ok": "确定", - "uni-calender.cancel": "取消", - "uni-calender.today": "今日", - "uni-calender.SUN": "日", - "uni-calender.MON": "一", - "uni-calender.TUE": "二", - "uni-calender.WED": "三", - "uni-calender.THU": "四", - "uni-calender.FRI": "五", - "uni-calender.SAT": "六" - }; - const zhHant = { - "uni-calender.ok": "確定", - "uni-calender.cancel": "取消", - "uni-calender.today": "今日", - "uni-calender.SUN": "日", - "uni-calender.MON": "一", - "uni-calender.TUE": "二", - "uni-calender.WED": "三", - "uni-calender.THU": "四", - "uni-calender.FRI": "五", - "uni-calender.SAT": "六" - }; - const i18nMessages = { - en, - "zh-Hans": zhHans, - "zh-Hant": zhHant - }; - const { t: t$2 } = initVueI18n(i18nMessages); - const _sfc_main$g = { - emits: ["change"], - props: { - weeks: { - type: Object, - default() { - return {}; - } - }, - calendar: { - type: Object, - default: () => { - return {}; - } - }, - selected: { - type: Array, - default: () => { - return []; - } - }, - lunar: { - type: Boolean, - default: false - } - }, - computed: { - todayText() { - return t$2("uni-calender.today"); - } - }, - methods: { - choiceDate(weeks) { - this.$emit("change", weeks); - } - } - }; - function _sfc_render$6(_ctx, _cache, $props, $setup, $data, $options) { - return vue.openBlock(), vue.createElementBlock( - "view", - { - class: vue.normalizeClass(["uni-calendar-item__weeks-box", { - "uni-calendar-item--disable": $props.weeks.disable, - "uni-calendar-item--isDay": $props.calendar.fullDate === $props.weeks.fullDate && $props.weeks.isDay, - "uni-calendar-item--checked": $props.calendar.fullDate === $props.weeks.fullDate && !$props.weeks.isDay, - "uni-calendar-item--before-checked": $props.weeks.beforeMultiple, - "uni-calendar-item--multiple": $props.weeks.multiple, - "uni-calendar-item--after-checked": $props.weeks.afterMultiple - }]), - onClick: _cache[0] || (_cache[0] = ($event) => $options.choiceDate($props.weeks)) - }, - [ - vue.createElementVNode("view", { class: "uni-calendar-item__weeks-box-item" }, [ - $props.selected && $props.weeks.extraInfo ? (vue.openBlock(), vue.createElementBlock("text", { - key: 0, - class: "uni-calendar-item__weeks-box-circle" - })) : vue.createCommentVNode("v-if", true), - vue.createElementVNode( - "text", - { - class: vue.normalizeClass(["uni-calendar-item__weeks-box-text", { - "uni-calendar-item--isDay-text": $props.weeks.isDay, - "uni-calendar-item--isDay": $props.calendar.fullDate === $props.weeks.fullDate && $props.weeks.isDay, - "uni-calendar-item--checked": $props.calendar.fullDate === $props.weeks.fullDate && !$props.weeks.isDay, - "uni-calendar-item--before-checked": $props.weeks.beforeMultiple, - "uni-calendar-item--multiple": $props.weeks.multiple, - "uni-calendar-item--after-checked": $props.weeks.afterMultiple, - "uni-calendar-item--disable": $props.weeks.disable - }]) - }, - vue.toDisplayString($props.weeks.date), - 3 - /* TEXT, CLASS */ - ), - !$props.lunar && !$props.weeks.extraInfo && $props.weeks.isDay ? (vue.openBlock(), vue.createElementBlock( - "text", - { - key: 1, - class: vue.normalizeClass(["uni-calendar-item__weeks-lunar-text", { - "uni-calendar-item--isDay-text": $props.weeks.isDay, - "uni-calendar-item--isDay": $props.calendar.fullDate === $props.weeks.fullDate && $props.weeks.isDay, - "uni-calendar-item--checked": $props.calendar.fullDate === $props.weeks.fullDate && !$props.weeks.isDay, - "uni-calendar-item--before-checked": $props.weeks.beforeMultiple, - "uni-calendar-item--multiple": $props.weeks.multiple, - "uni-calendar-item--after-checked": $props.weeks.afterMultiple - }]) - }, - vue.toDisplayString($options.todayText), - 3 - /* TEXT, CLASS */ - )) : vue.createCommentVNode("v-if", true), - $props.lunar && !$props.weeks.extraInfo ? (vue.openBlock(), vue.createElementBlock( - "text", - { - key: 2, - class: vue.normalizeClass(["uni-calendar-item__weeks-lunar-text", { - "uni-calendar-item--isDay-text": $props.weeks.isDay, - "uni-calendar-item--isDay": $props.calendar.fullDate === $props.weeks.fullDate && $props.weeks.isDay, - "uni-calendar-item--checked": $props.calendar.fullDate === $props.weeks.fullDate && !$props.weeks.isDay, - "uni-calendar-item--before-checked": $props.weeks.beforeMultiple, - "uni-calendar-item--multiple": $props.weeks.multiple, - "uni-calendar-item--after-checked": $props.weeks.afterMultiple, - "uni-calendar-item--disable": $props.weeks.disable - }]) - }, - vue.toDisplayString($props.weeks.isDay ? $options.todayText : $props.weeks.lunar.IDayCn === "初一" ? $props.weeks.lunar.IMonthCn : $props.weeks.lunar.IDayCn), - 3 - /* TEXT, CLASS */ - )) : vue.createCommentVNode("v-if", true), - $props.weeks.extraInfo && $props.weeks.extraInfo.info ? (vue.openBlock(), vue.createElementBlock( - "text", - { - key: 3, - class: vue.normalizeClass(["uni-calendar-item__weeks-lunar-text", { - "uni-calendar-item--extra": $props.weeks.extraInfo.info, - "uni-calendar-item--isDay-text": $props.weeks.isDay, - "uni-calendar-item--isDay": $props.calendar.fullDate === $props.weeks.fullDate && $props.weeks.isDay, - "uni-calendar-item--checked": $props.calendar.fullDate === $props.weeks.fullDate && !$props.weeks.isDay, - "uni-calendar-item--before-checked": $props.weeks.beforeMultiple, - "uni-calendar-item--multiple": $props.weeks.multiple, - "uni-calendar-item--after-checked": $props.weeks.afterMultiple, - "uni-calendar-item--disable": $props.weeks.disable - }]) - }, - vue.toDisplayString($props.weeks.extraInfo.info), - 3 - /* TEXT, CLASS */ - )) : vue.createCommentVNode("v-if", true) - ]) - ], - 2 - /* CLASS */ - ); - } - const CalendarItem = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["render", _sfc_render$6], ["__scopeId", "data-v-65626c58"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/uni_modules/uni-calendar/components/uni-calendar/uni-calendar-item.vue"]]); - const { t: t$1 } = initVueI18n(i18nMessages); - const _sfc_main$f = { - components: { - CalendarItem - }, - emits: ["close", "confirm", "change", "monthSwitch"], - props: { - date: { - type: String, - default: "" - }, - selected: { - type: Array, - default() { - return []; - } - }, - lunar: { - type: Boolean, - default: false - }, - startDate: { - type: String, - default: "" - }, - endDate: { - type: String, - default: "" - }, - range: { - type: Boolean, - default: false - }, - insert: { - type: Boolean, - default: true - }, - showMonth: { - type: Boolean, - default: true - }, - clearDate: { - type: Boolean, - default: true - } - }, - data() { - return { - show: false, - weeks: [], - calendar: {}, - nowDate: "", - aniMaskShow: false - }; - }, - computed: { - /** - * for i18n - */ - okText() { - return t$1("uni-calender.ok"); - }, - cancelText() { - return t$1("uni-calender.cancel"); - }, - todayText() { - return t$1("uni-calender.today"); - }, - monText() { - return t$1("uni-calender.MON"); - }, - TUEText() { - return t$1("uni-calender.TUE"); - }, - WEDText() { - return t$1("uni-calender.WED"); - }, - THUText() { - return t$1("uni-calender.THU"); - }, - FRIText() { - return t$1("uni-calender.FRI"); - }, - SATText() { - return t$1("uni-calender.SAT"); - }, - SUNText() { - return t$1("uni-calender.SUN"); - } - }, - watch: { - date(newVal) { - this.init(newVal); - }, - startDate(val) { - this.cale.resetSatrtDate(val); - this.cale.setDate(this.nowDate.fullDate); - this.weeks = this.cale.weeks; - }, - endDate(val) { - this.cale.resetEndDate(val); - this.cale.setDate(this.nowDate.fullDate); - this.weeks = this.cale.weeks; - }, - selected(newVal) { - this.cale.setSelectInfo(this.nowDate.fullDate, newVal); - this.weeks = this.cale.weeks; - } - }, - created() { - this.cale = new Calendar({ - selected: this.selected, - startDate: this.startDate, - endDate: this.endDate, - range: this.range - }); - this.init(this.date); - }, - methods: { - // 取消穿透 - clean() { - }, - bindDateChange(e2) { - const value = e2.detail.value + "-1"; - this.setDate(value); - const { year, month } = this.cale.getDate(value); - this.$emit("monthSwitch", { - year, - month - }); - }, - /** - * 初始化日期显示 - * @param {Object} date - */ - init(date2) { - this.cale.setDate(date2); - this.weeks = this.cale.weeks; - this.nowDate = this.calendar = this.cale.getInfo(date2); - }, - /** - * 打开日历弹窗 - */ - open() { - if (this.clearDate && !this.insert) { - this.cale.cleanMultipleStatus(); - this.init(this.date); - } - this.show = true; - this.$nextTick(() => { - setTimeout(() => { - this.aniMaskShow = true; - }, 50); - }); - }, - /** - * 关闭日历弹窗 - */ - close() { - this.aniMaskShow = false; - this.$nextTick(() => { - setTimeout(() => { - this.show = false; - this.$emit("close"); - }, 300); - }); - }, - /** - * 确认按钮 - */ - confirm() { - this.setEmit("confirm"); - this.close(); - }, - /** - * 变化触发 - */ - change() { - if (!this.insert) - return; - this.setEmit("change"); - }, - /** - * 选择月份触发 - */ - monthSwitch() { - let { - year, - month - } = this.nowDate; - this.$emit("monthSwitch", { - year, - month: Number(month) - }); - }, - /** - * 派发事件 - * @param {Object} name - */ - setEmit(name) { - let { - year, - month, - date: date2, - fullDate, - lunar, - extraInfo - } = this.calendar; - this.$emit(name, { - range: this.cale.multipleStatus, - year, - month, - date: date2, - fulldate: fullDate, - lunar, - extraInfo: extraInfo || {} - }); - }, - /** - * 选择天触发 - * @param {Object} weeks - */ - choiceDate(weeks) { - if (weeks.disable) - return; - this.calendar = weeks; - this.cale.setMultiple(this.calendar.fullDate); - this.weeks = this.cale.weeks; - this.change(); - }, - /** - * 回到今天 - */ - backToday() { - const nowYearMonth = `${this.nowDate.year}-${this.nowDate.month}`; - const date2 = this.cale.getDate(/* @__PURE__ */ new Date()); - const todayYearMonth = `${date2.year}-${date2.month}`; - if (nowYearMonth !== todayYearMonth) { - this.monthSwitch(); - } - this.init(date2.fullDate); - this.change(); - }, - /** - * 上个月 - */ - pre() { - const preDate = this.cale.getDate(this.nowDate.fullDate, -1, "month").fullDate; - this.setDate(preDate); - this.monthSwitch(); - }, - /** - * 下个月 - */ - next() { - const nextDate = this.cale.getDate(this.nowDate.fullDate, 1, "month").fullDate; - this.setDate(nextDate); - this.monthSwitch(); - }, - /** - * 设置日期 - * @param {Object} date - */ - setDate(date2) { - this.cale.setDate(date2); - this.weeks = this.cale.weeks; - this.nowDate = this.cale.getInfo(date2); - } - } - }; - function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) { - const _component_calendar_item = vue.resolveComponent("calendar-item"); - return vue.openBlock(), vue.createElementBlock("view", { class: "uni-calendar" }, [ - !$props.insert && $data.show ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 0, - class: vue.normalizeClass(["uni-calendar__mask", { "uni-calendar--mask-show": $data.aniMaskShow }]), - onClick: _cache[0] || (_cache[0] = (...args) => $options.clean && $options.clean(...args)) - }, - null, - 2 - /* CLASS */ - )) : vue.createCommentVNode("v-if", true), - $props.insert || $data.show ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 1, - class: vue.normalizeClass(["uni-calendar__content", { "uni-calendar--fixed": !$props.insert, "uni-calendar--ani-show": $data.aniMaskShow }]) - }, - [ - !$props.insert ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "uni-calendar__header uni-calendar--fixed-top" - }, [ - vue.createElementVNode("view", { - class: "uni-calendar__header-btn-box", - onClick: _cache[1] || (_cache[1] = (...args) => $options.close && $options.close(...args)) - }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__header-text uni-calendar--fixed-width" }, - vue.toDisplayString($options.cancelText), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { - class: "uni-calendar__header-btn-box", - onClick: _cache[2] || (_cache[2] = (...args) => $options.confirm && $options.confirm(...args)) - }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__header-text uni-calendar--fixed-width" }, - vue.toDisplayString($options.okText), - 1 - /* TEXT */ - ) - ]) - ])) : vue.createCommentVNode("v-if", true), - vue.createElementVNode("view", { class: "uni-calendar__header" }, [ - vue.createElementVNode("view", { - class: "uni-calendar__header-btn-box", - onClick: _cache[3] || (_cache[3] = vue.withModifiers((...args) => $options.pre && $options.pre(...args), ["stop"])) - }, [ - vue.createElementVNode("view", { class: "uni-calendar__header-btn uni-calendar--left" }) - ]), - vue.createElementVNode("picker", { - mode: "date", - value: $props.date, - fields: "month", - onChange: _cache[4] || (_cache[4] = (...args) => $options.bindDateChange && $options.bindDateChange(...args)) - }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__header-text" }, - vue.toDisplayString(($data.nowDate.year || "") + " / " + ($data.nowDate.month || "")), - 1 - /* TEXT */ - ) - ], 40, ["value"]), - vue.createElementVNode("view", { - class: "uni-calendar__header-btn-box", - onClick: _cache[5] || (_cache[5] = vue.withModifiers((...args) => $options.next && $options.next(...args), ["stop"])) - }, [ - vue.createElementVNode("view", { class: "uni-calendar__header-btn uni-calendar--right" }) - ]), - vue.createElementVNode( - "text", - { - class: "uni-calendar__backtoday", - onClick: _cache[6] || (_cache[6] = (...args) => $options.backToday && $options.backToday(...args)) - }, - vue.toDisplayString($options.todayText), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "uni-calendar__box" }, [ - $props.showMonth ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "uni-calendar__box-bg" - }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__box-bg-text" }, - vue.toDisplayString($data.nowDate.month), - 1 - /* TEXT */ - ) - ])) : vue.createCommentVNode("v-if", true), - vue.createElementVNode("view", { class: "uni-calendar__weeks" }, [ - vue.createElementVNode("view", { class: "uni-calendar__weeks-day" }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__weeks-day-text" }, - vue.toDisplayString($options.SUNText), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "uni-calendar__weeks-day" }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__weeks-day-text" }, - vue.toDisplayString($options.monText), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "uni-calendar__weeks-day" }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__weeks-day-text" }, - vue.toDisplayString($options.TUEText), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "uni-calendar__weeks-day" }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__weeks-day-text" }, - vue.toDisplayString($options.WEDText), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "uni-calendar__weeks-day" }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__weeks-day-text" }, - vue.toDisplayString($options.THUText), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "uni-calendar__weeks-day" }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__weeks-day-text" }, - vue.toDisplayString($options.FRIText), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "uni-calendar__weeks-day" }, [ - vue.createElementVNode( - "text", - { class: "uni-calendar__weeks-day-text" }, - vue.toDisplayString($options.SATText), - 1 - /* TEXT */ - ) - ]) - ]), - (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - null, - vue.renderList($data.weeks, (item, weekIndex) => { - return vue.openBlock(), vue.createElementBlock("view", { - class: "uni-calendar__weeks", - key: weekIndex - }, [ - (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - null, - vue.renderList(item, (weeks, weeksIndex) => { - return vue.openBlock(), vue.createElementBlock("view", { - class: "uni-calendar__weeks-item", - key: weeksIndex - }, [ - vue.createVNode(_component_calendar_item, { - class: "uni-calendar-item--hook", - weeks, - calendar: $data.calendar, - selected: $props.selected, - lunar: $props.lunar, - onChange: $options.choiceDate - }, null, 8, ["weeks", "calendar", "selected", "lunar", "onChange"]) - ]); - }), - 128 - /* KEYED_FRAGMENT */ - )) - ]); - }), - 128 - /* KEYED_FRAGMENT */ - )) - ]) - ], - 2 - /* CLASS */ - )) : vue.createCommentVNode("v-if", true) - ]); - } - const __easycom_5 = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["render", _sfc_render$5], ["__scopeId", "data-v-b6ab2cfb"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/uni_modules/uni-calendar/components/uni-calendar/uni-calendar.vue"]]); - const _sfc_main$e = { - __name: "Pest", - setup(__props) { - const calendar2 = vue.ref(null); - const form = vue.ref(null); - const openDate = () => { - calendar2.value.open(); - }; - const formData = vue.reactive({ - breed: "" - }); - const dateConfirmfn = (e2) => { - formatAppLog("log", "at pages/husbandryForm/Pest.vue:107", e2); - }; - const rules2 = { - "formData.breed": { - type: "string", - required: true, - message: "请填写姓名", - trigger: ["blur", "change"] - } - }; - const addFn = () => { - form.value.validate().then((res) => { - formatAppLog("log", "at pages/husbandryForm/Pest.vue:124", 6); - }).catch((errors) => { - uni.$u.toast("校验失败"); - }); - console.log(); - return; - }; - const updateImgFn = async () => { - if (mode.value == "detail") - return; - let res = await uplodeImg(); - formData.buy_cert = res.data.image; - }; - const mode = vue.ref("add"); - onLoad((options) => { - if (options.task_id) { - mode.value = "detail"; - } - }); - return (_ctx, _cache) => { - const _component_up_input = resolveEasycom(vue.resolveDynamicComponent("up-input"), __easycom_0$3); - const _component_u_form_item = resolveEasycom(vue.resolveDynamicComponent("u-form-item"), __easycom_1$1); - const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$7); - const _component_u__textarea = resolveEasycom(vue.resolveDynamicComponent("u--textarea"), __easycom_3$1); - const _component_u__form = resolveEasycom(vue.resolveDynamicComponent("u--form"), __easycom_3); - const _component_uni_calendar = resolveEasycom(vue.resolveDynamicComponent("uni-calendar"), __easycom_5); - return vue.openBlock(), vue.createElementBlock( - vue.Fragment, - null, - [ - vue.createCommentVNode(" 播种 "), - vue.createElementVNode("view", { class: "content" }, [ - vue.createElementVNode("view", { class: "card" }, [ - vue.createVNode(_component_u__form, { - labelPosition: "top", - labelWidth: "100", - model: formData, - rules: rules2, - ref_key: "form", - ref: form - }, { - default: vue.withCtx(() => [ - vue.createVNode( - _component_u_form_item, - { - label: "药剂种类", - prop: "formData.breed", - borderBottom: "", - ref: "item1", - required: "" - }, - { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入药剂种类", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }, - 512 - /* NEED_PATCH */ - ), - vue.createVNode(_component_u_form_item, { - label: "药剂品牌", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入药剂品牌", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "药剂用量", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入药剂用量", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "开始日期", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请选择日期", - border: "surround", - onBlur: openDate, - disabled: mode.value == "detail", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "结束日期", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请选择日期", - border: "surround", - onBlur: openDate, - disabled: mode.value == "detail", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "作业地块", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业地块", - border: "surround", - disabled: mode.value == "detail", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "作业面积", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业面积", - type: "number", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "参与人", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入参与人", - type: "number", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode("view", { class: "card-li-tit" }, " 防治图片 "), - vue.createElementVNode("view", { class: "code-img" }, [ - vue.createElementVNode("view", { - class: "", - onClick: updateImgFn - }, [ - formData.buy_cert ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "" - }, [ - vue.createVNode(_component_u__image, { - src: formData.buy_cert, - width: "637.85rpx", - height: "350.47rpx" - }, null, 8, ["src"]) - ])) : (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "carime-icon" - }, [ - vue.createVNode(_component_u__image, { - src: "/static/img/DJSC.png", - width: "91.12rpx", - height: "91.12rpx" - }), - vue.createElementVNode("view", { class: "" }, " 点击上传图片 ") - ])) - ]) - ]) - ]), - vue.createVNode(_component_u_form_item, { - label: "备注", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u__textarea, { - modelValue: formData.breed, - "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => formData.breed = $event), - disabled: mode.value == "detail", - placeholder: "请输入内容" - }, null, 8, ["modelValue", "disabled"]) - ]), - _: 1 - /* STABLE */ - }) - ]), - _: 1 - /* STABLE */ - }, 8, ["model"]), - vue.createElementVNode("view", null, [ - vue.createVNode( - _component_uni_calendar, - { - ref_key: "calendar", - ref: calendar2, - showMonth: true, - lunar: true, - insert: false, - onConfirm: dateConfirmfn - }, - null, - 512 - /* NEED_PATCH */ - ) - ]) - ]), - mode.value == "add" ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "confirm" - }, [ - vue.createElementVNode("view", { - class: "confirm-btn", - style: { "color": "white", "background-color": "#0AA565" }, - onClick: addFn - }, " 完成添加 ") - ])) : vue.createCommentVNode("v-if", true) - ]) - ], - 2112 - /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */ - ); - }; - } - }; - const PagesHusbandryFormPest = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-b3c802e1"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/husbandryForm/Pest.vue"]]); - const easycom = { - custom: { - "^u--(.*)": "uview-plus/components/u-$1/u-$1.vue", - "^up-(.*)": "uview-plus/components/u-$1/u-$1.vue", - "^u-([^-].*)": "uview-plus/components/u-$1/u-$1.vue" - } - }; - const pages$1 = [ - { - path: "pages/index/index", - style: { - navigationStyle: "custom" - } - }, - { - path: "pages/landDetail/index", - style: { - navigationBarTitleText: "土地详情", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/husbandryForm/harvest", - style: { - navigationBarTitleText: "添加收获信息", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/husbandryForm/Pest", - style: { - navigationBarTitleText: "添加虫害防治信息", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/husbandryForm/irrigate", - style: { - navigationBarTitleText: "添加灌溉信息", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/husbandryForm/weeding", - style: { - navigationBarTitleText: "添加除草信息", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/husbandryForm/fertilize", - style: { - navigationBarTitleText: "添加施肥信息", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/husbandryForm/sow", - style: { - navigationBarTitleText: "添加种植信息", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/live/live", - style: { - navigationBarTitleText: "苗情监测", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/addLand/addLand", - style: { - navigationBarTitleText: "添加土地信息", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/updatePassword/updatePassword", - style: { - navigationBarTitleText: "密码修改", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/index/massif", - style: { - navigationBarTitleText: "地块", - enablePullDownRefresh: false, - navigationBarBackgroundColor: "#F4F4F4", - navigationBarTextStyle: "black" - } - }, - { - path: "pages/index/personal", - style: { - navigationStyle: "custom" - } - }, - { - path: "pages/Login/login", - style: { - navigationStyle: "custom" - } - } - ]; - const globalStyle = { - navigationBarTextStyle: "black", - navigationBarTitleText: "uni-app", - navigationBarBackgroundColor: "#F8F8F8", - backgroundColor: "#F8F8F8" - }; - const tabBar = { - color: "#B3B3B3", - selectedColor: "#272822", - borderStyle: "white", - backgroundColor: "#EBF1EF", - list: [ - { - pagePath: "pages/index/index", - text: "首页", - iconPath: "static/tabs-icon/home.png", - selectedIconPath: "static/img/DK.png" - }, - { - pagePath: "pages/index/massif", - text: "地块", - iconPath: "static/img/SJ (1).png", - selectedIconPath: "static/img/SJ (1).png" - }, - { - pagePath: "pages/index/personal", - text: "我的", - iconPath: "static/img/WD.png", - selectedIconPath: "static/img/WD.png" - } - ] - }; - const uniIdRouter = {}; - const e = { - easycom, - pages: pages$1, - globalStyle, - tabBar, - uniIdRouter - }; - function t(e2) { - return e2 && e2.__esModule && Object.prototype.hasOwnProperty.call(e2, "default") ? e2.default : e2; - } - function n(e2, t2, n2) { - return e2(n2 = { path: t2, exports: {}, require: function(e3, t3) { - return function() { - throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs"); - }(null == t3 && n2.path); - } }, n2.exports), n2.exports; - } - var s = n(function(e2, t2) { - var n2; - e2.exports = (n2 = n2 || function(e3, t3) { - var n3 = Object.create || function() { - function e4() { - } - return function(t4) { - var n4; - return e4.prototype = t4, n4 = new e4(), e4.prototype = null, n4; - }; - }(), s2 = {}, r2 = s2.lib = {}, i2 = r2.Base = { extend: function(e4) { - var t4 = n3(this); - return e4 && t4.mixIn(e4), t4.hasOwnProperty("init") && this.init !== t4.init || (t4.init = function() { - t4.$super.init.apply(this, arguments); - }), t4.init.prototype = t4, t4.$super = this, t4; - }, create: function() { - var e4 = this.extend(); - return e4.init.apply(e4, arguments), e4; - }, init: function() { - }, mixIn: function(e4) { - for (var t4 in e4) - e4.hasOwnProperty(t4) && (this[t4] = e4[t4]); - e4.hasOwnProperty("toString") && (this.toString = e4.toString); - }, clone: function() { - return this.init.prototype.extend(this); - } }, o2 = r2.WordArray = i2.extend({ init: function(e4, n4) { - e4 = this.words = e4 || [], this.sigBytes = n4 != t3 ? n4 : 4 * e4.length; - }, toString: function(e4) { - return (e4 || c2).stringify(this); - }, concat: function(e4) { - var t4 = this.words, n4 = e4.words, s3 = this.sigBytes, r3 = e4.sigBytes; - if (this.clamp(), s3 % 4) - for (var i3 = 0; i3 < r3; i3++) { - var o3 = n4[i3 >>> 2] >>> 24 - i3 % 4 * 8 & 255; - t4[s3 + i3 >>> 2] |= o3 << 24 - (s3 + i3) % 4 * 8; - } - else - for (i3 = 0; i3 < r3; i3 += 4) - t4[s3 + i3 >>> 2] = n4[i3 >>> 2]; - return this.sigBytes += r3, this; - }, clamp: function() { - var t4 = this.words, n4 = this.sigBytes; - t4[n4 >>> 2] &= 4294967295 << 32 - n4 % 4 * 8, t4.length = e3.ceil(n4 / 4); - }, clone: function() { - var e4 = i2.clone.call(this); - return e4.words = this.words.slice(0), e4; - }, random: function(t4) { - for (var n4, s3 = [], r3 = function(t5) { - t5 = t5; - var n5 = 987654321, s4 = 4294967295; - return function() { - var r4 = ((n5 = 36969 * (65535 & n5) + (n5 >> 16) & s4) << 16) + (t5 = 18e3 * (65535 & t5) + (t5 >> 16) & s4) & s4; - return r4 /= 4294967296, (r4 += 0.5) * (e3.random() > 0.5 ? 1 : -1); - }; - }, i3 = 0; i3 < t4; i3 += 4) { - var a3 = r3(4294967296 * (n4 || e3.random())); - n4 = 987654071 * a3(), s3.push(4294967296 * a3() | 0); - } - return new o2.init(s3, t4); - } }), a2 = s2.enc = {}, c2 = a2.Hex = { stringify: function(e4) { - for (var t4 = e4.words, n4 = e4.sigBytes, s3 = [], r3 = 0; r3 < n4; r3++) { - var i3 = t4[r3 >>> 2] >>> 24 - r3 % 4 * 8 & 255; - s3.push((i3 >>> 4).toString(16)), s3.push((15 & i3).toString(16)); - } - return s3.join(""); - }, parse: function(e4) { - for (var t4 = e4.length, n4 = [], s3 = 0; s3 < t4; s3 += 2) - n4[s3 >>> 3] |= parseInt(e4.substr(s3, 2), 16) << 24 - s3 % 8 * 4; - return new o2.init(n4, t4 / 2); - } }, u2 = a2.Latin1 = { stringify: function(e4) { - for (var t4 = e4.words, n4 = e4.sigBytes, s3 = [], r3 = 0; r3 < n4; r3++) { - var i3 = t4[r3 >>> 2] >>> 24 - r3 % 4 * 8 & 255; - s3.push(String.fromCharCode(i3)); - } - return s3.join(""); - }, parse: function(e4) { - for (var t4 = e4.length, n4 = [], s3 = 0; s3 < t4; s3++) - n4[s3 >>> 2] |= (255 & e4.charCodeAt(s3)) << 24 - s3 % 4 * 8; - return new o2.init(n4, t4); - } }, l2 = a2.Utf8 = { stringify: function(e4) { - try { - return decodeURIComponent(escape(u2.stringify(e4))); - } catch (e5) { - throw new Error("Malformed UTF-8 data"); - } - }, parse: function(e4) { - return u2.parse(unescape(encodeURIComponent(e4))); - } }, h2 = r2.BufferedBlockAlgorithm = i2.extend({ reset: function() { - this._data = new o2.init(), this._nDataBytes = 0; - }, _append: function(e4) { - "string" == typeof e4 && (e4 = l2.parse(e4)), this._data.concat(e4), this._nDataBytes += e4.sigBytes; - }, _process: function(t4) { - var n4 = this._data, s3 = n4.words, r3 = n4.sigBytes, i3 = this.blockSize, a3 = r3 / (4 * i3), c3 = (a3 = t4 ? e3.ceil(a3) : e3.max((0 | a3) - this._minBufferSize, 0)) * i3, u3 = e3.min(4 * c3, r3); - if (c3) { - for (var l3 = 0; l3 < c3; l3 += i3) - this._doProcessBlock(s3, l3); - var h3 = s3.splice(0, c3); - n4.sigBytes -= u3; - } - return new o2.init(h3, u3); - }, clone: function() { - var e4 = i2.clone.call(this); - return e4._data = this._data.clone(), e4; - }, _minBufferSize: 0 }); - r2.Hasher = h2.extend({ cfg: i2.extend(), init: function(e4) { - this.cfg = this.cfg.extend(e4), this.reset(); - }, reset: function() { - h2.reset.call(this), this._doReset(); - }, update: function(e4) { - return this._append(e4), this._process(), this; - }, finalize: function(e4) { - return e4 && this._append(e4), this._doFinalize(); - }, blockSize: 16, _createHelper: function(e4) { - return function(t4, n4) { - return new e4.init(n4).finalize(t4); - }; - }, _createHmacHelper: function(e4) { - return function(t4, n4) { - return new d2.HMAC.init(e4, n4).finalize(t4); - }; - } }); - var d2 = s2.algo = {}; - return s2; - }(Math), n2); - }), r = s, i = (n(function(e2, t2) { - var n2; - e2.exports = (n2 = r, function(e3) { - var t3 = n2, s2 = t3.lib, r2 = s2.WordArray, i2 = s2.Hasher, o2 = t3.algo, a2 = []; - !function() { - for (var t4 = 0; t4 < 64; t4++) - a2[t4] = 4294967296 * e3.abs(e3.sin(t4 + 1)) | 0; - }(); - var c2 = o2.MD5 = i2.extend({ _doReset: function() { - this._hash = new r2.init([1732584193, 4023233417, 2562383102, 271733878]); - }, _doProcessBlock: function(e4, t4) { - for (var n3 = 0; n3 < 16; n3++) { - var s3 = t4 + n3, r3 = e4[s3]; - e4[s3] = 16711935 & (r3 << 8 | r3 >>> 24) | 4278255360 & (r3 << 24 | r3 >>> 8); - } - var i3 = this._hash.words, o3 = e4[t4 + 0], c3 = e4[t4 + 1], p2 = e4[t4 + 2], f2 = e4[t4 + 3], g2 = e4[t4 + 4], m2 = e4[t4 + 5], y2 = e4[t4 + 6], _2 = e4[t4 + 7], w2 = e4[t4 + 8], v2 = e4[t4 + 9], I2 = e4[t4 + 10], S2 = e4[t4 + 11], b2 = e4[t4 + 12], k = e4[t4 + 13], A2 = e4[t4 + 14], P2 = e4[t4 + 15], T2 = i3[0], C2 = i3[1], x = i3[2], O2 = i3[3]; - T2 = u2(T2, C2, x, O2, o3, 7, a2[0]), O2 = u2(O2, T2, C2, x, c3, 12, a2[1]), x = u2(x, O2, T2, C2, p2, 17, a2[2]), C2 = u2(C2, x, O2, T2, f2, 22, a2[3]), T2 = u2(T2, C2, x, O2, g2, 7, a2[4]), O2 = u2(O2, T2, C2, x, m2, 12, a2[5]), x = u2(x, O2, T2, C2, y2, 17, a2[6]), C2 = u2(C2, x, O2, T2, _2, 22, a2[7]), T2 = u2(T2, C2, x, O2, w2, 7, a2[8]), O2 = u2(O2, T2, C2, x, v2, 12, a2[9]), x = u2(x, O2, T2, C2, I2, 17, a2[10]), C2 = u2(C2, x, O2, T2, S2, 22, a2[11]), T2 = u2(T2, C2, x, O2, b2, 7, a2[12]), O2 = u2(O2, T2, C2, x, k, 12, a2[13]), x = u2(x, O2, T2, C2, A2, 17, a2[14]), T2 = l2(T2, C2 = u2(C2, x, O2, T2, P2, 22, a2[15]), x, O2, c3, 5, a2[16]), O2 = l2(O2, T2, C2, x, y2, 9, a2[17]), x = l2(x, O2, T2, C2, S2, 14, a2[18]), C2 = l2(C2, x, O2, T2, o3, 20, a2[19]), T2 = l2(T2, C2, x, O2, m2, 5, a2[20]), O2 = l2(O2, T2, C2, x, I2, 9, a2[21]), x = l2(x, O2, T2, C2, P2, 14, a2[22]), C2 = l2(C2, x, O2, T2, g2, 20, a2[23]), T2 = l2(T2, C2, x, O2, v2, 5, a2[24]), O2 = l2(O2, T2, C2, x, A2, 9, a2[25]), x = l2(x, O2, T2, C2, f2, 14, a2[26]), C2 = l2(C2, x, O2, T2, w2, 20, a2[27]), T2 = l2(T2, C2, x, O2, k, 5, a2[28]), O2 = l2(O2, T2, C2, x, p2, 9, a2[29]), x = l2(x, O2, T2, C2, _2, 14, a2[30]), T2 = h2(T2, C2 = l2(C2, x, O2, T2, b2, 20, a2[31]), x, O2, m2, 4, a2[32]), O2 = h2(O2, T2, C2, x, w2, 11, a2[33]), x = h2(x, O2, T2, C2, S2, 16, a2[34]), C2 = h2(C2, x, O2, T2, A2, 23, a2[35]), T2 = h2(T2, C2, x, O2, c3, 4, a2[36]), O2 = h2(O2, T2, C2, x, g2, 11, a2[37]), x = h2(x, O2, T2, C2, _2, 16, a2[38]), C2 = h2(C2, x, O2, T2, I2, 23, a2[39]), T2 = h2(T2, C2, x, O2, k, 4, a2[40]), O2 = h2(O2, T2, C2, x, o3, 11, a2[41]), x = h2(x, O2, T2, C2, f2, 16, a2[42]), C2 = h2(C2, x, O2, T2, y2, 23, a2[43]), T2 = h2(T2, C2, x, O2, v2, 4, a2[44]), O2 = h2(O2, T2, C2, x, b2, 11, a2[45]), x = h2(x, O2, T2, C2, P2, 16, a2[46]), T2 = d2(T2, C2 = h2(C2, x, O2, T2, p2, 23, a2[47]), x, O2, o3, 6, a2[48]), O2 = d2(O2, T2, C2, x, _2, 10, a2[49]), x = d2(x, O2, T2, C2, A2, 15, a2[50]), C2 = d2(C2, x, O2, T2, m2, 21, a2[51]), T2 = d2(T2, C2, x, O2, b2, 6, a2[52]), O2 = d2(O2, T2, C2, x, f2, 10, a2[53]), x = d2(x, O2, T2, C2, I2, 15, a2[54]), C2 = d2(C2, x, O2, T2, c3, 21, a2[55]), T2 = d2(T2, C2, x, O2, w2, 6, a2[56]), O2 = d2(O2, T2, C2, x, P2, 10, a2[57]), x = d2(x, O2, T2, C2, y2, 15, a2[58]), C2 = d2(C2, x, O2, T2, k, 21, a2[59]), T2 = d2(T2, C2, x, O2, g2, 6, a2[60]), O2 = d2(O2, T2, C2, x, S2, 10, a2[61]), x = d2(x, O2, T2, C2, p2, 15, a2[62]), C2 = d2(C2, x, O2, T2, v2, 21, a2[63]), i3[0] = i3[0] + T2 | 0, i3[1] = i3[1] + C2 | 0, i3[2] = i3[2] + x | 0, i3[3] = i3[3] + O2 | 0; - }, _doFinalize: function() { - var t4 = this._data, n3 = t4.words, s3 = 8 * this._nDataBytes, r3 = 8 * t4.sigBytes; - n3[r3 >>> 5] |= 128 << 24 - r3 % 32; - var i3 = e3.floor(s3 / 4294967296), o3 = s3; - n3[15 + (r3 + 64 >>> 9 << 4)] = 16711935 & (i3 << 8 | i3 >>> 24) | 4278255360 & (i3 << 24 | i3 >>> 8), n3[14 + (r3 + 64 >>> 9 << 4)] = 16711935 & (o3 << 8 | o3 >>> 24) | 4278255360 & (o3 << 24 | o3 >>> 8), t4.sigBytes = 4 * (n3.length + 1), this._process(); - for (var a3 = this._hash, c3 = a3.words, u3 = 0; u3 < 4; u3++) { - var l3 = c3[u3]; - c3[u3] = 16711935 & (l3 << 8 | l3 >>> 24) | 4278255360 & (l3 << 24 | l3 >>> 8); - } - return a3; - }, clone: function() { - var e4 = i2.clone.call(this); - return e4._hash = this._hash.clone(), e4; - } }); - function u2(e4, t4, n3, s3, r3, i3, o3) { - var a3 = e4 + (t4 & n3 | ~t4 & s3) + r3 + o3; - return (a3 << i3 | a3 >>> 32 - i3) + t4; - } - function l2(e4, t4, n3, s3, r3, i3, o3) { - var a3 = e4 + (t4 & s3 | n3 & ~s3) + r3 + o3; - return (a3 << i3 | a3 >>> 32 - i3) + t4; - } - function h2(e4, t4, n3, s3, r3, i3, o3) { - var a3 = e4 + (t4 ^ n3 ^ s3) + r3 + o3; - return (a3 << i3 | a3 >>> 32 - i3) + t4; - } - function d2(e4, t4, n3, s3, r3, i3, o3) { - var a3 = e4 + (n3 ^ (t4 | ~s3)) + r3 + o3; - return (a3 << i3 | a3 >>> 32 - i3) + t4; - } - t3.MD5 = i2._createHelper(c2), t3.HmacMD5 = i2._createHmacHelper(c2); - }(Math), n2.MD5); - }), n(function(e2, t2) { - var n2; - e2.exports = (n2 = r, void function() { - var e3 = n2, t3 = e3.lib.Base, s2 = e3.enc.Utf8; - e3.algo.HMAC = t3.extend({ init: function(e4, t4) { - e4 = this._hasher = new e4.init(), "string" == typeof t4 && (t4 = s2.parse(t4)); - var n3 = e4.blockSize, r2 = 4 * n3; - t4.sigBytes > r2 && (t4 = e4.finalize(t4)), t4.clamp(); - for (var i2 = this._oKey = t4.clone(), o2 = this._iKey = t4.clone(), a2 = i2.words, c2 = o2.words, u2 = 0; u2 < n3; u2++) - a2[u2] ^= 1549556828, c2[u2] ^= 909522486; - i2.sigBytes = o2.sigBytes = r2, this.reset(); - }, reset: function() { - var e4 = this._hasher; - e4.reset(), e4.update(this._iKey); - }, update: function(e4) { - return this._hasher.update(e4), this; - }, finalize: function(e4) { - var t4 = this._hasher, n3 = t4.finalize(e4); - return t4.reset(), t4.finalize(this._oKey.clone().concat(n3)); - } }); - }()); - }), n(function(e2, t2) { - e2.exports = r.HmacMD5; - })), o = n(function(e2, t2) { - e2.exports = r.enc.Utf8; - }), a = n(function(e2, t2) { - var n2; - e2.exports = (n2 = r, function() { - var e3 = n2, t3 = e3.lib.WordArray; - function s2(e4, n3, s3) { - for (var r2 = [], i2 = 0, o2 = 0; o2 < n3; o2++) - if (o2 % 4) { - var a2 = s3[e4.charCodeAt(o2 - 1)] << o2 % 4 * 2, c2 = s3[e4.charCodeAt(o2)] >>> 6 - o2 % 4 * 2; - r2[i2 >>> 2] |= (a2 | c2) << 24 - i2 % 4 * 8, i2++; - } - return t3.create(r2, i2); - } - e3.enc.Base64 = { stringify: function(e4) { - var t4 = e4.words, n3 = e4.sigBytes, s3 = this._map; - e4.clamp(); - for (var r2 = [], i2 = 0; i2 < n3; i2 += 3) - for (var o2 = (t4[i2 >>> 2] >>> 24 - i2 % 4 * 8 & 255) << 16 | (t4[i2 + 1 >>> 2] >>> 24 - (i2 + 1) % 4 * 8 & 255) << 8 | t4[i2 + 2 >>> 2] >>> 24 - (i2 + 2) % 4 * 8 & 255, a2 = 0; a2 < 4 && i2 + 0.75 * a2 < n3; a2++) - r2.push(s3.charAt(o2 >>> 6 * (3 - a2) & 63)); - var c2 = s3.charAt(64); - if (c2) - for (; r2.length % 4; ) - r2.push(c2); - return r2.join(""); - }, parse: function(e4) { - var t4 = e4.length, n3 = this._map, r2 = this._reverseMap; - if (!r2) { - r2 = this._reverseMap = []; - for (var i2 = 0; i2 < n3.length; i2++) - r2[n3.charCodeAt(i2)] = i2; - } - var o2 = n3.charAt(64); - if (o2) { - var a2 = e4.indexOf(o2); - -1 !== a2 && (t4 = a2); - } - return s2(e4, t4, r2); - }, _map: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" }; - }(), n2.enc.Base64); - }); - const c = "FUNCTION", u = "OBJECT", l = "CLIENT_DB", h = "pending", d = "fulfilled", p = "rejected"; - function f(e2) { - return Object.prototype.toString.call(e2).slice(8, -1).toLowerCase(); - } - function g(e2) { - return "object" === f(e2); - } - function m(e2) { - return "function" == typeof e2; - } - function y(e2) { - return function() { - try { - return e2.apply(e2, arguments); - } catch (e3) { - console.error(e3); - } - }; - } - const _ = "REJECTED", w = "NOT_PENDING"; - class v { - constructor({ createPromise: e2, retryRule: t2 = _ } = {}) { - this.createPromise = e2, this.status = null, this.promise = null, this.retryRule = t2; - } - get needRetry() { - if (!this.status) - return true; - switch (this.retryRule) { - case _: - return this.status === p; - case w: - return this.status !== h; - } - } - exec() { - return this.needRetry ? (this.status = h, this.promise = this.createPromise().then((e2) => (this.status = d, Promise.resolve(e2)), (e2) => (this.status = p, Promise.reject(e2))), this.promise) : this.promise; - } - } - function I(e2) { - return e2 && "string" == typeof e2 ? JSON.parse(e2) : e2; - } - const S = true, b = "app", A = I([]), P = b, T = I(""), C = I("[]") || []; - let O = ""; - try { - O = "__UNI__D087881"; - } catch (e2) { - } - let E = {}; - function L(e2, t2 = {}) { - var n2, s2; - return n2 = E, s2 = e2, Object.prototype.hasOwnProperty.call(n2, s2) || (E[e2] = t2), E[e2]; - } - E = uni._globalUniCloudObj ? uni._globalUniCloudObj : uni._globalUniCloudObj = {}; - const R = ["invoke", "success", "fail", "complete"], U = L("_globalUniCloudInterceptor"); - function N(e2, t2) { - U[e2] || (U[e2] = {}), g(t2) && Object.keys(t2).forEach((n2) => { - R.indexOf(n2) > -1 && function(e3, t3, n3) { - let s2 = U[e3][t3]; - s2 || (s2 = U[e3][t3] = []), -1 === s2.indexOf(n3) && m(n3) && s2.push(n3); - }(e2, n2, t2[n2]); - }); - } - function D(e2, t2) { - U[e2] || (U[e2] = {}), g(t2) ? Object.keys(t2).forEach((n2) => { - R.indexOf(n2) > -1 && function(e3, t3, n3) { - const s2 = U[e3][t3]; - if (!s2) - return; - const r2 = s2.indexOf(n3); - r2 > -1 && s2.splice(r2, 1); - }(e2, n2, t2[n2]); - }) : delete U[e2]; - } - function M(e2, t2) { - return e2 && 0 !== e2.length ? e2.reduce((e3, n2) => e3.then(() => n2(t2)), Promise.resolve()) : Promise.resolve(); - } - function q(e2, t2) { - return U[e2] && U[e2][t2] || []; - } - function F(e2) { - N("callObject", e2); - } - const K = L("_globalUniCloudListener"), j = "response", B = "needLogin", $ = "refreshToken", W = "clientdb", H = "cloudfunction", z = "cloudobject"; - function J(e2) { - return K[e2] || (K[e2] = []), K[e2]; - } - function V(e2, t2) { - const n2 = J(e2); - n2.includes(t2) || n2.push(t2); - } - function G(e2, t2) { - const n2 = J(e2), s2 = n2.indexOf(t2); - -1 !== s2 && n2.splice(s2, 1); - } - function Y(e2, t2) { - const n2 = J(e2); - for (let e3 = 0; e3 < n2.length; e3++) { - (0, n2[e3])(t2); - } - } - let Q, X = false; - function Z() { - return Q || (Q = new Promise((e2) => { - X && e2(), function t2() { - if ("function" == typeof getCurrentPages) { - const t3 = getCurrentPages(); - t3 && t3[0] && (X = true, e2()); - } - X || setTimeout(() => { - t2(); - }, 30); - }(); - }), Q); - } - function ee(e2) { - const t2 = {}; - for (const n2 in e2) { - const s2 = e2[n2]; - m(s2) && (t2[n2] = y(s2)); - } - return t2; - } - class te extends Error { - constructor(e2) { - super(e2.message), this.errMsg = e2.message || e2.errMsg || "unknown system error", this.code = this.errCode = e2.code || e2.errCode || "SYSTEM_ERROR", this.errSubject = this.subject = e2.subject || e2.errSubject, this.cause = e2.cause, this.requestId = e2.requestId; - } - toJson(e2 = 0) { - if (!(e2 >= 10)) - return e2++, { errCode: this.errCode, errMsg: this.errMsg, errSubject: this.errSubject, cause: this.cause && this.cause.toJson ? this.cause.toJson(e2) : this.cause }; - } - } - var ne = { request: (e2) => uni.request(e2), uploadFile: (e2) => uni.uploadFile(e2), setStorageSync: (e2, t2) => uni.setStorageSync(e2, t2), getStorageSync: (e2) => uni.getStorageSync(e2), removeStorageSync: (e2) => uni.removeStorageSync(e2), clearStorageSync: () => uni.clearStorageSync() }; - function se(e2) { - return e2 && se(e2.__v_raw) || e2; - } - function re() { - return { token: ne.getStorageSync("uni_id_token") || ne.getStorageSync("uniIdToken"), tokenExpired: ne.getStorageSync("uni_id_token_expired") }; - } - function ie({ token: e2, tokenExpired: t2 } = {}) { - e2 && ne.setStorageSync("uni_id_token", e2), t2 && ne.setStorageSync("uni_id_token_expired", t2); - } - let oe, ae; - function ce() { - return oe || (oe = uni.getSystemInfoSync()), oe; - } - function ue() { - let e2, t2; - try { - if (uni.getLaunchOptionsSync) { - if (uni.getLaunchOptionsSync.toString().indexOf("not yet implemented") > -1) - return; - const { scene: n2, channel: s2 } = uni.getLaunchOptionsSync(); - e2 = s2, t2 = n2; - } - } catch (e3) { - } - return { channel: e2, scene: t2 }; - } - function le() { - const e2 = uni.getLocale && uni.getLocale() || "en"; - if (ae) - return { ...ae, locale: e2, LOCALE: e2 }; - const t2 = ce(), { deviceId: n2, osName: s2, uniPlatform: r2, appId: i2 } = t2, o2 = ["pixelRatio", "brand", "model", "system", "language", "version", "platform", "host", "SDKVersion", "swanNativeVersion", "app", "AppPlatform", "fontSizeSetting"]; - for (let e3 = 0; e3 < o2.length; e3++) { - delete t2[o2[e3]]; - } - return ae = { PLATFORM: r2, OS: s2, APPID: i2, DEVICEID: n2, ...ue(), ...t2 }, { ...ae, locale: e2, LOCALE: e2 }; - } - var he = { sign: function(e2, t2) { - let n2 = ""; - return Object.keys(e2).sort().forEach(function(t3) { - e2[t3] && (n2 = n2 + "&" + t3 + "=" + e2[t3]); - }), n2 = n2.slice(1), i(n2, t2).toString(); - }, wrappedRequest: function(e2, t2) { - return new Promise((n2, s2) => { - t2(Object.assign(e2, { complete(e3) { - e3 || (e3 = {}); - const t3 = e3.data && e3.data.header && e3.data.header["x-serverless-request-id"] || e3.header && e3.header["request-id"]; - if (!e3.statusCode || e3.statusCode >= 400) - return s2(new te({ code: "SYS_ERR", message: e3.errMsg || "request:fail", requestId: t3 })); - const r2 = e3.data; - if (r2.error) - return s2(new te({ code: r2.error.code, message: r2.error.message, requestId: t3 })); - r2.result = r2.data, r2.requestId = t3, delete r2.data, n2(r2); - } })); - }); - }, toBase64: function(e2) { - return a.stringify(o.parse(e2)); - } }; - var de = class { - constructor(e2) { - ["spaceId", "clientSecret"].forEach((t2) => { - if (!Object.prototype.hasOwnProperty.call(e2, t2)) - throw new Error(`${t2} required`); - }), this.config = Object.assign({}, { endpoint: 0 === e2.spaceId.indexOf("mp-") ? "https://api.next.bspapp.com" : "https://api.bspapp.com" }, e2), this.config.provider = "aliyun", this.config.requestUrl = this.config.endpoint + "/client", this.config.envType = this.config.envType || "public", this.config.accessTokenKey = "access_token_" + this.config.spaceId, this.adapter = ne, this._getAccessTokenPromiseHub = new v({ createPromise: () => this.requestAuth(this.setupRequest({ method: "serverless.auth.user.anonymousAuthorize", params: "{}" }, "auth")).then((e3) => { - if (!e3.result || !e3.result.accessToken) - throw new te({ code: "AUTH_FAILED", message: "获取accessToken失败" }); - this.setAccessToken(e3.result.accessToken); - }), retryRule: w }); - } - get hasAccessToken() { - return !!this.accessToken; - } - setAccessToken(e2) { - this.accessToken = e2; - } - requestWrapped(e2) { - return he.wrappedRequest(e2, this.adapter.request); - } - requestAuth(e2) { - return this.requestWrapped(e2); - } - request(e2, t2) { - return Promise.resolve().then(() => this.hasAccessToken ? t2 ? this.requestWrapped(e2) : this.requestWrapped(e2).catch((t3) => new Promise((e3, n2) => { - !t3 || "GATEWAY_INVALID_TOKEN" !== t3.code && "InvalidParameter.InvalidToken" !== t3.code ? n2(t3) : e3(); - }).then(() => this.getAccessToken()).then(() => { - const t4 = this.rebuildRequest(e2); - return this.request(t4, true); - })) : this.getAccessToken().then(() => { - const t3 = this.rebuildRequest(e2); - return this.request(t3, true); - })); - } - rebuildRequest(e2) { - const t2 = Object.assign({}, e2); - return t2.data.token = this.accessToken, t2.header["x-basement-token"] = this.accessToken, t2.header["x-serverless-sign"] = he.sign(t2.data, this.config.clientSecret), t2; - } - setupRequest(e2, t2) { - const n2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now() }), s2 = { "Content-Type": "application/json" }; - return "auth" !== t2 && (n2.token = this.accessToken, s2["x-basement-token"] = this.accessToken), s2["x-serverless-sign"] = he.sign(n2, this.config.clientSecret), { url: this.config.requestUrl, method: "POST", data: n2, dataType: "json", header: s2 }; - } - getAccessToken() { - return this._getAccessTokenPromiseHub.exec(); - } - async authorize() { - await this.getAccessToken(); - } - callFunction(e2) { - const t2 = { method: "serverless.function.runtime.invoke", params: JSON.stringify({ functionTarget: e2.name, functionArgs: e2.data || {} }) }; - return this.request(this.setupRequest(t2)); - } - getOSSUploadOptionsFromPath(e2) { - const t2 = { method: "serverless.file.resource.generateProximalSign", params: JSON.stringify(e2) }; - return this.request(this.setupRequest(t2)); - } - uploadFileToOSS({ url: e2, formData: t2, name: n2, filePath: s2, fileType: r2, onUploadProgress: i2 }) { - return new Promise((o2, a2) => { - const c2 = this.adapter.uploadFile({ url: e2, formData: t2, name: n2, filePath: s2, fileType: r2, header: { "X-OSS-server-side-encrpytion": "AES256" }, success(e3) { - e3 && e3.statusCode < 400 ? o2(e3) : a2(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); - }, fail(e3) { - a2(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" })); - } }); - "function" == typeof i2 && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((e3) => { - i2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend }); - }); - }); - } - reportOSSUpload(e2) { - const t2 = { method: "serverless.file.resource.report", params: JSON.stringify(e2) }; - return this.request(this.setupRequest(t2)); - } - async uploadFile({ filePath: e2, cloudPath: t2, fileType: n2 = "image", cloudPathAsRealPath: s2 = false, onUploadProgress: r2, config: i2 }) { - if ("string" !== f(t2)) - throw new te({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" }); - if (!(t2 = t2.trim())) - throw new te({ code: "INVALID_PARAM", message: "cloudPath不可为空" }); - if (/:\/\//.test(t2)) - throw new te({ code: "INVALID_PARAM", message: "cloudPath不合法" }); - const o2 = i2 && i2.envType || this.config.envType; - if (s2 && ("/" !== t2[0] && (t2 = "/" + t2), t2.indexOf("\\") > -1)) - throw new te({ code: "INVALID_PARAM", message: "使用cloudPath作为路径时,cloudPath不可包含“\\”" }); - const a2 = (await this.getOSSUploadOptionsFromPath({ env: o2, filename: s2 ? t2.split("/").pop() : t2, fileId: s2 ? t2 : void 0 })).result, c2 = "https://" + a2.cdnDomain + "/" + a2.ossPath, { securityToken: u2, accessKeyId: l2, signature: h2, host: d2, ossPath: p2, id: g2, policy: m2, ossCallbackUrl: y2 } = a2, _2 = { "Cache-Control": "max-age=2592000", "Content-Disposition": "attachment", OSSAccessKeyId: l2, Signature: h2, host: d2, id: g2, key: p2, policy: m2, success_action_status: 200 }; - if (u2 && (_2["x-oss-security-token"] = u2), y2) { - const e3 = JSON.stringify({ callbackUrl: y2, callbackBody: JSON.stringify({ fileId: g2, spaceId: this.config.spaceId }), callbackBodyType: "application/json" }); - _2.callback = he.toBase64(e3); - } - const w2 = { url: "https://" + a2.host, formData: _2, fileName: "file", name: "file", filePath: e2, fileType: n2 }; - if (await this.uploadFileToOSS(Object.assign({}, w2, { onUploadProgress: r2 })), y2) - return { success: true, filePath: e2, fileID: c2 }; - if ((await this.reportOSSUpload({ id: g2 })).success) - return { success: true, filePath: e2, fileID: c2 }; - throw new te({ code: "UPLOAD_FAILED", message: "文件上传失败" }); - } - getTempFileURL({ fileList: e2 } = {}) { - return new Promise((t2, n2) => { - Array.isArray(e2) && 0 !== e2.length || n2(new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" })), t2({ fileList: e2.map((e3) => ({ fileID: e3, tempFileURL: e3 })) }); - }); - } - async getFileInfo({ fileList: e2 } = {}) { - if (!Array.isArray(e2) || 0 === e2.length) - throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }); - const t2 = { method: "serverless.file.resource.info", params: JSON.stringify({ id: e2.map((e3) => e3.split("?")[0]).join(",") }) }; - return { fileList: (await this.request(this.setupRequest(t2))).result }; - } - }; - var pe = { init(e2) { - const t2 = new de(e2), n2 = { signInAnonymously: function() { - return t2.authorize(); - }, getLoginState: function() { - return Promise.resolve(false); - } }; - return t2.auth = function() { - return n2; - }, t2.customAuth = t2.auth, t2; - } }; - const fe = "undefined" != typeof location && "http:" === location.protocol ? "http:" : "https:"; - var ge; - !function(e2) { - e2.local = "local", e2.none = "none", e2.session = "session"; - }(ge || (ge = {})); - var me = function() { - }, ye = n(function(e2, t2) { - var n2; - e2.exports = (n2 = r, function(e3) { - var t3 = n2, s2 = t3.lib, r2 = s2.WordArray, i2 = s2.Hasher, o2 = t3.algo, a2 = [], c2 = []; - !function() { - function t4(t5) { - for (var n4 = e3.sqrt(t5), s4 = 2; s4 <= n4; s4++) - if (!(t5 % s4)) - return false; - return true; - } - function n3(e4) { - return 4294967296 * (e4 - (0 | e4)) | 0; - } - for (var s3 = 2, r3 = 0; r3 < 64; ) - t4(s3) && (r3 < 8 && (a2[r3] = n3(e3.pow(s3, 0.5))), c2[r3] = n3(e3.pow(s3, 1 / 3)), r3++), s3++; - }(); - var u2 = [], l2 = o2.SHA256 = i2.extend({ _doReset: function() { - this._hash = new r2.init(a2.slice(0)); - }, _doProcessBlock: function(e4, t4) { - for (var n3 = this._hash.words, s3 = n3[0], r3 = n3[1], i3 = n3[2], o3 = n3[3], a3 = n3[4], l3 = n3[5], h2 = n3[6], d2 = n3[7], p2 = 0; p2 < 64; p2++) { - if (p2 < 16) - u2[p2] = 0 | e4[t4 + p2]; - else { - var f2 = u2[p2 - 15], g2 = (f2 << 25 | f2 >>> 7) ^ (f2 << 14 | f2 >>> 18) ^ f2 >>> 3, m2 = u2[p2 - 2], y2 = (m2 << 15 | m2 >>> 17) ^ (m2 << 13 | m2 >>> 19) ^ m2 >>> 10; - u2[p2] = g2 + u2[p2 - 7] + y2 + u2[p2 - 16]; - } - var _2 = s3 & r3 ^ s3 & i3 ^ r3 & i3, w2 = (s3 << 30 | s3 >>> 2) ^ (s3 << 19 | s3 >>> 13) ^ (s3 << 10 | s3 >>> 22), v2 = d2 + ((a3 << 26 | a3 >>> 6) ^ (a3 << 21 | a3 >>> 11) ^ (a3 << 7 | a3 >>> 25)) + (a3 & l3 ^ ~a3 & h2) + c2[p2] + u2[p2]; - d2 = h2, h2 = l3, l3 = a3, a3 = o3 + v2 | 0, o3 = i3, i3 = r3, r3 = s3, s3 = v2 + (w2 + _2) | 0; - } - n3[0] = n3[0] + s3 | 0, n3[1] = n3[1] + r3 | 0, n3[2] = n3[2] + i3 | 0, n3[3] = n3[3] + o3 | 0, n3[4] = n3[4] + a3 | 0, n3[5] = n3[5] + l3 | 0, n3[6] = n3[6] + h2 | 0, n3[7] = n3[7] + d2 | 0; - }, _doFinalize: function() { - var t4 = this._data, n3 = t4.words, s3 = 8 * this._nDataBytes, r3 = 8 * t4.sigBytes; - return n3[r3 >>> 5] |= 128 << 24 - r3 % 32, n3[14 + (r3 + 64 >>> 9 << 4)] = e3.floor(s3 / 4294967296), n3[15 + (r3 + 64 >>> 9 << 4)] = s3, t4.sigBytes = 4 * n3.length, this._process(), this._hash; - }, clone: function() { - var e4 = i2.clone.call(this); - return e4._hash = this._hash.clone(), e4; - } }); - t3.SHA256 = i2._createHelper(l2), t3.HmacSHA256 = i2._createHmacHelper(l2); - }(Math), n2.SHA256); - }), _e = ye, we = n(function(e2, t2) { - e2.exports = r.HmacSHA256; - }); - const ve = () => { - let e2; - if (!Promise) { - e2 = () => { - }, e2.promise = {}; - const t3 = () => { - throw new te({ message: 'Your Node runtime does support ES6 Promises. Set "global.Promise" to your preferred implementation of promises.' }); - }; - return Object.defineProperty(e2.promise, "then", { get: t3 }), Object.defineProperty(e2.promise, "catch", { get: t3 }), e2; - } - const t2 = new Promise((t3, n2) => { - e2 = (e3, s2) => e3 ? n2(e3) : t3(s2); - }); - return e2.promise = t2, e2; - }; - function Ie(e2) { - return void 0 === e2; - } - function Se(e2) { - return "[object Null]" === Object.prototype.toString.call(e2); - } - var be; - function ke(e2) { - const t2 = (n2 = e2, "[object Array]" === Object.prototype.toString.call(n2) ? e2 : [e2]); - var n2; - for (const e3 of t2) { - const { isMatch: t3, genAdapter: n3, runtime: s2 } = e3; - if (t3()) - return { adapter: n3(), runtime: s2 }; - } - } - !function(e2) { - e2.WEB = "web", e2.WX_MP = "wx_mp"; - }(be || (be = {})); - const Ae = { adapter: null, runtime: void 0 }, Pe = ["anonymousUuidKey"]; - class Te extends me { - constructor() { - super(), Ae.adapter.root.tcbObject || (Ae.adapter.root.tcbObject = {}); - } - setItem(e2, t2) { - Ae.adapter.root.tcbObject[e2] = t2; - } - getItem(e2) { - return Ae.adapter.root.tcbObject[e2]; - } - removeItem(e2) { - delete Ae.adapter.root.tcbObject[e2]; - } - clear() { - delete Ae.adapter.root.tcbObject; - } - } - function Ce(e2, t2) { - switch (e2) { - case "local": - return t2.localStorage || new Te(); - case "none": - return new Te(); - default: - return t2.sessionStorage || new Te(); - } - } - class xe { - constructor(e2) { - if (!this._storage) { - this._persistence = Ae.adapter.primaryStorage || e2.persistence, this._storage = Ce(this._persistence, Ae.adapter); - const t2 = `access_token_${e2.env}`, n2 = `access_token_expire_${e2.env}`, s2 = `refresh_token_${e2.env}`, r2 = `anonymous_uuid_${e2.env}`, i2 = `login_type_${e2.env}`, o2 = `user_info_${e2.env}`; - this.keys = { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2, anonymousUuidKey: r2, loginTypeKey: i2, userInfoKey: o2 }; - } - } - updatePersistence(e2) { - if (e2 === this._persistence) - return; - const t2 = "local" === this._persistence; - this._persistence = e2; - const n2 = Ce(e2, Ae.adapter); - for (const e3 in this.keys) { - const s2 = this.keys[e3]; - if (t2 && Pe.includes(e3)) - continue; - const r2 = this._storage.getItem(s2); - Ie(r2) || Se(r2) || (n2.setItem(s2, r2), this._storage.removeItem(s2)); - } - this._storage = n2; - } - setStore(e2, t2, n2) { - if (!this._storage) - return; - const s2 = { version: n2 || "localCachev1", content: t2 }, r2 = JSON.stringify(s2); - try { - this._storage.setItem(e2, r2); - } catch (e3) { - throw e3; - } - } - getStore(e2, t2) { - try { - if (!this._storage) - return; - } catch (e3) { - return ""; - } - t2 = t2 || "localCachev1"; - const n2 = this._storage.getItem(e2); - if (!n2) - return ""; - if (n2.indexOf(t2) >= 0) { - return JSON.parse(n2).content; - } - return ""; - } - removeStore(e2) { - this._storage.removeItem(e2); - } - } - const Oe = {}, Ee = {}; - function Le(e2) { - return Oe[e2]; - } - class Re { - constructor(e2, t2) { - this.data = t2 || null, this.name = e2; - } - } - class Ue extends Re { - constructor(e2, t2) { - super("error", { error: e2, data: t2 }), this.error = e2; - } - } - const Ne = new class { - constructor() { - this._listeners = {}; - } - on(e2, t2) { - return function(e3, t3, n2) { - n2[e3] = n2[e3] || [], n2[e3].push(t3); - }(e2, t2, this._listeners), this; - } - off(e2, t2) { - return function(e3, t3, n2) { - if (n2 && n2[e3]) { - const s2 = n2[e3].indexOf(t3); - -1 !== s2 && n2[e3].splice(s2, 1); - } - }(e2, t2, this._listeners), this; - } - fire(e2, t2) { - if (e2 instanceof Ue) - return console.error(e2.error), this; - const n2 = "string" == typeof e2 ? new Re(e2, t2 || {}) : e2; - const s2 = n2.name; - if (this._listens(s2)) { - n2.target = this; - const e3 = this._listeners[s2] ? [...this._listeners[s2]] : []; - for (const t3 of e3) - t3.call(this, n2); - } - return this; - } - _listens(e2) { - return this._listeners[e2] && this._listeners[e2].length > 0; - } - }(); - function De(e2, t2) { - Ne.on(e2, t2); - } - function Me(e2, t2 = {}) { - Ne.fire(e2, t2); - } - function qe(e2, t2) { - Ne.off(e2, t2); - } - const Fe = "loginStateChanged", Ke = "loginStateExpire", je = "loginTypeChanged", Be = "anonymousConverted", $e = "refreshAccessToken"; - var We; - !function(e2) { - e2.ANONYMOUS = "ANONYMOUS", e2.WECHAT = "WECHAT", e2.WECHAT_PUBLIC = "WECHAT-PUBLIC", e2.WECHAT_OPEN = "WECHAT-OPEN", e2.CUSTOM = "CUSTOM", e2.EMAIL = "EMAIL", e2.USERNAME = "USERNAME", e2.NULL = "NULL"; - }(We || (We = {})); - const He = ["auth.getJwt", "auth.logout", "auth.signInWithTicket", "auth.signInAnonymously", "auth.signIn", "auth.fetchAccessTokenWithRefreshToken", "auth.signUpWithEmailAndPassword", "auth.activateEndUserMail", "auth.sendPasswordResetEmail", "auth.resetPasswordWithToken", "auth.isUsernameRegistered"], ze = { "X-SDK-Version": "1.3.5" }; - function Je(e2, t2, n2) { - const s2 = e2[t2]; - e2[t2] = function(t3) { - const r2 = {}, i2 = {}; - n2.forEach((n3) => { - const { data: s3, headers: o3 } = n3.call(e2, t3); - Object.assign(r2, s3), Object.assign(i2, o3); - }); - const o2 = t3.data; - return o2 && (() => { - var e3; - if (e3 = o2, "[object FormData]" !== Object.prototype.toString.call(e3)) - t3.data = { ...o2, ...r2 }; - else - for (const e4 in r2) - o2.append(e4, r2[e4]); - })(), t3.headers = { ...t3.headers || {}, ...i2 }, s2.call(e2, t3); - }; - } - function Ve() { - const e2 = Math.random().toString(16).slice(2); - return { data: { seqId: e2 }, headers: { ...ze, "x-seqid": e2 } }; - } - class Ge { - constructor(e2 = {}) { - var t2; - this.config = e2, this._reqClass = new Ae.adapter.reqClass({ timeout: this.config.timeout, timeoutMsg: `请求在${this.config.timeout / 1e3}s内未完成,已中断`, restrictedMethods: ["post"] }), this._cache = Le(this.config.env), this._localCache = (t2 = this.config.env, Ee[t2]), Je(this._reqClass, "post", [Ve]), Je(this._reqClass, "upload", [Ve]), Je(this._reqClass, "download", [Ve]); - } - async post(e2) { - return await this._reqClass.post(e2); - } - async upload(e2) { - return await this._reqClass.upload(e2); - } - async download(e2) { - return await this._reqClass.download(e2); - } - async refreshAccessToken() { - let e2, t2; - this._refreshAccessTokenPromise || (this._refreshAccessTokenPromise = this._refreshAccessToken()); - try { - e2 = await this._refreshAccessTokenPromise; - } catch (e3) { - t2 = e3; - } - if (this._refreshAccessTokenPromise = null, this._shouldRefreshAccessTokenHook = null, t2) - throw t2; - return e2; - } - async _refreshAccessToken() { - const { accessTokenKey: e2, accessTokenExpireKey: t2, refreshTokenKey: n2, loginTypeKey: s2, anonymousUuidKey: r2 } = this._cache.keys; - this._cache.removeStore(e2), this._cache.removeStore(t2); - let i2 = this._cache.getStore(n2); - if (!i2) - throw new te({ message: "未登录CloudBase" }); - const o2 = { refresh_token: i2 }, a2 = await this.request("auth.fetchAccessTokenWithRefreshToken", o2); - if (a2.data.code) { - const { code: e3 } = a2.data; - if ("SIGN_PARAM_INVALID" === e3 || "REFRESH_TOKEN_EXPIRED" === e3 || "INVALID_REFRESH_TOKEN" === e3) { - if (this._cache.getStore(s2) === We.ANONYMOUS && "INVALID_REFRESH_TOKEN" === e3) { - const e4 = this._cache.getStore(r2), t3 = this._cache.getStore(n2), s3 = await this.send("auth.signInAnonymously", { anonymous_uuid: e4, refresh_token: t3 }); - return this.setRefreshToken(s3.refresh_token), this._refreshAccessToken(); - } - Me(Ke), this._cache.removeStore(n2); - } - throw new te({ code: a2.data.code, message: `刷新access token失败:${a2.data.code}` }); - } - if (a2.data.access_token) - return Me($e), this._cache.setStore(e2, a2.data.access_token), this._cache.setStore(t2, a2.data.access_token_expire + Date.now()), { accessToken: a2.data.access_token, accessTokenExpire: a2.data.access_token_expire }; - a2.data.refresh_token && (this._cache.removeStore(n2), this._cache.setStore(n2, a2.data.refresh_token), this._refreshAccessToken()); - } - async getAccessToken() { - const { accessTokenKey: e2, accessTokenExpireKey: t2, refreshTokenKey: n2 } = this._cache.keys; - if (!this._cache.getStore(n2)) - throw new te({ message: "refresh token不存在,登录状态异常" }); - let s2 = this._cache.getStore(e2), r2 = this._cache.getStore(t2), i2 = true; - return this._shouldRefreshAccessTokenHook && !await this._shouldRefreshAccessTokenHook(s2, r2) && (i2 = false), (!s2 || !r2 || r2 < Date.now()) && i2 ? this.refreshAccessToken() : { accessToken: s2, accessTokenExpire: r2 }; - } - async request(e2, t2, n2) { - const s2 = `x-tcb-trace_${this.config.env}`; - let r2 = "application/x-www-form-urlencoded"; - const i2 = { action: e2, env: this.config.env, dataVersion: "2019-08-16", ...t2 }; - if (-1 === He.indexOf(e2)) { - const { refreshTokenKey: e3 } = this._cache.keys; - this._cache.getStore(e3) && (i2.access_token = (await this.getAccessToken()).accessToken); - } - let o2; - if ("storage.uploadFile" === e2) { - o2 = new FormData(); - for (let e3 in o2) - o2.hasOwnProperty(e3) && void 0 !== o2[e3] && o2.append(e3, i2[e3]); - r2 = "multipart/form-data"; - } else { - r2 = "application/json", o2 = {}; - for (let e3 in i2) - void 0 !== i2[e3] && (o2[e3] = i2[e3]); - } - let a2 = { headers: { "content-type": r2 } }; - n2 && n2.onUploadProgress && (a2.onUploadProgress = n2.onUploadProgress); - const c2 = this._localCache.getStore(s2); - c2 && (a2.headers["X-TCB-Trace"] = c2); - const { parse: u2, inQuery: l2, search: h2 } = t2; - let d2 = { env: this.config.env }; - u2 && (d2.parse = true), l2 && (d2 = { ...l2, ...d2 }); - let p2 = function(e3, t3, n3 = {}) { - const s3 = /\?/.test(t3); - let r3 = ""; - for (let e4 in n3) - "" === r3 ? !s3 && (t3 += "?") : r3 += "&", r3 += `${e4}=${encodeURIComponent(n3[e4])}`; - return /^http(s)?\:\/\//.test(t3 += r3) ? t3 : `${e3}${t3}`; - }(fe, "//tcb-api.tencentcloudapi.com/web", d2); - h2 && (p2 += h2); - const f2 = await this.post({ url: p2, data: o2, ...a2 }), g2 = f2.header && f2.header["x-tcb-trace"]; - if (g2 && this._localCache.setStore(s2, g2), 200 !== Number(f2.status) && 200 !== Number(f2.statusCode) || !f2.data) - throw new te({ code: "NETWORK_ERROR", message: "network request error" }); - return f2; - } - async send(e2, t2 = {}) { - const n2 = await this.request(e2, t2, { onUploadProgress: t2.onUploadProgress }); - if ("ACCESS_TOKEN_EXPIRED" === n2.data.code && -1 === He.indexOf(e2)) { - await this.refreshAccessToken(); - const n3 = await this.request(e2, t2, { onUploadProgress: t2.onUploadProgress }); - if (n3.data.code) - throw new te({ code: n3.data.code, message: n3.data.message }); - return n3.data; - } - if (n2.data.code) - throw new te({ code: n2.data.code, message: n2.data.message }); - return n2.data; - } - setRefreshToken(e2) { - const { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2 } = this._cache.keys; - this._cache.removeStore(t2), this._cache.removeStore(n2), this._cache.setStore(s2, e2); - } - } - const Ye = {}; - function Qe(e2) { - return Ye[e2]; - } - class Xe { - constructor(e2) { - this.config = e2, this._cache = Le(e2.env), this._request = Qe(e2.env); - } - setRefreshToken(e2) { - const { accessTokenKey: t2, accessTokenExpireKey: n2, refreshTokenKey: s2 } = this._cache.keys; - this._cache.removeStore(t2), this._cache.removeStore(n2), this._cache.setStore(s2, e2); - } - setAccessToken(e2, t2) { - const { accessTokenKey: n2, accessTokenExpireKey: s2 } = this._cache.keys; - this._cache.setStore(n2, e2), this._cache.setStore(s2, t2); - } - async refreshUserInfo() { - const { data: e2 } = await this._request.send("auth.getUserInfo", {}); - return this.setLocalUserInfo(e2), e2; - } - setLocalUserInfo(e2) { - const { userInfoKey: t2 } = this._cache.keys; - this._cache.setStore(t2, e2); - } - } - class Ze { - constructor(e2) { - if (!e2) - throw new te({ code: "PARAM_ERROR", message: "envId is not defined" }); - this._envId = e2, this._cache = Le(this._envId), this._request = Qe(this._envId), this.setUserInfo(); - } - linkWithTicket(e2) { - if ("string" != typeof e2) - throw new te({ code: "PARAM_ERROR", message: "ticket must be string" }); - return this._request.send("auth.linkWithTicket", { ticket: e2 }); - } - linkWithRedirect(e2) { - e2.signInWithRedirect(); - } - updatePassword(e2, t2) { - return this._request.send("auth.updatePassword", { oldPassword: t2, newPassword: e2 }); - } - updateEmail(e2) { - return this._request.send("auth.updateEmail", { newEmail: e2 }); - } - updateUsername(e2) { - if ("string" != typeof e2) - throw new te({ code: "PARAM_ERROR", message: "username must be a string" }); - return this._request.send("auth.updateUsername", { username: e2 }); - } - async getLinkedUidList() { - const { data: e2 } = await this._request.send("auth.getLinkedUidList", {}); - let t2 = false; - const { users: n2 } = e2; - return n2.forEach((e3) => { - e3.wxOpenId && e3.wxPublicId && (t2 = true); - }), { users: n2, hasPrimaryUid: t2 }; - } - setPrimaryUid(e2) { - return this._request.send("auth.setPrimaryUid", { uid: e2 }); - } - unlink(e2) { - return this._request.send("auth.unlink", { platform: e2 }); - } - async update(e2) { - const { nickName: t2, gender: n2, avatarUrl: s2, province: r2, country: i2, city: o2 } = e2, { data: a2 } = await this._request.send("auth.updateUserInfo", { nickName: t2, gender: n2, avatarUrl: s2, province: r2, country: i2, city: o2 }); - this.setLocalUserInfo(a2); - } - async refresh() { - const { data: e2 } = await this._request.send("auth.getUserInfo", {}); - return this.setLocalUserInfo(e2), e2; - } - setUserInfo() { - const { userInfoKey: e2 } = this._cache.keys, t2 = this._cache.getStore(e2); - ["uid", "loginType", "openid", "wxOpenId", "wxPublicId", "unionId", "qqMiniOpenId", "email", "hasPassword", "customUserId", "nickName", "gender", "avatarUrl"].forEach((e3) => { - this[e3] = t2[e3]; - }), this.location = { country: t2.country, province: t2.province, city: t2.city }; - } - setLocalUserInfo(e2) { - const { userInfoKey: t2 } = this._cache.keys; - this._cache.setStore(t2, e2), this.setUserInfo(); - } - } - class et { - constructor(e2) { - if (!e2) - throw new te({ code: "PARAM_ERROR", message: "envId is not defined" }); - this._cache = Le(e2); - const { refreshTokenKey: t2, accessTokenKey: n2, accessTokenExpireKey: s2 } = this._cache.keys, r2 = this._cache.getStore(t2), i2 = this._cache.getStore(n2), o2 = this._cache.getStore(s2); - this.credential = { refreshToken: r2, accessToken: i2, accessTokenExpire: o2 }, this.user = new Ze(e2); - } - get isAnonymousAuth() { - return this.loginType === We.ANONYMOUS; - } - get isCustomAuth() { - return this.loginType === We.CUSTOM; - } - get isWeixinAuth() { - return this.loginType === We.WECHAT || this.loginType === We.WECHAT_OPEN || this.loginType === We.WECHAT_PUBLIC; - } - get loginType() { - return this._cache.getStore(this._cache.keys.loginTypeKey); - } - } - class tt extends Xe { - async signIn() { - this._cache.updatePersistence("local"); - const { anonymousUuidKey: e2, refreshTokenKey: t2 } = this._cache.keys, n2 = this._cache.getStore(e2) || void 0, s2 = this._cache.getStore(t2) || void 0, r2 = await this._request.send("auth.signInAnonymously", { anonymous_uuid: n2, refresh_token: s2 }); - if (r2.uuid && r2.refresh_token) { - this._setAnonymousUUID(r2.uuid), this.setRefreshToken(r2.refresh_token), await this._request.refreshAccessToken(), Me(Fe), Me(je, { env: this.config.env, loginType: We.ANONYMOUS, persistence: "local" }); - const e3 = new et(this.config.env); - return await e3.user.refresh(), e3; - } - throw new te({ message: "匿名登录失败" }); - } - async linkAndRetrieveDataWithTicket(e2) { - const { anonymousUuidKey: t2, refreshTokenKey: n2 } = this._cache.keys, s2 = this._cache.getStore(t2), r2 = this._cache.getStore(n2), i2 = await this._request.send("auth.linkAndRetrieveDataWithTicket", { anonymous_uuid: s2, refresh_token: r2, ticket: e2 }); - if (i2.refresh_token) - return this._clearAnonymousUUID(), this.setRefreshToken(i2.refresh_token), await this._request.refreshAccessToken(), Me(Be, { env: this.config.env }), Me(je, { loginType: We.CUSTOM, persistence: "local" }), { credential: { refreshToken: i2.refresh_token } }; - throw new te({ message: "匿名转化失败" }); - } - _setAnonymousUUID(e2) { - const { anonymousUuidKey: t2, loginTypeKey: n2 } = this._cache.keys; - this._cache.removeStore(t2), this._cache.setStore(t2, e2), this._cache.setStore(n2, We.ANONYMOUS); - } - _clearAnonymousUUID() { - this._cache.removeStore(this._cache.keys.anonymousUuidKey); - } - } - class nt extends Xe { - async signIn(e2) { - if ("string" != typeof e2) - throw new te({ code: "PARAM_ERROR", message: "ticket must be a string" }); - const { refreshTokenKey: t2 } = this._cache.keys, n2 = await this._request.send("auth.signInWithTicket", { ticket: e2, refresh_token: this._cache.getStore(t2) || "" }); - if (n2.refresh_token) - return this.setRefreshToken(n2.refresh_token), await this._request.refreshAccessToken(), Me(Fe), Me(je, { env: this.config.env, loginType: We.CUSTOM, persistence: this.config.persistence }), await this.refreshUserInfo(), new et(this.config.env); - throw new te({ message: "自定义登录失败" }); - } - } - class st extends Xe { - async signIn(e2, t2) { - if ("string" != typeof e2) - throw new te({ code: "PARAM_ERROR", message: "email must be a string" }); - const { refreshTokenKey: n2 } = this._cache.keys, s2 = await this._request.send("auth.signIn", { loginType: "EMAIL", email: e2, password: t2, refresh_token: this._cache.getStore(n2) || "" }), { refresh_token: r2, access_token: i2, access_token_expire: o2 } = s2; - if (r2) - return this.setRefreshToken(r2), i2 && o2 ? this.setAccessToken(i2, o2) : await this._request.refreshAccessToken(), await this.refreshUserInfo(), Me(Fe), Me(je, { env: this.config.env, loginType: We.EMAIL, persistence: this.config.persistence }), new et(this.config.env); - throw s2.code ? new te({ code: s2.code, message: `邮箱登录失败: ${s2.message}` }) : new te({ message: "邮箱登录失败" }); - } - async activate(e2) { - return this._request.send("auth.activateEndUserMail", { token: e2 }); - } - async resetPasswordWithToken(e2, t2) { - return this._request.send("auth.resetPasswordWithToken", { token: e2, newPassword: t2 }); - } - } - class rt extends Xe { - async signIn(e2, t2) { - if ("string" != typeof e2) - throw new te({ code: "PARAM_ERROR", message: "username must be a string" }); - "string" != typeof t2 && (t2 = "", console.warn("password is empty")); - const { refreshTokenKey: n2 } = this._cache.keys, s2 = await this._request.send("auth.signIn", { loginType: We.USERNAME, username: e2, password: t2, refresh_token: this._cache.getStore(n2) || "" }), { refresh_token: r2, access_token_expire: i2, access_token: o2 } = s2; - if (r2) - return this.setRefreshToken(r2), o2 && i2 ? this.setAccessToken(o2, i2) : await this._request.refreshAccessToken(), await this.refreshUserInfo(), Me(Fe), Me(je, { env: this.config.env, loginType: We.USERNAME, persistence: this.config.persistence }), new et(this.config.env); - throw s2.code ? new te({ code: s2.code, message: `用户名密码登录失败: ${s2.message}` }) : new te({ message: "用户名密码登录失败" }); - } - } - class it { - constructor(e2) { - this.config = e2, this._cache = Le(e2.env), this._request = Qe(e2.env), this._onAnonymousConverted = this._onAnonymousConverted.bind(this), this._onLoginTypeChanged = this._onLoginTypeChanged.bind(this), De(je, this._onLoginTypeChanged); - } - get currentUser() { - const e2 = this.hasLoginState(); - return e2 && e2.user || null; - } - get loginType() { - return this._cache.getStore(this._cache.keys.loginTypeKey); - } - anonymousAuthProvider() { - return new tt(this.config); - } - customAuthProvider() { - return new nt(this.config); - } - emailAuthProvider() { - return new st(this.config); - } - usernameAuthProvider() { - return new rt(this.config); - } - async signInAnonymously() { - return new tt(this.config).signIn(); - } - async signInWithEmailAndPassword(e2, t2) { - return new st(this.config).signIn(e2, t2); - } - signInWithUsernameAndPassword(e2, t2) { - return new rt(this.config).signIn(e2, t2); - } - async linkAndRetrieveDataWithTicket(e2) { - this._anonymousAuthProvider || (this._anonymousAuthProvider = new tt(this.config)), De(Be, this._onAnonymousConverted); - return await this._anonymousAuthProvider.linkAndRetrieveDataWithTicket(e2); - } - async signOut() { - if (this.loginType === We.ANONYMOUS) - throw new te({ message: "匿名用户不支持登出操作" }); - const { refreshTokenKey: e2, accessTokenKey: t2, accessTokenExpireKey: n2 } = this._cache.keys, s2 = this._cache.getStore(e2); - if (!s2) - return; - const r2 = await this._request.send("auth.logout", { refresh_token: s2 }); - return this._cache.removeStore(e2), this._cache.removeStore(t2), this._cache.removeStore(n2), Me(Fe), Me(je, { env: this.config.env, loginType: We.NULL, persistence: this.config.persistence }), r2; - } - async signUpWithEmailAndPassword(e2, t2) { - return this._request.send("auth.signUpWithEmailAndPassword", { email: e2, password: t2 }); - } - async sendPasswordResetEmail(e2) { - return this._request.send("auth.sendPasswordResetEmail", { email: e2 }); - } - onLoginStateChanged(e2) { - De(Fe, () => { - const t3 = this.hasLoginState(); - e2.call(this, t3); - }); - const t2 = this.hasLoginState(); - e2.call(this, t2); - } - onLoginStateExpired(e2) { - De(Ke, e2.bind(this)); - } - onAccessTokenRefreshed(e2) { - De($e, e2.bind(this)); - } - onAnonymousConverted(e2) { - De(Be, e2.bind(this)); - } - onLoginTypeChanged(e2) { - De(je, () => { - const t2 = this.hasLoginState(); - e2.call(this, t2); - }); - } - async getAccessToken() { - return { accessToken: (await this._request.getAccessToken()).accessToken, env: this.config.env }; - } - hasLoginState() { - const { refreshTokenKey: e2 } = this._cache.keys; - return this._cache.getStore(e2) ? new et(this.config.env) : null; - } - async isUsernameRegistered(e2) { - if ("string" != typeof e2) - throw new te({ code: "PARAM_ERROR", message: "username must be a string" }); - const { data: t2 } = await this._request.send("auth.isUsernameRegistered", { username: e2 }); - return t2 && t2.isRegistered; - } - getLoginState() { - return Promise.resolve(this.hasLoginState()); - } - async signInWithTicket(e2) { - return new nt(this.config).signIn(e2); - } - shouldRefreshAccessToken(e2) { - this._request._shouldRefreshAccessTokenHook = e2.bind(this); - } - getUserInfo() { - return this._request.send("auth.getUserInfo", {}).then((e2) => e2.code ? e2 : { ...e2.data, requestId: e2.seqId }); - } - getAuthHeader() { - const { refreshTokenKey: e2, accessTokenKey: t2 } = this._cache.keys, n2 = this._cache.getStore(e2); - return { "x-cloudbase-credentials": this._cache.getStore(t2) + "/@@/" + n2 }; - } - _onAnonymousConverted(e2) { - const { env: t2 } = e2.data; - t2 === this.config.env && this._cache.updatePersistence(this.config.persistence); - } - _onLoginTypeChanged(e2) { - const { loginType: t2, persistence: n2, env: s2 } = e2.data; - s2 === this.config.env && (this._cache.updatePersistence(n2), this._cache.setStore(this._cache.keys.loginTypeKey, t2)); - } - } - const ot = function(e2, t2) { - t2 = t2 || ve(); - const n2 = Qe(this.config.env), { cloudPath: s2, filePath: r2, onUploadProgress: i2, fileType: o2 = "image" } = e2; - return n2.send("storage.getUploadMetadata", { path: s2 }).then((e3) => { - const { data: { url: a2, authorization: c2, token: u2, fileId: l2, cosFileId: h2 }, requestId: d2 } = e3, p2 = { key: s2, signature: c2, "x-cos-meta-fileid": h2, success_action_status: "201", "x-cos-security-token": u2 }; - n2.upload({ url: a2, data: p2, file: r2, name: s2, fileType: o2, onUploadProgress: i2 }).then((e4) => { - 201 === e4.statusCode ? t2(null, { fileID: l2, requestId: d2 }) : t2(new te({ code: "STORAGE_REQUEST_FAIL", message: `STORAGE_REQUEST_FAIL: ${e4.data}` })); - }).catch((e4) => { - t2(e4); - }); - }).catch((e3) => { - t2(e3); - }), t2.promise; - }, at = function(e2, t2) { - t2 = t2 || ve(); - const n2 = Qe(this.config.env), { cloudPath: s2 } = e2; - return n2.send("storage.getUploadMetadata", { path: s2 }).then((e3) => { - t2(null, e3); - }).catch((e3) => { - t2(e3); - }), t2.promise; - }, ct = function({ fileList: e2 }, t2) { - if (t2 = t2 || ve(), !e2 || !Array.isArray(e2)) - return { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }; - for (let t3 of e2) - if (!t3 || "string" != typeof t3) - return { code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }; - const n2 = { fileid_list: e2 }; - return Qe(this.config.env).send("storage.batchDeleteFile", n2).then((e3) => { - e3.code ? t2(null, e3) : t2(null, { fileList: e3.data.delete_list, requestId: e3.requestId }); - }).catch((e3) => { - t2(e3); - }), t2.promise; - }, ut = function({ fileList: e2 }, t2) { - t2 = t2 || ve(), e2 && Array.isArray(e2) || t2(null, { code: "INVALID_PARAM", message: "fileList必须是非空的数组" }); - let n2 = []; - for (let s3 of e2) - "object" == typeof s3 ? (s3.hasOwnProperty("fileID") && s3.hasOwnProperty("maxAge") || t2(null, { code: "INVALID_PARAM", message: "fileList的元素必须是包含fileID和maxAge的对象" }), n2.push({ fileid: s3.fileID, max_age: s3.maxAge })) : "string" == typeof s3 ? n2.push({ fileid: s3 }) : t2(null, { code: "INVALID_PARAM", message: "fileList的元素必须是字符串" }); - const s2 = { file_list: n2 }; - return Qe(this.config.env).send("storage.batchGetDownloadUrl", s2).then((e3) => { - e3.code ? t2(null, e3) : t2(null, { fileList: e3.data.download_list, requestId: e3.requestId }); - }).catch((e3) => { - t2(e3); - }), t2.promise; - }, lt = async function({ fileID: e2 }, t2) { - const n2 = (await ut.call(this, { fileList: [{ fileID: e2, maxAge: 600 }] })).fileList[0]; - if ("SUCCESS" !== n2.code) - return t2 ? t2(n2) : new Promise((e3) => { - e3(n2); - }); - const s2 = Qe(this.config.env); - let r2 = n2.download_url; - if (r2 = encodeURI(r2), !t2) - return s2.download({ url: r2 }); - t2(await s2.download({ url: r2 })); - }, ht = function({ name: e2, data: t2, query: n2, parse: s2, search: r2 }, i2) { - const o2 = i2 || ve(); - let a2; - try { - a2 = t2 ? JSON.stringify(t2) : ""; - } catch (e3) { - return Promise.reject(e3); - } - if (!e2) - return Promise.reject(new te({ code: "PARAM_ERROR", message: "函数名不能为空" })); - const c2 = { inQuery: n2, parse: s2, search: r2, function_name: e2, request_data: a2 }; - return Qe(this.config.env).send("functions.invokeFunction", c2).then((e3) => { - if (e3.code) - o2(null, e3); - else { - let t3 = e3.data.response_data; - if (s2) - o2(null, { result: t3, requestId: e3.requestId }); - else - try { - t3 = JSON.parse(e3.data.response_data), o2(null, { result: t3, requestId: e3.requestId }); - } catch (e4) { - o2(new te({ message: "response data must be json" })); - } - } - return o2.promise; - }).catch((e3) => { - o2(e3); - }), o2.promise; - }, dt = { timeout: 15e3, persistence: "session" }, pt = {}; - class ft { - constructor(e2) { - this.config = e2 || this.config, this.authObj = void 0; - } - init(e2) { - switch (Ae.adapter || (this.requestClient = new Ae.adapter.reqClass({ timeout: e2.timeout || 5e3, timeoutMsg: `请求在${(e2.timeout || 5e3) / 1e3}s内未完成,已中断` })), this.config = { ...dt, ...e2 }, true) { - case this.config.timeout > 6e5: - console.warn("timeout大于可配置上限[10分钟],已重置为上限数值"), this.config.timeout = 6e5; - break; - case this.config.timeout < 100: - console.warn("timeout小于可配置下限[100ms],已重置为下限数值"), this.config.timeout = 100; - } - return new ft(this.config); - } - auth({ persistence: e2 } = {}) { - if (this.authObj) - return this.authObj; - const t2 = e2 || Ae.adapter.primaryStorage || dt.persistence; - var n2; - return t2 !== this.config.persistence && (this.config.persistence = t2), function(e3) { - const { env: t3 } = e3; - Oe[t3] = new xe(e3), Ee[t3] = new xe({ ...e3, persistence: "local" }); - }(this.config), n2 = this.config, Ye[n2.env] = new Ge(n2), this.authObj = new it(this.config), this.authObj; - } - on(e2, t2) { - return De.apply(this, [e2, t2]); - } - off(e2, t2) { - return qe.apply(this, [e2, t2]); - } - callFunction(e2, t2) { - return ht.apply(this, [e2, t2]); - } - deleteFile(e2, t2) { - return ct.apply(this, [e2, t2]); - } - getTempFileURL(e2, t2) { - return ut.apply(this, [e2, t2]); - } - downloadFile(e2, t2) { - return lt.apply(this, [e2, t2]); - } - uploadFile(e2, t2) { - return ot.apply(this, [e2, t2]); - } - getUploadMetadata(e2, t2) { - return at.apply(this, [e2, t2]); - } - registerExtension(e2) { - pt[e2.name] = e2; - } - async invokeExtension(e2, t2) { - const n2 = pt[e2]; - if (!n2) - throw new te({ message: `扩展${e2} 必须先注册` }); - return await n2.invoke(t2, this); - } - useAdapters(e2) { - const { adapter: t2, runtime: n2 } = ke(e2) || {}; - t2 && (Ae.adapter = t2), n2 && (Ae.runtime = n2); - } - } - var gt = new ft(); - function mt(e2, t2, n2) { - void 0 === n2 && (n2 = {}); - var s2 = /\?/.test(t2), r2 = ""; - for (var i2 in n2) - "" === r2 ? !s2 && (t2 += "?") : r2 += "&", r2 += i2 + "=" + encodeURIComponent(n2[i2]); - return /^http(s)?:\/\//.test(t2 += r2) ? t2 : "" + e2 + t2; - } - class yt { - post(e2) { - const { url: t2, data: n2, headers: s2 } = e2; - return new Promise((e3, r2) => { - ne.request({ url: mt("https:", t2), data: n2, method: "POST", header: s2, success(t3) { - e3(t3); - }, fail(e4) { - r2(e4); - } }); - }); - } - upload(e2) { - return new Promise((t2, n2) => { - const { url: s2, file: r2, data: i2, headers: o2, fileType: a2 } = e2, c2 = ne.uploadFile({ url: mt("https:", s2), name: "file", formData: Object.assign({}, i2), filePath: r2, fileType: a2, header: o2, success(e3) { - const n3 = { statusCode: e3.statusCode, data: e3.data || {} }; - 200 === e3.statusCode && i2.success_action_status && (n3.statusCode = parseInt(i2.success_action_status, 10)), t2(n3); - }, fail(e3) { - n2(new Error(e3.errMsg || "uploadFile:fail")); - } }); - "function" == typeof e2.onUploadProgress && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((t3) => { - e2.onUploadProgress({ loaded: t3.totalBytesSent, total: t3.totalBytesExpectedToSend }); - }); - }); - } - } - const _t = { setItem(e2, t2) { - ne.setStorageSync(e2, t2); - }, getItem: (e2) => ne.getStorageSync(e2), removeItem(e2) { - ne.removeStorageSync(e2); - }, clear() { - ne.clearStorageSync(); - } }; - var wt = { genAdapter: function() { - return { root: {}, reqClass: yt, localStorage: _t, primaryStorage: "local" }; - }, isMatch: function() { - return true; - }, runtime: "uni_app" }; - gt.useAdapters(wt); - const vt = gt, It = vt.init; - vt.init = function(e2) { - e2.env = e2.spaceId; - const t2 = It.call(this, e2); - t2.config.provider = "tencent", t2.config.spaceId = e2.spaceId; - const n2 = t2.auth; - return t2.auth = function(e3) { - const t3 = n2.call(this, e3); - return ["linkAndRetrieveDataWithTicket", "signInAnonymously", "signOut", "getAccessToken", "getLoginState", "signInWithTicket", "getUserInfo"].forEach((e4) => { - var n3; - t3[e4] = (n3 = t3[e4], function(e5) { - e5 = e5 || {}; - const { success: t4, fail: s2, complete: r2 } = ee(e5); - if (!(t4 || s2 || r2)) - return n3.call(this, e5); - n3.call(this, e5).then((e6) => { - t4 && t4(e6), r2 && r2(e6); - }, (e6) => { - s2 && s2(e6), r2 && r2(e6); - }); - }).bind(t3); - }), t3; - }, t2.customAuth = t2.auth, t2; - }; - var St = vt; - var bt = class extends de { - getAccessToken() { - return new Promise((e2, t2) => { - const n2 = "Anonymous_Access_token"; - this.setAccessToken(n2), e2(n2); - }); - } - setupRequest(e2, t2) { - const n2 = Object.assign({}, e2, { spaceId: this.config.spaceId, timestamp: Date.now() }), s2 = { "Content-Type": "application/json" }; - "auth" !== t2 && (n2.token = this.accessToken, s2["x-basement-token"] = this.accessToken), s2["x-serverless-sign"] = he.sign(n2, this.config.clientSecret); - const r2 = le(); - s2["x-client-info"] = encodeURIComponent(JSON.stringify(r2)); - const { token: i2 } = re(); - return s2["x-client-token"] = i2, { url: this.config.requestUrl, method: "POST", data: n2, dataType: "json", header: JSON.parse(JSON.stringify(s2)) }; - } - uploadFileToOSS({ url: e2, formData: t2, name: n2, filePath: s2, fileType: r2, onUploadProgress: i2 }) { - return new Promise((o2, a2) => { - const c2 = this.adapter.uploadFile({ url: e2, formData: t2, name: n2, filePath: s2, fileType: r2, success(e3) { - e3 && e3.statusCode < 400 ? o2(e3) : a2(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); - }, fail(e3) { - a2(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" })); - } }); - "function" == typeof i2 && c2 && "function" == typeof c2.onProgressUpdate && c2.onProgressUpdate((e3) => { - i2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend }); - }); - }); - } - uploadFile({ filePath: e2, cloudPath: t2, fileType: n2 = "image", onUploadProgress: s2 }) { - if (!t2) - throw new te({ code: "CLOUDPATH_REQUIRED", message: "cloudPath不可为空" }); - let r2; - return this.getOSSUploadOptionsFromPath({ cloudPath: t2 }).then((t3) => { - const { url: i2, formData: o2, name: a2 } = t3.result; - r2 = t3.result.fileUrl; - const c2 = { url: i2, formData: o2, name: a2, filePath: e2, fileType: n2 }; - return this.uploadFileToOSS(Object.assign({}, c2, { onUploadProgress: s2 })); - }).then(() => this.reportOSSUpload({ cloudPath: t2 })).then((t3) => new Promise((n3, s3) => { - t3.success ? n3({ success: true, filePath: e2, fileID: r2 }) : s3(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); - })); - } - deleteFile({ fileList: e2 }) { - const t2 = { method: "serverless.file.resource.delete", params: JSON.stringify({ fileList: e2 }) }; - return this.request(this.setupRequest(t2)).then((e3) => { - if (e3.success) - return e3.result; - throw new te({ code: "DELETE_FILE_FAILED", message: "删除文件失败" }); - }); - } - getTempFileURL({ fileList: e2, maxAge: t2 } = {}) { - if (!Array.isArray(e2) || 0 === e2.length) - throw new te({ code: "INVALID_PARAM", message: "fileList的元素必须是非空的字符串" }); - const n2 = { method: "serverless.file.resource.getTempFileURL", params: JSON.stringify({ fileList: e2, maxAge: t2 }) }; - return this.request(this.setupRequest(n2)).then((e3) => { - if (e3.success) - return { fileList: e3.result.fileList.map((e4) => ({ fileID: e4.fileID, tempFileURL: e4.tempFileURL })) }; - throw new te({ code: "GET_TEMP_FILE_URL_FAILED", message: "获取临时文件链接失败" }); - }); - } - }; - var kt = { init(e2) { - const t2 = new bt(e2), n2 = { signInAnonymously: function() { - return t2.authorize(); - }, getLoginState: function() { - return Promise.resolve(false); - } }; - return t2.auth = function() { - return n2; - }, t2.customAuth = t2.auth, t2; - } }, At = n(function(e2, t2) { - e2.exports = r.enc.Hex; - }); - function Pt(e2 = "", t2 = {}) { - const { data: n2, functionName: s2, method: r2, headers: i2, signHeaderKeys: o2 = [], config: a2 } = t2, c2 = Date.now(), u2 = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, function(e3) { - var t3 = 16 * Math.random() | 0; - return ("x" === e3 ? t3 : 3 & t3 | 8).toString(16); - }), l2 = Object.assign({}, i2, { "x-from-app-id": a2.appId, "x-from-env-id": a2.envId, "x-to-env-id": a2.envId, "x-from-instance-id": c2, "x-from-function-name": s2, "x-client-timestamp": c2, "x-alipay-source": "client", "x-request-id": u2, "x-alipay-callid": u2 }), h2 = ["x-from-app-id", "x-from-env-id", "x-to-env-id", "x-from-instance-id", "x-from-function-name", "x-client-timestamp"].concat(o2), [d2 = "", p2 = ""] = e2.split("?") || [], f2 = function(e3) { - const t3 = e3.signedHeaders.join(";"), n3 = e3.signedHeaders.map((t4) => `${t4.toLowerCase()}:${e3.headers[t4]} -`).join(""), s3 = _e(e3.body).toString(At), r3 = `${e3.method.toUpperCase()} -${e3.path} -${e3.query} -${n3} -${t3} -${s3} -`, i3 = _e(r3).toString(At), o3 = `HMAC-SHA256 -${e3.timestamp} -${i3} -`, a3 = we(o3, e3.secretKey).toString(At); - return `HMAC-SHA256 Credential=${e3.secretId}, SignedHeaders=${t3}, Signature=${a3}`; - }({ path: d2, query: p2, method: r2, headers: l2, timestamp: c2, body: JSON.stringify(n2), secretId: a2.secretId, secretKey: a2.secretKey, signedHeaders: h2.sort() }); - return { url: `${a2.endpoint}${e2.replace(/^\//, "")}`, headers: Object.assign({}, l2, { Authorization: f2 }) }; - } - function Tt({ url: e2, data: t2, method: n2 = "POST", headers: s2 = {} }) { - return new Promise((r2, i2) => { - ne.request({ url: e2, method: n2, data: t2, header: s2, dataType: "json", complete: (e3 = {}) => { - if (!e3.statusCode || e3.statusCode >= 400) { - const { errMsg: t3 } = e3.data || {}; - return i2(new te({ code: "SYS_ERR", message: t3 || e3.errMsg || "request:fail" })); - } - r2({ status: e3.statusCode, data: e3.data, headers: e3.header }); - } }); - }); - } - function Ct(e2, t2) { - const { path: n2, data: s2, method: r2 = "GET" } = e2, { url: i2, headers: o2 } = Pt(n2, { functionName: "", data: s2, method: r2, headers: { "x-alipay-cloud-mode": "oss", "x-data-api-type": "oss", "x-expire-timestamp": Date.now() + 6e4 }, signHeaderKeys: ["x-data-api-type", "x-expire-timestamp"], config: t2 }); - return Tt({ url: i2, data: s2, method: r2, headers: o2 }).then((e3) => { - const t3 = e3.data || {}; - if (!t3.success) - throw new te({ code: e3.code, message: e3.message, requestId: e3.trace_id }); - return t3.data || {}; - }).catch((e3) => { - throw new te({ code: e3.errCode, message: e3.errMsg, requestId: e3.requestId }); - }); - } - function xt(e2 = "") { - const t2 = e2.trim().replace(/^cloud:\/\//, ""), n2 = t2.indexOf("/"); - if (n2 <= 0) - throw new te({ code: "INVALID_PARAM", message: "fileID不合法" }); - const s2 = t2.substring(0, n2), r2 = t2.substring(n2 + 1); - return s2 !== this.config.envId && console.warn("file ".concat(e2, " does not belong to env ").concat(this.config.envId)), r2; - } - var Ot = class { - constructor(e2) { - ["spaceId", "spaceAppId", "accessKey", "secretKey"].forEach((t3) => { - if (!Object.prototype.hasOwnProperty.call(e2, t3)) - throw new Error(`${t3} required`); - }); - const { spaceAppId: t2, accessKey: n2, ...s2 } = e2; - this.config = Object.assign({}, { endpoint: e2.endpoint || `https://${e2.envId}.api-hz.cloudbasefunction.cn/`, envId: e2.spaceId, appId: t2, secretId: n2 }, s2); - } - callFunction(e2) { - return function(e3, t2) { - const { name: n2, data: s2 } = e3, r2 = "POST", { url: i2, headers: o2 } = Pt("/functions/invokeFunction", { functionName: n2, data: s2, method: r2, headers: { "x-to-function-name": n2 }, signHeaderKeys: ["x-to-function-name"], config: t2 }); - return Tt({ url: i2, data: s2, method: r2, headers: o2 }).then((e4) => (e4.errCode = 0, e4.success = true, e4.requestId = e4.requestID || e4.requestId, e4.result = e4.data, delete e4.requestID, delete e4.data, e4)).catch((e4) => { - throw new te({ code: e4.errCode, message: e4.errMsg, requestId: e4.requestId }); - }); - }(e2, this.config); - } - uploadFileToOSS({ url: e2, filePath: t2, fileType: n2, formData: s2, onUploadProgress: r2 }) { - return new Promise((i2, o2) => { - const a2 = ne.uploadFile({ url: e2, filePath: t2, fileType: n2, formData: s2, success(e3) { - e3 && e3.statusCode < 400 ? i2(e3) : o2(new te({ code: "UPLOAD_FAILED", message: "文件上传失败" })); - }, fail(e3) { - o2(new te({ code: e3.code || "UPLOAD_FAILED", message: e3.message || e3.errMsg || "文件上传失败" })); - } }); - "function" == typeof r2 && a2 && "function" == typeof a2.onProgressUpdate && a2.onProgressUpdate((e3) => { - r2({ loaded: e3.totalBytesSent, total: e3.totalBytesExpectedToSend }); - }); - }); - } - async uploadFile({ filePath: e2, cloudPath: t2 = "", fileType: n2 = "image", onUploadProgress: s2 }) { - if ("string" !== f(t2)) - throw new te({ code: "INVALID_PARAM", message: "cloudPath必须为字符串类型" }); - if (!(t2 = t2.trim())) - throw new te({ code: "INVALID_PARAM", message: "cloudPath不可为空" }); - if (/:\/\//.test(t2)) - throw new te({ code: "INVALID_PARAM", message: "cloudPath不合法" }); - const r2 = await Ct({ path: "/".concat(t2.replace(/^\//, ""), "?post_url") }, this.config), { file_id: i2, upload_url: o2, form_data: a2 } = r2, c2 = a2 && a2.reduce((e3, t3) => (e3[t3.key] = t3.value, e3), {}); - return this.uploadFileToOSS({ url: o2, filePath: e2, fileType: n2, formData: c2, onUploadProgress: s2 }).then(() => ({ fileID: i2 })); - } - async getTempFileURL({ fileList: e2 }) { - return new Promise((t2, n2) => { - (!e2 || e2.length < 0) && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList不能为空数组" })), e2.length > 50 && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList数组长度不能超过50" })); - const s2 = []; - for (const t3 of e2) { - "string" !== f(t3) && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList的元素必须是非空的字符串" })); - const e3 = xt.call(this, t3); - s2.push({ file_id: e3, expire: 600 }); - } - Ct({ path: "/?download_url", data: { file_list: s2 }, method: "POST" }, this.config).then((e3) => { - const { file_list: n3 = [] } = e3; - t2({ fileList: n3.map((e4) => ({ fileID: e4.file_id, tempFileURL: e4.download_url })) }); - }).catch((e3) => n2(e3)); - }); - } - async deleteFile({ fileList: e2 }) { - return new Promise((t2, n2) => { - (!e2 || e2.length < 0) && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList不能为空数组" })), e2.length > 50 && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList数组长度不能超过50" })); - const s2 = []; - for (const t3 of e2) - "string" !== f(t3) && n2(new te({ errCode: "INVALID_PARAM", errMsg: "fileList的元素必须是非空的字符串" })), s2.push(xt.call(this, t3)); - Ct({ path: "/?delete", data: { file_list: s2 }, method: "POST" }, this.config).then((e3) => { - const { file_list: n3 = [] } = e3; - t2({ fileList: n3.map((e4) => ({ fileID: e4.file_id, tempFileURL: e4.download_url })) }); - }).catch((e3) => n2(e3)); - }); - } - }; - var Et = { init: (e2) => { - e2.envId = e2.spaceId, e2.provider = "alipay"; - const t2 = new Ot(e2); - return t2.auth = function() { - return { signInAnonymously: function() { - return Promise.resolve(); - }, getLoginState: function() { - return Promise.resolve(true); - } }; - }, t2; - } }; - function Lt({ data: e2 }) { - let t2; - t2 = le(); - const n2 = JSON.parse(JSON.stringify(e2 || {})); - if (Object.assign(n2, { clientInfo: t2 }), !n2.uniIdToken) { - const { token: e3 } = re(); - e3 && (n2.uniIdToken = e3); - } - return n2; - } - async function Rt({ name: e2, data: t2 } = {}) { - await this.__dev__.initLocalNetwork(); - const { localAddress: n2, localPort: s2 } = this.__dev__, r2 = { aliyun: "aliyun", tencent: "tcb", alipay: "alipay" }[this.config.provider], i2 = this.config.spaceId, o2 = `http://${n2}:${s2}/system/check-function`, a2 = `http://${n2}:${s2}/cloudfunctions/${e2}`; - return new Promise((t3, n3) => { - ne.request({ method: "POST", url: o2, data: { name: e2, platform: P, provider: r2, spaceId: i2 }, timeout: 3e3, success(e3) { - t3(e3); - }, fail() { - t3({ data: { code: "NETWORK_ERROR", message: "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下,自动切换为已部署的云函数。" } }); - } }); - }).then(({ data: e3 } = {}) => { - const { code: t3, message: n3 } = e3 || {}; - return { code: 0 === t3 ? 0 : t3 || "SYS_ERR", message: n3 || "SYS_ERR" }; - }).then(({ code: n3, message: s3 }) => { - if (0 !== n3) { - switch (n3) { - case "MODULE_ENCRYPTED": - console.error(`此云函数(${e2})依赖加密公共模块不可本地调试,自动切换为云端已部署的云函数`); - break; - case "FUNCTION_ENCRYPTED": - console.error(`此云函数(${e2})已加密不可本地调试,自动切换为云端已部署的云函数`); - break; - case "ACTION_ENCRYPTED": - console.error(s3 || "需要访问加密的uni-clientDB-action,自动切换为云端环境"); - break; - case "NETWORK_ERROR": { - const e3 = "连接本地调试服务失败,请检查客户端是否和主机在同一局域网下"; - throw console.error(e3), new Error(e3); - } - case "SWITCH_TO_CLOUD": - break; - default: { - const e3 = `检测本地调试服务出现错误:${s3},请检查网络环境或重启客户端再试`; - throw console.error(e3), new Error(e3); - } - } - return this._callCloudFunction({ name: e2, data: t2 }); - } - return new Promise((e3, n4) => { - const s4 = Lt.call(this, { data: t2 }); - ne.request({ method: "POST", url: a2, data: { provider: r2, platform: P, param: s4 }, success: ({ statusCode: t3, data: s5 } = {}) => !t3 || t3 >= 400 ? n4(new te({ code: s5.code || "SYS_ERR", message: s5.message || "request:fail" })) : e3({ result: s5 }), fail(e4) { - n4(new te({ code: e4.code || e4.errCode || "SYS_ERR", message: e4.message || e4.errMsg || "request:fail" })); - } }); - }); - }); - } - const Ut = [{ rule: /fc_function_not_found|FUNCTION_NOT_FOUND/, content: ",云函数[{functionName}]在云端不存在,请检查此云函数名称是否正确以及该云函数是否已上传到服务空间", mode: "append" }]; - var Nt = /[\\^$.*+?()[\]{}|]/g, Dt = RegExp(Nt.source); - function Mt(e2, t2, n2) { - return e2.replace(new RegExp((s2 = t2) && Dt.test(s2) ? s2.replace(Nt, "\\$&") : s2, "g"), n2); - var s2; - } - const Ft = "request", Kt = "response", jt = "both"; - const kn = { code: 2e4, message: "System error" }, An = { code: 20101, message: "Invalid client" }; - function Cn(e2) { - const { errSubject: t2, subject: n2, errCode: s2, errMsg: r2, code: i2, message: o2, cause: a2 } = e2 || {}; - return new te({ subject: t2 || n2 || "uni-secure-network", code: s2 || i2 || kn.code, message: r2 || o2, cause: a2 }); - } - let On; - function Nn({ secretType: e2 } = {}) { - return e2 === Ft || e2 === Kt || e2 === jt; - } - function Dn({ name: e2, data: t2 = {} } = {}) { - return "DCloud-clientDB" === e2 && "encryption" === t2.redirectTo && "getAppClientKey" === t2.action; - } - function Mn({ provider: e2, spaceId: t2, functionName: n2 } = {}) { - const { appId: s2, uniPlatform: r2, osName: i2 } = ce(); - let o2 = r2; - "app" === r2 && (o2 = i2); - const a2 = function({ provider: e3, spaceId: t3 } = {}) { - const n3 = A; - if (!n3) - return {}; - e3 = function(e4) { - return "tencent" === e4 ? "tcb" : e4; - }(e3); - const s3 = n3.find((n4) => n4.provider === e3 && n4.spaceId === t3); - return s3 && s3.config; - }({ provider: e2, spaceId: t2 }); - if (!a2 || !a2.accessControl || !a2.accessControl.enable) - return false; - const c2 = a2.accessControl.function || {}, u2 = Object.keys(c2); - if (0 === u2.length) - return true; - const l2 = function(e3, t3) { - let n3, s3, r3; - for (let i3 = 0; i3 < e3.length; i3++) { - const o3 = e3[i3]; - o3 !== t3 ? "*" !== o3 ? o3.split(",").map((e4) => e4.trim()).indexOf(t3) > -1 && (s3 = o3) : r3 = o3 : n3 = o3; - } - return n3 || s3 || r3; - }(u2, n2); - if (!l2) - return false; - if ((c2[l2] || []).find((e3 = {}) => e3.appId === s2 && (e3.platform || "").toLowerCase() === o2.toLowerCase())) - return true; - throw console.error(`此应用[appId: ${s2}, platform: ${o2}]不在云端配置的允许访问的应用列表内,参考:https://uniapp.dcloud.net.cn/uniCloud/secure-network.html#verify-client`), Cn(An); - } - function qn({ functionName: e2, result: t2, logPvd: n2 }) { - if (this.__dev__.debugLog && t2 && t2.requestId) { - const s2 = JSON.stringify({ spaceId: this.config.spaceId, functionName: e2, requestId: t2.requestId }); - console.log(`[${n2}-request]${s2}[/${n2}-request]`); - } - } - function Fn(e2) { - const t2 = e2.callFunction, n2 = function(n3) { - const s2 = n3.name; - n3.data = Lt.call(e2, { data: n3.data }); - const r2 = { aliyun: "aliyun", tencent: "tcb", tcb: "tcb", alipay: "alipay" }[this.config.provider], i2 = Nn(n3), o2 = Dn(n3), a2 = i2 || o2; - return t2.call(this, n3).then((e3) => (e3.errCode = 0, !a2 && qn.call(this, { functionName: s2, result: e3, logPvd: r2 }), Promise.resolve(e3)), (e3) => (!a2 && qn.call(this, { functionName: s2, result: e3, logPvd: r2 }), e3 && e3.message && (e3.message = function({ message: e4 = "", extraInfo: t3 = {}, formatter: n4 = [] } = {}) { - for (let s3 = 0; s3 < n4.length; s3++) { - const { rule: r3, content: i3, mode: o3 } = n4[s3], a3 = e4.match(r3); - if (!a3) - continue; - let c2 = i3; - for (let e5 = 1; e5 < a3.length; e5++) - c2 = Mt(c2, `{$${e5}}`, a3[e5]); - for (const e5 in t3) - c2 = Mt(c2, `{${e5}}`, t3[e5]); - return "replace" === o3 ? c2 : e4 + c2; - } - return e4; - }({ message: `[${n3.name}]: ${e3.message}`, formatter: Ut, extraInfo: { functionName: s2 } })), Promise.reject(e3))); - }; - e2.callFunction = function(t3) { - const { provider: s2, spaceId: r2 } = e2.config, i2 = t3.name; - let o2, a2; - if (t3.data = t3.data || {}, e2.__dev__.debugInfo && !e2.__dev__.debugInfo.forceRemote && C ? (e2._callCloudFunction || (e2._callCloudFunction = n2, e2._callLocalFunction = Rt), o2 = Rt) : o2 = n2, o2 = o2.bind(e2), Dn(t3)) - a2 = n2.call(e2, t3); - else if (Nn(t3)) { - a2 = new On({ secretType: t3.secretType, uniCloudIns: e2 }).wrapEncryptDataCallFunction(n2.bind(e2))(t3); - } else if (Mn({ provider: s2, spaceId: r2, functionName: i2 })) { - a2 = new On({ secretType: t3.secretType, uniCloudIns: e2 }).wrapVerifyClientCallFunction(n2.bind(e2))(t3); - } else - a2 = o2(t3); - return Object.defineProperty(a2, "result", { get: () => (console.warn("当前返回结果为Promise类型,不可直接访问其result属性,详情请参考:https://uniapp.dcloud.net.cn/uniCloud/faq?id=promise"), {}) }), a2; - }; - } - On = class { - constructor() { - throw Cn({ message: `Platform ${P} is not enabled, please check whether secure network module is enabled in your manifest.json` }); - } - }; - const Kn = Symbol("CLIENT_DB_INTERNAL"); - function jn(e2, t2) { - return e2.then = "DoNotReturnProxyWithAFunctionNamedThen", e2._internalType = Kn, e2.inspect = null, e2.__v_raw = void 0, new Proxy(e2, { get(e3, n2, s2) { - if ("_uniClient" === n2) - return null; - if ("symbol" == typeof n2) - return e3[n2]; - if (n2 in e3 || "string" != typeof n2) { - const t3 = e3[n2]; - return "function" == typeof t3 ? t3.bind(e3) : t3; - } - return t2.get(e3, n2, s2); - } }); - } - function Bn(e2) { - return { on: (t2, n2) => { - e2[t2] = e2[t2] || [], e2[t2].indexOf(n2) > -1 || e2[t2].push(n2); - }, off: (t2, n2) => { - e2[t2] = e2[t2] || []; - const s2 = e2[t2].indexOf(n2); - -1 !== s2 && e2[t2].splice(s2, 1); - } }; - } - const $n = ["db.Geo", "db.command", "command.aggregate"]; - function Wn(e2, t2) { - return $n.indexOf(`${e2}.${t2}`) > -1; - } - function Hn(e2) { - switch (f(e2 = se(e2))) { - case "array": - return e2.map((e3) => Hn(e3)); - case "object": - return e2._internalType === Kn || Object.keys(e2).forEach((t2) => { - e2[t2] = Hn(e2[t2]); - }), e2; - case "regexp": - return { $regexp: { source: e2.source, flags: e2.flags } }; - case "date": - return { $date: e2.toISOString() }; - default: - return e2; - } - } - function zn(e2) { - return e2 && e2.content && e2.content.$method; - } - class Jn { - constructor(e2, t2, n2) { - this.content = e2, this.prevStage = t2 || null, this.udb = null, this._database = n2; - } - toJSON() { - let e2 = this; - const t2 = [e2.content]; - for (; e2.prevStage; ) - e2 = e2.prevStage, t2.push(e2.content); - return { $db: t2.reverse().map((e3) => ({ $method: e3.$method, $param: Hn(e3.$param) })) }; - } - toString() { - return JSON.stringify(this.toJSON()); - } - getAction() { - const e2 = this.toJSON().$db.find((e3) => "action" === e3.$method); - return e2 && e2.$param && e2.$param[0]; - } - getCommand() { - return { $db: this.toJSON().$db.filter((e2) => "action" !== e2.$method) }; - } - get isAggregate() { - let e2 = this; - for (; e2; ) { - const t2 = zn(e2), n2 = zn(e2.prevStage); - if ("aggregate" === t2 && "collection" === n2 || "pipeline" === t2) - return true; - e2 = e2.prevStage; - } - return false; - } - get isCommand() { - let e2 = this; - for (; e2; ) { - if ("command" === zn(e2)) - return true; - e2 = e2.prevStage; - } - return false; - } - get isAggregateCommand() { - let e2 = this; - for (; e2; ) { - const t2 = zn(e2), n2 = zn(e2.prevStage); - if ("aggregate" === t2 && "command" === n2) - return true; - e2 = e2.prevStage; - } - return false; - } - getNextStageFn(e2) { - const t2 = this; - return function() { - return Vn({ $method: e2, $param: Hn(Array.from(arguments)) }, t2, t2._database); - }; - } - get count() { - return this.isAggregate ? this.getNextStageFn("count") : function() { - return this._send("count", Array.from(arguments)); - }; - } - get remove() { - return this.isCommand ? this.getNextStageFn("remove") : function() { - return this._send("remove", Array.from(arguments)); - }; - } - get() { - return this._send("get", Array.from(arguments)); - } - get add() { - return this.isCommand ? this.getNextStageFn("add") : function() { - return this._send("add", Array.from(arguments)); - }; - } - update() { - return this._send("update", Array.from(arguments)); - } - end() { - return this._send("end", Array.from(arguments)); - } - get set() { - return this.isCommand ? this.getNextStageFn("set") : function() { - throw new Error("JQL禁止使用set方法"); - }; - } - _send(e2, t2) { - const n2 = this.getAction(), s2 = this.getCommand(); - if (s2.$db.push({ $method: e2, $param: Hn(t2) }), S) { - const e3 = s2.$db.find((e4) => "collection" === e4.$method), t3 = e3 && e3.$param; - t3 && 1 === t3.length && "string" == typeof e3.$param[0] && e3.$param[0].indexOf(",") > -1 && console.warn("检测到使用JQL语法联表查询时,未使用getTemp先过滤主表数据,在主表数据量大的情况下可能会查询缓慢。\n- 如何优化请参考此文档:https://uniapp.dcloud.net.cn/uniCloud/jql?id=lookup-with-temp \n- 如果主表数据量很小请忽略此信息,项目发行时不会出现此提示。"); - } - return this._database._callCloudFunction({ action: n2, command: s2 }); - } - } - function Vn(e2, t2, n2) { - return jn(new Jn(e2, t2, n2), { get(e3, t3) { - let s2 = "db"; - return e3 && e3.content && (s2 = e3.content.$method), Wn(s2, t3) ? Vn({ $method: t3 }, e3, n2) : function() { - return Vn({ $method: t3, $param: Hn(Array.from(arguments)) }, e3, n2); - }; - } }); - } - function Gn({ path: e2, method: t2 }) { - return class { - constructor() { - this.param = Array.from(arguments); - } - toJSON() { - return { $newDb: [...e2.map((e3) => ({ $method: e3 })), { $method: t2, $param: this.param }] }; - } - toString() { - return JSON.stringify(this.toJSON()); - } - }; - } - function Yn(e2, t2 = {}) { - return jn(new e2(t2), { get: (e3, t3) => Wn("db", t3) ? Vn({ $method: t3 }, null, e3) : function() { - return Vn({ $method: t3, $param: Hn(Array.from(arguments)) }, null, e3); - } }); - } - class Qn extends class { - constructor({ uniClient: e2 = {}, isJQL: t2 = false } = {}) { - this._uniClient = e2, this._authCallBacks = {}, this._dbCallBacks = {}, e2._isDefault && (this._dbCallBacks = L("_globalUniCloudDatabaseCallback")), t2 || (this.auth = Bn(this._authCallBacks)), this._isJQL = t2, Object.assign(this, Bn(this._dbCallBacks)), this.env = jn({}, { get: (e3, t3) => ({ $env: t3 }) }), this.Geo = jn({}, { get: (e3, t3) => Gn({ path: ["Geo"], method: t3 }) }), this.serverDate = Gn({ path: [], method: "serverDate" }), this.RegExp = Gn({ path: [], method: "RegExp" }); - } - getCloudEnv(e2) { - if ("string" != typeof e2 || !e2.trim()) - throw new Error("getCloudEnv参数错误"); - return { $env: e2.replace("$cloudEnv_", "") }; - } - _callback(e2, t2) { - const n2 = this._dbCallBacks; - n2[e2] && n2[e2].forEach((e3) => { - e3(...t2); - }); - } - _callbackAuth(e2, t2) { - const n2 = this._authCallBacks; - n2[e2] && n2[e2].forEach((e3) => { - e3(...t2); - }); - } - multiSend() { - const e2 = Array.from(arguments), t2 = e2.map((e3) => { - const t3 = e3.getAction(), n2 = e3.getCommand(); - if ("getTemp" !== n2.$db[n2.$db.length - 1].$method) - throw new Error("multiSend只支持子命令内使用getTemp"); - return { action: t3, command: n2 }; - }); - return this._callCloudFunction({ multiCommand: t2, queryList: e2 }); - } - } { - _parseResult(e2) { - return this._isJQL ? e2.result : e2; - } - _callCloudFunction({ action: e2, command: t2, multiCommand: n2, queryList: s2 }) { - function r2(e3, t3) { - if (n2 && s2) - for (let n3 = 0; n3 < s2.length; n3++) { - const r3 = s2[n3]; - r3.udb && "function" == typeof r3.udb.setResult && (t3 ? r3.udb.setResult(t3) : r3.udb.setResult(e3.result.dataList[n3])); - } - } - const i2 = this, o2 = this._isJQL ? "databaseForJQL" : "database"; - function a2(e3) { - return i2._callback("error", [e3]), M(q(o2, "fail"), e3).then(() => M(q(o2, "complete"), e3)).then(() => (r2(null, e3), Y(j, { type: W, content: e3 }), Promise.reject(e3))); - } - const c2 = M(q(o2, "invoke")), u2 = this._uniClient; - return c2.then(() => u2.callFunction({ name: "DCloud-clientDB", type: l, data: { action: e2, command: t2, multiCommand: n2 } })).then((e3) => { - const { code: t3, message: n3, token: s3, tokenExpired: c3, systemInfo: u3 = [] } = e3.result; - if (u3) - for (let e4 = 0; e4 < u3.length; e4++) { - const { level: t4, message: n4, detail: s4 } = u3[e4], r3 = console["warn" === t4 ? "error" : t4] || console.log; - let i3 = "[System Info]" + n4; - s4 && (i3 = `${i3} -详细信息:${s4}`), r3(i3); - } - if (t3) { - return a2(new te({ code: t3, message: n3, requestId: e3.requestId })); - } - e3.result.errCode = e3.result.errCode || e3.result.code, e3.result.errMsg = e3.result.errMsg || e3.result.message, s3 && c3 && (ie({ token: s3, tokenExpired: c3 }), this._callbackAuth("refreshToken", [{ token: s3, tokenExpired: c3 }]), this._callback("refreshToken", [{ token: s3, tokenExpired: c3 }]), Y($, { token: s3, tokenExpired: c3 })); - const l2 = [{ prop: "affectedDocs", tips: "affectedDocs不再推荐使用,请使用inserted/deleted/updated/data.length替代" }, { prop: "code", tips: "code不再推荐使用,请使用errCode替代" }, { prop: "message", tips: "message不再推荐使用,请使用errMsg替代" }]; - for (let t4 = 0; t4 < l2.length; t4++) { - const { prop: n4, tips: s4 } = l2[t4]; - if (n4 in e3.result) { - const t5 = e3.result[n4]; - Object.defineProperty(e3.result, n4, { get: () => (console.warn(s4), t5) }); - } - } - return function(e4) { - return M(q(o2, "success"), e4).then(() => M(q(o2, "complete"), e4)).then(() => { - r2(e4, null); - const t4 = i2._parseResult(e4); - return Y(j, { type: W, content: t4 }), Promise.resolve(t4); - }); - }(e3); - }, (e3) => { - /fc_function_not_found|FUNCTION_NOT_FOUND/g.test(e3.message) && console.warn("clientDB未初始化,请在web控制台保存一次schema以开启clientDB"); - return a2(new te({ code: e3.code || "SYSTEM_ERROR", message: e3.message, requestId: e3.requestId })); - }); - } - } - const Xn = "token无效,跳转登录页面", Zn = "token过期,跳转登录页面", es = { TOKEN_INVALID_TOKEN_EXPIRED: Zn, TOKEN_INVALID_INVALID_CLIENTID: Xn, TOKEN_INVALID: Xn, TOKEN_INVALID_WRONG_TOKEN: Xn, TOKEN_INVALID_ANONYMOUS_USER: Xn }, ts = { "uni-id-token-expired": Zn, "uni-id-check-token-failed": Xn, "uni-id-token-not-exist": Xn, "uni-id-check-device-feature-failed": Xn }; - function ns(e2, t2) { - let n2 = ""; - return n2 = e2 ? `${e2}/${t2}` : t2, n2.replace(/^\//, ""); - } - function ss(e2 = [], t2 = "") { - const n2 = [], s2 = []; - return e2.forEach((e3) => { - true === e3.needLogin ? n2.push(ns(t2, e3.path)) : false === e3.needLogin && s2.push(ns(t2, e3.path)); - }), { needLoginPage: n2, notNeedLoginPage: s2 }; - } - function rs(e2) { - return e2.split("?")[0].replace(/^\//, ""); - } - function is() { - return function(e2) { - let t2 = e2 && e2.$page && e2.$page.fullPath || ""; - return t2 ? ("/" !== t2.charAt(0) && (t2 = "/" + t2), t2) : t2; - }(function() { - const e2 = getCurrentPages(); - return e2[e2.length - 1]; - }()); - } - function os$1() { - return rs(is()); - } - function as(e2 = "", t2 = {}) { - if (!e2) - return false; - if (!(t2 && t2.list && t2.list.length)) - return false; - const n2 = t2.list, s2 = rs(e2); - return n2.some((e3) => e3.pagePath === s2); - } - const cs = !!e.uniIdRouter; - const { loginPage: us, routerNeedLogin: ls, resToLogin: hs, needLoginPage: ds, notNeedLoginPage: ps, loginPageInTabBar: fs } = function({ pages: t2 = [], subPackages: n2 = [], uniIdRouter: s2 = {}, tabBar: r2 = {} } = e) { - const { loginPage: i2, needLogin: o2 = [], resToLogin: a2 = true } = s2, { needLoginPage: c2, notNeedLoginPage: u2 } = ss(t2), { needLoginPage: l2, notNeedLoginPage: h2 } = function(e2 = []) { - const t3 = [], n3 = []; - return e2.forEach((e3) => { - const { root: s3, pages: r3 = [] } = e3, { needLoginPage: i3, notNeedLoginPage: o3 } = ss(r3, s3); - t3.push(...i3), n3.push(...o3); - }), { needLoginPage: t3, notNeedLoginPage: n3 }; - }(n2); - return { loginPage: i2, routerNeedLogin: o2, resToLogin: a2, needLoginPage: [...c2, ...l2], notNeedLoginPage: [...u2, ...h2], loginPageInTabBar: as(i2, r2) }; - }(); - if (ds.indexOf(us) > -1) - throw new Error(`Login page [${us}] should not be "needLogin", please check your pages.json`); - function gs(e2) { - const t2 = os$1(); - if ("/" === e2.charAt(0)) - return e2; - const [n2, s2] = e2.split("?"), r2 = n2.replace(/^\//, "").split("/"), i2 = t2.split("/"); - i2.pop(); - for (let e3 = 0; e3 < r2.length; e3++) { - const t3 = r2[e3]; - ".." === t3 ? i2.pop() : "." !== t3 && i2.push(t3); - } - return "" === i2[0] && i2.shift(), "/" + i2.join("/") + (s2 ? "?" + s2 : ""); - } - function ms(e2) { - const t2 = rs(gs(e2)); - return !(ps.indexOf(t2) > -1) && (ds.indexOf(t2) > -1 || ls.some((t3) => function(e3, t4) { - return new RegExp(t4).test(e3); - }(e2, t3))); - } - function ys({ redirect: e2 }) { - const t2 = rs(e2), n2 = rs(us); - return os$1() !== n2 && t2 !== n2; - } - function _s({ api: e2, redirect: t2 } = {}) { - if (!t2 || !ys({ redirect: t2 })) - return; - const n2 = function(e3, t3) { - return "/" !== e3.charAt(0) && (e3 = "/" + e3), t3 ? e3.indexOf("?") > -1 ? e3 + `&uniIdRedirectUrl=${encodeURIComponent(t3)}` : e3 + `?uniIdRedirectUrl=${encodeURIComponent(t3)}` : e3; - }(us, t2); - fs ? "navigateTo" !== e2 && "redirectTo" !== e2 || (e2 = "switchTab") : "switchTab" === e2 && (e2 = "navigateTo"); - const s2 = { navigateTo: uni.navigateTo, redirectTo: uni.redirectTo, switchTab: uni.switchTab, reLaunch: uni.reLaunch }; - setTimeout(() => { - s2[e2]({ url: n2 }); - }); - } - function ws({ url: e2 } = {}) { - const t2 = { abortLoginPageJump: false, autoToLoginPage: false }, n2 = function() { - const { token: e3, tokenExpired: t3 } = re(); - let n3; - if (e3) { - if (t3 < Date.now()) { - const e4 = "uni-id-token-expired"; - n3 = { errCode: e4, errMsg: ts[e4] }; - } - } else { - const e4 = "uni-id-check-token-failed"; - n3 = { errCode: e4, errMsg: ts[e4] }; - } - return n3; - }(); - if (ms(e2) && n2) { - n2.uniIdRedirectUrl = e2; - if (J(B).length > 0) - return setTimeout(() => { - Y(B, n2); - }, 0), t2.abortLoginPageJump = true, t2; - t2.autoToLoginPage = true; - } - return t2; - } - function vs() { - !function() { - const e3 = is(), { abortLoginPageJump: t2, autoToLoginPage: n2 } = ws({ url: e3 }); - t2 || n2 && _s({ api: "redirectTo", redirect: e3 }); - }(); - const e2 = ["navigateTo", "redirectTo", "reLaunch", "switchTab"]; - for (let t2 = 0; t2 < e2.length; t2++) { - const n2 = e2[t2]; - uni.addInterceptor(n2, { invoke(e3) { - const { abortLoginPageJump: t3, autoToLoginPage: s2 } = ws({ url: e3.url }); - return t3 ? e3 : s2 ? (_s({ api: n2, redirect: gs(e3.url) }), false) : e3; - } }); - } - } - function Is() { - this.onResponse((e2) => { - const { type: t2, content: n2 } = e2; - let s2 = false; - switch (t2) { - case "cloudobject": - s2 = function(e3) { - if ("object" != typeof e3) - return false; - const { errCode: t3 } = e3 || {}; - return t3 in ts; - }(n2); - break; - case "clientdb": - s2 = function(e3) { - if ("object" != typeof e3) - return false; - const { errCode: t3 } = e3 || {}; - return t3 in es; - }(n2); - } - s2 && function(e3 = {}) { - const t3 = J(B); - Z().then(() => { - const n3 = is(); - if (n3 && ys({ redirect: n3 })) - return t3.length > 0 ? Y(B, Object.assign({ uniIdRedirectUrl: n3 }, e3)) : void (us && _s({ api: "navigateTo", redirect: n3 })); - }); - }(n2); - }); - } - function Ss(e2) { - !function(e3) { - e3.onResponse = function(e4) { - V(j, e4); - }, e3.offResponse = function(e4) { - G(j, e4); - }; - }(e2), function(e3) { - e3.onNeedLogin = function(e4) { - V(B, e4); - }, e3.offNeedLogin = function(e4) { - G(B, e4); - }, cs && (L("_globalUniCloudStatus").needLoginInit || (L("_globalUniCloudStatus").needLoginInit = true, Z().then(() => { - vs.call(e3); - }), hs && Is.call(e3))); - }(e2), function(e3) { - e3.onRefreshToken = function(e4) { - V($, e4); - }, e3.offRefreshToken = function(e4) { - G($, e4); - }; - }(e2); - } - let bs; - const ks = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", As = /^(?:[A-Za-z\d+/]{4})*?(?:[A-Za-z\d+/]{2}(?:==)?|[A-Za-z\d+/]{3}=?)?$/; - function Ps() { - const e2 = re().token || "", t2 = e2.split("."); - if (!e2 || 3 !== t2.length) - return { uid: null, role: [], permission: [], tokenExpired: 0 }; - let n2; - try { - n2 = JSON.parse((s2 = t2[1], decodeURIComponent(bs(s2).split("").map(function(e3) { - return "%" + ("00" + e3.charCodeAt(0).toString(16)).slice(-2); - }).join("")))); - } catch (e3) { - throw new Error("获取当前用户信息出错,详细错误信息为:" + e3.message); - } - var s2; - return n2.tokenExpired = 1e3 * n2.exp, delete n2.exp, delete n2.iat, n2; - } - bs = "function" != typeof atob ? function(e2) { - if (e2 = String(e2).replace(/[\t\n\f\r ]+/g, ""), !As.test(e2)) - throw new Error("Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded."); - var t2; - e2 += "==".slice(2 - (3 & e2.length)); - for (var n2, s2, r2 = "", i2 = 0; i2 < e2.length; ) - t2 = ks.indexOf(e2.charAt(i2++)) << 18 | ks.indexOf(e2.charAt(i2++)) << 12 | (n2 = ks.indexOf(e2.charAt(i2++))) << 6 | (s2 = ks.indexOf(e2.charAt(i2++))), r2 += 64 === n2 ? String.fromCharCode(t2 >> 16 & 255) : 64 === s2 ? String.fromCharCode(t2 >> 16 & 255, t2 >> 8 & 255) : String.fromCharCode(t2 >> 16 & 255, t2 >> 8 & 255, 255 & t2); - return r2; - } : atob; - var Ts = n(function(e2, t2) { - Object.defineProperty(t2, "__esModule", { value: true }); - const n2 = "chooseAndUploadFile:ok", s2 = "chooseAndUploadFile:fail"; - function r2(e3, t3) { - return e3.tempFiles.forEach((e4, n3) => { - e4.name || (e4.name = e4.path.substring(e4.path.lastIndexOf("/") + 1)), t3 && (e4.fileType = t3), e4.cloudPath = Date.now() + "_" + n3 + e4.name.substring(e4.name.lastIndexOf(".")); - }), e3.tempFilePaths || (e3.tempFilePaths = e3.tempFiles.map((e4) => e4.path)), e3; - } - function i2(e3, t3, { onChooseFile: s3, onUploadProgress: r3 }) { - return t3.then((e4) => { - if (s3) { - const t4 = s3(e4); - if (void 0 !== t4) - return Promise.resolve(t4).then((t5) => void 0 === t5 ? e4 : t5); - } - return e4; - }).then((t4) => false === t4 ? { errMsg: n2, tempFilePaths: [], tempFiles: [] } : function(e4, t5, s4 = 5, r4) { - (t5 = Object.assign({}, t5)).errMsg = n2; - const i3 = t5.tempFiles, o2 = i3.length; - let a2 = 0; - return new Promise((n3) => { - for (; a2 < s4; ) - c2(); - function c2() { - const s5 = a2++; - if (s5 >= o2) - return void (!i3.find((e5) => !e5.url && !e5.errMsg) && n3(t5)); - const u2 = i3[s5]; - e4.uploadFile({ filePath: u2.path, cloudPath: u2.cloudPath, fileType: u2.fileType, cloudPathAsRealPath: u2.cloudPathAsRealPath, onUploadProgress(e5) { - e5.index = s5, e5.tempFile = u2, e5.tempFilePath = u2.path, r4 && r4(e5); - } }).then((e5) => { - u2.url = e5.fileID, s5 < o2 && c2(); - }).catch((e5) => { - u2.errMsg = e5.errMsg || e5.message, s5 < o2 && c2(); - }); - } - }); - }(e3, t4, 5, r3)); - } - t2.initChooseAndUploadFile = function(e3) { - return function(t3 = { type: "all" }) { - return "image" === t3.type ? i2(e3, function(e4) { - const { count: t4, sizeType: n3, sourceType: i3 = ["album", "camera"], extension: o2 } = e4; - return new Promise((e5, a2) => { - uni.chooseImage({ count: t4, sizeType: n3, sourceType: i3, extension: o2, success(t5) { - e5(r2(t5, "image")); - }, fail(e6) { - a2({ errMsg: e6.errMsg.replace("chooseImage:fail", s2) }); - } }); - }); - }(t3), t3) : "video" === t3.type ? i2(e3, function(e4) { - const { camera: t4, compressed: n3, maxDuration: i3, sourceType: o2 = ["album", "camera"], extension: a2 } = e4; - return new Promise((e5, c2) => { - uni.chooseVideo({ camera: t4, compressed: n3, maxDuration: i3, sourceType: o2, extension: a2, success(t5) { - const { tempFilePath: n4, duration: s3, size: i4, height: o3, width: a3 } = t5; - e5(r2({ errMsg: "chooseVideo:ok", tempFilePaths: [n4], tempFiles: [{ name: t5.tempFile && t5.tempFile.name || "", path: n4, size: i4, type: t5.tempFile && t5.tempFile.type || "", width: a3, height: o3, duration: s3, fileType: "video", cloudPath: "" }] }, "video")); - }, fail(e6) { - c2({ errMsg: e6.errMsg.replace("chooseVideo:fail", s2) }); - } }); - }); - }(t3), t3) : i2(e3, function(e4) { - const { count: t4, extension: n3 } = e4; - return new Promise((e5, i3) => { - let o2 = uni.chooseFile; - if ("undefined" != typeof wx && "function" == typeof wx.chooseMessageFile && (o2 = wx.chooseMessageFile), "function" != typeof o2) - return i3({ errMsg: s2 + " 请指定 type 类型,该平台仅支持选择 image 或 video。" }); - o2({ type: "all", count: t4, extension: n3, success(t5) { - e5(r2(t5)); - }, fail(e6) { - i3({ errMsg: e6.errMsg.replace("chooseFile:fail", s2) }); - } }); - }); - }(t3), t3); - }; - }; - }), Cs = t(Ts); - const xs = "manual"; - function Os(e2) { - return { props: { localdata: { type: Array, default: () => [] }, options: { type: [Object, Array], default: () => ({}) }, spaceInfo: { type: Object, default: () => ({}) }, collection: { type: [String, Array], default: "" }, action: { type: String, default: "" }, field: { type: String, default: "" }, orderby: { type: String, default: "" }, where: { type: [String, Object], default: "" }, pageData: { type: String, default: "add" }, pageCurrent: { type: Number, default: 1 }, pageSize: { type: Number, default: 20 }, getcount: { type: [Boolean, String], default: false }, gettree: { type: [Boolean, String], default: false }, gettreepath: { type: [Boolean, String], default: false }, startwith: { type: String, default: "" }, limitlevel: { type: Number, default: 10 }, groupby: { type: String, default: "" }, groupField: { type: String, default: "" }, distinct: { type: [Boolean, String], default: false }, foreignKey: { type: String, default: "" }, loadtime: { type: String, default: "auto" }, manual: { type: Boolean, default: false } }, data: () => ({ mixinDatacomLoading: false, mixinDatacomHasMore: false, mixinDatacomResData: [], mixinDatacomErrorMessage: "", mixinDatacomPage: {} }), created() { - this.mixinDatacomPage = { current: this.pageCurrent, size: this.pageSize, count: 0 }, this.$watch(() => { - var e3 = []; - return ["pageCurrent", "pageSize", "localdata", "collection", "action", "field", "orderby", "where", "getont", "getcount", "gettree", "groupby", "groupField", "distinct"].forEach((t2) => { - e3.push(this[t2]); - }), e3; - }, (e3, t2) => { - if (this.loadtime === xs) - return; - let n2 = false; - const s2 = []; - for (let r2 = 2; r2 < e3.length; r2++) - e3[r2] !== t2[r2] && (s2.push(e3[r2]), n2 = true); - e3[0] !== t2[0] && (this.mixinDatacomPage.current = this.pageCurrent), this.mixinDatacomPage.size = this.pageSize, this.onMixinDatacomPropsChange(n2, s2); - }); - }, methods: { onMixinDatacomPropsChange(e3, t2) { - }, mixinDatacomEasyGet({ getone: e3 = false, success: t2, fail: n2 } = {}) { - this.mixinDatacomLoading || (this.mixinDatacomLoading = true, this.mixinDatacomErrorMessage = "", this.mixinDatacomGet().then((n3) => { - this.mixinDatacomLoading = false; - const { data: s2, count: r2 } = n3.result; - this.getcount && (this.mixinDatacomPage.count = r2), this.mixinDatacomHasMore = s2.length < this.pageSize; - const i2 = e3 ? s2.length ? s2[0] : void 0 : s2; - this.mixinDatacomResData = i2, t2 && t2(i2); - }).catch((e4) => { - this.mixinDatacomLoading = false, this.mixinDatacomErrorMessage = e4, n2 && n2(e4); - })); - }, mixinDatacomGet(t2 = {}) { - let n2 = e2.database(this.spaceInfo); - const s2 = t2.action || this.action; - s2 && (n2 = n2.action(s2)); - const r2 = t2.collection || this.collection; - n2 = Array.isArray(r2) ? n2.collection(...r2) : n2.collection(r2); - const i2 = t2.where || this.where; - i2 && Object.keys(i2).length && (n2 = n2.where(i2)); - const o2 = t2.field || this.field; - o2 && (n2 = n2.field(o2)); - const a2 = t2.foreignKey || this.foreignKey; - a2 && (n2 = n2.foreignKey(a2)); - const c2 = t2.groupby || this.groupby; - c2 && (n2 = n2.groupBy(c2)); - const u2 = t2.groupField || this.groupField; - u2 && (n2 = n2.groupField(u2)); - true === (void 0 !== t2.distinct ? t2.distinct : this.distinct) && (n2 = n2.distinct()); - const l2 = t2.orderby || this.orderby; - l2 && (n2 = n2.orderBy(l2)); - const h2 = void 0 !== t2.pageCurrent ? t2.pageCurrent : this.mixinDatacomPage.current, d2 = void 0 !== t2.pageSize ? t2.pageSize : this.mixinDatacomPage.size, p2 = void 0 !== t2.getcount ? t2.getcount : this.getcount, f2 = void 0 !== t2.gettree ? t2.gettree : this.gettree, g2 = void 0 !== t2.gettreepath ? t2.gettreepath : this.gettreepath, m2 = { getCount: p2 }, y2 = { limitLevel: void 0 !== t2.limitlevel ? t2.limitlevel : this.limitlevel, startWith: void 0 !== t2.startwith ? t2.startwith : this.startwith }; - return f2 && (m2.getTree = y2), g2 && (m2.getTreePath = y2), n2 = n2.skip(d2 * (h2 - 1)).limit(d2).get(m2), n2; - } } }; - } - function Es(e2) { - return function(t2, n2 = {}) { - n2 = function(e3, t3 = {}) { - return e3.customUI = t3.customUI || e3.customUI, e3.parseSystemError = t3.parseSystemError || e3.parseSystemError, Object.assign(e3.loadingOptions, t3.loadingOptions), Object.assign(e3.errorOptions, t3.errorOptions), "object" == typeof t3.secretMethods && (e3.secretMethods = t3.secretMethods), e3; - }({ customUI: false, loadingOptions: { title: "加载中...", mask: true }, errorOptions: { type: "modal", retry: false } }, n2); - const { customUI: s2, loadingOptions: r2, errorOptions: i2, parseSystemError: o2 } = n2, a2 = !s2; - return new Proxy({}, { get: (s3, c2) => function({ fn: e3, interceptorName: t3, getCallbackArgs: n3 } = {}) { - return async function(...s4) { - const r3 = n3 ? n3({ params: s4 }) : {}; - let i3, o3; - try { - return await M(q(t3, "invoke"), { ...r3 }), i3 = await e3(...s4), await M(q(t3, "success"), { ...r3, result: i3 }), i3; - } catch (e4) { - throw o3 = e4, await M(q(t3, "fail"), { ...r3, error: o3 }), o3; - } finally { - await M(q(t3, "complete"), o3 ? { ...r3, error: o3 } : { ...r3, result: i3 }); - } - }; - }({ fn: async function s4(...l2) { - let h2; - a2 && uni.showLoading({ title: r2.title, mask: r2.mask }); - const d2 = { name: t2, type: u, data: { method: c2, params: l2 } }; - "object" == typeof n2.secretMethods && function(e3, t3) { - const n3 = t3.data.method, s5 = e3.secretMethods || {}, r3 = s5[n3] || s5["*"]; - r3 && (t3.secretType = r3); - }(n2, d2); - let p2 = false; - try { - h2 = await e2.callFunction(d2); - } catch (e3) { - p2 = true, h2 = { result: new te(e3) }; - } - const { errSubject: f2, errCode: g2, errMsg: m2, newToken: y2 } = h2.result || {}; - if (a2 && uni.hideLoading(), y2 && y2.token && y2.tokenExpired && (ie(y2), Y($, { ...y2 })), g2) { - let e3 = m2; - if (p2 && o2) { - e3 = (await o2({ objectName: t2, methodName: c2, params: l2, errSubject: f2, errCode: g2, errMsg: m2 })).errMsg || m2; - } - if (a2) - if ("toast" === i2.type) - uni.showToast({ title: e3, icon: "none" }); - else { - if ("modal" !== i2.type) - throw new Error(`Invalid errorOptions.type: ${i2.type}`); - { - const { confirm: t3 } = await async function({ title: e4, content: t4, showCancel: n4, cancelText: s5, confirmText: r3 } = {}) { - return new Promise((i3, o3) => { - uni.showModal({ title: e4, content: t4, showCancel: n4, cancelText: s5, confirmText: r3, success(e5) { - i3(e5); - }, fail() { - i3({ confirm: false, cancel: true }); - } }); - }); - }({ title: "提示", content: e3, showCancel: i2.retry, cancelText: "取消", confirmText: i2.retry ? "重试" : "确定" }); - if (i2.retry && t3) - return s4(...l2); - } - } - const n3 = new te({ subject: f2, code: g2, message: m2, requestId: h2.requestId }); - throw n3.detail = h2.result, Y(j, { type: z, content: n3 }), n3; - } - return Y(j, { type: z, content: h2.result }), h2.result; - }, interceptorName: "callObject", getCallbackArgs: function({ params: e3 } = {}) { - return { objectName: t2, methodName: c2, params: e3 }; - } }) }); - }; - } - function Ls(e2) { - return L("_globalUniCloudSecureNetworkCache__{spaceId}".replace("{spaceId}", e2.config.spaceId)); - } - async function Rs({ openid: e2, callLoginByWeixin: t2 = false } = {}) { - Ls(this); - throw new Error(`[SecureNetwork] API \`initSecureNetworkByWeixin\` is not supported on platform \`${P}\``); - } - async function Us(e2) { - const t2 = Ls(this); - return t2.initPromise || (t2.initPromise = Rs.call(this, e2)), t2.initPromise; - } - function Ns(e2) { - return function({ openid: t2, callLoginByWeixin: n2 = false } = {}) { - return Us.call(e2, { openid: t2, callLoginByWeixin: n2 }); - }; - } - function Ds(e2) { - const t2 = { getSystemInfo: uni.getSystemInfo, getPushClientId: uni.getPushClientId }; - return function(n2) { - return new Promise((s2, r2) => { - t2[e2]({ ...n2, success(e3) { - s2(e3); - }, fail(e3) { - r2(e3); - } }); - }); - }; - } - class Ms extends class { - constructor() { - this._callback = {}; - } - addListener(e2, t2) { - this._callback[e2] || (this._callback[e2] = []), this._callback[e2].push(t2); - } - on(e2, t2) { - return this.addListener(e2, t2); - } - removeListener(e2, t2) { - if (!t2) - throw new Error('The "listener" argument must be of type function. Received undefined'); - const n2 = this._callback[e2]; - if (!n2) - return; - const s2 = function(e3, t3) { - for (let n3 = e3.length - 1; n3 >= 0; n3--) - if (e3[n3] === t3) - return n3; - return -1; - }(n2, t2); - n2.splice(s2, 1); - } - off(e2, t2) { - return this.removeListener(e2, t2); - } - removeAllListener(e2) { - delete this._callback[e2]; - } - emit(e2, ...t2) { - const n2 = this._callback[e2]; - if (n2) - for (let e3 = 0; e3 < n2.length; e3++) - n2[e3](...t2); - } - } { - constructor() { - super(), this._uniPushMessageCallback = this._receivePushMessage.bind(this), this._currentMessageId = -1, this._payloadQueue = []; - } - init() { - return Promise.all([Ds("getSystemInfo")(), Ds("getPushClientId")()]).then(([{ appId: e2 } = {}, { cid: t2 } = {}] = []) => { - if (!e2) - throw new Error("Invalid appId, please check the manifest.json file"); - if (!t2) - throw new Error("Invalid push client id"); - this._appId = e2, this._pushClientId = t2, this._seqId = Date.now() + "-" + Math.floor(9e5 * Math.random() + 1e5), this.emit("open"), this._initMessageListener(); - }, (e2) => { - throw this.emit("error", e2), this.close(), e2; - }); - } - async open() { - return this.init(); - } - _isUniCloudSSE(e2) { - if ("receive" !== e2.type) - return false; - const t2 = e2 && e2.data && e2.data.payload; - return !(!t2 || "UNI_CLOUD_SSE" !== t2.channel || t2.seqId !== this._seqId); - } - _receivePushMessage(e2) { - if (!this._isUniCloudSSE(e2)) - return; - const t2 = e2 && e2.data && e2.data.payload, { action: n2, messageId: s2, message: r2 } = t2; - this._payloadQueue.push({ action: n2, messageId: s2, message: r2 }), this._consumMessage(); - } - _consumMessage() { - for (; ; ) { - const e2 = this._payloadQueue.find((e3) => e3.messageId === this._currentMessageId + 1); - if (!e2) - break; - this._currentMessageId++, this._parseMessagePayload(e2); - } - } - _parseMessagePayload(e2) { - const { action: t2, messageId: n2, message: s2 } = e2; - "end" === t2 ? this._end({ messageId: n2, message: s2 }) : "message" === t2 && this._appendMessage({ messageId: n2, message: s2 }); - } - _appendMessage({ messageId: e2, message: t2 } = {}) { - this.emit("message", t2); - } - _end({ messageId: e2, message: t2 } = {}) { - this.emit("end", t2), this.close(); - } - _initMessageListener() { - uni.onPushMessage(this._uniPushMessageCallback); - } - _destroy() { - uni.offPushMessage(this._uniPushMessageCallback); - } - toJSON() { - return { appId: this._appId, pushClientId: this._pushClientId, seqId: this._seqId }; - } - close() { - this._destroy(), this.emit("close"); - } - } - async function qs(e2, t2) { - const n2 = `http://${e2}:${t2}/system/ping`; - try { - const e3 = await (s2 = { url: n2, timeout: 500 }, new Promise((e4, t3) => { - ne.request({ ...s2, success(t4) { - e4(t4); - }, fail(e5) { - t3(e5); - } }); - })); - return !(!e3.data || 0 !== e3.data.code); - } catch (e3) { - return false; - } - var s2; - } - async function Fs(e2) { - { - const { osName: e3, osVersion: t3 } = ce(); - "ios" === e3 && function(e4) { - if (!e4 || "string" != typeof e4) - return 0; - const t4 = e4.match(/^(\d+)./); - return t4 && t4[1] ? parseInt(t4[1]) : 0; - }(t3) >= 14 && console.warn("iOS 14及以上版本连接uniCloud本地调试服务需要允许客户端查找并连接到本地网络上的设备(仅开发模式生效,发行模式会连接uniCloud云端服务)"); - } - const t2 = e2.__dev__; - if (!t2.debugInfo) - return; - const { address: n2, servePort: s2 } = t2.debugInfo, { address: r2 } = await async function(e3, t3) { - let n3; - for (let s3 = 0; s3 < e3.length; s3++) { - const r3 = e3[s3]; - if (await qs(r3, t3)) { - n3 = r3; - break; - } - } - return { address: n3, port: t3 }; - }(n2, s2); - if (r2) - return t2.localAddress = r2, void (t2.localPort = s2); - const i2 = console["error"]; - let o2 = ""; - if ("remote" === t2.debugInfo.initialLaunchType ? (t2.debugInfo.forceRemote = true, o2 = "当前客户端和HBuilderX不在同一局域网下(或其他网络原因无法连接HBuilderX),uniCloud本地调试服务不对当前客户端生效。\n- 如果不使用uniCloud本地调试服务,请直接忽略此信息。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。") : o2 = "无法连接uniCloud本地调试服务,请检查当前客户端是否与主机在同一局域网下。\n- 如需使用uniCloud本地调试服务,请将客户端与主机连接到同一局域网下并重新运行到客户端。", o2 += "\n- 如果在HBuilderX开启的状态下切换过网络环境,请重启HBuilderX后再试\n- 检查系统防火墙是否拦截了HBuilderX自带的nodejs\n- 检查是否错误的使用拦截器修改uni.request方法的参数", 0 === P.indexOf("mp-") && (o2 += "\n- 小程序中如何使用uniCloud,请参考:https://uniapp.dcloud.net.cn/uniCloud/publish.html#useinmp"), !t2.debugInfo.forceRemote) - throw new Error(o2); - i2(o2); - } - function Ks(e2) { - e2._initPromiseHub || (e2._initPromiseHub = new v({ createPromise: function() { - let t2 = Promise.resolve(); - var n2; - n2 = 1, t2 = new Promise((e3) => { - setTimeout(() => { - e3(); - }, n2); - }); - const s2 = e2.auth(); - return t2.then(() => s2.getLoginState()).then((e3) => e3 ? Promise.resolve() : s2.signInAnonymously()); - } })); - } - const js = { tcb: St, tencent: St, aliyun: pe, private: kt, alipay: Et }; - let Bs = new class { - init(e2) { - let t2 = {}; - const n2 = js[e2.provider]; - if (!n2) - throw new Error("未提供正确的provider参数"); - t2 = n2.init(e2), function(e3) { - const t3 = {}; - e3.__dev__ = t3, t3.debugLog = "app" === P; - const n3 = T; - n3 && !n3.code && (t3.debugInfo = n3); - const s2 = new v({ createPromise: function() { - return Fs(e3); - } }); - t3.initLocalNetwork = function() { - return s2.exec(); - }; - }(t2), Ks(t2), Fn(t2), function(e3) { - const t3 = e3.uploadFile; - e3.uploadFile = function(e4) { - return t3.call(this, e4); - }; - }(t2), function(e3) { - e3.database = function(t3) { - if (t3 && Object.keys(t3).length > 0) - return e3.init(t3).database(); - if (this._database) - return this._database; - const n3 = Yn(Qn, { uniClient: e3 }); - return this._database = n3, n3; - }, e3.databaseForJQL = function(t3) { - if (t3 && Object.keys(t3).length > 0) - return e3.init(t3).databaseForJQL(); - if (this._databaseForJQL) - return this._databaseForJQL; - const n3 = Yn(Qn, { uniClient: e3, isJQL: true }); - return this._databaseForJQL = n3, n3; - }; - }(t2), function(e3) { - e3.getCurrentUserInfo = Ps, e3.chooseAndUploadFile = Cs.initChooseAndUploadFile(e3), Object.assign(e3, { get mixinDatacom() { - return Os(e3); - } }), e3.SSEChannel = Ms, e3.initSecureNetworkByWeixin = Ns(e3), e3.importObject = Es(e3); - }(t2); - return ["callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "chooseAndUploadFile"].forEach((e3) => { - if (!t2[e3]) - return; - const n3 = t2[e3]; - t2[e3] = function() { - return n3.apply(t2, Array.from(arguments)); - }, t2[e3] = function(e4, t3) { - return function(n4) { - let s2 = false; - if ("callFunction" === t3) { - const e5 = n4 && n4.type || c; - s2 = e5 !== c; - } - const r2 = "callFunction" === t3 && !s2, i2 = this._initPromiseHub.exec(); - n4 = n4 || {}; - const { success: o2, fail: a2, complete: u2 } = ee(n4), l2 = i2.then(() => s2 ? Promise.resolve() : M(q(t3, "invoke"), n4)).then(() => e4.call(this, n4)).then((e5) => s2 ? Promise.resolve(e5) : M(q(t3, "success"), e5).then(() => M(q(t3, "complete"), e5)).then(() => (r2 && Y(j, { type: H, content: e5 }), Promise.resolve(e5))), (e5) => s2 ? Promise.reject(e5) : M(q(t3, "fail"), e5).then(() => M(q(t3, "complete"), e5)).then(() => (Y(j, { type: H, content: e5 }), Promise.reject(e5)))); - if (!(o2 || a2 || u2)) - return l2; - l2.then((e5) => { - o2 && o2(e5), u2 && u2(e5), r2 && Y(j, { type: H, content: e5 }); - }, (e5) => { - a2 && a2(e5), u2 && u2(e5), r2 && Y(j, { type: H, content: e5 }); - }); - }; - }(t2[e3], e3).bind(t2); - }), t2.init = this.init, t2; - } - }(); - (() => { - const e2 = C; - let t2 = {}; - if (e2 && 1 === e2.length) - t2 = e2[0], Bs = Bs.init(t2), Bs._isDefault = true; - else { - const t3 = ["auth", "callFunction", "uploadFile", "deleteFile", "getTempFileURL", "downloadFile", "database", "getCurrentUSerInfo", "importObject"]; - let n2; - n2 = e2 && e2.length > 0 ? "应用有多个服务空间,请通过uniCloud.init方法指定要使用的服务空间" : "应用未关联服务空间,请在uniCloud目录右键关联服务空间", t3.forEach((e3) => { - Bs[e3] = function() { - return console.error(n2), Promise.reject(new te({ code: "SYS_ERR", message: n2 })); - }; - }); - } - Object.assign(Bs, { get mixinDatacom() { - return Os(Bs); - } }), Ss(Bs), Bs.addInterceptor = N, Bs.removeInterceptor = D, Bs.interceptObject = F; - })(); - var $s = Bs; - const icons = { - "id": "2852637", - "name": "uniui图标库", - "font_family": "uniicons", - "css_prefix_text": "uniui-", - "description": "", - "glyphs": [ - { - "icon_id": "25027049", - "name": "yanse", - "font_class": "color", - "unicode": "e6cf", - "unicode_decimal": 59087 - }, - { - "icon_id": "25027048", - "name": "wallet", - "font_class": "wallet", - "unicode": "e6b1", - "unicode_decimal": 59057 - }, - { - "icon_id": "25015720", - "name": "settings-filled", - "font_class": "settings-filled", - "unicode": "e6ce", - "unicode_decimal": 59086 - }, - { - "icon_id": "25015434", - "name": "shimingrenzheng-filled", - "font_class": "auth-filled", - "unicode": "e6cc", - "unicode_decimal": 59084 - }, - { - "icon_id": "24934246", - "name": "shop-filled", - "font_class": "shop-filled", - "unicode": "e6cd", - "unicode_decimal": 59085 - }, - { - "icon_id": "24934159", - "name": "staff-filled-01", - "font_class": "staff-filled", - "unicode": "e6cb", - "unicode_decimal": 59083 - }, - { - "icon_id": "24932461", - "name": "VIP-filled", - "font_class": "vip-filled", - "unicode": "e6c6", - "unicode_decimal": 59078 - }, - { - "icon_id": "24932462", - "name": "plus_circle_fill", - "font_class": "plus-filled", - "unicode": "e6c7", - "unicode_decimal": 59079 - }, - { - "icon_id": "24932463", - "name": "folder_add-filled", - "font_class": "folder-add-filled", - "unicode": "e6c8", - "unicode_decimal": 59080 - }, - { - "icon_id": "24932464", - "name": "yanse-filled", - "font_class": "color-filled", - "unicode": "e6c9", - "unicode_decimal": 59081 - }, - { - "icon_id": "24932465", - "name": "tune-filled", - "font_class": "tune-filled", - "unicode": "e6ca", - "unicode_decimal": 59082 - }, - { - "icon_id": "24932455", - "name": "a-rilidaka-filled", - "font_class": "calendar-filled", - "unicode": "e6c0", - "unicode_decimal": 59072 - }, - { - "icon_id": "24932456", - "name": "notification-filled", - "font_class": "notification-filled", - "unicode": "e6c1", - "unicode_decimal": 59073 - }, - { - "icon_id": "24932457", - "name": "wallet-filled", - "font_class": "wallet-filled", - "unicode": "e6c2", - "unicode_decimal": 59074 - }, - { - "icon_id": "24932458", - "name": "paihangbang-filled", - "font_class": "medal-filled", - "unicode": "e6c3", - "unicode_decimal": 59075 - }, - { - "icon_id": "24932459", - "name": "gift-filled", - "font_class": "gift-filled", - "unicode": "e6c4", - "unicode_decimal": 59076 - }, - { - "icon_id": "24932460", - "name": "fire-filled", - "font_class": "fire-filled", - "unicode": "e6c5", - "unicode_decimal": 59077 - }, - { - "icon_id": "24928001", - "name": "refreshempty", - "font_class": "refreshempty", - "unicode": "e6bf", - "unicode_decimal": 59071 - }, - { - "icon_id": "24926853", - "name": "location-ellipse", - "font_class": "location-filled", - "unicode": "e6af", - "unicode_decimal": 59055 - }, - { - "icon_id": "24926735", - "name": "person-filled", - "font_class": "person-filled", - "unicode": "e69d", - "unicode_decimal": 59037 - }, - { - "icon_id": "24926703", - "name": "personadd-filled", - "font_class": "personadd-filled", - "unicode": "e698", - "unicode_decimal": 59032 - }, - { - "icon_id": "24923351", - "name": "back", - "font_class": "back", - "unicode": "e6b9", - "unicode_decimal": 59065 - }, - { - "icon_id": "24923352", - "name": "forward", - "font_class": "forward", - "unicode": "e6ba", - "unicode_decimal": 59066 - }, - { - "icon_id": "24923353", - "name": "arrowthinright", - "font_class": "arrow-right", - "unicode": "e6bb", - "unicode_decimal": 59067 - }, - { - "icon_id": "24923353", - "name": "arrowthinright", - "font_class": "arrowthinright", - "unicode": "e6bb", - "unicode_decimal": 59067 - }, - { - "icon_id": "24923354", - "name": "arrowthinleft", - "font_class": "arrow-left", - "unicode": "e6bc", - "unicode_decimal": 59068 - }, - { - "icon_id": "24923354", - "name": "arrowthinleft", - "font_class": "arrowthinleft", - "unicode": "e6bc", - "unicode_decimal": 59068 - }, - { - "icon_id": "24923355", - "name": "arrowthinup", - "font_class": "arrow-up", - "unicode": "e6bd", - "unicode_decimal": 59069 - }, - { - "icon_id": "24923355", - "name": "arrowthinup", - "font_class": "arrowthinup", - "unicode": "e6bd", - "unicode_decimal": 59069 - }, - { - "icon_id": "24923356", - "name": "arrowthindown", - "font_class": "arrow-down", - "unicode": "e6be", - "unicode_decimal": 59070 - }, - { - "icon_id": "24923356", - "name": "arrowthindown", - "font_class": "arrowthindown", - "unicode": "e6be", - "unicode_decimal": 59070 - }, - { - "icon_id": "24923349", - "name": "arrowdown", - "font_class": "bottom", - "unicode": "e6b8", - "unicode_decimal": 59064 - }, - { - "icon_id": "24923349", - "name": "arrowdown", - "font_class": "arrowdown", - "unicode": "e6b8", - "unicode_decimal": 59064 - }, - { - "icon_id": "24923346", - "name": "arrowright", - "font_class": "right", - "unicode": "e6b5", - "unicode_decimal": 59061 - }, - { - "icon_id": "24923346", - "name": "arrowright", - "font_class": "arrowright", - "unicode": "e6b5", - "unicode_decimal": 59061 - }, - { - "icon_id": "24923347", - "name": "arrowup", - "font_class": "top", - "unicode": "e6b6", - "unicode_decimal": 59062 - }, - { - "icon_id": "24923347", - "name": "arrowup", - "font_class": "arrowup", - "unicode": "e6b6", - "unicode_decimal": 59062 - }, - { - "icon_id": "24923348", - "name": "arrowleft", - "font_class": "left", - "unicode": "e6b7", - "unicode_decimal": 59063 - }, - { - "icon_id": "24923348", - "name": "arrowleft", - "font_class": "arrowleft", - "unicode": "e6b7", - "unicode_decimal": 59063 - }, - { - "icon_id": "24923334", - "name": "eye", - "font_class": "eye", - "unicode": "e651", - "unicode_decimal": 58961 - }, - { - "icon_id": "24923335", - "name": "eye-filled", - "font_class": "eye-filled", - "unicode": "e66a", - "unicode_decimal": 58986 - }, - { - "icon_id": "24923336", - "name": "eye-slash", - "font_class": "eye-slash", - "unicode": "e6b3", - "unicode_decimal": 59059 - }, - { - "icon_id": "24923337", - "name": "eye-slash-filled", - "font_class": "eye-slash-filled", - "unicode": "e6b4", - "unicode_decimal": 59060 - }, - { - "icon_id": "24923305", - "name": "info-filled", - "font_class": "info-filled", - "unicode": "e649", - "unicode_decimal": 58953 - }, - { - "icon_id": "24923299", - "name": "reload-01", - "font_class": "reload", - "unicode": "e6b2", - "unicode_decimal": 59058 - }, - { - "icon_id": "24923195", - "name": "mic_slash_fill", - "font_class": "micoff-filled", - "unicode": "e6b0", - "unicode_decimal": 59056 - }, - { - "icon_id": "24923165", - "name": "map-pin-ellipse", - "font_class": "map-pin-ellipse", - "unicode": "e6ac", - "unicode_decimal": 59052 - }, - { - "icon_id": "24923166", - "name": "map-pin", - "font_class": "map-pin", - "unicode": "e6ad", - "unicode_decimal": 59053 - }, - { - "icon_id": "24923167", - "name": "location", - "font_class": "location", - "unicode": "e6ae", - "unicode_decimal": 59054 - }, - { - "icon_id": "24923064", - "name": "starhalf", - "font_class": "starhalf", - "unicode": "e683", - "unicode_decimal": 59011 - }, - { - "icon_id": "24923065", - "name": "star", - "font_class": "star", - "unicode": "e688", - "unicode_decimal": 59016 - }, - { - "icon_id": "24923066", - "name": "star-filled", - "font_class": "star-filled", - "unicode": "e68f", - "unicode_decimal": 59023 - }, - { - "icon_id": "24899646", - "name": "a-rilidaka", - "font_class": "calendar", - "unicode": "e6a0", - "unicode_decimal": 59040 - }, - { - "icon_id": "24899647", - "name": "fire", - "font_class": "fire", - "unicode": "e6a1", - "unicode_decimal": 59041 - }, - { - "icon_id": "24899648", - "name": "paihangbang", - "font_class": "medal", - "unicode": "e6a2", - "unicode_decimal": 59042 - }, - { - "icon_id": "24899649", - "name": "font", - "font_class": "font", - "unicode": "e6a3", - "unicode_decimal": 59043 - }, - { - "icon_id": "24899650", - "name": "gift", - "font_class": "gift", - "unicode": "e6a4", - "unicode_decimal": 59044 - }, - { - "icon_id": "24899651", - "name": "link", - "font_class": "link", - "unicode": "e6a5", - "unicode_decimal": 59045 - }, - { - "icon_id": "24899652", - "name": "notification", - "font_class": "notification", - "unicode": "e6a6", - "unicode_decimal": 59046 - }, - { - "icon_id": "24899653", - "name": "staff", - "font_class": "staff", - "unicode": "e6a7", - "unicode_decimal": 59047 - }, - { - "icon_id": "24899654", - "name": "VIP", - "font_class": "vip", - "unicode": "e6a8", - "unicode_decimal": 59048 - }, - { - "icon_id": "24899655", - "name": "folder_add", - "font_class": "folder-add", - "unicode": "e6a9", - "unicode_decimal": 59049 - }, - { - "icon_id": "24899656", - "name": "tune", - "font_class": "tune", - "unicode": "e6aa", - "unicode_decimal": 59050 - }, - { - "icon_id": "24899657", - "name": "shimingrenzheng", - "font_class": "auth", - "unicode": "e6ab", - "unicode_decimal": 59051 - }, - { - "icon_id": "24899565", - "name": "person", - "font_class": "person", - "unicode": "e699", - "unicode_decimal": 59033 - }, - { - "icon_id": "24899566", - "name": "email-filled", - "font_class": "email-filled", - "unicode": "e69a", - "unicode_decimal": 59034 - }, - { - "icon_id": "24899567", - "name": "phone-filled", - "font_class": "phone-filled", - "unicode": "e69b", - "unicode_decimal": 59035 - }, - { - "icon_id": "24899568", - "name": "phone", - "font_class": "phone", - "unicode": "e69c", - "unicode_decimal": 59036 - }, - { - "icon_id": "24899570", - "name": "email", - "font_class": "email", - "unicode": "e69e", - "unicode_decimal": 59038 - }, - { - "icon_id": "24899571", - "name": "personadd", - "font_class": "personadd", - "unicode": "e69f", - "unicode_decimal": 59039 - }, - { - "icon_id": "24899558", - "name": "chatboxes-filled", - "font_class": "chatboxes-filled", - "unicode": "e692", - "unicode_decimal": 59026 - }, - { - "icon_id": "24899559", - "name": "contact", - "font_class": "contact", - "unicode": "e693", - "unicode_decimal": 59027 - }, - { - "icon_id": "24899560", - "name": "chatbubble-filled", - "font_class": "chatbubble-filled", - "unicode": "e694", - "unicode_decimal": 59028 - }, - { - "icon_id": "24899561", - "name": "contact-filled", - "font_class": "contact-filled", - "unicode": "e695", - "unicode_decimal": 59029 - }, - { - "icon_id": "24899562", - "name": "chatboxes", - "font_class": "chatboxes", - "unicode": "e696", - "unicode_decimal": 59030 - }, - { - "icon_id": "24899563", - "name": "chatbubble", - "font_class": "chatbubble", - "unicode": "e697", - "unicode_decimal": 59031 - }, - { - "icon_id": "24881290", - "name": "upload-filled", - "font_class": "upload-filled", - "unicode": "e68e", - "unicode_decimal": 59022 - }, - { - "icon_id": "24881292", - "name": "upload", - "font_class": "upload", - "unicode": "e690", - "unicode_decimal": 59024 - }, - { - "icon_id": "24881293", - "name": "weixin", - "font_class": "weixin", - "unicode": "e691", - "unicode_decimal": 59025 - }, - { - "icon_id": "24881274", - "name": "compose", - "font_class": "compose", - "unicode": "e67f", - "unicode_decimal": 59007 - }, - { - "icon_id": "24881275", - "name": "qq", - "font_class": "qq", - "unicode": "e680", - "unicode_decimal": 59008 - }, - { - "icon_id": "24881276", - "name": "download-filled", - "font_class": "download-filled", - "unicode": "e681", - "unicode_decimal": 59009 - }, - { - "icon_id": "24881277", - "name": "pengyouquan", - "font_class": "pyq", - "unicode": "e682", - "unicode_decimal": 59010 - }, - { - "icon_id": "24881279", - "name": "sound", - "font_class": "sound", - "unicode": "e684", - "unicode_decimal": 59012 - }, - { - "icon_id": "24881280", - "name": "trash-filled", - "font_class": "trash-filled", - "unicode": "e685", - "unicode_decimal": 59013 - }, - { - "icon_id": "24881281", - "name": "sound-filled", - "font_class": "sound-filled", - "unicode": "e686", - "unicode_decimal": 59014 - }, - { - "icon_id": "24881282", - "name": "trash", - "font_class": "trash", - "unicode": "e687", - "unicode_decimal": 59015 - }, - { - "icon_id": "24881284", - "name": "videocam-filled", - "font_class": "videocam-filled", - "unicode": "e689", - "unicode_decimal": 59017 - }, - { - "icon_id": "24881285", - "name": "spinner-cycle", - "font_class": "spinner-cycle", - "unicode": "e68a", - "unicode_decimal": 59018 - }, - { - "icon_id": "24881286", - "name": "weibo", - "font_class": "weibo", - "unicode": "e68b", - "unicode_decimal": 59019 - }, - { - "icon_id": "24881288", - "name": "videocam", - "font_class": "videocam", - "unicode": "e68c", - "unicode_decimal": 59020 - }, - { - "icon_id": "24881289", - "name": "download", - "font_class": "download", - "unicode": "e68d", - "unicode_decimal": 59021 - }, - { - "icon_id": "24879601", - "name": "help", - "font_class": "help", - "unicode": "e679", - "unicode_decimal": 59001 - }, - { - "icon_id": "24879602", - "name": "navigate-filled", - "font_class": "navigate-filled", - "unicode": "e67a", - "unicode_decimal": 59002 - }, - { - "icon_id": "24879603", - "name": "plusempty", - "font_class": "plusempty", - "unicode": "e67b", - "unicode_decimal": 59003 - }, - { - "icon_id": "24879604", - "name": "smallcircle", - "font_class": "smallcircle", - "unicode": "e67c", - "unicode_decimal": 59004 - }, - { - "icon_id": "24879605", - "name": "minus-filled", - "font_class": "minus-filled", - "unicode": "e67d", - "unicode_decimal": 59005 - }, - { - "icon_id": "24879606", - "name": "micoff", - "font_class": "micoff", - "unicode": "e67e", - "unicode_decimal": 59006 - }, - { - "icon_id": "24879588", - "name": "closeempty", - "font_class": "closeempty", - "unicode": "e66c", - "unicode_decimal": 58988 - }, - { - "icon_id": "24879589", - "name": "clear", - "font_class": "clear", - "unicode": "e66d", - "unicode_decimal": 58989 - }, - { - "icon_id": "24879590", - "name": "navigate", - "font_class": "navigate", - "unicode": "e66e", - "unicode_decimal": 58990 - }, - { - "icon_id": "24879591", - "name": "minus", - "font_class": "minus", - "unicode": "e66f", - "unicode_decimal": 58991 - }, - { - "icon_id": "24879592", - "name": "image", - "font_class": "image", - "unicode": "e670", - "unicode_decimal": 58992 - }, - { - "icon_id": "24879593", - "name": "mic", - "font_class": "mic", - "unicode": "e671", - "unicode_decimal": 58993 - }, - { - "icon_id": "24879594", - "name": "paperplane", - "font_class": "paperplane", - "unicode": "e672", - "unicode_decimal": 58994 - }, - { - "icon_id": "24879595", - "name": "close", - "font_class": "close", - "unicode": "e673", - "unicode_decimal": 58995 - }, - { - "icon_id": "24879596", - "name": "help-filled", - "font_class": "help-filled", - "unicode": "e674", - "unicode_decimal": 58996 - }, - { - "icon_id": "24879597", - "name": "plus-filled", - "font_class": "paperplane-filled", - "unicode": "e675", - "unicode_decimal": 58997 - }, - { - "icon_id": "24879598", - "name": "plus", - "font_class": "plus", - "unicode": "e676", - "unicode_decimal": 58998 - }, - { - "icon_id": "24879599", - "name": "mic-filled", - "font_class": "mic-filled", - "unicode": "e677", - "unicode_decimal": 58999 - }, - { - "icon_id": "24879600", - "name": "image-filled", - "font_class": "image-filled", - "unicode": "e678", - "unicode_decimal": 59e3 - }, - { - "icon_id": "24855900", - "name": "locked-filled", - "font_class": "locked-filled", - "unicode": "e668", - "unicode_decimal": 58984 - }, - { - "icon_id": "24855901", - "name": "info", - "font_class": "info", - "unicode": "e669", - "unicode_decimal": 58985 - }, - { - "icon_id": "24855903", - "name": "locked", - "font_class": "locked", - "unicode": "e66b", - "unicode_decimal": 58987 - }, - { - "icon_id": "24855884", - "name": "camera-filled", - "font_class": "camera-filled", - "unicode": "e658", - "unicode_decimal": 58968 - }, - { - "icon_id": "24855885", - "name": "chat-filled", - "font_class": "chat-filled", - "unicode": "e659", - "unicode_decimal": 58969 - }, - { - "icon_id": "24855886", - "name": "camera", - "font_class": "camera", - "unicode": "e65a", - "unicode_decimal": 58970 - }, - { - "icon_id": "24855887", - "name": "circle", - "font_class": "circle", - "unicode": "e65b", - "unicode_decimal": 58971 - }, - { - "icon_id": "24855888", - "name": "checkmarkempty", - "font_class": "checkmarkempty", - "unicode": "e65c", - "unicode_decimal": 58972 - }, - { - "icon_id": "24855889", - "name": "chat", - "font_class": "chat", - "unicode": "e65d", - "unicode_decimal": 58973 - }, - { - "icon_id": "24855890", - "name": "circle-filled", - "font_class": "circle-filled", - "unicode": "e65e", - "unicode_decimal": 58974 - }, - { - "icon_id": "24855891", - "name": "flag", - "font_class": "flag", - "unicode": "e65f", - "unicode_decimal": 58975 - }, - { - "icon_id": "24855892", - "name": "flag-filled", - "font_class": "flag-filled", - "unicode": "e660", - "unicode_decimal": 58976 - }, - { - "icon_id": "24855893", - "name": "gear-filled", - "font_class": "gear-filled", - "unicode": "e661", - "unicode_decimal": 58977 - }, - { - "icon_id": "24855894", - "name": "home", - "font_class": "home", - "unicode": "e662", - "unicode_decimal": 58978 - }, - { - "icon_id": "24855895", - "name": "home-filled", - "font_class": "home-filled", - "unicode": "e663", - "unicode_decimal": 58979 - }, - { - "icon_id": "24855896", - "name": "gear", - "font_class": "gear", - "unicode": "e664", - "unicode_decimal": 58980 - }, - { - "icon_id": "24855897", - "name": "smallcircle-filled", - "font_class": "smallcircle-filled", - "unicode": "e665", - "unicode_decimal": 58981 - }, - { - "icon_id": "24855898", - "name": "map-filled", - "font_class": "map-filled", - "unicode": "e666", - "unicode_decimal": 58982 - }, - { - "icon_id": "24855899", - "name": "map", - "font_class": "map", - "unicode": "e667", - "unicode_decimal": 58983 - }, - { - "icon_id": "24855825", - "name": "refresh-filled", - "font_class": "refresh-filled", - "unicode": "e656", - "unicode_decimal": 58966 - }, - { - "icon_id": "24855826", - "name": "refresh", - "font_class": "refresh", - "unicode": "e657", - "unicode_decimal": 58967 - }, - { - "icon_id": "24855808", - "name": "cloud-upload", - "font_class": "cloud-upload", - "unicode": "e645", - "unicode_decimal": 58949 - }, - { - "icon_id": "24855809", - "name": "cloud-download-filled", - "font_class": "cloud-download-filled", - "unicode": "e646", - "unicode_decimal": 58950 - }, - { - "icon_id": "24855810", - "name": "cloud-download", - "font_class": "cloud-download", - "unicode": "e647", - "unicode_decimal": 58951 - }, - { - "icon_id": "24855811", - "name": "cloud-upload-filled", - "font_class": "cloud-upload-filled", - "unicode": "e648", - "unicode_decimal": 58952 - }, - { - "icon_id": "24855813", - "name": "redo", - "font_class": "redo", - "unicode": "e64a", - "unicode_decimal": 58954 - }, - { - "icon_id": "24855814", - "name": "images-filled", - "font_class": "images-filled", - "unicode": "e64b", - "unicode_decimal": 58955 - }, - { - "icon_id": "24855815", - "name": "undo-filled", - "font_class": "undo-filled", - "unicode": "e64c", - "unicode_decimal": 58956 - }, - { - "icon_id": "24855816", - "name": "more", - "font_class": "more", - "unicode": "e64d", - "unicode_decimal": 58957 - }, - { - "icon_id": "24855817", - "name": "more-filled", - "font_class": "more-filled", - "unicode": "e64e", - "unicode_decimal": 58958 - }, - { - "icon_id": "24855818", - "name": "undo", - "font_class": "undo", - "unicode": "e64f", - "unicode_decimal": 58959 - }, - { - "icon_id": "24855819", - "name": "images", - "font_class": "images", - "unicode": "e650", - "unicode_decimal": 58960 - }, - { - "icon_id": "24855821", - "name": "paperclip", - "font_class": "paperclip", - "unicode": "e652", - "unicode_decimal": 58962 - }, - { - "icon_id": "24855822", - "name": "settings", - "font_class": "settings", - "unicode": "e653", - "unicode_decimal": 58963 - }, - { - "icon_id": "24855823", - "name": "search", - "font_class": "search", - "unicode": "e654", - "unicode_decimal": 58964 - }, - { - "icon_id": "24855824", - "name": "redo-filled", - "font_class": "redo-filled", - "unicode": "e655", - "unicode_decimal": 58965 - }, - { - "icon_id": "24841702", - "name": "list", - "font_class": "list", - "unicode": "e644", - "unicode_decimal": 58948 - }, - { - "icon_id": "24841489", - "name": "mail-open-filled", - "font_class": "mail-open-filled", - "unicode": "e63a", - "unicode_decimal": 58938 - }, - { - "icon_id": "24841491", - "name": "hand-thumbsdown-filled", - "font_class": "hand-down-filled", - "unicode": "e63c", - "unicode_decimal": 58940 - }, - { - "icon_id": "24841492", - "name": "hand-thumbsdown", - "font_class": "hand-down", - "unicode": "e63d", - "unicode_decimal": 58941 - }, - { - "icon_id": "24841493", - "name": "hand-thumbsup-filled", - "font_class": "hand-up-filled", - "unicode": "e63e", - "unicode_decimal": 58942 - }, - { - "icon_id": "24841494", - "name": "hand-thumbsup", - "font_class": "hand-up", - "unicode": "e63f", - "unicode_decimal": 58943 - }, - { - "icon_id": "24841496", - "name": "heart-filled", - "font_class": "heart-filled", - "unicode": "e641", - "unicode_decimal": 58945 - }, - { - "icon_id": "24841498", - "name": "mail-open", - "font_class": "mail-open", - "unicode": "e643", - "unicode_decimal": 58947 - }, - { - "icon_id": "24841488", - "name": "heart", - "font_class": "heart", - "unicode": "e639", - "unicode_decimal": 58937 - }, - { - "icon_id": "24839963", - "name": "loop", - "font_class": "loop", - "unicode": "e633", - "unicode_decimal": 58931 - }, - { - "icon_id": "24839866", - "name": "pulldown", - "font_class": "pulldown", - "unicode": "e632", - "unicode_decimal": 58930 - }, - { - "icon_id": "24813798", - "name": "scan", - "font_class": "scan", - "unicode": "e62a", - "unicode_decimal": 58922 - }, - { - "icon_id": "24813786", - "name": "bars", - "font_class": "bars", - "unicode": "e627", - "unicode_decimal": 58919 - }, - { - "icon_id": "24813788", - "name": "cart-filled", - "font_class": "cart-filled", - "unicode": "e629", - "unicode_decimal": 58921 - }, - { - "icon_id": "24813790", - "name": "checkbox", - "font_class": "checkbox", - "unicode": "e62b", - "unicode_decimal": 58923 - }, - { - "icon_id": "24813791", - "name": "checkbox-filled", - "font_class": "checkbox-filled", - "unicode": "e62c", - "unicode_decimal": 58924 - }, - { - "icon_id": "24813794", - "name": "shop", - "font_class": "shop", - "unicode": "e62f", - "unicode_decimal": 58927 - }, - { - "icon_id": "24813795", - "name": "headphones", - "font_class": "headphones", - "unicode": "e630", - "unicode_decimal": 58928 - }, - { - "icon_id": "24813796", - "name": "cart", - "font_class": "cart", - "unicode": "e631", - "unicode_decimal": 58929 - } - ] - }; - const getVal = (val) => { - const reg = /^[0-9]*$/g; - return typeof val === "number" || reg.test(val) ? val + "px" : val; - }; - const _sfc_main$d = { - name: "UniIcons", - emits: ["click"], - props: { - type: { - type: String, - default: "" - }, - color: { - type: String, - default: "#333333" - }, - size: { - type: [Number, String], - default: 16 - }, - customPrefix: { - type: String, - default: "" - } - }, - data() { - return { - icons: icons.glyphs - }; - }, - computed: { - unicode() { - let code2 = this.icons.find((v2) => v2.font_class === this.type); - if (code2) { - return unescape(`%u${code2.unicode}`); - } - return ""; - }, - iconSize() { - return getVal(this.size); - } - }, - methods: { - _onClick() { - this.$emit("click"); - } - } - }; - function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) { - return vue.openBlock(), vue.createElementBlock( - "text", - { - style: vue.normalizeStyle({ color: $props.color, "font-size": $options.iconSize }), - class: vue.normalizeClass(["uni-icons", ["uniui-" + $props.type, $props.customPrefix, $props.customPrefix ? $props.type : ""]]), - onClick: _cache[0] || (_cache[0] = (...args) => $options._onClick && $options._onClick(...args)) - }, - null, - 6 - /* CLASS, STYLE */ - ); - } - const __easycom_0$2 = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["render", _sfc_render$4], ["__scopeId", "data-v-d31e1c47"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/uni_modules/uni-icons/components/uni-icons/uni-icons.vue"]]); - const _sfc_main$c = { - name: "uni-data-select", - mixins: [$s.mixinDatacom || {}], - props: { - localdata: { - type: Array, - default() { - return []; - } - }, - value: { - type: [String, Number], - default: "" - }, - modelValue: { - type: [String, Number], - default: "" - }, - label: { - type: String, - default: "" - }, - placeholder: { - type: String, - default: "请选择" - }, - emptyTips: { - type: String, - default: "无选项" - }, - clear: { - type: Boolean, - default: true - }, - defItem: { - type: Number, - default: 0 - }, - disabled: { - type: Boolean, - default: false - }, - // 格式化输出 用法 field="_id as value, version as text, uni_platform as label" format="{label} - {text}" - format: { - type: String, - default: "" - } - }, - data() { - return { - showSelector: false, - current: "", - mixinDatacomResData: [], - apps: [], - channels: [], - cacheKey: "uni-data-select-lastSelectedValue" - }; - }, - created() { - this.debounceGet = this.debounce(() => { - this.query(); - }, 300); - if (this.collection && !this.localdata.length) { - this.debounceGet(); - } - }, - computed: { - typePlaceholder() { - const text = { - "opendb-stat-app-versions": "版本", - "opendb-app-channels": "渠道", - "opendb-app-list": "应用" - }; - const common = this.placeholder; - const placeholder = text[this.collection]; - return placeholder ? common + placeholder : common; - }, - valueCom() { - return this.modelValue; - } - }, - watch: { - localdata: { - immediate: true, - handler(val, old) { - if (Array.isArray(val) && old !== val) { - this.mixinDatacomResData = val; - } - } - }, - valueCom(val, old) { - this.initDefVal(); - }, - mixinDatacomResData: { - immediate: true, - handler(val) { - if (val.length) { - this.initDefVal(); - } - } - } - }, - methods: { - debounce(fn, time = 100) { - let timer = null; - return function(...args) { - if (timer) - clearTimeout(timer); - timer = setTimeout(() => { - fn.apply(this, args); - }, time); - }; - }, - // 执行数据库查询 - query() { - this.mixinDatacomEasyGet(); - }, - // 监听查询条件变更事件 - onMixinDatacomPropsChange() { - if (this.collection) { - this.debounceGet(); - } - }, - initDefVal() { - let defValue = ""; - if ((this.valueCom || this.valueCom === 0) && !this.isDisabled(this.valueCom)) { - defValue = this.valueCom; - } else { - let strogeValue; - if (this.collection) { - strogeValue = this.getCache(); - } - if (strogeValue || strogeValue === 0) { - defValue = strogeValue; - } else { - let defItem = ""; - if (this.defItem > 0 && this.defItem <= this.mixinDatacomResData.length) { - defItem = this.mixinDatacomResData[this.defItem - 1].value; - } - defValue = defItem; - } - if (defValue || defValue === 0) { - this.emit(defValue); - } - } - const def = this.mixinDatacomResData.find((item) => item.value === defValue); - this.current = def ? this.formatItemName(def) : ""; - }, - /** - * @param {[String, Number]} value - * 判断用户给的 value 是否同时为禁用状态 - */ - isDisabled(value) { - let isDisabled = false; - this.mixinDatacomResData.forEach((item) => { - if (item.value === value) { - isDisabled = item.disable; - } - }); - return isDisabled; - }, - clearVal() { - this.emit(""); - if (this.collection) { - this.removeCache(); - } - }, - change(item) { - if (!item.disable) { - this.showSelector = false; - this.current = this.formatItemName(item); - this.emit(item.value); - } - }, - emit(val) { - this.$emit("input", val); - this.$emit("update:modelValue", val); - this.$emit("change", val); - if (this.collection) { - this.setCache(val); - } - }, - toggleSelector() { - if (this.disabled) { - return; - } - this.showSelector = !this.showSelector; - }, - formatItemName(item) { - let { - text, - value, - channel_code - } = item; - channel_code = channel_code ? `(${channel_code})` : ""; - if (this.format) { - let str = ""; - str = this.format; - for (let key in item) { - str = str.replace(new RegExp(`{${key}}`, "g"), item[key]); - } - return str; - } else { - return this.collection.indexOf("app-list") > 0 ? `${text}(${value})` : text ? text : `未命名${channel_code}`; - } - }, - // 获取当前加载的数据 - getLoadData() { - return this.mixinDatacomResData; - }, - // 获取当前缓存key - getCurrentCacheKey() { - return this.collection; - }, - // 获取缓存 - getCache(name = this.getCurrentCacheKey()) { - let cacheData = uni.getStorageSync(this.cacheKey) || {}; - return cacheData[name]; - }, - // 设置缓存 - setCache(value, name = this.getCurrentCacheKey()) { - let cacheData = uni.getStorageSync(this.cacheKey) || {}; - cacheData[name] = value; - uni.setStorageSync(this.cacheKey, cacheData); - }, - // 删除缓存 - removeCache(name = this.getCurrentCacheKey()) { - let cacheData = uni.getStorageSync(this.cacheKey) || {}; - delete cacheData[name]; - uni.setStorageSync(this.cacheKey, cacheData); - } - } - }; - function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) { - const _component_uni_icons = resolveEasycom(vue.resolveDynamicComponent("uni-icons"), __easycom_0$2); - return vue.openBlock(), vue.createElementBlock("view", { class: "uni-stat__select" }, [ - $props.label ? (vue.openBlock(), vue.createElementBlock( - "span", - { - key: 0, - class: "uni-label-text hide-on-phone" - }, - vue.toDisplayString($props.label + ":"), - 1 - /* TEXT */ - )) : vue.createCommentVNode("v-if", true), - vue.createElementVNode( - "view", - { - class: vue.normalizeClass(["uni-stat-box", { "uni-stat__actived": $data.current }]) - }, - [ - vue.createElementVNode( - "view", - { - class: vue.normalizeClass(["uni-select", { "uni-select--disabled": $props.disabled }]) - }, - [ - vue.createElementVNode("view", { - class: "uni-select__input-box", - onClick: _cache[1] || (_cache[1] = (...args) => $options.toggleSelector && $options.toggleSelector(...args)) - }, [ - $data.current ? (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 0, - class: "uni-select__input-text" - }, - vue.toDisplayString($data.current), - 1 - /* TEXT */ - )) : (vue.openBlock(), vue.createElementBlock( - "view", - { - key: 1, - class: "uni-select__input-text uni-select__input-placeholder" - }, - vue.toDisplayString($options.typePlaceholder), - 1 - /* TEXT */ - )), - $data.current && $props.clear && !$props.disabled ? (vue.openBlock(), vue.createElementBlock("view", { - key: 2, - onClick: _cache[0] || (_cache[0] = vue.withModifiers((...args) => $options.clearVal && $options.clearVal(...args), ["stop"])) - }, [ - vue.createVNode(_component_uni_icons, { - type: "clear", - color: "#c0c4cc", - size: "24" - }) - ])) : (vue.openBlock(), vue.createElementBlock("view", { key: 3 }, [ - vue.createVNode(_component_uni_icons, { - type: $data.showSelector ? "top" : "bottom", - size: "14", - color: "#999" - }, null, 8, ["type"]) - ])) - ]), - $data.showSelector ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "uni-select--mask", - onClick: _cache[2] || (_cache[2] = (...args) => $options.toggleSelector && $options.toggleSelector(...args)) - })) : vue.createCommentVNode("v-if", true), - $data.showSelector ? (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "uni-select__selector" - }, [ - vue.createElementVNode("view", { class: "uni-popper__arrow" }), - vue.createElementVNode("scroll-view", { - "scroll-y": "true", - class: "uni-select__selector-scroll" - }, [ - $data.mixinDatacomResData.length === 0 ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "uni-select__selector-empty" - }, [ - vue.createElementVNode( - "text", - null, - vue.toDisplayString($props.emptyTips), - 1 - /* TEXT */ - ) - ])) : (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - { key: 1 }, - vue.renderList($data.mixinDatacomResData, (item, index2) => { - return vue.openBlock(), vue.createElementBlock("view", { - class: "uni-select__selector-item", - key: index2, - onClick: ($event) => $options.change(item) - }, [ - vue.createElementVNode( - "text", - { - class: vue.normalizeClass({ "uni-select__selector__disabled": item.disable }) - }, - vue.toDisplayString($options.formatItemName(item)), - 3 - /* TEXT, CLASS */ - ) - ], 8, ["onClick"]); - }), - 128 - /* KEYED_FRAGMENT */ - )) - ]) - ])) : vue.createCommentVNode("v-if", true) - ], - 2 - /* CLASS */ - ) - ], - 2 - /* CLASS */ - ) - ]); - } - const __easycom_0$1 = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["render", _sfc_render$3], ["__scopeId", "data-v-ddf9e0a2"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/uni_modules/uni-data-select/components/uni-data-select/uni-data-select.vue"]]); - const _sfc_main$b = { - __name: "irrigate", - setup(__props) { - const range2 = vue.reactive([ - { - value: 0, - text: "喷灌" - }, - { - value: 1, - text: "滴灌" - }, - { - value: 2, - text: "沟灌" - } - ]); - const calendar2 = vue.ref(null); - const form = vue.ref(null); - const openDate = () => { - calendar2.value.open(); - }; - const formData = vue.reactive({ - breed: "" - }); - const dateConfirmfn = (e2) => { - formatAppLog("log", "at pages/husbandryForm/irrigate.vue:112", e2); - }; - const rules2 = { - "formData.breed": { - type: "string", - required: true, - message: "请填写姓名", - trigger: ["blur", "change"] - } - }; - const addFn = () => { - form.value.validate().then((res) => { - formatAppLog("log", "at pages/husbandryForm/irrigate.vue:129", 6); - }).catch((errors) => { - uni.$u.toast("校验失败"); - }); - console.log(); - return; - }; - const updateImgFn = async () => { - if (mode.value == "detail") - return; - let res = await uplodeImg(); - formData.buy_cert = res.data.image; - }; - const mode = vue.ref("add"); - onLoad((options) => { - if (options.task_id) { - mode.value = "detail"; - } - }); - return (_ctx, _cache) => { - const _component_uni_data_select = resolveEasycom(vue.resolveDynamicComponent("uni-data-select"), __easycom_0$1); - const _component_u_form_item = resolveEasycom(vue.resolveDynamicComponent("u-form-item"), __easycom_1$1); - const _component_up_input = resolveEasycom(vue.resolveDynamicComponent("up-input"), __easycom_0$3); - const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$7); - const _component_u__textarea = resolveEasycom(vue.resolveDynamicComponent("u--textarea"), __easycom_3$1); - const _component_u__form = resolveEasycom(vue.resolveDynamicComponent("u--form"), __easycom_3); - const _component_uni_calendar = resolveEasycom(vue.resolveDynamicComponent("uni-calendar"), __easycom_5); - return vue.openBlock(), vue.createElementBlock( - vue.Fragment, - null, - [ - vue.createCommentVNode(" 播种 "), - vue.createElementVNode("view", { class: "content" }, [ - vue.createElementVNode("view", { class: "card" }, [ - vue.createVNode(_component_u__form, { - labelPosition: "top", - labelWidth: "100", - model: formData, - rules: rules2, - ref_key: "form", - ref: form - }, { - default: vue.withCtx(() => [ - vue.createVNode( - _component_u_form_item, - { - label: "灌溉方式", - prop: "formData.breed", - borderBottom: "", - ref: "item1", - required: "" - }, - { - default: vue.withCtx(() => [ - vue.createVNode(_component_uni_data_select, { - modelValue: formData.breed, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => formData.breed = $event), - disabled: mode.value == "detail", - localdata: range2 - }, null, 8, ["modelValue", "disabled", "localdata"]) - ]), - _: 1 - /* STABLE */ - }, - 512 - /* NEED_PATCH */ - ), - vue.createVNode(_component_u_form_item, { - label: "开始日期", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请选择日期", - onBlur: openDate, - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "结束日期", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请选择日期", - onBlur: openDate, - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "作业地块", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业地块", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "作业面积", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业面积", - disabled: mode.value == "detail", - type: "number", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "参与人", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入参与人", - type: "number", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode("view", { class: "card-li-tit" }, " 灌溉图片 "), - vue.createElementVNode("view", { class: "code-img" }, [ - vue.createElementVNode("view", { - class: "", - onClick: updateImgFn - }, [ - formData.buy_cert ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "" - }, [ - vue.createVNode(_component_u__image, { - src: formData.buy_cert, - width: "637.85rpx", - height: "350.47rpx" - }, null, 8, ["src"]) - ])) : (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "carime-icon" - }, [ - vue.createVNode(_component_u__image, { - src: "/static/img/DJSC.png", - width: "91.12rpx", - height: "91.12rpx" - }), - vue.createElementVNode("view", { class: "" }, " 点击上传图片 ") - ])) - ]) - ]) - ]), - vue.createVNode(_component_u_form_item, { - label: "备注", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u__textarea, { - modelValue: formData.breed, - "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => formData.breed = $event), - disabled: mode.value == "detail", - placeholder: "请输入内容" - }, null, 8, ["modelValue", "disabled"]) - ]), - _: 1 - /* STABLE */ - }) - ]), - _: 1 - /* STABLE */ - }, 8, ["model"]), - vue.createElementVNode("view", null, [ - vue.createVNode( - _component_uni_calendar, - { - ref_key: "calendar", - ref: calendar2, - showMonth: true, - lunar: true, - insert: false, - onConfirm: dateConfirmfn - }, - null, - 512 - /* NEED_PATCH */ - ) - ]) - ]), - mode.value == "add" ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "confirm" - }, [ - vue.createElementVNode("view", { - class: "confirm-btn", - style: { "color": "white", "background-color": "#0AA565" }, - onClick: addFn - }, " 完成添加 ") - ])) : vue.createCommentVNode("v-if", true) - ]) - ], - 2112 - /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */ - ); - }; - } - }; - const PagesHusbandryFormIrrigate = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-b8bc12f2"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/husbandryForm/irrigate.vue"]]); - const _sfc_main$a = { - __name: "weeding", - setup(__props) { - const calendar2 = vue.ref(null); - const form = vue.ref(null); - const openDate = () => { - calendar2.value.open(); - }; - const formData = vue.reactive({ - breed: "" - }); - const dateConfirmfn = (e2) => { - formatAppLog("log", "at pages/husbandryForm/weeding.vue:106", e2); - }; - const rules2 = { - "formData.breed": { - type: "string", - required: true, - message: "请填写姓名", - trigger: ["blur", "change"] - } - }; - const addFn = () => { - form.value.validate().then((res) => { - formatAppLog("log", "at pages/husbandryForm/weeding.vue:123", 6); - }).catch((errors) => { - uni.$u.toast("校验失败"); - }); - console.log(); - return; - }; - const updateImgFn = async () => { - if (mode.value == "detail") - return; - let res = await uplodeImg(); - formData.buy_cert = res.data.image; - }; - const mode = vue.ref("add"); - onLoad((options) => { - if (options.task_id) { - mode.value = "detail"; - } - }); - return (_ctx, _cache) => { - const _component_up_input = resolveEasycom(vue.resolveDynamicComponent("up-input"), __easycom_0$3); - const _component_u_form_item = resolveEasycom(vue.resolveDynamicComponent("u-form-item"), __easycom_1$1); - const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$7); - const _component_u__textarea = resolveEasycom(vue.resolveDynamicComponent("u--textarea"), __easycom_3$1); - const _component_u__form = resolveEasycom(vue.resolveDynamicComponent("u--form"), __easycom_3); - const _component_uni_calendar = resolveEasycom(vue.resolveDynamicComponent("uni-calendar"), __easycom_5); - return vue.openBlock(), vue.createElementBlock( - vue.Fragment, - null, - [ - vue.createCommentVNode(" 播种 "), - vue.createElementVNode("view", { class: "content" }, [ - vue.createElementVNode("view", { class: "card" }, [ - vue.createVNode(_component_u__form, { - labelPosition: "top", - labelWidth: "100", - model: formData, - rules: rules2, - ref_key: "form", - ref: form - }, { - default: vue.withCtx(() => [ - vue.createVNode( - _component_u_form_item, - { - label: "除草剂种类", - prop: "formData.breed", - borderBottom: "", - ref: "item1", - required: "" - }, - { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入除草剂种类", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }, - 512 - /* NEED_PATCH */ - ), - vue.createVNode(_component_u_form_item, { - label: "除草剂品牌", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入除草剂品牌", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "除草剂用量", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入除草剂用量", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "开始日期", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请选择日期", - onBlur: openDate, - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "结束日期", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请选择日期", - onBlur: openDate, - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "作业地块", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业地块", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "作业面积", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业面积", - disabled: mode.value == "detail", - type: "number", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "参与人", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入参与人", - disabled: mode.value == "detail", - type: "number", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode("view", { class: "card-li-tit" }, " 除草图片 "), - vue.createElementVNode("view", { class: "code-img" }, [ - vue.createElementVNode("view", { - class: "", - onClick: updateImgFn - }, [ - formData.buy_cert ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "" - }, [ - vue.createVNode(_component_u__image, { - src: formData.buy_cert, - width: "637.85rpx", - height: "350.47rpx" - }, null, 8, ["src"]) - ])) : (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "carime-icon" - }, [ - vue.createVNode(_component_u__image, { - src: "/static/img/DJSC.png", - width: "91.12rpx", - height: "91.12rpx" - }), - vue.createElementVNode("view", { class: "" }, " 点击上传图片 ") - ])) - ]) - ]) - ]), - vue.createVNode(_component_u_form_item, { - label: "备注", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u__textarea, { - modelValue: formData.breed, - "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => formData.breed = $event), - disabled: mode.value == "detail", - placeholder: "请输入内容" - }, null, 8, ["modelValue", "disabled"]) - ]), - _: 1 - /* STABLE */ - }) - ]), - _: 1 - /* STABLE */ - }, 8, ["model"]), - vue.createElementVNode("view", null, [ - vue.createVNode( - _component_uni_calendar, - { - ref_key: "calendar", - ref: calendar2, - showMonth: true, - lunar: true, - insert: false, - onConfirm: dateConfirmfn - }, - null, - 512 - /* NEED_PATCH */ - ) - ]) - ]), - mode.value == "add" ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "confirm" - }, [ - vue.createElementVNode("view", { - class: "confirm-btn", - style: { "color": "white", "background-color": "#0AA565" }, - onClick: addFn - }, " 完成添加 ") - ])) : vue.createCommentVNode("v-if", true) - ]) - ], - 2112 - /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */ - ); - }; - } - }; - const PagesHusbandryFormWeeding = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-a985c0e4"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/husbandryForm/weeding.vue"]]); - const _sfc_main$9 = { - __name: "fertilize", - setup(__props) { - const calendar2 = vue.ref(null); - const form = vue.ref(null); - const openDate = () => { - calendar2.value.open(); - }; - const formData = vue.reactive({ - breed: "" - }); - const dateConfirmfn = (e2) => { - formatAppLog("log", "at pages/husbandryForm/fertilize.vue:106", e2); - }; - const rules2 = { - "formData.breed": { - type: "string", - required: true, - message: "请填写姓名", - trigger: ["blur", "change"] - } - }; - const addFn = () => { - form.value.validate().then((res) => { - formatAppLog("log", "at pages/husbandryForm/fertilize.vue:123", 6); - }).catch((errors) => { - uni.$u.toast("校验失败"); - }); - console.log(); - return; - }; - const updateImgFn = async () => { - if (mode.value == "detail") - return; - let res = await uplodeImg(); - formData.buy_cert = res.data.image; - }; - const mode = vue.ref("add"); - onLoad((options) => { - if (options.task_id) { - mode.value = "detail"; - } - }); - return (_ctx, _cache) => { - const _component_up_input = resolveEasycom(vue.resolveDynamicComponent("up-input"), __easycom_0$3); - const _component_u_form_item = resolveEasycom(vue.resolveDynamicComponent("u-form-item"), __easycom_1$1); - const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$7); - const _component_u__textarea = resolveEasycom(vue.resolveDynamicComponent("u--textarea"), __easycom_3$1); - const _component_u__form = resolveEasycom(vue.resolveDynamicComponent("u--form"), __easycom_3); - const _component_uni_calendar = resolveEasycom(vue.resolveDynamicComponent("uni-calendar"), __easycom_5); - return vue.openBlock(), vue.createElementBlock( - vue.Fragment, - null, - [ - vue.createCommentVNode(" 播种 "), - vue.createElementVNode("view", { class: "content" }, [ - vue.createElementVNode("view", { class: "card" }, [ - vue.createVNode(_component_u__form, { - labelPosition: "top", - labelWidth: "100", - model: formData, - rules: rules2, - ref_key: "form", - ref: form - }, { - default: vue.withCtx(() => [ - vue.createVNode( - _component_u_form_item, - { - label: "肥料种类", - prop: "formData.breed", - borderBottom: "", - ref: "item1", - required: "" - }, - { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入肥料种类", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }, - 512 - /* NEED_PATCH */ - ), - vue.createVNode(_component_u_form_item, { - label: "肥料品牌", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入肥料品牌", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "肥料用量", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入肥料用量", - border: "surround", - disabled: mode.value == "detail", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "开始日期", - onClick: openDate, - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请选择日期", - onBlur: openDate, - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "结束日期", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请选择日期", - onBlur: openDate, - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "作业地块", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业地块", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "作业面积", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业面积", - disabled: mode.value == "detail", - type: "number", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "参与人", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入参与人", - disabled: mode.value == "detail", - type: "number", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode("view", { class: "card-li-tit" }, " 施肥图片 "), - vue.createElementVNode("view", { class: "code-img" }, [ - vue.createElementVNode("view", { - class: "", - onClick: updateImgFn - }, [ - formData.buy_cert ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "" - }, [ - vue.createVNode(_component_u__image, { - src: formData.buy_cert, - width: "637.85rpx", - height: "350.47rpx" - }, null, 8, ["src"]) - ])) : (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "carime-icon" - }, [ - vue.createVNode(_component_u__image, { - src: "/static/img/DJSC.png", - width: "91.12rpx", - height: "91.12rpx" - }), - vue.createElementVNode("view", { class: "" }) - ])) - ]) - ]) - ]), - vue.createVNode(_component_u_form_item, { - label: "备注", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u__textarea, { - modelValue: formData.breed, - "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => formData.breed = $event), - disabled: mode.value == "detail", - placeholder: "请输入内容" - }, null, 8, ["modelValue", "disabled"]) - ]), - _: 1 - /* STABLE */ - }) - ]), - _: 1 - /* STABLE */ - }, 8, ["model"]), - vue.createElementVNode("view", null, [ - vue.createVNode( - _component_uni_calendar, - { - ref_key: "calendar", - ref: calendar2, - showMonth: true, - lunar: true, - insert: false, - onConfirm: dateConfirmfn - }, - null, - 512 - /* NEED_PATCH */ - ) - ]) - ]), - mode.value == "add" ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "confirm" - }, [ - vue.createElementVNode("view", { - class: "confirm-btn", - style: { "color": "white", "background-color": "#0AA565" }, - onClick: addFn - }, " 完成添加 ") - ])) : vue.createCommentVNode("v-if", true) - ]) - ], - 2112 - /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */ - ); - }; - } - }; - const PagesHusbandryFormFertilize = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-3fd07837"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/husbandryForm/fertilize.vue"]]); - const _sfc_main$8 = { - __name: "sow", - setup(__props) { - const calendar2 = vue.ref(null); - const form = vue.ref(null); - const openDate = () => { - calendar2.value.open(); - }; - const formData = vue.reactive({ - breed: "" - }); - const dateConfirmfn = (e2) => { - formatAppLog("log", "at pages/husbandryForm/sow.vue:99", e2); - }; - const rules2 = { - "formData.breed": { - type: "string", - required: true, - message: "请填写姓名", - trigger: ["blur", "change"] - } - }; - const addFn = () => { - form.value.validate().then((res) => { - formatAppLog("log", "at pages/husbandryForm/sow.vue:116", 6); - }).catch((errors) => { - uni.$u.toast("校验失败"); - }); - console.log(); - return; - }; - const updateImgFn = async () => { - if (mode.value == "detail") - return; - let res = await uplodeImg(); - formData.buy_cert = res.data.image; - }; - const mode = vue.ref("add"); - onLoad((options) => { - if (options.task_id) { - mode.value = "detail"; - } - }); - return (_ctx, _cache) => { - const _component_up_input = resolveEasycom(vue.resolveDynamicComponent("up-input"), __easycom_0$3); - const _component_u_form_item = resolveEasycom(vue.resolveDynamicComponent("u-form-item"), __easycom_1$1); - const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$7); - const _component_u__textarea = resolveEasycom(vue.resolveDynamicComponent("u--textarea"), __easycom_3$1); - const _component_u__form = resolveEasycom(vue.resolveDynamicComponent("u--form"), __easycom_3); - const _component_uni_calendar = resolveEasycom(vue.resolveDynamicComponent("uni-calendar"), __easycom_5); - return vue.openBlock(), vue.createElementBlock( - vue.Fragment, - null, - [ - vue.createCommentVNode(" 播种 "), - vue.createElementVNode("view", { class: "content" }, [ - vue.createElementVNode("view", { class: "card" }, [ - vue.createVNode(_component_u__form, { - labelPosition: "top", - labelWidth: "100", - model: formData, - rules: rules2, - ref_key: "form", - ref: form - }, { - default: vue.withCtx(() => [ - vue.createVNode( - _component_u_form_item, - { - label: "种植种类", - prop: "formData.breed", - borderBottom: "", - ref: "item1", - required: "" - }, - { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入种植种类", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }, - 512 - /* NEED_PATCH */ - ), - vue.createVNode(_component_u_form_item, { - label: "种植品种", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入品种", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "开始日期", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请选择日期", - onBlur: openDate, - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "作业地块", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入作业地块", - disabled: mode.value == "detail", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "种植面积", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入种植面积", - disabled: mode.value == "detail", - type: "number", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "参与人", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入参与人", - disabled: mode.value == "detail", - type: "number", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => formData.breed = $event) - }, null, 8, ["disabled", "modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode("view", { class: "card-li-tit" }, " 种植图片 "), - vue.createElementVNode("view", { class: "code-img" }, [ - vue.createElementVNode("view", { - class: "", - onClick: updateImgFn - }, [ - formData.buy_cert ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "" - }, [ - vue.createVNode(_component_u__image, { - src: formData.buy_cert, - width: "637.85rpx", - height: "350.47rpx" - }, null, 8, ["src"]) - ])) : (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "carime-icon" - }, [ - vue.createVNode(_component_u__image, { - src: "/static/img/DJSC.png", - width: "91.12rpx", - height: "91.12rpx" - }), - vue.createElementVNode("view", { class: "" }, " 点击上传图片 ") - ])) - ]) - ]) - ]), - vue.createVNode(_component_u_form_item, { - label: "备注", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u__textarea, { - modelValue: formData.breed, - "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => formData.breed = $event), - disabled: mode.value == "detail", - placeholder: "请输入内容" - }, null, 8, ["modelValue", "disabled"]) - ]), - _: 1 - /* STABLE */ - }) - ]), - _: 1 - /* STABLE */ - }, 8, ["model"]), - vue.createElementVNode("view", null, [ - vue.createVNode( - _component_uni_calendar, - { - ref_key: "calendar", - ref: calendar2, - showMonth: true, - lunar: true, - insert: false, - onConfirm: dateConfirmfn - }, - null, - 512 - /* NEED_PATCH */ - ) - ]) - ]), - mode.value == "add" ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "confirm" - }, [ - vue.createElementVNode("view", { - class: "confirm-btn", - style: { "color": "white", "background-color": "#0AA565" }, - onClick: addFn - }, " 完成添加 ") - ])) : vue.createCommentVNode("v-if", true) - ]) - ], - 2112 - /* STABLE_FRAGMENT, DEV_ROOT_FRAGMENT */ - ); - }; - } - }; - const PagesHusbandryFormSow = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-8efd73ec"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/husbandryForm/sow.vue"]]); - const _sfc_main$7 = { - __name: "addLand", - setup(__props) { - const form = vue.ref(null); - const formData = vue.reactive({ - breed: "" - }); - const rules2 = { - "formData.breed": { - type: "string", - required: true, - message: "请填写姓名", - trigger: ["blur", "change"] - } - }; - const addFn = () => { - form.value.validate().then((res) => { - formatAppLog("log", "at pages/addLand/addLand.vue:101", 6); - }).catch((errors) => { - uni.$u.toast("校验失败"); - }); - console.log(); - return; - }; - const updateImgFn = async () => { - let res = await uplodeImg(); - formData.buy_cert = res.data.image; - }; - onLoad((options) => { - }); - return (_ctx, _cache) => { - const _component_up_input = resolveEasycom(vue.resolveDynamicComponent("up-input"), __easycom_0$3); - const _component_u_form_item = resolveEasycom(vue.resolveDynamicComponent("u-form-item"), __easycom_1$1); - const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$7); - const _component_u__form = resolveEasycom(vue.resolveDynamicComponent("u--form"), __easycom_3); - return vue.openBlock(), vue.createElementBlock("view", { class: "content" }, [ - vue.createElementVNode("view", { class: "card" }, [ - vue.createVNode(_component_u__form, { - labelPosition: "top", - labelWidth: "100", - model: formData, - rules: rules2, - ref_key: "form", - ref: form - }, { - default: vue.withCtx(() => [ - vue.createVNode( - _component_u_form_item, - { - label: "土地名称", - prop: "formData.breed", - borderBottom: "", - ref: "item1", - required: "" - }, - { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入土地名称", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => formData.breed = $event) - }, null, 8, ["modelValue"]) - ]), - _: 1 - /* STABLE */ - }, - 512 - /* NEED_PATCH */ - ), - vue.createVNode(_component_u_form_item, { - label: "土地面积", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入土地面积", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => formData.breed = $event) - }, null, 8, ["modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "土地地址", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请选择土地地址", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => formData.breed = $event) - }, null, 8, ["modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "土地负责人", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入土地负责人", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => formData.breed = $event) - }, null, 8, ["modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "负责人电话", - prop: "formData.breed", - borderBottom: "", - required: "" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_up_input, { - placeholder: "请输入负责人电话", - type: "number", - border: "surround", - modelValue: formData.breed, - "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => formData.breed = $event) - }, null, 8, ["modelValue"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode("view", { class: "card-li-tit" }, " 土地图片 "), - vue.createElementVNode("view", { class: "code-img" }, [ - vue.createElementVNode("view", { - class: "", - onClick: updateImgFn - }, [ - formData.buy_cert ? (vue.openBlock(), vue.createElementBlock("view", { - key: 0, - class: "" - }, [ - vue.createVNode(_component_u__image, { - src: formData.buy_cert, - width: "637.85rpx", - height: "350.47rpx" - }, null, 8, ["src"]) - ])) : (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "carime-icon" - }, [ - vue.createVNode(_component_u__image, { - src: "/static/img/DJSC.png", - width: "91.12rpx", - height: "91.12rpx" - }), - vue.createElementVNode("view", { class: "" }, " 点击上传图片 ") - ])) - ]) - ]) - ]) - ]), - _: 1 - /* STABLE */ - }, 8, ["model"]) - ]), - vue.createCommentVNode(' \r\n +上传播种图片\r\n '), - vue.createElementVNode("view", { class: "confirm" }, [ - vue.createElementVNode("view", { - class: "confirm-btn", - style: { "color": "white", "background-color": "#0AA565" }, - onClick: addFn - }, " 完成添加 ") - ]), - vue.createCommentVNode(' \r\n 今日播种\r\n ') - ]); - }; - } - }; - const PagesAddLandAddLand = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-7e8a1f14"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/addLand/addLand.vue"]]); - const props$1 = { - props: { - // 是否细边框 - hairline: { - type: Boolean, - default: props$i.button.hairline - }, - // 按钮的预置样式,info,primary,error,warning,success - type: { - type: String, - default: props$i.button.type - }, - // 按钮尺寸,large,normal,small,mini - size: { - type: String, - default: props$i.button.size - }, - // 按钮形状,circle(两边为半圆),square(带圆角) - shape: { - type: String, - default: props$i.button.shape - }, - // 按钮是否镂空 - plain: { - type: Boolean, - default: props$i.button.plain - }, - // 是否禁止状态 - disabled: { - type: Boolean, - default: props$i.button.disabled - }, - // 是否加载中 - loading: { - type: Boolean, - default: props$i.button.loading - }, - // 加载中提示文字 - loadingText: { - type: [String, Number], - default: props$i.button.loadingText - }, - // 加载状态图标类型 - loadingMode: { - type: String, - default: props$i.button.loadingMode - }, - // 加载图标大小 - loadingSize: { - type: [String, Number], - default: props$i.button.loadingSize - }, - // 开放能力,具体请看uniapp稳定关于button组件部分说明 - // https://uniapp.dcloud.io/component/button - openType: { - type: String, - default: props$i.button.openType - }, - // 用于
组件,点击分别会触发 组件的 submit/reset 事件 - // 取值为submit(提交表单),reset(重置表单) - formType: { - type: String, - default: props$i.button.formType - }, - // 打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效 - // 只微信小程序、QQ小程序有效 - appParameter: { - type: String, - default: props$i.button.appParameter - }, - // 指定是否阻止本节点的祖先节点出现点击态,微信小程序有效 - hoverStopPropagation: { - type: Boolean, - default: props$i.button.hoverStopPropagation - }, - // 指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。只微信小程序有效 - lang: { - type: String, - default: props$i.button.lang - }, - // 会话来源,open-type="contact"时有效。只微信小程序有效 - sessionFrom: { - type: String, - default: props$i.button.sessionFrom - }, - // 会话内消息卡片标题,open-type="contact"时有效 - // 默认当前标题,只微信小程序有效 - sendMessageTitle: { - type: String, - default: props$i.button.sendMessageTitle - }, - // 会话内消息卡片点击跳转小程序路径,open-type="contact"时有效 - // 默认当前分享路径,只微信小程序有效 - sendMessagePath: { - type: String, - default: props$i.button.sendMessagePath - }, - // 会话内消息卡片图片,open-type="contact"时有效 - // 默认当前页面截图,只微信小程序有效 - sendMessageImg: { - type: String, - default: props$i.button.sendMessageImg - }, - // 是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示, - // 用户点击后可以快速发送小程序消息,open-type="contact"时有效 - showMessageCard: { - type: Boolean, - default: props$i.button.showMessageCard - }, - // 额外传参参数,用于小程序的data-xxx属性,通过target.dataset.name获取 - dataName: { - type: String, - default: props$i.button.dataName - }, - // 节流,一定时间内只能触发一次 - throttleTime: { - type: [String, Number], - default: props$i.button.throttleTime - }, - // 按住后多久出现点击态,单位毫秒 - hoverStartTime: { - type: [String, Number], - default: props$i.button.hoverStartTime - }, - // 手指松开后点击态保留时间,单位毫秒 - hoverStayTime: { - type: [String, Number], - default: props$i.button.hoverStayTime - }, - // 按钮文字,之所以通过props传入,是因为slot传入的话 - // nvue中无法控制文字的样式 - text: { - type: [String, Number], - default: props$i.button.text - }, - // 按钮图标 - icon: { - type: String, - default: props$i.button.icon - }, - // 按钮图标 - iconColor: { - type: String, - default: props$i.button.icon - }, - // 按钮颜色,支持传入linear-gradient渐变色 - color: { - type: String, - default: props$i.button.color - } - } - }; - const _sfc_main$6 = { - name: "u-button", - mixins: [mpMixin, mixin, props$1], - data() { - return {}; - }, - computed: { - // 生成bem风格的类名 - bemClass() { - if (!this.color) { - return this.bem( - "button", - ["type", "shape", "size"], - ["disabled", "plain", "hairline"] - ); - } else { - return this.bem( - "button", - ["shape", "size"], - ["disabled", "plain", "hairline"] - ); - } - }, - loadingColor() { - if (this.plain) { - return this.color ? this.color : uni.$u.config.color[`u-${this.type}`]; - } - if (this.type === "info") { - return "#c9c9c9"; - } - return "rgb(200, 200, 200)"; - }, - iconColorCom() { - if (this.iconColor) - return this.iconColor; - if (this.plain) { - return this.color ? this.color : this.type; - } else { - return this.type === "info" ? "#000000" : "#ffffff"; - } - }, - baseColor() { - let style = {}; - if (this.color) { - style.color = this.plain ? this.color : "white"; - if (!this.plain) { - style["background-color"] = this.color; - } - if (this.color.indexOf("gradient") !== -1) { - style.borderTopWidth = 0; - style.borderRightWidth = 0; - style.borderBottomWidth = 0; - style.borderLeftWidth = 0; - if (!this.plain) { - style.backgroundImage = this.color; - } - } else { - style.borderColor = this.color; - style.borderWidth = "1px"; - style.borderStyle = "solid"; - } - } - return style; - }, - // nvue版本按钮的字体不会继承父组件的颜色,需要对每一个text组件进行单独的设置 - nvueTextStyle() { - let style = {}; - if (this.type === "info") { - style.color = "#323233"; - } - if (this.color) { - style.color = this.plain ? this.color : "white"; - } - style.fontSize = this.textSize + "px"; - return style; - }, - // 字体大小 - textSize() { - let fontSize = 14, { size } = this; - if (size === "large") - fontSize = 16; - if (size === "normal") - fontSize = 14; - if (size === "small") - fontSize = 12; - if (size === "mini") - fontSize = 10; - return fontSize; - } - }, - emits: [ - "click", - "getphonenumber", - "getuserinfo", - "error", - "opensetting", - "launchapp" - ], - methods: { - clickHandler() { - if (!this.disabled && !this.loading) { - uni.$u.throttle(() => { - this.$emit("click"); - }, this.throttleTime); - } - }, - // 下面为对接uniapp官方按钮开放能力事件回调的对接 - getphonenumber(res) { - this.$emit("getphonenumber", res); - }, - getuserinfo(res) { - this.$emit("getuserinfo", res); - }, - error(res) { - this.$emit("error", res); - }, - opensetting(res) { - this.$emit("opensetting", res); - }, - launchapp(res) { - this.$emit("launchapp", res); - } - } - }; - function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u_loading_icon = resolveEasycom(vue.resolveDynamicComponent("u-loading-icon"), __easycom_0$6); - const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_1$4); - return vue.openBlock(), vue.createElementBlock("button", { - "hover-start-time": Number(_ctx.hoverStartTime), - "hover-stay-time": Number(_ctx.hoverStayTime), - "form-type": _ctx.formType, - "open-type": _ctx.openType, - "app-parameter": _ctx.appParameter, - "hover-stop-propagation": _ctx.hoverStopPropagation, - "send-message-title": _ctx.sendMessageTitle, - "send-message-path": _ctx.sendMessagePath, - lang: _ctx.lang, - "data-name": _ctx.dataName, - "session-from": _ctx.sessionFrom, - "send-message-img": _ctx.sendMessageImg, - "show-message-card": _ctx.showMessageCard, - onGetphonenumber: _cache[0] || (_cache[0] = (...args) => $options.getphonenumber && $options.getphonenumber(...args)), - onGetuserinfo: _cache[1] || (_cache[1] = (...args) => $options.getuserinfo && $options.getuserinfo(...args)), - onError: _cache[2] || (_cache[2] = (...args) => $options.error && $options.error(...args)), - onOpensetting: _cache[3] || (_cache[3] = (...args) => $options.opensetting && $options.opensetting(...args)), - onLaunchapp: _cache[4] || (_cache[4] = (...args) => $options.launchapp && $options.launchapp(...args)), - "hover-class": !_ctx.disabled && !_ctx.loading ? "u-button--active" : "", - class: vue.normalizeClass(["u-button u-reset-button", $options.bemClass]), - style: vue.normalizeStyle([$options.baseColor, _ctx.$u.addStyle(_ctx.customStyle)]), - onClick: _cache[5] || (_cache[5] = (...args) => $options.clickHandler && $options.clickHandler(...args)) - }, [ - _ctx.loading ? (vue.openBlock(), vue.createElementBlock( - vue.Fragment, - { key: 0 }, - [ - vue.createVNode(_component_u_loading_icon, { - mode: _ctx.loadingMode, - size: _ctx.loadingSize * 1.15, - color: $options.loadingColor - }, null, 8, ["mode", "size", "color"]), - vue.createElementVNode( - "text", - { - class: "u-button__loading-text", - style: vue.normalizeStyle([{ fontSize: $options.textSize + "px" }]) - }, - vue.toDisplayString(_ctx.loadingText || _ctx.text), - 5 - /* TEXT, STYLE */ - ) - ], - 64 - /* STABLE_FRAGMENT */ - )) : (vue.openBlock(), vue.createElementBlock( - vue.Fragment, - { key: 1 }, - [ - _ctx.icon ? (vue.openBlock(), vue.createBlock(_component_u_icon, { - key: 0, - name: _ctx.icon, - color: $options.iconColorCom, - size: $options.textSize * 1.35, - customStyle: { marginRight: "2px" } - }, null, 8, ["name", "color", "size"])) : vue.createCommentVNode("v-if", true), - vue.renderSlot(_ctx.$slots, "default", {}, () => [ - vue.createElementVNode( - "text", - { - class: "u-button__text", - style: vue.normalizeStyle([{ fontSize: $options.textSize + "px" }]) - }, - vue.toDisplayString(_ctx.text), - 5 - /* TEXT, STYLE */ - ) - ], true) - ], - 64 - /* STABLE_FRAGMENT */ - )) - ], 46, ["hover-start-time", "hover-stay-time", "form-type", "open-type", "app-parameter", "hover-stop-propagation", "send-message-title", "send-message-path", "lang", "data-name", "session-from", "send-message-img", "show-message-card", "hover-class"]); - } - const __easycom_1 = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$2], ["__scopeId", "data-v-461e713c"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-button/u-button.vue"]]); - const _sfc_main$5 = { - data() { - return { - pwdShow: { - old_password: false, - password: false, - password_confirm: false - }, - formData: { - old_password: "", - // 原密码 - password: "", - // 新密码 - password_confirm: "" - // 确认密码 - }, - rules: { - old_password: { - type: "string", - required: true, - min: 6, - max: 18, - message: "请输入6-18位密码", - trigger: ["change", "blur"] - }, - password: { - type: "string", - required: true, - min: 6, - max: 18, - message: "请输入6-18位密码", - trigger: ["change", "blur"] - }, - password_confirm: { - type: "string", - required: true, - min: 6, - max: 18, - message: "请输入6-18位密码", - trigger: ["change", "blur"] - } - } - }; - }, - methods: { - submit() { - this.$refs.formRef.validate().then(async (e2) => { - if (e2) { - if (this.formData.password == this.formData.old_password) - return Toast("新密码不能与原密码一致"); - if (this.formData.password !== this.formData.password_confirm) - return Toast( - "两次新密码不一致" - ); - try { - await changePassword({ - ...this.formData - }); - Toast("修改成功"); - this.$u.sleep(500).then(() => { - uni.showLoading({ - mask: true, - title: "加载中" - }); - let nowData = encrypt.decode("ACT"); - nowData.password = this.formData.password; - encrypt.encode("ACT", nowData); - return uni.switchTab({ - url: "/pages/oaHome/oaHome", - success: () => { - uni.$emit("initOaTask"); - uni.hideLoading(); - } - }); - return uni.reLaunch({ - url: "/pages/oaHome/oaHome", - success: () => { - uni.$emit("initOaTask"); - uni.hideLoading(); - } - }); - }); - } catch (e3) { - Toast(e3.msg || "修改失败"); - } - } - }); - } - } - }; - function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u__input = resolveEasycom(vue.resolveDynamicComponent("u--input"), __easycom_0$3); - const _component_u_form_item = resolveEasycom(vue.resolveDynamicComponent("u-form-item"), __easycom_1$1); - const _component_u_button = resolveEasycom(vue.resolveDynamicComponent("u-button"), __easycom_1); - const _component_u__form = resolveEasycom(vue.resolveDynamicComponent("u--form"), __easycom_3); - return vue.openBlock(), vue.createElementBlock("view", { class: "content" }, [ - vue.createElementVNode("view", { class: "reset-password" }, [ - vue.createVNode(_component_u__form, { - ref: "formRef", - rules: $data.rules, - model: $data.formData - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u_form_item, { - label: "原密码", - labelWidth: "140rpx", - borderBottom: "", - prop: "old_password" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u__input, { - modelValue: $data.formData.old_password, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.formData.old_password = $event), - password: !$data.pwdShow.old_password, - placeholder: "请输入原密码", - maxlength: "18" - }, { - default: vue.withCtx(() => [ - vue.createCommentVNode(` `) - ]), - _: 1 - /* STABLE */ - }, 8, ["modelValue", "password"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "新密码", - labelWidth: "140rpx", - borderBottom: "", - prop: "password" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u__input, { - modelValue: $data.formData.password, - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.formData.password = $event), - password: !$data.pwdShow.password, - placeholder: "请输入新密码", - maxlength: "18" - }, { - default: vue.withCtx(() => [ - vue.createCommentVNode(` `) - ]), - _: 1 - /* STABLE */ - }, 8, ["modelValue", "password"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_form_item, { - label: "确认密码", - labelWidth: "140rpx", - borderBottom: "", - prop: "password_confirm" - }, { - default: vue.withCtx(() => [ - vue.createVNode(_component_u__input, { - modelValue: $data.formData.password_confirm, - "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => $data.formData.password_confirm = $event), - password: !$data.pwdShow.password_confirm, - placeholder: "请确认新密码", - maxlength: "18" - }, { - default: vue.withCtx(() => [ - vue.createCommentVNode(` `) - ]), - _: 1 - /* STABLE */ - }, 8, ["modelValue", "password"]) - ]), - _: 1 - /* STABLE */ - }), - vue.createVNode(_component_u_button, { - style: { "margin-top": "28rpx", "background-color": "#34D190", "color": "#fff" }, - onClick: $options.submit - }, { - default: vue.withCtx(() => [ - vue.createTextVNode("提交") - ]), - _: 1 - /* STABLE */ - }, 8, ["onClick"]) - ]), - _: 1 - /* STABLE */ - }, 8, ["rules", "model"]) - ]) - ]); - } - const PagesUpdatePasswordUpdatePassword = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$1], ["__scopeId", "data-v-e04d0bdf"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/updatePassword/updatePassword.vue"]]); - const props = { - props: { - // 搜索框形状,round-圆形,square-方形 - shape: { - type: String, - default: props$i.search.shape - }, - // 搜索框背景色,默认值#f2f2f2 - bgColor: { - type: String, - default: props$i.search.bgColor - }, - // 占位提示文字 - placeholder: { - type: String, - default: props$i.search.placeholder - }, - // 是否启用清除控件 - clearabled: { - type: Boolean, - default: props$i.search.clearabled - }, - // 是否自动聚焦 - focus: { - type: Boolean, - default: props$i.search.focus - }, - // 是否在搜索框右侧显示取消按钮 - showAction: { - type: Boolean, - default: props$i.search.showAction - }, - // 右边控件的样式 - actionStyle: { - type: Object, - default: props$i.search.actionStyle - }, - // 取消按钮文字 - actionText: { - type: String, - default: props$i.search.actionText - }, - // 输入框内容对齐方式,可选值为 left|center|right - inputAlign: { - type: String, - default: props$i.search.inputAlign - }, - // input输入框的样式,可以定义文字颜色,大小等,对象形式 - inputStyle: { - type: Object, - default: props$i.search.inputStyle - }, - // 是否启用输入框 - disabled: { - type: Boolean, - default: props$i.search.disabled - }, - // 边框颜色 - borderColor: { - type: String, - default: props$i.search.borderColor - }, - // 搜索图标的颜色,默认同输入框字体颜色 - searchIconColor: { - type: String, - default: props$i.search.searchIconColor - }, - // 输入框字体颜色 - color: { - type: String, - default: props$i.search.color - }, - // placeholder的颜色 - placeholderColor: { - type: String, - default: props$i.search.placeholderColor - }, - // 左边输入框的图标,可以为uView图标名称或图片路径 - searchIcon: { - type: String, - default: props$i.search.searchIcon - }, - searchIconSize: { - type: [Number, String], - default: props$i.search.searchIconSize - }, - // 组件与其他上下左右元素之间的距离,带单位的字符串形式,如"30px"、"30px 20px"等写法 - margin: { - type: String, - default: props$i.search.margin - }, - // 开启showAction时,是否在input获取焦点时才显示 - animation: { - type: Boolean, - default: props$i.search.animation - }, - // 输入框的初始化内容 - modelValue: { - type: String, - default: props$i.search.value - }, - value: { - type: String, - default: props$i.search.value - }, - // 输入框最大能输入的长度,-1为不限制长度(来自uniapp文档) - maxlength: { - type: [String, Number], - default: props$i.search.maxlength - }, - // 搜索框高度,单位px - height: { - type: [String, Number], - default: props$i.search.height - }, - // 搜索框左侧文本 - label: { - type: [String, Number, null], - default: props$i.search.label - } - } - }; - const _sfc_main$4 = { - name: "u-search", - mixins: [mpMixin, mixin, props], - data() { - return { - keyword: "", - showClear: false, - // 是否显示右边的清除图标 - show: false, - // 标记input当前状态是否处于聚焦中,如果是,才会显示右侧的清除控件 - focused: this.focus - // 绑定输入框的值 - // inputValue: this.value - }; - }, - watch: { - keyword(nVal) { - this.$emit("update:modelValue", nVal); - this.$emit("change", nVal); - }, - modelValue: { - immediate: true, - handler(nVal) { - this.keyword = nVal; - } - } - }, - computed: { - showActionBtn() { - return !this.animation && this.showAction; - } - }, - emits: ["clear", "search", "custom", "focus", "blur", "click", "clickIcon", "update:modelValue", "change"], - methods: { - // 目前HX2.6.9 v-model双向绑定无效,故监听input事件获取输入框内容的变化 - inputChange(e2) { - this.keyword = e2.detail.value; - }, - // 清空输入 - // 也可以作为用户通过this.$refs形式调用清空输入框内容 - clear() { - this.keyword = ""; - this.$nextTick(() => { - this.$emit("clear"); - }); - }, - // 确定搜索 - search(e2) { - this.$emit("search", e2.detail.value); - try { - uni.hideKeyboard(); - } catch (e3) { - } - }, - // 点击右边自定义按钮的事件 - custom() { - this.$emit("custom", this.keyword); - try { - uni.hideKeyboard(); - } catch (e2) { - } - }, - // 获取焦点 - getFocus() { - this.focused = true; - if (this.animation && this.showAction) - this.show = true; - this.$emit("focus", this.keyword); - }, - // 失去焦点 - blur() { - setTimeout(() => { - this.focused = false; - }, 100); - this.show = false; - this.$emit("blur", this.keyword); - }, - // 点击搜索框,只有disabled=true时才发出事件,因为禁止了输入,意味着是想跳转真正的搜索页 - clickHandler() { - if (this.disabled) - this.$emit("click"); - }, - // 点击左边图标 - clickIcon(e2) { - this.$emit("clickIcon", this.keyword); - try { - uni.hideKeyboard(); - } catch (e3) { - } - } - } - }; - function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) { - const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_1$4); - return vue.openBlock(), vue.createElementBlock( - "view", - { - class: "u-search", - onClick: _cache[6] || (_cache[6] = (...args) => $options.clickHandler && $options.clickHandler(...args)), - style: vue.normalizeStyle([{ - margin: _ctx.margin - }, _ctx.$u.addStyle(_ctx.customStyle)]) - }, - [ - vue.createElementVNode( - "view", - { - class: "u-search__content", - style: vue.normalizeStyle({ - backgroundColor: _ctx.bgColor, - borderRadius: _ctx.shape == "round" ? "100px" : "4px", - borderColor: _ctx.borderColor - }) - }, - [ - _ctx.$slots.label || _ctx.label !== null ? vue.renderSlot(_ctx.$slots, "label", { key: 0 }, () => [ - vue.createElementVNode( - "text", - { class: "u-search__content__label" }, - vue.toDisplayString(_ctx.label), - 1 - /* TEXT */ - ) - ], true) : vue.createCommentVNode("v-if", true), - vue.createElementVNode("view", { class: "u-search__content__icon" }, [ - vue.createVNode(_component_u_icon, { - onClick: $options.clickIcon, - size: _ctx.searchIconSize, - name: _ctx.searchIcon, - color: _ctx.searchIconColor ? _ctx.searchIconColor : _ctx.color - }, null, 8, ["onClick", "size", "name", "color"]) - ]), - vue.createElementVNode("input", { - "confirm-type": "search", - onBlur: _cache[0] || (_cache[0] = (...args) => $options.blur && $options.blur(...args)), - value: $data.keyword, - onConfirm: _cache[1] || (_cache[1] = (...args) => $options.search && $options.search(...args)), - onInput: _cache[2] || (_cache[2] = (...args) => $options.inputChange && $options.inputChange(...args)), - disabled: _ctx.disabled, - onFocus: _cache[3] || (_cache[3] = (...args) => $options.getFocus && $options.getFocus(...args)), - focus: _ctx.focus, - maxlength: _ctx.maxlength, - "placeholder-class": "u-search__content__input--placeholder", - placeholder: _ctx.placeholder, - "placeholder-style": `color: ${_ctx.placeholderColor}`, - class: "u-search__content__input", - type: "text", - style: vue.normalizeStyle([{ - textAlign: _ctx.inputAlign, - color: _ctx.color, - backgroundColor: _ctx.bgColor, - height: _ctx.$u.addUnit(_ctx.height) - }, _ctx.inputStyle]) - }, null, 44, ["value", "disabled", "focus", "maxlength", "placeholder", "placeholder-style"]), - $data.keyword && _ctx.clearabled && $data.focused ? (vue.openBlock(), vue.createElementBlock("view", { - key: 1, - class: "u-search__content__icon u-search__content__close", - onClick: _cache[4] || (_cache[4] = (...args) => $options.clear && $options.clear(...args)) - }, [ - vue.createVNode(_component_u_icon, { - name: "close", - size: "11", - color: "#ffffff", - customStyle: "line-height: 12px" - }) - ])) : vue.createCommentVNode("v-if", true) - ], - 4 - /* STYLE */ - ), - vue.createElementVNode( - "text", - { - style: vue.normalizeStyle([_ctx.actionStyle]), - class: vue.normalizeClass(["u-search__action", [($options.showActionBtn || $data.show) && "u-search__action--active"]]), - onClick: _cache[5] || (_cache[5] = vue.withModifiers((...args) => $options.custom && $options.custom(...args), ["stop", "prevent"])) - }, - vue.toDisplayString(_ctx.actionText), - 7 - /* TEXT, CLASS, STYLE */ - ) - ], - 4 - /* STYLE */ - ); - } - const __easycom_0 = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render], ["__scopeId", "data-v-ed789780"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/node_modules/uview-plus/components/u-search/u-search.vue"]]); - const _sfc_main$3 = { - __name: "massif", - props: { - userInfo: Object - }, - setup(__props) { - const props2 = __props; - vue.reactive(props2.userInfo); - const navgo = (url2) => { - uni.navigateTo({ - url: url2 - }); - }; - return (_ctx, _cache) => { - const _component_u_search = resolveEasycom(vue.resolveDynamicComponent("u-search"), __easycom_0); - return vue.openBlock(), vue.createElementBlock("view", { class: "" }, [ - vue.createElementVNode("view", { class: "content" }, [ - vue.createElementVNode("view", { - class: "", - style: { "height": "30rpx" } - }), - vue.createElementVNode("view", { class: "serch" }, [ - vue.createVNode(_component_u_search, { - bgColor: "white", - "show-action": false, - placeholder: "搜索你的土地信息", - modelValue: _ctx.keyword, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => _ctx.keyword = $event), - shape: "round" - }, null, 8, ["modelValue"]) - ]), - (vue.openBlock(), vue.createElementBlock( - vue.Fragment, - null, - vue.renderList([1, 1, 1], (item, index2) => { - return vue.createElementVNode("view", { - class: "card", - key: index2, - onClick: _cache[1] || (_cache[1] = ($event) => navgo("/pages/landDetail/index")) - }, [ - vue.createElementVNode("view", { class: "tit card-li" }, [ - vue.createElementVNode("view", { class: "" }, " 土地名称 "), - vue.createElementVNode("view", { - class: "", - style: { "color": "#00A15E" } - }, " 已种植 "), - vue.createElementVNode("view", { - class: "", - style: { "color": "#00A15E" } - }, " 未种植 ") - ]), - vue.createElementVNode("view", { class: "card-li" }, [ - vue.createElementVNode("view", { class: "" }, " 面积: 20亩 ") - ]), - vue.createElementVNode("view", { class: "card-li tit" }, [ - vue.createElementVNode("view", { - class: "", - style: { "font-weight": "normal" } - }, " 农作物: 洋芋 ") - ]) - ]); - }), - 64 - /* STABLE_FRAGMENT */ - )), - vue.createElementVNode("view", { style: { "height": "170rpx" } }) - ]) - ]); - }; - } - }; - const PagesIndexMassif = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/index/massif.vue"]]); - const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({ - __name: "personal", - setup(__props) { - const url2 = vue.ref("https://ceshi-worker-task.lihaink.cn//uploads//images//20231121//202311211336582b7920656.jpg"); - const previewImageFn = () => { - uni.previewImage({ - urls: [ - "https://ceshi-worker-task.lihaink.cn//uploads//images//20231121//202311211336582b7920656.jpg" - ] - }); - }; - const cardLiList = vue.reactive([ - { - text: "片区经s理" - }, - { - text: "安全设置", - nav: "/pages/updatePassword/updatePassword" - } - ]); - const loginOutFn = () => { - uni.navigateTo({ - url: "/pages/Login/login" - }); - }; - const navto = (url22) => { - uni.navigateTo({ - url: url22 - }); - }; - return (_ctx, _cache) => { - const _component_u__image = resolveEasycom(vue.resolveDynamicComponent("u--image"), __easycom_0$7); - const _component_u_icon = resolveEasycom(vue.resolveDynamicComponent("u-icon"), __easycom_1$4); - const _component_up_button = resolveEasycom(vue.resolveDynamicComponent("up-button"), __easycom_1); - return vue.openBlock(), vue.createElementBlock( - vue.Fragment, - null, - [ - vue.createElementVNode("view", { class: "head" }, [ - vue.createElementVNode("view", { class: "avater" }, [ - vue.createVNode(_component_u__image, { - onClick: previewImageFn, - src: url2.value, - width: "130.28rpx", - height: "130.28rpx", - shape: "circle" - }, null, 8, ["src"]) - ]), - vue.createElementVNode("view", { class: "" }, [ - vue.createElementVNode("view", { class: "head-li" }, " 姓名: 咋还归纳 "), - vue.createElementVNode("view", { class: "head-li" }, " 电话: 15884967541 "), - vue.createElementVNode("view", { class: "head-li" }, " 公司: 里海弄农业科技有限公司 ") - ]) - ]), - vue.createElementVNode("view", { class: "content" }, [ - vue.createElementVNode("view", { - class: "card", - style: { "border-radius": "20rpx" } - }, [ - (vue.openBlock(true), vue.createElementBlock( - vue.Fragment, - null, - vue.renderList(cardLiList, (item, index2) => { - return vue.openBlock(), vue.createElementBlock("view", { - class: "card-li", - key: index2, - onClick: ($event) => navto(item.nav) - }, [ - vue.createElementVNode("view", { - class: "", - style: { "display": "flex", "align-items": "center" } - }, [ - vue.createElementVNode("view", { - class: "", - style: { "margin-right": "20rpx" } - }, [ - vue.createVNode(_component_u_icon, { - size: "20", - name: url2.value - }, null, 8, ["name"]) - ]), - vue.createElementVNode( - "view", - { class: "" }, - vue.toDisplayString(item.text), - 1 - /* TEXT */ - ) - ]), - vue.createElementVNode("view", { class: "" }, [ - vue.createVNode(_component_u_icon, { - name: "arrow-right", - size: "16" - }) - ]) - ], 8, ["onClick"]); - }), - 128 - /* KEYED_FRAGMENT */ - )) - ]), - vue.createElementVNode("view", { class: "out-btn" }, [ - vue.createVNode(_component_up_button, { - onClick: loginOutFn, - type: "primary", - customStyle: "border:none;height:90rpx", - color: "#34D190", - text: "退出登录" - }) - ]) - ]) - ], - 64 - /* STABLE_FRAGMENT */ - ); - }; - } - }); - const PagesIndexPersonal = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-0a5fa25f"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/index/personal.vue"]]); - const _sfc_main$1 = { - __name: "login", - setup(__props) { - const submitFn = () => { - uni.switchTab({ - url: "/pages/index/index" - }); - }; - const formData = vue.reactive({ - account: "", - password: "" - }); - return (_ctx, _cache) => { - const _component_up_input = resolveEasycom(vue.resolveDynamicComponent("up-input"), __easycom_0$3); - const _component_up_button = resolveEasycom(vue.resolveDynamicComponent("up-button"), __easycom_1); - return vue.openBlock(), vue.createElementBlock("view", { class: "box" }, [ - vue.createElementVNode("view", { class: "content" }, [ - vue.createElementVNode("view", { class: "tit" }, " 欢迎进入吟龙土壤墒情监测溯系统! "), - vue.createElementVNode("view", { class: "input-card" }, [ - vue.createElementVNode("view", { class: "login-type" }, [ - vue.createTextVNode(" 账号登录 "), - vue.createElementVNode("view", { class: "line" }) - ]), - vue.createElementVNode("view", { - class: "", - style: { "margin": "30rpx 0" } - }, [ - vue.createVNode(_component_up_input, { - placeholder: "请输入账号", - customStyle: "background:#F5F5F5;height:80rpx;padding-left:40rpx;border:none", - shape: "circle", - border: "surround", - modelValue: formData.account, - "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => formData.account = $event) - }, null, 8, ["modelValue"]) - ]), - vue.createElementVNode("view", { class: "" }, [ - vue.createVNode(_component_up_input, { - type: "password", - shape: "circle", - customStyle: "background:#F5F5F5;height:80rpx;padding-left:40rpx;border:none", - placeholder: "请输入密码", - border: "surround", - modelValue: formData.password, - "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => formData.password = $event) - }, null, 8, ["modelValue"]) - ]), - vue.createElementVNode("view", { class: "sub-btn" }, [ - vue.createVNode(_component_up_button, { - onClick: submitFn, - type: "primary", - customStyle: "border:none;height:90rpx", - color: "#34D190", - text: "登录" - }) - ]) - ]) - ]) - ]); - }; - } - }; - const PagesLoginLogin = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-ef4c4b0c"], ["__file", "D:/zmj/uniapp/TraceabilityAPP/pages/Login/login.vue"]]); - __definePage("pages/index/index", PagesIndexIndex); - __definePage("pages/landDetail/index", PagesLandDetailIndex); - __definePage("pages/husbandryForm/harvest", PagesHusbandryFormHarvest); - __definePage("pages/husbandryForm/Pest", PagesHusbandryFormPest); - __definePage("pages/husbandryForm/irrigate", PagesHusbandryFormIrrigate); - __definePage("pages/husbandryForm/weeding", PagesHusbandryFormWeeding); - __definePage("pages/husbandryForm/fertilize", PagesHusbandryFormFertilize); - __definePage("pages/husbandryForm/sow", PagesHusbandryFormSow); - __definePage("pages/addLand/addLand", PagesAddLandAddLand); - __definePage("pages/updatePassword/updatePassword", PagesUpdatePasswordUpdatePassword); - __definePage("pages/index/massif", PagesIndexMassif); - __definePage("pages/index/personal", PagesIndexPersonal); - __definePage("pages/Login/login", PagesLoginLogin); - var isVue2 = false; - function set(target, key, val) { - if (Array.isArray(target)) { - target.length = Math.max(target.length, key); - target.splice(key, 1, val); - return val; - } - target[key] = val; - return val; - } - function del(target, key) { - if (Array.isArray(target)) { - target.splice(key, 1); - return; - } - delete target[key]; - } - function getDevtoolsGlobalHook() { - return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__; - } - function getTarget() { - return typeof navigator !== "undefined" && typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {}; - } - const isProxyAvailable = typeof Proxy === "function"; - const HOOK_SETUP = "devtools-plugin:setup"; - const HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set"; - let supported; - let perf; - function isPerformanceSupported() { - var _a; - if (supported !== void 0) { - return supported; - } - if (typeof window !== "undefined" && window.performance) { - supported = true; - perf = window.performance; - } else if (typeof global !== "undefined" && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) { - supported = true; - perf = global.perf_hooks.performance; - } else { - supported = false; - } - return supported; - } - function now() { - return isPerformanceSupported() ? perf.now() : Date.now(); - } - class ApiProxy { - constructor(plugin, hook) { - this.target = null; - this.targetQueue = []; - this.onQueue = []; - this.plugin = plugin; - this.hook = hook; - const defaultSettings = {}; - if (plugin.settings) { - for (const id in plugin.settings) { - const item = plugin.settings[id]; - defaultSettings[id] = item.defaultValue; - } - } - const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`; - let currentSettings = Object.assign({}, defaultSettings); - try { - const raw = localStorage.getItem(localSettingsSaveId); - const data = JSON.parse(raw); - Object.assign(currentSettings, data); - } catch (e2) { - } - this.fallbacks = { - getSettings() { - return currentSettings; - }, - setSettings(value) { - try { - localStorage.setItem(localSettingsSaveId, JSON.stringify(value)); - } catch (e2) { - } - currentSettings = value; - }, - now() { - return now(); - } - }; - if (hook) { - hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => { - if (pluginId === this.plugin.id) { - this.fallbacks.setSettings(value); - } - }); - } - this.proxiedOn = new Proxy({}, { - get: (_target, prop) => { - if (this.target) { - return this.target.on[prop]; - } else { - return (...args) => { - this.onQueue.push({ - method: prop, - args - }); - }; - } - } - }); - this.proxiedTarget = new Proxy({}, { - get: (_target, prop) => { - if (this.target) { - return this.target[prop]; - } else if (prop === "on") { - return this.proxiedOn; - } else if (Object.keys(this.fallbacks).includes(prop)) { - return (...args) => { - this.targetQueue.push({ - method: prop, - args, - resolve: () => { - } - }); - return this.fallbacks[prop](...args); - }; - } else { - return (...args) => { - return new Promise((resolve) => { - this.targetQueue.push({ - method: prop, - args, - resolve - }); - }); - }; - } - } - }); - } - async setRealTarget(target) { - this.target = target; - for (const item of this.onQueue) { - this.target.on[item.method](...item.args); - } - for (const item of this.targetQueue) { - item.resolve(await this.target[item.method](...item.args)); - } - } - } - function setupDevtoolsPlugin(pluginDescriptor, setupFn) { - const descriptor = pluginDescriptor; - const target = getTarget(); - const hook = getDevtoolsGlobalHook(); - const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy; - if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { - hook.emit(HOOK_SETUP, pluginDescriptor, setupFn); - } else { - const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null; - const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; - list.push({ - pluginDescriptor: descriptor, - setupFn, - proxy - }); - if (proxy) - setupFn(proxy.proxiedTarget); - } - } - /*! - * pinia v2.0.33 - * (c) 2023 Eduardo San Martin Morote - * @license MIT - */ - let activePinia; - const setActivePinia = (pinia) => activePinia = pinia; - const piniaSymbol = Symbol("pinia"); - function isPlainObject$1(o2) { - return o2 && typeof o2 === "object" && Object.prototype.toString.call(o2) === "[object Object]" && typeof o2.toJSON !== "function"; - } - var MutationType; - (function(MutationType2) { - MutationType2["direct"] = "direct"; - MutationType2["patchObject"] = "patch object"; - MutationType2["patchFunction"] = "patch function"; - })(MutationType || (MutationType = {})); - const IS_CLIENT = typeof window !== "undefined"; - const USE_DEVTOOLS = IS_CLIENT; - const _global = /* @__PURE__ */ (() => typeof window === "object" && window.window === window ? window : typeof self === "object" && self.self === self ? self : typeof global === "object" && global.global === global ? global : typeof globalThis === "object" ? globalThis : { HTMLElement: null })(); - function bom(blob, { autoBom = false } = {}) { - if (autoBom && /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(blob.type)) { - return new Blob([String.fromCharCode(65279), blob], { type: blob.type }); - } - return blob; - } - function download(url2, name, opts) { - const xhr = new XMLHttpRequest(); - xhr.open("GET", url2); - xhr.responseType = "blob"; - xhr.onload = function() { - saveAs(xhr.response, name, opts); - }; - xhr.onerror = function() { - console.error("could not download file"); - }; - xhr.send(); - } - function corsEnabled(url2) { - const xhr = new XMLHttpRequest(); - xhr.open("HEAD", url2, false); - try { - xhr.send(); - } catch (e2) { - } - return xhr.status >= 200 && xhr.status <= 299; - } - function click(node) { - try { - node.dispatchEvent(new MouseEvent("click")); - } catch (e2) { - const evt = document.createEvent("MouseEvents"); - evt.initMouseEvent("click", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null); - node.dispatchEvent(evt); - } - } - const _navigator = typeof navigator === "object" ? navigator : { userAgent: "" }; - const isMacOSWebView = /* @__PURE__ */ (() => /Macintosh/.test(_navigator.userAgent) && /AppleWebKit/.test(_navigator.userAgent) && !/Safari/.test(_navigator.userAgent))(); - const saveAs = !IS_CLIENT ? () => { - } : ( - // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView or mini program - typeof HTMLAnchorElement !== "undefined" && "download" in HTMLAnchorElement.prototype && !isMacOSWebView ? downloadSaveAs : ( - // Use msSaveOrOpenBlob as a second approach - "msSaveOrOpenBlob" in _navigator ? msSaveAs : ( - // Fallback to using FileReader and a popup - fileSaverSaveAs - ) - ) - ); - function downloadSaveAs(blob, name = "download", opts) { - const a2 = document.createElement("a"); - a2.download = name; - a2.rel = "noopener"; - if (typeof blob === "string") { - a2.href = blob; - if (a2.origin !== location.origin) { - if (corsEnabled(a2.href)) { - download(blob, name, opts); - } else { - a2.target = "_blank"; - click(a2); - } - } else { - click(a2); - } - } else { - a2.href = URL.createObjectURL(blob); - setTimeout(function() { - URL.revokeObjectURL(a2.href); - }, 4e4); - setTimeout(function() { - click(a2); - }, 0); - } - } - function msSaveAs(blob, name = "download", opts) { - if (typeof blob === "string") { - if (corsEnabled(blob)) { - download(blob, name, opts); - } else { - const a2 = document.createElement("a"); - a2.href = blob; - a2.target = "_blank"; - setTimeout(function() { - click(a2); - }); - } - } else { - navigator.msSaveOrOpenBlob(bom(blob, opts), name); - } - } - function fileSaverSaveAs(blob, name, opts, popup) { - popup = popup || open("", "_blank"); - if (popup) { - popup.document.title = popup.document.body.innerText = "downloading..."; - } - if (typeof blob === "string") - return download(blob, name, opts); - const force = blob.type === "application/octet-stream"; - const isSafari = /constructor/i.test(String(_global.HTMLElement)) || "safari" in _global; - const isChromeIOS = /CriOS\/[\d]+/.test(navigator.userAgent); - if ((isChromeIOS || force && isSafari || isMacOSWebView) && typeof FileReader !== "undefined") { - const reader = new FileReader(); - reader.onloadend = function() { - let url2 = reader.result; - if (typeof url2 !== "string") { - popup = null; - throw new Error("Wrong reader.result type"); - } - url2 = isChromeIOS ? url2 : url2.replace(/^data:[^;]*;/, "data:attachment/file;"); - if (popup) { - popup.location.href = url2; - } else { - location.assign(url2); - } - popup = null; - }; - reader.readAsDataURL(blob); - } else { - const url2 = URL.createObjectURL(blob); - if (popup) - popup.location.assign(url2); - else - location.href = url2; - popup = null; - setTimeout(function() { - URL.revokeObjectURL(url2); - }, 4e4); - } - } - function toastMessage(message, type2) { - const piniaMessage = "🍍 " + message; - if (typeof __VUE_DEVTOOLS_TOAST__ === "function") { - __VUE_DEVTOOLS_TOAST__(piniaMessage, type2); - } else if (type2 === "error") { - console.error(piniaMessage); - } else if (type2 === "warn") { - console.warn(piniaMessage); - } else { - console.log(piniaMessage); - } - } - function isPinia(o2) { - return "_a" in o2 && "install" in o2; - } - function checkClipboardAccess() { - if (!("clipboard" in navigator)) { - toastMessage(`Your browser doesn't support the Clipboard API`, "error"); - return true; - } - } - function checkNotFocusedError(error2) { - if (error2 instanceof Error && error2.message.toLowerCase().includes("document is not focused")) { - toastMessage('You need to activate the "Emulate a focused page" setting in the "Rendering" panel of devtools.', "warn"); - return true; - } - return false; - } - async function actionGlobalCopyState(pinia) { - if (checkClipboardAccess()) - return; - try { - await navigator.clipboard.writeText(JSON.stringify(pinia.state.value)); - toastMessage("Global state copied to clipboard."); - } catch (error2) { - if (checkNotFocusedError(error2)) - return; - toastMessage(`Failed to serialize the state. Check the console for more details.`, "error"); - console.error(error2); - } - } - async function actionGlobalPasteState(pinia) { - if (checkClipboardAccess()) - return; - try { - pinia.state.value = JSON.parse(await navigator.clipboard.readText()); - toastMessage("Global state pasted from clipboard."); - } catch (error2) { - if (checkNotFocusedError(error2)) - return; - toastMessage(`Failed to deserialize the state from clipboard. Check the console for more details.`, "error"); - console.error(error2); - } - } - async function actionGlobalSaveState(pinia) { - try { - saveAs(new Blob([JSON.stringify(pinia.state.value)], { - type: "text/plain;charset=utf-8" - }), "pinia-state.json"); - } catch (error2) { - toastMessage(`Failed to export the state as JSON. Check the console for more details.`, "error"); - console.error(error2); - } - } - let fileInput; - function getFileOpener() { - if (!fileInput) { - fileInput = document.createElement("input"); - fileInput.type = "file"; - fileInput.accept = ".json"; - } - function openFile() { - return new Promise((resolve, reject) => { - fileInput.onchange = async () => { - const files = fileInput.files; - if (!files) - return resolve(null); - const file = files.item(0); - if (!file) - return resolve(null); - return resolve({ text: await file.text(), file }); - }; - fileInput.oncancel = () => resolve(null); - fileInput.onerror = reject; - fileInput.click(); - }); - } - return openFile; - } - async function actionGlobalOpenStateFile(pinia) { - try { - const open2 = await getFileOpener(); - const result = await open2(); - if (!result) - return; - const { text, file } = result; - pinia.state.value = JSON.parse(text); - toastMessage(`Global state imported from "${file.name}".`); - } catch (error2) { - toastMessage(`Failed to export the state as JSON. Check the console for more details.`, "error"); - console.error(error2); - } - } - function formatDisplay(display) { - return { - _custom: { - display - } - }; - } - const PINIA_ROOT_LABEL = "🍍 Pinia (root)"; - const PINIA_ROOT_ID = "_root"; - function formatStoreForInspectorTree(store) { - return isPinia(store) ? { - id: PINIA_ROOT_ID, - label: PINIA_ROOT_LABEL - } : { - id: store.$id, - label: store.$id - }; - } - function formatStoreForInspectorState(store) { - if (isPinia(store)) { - const storeNames = Array.from(store._s.keys()); - const storeMap = store._s; - const state2 = { - state: storeNames.map((storeId) => ({ - editable: true, - key: storeId, - value: store.state.value[storeId] - })), - getters: storeNames.filter((id) => storeMap.get(id)._getters).map((id) => { - const store2 = storeMap.get(id); - return { - editable: false, - key: id, - value: store2._getters.reduce((getters, key) => { - getters[key] = store2[key]; - return getters; - }, {}) - }; - }) - }; - return state2; - } - const state = { - state: Object.keys(store.$state).map((key) => ({ - editable: true, - key, - value: store.$state[key] - })) - }; - if (store._getters && store._getters.length) { - state.getters = store._getters.map((getterName) => ({ - editable: false, - key: getterName, - value: store[getterName] - })); - } - if (store._customProperties.size) { - state.customProperties = Array.from(store._customProperties).map((key) => ({ - editable: true, - key, - value: store[key] - })); - } - return state; - } - function formatEventData(events) { - if (!events) - return {}; - if (Array.isArray(events)) { - return events.reduce((data, event) => { - data.keys.push(event.key); - data.operations.push(event.type); - data.oldValue[event.key] = event.oldValue; - data.newValue[event.key] = event.newValue; - return data; - }, { - oldValue: {}, - keys: [], - operations: [], - newValue: {} - }); - } else { - return { - operation: formatDisplay(events.type), - key: formatDisplay(events.key), - oldValue: events.oldValue, - newValue: events.newValue - }; - } - } - function formatMutationType(type2) { - switch (type2) { - case MutationType.direct: - return "mutation"; - case MutationType.patchFunction: - return "$patch"; - case MutationType.patchObject: - return "$patch"; - default: - return "unknown"; - } - } - let isTimelineActive = true; - const componentStateTypes = []; - const MUTATIONS_LAYER_ID = "pinia:mutations"; - const INSPECTOR_ID = "pinia"; - const { assign: assign$1 } = Object; - const getStoreType = (id) => "🍍 " + id; - function registerPiniaDevtools(app, pinia) { - setupDevtoolsPlugin({ - id: "dev.esm.pinia", - label: "Pinia 🍍", - logo: "https://pinia.vuejs.org/logo.svg", - packageName: "pinia", - homepage: "https://pinia.vuejs.org", - componentStateTypes, - app - }, (api) => { - if (typeof api.now !== "function") { - toastMessage("You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html."); - } - api.addTimelineLayer({ - id: MUTATIONS_LAYER_ID, - label: `Pinia 🍍`, - color: 15064968 - }); - api.addInspector({ - id: INSPECTOR_ID, - label: "Pinia 🍍", - icon: "storage", - treeFilterPlaceholder: "Search stores", - actions: [ - { - icon: "content_copy", - action: () => { - actionGlobalCopyState(pinia); - }, - tooltip: "Serialize and copy the state" - }, - { - icon: "content_paste", - action: async () => { - await actionGlobalPasteState(pinia); - api.sendInspectorTree(INSPECTOR_ID); - api.sendInspectorState(INSPECTOR_ID); - }, - tooltip: "Replace the state with the content of your clipboard" - }, - { - icon: "save", - action: () => { - actionGlobalSaveState(pinia); - }, - tooltip: "Save the state as a JSON file" - }, - { - icon: "folder_open", - action: async () => { - await actionGlobalOpenStateFile(pinia); - api.sendInspectorTree(INSPECTOR_ID); - api.sendInspectorState(INSPECTOR_ID); - }, - tooltip: "Import the state from a JSON file" - } - ], - nodeActions: [ - { - icon: "restore", - tooltip: "Reset the state (option store only)", - action: (nodeId) => { - const store = pinia._s.get(nodeId); - if (!store) { - toastMessage(`Cannot reset "${nodeId}" store because it wasn't found.`, "warn"); - } else if (!store._isOptionsAPI) { - toastMessage(`Cannot reset "${nodeId}" store because it's a setup store.`, "warn"); - } else { - store.$reset(); - toastMessage(`Store "${nodeId}" reset.`); - } - } - } - ] - }); - api.on.inspectComponent((payload, ctx) => { - const proxy = payload.componentInstance && payload.componentInstance.proxy; - if (proxy && proxy._pStores) { - const piniaStores = payload.componentInstance.proxy._pStores; - Object.values(piniaStores).forEach((store) => { - payload.instanceData.state.push({ - type: getStoreType(store.$id), - key: "state", - editable: true, - value: store._isOptionsAPI ? { - _custom: { - value: vue.toRaw(store.$state), - actions: [ - { - icon: "restore", - tooltip: "Reset the state of this store", - action: () => store.$reset() - } - ] - } - } : ( - // NOTE: workaround to unwrap transferred refs - Object.keys(store.$state).reduce((state, key) => { - state[key] = store.$state[key]; - return state; - }, {}) - ) - }); - if (store._getters && store._getters.length) { - payload.instanceData.state.push({ - type: getStoreType(store.$id), - key: "getters", - editable: false, - value: store._getters.reduce((getters, key) => { - try { - getters[key] = store[key]; - } catch (error2) { - getters[key] = error2; - } - return getters; - }, {}) - }); - } - }); - } - }); - api.on.getInspectorTree((payload) => { - if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { - let stores = [pinia]; - stores = stores.concat(Array.from(pinia._s.values())); - payload.rootNodes = (payload.filter ? stores.filter((store) => "$id" in store ? store.$id.toLowerCase().includes(payload.filter.toLowerCase()) : PINIA_ROOT_LABEL.toLowerCase().includes(payload.filter.toLowerCase())) : stores).map(formatStoreForInspectorTree); - } - }); - api.on.getInspectorState((payload) => { - if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { - const inspectedStore = payload.nodeId === PINIA_ROOT_ID ? pinia : pinia._s.get(payload.nodeId); - if (!inspectedStore) { - return; - } - if (inspectedStore) { - payload.state = formatStoreForInspectorState(inspectedStore); - } - } - }); - api.on.editInspectorState((payload, ctx) => { - if (payload.app === app && payload.inspectorId === INSPECTOR_ID) { - const inspectedStore = payload.nodeId === PINIA_ROOT_ID ? pinia : pinia._s.get(payload.nodeId); - if (!inspectedStore) { - return toastMessage(`store "${payload.nodeId}" not found`, "error"); - } - const { path } = payload; - if (!isPinia(inspectedStore)) { - if (path.length !== 1 || !inspectedStore._customProperties.has(path[0]) || path[0] in inspectedStore.$state) { - path.unshift("$state"); - } - } else { - path.unshift("state"); - } - isTimelineActive = false; - payload.set(inspectedStore, path, payload.state.value); - isTimelineActive = true; - } - }); - api.on.editComponentState((payload) => { - if (payload.type.startsWith("🍍")) { - const storeId = payload.type.replace(/^🍍\s*/, ""); - const store = pinia._s.get(storeId); - if (!store) { - return toastMessage(`store "${storeId}" not found`, "error"); - } - const { path } = payload; - if (path[0] !== "state") { - return toastMessage(`Invalid path for store "${storeId}": -${path} -Only state can be modified.`); - } - path[0] = "$state"; - isTimelineActive = false; - payload.set(store, path, payload.state.value); - isTimelineActive = true; - } - }); - }); - } - function addStoreToDevtools(app, store) { - if (!componentStateTypes.includes(getStoreType(store.$id))) { - componentStateTypes.push(getStoreType(store.$id)); - } - setupDevtoolsPlugin({ - id: "dev.esm.pinia", - label: "Pinia 🍍", - logo: "https://pinia.vuejs.org/logo.svg", - packageName: "pinia", - homepage: "https://pinia.vuejs.org", - componentStateTypes, - app, - settings: { - logStoreChanges: { - label: "Notify about new/deleted stores", - type: "boolean", - defaultValue: true - } - // useEmojis: { - // label: 'Use emojis in messages ⚡️', - // type: 'boolean', - // defaultValue: true, - // }, - } - }, (api) => { - const now2 = typeof api.now === "function" ? api.now.bind(api) : Date.now; - store.$onAction(({ after, onError, name, args }) => { - const groupId = runningActionId++; - api.addTimelineEvent({ - layerId: MUTATIONS_LAYER_ID, - event: { - time: now2(), - title: "🛫 " + name, - subtitle: "start", - data: { - store: formatDisplay(store.$id), - action: formatDisplay(name), - args - }, - groupId - } - }); - after((result) => { - activeAction = void 0; - api.addTimelineEvent({ - layerId: MUTATIONS_LAYER_ID, - event: { - time: now2(), - title: "🛬 " + name, - subtitle: "end", - data: { - store: formatDisplay(store.$id), - action: formatDisplay(name), - args, - result - }, - groupId - } - }); - }); - onError((error2) => { - activeAction = void 0; - api.addTimelineEvent({ - layerId: MUTATIONS_LAYER_ID, - event: { - time: now2(), - logType: "error", - title: "💥 " + name, - subtitle: "end", - data: { - store: formatDisplay(store.$id), - action: formatDisplay(name), - args, - error: error2 - }, - groupId - } - }); - }); - }, true); - store._customProperties.forEach((name) => { - vue.watch(() => vue.unref(store[name]), (newValue, oldValue) => { - api.notifyComponentUpdate(); - api.sendInspectorState(INSPECTOR_ID); - if (isTimelineActive) { - api.addTimelineEvent({ - layerId: MUTATIONS_LAYER_ID, - event: { - time: now2(), - title: "Change", - subtitle: name, - data: { - newValue, - oldValue - }, - groupId: activeAction - } - }); - } - }, { deep: true }); - }); - store.$subscribe(({ events, type: type2 }, state) => { - api.notifyComponentUpdate(); - api.sendInspectorState(INSPECTOR_ID); - if (!isTimelineActive) - return; - const eventData = { - time: now2(), - title: formatMutationType(type2), - data: assign$1({ store: formatDisplay(store.$id) }, formatEventData(events)), - groupId: activeAction - }; - activeAction = void 0; - if (type2 === MutationType.patchFunction) { - eventData.subtitle = "⤵️"; - } else if (type2 === MutationType.patchObject) { - eventData.subtitle = "🧩"; - } else if (events && !Array.isArray(events)) { - eventData.subtitle = events.type; - } - if (events) { - eventData.data["rawEvent(s)"] = { - _custom: { - display: "DebuggerEvent", - type: "object", - tooltip: "raw DebuggerEvent[]", - value: events - } - }; - } - api.addTimelineEvent({ - layerId: MUTATIONS_LAYER_ID, - event: eventData - }); - }, { detached: true, flush: "sync" }); - const hotUpdate = store._hotUpdate; - store._hotUpdate = vue.markRaw((newStore) => { - hotUpdate(newStore); - api.addTimelineEvent({ - layerId: MUTATIONS_LAYER_ID, - event: { - time: now2(), - title: "🔥 " + store.$id, - subtitle: "HMR update", - data: { - store: formatDisplay(store.$id), - info: formatDisplay(`HMR update`) - } - } - }); - api.notifyComponentUpdate(); - api.sendInspectorTree(INSPECTOR_ID); - api.sendInspectorState(INSPECTOR_ID); - }); - const { $dispose } = store; - store.$dispose = () => { - $dispose(); - api.notifyComponentUpdate(); - api.sendInspectorTree(INSPECTOR_ID); - api.sendInspectorState(INSPECTOR_ID); - api.getSettings().logStoreChanges && toastMessage(`Disposed "${store.$id}" store 🗑`); - }; - api.notifyComponentUpdate(); - api.sendInspectorTree(INSPECTOR_ID); - api.sendInspectorState(INSPECTOR_ID); - api.getSettings().logStoreChanges && toastMessage(`"${store.$id}" store installed 🆕`); - }); - } - let runningActionId = 0; - let activeAction; - function patchActionForGrouping(store, actionNames) { - const actions = actionNames.reduce((storeActions, actionName) => { - storeActions[actionName] = vue.toRaw(store)[actionName]; - return storeActions; - }, {}); - for (const actionName in actions) { - store[actionName] = function() { - const _actionId = runningActionId; - const trackedStore = new Proxy(store, { - get(...args) { - activeAction = _actionId; - return Reflect.get(...args); - }, - set(...args) { - activeAction = _actionId; - return Reflect.set(...args); - } - }); - return actions[actionName].apply(trackedStore, arguments); - }; - } - } - function devtoolsPlugin({ app, store, options }) { - if (store.$id.startsWith("__hot:")) { - return; - } - if (options.state) { - store._isOptionsAPI = true; - } - if (typeof options.state === "function") { - patchActionForGrouping( - // @ts-expect-error: can cast the store... - store, - Object.keys(options.actions) - ); - const originalHotUpdate = store._hotUpdate; - vue.toRaw(store)._hotUpdate = function(newStore) { - originalHotUpdate.apply(this, arguments); - patchActionForGrouping(store, Object.keys(newStore._hmrPayload.actions)); - }; - } - addStoreToDevtools( - app, - // FIXME: is there a way to allow the assignment from Store to StoreGeneric? - store - ); - } - function createPinia() { - const scope = vue.effectScope(true); - const state = scope.run(() => vue.ref({})); - let _p = []; - let toBeInstalled = []; - const pinia = vue.markRaw({ - install(app) { - setActivePinia(pinia); - { - pinia._a = app; - app.provide(piniaSymbol, pinia); - app.config.globalProperties.$pinia = pinia; - if (USE_DEVTOOLS) { - registerPiniaDevtools(app, pinia); - } - toBeInstalled.forEach((plugin) => _p.push(plugin)); - toBeInstalled = []; - } - }, - use(plugin) { - if (!this._a && !isVue2) { - toBeInstalled.push(plugin); - } else { - _p.push(plugin); - } - return this; - }, - _p, - // it's actually undefined here - // @ts-expect-error - _a: null, - _e: scope, - _s: /* @__PURE__ */ new Map(), - state - }); - if (USE_DEVTOOLS && typeof Proxy !== "undefined") { - pinia.use(devtoolsPlugin); - } - return pinia; - } - function patchObject(newState, oldState) { - for (const key in oldState) { - const subPatch = oldState[key]; - if (!(key in newState)) { - continue; - } - const targetValue = newState[key]; - if (isPlainObject$1(targetValue) && isPlainObject$1(subPatch) && !vue.isRef(subPatch) && !vue.isReactive(subPatch)) { - newState[key] = patchObject(targetValue, subPatch); - } else { - { - newState[key] = subPatch; - } - } - } - return newState; - } - const noop = () => { - }; - function addSubscription(subscriptions, callback, detached, onCleanup = noop) { - subscriptions.push(callback); - const removeSubscription = () => { - const idx = subscriptions.indexOf(callback); - if (idx > -1) { - subscriptions.splice(idx, 1); - onCleanup(); - } - }; - if (!detached && vue.getCurrentScope()) { - vue.onScopeDispose(removeSubscription); - } - return removeSubscription; - } - function triggerSubscriptions(subscriptions, ...args) { - subscriptions.slice().forEach((callback) => { - callback(...args); - }); - } - function mergeReactiveObjects(target, patchToApply) { - if (target instanceof Map && patchToApply instanceof Map) { - patchToApply.forEach((value, key) => target.set(key, value)); - } - if (target instanceof Set && patchToApply instanceof Set) { - patchToApply.forEach(target.add, target); - } - for (const key in patchToApply) { - if (!patchToApply.hasOwnProperty(key)) - continue; - const subPatch = patchToApply[key]; - const targetValue = target[key]; - if (isPlainObject$1(targetValue) && isPlainObject$1(subPatch) && target.hasOwnProperty(key) && !vue.isRef(subPatch) && !vue.isReactive(subPatch)) { - target[key] = mergeReactiveObjects(targetValue, subPatch); - } else { - target[key] = subPatch; - } - } - return target; - } - const skipHydrateSymbol = Symbol("pinia:skipHydration"); - function shouldHydrate(obj) { - return !isPlainObject$1(obj) || !obj.hasOwnProperty(skipHydrateSymbol); - } - const { assign } = Object; - function isComputed(o2) { - return !!(vue.isRef(o2) && o2.effect); - } - function createOptionsStore(id, options, pinia, hot) { - const { state, actions, getters } = options; - const initialState = pinia.state.value[id]; - let store; - function setup() { - if (!initialState && !hot) { - { - pinia.state.value[id] = state ? state() : {}; - } - } - const localState = hot ? ( - // use ref() to unwrap refs inside state TODO: check if this is still necessary - vue.toRefs(vue.ref(state ? state() : {}).value) - ) : vue.toRefs(pinia.state.value[id]); - return assign(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => { - if (name in localState) { - console.warn(`[🍍]: A getter cannot have the same name as another state property. Rename one of them. Found with "${name}" in store "${id}".`); - } - computedGetters[name] = vue.markRaw(vue.computed(() => { - setActivePinia(pinia); - const store2 = pinia._s.get(id); - return getters[name].call(store2, store2); - })); - return computedGetters; - }, {})); - } - store = createSetupStore(id, setup, options, pinia, hot, true); - return store; - } - function createSetupStore($id, setup, options = {}, pinia, hot, isOptionsStore) { - let scope; - const optionsForPlugin = assign({ actions: {} }, options); - if (!pinia._e.active) { - throw new Error("Pinia destroyed"); - } - const $subscribeOptions = { - deep: true - // flush: 'post', - }; - { - $subscribeOptions.onTrigger = (event) => { - if (isListening) { - debuggerEvents = event; - } else if (isListening == false && !store._hotUpdating) { - if (Array.isArray(debuggerEvents)) { - debuggerEvents.push(event); - } else { - console.error("🍍 debuggerEvents should be an array. This is most likely an internal Pinia bug."); - } - } - }; - } - let isListening; - let isSyncListening; - let subscriptions = vue.markRaw([]); - let actionSubscriptions = vue.markRaw([]); - let debuggerEvents; - const initialState = pinia.state.value[$id]; - if (!isOptionsStore && !initialState && !hot) { - { - pinia.state.value[$id] = {}; - } - } - const hotState = vue.ref({}); - let activeListener; - function $patch(partialStateOrMutator) { - let subscriptionMutation; - isListening = isSyncListening = false; - { - debuggerEvents = []; - } - if (typeof partialStateOrMutator === "function") { - partialStateOrMutator(pinia.state.value[$id]); - subscriptionMutation = { - type: MutationType.patchFunction, - storeId: $id, - events: debuggerEvents - }; - } else { - mergeReactiveObjects(pinia.state.value[$id], partialStateOrMutator); - subscriptionMutation = { - type: MutationType.patchObject, - payload: partialStateOrMutator, - storeId: $id, - events: debuggerEvents - }; - } - const myListenerId = activeListener = Symbol(); - vue.nextTick().then(() => { - if (activeListener === myListenerId) { - isListening = true; - } - }); - isSyncListening = true; - triggerSubscriptions(subscriptions, subscriptionMutation, pinia.state.value[$id]); - } - const $reset = isOptionsStore ? function $reset2() { - const { state } = options; - const newState = state ? state() : {}; - this.$patch(($state) => { - assign($state, newState); - }); - } : ( - /* istanbul ignore next */ - () => { - throw new Error(`🍍: Store "${$id}" is built using the setup syntax and does not implement $reset().`); - } - ); - function $dispose() { - scope.stop(); - subscriptions = []; - actionSubscriptions = []; - pinia._s.delete($id); - } - function wrapAction(name, action) { - return function() { - setActivePinia(pinia); - const args = Array.from(arguments); - const afterCallbackList = []; - const onErrorCallbackList = []; - function after(callback) { - afterCallbackList.push(callback); - } - function onError(callback) { - onErrorCallbackList.push(callback); - } - triggerSubscriptions(actionSubscriptions, { - args, - name, - store, - after, - onError - }); - let ret; - try { - ret = action.apply(this && this.$id === $id ? this : store, args); - } catch (error2) { - triggerSubscriptions(onErrorCallbackList, error2); - throw error2; - } - if (ret instanceof Promise) { - return ret.then((value) => { - triggerSubscriptions(afterCallbackList, value); - return value; - }).catch((error2) => { - triggerSubscriptions(onErrorCallbackList, error2); - return Promise.reject(error2); - }); - } - triggerSubscriptions(afterCallbackList, ret); - return ret; - }; - } - const _hmrPayload = /* @__PURE__ */ vue.markRaw({ - actions: {}, - getters: {}, - state: [], - hotState - }); - const partialStore = { - _p: pinia, - // _s: scope, - $id, - $onAction: addSubscription.bind(null, actionSubscriptions), - $patch, - $reset, - $subscribe(callback, options2 = {}) { - const removeSubscription = addSubscription(subscriptions, callback, options2.detached, () => stopWatcher()); - const stopWatcher = scope.run(() => vue.watch(() => pinia.state.value[$id], (state) => { - if (options2.flush === "sync" ? isSyncListening : isListening) { - callback({ - storeId: $id, - type: MutationType.direct, - events: debuggerEvents - }, state); - } - }, assign({}, $subscribeOptions, options2))); - return removeSubscription; - }, - $dispose - }; - const store = vue.reactive( - assign( - { - _hmrPayload, - _customProperties: vue.markRaw(/* @__PURE__ */ new Set()) - // devtools custom properties - }, - partialStore - // must be added later - // setupStore - ) - ); - pinia._s.set($id, store); - const setupStore = pinia._e.run(() => { - scope = vue.effectScope(); - return scope.run(() => setup()); - }); - for (const key in setupStore) { - const prop = setupStore[key]; - if (vue.isRef(prop) && !isComputed(prop) || vue.isReactive(prop)) { - if (hot) { - set(hotState.value, key, vue.toRef(setupStore, key)); - } else if (!isOptionsStore) { - if (initialState && shouldHydrate(prop)) { - if (vue.isRef(prop)) { - prop.value = initialState[key]; - } else { - mergeReactiveObjects(prop, initialState[key]); - } - } - { - pinia.state.value[$id][key] = prop; - } - } - { - _hmrPayload.state.push(key); - } - } else if (typeof prop === "function") { - const actionValue = hot ? prop : wrapAction(key, prop); - { - setupStore[key] = actionValue; - } - { - _hmrPayload.actions[key] = prop; - } - optionsForPlugin.actions[key] = prop; - } else { - if (isComputed(prop)) { - _hmrPayload.getters[key] = isOptionsStore ? ( - // @ts-expect-error - options.getters[key] - ) : prop; - if (IS_CLIENT) { - const getters = setupStore._getters || // @ts-expect-error: same - (setupStore._getters = vue.markRaw([])); - getters.push(key); - } - } - } - } - { - assign(store, setupStore); - assign(vue.toRaw(store), setupStore); - } - Object.defineProperty(store, "$state", { - get: () => hot ? hotState.value : pinia.state.value[$id], - set: (state) => { - if (hot) { - throw new Error("cannot set hotState"); - } - $patch(($state) => { - assign($state, state); - }); - } - }); - { - store._hotUpdate = vue.markRaw((newStore) => { - store._hotUpdating = true; - newStore._hmrPayload.state.forEach((stateKey) => { - if (stateKey in store.$state) { - const newStateTarget = newStore.$state[stateKey]; - const oldStateSource = store.$state[stateKey]; - if (typeof newStateTarget === "object" && isPlainObject$1(newStateTarget) && isPlainObject$1(oldStateSource)) { - patchObject(newStateTarget, oldStateSource); - } else { - newStore.$state[stateKey] = oldStateSource; - } - } - set(store, stateKey, vue.toRef(newStore.$state, stateKey)); - }); - Object.keys(store.$state).forEach((stateKey) => { - if (!(stateKey in newStore.$state)) { - del(store, stateKey); - } - }); - isListening = false; - isSyncListening = false; - pinia.state.value[$id] = vue.toRef(newStore._hmrPayload, "hotState"); - isSyncListening = true; - vue.nextTick().then(() => { - isListening = true; - }); - for (const actionName in newStore._hmrPayload.actions) { - const action = newStore[actionName]; - set(store, actionName, wrapAction(actionName, action)); - } - for (const getterName in newStore._hmrPayload.getters) { - const getter = newStore._hmrPayload.getters[getterName]; - const getterValue = isOptionsStore ? ( - // special handling of options api - vue.computed(() => { - setActivePinia(pinia); - return getter.call(store, store); - }) - ) : getter; - set(store, getterName, getterValue); - } - Object.keys(store._hmrPayload.getters).forEach((key) => { - if (!(key in newStore._hmrPayload.getters)) { - del(store, key); - } - }); - Object.keys(store._hmrPayload.actions).forEach((key) => { - if (!(key in newStore._hmrPayload.actions)) { - del(store, key); - } - }); - store._hmrPayload = newStore._hmrPayload; - store._getters = newStore._getters; - store._hotUpdating = false; - }); - } - if (USE_DEVTOOLS) { - const nonEnumerable = { - writable: true, - configurable: true, - // avoid warning on devtools trying to display this property - enumerable: false - }; - ["_p", "_hmrPayload", "_getters", "_customProperties"].forEach((p2) => { - Object.defineProperty(store, p2, assign({ value: store[p2] }, nonEnumerable)); - }); - } - pinia._p.forEach((extender) => { - if (USE_DEVTOOLS) { - const extensions = scope.run(() => extender({ - store, - app: pinia._a, - pinia, - options: optionsForPlugin - })); - Object.keys(extensions || {}).forEach((key) => store._customProperties.add(key)); - assign(store, extensions); - } else { - assign(store, scope.run(() => extender({ - store, - app: pinia._a, - pinia, - options: optionsForPlugin - }))); - } - }); - if (store.$state && typeof store.$state === "object" && typeof store.$state.constructor === "function" && !store.$state.constructor.toString().includes("[native code]")) { - console.warn(`[🍍]: The "state" must be a plain object. It cannot be - state: () => new MyClass() -Found in store "${store.$id}".`); - } - if (initialState && isOptionsStore && options.hydrate) { - options.hydrate(store.$state, initialState); - } - isListening = true; - isSyncListening = true; - return store; - } - function defineStore(idOrOptions, setup, setupOptions) { - let id; - let options; - const isSetupStore = typeof setup === "function"; - if (typeof idOrOptions === "string") { - id = idOrOptions; - options = isSetupStore ? setupOptions : setup; - } else { - options = idOrOptions; - id = idOrOptions.id; - } - function useStore(pinia, hot) { - const currentInstance = vue.getCurrentInstance(); - pinia = // in test mode, ignore the argument provided as we can always retrieve a - // pinia instance with getActivePinia() - pinia || currentInstance && vue.inject(piniaSymbol, null); - if (pinia) - setActivePinia(pinia); - if (!activePinia) { - throw new Error(`[🍍]: getActivePinia was called with no active Pinia. Did you forget to install pinia? - const pinia = createPinia() - app.use(pinia) -This will fail in production.`); - } - pinia = activePinia; - if (!pinia._s.has(id)) { - if (isSetupStore) { - createSetupStore(id, setup, options, pinia); - } else { - createOptionsStore(id, options, pinia); - } - { - useStore._pinia = pinia; - } - } - const store = pinia._s.get(id); - if (hot) { - const hotId = "__hot:" + id; - const newStore = isSetupStore ? createSetupStore(hotId, setup, options, pinia, true) : createOptionsStore(hotId, assign({}, options), pinia, true); - hot._hotUpdate(newStore); - delete pinia.state.value[hotId]; - pinia._s.delete(hotId); - } - if (IS_CLIENT && currentInstance && currentInstance.proxy && // avoid adding stores that are just built for hot module replacement - !hot) { - const vm = currentInstance.proxy; - const cache = "_pStores" in vm ? vm._pStores : vm._pStores = {}; - cache[id] = store; - } - return store; - } - useStore.$id = id; - return useStore; - } - const userInfoStore = defineStore("counter", { - state: () => ({ - userInfo: {} - }), - getters: {}, - actions: { - saveUserInfo(userInfo) { - this.userInfo = userInfo; - } - } - }); - const _sfc_main = { - onLaunch: function() { - const userInfo = userInfoStore(); - userInfoAPI({ - user_id: 307, - user_type: 3 - }).then((res) => { - userInfo.saveUserInfo(res.data); - }); - uni.setStorageSync("SY_TOKEN", "dfdf4564557445df4df"); - }, - onShow: function() { - formatAppLog("log", "at App.vue:20", "App Show"); - }, - onHide: function() { - formatAppLog("log", "at App.vue:23", "App Hide"); - } - }; - const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "D:/zmj/uniapp/TraceabilityAPP/App.vue"]]); - const { toString } = Object.prototype; - function isArray(val) { - return toString.call(val) === "[object Array]"; - } - function isObject(val) { - return val !== null && typeof val === "object"; - } - function isDate(val) { - return toString.call(val) === "[object Date]"; - } - function isURLSearchParams(val) { - return typeof URLSearchParams !== "undefined" && val instanceof URLSearchParams; - } - function forEach(obj, fn) { - if (obj === null || typeof obj === "undefined") { - return; - } - if (typeof obj !== "object") { - obj = [obj]; - } - if (isArray(obj)) { - for (let i2 = 0, l2 = obj.length; i2 < l2; i2++) { - fn.call(null, obj[i2], i2, obj); - } - } else { - for (const key in obj) { - if (Object.prototype.hasOwnProperty.call(obj, key)) { - fn.call(null, obj[key], key, obj); - } - } - } - } - function isPlainObject(obj) { - return Object.prototype.toString.call(obj) === "[object Object]"; - } - function deepMerge$1() { - const result = {}; - function assignValue(val, key) { - if (typeof result[key] === "object" && typeof val === "object") { - result[key] = deepMerge$1(result[key], val); - } else if (typeof val === "object") { - result[key] = deepMerge$1({}, val); - } else { - result[key] = val; - } - } - for (let i2 = 0, l2 = arguments.length; i2 < l2; i2++) { - forEach(arguments[i2], assignValue); - } - return result; - } - function isUndefined(val) { - return typeof val === "undefined"; - } - function encode(val) { - return encodeURIComponent(val).replace(/%40/gi, "@").replace(/%3A/gi, ":").replace(/%24/g, "$").replace(/%2C/gi, ",").replace(/%20/g, "+").replace(/%5B/gi, "[").replace(/%5D/gi, "]"); - } - function buildURL(url2, params) { - if (!params) { - return url2; - } - let serializedParams; - if (isURLSearchParams(params)) { - serializedParams = params.toString(); - } else { - const parts = []; - forEach(params, (val, key) => { - if (val === null || typeof val === "undefined") { - return; - } - if (isArray(val)) { - key = `${key}[]`; - } else { - val = [val]; - } - forEach(val, (v2) => { - if (isDate(v2)) { - v2 = v2.toISOString(); - } else if (isObject(v2)) { - v2 = JSON.stringify(v2); - } - parts.push(`${encode(key)}=${encode(v2)}`); - }); - }); - serializedParams = parts.join("&"); - } - if (serializedParams) { - const hashmarkIndex = url2.indexOf("#"); - if (hashmarkIndex !== -1) { - url2 = url2.slice(0, hashmarkIndex); - } - url2 += (url2.indexOf("?") === -1 ? "?" : "&") + serializedParams; - } - return url2; - } - function isAbsoluteURL(url2) { - return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url2); - } - function combineURLs(baseURL, relativeURL) { - return relativeURL ? `${baseURL.replace(/\/+$/, "")}/${relativeURL.replace(/^\/+/, "")}` : baseURL; - } - function buildFullPath(baseURL, requestedURL) { - if (baseURL && !isAbsoluteURL(requestedURL)) { - return combineURLs(baseURL, requestedURL); - } - return requestedURL; - } - function settle(resolve, reject, response) { - const { validateStatus } = response.config; - const status = response.statusCode; - if (status && (!validateStatus || validateStatus(status))) { - resolve(response); - } else { - reject(response); - } - } - const mergeKeys$1 = (keys, config2) => { - const config3 = {}; - keys.forEach((prop) => { - if (!isUndefined(config2[prop])) { - config3[prop] = config2[prop]; - } - }); - return config3; - }; - const adapter = (config2) => new Promise((resolve, reject) => { - const fullPath = buildURL(buildFullPath(config2.baseURL, config2.url), config2.params); - const _config = { - url: fullPath, - header: config2.header, - complete: (response) => { - config2.fullPath = fullPath; - response.config = config2; - try { - if (typeof response.data === "string") { - response.data = JSON.parse(response.data); - } - } catch (e2) { - } - settle(resolve, reject, response); - } - }; - let requestTask; - if (config2.method === "UPLOAD") { - delete _config.header["content-type"]; - delete _config.header["Content-Type"]; - const otherConfig = { - filePath: config2.filePath, - name: config2.name - }; - const optionalKeys = [ - "files", - "timeout", - "formData" - ]; - requestTask = uni.uploadFile({ ..._config, ...otherConfig, ...mergeKeys$1(optionalKeys, config2) }); - } else if (config2.method === "DOWNLOAD") { - if (!isUndefined(config2.timeout)) { - _config.timeout = config2.timeout; - } - requestTask = uni.downloadFile(_config); - } else { - const optionalKeys = [ - "data", - "method", - "timeout", - "dataType", - "responseType", - "sslVerify", - "firstIpv4" - ]; - requestTask = uni.request({ ..._config, ...mergeKeys$1(optionalKeys, config2) }); - } - if (config2.getTask) { - config2.getTask(requestTask, config2); - } - }); - const dispatchRequest = (config2) => adapter(config2); - function InterceptorManager() { - this.handlers = []; - } - InterceptorManager.prototype.use = function use(fulfilled, rejected) { - this.handlers.push({ - fulfilled, - rejected - }); - return this.handlers.length - 1; - }; - InterceptorManager.prototype.eject = function eject(id) { - if (this.handlers[id]) { - this.handlers[id] = null; - } - }; - InterceptorManager.prototype.forEach = function forEach2(fn) { - this.handlers.forEach((h2) => { - if (h2 !== null) { - fn(h2); - } - }); - }; - const mergeKeys = (keys, globalsConfig, config2) => { - const config3 = {}; - keys.forEach((prop) => { - if (!isUndefined(config2[prop])) { - config3[prop] = config2[prop]; - } else if (!isUndefined(globalsConfig[prop])) { - config3[prop] = globalsConfig[prop]; - } - }); - return config3; - }; - const mergeConfig = (globalsConfig, config2 = {}) => { - const method2 = config2.method || globalsConfig.method || "GET"; - let config3 = { - baseURL: globalsConfig.baseURL || "", - method: method2, - url: config2.url || "", - params: config2.params || {}, - custom: { ...globalsConfig.custom || {}, ...config2.custom || {} }, - header: deepMerge$1(globalsConfig.header || {}, config2.header || {}) - }; - const defaultToConfig2Keys = ["getTask", "validateStatus"]; - config3 = { ...config3, ...mergeKeys(defaultToConfig2Keys, globalsConfig, config2) }; - if (method2 === "DOWNLOAD") { - if (!isUndefined(config2.timeout)) { - config3.timeout = config2.timeout; - } else if (!isUndefined(globalsConfig.timeout)) { - config3.timeout = globalsConfig.timeout; - } - } else if (method2 === "UPLOAD") { - delete config3.header["content-type"]; - delete config3.header["Content-Type"]; - const uploadKeys = [ - "files", - "filePath", - "name", - "timeout", - "formData" - ]; - uploadKeys.forEach((prop) => { - if (!isUndefined(config2[prop])) { - config3[prop] = config2[prop]; - } - }); - if (isUndefined(config3.timeout) && !isUndefined(globalsConfig.timeout)) { - config3.timeout = globalsConfig.timeout; - } - } else { - const defaultsKeys = [ - "data", - "timeout", - "dataType", - "responseType", - "sslVerify", - "firstIpv4" - ]; - config3 = { ...config3, ...mergeKeys(defaultsKeys, globalsConfig, config2) }; - } - return config3; - }; - const defaults = { - baseURL: "", - header: {}, - method: "GET", - dataType: "json", - responseType: "text", - custom: {}, - timeout: 6e4, - sslVerify: true, - firstIpv4: false, - validateStatus: function validateStatus(status) { - return status >= 200 && status < 300; - } - }; - var clone = function() { - function _instanceof(obj, type2) { - return type2 != null && obj instanceof type2; - } - var nativeMap; - try { - nativeMap = Map; - } catch (_2) { - nativeMap = function() { - }; - } - var nativeSet; - try { - nativeSet = Set; - } catch (_2) { - nativeSet = function() { - }; - } - var nativePromise; - try { - nativePromise = Promise; - } catch (_2) { - nativePromise = function() { - }; - } - function clone2(parent, circular, depth, prototype, includeNonEnumerable) { - if (typeof circular === "object") { - depth = circular.depth; - prototype = circular.prototype; - includeNonEnumerable = circular.includeNonEnumerable; - circular = circular.circular; - } - var allParents = []; - var allChildren = []; - var useBuffer = typeof Buffer != "undefined"; - if (typeof circular == "undefined") - circular = true; - if (typeof depth == "undefined") - depth = Infinity; - function _clone(parent2, depth2) { - if (parent2 === null) - return null; - if (depth2 === 0) - return parent2; - var child; - var proto; - if (typeof parent2 != "object") { - return parent2; - } - if (_instanceof(parent2, nativeMap)) { - child = new nativeMap(); - } else if (_instanceof(parent2, nativeSet)) { - child = new nativeSet(); - } else if (_instanceof(parent2, nativePromise)) { - child = new nativePromise(function(resolve, reject) { - parent2.then(function(value) { - resolve(_clone(value, depth2 - 1)); - }, function(err) { - reject(_clone(err, depth2 - 1)); - }); - }); - } else if (clone2.__isArray(parent2)) { - child = []; - } else if (clone2.__isRegExp(parent2)) { - child = new RegExp(parent2.source, __getRegExpFlags(parent2)); - if (parent2.lastIndex) - child.lastIndex = parent2.lastIndex; - } else if (clone2.__isDate(parent2)) { - child = new Date(parent2.getTime()); - } else if (useBuffer && Buffer.isBuffer(parent2)) { - if (Buffer.from) { - child = Buffer.from(parent2); - } else { - child = new Buffer(parent2.length); - parent2.copy(child); - } - return child; - } else if (_instanceof(parent2, Error)) { - child = Object.create(parent2); - } else { - if (typeof prototype == "undefined") { - proto = Object.getPrototypeOf(parent2); - child = Object.create(proto); - } else { - child = Object.create(prototype); - proto = prototype; - } - } - if (circular) { - var index2 = allParents.indexOf(parent2); - if (index2 != -1) { - return allChildren[index2]; - } - allParents.push(parent2); - allChildren.push(child); - } - if (_instanceof(parent2, nativeMap)) { - parent2.forEach(function(value, key) { - var keyChild = _clone(key, depth2 - 1); - var valueChild = _clone(value, depth2 - 1); - child.set(keyChild, valueChild); - }); - } - if (_instanceof(parent2, nativeSet)) { - parent2.forEach(function(value) { - var entryChild = _clone(value, depth2 - 1); - child.add(entryChild); - }); - } - for (var i2 in parent2) { - var attrs = Object.getOwnPropertyDescriptor(parent2, i2); - if (attrs) { - child[i2] = _clone(parent2[i2], depth2 - 1); - } - try { - var objProperty = Object.getOwnPropertyDescriptor(parent2, i2); - if (objProperty.set === "undefined") { - continue; - } - child[i2] = _clone(parent2[i2], depth2 - 1); - } catch (e2) { - if (e2 instanceof TypeError) { - continue; - } else if (e2 instanceof ReferenceError) { - continue; - } - } - } - if (Object.getOwnPropertySymbols) { - var symbols = Object.getOwnPropertySymbols(parent2); - for (var i2 = 0; i2 < symbols.length; i2++) { - var symbol = symbols[i2]; - var descriptor = Object.getOwnPropertyDescriptor(parent2, symbol); - if (descriptor && !descriptor.enumerable && !includeNonEnumerable) { - continue; - } - child[symbol] = _clone(parent2[symbol], depth2 - 1); - Object.defineProperty(child, symbol, descriptor); - } - } - if (includeNonEnumerable) { - var allPropertyNames = Object.getOwnPropertyNames(parent2); - for (var i2 = 0; i2 < allPropertyNames.length; i2++) { - var propertyName = allPropertyNames[i2]; - var descriptor = Object.getOwnPropertyDescriptor(parent2, propertyName); - if (descriptor && descriptor.enumerable) { - continue; - } - child[propertyName] = _clone(parent2[propertyName], depth2 - 1); - Object.defineProperty(child, propertyName, descriptor); - } - } - return child; - } - return _clone(parent, depth); - } - clone2.clonePrototype = function clonePrototype(parent) { - if (parent === null) - return null; - var c2 = function() { - }; - c2.prototype = parent; - return new c2(); - }; - function __objToStr(o2) { - return Object.prototype.toString.call(o2); - } - clone2.__objToStr = __objToStr; - function __isDate(o2) { - return typeof o2 === "object" && __objToStr(o2) === "[object Date]"; - } - clone2.__isDate = __isDate; - function __isArray(o2) { - return typeof o2 === "object" && __objToStr(o2) === "[object Array]"; - } - clone2.__isArray = __isArray; - function __isRegExp(o2) { - return typeof o2 === "object" && __objToStr(o2) === "[object RegExp]"; - } - clone2.__isRegExp = __isRegExp; - function __getRegExpFlags(re2) { - var flags = ""; - if (re2.global) - flags += "g"; - if (re2.ignoreCase) - flags += "i"; - if (re2.multiline) - flags += "m"; - return flags; - } - clone2.__getRegExpFlags = __getRegExpFlags; - return clone2; - }(); - class Request { - /** - * @param {Object} arg - 全局配置 - * @param {String} arg.baseURL - 全局根路径 - * @param {Object} arg.header - 全局header - * @param {String} arg.method = [GET|POST|PUT|DELETE|CONNECT|HEAD|OPTIONS|TRACE] - 全局默认请求方式 - * @param {String} arg.dataType = [json] - 全局默认的dataType - * @param {String} arg.responseType = [text|arraybuffer] - 全局默认的responseType。支付宝小程序不支持 - * @param {Object} arg.custom - 全局默认的自定义参数 - * @param {Number} arg.timeout - 全局默认的超时时间,单位 ms。默认60000。H5(HBuilderX 2.9.9+)、APP(HBuilderX 2.9.9+)、微信小程序(2.10.0)、支付宝小程序 - * @param {Boolean} arg.sslVerify - 全局默认的是否验证 ssl 证书。默认true.仅App安卓端支持(HBuilderX 2.3.3+) - * @param {Boolean} arg.withCredentials - 全局默认的跨域请求时是否携带凭证(cookies)。默认false。仅H5支持(HBuilderX 2.6.15+) - * @param {Boolean} arg.firstIpv4 - 全DNS解析时优先使用ipv4。默认false。仅 App-Android 支持 (HBuilderX 2.8.0+) - * @param {Function(statusCode):Boolean} arg.validateStatus - 全局默认的自定义验证器。默认statusCode >= 200 && statusCode < 300 - */ - constructor(arg = {}) { - if (!isPlainObject(arg)) { - arg = {}; - formatAppLog("warn", "at node_modules/uview-plus/libs/luch-request/core/Request.js:39", "设置全局参数必须接收一个Object"); - } - this.config = clone({ ...defaults, ...arg }); - this.interceptors = { - request: new InterceptorManager(), - response: new InterceptorManager() - }; - } - /** - * @Function - * @param {Request~setConfigCallback} f - 设置全局默认配置 - */ - setConfig(f2) { - this.config = f2(this.config); - } - middleware(config2) { - config2 = mergeConfig(this.config, config2); - const chain = [dispatchRequest, void 0]; - let promise2 = Promise.resolve(config2); - this.interceptors.request.forEach((interceptor) => { - chain.unshift(interceptor.fulfilled, interceptor.rejected); - }); - this.interceptors.response.forEach((interceptor) => { - chain.push(interceptor.fulfilled, interceptor.rejected); - }); - while (chain.length) { - promise2 = promise2.then(chain.shift(), chain.shift()); - } - return promise2; - } - /** - * @Function - * @param {Object} config - 请求配置项 - * @prop {String} options.url - 请求路径 - * @prop {Object} options.data - 请求参数 - * @prop {Object} [options.responseType = config.responseType] [text|arraybuffer] - 响应的数据类型 - * @prop {Object} [options.dataType = config.dataType] - 如果设为 json,会尝试对返回的数据做一次 JSON.parse - * @prop {Object} [options.header = config.header] - 请求header - * @prop {Object} [options.method = config.method] - 请求方法 - * @returns {Promise} - */ - request(config2 = {}) { - return this.middleware(config2); - } - get(url2, options = {}) { - return this.middleware({ - url: url2, - method: "GET", - ...options - }); - } - post(url2, data, options = {}) { - return this.middleware({ - url: url2, - data, - method: "POST", - ...options - }); - } - put(url2, data, options = {}) { - return this.middleware({ - url: url2, - data, - method: "PUT", - ...options - }); - } - delete(url2, data, options = {}) { - return this.middleware({ - url: url2, - data, - method: "DELETE", - ...options - }); - } - options(url2, data, options = {}) { - return this.middleware({ - url: url2, - data, - method: "OPTIONS", - ...options - }); - } - upload(url2, config2 = {}) { - config2.url = url2; - config2.method = "UPLOAD"; - return this.middleware(config2); - } - download(url2, config2 = {}) { - config2.url = url2; - config2.method = "DOWNLOAD"; - return this.middleware(config2); - } - } - class Router { - constructor() { - this.config = { - type: "navigateTo", - url: "", - delta: 1, - // navigateBack页面后退时,回退的层数 - params: {}, - // 传递的参数 - animationType: "pop-in", - // 窗口动画,只在APP有效 - animationDuration: 300, - // 窗口动画持续时间,单位毫秒,只在APP有效 - intercept: false - // 是否需要拦截 - }; - this.route = this.route.bind(this); - } - // 判断url前面是否有"/",如果没有则加上,否则无法跳转 - addRootPath(url2) { - return url2[0] === "/" ? url2 : `/${url2}`; - } - // 整合路由参数 - mixinParam(url2, params) { - url2 = url2 && this.addRootPath(url2); - let query = ""; - if (/.*\/.*\?.*=.*/.test(url2)) { - query = uni.$u.queryParams(params, false); - return url2 += `&${query}`; - } - query = uni.$u.queryParams(params); - return url2 += query; - } - // 对外的方法名称 - async route(options = {}, params = {}) { - let mergeConfig2 = {}; - if (typeof options === "string") { - mergeConfig2.url = this.mixinParam(options, params); - mergeConfig2.type = "navigateTo"; - } else { - mergeConfig2 = uni.$u.deepMerge(this.config, options); - mergeConfig2.url = this.mixinParam(options.url, options.params); - } - if (mergeConfig2.url === uni.$u.page()) - return; - if (params.intercept) { - this.config.intercept = params.intercept; - } - mergeConfig2.params = params; - mergeConfig2 = uni.$u.deepMerge(this.config, mergeConfig2); - if (typeof uni.$u.routeIntercept === "function") { - const isNext = await new Promise((resolve, reject) => { - uni.$u.routeIntercept(mergeConfig2, resolve); - }); - isNext && this.openPage(mergeConfig2); - } else { - this.openPage(mergeConfig2); - } - } - // 执行路由跳转 - openPage(config2) { - const { - url: url2, - type: type2, - delta, - animationType, - animationDuration - } = config2; - if (config2.type == "navigateTo" || config2.type == "to") { - uni.navigateTo({ - url: url2, - animationType, - animationDuration - }); - } - if (config2.type == "redirectTo" || config2.type == "redirect") { - uni.redirectTo({ - url: url2 - }); - } - if (config2.type == "switchTab" || config2.type == "tab") { - uni.switchTab({ - url: url2 - }); - } - if (config2.type == "reLaunch" || config2.type == "launch") { - uni.reLaunch({ - url: url2 - }); - } - if (config2.type == "navigateBack" || config2.type == "back") { - uni.navigateBack({ - delta - }); - } - } - } - const route = new Router().route; - function colorGradient(startColor = "rgb(0, 0, 0)", endColor = "rgb(255, 255, 255)", step = 10) { - const startRGB = hexToRgb(startColor, false); - const startR = startRGB[0]; - const startG = startRGB[1]; - const startB = startRGB[2]; - const endRGB = hexToRgb(endColor, false); - const endR = endRGB[0]; - const endG = endRGB[1]; - const endB = endRGB[2]; - const sR = (endR - startR) / step; - const sG = (endG - startG) / step; - const sB = (endB - startB) / step; - const colorArr = []; - for (let i2 = 0; i2 < step; i2++) { - let hex = rgbToHex(`rgb(${Math.round(sR * i2 + startR)},${Math.round(sG * i2 + startG)},${Math.round(sB * i2 + startB)})`); - if (i2 === 0) - hex = rgbToHex(startColor); - if (i2 === step - 1) - hex = rgbToHex(endColor); - colorArr.push(hex); - } - return colorArr; - } - function hexToRgb(sColor, str = true) { - const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; - sColor = String(sColor).toLowerCase(); - if (sColor && reg.test(sColor)) { - if (sColor.length === 4) { - let sColorNew = "#"; - for (let i2 = 1; i2 < 4; i2 += 1) { - sColorNew += sColor.slice(i2, i2 + 1).concat(sColor.slice(i2, i2 + 1)); - } - sColor = sColorNew; - } - const sColorChange = []; - for (let i2 = 1; i2 < 7; i2 += 2) { - sColorChange.push(parseInt(`0x${sColor.slice(i2, i2 + 2)}`)); - } - if (!str) { - return sColorChange; - } - return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`; - } - if (/^(rgb|RGB)/.test(sColor)) { - const arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(","); - return arr.map((val) => Number(val)); - } - return sColor; - } - function rgbToHex(rgb) { - const _this = rgb; - const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; - if (/^(rgb|RGB)/.test(_this)) { - const aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(","); - let strHex = "#"; - for (let i2 = 0; i2 < aColor.length; i2++) { - let hex = Number(aColor[i2]).toString(16); - hex = String(hex).length == 1 ? `${0}${hex}` : hex; - if (hex === "0") { - hex += hex; - } - strHex += hex; - } - if (strHex.length !== 7) { - strHex = _this; - } - return strHex; - } - if (reg.test(_this)) { - const aNum = _this.replace(/#/, "").split(""); - if (aNum.length === 6) { - return _this; - } - if (aNum.length === 3) { - let numHex = "#"; - for (let i2 = 0; i2 < aNum.length; i2 += 1) { - numHex += aNum[i2] + aNum[i2]; - } - return numHex; - } - } else { - return _this; - } - } - function colorToRgba(color2, alpha) { - color2 = rgbToHex(color2); - const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; - let sColor = String(color2).toLowerCase(); - if (sColor && reg.test(sColor)) { - if (sColor.length === 4) { - let sColorNew = "#"; - for (let i2 = 1; i2 < 4; i2 += 1) { - sColorNew += sColor.slice(i2, i2 + 1).concat(sColor.slice(i2, i2 + 1)); - } - sColor = sColorNew; - } - const sColorChange = []; - for (let i2 = 1; i2 < 7; i2 += 2) { - sColorChange.push(parseInt(`0x${sColor.slice(i2, i2 + 2)}`)); - } - return `rgba(${sColorChange.join(",")},${alpha})`; - } - return sColor; - } - const colorGradient$1 = { - colorGradient, - hexToRgb, - rgbToHex, - colorToRgba - }; - function email(value) { - return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value); - } - function mobile(value) { - return /^1[23456789]\d{9}$/.test(value); - } - function url(value) { - return /^((https|http|ftp|rtsp|mms):\/\/)(([0-9a-zA-Z_!~*'().&=+$%-]+: )?[0-9a-zA-Z_!~*'().&=+$%-]+@)?(([0-9]{1,3}.){3}[0-9]{1,3}|([0-9a-zA-Z_!~*'()-]+.)*([0-9a-zA-Z][0-9a-zA-Z-]{0,61})?[0-9a-zA-Z].[a-zA-Z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-zA-Z_!~*'().;?:@&=+$,%#-]+)+\/?)$/.test(value); - } - function date(value) { - if (!value) - return false; - if (number(value)) - value = +value; - return !/Invalid|NaN/.test(new Date(value).toString()); - } - function dateISO(value) { - return /^\d{4}[\/\-](0?[1-9]|1[012])[\/\-](0?[1-9]|[12][0-9]|3[01])$/.test(value); - } - function number(value) { - return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value); - } - function string(value) { - return typeof value === "string"; - } - function digits(value) { - return /^\d+$/.test(value); - } - function idCard(value) { - return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/.test( - value - ); - } - function carNo(value) { - const xreg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}(([0-9]{5}[DF]$)|([DF][A-HJ-NP-Z0-9][0-9]{4}$))/; - const creg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]{1}$/; - if (value.length === 7) { - return creg.test(value); - } - if (value.length === 8) { - return xreg.test(value); - } - return false; - } - function amount(value) { - return /^[1-9]\d*(,\d{3})*(\.\d{1,2})?$|^0\.\d{1,2}$/.test(value); - } - function chinese(value) { - const reg = /^[\u4e00-\u9fa5]+$/gi; - return reg.test(value); - } - function letter(value) { - return /^[a-zA-Z]*$/.test(value); - } - function enOrNum(value) { - const reg = /^[0-9a-zA-Z]*$/g; - return reg.test(value); - } - function contains(value, param) { - return value.indexOf(param) >= 0; - } - function range$1(value, param) { - return value >= param[0] && value <= param[1]; - } - function rangeLength(value, param) { - return value.length >= param[0] && value.length <= param[1]; - } - function landline(value) { - const reg = /^\d{3,4}-\d{7,8}(-\d{3,4})?$/; - return reg.test(value); - } - function empty(value) { - switch (typeof value) { - case "undefined": - return true; - case "string": - if (value.replace(/(^[ \t\n\r]*)|([ \t\n\r]*$)/g, "").length == 0) - return true; - break; - case "boolean": - if (!value) - return true; - break; - case "number": - if (value === 0 || isNaN(value)) - return true; - break; - case "object": - if (value === null || value.length === 0) - return true; - for (const i2 in value) { - return false; - } - return true; - } - return false; - } - function jsonString(value) { - if (typeof value === "string") { - try { - const obj = JSON.parse(value); - if (typeof obj === "object" && obj) { - return true; - } - return false; - } catch (e2) { - return false; - } - } - return false; - } - function array(value) { - if (typeof Array.isArray === "function") { - return Array.isArray(value); - } - return Object.prototype.toString.call(value) === "[object Array]"; - } - function object(value) { - return Object.prototype.toString.call(value) === "[object Object]"; - } - function code(value, len = 6) { - return new RegExp(`^\\d{${len}}$`).test(value); - } - function func(value) { - return typeof value === "function"; - } - function promise(value) { - return object(value) && func(value.then) && func(value.catch); - } - function image(value) { - const newValue = value.split("?")[0]; - const IMAGE_REGEXP = /\.(jpeg|jpg|gif|png|svg|webp|jfif|bmp|dpg)/i; - return IMAGE_REGEXP.test(newValue); - } - function video(value) { - const VIDEO_REGEXP = /\.(mp4|mpg|mpeg|dat|asf|avi|rm|rmvb|mov|wmv|flv|mkv|m3u8)/i; - return VIDEO_REGEXP.test(value); - } - function regExp(o2) { - return o2 && Object.prototype.toString.call(o2) === "[object RegExp]"; - } - const test = { - email, - mobile, - url, - date, - dateISO, - number, - digits, - idCard, - carNo, - amount, - chinese, - letter, - enOrNum, - contains, - range: range$1, - rangeLength, - empty, - isEmpty: empty, - jsonString, - landline, - object, - array, - code, - func, - promise, - video, - image, - regExp, - string - }; - let timeout = null; - function debounce(func2, wait = 500, immediate = false) { - if (timeout !== null) - clearTimeout(timeout); - if (immediate) { - const callNow = !timeout; - timeout = setTimeout(() => { - timeout = null; - }, wait); - if (callNow) - typeof func2 === "function" && func2(); - } else { - timeout = setTimeout(() => { - typeof func2 === "function" && func2(); - }, wait); - } - } - let flag; - function throttle(func2, wait = 500, immediate = true) { - if (immediate) { - if (!flag) { - flag = true; - typeof func2 === "function" && func2(); - setTimeout(() => { - flag = false; - }, wait); - } - } else if (!flag) { - flag = true; - setTimeout(() => { - flag = false; - typeof func2 === "function" && func2(); - }, wait); - } - } - function strip(num, precision = 15) { - return +parseFloat(Number(num).toPrecision(precision)); - } - function digitLength(num) { - const eSplit = num.toString().split(/[eE]/); - const len = (eSplit[0].split(".")[1] || "").length - +(eSplit[1] || 0); - return len > 0 ? len : 0; - } - function float2Fixed(num) { - if (num.toString().indexOf("e") === -1) { - return Number(num.toString().replace(".", "")); - } - const dLen = digitLength(num); - return dLen > 0 ? strip(Number(num) * Math.pow(10, dLen)) : Number(num); - } - function checkBoundary(num) { - { - if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) { - formatAppLog("warn", "at node_modules/uview-plus/libs/function/digit.js:45", `${num} 超出了精度限制,结果可能不正确`); - } - } - } - function iteratorOperation(arr, operation) { - const [num1, num2, ...others] = arr; - let res = operation(num1, num2); - others.forEach((num) => { - res = operation(res, num); - }); - return res; - } - function times(...nums) { - if (nums.length > 2) { - return iteratorOperation(nums, times); - } - const [num1, num2] = nums; - const num1Changed = float2Fixed(num1); - const num2Changed = float2Fixed(num2); - const baseNum = digitLength(num1) + digitLength(num2); - const leftValue = num1Changed * num2Changed; - checkBoundary(leftValue); - return leftValue / Math.pow(10, baseNum); - } - function divide(...nums) { - if (nums.length > 2) { - return iteratorOperation(nums, divide); - } - const [num1, num2] = nums; - const num1Changed = float2Fixed(num1); - const num2Changed = float2Fixed(num2); - checkBoundary(num1Changed); - checkBoundary(num2Changed); - return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1)))); - } - function round(num, ratio) { - const base = Math.pow(10, ratio); - let result = divide(Math.round(Math.abs(times(num, base))), base); - if (num < 0 && result !== 0) { - result = times(result, -1); - } - return result; - } - function range(min = 0, max = 0, value = 0) { - return Math.max(min, Math.min(max, Number(value))); - } - function getPx(value, unit = false) { - if (test.number(value)) { - return unit ? `${value}px` : Number(value); - } - if (/(rpx|upx)$/.test(value)) { - return unit ? `${uni.upx2px(parseInt(value))}px` : Number(uni.upx2px(parseInt(value))); - } - return unit ? `${parseInt(value)}px` : parseInt(value); - } - function sleep(value = 30) { - return new Promise((resolve) => { - setTimeout(() => { - resolve(); - }, value); - }); - } - function os() { - return uni.getSystemInfoSync().platform.toLowerCase(); - } - function sys() { - return uni.getSystemInfoSync(); - } - function random(min, max) { - if (min >= 0 && max > 0 && max >= min) { - const gab = max - min + 1; - return Math.floor(Math.random() * gab + min); - } - return 0; - } - function guid(len = 32, firstU = true, radix = null) { - const chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split(""); - const uuid = []; - radix = radix || chars.length; - if (len) { - for (let i2 = 0; i2 < len; i2++) - uuid[i2] = chars[0 | Math.random() * radix]; - } else { - let r2; - uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-"; - uuid[14] = "4"; - for (let i2 = 0; i2 < 36; i2++) { - if (!uuid[i2]) { - r2 = 0 | Math.random() * 16; - uuid[i2] = chars[i2 == 19 ? r2 & 3 | 8 : r2]; - } - } - } - if (firstU) { - uuid.shift(); - return `u${uuid.join("")}`; - } - return uuid.join(""); - } - function $parent(name = void 0) { - let parent = this.$parent; - while (parent) { - if (parent.$options && parent.$options.name !== name) { - parent = parent.$parent; - } else { - return parent; - } - } - return false; - } - function addStyle(customStyle, target = "object") { - if (test.empty(customStyle) || typeof customStyle === "object" && target === "object" || target === "string" && typeof customStyle === "string") { - return customStyle; - } - if (target === "object") { - customStyle = trim(customStyle); - const styleArray = customStyle.split(";"); - const style = {}; - for (let i2 = 0; i2 < styleArray.length; i2++) { - if (styleArray[i2]) { - const item = styleArray[i2].split(":"); - style[trim(item[0])] = trim(item[1]); - } - } - return style; - } - let string2 = ""; - for (const i2 in customStyle) { - const key = i2.replace(/([A-Z])/g, "-$1").toLowerCase(); - string2 += `${key}:${customStyle[i2]};`; - } - return trim(string2); - } - function addUnit(value = "auto", unit = "") { - if (!unit) { - unit = uni.$u.config.unit || "px"; - } - value = String(value); - return test.number(value) ? `${value}${unit}` : value; - } - function deepClone(obj) { - if ([null, void 0, NaN, false].includes(obj)) - return obj; - if (typeof obj !== "object" && typeof obj !== "function") { - return obj; - } - const o2 = test.array(obj) ? [] : {}; - for (const i2 in obj) { - if (obj.hasOwnProperty(i2)) { - o2[i2] = typeof obj[i2] === "object" ? deepClone(obj[i2]) : obj[i2]; - } - } - return o2; - } - function deepMerge(target = {}, source = {}) { - target = deepClone(target); - if (typeof target !== "object" || typeof source !== "object") - return false; - for (const prop in source) { - if (!source.hasOwnProperty(prop)) - continue; - if (prop in target) { - if (source[prop] == null) { - target[prop] = source[prop]; - } else if (typeof target[prop] !== "object") { - target[prop] = source[prop]; - } else if (typeof source[prop] !== "object") { - target[prop] = source[prop]; - } else if (target[prop].concat && source[prop].concat) { - target[prop] = target[prop].concat(source[prop]); - } else { - target[prop] = deepMerge(target[prop], source[prop]); - } - } else { - target[prop] = source[prop]; - } - } - return target; - } - function error(err) { - { - formatAppLog("error", "at node_modules/uview-plus/libs/function/index.js:240", `uView提示:${err}`); - } - } - function randomArray(array2 = []) { - return array2.sort(() => Math.random() - 0.5); - } - if (!String.prototype.padStart) { - String.prototype.padStart = function(maxLength, fillString = " ") { - if (Object.prototype.toString.call(fillString) !== "[object String]") { - throw new TypeError( - "fillString must be String" - ); - } - const str = this; - if (str.length >= maxLength) - return String(str); - const fillLength = maxLength - str.length; - let times2 = Math.ceil(fillLength / fillString.length); - while (times2 >>= 1) { - fillString += fillString; - if (times2 === 1) { - fillString += fillString; - } - } - return fillString.slice(0, fillLength) + str; - }; - } - function timeFormat(dateTime = null, formatStr = "yyyy-mm-dd") { - let date2; - if (!dateTime) { - date2 = /* @__PURE__ */ new Date(); - } else if (/^\d{10}$/.test(dateTime.toString().trim())) { - date2 = new Date(dateTime * 1e3); - } else if (typeof dateTime === "string" && /^\d+$/.test(dateTime.trim())) { - date2 = new Date(Number(dateTime)); - } else { - date2 = new Date( - typeof dateTime === "string" ? dateTime.replace(/-/g, "/") : dateTime - ); - } - const timeSource = { - "y": date2.getFullYear().toString(), - // 年 - "m": (date2.getMonth() + 1).toString().padStart(2, "0"), - // 月 - "d": date2.getDate().toString().padStart(2, "0"), - // 日 - "h": date2.getHours().toString().padStart(2, "0"), - // 时 - "M": date2.getMinutes().toString().padStart(2, "0"), - // 分 - "s": date2.getSeconds().toString().padStart(2, "0") - // 秒 - // 有其他格式化字符需求可以继续添加,必须转化成字符串 - }; - for (const key in timeSource) { - const [ret] = new RegExp(`${key}+`).exec(formatStr) || []; - if (ret) { - const beginIndex = key === "y" && ret.length === 2 ? 2 : 0; - formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex)); - } - } - return formatStr; - } - function timeFrom(timestamp = null, format2 = "yyyy-mm-dd") { - if (timestamp == null) - timestamp = Number(/* @__PURE__ */ new Date()); - timestamp = parseInt(timestamp); - if (timestamp.toString().length == 10) - timestamp *= 1e3; - let timer = (/* @__PURE__ */ new Date()).getTime() - timestamp; - timer = parseInt(timer / 1e3); - let tips = ""; - switch (true) { - case timer < 300: - tips = "刚刚"; - break; - case (timer >= 300 && timer < 3600): - tips = `${parseInt(timer / 60)}分钟前`; - break; - case (timer >= 3600 && timer < 86400): - tips = `${parseInt(timer / 3600)}小时前`; - break; - case (timer >= 86400 && timer < 2592e3): - tips = `${parseInt(timer / 86400)}天前`; - break; - default: - if (format2 === false) { - if (timer >= 2592e3 && timer < 365 * 86400) { - tips = `${parseInt(timer / (86400 * 30))}个月前`; - } else { - tips = `${parseInt(timer / (86400 * 365))}年前`; - } - } else { - tips = timeFormat(timestamp, format2); - } - } - return tips; - } - function trim(str, pos = "both") { - str = String(str); - if (pos == "both") { - return str.replace(/^\s+|\s+$/g, ""); - } - if (pos == "left") { - return str.replace(/^\s*/, ""); - } - if (pos == "right") { - return str.replace(/(\s*$)/g, ""); - } - if (pos == "all") { - return str.replace(/\s+/g, ""); - } - return str; - } - function queryParams(data = {}, isPrefix = true, arrayFormat = "brackets") { - const prefix = isPrefix ? "?" : ""; - const _result = []; - if (["indices", "brackets", "repeat", "comma"].indexOf(arrayFormat) == -1) - arrayFormat = "brackets"; - for (const key in data) { - const value = data[key]; - if (["", void 0, null].indexOf(value) >= 0) { - continue; - } - if (value.constructor === Array) { - switch (arrayFormat) { - case "indices": - for (let i2 = 0; i2 < value.length; i2++) { - _result.push(`${key}[${i2}]=${value[i2]}`); - } - break; - case "brackets": - value.forEach((_value) => { - _result.push(`${key}[]=${_value}`); - }); - break; - case "repeat": - value.forEach((_value) => { - _result.push(`${key}=${_value}`); - }); - break; - case "comma": - let commaStr = ""; - value.forEach((_value) => { - commaStr += (commaStr ? "," : "") + _value; - }); - _result.push(`${key}=${commaStr}`); - break; - default: - value.forEach((_value) => { - _result.push(`${key}[]=${_value}`); - }); - } - } else { - _result.push(`${key}=${value}`); - } - } - return _result.length ? prefix + _result.join("&") : ""; - } - function toast(title, duration = 2e3) { - uni.showToast({ - title: String(title), - icon: "none", - duration - }); - } - function type2icon(type2 = "success", fill = false) { - if (["primary", "info", "error", "warning", "success"].indexOf(type2) == -1) - type2 = "success"; - let iconName = ""; - switch (type2) { - case "primary": - iconName = "info-circle"; - break; - case "info": - iconName = "info-circle"; - break; - case "error": - iconName = "close-circle"; - break; - case "warning": - iconName = "error-circle"; - break; - case "success": - iconName = "checkmark-circle"; - break; - default: - iconName = "checkmark-circle"; - } - if (fill) - iconName += "-fill"; - return iconName; - } - function priceFormat(number2, decimals = 0, decimalPoint = ".", thousandsSeparator = ",") { - number2 = `${number2}`.replace(/[^0-9+-Ee.]/g, ""); - const n2 = !isFinite(+number2) ? 0 : +number2; - const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals); - const sep = typeof thousandsSeparator === "undefined" ? "," : thousandsSeparator; - const dec = typeof decimalPoint === "undefined" ? "." : decimalPoint; - let s2 = ""; - s2 = (prec ? round(n2, prec) + "" : `${Math.round(n2)}`).split("."); - const re2 = /(-?\d+)(\d{3})/; - while (re2.test(s2[0])) { - s2[0] = s2[0].replace(re2, `$1${sep}$2`); - } - if ((s2[1] || "").length < prec) { - s2[1] = s2[1] || ""; - s2[1] += new Array(prec - s2[1].length + 1).join("0"); - } - return s2.join(dec); - } - function getDuration(value, unit = true) { - const valueNum = parseInt(value); - if (unit) { - if (/s$/.test(value)) - return value; - return value > 30 ? `${value}ms` : `${value}s`; - } - if (/ms$/.test(value)) - return valueNum; - if (/s$/.test(value)) - return valueNum > 30 ? valueNum : valueNum * 1e3; - return valueNum; - } - function padZero(value) { - return `00${value}`.slice(-2); - } - function formValidate(instance, event) { - const formItem = uni.$u.$parent.call(instance, "u-form-item"); - const form = uni.$u.$parent.call(instance, "u-form"); - if (formItem && form) { - form.validateField(formItem.prop, () => { - }, event); - } - } - function getProperty(obj, key) { - if (!obj) { - return; - } - if (typeof key !== "string" || key === "") { - return ""; - } - if (key.indexOf(".") !== -1) { - const keys = key.split("."); - let firstObj = obj[keys[0]] || {}; - for (let i2 = 1; i2 < keys.length; i2++) { - if (firstObj) { - firstObj = firstObj[keys[i2]]; - } - } - return firstObj; - } - return obj[key]; - } - function setProperty(obj, key, value) { - if (!obj) { - return; - } - const inFn = function(_obj, keys, v2) { - if (keys.length === 1) { - _obj[keys[0]] = v2; - return; - } - while (keys.length > 1) { - const k = keys[0]; - if (!_obj[k] || typeof _obj[k] !== "object") { - _obj[k] = {}; - } - keys.shift(); - inFn(_obj[k], keys, v2); - } - }; - if (typeof key !== "string" || key === "") - ; - else if (key.indexOf(".") !== -1) { - const keys = key.split("."); - inFn(obj, keys, value); - } else { - obj[key] = value; - } - } - function page() { - const pages2 = getCurrentPages(); - return `/${pages2[pages2.length - 1].route || ""}`; - } - function pages() { - const pages2 = getCurrentPages(); - return pages2; - } - function setConfig({ - props: props2 = {}, - config: config2 = {}, - color: color2 = {}, - zIndex: zIndex2 = {} - }) { - const { - deepMerge: deepMerge2 - } = uni.$u; - uni.$u.config = deepMerge2(uni.$u.config, config2); - uni.$u.props = deepMerge2(uni.$u.props, props2); - uni.$u.color = deepMerge2(uni.$u.color, color2); - uni.$u.zIndex = deepMerge2(uni.$u.zIndex, zIndex2); - } - const index = { - range, - getPx, - sleep, - os, - sys, - random, - guid, - $parent, - addStyle, - addUnit, - deepClone, - deepMerge, - error, - randomArray, - timeFormat, - timeFrom, - trim, - queryParams, - toast, - type2icon, - priceFormat, - getDuration, - padZero, - formValidate, - getProperty, - setProperty, - page, - pages, - setConfig - }; - const zIndex = { - toast: 10090, - noNetwork: 10080, - // popup包含popup,actionsheet,keyboard,picker的值 - popup: 10075, - mask: 10070, - navbar: 980, - topTips: 975, - sticky: 970, - indexListSticky: 965 - }; - let platform = "none"; - platform = "vue3"; - platform = "plus"; - const platform$1 = platform; - const $u = { - route, - date: index.timeFormat, - // 另名date - colorGradient: colorGradient$1.colorGradient, - hexToRgb: colorGradient$1.hexToRgb, - rgbToHex: colorGradient$1.rgbToHex, - colorToRgba: colorGradient$1.colorToRgba, - test, - type: ["primary", "success", "error", "warning", "info"], - http: new Request(), - config: config$1, - // uView配置信息相关,比如版本号 - zIndex, - debounce, - throttle, - mixin, - mpMixin, - props: props$i, - ...index, - color, - platform: platform$1 - }; - uni.$u = $u; - const install = (Vue2) => { - Vue2.config.globalProperties.$u = $u; - Vue2.config.globalProperties.$nextTick = (cb) => { - cb(); - }; - Vue2.mixin(mixin); - }; - const uviewPlus = { - install - }; - function createApp() { - const app = vue.createVueApp(App); - const pinia = createPinia(); - app.use(pinia); - app.use(uviewPlus); - return { - app, - pinia - }; - } - const { app: __app__, Vuex: __Vuex__, Pinia: __Pinia__ } = createApp(); - uni.Vuex = __Vuex__; - uni.Pinia = __Pinia__; - __app__.provide("__globalStyles", __uniConfig.styles); - __app__._component.mpType = "app"; - __app__._component.render = () => { - }; - __app__.mount("#app"); -})(Vue, uni.VueShared); diff --git a/unpackage/dist/dev/app-plus/app.css b/unpackage/dist/dev/app-plus/app.css deleted file mode 100644 index d22ac53..0000000 --- a/unpackage/dist/dev/app-plus/app.css +++ /dev/null @@ -1,3108 +0,0 @@ -*{margin:0;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-tap-highlight-color:transparent}html,body{-webkit-user-select:none;user-select:none;width:100%}html{height:100%;height:100vh;width:100%;width:100vw}body{overflow-x:hidden;background-color:#fff;height:100%}#app{height:100%}input[type=search]::-webkit-search-cancel-button{display:none}.uni-loading,uni-button[loading]:before{background:transparent url(data:image/svg+xml;base64,\ PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat}.uni-loading{width:20px;height:20px;display:inline-block;vertical-align:middle;animation:uni-loading 1s steps(12,end) infinite;background-size:100%}@keyframes uni-loading{0%{transform:rotate3d(0,0,1,0)}to{transform:rotate3d(0,0,1,360deg)}}@media (prefers-color-scheme: dark){html{--UI-BG-CLOLOR-ACTIVE: #373737;--UI-BORDER-CLOLOR-1: #373737;--UI-BG: #000;--UI-BG-0: #191919;--UI-BG-1: #1f1f1f;--UI-BG-2: #232323;--UI-BG-3: #2f2f2f;--UI-BG-4: #606060;--UI-BG-5: #2c2c2c;--UI-FG: #fff;--UI-FG-0: hsla(0, 0%, 100%, .8);--UI-FG-HALF: hsla(0, 0%, 100%, .6);--UI-FG-1: hsla(0, 0%, 100%, .5);--UI-FG-2: hsla(0, 0%, 100%, .3);--UI-FG-3: hsla(0, 0%, 100%, .05)}body{background-color:var(--UI-BG-0);color:var(--UI-FG-0)}}[nvue] uni-view,[nvue] uni-label,[nvue] uni-swiper-item,[nvue] uni-scroll-view{display:flex;flex-shrink:0;flex-grow:0;flex-basis:auto;align-items:stretch;align-content:flex-start}[nvue] uni-button{margin:0}[nvue-dir-row] uni-view,[nvue-dir-row] uni-label,[nvue-dir-row] uni-swiper-item{flex-direction:row}[nvue-dir-column] uni-view,[nvue-dir-column] uni-label,[nvue-dir-column] uni-swiper-item{flex-direction:column}[nvue-dir-row-reverse] uni-view,[nvue-dir-row-reverse] uni-label,[nvue-dir-row-reverse] uni-swiper-item{flex-direction:row-reverse}[nvue-dir-column-reverse] uni-view,[nvue-dir-column-reverse] uni-label,[nvue-dir-column-reverse] uni-swiper-item{flex-direction:column-reverse}[nvue] uni-view,[nvue] uni-image,[nvue] uni-input,[nvue] uni-scroll-view,[nvue] uni-swiper,[nvue] uni-swiper-item,[nvue] uni-text,[nvue] uni-textarea,[nvue] uni-video{position:relative;border:0px solid #000000;box-sizing:border-box}[nvue] uni-swiper-item{position:absolute}@keyframes once-show{0%{top:0}}uni-resize-sensor,uni-resize-sensor>div{position:absolute;left:0;top:0;right:0;bottom:0;overflow:hidden}uni-resize-sensor{display:block;z-index:-1;visibility:hidden;animation:once-show 1ms}uni-resize-sensor>div>div{position:absolute;left:0;top:0}uni-resize-sensor>div:first-child>div{width:100000px;height:100000px}uni-resize-sensor>div:last-child>div{width:200%;height:200%}uni-text[selectable]{cursor:auto;-webkit-user-select:text;user-select:text}uni-text{white-space:pre-line}uni-view{display:block}uni-view[hidden]{display:none}uni-button{position:relative;display:block;margin-left:auto;margin-right:auto;padding-left:14px;padding-right:14px;box-sizing:border-box;font-size:18px;text-align:center;text-decoration:none;line-height:2.55555556;border-radius:5px;-webkit-tap-highlight-color:transparent;overflow:hidden;color:#000;background-color:#f8f8f8;cursor:pointer}uni-button[hidden]{display:none!important}uni-button:after{content:" ";width:200%;height:200%;position:absolute;top:0;left:0;border:1px solid rgba(0,0,0,.2);transform:scale(.5);transform-origin:0 0;box-sizing:border-box;border-radius:10px}uni-button[native]{padding-left:0;padding-right:0}uni-button[native] .uni-button-cover-view-wrapper{border:inherit;border-color:inherit;border-radius:inherit;background-color:inherit}uni-button[native] .uni-button-cover-view-inner{padding-left:14px;padding-right:14px}uni-button uni-cover-view{line-height:inherit;white-space:inherit}uni-button[type=default]{color:#000;background-color:#f8f8f8}uni-button[type=primary]{color:#fff;background-color:#007aff}uni-button[type=warn]{color:#fff;background-color:#e64340}uni-button[disabled]{color:rgba(255,255,255,.6);cursor:not-allowed}uni-button[disabled][type=default],uni-button[disabled]:not([type]){color:rgba(0,0,0,.3);background-color:#f7f7f7}uni-button[disabled][type=primary]{background-color:rgba(0,122,255,.6)}uni-button[disabled][type=warn]{background-color:#ec8b89}uni-button[type=primary][plain]{color:#007aff;border:1px solid #007aff;background-color:transparent}uni-button[type=primary][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=primary][plain]:after{border-width:0}uni-button[type=default][plain]{color:#353535;border:1px solid #353535;background-color:transparent}uni-button[type=default][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=default][plain]:after{border-width:0}uni-button[plain]{color:#353535;border:1px solid #353535;background-color:transparent}uni-button[plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[plain]:after{border-width:0}uni-button[plain][native] .uni-button-cover-view-inner{padding:0}uni-button[type=warn][plain]{color:#e64340;border:1px solid #e64340;background-color:transparent}uni-button[type=warn][plain][disabled]{color:rgba(0,0,0,.2);border-color:rgba(0,0,0,.2)}uni-button[type=warn][plain]:after{border-width:0}uni-button[size=mini]{display:inline-block;line-height:2.3;font-size:13px;padding:0 1.34em}uni-button[size=mini][native]{padding:0}uni-button[size=mini][native] .uni-button-cover-view-inner{padding:0 1.34em}uni-button[loading]:not([disabled]){cursor:progress}uni-button[loading]:before{content:" ";display:inline-block;width:18px;height:18px;vertical-align:middle;animation:uni-loading 1s steps(12,end) infinite;background-size:100%}uni-button[loading][type=primary]{color:rgba(255,255,255,.6);background-color:#0062cc}uni-button[loading][type=primary][plain]{color:#007aff;background-color:transparent}uni-button[loading][type=default]{color:rgba(0,0,0,.6);background-color:#dedede}uni-button[loading][type=default][plain]{color:#353535;background-color:transparent}uni-button[loading][type=warn]{color:rgba(255,255,255,.6);background-color:#ce3c39}uni-button[loading][type=warn][plain]{color:#e64340;background-color:transparent}uni-button[loading][native]:before{content:none}.button-hover{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:transparent}.button-hover[type=primary]{color:rgba(255,255,255,.6);background-color:#0062cc}.button-hover[type=primary][plain]{color:rgba(0,122,255,.6);border-color:rgba(0,122,255,.6);background-color:transparent}.button-hover[type=default]{color:rgba(0,0,0,.6);background-color:#dedede}.button-hover[type=default][plain]{color:rgba(53,53,53,.6);border-color:rgba(53,53,53,.6);background-color:transparent}.button-hover[type=warn]{color:rgba(255,255,255,.6);background-color:#ce3c39}.button-hover[type=warn][plain]{color:rgba(230,67,64,.6);border-color:rgba(230,67,64,.6);background-color:transparent}@media (prefers-color-scheme: dark){uni-button,uni-button[type=default]{color:#d6d6d6;background-color:#343434}.button-hover,.button-hover[type=default]{color:#d6d6d6;background-color:rgba(255,255,255,.1)}uni-button[disabled][type=default],uni-button[disabled]:not([type]){color:rgba(255,255,255,.2);background-color:rgba(255,255,255,.08)}uni-button[type=primary][plain][disabled]{color:rgba(255,255,255,.2);border-color:rgba(255,255,255,.2)}uni-button[type=default][plain]{color:#d6d6d6;border:1px solid #d6d6d6}.button-hover[type=default][plain]{color:rgba(150,150,150,.6);border-color:rgba(150,150,150,.6);background-color:rgba(50,50,50,.2)}uni-button[type=default][plain][disabled]{border-color:rgba(255,255,255,.2);color:rgba(255,255,255,.2)}}uni-canvas{width:300px;height:150px;display:block;position:relative}uni-canvas>.uni-canvas-canvas{position:absolute;top:0;left:0;width:100%;height:100%}uni-checkbox{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-checkbox[hidden]{display:none}uni-checkbox[disabled]{cursor:not-allowed}.uni-checkbox-wrapper{display:inline-flex;align-items:center;vertical-align:middle}.uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative}.uni-checkbox-input svg{color:#007aff;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73)}uni-checkbox:not([disabled]) .uni-checkbox-input:hover{border-color:#007aff}uni-checkbox-group{display:block}uni-checkbox-group[hidden]{display:none}uni-cover-image{display:block;line-height:1.2;overflow:hidden;height:100%;width:100%;pointer-events:auto}uni-cover-image[hidden]{display:none}uni-cover-image .uni-cover-image{width:100%;height:100%}uni-cover-view{display:block;line-height:1.2;overflow:hidden;white-space:nowrap;pointer-events:auto}uni-cover-view[hidden]{display:none}uni-cover-view .uni-cover-view{width:100%;height:100%;visibility:hidden;text-overflow:inherit;white-space:inherit;align-items:inherit;justify-content:inherit;flex-direction:inherit;flex-wrap:inherit;display:inherit;overflow:inherit}.ql-container{display:block;position:relative;box-sizing:border-box;-webkit-user-select:text;user-select:text;outline:none;overflow:hidden;width:100%;height:200px;min-height:200px}.ql-container[hidden]{display:none}.ql-container .ql-editor{position:relative;font-size:inherit;line-height:inherit;font-family:inherit;min-height:inherit;width:100%;height:100%;padding:0;overflow-x:hidden;overflow-y:auto;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-overflow-scrolling:touch}.ql-container .ql-editor::-webkit-scrollbar{width:0!important}.ql-container .ql-editor.scroll-disabled{overflow:hidden}.ql-container .ql-image-overlay{display:flex;position:absolute;box-sizing:border-box;border:1px dashed #ccc;justify-content:center;align-items:center;-webkit-user-select:none;user-select:none}.ql-container .ql-image-overlay .ql-image-size{position:absolute;padding:4px 8px;text-align:center;background-color:#fff;color:#888;border:1px solid #ccc;box-sizing:border-box;opacity:.8;right:4px;top:4px;font-size:12px;display:inline-block;width:auto}.ql-container .ql-image-overlay .ql-image-toolbar{position:relative;text-align:center;box-sizing:border-box;background:#000;border-radius:5px;color:#fff;font-size:0;min-height:24px;z-index:100}.ql-container .ql-image-overlay .ql-image-toolbar span{display:inline-block;cursor:pointer;padding:5px;font-size:12px;border-right:1px solid #fff}.ql-container .ql-image-overlay .ql-image-toolbar span:last-child{border-right:0}.ql-container .ql-image-overlay .ql-image-toolbar span.triangle-up{padding:0;position:absolute;top:-12px;left:50%;transform:translate(-50%);width:0;height:0;border-width:6px;border-style:solid;border-color:transparent transparent black transparent}.ql-container .ql-image-overlay .ql-image-handle{position:absolute;height:12px;width:12px;border-radius:50%;border:1px solid #ccc;box-sizing:border-box;background:#fff}.ql-container img{display:inline-block;max-width:100%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;height:100%;outline:none;overflow-y:auto;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor ul,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"•"}.ql-editor ul[data-checked=true],.ql-editor ul[data-checked=false]{pointer-events:none}.ql-editor ul[data-checked=true]>li *,.ql-editor ul[data-checked=false]>li *{pointer-events:all}.ql-editor ul[data-checked=true]>li:before,.ql-editor ul[data-checked=false]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"☑"}.ql-editor ul[data-checked=false]>li:before{content:"☐"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:2em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:2em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:2em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:2em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:4em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:4em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:4em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:6em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:8em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:8em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:8em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:10em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:10em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:10em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:12em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:14em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:14em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:14em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:16em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:16em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:16em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:18em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right,.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;pointer-events:none;position:absolute}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}uni-icon{display:inline-block;font-size:0;box-sizing:border-box}uni-icon[hidden]{display:none}uni-image{width:320px;height:240px;display:inline-block;overflow:hidden;position:relative}uni-image[hidden]{display:none}uni-image>div{width:100%;height:100%;background-repeat:no-repeat}uni-image>img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;display:block;position:absolute;top:0;left:0;width:100%;height:100%;opacity:0}uni-image>.uni-image-will-change{will-change:transform}uni-input{display:block;font-size:16px;line-height:1.4em;height:1.4em;min-height:1.4em;overflow:hidden}uni-input[hidden]{display:none}.uni-input-wrapper,.uni-input-placeholder,.uni-input-form,.uni-input-input{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-input-wrapper,.uni-input-form{display:flex;position:relative;width:100%;height:100%;flex-direction:column;justify-content:center}.uni-input-placeholder,.uni-input-input{width:100%}.uni-input-placeholder{position:absolute;top:auto!important;left:0;color:gray;overflow:hidden;text-overflow:clip;white-space:pre;word-break:keep-all;pointer-events:none;line-height:inherit}.uni-input-input{position:relative;display:block;height:100%;background:none;color:inherit;opacity:1;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-input-input[type=search]::-webkit-search-cancel-button,.uni-input-input[type=search]::-webkit-search-decoration{display:none}.uni-input-input::-webkit-outer-spin-button,.uni-input-input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.uni-input-input[type=number]{-moz-appearance:textfield}.uni-input-input:disabled{-webkit-text-fill-color:currentcolor}.uni-label-pointer{cursor:pointer}uni-live-pusher{width:320px;height:240px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-live-pusher[hidden]{display:none}.uni-live-pusher-container{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;background-color:#000}.uni-live-pusher-slot{position:absolute;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none}uni-map{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-map[hidden]{display:none}.uni-map-container{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;background-color:transparent}.uni-map-slot{position:absolute;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none}uni-movable-area{display:block;position:relative;width:10px;height:10px}uni-movable-area[hidden]{display:none}uni-movable-view{display:inline-block;width:10px;height:10px;top:0px;left:0px;position:absolute;cursor:grab}uni-movable-view[hidden]{display:none}uni-navigator{height:auto;width:auto;display:block;cursor:pointer}uni-navigator[hidden]{display:none}.navigator-hover{background-color:rgba(0,0,0,.1);opacity:.7}.navigator-wrap,.navigator-wrap:link,.navigator-wrap:visited,.navigator-wrap:hover,.navigator-wrap:active{text-decoration:none;color:inherit;cursor:pointer}uni-picker-view{display:block}.uni-picker-view-wrapper{display:flex;position:relative;overflow:hidden;height:100%}uni-picker-view[hidden]{display:none}uni-picker-view-column{flex:1;position:relative;height:100%;overflow:hidden}uni-picker-view-column[hidden]{display:none}.uni-picker-view-group{height:100%;overflow:hidden}.uni-picker-view-mask{transform:translateZ(0)}.uni-picker-view-indicator,.uni-picker-view-mask{position:absolute;left:0;width:100%;z-index:3;pointer-events:none}.uni-picker-view-mask{top:0;height:100%;margin:0 auto;background-image:linear-gradient(180deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6)),linear-gradient(0deg,hsla(0,0%,100%,.95),hsla(0,0%,100%,.6));background-position:top,bottom;background-size:100% 102px;background-repeat:no-repeat;transform:translateZ(0)}.uni-picker-view-indicator{height:34px;top:50%;transform:translateY(-50%)}.uni-picker-view-content{position:absolute;top:0;left:0;width:100%;will-change:transform;padding:102px 0;cursor:pointer}.uni-picker-view-content>*{height:34px;overflow:hidden}.uni-picker-view-indicator:before{top:0;border-top:1px solid #e5e5e5;transform-origin:0 0;transform:scaleY(.5)}.uni-picker-view-indicator:after{bottom:0;border-bottom:1px solid #e5e5e5;transform-origin:0 100%;transform:scaleY(.5)}.uni-picker-view-indicator:after,.uni-picker-view-indicator:before{content:" ";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}@media (prefers-color-scheme: dark){.uni-picker-view-indicator:before{border-top-color:var(--UI-FG-3)}.uni-picker-view-indicator:after{border-bottom-color:var(--UI-FG-3)}.uni-picker-view-mask{background-image:linear-gradient(180deg,rgba(35,35,35,.95),rgba(35,35,35,.6)),linear-gradient(0deg,rgba(35,35,35,.95),rgba(35,35,35,.6))}}uni-progress{display:flex;align-items:center}uni-progress[hidden]{display:none}.uni-progress-bar{flex:1}.uni-progress-inner-bar{width:0;height:100%}.uni-progress-info{margin-top:0;margin-bottom:0;min-width:2em;margin-left:15px;font-size:16px}uni-radio{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-radio[hidden]{display:none}uni-radio[disabled]{cursor:not-allowed}.uni-radio-wrapper{display:inline-flex;align-items:center;vertical-align:middle}.uni-radio-input{-webkit-appearance:none;appearance:none;margin-right:5px;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:50%;width:22px;height:22px;position:relative}uni-radio:not([disabled]) .uni-radio-input:hover{border-color:#007aff}.uni-radio-input svg{color:#fff;font-size:18px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73)}.uni-radio-input.uni-radio-input-disabled{background-color:#e1e1e1;border-color:#d1d1d1}.uni-radio-input.uni-radio-input-disabled svg{color:#adadad}uni-radio-group{display:block}uni-radio-group[hidden]{display:none}uni-scroll-view{display:block;width:100%}uni-scroll-view[hidden]{display:none}.uni-scroll-view{position:relative;-webkit-overflow-scrolling:touch;width:100%;height:100%;max-height:inherit}.uni-scroll-view-content{width:100%;height:100%}.uni-scroll-view-refresher{position:relative;overflow:hidden}.uni-scroll-view-refresh{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:row;justify-content:center;align-items:center}.uni-scroll-view-refresh-inner{display:flex;align-items:center;justify-content:center;line-height:0;width:40px;height:40px;border-radius:50%;background-color:#fff;box-shadow:0 1px 6px rgba(0,0,0,.118),0 1px 4px rgba(0,0,0,.118)}.uni-scroll-view-refresh__spinner{transform-origin:center center;animation:uni-scroll-view-refresh-rotate 2s linear infinite}.uni-scroll-view-refresh__spinner>circle{stroke:currentColor;stroke-linecap:round;animation:uni-scroll-view-refresh-dash 2s linear infinite}@keyframes uni-scroll-view-refresh-rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes uni-scroll-view-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}uni-slider{margin:10px 18px;padding:0;display:block}uni-slider[hidden]{display:none}uni-slider .uni-slider-wrapper{display:flex;align-items:center;min-height:16px}uni-slider .uni-slider-tap-area{flex:1;padding:8px 0}uni-slider .uni-slider-handle-wrapper{position:relative;height:2px;border-radius:5px;background-color:#e9e9e9;cursor:pointer;transition:background-color .3s ease;-webkit-tap-highlight-color:transparent}uni-slider .uni-slider-track{height:100%;border-radius:6px;background-color:#007aff;transition:background-color .3s ease}uni-slider .uni-slider-handle,uni-slider .uni-slider-thumb{position:absolute;left:50%;top:50%;cursor:pointer;border-radius:50%;transition:border-color .3s ease}uni-slider .uni-slider-handle{width:28px;height:28px;margin-top:-14px;margin-left:-14px;background-color:transparent;z-index:3;cursor:grab}uni-slider .uni-slider-thumb{z-index:2;box-shadow:0 0 4px rgba(0,0,0,.2)}uni-slider .uni-slider-step{position:absolute;width:100%;height:2px;background:transparent;z-index:1}uni-slider .uni-slider-value{width:3ch;color:#888;font-size:14px;margin-left:1em}uni-slider .uni-slider-disabled .uni-slider-track{background-color:#ccc}uni-slider .uni-slider-disabled .uni-slider-thumb{background-color:#fff;border-color:#ccc}uni-swiper{display:block;height:150px}uni-swiper[hidden]{display:none}.uni-swiper-wrapper{overflow:hidden;position:relative;width:100%;height:100%;transform:translateZ(0)}.uni-swiper-slides{position:absolute;left:0;top:0;right:0;bottom:0}.uni-swiper-slide-frame{position:absolute;left:0;top:0;width:100%;height:100%;will-change:transform}.uni-swiper-dots{position:absolute;font-size:0}.uni-swiper-dots-horizontal{left:50%;bottom:10px;text-align:center;white-space:nowrap;transform:translate(-50%)}.uni-swiper-dots-horizontal .uni-swiper-dot{margin-right:8px}.uni-swiper-dots-horizontal .uni-swiper-dot:last-child{margin-right:0}.uni-swiper-dots-vertical{right:10px;top:50%;text-align:right;transform:translateY(-50%)}.uni-swiper-dots-vertical .uni-swiper-dot{display:block;margin-bottom:9px}.uni-swiper-dots-vertical .uni-swiper-dot:last-child{margin-bottom:0}.uni-swiper-dot{display:inline-block;width:8px;height:8px;cursor:pointer;transition-property:background-color;transition-timing-function:ease;background:rgba(0,0,0,.3);border-radius:50%}.uni-swiper-dot-active{background-color:#000}.uni-swiper-navigation{width:26px;height:26px;cursor:pointer;position:absolute;top:50%;margin-top:-13px;display:flex;align-items:center;transition:all .2s;border-radius:50%;opacity:1}.uni-swiper-navigation-disabled{opacity:.35;cursor:not-allowed}.uni-swiper-navigation-hide{opacity:0;cursor:auto;pointer-events:none}.uni-swiper-navigation-prev{left:10px}.uni-swiper-navigation-prev svg{margin-left:-1px;left:10px}.uni-swiper-navigation-prev.uni-swiper-navigation-vertical{top:18px;left:50%;margin-left:-13px}.uni-swiper-navigation-prev.uni-swiper-navigation-vertical svg{transform:rotate(90deg);margin-left:auto;margin-top:-2px}.uni-swiper-navigation-next{right:10px}.uni-swiper-navigation-next svg{transform:rotate(180deg)}.uni-swiper-navigation-next.uni-swiper-navigation-vertical{top:auto;bottom:5px;left:50%;margin-left:-13px}.uni-swiper-navigation-next.uni-swiper-navigation-vertical svg{margin-top:2px;transform:rotate(270deg)}uni-swiper-item{display:block;overflow:hidden;will-change:transform;position:absolute;width:100%;height:100%;cursor:grab}uni-swiper-item[hidden]{display:none}uni-switch{-webkit-tap-highlight-color:transparent;display:inline-block;cursor:pointer}uni-switch[hidden]{display:none}uni-switch[disabled]{cursor:not-allowed}.uni-switch-wrapper{display:inline-flex;align-items:center;vertical-align:middle}.uni-switch-input{-webkit-appearance:none;appearance:none;position:relative;width:52px;height:32px;margin-right:5px;border:1px solid #dfdfdf;outline:0;border-radius:16px;box-sizing:border-box;background-color:#dfdfdf;transition:background-color .1s,border .1s}uni-switch[disabled] .uni-switch-input{opacity:.7}.uni-switch-input:before{content:" ";position:absolute;top:0;left:0;width:50px;height:30px;border-radius:15px;background-color:#fdfdfd;transition:transform .3s}.uni-switch-input:after{content:" ";position:absolute;top:0;left:0;width:30px;height:30px;border-radius:15px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);transition:transform .3s}.uni-switch-input.uni-switch-input-checked{border-color:#007aff;background-color:#007aff}.uni-switch-input.uni-switch-input-checked:before{transform:scale(0)}.uni-switch-input.uni-switch-input-checked:after{transform:translate(20px)}uni-switch .uni-checkbox-input{margin-right:5px;-webkit-appearance:none;appearance:none;outline:0;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:22px;height:22px;position:relative;color:#007aff}uni-switch:not([disabled]) .uni-checkbox-input:hover{border-color:#007aff}uni-switch .uni-checkbox-input svg{fill:#007aff;font-size:22px;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%) scale(.73)}.uni-checkbox-input.uni-checkbox-input-disabled{background-color:#e1e1e1}.uni-checkbox-input.uni-checkbox-input-disabled:before{color:#adadad}@media (prefers-color-scheme: dark){uni-switch .uni-switch-input{border-color:#3b3b3f}uni-switch .uni-switch-input,uni-switch .uni-switch-input:before{background-color:#3b3b3f}uni-switch .uni-switch-input:after{background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}uni-switch .uni-checkbox-input{background-color:#2c2c2c;border:1px solid #656565}}uni-textarea{width:300px;height:150px;display:block;position:relative;font-size:16px;line-height:normal;white-space:pre-wrap;word-break:break-all}uni-textarea[hidden]{display:none}.uni-textarea-wrapper,.uni-textarea-placeholder,.uni-textarea-line,.uni-textarea-compute,.uni-textarea-textarea{outline:none;border:none;padding:0;margin:0;text-decoration:inherit}.uni-textarea-wrapper{display:block;position:relative;width:100%;height:100%;min-height:inherit;overflow-y:hidden}.uni-textarea-placeholder,.uni-textarea-line,.uni-textarea-compute,.uni-textarea-textarea{position:absolute;width:100%;height:100%;left:0;top:0;white-space:inherit;word-break:inherit}.uni-textarea-placeholder{color:gray;overflow:hidden}.uni-textarea-line,.uni-textarea-compute{visibility:hidden;height:auto}.uni-textarea-line{width:1em}.uni-textarea-textarea{resize:none;background:none;color:inherit;opacity:1;font:inherit;line-height:inherit;letter-spacing:inherit;text-align:inherit;text-indent:inherit;text-transform:inherit;text-shadow:inherit}.uni-textarea-textarea-fix-margin{width:auto;right:0;margin:0 -3px}.uni-textarea-textarea:disabled{-webkit-text-fill-color:currentcolor}uni-video{width:300px;height:225px;display:inline-block;line-height:0;overflow:hidden;position:relative}uni-video[hidden]{display:none}.uni-video-container{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;background-color:#000}.uni-video-slot{position:absolute;top:0;width:100%;height:100%;overflow:hidden;pointer-events:none}uni-web-view{display:inline-block;position:absolute;left:0;right:0;top:0;bottom:0} - -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -.u-line-1 { - - - - - - - - display: -webkit-box !important; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - -webkit-line-clamp: 1; - -webkit-box-orient: vertical !important; -} -.u-line-2 { - - - - - - - - display: -webkit-box !important; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - -webkit-line-clamp: 2; - -webkit-box-orient: vertical !important; -} -.u-line-3 { - - - - - - - - display: -webkit-box !important; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - -webkit-line-clamp: 3; - -webkit-box-orient: vertical !important; -} -.u-line-4 { - - - - - - - - display: -webkit-box !important; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - -webkit-line-clamp: 4; - -webkit-box-orient: vertical !important; -} -.u-line-5 { - - - - - - - - display: -webkit-box !important; - overflow: hidden; - text-overflow: ellipsis; - word-break: break-all; - -webkit-line-clamp: 5; - -webkit-box-orient: vertical !important; -} -.u-border { - border-width: 0.5px !important; - border-color: #dadbde !important; - border-style: solid; -} -.u-border-top { - border-top-width: 0.5px !important; - border-color: #dadbde !important; - border-top-style: solid; -} -.u-border-left { - border-left-width: 0.5px !important; - border-color: #dadbde !important; - border-left-style: solid; -} -.u-border-right { - border-right-width: 0.5px !important; - border-color: #dadbde !important; - border-right-style: solid; -} -.u-border-bottom { - border-bottom-width: 0.5px !important; - border-color: #dadbde !important; - border-bottom-style: solid; -} -.u-border-top-bottom { - border-top-width: 0.5px !important; - border-bottom-width: 0.5px !important; - border-color: #dadbde !important; - border-top-style: solid; - border-bottom-style: solid; -} -.u-reset-button { - padding: 0; - background-color: transparent; -} -.u-reset-button::after { - border: none; -} -.u-hover-class { - opacity: 0.7; -} -.u-flex, -.u-flex-row, -.u-flex-x { - display: flex; - flex-direction: row; -} -.u-flex-y, -.u-flex-column { - display: flex; - flex-direction: column; -} -.u-flex-x-center { - display: flex; - flex-direction: row; - justify-content: center; -} -.u-flex-xy-center { - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; -} -.u-flex-y-center { - display: flex; - flex-direction: row; - align-items: center; -} -.u-flex-x-left { - display: flex; - flex-direction: row; -} -.u-flex-x-reverse, -.u-flex-row-reverse { - flex-direction: row-reverse; -} -.u-flex-y-reverse, -.u-flex-column-reverse { - flex-direction: column-reverse; -} -.u-flex.u-flex-reverse, -.u-flex-row.u-flex-reverse, -.u-flex-x.u-flex-reverse { - flex-direction: row-reverse; -} -.u-flex-column.u-flex-reverse, -.u-flex-y.u-flex-reverse { - flex-direction: column-reverse; -} -.u-flex-fill { - flex: 1 1 auto; -} -.u-margin-top-auto, -.u-m-t-auto { - margin-top: auto !important; -} -.u-margin-right-auto, -.u-m-r-auto { - margin-right: auto !important; -} -.u-margin-bottom-auto, -.u-m-b-auto { - margin-bottom: auto !important; -} -.u-margin-left-auto, -.u-m-l-auto { - margin-left: auto !important; -} -.u-margin-center-auto, -.u-m-c-auto { - margin-left: auto !important; - margin-right: auto !important; -} -.u-margin-middle-auto, -.u-m-m-auto { - margin-top: auto !important; - margin-bottom: auto !important; -} -.u-flex-wrap { - flex-wrap: wrap; -} -.u-flex-wrap-reverse { - flex-wrap: wrap-reverse; -} -.u-flex-start { - justify-content: flex-start; -} -.u-flex-center { - justify-content: center; -} -.u-flex-end { - justify-content: flex-end; -} -.u-flex-between { - justify-content: space-between; -} -.u-flex-around { - justify-content: space-around; -} -.u-flex-items-start { - align-items: flex-start; -} -.u-flex-items-center { - align-items: center; -} -.u-flex-items-end { - align-items: flex-end; -} -.u-flex-items-baseline { - align-items: baseline; -} -.u-flex-items-stretch { - align-items: stretch; -} -.u-flex-self-start { - align-self: flex-start; -} -.u-flex-self-center { - align-self: center; -} -.u-flex-self-end { - align-self: flex-end; -} -.u-flex-self-baseline { - align-self: baseline; -} -.u-flex-self-stretch { - align-self: stretch; -} -.u-flex-content-start { - align-content: flex-start; -} -.u-flex-content-center { - align-content: center; -} -.u-flex-content-end { - align-content: flex-end; -} -.u-flex-content-between { - align-content: space-between; -} -.u-flex-content-around { - align-content: space-around; -} -.u-flex-middle { - justify-content: center; - align-items: center; - align-self: center; - align-content: center; -} -.u-flex-grow { - flex-grow: 1; -} -.u-flex-shrink { - flex-shrink: 1; -} -.u-margin-0, .u-m-0 { - margin: 0 !important; -} -.u-padding-0, .u-p-0 { - padding: 0 !important; -} -.u-m-l-0 { - margin-left: 0 !important; -} -.u-p-l-0 { - padding-left: 0 !important; -} -.u-margin-left-0 { - margin-left: 0 !important; -} -.u-padding-left-0 { - padding-left: 0 !important; -} -.u-m-t-0 { - margin-top: 0 !important; -} -.u-p-t-0 { - padding-top: 0 !important; -} -.u-margin-top-0 { - margin-top: 0 !important; -} -.u-padding-top-0 { - padding-top: 0 !important; -} -.u-m-r-0 { - margin-right: 0 !important; -} -.u-p-r-0 { - padding-right: 0 !important; -} -.u-margin-right-0 { - margin-right: 0 !important; -} -.u-padding-right-0 { - padding-right: 0 !important; -} -.u-m-b-0 { - margin-bottom: 0 !important; -} -.u-p-b-0 { - padding-bottom: 0 !important; -} -.u-margin-bottom-0 { - margin-bottom: 0 !important; -} -.u-padding-bottom-0 { - padding-bottom: 0 !important; -} -.u-margin-2, .u-m-2 { - margin: 0.0625rem !important; -} -.u-padding-2, .u-p-2 { - padding: 0.0625rem !important; -} -.u-m-l-2 { - margin-left: 0.0625rem !important; -} -.u-p-l-2 { - padding-left: 0.0625rem !important; -} -.u-margin-left-2 { - margin-left: 0.0625rem !important; -} -.u-padding-left-2 { - padding-left: 0.0625rem !important; -} -.u-m-t-2 { - margin-top: 0.0625rem !important; -} -.u-p-t-2 { - padding-top: 0.0625rem !important; -} -.u-margin-top-2 { - margin-top: 0.0625rem !important; -} -.u-padding-top-2 { - padding-top: 0.0625rem !important; -} -.u-m-r-2 { - margin-right: 0.0625rem !important; -} -.u-p-r-2 { - padding-right: 0.0625rem !important; -} -.u-margin-right-2 { - margin-right: 0.0625rem !important; -} -.u-padding-right-2 { - padding-right: 0.0625rem !important; -} -.u-m-b-2 { - margin-bottom: 0.0625rem !important; -} -.u-p-b-2 { - padding-bottom: 0.0625rem !important; -} -.u-margin-bottom-2 { - margin-bottom: 0.0625rem !important; -} -.u-padding-bottom-2 { - padding-bottom: 0.0625rem !important; -} -.u-margin-4, .u-m-4 { - margin: 0.125rem !important; -} -.u-padding-4, .u-p-4 { - padding: 0.125rem !important; -} -.u-m-l-4 { - margin-left: 0.125rem !important; -} -.u-p-l-4 { - padding-left: 0.125rem !important; -} -.u-margin-left-4 { - margin-left: 0.125rem !important; -} -.u-padding-left-4 { - padding-left: 0.125rem !important; -} -.u-m-t-4 { - margin-top: 0.125rem !important; -} -.u-p-t-4 { - padding-top: 0.125rem !important; -} -.u-margin-top-4 { - margin-top: 0.125rem !important; -} -.u-padding-top-4 { - padding-top: 0.125rem !important; -} -.u-m-r-4 { - margin-right: 0.125rem !important; -} -.u-p-r-4 { - padding-right: 0.125rem !important; -} -.u-margin-right-4 { - margin-right: 0.125rem !important; -} -.u-padding-right-4 { - padding-right: 0.125rem !important; -} -.u-m-b-4 { - margin-bottom: 0.125rem !important; -} -.u-p-b-4 { - padding-bottom: 0.125rem !important; -} -.u-margin-bottom-4 { - margin-bottom: 0.125rem !important; -} -.u-padding-bottom-4 { - padding-bottom: 0.125rem !important; -} -.u-margin-5, .u-m-5 { - margin: 0.15625rem !important; -} -.u-padding-5, .u-p-5 { - padding: 0.15625rem !important; -} -.u-m-l-5 { - margin-left: 0.15625rem !important; -} -.u-p-l-5 { - padding-left: 0.15625rem !important; -} -.u-margin-left-5 { - margin-left: 0.15625rem !important; -} -.u-padding-left-5 { - padding-left: 0.15625rem !important; -} -.u-m-t-5 { - margin-top: 0.15625rem !important; -} -.u-p-t-5 { - padding-top: 0.15625rem !important; -} -.u-margin-top-5 { - margin-top: 0.15625rem !important; -} -.u-padding-top-5 { - padding-top: 0.15625rem !important; -} -.u-m-r-5 { - margin-right: 0.15625rem !important; -} -.u-p-r-5 { - padding-right: 0.15625rem !important; -} -.u-margin-right-5 { - margin-right: 0.15625rem !important; -} -.u-padding-right-5 { - padding-right: 0.15625rem !important; -} -.u-m-b-5 { - margin-bottom: 0.15625rem !important; -} -.u-p-b-5 { - padding-bottom: 0.15625rem !important; -} -.u-margin-bottom-5 { - margin-bottom: 0.15625rem !important; -} -.u-padding-bottom-5 { - padding-bottom: 0.15625rem !important; -} -.u-margin-6, .u-m-6 { - margin: 0.1875rem !important; -} -.u-padding-6, .u-p-6 { - padding: 0.1875rem !important; -} -.u-m-l-6 { - margin-left: 0.1875rem !important; -} -.u-p-l-6 { - padding-left: 0.1875rem !important; -} -.u-margin-left-6 { - margin-left: 0.1875rem !important; -} -.u-padding-left-6 { - padding-left: 0.1875rem !important; -} -.u-m-t-6 { - margin-top: 0.1875rem !important; -} -.u-p-t-6 { - padding-top: 0.1875rem !important; -} -.u-margin-top-6 { - margin-top: 0.1875rem !important; -} -.u-padding-top-6 { - padding-top: 0.1875rem !important; -} -.u-m-r-6 { - margin-right: 0.1875rem !important; -} -.u-p-r-6 { - padding-right: 0.1875rem !important; -} -.u-margin-right-6 { - margin-right: 0.1875rem !important; -} -.u-padding-right-6 { - padding-right: 0.1875rem !important; -} -.u-m-b-6 { - margin-bottom: 0.1875rem !important; -} -.u-p-b-6 { - padding-bottom: 0.1875rem !important; -} -.u-margin-bottom-6 { - margin-bottom: 0.1875rem !important; -} -.u-padding-bottom-6 { - padding-bottom: 0.1875rem !important; -} -.u-margin-8, .u-m-8 { - margin: 0.25rem !important; -} -.u-padding-8, .u-p-8 { - padding: 0.25rem !important; -} -.u-m-l-8 { - margin-left: 0.25rem !important; -} -.u-p-l-8 { - padding-left: 0.25rem !important; -} -.u-margin-left-8 { - margin-left: 0.25rem !important; -} -.u-padding-left-8 { - padding-left: 0.25rem !important; -} -.u-m-t-8 { - margin-top: 0.25rem !important; -} -.u-p-t-8 { - padding-top: 0.25rem !important; -} -.u-margin-top-8 { - margin-top: 0.25rem !important; -} -.u-padding-top-8 { - padding-top: 0.25rem !important; -} -.u-m-r-8 { - margin-right: 0.25rem !important; -} -.u-p-r-8 { - padding-right: 0.25rem !important; -} -.u-margin-right-8 { - margin-right: 0.25rem !important; -} -.u-padding-right-8 { - padding-right: 0.25rem !important; -} -.u-m-b-8 { - margin-bottom: 0.25rem !important; -} -.u-p-b-8 { - padding-bottom: 0.25rem !important; -} -.u-margin-bottom-8 { - margin-bottom: 0.25rem !important; -} -.u-padding-bottom-8 { - padding-bottom: 0.25rem !important; -} -.u-margin-10, .u-m-10 { - margin: 0.3125rem !important; -} -.u-padding-10, .u-p-10 { - padding: 0.3125rem !important; -} -.u-m-l-10 { - margin-left: 0.3125rem !important; -} -.u-p-l-10 { - padding-left: 0.3125rem !important; -} -.u-margin-left-10 { - margin-left: 0.3125rem !important; -} -.u-padding-left-10 { - padding-left: 0.3125rem !important; -} -.u-m-t-10 { - margin-top: 0.3125rem !important; -} -.u-p-t-10 { - padding-top: 0.3125rem !important; -} -.u-margin-top-10 { - margin-top: 0.3125rem !important; -} -.u-padding-top-10 { - padding-top: 0.3125rem !important; -} -.u-m-r-10 { - margin-right: 0.3125rem !important; -} -.u-p-r-10 { - padding-right: 0.3125rem !important; -} -.u-margin-right-10 { - margin-right: 0.3125rem !important; -} -.u-padding-right-10 { - padding-right: 0.3125rem !important; -} -.u-m-b-10 { - margin-bottom: 0.3125rem !important; -} -.u-p-b-10 { - padding-bottom: 0.3125rem !important; -} -.u-margin-bottom-10 { - margin-bottom: 0.3125rem !important; -} -.u-padding-bottom-10 { - padding-bottom: 0.3125rem !important; -} -.u-margin-12, .u-m-12 { - margin: 0.375rem !important; -} -.u-padding-12, .u-p-12 { - padding: 0.375rem !important; -} -.u-m-l-12 { - margin-left: 0.375rem !important; -} -.u-p-l-12 { - padding-left: 0.375rem !important; -} -.u-margin-left-12 { - margin-left: 0.375rem !important; -} -.u-padding-left-12 { - padding-left: 0.375rem !important; -} -.u-m-t-12 { - margin-top: 0.375rem !important; -} -.u-p-t-12 { - padding-top: 0.375rem !important; -} -.u-margin-top-12 { - margin-top: 0.375rem !important; -} -.u-padding-top-12 { - padding-top: 0.375rem !important; -} -.u-m-r-12 { - margin-right: 0.375rem !important; -} -.u-p-r-12 { - padding-right: 0.375rem !important; -} -.u-margin-right-12 { - margin-right: 0.375rem !important; -} -.u-padding-right-12 { - padding-right: 0.375rem !important; -} -.u-m-b-12 { - margin-bottom: 0.375rem !important; -} -.u-p-b-12 { - padding-bottom: 0.375rem !important; -} -.u-margin-bottom-12 { - margin-bottom: 0.375rem !important; -} -.u-padding-bottom-12 { - padding-bottom: 0.375rem !important; -} -.u-margin-14, .u-m-14 { - margin: 0.4375rem !important; -} -.u-padding-14, .u-p-14 { - padding: 0.4375rem !important; -} -.u-m-l-14 { - margin-left: 0.4375rem !important; -} -.u-p-l-14 { - padding-left: 0.4375rem !important; -} -.u-margin-left-14 { - margin-left: 0.4375rem !important; -} -.u-padding-left-14 { - padding-left: 0.4375rem !important; -} -.u-m-t-14 { - margin-top: 0.4375rem !important; -} -.u-p-t-14 { - padding-top: 0.4375rem !important; -} -.u-margin-top-14 { - margin-top: 0.4375rem !important; -} -.u-padding-top-14 { - padding-top: 0.4375rem !important; -} -.u-m-r-14 { - margin-right: 0.4375rem !important; -} -.u-p-r-14 { - padding-right: 0.4375rem !important; -} -.u-margin-right-14 { - margin-right: 0.4375rem !important; -} -.u-padding-right-14 { - padding-right: 0.4375rem !important; -} -.u-m-b-14 { - margin-bottom: 0.4375rem !important; -} -.u-p-b-14 { - padding-bottom: 0.4375rem !important; -} -.u-margin-bottom-14 { - margin-bottom: 0.4375rem !important; -} -.u-padding-bottom-14 { - padding-bottom: 0.4375rem !important; -} -.u-margin-15, .u-m-15 { - margin: 0.46875rem !important; -} -.u-padding-15, .u-p-15 { - padding: 0.46875rem !important; -} -.u-m-l-15 { - margin-left: 0.46875rem !important; -} -.u-p-l-15 { - padding-left: 0.46875rem !important; -} -.u-margin-left-15 { - margin-left: 0.46875rem !important; -} -.u-padding-left-15 { - padding-left: 0.46875rem !important; -} -.u-m-t-15 { - margin-top: 0.46875rem !important; -} -.u-p-t-15 { - padding-top: 0.46875rem !important; -} -.u-margin-top-15 { - margin-top: 0.46875rem !important; -} -.u-padding-top-15 { - padding-top: 0.46875rem !important; -} -.u-m-r-15 { - margin-right: 0.46875rem !important; -} -.u-p-r-15 { - padding-right: 0.46875rem !important; -} -.u-margin-right-15 { - margin-right: 0.46875rem !important; -} -.u-padding-right-15 { - padding-right: 0.46875rem !important; -} -.u-m-b-15 { - margin-bottom: 0.46875rem !important; -} -.u-p-b-15 { - padding-bottom: 0.46875rem !important; -} -.u-margin-bottom-15 { - margin-bottom: 0.46875rem !important; -} -.u-padding-bottom-15 { - padding-bottom: 0.46875rem !important; -} -.u-margin-16, .u-m-16 { - margin: 0.5rem !important; -} -.u-padding-16, .u-p-16 { - padding: 0.5rem !important; -} -.u-m-l-16 { - margin-left: 0.5rem !important; -} -.u-p-l-16 { - padding-left: 0.5rem !important; -} -.u-margin-left-16 { - margin-left: 0.5rem !important; -} -.u-padding-left-16 { - padding-left: 0.5rem !important; -} -.u-m-t-16 { - margin-top: 0.5rem !important; -} -.u-p-t-16 { - padding-top: 0.5rem !important; -} -.u-margin-top-16 { - margin-top: 0.5rem !important; -} -.u-padding-top-16 { - padding-top: 0.5rem !important; -} -.u-m-r-16 { - margin-right: 0.5rem !important; -} -.u-p-r-16 { - padding-right: 0.5rem !important; -} -.u-margin-right-16 { - margin-right: 0.5rem !important; -} -.u-padding-right-16 { - padding-right: 0.5rem !important; -} -.u-m-b-16 { - margin-bottom: 0.5rem !important; -} -.u-p-b-16 { - padding-bottom: 0.5rem !important; -} -.u-margin-bottom-16 { - margin-bottom: 0.5rem !important; -} -.u-padding-bottom-16 { - padding-bottom: 0.5rem !important; -} -.u-margin-18, .u-m-18 { - margin: 0.5625rem !important; -} -.u-padding-18, .u-p-18 { - padding: 0.5625rem !important; -} -.u-m-l-18 { - margin-left: 0.5625rem !important; -} -.u-p-l-18 { - padding-left: 0.5625rem !important; -} -.u-margin-left-18 { - margin-left: 0.5625rem !important; -} -.u-padding-left-18 { - padding-left: 0.5625rem !important; -} -.u-m-t-18 { - margin-top: 0.5625rem !important; -} -.u-p-t-18 { - padding-top: 0.5625rem !important; -} -.u-margin-top-18 { - margin-top: 0.5625rem !important; -} -.u-padding-top-18 { - padding-top: 0.5625rem !important; -} -.u-m-r-18 { - margin-right: 0.5625rem !important; -} -.u-p-r-18 { - padding-right: 0.5625rem !important; -} -.u-margin-right-18 { - margin-right: 0.5625rem !important; -} -.u-padding-right-18 { - padding-right: 0.5625rem !important; -} -.u-m-b-18 { - margin-bottom: 0.5625rem !important; -} -.u-p-b-18 { - padding-bottom: 0.5625rem !important; -} -.u-margin-bottom-18 { - margin-bottom: 0.5625rem !important; -} -.u-padding-bottom-18 { - padding-bottom: 0.5625rem !important; -} -.u-margin-20, .u-m-20 { - margin: 0.625rem !important; -} -.u-padding-20, .u-p-20 { - padding: 0.625rem !important; -} -.u-m-l-20 { - margin-left: 0.625rem !important; -} -.u-p-l-20 { - padding-left: 0.625rem !important; -} -.u-margin-left-20 { - margin-left: 0.625rem !important; -} -.u-padding-left-20 { - padding-left: 0.625rem !important; -} -.u-m-t-20 { - margin-top: 0.625rem !important; -} -.u-p-t-20 { - padding-top: 0.625rem !important; -} -.u-margin-top-20 { - margin-top: 0.625rem !important; -} -.u-padding-top-20 { - padding-top: 0.625rem !important; -} -.u-m-r-20 { - margin-right: 0.625rem !important; -} -.u-p-r-20 { - padding-right: 0.625rem !important; -} -.u-margin-right-20 { - margin-right: 0.625rem !important; -} -.u-padding-right-20 { - padding-right: 0.625rem !important; -} -.u-m-b-20 { - margin-bottom: 0.625rem !important; -} -.u-p-b-20 { - padding-bottom: 0.625rem !important; -} -.u-margin-bottom-20 { - margin-bottom: 0.625rem !important; -} -.u-padding-bottom-20 { - padding-bottom: 0.625rem !important; -} -.u-margin-22, .u-m-22 { - margin: 0.6875rem !important; -} -.u-padding-22, .u-p-22 { - padding: 0.6875rem !important; -} -.u-m-l-22 { - margin-left: 0.6875rem !important; -} -.u-p-l-22 { - padding-left: 0.6875rem !important; -} -.u-margin-left-22 { - margin-left: 0.6875rem !important; -} -.u-padding-left-22 { - padding-left: 0.6875rem !important; -} -.u-m-t-22 { - margin-top: 0.6875rem !important; -} -.u-p-t-22 { - padding-top: 0.6875rem !important; -} -.u-margin-top-22 { - margin-top: 0.6875rem !important; -} -.u-padding-top-22 { - padding-top: 0.6875rem !important; -} -.u-m-r-22 { - margin-right: 0.6875rem !important; -} -.u-p-r-22 { - padding-right: 0.6875rem !important; -} -.u-margin-right-22 { - margin-right: 0.6875rem !important; -} -.u-padding-right-22 { - padding-right: 0.6875rem !important; -} -.u-m-b-22 { - margin-bottom: 0.6875rem !important; -} -.u-p-b-22 { - padding-bottom: 0.6875rem !important; -} -.u-margin-bottom-22 { - margin-bottom: 0.6875rem !important; -} -.u-padding-bottom-22 { - padding-bottom: 0.6875rem !important; -} -.u-margin-24, .u-m-24 { - margin: 0.75rem !important; -} -.u-padding-24, .u-p-24 { - padding: 0.75rem !important; -} -.u-m-l-24 { - margin-left: 0.75rem !important; -} -.u-p-l-24 { - padding-left: 0.75rem !important; -} -.u-margin-left-24 { - margin-left: 0.75rem !important; -} -.u-padding-left-24 { - padding-left: 0.75rem !important; -} -.u-m-t-24 { - margin-top: 0.75rem !important; -} -.u-p-t-24 { - padding-top: 0.75rem !important; -} -.u-margin-top-24 { - margin-top: 0.75rem !important; -} -.u-padding-top-24 { - padding-top: 0.75rem !important; -} -.u-m-r-24 { - margin-right: 0.75rem !important; -} -.u-p-r-24 { - padding-right: 0.75rem !important; -} -.u-margin-right-24 { - margin-right: 0.75rem !important; -} -.u-padding-right-24 { - padding-right: 0.75rem !important; -} -.u-m-b-24 { - margin-bottom: 0.75rem !important; -} -.u-p-b-24 { - padding-bottom: 0.75rem !important; -} -.u-margin-bottom-24 { - margin-bottom: 0.75rem !important; -} -.u-padding-bottom-24 { - padding-bottom: 0.75rem !important; -} -.u-margin-25, .u-m-25 { - margin: 0.78125rem !important; -} -.u-padding-25, .u-p-25 { - padding: 0.78125rem !important; -} -.u-m-l-25 { - margin-left: 0.78125rem !important; -} -.u-p-l-25 { - padding-left: 0.78125rem !important; -} -.u-margin-left-25 { - margin-left: 0.78125rem !important; -} -.u-padding-left-25 { - padding-left: 0.78125rem !important; -} -.u-m-t-25 { - margin-top: 0.78125rem !important; -} -.u-p-t-25 { - padding-top: 0.78125rem !important; -} -.u-margin-top-25 { - margin-top: 0.78125rem !important; -} -.u-padding-top-25 { - padding-top: 0.78125rem !important; -} -.u-m-r-25 { - margin-right: 0.78125rem !important; -} -.u-p-r-25 { - padding-right: 0.78125rem !important; -} -.u-margin-right-25 { - margin-right: 0.78125rem !important; -} -.u-padding-right-25 { - padding-right: 0.78125rem !important; -} -.u-m-b-25 { - margin-bottom: 0.78125rem !important; -} -.u-p-b-25 { - padding-bottom: 0.78125rem !important; -} -.u-margin-bottom-25 { - margin-bottom: 0.78125rem !important; -} -.u-padding-bottom-25 { - padding-bottom: 0.78125rem !important; -} -.u-margin-26, .u-m-26 { - margin: 0.8125rem !important; -} -.u-padding-26, .u-p-26 { - padding: 0.8125rem !important; -} -.u-m-l-26 { - margin-left: 0.8125rem !important; -} -.u-p-l-26 { - padding-left: 0.8125rem !important; -} -.u-margin-left-26 { - margin-left: 0.8125rem !important; -} -.u-padding-left-26 { - padding-left: 0.8125rem !important; -} -.u-m-t-26 { - margin-top: 0.8125rem !important; -} -.u-p-t-26 { - padding-top: 0.8125rem !important; -} -.u-margin-top-26 { - margin-top: 0.8125rem !important; -} -.u-padding-top-26 { - padding-top: 0.8125rem !important; -} -.u-m-r-26 { - margin-right: 0.8125rem !important; -} -.u-p-r-26 { - padding-right: 0.8125rem !important; -} -.u-margin-right-26 { - margin-right: 0.8125rem !important; -} -.u-padding-right-26 { - padding-right: 0.8125rem !important; -} -.u-m-b-26 { - margin-bottom: 0.8125rem !important; -} -.u-p-b-26 { - padding-bottom: 0.8125rem !important; -} -.u-margin-bottom-26 { - margin-bottom: 0.8125rem !important; -} -.u-padding-bottom-26 { - padding-bottom: 0.8125rem !important; -} -.u-margin-28, .u-m-28 { - margin: 0.875rem !important; -} -.u-padding-28, .u-p-28 { - padding: 0.875rem !important; -} -.u-m-l-28 { - margin-left: 0.875rem !important; -} -.u-p-l-28 { - padding-left: 0.875rem !important; -} -.u-margin-left-28 { - margin-left: 0.875rem !important; -} -.u-padding-left-28 { - padding-left: 0.875rem !important; -} -.u-m-t-28 { - margin-top: 0.875rem !important; -} -.u-p-t-28 { - padding-top: 0.875rem !important; -} -.u-margin-top-28 { - margin-top: 0.875rem !important; -} -.u-padding-top-28 { - padding-top: 0.875rem !important; -} -.u-m-r-28 { - margin-right: 0.875rem !important; -} -.u-p-r-28 { - padding-right: 0.875rem !important; -} -.u-margin-right-28 { - margin-right: 0.875rem !important; -} -.u-padding-right-28 { - padding-right: 0.875rem !important; -} -.u-m-b-28 { - margin-bottom: 0.875rem !important; -} -.u-p-b-28 { - padding-bottom: 0.875rem !important; -} -.u-margin-bottom-28 { - margin-bottom: 0.875rem !important; -} -.u-padding-bottom-28 { - padding-bottom: 0.875rem !important; -} -.u-margin-30, .u-m-30 { - margin: 0.9375rem !important; -} -.u-padding-30, .u-p-30 { - padding: 0.9375rem !important; -} -.u-m-l-30 { - margin-left: 0.9375rem !important; -} -.u-p-l-30 { - padding-left: 0.9375rem !important; -} -.u-margin-left-30 { - margin-left: 0.9375rem !important; -} -.u-padding-left-30 { - padding-left: 0.9375rem !important; -} -.u-m-t-30 { - margin-top: 0.9375rem !important; -} -.u-p-t-30 { - padding-top: 0.9375rem !important; -} -.u-margin-top-30 { - margin-top: 0.9375rem !important; -} -.u-padding-top-30 { - padding-top: 0.9375rem !important; -} -.u-m-r-30 { - margin-right: 0.9375rem !important; -} -.u-p-r-30 { - padding-right: 0.9375rem !important; -} -.u-margin-right-30 { - margin-right: 0.9375rem !important; -} -.u-padding-right-30 { - padding-right: 0.9375rem !important; -} -.u-m-b-30 { - margin-bottom: 0.9375rem !important; -} -.u-p-b-30 { - padding-bottom: 0.9375rem !important; -} -.u-margin-bottom-30 { - margin-bottom: 0.9375rem !important; -} -.u-padding-bottom-30 { - padding-bottom: 0.9375rem !important; -} -.u-margin-32, .u-m-32 { - margin: 1rem !important; -} -.u-padding-32, .u-p-32 { - padding: 1rem !important; -} -.u-m-l-32 { - margin-left: 1rem !important; -} -.u-p-l-32 { - padding-left: 1rem !important; -} -.u-margin-left-32 { - margin-left: 1rem !important; -} -.u-padding-left-32 { - padding-left: 1rem !important; -} -.u-m-t-32 { - margin-top: 1rem !important; -} -.u-p-t-32 { - padding-top: 1rem !important; -} -.u-margin-top-32 { - margin-top: 1rem !important; -} -.u-padding-top-32 { - padding-top: 1rem !important; -} -.u-m-r-32 { - margin-right: 1rem !important; -} -.u-p-r-32 { - padding-right: 1rem !important; -} -.u-margin-right-32 { - margin-right: 1rem !important; -} -.u-padding-right-32 { - padding-right: 1rem !important; -} -.u-m-b-32 { - margin-bottom: 1rem !important; -} -.u-p-b-32 { - padding-bottom: 1rem !important; -} -.u-margin-bottom-32 { - margin-bottom: 1rem !important; -} -.u-padding-bottom-32 { - padding-bottom: 1rem !important; -} -.u-margin-34, .u-m-34 { - margin: 1.0625rem !important; -} -.u-padding-34, .u-p-34 { - padding: 1.0625rem !important; -} -.u-m-l-34 { - margin-left: 1.0625rem !important; -} -.u-p-l-34 { - padding-left: 1.0625rem !important; -} -.u-margin-left-34 { - margin-left: 1.0625rem !important; -} -.u-padding-left-34 { - padding-left: 1.0625rem !important; -} -.u-m-t-34 { - margin-top: 1.0625rem !important; -} -.u-p-t-34 { - padding-top: 1.0625rem !important; -} -.u-margin-top-34 { - margin-top: 1.0625rem !important; -} -.u-padding-top-34 { - padding-top: 1.0625rem !important; -} -.u-m-r-34 { - margin-right: 1.0625rem !important; -} -.u-p-r-34 { - padding-right: 1.0625rem !important; -} -.u-margin-right-34 { - margin-right: 1.0625rem !important; -} -.u-padding-right-34 { - padding-right: 1.0625rem !important; -} -.u-m-b-34 { - margin-bottom: 1.0625rem !important; -} -.u-p-b-34 { - padding-bottom: 1.0625rem !important; -} -.u-margin-bottom-34 { - margin-bottom: 1.0625rem !important; -} -.u-padding-bottom-34 { - padding-bottom: 1.0625rem !important; -} -.u-margin-35, .u-m-35 { - margin: 1.09375rem !important; -} -.u-padding-35, .u-p-35 { - padding: 1.09375rem !important; -} -.u-m-l-35 { - margin-left: 1.09375rem !important; -} -.u-p-l-35 { - padding-left: 1.09375rem !important; -} -.u-margin-left-35 { - margin-left: 1.09375rem !important; -} -.u-padding-left-35 { - padding-left: 1.09375rem !important; -} -.u-m-t-35 { - margin-top: 1.09375rem !important; -} -.u-p-t-35 { - padding-top: 1.09375rem !important; -} -.u-margin-top-35 { - margin-top: 1.09375rem !important; -} -.u-padding-top-35 { - padding-top: 1.09375rem !important; -} -.u-m-r-35 { - margin-right: 1.09375rem !important; -} -.u-p-r-35 { - padding-right: 1.09375rem !important; -} -.u-margin-right-35 { - margin-right: 1.09375rem !important; -} -.u-padding-right-35 { - padding-right: 1.09375rem !important; -} -.u-m-b-35 { - margin-bottom: 1.09375rem !important; -} -.u-p-b-35 { - padding-bottom: 1.09375rem !important; -} -.u-margin-bottom-35 { - margin-bottom: 1.09375rem !important; -} -.u-padding-bottom-35 { - padding-bottom: 1.09375rem !important; -} -.u-margin-36, .u-m-36 { - margin: 1.125rem !important; -} -.u-padding-36, .u-p-36 { - padding: 1.125rem !important; -} -.u-m-l-36 { - margin-left: 1.125rem !important; -} -.u-p-l-36 { - padding-left: 1.125rem !important; -} -.u-margin-left-36 { - margin-left: 1.125rem !important; -} -.u-padding-left-36 { - padding-left: 1.125rem !important; -} -.u-m-t-36 { - margin-top: 1.125rem !important; -} -.u-p-t-36 { - padding-top: 1.125rem !important; -} -.u-margin-top-36 { - margin-top: 1.125rem !important; -} -.u-padding-top-36 { - padding-top: 1.125rem !important; -} -.u-m-r-36 { - margin-right: 1.125rem !important; -} -.u-p-r-36 { - padding-right: 1.125rem !important; -} -.u-margin-right-36 { - margin-right: 1.125rem !important; -} -.u-padding-right-36 { - padding-right: 1.125rem !important; -} -.u-m-b-36 { - margin-bottom: 1.125rem !important; -} -.u-p-b-36 { - padding-bottom: 1.125rem !important; -} -.u-margin-bottom-36 { - margin-bottom: 1.125rem !important; -} -.u-padding-bottom-36 { - padding-bottom: 1.125rem !important; -} -.u-margin-38, .u-m-38 { - margin: 1.1875rem !important; -} -.u-padding-38, .u-p-38 { - padding: 1.1875rem !important; -} -.u-m-l-38 { - margin-left: 1.1875rem !important; -} -.u-p-l-38 { - padding-left: 1.1875rem !important; -} -.u-margin-left-38 { - margin-left: 1.1875rem !important; -} -.u-padding-left-38 { - padding-left: 1.1875rem !important; -} -.u-m-t-38 { - margin-top: 1.1875rem !important; -} -.u-p-t-38 { - padding-top: 1.1875rem !important; -} -.u-margin-top-38 { - margin-top: 1.1875rem !important; -} -.u-padding-top-38 { - padding-top: 1.1875rem !important; -} -.u-m-r-38 { - margin-right: 1.1875rem !important; -} -.u-p-r-38 { - padding-right: 1.1875rem !important; -} -.u-margin-right-38 { - margin-right: 1.1875rem !important; -} -.u-padding-right-38 { - padding-right: 1.1875rem !important; -} -.u-m-b-38 { - margin-bottom: 1.1875rem !important; -} -.u-p-b-38 { - padding-bottom: 1.1875rem !important; -} -.u-margin-bottom-38 { - margin-bottom: 1.1875rem !important; -} -.u-padding-bottom-38 { - padding-bottom: 1.1875rem !important; -} -.u-margin-40, .u-m-40 { - margin: 1.25rem !important; -} -.u-padding-40, .u-p-40 { - padding: 1.25rem !important; -} -.u-m-l-40 { - margin-left: 1.25rem !important; -} -.u-p-l-40 { - padding-left: 1.25rem !important; -} -.u-margin-left-40 { - margin-left: 1.25rem !important; -} -.u-padding-left-40 { - padding-left: 1.25rem !important; -} -.u-m-t-40 { - margin-top: 1.25rem !important; -} -.u-p-t-40 { - padding-top: 1.25rem !important; -} -.u-margin-top-40 { - margin-top: 1.25rem !important; -} -.u-padding-top-40 { - padding-top: 1.25rem !important; -} -.u-m-r-40 { - margin-right: 1.25rem !important; -} -.u-p-r-40 { - padding-right: 1.25rem !important; -} -.u-margin-right-40 { - margin-right: 1.25rem !important; -} -.u-padding-right-40 { - padding-right: 1.25rem !important; -} -.u-m-b-40 { - margin-bottom: 1.25rem !important; -} -.u-p-b-40 { - padding-bottom: 1.25rem !important; -} -.u-margin-bottom-40 { - margin-bottom: 1.25rem !important; -} -.u-padding-bottom-40 { - padding-bottom: 1.25rem !important; -} -.u-margin-42, .u-m-42 { - margin: 1.3125rem !important; -} -.u-padding-42, .u-p-42 { - padding: 1.3125rem !important; -} -.u-m-l-42 { - margin-left: 1.3125rem !important; -} -.u-p-l-42 { - padding-left: 1.3125rem !important; -} -.u-margin-left-42 { - margin-left: 1.3125rem !important; -} -.u-padding-left-42 { - padding-left: 1.3125rem !important; -} -.u-m-t-42 { - margin-top: 1.3125rem !important; -} -.u-p-t-42 { - padding-top: 1.3125rem !important; -} -.u-margin-top-42 { - margin-top: 1.3125rem !important; -} -.u-padding-top-42 { - padding-top: 1.3125rem !important; -} -.u-m-r-42 { - margin-right: 1.3125rem !important; -} -.u-p-r-42 { - padding-right: 1.3125rem !important; -} -.u-margin-right-42 { - margin-right: 1.3125rem !important; -} -.u-padding-right-42 { - padding-right: 1.3125rem !important; -} -.u-m-b-42 { - margin-bottom: 1.3125rem !important; -} -.u-p-b-42 { - padding-bottom: 1.3125rem !important; -} -.u-margin-bottom-42 { - margin-bottom: 1.3125rem !important; -} -.u-padding-bottom-42 { - padding-bottom: 1.3125rem !important; -} -.u-margin-44, .u-m-44 { - margin: 1.375rem !important; -} -.u-padding-44, .u-p-44 { - padding: 1.375rem !important; -} -.u-m-l-44 { - margin-left: 1.375rem !important; -} -.u-p-l-44 { - padding-left: 1.375rem !important; -} -.u-margin-left-44 { - margin-left: 1.375rem !important; -} -.u-padding-left-44 { - padding-left: 1.375rem !important; -} -.u-m-t-44 { - margin-top: 1.375rem !important; -} -.u-p-t-44 { - padding-top: 1.375rem !important; -} -.u-margin-top-44 { - margin-top: 1.375rem !important; -} -.u-padding-top-44 { - padding-top: 1.375rem !important; -} -.u-m-r-44 { - margin-right: 1.375rem !important; -} -.u-p-r-44 { - padding-right: 1.375rem !important; -} -.u-margin-right-44 { - margin-right: 1.375rem !important; -} -.u-padding-right-44 { - padding-right: 1.375rem !important; -} -.u-m-b-44 { - margin-bottom: 1.375rem !important; -} -.u-p-b-44 { - padding-bottom: 1.375rem !important; -} -.u-margin-bottom-44 { - margin-bottom: 1.375rem !important; -} -.u-padding-bottom-44 { - padding-bottom: 1.375rem !important; -} -.u-margin-45, .u-m-45 { - margin: 1.40625rem !important; -} -.u-padding-45, .u-p-45 { - padding: 1.40625rem !important; -} -.u-m-l-45 { - margin-left: 1.40625rem !important; -} -.u-p-l-45 { - padding-left: 1.40625rem !important; -} -.u-margin-left-45 { - margin-left: 1.40625rem !important; -} -.u-padding-left-45 { - padding-left: 1.40625rem !important; -} -.u-m-t-45 { - margin-top: 1.40625rem !important; -} -.u-p-t-45 { - padding-top: 1.40625rem !important; -} -.u-margin-top-45 { - margin-top: 1.40625rem !important; -} -.u-padding-top-45 { - padding-top: 1.40625rem !important; -} -.u-m-r-45 { - margin-right: 1.40625rem !important; -} -.u-p-r-45 { - padding-right: 1.40625rem !important; -} -.u-margin-right-45 { - margin-right: 1.40625rem !important; -} -.u-padding-right-45 { - padding-right: 1.40625rem !important; -} -.u-m-b-45 { - margin-bottom: 1.40625rem !important; -} -.u-p-b-45 { - padding-bottom: 1.40625rem !important; -} -.u-margin-bottom-45 { - margin-bottom: 1.40625rem !important; -} -.u-padding-bottom-45 { - padding-bottom: 1.40625rem !important; -} -.u-margin-46, .u-m-46 { - margin: 1.4375rem !important; -} -.u-padding-46, .u-p-46 { - padding: 1.4375rem !important; -} -.u-m-l-46 { - margin-left: 1.4375rem !important; -} -.u-p-l-46 { - padding-left: 1.4375rem !important; -} -.u-margin-left-46 { - margin-left: 1.4375rem !important; -} -.u-padding-left-46 { - padding-left: 1.4375rem !important; -} -.u-m-t-46 { - margin-top: 1.4375rem !important; -} -.u-p-t-46 { - padding-top: 1.4375rem !important; -} -.u-margin-top-46 { - margin-top: 1.4375rem !important; -} -.u-padding-top-46 { - padding-top: 1.4375rem !important; -} -.u-m-r-46 { - margin-right: 1.4375rem !important; -} -.u-p-r-46 { - padding-right: 1.4375rem !important; -} -.u-margin-right-46 { - margin-right: 1.4375rem !important; -} -.u-padding-right-46 { - padding-right: 1.4375rem !important; -} -.u-m-b-46 { - margin-bottom: 1.4375rem !important; -} -.u-p-b-46 { - padding-bottom: 1.4375rem !important; -} -.u-margin-bottom-46 { - margin-bottom: 1.4375rem !important; -} -.u-padding-bottom-46 { - padding-bottom: 1.4375rem !important; -} -.u-margin-48, .u-m-48 { - margin: 1.5rem !important; -} -.u-padding-48, .u-p-48 { - padding: 1.5rem !important; -} -.u-m-l-48 { - margin-left: 1.5rem !important; -} -.u-p-l-48 { - padding-left: 1.5rem !important; -} -.u-margin-left-48 { - margin-left: 1.5rem !important; -} -.u-padding-left-48 { - padding-left: 1.5rem !important; -} -.u-m-t-48 { - margin-top: 1.5rem !important; -} -.u-p-t-48 { - padding-top: 1.5rem !important; -} -.u-margin-top-48 { - margin-top: 1.5rem !important; -} -.u-padding-top-48 { - padding-top: 1.5rem !important; -} -.u-m-r-48 { - margin-right: 1.5rem !important; -} -.u-p-r-48 { - padding-right: 1.5rem !important; -} -.u-margin-right-48 { - margin-right: 1.5rem !important; -} -.u-padding-right-48 { - padding-right: 1.5rem !important; -} -.u-m-b-48 { - margin-bottom: 1.5rem !important; -} -.u-p-b-48 { - padding-bottom: 1.5rem !important; -} -.u-margin-bottom-48 { - margin-bottom: 1.5rem !important; -} -.u-padding-bottom-48 { - padding-bottom: 1.5rem !important; -} -.u-margin-50, .u-m-50 { - margin: 1.5625rem !important; -} -.u-padding-50, .u-p-50 { - padding: 1.5625rem !important; -} -.u-m-l-50 { - margin-left: 1.5625rem !important; -} -.u-p-l-50 { - padding-left: 1.5625rem !important; -} -.u-margin-left-50 { - margin-left: 1.5625rem !important; -} -.u-padding-left-50 { - padding-left: 1.5625rem !important; -} -.u-m-t-50 { - margin-top: 1.5625rem !important; -} -.u-p-t-50 { - padding-top: 1.5625rem !important; -} -.u-margin-top-50 { - margin-top: 1.5625rem !important; -} -.u-padding-top-50 { - padding-top: 1.5625rem !important; -} -.u-m-r-50 { - margin-right: 1.5625rem !important; -} -.u-p-r-50 { - padding-right: 1.5625rem !important; -} -.u-margin-right-50 { - margin-right: 1.5625rem !important; -} -.u-padding-right-50 { - padding-right: 1.5625rem !important; -} -.u-m-b-50 { - margin-bottom: 1.5625rem !important; -} -.u-p-b-50 { - padding-bottom: 1.5625rem !important; -} -.u-margin-bottom-50 { - margin-bottom: 1.5625rem !important; -} -.u-padding-bottom-50 { - padding-bottom: 1.5625rem !important; -} -.u-margin-52, .u-m-52 { - margin: 1.625rem !important; -} -.u-padding-52, .u-p-52 { - padding: 1.625rem !important; -} -.u-m-l-52 { - margin-left: 1.625rem !important; -} -.u-p-l-52 { - padding-left: 1.625rem !important; -} -.u-margin-left-52 { - margin-left: 1.625rem !important; -} -.u-padding-left-52 { - padding-left: 1.625rem !important; -} -.u-m-t-52 { - margin-top: 1.625rem !important; -} -.u-p-t-52 { - padding-top: 1.625rem !important; -} -.u-margin-top-52 { - margin-top: 1.625rem !important; -} -.u-padding-top-52 { - padding-top: 1.625rem !important; -} -.u-m-r-52 { - margin-right: 1.625rem !important; -} -.u-p-r-52 { - padding-right: 1.625rem !important; -} -.u-margin-right-52 { - margin-right: 1.625rem !important; -} -.u-padding-right-52 { - padding-right: 1.625rem !important; -} -.u-m-b-52 { - margin-bottom: 1.625rem !important; -} -.u-p-b-52 { - padding-bottom: 1.625rem !important; -} -.u-margin-bottom-52 { - margin-bottom: 1.625rem !important; -} -.u-padding-bottom-52 { - padding-bottom: 1.625rem !important; -} -.u-margin-54, .u-m-54 { - margin: 1.6875rem !important; -} -.u-padding-54, .u-p-54 { - padding: 1.6875rem !important; -} -.u-m-l-54 { - margin-left: 1.6875rem !important; -} -.u-p-l-54 { - padding-left: 1.6875rem !important; -} -.u-margin-left-54 { - margin-left: 1.6875rem !important; -} -.u-padding-left-54 { - padding-left: 1.6875rem !important; -} -.u-m-t-54 { - margin-top: 1.6875rem !important; -} -.u-p-t-54 { - padding-top: 1.6875rem !important; -} -.u-margin-top-54 { - margin-top: 1.6875rem !important; -} -.u-padding-top-54 { - padding-top: 1.6875rem !important; -} -.u-m-r-54 { - margin-right: 1.6875rem !important; -} -.u-p-r-54 { - padding-right: 1.6875rem !important; -} -.u-margin-right-54 { - margin-right: 1.6875rem !important; -} -.u-padding-right-54 { - padding-right: 1.6875rem !important; -} -.u-m-b-54 { - margin-bottom: 1.6875rem !important; -} -.u-p-b-54 { - padding-bottom: 1.6875rem !important; -} -.u-margin-bottom-54 { - margin-bottom: 1.6875rem !important; -} -.u-padding-bottom-54 { - padding-bottom: 1.6875rem !important; -} -.u-margin-55, .u-m-55 { - margin: 1.71875rem !important; -} -.u-padding-55, .u-p-55 { - padding: 1.71875rem !important; -} -.u-m-l-55 { - margin-left: 1.71875rem !important; -} -.u-p-l-55 { - padding-left: 1.71875rem !important; -} -.u-margin-left-55 { - margin-left: 1.71875rem !important; -} -.u-padding-left-55 { - padding-left: 1.71875rem !important; -} -.u-m-t-55 { - margin-top: 1.71875rem !important; -} -.u-p-t-55 { - padding-top: 1.71875rem !important; -} -.u-margin-top-55 { - margin-top: 1.71875rem !important; -} -.u-padding-top-55 { - padding-top: 1.71875rem !important; -} -.u-m-r-55 { - margin-right: 1.71875rem !important; -} -.u-p-r-55 { - padding-right: 1.71875rem !important; -} -.u-margin-right-55 { - margin-right: 1.71875rem !important; -} -.u-padding-right-55 { - padding-right: 1.71875rem !important; -} -.u-m-b-55 { - margin-bottom: 1.71875rem !important; -} -.u-p-b-55 { - padding-bottom: 1.71875rem !important; -} -.u-margin-bottom-55 { - margin-bottom: 1.71875rem !important; -} -.u-padding-bottom-55 { - padding-bottom: 1.71875rem !important; -} -.u-margin-56, .u-m-56 { - margin: 1.75rem !important; -} -.u-padding-56, .u-p-56 { - padding: 1.75rem !important; -} -.u-m-l-56 { - margin-left: 1.75rem !important; -} -.u-p-l-56 { - padding-left: 1.75rem !important; -} -.u-margin-left-56 { - margin-left: 1.75rem !important; -} -.u-padding-left-56 { - padding-left: 1.75rem !important; -} -.u-m-t-56 { - margin-top: 1.75rem !important; -} -.u-p-t-56 { - padding-top: 1.75rem !important; -} -.u-margin-top-56 { - margin-top: 1.75rem !important; -} -.u-padding-top-56 { - padding-top: 1.75rem !important; -} -.u-m-r-56 { - margin-right: 1.75rem !important; -} -.u-p-r-56 { - padding-right: 1.75rem !important; -} -.u-margin-right-56 { - margin-right: 1.75rem !important; -} -.u-padding-right-56 { - padding-right: 1.75rem !important; -} -.u-m-b-56 { - margin-bottom: 1.75rem !important; -} -.u-p-b-56 { - padding-bottom: 1.75rem !important; -} -.u-margin-bottom-56 { - margin-bottom: 1.75rem !important; -} -.u-padding-bottom-56 { - padding-bottom: 1.75rem !important; -} -.u-margin-58, .u-m-58 { - margin: 1.8125rem !important; -} -.u-padding-58, .u-p-58 { - padding: 1.8125rem !important; -} -.u-m-l-58 { - margin-left: 1.8125rem !important; -} -.u-p-l-58 { - padding-left: 1.8125rem !important; -} -.u-margin-left-58 { - margin-left: 1.8125rem !important; -} -.u-padding-left-58 { - padding-left: 1.8125rem !important; -} -.u-m-t-58 { - margin-top: 1.8125rem !important; -} -.u-p-t-58 { - padding-top: 1.8125rem !important; -} -.u-margin-top-58 { - margin-top: 1.8125rem !important; -} -.u-padding-top-58 { - padding-top: 1.8125rem !important; -} -.u-m-r-58 { - margin-right: 1.8125rem !important; -} -.u-p-r-58 { - padding-right: 1.8125rem !important; -} -.u-margin-right-58 { - margin-right: 1.8125rem !important; -} -.u-padding-right-58 { - padding-right: 1.8125rem !important; -} -.u-m-b-58 { - margin-bottom: 1.8125rem !important; -} -.u-p-b-58 { - padding-bottom: 1.8125rem !important; -} -.u-margin-bottom-58 { - margin-bottom: 1.8125rem !important; -} -.u-padding-bottom-58 { - padding-bottom: 1.8125rem !important; -} -.u-margin-60, .u-m-60 { - margin: 1.875rem !important; -} -.u-padding-60, .u-p-60 { - padding: 1.875rem !important; -} -.u-m-l-60 { - margin-left: 1.875rem !important; -} -.u-p-l-60 { - padding-left: 1.875rem !important; -} -.u-margin-left-60 { - margin-left: 1.875rem !important; -} -.u-padding-left-60 { - padding-left: 1.875rem !important; -} -.u-m-t-60 { - margin-top: 1.875rem !important; -} -.u-p-t-60 { - padding-top: 1.875rem !important; -} -.u-margin-top-60 { - margin-top: 1.875rem !important; -} -.u-padding-top-60 { - padding-top: 1.875rem !important; -} -.u-m-r-60 { - margin-right: 1.875rem !important; -} -.u-p-r-60 { - padding-right: 1.875rem !important; -} -.u-margin-right-60 { - margin-right: 1.875rem !important; -} -.u-padding-right-60 { - padding-right: 1.875rem !important; -} -.u-m-b-60 { - margin-bottom: 1.875rem !important; -} -.u-p-b-60 { - padding-bottom: 1.875rem !important; -} -.u-margin-bottom-60 { - margin-bottom: 1.875rem !important; -} -.u-padding-bottom-60 { - padding-bottom: 1.875rem !important; -} -.u-margin-62, .u-m-62 { - margin: 1.9375rem !important; -} -.u-padding-62, .u-p-62 { - padding: 1.9375rem !important; -} -.u-m-l-62 { - margin-left: 1.9375rem !important; -} -.u-p-l-62 { - padding-left: 1.9375rem !important; -} -.u-margin-left-62 { - margin-left: 1.9375rem !important; -} -.u-padding-left-62 { - padding-left: 1.9375rem !important; -} -.u-m-t-62 { - margin-top: 1.9375rem !important; -} -.u-p-t-62 { - padding-top: 1.9375rem !important; -} -.u-margin-top-62 { - margin-top: 1.9375rem !important; -} -.u-padding-top-62 { - padding-top: 1.9375rem !important; -} -.u-m-r-62 { - margin-right: 1.9375rem !important; -} -.u-p-r-62 { - padding-right: 1.9375rem !important; -} -.u-margin-right-62 { - margin-right: 1.9375rem !important; -} -.u-padding-right-62 { - padding-right: 1.9375rem !important; -} -.u-m-b-62 { - margin-bottom: 1.9375rem !important; -} -.u-p-b-62 { - padding-bottom: 1.9375rem !important; -} -.u-margin-bottom-62 { - margin-bottom: 1.9375rem !important; -} -.u-padding-bottom-62 { - padding-bottom: 1.9375rem !important; -} -.u-margin-64, .u-m-64 { - margin: 2rem !important; -} -.u-padding-64, .u-p-64 { - padding: 2rem !important; -} -.u-m-l-64 { - margin-left: 2rem !important; -} -.u-p-l-64 { - padding-left: 2rem !important; -} -.u-margin-left-64 { - margin-left: 2rem !important; -} -.u-padding-left-64 { - padding-left: 2rem !important; -} -.u-m-t-64 { - margin-top: 2rem !important; -} -.u-p-t-64 { - padding-top: 2rem !important; -} -.u-margin-top-64 { - margin-top: 2rem !important; -} -.u-padding-top-64 { - padding-top: 2rem !important; -} -.u-m-r-64 { - margin-right: 2rem !important; -} -.u-p-r-64 { - padding-right: 2rem !important; -} -.u-margin-right-64 { - margin-right: 2rem !important; -} -.u-padding-right-64 { - padding-right: 2rem !important; -} -.u-m-b-64 { - margin-bottom: 2rem !important; -} -.u-p-b-64 { - padding-bottom: 2rem !important; -} -.u-margin-bottom-64 { - margin-bottom: 2rem !important; -} -.u-padding-bottom-64 { - padding-bottom: 2rem !important; -} -.u-margin-65, .u-m-65 { - margin: 2.03125rem !important; -} -.u-padding-65, .u-p-65 { - padding: 2.03125rem !important; -} -.u-m-l-65 { - margin-left: 2.03125rem !important; -} -.u-p-l-65 { - padding-left: 2.03125rem !important; -} -.u-margin-left-65 { - margin-left: 2.03125rem !important; -} -.u-padding-left-65 { - padding-left: 2.03125rem !important; -} -.u-m-t-65 { - margin-top: 2.03125rem !important; -} -.u-p-t-65 { - padding-top: 2.03125rem !important; -} -.u-margin-top-65 { - margin-top: 2.03125rem !important; -} -.u-padding-top-65 { - padding-top: 2.03125rem !important; -} -.u-m-r-65 { - margin-right: 2.03125rem !important; -} -.u-p-r-65 { - padding-right: 2.03125rem !important; -} -.u-margin-right-65 { - margin-right: 2.03125rem !important; -} -.u-padding-right-65 { - padding-right: 2.03125rem !important; -} -.u-m-b-65 { - margin-bottom: 2.03125rem !important; -} -.u-p-b-65 { - padding-bottom: 2.03125rem !important; -} -.u-margin-bottom-65 { - margin-bottom: 2.03125rem !important; -} -.u-padding-bottom-65 { - padding-bottom: 2.03125rem !important; -} -.u-margin-66, .u-m-66 { - margin: 2.0625rem !important; -} -.u-padding-66, .u-p-66 { - padding: 2.0625rem !important; -} -.u-m-l-66 { - margin-left: 2.0625rem !important; -} -.u-p-l-66 { - padding-left: 2.0625rem !important; -} -.u-margin-left-66 { - margin-left: 2.0625rem !important; -} -.u-padding-left-66 { - padding-left: 2.0625rem !important; -} -.u-m-t-66 { - margin-top: 2.0625rem !important; -} -.u-p-t-66 { - padding-top: 2.0625rem !important; -} -.u-margin-top-66 { - margin-top: 2.0625rem !important; -} -.u-padding-top-66 { - padding-top: 2.0625rem !important; -} -.u-m-r-66 { - margin-right: 2.0625rem !important; -} -.u-p-r-66 { - padding-right: 2.0625rem !important; -} -.u-margin-right-66 { - margin-right: 2.0625rem !important; -} -.u-padding-right-66 { - padding-right: 2.0625rem !important; -} -.u-m-b-66 { - margin-bottom: 2.0625rem !important; -} -.u-p-b-66 { - padding-bottom: 2.0625rem !important; -} -.u-margin-bottom-66 { - margin-bottom: 2.0625rem !important; -} -.u-padding-bottom-66 { - padding-bottom: 2.0625rem !important; -} -.u-margin-68, .u-m-68 { - margin: 2.125rem !important; -} -.u-padding-68, .u-p-68 { - padding: 2.125rem !important; -} -.u-m-l-68 { - margin-left: 2.125rem !important; -} -.u-p-l-68 { - padding-left: 2.125rem !important; -} -.u-margin-left-68 { - margin-left: 2.125rem !important; -} -.u-padding-left-68 { - padding-left: 2.125rem !important; -} -.u-m-t-68 { - margin-top: 2.125rem !important; -} -.u-p-t-68 { - padding-top: 2.125rem !important; -} -.u-margin-top-68 { - margin-top: 2.125rem !important; -} -.u-padding-top-68 { - padding-top: 2.125rem !important; -} -.u-m-r-68 { - margin-right: 2.125rem !important; -} -.u-p-r-68 { - padding-right: 2.125rem !important; -} -.u-margin-right-68 { - margin-right: 2.125rem !important; -} -.u-padding-right-68 { - padding-right: 2.125rem !important; -} -.u-m-b-68 { - margin-bottom: 2.125rem !important; -} -.u-p-b-68 { - padding-bottom: 2.125rem !important; -} -.u-margin-bottom-68 { - margin-bottom: 2.125rem !important; -} -.u-padding-bottom-68 { - padding-bottom: 2.125rem !important; -} -.u-margin-70, .u-m-70 { - margin: 2.1875rem !important; -} -.u-padding-70, .u-p-70 { - padding: 2.1875rem !important; -} -.u-m-l-70 { - margin-left: 2.1875rem !important; -} -.u-p-l-70 { - padding-left: 2.1875rem !important; -} -.u-margin-left-70 { - margin-left: 2.1875rem !important; -} -.u-padding-left-70 { - padding-left: 2.1875rem !important; -} -.u-m-t-70 { - margin-top: 2.1875rem !important; -} -.u-p-t-70 { - padding-top: 2.1875rem !important; -} -.u-margin-top-70 { - margin-top: 2.1875rem !important; -} -.u-padding-top-70 { - padding-top: 2.1875rem !important; -} -.u-m-r-70 { - margin-right: 2.1875rem !important; -} -.u-p-r-70 { - padding-right: 2.1875rem !important; -} -.u-margin-right-70 { - margin-right: 2.1875rem !important; -} -.u-padding-right-70 { - padding-right: 2.1875rem !important; -} -.u-m-b-70 { - margin-bottom: 2.1875rem !important; -} -.u-p-b-70 { - padding-bottom: 2.1875rem !important; -} -.u-margin-bottom-70 { - margin-bottom: 2.1875rem !important; -} -.u-padding-bottom-70 { - padding-bottom: 2.1875rem !important; -} -.u-margin-72, .u-m-72 { - margin: 2.25rem !important; -} -.u-padding-72, .u-p-72 { - padding: 2.25rem !important; -} -.u-m-l-72 { - margin-left: 2.25rem !important; -} -.u-p-l-72 { - padding-left: 2.25rem !important; -} -.u-margin-left-72 { - margin-left: 2.25rem !important; -} -.u-padding-left-72 { - padding-left: 2.25rem !important; -} -.u-m-t-72 { - margin-top: 2.25rem !important; -} -.u-p-t-72 { - padding-top: 2.25rem !important; -} -.u-margin-top-72 { - margin-top: 2.25rem !important; -} -.u-padding-top-72 { - padding-top: 2.25rem !important; -} -.u-m-r-72 { - margin-right: 2.25rem !important; -} -.u-p-r-72 { - padding-right: 2.25rem !important; -} -.u-margin-right-72 { - margin-right: 2.25rem !important; -} -.u-padding-right-72 { - padding-right: 2.25rem !important; -} -.u-m-b-72 { - margin-bottom: 2.25rem !important; -} -.u-p-b-72 { - padding-bottom: 2.25rem !important; -} -.u-margin-bottom-72 { - margin-bottom: 2.25rem !important; -} -.u-padding-bottom-72 { - padding-bottom: 2.25rem !important; -} -.u-margin-74, .u-m-74 { - margin: 2.3125rem !important; -} -.u-padding-74, .u-p-74 { - padding: 2.3125rem !important; -} -.u-m-l-74 { - margin-left: 2.3125rem !important; -} -.u-p-l-74 { - padding-left: 2.3125rem !important; -} -.u-margin-left-74 { - margin-left: 2.3125rem !important; -} -.u-padding-left-74 { - padding-left: 2.3125rem !important; -} -.u-m-t-74 { - margin-top: 2.3125rem !important; -} -.u-p-t-74 { - padding-top: 2.3125rem !important; -} -.u-margin-top-74 { - margin-top: 2.3125rem !important; -} -.u-padding-top-74 { - padding-top: 2.3125rem !important; -} -.u-m-r-74 { - margin-right: 2.3125rem !important; -} -.u-p-r-74 { - padding-right: 2.3125rem !important; -} -.u-margin-right-74 { - margin-right: 2.3125rem !important; -} -.u-padding-right-74 { - padding-right: 2.3125rem !important; -} -.u-m-b-74 { - margin-bottom: 2.3125rem !important; -} -.u-p-b-74 { - padding-bottom: 2.3125rem !important; -} -.u-margin-bottom-74 { - margin-bottom: 2.3125rem !important; -} -.u-padding-bottom-74 { - padding-bottom: 2.3125rem !important; -} -.u-margin-75, .u-m-75 { - margin: 2.34375rem !important; -} -.u-padding-75, .u-p-75 { - padding: 2.34375rem !important; -} -.u-m-l-75 { - margin-left: 2.34375rem !important; -} -.u-p-l-75 { - padding-left: 2.34375rem !important; -} -.u-margin-left-75 { - margin-left: 2.34375rem !important; -} -.u-padding-left-75 { - padding-left: 2.34375rem !important; -} -.u-m-t-75 { - margin-top: 2.34375rem !important; -} -.u-p-t-75 { - padding-top: 2.34375rem !important; -} -.u-margin-top-75 { - margin-top: 2.34375rem !important; -} -.u-padding-top-75 { - padding-top: 2.34375rem !important; -} -.u-m-r-75 { - margin-right: 2.34375rem !important; -} -.u-p-r-75 { - padding-right: 2.34375rem !important; -} -.u-margin-right-75 { - margin-right: 2.34375rem !important; -} -.u-padding-right-75 { - padding-right: 2.34375rem !important; -} -.u-m-b-75 { - margin-bottom: 2.34375rem !important; -} -.u-p-b-75 { - padding-bottom: 2.34375rem !important; -} -.u-margin-bottom-75 { - margin-bottom: 2.34375rem !important; -} -.u-padding-bottom-75 { - padding-bottom: 2.34375rem !important; -} -.u-margin-76, .u-m-76 { - margin: 2.375rem !important; -} -.u-padding-76, .u-p-76 { - padding: 2.375rem !important; -} -.u-m-l-76 { - margin-left: 2.375rem !important; -} -.u-p-l-76 { - padding-left: 2.375rem !important; -} -.u-margin-left-76 { - margin-left: 2.375rem !important; -} -.u-padding-left-76 { - padding-left: 2.375rem !important; -} -.u-m-t-76 { - margin-top: 2.375rem !important; -} -.u-p-t-76 { - padding-top: 2.375rem !important; -} -.u-margin-top-76 { - margin-top: 2.375rem !important; -} -.u-padding-top-76 { - padding-top: 2.375rem !important; -} -.u-m-r-76 { - margin-right: 2.375rem !important; -} -.u-p-r-76 { - padding-right: 2.375rem !important; -} -.u-margin-right-76 { - margin-right: 2.375rem !important; -} -.u-padding-right-76 { - padding-right: 2.375rem !important; -} -.u-m-b-76 { - margin-bottom: 2.375rem !important; -} -.u-p-b-76 { - padding-bottom: 2.375rem !important; -} -.u-margin-bottom-76 { - margin-bottom: 2.375rem !important; -} -.u-padding-bottom-76 { - padding-bottom: 2.375rem !important; -} -.u-margin-78, .u-m-78 { - margin: 2.4375rem !important; -} -.u-padding-78, .u-p-78 { - padding: 2.4375rem !important; -} -.u-m-l-78 { - margin-left: 2.4375rem !important; -} -.u-p-l-78 { - padding-left: 2.4375rem !important; -} -.u-margin-left-78 { - margin-left: 2.4375rem !important; -} -.u-padding-left-78 { - padding-left: 2.4375rem !important; -} -.u-m-t-78 { - margin-top: 2.4375rem !important; -} -.u-p-t-78 { - padding-top: 2.4375rem !important; -} -.u-margin-top-78 { - margin-top: 2.4375rem !important; -} -.u-padding-top-78 { - padding-top: 2.4375rem !important; -} -.u-m-r-78 { - margin-right: 2.4375rem !important; -} -.u-p-r-78 { - padding-right: 2.4375rem !important; -} -.u-margin-right-78 { - margin-right: 2.4375rem !important; -} -.u-padding-right-78 { - padding-right: 2.4375rem !important; -} -.u-m-b-78 { - margin-bottom: 2.4375rem !important; -} -.u-p-b-78 { - padding-bottom: 2.4375rem !important; -} -.u-margin-bottom-78 { - margin-bottom: 2.4375rem !important; -} -.u-padding-bottom-78 { - padding-bottom: 2.4375rem !important; -} -.u-margin-80, .u-m-80 { - margin: 2.5rem !important; -} -.u-padding-80, .u-p-80 { - padding: 2.5rem !important; -} -.u-m-l-80 { - margin-left: 2.5rem !important; -} -.u-p-l-80 { - padding-left: 2.5rem !important; -} -.u-margin-left-80 { - margin-left: 2.5rem !important; -} -.u-padding-left-80 { - padding-left: 2.5rem !important; -} -.u-m-t-80 { - margin-top: 2.5rem !important; -} -.u-p-t-80 { - padding-top: 2.5rem !important; -} -.u-margin-top-80 { - margin-top: 2.5rem !important; -} -.u-padding-top-80 { - padding-top: 2.5rem !important; -} -.u-m-r-80 { - margin-right: 2.5rem !important; -} -.u-p-r-80 { - padding-right: 2.5rem !important; -} -.u-margin-right-80 { - margin-right: 2.5rem !important; -} -.u-padding-right-80 { - padding-right: 2.5rem !important; -} -.u-m-b-80 { - margin-bottom: 2.5rem !important; -} -.u-p-b-80 { - padding-bottom: 2.5rem !important; -} -.u-margin-bottom-80 { - margin-bottom: 2.5rem !important; -} -.u-padding-bottom-80 { - padding-bottom: 2.5rem !important; -} -.u-primary-light { - color: #ecf5ff; -} -.u-warning-light { - color: #fdf6ec; -} -.u-success-light { - color: #f5fff0; -} -.u-error-light { - color: #fef0f0; -} -.u-info-light { - color: #f4f4f5; -} -.u-primary-light-bg { - background-color: #ecf5ff; -} -.u-warning-light-bg { - background-color: #fdf6ec; -} -.u-success-light-bg { - background-color: #f5fff0; -} -.u-error-light-bg { - background-color: #fef0f0; -} -.u-info-light-bg { - background-color: #f4f4f5; -} -.u-primary-dark { - color: #398ade; -} -.u-warning-dark { - color: #f1a532; -} -.u-success-dark { - color: #53c21d; -} -.u-error-dark { - color: #e45656; -} -.u-info-dark { - color: #767a82; -} -.u-primary-dark-bg { - background-color: #398ade; -} -.u-warning-dark-bg { - background-color: #f1a532; -} -.u-success-dark-bg { - background-color: #53c21d; -} -.u-error-dark-bg { - background-color: #e45656; -} -.u-info-dark-bg { - background-color: #767a82; -} -.u-primary-disabled { - color: #9acafc; -} -.u-warning-disabled { - color: #f9d39b; -} -.u-success-disabled { - color: #a9e08f; -} -.u-error-disabled { - color: #f7b2b2; -} -.u-info-disabled { - color: #c4c6c9; -} -.u-primary { - color: #3c9cff; -} -.u-warning { - color: #f9ae3d; -} -.u-success { - color: #5ac725; -} -.u-error { - color: #f56c6c; -} -.u-info { - color: #909399; -} -.u-primary-bg { - background-color: #3c9cff; -} -.u-warning-bg { - background-color: #f9ae3d; -} -.u-success-bg { - background-color: #5ac725; -} -.u-error-bg { - background-color: #f56c6c; -} -.u-info-bg { - background-color: #909399; -} -.u-main-color { - color: #303133; -} -.u-content-color { - color: #606266; -} -.u-tips-color { - color: #909193; -} -.u-light-color { - color: #c0c4cc; -} -.u-safe-area-inset-top { - padding-top: 0; - padding-top: constant(safe-area-inset-top); - padding-top: env(safe-area-inset-top); -} -.u-safe-area-inset-right { - padding-right: 0; - padding-right: constant(safe-area-inset-right); - padding-right: env(safe-area-inset-right); -} -.u-safe-area-inset-bottom { - padding-bottom: 0; - padding-bottom: constant(safe-area-inset-bottom); - padding-bottom: env(safe-area-inset-bottom); -} -.u-safe-area-inset-left { - padding-left: 0; - padding-left: constant(safe-area-inset-left); - padding-left: env(safe-area-inset-left); -} -::-webkit-scrollbar { - display: none; - width: 0 !important; - height: 0 !important; - -webkit-appearance: none; - background: transparent; -} -.card { - position: relative; - width: 21.68531rem; - margin: auto; - background-color: #fff; - box-sizing: border-box; - padding: 0.625rem; - border-radius: 0.65719rem 0.65719rem 0.65719rem 0.65719rem; - margin-bottom: 1.25rem; - font-size: 0.93094rem; -} -.card .card-li { - margin-bottom: 0.53125rem; -} -.more-jt { - display: flex; - align-items: center; -} -/*每个页面公共css */ \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/manifest.json b/unpackage/dist/dev/app-plus/manifest.json deleted file mode 100644 index a31b0b2..0000000 --- a/unpackage/dist/dev/app-plus/manifest.json +++ /dev/null @@ -1,168 +0,0 @@ -{ - "@platforms": [ - "android", - "iPhone", - "iPad" - ], - "id": "__UNI__D087881", - "name": "test", - "version": { - "name": "1.0.1", - "code": "100" - }, - "description": "", - "developer": { - "name": "", - "email": "", - "url": "" - }, - "permissions": { - "Geolocation": {}, - "Maps": { - "coordType": "gcj02" - }, - "LivePusher": {}, - "UniNView": { - "description": "UniNView原生渲染" - } - }, - "plus": { - "useragent": { - "value": "uni-app", - "concatenate": true - }, - "splashscreen": { - "target": "id:1", - "autoclose": true, - "waiting": true, - "delay": 0 - }, - "popGesture": "close", - "launchwebview": { - "id": "1", - "kernel": "WKWebview" - }, - "usingComponents": true, - "nvueStyleCompiler": "uni-app", - "compilerVersion": 3, - "distribute": { - "google": { - "permissions": [ - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - ], - "minSdkVersion": 21 - }, - "apple": { - "dSYMs": false - }, - "plugins": { - "ad": {}, - "geolocation": { - "amap": { - "name": "amapC2GgorTaY", - "__platform__": [ - "android" - ], - "appkey_ios": "b0c21bc6b220aa882bad8ffb6bce8829", - "appkey_android": "b0c21bc6b220aa882bad8ffb6bce8829" - } - }, - "maps": { - "amap": { - "name": "amapC2GgorTaY", - "appkey_ios": "b0c21bc6b220aa882bad8ffb6bce8829", - "appkey_android": "b0c21bc6b220aa882bad8ffb6bce8829" - } - }, - "audio": { - "mp3": { - "description": "Android平台录音支持MP3格式文件" - } - } - } - }, - "statusbar": { - "immersed": "supportedDevice", - "style": "dark", - "background": "#F8F8F8" - }, - "uniStatistics": { - "enable": false - }, - "allowsInlineMediaPlayback": true, - "safearea": { - "background": "#EBF1EF", - "bottom": { - "offset": "auto" - } - }, - "uni-app": { - "control": "uni-v3", - "vueVersion": "3", - "compilerVersion": "3.96", - "nvueCompiler": "uni-app", - "renderer": "auto", - "nvue": { - "flex-direction": "column" - }, - "nvueLaunchMode": "normal", - "webView": { - "minUserAgentVersion": "49.0" - } - }, - "tabBar": { - "position": "bottom", - "color": "#B3B3B3", - "selectedColor": "#272822", - "borderStyle": "rgba(255,255,255,0.4)", - "blurEffect": "none", - "fontSize": "10px", - "iconWidth": "24px", - "spacing": "3px", - "height": "50px", - "backgroundColor": "#EBF1EF", - "list": [ - { - "pagePath": "pages/index/index", - "text": "首页", - "iconPath": "/static/tabs-icon/home.png", - "selectedIconPath": "/static/img/DK.png" - }, - { - "pagePath": "pages/index/massif", - "text": "地块", - "iconPath": "/static/img/SJ (1).png", - "selectedIconPath": "/static/img/SJ (1).png" - }, - { - "pagePath": "pages/index/personal", - "text": "我的", - "iconPath": "/static/img/WD.png", - "selectedIconPath": "/static/img/WD.png" - } - ], - "selectedIndex": 0, - "shown": true, - "child": [ - "lauchwebview" - ], - "selected": 0 - } - }, - "launch_path": "__uniappview.html" -} \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/pages/index/index.css b/unpackage/dist/dev/app-plus/pages/index/index.css deleted file mode 100644 index b417936..0000000 --- a/unpackage/dist/dev/app-plus/pages/index/index.css +++ /dev/null @@ -1,957 +0,0 @@ -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -uni-view[data-v-1c933a9a], uni-scroll-view[data-v-1c933a9a], uni-swiper-item[data-v-1c933a9a] { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 0; - flex-basis: auto; - align-items: stretch; - align-content: flex-start; -} -@font-face { - font-family: "uicon-iconfont"; - src: url("https://at.alicdn.com/t/font_2225171_8kdcwk4po24.ttf") format("truetype"); -} -.u-icon[data-v-1c933a9a] { - display: flex; - align-items: center; -} -.u-icon--left[data-v-1c933a9a] { - flex-direction: row-reverse; - align-items: center; -} -.u-icon--right[data-v-1c933a9a] { - flex-direction: row; - align-items: center; -} -.u-icon--top[data-v-1c933a9a] { - flex-direction: column-reverse; - justify-content: center; -} -.u-icon--bottom[data-v-1c933a9a] { - flex-direction: column; - justify-content: center; -} -.u-icon__icon[data-v-1c933a9a] { - font-family: uicon-iconfont; - position: relative; - - display: flex; - - flex-direction: row; - align-items: center; -} -.u-icon__icon--primary[data-v-1c933a9a] { - color: #3c9cff; -} -.u-icon__icon--success[data-v-1c933a9a] { - color: #5ac725; -} -.u-icon__icon--error[data-v-1c933a9a] { - color: #f56c6c; -} -.u-icon__icon--warning[data-v-1c933a9a] { - color: #f9ae3d; -} -.u-icon__icon--info[data-v-1c933a9a] { - color: #909399; -} -.u-icon__img[data-v-1c933a9a] { - height: auto; - will-change: transform; -} -.u-icon__label[data-v-1c933a9a] { - line-height: 1; -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -uni-view[data-v-0573594d], uni-scroll-view[data-v-0573594d], uni-swiper-item[data-v-0573594d] { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 0; - flex-basis: auto; - align-items: stretch; - align-content: flex-start; -} - -/** - * vue版本动画内置的动画模式有如下: - * fade:淡入 - * zoom:缩放 - * fade-zoom:缩放淡入 - * fade-up:上滑淡入 - * fade-down:下滑淡入 - * fade-left:左滑淡入 - * fade-right:右滑淡入 - * slide-up:上滑进入 - * slide-down:下滑进入 - * slide-left:左滑进入 - * slide-right:右滑进入 - */ -.u-fade-enter-active[data-v-0573594d], -.u-fade-leave-active[data-v-0573594d] { - transition-property: opacity; -} -.u-fade-enter[data-v-0573594d], -.u-fade-leave-to[data-v-0573594d] { - opacity: 0; -} -.u-fade-zoom-enter[data-v-0573594d], -.u-fade-zoom-leave-to[data-v-0573594d] { - transform: scale(0.95); - opacity: 0; -} -.u-fade-zoom-enter-active[data-v-0573594d], -.u-fade-zoom-leave-active[data-v-0573594d] { - transition-property: transform, opacity; -} -.u-fade-down-enter-active[data-v-0573594d], -.u-fade-down-leave-active[data-v-0573594d], -.u-fade-left-enter-active[data-v-0573594d], -.u-fade-left-leave-active[data-v-0573594d], -.u-fade-right-enter-active[data-v-0573594d], -.u-fade-right-leave-active[data-v-0573594d], -.u-fade-up-enter-active[data-v-0573594d], -.u-fade-up-leave-active[data-v-0573594d] { - transition-property: opacity, transform; -} -.u-fade-up-enter[data-v-0573594d], -.u-fade-up-leave-to[data-v-0573594d] { - transform: translate3d(0, 100%, 0); - opacity: 0; -} -.u-fade-down-enter[data-v-0573594d], -.u-fade-down-leave-to[data-v-0573594d] { - transform: translate3d(0, -100%, 0); - opacity: 0; -} -.u-fade-left-enter[data-v-0573594d], -.u-fade-left-leave-to[data-v-0573594d] { - transform: translate3d(-100%, 0, 0); - opacity: 0; -} -.u-fade-right-enter[data-v-0573594d], -.u-fade-right-leave-to[data-v-0573594d] { - transform: translate3d(100%, 0, 0); - opacity: 0; -} -.u-slide-down-enter-active[data-v-0573594d], -.u-slide-down-leave-active[data-v-0573594d], -.u-slide-left-enter-active[data-v-0573594d], -.u-slide-left-leave-active[data-v-0573594d], -.u-slide-right-enter-active[data-v-0573594d], -.u-slide-right-leave-active[data-v-0573594d], -.u-slide-up-enter-active[data-v-0573594d], -.u-slide-up-leave-active[data-v-0573594d] { - transition-property: transform; -} -.u-slide-up-enter[data-v-0573594d], -.u-slide-up-leave-to[data-v-0573594d] { - transform: translate3d(0, 100%, 0); -} -.u-slide-down-enter[data-v-0573594d], -.u-slide-down-leave-to[data-v-0573594d] { - transform: translate3d(0, -100%, 0); -} -.u-slide-left-enter[data-v-0573594d], -.u-slide-left-leave-to[data-v-0573594d] { - transform: translate3d(-100%, 0, 0); -} -.u-slide-right-enter[data-v-0573594d], -.u-slide-right-leave-to[data-v-0573594d] { - transform: translate3d(100%, 0, 0); -} -.u-zoom-enter-active[data-v-0573594d], -.u-zoom-leave-active[data-v-0573594d] { - transition-property: transform; -} -.u-zoom-enter[data-v-0573594d], -.u-zoom-leave-to[data-v-0573594d] { - transform: scale(0.95); -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -uni-view[data-v-9d58ba7c], uni-scroll-view[data-v-9d58ba7c], uni-swiper-item[data-v-9d58ba7c] { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 0; - flex-basis: auto; - align-items: stretch; - align-content: flex-start; -} -.u-image[data-v-9d58ba7c] { - position: relative; - transition: opacity 0.5s ease-in-out; -} -.u-image__image[data-v-9d58ba7c] { - width: 100%; - height: 100%; -} -.u-image__loading[data-v-9d58ba7c], .u-image__error[data-v-9d58ba7c] { - position: absolute; - top: 0px; - left: 0px; - width: 100%; - height: 100%; - - display: flex; - - flex-direction: row; - align-items: center; - justify-content: center; - background-color: #f3f4f6; - color: #909193; - font-size: 1.4375rem; -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -uni-view[data-v-00752c6d], uni-scroll-view[data-v-00752c6d], uni-swiper-item[data-v-00752c6d] { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 0; - flex-basis: auto; - align-items: stretch; - align-content: flex-start; -} -.u-loading-icon[data-v-00752c6d] { - flex-direction: row; - align-items: center; - justify-content: center; - color: #c8c9cc; -} -.u-loading-icon__text[data-v-00752c6d] { - margin-left: 4px; - color: #606266; - font-size: 14px; - line-height: 20px; -} -.u-loading-icon__spinner[data-v-00752c6d] { - width: 30px; - height: 30px; - position: relative; - box-sizing: border-box; - max-width: 100%; - max-height: 100%; - animation: u-rotate-00752c6d 1s linear infinite; -} -.u-loading-icon__spinner--semicircle[data-v-00752c6d] { - border-width: 2px; - border-color: transparent; - border-top-right-radius: 100px; - border-top-left-radius: 100px; - border-bottom-left-radius: 100px; - border-bottom-right-radius: 100px; - border-style: solid; -} -.u-loading-icon__spinner--circle[data-v-00752c6d] { - border-top-right-radius: 100px; - border-top-left-radius: 100px; - border-bottom-left-radius: 100px; - border-bottom-right-radius: 100px; - border-width: 2px; - border-top-color: #e5e5e5; - border-right-color: #e5e5e5; - border-bottom-color: #e5e5e5; - border-left-color: #e5e5e5; - border-style: solid; -} -.u-loading-icon--vertical[data-v-00752c6d] { - flex-direction: column; -} -[data-v-00752c6d]:host { - font-size: 0px; - line-height: 1; -} -.u-loading-icon__spinner--spinner[data-v-00752c6d] { - animation-timing-function: steps(12); -} -.u-loading-icon__text[data-v-00752c6d]:empty { - display: none; -} -.u-loading-icon--vertical .u-loading-icon__text[data-v-00752c6d] { - margin: 6px 0 0; - color: #606266; -} -.u-loading-icon__dot[data-v-00752c6d] { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.u-loading-icon__dot[data-v-00752c6d]:before { - display: block; - width: 2px; - height: 25%; - margin: 0 auto; - background-color: currentColor; - border-radius: 40%; - content: " "; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(1) { - transform: rotate(30deg); - opacity: 1; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(2) { - transform: rotate(60deg); - opacity: 0.9375; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(3) { - transform: rotate(90deg); - opacity: 0.875; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(4) { - transform: rotate(120deg); - opacity: 0.8125; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(5) { - transform: rotate(150deg); - opacity: 0.75; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(6) { - transform: rotate(180deg); - opacity: 0.6875; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(7) { - transform: rotate(210deg); - opacity: 0.625; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(8) { - transform: rotate(240deg); - opacity: 0.5625; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(9) { - transform: rotate(270deg); - opacity: 0.5; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(10) { - transform: rotate(300deg); - opacity: 0.4375; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(11) { - transform: rotate(330deg); - opacity: 0.375; -} -.u-loading-icon__dot[data-v-00752c6d]:nth-of-type(12) { - transform: rotate(360deg); - opacity: 0.3125; -} -@keyframes u-rotate-00752c6d { -0% { - transform: rotate(0deg); -} -to { - transform: rotate(1turn); -} -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -uni-view[data-v-f571bd8d], uni-scroll-view[data-v-f571bd8d], uni-swiper-item[data-v-f571bd8d] { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 0; - flex-basis: auto; - align-items: stretch; - align-content: flex-start; -} -.u-loading-page[data-v-f571bd8d] { - - display: flex; - - flex-direction: column; - flex: 1; - align-items: center; - justify-content: center; -} -.u-loading-page__warpper[data-v-f571bd8d] { - margin-top: -150px; - justify-content: center; - align-items: center; - color: #c8c8c8; - font-size: 19px; - - display: flex; - - flex-direction: column; -} -.u-loading-page__warpper__loading-icon[data-v-f571bd8d] { - margin-bottom: 10px; -} -.u-loading-page__warpper__loading-icon__img[data-v-f571bd8d] { - width: 40px; - height: 40px; -} -.u-loading-page__warpper__text[data-v-f571bd8d] { - font-size: 19px; - color: #c8c8c8; -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -uni-view[data-v-3fd495d6], uni-scroll-view[data-v-3fd495d6], uni-swiper-item[data-v-3fd495d6] { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 0; - flex-basis: auto; - align-items: stretch; - align-content: flex-start; -} -.u-toolbar[data-v-3fd495d6] { - height: 42px; - - display: flex; - - flex-direction: row; - justify-content: space-between; - align-items: center; -} -.u-toolbar__wrapper__cancel[data-v-3fd495d6] { - color: #909193; - font-size: 15px; - padding: 0 15px; -} -.u-toolbar__title[data-v-3fd495d6] { - color: #303133; - padding: 0 1.875rem; - font-size: 16px; - flex: 1; - text-align: center; -} -.u-toolbar__wrapper__confirm[data-v-3fd495d6] { - color: #3c9cff; - font-size: 15px; - padding: 0 15px; -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -uni-view[data-v-35f7c3e5], uni-scroll-view[data-v-35f7c3e5], uni-swiper-item[data-v-35f7c3e5] { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 0; - flex-basis: auto; - align-items: stretch; - align-content: flex-start; -} -.u-overlay[data-v-35f7c3e5] { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.7); -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -.u-status-bar[data-v-c0b45a48] { - width: 100%; -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -.u-safe-bottom[data-v-3ec581de] { - width: 100%; -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -uni-view[data-v-74921bef], uni-scroll-view[data-v-74921bef], uni-swiper-item[data-v-74921bef] { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 0; - flex-basis: auto; - align-items: stretch; - align-content: flex-start; -} -.u-popup[data-v-74921bef] { - flex: 1; -} -.u-popup__content[data-v-74921bef] { - background-color: #fff; - position: relative; -} -.u-popup__content--round-top[data-v-74921bef] { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-left-radius: 10px; - border-bottom-right-radius: 10px; -} -.u-popup__content--round-left[data-v-74921bef] { - border-top-left-radius: 0; - border-top-right-radius: 10px; - border-bottom-left-radius: 0; - border-bottom-right-radius: 10px; -} -.u-popup__content--round-right[data-v-74921bef] { - border-top-left-radius: 10px; - border-top-right-radius: 0; - border-bottom-left-radius: 10px; - border-bottom-right-radius: 0; -} -.u-popup__content--round-bottom[data-v-74921bef] { - border-top-left-radius: 10px; - border-top-right-radius: 10px; - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; -} -.u-popup__content--round-center[data-v-74921bef] { - border-top-left-radius: 10px; - border-top-right-radius: 10px; - border-bottom-left-radius: 10px; - border-bottom-right-radius: 10px; -} -.u-popup__content__close[data-v-74921bef] { - position: absolute; -} -.u-popup__content__close--hover[data-v-74921bef] { - opacity: 0.4; -} -.u-popup__content__close--top-left[data-v-74921bef] { - top: 15px; - left: 15px; -} -.u-popup__content__close--top-right[data-v-74921bef] { - top: 15px; - right: 15px; -} -.u-popup__content__close--bottom-left[data-v-74921bef] { - bottom: 15px; - left: 15px; -} -.u-popup__content__close--bottom-right[data-v-74921bef] { - right: 15px; - bottom: 15px; -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -uni-view[data-v-1500ce68], uni-scroll-view[data-v-1500ce68], uni-swiper-item[data-v-1500ce68] { - display: flex; - flex-direction: column; - flex-shrink: 0; - flex-grow: 0; - flex-basis: auto; - align-items: stretch; - align-content: flex-start; -} -.u-picker[data-v-1500ce68] { - position: relative; -} -.u-picker__view__column[data-v-1500ce68] { - - display: flex; - - flex-direction: row; - flex: 1; - justify-content: center; -} -.u-picker__view__column__item[data-v-1500ce68] { - - display: flex; - - flex-direction: row; - justify-content: center; - align-items: center; - font-size: 16px; - text-align: center; - display: block; - color: #303133; -} -.u-picker__view__column__item--disabled[data-v-1500ce68] { - cursor: not-allowed; - opacity: 0.35; -} -.u-picker--loading[data-v-1500ce68] { - position: absolute; - top: 0; - right: 0; - left: 0; - bottom: 0; - - display: flex; - - flex-direction: row; - justify-content: center; - align-items: center; - background-color: rgba(255, 255, 255, 0.87); - z-index: 1000; -} -/** - * 这里是uni-app内置的常用样式变量 - * - * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 - * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App - * - */ -/** - * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 - * - * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 - */ -/* 颜色变量 */ -/* 行为相关颜色 */ -/* 文字基本颜色 */ -/* 背景颜色 */ -/* 边框颜色 */ -/* 尺寸变量 */ -/* 文字尺寸 */ -/* 图片尺寸 */ -/* Border Radius */ -/* 水平间距 */ -/* 垂直间距 */ -/* 透明度 */ -/* 文章场景相关 */ -.top[data-v-1cf27b2a] { - background-color: #34D190; - position: fixed; - z-index: 999999; - width: 23.4375rem; -} -.nav[data-v-1cf27b2a] { - height: 2.1875rem; - display: flex; - justify-content: flex-end; - box-sizing: border-box; - align-items: center; - padding-right: 1.25rem; -} -.card[data-v-1cf27b2a] { - display: flex; - justify-content: space-between; -} -.card .changeLand[data-v-1cf27b2a] { - width: 6.25rem; - height: 2.1875rem; - line-height: 2.1875rem; - text-align: center; - border-radius: 0.9375rem; - background-color: #34D190; - color: white; -} -.content[data-v-1cf27b2a] { - min-height: 92vh; - background-color: #EAF2EF; - padding: 0 0.9375rem; - padding-top: 0.625rem; - box-sizing: border-box; -} -.soil-monitor[data-v-1cf27b2a] { - margin-top: 1.25rem; -} -.soil-monitor .head .tit[data-v-1cf27b2a] { - font-size: 1.04031rem; - color: black; -} -.soil-monitor .head .flushed-time[data-v-1cf27b2a] { - display: flex; - font-size: 0.82156rem; - color: #737373; - margin-top: 0.3125rem; -} -.soil-monitor .monitor-content[data-v-1cf27b2a] { - display: flex; - flex-wrap: wrap; - justify-content: space-between; -} -.soil-monitor .monitor-content .monitor-card[data-v-1cf27b2a] { - margin-top: 0.625rem; - background-color: white; - padding: 0.9375rem 0.625rem; - border-radius: 0.9375rem; - width: 10.40438rem; - box-sizing: border-box; - height: 6.62594rem; -} -.soil-monitor .monitor-content .monitor-card .name[data-v-1cf27b2a] { - font-size: 0.93094rem; - display: flex; - align-items: center; -} -.soil-monitor .monitor-content .monitor-card .num[data-v-1cf27b2a] { - margin-top: 0.9375rem; - color: #34D190; -} -.video[data-v-1cf27b2a] { - margin-top: 0.625rem; - width: 100%; - height: 9.375rem; -} -.empty[data-v-1cf27b2a] { - height: 100vh; - background-color: #EAF2EF; - position: relative; -} -.empty .addLand[data-v-1cf27b2a] { - width: auto; - height: 3.125rem; - color: grey; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); -} -.empty .addLand .addBtn[data-v-1cf27b2a] { - margin-top: 0.625rem; - width: 7.8125rem; - height: 2.1875rem; - border: 1px solid #34D190; - line-height: 2.1875rem; - border-radius: 1.5625rem; - text-align: center; -} \ No newline at end of file diff --git a/unpackage/dist/dev/app-plus/static/logo.png b/unpackage/dist/dev/app-plus/static/logo.png deleted file mode 100644 index b5771e209bb677e2ebd5ff766ad5ee11790f305a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4023 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 SYs}WS&%*SCNx89m_