first commit

This commit is contained in:
编码猿
2024-09-27 02:06:13 +08:00
commit 852d94fbb9
36760 changed files with 3274413 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/
// launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数
"version": "0.0",
"configurations": [{
"app-plus" :
{
"launchtype" : "local"
},
"default" :
{
"launchtype" : "local"
},
"h5" :
{
"launchtype" : "local"
},
"type" : "uniCloud"
}
]
}

View File

@@ -0,0 +1,25 @@
<script>
export default {
onLaunch: function() {
console.log('App Launch')
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>
<style lang="less">
@import "./common/less/_.less";
@import url("./static/fonts/iconfont.css");
@font-face {
font-family: "iconfont";
src: url('./static/fonts/iconfont.ttf');
}
/deep/body{
background: #ffffff;
}
</style>

View File

@@ -0,0 +1,3 @@
@import "normalize";
@import "colors";
@import "mixins";

View File

@@ -0,0 +1,20 @@
@theme: red;
body,ul,li,p,h1,h2,h3,h4,h5,h6 {
margin: 0;
padding: 0;
}
li {
list-style: none;
}
a {
text-decoration: none;
}
input {
outline: none;
border: none;
padding: 0;
}

View File

@@ -0,0 +1,185 @@
.hairline(@position, @color) when (@position = top) {
&:before {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: auto;
right: auto;
height: 1px;
width: 100%;
background-color: @color;
display: block;
z-index: 15;
// .transform-origin(50% 0%);
html.pixel-ratio-2 & {
.transform(scaleY(0.5));
}
html.pixel-ratio-3 & {
.transform(scaleY(0.33));
}
}
}
.hairline(@position, @color) when (@position = left) {
&:before {
content: '';
position: absolute;
left: 0;
top: 0;
bottom: auto;
right: auto;
width: 1px;
height: 100%;
background-color: @color;
display: block;
z-index: 15;
// .transform-origin(0% 50%);
html.pixel-ratio-2 & {
.transform(scaleX(0.5));
}
html.pixel-ratio-3 & {
.transform(scaleX(0.33));
}
}
}
.hairline(@position, @color) when (@position = bottom) {
&:after {
content: '';
position: absolute;
left: 0;
bottom: 0;
right: auto;
top: auto;
height: 1px;
width: 100%;
background-color: @color;
display: block;
z-index: 15;
html.pixel-ratio-2 & {
.transform(scaleY(0.5));
}
html.pixel-ratio-3 & {
.transform(scaleY(0.33));
}
}
}
.hairline(@position, @color) when (@position = right) {
&:after {
content: '';
position: absolute;
right: 0;
top: 0;
left: auto;
bottom: auto;
width: 1px;
height: 100%;
background-color: @color;
display: block;
z-index: 15;
// .transform-origin(100% 50%);
html.pixel-ratio-2 & {
.transform(scaleX(0.5));
}
html.pixel-ratio-3 & {
.transform(scaleX(0.33));
}
}
}
// Shadow
.depth(@level:1) {
& when (@level = 0) {
box-shadow: none;
}
& when (@level = 1) {
box-shadow: 0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);
}
& when (@level = 2) {
box-shadow: 0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);
}
& when (@level = 3) {
box-shadow: 0 3px 3px -2px rgba(0,0,0,.2),0 3px 4px 0 rgba(0,0,0,.14),0 1px 8px 0 rgba(0,0,0,.12);
}
& when (@level = 4) {
box-shadow: 0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);
}
& when (@level = 5) {
box-shadow: 0 3px 5px -1px rgba(0,0,0,.2),0 5px 8px 0 rgba(0,0,0,.14),0 1px 14px 0 rgba(0,0,0,.12);
}
& when (@level = 6) {
box-shadow: 0 3px 5px -1px rgba(0,0,0,.2),0 6px 10px 0 rgba(0,0,0,.14),0 1px 18px 0 rgba(0,0,0,.12);
}
& when (@level = 7) {
box-shadow: 0 4px 5px -2px rgba(0,0,0,.2),0 7px 10px 1px rgba(0,0,0,.14),0 2px 16px 1px rgba(0,0,0,.12);
}
& when (@level = 8) {
box-shadow: 0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);
}
& when (@level = 9) {
box-shadow: 0 5px 6px -3px rgba(0,0,0,.2),0 9px 12px 1px rgba(0,0,0,.14),0 3px 16px 2px rgba(0,0,0,.12);
}
& when (@level = 10) {
box-shadow: 0 6px 6px -3px rgba(0,0,0,.2),0 10px 14px 1px rgba(0,0,0,.14),0 4px 18px 3px rgba(0,0,0,.12);
}
& when (@level = 11) {
box-shadow: 0 6px 7px -4px rgba(0,0,0,.2),0 11px 15px 1px rgba(0,0,0,.14),0 4px 20px 3px rgba(0,0,0,.12);
}
& when (@level = 12) {
box-shadow: 0 7px 8px -4px rgba(0,0,0,.2),0 12px 17px 2px rgba(0,0,0,.14),0 5px 22px 4px rgba(0,0,0,.12);
}
& when (@level = 13) {
box-shadow: 0 7px 8px -4px rgba(0,0,0,.2),0 13px 19px 2px rgba(0,0,0,.14),0 5px 24px 4px rgba(0,0,0,.12);
}
& when (@level = 14) {
box-shadow: 0 7px 9px -4px rgba(0,0,0,.2),0 14px 21px 2px rgba(0,0,0,.14),0 5px 26px 4px rgba(0,0,0,.12);
}
& when (@level = 15) {
box-shadow: 0 8px 9px -5px rgba(0,0,0,.2),0 15px 22px 2px rgba(0,0,0,.14),0 6px 28px 5px rgba(0,0,0,.12);
}
& when (@level = 16) {
box-shadow: 0 8px 10px -5px rgba(0,0,0,.2),0 16px 24px 2px rgba(0,0,0,.14),0 6px 30px 5px rgba(0,0,0,.12);
}
& when (@level = 17) {
box-shadow: 0 8px 11px -5px rgba(0,0,0,.2),0 17px 26px 2px rgba(0,0,0,.14),0 6px 32px 5px rgba(0,0,0,.12);
}
& when (@level = 18) {
box-shadow: 0 9px 11px -5px rgba(0,0,0,.2),0 18px 28px 2px rgba(0,0,0,.14),0 7px 34px 6px rgba(0,0,0,.12);
}
& when (@level = 19) {
box-shadow: 0 9px 12px -6px rgba(0,0,0,.2),0 19px 29px 2px rgba(0,0,0,.14),0 7px 36px 6px rgba(0,0,0,.12);
}
& when (@level = 20) {
box-shadow: 0 10px 13px -6px rgba(0,0,0,.2),0 20px 31px 3px rgba(0,0,0,.14),0 8px 38px 7px rgba(0,0,0,.12);
}
& when (@level = 21) {
box-shadow: 0 10px 13px -6px rgba(0,0,0,.2),0 21px 33px 3px rgba(0,0,0,.14),0 8px 40px 7px rgba(0,0,0,.12);
}
& when (@level = 22) {
box-shadow: 0 10px 14px -6px rgba(0,0,0,.2),0 22px 35px 3px rgba(0,0,0,.14),0 8px 42px 7px rgba(0,0,0,.12);
}
& when (@level = 23) {
box-shadow: 0 11px 14px -7px rgba(0,0,0,.2),0 23px 36px 3px rgba(0,0,0,.14),0 9px 44px 8px rgba(0,0,0,.12);
}
& when (@level = 24) {
box-shadow: 0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12);
}
}
.no-scrollbar() {
&::-webkit-scrollbar {
display: none !important;
width: 0 !important;
height: 0 !important;
-webkit-appearance: none;
opacity: 0 !important;
}
}
.ellipsis() {
white-space:nowrap;
text-overflow:ellipsis;
overflow:hidden;
word-wrap: break-word;
}

View File

@@ -0,0 +1,420 @@
/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
/**
* 1. Change the default font family in all browsers (opinionated).
* 2. Prevent adjustments of font size after orientation changes in IE and iOS.
*/
html {
font-family: sans-serif; /* 1 */
-ms-text-size-adjust: 100%; /* 2 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/**
* Remove the margin in all browsers (opinionated).
*/
body {
margin: 0;
}
/* HTML5 display definitions
========================================================================== */
/**
* Add the correct display in IE 9-.
* 1. Add the correct display in Edge, IE, and Firefox.
* 2. Add the correct display in IE.
*/
article,
aside,
details, /* 1 */
figcaption,
figure,
footer,
header,
main, /* 2 */
menu,
nav,
section,
summary { /* 1 */
display: block;
}
/**
* Add the correct display in IE 9-.
*/
audio,
canvas,
progress,
video {
display: inline-block;
}
/**
* Add the correct display in iOS 4-7.
*/
audio:not([controls]) {
display: none;
height: 0;
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Add the correct display in IE 10-.
* 1. Add the correct display in IE.
*/
template, /* 1 */
[hidden] {
display: none;
}
/* Links
========================================================================== */
/**
* 1. Remove the gray background on active links in IE 10.
* 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
*/
a {
background-color: transparent; /* 1 */
-webkit-text-decoration-skip: objects; /* 2 */
}
/**
* Remove the outline on focused links when they are also active or hovered
* in all browsers (opinionated).
*/
a:active,
a:hover {
outline-width: 0;
}
/* Text-level semantics
========================================================================== */
/**
* 1. Remove the bottom border in Firefox 39-.
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Prevent the duplicate application of `bolder` by the next rule in Safari 6.
*/
b,
strong {
font-weight: inherit;
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* Add the correct font style in Android 4.3-.
*/
dfn {
font-style: italic;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/**
* Add the correct background and color in IE 9-.
*/
mark {
background-color: #ff0;
color: #000;
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10-.
*/
img {
border-style: none;
}
/**
* Hide the overflow in IE.
*/
svg:not(:root) {
overflow: hidden;
}
/* Grouping content
========================================================================== */
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
pre,
samp {
font-family: monospace, monospace; /* 1 */
font-size: 1em; /* 2 */
}
/**
* Add the correct margin in IE 8.
*/
figure {
margin: 1em 40px;
}
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/* Forms
========================================================================== */
/**
* 1. Change font properties to `inherit` in all browsers (opinionated).
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
select,
textarea {
font: inherit; /* 1 */
margin: 0; /* 2 */
}
/**
* Restore the font weight unset by the previous rule.
*/
optgroup {
font-weight: bold;
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
* controls in Android 4.
* 2. Correct the inability to style clickable types in iOS and Safari.
*/
button,
html [type="button"], /* 1 */
[type="reset"],
[type="submit"] {
-webkit-appearance: button; /* 2 */
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Change the border, margin, and padding in all browsers (opinionated).
*/
fieldset {
border: 1px solid #c0c0c0;
margin: 0 2px;
padding: 0.35em 0.625em 0.75em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Remove the default vertical scrollbar in IE.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10-.
* 2. Remove the padding in IE 10-.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding and cancel buttons in Chrome and Safari on OS X.
*/
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* Correct the text style of placeholders in Chrome, Edge, and Safari.
*/
::-webkit-input-placeholder {
color: inherit;
opacity: 0.54;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}

View File

@@ -0,0 +1,342 @@
@import "../_";
.index{
}
.header{
position: fixed;
background: #fff;
top: 0;
left: 0;
right: 0;
z-index: 999;
padding-left: 32rpx;
padding-right: 32rpx;
padding-top:calc(var(--status-bar-height) + 16px);
padding-bottom: 32rpx;
border-bottom: 1px solid #f5f5f5;
.search{
height: 80rpx;
background: #f5f5f5;
border-radius: 8rpx;
font-size: 32rpx;
color: #999;
display: flex;
align-items: center;
padding-left: 30rpx;
}
.iconfont{
margin-right: 20rpx;
margin-top: 4rpx;
font-size: 40rpx;
}
span{
font-size: 32rpx;
color: #999;
}
}
.content{
margin-top:calc(var(--status-bar-height) + 150rpx);
padding-left: 32rpx;
padding-right: 32rpx;
}
.title_a{
font-size: 60rpx;
font-weight: 600;
color: #333;
line-height: 72rpx;
margin-bottom: 32rpx;
}
.banner{
width: 100%;
border-radius: 30rpx;
height: 100%;
}
.title_b{
margin-top: 20rpx;
font-size: 60rpx;
font-weight: 600;
color: #333;
line-height: 72rpx;
}
.tab{
margin-top: 30rpx;
display: flex;
align-items: center;
justify-content:center;
width: 326rpx;
height: 84rpx;
border-radius: 60rpx;
box-shadow: 0rpx 0rpx 24rpx rgba(0 ,0, 0,10%);
background: #fe9b95;
image{
margin-right: 20rpx;
height: 36rpx;
width: 36rpx;
}
span{
font-size: 26rpx;
color: #ffffff;
font-weight: 600;
}
}
.top_tab{
display: flex;
align-items: center;
justify-content: space-between;
}
.tab_2{
margin-top: 30rpx;
display: flex;
align-items: center;
justify-content:center;
width: 326rpx;
height: 84rpx;
border-radius: 60rpx;
box-shadow: 0px 0px 24rpx rgba(0 ,0, 0,10%);
background: #ffffff;
image{
margin-right: 10rpx;
height: 36rpx;
width: 36rpx;
}
span{
font-size: 26rpx;
color: #000000;
font-weight: 600;
}
}
.top_3{
margin-top: 30rpx;
width: 206rpx;
height: 84rpx;
display: flex;
align-items: center;
justify-content:center;
border-radius: 60rpx;
box-shadow: 0px 0px 24rpx rgba(0 ,0, 0,10%);
background: #ffffff;
image{
margin-right: 10rpx;
height: 36rpx;
width: 36rpx;
}
span{
font-size: 26rpx;
color: #000000;
font-weight: 600;
}
}
.title_c{
margin-top: 30rpx;
font-size: 32rpx;
font-weight: 600;
color: #999;
margin-bottom: 20rpx;
}
.threeMeals_top{
display: flex;
align-items: flex-end;
}
.threeMeals_text{
font-size: 32rpx;
color: #666;
margin-right: 40rpx;
position: relative;
}
.active{
font-size: 60rpx;
font-weight: 600;
color: #333;
}
.active:after {
content: "";
position: absolute;
background: #ff9d9b;
width: 100%;
height: 6px;
border-radius: 3px;
left: 0;
bottom: 0px;
z-index: -2;
}
.list_data{
width: 46%;
margin-right: 16rpx;
image{
width: 100%;
height: 448rpx;
border-radius: 14rpx;
}
p{
font-size: 36rpx;
font-weight: 600;
color: #333;
display: block;
height: 56rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height: 56rpx;
padding: 24rpx 0rpx 4rpx;
}
.txt{
font-size: 16rpx;
width: 36rpx;
height: 24rpx;
line-height: 24rpx;
border-radius: 4rpx;
color: #fff;
padding: 0rpx 6rpx;
font-weight: 600;
background: #ff8d8d;
}
.txt_2{
background: #fff2f2;
border-radius: 4rpx;
margin: 16rpx 32rpx 0rpx 0rpx;
padding: 8rpx 12rpx 8rpx 12rpx;
box-sizing: border-box;
display: inline-block;
font-size: 22rpx;
color: #ff8d8d;
overflow: hidden;
text-overflow: ellipsis;
.ellipsis()
}
}
.swiper-box{
margin-top: 40rpx;
height: 660rpx;
width: 100%;
}
/deep/.uni-scroll-view-content{
display: flex;
justify-content: space-between;
align-items: center;
}
.title_d{
font-size: 32rpx;
font-weight: 600;
color: #999;
margin-bottom: 20rpx;
}
.title_d_top{
display: flex;
align-items: flex-end;
margin-bottom: 10px;
}
.title_d_top_text{
font-size: 16px;
color: #666;
margin-right: 20px;
position: relative;
}
.active_2{
font-size: 30px;
font-weight: 600;
color: #333;
}
.active_2:after {
content: "";
position: absolute;
background: #ff9d9b;
width: 100%;
height: 6px;
border-radius: 3px;
left: 0;
bottom: 0px;
z-index: -2;
}
.title_d_content{
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap:wrap;
}
.title_d_content_list{
margin-bottom: 20px;
height: 672rpx;
width: 47%;
.food_img{
width: 100%;
height: 224px;
border-radius: 7px;
}
p{
font-size: 18px;
font-weight: 600;
color: #333;
display: block;
height: 28px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
line-height: 28px;
padding: 12px 0px 2px;
}
.yyy{
font-size: 8px;
width: 18px;
height: 12px;
line-height: 12px;
border-radius: 2px;
color: #fff;
padding: 0px 3px;
font-weight: 600;
background: #ff8d8d;
}
.dddd{
background: #fff2f2;
border-radius: 2px;
margin: 8px 16px 0px 0px;
padding: 4px 6px 4px 6px;
box-sizing: border-box;
display: inline-block;
font-size: 11px;
color: #ff8d8d;
overflow: hidden;
text-overflow: ellipsis;
}
.user{
display: flex;
align-items: center;
justify-content: space-between;
}
.user_left{
display: flex;
align-items: center;
.user_img{
height: 18px;
width: 18px;
margin-right: 5px;
border-radius: 9px;
box-shadow: 0px 1px 3px rgb(0 0 0 / 10%);
}
.tit{
width: 90px;
margin-left:5px;
height: 18px;
font-size: 9px;
zoom: 0.9;
color: #666;
max-width: 45%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
.user_right{
display: flex;
align-items: center;
.sssss{
margin-right: 5px;
}
.nubs{
color: #666;
font-size: 9px;
zoom: 0.9;
}
}
}

View File

@@ -0,0 +1,13 @@
.content{
image{
width: 100%;
}
.title{
font-size: 44rpx;
font-weight: 700;
color: #1b1b1b;
line-height: 72rpx;
margin: 0px 8rpx;
margin-top: 20rpx;
}
}

View File

@@ -0,0 +1,94 @@
.header{
position: fixed;
background: #fff;
top: 0;
left: 0;
right: 0;
z-index: 999;
padding-left: 32rpx;
padding-right: 32rpx;
padding-top:calc(var(--status-bar-height) + 32rpx);
padding-bottom: 32rpx;
border-bottom: 1px solid #f5f5f5;
.search{
height: 80rpx;
background: #f5f5f5;
border-radius: 8rpx;
font-size: 32rpx;
color: #999;
display: flex;
align-items: center;
padding-left: 30rpx;
}
.iconfont{
margin-right: 20rpx;
margin-top: 4rpx;
font-size: 40rpx;
}
span{
font-size: 32rpx;
color: #999;
}
}
.left{
height: 100%;
width: 160rpx;
position: fixed;
left: 0px;
bottom: 0px;
z-index: 210;
background: #f5f5f5;
box-sizing: border-box;
padding-top:calc(var(--status-bar-height) + 130rpx);
}
.aaa{
background: url(../../../static/img/2019.png);
display: inline-block;
height: 50rpx;
width: 50rpx;
background-size: 50rpx 1000rpx;
}
.title{
padding-top: 10px;
padding-bottom: 10px;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
span{
padding-top: 3px;
line-height: 24px;
color: #333;
font-size: 12px;
}
}
.active{
background: #ffffff;
}
.right{
margin-left: 160rpx;
padding-left: 12rpx;
padding-right: 12rpx;
display: flex;
align-items: center;
flex-wrap: wrap;
overflow: hidden;
overflow-y: overlay;
height: 100%;
padding-top:calc(var(--status-bar-height) + 152rpx);
background: #ffffff;
}
.title_a{
width: 29%;
display: flex;
align-items: center;
flex-direction: column;
padding: 0px 6px;
image{
width: 124rpx;
height: 124rpx;
}
}

View File

@@ -0,0 +1,259 @@
@import "../_";
.pad{
padding-top:var(--status-bar-height);
}
.top{
background: #ffffff;
z-index: 9999;
position: fixed;
top: 0;
right: 0;
left: 0;
width: 100%;
height: 120rpx;
border-bottom: 1px solid #f5f5f5;
display: flex;
align-items: center;
justify-content: space-between;
padding-top:calc(var(--status-bar-height));
image{
width: 156rpx;
height: 80rpx;
}
.search{
width: 300rpx;
height: 80rpx;
background: #ffffff;
display: flex;
align-items: center;
border-radius: 6rpx;
background-color: #f5f5f5;
box-sizing: border-box;
}
i{
font-size: 40rpx;
margin-right: 10rpx;
}
span{
font-size: 30rpx;
color: #767676;
}
.sousuo{
width: 100rpx;
height: 80rpx;
background: #FE552F;
color: #fff;
text-align: center;
line-height: 80rpx;
border-radius: 6rpx;
}
.caipu{
height: 80rpx;
color: #fe552f;
background: #fcefec;
width: 80rpx;
text-align: center;
margin-right: 10rpx;
box-sizing: border-box;
}
}
.iconfont{
margin-left: 15px;
display: inline-block;
font-size: 20px;
}
.content{
padding-top:calc(var(--status-bar-height)+ 122rpx);
.back{
width: 100%;
height: 375px;
}
}
.content_1{
padding: 0 15px;
.text{
width: 100%;
background: #fff;
border-radius: 16px;
box-shadow: 0px 0px 32px rgba(0 ,0, 0, 10%);
position: relative;
top: -55px;
padding: 20px 15px 30px;
box-sizing: border-box;
}
.text_1{
font-size: 28px;
font-weight: 700;
color: #333;
line-height: 38px;
}
.posttime{
font-size: 12px;
color: #999;
line-height: 20px;
display: block;
padding: 4px 0px 0px;
border-bottom: 1px solid #f5f5f5
}
}
.list_1{
display: flex;
align-items: center;
span{
display: inline-block;
font-size: 24rpx;
zoom: 0.9;
line-height: 17px;
flex: 1;
color: #4dd196;
}
.jdw {
height: 5px;
border-radius: 3px;
flex: 4;
background: #ebfbf4;
}
.jd {
height: 5px;
border-radius: 3px;
background: #4dd196;
}
}
.list{
margin: 10px 0px 10px;
position: relative;
}
.tips{
font-size: 10px;
color: #999;
line-height: 24px;
text-align: center;
}
.cpargsw{
display: flex;
justify-content: space-around;
margin-top: 17px;
}
.title_2{
display: flex;
align-items: center;
flex-direction: column;
i{
background: url("../../../static/img/2020.png");
height: 60rpx;
width: 60rpx;
display: inline-block;
background-size: 60rpx 300rpx;
}
span{
font-size: 12px;
line-height: 24px;
color: #666666;
}
}
.text_2{
font-weight: 400;
text-align: justify;
font-size: 14px;
color: #999999;
line-height: 21px;
display: block;
}
.text_2_1{
color: #5a92f5;
font-size: 14px;
line-height: 27px;
display: flex;
align-items: center;
justify-content: flex-end;
background-image: linear-gradient(to right,rgba(255,255,255,0.1),rgba(255,255,255,0.5),rgba(255,255,255,1),rgba(255,255,255,1),rgba(255,255,255,1),rgba(255,255,255,1));
.ssss{
margin-left: 2px !important;
}
.shang{
transform:rotate(90deg);
}
.xia{
transform:rotate(-90deg)
}
}
.showdata{
height: 20px;
overflow: hidden;
}
.text_3{
font-size: 16px;
color: #333;
font-weight: 700;
margin-top: 20px;
}
.text_3_1{
margin-top: 15px;
display: flex;
justify-content: space-between;
flex-wrap: wrap;
border-top: 1px solid rgba(0,0,0,0.05);
}
.text_3_2{
display: flex;
align-items: center;
justify-content: space-between;
width: 49%;
height: 36px;
border-bottom: 1px solid rgba(0,0,0,0.05);
border-right: 1px solid rgba(0,0,0,0.05);
}
.list_title{
color: #108ee9;
padding-left: 20px;
font-size: 14px;
box-sizing: border-box;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
margin-right: 15px;
}
.list_nums{
margin-right: 15px;
font-size: 14px;
color: #666;
font-weight: 400;
}
.step{
margin-top: -29px;
}
.title_0{
padding: 10px 10px;
margin-bottom: 30px;
font-size: 16px;
line-height: 24px;
color: #666;
font-weight: 400;
}
.step_list{
position: relative;
}
image{
width: 100%;
}
.step_list_1{
height: 40px;
line-height: 40px;
color: #333;
font-size: 18px;
font-weight: 700;
padding: 0px 20px 0px 15px;
background: rgba(255,255,255,0.9);
position: absolute;
left: 0px;
top: 15px;
border-top-right-radius: 20px;
border-bottom-right-radius: 20px;
z-index: 100;
}

View File

@@ -0,0 +1,120 @@
@import "../_";
.pad{
padding-top:var(--status-bar-height);
}
.top{
background: #ffffff;
z-index: 9999;
position: fixed;
top: 0;
right: 0;
left: 0;
width: 100%;
height: 120rpx;
border-bottom: 1px solid #f5f5f5;
display: flex;
align-items: center;
justify-content: space-between;
padding-top:calc(var(--status-bar-height));
image{
width: 156rpx;
height: 80rpx;
}
.search{
width: 380rpx;
height: 80rpx;
background: #ffffff;
display: flex;
align-items: center;
border-radius: 6rpx;
background-color: #f5f5f5;
box-sizing: border-box;
}
i{
font-size: 40rpx;
margin-right: 10rpx;
}
span{
font-size: 30rpx;
color: #767676;
}
.sousuo{
width: 100rpx;
height: 80rpx;
background: #FE552F;
color: #fff;
text-align: center;
line-height: 80rpx;
border-radius: 6rpx;
}
.caipu{
height: 80rpx;
color: #fe552f;
background: #fcefec;
width: 80rpx;
text-align: center;
margin-right: 10rpx;
box-sizing: border-box;
}
}
.content{
margin-top: 140rpx;
padding-left: 32rpx;
padding-right: 32rpx;
}
.title{
margin-top: 60rpx;
font-weight: 700;
font-size: 40rpx;
margin-bottom: 30rpx;
}
.list{
padding: 24rpx;
box-shadow: 0px 0px 64rpx rgba(0 ,0 ,0 ,10%);
border-radius: 32rpx;
}
.list_1{
width: 100%;
display: flex;
margin-bottom: 20rpx;
image{
width: 112px;
height: 90px;
border-radius: 16px;
}
}
.text{
width: 60%;
display: flex;
flex-direction: column;
justify-content: space-between;
box-sizing: border-box;
padding-left: 20px;
p{.ellipsis();
font-size: 17px;
font-weight: 400;
margin-bottom: 5px;
width: 100%;
}
.xx{
width: 12px;
height: 12px;
margin-bottom: 5px;
}
}
.neb{
display: flex;
align-items: center;
image{
margin-right: 3px;
width: 16px;
height: 16px;
}
span{
margin-right: 5px;
}
}

View File

@@ -0,0 +1,72 @@
.hader{
font-size: 0;
width: 100%;
height: 88rpx;
position: fixed;
z-index: 999;
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px solid #f0f0f0;
background: #ffffff;
padding-top:var(--status-bar-height);
i{
margin-left: 30rpx;
font-size: 44rpx;
}
}
.caipu{
height: 64rpx;
background: #eee;
border-radius: 4rpx;
color: #333;
font-size: 28rpx;
width: 480rpx;
line-height: 48rpx;
padding-left: 12rpx;
}
.ser {
margin-right: 30rpx;
height: 64rpx;
background: #ff4c39;
border-radius: 4rpx;
color: #fff;
font-size: 26rpx;
line-height: 64rpx;
text-align: center;
width: 110rpx;
}
.list{
padding: 0rpx 30rpx 30rpx 30rpx;
padding-top:calc(var(--status-bar-height) + 88rpx);
}
.list_content{
padding-top: 30rpx;
display: flex;
align-items: center;
justify-content: flex-start;
padding-bottom: 30rpx;
border-bottom: 1px solid rgba(0,0,0,0.05);
img{
width: 240rpx;
height: 200rpx;
margin-right: 30rpx;
}
.top{
font-size: 36rpx;
color: #333;
font-weight: 300;
padding: 2px 0px 0px;
}
.top_2{
font-size: 28rpx;
color: #999;
overflow: hidden;
}
}
.neir{
display: flex;
align-items: center;
justify-content: center;
font-size: 36rpx;
}

View File

@@ -0,0 +1,82 @@
@import "../_";
.food_list{
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 11px;
flex-wrap:wrap;
margin-bottom: 15px;
}
.food{
margin-top: 15px;
box-shadow: 1px 1px 9px #888888;
border-radius: 7px;
width: 170px;
}
.food_img{
position: relative;
image{
width: 100%;
border-top-left-radius: 7px;
border-top-right-radius: 7px;
}
.content_img_play{
background: url("../../../static/img/i.png");
position: absolute;
display: inline-block;
width: 20px;
height: 20px;
top: 9px;
right: 8px;
background-size: 20px 40px;
}
}
.food_text{
padding-left: 10px;
padding-right: 10px;
padding-bottom: 12px;
p{
.ellipsis();
font-size: 16px;
font-weight: 600;
padding: 10px 0px 0px 0px;
}
}
.food_icon{
margin-top: 20px;
display: flex;
align-items: center;
justify-content: space-between;
.food_icon_lift{
display: flex;
align-items: center;
image{
width: 18px;
height: 18px;
border-radius: 100%;
}
span{
font-size: 11px;
color: #666;
padding-left: 5px;
}
}
.food_icon_right{
display: flex;
align-items: center;
i{
background: url("../../../static/img/i.png");
width: 13px;
height: 10px;
display: inline-block;
background-position: -4px -20px;
background-size: 20px 40px;
}
span{
font-size: 12px;
}
}
}

View File

@@ -0,0 +1,81 @@
uni-video{
width: 100%;
height: 422rpx;
}
.top{
padding: 0 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
.iconfont{
font-size: 40rpx;
}
.text{
margin-left: -70rpx;
font-size: 32rpx;
color: #6e6e6e;
}
height: 60rpx;
padding-top: var(--status-bar-height);
border-bottom: 2rpx solid #b2b2b2;
}
.content_font{
padding: 20rpx 42rpx 0;
.title{
font-size: 32rpx;
font-weight: 600;
padding: 0.4rem 0rem 0rem 0rem;
line-height: 1;
}
.content_font_span {
padding: 14rpx 0 34rpx;
border-bottom: 1px solid #f1f1f1;
span{
font-size: 26rpx;
color: #999;
padding-right: 16rpx;
}
}
}
.user{
padding: 24rpx 0;
display: flex;
align-items: center;
image{
width: 92rpx;
height: 92rpx;
border-radius: 100%;
}
.user_right{
margin-left: 20rpx;
p{
font-size: 26rpx;
span{
margin-left: 18rpx;
font-size: 24rpx;
padding: 1px 2px 2px;
border: 1px solid #b2d5f3;
color: #2a9aff;
display: inline-block;
line-height: 1;
}
}
.user_p{
font-size: 26rpx;
color: #999;
margin-top: 5px;
}
}
}
.title_s{
font-size: 16px;
color: #333;
padding-bottom: 10px;
margin-top: 5px;
font-weight: 800;
}
.content_c{
font-size: 16px;
color: #333;
line-height: 27px;
}

View File

@@ -0,0 +1,27 @@
export default {
devBaseUrl: 'http://192.168.31.100:3000/api',
prodBaseUrl: 'http://127.0.0.1:3000/api',
urlList: {
class:"/index/class",//1.首页获取分类数据接口
hot:"index/hot",//2.热门推荐
threeMeals: '/index/threeMeals',//3.每日三餐接口
banner:"/index/banner",//4.获取banner图
bannerInfo:"/index/bannerInfo",//5.获取banner点击后的详情
video:'/video/list',//6.菜谱视频大全列表
search:'/search/list',//7.搜索接口
leftMenu:"/type/leftMenu",//8:分类页面左侧分类菜单
rightMenu:"/type/rightMenu",//9.分类页面获取右边的小内容
rightMenuList:"/type/rightMenuList",//10.点击右边小分类获取分类列表
info:"/index/info"//11.获取详情
},
checkUrl: function () {
switch (process.env.NODE_ENV) {
case "development":
return this.devBaseUrl;
break;
case "production":
return this.prodBaseUrl;
break;
}
}
}

View File

@@ -0,0 +1,65 @@
import config from "../config";
class http {
constructor() {
this.Interceptor()
}
get(params) {
return new Promise((resolve, reject) => {
uni.request({
url: params.url,
data: params.data,
header: Object.assign({
token: uni.getStorageSync('token')
}, params.header),
success: (res) => {
resolve(res.data)
}
});
})
}
post () {
}
Interceptor() {
uni.addInterceptor('request', {
invoke(args) {
uni.showLoading({ title: '加载中...' });
args.url = config.checkUrl() + args.url
},
success(args) {
uni.hideLoading();
switch (args.data.status) {
case 200:
console.log("args===",args)
args.data = args.data.result;
break;
case 500:
uni.showModal({
title: '温馨提示',
content: args.data.msg,
success: function (res) {
if (res.confirm) {
console.log('用户点击确定');
} else if (res.cancel) {
console.log('用户点击取消');
}
}
});
throw new Error(args.data.msg);
break;
default:
break;
}
}
})
}
}
export default new http()

View File

@@ -0,0 +1,14 @@
import Vue from 'vue'
import App from './App'
import _ from './serve/_'
Vue.config.productionTip = false
App.mpType = 'app'
Vue.prototype.$http = _
const app = new Vue({
...App
})
app.$mount()

View File

@@ -0,0 +1,101 @@
{
"name" : "vyvy",
"appid" : "__UNI__F935440",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App特有相关 */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
/* 模块配置 */
"modules" : {},
/* 应用发布信息 */
"distribute" : {
/* android打包配置 */
"android" : {
"permissions" : [
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios打包配置 */
"ios" : {},
/* SDK配置 */
"sdkConfigs" : {
"payment" : {},
"ad" : {}
},
"splashscreen" : {
"androidStyle" : "common"
}
},
"uniStatistics" : {
"enable" : false
}
},
/* 快应用特有相关 */
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true,
"uniStatistics" : {
"enable" : false
}
},
"mp-alipay" : {
"usingComponents" : true,
"uniStatistics" : {
"enable" : false
}
},
"mp-baidu" : {
"usingComponents" : true,
"uniStatistics" : {
"enable" : false
}
},
"mp-toutiao" : {
"usingComponents" : true,
"uniStatistics" : {
"enable" : false
}
},
"uniStatistics" : {
"enable" : false
},
"h5" : {
"uniStatistics" : {
"enable" : false
}
},
"mp-qq" : {
"uniStatistics" : {
"enable" : false
}
}
}

View File

@@ -0,0 +1,11 @@
{
"requires": true,
"lockfileVersion": 1,
"dependencies": {
"uview-ui": {
"version": "1.8.4",
"resolved": "https://registry.npm.taobao.org/uview-ui/download/uview-ui-1.8.4.tgz",
"integrity": "sha1-4yu/I3lCHTGQIuMk4ct7U4fTvUQ="
}
}
}

View File

@@ -0,0 +1,149 @@
{
"pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "美食APP",
"navigationStyle": "custom"
}
}
,{
"path" : "pages/video/video",
"style" :
{
"navigationBarTitleText": "菜谱视频大全",
"enablePullDownRefresh": false,
"app-plus": {
"titleNView": {
"splitLine": {
"color": "#000000",
"height": "1px"
},
"titleColor": "#000000",
"buttons": [{
"text": "\ue601",
"fontSrc": "/static/fonts/iconfont.ttf",
"float": "left",
"fontSize": "22px"
},{
"text": "返回",
"float": "left",
"fontSize": "16px"
}
,{
"text": "\ue647",
"fontSrc": "/static/fonts/iconfont.ttf",
"fontSize": "22px",
"float": "right"
}]
}
}
}
}
,{
"path" : "pages/classification/classification",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
,{
"path" : "pages/me/me",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false
}
}
,{
"path" : "pages/videoinfo/videoinfo",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
,{
"path" : "pages/search/search",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
,{
"path" : "pages/bannerInfo/bannerInfo",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
,{
"path" : "pages/rightMenuList/rightMenuList",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
,{
"path" : "pages/info/info",
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom"
}
}
],
"globalStyle": {
"navigationBarBackgroundColor": "#FFFFFF",
"backgroundColor": "#FFFFFF"
},
"tabBar": {
"color": "#7A7E83",
"selectedColor": "#3cc51f",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/index/index",
"iconPath": "static/img/home.png",
"selectedIconPath": "static/img/home2.png",
"text": "首页"
}, {
"pagePath": "pages/video/video",
"iconPath": "static/img/video.png",
"selectedIconPath": "static/img/video2.png",
"text": "视频"
},{
"pagePath": "pages/classification/classification",
"iconPath": "static/img/fl.png",
"selectedIconPath": "static/img/fl2.png",
"text": "分类"
},{
"pagePath": "pages/me/me",
"iconPath": "static/img/me.png",
"selectedIconPath": "static/img/me2.png",
"text": "我的"
}
]
}
}

View File

@@ -0,0 +1,35 @@
<template>
<view>
<view class="top"></view>
<view class="content">
<image :src="urldata.banner"></image>
<view class="title">{{urldata.title}}</view>
<view class="content_list" v-html="urldata.content"></view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
urldata: {}
}
},
onLoad(option) {
this.getbannerInfo(option.url)
},
methods: {
async getbannerInfo(toulr) {
this.urldata = await this.$http.index.bannerInfo({
url: toulr
})
console.log("三餐", this.urldata)
},
}
}
</script>
<style lang="less" scoped>
@import "../../common/less/page/bannerinfo.less";
</style>

View File

@@ -0,0 +1,78 @@
<template>
<view>
<view class="header">
<view class="search" @click="tosearch()">
<i class="iconfont">&#xe647</i>
<span>搜索百万免费菜谱</span>
</view>
</view>
<scroll-view class="left" scroll-y>
<view class="title" v-for="(v,i) in leftMenudata" :key="i" :class="{active:i==classname?isActive:!isActive}" @click="getright(v,i)">
<i class="aaa" :style="{'background-position-y':v.position*2-1+'rpx'}"
></i>
<span>{{v.title}}</span>
</view>
</scroll-view>
<view class="right" v-if="leftMenudata[classname]">
<view class="title_a" v-for="(v,i) in leftMenudata[classname].content" @click="torightMenuList(v)">
<image :src="v.img"></image>
<span class="">{{v.title}}</span>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
leftMenudata:[],
classname:0,//这个是下标
isActive:true,
}
},
async onLoad() {
await this.getleftMenu()
this.getrightMenudata()
},
methods: {
//TODO 第18行的判断有点看不懂去掉出bug,应该是渲染速度比数据请求快的问题 这个是判断它是否存在吗?
async getleftMenu() {
this.leftMenudata = await this.$http.index.leftMenu()
console.log("left",this.leftMenudata)
},
async getrightMenudata() {
if(this.leftMenudata[this.classname].content.length==0){
let res = await this.$http.index.rightMenu({
url:this.leftMenudata[this.classname].url
})
this.leftMenudata[this.classname].content.push(...res)
console.log("left",this.leftMenudata[this.classname].url)
}
},
getright(v,i){
console.log(v,i)
this.classname=i
this.getrightMenudata()
console.log("left",this.leftMenudata)
},
tosearch(){
uni.navigateTo({
url: '/pages/search/search'
})
},
torightMenuList(v){
uni.navigateTo({
url: '/pages/rightMenuList/rightMenuList?url='+v.id+'&title='+v.title
})
console.log(v)
}
}
}
</script>
<style lang="less" scoped>
@import "../../common/less/page/classification.less";
</style>

View File

@@ -0,0 +1,202 @@
<template>
<view class="index">
<view class="header" @click="tosearch()">
<view class="search">
<i class="iconfont">&#xe647</i>
<span>搜索百万免费菜谱</span>
</view>
</view>
<view class="content">
<p class="title_a">今日热门</p>
<view class="uni-padding-wrap">
<view class="page-section swiper">
<view class="page-section-spacing">
<swiper class="swiper" :autoplay="autoplay" :circular="circular"
:indicator-dots="ind" indicator-color="rgba(0, 0, 0, .3)" indicator-active-color="#ffffff">
<swiper-item v-for="(v,i) in bannerdata" :key="i" @click="tobannerInfo(v.url)">
<image :src="v.img" class="banner"></image>
</swiper-item>
</swiper>
</view>
</view>
</view>
<p class="title_b">为你推荐</p>
<view class="top_tab">
<view class="tab">
<image src="../../static/img/W1.png">
<span>每日优惠</span>
</image>
</view>
<view class="tab_2" @click="goclass()">
<image src="../../static/img/W2.png">
<span>食材大全</span>
</image>
</view>
</view>
<view class="top_tab">
<view class="top_3">
<image src="../../static/img/W3.png">
<span>热门专题</span>
</image>
</view>
<view class="top_3" @click="goclass()">
<image src="../../static/img/W4.png">
<span>菜谱分类</span>
</image>
</view>
<view class="top_3" @click="govideo()">
<image src="../../static/img/W5.png">
<span>视频菜谱</span>
</image>
</view>
</view>
<view class="title_c">每日三餐</view>
<view class="threeMeals_top">
<view class="threeMeals_text" :class="{active:i==mealsnumber?isActive:!isActive}"
v-for="(v,i) in threeMeals" :key="i" @click="clickswitch(i)">{{ v.title }}
</view>
</view><!--顶部选项-->
<swiper class="swiper-box" @change="onswitch" :current="mealsnumber"><!--轮播图-->
<swiper-item class="swiper-item" v-for="(v,i) in threeMeals" :key="i">
<scroll-view scroll-y class="list_data_1">
<view class="list_data" v-for="(data,icon) in v.content" :key="icon" @click="toinfo(data.url)">
<image :src="data.img"></image>
<p>{{ data.title }}</p>
<view class="txt">养</view>
<view class="txt_2">{{ data.des }}</view>
</view>
</scroll-view>
</swiper-item>
</swiper>
<view class="title_d">大家都在做</view>
<view class="title_d_top">
<view v-for="(v,i) in type" class="title_d_top_text" @click="title_top_typs(i)" :class="{active_2:i==typenumber?isActive:!isActive}">{{ v.title }}</view>
</view>
<view class="title_d_content" v-for="(v,i) in type" v-show="typenumber==i">
<view class="title_d_content_list" v-for="(data,i) in type[typenumber].content" :key="i" @click="toinfo(data.path)">
<view v-if="isarray(data.img) == false">
<image :src="data.img" class="food_img"></image>
</view>
<view v-if="isarray(data.img) == true">
<image :src="data.img[0]" class="food_img"></image>
</view>
<p>{{data.title}}</p>
<view class="yyy">养</view>
<view class="dddd" v-if="data.label">{{data.label.desc}}</view>
<view class="user">
<view class="user_left">
<image :src="data.author.avatar_url" class="user_img"></image>
<span class="tit">{{data.author.nickname}}</span>
</view>
<view class="user_right">
<i class="iconfont sssss">&#xe8bf</i>
<span class="nubs">{{data.viewed_amount}}</span>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
type: [
{title: '推荐', type: 1, page: 1, total_page: 0, content: []},
{title: '时令', type: 2, page: 1, total_page: 0, content: []},
{title: '食肉', type: 3, page: 1, total_page: 0, content: []},
{title: '素食', type: 4, page: 1, total_page: 0, content: []},
{title: '烘焙', type: 5, page: 1, total_page: 0, content: []},
],
typenumber: 0,
autoplay: true,//轮播图
circular: true,//轮播图
interval: 3000,//轮播图
ind: true,//轮播图
mealsnumber: 0,//轮播图页数
bannerdata: [],//轮播图数据
threeMeals: [],//每日三擦数据
isActive: true,//判断显示active
};
},
onLoad() {
this.getbanner()//获取banner图
this.getthreeMeals()//获取每日三餐
this.getclassdata()
},
onReachBottom(){
this.type[this.typenumber].page = this.type[this.typenumber].page + 1
if (this.type[this.typenumber].page< this.type[this.typenumber].total_page) {
this.getclassdata()
}
},
methods: {
isarray:function(arraya){
var arr = arraya instanceof Array
return arr
},
async getbanner() {
this.bannerdata = await this.$http.index.banner()
console.log("轮播图", this.bannerdata)
},
async getthreeMeals() {
this.threeMeals = await this.$http.index.threeMeals()
console.log("三餐", this.threeMeals)
},
async getclassdata() {
if(this.type[this.typenumber].content.length==0){
let res = await this.$http.index.class({
type: this.type[this.typenumber].type,
page: this.type[this.typenumber].page
})
this.type[this.typenumber].total_page=res.total_page
this.type[this.typenumber].content.push(...res.items)
console.log("分类", this.type)
}
},
clickswitch(i) {
this.mealsnumber = i
},
onswitch(i) {
this.mealsnumber = i.detail.current
},
tobannerInfo(toulr) {
uni.navigateTo({
url: "/pages/bannerInfo/bannerInfo?url=" + toulr
})
},
goclass() {
uni.switchTab({
url: '/pages/classification/classification'
})
},
govideo() {
uni.switchTab({
url: '/pages/video/video'
})
},
tosearch() {
uni.navigateTo({
url: '/pages/search/search'
})
},
toinfo(v) {
console.log("======", v)
uni.navigateTo({
url: '/pages/info/info?url=' + v
})
},
title_top_typs(i) {
this.typenumber = i
this.getclassdata()
}
},
};
</script>
<style lang="less" scoped>
@import "../../common/less/page/Home.less";
</style>

View File

@@ -0,0 +1,130 @@
<template>
<view class="pad">
<view class="top">
<i class="iconfont" @click="back()">&#xe601</i>
<image src="../../static/img/icon.png" @click="tohome()"></image>
<view class="search" @click="tosearch()">
<i class="iconfont">&#xe647</i>
<span>搜索百万菜谱</span>
</view>
<view class="sousuo" @click="tosearch()">搜索</view>
<view class="caipu" @click="totype()">菜谱大全</view>
</view>
<view class="content">
<image :src="data.backImg" class="back"></image>
<view class="content_1">
<view class="text">
<view class="text_1">{{ data.title }}</view>
<view class="posttime">{{ data.posttime }}</view>
<view class="list">
<view class="list_1" v-for="(v,i) in data.Statistics" :key="i">
<span>{{ v.title }}</span>
<view class="jdw">
<view class="jd" :style="v.proportion"></view>
</view>
</view>
</view>
<view class="tips">*tips: 中国居民每日推荐摄入营养所得占比数据</view>
<view class="cpargsw" v-if="data.stepInfo">
<view class="title_2" v-for="(v,i) in data.stepInfo.arr" :key="i">
<i :style="{'background-position-y':v.position*2+'rpx'}"></i>
<span>{{v.title}}</span>
</view>
</view>
<view v-if="data.stepInfo">
<view class="text_2" :class="onshou?'':'showdata'">
{{data.stepInfo.message}}
</view>
</view>
<view class="text_2_1" @click="show()">
<span>展开</span>
<i class="iconfont ssss" :class="onshou?'shang':'xia'">&#xe601</i>
</view>
<view class="text_3">主料</view>
<view class="text_3_1" v-if="data.material">
<view class="text_3_2" v-for="(v,i) in data.material.accessories" :key="i">
<view class="list_title">{{v.title}}</view>
<view class="list_nums">{{v.nums}}</view>
</view>
</view>
<view class="text_3">辅料</view>
<view class="text_3_1" v-if="data.material">
<view class="text_3_2" v-for="(v,i) in data.material.main" :key="i">
<view class="list_title">{{v.title}}</view>
<view class="list_nums">{{v.nums}}</view>
</view>
</view>
</view>
<view class="step">
<view v-for="(v,i) in data.DetailedSteps" :key="i">
<!--不是成品图的情况-->
<view v-if="!Array.isArray(v.step_img)">
<view class="step_list">
<!--是否是烹饪技巧,烹饪技巧没有图片,所以需要判断-->
<image mode="widthFix" :src="v.step_img" v-if="v.step_title!='烹饪技巧'"></image>
<span class="step_list_1">{{v.step_title}}</span>
</view>
<span class="title_0">{{v.step_text}}</span>
</view>
<!--是成品图的布局,你需要再写一套成品图的html布局-->
<view v-else>显示成品图</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
urls: '',
data: [],
onshou: false //控制显示隐藏
}
},
onLoad(option) {
this.urls = option.url
this.getinfo()
},
methods: {
async getinfo() {
this.data = await this.$http.index.info({
url: this.urls
})
console.log("left", this.data)
},
tosearch() {
uni.navigateTo({
url: '/pages/search/search'
})
},
tohome() {
uni.switchTab({
url: '/pages/index/index'
})
},
totype() {
uni.switchTab({
url: '/pages/classification/classification'
})
},
back() {
uni.navigateBack()
},
show() {
this.onshou = !this.onshou
}
},
}
</script>
<style lang="less" scoped>
@import "../../common/less/page/info.less";
</style>

