Commit 9b1124a0 authored by miko's avatar miko

Initial commit

parents
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
module.exports = {
root: true,
globals: { wx: true },
parser: 'babel-eslint',
parserOptions: {
sourceType: 'module'
},
env: {
browser: true
},
// https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
extends: 'standard',
// required to lint *.wpy files
plugins: [
'html'
],
settings: {
'html/html-extensions': ['.html', '.wpy']
},
// add your custom rules here
'rules': {
// allow paren-less arrow functions
'arrow-parens': 0,
// allow async-await
'generator-star-spacing': 0,
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'space-before-function-paren': 0
}
}
node_modules
dist
weapp
.DS_Store
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<JSCodeStyleSettings version="0">
<option name="USE_SEMICOLON_AFTER_STATEMENT" value="false" />
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="SPACE_BEFORE_GENERATOR_MULT" value="true" />
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
</JSCodeStyleSettings>
<TypeScriptCodeStyleSettings version="0">
<option name="FORCE_SEMICOLON_STYLE" value="true" />
<option name="SPACE_BEFORE_FUNCTION_LEFT_PARENTH" value="false" />
<option name="USE_DOUBLE_QUOTES" value="false" />
<option name="FORCE_QUOTE_STYlE" value="true" />
<option name="ENFORCE_TRAILING_COMMA" value="Remove" />
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
<option name="SPACES_WITHIN_IMPORTS" value="true" />
</TypeScriptCodeStyleSettings>
<codeStyleSettings language="JavaScript">
<option name="KEEP_BLANK_LINES_IN_CODE" value="1" />
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
<option name="ALIGN_MULTILINE_FOR" value="false" />
<option name="IF_BRACE_FORCE" value="1" />
<option name="DOWHILE_BRACE_FORCE" value="1" />
<option name="WHILE_BRACE_FORCE" value="1" />
<option name="FOR_BRACE_FORCE" value="1" />
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
<codeStyleSettings language="TypeScript">
<option name="SOFT_MARGINS" value="80" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
<option name="CONTINUATION_INDENT_SIZE" value="2" />
<option name="TAB_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
</component>
\ No newline at end of file
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="CssInvalidPropertyValue" enabled="false" level="ERROR" enabled_by_default="false" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="HtmlRequiredTitleAttribute" enabled="true" level="INFORMATION" enabled_by_default="true" />
<inspection_tool class="HtmlUnknownAttribute" enabled="true" level="WARNING" enabled_by_default="true">
<option name="myValues">
<value>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="module" />
</list>
</value>
</option>
<option name="myCustomValuesEnabled" value="true" />
</inspection_tool>
<inspection_tool class="HtmlUnknownTag" enabled="false" level="WARNING" enabled_by_default="false">
<option name="myValues">
<value>
<list size="6">
<item index="0" class="java.lang.String" itemvalue="nobr" />
<item index="1" class="java.lang.String" itemvalue="noembed" />
<item index="2" class="java.lang.String" itemvalue="comment" />
<item index="3" class="java.lang.String" itemvalue="noscript" />
<item index="4" class="java.lang.String" itemvalue="embed" />
<item index="5" class="java.lang.String" itemvalue="script" />
</list>
</value>
</option>
<option name="myCustomValuesEnabled" value="true" />
</inspection_tool>
</profile>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="JavaScriptSettings">
<option name="languageLevel" value="ES6" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/mpshaodai.iml" filepath="$PROJECT_DIR$/.idea/mpshaodai.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectTasksOptions">
<TaskOptions isEnabled="true">
<option name="arguments" value="-i &quot;&quot; s/&quot;\ rpx&quot;/rpx/g $FilePath$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="wpy" />
<option name="immediateSync" value="true" />
<option name="name" value="wpy" />
<option name="output" value="$FilePath$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="sed" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="All Places" />
<option name="trackOnlyRoot" value="false" />
<option name="workingDir" value="" />
<envs />
</TaskOptions>
</component>
</project>
\ No newline at end of file
{
"singleQuote": true
}
{"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy\\lib\\wepy.js":1508932485000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy-async-function\\index.js":1487759227000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy-com-toast\\toast.wpy":1488432898000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy\\lib\\app.js":1508932484000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy\\lib\\page.js":1508932485000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy\\lib\\component.js":1508932485000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy\\lib\\event.js":1508932485000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy\\lib\\base.js":1508932484000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy\\lib\\util.js":1508932485000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy\\lib\\mixin.js":1508932485000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy-async-function\\global.js":1487760749000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\promise-polyfill\\promise.js":1511627065000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\regenerator-runtime\\runtime.js":1493390741000,"E:\\code\\mine\\js\\wepy_group\\wepy_templates\\templates\\standard\\node_modules\\wepy\\lib\\native.js":1508932485000}
\ No newline at end of file
node_modules
dist
.DS_Store
*.wpy___jb_tmp___
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "mpshaodai",
"version": "0.0.2",
"description": "A WePY project",
"main": "weapp/app.js",
"scripts": {
"dev": "./node_modules/.bin/wepy build --watch",
"build": "cross-env NODE_ENV=production ./node_modules/.bin/wepy build --no-cache",
"clean": "rm -rf weapp",
"test": "echo \"Error: no test specified\" && exit 1"
},
"wepy": {
"module-a": false,
"./src/components/list": "./src/components/wepy-list.wpy"
},
"author": "miko <136057505@qq.com>",
"license": "MIT",
"dependencies": {
"@vant/weapp": "^1.5.1",
"@wepy/core": "^2.0.0-alpha.16",
"@wepy/x": "^2.0.2",
"miniprogram-slide-view": "0.0.3"
},
"devDependencies": {
"@wepy/cli": "^2.0.0-alpha.28",
"@babel/core": "^7.1.0",
"@babel/preset-env": "^7.1.0",
"@wepy/babel-plugin-import-regenerator": "0.0.2",
"babel-eslint": "^7.2.1",
"cross-env": "^5.1.3",
"eslint": "^3.18.0",
"eslint-config-standard": "^7.1.0",
"eslint-friendly-formatter": "^2.0.7",
"eslint-plugin-html": "^2.0.1",
"eslint-plugin-promise": "^3.5.0",
"eslint-plugin-standard": "^2.0.1",
"wepy-eslint": "^1.5.3",
"less": "^3.8.1",
"@wepy/compiler-babel": "^2.0.1",
"@wepy/compiler-less": "^2.0.1"
}
}
{
"description": "A WePY project",
"setting": {
"urlCheck": true,
"es6": false,
"postcss": false,
"minified": false,
"newFeature": true,
"coverView": true,
"autoAudits": false,
"showShadowRootInWxmlPanel": true,
"scopeDataCheck": false,
"checkInvalidKey": true,
"checkSiteMap": true,
"uploadWithSourceMap": true,
"babelSetting": {
"ignore": [],
"disablePlugins": [],
"outputPath": ""
},
"nodeModules": true
},
"compileType": "miniprogram",
"appid": "wx5cda879d33846e26",
"projectname": "mpshaodai",
"miniprogramRoot": "weapp/",
"simulatorType": "wechat",
"simulatorPluginLibVersion": {},
"condition": {}
}
\ No newline at end of file
<style lang="less">
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
box-sizing: border-box;
background: #F5F5F5;
}
page{
width: 100%;
height: 100%;
}
.pc{
background: #FE991B!important;
}
</style>
<script>
import wepy from '@wepy/core';
import eventHub from './common/eventHub';
import vuex from '@wepy/x';
wepy.use(vuex);
wepy.app({
hooks: {
// App 级别 hook,对整个 App 生效
// 同时存在 Page hook 和 App hook 时,优先执行 Page hook,返回值再交由 App hook 处
'before-setData': function (dirty) {
console.log('setData dirty: ', dirty);
return dirty;
}
},
globalData: {
userInfo: null
},
onLaunch() {
this.testAsync();
eventHub.$on('app-launch', (...args) => {
console.log('app-launch event emitted, the params are:');
console.log(args);
});
wx.getSystemInfo({
success: res => {
//导航高度
this.$options.config.title_height = res.statusBarHeight + 46;
this.$options.config.statusbarHeight = res.statusBarHeight;
}, fail(err) {
console.log(err);
}
})
},
methods: {
sleep (s) {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('promise resolved')
}, s * 1000)
})
},
async testAsync () {
let d = await this.sleep(3);
console.log(d);
}
},
config:{
title_height: "64",
statusbarHeight: "24",
titleIcon_height: "32",
titleIcon_width: "87",
title_top: "24",
title_text: "xxx", // iphone X + 24
prefix: 24
}
});
</script>
<config>
{
pages: [
'pages/index'
],
window: {
navigationStyle: "custom",
backgroundTextStyle: 'light',
navigationBarTitleText: 'WeChat',
navigationBarTextStyle: 'black'
}
}
</config>
import wepy from '@wepy/core';
let eventHub = new wepy();
export default eventHub;
<style lang="less">
.counter {
text-align: left;
font-size: 12px;
}
.count {
font-size: 18px;
font-weight: bold;
&.red {
color: red;
}
&.green {
color: green;
}
}
</style>
<template>
<div class="counter {{style}}">
<button @tap="plus" size="mini"> + </button>
<button @tap="minus" size="mini"> - </button>
<button @tap="increment" size="mini"> INCREMENT </button>
<button @tap="decrement" size="mini"> DECREMENT </button>
<button @tap="incrementAsync" size="mini"> ASYNC INCREMENT </button>
<span class="count"> {{counter}} </span>
</div>
</template>
<script>
import wepy from '@wepy/core'
import store from '../store';
import { mapState, mapActions } from '@wepy/x';
wepy.component({
store,
props: {
num: {
type: [Number, String],
coerce: function (v) {
return +v
},
default: 50
}
},
computed: mapState([ 'counter' ]),
events: {
'index-broadcast': (...args) => {
let $event = args[args.length - 1]
console.log(`${this.$name} receive ${$event.name} from ${$event.source.$name}`)
}
},
watch: {
num (curVal, oldVal) {
console.log(`旧值:${oldVal},新值:${curVal}`)
}
},
methods: {
...mapActions([
'increment',
'decrement',
'incrementAsync'
]),
plus () {
this.num = this.num + 1
console.log('plus tapped in component');
this.$emit('index-emit', this.num);
},
minus () {
this.num = this.num - 1
console.log(this.$name + ' minus tap')
}
}
})
</script>
<style type="less">
.group {}
</style>
<template>
<div class="group">
<span class="id">{{grouplist.id}}. </span>
<span class="name" @tap="tap">{{grouplist.name}}</span>
<div>
<div v-for="item in grouplist.list">
<groupitem :gitem="item"></groupitem>
</div>
</div>
</div>
</template>
<script>
import wepy from '@wepy/core';
//import GroupItem from './groupitem'
wepy.component({
props: {
grouplist: {},
index: {}
},
methods: {
tap () {
this.grouplist.name = `Parent Random(${Math.random()})`
let groups = this.$parent.$children.filter(com => com.$is === 'components/group');
let index = groups.indexOf(this);
console.log(`Clicked Group ${index}, ID is ${this.grouplist.id}`)
}
}
});
</script>
<config>
{
usingComponents: {
'groupitem': './groupitem'
}
}
</config>
<style type="less">
.groupitem {
}
</style>
<template>
<div class="groupitem">
--<span class="id">{{gitem.childid}}.</span>
<span class="name" @tap="tap"> {{gitem.childname}}</span>
</div>
</template>
<script>
import wepy from '@wepy/core';
wepy.component({
props: {
gitem: {}
},
data: {
},
methods: {
tap () {
this.gitem.childname = `Child Random(${Math.random()})`
let index = this.$parent.$children.indexOf(this);
console.log(`Item ${index}, ID is ${this.gitem.childid}`)
}
}
});
</script>
<style type="less">
.title {
width: 100%;
box-sizing: border-box;
transform: translateZ(0);
}
.navgation{
display: flex;
flex-direction: row;
align-items: center;
text-align: center;
}
.navgation_img{
margin-left: 2.3vw;
z-index: 10000;
height:4.2vw;
width:4.2vw;
}
.title_text {
width: 100vw;
display: flex;
align-items: center;
justify-content: center;
flex-direction: row;
font-size: 35rpx;
color: #fff;
line-height: 44px;
}
.title_icon {
margin-left: 16rpx;
border-radius: 64rpx;
box-sizing: border-box;
border: 1px solid white;
display: flex;
}
.title_icon image {
height: 20px;
width: 20px;
padding-top: 5px;
display: inline-block;
overflow: hidden;
}
.title_icon view {
height: 18px;
border-left: 1px solid #bfb973;
margin-top: 6px;
}
.floatL {
float: left;
}
.title_icon image:nth-of-type(1), .title_icon image:nth-of-type(2) {
padding-right: 10px;
padding-bottom: 10px;
padding-left: 10px;
}
</style>
<template>
<div class="title"
style="height:{{title_height}}px;padding-top:{{statusbarHeight}}px;background-color:{{background}}">
<div class="title_text" style="height:{{title_height-statusbarHeight}}px;color:white">
<text>{{title_text}}</text>
<div class="title_text" style="justify-content: flex-start;height:{{title_height-statusbarHeight}}px;width: 100vw;position: fixed;z-index: 100000;">
<div wx:if="{{isShow==='true'}}" class="title_icon"
style="height:{{titleIcon_height}}px;width:{{titleIcon_width}}px;">
<image bindtap="_goBack" class="floatL" src="../assets/return.png"></image>
<div class="floatL"></div>
<image bindtap="_goHome" src="../assets/home.png"></image>
</div>
</div>
</div>
</div>
</template>
<script>
import wepy from '@wepy/core';
const app = getApp().$wepy.$options
wepy.component({
props: {
isShow: { // 是否显示后退按钮
type: String,
default: "false",
},
isIndex: { // 是否主页
type: Boolean,
default: false,
},
title_height: { //
type: String,
default: app.config.title_height,
},
titleIcon_height: {
type: String,
default: app.config.titleIcon_height,
},
titleIcon_width: {
type: String,
default: app.config.titleIcon_width,
},
statusbarHeight: {
type: String,
default: app.config.statusbarHeight,
},
title_top: {
type: String,
default: app.config.title_top,
},
title_text: {
type: String,
default: app.config.title_text,
},
background: {
type: String,
default: '#A6C185',
}
},
data: {
},
methods: {
_goBack() {
wx.navigateBack({
delta: 1
});
},
_goHome() {
wx.switchTab({
url: "../main/main"
});
}
}
});
</script>
<style lang="less">
.mylist:odd {
color: red;
}
.mylist:even {
color: green;
}
</style>
<template>
<div class="list">
This component is not used. because list is an aliasField in package.json
</div>
</template>
<script>
import wepy from '@wepy/core'
wepy.component({
data: {
list: [
{
id: '0',
title: 'loading'
}
]
},
events: {
'index-broadcast': (...args) => {
let $event = args[args.length - 1]
console.log(`${this.$name} receive ${$event.name} from ${$event.source.name}`)
}
},
methods: {
tap () {
// this.num = this.num + 1
console.log(this.$name + ' tap')
},
add () {
let len = this.list.length
this.list.push({id: len + 1, title: 'title_' + len})
}
}
onLoad () {
}
});
</script>
<style lang="less">
panel {
width: 100%;
}
.panel {
width: 100%;
margin-top: 20rpx;
text-align: left;
font-size: 12px;
padding-top: 20rpx;
padding-left: 50rpx;
padding-bottom: 20rpx;
border: 1px solid #ccc;
.title {
padding-bottom: 20rpx;
font-size: 14px;
font-weight: bold;
}
.info {
padding: 15rpx;
}
.testcounter {
margin-top: 15rpx;
position: absolute;
}
.counterview {
margin-left: 120rpx;
}
}
</style>
<template>
<div class="panel">
<slot name="title">
Title
</slot>
<slot>
</slot>
</div>
</template>
<style lang="less">
.mylist:odd {
color: red;
}
.mylist:even {
color: green;
}
</style>
<template>
<div class="wepy-list">
<div>
<button @tap="add" size="mini">添加列表another</button>
</div>
<div v-for="(item, index) in list">
<div @tap="tap" class="mylist">
<span>{{item.id}}</span>: {{item.title}} <span @tap="remove(index)"> X </span>
</div>
</div>
</div>
</template>
<script>
import wepy from '@wepy/core'
wepy.component({
data: {
list: [
{
id: '0',
title: 'loading'
}
]
},
events: {
'index-broadcast': (...args) => {
let $event = args[args.length - 1]
console.log(`${this.$name} receive ${$event.name} from ${$event.source.name}`)
}
},
methods: {
tap () {
// this.num = this.num + 1
console.log(this.$name + ' tap')
},
add () {
let len = this.list.length
this.list.push({id: len + 1, title: 'title_' + len})
},
remove (index) {
this.$delete(this.list, index);
}
},
onLoad () {
}
});
</script>
export default {
data: {
mixin: 'MixinText'
},
methods: {
mixintap () {
this.mixin = 'MixinText' + (Math.random() + '').substring(3, 7);
console.log('mixin method tap');
},
tap () {
console.log('tap in mixin');
}
},
created () {
console.log('created in mixin');
}
}
<style lang="less">
.panel-title {
font-size: 36rpx;
color: black;
}
.header {
width: 100%;
height: 170rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: center;
.inner {
margin-top: 10rpx;
display: flex;
flex-direction: row;
align-items: center;
justify-content: space-between;
width: 490rpx;
.avatar-small {
border-radius: 50%;
overflow: hidden;
background: #aaaaaa;
z-index: 1000;
width: 83rpx;
height: 83rpx;
}
.avatar-big {
border-radius: 50%;
overflow: hidden;
background: #aaaaaa;
z-index: 1000;
width: 119rpx;
height: 119rpx;
}
}
}
.message {
border: 1px solid #EBEBEB;
border-radius: 7px;
background: #FFFFFFDB;
height: 228rpx;
width: 678rpx;
margin-top: -80rpx;
.inner {
border-radius: 7px;
background: white;
padding: 0 24rpx;
align-items: center;
margin-top: 80rpx;
display: flex;
flex-direction: row;
justify-content: space-between;
height: 148rpx;
.inner-left {
display: flex;
align-items: center;
flex-direction: row;
}
image {
height: 36rpx;
width: 36rpx
}
}
}
.bt-submit{
color: white!important;
margin-top: 43rpx;
height: 91rpx!important;
width: 322rpx;
}
.address {
box-sizing: border-box;
display: flex;
flex-direction: column;
margin-top: 22rpx;
border: 1px solid #EBEBEB;
border-radius: 7px;
background: #FFFFFFDB;
min-height: 240rpx;
width: 678rpx;
padding: 25rpx 24rpx 5rpx 24rpx;
.top {
border-bottom: 1px solid #EDEDED;
height: 65rpx;
}
.bottom {
box-sizing: border-box;
display: flex;
flex: auto;
flex-direction: row;
align-items: center;
justify-content: space-between;
.address-text {
color: #636363;
width: 558rpx;
font-size: 29rpx;
}
image {
width: 36rpx;
height: 36rpx;
}
}
}
.remark {
box-sizing: border-box;
display: flex;
flex-direction: column;
margin-top: 22rpx;
border: 1px solid #EBEBEB;
border-radius: 7px;
background: #FFFFFFDB;
min-height: 422rpx;
width: 678rpx;
padding: 25rpx 24rpx 5rpx 24rpx;
.top {
border-bottom: 1px solid #EDEDED;
height: 65rpx;
}
.middle{
padding-top: 17rpx;
display: flex;
align-content:flex-start;
flex-direction: row;
flex-wrap: wrap;
box-sizing: border-box;
height: 203rpx;
width: 100%;
.tag-uncheck{
border: 1px solid #EBEBEB;
margin: 12rpx 24rpx 10rpx 0;
box-sizing: border-box;
height: 72rpx;
padding: 16rpx 31rpx;
font-size: 29rpx;
color: #606060;
border-radius: 34rpx;
background: #F7F7F7;
}
}
.bottom {
box-sizing: border-box;
display: flex;
flex: auto;
flex-direction: row;
align-items: center;
input {
margin-left: 15rpx;
color: #636363;
width: 558rpx;
font-size: 29rpx;
}
image {
width: 40rpx;
height: 40rpx;
}
}
}
</style>
<wxs module="m1" lang="babel">
const getTime = (time) => {
let date = getDate(time);
let hour = date.getHours();
let mins = date.getMinutes();
let sec = date.getSeconds();
let milli = date.getMilliseconds();
return `${hour}:${mins}:${sec}.${milli}`;
}
module.exports.getTime = getTime;
</wxs>
<template>
<div class="container" style="align-items: center">
<header background="#FE991B" title_text="捎带"/>
<div class="header pc">
<div class="inner">
<image class="avatar-small"></image>
<image class="avatar-big"></image>
<image class="avatar-small"></image>
</div>
</div>
<div class="message">
<div class="inner">
<div class="inner-left">
<input style="position: absolute;border: none"/>
<div style="width: 9rpx;height: 33rpx;" class="pc"/>
<span style="color: black;margin-left: 30rpx;font-size: 31rpx">粘贴短信或者识别截图</span>
</div>
<img src="@/assets/pic.png"/>
</div>
</div>
<div class="address">
<div class="top">
<span class="panel-title">送达宿舍</span>
</div>
<div class="bottom">
<div class="address-text">一号楼01层01号邹德宏邹德宏 15891396443</div>
<img src="@/assets/edit.png"/>
</div>
</div>
<div class="remark">
<div class="top">
<span class="panel-title">留言</span>
</div>
<div class="middle">
<div class="tag-uncheck">晚上再送</div>
<div class="tag-uncheck">我很着急</div>
<div class="tag-uncheck">请敲门</div>
<div class="tag-uncheck">易碎物品</div>
<div class="tag-uncheck">冷藏物品 请勿暴晒</div>
</div>
<div class="bottom">
<img src="@/assets/info.png"/>
<input placeholder="也可以填写其他留言"/>
</div>
</div>
<van-button round custom-class="bt-submit pc">提 交</van-button>
<!-- <button class="bt-submit pc">提 交</button>-->
</div>
</template>
<script>
import wepy from '@wepy/core'
import eventHub from '../common/eventHub'
import { mapState } from '@wepy/x'
import store from '../store'
import testMixin from '../mixins/test'
const app = getApp().$wepy.$options
wepy.page({
store,
config: {
navigationBarTitleText: 'test'
},
hooks: {
// Page 级别 hook, 只对当前 Page 的 setData 生效。
'before-setData': function(dirty) {
if (Math.random() < 0.2) {
console.log('setData canceled')
return false // Cancel setData
}
dirty.time = +new Date()
return dirty
}
},
mixins: [testMixin],
data: {
inputmodel: 'v-model',
mynum: 20,
userInfo: {
nickName: '加载中...'
},
currentTime: +new Date(),
setTimeoutTitle: '标题三秒后会被修改',
count: 0,
netrst: '',
groupList: [
{
id: 1,
name: '点击改变',
list: [
{
childid: '1.1',
childname: '子项,点我改变'
}, {
childid: '1.2',
childname: '子项,点我改变'
}, {
childid: '1.3',
childname: '子项,点我改变'
}
]
},
{
id: 2,
name: '点击改变',
list: [
{
childid: '2.1',
childname: '子项,点我改变'
}, {
childid: '2.2',
childname: '子项,点我改变'
}, {
childid: '2.3',
childname: '子项,点我改变'
}
]
},
{
id: 3,
name: '点击改变',
list: [
{
childid: '3.1',
childname: '子项,点我改变'
}
]
}
]
},
computed: {
...mapState(['counter']),
testcomputed() {
return 'computed - ' + this.mynum
}
},
methods: {
handleViewTap() {
console.log('handleVieTap clicked')
},
tap() {
throw 'can not go here'
},
plus() {
this.mynum++
},
toast() {
let promise = this.$invoke('toast', 'show', {
title: '自定义标题',
img: 'https://raw.githubusercontent.com/kiinlam/wetoast/master/images/star.png'
})
promise.then((d) => {
console.log('toast done')
})
},
mixintap() {
console.log('do noting from ' + this.$is)
},
communicate() {
let counters = this.$children.filter((com) => com.$is === 'components/counter')
// Get children counter
counters[0].num++
counters[1].num--
eventHub.$emit('app-launch', { a: 1 }, { b: 2 })
},
request() {
let self = this
let i = 10
let map = ['MA==', 'MQo=', 'Mg==', 'Mw==', 'NA==', 'NQ==', 'Ng==', 'Nw==', 'OA==', 'OQ==']
while (i--) {
wx.request({
url: 'https://www.madcoder.cn/tests/sleep.php?time=1&t=css&c=' + map[i] + '&i=' + i,
success: function(d) {
if (d.statusCode !== 200) {
self.netrst += d.statusCode + '.'
} else {
self.netrst += d.data + '.'
}
}
})
}
},
counterEmit(num) {
console.log(`${this.$is} receive event, the number is: ${num}`)
}
},
created() {
let self = this
self.currentTime = +new Date()
self.setTimeoutTitle = '标题三秒后会被修改'
setTimeout(() => {
self.setTimeoutTitle = '到三秒了'
}, 3000)
wx.getUserInfo({
success(res) {
self.userInfo = res.userInfo
}
})
}
})
</script>
<config>
{
navigationBarTextStyle: "white",
navigationBarBackgroundColor: "#45C9C3",
navigationBarTitleText: '小树懒捎带',
usingComponents: {
header: '~@/components/header',
panel: '~@/components/panel',
'van-button': 'module:@vant/weapp/lib/button',
counter: '~counter',
list: '../components/list',
group: '../components/group',
"slide-view": "module:miniprogram-slide-view",
}
}
</config>
import Vuex from '@wepy/x';
export default new Vuex.Store({
state: {
counter: 0
},
mutations: {
increment (state) {
state.counter++;
},
decrement (state) {
state.counter--;
}
},
actions: {
increment ({ commit }) {
commit('increment');
},
decrement ({ commit }) {
commit('decrement');
},
incrementAsync ({ commit }) {
setTimeout(() => {
commit('increment');
}, 1000);
}
}
});
const path = require('path');
var prod = process.env.NODE_ENV === 'production';
module.exports = {
wpyExt: '.wpy',
eslint: true,
cliLogs: !prod,
static: ['static'],
build: {
},
resolve: {
alias: {
counter: path.join(__dirname, 'src/components/counter'),
'@': path.join(__dirname, 'src')
},
aliasFields: ['wepy', 'weapp'],
modules: ['node_modules']
},
compilers: {
less: {
compress: prod
},
babel: {
sourceMap: true,
presets: [
'@babel/preset-env'
],
plugins: [
'@wepy/babel-plugin-import-regenerator'
]
}
},
plugins: [],
appConfig: {
noPromiseAPI: ['createSelectorQuery']
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment