同步3.0
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="add-form" v-if="pageShow">
|
<div class="add-form" v-if="pageShow">
|
||||||
<div v-show="!isShowConfig">
|
|
||||||
<div class="header-pic">
|
<div class="header-pic">
|
||||||
<image v-if="form.headPicture" :src="form.headPicture"/>
|
<image v-if="form.headPicture" :src="form.headPicture"/>
|
||||||
<span @click="upload">更换图片</span>
|
<span @click="upload">更换图片</span>
|
||||||
@@ -120,36 +119,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</u-popup>
|
</u-popup>
|
||||||
</div>
|
</div>
|
||||||
<div class="detail" v-if="isShowConfig">
|
|
||||||
<component
|
|
||||||
:is="component"
|
|
||||||
:index="filedIndex"
|
|
||||||
:filed="filed"
|
|
||||||
@change="onChange"
|
|
||||||
:targetListData="targetList"
|
|
||||||
:formData="form"
|
|
||||||
:filedType="filedType"
|
|
||||||
@back="isShowConfig = false"
|
|
||||||
:id="id"
|
|
||||||
:formConfig="formConfig">
|
|
||||||
</component>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import draggable from 'vuedraggable'
|
import draggable from 'vuedraggable'
|
||||||
import FiledConfig from './FiledConfig'
|
import qs from "query-string"
|
||||||
import FormSetting from '../FormSetting'
|
|
||||||
import PreviewForm from './PreviewForm'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: ['params'],
|
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
pageShow: false,
|
pageShow: false,
|
||||||
isShowConfig: false,
|
|
||||||
form: {
|
form: {
|
||||||
tableExplain: '详细描述',
|
tableExplain: '详细描述',
|
||||||
title: '问卷调查',
|
title: '问卷调查',
|
||||||
@@ -179,34 +158,23 @@ export default {
|
|||||||
filedIndex: '',
|
filedIndex: '',
|
||||||
isQuote: false,
|
isQuote: false,
|
||||||
touchStart: 0,
|
touchStart: 0,
|
||||||
component: '',
|
|
||||||
formConfig: {}
|
formConfig: {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
components: {
|
components: {
|
||||||
draggable,
|
draggable,
|
||||||
PreviewForm,
|
|
||||||
FormSetting,
|
|
||||||
FiledConfig
|
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
mounted() {
|
let {type, isQuote, id} = this.$route.query
|
||||||
this.type = Number(this.params.type)
|
this.type = type
|
||||||
|
this.isQuote = !!isQuote
|
||||||
if (this.params.isQuote) {
|
if (id) {
|
||||||
this.isQuote = true
|
this.id = id
|
||||||
}
|
this.getInfo(id)
|
||||||
|
|
||||||
if (this.params.id) {
|
|
||||||
this.id = this.params.id
|
|
||||||
this.getInfo(this.params.id)
|
|
||||||
} else {
|
} else {
|
||||||
this.pageShow = true
|
this.pageShow = true
|
||||||
}
|
}
|
||||||
|
|
||||||
this.init()
|
this.init()
|
||||||
|
|
||||||
uni.$on('setting', res => {
|
uni.$on('setting', res => {
|
||||||
this.form = {
|
this.form = {
|
||||||
...this.form,
|
...this.form,
|
||||||
@@ -216,28 +184,29 @@ export default {
|
|||||||
})
|
})
|
||||||
|
|
||||||
uni.$on('filedConfig', res => {
|
uni.$on('filedConfig', res => {
|
||||||
if (res.index === '-1') {
|
console.log(res)
|
||||||
|
if (res.index < 0) {
|
||||||
this.targetList.push(res.config)
|
this.targetList.push(res.config)
|
||||||
} else {
|
} else {
|
||||||
this.$set(this.targetList, [res.index], res.config)
|
this.targetList.splice(res.index, 1, res.config)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
onShow () {
|
||||||
|
localStorage.removeItem("toFiledConfig")
|
||||||
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
toSetting() {
|
toSetting() {
|
||||||
this.component = 'FormSetting'
|
let {formConfig} = this
|
||||||
this.isShowConfig = true
|
localStorage.setItem("toFormSetting", JSON.stringify(formConfig))
|
||||||
|
uni.navigateTo({url: `./FormSetting`})
|
||||||
},
|
},
|
||||||
|
|
||||||
back() {
|
back() {
|
||||||
this.$emit('change', {
|
uni.navigateBack({})
|
||||||
type: 'Tabbar'
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
onChange(e) {
|
onChange(e) {
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
removeComponent(index) {
|
removeComponent(index) {
|
||||||
@@ -245,8 +214,9 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
toPreview() {
|
toPreview() {
|
||||||
this.component = 'PreviewForm'
|
let {form, targetList} = this
|
||||||
this.isShowConfig = true
|
localStorage.setItem("toPreviewForm", JSON.stringify({form, targetList}))
|
||||||
|
uni.navigateTo({url: `./PreviewForm`})
|
||||||
},
|
},
|
||||||
|
|
||||||
upload() {
|
upload() {
|
||||||
@@ -339,18 +309,15 @@ export default {
|
|||||||
type: this.type,
|
type: this.type,
|
||||||
templateType: 0
|
templateType: 0
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code == 0) {
|
if (res?.code == 0) {
|
||||||
setTimeout(() => {
|
uni.navigateTo({
|
||||||
this.$emit('change', {
|
url: `./Result?${qs.stringify({
|
||||||
type: 'Result',
|
|
||||||
params: {
|
|
||||||
linkUrl: res.data.linkUrl,
|
linkUrl: res.data.linkUrl,
|
||||||
title: this.form.title,
|
title: this.form.title,
|
||||||
tableExplain: this.form.tableExplain,
|
tableExplain: this.form.tableExplain,
|
||||||
headPicture: this.form.headPicture
|
headPicture: this.form.headPicture
|
||||||
}
|
})}`
|
||||||
})
|
})
|
||||||
}, 600)
|
|
||||||
}
|
}
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
this.$u.toast(e)
|
this.$u.toast(e)
|
||||||
@@ -376,7 +343,6 @@ export default {
|
|||||||
} else {
|
} else {
|
||||||
this.$u.toast(res.msg)
|
this.$u.toast(res.msg)
|
||||||
}
|
}
|
||||||
|
|
||||||
uni.hideLoading()
|
uni.hideLoading()
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
uni.hideLoading()
|
uni.hideLoading()
|
||||||
@@ -388,16 +354,12 @@ export default {
|
|||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
this.filed = type
|
this.filed = type
|
||||||
this.filedIndex = index
|
this.filedIndex = index
|
||||||
this.component = 'FiledConfig'
|
localStorage.setItem("toFiledConfig", JSON.stringify({index, filed: type, filedType: type.type}))
|
||||||
this.isShowConfig = true
|
} else {
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
this.filedIndex = ''
|
this.filedIndex = ''
|
||||||
this.filedType = type
|
localStorage.setItem("toFiledConfig", JSON.stringify({filed: '', filedType: type, index: -1}))
|
||||||
this.component = 'FiledConfig'
|
}
|
||||||
this.isShowConfig = true
|
uni.navigateTo({url: `./FiledConfig`})
|
||||||
},
|
},
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
@@ -1,17 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="form">
|
<div class="form">
|
||||||
<component
|
<component ref="TabPage" :is="component" @change="onChange" :params="params"/>
|
||||||
:is="component"
|
|
||||||
@change="onChange"
|
|
||||||
:params="params">
|
|
||||||
</component>
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import Tabbar from './components/Tabbar.vue'
|
import Tabbar from './components/Tabbar.vue'
|
||||||
import AddForm from './components/AddForm.vue'
|
import AddForm from './AddForm.vue'
|
||||||
import Result from './components/Result.vue'
|
import Result from './Result.vue'
|
||||||
import {mapActions} from "vuex";
|
import {mapActions} from "vuex";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -21,7 +17,8 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
component: 'Tabbar',
|
component: 'Tabbar',
|
||||||
params: {}
|
params: {},
|
||||||
|
refresh: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -40,9 +37,12 @@ export default {
|
|||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
document.title = "问卷表单"
|
document.title = "问卷表单"
|
||||||
|
this.$refs?.TabPage?.show()
|
||||||
|
this.$nextTick(() => {
|
||||||
this.injectJWeixin(['sendChatMessage', 'selectEnterpriseContact', 'shareAppMessage', 'shareWechatMessage']).then(() => {
|
this.injectJWeixin(['sendChatMessage', 'selectEnterpriseContact', 'shareAppMessage', 'shareWechatMessage']).then(() => {
|
||||||
this.$dict.load(['questionnaireStatus', 'questionnaireType', 'questionnaireFieldType'])
|
this.$dict.load(['questionnaireStatus', 'questionnaireType', 'questionnaireFieldType'])
|
||||||
})
|
})
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -69,7 +69,8 @@ export default {
|
|||||||
this.checkAccess()
|
this.checkAccess()
|
||||||
},
|
},
|
||||||
onShow() {
|
onShow() {
|
||||||
document.title = "问卷调查"
|
document.title = '问卷调查'
|
||||||
|
wx.hideOptionMenu()
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -142,45 +142,32 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {components} from './config'
|
import {components} from './components/config'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: ['filed', 'index', 'filedType'],
|
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
|
let params = localStorage.getItem("toFiledConfig")
|
||||||
|
params && (params = JSON.parse(params))
|
||||||
|
params.config = params.index > -1 ? params.filed : components.filter(v => v.type === params.filedType)[0]
|
||||||
return {
|
return {
|
||||||
|
...params,
|
||||||
isShowType: false,
|
isShowType: false,
|
||||||
isShowAnswer: false,
|
isShowAnswer: false
|
||||||
config: {}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
|
||||||
if (this.index !== '') {
|
|
||||||
this.config = this.filed
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
console.log(components)
|
|
||||||
this.config = JSON.parse(JSON.stringify(components.filter(v => v.type === this.filedType)[0]))
|
|
||||||
},
|
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
pointTypeName() {
|
pointTypeName() {
|
||||||
if (!this.config.pointDict) return ''
|
if (!this.config.pointDict) return ''
|
||||||
|
|
||||||
return this.config.pointDict.filter(v => v.dictValue === this.config.pointType)[0].dictName
|
return this.config.pointDict.filter(v => v.dictValue === this.config.pointType)[0].dictName
|
||||||
},
|
},
|
||||||
|
|
||||||
defaultType() {
|
defaultType() {
|
||||||
if (!this.config.pointType) return [0]
|
if (!this.config.pointType) return [0]
|
||||||
|
|
||||||
return [Number(this.config.pointType)]
|
return [Number(this.config.pointType)]
|
||||||
},
|
},
|
||||||
|
|
||||||
defaultAnswer() {
|
defaultAnswer() {
|
||||||
if (!this.config.answer) return [0]
|
if (!this.config.answer) return [0]
|
||||||
|
|
||||||
let index = 0
|
let index = 0
|
||||||
if (this.config.answer) {
|
if (this.config.answer) {
|
||||||
this.config.options?.forEach((v, i) => {
|
this.config.options?.forEach((v, i) => {
|
||||||
@@ -193,14 +180,12 @@ export default {
|
|||||||
return [index]
|
return [index]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
answerChange(e) {
|
answerChange(e) {
|
||||||
this.config.answer = e[0].label
|
this.config.answer = e[0].label
|
||||||
},
|
},
|
||||||
|
|
||||||
pointTypeChange(e) {
|
pointTypeChange(e) {
|
||||||
console.log(e)
|
|
||||||
this.config.pointType = e[0].value
|
this.config.pointType = e[0].value
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -266,7 +251,7 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
back() {
|
back() {
|
||||||
this.$emit('back')
|
uni.navigateBack({})
|
||||||
},
|
},
|
||||||
|
|
||||||
confirm() {
|
confirm() {
|
||||||
@@ -274,7 +259,6 @@ export default {
|
|||||||
config: this.config,
|
config: this.config,
|
||||||
index: this.index === '' ? '-1' : this.index
|
index: this.index === '' ? '-1' : this.index
|
||||||
})
|
})
|
||||||
|
|
||||||
this.back()
|
this.back()
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@
|
|||||||
<div @click="back">
|
<div @click="back">
|
||||||
<span>取消</span>
|
<span>取消</span>
|
||||||
</div>
|
</div>
|
||||||
<div @click="confirm">{{ type === 'edit' ? '发布' : '确定' }}</div>
|
<div @click="confirm">{{ isEdit ? '发布' : '确定' }}</div>
|
||||||
</div>
|
</div>
|
||||||
<u-modal v-model="isShowModal" :content="tips"></u-modal>
|
<u-modal v-model="isShowModal" :content="tips"></u-modal>
|
||||||
<u-picker mode="time" v-model="isShowTime" :show-time-tag="true" @close="isShowTime = false" @confirm="onTimeChange"
|
<u-picker mode="time" v-model="isShowTime" :show-time-tag="true" @close="isShowTime = false" @confirm="onTimeChange"
|
||||||
@@ -77,11 +77,17 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
|
||||||
props: ['id', 'formConfig', 'type'],
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
computed: {
|
||||||
|
isEdit() {
|
||||||
|
return this.$route.query.type == 'edit'
|
||||||
|
}
|
||||||
|
},
|
||||||
data() {
|
data() {
|
||||||
|
let {id} = this.$route.query
|
||||||
return {
|
return {
|
||||||
|
id,
|
||||||
params: {
|
params: {
|
||||||
year: true,
|
year: true,
|
||||||
month: true,
|
month: true,
|
||||||
@@ -98,38 +104,38 @@ export default {
|
|||||||
wechatId: '0',
|
wechatId: '0',
|
||||||
periodValidityEndTime: '',
|
periodValidityEndTime: '',
|
||||||
isShowTime: false,
|
isShowTime: false,
|
||||||
periodValidityType: '0'
|
periodValidityType: '0',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
created() {
|
||||||
mounted() {
|
|
||||||
if (this.id) {
|
if (this.id) {
|
||||||
this.getInfo(this.id)
|
this.getInfo(this.id)
|
||||||
} else if (this.formConfig) {
|
} else this.getFormSetting()
|
||||||
const res = this.formConfig
|
},
|
||||||
|
methods: {
|
||||||
|
getFormSetting() {
|
||||||
|
let params = localStorage.getItem("toFormSetting"), res = {}
|
||||||
|
params && (res = JSON.parse(params))
|
||||||
|
localStorage.removeItem("toFormSetting")
|
||||||
this.periodValidityType = res.periodValidityType || '0'
|
this.periodValidityType = res.periodValidityType || '0'
|
||||||
this.commitType = res.commitType || '1'
|
this.commitType = res.commitType || "1"
|
||||||
this.actionNotice = res.actionNotice === '1'
|
this.actionNotice = res.actionNotice === '1'
|
||||||
this.dynamicNotice = res.dynamicNotice === '1'
|
this.dynamicNotice = res.dynamicNotice === '1'
|
||||||
|
|
||||||
if (res.periodValidityType === '1') {
|
if (res.periodValidityType === '1') {
|
||||||
this.periodValidityEndTime = res.periodValidityEndTime
|
this.periodValidityEndTime = res.periodValidityEndTime
|
||||||
}
|
}
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
|
||||||
onTimeChange(e) {
|
onTimeChange(e) {
|
||||||
this.periodValidityEndTime = `${e.year}-${e.month}-${e.day} ${e.hour}:${e.minute}:${e.second}`
|
this.periodValidityEndTime = `${e.year}-${e.month}-${e.day} ${e.hour}:${e.minute}:${e.second}`
|
||||||
},
|
},
|
||||||
|
|
||||||
back() {
|
back() {
|
||||||
this.$emit('back')
|
uni.navigateBack({})
|
||||||
},
|
},
|
||||||
|
|
||||||
getInfo(id) {
|
getInfo(id) {
|
||||||
this.$http.post(`/app/appquestionnairetemplate/queryDetailById?id=${id}`).then(res => {
|
this.$http.post(`/app/appquestionnairetemplate/queryDetailById?id=${id}`).then(res => {
|
||||||
if (res.code == 0) {
|
if (res?.data) {
|
||||||
this.periodValidityType = res.data.periodValidityType
|
this.periodValidityType = res.data.periodValidityType
|
||||||
this.commitType = res.data.commitType
|
this.commitType = res.data.commitType
|
||||||
this.actionNotice = res.data.actionNotice === '1'
|
this.actionNotice = res.data.actionNotice === '1'
|
||||||
@@ -158,9 +164,7 @@ export default {
|
|||||||
}
|
}
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
uni.$emit('reload')
|
|
||||||
this.$u.toast('发布成功')
|
this.$u.toast('发布成功')
|
||||||
|
|
||||||
this.back()
|
this.back()
|
||||||
}
|
}
|
||||||
}).catch(e => {
|
}).catch(e => {
|
||||||
@@ -169,12 +173,10 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
confirm() {
|
confirm() {
|
||||||
if (this.type === 'edit') {
|
if (this.isEdit) {
|
||||||
this.publish()
|
this.publish()
|
||||||
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
uni.$emit('setting', {
|
uni.$emit('setting', {
|
||||||
periodValidityType: this.periodValidityType,
|
periodValidityType: this.periodValidityType,
|
||||||
commitType: this.commitType,
|
commitType: this.commitType,
|
||||||
@@ -182,7 +184,6 @@ export default {
|
|||||||
dynamicNotice: this.dynamicNotice ? '1' : '0',
|
dynamicNotice: this.dynamicNotice ? '1' : '0',
|
||||||
periodValidityEndTime: this.periodValidityEndTime ? this.periodValidityEndTime : ''
|
periodValidityEndTime: this.periodValidityEndTime ? this.periodValidityEndTime : ''
|
||||||
})
|
})
|
||||||
|
|
||||||
this.back()
|
this.back()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -193,10 +194,6 @@ export default {
|
|||||||
.form-setting {
|
.form-setting {
|
||||||
padding: 0 20px;
|
padding: 0 20px;
|
||||||
|
|
||||||
u-radio + u-radio {
|
|
||||||
margin-left: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.add-form__footer {
|
.add-form__footer {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|||||||
@@ -67,8 +67,10 @@
|
|||||||
<script>
|
<script>
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
props: ['formData', 'targetListData'],
|
|
||||||
data() {
|
data() {
|
||||||
|
let params = localStorage.getItem("toPreviewForm")
|
||||||
|
params && (params = JSON.parse(params))
|
||||||
|
localStorage.removeItem("toPreviewForm")
|
||||||
return {
|
return {
|
||||||
form: {
|
form: {
|
||||||
tableExplain: '详细描述',
|
tableExplain: '详细描述',
|
||||||
@@ -94,15 +96,10 @@ export default {
|
|||||||
isShow: false,
|
isShow: false,
|
||||||
type: 0,
|
type: 0,
|
||||||
id: '',
|
id: '',
|
||||||
touchStart: 0
|
touchStart: 0,
|
||||||
|
...params
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
|
||||||
this.form = this.formData
|
|
||||||
this.targetList = this.targetListData
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
getInfo(id) {
|
getInfo(id) {
|
||||||
uni.showLoading()
|
uni.showLoading()
|
||||||
@@ -29,18 +29,21 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
import {mapActions} from 'vuex'
|
import {mapActions} from 'vuex'
|
||||||
|
import qs from "query-string"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Result',
|
name: 'Result',
|
||||||
|
|
||||||
props: ['params'],
|
computed: {
|
||||||
|
params() {
|
||||||
|
return qs.parse(decodeURIComponent(location.search))
|
||||||
|
}
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.injectJWeixin(['sendChatMessage', 'selectEnterpriseContact'])
|
this.injectJWeixin(['sendChatMessage', 'selectEnterpriseContact'])
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
...mapActions(['injectJWeixin', 'wxInvoke']),
|
...mapActions(['injectJWeixin', 'wxInvoke']),
|
||||||
|
|
||||||
copy() {
|
copy() {
|
||||||
let oInput = document.createElement('input')
|
let oInput = document.createElement('input')
|
||||||
oInput.value = this.params.linkUrl
|
oInput.value = this.params.linkUrl
|
||||||
@@ -50,7 +53,6 @@ export default {
|
|||||||
this.$u.toast('已复制')
|
this.$u.toast('已复制')
|
||||||
oInput.remove()
|
oInput.remove()
|
||||||
},
|
},
|
||||||
|
|
||||||
share() {
|
share() {
|
||||||
this.injectJWeixin(['shareAppMessage', 'shareWechatMessage']).then(() => {
|
this.injectJWeixin(['shareAppMessage', 'shareWechatMessage']).then(() => {
|
||||||
this.wxInvoke(['shareAppMessage', {
|
this.wxInvoke(['shareAppMessage', {
|
||||||
@@ -61,7 +63,6 @@ export default {
|
|||||||
}])
|
}])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
shareWechat() {
|
shareWechat() {
|
||||||
this.injectJWeixin(['shareAppMessage', 'shareWechatMessage']).then(() => {
|
this.injectJWeixin(['shareAppMessage', 'shareWechatMessage']).then(() => {
|
||||||
this.wxInvoke(['shareWechatMessage', {
|
this.wxInvoke(['shareWechatMessage', {
|
||||||
@@ -72,10 +73,9 @@ export default {
|
|||||||
}])
|
}])
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
confirm() {
|
confirm() {
|
||||||
this.$emit('change', {
|
uni.navigateBack({
|
||||||
type: 'Tabbar'
|
delta: 2
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -26,6 +26,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import qs from "query-string"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'addList',
|
name: 'addList',
|
||||||
label: '新建项目',
|
label: '新建项目',
|
||||||
@@ -47,30 +49,16 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
mounted() {
|
created() {
|
||||||
this.getList()
|
this.getList()
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
toAdd(type) {
|
toAdd(type) {
|
||||||
this.$emit('change', {
|
uni.navigateTo({url: `./AddForm?${qs.stringify({type})}`})
|
||||||
type: 'AddForm',
|
|
||||||
params: {
|
|
||||||
type
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
quote(id) {
|
quote(id) {
|
||||||
this.$emit('change', {
|
uni.navigateTo({url: `./AddForm?${qs.stringify({id, isQuote: 1})}`})
|
||||||
type: 'AddForm',
|
|
||||||
params: {
|
|
||||||
id,
|
|
||||||
isQuote: 1
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
|
|
||||||
getList() {
|
getList() {
|
||||||
this.$http.post(`/app/appquestionnairetemplate/list`, null, {
|
this.$http.post(`/app/appquestionnairetemplate/list`, null, {
|
||||||
params: {
|
params: {
|
||||||
@@ -79,7 +67,7 @@ export default {
|
|||||||
size: 10000
|
size: 10000
|
||||||
}
|
}
|
||||||
}).then(res => {
|
}).then(res => {
|
||||||
if (res.code == 0) {
|
if (res?.code == 0) {
|
||||||
this.list = res.data.records
|
this.list = res.data.records
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -90,7 +78,7 @@ export default {
|
|||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
.template-wrapper {
|
.template-wrapper {
|
||||||
padding-bottom: 120 rpx;
|
padding-bottom: 120px;
|
||||||
|
|
||||||
.template {
|
.template {
|
||||||
margin: 32px 32px 0;
|
margin: 32px 32px 0;
|
||||||
|
|||||||
@@ -11,8 +11,8 @@
|
|||||||
<div class="form-item__left">
|
<div class="form-item__left">
|
||||||
<h2>{{ item.title }}</h2>
|
<h2>{{ item.title }}</h2>
|
||||||
<div class="form-item__left--info">
|
<div class="form-item__left--info">
|
||||||
<!-- <AiOpenData v-if="item.createUnitName" type="departmentName" :openid="item.createUnitName"/>-->
|
<span v-text="item.createUnitName"/>
|
||||||
<AiOpenData v-if="item.createUserName" type="userName" :openid="item.createUserName"/>
|
<span v-text="item.createUserName"/>
|
||||||
<span>{{ item.createTime.substr(0, item.createTime.length - 3) }}</span>
|
<span>{{ item.createTime.substr(0, item.createTime.length - 3) }}</span>
|
||||||
<span>{{ $dict.getLabel('questionnaireType', item.type) }}</span>
|
<span>{{ $dict.getLabel('questionnaireType', item.type) }}</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -124,13 +124,13 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
showPopup(item) {
|
showPopup(item) {
|
||||||
if (item.status === '2') {
|
// if (item.status === '2') {
|
||||||
this.$confirm('表单已停止发布,请在后台管理系统中查看调查结果', '', {
|
// this.$confirm('表单已停止发布,请在后台管理系统中查看调查结果', '', {
|
||||||
showCancel: false
|
// showCancel: false
|
||||||
})
|
// })
|
||||||
|
//
|
||||||
return false
|
// return false
|
||||||
}
|
// }
|
||||||
|
|
||||||
this.info = item
|
this.info = item
|
||||||
this.id = item.id
|
this.id = item.id
|
||||||
@@ -205,24 +205,17 @@ export default {
|
|||||||
if (this.info.status === '1') {
|
if (this.info.status === '1') {
|
||||||
return this.$u.toast('该表单已发布')
|
return this.$u.toast('该表单已发布')
|
||||||
}
|
}
|
||||||
|
this.linkTo(`./FormSetting?id=${this.info.id}&type=edit`)
|
||||||
this.linkTo(`./formSetting?id=${this.info.id}&type=edit`)
|
|
||||||
this.isShow = false
|
this.isShow = false
|
||||||
},
|
},
|
||||||
|
|
||||||
toEdit() {
|
toEdit() {
|
||||||
if (this.info.dataCount !== 0) {
|
if (this.info.dataCount !== 0) {
|
||||||
return this.$u.toast('该表单已有数据,无法编辑!')
|
return this.$u.toast('该表单已有数据,无法编辑!')
|
||||||
}
|
} else {
|
||||||
|
let {id} = this
|
||||||
this.$emit('change', {
|
|
||||||
type: 'AddForm',
|
|
||||||
params: {
|
|
||||||
id: this.id
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
this.isShow = false
|
this.isShow = false
|
||||||
|
uni.navigateTo({url: `./AddForm?id=${id}`})
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
share(id) {
|
share(id) {
|
||||||
@@ -303,6 +296,10 @@ export default {
|
|||||||
height: 100vh;
|
height: 100vh;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
|
|
||||||
|
u-radio + u-radio {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
::v-deep .u-search {
|
::v-deep .u-search {
|
||||||
margin-bottom: 0 !important;
|
margin-bottom: 0 !important;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="form-wrapper">
|
<div class="form-wrapper">
|
||||||
<div class="form-content">
|
<div class="form-content">
|
||||||
<add-list ref="addList" v-if="currIndex === 1" @change="onChange"></add-list>
|
<list ref="list" v-if="currIndex === 0" @change="onChange"/>
|
||||||
<list ref="list" v-if="currIndex === 0" @change="onChange"></list>
|
<add-list ref="addList" v-if="currIndex === 1" @change="onChange"/>
|
||||||
</div>
|
</div>
|
||||||
<AiTabbar :active.sync="currIndex" :list="tabBar"/>
|
<AiTabbar :active.sync="currIndex" :list="tabBar"/>
|
||||||
</div>
|
</div>
|
||||||
@@ -26,7 +26,6 @@ export default {
|
|||||||
AddList,
|
AddList,
|
||||||
List
|
List
|
||||||
},
|
},
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
tabBar() {
|
tabBar() {
|
||||||
const link = icon => `${this.$cdn}askform/${icon}.png`
|
const link = icon => `${this.$cdn}askform/${icon}.png`
|
||||||
@@ -40,13 +39,19 @@ export default {
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
onChange(e) {
|
onChange(e) {
|
||||||
this.$emit('change', e)
|
this.$emit('change', e)
|
||||||
|
},
|
||||||
|
show() {
|
||||||
|
if (this.currIndex == 0) {
|
||||||
|
this.currIndex = -1
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.currIndex = 0
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onReachBottom() {
|
onReachBottom() {
|
||||||
if (this.currIndex === 0) {
|
if (this.currIndex === 0) {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<u-gap height="16"></u-gap>
|
<u-gap height="16"></u-gap>
|
||||||
<span class="info">
|
<span class="info">
|
||||||
<AiOpenData type="userName" :openid="item.releaseUserId"></AiOpenData>
|
<AiOpenData type="userName" :openid="item.releaseUserId"/>
|
||||||
<text>{{ item.releaseTime }}</text>
|
<text>{{ item.releaseTime }}</text>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -301,7 +301,6 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
& > .has-pic {
|
& > .has-pic {
|
||||||
height: 100%;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<header><em>*</em>公告内容</header>
|
<header><em>*</em>公告内容</header>
|
||||||
<textarea v-model="form.content" placeholder="请输入" :maxlength="500"></textarea>
|
<AiEditor v-model="form.content" placeholder="请输入,最多500字" :maxlength="500"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
|||||||
Reference in New Issue
Block a user