View File

@@ -0,0 +1,24 @@
<template>
<view class="threeMeals_top">
</view>
</template>
<script>
export default {
data() {
return {
};
},
onLoad() {
},
methods: {}
};
</script>
<style lang="less" scoped>
@import "../../common/less/page/Home.less";
</style>

View File

@@ -0,0 +1,97 @@
<template>
<view class="pad">
<view class="top">
<image src="../../static/img/icon.png" @click="tohome()"></image>
<view class="search" @click="tosearch()">
<i class="iconfont">&#xe647</i>
<span>搜索百万菜谱</span>
</view>
<view class="sousuo" @click="tosearch()">搜索</view>
<view class="caipu" @click="totype()">菜谱大全</view>
</view>
<view class="content">
<view class="title">{{title}}做法T0P10</view>
<view class="list">
<view class="list_1" v-for="(v,i) in MenuList" :key="i" @click="toinfo(v.url)">
<image :src="v.img"></image>
<view class="text">
<p>{{v.title}}</p>
<view>
<image src="../../static/img/xx.png" class="xx"></image>
<image src="../../static/img/xx.png" class="xx"></image>
<image src="../../static/img/xx.png" class="xx"></image>
<image src="../../static/img/xx.png" class="xx"></image>
<image src="../../static/img/xx.png" class="xx"></image>
</view>
<view class="neb">
<image src="../../static/img/y.png"></image>
<span>{{v.like}}</span>
<image src="../../static/img/c.png"></image>
<span>{{v.view}}</span>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
urls: '',
title: '',
MenuList: [],
page: 0
}
},
onLoad(option) {
this.urls = option.url
this.title = option.title
this.getMenuList()
},
onReachBottom() {
this.page = this.page + 1
this.getMenuList()
},
methods: {
async getMenuList() {
let res = await this.$http.index.rightMenuList({
url: this.urls,
p: this.page
})
console.log("left", res)
this.MenuList = [
...this.MenuList,
...res
]
},
tosearch() {
uni.navigateTo({
url: '/pages/search/search'
})
},
tohome() {
uni.switchTab({
url: '/pages/index/index'
})
},
totype() {
uni.switchTab({
url: '/pages/classification/classification'
})
},
toinfo(v) {
uni.navigateTo({
url: '/pages/info/info?url=' + v
})
}
},
}
</script>
<style lang="less" scoped>
@import "../../common/less/page/rightM.less";
</style>

