Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
@@ -11,6 +11,7 @@
|
||||
<script>
|
||||
import Tabbar from './components/Tabbar.vue'
|
||||
import AddForm from './components/AddForm.vue'
|
||||
import Result from './components/Result.vue'
|
||||
|
||||
export default {
|
||||
name: 'AppAskForm',
|
||||
@@ -25,6 +26,7 @@
|
||||
|
||||
components: {
|
||||
Tabbar,
|
||||
Result,
|
||||
AddForm
|
||||
},
|
||||
|
||||
|
||||
@@ -328,6 +328,7 @@ export default {
|
||||
}
|
||||
})
|
||||
|
||||
this.$loading()
|
||||
this.$http.post(`/app/appquestionnairetemplate/addOrUpdate`, {
|
||||
...this.form,
|
||||
fields,
|
||||
@@ -338,11 +339,15 @@ export default {
|
||||
templateType: 0
|
||||
}).then(res => {
|
||||
if (res.code == 0) {
|
||||
this.$u.toast('提交成功')
|
||||
|
||||
setTimeout(() => {
|
||||
this.$emit('change', {
|
||||
type: 'Tabbar'
|
||||
type: 'Result',
|
||||
params: {
|
||||
linkUrl: res.data.linkUrl,
|
||||
tableExplain: this.form.title,
|
||||
tableExplain: this.form.tableExplain,
|
||||
headPicture: this.form.headPicture
|
||||
}
|
||||
})
|
||||
}, 600)
|
||||
}
|
||||
|
||||
159
src/apps/AppAskForm/components/Result.vue
Normal file
159
src/apps/AppAskForm/components/Result.vue
Normal file
@@ -0,0 +1,159 @@
|
||||
<template>
|
||||
<div class="result">
|
||||
<image class="result-success" :src="`${$cdn}form/result-success.png`"/>
|
||||
<h2>创建成功</h2>
|
||||
<p>表单创建成功,您现在可以把表单分享给更多的好友,来填写数据!</p>
|
||||
<div class="result-btn" @click="confirm">确定</div>
|
||||
<div class="result-footer">
|
||||
<div class="result-footer__item" @click="copy">
|
||||
<div>
|
||||
<image :src="`${$cdn}form/form-copylink.png`"/>
|
||||
</div>
|
||||
<h3>复制链接</h3>
|
||||
</div>
|
||||
<div class="result-footer__item" @click="shareWechat">
|
||||
<div>
|
||||
<image :src="`${$cdn}form/form-wechat.png`"/>
|
||||
</div>
|
||||
<h3>微信好友</h3>
|
||||
</div>
|
||||
<div class="result-footer__item" @click="share">
|
||||
<div>
|
||||
<image :src="`${$cdn}form/form-share.png`"/>
|
||||
</div>
|
||||
<h3>分享</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Result',
|
||||
|
||||
props: ['params'],
|
||||
|
||||
mounted () {
|
||||
this.injectJWeixin(['sendChatMessage', 'selectEnterpriseContact'])
|
||||
console.log(this.params)
|
||||
},
|
||||
|
||||
methods: {
|
||||
copy() {
|
||||
let oInput = document.createElement('input')
|
||||
oInput.value = this.params.linkUrl
|
||||
document.body.appendChild(oInput)
|
||||
oInput.select()
|
||||
document.execCommand('Copy')
|
||||
this.$u.toast('已复制')
|
||||
oInput.remove()
|
||||
},
|
||||
|
||||
share () {
|
||||
this.injectJWeixin(['shareAppMessage', 'shareWechatMessage']).then(() => {
|
||||
this.wxInvoke(['shareAppMessage', {
|
||||
title: this.params.title,
|
||||
desc: this.params.tableExplain,
|
||||
link: res.params.linkUrl,
|
||||
imgUrl: this.params.headPicture
|
||||
}])
|
||||
})
|
||||
},
|
||||
|
||||
shareWechat () {
|
||||
this.injectJWeixin(['shareAppMessage', 'shareWechatMessage']).then(() => {
|
||||
this.wxInvoke(['shareWechatMessage', {
|
||||
title: this.params.title,
|
||||
desc: this.params.tableExplain,
|
||||
link: res.params.linkUrl,
|
||||
imgUrl: this.params.headPicture
|
||||
}])
|
||||
})
|
||||
},
|
||||
|
||||
confirm () {
|
||||
this.$emit('change', {
|
||||
type: 'Tabbar'
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.result {
|
||||
min-height: 100vh;
|
||||
padding: 0 96px;
|
||||
text-align: center;
|
||||
background: #fff;
|
||||
|
||||
.result-footer {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
margin-top: 96px;
|
||||
|
||||
.result-footer__item {
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
|
||||
div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin: 0 auto 16px;
|
||||
border-radius: 50%;
|
||||
background: #F4F6FA;
|
||||
|
||||
image {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
h3 {
|
||||
color: #666666;
|
||||
font-size: 24px;
|
||||
font-weight: normal;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.result-success {
|
||||
display: block;
|
||||
width: 192px;
|
||||
height: 192px;
|
||||
margin: 96px auto 16px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin: 16px 0 32px;
|
||||
color: #999999;
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
.result-btn {
|
||||
width: 100%;
|
||||
height: 88px;
|
||||
line-height: 88px;
|
||||
text-align: center;
|
||||
font-size: 36px;
|
||||
color: #fff;
|
||||
background: #197DF0;
|
||||
box-shadow: 0px 4px 8px 0px rgba(0, 0, 0, 0.02);
|
||||
border-radius: 4px;
|
||||
|
||||
&:active {
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #333333;
|
||||
font-size: 36px;
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -6,7 +6,7 @@
|
||||
<u-grid-item v-for="(item,index) in grid" :key="index" :custom-style="{padding:'14px 0'}"
|
||||
@click="handleClick(index)">
|
||||
<u-icon :name="item.icon" :size="64"></u-icon>
|
||||
<view class="label">{{item.label}}</view>
|
||||
<view class="label">{{ item.label }}</view>
|
||||
</u-grid-item>
|
||||
</u-grid>
|
||||
</ai-top-fixed>
|
||||
@@ -14,26 +14,30 @@
|
||||
<header>待参加的会议</header>
|
||||
<template v-if="meetingList.length">
|
||||
<div class="card" v-for="(item,index) in meetingList" :key="index" @click="detail(item)">
|
||||
<header>{{item.title}}</header>
|
||||
<header>{{ item.title }}</header>
|
||||
<u-row justify="between">
|
||||
<div class="time">
|
||||
<span>{{item.startTime|format}}</span>
|
||||
<span>{{item.startTime|formatDate(0)}}年{{item.startTime|formatDate(1)}}月{{item.startTime|formatDate(2)}}日 周{{item.startTime|formatWeek}}</span>
|
||||
<span>{{ item.startTime|format }}</span>
|
||||
<span>{{ item.startTime|formatDate(0) }}年{{
|
||||
item.startTime|formatDate(1)
|
||||
}}月{{ item.startTime|formatDate(2) }}日 周{{ item.startTime|formatWeek }}</span>
|
||||
</div>
|
||||
<div class="arrow"></div>
|
||||
<div class="time">
|
||||
<span>{{item.endTime|format}}</span>
|
||||
<span>{{item.endTime|formatDate(0)}}年{{item.endTime|formatDate(1)}}月{{item.endTime|formatDate(2)}}日 周{{item.endTime|formatWeek}}</span>
|
||||
<span>{{ item.endTime|format }}</span>
|
||||
<span>{{ item.endTime|formatDate(0) }}年{{ item.endTime|formatDate(1) }}月{{
|
||||
item.endTime|formatDate(2)
|
||||
}}日 周{{ item.endTime|formatWeek }}</span>
|
||||
</div>
|
||||
</u-row>
|
||||
<u-row class="info">
|
||||
<span>发起人员:</span>
|
||||
<span>{{item.userName}}</span>
|
||||
<ai-open-data type="userName" :openid="item.createUserId"/>
|
||||
</u-row>
|
||||
<u-gap height="20"></u-gap>
|
||||
<u-row class="info">
|
||||
<span>会议地点:</span>
|
||||
<span>{{item.address}}</span>
|
||||
<span>{{ item.address }}</span>
|
||||
</u-row>
|
||||
<div class="tag" :style="{background:'url(' + $cdn + tag(item.joinStatus) + ')'}"></div>
|
||||
</div>
|
||||
@@ -50,15 +54,16 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import AiEmpty from "../../components/AiEmpty";
|
||||
import AiTopFixed from "../../components/AiTopFixed";
|
||||
import AiAdd from "../../components/AiAdd";
|
||||
import {addMeeting, belongToMe, detail, meetingList} from './components'
|
||||
import AiEmpty from "../../components/AiEmpty";
|
||||
import AiTopFixed from "../../components/AiTopFixed";
|
||||
import AiAdd from "../../components/AiAdd";
|
||||
import {addMeeting, belongToMe, detail, meetingList} from './components'
|
||||
import AiOpenData from "../../components/AiOpenData";
|
||||
|
||||
export default {
|
||||
export default {
|
||||
name: "AppMeetingNotice",
|
||||
appName: "会议通知",
|
||||
components: {AiEmpty, AiTopFixed, AiAdd, addMeeting, belongToMe, detail, meetingList},
|
||||
components: {AiOpenData, AiEmpty, AiTopFixed, AiAdd, addMeeting, belongToMe, detail, meetingList},
|
||||
data() {
|
||||
return {
|
||||
meetingList: [],
|
||||
@@ -89,9 +94,9 @@
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
emitShow(){
|
||||
emitShow() {
|
||||
const {id} = this.$route.query
|
||||
if(id){
|
||||
if (id) {
|
||||
this.comp = "detail";
|
||||
this.params = id;
|
||||
this.isList = false;
|
||||
@@ -151,11 +156,11 @@
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.meeting {
|
||||
.meeting {
|
||||
min-height: 100%;
|
||||
background: #F5F5F5;
|
||||
padding-bottom: 48px;
|
||||
@@ -269,5 +274,5 @@
|
||||
::v-deep .content {
|
||||
padding: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div :type="type" :openid="openid"/>
|
||||
<div :type="type" :openid="oid" v-text="oid"/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
@@ -8,6 +8,14 @@ import {mapActions} from "vuex";
|
||||
export default {
|
||||
name: "AiOpenData",
|
||||
props: ['type', 'openid'],
|
||||
computed: {
|
||||
oid() {
|
||||
/**
|
||||
* 后端返回格式(cropId|userId)
|
||||
*/
|
||||
return this.openid?.split("|")?.[1] || this.openid || ""
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['injectJWeixin'])
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user