提交 933999da authored 作者: 王鹏飞's avatar 王鹏飞

bug fixes

上级 16135cdc
module.exports = {
presets: ['@vue/cli-plugin-babel/preset'],
plugins: [
[
'import',
{
libraryName: 'vant',
libraryDirectory: 'es',
style: true
}
]
]
presets: ['@vue/cli-plugin-babel/preset']
}
......@@ -11,15 +11,15 @@
"dependencies": {
"axios": "^0.20.0",
"core-js": "^3.6.5",
"dayjs": "^1.8.36",
"dayjs": "^1.9.1",
"js-cookie": "^2.2.1",
"md5": "^2.3.0",
"qs": "^6.9.4",
"timeago.js": "^4.0.2",
"vant": "^2.10.7",
"vant": "^2.10.9",
"vue": "^2.6.12",
"vue-meta": "^2.4.0",
"vue-router": "^3.4.3",
"vue-router": "^3.4.6",
"vuex": "^3.5.1"
},
"devDependencies": {
......@@ -29,7 +29,6 @@
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"babel-eslint": "^10.1.0",
"babel-plugin-import": "^1.13.0",
"eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2",
"sass": "^1.26.5",
......
......@@ -13,7 +13,6 @@
max-width: 750px;
min-height: 100vh;
margin: 0 auto;
background-color: #fff;
overflow: hidden;
}
</style>
......@@ -94,7 +94,7 @@ body {
line-height: 1.4;
color: #1b1b1b;
font-family: -apple-system-font, 'Helvetica Neue', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
background-color: #f4f4f4;
background-color: #fff;
}
input[type='search']::-webkit-search-cancel-button {
display: none;
......
......@@ -7,11 +7,11 @@
<div class="activity-item-main">
<div class="activity-item-title">{{ data.activity_name }}</div>
<div class="activity-item-content">
<p>{{ data.activity_city }} · {{data.org_name}} · {{ data.stu_nums }}人参与</p>
<p>{{ data.activity_city }} · {{ data.org_name }} · {{ data.stu_nums }}人参与</p>
<p>{{ data.activity_time | dateFormat }}</p>
</div>
<div class="status" v-html="statusText"></div>
</div>
<div class="activity-item-status" v-html="statusText"></div>
</div>
</template>
......@@ -54,6 +54,7 @@ export default {
.activity-item {
position: relative;
display: flex;
align-items: center;
margin-bottom: 15px;
}
.activity-item-pic {
......@@ -87,7 +88,6 @@ export default {
}
.activity-item-content {
p {
width: 75%;
margin-top: 8px;
font-size: 12px;
color: #a0a0a0;
......@@ -114,11 +114,8 @@ export default {
background: url('~@/assets/img/top_03.png') no-repeat center;
background-size: contain;
}
.status {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
.activity-item-status {
margin-left: 10px;
::v-deep span {
height: 15px;
padding: 0 4px;
......
<template>
<div class="card">
<div class="card-hd">
<div class="card-hd" v-if="title">
<h3 class="card-hd__title">{{ title }}</h3>
<div class="card-hd__aside">
<slot name="aside"></slot>
......
......@@ -83,12 +83,7 @@
<!-- 上传多个图片 -->
<template v-else-if="item.fieldType === 'upliadMultiple'">
<van-field
:border="false"
:required="false"
v-bind="item"
v-if="item.isShow ? item.isShow(ruleForm) : true"
>
<van-field :border="false" :required="false" v-bind="item" v-if="item.isShow ? item.isShow(ruleForm) : true">
<!-- <template #label>
{{ item.label }}
<span class="red" v-if="item.required">*</span>
......@@ -101,12 +96,7 @@
<!-- 上传视频 -->
<template v-else-if="item.fieldType === 'video'">
<van-field
:border="false"
:required="false"
v-bind="item"
v-if="item.isShow ? item.isShow(ruleForm) : true"
>
<van-field :border="false" :required="false" v-bind="item" v-if="item.isShow ? item.isShow(ruleForm) : true">
<!-- <template #label>
{{ item.label }}
<span class="red" v-if="item.required">*</span>
......@@ -132,11 +122,7 @@
</template>-->
<template #input>
<van-radio-group v-model="ruleForm[item.name]" direction="horizontal">
<van-radio
:name="item.name"
v-for="item in item.values"
:key="item.name"
>{{ item.text }}</van-radio>
<van-radio :name="item.name" v-for="item in item.values" :key="item.name">{{ item.text }}</van-radio>
</van-radio-group>
</template>
</van-field>
......@@ -148,7 +134,7 @@
:border="false"
:required="false"
v-bind="item"
v-model="ruleForm[item.name]"
v-model.trim="ruleForm[item.name]"
v-if="item.isShow ? item.isShow(ruleForm) : true"
>
<!-- <template #label>
......
......@@ -33,9 +33,6 @@ export default {
</script>
<style lang="scss">
#app{
background: #F7F8F9;
}
.message-item {
display: flex;
align-items: center;
......@@ -87,10 +84,10 @@ export default {
.un-read .message-item-content__title {
font-weight: bold;
}
.margin-none{
.margin-none {
margin: 0;
}
.text-ellipsis{
.text-ellipsis {
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
......
......@@ -7,11 +7,11 @@
<div class="my-activity-item-main">
<div class="my-activity-item-title">{{ data.activity_name }}</div>
<div class="my-activity-item-content">
<p>{{ data.activity_city }} · {{data.org_name}} · {{ data.stu_nums }}人参与</p>
<p>{{ data.activity_city }} · {{ data.org_name }} · {{ data.stu_nums }}人参与</p>
<p>{{ data.activity_time }}</p>
</div>
<div class="status" v-html="statusText"></div>
</div>
<div class="my-activity-item-status" v-html="statusText"></div>
</div>
<!-- <div class="my-activity-item-ft">
<ul>
......@@ -75,6 +75,7 @@ export default {
}
.my-activity-item-bd {
display: flex;
align-items: center;
overflow: hidden;
}
......@@ -140,11 +141,8 @@ export default {
background: linear-gradient(180deg, rgba(255, 201, 44, 1) 0%, rgba(255, 116, 42, 1) 100%);
}
}
.status {
position: absolute;
right: 0;
top: 50%;
transform: translateY(-50%);
.my-activity-item-status {
margin-left: 10px;
::v-deep span {
height: 15px;
padding: 0 4px;
......
......@@ -3,71 +3,14 @@ import App from './App.vue'
import router from './router'
import store from '@/store'
import Vant from 'vant'
import 'vant/lib/index.css'
Vue.use(Vant)
// vue-meta
import VueMeta from 'vue-meta'
Vue.use(VueMeta)
import { Icon } from 'vant'
Vue.use(Icon)
// vant
import { Notify } from 'vant'
Vue.use(Notify)
import { Dialog } from 'vant'
Vue.use(Dialog)
import { Toast } from 'vant'
Vue.use(Toast)
import { Popup } from 'vant'
Vue.use(Popup)
import { Progress } from 'vant'
Vue.use(Progress)
import { Tab, Tabs } from 'vant'
Vue.use(Tab)
Vue.use(Tabs)
import { Form } from 'vant'
Vue.use(Form)
import { Field } from 'vant'
Vue.use(Field)
import { Button } from 'vant'
Vue.use(Button)
import { Checkbox, CheckboxGroup } from 'vant'
Vue.use(Checkbox)
Vue.use(CheckboxGroup)
import { RadioGroup, Radio } from 'vant'
Vue.use(Radio)
Vue.use(RadioGroup)
import { DatetimePicker } from 'vant'
Vue.use(DatetimePicker)
import { Picker } from 'vant'
Vue.use(Picker)
import { Uploader } from 'vant'
Vue.use(Uploader)
import { List } from 'vant'
Vue.use(List)
import { IndexBar, IndexAnchor } from 'vant'
Vue.use(IndexBar)
Vue.use(IndexAnchor)
import { Area } from 'vant'
Vue.use(Area)
import { ActionSheet } from 'vant'
Vue.use(ActionSheet)
// 公共css
import '@/assets/css/base.css'
......
......@@ -33,6 +33,7 @@ export default {
label: '活动名称',
required: true,
placeholder: '请输入活动名称',
maxlength: 15,
rules: [{ required: true, message: '请输入活动名称' }]
},
{
......@@ -71,6 +72,7 @@ export default {
label: '城市',
required: true,
placeholder: '请输入活动城市',
maxlength: 15,
rules: [{ required: true, message: '请输入活动城市' }]
},
{
......@@ -78,6 +80,7 @@ export default {
label: '地点',
required: true,
placeholder: '请输入活动地点',
maxlength: 15,
rules: [{ required: true, message: '请输入活动地点' }]
},
{
......@@ -89,6 +92,7 @@ export default {
rules: [{ required: true, message: '请选择活动时间' }]
},
{
type: 'digit',
name: 'participator_limit',
label: '人数上限',
required: true,
......@@ -115,6 +119,8 @@ export default {
required: true,
placeholder: '请简单描述一下该活动',
autosize: { maxHeight: 120, minHeight: 120 },
maxlength: 100,
showWordLimit: true,
rules: [{ required: true, message: '请简单描述一下该活动' }]
}
],
......@@ -144,7 +150,8 @@ export default {
data.org_id = ruleForm.org_id
data.visibility = ruleForm.visibility
api.addActivity(data).then(response => {
if (response.success) {
const { success, message } = response
if (success) {
this.$dialog
.alert({
confirmButtonText: '确定',
......@@ -154,7 +161,7 @@ export default {
this.$router.replace({ name: 'my', query: { tab: '1' } })
})
} else {
this.$toast(response.message)
this.$toast(typeof message === 'object' ? JSON.stringify(message) : message)
}
})
}
......
......@@ -50,6 +50,17 @@
@click="onCancelJoin"
/>
</div>
<van-overlay :show="show" @click="show = false">
<div class="dialog-group" @click.stop>
<div class="dialog-group-hd">申请理由</div>
<div class="dialog-group-bd">
<van-form @submit="joinGroup">
<van-field type="textarea" v-model="remark" name="remark" />
<van-button round type="primary" native-type="joinGroup">提交</van-button>
</van-form>
</div>
</div>
</van-overlay>
</div>
</template>
......@@ -74,7 +85,9 @@ export default {
{ name: 'initiator', label: '主要发起人' },
{ name: 'rules', label: '组织章程' },
{ name: 'plan', label: '活动计划' }
]
],
show: false,
remark: ''
}
},
computed: {
......@@ -238,4 +251,37 @@ export default {
border-radius: 5px;
}
}
.dialog-group {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: 240px;
margin: 0 auto;
padding: 30px 20px;
background-color: #fff;
text-align: center;
border-radius: 6px;
::v-deep .van-cell {
padding: 0;
}
::v-deep .van-field__control {
height: 150px;
padding: 10px;
border: 1px solid #a0a0a0;
}
::v-deep .van-button {
width: 130px;
background-color: #af1b40;
border: 0;
margin: 24px auto 0;
}
}
.dialog-group-hd {
font-size: 17px;
font-weight: 400;
color: #313131;
line-height: 1;
padding-bottom: 16px;
}
</style>
......@@ -74,7 +74,6 @@ export default {
},
// 请求成功
requestSuccess(list) {
console.log(list)
this.list = list
},
// 拒绝
......
<template>
<div class="main">
<card>
<!-- <card title="我的消息"> -->
<div class="main-message">
<div class="message-card" @click="onClick('3')">
<div class="message-card-pic">
<img src="~@/assets/img/message_settings_icon.png" />
......@@ -32,16 +30,13 @@
<span class="num" v-if="total.activity">{{ total.activity }}</span>
</div>
</div>
</card>
</div>
</template>
<script>
import Card from '@/components/Card'
import * as api from '@/api'
export default {
name: 'MessageIndex',
components: { Card },
data() {
return {
unreadList: []
......@@ -78,14 +73,16 @@ export default {
}
</script>
<style lang="scss">
#app {
background: #F6F8F9 !important;
<style lang="scss" scoped>
.main-message {
min-height: 100vh;
padding: 0 10px;
background-color: #f6f8f9;
overflow: hidden;
}
.message-card {
display: flex;
padding-bottom: 20px;
margin-bottom: 20px;
padding: 14px 0;
border-bottom: 1px solid #f1f1f1;
}
.message-card-pic {
......@@ -122,7 +119,7 @@ export default {
color: #fff;
line-height: 20px;
text-align: center;
background-color: #AF1B40;
background-color: #af1b40;
border-radius: 50%;
overflow: hidden;
}
......
<template>
<div class="main">
<!-- <card :title="title" class="message-card"> -->
<card class="message-card">
<div class="main-message">
<div class="message-time">{{ detail.created_time }}</div>
<h1 class="message-title">{{ detail.title }}</h1>
<div class="message-content" v-html="detail.contents"></div>
</card>
<input
<!-- <input
type="button"
class="submit-button"
value="我知道了"
@click="onRead"
/>
/> -->
</div>
</template>
<script>
import Card from '@/components/Card'
import * as api from '@/api'
export default {
name: 'Message',
components: { Card },
data() {
return {
detail: {}
......@@ -37,7 +33,7 @@ export default {
return this.$route.params.id
}
},
metaInfo () {
metaInfo() {
return {
title: this.title
}
......@@ -54,17 +50,27 @@ export default {
api.readMessage(this.pid).then(() => {
this.$router.go(-1)
})
},
read() {
api.readMessage(this.pid).then(() => {})
}
},
beforeMount() {
this.getDetail()
this.read()
}
}
</script>
<style lang="scss" scoped>
.message-card {
min-height: calc(100vh - 60px);
.main-message {
padding: 20px;
min-height: 100vh;
background-color: #f6f8f9;
}
.message-time {
text-align: center;
color: #a0a0a0;
}
.message-title {
padding-top: 17px;
......
<template>
<div class="main">
<!-- <card :title="title"> -->
<card>
<van-list
v-model="loading"
:finished="finished"
@load="onLoad"
v-if="list.length"
>
<message-item
v-for="item in list"
:data="item"
:type="type"
:key="item.id"
></message-item>
<div class="main-message">
<van-list v-model="loading" :finished="finished" @load="onLoad" v-if="list.length">
<message-item v-for="item in list" :data="item" :type="type" :key="item.id"></message-item>
</van-list>
<div class="empty" v-else>暂时没有内容哦,去别处看看吧~</div>
</card>
</div>
</template>
<script>
import Card from '@/components/Card'
import MessageItem from '@/components/MessageItem'
import * as api from '@/api'
export default {
name: 'MessageList',
components: { Card, MessageItem },
components: { MessageItem },
data() {
return {
list: [],
......@@ -44,7 +30,7 @@ export default {
return typeMap[this.type]
}
},
metaInfo () {
metaInfo() {
return {
title: this.title
}
......@@ -52,7 +38,7 @@ export default {
methods: {
getList() {
this.loading = true
this.requestParams.type = this.types
this.requestParams.type = this.type
api
.getMessageList(this.requestParams)
.then(response => {
......@@ -68,8 +54,7 @@ export default {
})
},
onLoad() {
this.requestParams.offset =
this.requestParams.offset + this.requestParams.limit
this.requestParams.offset = this.requestParams.offset + this.requestParams.limit
this.getList()
},
// 刷新
......@@ -84,3 +69,14 @@ export default {
}
}
</script>
<style lang="scss" scoped>
.main-message {
min-height: 100vh;
background-color: #f6f8f9;
overflow: hidden;
}
.message-item {
margin: 10px;
}
</style>
\ No newline at end of file
......@@ -2990,10 +2990,10 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
dayjs@^1.8.36:
version "1.8.36"
resolved "https://registry.npm.taobao.org/dayjs/download/dayjs-1.8.36.tgz?cache=0&sync_timestamp=1600333416510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdayjs%2Fdownload%2Fdayjs-1.8.36.tgz#be36e248467afabf8f5a86bae0de0cdceecced50"
integrity sha1-vjbiSEZ6+r+PWoa64N4M3O7M7VA=
dayjs@^1.9.1:
version "1.9.1"
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.9.1.tgz#201a755f7db5103ed6de63ba93a984141c754541"
integrity sha512-01NCTBg8cuMJG1OQc6PR7T66+AFYiPwgDvdJmvJBn29NGzIG+DIFxPLNjHzwz3cpFIvG+NcwIjP9hSaPVoOaDg==
de-indent@^1.0.2:
version "1.0.2"
......@@ -8153,10 +8153,10 @@ validate-npm-package-license@^3.0.1:
spdx-correct "^3.0.0"
spdx-expression-parse "^3.0.0"
vant@^2.10.7:
version "2.10.7"
resolved "https://registry.npm.taobao.org/vant/download/vant-2.10.7.tgz?cache=0&sync_timestamp=1600313290502&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvant%2Fdownload%2Fvant-2.10.7.tgz#ee2ddee9bb27f242325d794320b0ac29fce91617"
integrity sha1-7i3e6bsn8kIyXXlDILCsKfzpFhc=
vant@^2.10.9:
version "2.10.9"
resolved "https://registry.yarnpkg.com/vant/-/vant-2.10.9.tgz#311e7f53541067f45de07c23020ac23339272615"
integrity sha512-A+tY8Vq+d/tUbkO1lhZt4Exn+kltnc25akWnWCfa8YdPuQmuxGUCTRFpjJOVOAyfbPRTjgvp5Bt3/Nv9N5Goyw==
dependencies:
"@babel/runtime" "7.x"
"@vant/icons" "1.3.0"
......@@ -8239,10 +8239,10 @@ vue-meta@^2.4.0:
dependencies:
deepmerge "^4.2.2"
vue-router@^3.4.3:
version "3.4.3"
resolved "https://registry.npm.taobao.org/vue-router/download/vue-router-3.4.3.tgz?cache=0&sync_timestamp=1598983003768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.4.3.tgz#fa93768616ee338aa174f160ac965167fa572ffa"
integrity sha1-+pN2hhbuM4qhdPFgrJZRZ/pXL/o=
vue-router@^3.4.6:
version "3.4.6"
resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.4.6.tgz#f7bda2c9a43d39837621c9a02ba7789f5daa24b2"
integrity sha512-kaXnB3pfFxhAJl/Mp+XG1HJMyFqrL/xPqV7oXlpXn4AwMmm6VNgf0nllW8ksflmZANfI4kdo0bVn/FYSsAolPQ==
vue-style-loader@^4.1.0, vue-style-loader@^4.1.2:
version "4.1.2"
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论