View File

@@ -0,0 +1,67 @@
<template>
<view>
<view class="hader">
<i class="iconfont" @click="goback()">&#xe601</i>
<input type="text" placeholder="菜谱名,食材名" v-model="datalist" class="caipu">
<button class="ser" @click="getdata()">搜索</button>
</view>
<view class="list" v-if="Showhideo">
<view class="list_content" v-for="(v,i) in content" :key="i">
<img :src="v.img" alt="">
<view class="li_left">
<p class="top">{{v.title}}</p>
<p class="top_2">{{v.des}}</p>
</view>
</view>
</view>
<view class="neir" v-else>请输入搜索的内容</view>
<!--这里判断出问题了-->
</view>
</template>
<script>
export default {
data() {
return {
page: 1,
content: [],
datalist: null,
Showhideo: false, //文字显示隐藏 默认显示文字
}
},
onLoad() {},
onReachBottom() {
this.page = this.page + 1
this.getsearch()
},
methods: {
async getsearch() {
let res = await this.$http.index.search({
q: this.datalist,
page: this.page
})
this.content = [
...this.content,
...res
]
console.log(this.content)
},
getdata() {
this.content = []
this.getsearch()
this.Showhideo = true
},
goback() {
uni.navigateBack()
}
}
}
</script>
<style lang="less" scoped>
@import "../../common/less/page/search.less";
</style>

