├── imgs ├── .keep ├── tybxcx.png ├── 2D40AEA666CFE5085044803DD9AB6749.jpg ├── 3C2B0636550EBEF8070EFECD45C52AEF.jpg ├── 74C88C49D11715596A493C9F355A0BDA.jpg ├── 76DCFD3438255FE4E813B221AB4F2384.jpg ├── 8F0E8E9BD0189F07233759EC0D5ACC1E.jpg ├── 950B1BCB0D7BC2F8B768B40003C445FE.jpg ├── C5DA1D858766518EDDA70213B0209389.jpg ├── CCB0B465E7899C177114BF637855005D.jpg ├── CD31D18331CCFBB5D4FEAD22EF829125.jpg ├── DF3D15EF052DDC53674240C6940FD8A4.jpg ├── EBCEB148A28ECCE784F11D390D0B5F34.jpg ├── F614BFCC86E6BB70496B23DDED8BF809.jpg └── 0DBA62F1FFCFF7ADE136AEB365D6B4C6 - 副本.jpg ├── uni_modules ├── uni-scss │ ├── index.scss │ ├── styles │ │ ├── setting │ │ │ ├── _border.scss │ │ │ ├── _text.scss │ │ │ ├── _space.scss │ │ │ ├── _radius.scss │ │ │ ├── _color.scss │ │ │ ├── _styles.scss │ │ │ └── _variables.scss │ │ ├── index.scss │ │ └── tools │ │ │ └── functions.scss │ ├── changelog.md │ ├── readme.md │ ├── theme.scss │ ├── variables.scss │ ├── package.json │ └── manifest.json ├── smh-select │ ├── changelog.md │ ├── readme.md │ ├── package.json │ └── components │ │ └── smh-select │ │ └── smh-select.vue ├── z-paging │ ├── components │ │ ├── z-paging │ │ │ ├── config │ │ │ │ └── index.js │ │ │ ├── js │ │ │ │ ├── z-paging-enum.js │ │ │ │ ├── z-paging-config.js │ │ │ │ ├── z-paging-mixin.js │ │ │ │ ├── z-paging-i18n.js │ │ │ │ └── z-paging-utils.js │ │ │ ├── css │ │ │ │ ├── z-paging-static.css │ │ │ │ └── z-paging-main.css │ │ │ ├── wxs │ │ │ │ └── z-paging-renderjs.js │ │ │ └── components │ │ │ │ ├── z-paging-load-more.vue │ │ │ │ └── z-paging-refresh.vue │ │ ├── z-paging-swiper-item │ │ │ └── z-paging-swiper-item.vue │ │ ├── z-paging-empty-view │ │ │ └── z-paging-empty-view.vue │ │ └── z-paging-swiper │ │ │ └── z-paging-swiper.vue │ ├── changelog.md │ ├── readme.md │ └── package.json ├── uni-icons │ ├── components │ │ └── uni-icons │ │ │ ├── uni.ttf │ │ │ ├── uniicons.ttf │ │ │ └── uni-icons.vue │ ├── readme.md │ ├── changelog.md │ └── package.json ├── uni-load-more │ ├── components │ │ └── uni-load-more │ │ │ └── i18n │ │ │ ├── zh-Hans.json │ │ │ ├── zh-Hant.json │ │ │ ├── en.json │ │ │ └── index.js │ ├── readme.md │ ├── changelog.md │ └── package.json ├── hpy-form-select │ ├── changelog.md │ ├── package.json │ ├── readme.md │ └── components │ │ └── hpy-form-select │ │ └── hpy-form-select.vue └── hb-comment │ ├── changelog.md │ ├── package.json │ └── readme.md ├── static ├── x.png ├── add.png ├── wx.png ├── add2.png ├── delete.png ├── focus.png ├── logo.png ├── phone.png ├── upload.png ├── collect.png ├── location.png ├── logo (2).png ├── myIcon │ ├── 1.png │ ├── 2.png │ ├── chat.png │ ├── no.png │ ├── qiu.png │ └── yes.png ├── sign_bg.png ├── un_focus.png ├── imgs │ ├── answer.png │ ├── pwd_icon.png │ ├── close_icon.png │ ├── code_icon.png │ ├── fire_gray.png │ ├── fire_green.png │ ├── fire_white.png │ ├── mobile_icon.png │ ├── moom_gray.png │ ├── moom_green.png │ └── moom_white.png ├── tabber │ ├── home.png │ ├── my.png │ ├── circle.png │ ├── find-pet.png │ ├── my_selected.png │ ├── home_selected.png │ ├── circle_selected.png │ └── find-pet_selected.png ├── un_collect.png ├── img │ └── emoji │ │ ├── 100.gif │ │ ├── 101.gif │ │ ├── 102.gif │ │ ├── 103.gif │ │ ├── 104.gif │ │ ├── 105.gif │ │ ├── 106.gif │ │ ├── 107.gif │ │ ├── 108.gif │ │ ├── 109.gif │ │ ├── 110.gif │ │ ├── 111.gif │ │ ├── 112.gif │ │ ├── 113.gif │ │ ├── 114.gif │ │ ├── 115.gif │ │ ├── 116.gif │ │ ├── 117.gif │ │ ├── 118.gif │ │ ├── 119.gif │ │ ├── 120.gif │ │ ├── 121.gif │ │ ├── 122.gif │ │ ├── 123.gif │ │ ├── 124.gif │ │ ├── 125.gif │ │ ├── 126.gif │ │ ├── 127.gif │ │ ├── 128.gif │ │ ├── 129.gif │ │ ├── 130.gif │ │ ├── 131.gif │ │ ├── 132.gif │ │ ├── 133.gif │ │ ├── 134.gif │ │ ├── 135.gif │ │ ├── 136.gif │ │ ├── 137.gif │ │ ├── 138.gif │ │ ├── 139.gif │ │ ├── 140.gif │ │ ├── 141.gif │ │ ├── 142.gif │ │ ├── 143.gif │ │ ├── 144.gif │ │ ├── 145.gif │ │ ├── 146.gif │ │ ├── 147.gif │ │ ├── 148.gif │ │ ├── 149.gif │ │ ├── 150.gif │ │ ├── 151.gif │ │ ├── 152.gif │ │ ├── 153.gif │ │ ├── 154.gif │ │ ├── 155.gif │ │ ├── 156.gif │ │ ├── 157.gif │ │ ├── 158.gif │ │ ├── 159.gif │ │ ├── 160.gif │ │ ├── 161.gif │ │ ├── 162.gif │ │ ├── 163.gif │ │ ├── 164.gif │ │ ├── 165.gif │ │ ├── 166.gif │ │ ├── 167.gif │ │ ├── 168.gif │ │ ├── 169.gif │ │ ├── 170.gif │ │ ├── 171.gif │ │ ├── 172.gif │ │ ├── 173.gif │ │ ├── 174.gif │ │ ├── 175.gif │ │ ├── 176.gif │ │ ├── 177.gif │ │ ├── 178.gif │ │ ├── 179.gif │ │ ├── 180.gif │ │ ├── 181.gif │ │ ├── 182.gif │ │ ├── 183.gif │ │ ├── 184.gif │ │ ├── 185.gif │ │ ├── 186.gif │ │ ├── 187.gif │ │ ├── 188.gif │ │ ├── 189.gif │ │ ├── 190.gif │ │ ├── 191.gif │ │ ├── 192.gif │ │ ├── 193.gif │ │ ├── 194.gif │ │ ├── 195.gif │ │ ├── 196.gif │ │ ├── 197.gif │ │ ├── 198.gif │ │ ├── 199.gif │ │ ├── 200.png │ │ ├── 201.png │ │ ├── 202.png │ │ ├── 203.png │ │ ├── 204.png │ │ ├── 205.png │ │ ├── 206.png │ │ ├── 207.png │ │ ├── 208.png │ │ ├── 209.png │ │ ├── 210.png │ │ ├── 211.png │ │ ├── 212.png │ │ ├── 213.png │ │ ├── 214.png │ │ ├── 215.png │ │ ├── 216.png │ │ ├── 217.png │ │ ├── 218.png │ │ └── 219.png └── collect(selected).png ├── components ├── .DS_Store ├── axb-checkbox │ ├── .DS_Store │ ├── axb-checkbox-item.vue │ └── axb-checkbox.vue ├── liudx-pickerAddress │ ├── u-mask.vue │ ├── index.vue │ └── u-popup.vue ├── filter-popup │ ├── components │ │ └── mask.vue │ └── detail.md └── citylist │ └── citylist.json ├── __MACOSX └── components │ ├── ._axb-checkbox │ ├── axb-checkbox │ ├── ._.DS_Store │ ├── ._axb-checkbox.vue │ └── ._axb-checkbox-item.vue │ └── ._.DS_Store ├── common ├── config.js ├── WXBizDataCrypt.js └── http.js ├── package.json ├── App.vue ├── main.js ├── store ├── share.js └── index.js ├── uni.scss ├── README.md ├── manifest.json ├── api └── backend.js └── pages.json /imgs/.keep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/index.scss: -------------------------------------------------------------------------------- 1 | @import './styles/index.scss'; 2 | -------------------------------------------------------------------------------- /static/x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/x.png -------------------------------------------------------------------------------- /uni_modules/smh-select/changelog.md: -------------------------------------------------------------------------------- 1 | ## 1.0.2(2021-05-06) 2 | 添加了详细的文档的说明 3 | -------------------------------------------------------------------------------- /static/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/add.png -------------------------------------------------------------------------------- /static/wx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/wx.png -------------------------------------------------------------------------------- /imgs/tybxcx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/tybxcx.png -------------------------------------------------------------------------------- /static/add2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/add2.png -------------------------------------------------------------------------------- /static/delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/delete.png -------------------------------------------------------------------------------- /static/focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/focus.png -------------------------------------------------------------------------------- /static/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/logo.png -------------------------------------------------------------------------------- /static/phone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/phone.png -------------------------------------------------------------------------------- /static/upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/upload.png -------------------------------------------------------------------------------- /static/collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/collect.png -------------------------------------------------------------------------------- /static/location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/location.png -------------------------------------------------------------------------------- /static/logo (2).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/logo (2).png -------------------------------------------------------------------------------- /static/myIcon/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/myIcon/1.png -------------------------------------------------------------------------------- /static/myIcon/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/myIcon/2.png -------------------------------------------------------------------------------- /static/sign_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/sign_bg.png -------------------------------------------------------------------------------- /static/un_focus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/un_focus.png -------------------------------------------------------------------------------- /components/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/components/.DS_Store -------------------------------------------------------------------------------- /static/imgs/answer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/answer.png -------------------------------------------------------------------------------- /static/myIcon/chat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/myIcon/chat.png -------------------------------------------------------------------------------- /static/myIcon/no.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/myIcon/no.png -------------------------------------------------------------------------------- /static/myIcon/qiu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/myIcon/qiu.png -------------------------------------------------------------------------------- /static/myIcon/yes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/myIcon/yes.png -------------------------------------------------------------------------------- /static/tabber/home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/tabber/home.png -------------------------------------------------------------------------------- /static/tabber/my.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/tabber/my.png -------------------------------------------------------------------------------- /static/un_collect.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/un_collect.png -------------------------------------------------------------------------------- /static/img/emoji/100.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/100.gif -------------------------------------------------------------------------------- /static/img/emoji/101.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/101.gif -------------------------------------------------------------------------------- /static/img/emoji/102.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/102.gif -------------------------------------------------------------------------------- /static/img/emoji/103.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/103.gif -------------------------------------------------------------------------------- /static/img/emoji/104.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/104.gif -------------------------------------------------------------------------------- /static/img/emoji/105.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/105.gif -------------------------------------------------------------------------------- /static/img/emoji/106.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/106.gif -------------------------------------------------------------------------------- /static/img/emoji/107.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/107.gif -------------------------------------------------------------------------------- /static/img/emoji/108.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/108.gif -------------------------------------------------------------------------------- /static/img/emoji/109.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/109.gif -------------------------------------------------------------------------------- /static/img/emoji/110.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/110.gif -------------------------------------------------------------------------------- /static/img/emoji/111.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/111.gif -------------------------------------------------------------------------------- /static/img/emoji/112.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/112.gif -------------------------------------------------------------------------------- /static/img/emoji/113.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/113.gif -------------------------------------------------------------------------------- /static/img/emoji/114.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/114.gif -------------------------------------------------------------------------------- /static/img/emoji/115.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/115.gif -------------------------------------------------------------------------------- /static/img/emoji/116.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/116.gif -------------------------------------------------------------------------------- /static/img/emoji/117.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/117.gif -------------------------------------------------------------------------------- /static/img/emoji/118.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/118.gif -------------------------------------------------------------------------------- /static/img/emoji/119.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/119.gif -------------------------------------------------------------------------------- /static/img/emoji/120.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/120.gif -------------------------------------------------------------------------------- /static/img/emoji/121.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/121.gif -------------------------------------------------------------------------------- /static/img/emoji/122.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/122.gif -------------------------------------------------------------------------------- /static/img/emoji/123.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/123.gif -------------------------------------------------------------------------------- /static/img/emoji/124.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/124.gif -------------------------------------------------------------------------------- /static/img/emoji/125.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/125.gif -------------------------------------------------------------------------------- /static/img/emoji/126.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/126.gif -------------------------------------------------------------------------------- /static/img/emoji/127.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/127.gif -------------------------------------------------------------------------------- /static/img/emoji/128.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/128.gif -------------------------------------------------------------------------------- /static/img/emoji/129.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/129.gif -------------------------------------------------------------------------------- /static/img/emoji/130.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/130.gif -------------------------------------------------------------------------------- /static/img/emoji/131.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/131.gif -------------------------------------------------------------------------------- /static/img/emoji/132.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/132.gif -------------------------------------------------------------------------------- /static/img/emoji/133.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/133.gif -------------------------------------------------------------------------------- /static/img/emoji/134.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/134.gif -------------------------------------------------------------------------------- /static/img/emoji/135.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/135.gif -------------------------------------------------------------------------------- /static/img/emoji/136.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/136.gif -------------------------------------------------------------------------------- /static/img/emoji/137.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/137.gif -------------------------------------------------------------------------------- /static/img/emoji/138.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/138.gif -------------------------------------------------------------------------------- /static/img/emoji/139.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/139.gif -------------------------------------------------------------------------------- /static/img/emoji/140.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/140.gif -------------------------------------------------------------------------------- /static/img/emoji/141.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/141.gif -------------------------------------------------------------------------------- /static/img/emoji/142.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/142.gif -------------------------------------------------------------------------------- /static/img/emoji/143.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/143.gif -------------------------------------------------------------------------------- /static/img/emoji/144.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/144.gif -------------------------------------------------------------------------------- /static/img/emoji/145.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/145.gif -------------------------------------------------------------------------------- /static/img/emoji/146.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/146.gif -------------------------------------------------------------------------------- /static/img/emoji/147.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/147.gif -------------------------------------------------------------------------------- /static/img/emoji/148.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/148.gif -------------------------------------------------------------------------------- /static/img/emoji/149.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/149.gif -------------------------------------------------------------------------------- /static/img/emoji/150.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/150.gif -------------------------------------------------------------------------------- /static/img/emoji/151.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/151.gif -------------------------------------------------------------------------------- /static/img/emoji/152.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/152.gif -------------------------------------------------------------------------------- /static/img/emoji/153.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/153.gif -------------------------------------------------------------------------------- /static/img/emoji/154.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/154.gif -------------------------------------------------------------------------------- /static/img/emoji/155.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/155.gif -------------------------------------------------------------------------------- /static/img/emoji/156.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/156.gif -------------------------------------------------------------------------------- /static/img/emoji/157.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/157.gif -------------------------------------------------------------------------------- /static/img/emoji/158.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/158.gif -------------------------------------------------------------------------------- /static/img/emoji/159.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/159.gif -------------------------------------------------------------------------------- /static/img/emoji/160.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/160.gif -------------------------------------------------------------------------------- /static/img/emoji/161.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/161.gif -------------------------------------------------------------------------------- /static/img/emoji/162.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/162.gif -------------------------------------------------------------------------------- /static/img/emoji/163.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/163.gif -------------------------------------------------------------------------------- /static/img/emoji/164.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/164.gif -------------------------------------------------------------------------------- /static/img/emoji/165.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/165.gif -------------------------------------------------------------------------------- /static/img/emoji/166.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/166.gif -------------------------------------------------------------------------------- /static/img/emoji/167.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/167.gif -------------------------------------------------------------------------------- /static/img/emoji/168.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/168.gif -------------------------------------------------------------------------------- /static/img/emoji/169.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/169.gif -------------------------------------------------------------------------------- /static/img/emoji/170.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/170.gif -------------------------------------------------------------------------------- /static/img/emoji/171.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/171.gif -------------------------------------------------------------------------------- /static/img/emoji/172.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/172.gif -------------------------------------------------------------------------------- /static/img/emoji/173.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/173.gif -------------------------------------------------------------------------------- /static/img/emoji/174.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/174.gif -------------------------------------------------------------------------------- /static/img/emoji/175.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/175.gif -------------------------------------------------------------------------------- /static/img/emoji/176.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/176.gif -------------------------------------------------------------------------------- /static/img/emoji/177.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/177.gif -------------------------------------------------------------------------------- /static/img/emoji/178.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/178.gif -------------------------------------------------------------------------------- /static/img/emoji/179.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/179.gif -------------------------------------------------------------------------------- /static/img/emoji/180.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/180.gif -------------------------------------------------------------------------------- /static/img/emoji/181.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/181.gif -------------------------------------------------------------------------------- /static/img/emoji/182.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/182.gif -------------------------------------------------------------------------------- /static/img/emoji/183.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/183.gif -------------------------------------------------------------------------------- /static/img/emoji/184.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/184.gif -------------------------------------------------------------------------------- /static/img/emoji/185.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/185.gif -------------------------------------------------------------------------------- /static/img/emoji/186.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/186.gif -------------------------------------------------------------------------------- /static/img/emoji/187.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/187.gif -------------------------------------------------------------------------------- /static/img/emoji/188.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/188.gif -------------------------------------------------------------------------------- /static/img/emoji/189.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/189.gif -------------------------------------------------------------------------------- /static/img/emoji/190.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/190.gif -------------------------------------------------------------------------------- /static/img/emoji/191.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/191.gif -------------------------------------------------------------------------------- /static/img/emoji/192.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/192.gif -------------------------------------------------------------------------------- /static/img/emoji/193.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/193.gif -------------------------------------------------------------------------------- /static/img/emoji/194.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/194.gif -------------------------------------------------------------------------------- /static/img/emoji/195.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/195.gif -------------------------------------------------------------------------------- /static/img/emoji/196.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/196.gif -------------------------------------------------------------------------------- /static/img/emoji/197.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/197.gif -------------------------------------------------------------------------------- /static/img/emoji/198.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/198.gif -------------------------------------------------------------------------------- /static/img/emoji/199.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/199.gif -------------------------------------------------------------------------------- /static/img/emoji/200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/200.png -------------------------------------------------------------------------------- /static/img/emoji/201.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/201.png -------------------------------------------------------------------------------- /static/img/emoji/202.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/202.png -------------------------------------------------------------------------------- /static/img/emoji/203.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/203.png -------------------------------------------------------------------------------- /static/img/emoji/204.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/204.png -------------------------------------------------------------------------------- /static/img/emoji/205.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/205.png -------------------------------------------------------------------------------- /static/img/emoji/206.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/206.png -------------------------------------------------------------------------------- /static/img/emoji/207.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/207.png -------------------------------------------------------------------------------- /static/img/emoji/208.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/208.png -------------------------------------------------------------------------------- /static/img/emoji/209.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/209.png -------------------------------------------------------------------------------- /static/img/emoji/210.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/210.png -------------------------------------------------------------------------------- /static/img/emoji/211.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/211.png -------------------------------------------------------------------------------- /static/img/emoji/212.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/212.png -------------------------------------------------------------------------------- /static/img/emoji/213.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/213.png -------------------------------------------------------------------------------- /static/img/emoji/214.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/214.png -------------------------------------------------------------------------------- /static/img/emoji/215.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/215.png -------------------------------------------------------------------------------- /static/img/emoji/216.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/216.png -------------------------------------------------------------------------------- /static/img/emoji/217.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/217.png -------------------------------------------------------------------------------- /static/img/emoji/218.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/218.png -------------------------------------------------------------------------------- /static/img/emoji/219.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/img/emoji/219.png -------------------------------------------------------------------------------- /static/imgs/pwd_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/pwd_icon.png -------------------------------------------------------------------------------- /static/tabber/circle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/tabber/circle.png -------------------------------------------------------------------------------- /static/imgs/close_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/close_icon.png -------------------------------------------------------------------------------- /static/imgs/code_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/code_icon.png -------------------------------------------------------------------------------- /static/imgs/fire_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/fire_gray.png -------------------------------------------------------------------------------- /static/imgs/fire_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/fire_green.png -------------------------------------------------------------------------------- /static/imgs/fire_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/fire_white.png -------------------------------------------------------------------------------- /static/imgs/mobile_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/mobile_icon.png -------------------------------------------------------------------------------- /static/imgs/moom_gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/moom_gray.png -------------------------------------------------------------------------------- /static/imgs/moom_green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/moom_green.png -------------------------------------------------------------------------------- /static/imgs/moom_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/imgs/moom_white.png -------------------------------------------------------------------------------- /static/tabber/find-pet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/tabber/find-pet.png -------------------------------------------------------------------------------- /uni_modules/uni-scss/styles/setting/_border.scss: -------------------------------------------------------------------------------- 1 | .uni-border { 2 | border: 1px $uni-border-1 solid; 3 | } -------------------------------------------------------------------------------- /static/collect(selected).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/collect(selected).png -------------------------------------------------------------------------------- /static/tabber/my_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/tabber/my_selected.png -------------------------------------------------------------------------------- /static/tabber/home_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/tabber/home_selected.png -------------------------------------------------------------------------------- /__MACOSX/components/._axb-checkbox: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/__MACOSX/components/._axb-checkbox -------------------------------------------------------------------------------- /components/axb-checkbox/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/components/axb-checkbox/.DS_Store -------------------------------------------------------------------------------- /static/tabber/circle_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/tabber/circle_selected.png -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/config/index.js: -------------------------------------------------------------------------------- 1 | // z-paging全局配置文件,注意避免更新时此文件被覆盖,若被覆盖,可在此文件中右键->点击本地历史记录,找回覆盖前的配置 -------------------------------------------------------------------------------- /static/tabber/find-pet_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/static/tabber/find-pet_selected.png -------------------------------------------------------------------------------- /imgs/2D40AEA666CFE5085044803DD9AB6749.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/2D40AEA666CFE5085044803DD9AB6749.jpg -------------------------------------------------------------------------------- /imgs/3C2B0636550EBEF8070EFECD45C52AEF.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/3C2B0636550EBEF8070EFECD45C52AEF.jpg -------------------------------------------------------------------------------- /imgs/74C88C49D11715596A493C9F355A0BDA.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/74C88C49D11715596A493C9F355A0BDA.jpg -------------------------------------------------------------------------------- /imgs/76DCFD3438255FE4E813B221AB4F2384.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/76DCFD3438255FE4E813B221AB4F2384.jpg -------------------------------------------------------------------------------- /imgs/8F0E8E9BD0189F07233759EC0D5ACC1E.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/8F0E8E9BD0189F07233759EC0D5ACC1E.jpg -------------------------------------------------------------------------------- /imgs/950B1BCB0D7BC2F8B768B40003C445FE.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/950B1BCB0D7BC2F8B768B40003C445FE.jpg -------------------------------------------------------------------------------- /imgs/C5DA1D858766518EDDA70213B0209389.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/C5DA1D858766518EDDA70213B0209389.jpg -------------------------------------------------------------------------------- /imgs/CCB0B465E7899C177114BF637855005D.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/CCB0B465E7899C177114BF637855005D.jpg -------------------------------------------------------------------------------- /imgs/CD31D18331CCFBB5D4FEAD22EF829125.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/CD31D18331CCFBB5D4FEAD22EF829125.jpg -------------------------------------------------------------------------------- /imgs/DF3D15EF052DDC53674240C6940FD8A4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/DF3D15EF052DDC53674240C6940FD8A4.jpg -------------------------------------------------------------------------------- /imgs/EBCEB148A28ECCE784F11D390D0B5F34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/EBCEB148A28ECCE784F11D390D0B5F34.jpg -------------------------------------------------------------------------------- /imgs/F614BFCC86E6BB70496B23DDED8BF809.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/F614BFCC86E6BB70496B23DDED8BF809.jpg -------------------------------------------------------------------------------- /__MACOSX/components/axb-checkbox/._.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/__MACOSX/components/axb-checkbox/._.DS_Store -------------------------------------------------------------------------------- /imgs/0DBA62F1FFCFF7ADE136AEB365D6B4C6 - 副本.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/imgs/0DBA62F1FFCFF7ADE136AEB365D6B4C6 - 副本.jpg -------------------------------------------------------------------------------- /__MACOSX/components/._.DS_Store: -------------------------------------------------------------------------------- 1 | Mac OS X  2Fx @ATTRxx -------------------------------------------------------------------------------- /__MACOSX/components/axb-checkbox/._axb-checkbox.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/__MACOSX/components/axb-checkbox/._axb-checkbox.vue -------------------------------------------------------------------------------- /uni_modules/uni-icons/components/uni-icons/uni.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/uni_modules/uni-icons/components/uni-icons/uni.ttf -------------------------------------------------------------------------------- /__MACOSX/components/axb-checkbox/._axb-checkbox-item.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/__MACOSX/components/axb-checkbox/._axb-checkbox-item.vue -------------------------------------------------------------------------------- /uni_modules/uni-icons/components/uni-icons/uniicons.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/lianyim/pet-circle/HEAD/uni_modules/uni-icons/components/uni-icons/uniicons.ttf -------------------------------------------------------------------------------- /uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hans.json: -------------------------------------------------------------------------------- 1 | { 2 | "uni-load-more.contentdown": "上拉显示更多", 3 | "uni-load-more.contentrefresh": "正在加载...", 4 | "uni-load-more.contentnomore": "没有更多数据了" 5 | } 6 | -------------------------------------------------------------------------------- /uni_modules/uni-load-more/components/uni-load-more/i18n/zh-Hant.json: -------------------------------------------------------------------------------- 1 | { 2 | "uni-load-more.contentdown": "上拉顯示更多", 3 | "uni-load-more.contentrefresh": "正在加載...", 4 | "uni-load-more.contentnomore": "沒有更多數據了" 5 | } 6 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/changelog.md: -------------------------------------------------------------------------------- 1 | ## 1.0.3(2022-01-21) 2 | - 优化 组件示例 3 | ## 1.0.2(2021-11-22) 4 | - 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 5 | ## 1.0.1(2021-11-22) 6 | - 修复 vue3中scss语法兼容问题 7 | ## 1.0.0(2021-11-18) 8 | - init 9 | -------------------------------------------------------------------------------- /uni_modules/hpy-form-select/changelog.md: -------------------------------------------------------------------------------- 1 | ## 0.0.8(2022-02-09) 2 | - 修正value为0,不能显示选中问题,增加隐藏边框、下拉箭头 3 | - 4 | -------------------------------------------------------------------------------- /uni_modules/uni-load-more/components/uni-load-more/i18n/en.json: -------------------------------------------------------------------------------- 1 | { 2 | "uni-load-more.contentdown": "Pull up to show more", 3 | "uni-load-more.contentrefresh": "loading...", 4 | "uni-load-more.contentnomore": "No more data" 5 | } 6 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/readme.md: -------------------------------------------------------------------------------- 1 | `uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 2 | 3 | ### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) 4 | #### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 -------------------------------------------------------------------------------- /uni_modules/uni-icons/readme.md: -------------------------------------------------------------------------------- 1 | ## Icons 图标 2 | > **组件名:uni-icons** 3 | > 代码块: `uIcons` 4 | 5 | 用于展示 icons 图标 。 6 | 7 | ### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) 8 | #### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 9 | -------------------------------------------------------------------------------- /uni_modules/uni-load-more/components/uni-load-more/i18n/index.js: -------------------------------------------------------------------------------- 1 | import en from './en.json' 2 | import zhHans from './zh-Hans.json' 3 | import zhHant from './zh-Hant.json' 4 | export default { 5 | en, 6 | 'zh-Hans': zhHans, 7 | 'zh-Hant': zhHant 8 | } 9 | -------------------------------------------------------------------------------- /common/config.js: -------------------------------------------------------------------------------- 1 | let url_config = "" 2 | 3 | if (process.env.NODE_ENV === 'development'){ 4 | // 开发环境 5 | url_config = "http://127.0.0.1:9998" 6 | } else { 7 | // 生产环境 8 | url_config = "https://xxxxxx" 9 | } 10 | 11 | export default url_config -------------------------------------------------------------------------------- /uni_modules/uni-scss/styles/index.scss: -------------------------------------------------------------------------------- 1 | @import './setting/_variables.scss'; 2 | @import './setting/_border.scss'; 3 | @import './setting/_color.scss'; 4 | @import './setting/_space.scss'; 5 | @import './setting/_radius.scss'; 6 | @import './setting/_text.scss'; 7 | @import './setting/_styles.scss'; 8 | -------------------------------------------------------------------------------- /uni_modules/z-paging/changelog.md: -------------------------------------------------------------------------------- 1 | ## 2.1.3(2022-01-20) 2 | 1.取消空数据图的向上偏移。 3 | 2.修复在部分安卓设备的微信小程序中,滚动到底部时无限触发加载更多的问题。 4 | 3.新增另一种swiper+吸顶的解决方案,可以更流畅实现此效果。 5 | 6 | ## 2.1.2(2022-01-11) 7 | 1.修复在nvue中使用`show-refresher-update-time`布局错乱的问题。 8 | 2.修复在各个小程序平台中使用`show-refresher-update-time`时箭头变形闪动的问题。 9 | -------------------------------------------------------------------------------- /uni_modules/uni-load-more/readme.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ### LoadMore 加载更多 4 | > **组件名:uni-load-more** 5 | > 代码块: `uLoadMore` 6 | 7 | 8 | 用于列表中,做滚动加载使用,展示 loading 的各种状态。 9 | 10 | 11 | ### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-load-more) 12 | #### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 13 | 14 | 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "devDependencies": { 3 | "vue-jsonp": "^2.0.0" 4 | }, 5 | "dependencies": { 6 | "crypto-js": "^4.1.1", 7 | "vue-resource": "^1.5.3" 8 | }, 9 | "id": "ss-select-city", 10 | "name": "城市选择", 11 | "version": "1.0.1", 12 | "description": "城市选择组件", 13 | "keywords": [ 14 | "城市,地区" 15 | ] 16 | } 17 | 18 | -------------------------------------------------------------------------------- /uni_modules/hb-comment/changelog.md: -------------------------------------------------------------------------------- 1 | ## 1.2.2(2022-01-24) 2 | * 去除示例项目中对uView的依赖,精简示例项目代码 3 | * 修复bug 4 | ## 1.2.1(2022-01-24) 5 | * 更新图标,由svg变为png,解决在App中图标不显示,且影响页面排版的问题 6 | ## 1.2.0(2021-11-18) 7 | * 不再依赖uview,与1.1.4相比展开样式有调整,其他完全一致 8 | ## 1.1.4(2021-07-22) 9 | * 降低弹出键盘的延时,显著提升流畅感 10 | ## 1.1.3(2021-07-22) 11 | * 修改发布输入框,从原来的放在页面最底下改为弹出式 12 | ## 1.1.2(2021-07-21) 13 | * 输入框聚焦前滚动到页面底部 14 | ## 1.1.1(2021-07-21) 15 | * 修复了微信小程序中点赞删除等操作失败的问题 16 | ## 1.1.0(2021-07-20) 17 | * 分离插件与接口逻辑 18 | * 支持uni-modules,更方便升级等 19 | * 修复一些问题 20 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/js/z-paging-enum.js: -------------------------------------------------------------------------------- 1 | // [z-paging]枚举 2 | 3 | const Enum = { 4 | //当前加载类型 0-下拉刷新 1-上拉加载更多 5 | LoadingType: { 6 | Refresher: 0, 7 | LoadingMore: 1 8 | }, 9 | //下拉刷新状态 0-默认状态 1.松手立即刷新 2.刷新中 3.刷新结束 10 | Refresher: { 11 | Default: 0, 12 | PullToRefresh: 1, 13 | Loading: 2, 14 | Complete: 3 15 | }, 16 | //底部加载更多状态 0-默认状态 1.加载中 2.没有更多数据 3.加载失败 17 | More: { 18 | Default: 0, 19 | Loading: 1, 20 | NoMore: 2, 21 | Fail: 3 22 | } 23 | } 24 | 25 | module.exports = Enum; 26 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/styles/setting/_text.scss: -------------------------------------------------------------------------------- 1 | @mixin get-styles($k,$c) { 2 | @if $k == size or $k == weight{ 3 | font-#{$k}:#{$c} 4 | }@else{ 5 | #{$k}:#{$c} 6 | } 7 | } 8 | 9 | @each $key, $child in $uni-headings { 10 | /* #ifndef APP-NVUE */ 11 | .uni-#{$key} { 12 | @each $k, $c in $child { 13 | @include get-styles($k,$c) 14 | } 15 | } 16 | /* #endif */ 17 | /* #ifdef APP-NVUE */ 18 | .container .uni-#{$key} { 19 | @each $k, $c in $child { 20 | @include get-styles($k,$c) 21 | } 22 | } 23 | /* #endif */ 24 | } 25 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/js/z-paging-config.js: -------------------------------------------------------------------------------- 1 | // [z-paging]处理main.js中的配置信息工具 2 | 3 | let config = null; 4 | let getedStorage = false; 5 | const storageKey = 'Z-PAGING-CONFIG-STORAGE-KEY' 6 | 7 | function setConfig(value) { 8 | try { 9 | uni.setStorageSync(storageKey, value); 10 | } catch {} 11 | } 12 | 13 | function getConfig() { 14 | try { 15 | if (getedStorage) { 16 | return config; 17 | } 18 | config = uni.getStorageSync(storageKey); 19 | getedStorage = true; 20 | } catch { 21 | return null; 22 | } 23 | } 24 | 25 | module.exports = { 26 | setConfig, 27 | getConfig 28 | }; 29 | -------------------------------------------------------------------------------- /uni_modules/uni-icons/changelog.md: -------------------------------------------------------------------------------- 1 | ## 1.3.2(2021-12-01) 2 | - 优化 示例可复制图标名称 3 | ## 1.3.1(2021-11-23) 4 | - 优化 兼容旧组件 type 值 5 | ## 1.3.0(2021-11-19) 6 | - 新增 更多图标 7 | - 优化 自定义图标使用方式 8 | - 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) 9 | - 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) 10 | ## 1.1.7(2021-11-08) 11 | ## 1.2.0(2021-07-30) 12 | - 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) 13 | ## 1.1.5(2021-05-12) 14 | - 新增 组件示例地址 15 | ## 1.1.4(2021-02-05) 16 | - 调整为uni_modules目录规范 17 | -------------------------------------------------------------------------------- /App.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 30 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | import App from './App' 2 | 3 | import share from './store/share.js' 4 | Vue.mixin(share) 5 | 6 | import store from './store' //引入vuex 7 | // 挂载vuex 8 | Vue.prototype.$store = store; 9 | 10 | import request from './common/http.js' 11 | Vue.prototype.$request = request 12 | 13 | // #ifndef VUE3 14 | import Vue from 'vue' 15 | Vue.config.productionTip = false 16 | App.mpType = 'app' 17 | const app = new Vue({ 18 | ...App, 19 | store 20 | }) 21 | app.$mount() 22 | // #endif 23 | 24 | // #ifdef VUE3 25 | import { createSSRApp } from 'vue' 26 | export function createApp() { 27 | const app = createSSRApp(App) 28 | return { 29 | app 30 | } 31 | } 32 | // #endif -------------------------------------------------------------------------------- /store/share.js: -------------------------------------------------------------------------------- 1 | export default { 2 | data() { 3 | return { 4 | //设置默认的分享参数 5 | share: { 6 | title: '喵喵宠物圈', 7 | path: '/pages/home/index', 8 | imageUrl: '', 9 | desc: '', 10 | content: '' 11 | } 12 | } 13 | }, 14 | onShareAppMessage(res) { 15 | return { 16 | title: this.share.title, 17 | path: this.share.path, 18 | imageUrl: this.share.imageUrl, 19 | desc: this.share.desc, 20 | content: this.share.content, 21 | success(res) { 22 | uni.showToast({ 23 | title: '分享成功' 24 | }) 25 | }, 26 | fail(res) { 27 | uni.showToast({ 28 | title: '分享失败', 29 | icon: 'none' 30 | }) 31 | } 32 | } 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/css/z-paging-static.css: -------------------------------------------------------------------------------- 1 | /* [z-paging]公用的静态css资源 */ 2 | 3 | .zp-line-loading-image { 4 | margin-right: 8rpx; 5 | width: 28rpx; 6 | height: 28rpx; 7 | /* #ifndef APP-NVUE */ 8 | animation: loading-flower 1s steps(12) infinite; 9 | /* #endif */ 10 | color: #666666; 11 | } 12 | 13 | .zp-loading-image-ios{ 14 | width: 20px; 15 | height: 20px; 16 | } 17 | 18 | .zp-loading-image-android{ 19 | width: 32rpx; 20 | height: 32rpx; 21 | } 22 | 23 | @keyframes loading-flower { 24 | 0% { 25 | -webkit-transform: rotate(0deg); 26 | transform: rotate(0deg); 27 | } 28 | to { 29 | -webkit-transform: rotate(1turn); 30 | transform: rotate(1turn); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/theme.scss: -------------------------------------------------------------------------------- 1 | // 间距基础倍数 2 | $uni-space-root: 2; 3 | // 边框半径默认值 4 | $uni-radius-root:5px; 5 | // 主色 6 | $uni-primary: #2979ff; 7 | // 辅助色 8 | $uni-success: #4cd964; 9 | // 警告色 10 | $uni-warning: #f0ad4e; 11 | // 错误色 12 | $uni-error: #dd524d; 13 | // 描述色 14 | $uni-info: #909399; 15 | // 中性色 16 | $uni-main-color: #303133; 17 | $uni-base-color: #606266; 18 | $uni-secondary-color: #909399; 19 | $uni-extra-color: #C0C4CC; 20 | // 背景色 21 | $uni-bg-color: #f5f5f5; 22 | // 边框颜色 23 | $uni-border-1: #DCDFE6; 24 | $uni-border-2: #E4E7ED; 25 | $uni-border-3: #EBEEF5; 26 | $uni-border-4: #F2F6FC; 27 | 28 | // 常规色 29 | $uni-black: #000000; 30 | $uni-white: #ffffff; 31 | $uni-transparent: rgba($color: #000000, $alpha: 0); 32 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/styles/tools/functions.scss: -------------------------------------------------------------------------------- 1 | // 合并 map 2 | @function map-deep-merge($parent-map, $child-map){ 3 | $result: $parent-map; 4 | @each $key, $child in $child-map { 5 | $parent-has-key: map-has-key($result, $key); 6 | $parent-value: map-get($result, $key); 7 | $parent-type: type-of($parent-value); 8 | $child-type: type-of($child); 9 | $parent-is-map: $parent-type == map; 10 | $child-is-map: $child-type == map; 11 | 12 | @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ 13 | $result: map-merge($result, ( $key: $child )); 14 | }@else { 15 | $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); 16 | } 17 | } 18 | @return $result; 19 | }; 20 | -------------------------------------------------------------------------------- /uni_modules/uni-load-more/changelog.md: -------------------------------------------------------------------------------- 1 | ## 1.3.3(2022-01-20) 2 | - 新增 showText属性 ,是否显示文本 3 | ## 1.3.2(2022-01-19) 4 | - 修复 nvue 平台下不显示文本的bug 5 | ## 1.3.1(2022-01-19) 6 | - 修复 微信小程序平台样式选择器报警告的问题 7 | ## 1.3.0(2021-11-19) 8 | - 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) 9 | - 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-load-more](https://uniapp.dcloud.io/component/uniui/uni-load-more) 10 | ## 1.2.1(2021-08-24) 11 | - 新增 支持国际化 12 | ## 1.2.0(2021-07-30) 13 | - 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) 14 | ## 1.1.8(2021-05-12) 15 | - 新增 组件示例地址 16 | ## 1.1.7(2021-03-30) 17 | - 修复 uni-load-more 在首页使用时,h5 平台报 'uni is not defined' 的 bug 18 | ## 1.1.6(2021-02-05) 19 | - 调整为uni_modules目录规范 20 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/js/z-paging-mixin.js: -------------------------------------------------------------------------------- 1 | // [z-paging]使用页面滚动时引入此mixin,用于监听和处理onPullDownRefresh等页面生命周期方法 2 | 3 | const ZPagingMixin = { 4 | onPullDownRefresh() { 5 | if (this.isPagingRefNotFound()) { 6 | return; 7 | } 8 | this.$refs.paging.reload(); 9 | }, 10 | onPageScroll(e) { 11 | if (this.isPagingRefNotFound()) { 12 | return; 13 | } 14 | this.$refs.paging.updatePageScrollTop(e.scrollTop); 15 | if (e.scrollTop < 10) { 16 | this.$refs.paging.doChatRecordLoadMore(); 17 | } 18 | }, 19 | onReachBottom() { 20 | if (this.isPagingRefNotFound()) { 21 | return; 22 | } 23 | this.$refs.paging.doLoadMore(); 24 | }, 25 | methods: { 26 | isPagingRefNotFound() { 27 | return !this.$refs.paging || this.$refs.paging === undefined; 28 | } 29 | } 30 | } 31 | 32 | export default ZPagingMixin; 33 | -------------------------------------------------------------------------------- /store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | Vue.use(Vuex) 4 | const store = new Vuex.Store({ 5 | state: { 6 | hasLogin: false, //用户是否登录 7 | userInfo: {} //用户数据 8 | }, 9 | //mutations定义同步操作的方法 10 | mutations: { 11 | // 登录 12 | login(state, user) { 13 | //登录状态为已登录 14 | state.hasLogin = true 15 | state.userInfo = user 16 | //储存用户数据到本地 17 | uni.setStorage({ 18 | key: 'userInfo', 19 | data: user, 20 | }); 21 | console.log('登陆成功') 22 | console.log(state.hasLogin, state.userInfo) 23 | }, 24 | 25 | // 退出登录 26 | logout(state, user) { 27 | //登录状态为未登录 28 | state.hasLogin = false 29 | state.userInfo = {} 30 | //删除本地储存 31 | uni.removeStorage({ 32 | key: 'userInfo', 33 | }) 34 | console.log('退出登录') 35 | console.log(state.hasLogin, state.userInfo) 36 | } 37 | }, 38 | actions: { 39 | 40 | } 41 | }) 42 | export default store 43 | -------------------------------------------------------------------------------- /common/WXBizDataCrypt.js: -------------------------------------------------------------------------------- 1 | var crypto = require('crypto') 2 | 3 | function WXBizDataCrypt(appId, sessionKey) { 4 | this.appId = appId 5 | this.sessionKey = sessionKey 6 | } 7 | 8 | WXBizDataCrypt.prototype.decryptData = function (encryptedData, iv) { 9 | // base64 decode 10 | var sessionKey = new Buffer(this.sessionKey, 'base64') 11 | encryptedData = new Buffer(encryptedData, 'base64') 12 | iv = new Buffer(iv, 'base64') 13 | 14 | try { 15 | // 解密 16 | var decipher = crypto.createDecipheriv('aes-128-cbc', sessionKey, iv) 17 | // 设置自动 padding 为 true,删除填充补位 18 | decipher.setAutoPadding(true) 19 | var decoded = decipher.update(encryptedData, 'binary', 'utf8') 20 | decoded += decipher.final('utf8') 21 | 22 | decoded = JSON.parse(decoded) 23 | 24 | } catch (err) { 25 | throw new Error('Illegal Buffer') 26 | } 27 | 28 | if (decoded.watermark.appid !== this.appId) { 29 | throw new Error('Illegal Buffer') 30 | } 31 | 32 | return decoded 33 | } 34 | 35 | module.exports = WXBizDataCrypt 36 | -------------------------------------------------------------------------------- /uni_modules/smh-select/readme.md: -------------------------------------------------------------------------------- 1 | # smh-select 下拉多条件筛选 2 | # ### 安装方式 3 | 4 | 本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范, 5 | `HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`, 6 | 如直接使用不行,则还是需要 7 | 8 | ### 基本用法 9 | 10 | 在 ``template`` 中的使用 11 | 12 | ```html 13 | 14 | 15 | data() { 16 | return { 17 | list:[ 18 | { 19 | title:'距离', 20 | data:[ 21 | {text:'1KM',identity:1,status:false}, 22 | {text:'2KM',identity:2,status:false}, 23 | {text:'3KM',identity:3,status:false}, 24 | {text:'4KM',identity:4,status:false}, 25 | ] 26 | }, 27 | { 28 | title:'排序', 29 | data:[ 30 | {text:'好评优先',identity:1,status:false}, 31 | {text:'销量优先',identity:2,status:false}, 32 | {text:'价格优先',identity:3,status:false}, 33 | {text:'配送优先',identity:4,status:false}, 34 | ] 35 | }, 36 | { 37 | title:'时间', 38 | data:[ 39 | {text:'三日内',identity:1,status:false}, 40 | {text:'七日内',identity:2,status:false}, 41 | {text:'一个月内',identity:3,status:false} 42 | ] 43 | }, 44 | ] 45 | } 46 | } 47 | 48 | @change对应的方法为选中值的集合,每选择一个选项,都会触发change事件,并返回全部筛选项,可在控制台Console查看返回数据 49 | methods: { 50 | show(e){ 51 | console.log(e) 52 | } 53 | } 54 | 55 | identity可以理解为数据的id,因为获取数据之后,肯定要将id传入后台以获取返回数据,status为控制页面是否选中的状态 -------------------------------------------------------------------------------- /uni_modules/uni-scss/styles/setting/_space.scss: -------------------------------------------------------------------------------- 1 | 2 | @mixin fn($space,$direction,$size,$n) { 3 | @if $n { 4 | #{$space}-#{$direction}: #{$size*$uni-space-root}px 5 | } @else { 6 | #{$space}-#{$direction}: #{-$size*$uni-space-root}px 7 | } 8 | } 9 | @mixin get-styles($direction,$i,$space,$n){ 10 | @if $direction == t { 11 | @include fn($space, top,$i,$n); 12 | } 13 | @if $direction == r { 14 | @include fn($space, right,$i,$n); 15 | } 16 | @if $direction == b { 17 | @include fn($space, bottom,$i,$n); 18 | } 19 | @if $direction == l { 20 | @include fn($space, left,$i,$n); 21 | } 22 | @if $direction == x { 23 | @include fn($space, left,$i,$n); 24 | @include fn($space, right,$i,$n); 25 | } 26 | @if $direction == y { 27 | @include fn($space, top,$i,$n); 28 | @include fn($space, bottom,$i,$n); 29 | } 30 | @if $direction == a { 31 | @if $n { 32 | #{$space}:#{$i*$uni-space-root}px; 33 | } @else { 34 | #{$space}:#{-$i*$uni-space-root}px; 35 | } 36 | } 37 | } 38 | 39 | @each $orientation in m,p { 40 | $space: margin; 41 | @if $orientation == m { 42 | $space: margin; 43 | } @else { 44 | $space: padding; 45 | } 46 | @for $i from 0 through 16 { 47 | @each $direction in t, r, b, l, x, y, a { 48 | .uni-#{$orientation}#{$direction}-#{$i} { 49 | @include get-styles($direction,$i,$space,true); 50 | } 51 | .uni-#{$orientation}#{$direction}-n#{$i} { 52 | @include get-styles($direction,$i,$space,false); 53 | } 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /uni_modules/uni-scss/styles/setting/_radius.scss: -------------------------------------------------------------------------------- 1 | @mixin radius($r,$d:null ,$important: false){ 2 | $radius-value:map-get($uni-radius, $r) if($important, !important, null); 3 | // Key exists within the $uni-radius variable 4 | @if (map-has-key($uni-radius, $r) and $d){ 5 | @if $d == t { 6 | border-top-left-radius:$radius-value; 7 | border-top-right-radius:$radius-value; 8 | }@else if $d == r { 9 | border-top-right-radius:$radius-value; 10 | border-bottom-right-radius:$radius-value; 11 | }@else if $d == b { 12 | border-bottom-left-radius:$radius-value; 13 | border-bottom-right-radius:$radius-value; 14 | }@else if $d == l { 15 | border-top-left-radius:$radius-value; 16 | border-bottom-left-radius:$radius-value; 17 | }@else if $d == tl { 18 | border-top-left-radius:$radius-value; 19 | }@else if $d == tr { 20 | border-top-right-radius:$radius-value; 21 | }@else if $d == br { 22 | border-bottom-right-radius:$radius-value; 23 | }@else if $d == bl { 24 | border-bottom-left-radius:$radius-value; 25 | } 26 | }@else{ 27 | border-radius:$radius-value; 28 | } 29 | } 30 | 31 | @each $key, $child in $uni-radius { 32 | @if($key){ 33 | .uni-radius-#{"" + $key} { 34 | @include radius($key) 35 | } 36 | }@else{ 37 | .uni-radius { 38 | @include radius($key) 39 | } 40 | } 41 | } 42 | 43 | @each $direction in t, r, b, l,tl, tr, br, bl { 44 | @each $key, $child in $uni-radius { 45 | @if($key){ 46 | .uni-radius-#{"" + $direction}-#{"" + $key} { 47 | @include radius($key,$direction,false) 48 | } 49 | }@else{ 50 | .uni-radius-#{$direction} { 51 | @include radius($key,$direction,false) 52 | } 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/styles/setting/_color.scss: -------------------------------------------------------------------------------- 1 | 2 | // TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 3 | // @mixin get-styles($k,$c) { 4 | // @if $k == size or $k == weight{ 5 | // font-#{$k}:#{$c} 6 | // }@else{ 7 | // #{$k}:#{$c} 8 | // } 9 | // } 10 | $uni-ui-color:( 11 | // 主色 12 | primary: $uni-primary, 13 | primary-disable: $uni-primary-disable, 14 | primary-light: $uni-primary-light, 15 | // 辅助色 16 | success: $uni-success, 17 | success-disable: $uni-success-disable, 18 | success-light: $uni-success-light, 19 | warning: $uni-warning, 20 | warning-disable: $uni-warning-disable, 21 | warning-light: $uni-warning-light, 22 | error: $uni-error, 23 | error-disable: $uni-error-disable, 24 | error-light: $uni-error-light, 25 | info: $uni-info, 26 | info-disable: $uni-info-disable, 27 | info-light: $uni-info-light, 28 | // 中性色 29 | main-color: $uni-main-color, 30 | base-color: $uni-base-color, 31 | secondary-color: $uni-secondary-color, 32 | extra-color: $uni-extra-color, 33 | // 背景色 34 | bg-color: $uni-bg-color, 35 | // 边框颜色 36 | border-1: $uni-border-1, 37 | border-2: $uni-border-2, 38 | border-3: $uni-border-3, 39 | border-4: $uni-border-4, 40 | // 黑色 41 | black:$uni-black, 42 | // 白色 43 | white:$uni-white, 44 | // 透明 45 | transparent:$uni-transparent 46 | ) !default; 47 | @each $key, $child in $uni-ui-color { 48 | .uni-#{"" + $key} { 49 | color: $child; 50 | } 51 | .uni-#{"" + $key}-bg { 52 | background-color: $child; 53 | } 54 | } 55 | .uni-shadow-sm { 56 | box-shadow: $uni-shadow-sm; 57 | } 58 | .uni-shadow-base { 59 | box-shadow: $uni-shadow-base; 60 | } 61 | .uni-shadow-lg { 62 | box-shadow: $uni-shadow-lg; 63 | } 64 | .uni-mask { 65 | background-color:$uni-mask; 66 | } 67 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/wxs/z-paging-renderjs.js: -------------------------------------------------------------------------------- 1 | // [z-paging]使用renderjs在app-vue和h5中对touchmove事件冒泡进行处理 2 | 3 | import zUtils from '../js/z-paging-utils' 4 | var data = { 5 | renderScrollTop: 0, 6 | renderUsePageScroll: false, 7 | renderIsIos: uni.getSystemInfoSync().platform === 'ios', 8 | startY: 0, 9 | isTouchFromZPaging: false 10 | } 11 | 12 | export default { 13 | mounted() { 14 | this._handleTouch(); 15 | }, 16 | methods: { 17 | //接收逻辑层发送的数据 18 | renderPropScrollTopChange(newVal, oldVal, ownerVm, vm) { 19 | data.renderScrollTop = newVal; 20 | }, 21 | renderPropUsePageScrollChange(newVal, oldVal, ownerVm, vm) { 22 | if(newVal !== -1){ 23 | data.renderUsePageScroll = newVal; 24 | } 25 | }, 26 | //拦截处理touch事件 27 | _handleTouch() { 28 | if (window && !window.$zPagingRenderJsInited) { 29 | window.$zPagingRenderJsInited = true; 30 | window.addEventListener('touchstart', this._handleTouchstart, { 31 | passive: true 32 | }) 33 | window.addEventListener('touchmove', this._handleTouchmove, { 34 | passive: false 35 | }) 36 | } 37 | }, 38 | _handleTouchstart(e) { 39 | const touch = zUtils.getCommonTouch(e); 40 | data.startY = touch.touchY; 41 | data.isTouchFromZPaging = zUtils.getTouchFromZPaging(e.target); 42 | }, 43 | _handleTouchmove(e) { 44 | const touch = zUtils.getCommonTouch(e); 45 | var moveY = touch.touchY - data.startY; 46 | if ((data.isTouchFromZPaging && data.renderScrollTop < 1 && moveY > 0) || (data.isTouchFromZPaging && data.renderIsIos && !data.renderUsePageScroll && moveY < 0)) { 47 | if (e.cancelable && !e.defaultPrevented) { 48 | e.preventDefault(); 49 | } 50 | } 51 | }, 52 | 53 | } 54 | }; 55 | -------------------------------------------------------------------------------- /uni_modules/smh-select/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "smh-select", 3 | "displayName": "smh-select 下拉多条件筛选", 4 | "version": "1.0.2", 5 | "description": "列表筛选组件,多条件筛选,提供简洁的数据返回格式", 6 | "keywords": [ 7 | "smh-select", 8 | "多条件筛选", 9 | "下拉筛选" 10 | ], 11 | "repository": "", 12 | "engines": { 13 | "HBuilderX": "^3.1.0" 14 | }, 15 | "dcloudext": { 16 | "category": [ 17 | "前端组件", 18 | "通用组件" 19 | ], 20 | "sale": { 21 | "regular": { 22 | "price": "0.00" 23 | }, 24 | "sourcecode": { 25 | "price": "0.00" 26 | } 27 | }, 28 | "contact": { 29 | "qq": "" 30 | }, 31 | "declaration": { 32 | "ads": "无", 33 | "data": "插件不采集任何数据", 34 | "permissions": "无" 35 | }, 36 | "npmurl": "" 37 | }, 38 | "uni_modules": { 39 | "dependencies": [], 40 | "encrypt": [], 41 | "platforms": { 42 | "cloud": { 43 | "tcb": "y", 44 | "aliyun": "y" 45 | }, 46 | "client": { 47 | "App": { 48 | "app-vue": "u", 49 | "app-nvue": "u" 50 | }, 51 | "H5-mobile": { 52 | "Safari": "y", 53 | "Android Browser": "y", 54 | "微信浏览器(Android)": "y", 55 | "QQ浏览器(Android)": "y" 56 | }, 57 | "H5-pc": { 58 | "Chrome": "y", 59 | "IE": "y", 60 | "Edge": "y", 61 | "Firefox": "y", 62 | "Safari": "y" 63 | }, 64 | "小程序": { 65 | "微信": "y", 66 | "阿里": "u", 67 | "百度": "u", 68 | "字节跳动": "u", 69 | "QQ": "y" 70 | }, 71 | "快应用": { 72 | "华为": "u", 73 | "联盟": "u" 74 | } 75 | } 76 | } 77 | } 78 | } -------------------------------------------------------------------------------- /uni_modules/uni-scss/variables.scss: -------------------------------------------------------------------------------- 1 | @import './styles/setting/_variables.scss'; 2 | // 间距基础倍数 3 | $uni-space-root: 2; 4 | // 边框半径默认值 5 | $uni-radius-root:5px; 6 | 7 | // 主色 8 | $uni-primary: #2979ff; 9 | $uni-primary-disable:mix(#fff,$uni-primary,50%); 10 | $uni-primary-light: mix(#fff,$uni-primary,80%); 11 | 12 | // 辅助色 13 | // 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 14 | $uni-success: #18bc37; 15 | $uni-success-disable:mix(#fff,$uni-success,50%); 16 | $uni-success-light: mix(#fff,$uni-success,80%); 17 | 18 | $uni-warning: #f3a73f; 19 | $uni-warning-disable:mix(#fff,$uni-warning,50%); 20 | $uni-warning-light: mix(#fff,$uni-warning,80%); 21 | 22 | $uni-error: #e43d33; 23 | $uni-error-disable:mix(#fff,$uni-error,50%); 24 | $uni-error-light: mix(#fff,$uni-error,80%); 25 | 26 | $uni-info: #8f939c; 27 | $uni-info-disable:mix(#fff,$uni-info,50%); 28 | $uni-info-light: mix(#fff,$uni-info,80%); 29 | 30 | // 中性色 31 | // 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 32 | $uni-main-color: #3a3a3a; // 主要文字 33 | $uni-base-color: #6a6a6a; // 常规文字 34 | $uni-secondary-color: #909399; // 次要文字 35 | $uni-extra-color: #c7c7c7; // 辅助说明 36 | 37 | // 边框颜色 38 | $uni-border-1: #F0F0F0; 39 | $uni-border-2: #EDEDED; 40 | $uni-border-3: #DCDCDC; 41 | $uni-border-4: #B9B9B9; 42 | 43 | // 常规色 44 | $uni-black: #000000; 45 | $uni-white: #ffffff; 46 | $uni-transparent: rgba($color: #000000, $alpha: 0); 47 | 48 | // 背景色 49 | $uni-bg-color: #f7f7f7; 50 | 51 | /* 水平间距 */ 52 | $uni-spacing-sm: 8px; 53 | $uni-spacing-base: 15px; 54 | $uni-spacing-lg: 30px; 55 | 56 | // 阴影 57 | $uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); 58 | $uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); 59 | $uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); 60 | 61 | // 蒙版 62 | $uni-mask: rgba($color: #000000, $alpha: 0.4); 63 | -------------------------------------------------------------------------------- /uni_modules/hb-comment/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "hb-comment", 3 | "displayName": "评论列表,回复,点赞,删除,留言板", 4 | "version": "1.2.2", 5 | "description": "评论列表,回复,点赞,删除,留言板", 6 | "keywords": [ 7 | "评论列表", 8 | "评论回复", 9 | "评论点赞", 10 | "评论删除", 11 | "留言板" 12 | ], 13 | "repository": "", 14 | "engines": { 15 | "HBuilderX": "^3.1.0" 16 | }, 17 | "dcloudext": { 18 | "category": [ 19 | "前端组件", 20 | "通用组件" 21 | ], 22 | "sale": { 23 | "regular": { 24 | "price": "0.00" 25 | }, 26 | "sourcecode": { 27 | "price": "0.00" 28 | } 29 | }, 30 | "contact": { 31 | "qq": "" 32 | }, 33 | "declaration": { 34 | "ads": "无", 35 | "data": "插件不采集任何数据", 36 | "permissions": "无" 37 | }, 38 | "npmurl": "" 39 | }, 40 | "uni_modules": { 41 | "dependencies": [], 42 | "encrypt": [], 43 | "platforms": { 44 | "cloud": { 45 | "tcb": "y", 46 | "aliyun": "y" 47 | }, 48 | "client": { 49 | "App": { 50 | "app-vue": "y", 51 | "app-nvue": "y" 52 | }, 53 | "H5-mobile": { 54 | "Safari": "y", 55 | "Android Browser": "y", 56 | "微信浏览器(Android)": "y", 57 | "QQ浏览器(Android)": "y" 58 | }, 59 | "H5-pc": { 60 | "Chrome": "y", 61 | "IE": "y", 62 | "Edge": "y", 63 | "Firefox": "y", 64 | "Safari": "y" 65 | }, 66 | "小程序": { 67 | "微信": "y", 68 | "阿里": "y", 69 | "百度": "y", 70 | "字节跳动": "y", 71 | "QQ": "y" 72 | }, 73 | "快应用": { 74 | "华为": "y", 75 | "联盟": "y" 76 | }, 77 | "Vue": { 78 | "vue2": "y", 79 | "vue3": "y" 80 | } 81 | } 82 | } 83 | } 84 | } -------------------------------------------------------------------------------- /uni_modules/hpy-form-select/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "hpy-form-select", 3 | "displayName": "picker选择器、下拉框,选择器", 4 | "version": "0.0.8", 5 | "description": "Picker选择器,下拉框,选择器", 6 | "keywords": [ 7 | "form-select", 8 | "picker" 9 | ], 10 | "repository": "", 11 | "engines": { 12 | "HBuilderX": "" 13 | }, 14 | "directories": { 15 | "example": "" 16 | }, 17 | "dcloudext": { 18 | "category": [ 19 | "前端组件", 20 | "通用组件" 21 | ], 22 | "sale": { 23 | "regular": { 24 | "price": "0.00" 25 | }, 26 | "sourcecode": { 27 | "price": "0.00" 28 | } 29 | }, 30 | "contact": { 31 | "qq": "" 32 | }, 33 | "declaration": { 34 | "ads": "无", 35 | "data": "无", 36 | "permissions": "无" 37 | }, 38 | "npmurl": "" 39 | }, 40 | "uni_modules": { 41 | "dependencies": [ 42 | "uni-load-more" 43 | ], 44 | "encrypt": [], 45 | "platforms": { 46 | "cloud": { 47 | "tcb": "y", 48 | "aliyun": "y" 49 | }, 50 | "client": { 51 | "App": { 52 | "app-vue": "y", 53 | "app-nvue": "y" 54 | }, 55 | "H5-mobile": { 56 | "Safari": "y", 57 | "Android Browser": "y", 58 | "微信浏览器(Android)": "y", 59 | "QQ浏览器(Android)": "y" 60 | }, 61 | "H5-pc": { 62 | "Chrome": "y", 63 | "IE": "y", 64 | "Edge": "y", 65 | "Firefox": "y", 66 | "Safari": "y" 67 | }, 68 | "小程序": { 69 | "微信": "y", 70 | "阿里": "u", 71 | "百度": "y", 72 | "字节跳动": "y", 73 | "QQ": "y" 74 | }, 75 | "快应用": { 76 | "华为": "y", 77 | "联盟": "u" 78 | }, 79 | "Vue": { 80 | "vue2": "y", 81 | "vue3": "y" 82 | } 83 | } 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /uni.scss: -------------------------------------------------------------------------------- 1 | /** 2 | * 这里是uni-app内置的常用样式变量 3 | * 4 | * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 5 | * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App 6 | * 7 | */ 8 | 9 | /** 10 | * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 11 | * 12 | * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 13 | */ 14 | 15 | /* 颜色变量 */ 16 | 17 | /* 行为相关颜色 */ 18 | $uni-color-primary: #007aff; 19 | $uni-color-success: #4cd964; 20 | $uni-color-warning: #f0ad4e; 21 | $uni-color-error: #dd524d; 22 | 23 | /* 文字基本颜色 */ 24 | $uni-text-color:#333;//基本色 25 | $uni-text-color-inverse:#fff;//反色 26 | $uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 27 | $uni-text-color-placeholder: #808080; 28 | $uni-text-color-disable:#c0c0c0; 29 | 30 | /* 背景颜色 */ 31 | $uni-bg-color:#ffffff; 32 | $uni-bg-color-grey:#f8f8f8; 33 | $uni-bg-color-hover:#f1f1f1;//点击状态颜色 34 | $uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 35 | 36 | /* 边框颜色 */ 37 | $uni-border-color:#c8c7cc; 38 | 39 | /* 尺寸变量 */ 40 | 41 | /* 文字尺寸 */ 42 | $uni-font-size-sm:12px; 43 | $uni-font-size-base:14px; 44 | $uni-font-size-lg:16; 45 | 46 | /* 图片尺寸 */ 47 | $uni-img-size-sm:20px; 48 | $uni-img-size-base:26px; 49 | $uni-img-size-lg:40px; 50 | 51 | /* Border Radius */ 52 | $uni-border-radius-sm: 2px; 53 | $uni-border-radius-base: 3px; 54 | $uni-border-radius-lg: 6px; 55 | $uni-border-radius-circle: 50%; 56 | 57 | /* 水平间距 */ 58 | $uni-spacing-row-sm: 5px; 59 | $uni-spacing-row-base: 10px; 60 | $uni-spacing-row-lg: 15px; 61 | 62 | /* 垂直间距 */ 63 | $uni-spacing-col-sm: 4px; 64 | $uni-spacing-col-base: 8px; 65 | $uni-spacing-col-lg: 12px; 66 | 67 | /* 透明度 */ 68 | $uni-opacity-disabled: 0.3; // 组件禁用态的透明度 69 | 70 | /* 文章场景相关 */ 71 | $uni-color-title: #2C405A; // 文章标题颜色 72 | $uni-font-size-title:20px; 73 | $uni-color-subtitle: #555555; // 二级标题颜色 74 | $uni-font-size-subtitle:26px; 75 | $uni-color-paragraph: #3F536E; // 文章段落颜色 76 | $uni-font-size-paragraph:15px; 77 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "uni-scss", 3 | "displayName": "uni-scss 辅助样式", 4 | "version": "1.0.3", 5 | "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", 6 | "keywords": [ 7 | "uni-scss", 8 | "uni-ui", 9 | "辅助样式" 10 | ], 11 | "repository": "https://github.com/dcloudio/uni-ui", 12 | "engines": { 13 | "HBuilderX": "^3.1.0" 14 | }, 15 | "dcloudext": { 16 | "category": [ 17 | "JS SDK", 18 | "通用 SDK" 19 | ], 20 | "sale": { 21 | "regular": { 22 | "price": "0.00" 23 | }, 24 | "sourcecode": { 25 | "price": "0.00" 26 | } 27 | }, 28 | "contact": { 29 | "qq": "" 30 | }, 31 | "declaration": { 32 | "ads": "无", 33 | "data": "无", 34 | "permissions": "无" 35 | }, 36 | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" 37 | }, 38 | "uni_modules": { 39 | "dependencies": [], 40 | "encrypt": [], 41 | "platforms": { 42 | "cloud": { 43 | "tcb": "y", 44 | "aliyun": "y" 45 | }, 46 | "client": { 47 | "App": { 48 | "app-vue": "y", 49 | "app-nvue": "u" 50 | }, 51 | "H5-mobile": { 52 | "Safari": "y", 53 | "Android Browser": "y", 54 | "微信浏览器(Android)": "y", 55 | "QQ浏览器(Android)": "y" 56 | }, 57 | "H5-pc": { 58 | "Chrome": "y", 59 | "IE": "y", 60 | "Edge": "y", 61 | "Firefox": "y", 62 | "Safari": "y" 63 | }, 64 | "小程序": { 65 | "微信": "y", 66 | "阿里": "y", 67 | "百度": "y", 68 | "字节跳动": "y", 69 | "QQ": "y" 70 | }, 71 | "快应用": { 72 | "华为": "n", 73 | "联盟": "n" 74 | }, 75 | "Vue": { 76 | "vue2": "y", 77 | "vue3": "y" 78 | } 79 | } 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /uni_modules/uni-icons/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "uni-icons", 3 | "displayName": "uni-icons 图标", 4 | "version": "1.3.2", 5 | "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", 6 | "keywords": [ 7 | "uni-ui", 8 | "uniui", 9 | "icon", 10 | "图标" 11 | ], 12 | "repository": "https://github.com/dcloudio/uni-ui", 13 | "engines": { 14 | "HBuilderX": "^3.2.14" 15 | }, 16 | "directories": { 17 | "example": "../../temps/example_temps" 18 | }, 19 | "dcloudext": { 20 | "category": [ 21 | "前端组件", 22 | "通用组件" 23 | ], 24 | "sale": { 25 | "regular": { 26 | "price": "0.00" 27 | }, 28 | "sourcecode": { 29 | "price": "0.00" 30 | } 31 | }, 32 | "contact": { 33 | "qq": "" 34 | }, 35 | "declaration": { 36 | "ads": "无", 37 | "data": "无", 38 | "permissions": "无" 39 | }, 40 | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" 41 | }, 42 | "uni_modules": { 43 | "dependencies": ["uni-scss"], 44 | "encrypt": [], 45 | "platforms": { 46 | "cloud": { 47 | "tcb": "y", 48 | "aliyun": "y" 49 | }, 50 | "client": { 51 | "App": { 52 | "app-vue": "y", 53 | "app-nvue": "y" 54 | }, 55 | "H5-mobile": { 56 | "Safari": "y", 57 | "Android Browser": "y", 58 | "微信浏览器(Android)": "y", 59 | "QQ浏览器(Android)": "y" 60 | }, 61 | "H5-pc": { 62 | "Chrome": "y", 63 | "IE": "y", 64 | "Edge": "y", 65 | "Firefox": "y", 66 | "Safari": "y" 67 | }, 68 | "小程序": { 69 | "微信": "y", 70 | "阿里": "y", 71 | "百度": "y", 72 | "字节跳动": "y", 73 | "QQ": "y" 74 | }, 75 | "快应用": { 76 | "华为": "u", 77 | "联盟": "u" 78 | }, 79 | "Vue": { 80 | "vue2": "y", 81 | "vue3": "y" 82 | } 83 | } 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /uni_modules/uni-load-more/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "uni-load-more", 3 | "displayName": "uni-load-more 加载更多", 4 | "version": "1.3.3", 5 | "description": "LoadMore 组件,常用在列表里面,做滚动加载使用。", 6 | "keywords": [ 7 | "uni-ui", 8 | "uniui", 9 | "加载更多", 10 | "load-more" 11 | ], 12 | "repository": "https://github.com/dcloudio/uni-ui", 13 | "engines": { 14 | "HBuilderX": "" 15 | }, 16 | "directories": { 17 | "example": "../../temps/example_temps" 18 | }, 19 | "dcloudext": { 20 | "category": [ 21 | "前端组件", 22 | "通用组件" 23 | ], 24 | "sale": { 25 | "regular": { 26 | "price": "0.00" 27 | }, 28 | "sourcecode": { 29 | "price": "0.00" 30 | } 31 | }, 32 | "contact": { 33 | "qq": "" 34 | }, 35 | "declaration": { 36 | "ads": "无", 37 | "data": "无", 38 | "permissions": "无" 39 | }, 40 | "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" 41 | }, 42 | "uni_modules": { 43 | "dependencies": ["uni-scss"], 44 | "encrypt": [], 45 | "platforms": { 46 | "cloud": { 47 | "tcb": "y", 48 | "aliyun": "y" 49 | }, 50 | "client": { 51 | "App": { 52 | "app-vue": "y", 53 | "app-nvue": "y" 54 | }, 55 | "H5-mobile": { 56 | "Safari": "y", 57 | "Android Browser": "y", 58 | "微信浏览器(Android)": "y", 59 | "QQ浏览器(Android)": "y" 60 | }, 61 | "H5-pc": { 62 | "Chrome": "y", 63 | "IE": "y", 64 | "Edge": "y", 65 | "Firefox": "y", 66 | "Safari": "y" 67 | }, 68 | "小程序": { 69 | "微信": "y", 70 | "阿里": "y", 71 | "百度": "y", 72 | "字节跳动": "y", 73 | "QQ": "y" 74 | }, 75 | "快应用": { 76 | "华为": "u", 77 | "联盟": "u" 78 | }, 79 | "Vue": { 80 | "vue2": "y", 81 | "vue3": "y" 82 | } 83 | } 84 | } 85 | } 86 | } -------------------------------------------------------------------------------- /uni_modules/z-paging/readme.md: -------------------------------------------------------------------------------- 1 | # z-paging 2 | 3 | ### API文档地址:[https://z-paging.zxlee.cn](https://z-paging.zxlee.cn) 4 | 5 | *** 6 | ### 功能&特点 7 | * 【配置简单】仅需两步(绑定网络请求方法、绑定分页结果数组)轻松完成完整下拉刷新,上拉加载更多功能。 8 | * 【低耦合,低侵入】分页自动管理。在page中无需处理任何分页相关逻辑,无需在data中定义任何分页相关变量,全由z-paging内部处理。 9 | * 【超灵活,支持各种类型自定义】支持自定义下拉刷新,自定义上拉加载更多,自带自定义下拉刷新效果,及其他数十种自定义属性。 10 | * 【功能丰富】支持国际化,支持自定义且自动管理空数据图,支持主题模式切换,支持本地分页,支持聊天分页模式,支持展示最后更新时间,支持吸顶效果,支持内部scroll-view滚动与页面滚动,支持一键滚动到顶部等诸多功能。 11 | * 【多平台兼容,细致,流畅】支持nvue,支持h5、app及各家小程序;在app-vue、h5、微信小程序、QQ小程序上使用wxs实现下拉刷新,大幅提升性能。多处细节优化,给您精致流畅的体验。 12 | 13 | *** 14 | ### 反馈qq群(点击加群):[790460711](https://jq.qq.com/?_wv=1027&k=vU2fKZZH) 15 | 16 | *** 17 | #### 关于自动引入组件 18 | 19 | > `z-paging` 支持[easycom组件规范](https://uniapp.dcloud.io/component/README?id=easycom组件规范),无需引用和注册组件即可直接使用,在正在运行的项目中导入`z-paging`可能会提示:`Unknown custom element: - did you register the component corrently?... `,此时需要重新运行项目即可。 20 | 21 | ### 预览 22 | 23 | *** 24 | 25 | | 自定义下拉刷新效果+分页演示 | 吸顶效果+分页演示 | 26 | | :----------------------------------------------------------: | :----------------------------------------------------------: | 27 | | ![](http://www.zxlee.cn/github/uni-z-paging/uni-z-paging.gif) | ![](http://www.zxlee.cn/github/uni-z-paging/uni-z-paging2.gif) | 28 | 29 | | 滑动切换选项卡+分页演示 | 聊天记录模式+分页演示 | 30 | | :----------------------------------------------------------: | :----------------------------------------------------------: | 31 | | ![](http://www.zxlee.cn/github/uni-z-paging/z-paging-demo3.gif) | ![](http://www.zxlee.cn/github/uni-z-paging/z-paging-demo4.gif) | 32 | 33 | ### 在线demo体验地址: 34 | 35 | * [http://www.zxlee.cn/github/uni-z-paging/demo/index.html](http://www.zxlee.cn/github/uni-z-paging/demo/index.html) 36 | 37 | | 扫码体验 | 38 | | ------------------------------------------------------------ | 39 | | ![](http://www.zxlee.cn/github/uni-z-paging/z-paging-demo.png) | 40 | -------------------------------------------------------------------------------- /uni_modules/z-paging/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "z-paging", 3 | "name": "z-paging", 4 | "displayName": "【z-paging下拉刷新、上拉加载更多】超简单、低耦合!仅需两步轻松完成完整分页逻辑", 5 | "version": "2.1.3", 6 | "description": "【支持nvue,使用wxs+renderjs实现】全平台兼容,支持自定义下拉刷新、上拉加载更多,支持自动管理空数据图、点击返回顶部,支持聊天分页、本地分页,支持展示最后更新时间,支持国际化等等", 7 | "keywords": [ 8 | "下拉刷新", 9 | "上拉加载", 10 | "分页器", 11 | "nvue", 12 | "wxs" 13 | ], 14 | "repository": "https://github.com/SmileZXLee/uni-z-paging", 15 | "engines": { 16 | "HBuilderX": "^3.0.7" 17 | }, 18 | "dcloudext": { 19 | "category": [ 20 | "前端组件", 21 | "通用组件" 22 | ], 23 | "sale": { 24 | "regular": { 25 | "price": "0.00" 26 | }, 27 | "sourcecode": { 28 | "price": "0.00" 29 | } 30 | }, 31 | "contact": { 32 | "qq": "393727164" 33 | }, 34 | "declaration": { 35 | "ads": "无", 36 | "data": "无", 37 | "permissions": "无" 38 | }, 39 | "npmurl": "https://www.npmjs.com/package/z-paging" 40 | }, 41 | "uni_modules": { 42 | "dependencies": [], 43 | "encrypt": [], 44 | "platforms": { 45 | "cloud": { 46 | "tcb": "y", 47 | "aliyun": "y" 48 | }, 49 | "client": { 50 | "App": { 51 | "app-vue": "y", 52 | "app-nvue": "y" 53 | }, 54 | "H5-mobile": { 55 | "Safari": "y", 56 | "Android Browser": "y", 57 | "微信浏览器(Android)": "y", 58 | "QQ浏览器(Android)": "y" 59 | }, 60 | "H5-pc": { 61 | "Chrome": "y", 62 | "IE": "y", 63 | "Edge": "y", 64 | "Firefox": "y", 65 | "Safari": "y" 66 | }, 67 | "小程序": { 68 | "微信": "y", 69 | "阿里": "y", 70 | "百度": "y", 71 | "字节跳动": "y", 72 | "QQ": "y" 73 | }, 74 | "快应用": { 75 | "华为": "u", 76 | "联盟": "u" 77 | }, 78 | "Vue": { 79 | "vue2": "y", 80 | "vue3": "u" 81 | } 82 | } 83 | } 84 | } 85 | } -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging-swiper-item/z-paging-swiper-item.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 14 | 15 | 77 | 78 | 88 | -------------------------------------------------------------------------------- /uni_modules/uni-icons/components/uni-icons/uni-icons.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 73 | 74 | 90 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ### 简介 2 | pet-life是一个宠物社区小程序 3 | 4 | 主要功能有: 5 | 宠物领养、寻宠、宠物社区、签到答题、对话咨询等。 6 | 7 | gitee地址:https://gitee.com/lianyiming/pet-life.git 8 | ### 核心技术 9 | #### 依赖 10 | - mysql5.7 11 | - jdk1.8 12 | #### 前端 13 | - uniapp 14 | - npm 15 | - vue 16 | - element-ui 17 | #### 后端 18 | - springboot 19 | - spring security 20 | - redis 21 | - mybatis 22 | - mybatis-plus 23 | - fastjson 24 | - jwt 25 | 26 | ### 小程序截图 27 |
28 | 29 | 30 | 31 | 32 |
33 |
34 | 35 | 36 | 37 | 38 |
39 |
40 | 41 | 42 | 43 | 44 |
45 | 46 | ### 联系作者 47 | **微信:TL07061030** (备注github) 48 | 49 | 或关注公众号 "连帆起航",加作者微信 50 | 51 | 注:源码收费哦!购买源码后,你可获得作者指导搭建、代码咨询,以及项目中的任何疑问! 52 | 53 |
54 | 55 |
56 | -------------------------------------------------------------------------------- /components/axb-checkbox/axb-checkbox-item.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 83 | 84 | 108 | -------------------------------------------------------------------------------- /components/liudx-pickerAddress/u-mask.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 82 | 83 | 100 | -------------------------------------------------------------------------------- /common/http.js: -------------------------------------------------------------------------------- 1 | import baseUrl from './config.js' 2 | 3 | export function getToken() { 4 | try { 5 | const token = uni.getStorageSync('Token'); 6 | if (token) { 7 | return token 8 | } else { 9 | return '' 10 | } 11 | } catch (e) { 12 | console.log(e) 13 | } 14 | } 15 | 16 | module.exports = { 17 | config: function(name) { 18 | var info = null; 19 | if (name) { 20 | var name2 = name.split("."); //字符分割 21 | if (name2.length > 1) { 22 | info = configdata[name2[0]][name2[1]] || null; 23 | } else { 24 | info = configdata[name] || null; 25 | } 26 | if (info == null) { 27 | let web_config = cache.get("web_config"); 28 | if (web_config) { 29 | if (name2.length > 1) { 30 | info = web_config[name2[0]][name2[1]] || null; 31 | } else { 32 | info = web_config[name] || null; 33 | } 34 | } 35 | } 36 | } 37 | return info; 38 | }, 39 | post: function(url, data, xAuthToken = true) { 40 | url = baseUrl + url; 41 | let header = { 42 | "content-type": "application/json" 43 | } 44 | if (xAuthToken) { 45 | header = { 46 | "content-type": "application/json", 47 | "X-Auth-Token": getToken() 48 | } 49 | } 50 | return new Promise((succ, error) => { 51 | uni.request({ 52 | url: url, 53 | data: data, 54 | method: "POST", 55 | header: header, 56 | success: function(result) { 57 | succ.call(self, result.data) 58 | }, 59 | fail: function(e) { 60 | error.call(self, e) 61 | } 62 | }) 63 | }) 64 | }, 65 | get: function(url, data, xAuthToken = true) { 66 | url = baseUrl + url; 67 | let header = { 68 | "content-type": "application/x-www-form-urlencoded" 69 | } 70 | if (xAuthToken) { 71 | header = { 72 | "content-type": "application/x-www-form-urlencoded", 73 | "X-Auth-Token": getToken() 74 | } 75 | } 76 | return new Promise((succ, error) => { 77 | uni.request({ 78 | url: url, 79 | data: data, 80 | method: "GET", 81 | header: header, 82 | success: function(result) { 83 | succ.call(self, result.data) 84 | }, 85 | fail: function(e) { 86 | error.call(self, e) 87 | } 88 | }) 89 | }) 90 | }, 91 | // 小程序不支持多张图片上传 92 | uploadFile: function(url, data) { 93 | url = baseUrl + url; 94 | let n = 1; 95 | return new Promise((succ, error) => { 96 | let imgArr = [] 97 | data.map((item) => { 98 | uni.uploadFile({ 99 | url: url, 100 | filePath: item, 101 | name: 'file', 102 | success: function(result) { 103 | console.log('上传第' + (n++) + '张图片...') 104 | imgArr.push(JSON.parse(result.data).data) 105 | succ.call(self, imgArr) 106 | }, 107 | fail: function(e) { 108 | error.call(self, e) 109 | } 110 | }) 111 | }) 112 | }) 113 | } 114 | 115 | } 116 | -------------------------------------------------------------------------------- /components/axb-checkbox/axb-checkbox.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 106 | 107 | 134 | -------------------------------------------------------------------------------- /components/filter-popup/components/mask.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 111 | 112 | 131 | -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "pet-life", 3 | "appid" : "__UNI__F8002A3", 4 | "description" : "", 5 | "versionName" : "1.0.0", 6 | "versionCode" : "100", 7 | "transformPx" : false, 8 | /* 5+App特有相关 */ 9 | "app-plus" : { 10 | "usingComponents" : true, 11 | "nvueStyleCompiler" : "uni-app", 12 | "compilerVersion" : 3, 13 | "splashscreen" : { 14 | "alwaysShowBeforeRender" : true, 15 | "waiting" : true, 16 | "autoclose" : true, 17 | "delay" : 0 18 | }, 19 | /* 模块配置 */ 20 | "modules" : {}, 21 | /* 应用发布信息 */ 22 | "distribute" : { 23 | /* android打包配置 */ 24 | "android" : { 25 | "permissions" : [ 26 | "", 27 | "", 28 | "", 29 | "", 30 | "", 31 | "", 32 | "", 33 | "", 34 | "", 35 | "", 36 | "", 37 | "", 38 | "", 39 | "", 40 | "" 41 | ] 42 | }, 43 | /* ios打包配置 */ 44 | "ios" : {}, 45 | /* SDK配置 */ 46 | "sdkConfigs" : { 47 | "ad" : {} 48 | }, 49 | "splashscreen" : { 50 | "androidStyle" : "common", 51 | "android" : { 52 | "hdpi" : "C:/Users/Lian/Desktop/fm.png", 53 | "xhdpi" : "C:/Users/Lian/Desktop/fm.png", 54 | "xxhdpi" : "C:/Users/Lian/Desktop/fm.png" 55 | } 56 | }, 57 | "icons" : { 58 | "ios" : { 59 | "appstore" : "C:/Users/Lian/Desktop/logo.png" 60 | } 61 | } 62 | } 63 | }, 64 | /* 快应用特有相关 */ 65 | "quickapp" : {}, 66 | /* 小程序特有相关 */ 67 | "mp-weixin" : { 68 | "appid" : "wx49d52c9c666c7a99", 69 | "setting" : { 70 | "urlCheck" : false 71 | }, 72 | "usingComponents" : true 73 | }, 74 | "mp-alipay" : { 75 | "usingComponents" : true 76 | }, 77 | "mp-baidu" : { 78 | "usingComponents" : true 79 | }, 80 | "mp-toutiao" : { 81 | "usingComponents" : true 82 | }, 83 | "uniStatistics" : { 84 | "enable" : false 85 | }, 86 | "vueVersion" : "2" 87 | } 88 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging-empty-view/z-paging-empty-view.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 17 | 18 | 100 | 101 | 152 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name" : "", 3 | "appid" : "", 4 | "description": "应用描述", 5 | "versionName": "1.0.0", 6 | "versionCode": "100", 7 | "transformPx": false, 8 | /* 5+App特有相关 */ 9 | "app-plus": { 10 | "usingComponents": true, 11 | "splashscreen": { 12 | "alwaysShowBeforeRender": true, 13 | "waiting": true, 14 | "autoclose": true, 15 | "delay": 0 16 | }, 17 | "modules": { 18 | "OAuth": {}, 19 | "Payment": {}, 20 | "Push": {}, 21 | "Share": {}, 22 | "Speech": {}, 23 | "VideoPlayer": {} 24 | }, 25 | /* 应用发布信息 */ 26 | "distribute": { 27 | /* android打包配置 */ 28 | "android": { 29 | "permissions": [ 30 | "", 31 | "", 32 | "", 33 | "", 34 | "", 35 | "", 36 | "", 37 | "", 38 | "", 39 | "", 40 | "", 41 | "", 42 | "", 43 | "", 44 | "", 45 | "", 46 | "", 47 | "", 48 | "", 49 | "", 50 | "", 51 | "", 52 | "", 53 | "", 54 | "", 55 | "", 56 | "", 57 | "", 58 | "", 59 | "", 60 | "", 61 | "", 62 | "" 63 | ] 64 | }, 65 | /* ios打包配置 */ 66 | "ios": { 67 | "UIBackgroundModes": ["audio"] 68 | }, 69 | /* SDK配置 */ 70 | "sdkConfigs": { 71 | "speech": { 72 | "ifly": {} 73 | } 74 | }, 75 | "orientation": ["portrait-primary"] 76 | } 77 | }, 78 | /* 快应用特有相关 */ 79 | "quickapp": {}, 80 | /* 小程序特有相关 */ 81 | "mp-weixin": { 82 | "appid": "", 83 | "setting": { 84 | "urlCheck": false 85 | }, 86 | "usingComponents": true 87 | }, 88 | "h5": { 89 | "template": "template.h5.html", 90 | "router": { 91 | "mode": "history", 92 | "base": "/h5/" 93 | } 94 | } 95 | } 96 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/css/z-paging-main.css: -------------------------------------------------------------------------------- 1 | /* [z-paging]公共css*/ 2 | 3 | .z-paging-content { 4 | position: relative; 5 | /* #ifndef APP-NVUE */ 6 | display: flex; 7 | width: 100%; 8 | height: 100%; 9 | /* #endif */ 10 | flex-direction: column; 11 | } 12 | 13 | .z-paging-content-fixed, .zp-loading-fixed { 14 | position: fixed; 15 | /* #ifndef APP-NVUE */ 16 | height: auto; 17 | width: auto; 18 | /* #endif */ 19 | top: 0; 20 | left: 0; 21 | bottom: 0; 22 | right: 0; 23 | } 24 | 25 | .zp-page-scroll-top, 26 | .zp-page-scroll-bottom { 27 | /* #ifndef APP-NVUE */ 28 | width: auto; 29 | /* #endif */ 30 | position: fixed; 31 | left: 0; 32 | right: 0; 33 | z-index: 999; 34 | } 35 | 36 | .zp-scroll-view-super { 37 | flex: 1; 38 | position: relative; 39 | } 40 | 41 | .zp-custom-refresher-container { 42 | overflow: hidden; 43 | } 44 | 45 | .zp-scroll-view { 46 | height: 100%; 47 | width: 100%; 48 | } 49 | 50 | .zp-scroll-view-absolute { 51 | position: absolute; 52 | top: 0; 53 | left: 0; 54 | } 55 | 56 | /* #ifndef APP-NVUE */ 57 | .zp-scroll-view-hide-scrollbar ::-webkit-scrollbar { 58 | display: none; 59 | -webkit-appearance: none; 60 | width: 0 !important; 61 | height: 0 !important; 62 | background: transparent; 63 | } 64 | /* #endif */ 65 | 66 | .zp-paging-touch-view { 67 | width: 100%; 68 | height: 100%; 69 | position: relative; 70 | } 71 | 72 | .zp-fixed-bac-view { 73 | position: absolute; 74 | width: 100%; 75 | top: 0; 76 | left: 0; 77 | height: 200px; 78 | } 79 | 80 | .zp-paging-main { 81 | height: 100%; 82 | /* #ifndef APP-NVUE */ 83 | display: flex; 84 | /* #endif */ 85 | flex-direction: column; 86 | } 87 | 88 | .zp-paging-container { 89 | flex: 1; 90 | position: relative; 91 | /* #ifndef APP-NVUE */ 92 | display: flex; 93 | /* #endif */ 94 | flex-direction: column; 95 | } 96 | 97 | .zp-chat-record-loading-container { 98 | /* #ifndef APP-NVUE */ 99 | display: flex; 100 | width: 100%; 101 | /* #endif */ 102 | /* #ifdef APP-NVUE */ 103 | width: 750rpx; 104 | /* #endif */ 105 | align-items: center; 106 | justify-content: center; 107 | height: 60rpx; 108 | font-size: 26rpx; 109 | } 110 | 111 | .zp-chat-record-loading-custom-image { 112 | width: 35rpx; 113 | height: 35rpx; 114 | /* #ifndef APP-NVUE */ 115 | animation: loading-flower 1s linear infinite; 116 | /* #endif */ 117 | } 118 | 119 | .zp-custom-refresher-container { 120 | /* #ifndef APP-NVUE */ 121 | display: flex; 122 | /* #endif */ 123 | flex-direction: row; 124 | justify-content: center; 125 | align-items: center; 126 | } 127 | 128 | .zp-back-to-top { 129 | width: 76rpx; 130 | height: 76rpx; 131 | z-index: 999; 132 | position: absolute; 133 | bottom: 0rpx; 134 | right: 25rpx; 135 | transition-duration: .3s; 136 | transition-property: opacity; 137 | } 138 | 139 | .zp-back-to-top-show { 140 | opacity: 1; 141 | } 142 | 143 | .zp-back-to-top-hide { 144 | opacity: 0; 145 | } 146 | 147 | .zp-back-to-top-img { 148 | /* #ifndef APP-NVUE */ 149 | width: 100%; 150 | height: 100%; 151 | /* #endif */ 152 | /* #ifdef APP-NVUE */ 153 | flex: 1; 154 | /* #endif */ 155 | z-index: 999; 156 | } 157 | 158 | .zp-empty-view { 159 | /* #ifdef APP-NVUE */ 160 | height: 100%; 161 | /* #endif */ 162 | flex: 1; 163 | } 164 | 165 | .zp-empty-view-center { 166 | /* #ifndef APP-NVUE */ 167 | display: flex; 168 | /* #endif */ 169 | flex-direction: column; 170 | align-items: center; 171 | justify-content: center; 172 | } 173 | 174 | .zp-loading-fixed { 175 | z-index: 9999; 176 | } 177 | 178 | .zp-safe-area-inset-bottom { 179 | position: absolute; 180 | /* #ifndef APP-PLUS */ 181 | height: env(safe-area-inset-bottom); 182 | /* #endif */ 183 | } 184 | 185 | .zp-n-refresh-container { 186 | /* #ifndef APP-NVUE */ 187 | display: flex; 188 | /* #endif */ 189 | justify-content: center; 190 | width: 750rpx; 191 | } 192 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging-swiper/z-paging-swiper.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 21 | 22 | 103 | 104 | 154 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/styles/setting/_styles.scss: -------------------------------------------------------------------------------- 1 | /* #ifndef APP-NVUE */ 2 | 3 | $-color-white:#fff; 4 | $-color-black:#000; 5 | @mixin base-style($color) { 6 | color: #fff; 7 | background-color: $color; 8 | border-color: mix($-color-black, $color, 8%); 9 | &:not([hover-class]):active { 10 | background: mix($-color-black, $color, 10%); 11 | border-color: mix($-color-black, $color, 20%); 12 | color: $-color-white; 13 | outline: none; 14 | } 15 | } 16 | @mixin is-color($color) { 17 | @include base-style($color); 18 | &[loading] { 19 | @include base-style($color); 20 | &::before { 21 | margin-right:5px; 22 | } 23 | } 24 | &[disabled] { 25 | &, 26 | &[loading], 27 | &:not([hover-class]):active { 28 | color: $-color-white; 29 | border-color: mix(darken($color,10%), $-color-white); 30 | background-color: mix($color, $-color-white); 31 | } 32 | } 33 | 34 | } 35 | @mixin base-plain-style($color) { 36 | color:$color; 37 | background-color: mix($-color-white, $color, 90%); 38 | border-color: mix($-color-white, $color, 70%); 39 | &:not([hover-class]):active { 40 | background: mix($-color-white, $color, 80%); 41 | color: $color; 42 | outline: none; 43 | border-color: mix($-color-white, $color, 50%); 44 | } 45 | } 46 | @mixin is-plain($color){ 47 | &[plain] { 48 | @include base-plain-style($color); 49 | &[loading] { 50 | @include base-plain-style($color); 51 | &::before { 52 | margin-right:5px; 53 | } 54 | } 55 | &[disabled] { 56 | &, 57 | &:active { 58 | color: mix($-color-white, $color, 40%); 59 | background-color: mix($-color-white, $color, 90%); 60 | border-color: mix($-color-white, $color, 80%); 61 | } 62 | } 63 | } 64 | } 65 | 66 | 67 | .uni-btn { 68 | margin: 5px; 69 | color: #393939; 70 | border:1px solid #ccc; 71 | font-size: 16px; 72 | font-weight: 200; 73 | background-color: #F9F9F9; 74 | // TODO 暂时处理边框隐藏一边的问题 75 | overflow: visible; 76 | &::after{ 77 | border: none; 78 | } 79 | 80 | &:not([type]),&[type=default] { 81 | color: #999; 82 | &[loading] { 83 | background: none; 84 | &::before { 85 | margin-right:5px; 86 | } 87 | } 88 | 89 | 90 | 91 | &[disabled]{ 92 | color: mix($-color-white, #999, 60%); 93 | &, 94 | &[loading], 95 | &:active { 96 | color: mix($-color-white, #999, 60%); 97 | background-color: mix($-color-white,$-color-black , 98%); 98 | border-color: mix($-color-white, #999, 85%); 99 | } 100 | } 101 | 102 | &[plain] { 103 | color: #999; 104 | background: none; 105 | border-color: $uni-border-1; 106 | &:not([hover-class]):active { 107 | background: none; 108 | color: mix($-color-white, $-color-black, 80%); 109 | border-color: mix($-color-white, $-color-black, 90%); 110 | outline: none; 111 | } 112 | &[disabled]{ 113 | &, 114 | &[loading], 115 | &:active { 116 | background: none; 117 | color: mix($-color-white, #999, 60%); 118 | border-color: mix($-color-white, #999, 85%); 119 | } 120 | } 121 | } 122 | } 123 | 124 | &:not([hover-class]):active { 125 | color: mix($-color-white, $-color-black, 50%); 126 | } 127 | 128 | &[size=mini] { 129 | font-size: 16px; 130 | font-weight: 200; 131 | border-radius: 8px; 132 | } 133 | 134 | 135 | 136 | &.uni-btn-small { 137 | font-size: 14px; 138 | } 139 | &.uni-btn-mini { 140 | font-size: 12px; 141 | } 142 | 143 | &.uni-btn-radius { 144 | border-radius: 999px; 145 | } 146 | &[type=primary] { 147 | @include is-color($uni-primary); 148 | @include is-plain($uni-primary) 149 | } 150 | &[type=success] { 151 | @include is-color($uni-success); 152 | @include is-plain($uni-success) 153 | } 154 | &[type=error] { 155 | @include is-color($uni-error); 156 | @include is-plain($uni-error) 157 | } 158 | &[type=warning] { 159 | @include is-color($uni-warning); 160 | @include is-plain($uni-warning) 161 | } 162 | &[type=info] { 163 | @include is-color($uni-info); 164 | @include is-plain($uni-info) 165 | } 166 | } 167 | /* #endif */ 168 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/js/z-paging-i18n.js: -------------------------------------------------------------------------------- 1 | // z-paging国际化(支持中文、中文繁体和英文) 2 | 3 | const i18nUpdateKey = 'z-paging-i18n-update'; 4 | 5 | const refresherDefaultText = { 6 | 'en': 'Pull down to refresh', 7 | 'zh-cn': '继续下拉刷新', 8 | 'zh-hant-cn': '繼續下拉重繪', 9 | } 10 | const refresherPullingText = { 11 | 'en': 'Release to refresh', 12 | 'zh-cn': '松开立即刷新', 13 | 'zh-hant-cn': '鬆開立即重繪', 14 | } 15 | const refresherRefreshingText = { 16 | 'en': 'Refreshing...', 17 | 'zh-cn': '正在刷新...', 18 | 'zh-hant-cn': '正在重繪...', 19 | } 20 | const refresherCompleteText = { 21 | 'en': 'Refresh succeeded', 22 | 'zh-cn': '刷新成功', 23 | 'zh-hant-cn': '重繪成功', 24 | } 25 | 26 | const loadingMoreDefaultText = { 27 | 'en': 'Click to load more', 28 | 'zh-cn': '点击加载更多', 29 | 'zh-hant-cn': '點擊加載更多', 30 | } 31 | const loadingMoreLoadingText = { 32 | 'en': 'Loading...', 33 | 'zh-cn': '正在加载...', 34 | 'zh-hant-cn': '正在加載...', 35 | } 36 | const loadingMoreNoMoreText = { 37 | 'en': 'No more data', 38 | 'zh-cn': '没有更多了', 39 | 'zh-hant-cn': '沒有更多了', 40 | } 41 | const loadingMoreFailText = { 42 | 'en': 'Load failed,click to reload', 43 | 'zh-cn': '加载失败,点击重新加载', 44 | 'zh-hant-cn': '加載失敗,點擊重新加載', 45 | } 46 | 47 | const emptyViewText = { 48 | 'en': 'No data', 49 | 'zh-cn': '没有数据哦~', 50 | 'zh-hant-cn': '沒有數據哦~', 51 | } 52 | 53 | const emptyViewReloadText = { 54 | 'en': 'Reload', 55 | 'zh-cn': '重新加载', 56 | 'zh-hant-cn': '重新加載', 57 | } 58 | 59 | const emptyViewErrorText = { 60 | 'en': 'Sorry,load failed', 61 | 'zh-cn': '很抱歉,加载失败', 62 | 'zh-hant-cn': '很抱歉,加載失敗', 63 | } 64 | 65 | const refresherUpdateTimeText = { 66 | 'en': 'Last update: ', 67 | 'zh-cn': '最后更新:', 68 | 'zh-hant-cn': '最後更新:', 69 | } 70 | 71 | const refresherUpdateTimeNoneText = { 72 | 'en': 'None', 73 | 'zh-cn': '无', 74 | 'zh-hant-cn': '無', 75 | } 76 | 77 | const refresherUpdateTimeTodayText = { 78 | 'en': 'Today', 79 | 'zh-cn': '今天', 80 | 'zh-hant-cn': '今天', 81 | } 82 | 83 | const refresherUpdateTimeYesterdayText = { 84 | 'en': 'Yesterday', 85 | 'zh-cn': '昨天', 86 | 'zh-hant-cn': '昨天', 87 | } 88 | 89 | // 获取当前语言,格式为:zh-cn、zh-hant-cn、en。followSystemLanguage:获取的结果是否是在不跟随系统语言下获取到的 90 | function getLanguage(followSystemLanguage = true) { 91 | return _getPrivateLanguage(false, followSystemLanguage); 92 | } 93 | 94 | // 获取当前语言,格式为:简体中文、繁體中文、English。followSystemLanguage:获取的结果是否是在不跟随系统语言下获取到的 95 | function getLanguageName(followSystemLanguage = true) { 96 | const language = getLanguage(followSystemLanguage); 97 | const languageNameMap = { 98 | 'zh-cn': '简体中文', 99 | 'zh-hant-cn': '繁體中文', 100 | 'en': 'English' 101 | }; 102 | return languageNameMap[language]; 103 | } 104 | 105 | //设置当前语言,格式为:zh-cn、zh-hant-cn、en 106 | function setLanguage(myLanguage) { 107 | uni.setStorageSync(i18nUpdateKey, myLanguage); 108 | uni.$emit(i18nUpdateKey, myLanguage); 109 | } 110 | 111 | // 插件内部使用,请勿直接调用 112 | function _getPrivateLanguage(myLanguage, followSystemLanguage = true) { 113 | let systemLanguage = ''; 114 | if (followSystemLanguage) { 115 | systemLanguage = uni.getSystemInfoSync().language; 116 | } 117 | let language = myLanguage || uni.getStorageSync(i18nUpdateKey) || systemLanguage; 118 | language = language.toLowerCase(); 119 | var reg = new RegExp('_', ''); 120 | language = language.replace(reg, '-'); 121 | if (language.indexOf('zh') !== -1) { 122 | if (language === 'zh' || language === 'zh-cn' || language.indexOf('zh-hans') !== -1) { 123 | return 'zh-cn'; 124 | } 125 | return 'zh-hant-cn'; 126 | } 127 | if (language.indexOf('en') !== -1) { 128 | return 'en'; 129 | } 130 | return 'zh-cn'; 131 | } 132 | 133 | module.exports = { 134 | refresherDefaultText, 135 | refresherPullingText, 136 | refresherRefreshingText, 137 | refresherCompleteText, 138 | refresherUpdateTimeText, 139 | refresherUpdateTimeNoneText, 140 | refresherUpdateTimeTodayText, 141 | refresherUpdateTimeYesterdayText, 142 | loadingMoreDefaultText, 143 | loadingMoreLoadingText, 144 | loadingMoreNoMoreText, 145 | loadingMoreFailText, 146 | emptyViewText, 147 | emptyViewReloadText, 148 | emptyViewErrorText, 149 | getLanguage, 150 | getLanguageName, 151 | setLanguage, 152 | _getPrivateLanguage, 153 | } 154 | -------------------------------------------------------------------------------- /uni_modules/uni-scss/styles/setting/_variables.scss: -------------------------------------------------------------------------------- 1 | // @use "sass:math"; 2 | @import '../tools/functions.scss'; 3 | // 间距基础倍数 4 | $uni-space-root: 2 !default; 5 | // 边框半径默认值 6 | $uni-radius-root:5px !default; 7 | $uni-radius: () !default; 8 | // 边框半径断点 9 | $uni-radius: map-deep-merge( 10 | ( 11 | 0: 0, 12 | // TODO 当前版本暂时不支持 sm 属性 13 | // 'sm': math.div($uni-radius-root, 2), 14 | null: $uni-radius-root, 15 | 'lg': $uni-radius-root * 2, 16 | 'xl': $uni-radius-root * 6, 17 | 'pill': 9999px, 18 | 'circle': 50% 19 | ), 20 | $uni-radius 21 | ); 22 | // 字体家族 23 | $body-font-family: 'Roboto', sans-serif !default; 24 | // 文本 25 | $heading-font-family: $body-font-family !default; 26 | $uni-headings: () !default; 27 | $letterSpacing: -0.01562em; 28 | $uni-headings: map-deep-merge( 29 | ( 30 | 'h1': ( 31 | size: 32px, 32 | weight: 300, 33 | line-height: 50px, 34 | // letter-spacing:-0.01562em 35 | ), 36 | 'h2': ( 37 | size: 28px, 38 | weight: 300, 39 | line-height: 40px, 40 | // letter-spacing: -0.00833em 41 | ), 42 | 'h3': ( 43 | size: 24px, 44 | weight: 400, 45 | line-height: 32px, 46 | // letter-spacing: normal 47 | ), 48 | 'h4': ( 49 | size: 20px, 50 | weight: 400, 51 | line-height: 30px, 52 | // letter-spacing: 0.00735em 53 | ), 54 | 'h5': ( 55 | size: 16px, 56 | weight: 400, 57 | line-height: 24px, 58 | // letter-spacing: normal 59 | ), 60 | 'h6': ( 61 | size: 14px, 62 | weight: 500, 63 | line-height: 18px, 64 | // letter-spacing: 0.0125em 65 | ), 66 | 'subtitle': ( 67 | size: 12px, 68 | weight: 400, 69 | line-height: 20px, 70 | // letter-spacing: 0.00937em 71 | ), 72 | 'body': ( 73 | font-size: 14px, 74 | font-weight: 400, 75 | line-height: 22px, 76 | // letter-spacing: 0.03125em 77 | ), 78 | 'caption': ( 79 | 'size': 12px, 80 | 'weight': 400, 81 | 'line-height': 20px, 82 | // 'letter-spacing': 0.03333em, 83 | // 'text-transform': false 84 | ) 85 | ), 86 | $uni-headings 87 | ); 88 | 89 | 90 | 91 | // 主色 92 | $uni-primary: #2979ff !default; 93 | $uni-primary-disable:lighten($uni-primary,20%) !default; 94 | $uni-primary-light: lighten($uni-primary,25%) !default; 95 | 96 | // 辅助色 97 | // 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 98 | $uni-success: #18bc37 !default; 99 | $uni-success-disable:lighten($uni-success,20%) !default; 100 | $uni-success-light: lighten($uni-success,25%) !default; 101 | 102 | $uni-warning: #f3a73f !default; 103 | $uni-warning-disable:lighten($uni-warning,20%) !default; 104 | $uni-warning-light: lighten($uni-warning,25%) !default; 105 | 106 | $uni-error: #e43d33 !default; 107 | $uni-error-disable:lighten($uni-error,20%) !default; 108 | $uni-error-light: lighten($uni-error,25%) !default; 109 | 110 | $uni-info: #8f939c !default; 111 | $uni-info-disable:lighten($uni-info,20%) !default; 112 | $uni-info-light: lighten($uni-info,25%) !default; 113 | 114 | // 中性色 115 | // 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 116 | $uni-main-color: #3a3a3a !default; // 主要文字 117 | $uni-base-color: #6a6a6a !default; // 常规文字 118 | $uni-secondary-color: #909399 !default; // 次要文字 119 | $uni-extra-color: #c7c7c7 !default; // 辅助说明 120 | 121 | // 边框颜色 122 | $uni-border-1: #F0F0F0 !default; 123 | $uni-border-2: #EDEDED !default; 124 | $uni-border-3: #DCDCDC !default; 125 | $uni-border-4: #B9B9B9 !default; 126 | 127 | // 常规色 128 | $uni-black: #000000 !default; 129 | $uni-white: #ffffff !default; 130 | $uni-transparent: rgba($color: #000000, $alpha: 0) !default; 131 | 132 | // 背景色 133 | $uni-bg-color: #f7f7f7 !default; 134 | 135 | /* 水平间距 */ 136 | $uni-spacing-sm: 8px !default; 137 | $uni-spacing-base: 15px !default; 138 | $uni-spacing-lg: 30px !default; 139 | 140 | // 阴影 141 | $uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; 142 | $uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; 143 | $uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; 144 | 145 | // 蒙版 146 | $uni-mask: rgba($color: #000000, $alpha: 0.4) !default; 147 | -------------------------------------------------------------------------------- /uni_modules/hpy-form-select/readme.md: -------------------------------------------------------------------------------- 1 | 2 | ## hpy-form-select 下拉选择器 基于 [picker](https://uniapp.dcloud.io/component/picker?id=picker) 简单封装 3 | 4 | > **组件名:hpy-form-select 5 | 6 | 从底部弹起的滚动选择器。支持五种选择器,通过mode来区分,分别是普通选择器,多列选择器,时间选择器,日期选择器,省市区选择器,默认是普通选择器 7 | 8 | ## API 9 | 10 | ### FilePicker Props 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 |
属性名类型默认值说明
islotBoolean | Stringfalse是否使用插槽
titleString请选择默认标题
modeString选择模式selector | multiSelector
startString表示有效日期范围的开始,字符串格式为"YYYY-MM-DD"
endString表示有效日期范围的结束,字符串格式为"YYYY-MM-DD"
fieldsStringday有效值 year、month、day,表示选择器的粒度,默认为 day,App 端未配置此项时使用系统 UI
customItemString可为每一列的顶部添加一个自定义的项
dataListArray选择器数据
textString显示值的key
nameString保存值的key
v-model | valueArray | Object绑定的数据
disabledBoolean | Stringfalse是否禁用
hideBorderBoolean | Stringfalse是否隐藏边框
hideArrowBoolean | Stringfalse是否隐藏箭头
104 | 105 | 106 | ## 使用示例 107 | ## dataList 为对象数组时,name为实际保存的value值,text为显示的值 108 | ## dataList 为对象数组[{name:'张三', age:'18'}, {name:'李四', age:'19'}]时,需要设置name、text属性,name为实际保存的value值,text为显示的值 109 | ## 110 | ## ====================================================================================================== 111 | ## dataList 为普通数组['张三', '李四'] name、text可不设置 112 | ## 113 | ## 类似: 114 | ## 115 | 116 | 117 | ```html 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 可自定义显示 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | ``` 140 | 141 | ```javascript 142 | export default { 143 | data() { 144 | return { 145 | formData:{ 146 | hobbySelect:'' 147 | }, 148 | hobbyList: [{ 149 | text: '足球', 150 | value: 1 151 | }, { 152 | text: '篮球', 153 | value: 2 154 | }, { 155 | text: '游泳', 156 | value: 3 157 | }], 158 | } 159 | }, 160 | methods:{ 161 | change(e){ 162 | console.log(e.index); 163 | console.log(e.value); 164 | console.log(e.data); 165 | } 166 | } 167 | } 168 | 169 | ``` -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/components/z-paging-load-more.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 24 | 46 | 47 | 136 | -------------------------------------------------------------------------------- /components/citylist/citylist.json: -------------------------------------------------------------------------------- 1 | { 2 | "hotcity":{ 3 | "title":"热门城市", 4 | "lists":[ 5 | "上海","北京","广州","深圳","武汉","天津","西安","南京","杭州","成都","重庆" 6 | ] 7 | }, 8 | "city":[ 9 | { 10 | "title":"A", 11 | "lists":["阿坝","阿拉善","阿里","安康","安庆","鞍山","安顺","安阳","澳门"] 12 | }, 13 | { 14 | "title":"B", 15 | "lists":["北京","白银","保定","宝鸡","保山","包头","巴中","北海","蚌埠","本溪","毕节","滨州","百色","亳州" 16 | ] 17 | }, 18 | { 19 | "title":"C", 20 | "lists":["重庆","成都","长沙","长春","沧州","常德","昌都","长治","常州","巢湖","潮州","承德", "郴州","赤峰","池州","崇左","楚雄","滁州","朝阳" 21 | ] 22 | }, 23 | { 24 | "title":"D", 25 | "lists":["大连","东莞","大理","丹东","大庆","大同","大兴安岭","德宏","德阳","德州","定西","迪庆","东营" 26 | ] 27 | }, 28 | { 29 | "title":"E", 30 | "lists":["鄂尔多斯","恩施","鄂州"] 31 | }, 32 | { 33 | "title":"F", 34 | "lists":["福州","防城港","佛山","抚顺","抚州","阜新","阜阳" 35 | ] 36 | 37 | }, 38 | { 39 | "title":"G", 40 | "lists":["广州","桂林","贵阳","甘南","赣州","甘孜","广安","广元","贵港","果洛"] 41 | 42 | }, 43 | { 44 | "title":"H", 45 | "lists":["杭州","哈尔滨","合肥","海口","呼和浩特","海北","海东","海南","海西","邯郸","汉中","鹤壁","河池","鹤岗","黑河","衡水","衡阳","河源","贺州","红河","淮安","淮北","怀化","淮南","黄冈","黄南","黄山","黄石","惠州","葫芦岛","呼伦贝尔","湖州","菏泽" 46 | ] 47 | }, 48 | { 49 | "title":"J", 50 | "lists":["济南","佳木斯","吉安","江门","焦作","嘉兴","嘉峪关","揭阳","吉林","金昌","晋城","景德镇","荆门","荆州","金华","济宁","晋中","锦州","九江", 51 | "酒泉" 52 | ] 53 | 54 | }, 55 | { 56 | "title":"K", 57 | "lists":["昆明","开封"] 58 | 59 | }, 60 | { 61 | "title":"L", 62 | "lists":["兰州","拉萨","来宾","莱芜","廊坊","乐山","凉山","连云港","聊城","辽阳","辽源","丽江","临沧","临汾","临夏","临沂","林芝","丽水","六安","六盘水", 63 | "柳州","陇南","龙岩","娄底","漯河","洛阳","泸州","吕梁" 64 | ] 65 | 66 | }, 67 | { 68 | "title":"M", 69 | "lists":["马鞍山","茂名","眉山","梅州","绵阳","牡丹江"] 70 | 71 | }, 72 | { 73 | "title":"N", 74 | "lists":["南京","南昌","南宁","宁波","南充","南平","南通","南阳","那曲","内江", "宁德","怒江" 75 | ] 76 | }, 77 | { 78 | "title":"P", 79 | "lists":["盘锦","攀枝花","平顶山","平凉","萍乡","莆田","濮阳"] 80 | 81 | }, 82 | { 83 | "title":"Q", 84 | "lists":["青岛","黔东南","黔南","黔西南","庆阳","清远","秦皇岛","钦州","齐齐哈尔","泉州","曲靖","衢州"] 85 | 86 | }, 87 | { 88 | "title":"R", 89 | "lists":["日喀则","日照"] 90 | }, 91 | { 92 | "title":"S", 93 | "lists":["上海","深圳","苏州","沈阳","石家庄","三门峡","三明","三亚","商洛","商丘","上饶","山南","汕头","汕尾","韶关","绍兴","邵阳","十堰","朔州","四平","绥化","遂宁","随州","宿迁","宿州" 94 | ] 95 | 96 | }, 97 | { 98 | "title":"T", 99 | "lists":["天津","太原","泰安","泰州","台州","唐山","天水","铁岭","铜川","通化","通辽","铜陵","铜仁","台湾" 100 | ] 101 | }, 102 | { 103 | "title":"W", 104 | "lists":["武汉","乌鲁木齐","无锡","威海","潍坊","文山","温州","乌海","芜湖","乌兰察布","武威","梧州" 105 | ] 106 | }, 107 | { 108 | "title":"X", 109 | "lists":["厦门","西安","西宁","襄樊","湘潭","湘西","咸宁","咸阳","孝感","邢台","新乡","信阳","新余","忻州","西双版纳","宣城","许昌","徐州","香港","锡林郭勒","兴安" 110 | ] 111 | 112 | }, 113 | { 114 | "title":"Y", 115 | "lists":["银川","雅安","延安","延边","盐城","阳江","阳泉","扬州","烟台","宜宾","宜昌","宜春","营口","益阳","永州","岳阳","榆林","运城","云浮","玉树","玉溪","玉林" 116 | ] 117 | 118 | }, 119 | { 120 | "title":"Z", 121 | "lists":["杂多县","赞皇县","枣强县","枣阳市","枣庄","泽库县","增城市","曾都区","泽普县","泽州县","札达县","扎赉特旗","扎兰屯市","扎鲁特旗","扎囊县","张北县","张店区","章贡区","张家港","张家界","张家口","漳平市","漳浦县","章丘市","樟树市","张湾区","彰武县","漳县","张掖","漳州","长子县","湛河区","湛江","站前区","沾益县","诏安县","召陵区","昭平县","肇庆","昭通","赵县","昭阳区","招远市","肇源县","肇州县","柞水县","柘城县","浙江","镇安县","振安区","镇巴县","正安县","正定县","正定新区","正蓝旗","正宁县","蒸湘区","正镶白旗","正阳县","郑州","镇海区","镇江","浈江区","镇康县","镇赉县","镇平县","振兴区","镇雄县","镇原县","志丹县","治多县","芝罘区","枝江市","芷江侗族自治县","织金县","中方县","中江县","钟楼区","中牟县","中宁县","中山","中山区","钟山区","钟山县","中卫","钟祥市","中阳县","中原区","周村区","周口","周宁县","舟曲县","舟山","周至县","庄河市","诸城市","珠海","珠晖区","诸暨市","驻马店","准格尔旗","涿鹿县","卓尼","涿州市","卓资县","珠山区","竹山县","竹溪县","株洲","株洲县","淄博","子长县","淄川区","自贡","秭归县","紫金县","自流井区","资溪县","资兴市","资阳" 122 | ] 123 | } 124 | ] 125 | } -------------------------------------------------------------------------------- /api/backend.js: -------------------------------------------------------------------------------- 1 | import http from '@/common/http.js' 2 | 3 | module.exports = { 4 | // 获取用户信息 5 | login: function(param) { 6 | return http.post('/user/login', param); 7 | }, 8 | // 获取用户手机号 9 | getPhoneNumber: function(param) { 10 | return http.post('/user/getPhoneNumber', param) 11 | }, 12 | // 发布宠物领养 13 | addPetAdopt: function(param) { 14 | return http.post('/adopt/add', param) 15 | }, 16 | // 查询宠物领养列表 17 | queryPetAdopts: function(param) { 18 | return http.post('/adopt/queryList', param) 19 | }, 20 | // 上传图片 21 | uploadFile: function(param) { 22 | return http.uploadFile('/file/uploadPic', param) 23 | }, 24 | // 删除图片 25 | deletePic: function(param) { 26 | return http.get('/file/deletePic', param) 27 | }, 28 | // 查询宠物领养信息 29 | getPetAdopt: function(param) { 30 | return http.get("/adopt/getById", param) 31 | }, 32 | // 发布寻宠信息 33 | addPetFind: function(param) { 34 | return http.post('/petFind/add', param) 35 | }, 36 | // 查询寻宠列表 37 | queryPetFinds: function(param) { 38 | return http.post('/petFind/queryList', param) 39 | }, 40 | // 查询寻宠信息 41 | getPetFind: function(param) { 42 | return http.get("/petFind/getById", param) 43 | }, 44 | // 新增宠物圈 45 | addPetCircle: function(param) { 46 | return http.post('/petCircle/add', param) 47 | }, 48 | // 查询宠物圈列表 49 | queryPetCircles: function(param) { 50 | return http.post('/petCircle/queryList', param) 51 | }, 52 | // 查询宠物圈 53 | getPetcircle: function(param) { 54 | return http.get('/petCircle/getById', param) 55 | }, 56 | // 查询宠物科普列表 57 | queryPetCyclopedias: function(param) { 58 | return http.post('/petCyclopedia/queryList', param) 59 | }, 60 | // 查询宠物科普 61 | getPetCyclopedia: function(param) { 62 | return http.get('/petCyclopedia/getById', param) 63 | }, 64 | // 查询积分 65 | getCredits: function(param) { 66 | return http.get('/credits/getCredits', param) 67 | }, 68 | // 更新积分/签到天数 69 | updateCredits: function(param) { 70 | return http.get('/credits/updateCredits', param) 71 | }, 72 | // 查询用户信息 73 | getUserInfo: function(param) { 74 | return http.get('/user/getUserInfo', param) 75 | }, 76 | // 查询领养/寻宠总数 77 | queryPetCount: function(param) { 78 | return http.get('/adopt/queryCount', param) 79 | }, 80 | // 新增评论 81 | addComment: function(param) { 82 | return http.post('/comment/addComment', param) 83 | }, 84 | // 查询评论列表 By FromId 85 | queryComments: function(param) { 86 | return http.get('/comment/queryComments', param) 87 | }, 88 | // 查询评论总数 By FromId 89 | queryCommentCount: function(param) { 90 | return http.get('/comment/queryCount', param) 91 | }, 92 | // 点赞 93 | addLove: function(param) { 94 | return http.get('/comment/addLove', param) 95 | }, 96 | // 取消点赞 97 | cutLove: function(param) { 98 | return http.get('/comment/cutLove', param) 99 | }, 100 | // 删除评论 101 | deleteComment: function(param) { 102 | return http.get('/comment/deleteComment', param) 103 | }, 104 | // 查询文章列表 105 | queryArticles: function(param) { 106 | return http.post('/article/queryArticles', param) 107 | }, 108 | // 新增聊天消息 109 | addChat: function(param) { 110 | return http.post('/chat/add', param) 111 | }, 112 | // 查询消息数量 113 | queryChatCount: function(param) { 114 | return http.get('/chat/queryCount', param) 115 | }, 116 | // 查询聊天内容 117 | queryChatContent: function(param) { 118 | return http.get('/chat/queryChatContent', param) 119 | }, 120 | // 查询未读消息总数 121 | queryUnreadTotal: function(param) { 122 | return http.get('/chat/queryUnreadTotal', param) 123 | }, 124 | // 添加用户关注 125 | addUserFollow: function(param) { 126 | return http.post('/userFollow/addUserFollow', param) 127 | }, 128 | // 取消关注 129 | unUserFollow: function(param) { 130 | return http.post('/userFollow/unUserFollow', param) 131 | }, 132 | // 查询是否关注 133 | isFollow: function(param) { 134 | return http.get('/userFollow/isFollow', param) 135 | }, 136 | // 查询用户关注列表 137 | queryUserFollows: function(param) { 138 | return http.get('/userFollow/queryUserFollows', param) 139 | }, 140 | // 手机号登录 141 | phoneLogin: function(param) { 142 | return http.get('/user/phoneLogin', param) 143 | }, 144 | // getFlag 145 | getFlag: function() { 146 | return http.get('/index/getFlag') 147 | }, 148 | // 查询题目 149 | getAnswer: function(param) { 150 | return http.get('/answer/getAnswerPrize', param) 151 | }, 152 | // 用户答题 添加记录 153 | addAnswerRecord: function(param) { 154 | return http.post('/answer/addAnswerRecord', param) 155 | }, 156 | // 今日是否已答题 157 | isFinishToday: function(param) { 158 | return http.get('/answer/isFinishToday', param) 159 | }, 160 | // 查询答题记录 161 | queryAnswerRecords: function(param) { 162 | return http.post('/answer/queryAnswerRecords', param) 163 | }, 164 | // 添加收藏 165 | addCollect: function(param) { 166 | return http.post('/collect/addCollect', param) 167 | }, 168 | // 取消收藏 169 | removeCollect: function(param) { 170 | return http.post('/collect/removeCollect', param) 171 | }, 172 | // 是否收藏 173 | isCollect: function(param) { 174 | return http.post('/collect/isCollect', param) 175 | }, 176 | // 查询收藏 177 | queryCollect: function(param) { 178 | return http.post('/collect/queryCollect', param) 179 | } 180 | 181 | } 182 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/js/z-paging-utils.js: -------------------------------------------------------------------------------- 1 | // [z-paging]工具类 2 | 3 | import zI18n from './z-paging-i18n' 4 | 5 | const storageKey = 'Z-PAGING-REFRESHER-TIME-STORAGE-KEY' 6 | 7 | //判断两个数组是否相等 8 | function arrayIsEqual(arr1, arr2) { 9 | if (arr1 === arr2) { 10 | return true; 11 | } 12 | if (arr1.length !== arr2.length) { 13 | return false; 14 | } 15 | for (let i = 0; i < arr1.length; i++) { 16 | if (arr1[i] !== arr2[i]) { 17 | return false; 18 | } 19 | } 20 | return true; 21 | } 22 | 23 | //获取最终的touch位置 24 | function getCommonTouch(e) { 25 | let touch = null; 26 | if (e.touches && e.touches.length) { 27 | touch = e.touches[0]; 28 | } else if (e.changedTouches && e.changedTouches.length) { 29 | touch = e.changedTouches[0]; 30 | } else if (e.datail && e.datail !== {}) { 31 | touch = e.datail; 32 | } else { 33 | return { 34 | touchX: 0, 35 | touchY: 0 36 | } 37 | } 38 | return { 39 | touchX: touch.clientX, 40 | touchY: touch.clientY 41 | }; 42 | } 43 | 44 | //判断当前手势是否在z-paging内触发 45 | function getTouchFromZPaging(target) { 46 | if (target && target.tagName && target.tagName !== 'BODY' && target.tagName !== 'UNI-PAGE-BODY') { 47 | var classList = target.classList; 48 | if (classList && classList.contains('zp-paging-touch-view')) { 49 | return true; 50 | } else { 51 | return getTouchFromZPaging(target.parentNode); 52 | } 53 | } else { 54 | return false; 55 | } 56 | } 57 | 58 | //获取z-paging所在的parent 59 | function getParent(parent) { 60 | if (!parent) { 61 | return null; 62 | } 63 | if (parent.$refs.paging) { 64 | return parent; 65 | } 66 | return getParent(parent.$parent); 67 | } 68 | 69 | //打印错误信息 70 | function consoleErr(err) { 71 | console.error(`[z-paging]${err}`); 72 | } 73 | 74 | //打印警告信息 75 | function consoleWarn(warn) { 76 | console.warn(`[z-paging]${warn}`); 77 | } 78 | 79 | //设置下拉刷新时间 80 | function setRefesrherTime(time, key) { 81 | try { 82 | let datas = getRefesrherTime(); 83 | if (!datas) { 84 | datas = {}; 85 | } 86 | datas[key] = time; 87 | uni.setStorageSync(storageKey, datas); 88 | } catch {} 89 | } 90 | 91 | //获取下拉刷新时间 92 | function getRefesrherTime() { 93 | try { 94 | const datas = uni.getStorageSync(storageKey); 95 | return datas; 96 | } catch { 97 | return null; 98 | } 99 | } 100 | 101 | //通过下拉刷新标识key获取下拉刷新时间 102 | function getRefesrherTimeByKey(key) { 103 | const datas = getRefesrherTime(); 104 | if (datas) { 105 | const data = datas[key]; 106 | if (data) { 107 | return data; 108 | } 109 | } 110 | return null; 111 | } 112 | 113 | //通过下拉刷新标识key获取下拉刷新时间(格式化之后) 114 | function getRefesrherFormatTimeByKey(key) { 115 | const time = getRefesrherTimeByKey(key); 116 | let timeText = zI18n['refresherUpdateTimeNoneText'][zI18n.getLanguage()]; 117 | if (time) { 118 | timeText = _timeFormat(time); 119 | } 120 | return `${zI18n['refresherUpdateTimeText'][zI18n.getLanguage()]}${timeText}`; 121 | } 122 | 123 | //将文本的px或者rpx转为px的值 124 | function convertTextToPx(text) { 125 | const dataType = Object.prototype.toString.call(text); 126 | if (dataType === '[object Number]') { 127 | return text; 128 | } 129 | let isRpx = false; 130 | if (text.indexOf('rpx') !== -1 || text.indexOf('upx') !== -1) { 131 | text = text.replace('rpx', '').replace('upx', ''); 132 | isRpx = true; 133 | } else if (text.indexOf('px') !== -1) { 134 | text = text.replace('px', ''); 135 | } 136 | if (!isNaN(text)) { 137 | if (isRpx) { 138 | return Number(uni.upx2px(text)); 139 | } 140 | return Number(text); 141 | } 142 | return 0; 143 | } 144 | 145 | function getTime() { 146 | return (new Date()).getTime(); 147 | } 148 | 149 | //------------------ 私有方法 ------------------------ 150 | function _timeFormat(time) { 151 | const date = new Date(time); 152 | const currentDate = new Date(); 153 | const dateDay = new Date(time).setHours(0, 0, 0, 0); 154 | const currentDateDay = new Date().setHours(0, 0, 0, 0); 155 | const disTime = dateDay - currentDateDay; 156 | let dayStr = ''; 157 | const timeStr = _dateTimeFormat(date); 158 | if (disTime === 0) { 159 | dayStr = zI18n['refresherUpdateTimeTodayText'][zI18n.getLanguage()]; 160 | } else if (disTime === -86400000) { 161 | dayStr = zI18n['refresherUpdateTimeYesterdayText'][zI18n.getLanguage()]; 162 | } else { 163 | dayStr = _dateDayFormat(date, date.getFullYear() !== currentDate.getFullYear()); 164 | } 165 | return `${dayStr} ${timeStr}`; 166 | } 167 | 168 | function _dateDayFormat(date, showYear = true) { 169 | const year = date.getFullYear(); 170 | const month = date.getMonth() + 1; 171 | const day = date.getDate(); 172 | if (showYear) { 173 | return `${year}-${_fullZeroToTwo(month)}-${_fullZeroToTwo(day)}`; 174 | } else { 175 | return `${_fullZeroToTwo(month)}-${_fullZeroToTwo(day)}`; 176 | } 177 | } 178 | 179 | function _dateTimeFormat(date) { 180 | const hour = date.getHours(); 181 | const minute = date.getMinutes(); 182 | return `${_fullZeroToTwo(hour)}:${_fullZeroToTwo(minute)}`; 183 | } 184 | 185 | function _fullZeroToTwo(str) { 186 | str = str.toString(); 187 | if (str.length === 1) { 188 | return '0' + str; 189 | } 190 | return str; 191 | } 192 | 193 | module.exports = { 194 | setRefesrherTime, 195 | getRefesrherFormatTimeByKey, 196 | arrayIsEqual, 197 | getCommonTouch, 198 | getTouchFromZPaging, 199 | getParent, 200 | convertTextToPx, 201 | getTime, 202 | consoleErr, 203 | consoleWarn 204 | }; 205 | -------------------------------------------------------------------------------- /pages.json: -------------------------------------------------------------------------------- 1 | { 2 | // "permission": { 3 | // "scope.userLocation": { 4 | // "desc": "你的位置信息将用于小程序位置接口的效果展示" 5 | // } 6 | // }, 7 | 8 | "pages": [ 9 | { 10 | "path": "pages/home/index", 11 | "style": { 12 | "navigationBarTitleText": "宠物圈" 13 | } 14 | }, 15 | { 16 | "path": "pages/community/index", 17 | "style": { 18 | "navigationBarTitleText": "宠物社区" 19 | } 20 | }, 21 | { 22 | "path": "pages/user/my", 23 | "style": { 24 | "navigationBarTitleText": "我的", 25 | "enablePullDownRefresh": false 26 | } 27 | }, 28 | { 29 | "path": "pages/home/detail", 30 | "style": { 31 | "navigationBarTitleText": "宠物详情", 32 | "enablePullDownRefresh": false 33 | } 34 | }, 35 | { 36 | "path": "pages/find/index", 37 | "style": { 38 | "navigationBarTitleText": "寻宠" 39 | } 40 | }, 41 | { 42 | "path": "pages/find/detail", 43 | "style": { 44 | "navigationBarTitleText": "寻宠详情", 45 | "enablePullDownRefresh": false 46 | } 47 | }, 48 | { 49 | "path": "pages/home/add", 50 | "style": { 51 | "navigationBarTitleText": "发布领养", 52 | "enablePullDownRefresh": false 53 | } 54 | }, 55 | { 56 | "path": "pages/find/add", 57 | "style": { 58 | "navigationBarTitleText": "发布寻宠", 59 | "enablePullDownRefresh": false 60 | } 61 | }, 62 | { 63 | "path": "pages/community/add", 64 | "style": { 65 | "navigationBarTitleText": "发布动态", 66 | "enablePullDownRefresh": false 67 | } 68 | }, 69 | { 70 | "path": "pages/community/detail", 71 | "style": { 72 | "navigationBarTitleText": "宠物圈详情", 73 | "enablePullDownRefresh": false 74 | } 75 | }, 76 | { 77 | "path": "pages/cyclopedia/index", 78 | "style": { 79 | "navigationBarTitleText": "宠物科普" 80 | } 81 | }, 82 | { 83 | "path": "pages/cyclopedia/detail", 84 | "style": { 85 | "navigationBarTitleText": "科普详情", 86 | "enablePullDownRefresh": false 87 | } 88 | }, 89 | { 90 | "path": "pages/other/card", 91 | "style": { 92 | "navigationBarTitleText": "打卡签到", 93 | "enablePullDownRefresh": false 94 | } 95 | }, 96 | { 97 | "path": "pages/path/adoptPath", 98 | "style": { 99 | "navigationBarTitleText": "领养流程", 100 | "enablePullDownRefresh": false 101 | } 102 | }, 103 | { 104 | "path": "pages/user/user", 105 | "style": { 106 | "navigationBarTitleText": "个人主页", 107 | "enablePullDownRefresh": false 108 | } 109 | }, 110 | { 111 | "path": "pages/article/index", 112 | "style": { 113 | "navigationBarTitleText": "文章列表" 114 | } 115 | }, 116 | { 117 | "path": "pages/article/detail", 118 | "style": { 119 | "navigationBarTitleText": "文章详情", 120 | "enablePullDownRefresh": false 121 | } 122 | }, 123 | { 124 | "path": "pages/author/index", 125 | "style": { 126 | "navigationBarTitleText": "作者想说", 127 | "enablePullDownRefresh": false 128 | } 129 | }, 130 | { 131 | "path": "pages/chat/index", 132 | "style": { 133 | "navigationBarTitleText": "消息列表" 134 | } 135 | }, 136 | { 137 | "path": "pages/chat/detail", 138 | "style": { 139 | "navigationBarTitleText": "消息详情", 140 | "enablePullDownRefresh": false 141 | } 142 | }, 143 | { 144 | "path": "pages/user/follow", 145 | "style": { 146 | "navigationBarTitleText": "关注列表" 147 | } 148 | }, 149 | { 150 | "path": "pages/user/login", 151 | "style": { 152 | "navigationBarTitleText": "用户登录", 153 | "enablePullDownRefresh": false 154 | } 155 | }, 156 | { 157 | "path": "pages/user/register", 158 | "style": { 159 | "navigationBarTitleText": "用户注册", 160 | "enablePullDownRefresh": false 161 | } 162 | }, 163 | { 164 | "path": "pages/other/answer", 165 | "style": { 166 | "navigationBarTitleText": "答题赢奖" 167 | } 168 | }, 169 | { 170 | "path": "pages/other/answer-record", 171 | "style": { 172 | "navigationBarTitleText": "答题记录" 173 | } 174 | }, 175 | { 176 | "path": "pages/user/collect", 177 | "style": { 178 | "navigationBarTitleText": "我的收藏" 179 | } 180 | }, 181 | { 182 | "path": "pages/map/index", 183 | "style": { 184 | "navigationBarTitleText": "导航", 185 | "enablePullDownRefresh": false 186 | } 187 | } 188 | ], 189 | "globalStyle": { 190 | "navigationBarTextStyle": "black", 191 | "navigationBarTitleText": "uni-app", 192 | "navigationBarBackgroundColor": "#F8F8F8", 193 | "backgroundColor": "#F8F8F8", 194 | "enablePullDownRefresh": true 195 | 196 | }, 197 | "tabBar": { 198 | "backgroundColor": "#ffffff", 199 | "color": "#000000", 200 | "selectedColor": "#ffaa00", 201 | "list": [ 202 | { 203 | "pagePath": "pages/home/index", 204 | "iconPath":"static/tabber/home.png", 205 | "text": "领养", 206 | "selectedIconPath":"static/tabber/home_selected.png" 207 | }, 208 | { 209 | "pagePath": "pages/find/index", 210 | "iconPath":"static/tabber/find-pet.png", 211 | "text": "寻宠", 212 | "selectedIconPath":"static/tabber/find-pet_selected.png" 213 | }, 214 | { 215 | "pagePath": "pages/community/index", 216 | "iconPath":"static/tabber/circle.png", 217 | "text": "宠物社区", 218 | "selectedIconPath":"static/tabber/circle_selected.png" 219 | }, 220 | { 221 | "pagePath": "pages/user/my", 222 | "iconPath":"static/tabber/my.png", 223 | "text": "我的", 224 | "selectedIconPath":"static/tabber/my_selected.png" 225 | } 226 | ] 227 | } 228 | } 229 | -------------------------------------------------------------------------------- /components/liudx-pickerAddress/index.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 155 | 227 | 228 | -------------------------------------------------------------------------------- /components/filter-popup/detail.md: -------------------------------------------------------------------------------- 1 | ## 导入即用 全端支持 2 | 3 | ### 有问题 + wx : zy597172583 标注来意 可评论 看到及时回复 4 | 1.使用方式 5 | 6 | ```javascript 7 | 10 | 219 | 220 | 227 | -------------------------------------------------------------------------------- /uni_modules/smh-select/components/smh-select/smh-select.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 70 | 71 | 257 | -------------------------------------------------------------------------------- /uni_modules/z-paging/components/z-paging/components/z-paging-refresh.vue: -------------------------------------------------------------------------------- 1 | 2 | 3 | 31 | 130 | 131 | 269 | -------------------------------------------------------------------------------- /components/liudx-pickerAddress/u-popup.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 236 | 237 | 348 | -------------------------------------------------------------------------------- /uni_modules/hb-comment/readme.md: -------------------------------------------------------------------------------- 1 | ## 接口使用,包括点赞回复评论删除逻辑,建议参考示例项目进行二次封装; 2 | 3 | ## 本插件设计之初就是为小型项目设计,不支持分页,评论只有两级。如需改为多级或者需要支持分页,需要进行相当程度的改造。 4 | 5 | 直接使用 6 | 7 | ```html 8 | 10 | ``` 11 | 12 | 后端返回数据格式(给到前端后前端整合成树): 13 | 14 | ```js 15 | { 16 | "readNumer": 193, 17 | "commentList": [{ 18 | "id": 1, // 唯一主键 19 | "owner": false, // 是否是拥有者,为true则可以删除,管理员全部为true 20 | "hasLike": false, // 是否点赞 21 | "likeNum": 2, // 点赞数量 22 | "avatarUrl": "https://inews.gtimg.com/newsapp_ls/0/13797755537/0", // 评论者头像地址 23 | "nickName": "超长昵称超长...", // 评论者昵称,昵称过长请在后端截断 24 | "content": "啦啦啦啦", // 评论内容 25 | "parentId": null, // 所属评论的唯一主键 26 | "createTime": "2021-07-02 16:32:07" // 创建时间 27 | }, 28 | { 29 | "id": 2, 30 | "owner": false, 31 | "hasLike": false, 32 | "likeNum": 2, 33 | "avatarUrl": "https://inews.gtimg.com/newsapp_ls/0/13797761970/0", 34 | "nickName": "寂寞无敌", 35 | "content": "我是评论的评论", 36 | "parentId": 1, 37 | "createTime": "2021-07-02 17:05:50" 38 | }, 39 | { 40 | "id": 4, 41 | "owner": true, 42 | "hasLike": true, 43 | "likeNum": 1, 44 | "avatarUrl": "https://inews.gtimg.com/newsapp_ls/0/13797763270/0", 45 | "nickName": "name111", 46 | "content": "评论啦啦啦啦啦啦啦啦啦啦", 47 | "parentId": null, 48 | "createTime": "2021-07-13 09:37:50" 49 | }, 50 | { 51 | "id": 5, 52 | "owner": false, 53 | "hasLike": false, 54 | "likeNum": 0, 55 | "avatarUrl": "https://inews.gtimg.com/newsapp_ls/0/13797755537/0", 56 | "nickName": "超长昵称超长...", 57 | "content": "超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论超长评论", 58 | "parentId": null, 59 | "createTime": "2021-07-13 16:04:35" 60 | }, 61 | { 62 | "id": 13, 63 | "owner": false, 64 | "hasLike": false, 65 | "likeNum": 0, 66 | "avatarUrl": "https://inews.gtimg.com/newsapp_ls/0/13797755537/0", 67 | "nickName": "超长昵称超长...", 68 | "content": "@寂寞无敌 你怕不是个大聪明", 69 | "parentId": 1, 70 | "createTime": "2021-07-14 11:01:23" 71 | } 72 | ] 73 | } 74 | ``` 75 | 76 | 假设后端返回数据为`res`,则`commentData`可以这样得到 77 | 78 | ```js 79 | this.commentData = { 80 | "readNumer": res.readNumer, 81 | "commentSize": res.commentList.length, 82 | "comment": this.getTree(res.commentList) 83 | } 84 | ``` 85 | 86 | 其中`getTree`方法如下 87 | 88 | ```js 89 | getTree(data) { 90 | let result = []; 91 | let map = {}; 92 | data.forEach(item => { 93 | map[item.id] = item; 94 | }); 95 | data.forEach(item => { 96 | let parent = map[item.parentId]; 97 | if (parent) { 98 | (parent.children || (parent.children = [])).push(item); 99 | } else { 100 | result.push(item); 101 | } 102 | }); 103 | return result; 104 | } 105 | ``` 106 | 107 | 发布弹框借鉴了[@tenniswill](https://ext.dcloud.net.cn/publisher?id=74739)先生[评论内容发布组件](https://ext.dcloud.net.cn/plugin?id=1302)的思路,同时参照其评论区对代码作了优化 108 | 109 | ## 后端的Python实现核心代码,可以参考 110 | 111 | * mysql结构,还有一张userlist表没有列出,请自己发挥 112 | 113 | ```sql 114 | -- ---------------------------- 115 | -- Table structure for comment 116 | -- ---------------------------- 117 | DROP TABLE IF EXISTS `comment`; 118 | CREATE TABLE `comment` ( 119 | `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, 120 | `article_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所属文章id', 121 | `comment_user_id` int(10) UNSIGNED NULL DEFAULT NULL COMMENT '评论人id', 122 | `parent_id` int(10) UNSIGNED NULL DEFAULT NULL COMMENT '所属评论id,主评论为null', 123 | `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '评论内容', 124 | `like` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL COMMENT '点赞(存储点赞人id数组)', 125 | `status` tinyint(3) UNSIGNED NULL DEFAULT 0 COMMENT '状态,0-未审核,1-展现,2-审核驳回,3-已删除', 126 | `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP, 127 | `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), 128 | PRIMARY KEY (`id`) USING BTREE 129 | ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '评论' ROW_FORMAT = Compact; 130 | 131 | -- ---------------------------- 132 | -- Table structure for article_read 133 | -- ---------------------------- 134 | DROP TABLE IF EXISTS `article_read`; 135 | CREATE TABLE `article_read` ( 136 | `id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, 137 | `article_id` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '所属文章id', 138 | `read_num` int(10) UNSIGNED NULL DEFAULT 1 COMMENT '阅读数', 139 | `create_time` datetime(0) NULL DEFAULT CURRENT_TIMESTAMP, 140 | `update_time` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0), 141 | PRIMARY KEY (`id`) USING BTREE, 142 | UNIQUE INDEX `unionKey`(`article_id`) USING BTREE COMMENT '文章唯一' 143 | ) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '阅读数' ROW_FORMAT = Compact; 144 | ``` 145 | 146 | * python核心代码,其中`CS`为项目中封装的一个通用方法,请自己发挥并替换 147 | 148 | ```python 149 | # 提交评论 150 | def comment_article(articleId, userId, pId, content): 151 | if userId is None: 152 | raise CS.CustomException("请先登录", 500) 153 | if pId == 'null': 154 | pId = None 155 | conn = CS.getCoon() 156 | cursor = conn.cursor() 157 | cursor.execute("insert into comment(article_id,comment_user_id,parent_id,content,status,`like`) values(%s,%s,%s,%s,1,'[]')", 158 | (articleId, userId, pId, content)) 159 | conn.commit() 160 | cursor.close() 161 | conn.close() 162 | return CS.ResultMap(None) 163 | 164 | 165 | # 点赞评论 166 | def like_comment(commentId, userId): 167 | if userId is None: 168 | raise CS.CustomException("请先登录", 500) 169 | conn = CS.getCoon() 170 | cursor = conn.cursor() 171 | cursor.execute("select `like` from comment where id = %s", (commentId)) 172 | currentLike_json = cursor.fetchall()[0][0] 173 | currentLike = json.loads(currentLike_json) 174 | if userId in currentLike: 175 | currentLike.remove(userId) 176 | else: 177 | currentLike.append(userId) 178 | currentLike_json = json.dumps(currentLike) 179 | cursor.execute("update comment set `like` = %s where id = %s", (currentLike_json, commentId)) 180 | conn.commit() 181 | cursor.close() 182 | conn.close() 183 | return CS.ResultMap(None) 184 | 185 | 186 | # 删除评论 187 | def delete_comment(commentId, userId): 188 | if userId is None: 189 | raise CS.CustomException("请先登录", 500) 190 | conn = CS.getCoon() 191 | cursor = conn.cursor() 192 | # userId = 1为超级管理员 193 | if userId != 1: 194 | cursor.execute("select comment_user_id from comment where id = %s and status = 1",(commentId)) 195 | commentUserIdRst = cursor.fetchall() 196 | if str(commentUserIdRst) == '()': 197 | raise CS.CustomException("评论不存在或已删除", 500) 198 | if userId != commentUserIdRst[0][0]: 199 | cursor.close() 200 | conn.close() 201 | raise CS.CustomException("无删除权限", 500) 202 | cursor.execute("update comment set status=3 where id = %s or parent_id = %s", (commentId, commentId)) 203 | conn.commit() 204 | cursor.close() 205 | conn.close() 206 | return CS.ResultMap(None) 207 | 208 | 209 | # 获取评论列表 210 | def get_article_comment(articleId, userId): 211 | conn = CS.getCoon() 212 | cursor = conn.cursor() 213 | cursor.execute( 214 | '''select 215 | c.id, 216 | c.comment_user_id, 217 | u.avatar_url, 218 | u.nick_name, 219 | c.content, 220 | c.like, 221 | c.parent_id, 222 | c.create_time 223 | from comment c 224 | left join userlist u on c.comment_user_id = u.id 225 | where article_id = %s and status = 1''', (articleId)) 226 | commentList = cursor.fetchall() 227 | cursor.execute("insert into article_read(article_id) values(%s) on DUPLICATE KEY UPDATE read_num=read_num+1", (articleId)) 228 | conn.commit() 229 | cursor.execute("select read_num from article_read where article_id = %s", (articleId)) 230 | readNum = cursor.fetchall()[0][0] 231 | cursor.close() 232 | conn.close() 233 | commentResult = [] 234 | for comment in commentList: 235 | like = json.loads(comment[5]) 236 | commentEach = { 237 | "id": comment[0], 238 | "owner": False, 239 | "hasLike": False, 240 | "likeNum": len(like), 241 | "avatarUrl": comment[2], 242 | "nickName": "用户" if comment[3] == None else comment[3], 243 | "content": comment[4], 244 | "parentId": comment[6], 245 | "createTime": time.strftime("%Y-%m-%d %H:%M:%S", datetime.datetime.timetuple(comment[7])) 246 | } 247 | if len(commentEach['nickName']) > 7: 248 | commentEach['nickName'] = commentEach['nickName'][0:6] + '...' 249 | if userId is not None: 250 | # userId = 1为超级管理员 251 | if userId == comment[1] or userId == 1: 252 | commentEach["owner"] = True 253 | if userId in like: 254 | commentEach["hasLike"] = True 255 | commentResult.append(commentEach) 256 | result = { 257 | "readNumer": readNum, 258 | "commentList": commentResult 259 | } 260 | return CS.ResultMap(result) 261 | ``` 262 | --------------------------------------------------------------------------------