Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
wanglei
2021-12-03 15:21:26 +08:00
5 changed files with 386 additions and 207 deletions

View File

@@ -11,6 +11,7 @@
<script> <script>
import Tabbar from './components/Tabbar.vue' import Tabbar from './components/Tabbar.vue'
import AddForm from './components/AddForm.vue' import AddForm from './components/AddForm.vue'
import Result from './components/Result.vue'
export default { export default {
name: 'AppAskForm', name: 'AppAskForm',
@@ -25,6 +26,7 @@
components: { components: {
Tabbar, Tabbar,
Result,
AddForm AddForm
}, },

View File

@@ -328,6 +328,7 @@ export default {
} }
}) })
this.$loading()
this.$http.post(`/app/appquestionnairetemplate/addOrUpdate`, { this.$http.post(`/app/appquestionnairetemplate/addOrUpdate`, {
...this.form, ...this.form,
fields, fields,
@@ -338,11 +339,15 @@ export default {
templateType: 0 templateType: 0
}).then(res => { }).then(res => {
if (res.code == 0) { if (res.code == 0) {
this.$u.toast('提交成功')
setTimeout(() => { setTimeout(() => {
this.$emit('change', { 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) }, 600)
} }

View 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>

View File

@@ -18,17 +18,21 @@
<u-row justify="between"> <u-row justify="between">
<div class="time"> <div class="time">
<span>{{ item.startTime|format }}</span> <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|formatDate(0) }}{{
item.startTime|formatDate(1)
}}{{ item.startTime|formatDate(2) }} {{ item.startTime|formatWeek }}</span>
</div> </div>
<div class="arrow"></div> <div class="arrow"></div>
<div class="time"> <div class="time">
<span>{{ item.endTime|format }}</span> <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|formatDate(0) }}{{ item.endTime|formatDate(1) }}{{
item.endTime|formatDate(2)
}} {{ item.endTime|formatWeek }}</span>
</div> </div>
</u-row> </u-row>
<u-row class="info"> <u-row class="info">
<span>发起人员</span> <span>发起人员</span>
<span>{{item.userName}}</span> <ai-open-data type="userName" :openid="item.createUserId"/>
</u-row> </u-row>
<u-gap height="20"></u-gap> <u-gap height="20"></u-gap>
<u-row class="info"> <u-row class="info">
@@ -54,11 +58,12 @@
import AiTopFixed from "../../components/AiTopFixed"; import AiTopFixed from "../../components/AiTopFixed";
import AiAdd from "../../components/AiAdd"; import AiAdd from "../../components/AiAdd";
import {addMeeting, belongToMe, detail, meetingList} from './components' import {addMeeting, belongToMe, detail, meetingList} from './components'
import AiOpenData from "../../components/AiOpenData";
export default { export default {
name: "AppMeetingNotice", name: "AppMeetingNotice",
appName: "会议通知", appName: "会议通知",
components: {AiEmpty, AiTopFixed, AiAdd, addMeeting, belongToMe, detail, meetingList}, components: {AiOpenData, AiEmpty, AiTopFixed, AiAdd, addMeeting, belongToMe, detail, meetingList},
data() { data() {
return { return {
meetingList: [], meetingList: [],

View File

@@ -1,5 +1,5 @@
<template> <template>
<div :type="type" :openid="openid"/> <div :type="type" :openid="oid" v-text="oid"/>
</template> </template>
<script> <script>
@@ -8,6 +8,14 @@ import {mapActions} from "vuex";
export default { export default {
name: "AiOpenData", name: "AiOpenData",
props: ['type', 'openid'], props: ['type', 'openid'],
computed: {
oid() {
/**
* 后端返回格式(cropId|userId)
*/
return this.openid?.split("|")?.[1] || this.openid || ""
}
},
methods: { methods: {
...mapActions(['injectJWeixin']) ...mapActions(['injectJWeixin'])
}, },