View File

@@ -0,0 +1,80 @@
<template>
<view class="food_list">
<view class="food" v-for="(v,i) in content" :key="i" @click="InfoVideoInfo(v)">
<view class="food_img">
<image :src="v.bd_photo" mode="aspectFill"></image>
<i class="content_img_play"></i>
</view>
<view class="food_text">
<p>{{v.seo_title}}</p>
<view class="food_icon">
<view class="food_icon_lift">
<image src="../../static/img/user.jpg"></image>
<span>美食杰</span>
</view>
<view class="food_icon_right">
<i></i>
<span>{{v.click_num}}</span>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
total_page: 0,
page: 1,
content: []
}
},
onLoad() {
this.getvideo()
},
onReachBottom() {
this.page = this.page + 1
if (this.page < this.total_page) {
this.getvideo()
}
}, //触底判断请求
onNavigationBarButtonTap(e) {
console.log(e)
if(e.index == 0||e.index == 1){
uni.switchTab({
url: '/pages/index/index'
})
}else {
uni.navigateTo({
url: '/pages/search/search'
})
}
},
methods: {
async getvideo() {
let res = await this.$http.index.video({
page: this.page
});
this.total_page = res.total_page
this.content = [
...this.content,
...res.items
]
console.log(this.content);
},
InfoVideoInfo(VInfoData) {
var sti =JSON.stringify(VInfoData)
uni.navigateTo({
url: "/pages/videoinfo/videoinfo?str="+sti
})
}
}
}
</script>
<style scoped lang="less">
@import "../../common/less/page/video.less";
</style>

View File

@@ -0,0 +1,61 @@
<template>
<view>
<view class="top">
<i class="iconfont" @click="backinfo()">&#xe601</i>
<span class="text" >{{videoData.seo_title}}</span>
<span></span>
</view>
<video :src="this.videoData.xhz_video_url" :poster="videoData.bd_photo"></video>
<view class="content_font">
<view class="title">{{videoData.seo_title}}</view>
<view class="content_font_span">
<span>时长:</span>
<span class="time">{{secondToTimeStr(total_time)}}</span>
</view>
<view class="user">
<image src="../../static/img/user.jpg"></image>
<view class="user_right">
<p>美食杰 <span>专业原创菜谱视频</span></p>
<p class="user_p">做菜只用美食杰,让做饭更具幸福感!</p>
</view>
</view>
<view class="title_s">视频内容</view>
<text class="content_c">{{videoData.intro}}</text>
</view>
</view>
</template>
<script>
export default {
data() {
return {
videoData:{},
total_time:{}
}
},
onLoad(str) {
this.videoData=JSON.parse(str.str)
},
methods: {
secondToTimeStr(t) {
if (!t) return;
if (t < 60) return "00:" + ((i = t) < 10 ? "0" + i : i);
if (t < 3600) return "" + ((a = parseInt(t / 60)) < 10 ? "0" + a : a) + ":" + ((i = t % 60) < 10 ? "0" + i : i);
if (3600 <= t) {
var a, i, e = parseInt(t / 3600);
return (e < 10 ? "0" + e : e) + ":" + ((a = parseInt(t % 3600 / 60)) < 10 ? "0" + a : a) + ":" + ((i = t % 60) < 10 ? "0" + i : i);
}
},
backinfo(){
uni.navigateBack()
}
}
}
</script>
<style lang="less" scoped>
@import "../../common/less/page/videoinfo.less";
</style>

View File

@@ -0,0 +1,5 @@
import IndexServe from "./indexServe";
export default {
index: new IndexServe()
}

View File

@@ -0,0 +1,82 @@
import http from "../http";
import config from "../config";
export default class IndexServe {
async class (data = {}, header = {}) {
return await http.get({
url: config.urlList.class,
data: data,
header: header
})
}
async video (data = {}, header = {}) {
return await http.get({
url: config.urlList.video,
data: data,
header: header
})
}
async search (data = {}, header = {}) {
return await http.get({
url: config.urlList.search,
data: data,
header: header
})
}
async banner (data = {}, header = {}) {
return await http.get({
url: config.urlList.banner,
data: data,
header: header
})
}
async bannerInfo (data = {}, header = {}) {
return await http.get({
url: config.urlList.bannerInfo,
data: data,
header: header
})
}
async threeMeals (data = {}, header = {}) {
return await http.get({
url: config.urlList.threeMeals,
data: data,
header: header
})
}
async leftMenu (data = {}, header = {}) {
var res = await http.get({
url: config.urlList.leftMenu,
data: data,
header: header
})
res.forEach((v,i)=>{
v['content']=[]
}
)
return res
}
async rightMenu (data = {}, header = {}) {
return await http.get({
url: config.urlList.rightMenu,
data: data,
header: header
})
}
async rightMenuList (data = {}, header = {}) {
return await http.get({
url: config.urlList.rightMenuList,
data: data,
header: header
})
}
async info (data = {}, header = {}) {
return await http.get({
url: config.urlList.info,
data: data,
header: header
})
}
}

View File

@@ -0,0 +1,47 @@
@font-face {
font-family: "iconfont"; /* Project id 2757399 */
src: url('./static/fonts/iconfont.woff2?t=1629425908755') format('woff2'),
url('./static/fonts/iconfont.woff?t=1629425908755') format('woff'),
url('./static/fonts/iconfont.ttf?t=1629425908755') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-home:before {
content: "\e60a";
}
.icon-wode:before {
content: "\e60c";
}
.icon-sousuo:before {
content: "\e647";
}
.icon-fenlei:before {
content: "\e62f";
}
.icon-yanjing:before {
content: "\e8bf";
}
.icon-biaoqiankuozhan_shipin-178:before {
content: "\eb2a";
}
.icon-xiangshangjiantou:before {
content: "\e600";
}
.icon-xiangshangjiantou-copy:before {
content: "\e601";
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 912 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 769 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

View File

@@ -0,0 +1,76 @@
/**
* 这里是uni-app内置的常用样式变量
*
* uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量
* 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App
*
*/
/**
* 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能
*
* 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件
*/
/* 颜色变量 */
/* 行为相关颜色 */
$uni-color-primary: #007aff;
$uni-color-success: #4cd964;
$uni-color-warning: #f0ad4e;
$uni-color-error: #dd524d;
/* 文字基本颜色 */
$uni-text-color:#333;//基本色
$uni-text-color-inverse:#fff;//反色
$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息
$uni-text-color-placeholder: #808080;
$uni-text-color-disable:#c0c0c0;
/* 背景颜色 */
$uni-bg-color:#ffffff;
$uni-bg-color-grey:#f8f8f8;
$uni-bg-color-hover:#f1f1f1;//点击状态颜色
$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色
/* 边框颜色 */
$uni-border-color:#c8c7cc;
/* 尺寸变量 */
/* 文字尺寸 */
$uni-font-size-sm:24rpx;
$uni-font-size-base:28rpx;
$uni-font-size-lg:32rpx;
/* 图片尺寸 */
$uni-img-size-sm:40rpx;
$uni-img-size-base:52rpx;
$uni-img-size-lg:80rpx;
/* Border Radius */
$uni-border-radius-sm: 4rpx;
$uni-border-radius-base: 6rpx;
$uni-border-radius-lg: 12rpx;
$uni-border-radius-circle: 50%;
/* 水平间距 */
$uni-spacing-row-sm: 10px;
$uni-spacing-row-base: 20rpx;
$uni-spacing-row-lg: 30rpx;
/* 垂直间距 */
$uni-spacing-col-sm: 8rpx;
$uni-spacing-col-base: 16rpx;
$uni-spacing-col-lg: 24rpx;
/* 透明度 */
$uni-opacity-disabled: 0.3; // 组件禁用态的透明度
/* 文章场景相关 */
$uni-color-title: #2C405A; // 文章标题颜色
$uni-font-size-title:40rpx;
$uni-color-subtitle: #555555; // 二级标题颜色
$uni-font-size-subtitle:36rpx;
$uni-color-paragraph: #3F536E; // 文章段落颜色
$uni-font-size-paragraph:30rpx;

View File

@@ -0,0 +1,6 @@
## 1.2.0(2021-07-30)
- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834)
## 1.1.5(2021-05-12)
- 新增 组件示例地址
## 1.1.4(2021-02-05)
- 调整为uni_modules目录规范

View File

@@ -0,0 +1,132 @@
export default {
"pulldown": "\ue588",
"refreshempty": "\ue461",
"back": "\ue471",
"forward": "\ue470",
"more": "\ue507",
"more-filled": "\ue537",
"scan": "\ue612",
"qq": "\ue264",
"weibo": "\ue260",
"weixin": "\ue261",
"pengyouquan": "\ue262",
"loop": "\ue565",
"refresh": "\ue407",
"refresh-filled": "\ue437",
"arrowthindown": "\ue585",
"arrowthinleft": "\ue586",
"arrowthinright": "\ue587",
"arrowthinup": "\ue584",
"undo-filled": "\ue7d6",
"undo": "\ue406",
"redo": "\ue405",
"redo-filled": "\ue7d9",
"bars": "\ue563",
"chatboxes": "\ue203",
"camera": "\ue301",
"chatboxes-filled": "\ue233",
"camera-filled": "\ue7ef",
"cart-filled": "\ue7f4",
"cart": "\ue7f5",
"checkbox-filled": "\ue442",
"checkbox": "\ue7fa",
"arrowleft": "\ue582",
"arrowdown": "\ue581",
"arrowright": "\ue583",
"smallcircle-filled": "\ue801",
"arrowup": "\ue580",
"circle": "\ue411",
"eye-filled": "\ue568",
"eye-slash-filled": "\ue822",
"eye-slash": "\ue823",
"eye": "\ue824",
"flag-filled": "\ue825",
"flag": "\ue508",
"gear-filled": "\ue532",
"reload": "\ue462",
"gear": "\ue502",
"hand-thumbsdown-filled": "\ue83b",
"hand-thumbsdown": "\ue83c",
"hand-thumbsup-filled": "\ue83d",
"heart-filled": "\ue83e",
"hand-thumbsup": "\ue83f",
"heart": "\ue840",
"home": "\ue500",
"info": "\ue504",
"home-filled": "\ue530",
"info-filled": "\ue534",
"circle-filled": "\ue441",
"chat-filled": "\ue847",
"chat": "\ue263",
"mail-open-filled": "\ue84d",
"email-filled": "\ue231",
"mail-open": "\ue84e",
"email": "\ue201",
"checkmarkempty": "\ue472",
"list": "\ue562",
"locked-filled": "\ue856",
"locked": "\ue506",
"map-filled": "\ue85c",
"map-pin": "\ue85e",
"map-pin-ellipse": "\ue864",
"map": "\ue364",
"minus-filled": "\ue440",
"mic-filled": "\ue332",
"minus": "\ue410",
"micoff": "\ue360",
"mic": "\ue302",
"clear": "\ue434",
"smallcircle": "\ue868",
"close": "\ue404",
"closeempty": "\ue460",
"paperclip": "\ue567",
"paperplane": "\ue503",
"paperplane-filled": "\ue86e",
"person-filled": "\ue131",
"contact-filled": "\ue130",
"person": "\ue101",
"contact": "\ue100",
"images-filled": "\ue87a",
"phone": "\ue200",
"images": "\ue87b",
"image": "\ue363",
"image-filled": "\ue877",
"location-filled": "\ue333",
"location": "\ue303",
"plus-filled": "\ue439",
"plus": "\ue409",
"plusempty": "\ue468",
"help-filled": "\ue535",
"help": "\ue505",
"navigate-filled": "\ue884",
"navigate": "\ue501",
"mic-slash-filled": "\ue892",
"search": "\ue466",
"settings": "\ue560",
"sound": "\ue590",
"sound-filled": "\ue8a1",
"spinner-cycle": "\ue465",
"download-filled": "\ue8a4",
"personadd-filled": "\ue132",
"videocam-filled": "\ue8af",
"personadd": "\ue102",
"upload": "\ue402",
"upload-filled": "\ue8b1",
"starhalf": "\ue463",
"star-filled": "\ue438",
"star": "\ue408",
"trash": "\ue401",
"phone-filled": "\ue230",
"compose": "\ue400",
"videocam": "\ue300",
"trash-filled": "\ue8dc",
"download": "\ue403",
"chatbubble-filled": "\ue232",
"chatbubble": "\ue202",
"cloud-download": "\ue8e4",
"cloud-upload-filled": "\ue8e5",
"cloud-upload": "\ue8e6",
"cloud-download-filled": "\ue8e9",
"headphones":"\ue8bf",
"shop":"\ue609"
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,82 @@
{
"id": "uni-icons",
"displayName": "uni-icons 图标",
"version": "1.2.0",
"description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。",
"keywords": [
"uni-ui",
"uniui",
"icon",
"图标"
],
"repository": "https://github.com/dcloudio/uni-ui",
"engines": {
"HBuilderX": ""
},
"directories": {
"example": "../../temps/example_temps"
},
"dcloudext": {
"category": [
"前端组件",
"通用组件"
],
"sale": {
"regular": {
"price": "0.00"
},
"sourcecode": {
"price": "0.00"
}
},
"contact": {
"qq": ""
},
"declaration": {
"ads": "无",
"data": "无",
"permissions": "无"
},
"npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
},
"uni_modules": {
"dependencies": [],
"encrypt": [],
"platforms": {
"cloud": {
"tcb": "y",
"aliyun": "y"
},
"client": {
"App": {
"app-vue": "y",
"app-nvue": "y"
},
"H5-mobile": {
"Safari": "y",
"Android Browser": "y",
"微信浏览器(Android)": "y",
"QQ浏览器(Android)": "y"
},
"H5-pc": {
"Chrome": "y",
"IE": "y",
"Edge": "y",
"Firefox": "y",
"Safari": "y"
},
"小程序": {
"微信": "y",
"阿里": "y",
"百度": "y",
"字节跳动": "y",
"QQ": "y"
},
"快应用": {
"华为": "u",
"联盟": "u"
}
}
}
}
}

View File

@@ -0,0 +1,46 @@
## Icons 图标
> **组件名:uni-icons**
> 代码块: `uIcons`
用于展示 icons 图标 。
### 安装方式
本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。
如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
### 基本用法
在 ``template`` 中使用组件
```html
<uni-icons type="contact" size="30"></uni-icons>
```
## API
### Icons Props
|属性名 |类型 |默认值 |说明 |
|:-: |:-: |:-: |:-: |
|size |Number |24 |图标大小 |
|type |String |- |图标图案,参考示例 |
|color |String |- |图标颜色 |
### Icons Events
|事件名 |说明 |返回值|
|:-: |:-: |:-: |
|@click|点击 Icon 触发事件|- |
## 组件示例
点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/icons/icons](https://hellouniapp.dcloud.net.cn/pages/extUI/icons/icons)

View File

@@ -0,0 +1 @@
https://service.dcloud.net.cn/build/download/fdfff4c0-f5f1-11eb-a24b-519014e130c4

View File

@@ -0,0 +1 @@
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

View File

@@ -0,0 +1,3 @@
andrCertfile=C:/kj/HBuilderX/plugins/app-safe-pack/Test.keystore
andrCertAlias=android
andrCertPass=ep/Tdjka4Y7WYqDB6/S7dw==

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<script>
var __UniViewStartTime__ = Date.now();
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
CSS.supports('top: constant(a)'))
document.write(
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
</script>
<title>View</title>
<link rel="stylesheet" href="view.css" />
</head>
<body>
<div id="app"></div>
<script src="__uniappes6.js"></script>
<script src="view.umd.min.js"></script>
<script src="app-view.js"></script>
</body>
</html>

View File

@@ -0,0 +1,8 @@
var isReady=false;var onReadyCallbacks=[];
var isServiceReady=false;var onServiceReadyCallbacks=[];
var __uniConfig = {"pages":["pages/index/index","pages/about/about","pages/info/info"],"window":{"navigationBarBackgroundColor":"#fff000","backgroundColor":"#fff000"},"tabBar":{"color":"#7A7E83","selectedColor":"#3cc51f","borderStyle":"black","backgroundColor":"#ffffff","list":[{"pagePath":"pages/index/index","text":"首页"},{"pagePath":"pages/about/about","text":"关于我"}]},"nvueCompiler":"uni-app","nvueStyleCompiler":"uni-app","renderer":"auto","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":false},"appname":"vyvy","compilerVersion":"3.1.22","entryPagePath":"pages/index/index","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000}};
var __uniRoutes = [{"path":"/pages/index/index","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"哈哈哈","titleNView":{"buttons":[{"text":"","float":"left","fontSrc":"/static/uni.ttf","fontSize":"22px","color":"#FFFFFF"}]}}},{"path":"/pages/about/about","meta":{"isQuit":true,"isTabBar":true},"window":{"navigationBarTitleText":"关于我","enablePullDownRefresh":false}},{"path":"/pages/info/info","meta":{},"window":{"navigationBarTitleText":"","enablePullDownRefresh":false}}];
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:Math.round(f/20)})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:void 0,window:void 0,document:void 0,frames:void 0,self:void 0,location:void 0,navigator:void 0,localStorage:void 0,history:void 0,Caches:void 0,screen:void 0,alert:void 0,confirm:void 0,prompt:void 0,fetch:void 0,XMLHttpRequest:void 0,WebSocket:void 0,webkit:void 0,print:void 0}}}});

View File

@@ -0,0 +1 @@
(function(e){function r(r){for(var n,l,i=r[0],p=r[1],a=r[2],c=0,s=[];c<i.length;c++)l=i[c],Object.prototype.hasOwnProperty.call(o,l)&&o[l]&&s.push(o[l][0]),o[l]=0;for(n in p)Object.prototype.hasOwnProperty.call(p,n)&&(e[n]=p[n]);f&&f(r);while(s.length)s.shift()();return u.push.apply(u,a||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var p=t[i];0!==o[p]&&(n=!1)}n&&(u.splice(r--,1),e=l(l.s=t[0]))}return e}var n={},o={"app-config":0},u=[];function l(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,l),t.l=!0,t.exports}l.m=e,l.c=n,l.d=function(e,r,t){l.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},l.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.t=function(e,r){if(1&r&&(e=l(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(l.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)l.d(t,n,function(r){return e[r]}.bind(null,n));return t},l.n=function(e){var r=e&&e.__esModule?function(){return e["default"]}:function(){return e};return l.d(r,"a",r),r},l.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},l.p="/";var i=this["webpackJsonp"]=this["webpackJsonp"]||[],p=i.push.bind(i);i.push=r,i=i.slice();for(var a=0;a<i.length;a++)r(i[a]);var f=p;t()})([]);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
{"@platforms":["android","iPhone","iPad"],"id":"__UNI__F935440","name":"vyvy","version":{"name":"1.0.0","code":"100"},"description":"","launch_path":"__uniappview.html","developer":{"name":"","email":"","url":""},"permissions":{"UniNView":{"description":"UniNView原生渲染"}},"plus":{"useragent":{"value":"uni-app","concatenate":true},"splashscreen":{"target":"id:1","autoclose":true,"waiting":true,"delay":0},"popGesture":"close","launchwebview":{"id":"1","kernel":"WKWebview"},"statusbar":{"immersed":"supportedDevice","style":"light","background":"#fff000"},"usingComponents":true,"nvueStyleCompiler":"uni-app","compilerVersion":3,"distribute":{"splashscreen":{"androidStyle":"common"},"google":{"permissions":["<uses-feature android:name=\"android.hardware.camera\"/>","<uses-feature android:name=\"android.hardware.camera.autofocus\"/>","<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.CAMERA\"/>","<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>","<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>","<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>","<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>","<uses-permission android:name=\"android.permission.READ_LOGS\"/>","<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>","<uses-permission android:name=\"android.permission.VIBRATE\"/>","<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>","<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"],"packagename":"uni.UNIF935440","password":"","aliasname":"","keystore":"html5plus://test","custompermissions":true},"apple":{"devices":"universal"},"plugins":{"ad":{},"audio":{"mp3":{"description":"Android平台录音支持MP3格式文件"}}},"orientation":["portrait-primary"],"icons":{"ios":{"prerendered":"false","iphone":{"app@2x":"","app@3x":"","spotlight@2x":"","spotlight@3x":"","settings@2x":"","settings@3x":"","notification@2x":"","notification@3x":""},"appstore":"","ipad":{"app":"","app@2x":"","proapp@2x":"","spotlight":"","spotlight@2x":"","settings":"","settings@2x":"","notification":"","notification@2x":""}},"android":{"hdpi":"icon-android-hdpi.png","xhdpi":"icon-android-xhdpi.png","xxhdpi":"icon-android-xxhdpi.png","xxxhdpi":"icon-android-xxxhdpi.png"}}},"uniStatistics":{"enable":false},"allowsInlineMediaPlayback":true,"safearea":{"background":"#ffffff","bottom":{"offset":"auto"}},"uni-app":{"compilerVersion":"3.1.22","control":"uni-v3","nvueCompiler":"uni-app","renderer":"auto","nvue":{"flex-direction":"column"},"nvueLaunchMode":"normal"},"tabBar":{"color":"#7A7E83","selectedColor":"#3cc51f","borderStyle":"rgba(0,0,0,0.4)","backgroundColor":"#ffffff","list":[{"pagePath":"pages/index/index","text":"首页"},{"pagePath":"pages/about/about","text":"关于我"}],"height":"50px","child":["lauchwebview"],"selected":0},"launch_path":"__uniappview.html","adid":"125309060407"}}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More