|
|
|
@ -6,12 +6,14 @@ |
|
|
|
<u-input v-model="item.answer" v-if="item.type === 'input'" /> |
|
|
|
<u-textarea v-model="item.answer" v-if="item.type === 'textarea'" placeholder="请输入内容" |
|
|
|
autoHeight></u-textarea> |
|
|
|
<u-radio-group v-model="item.answer" v-if="item.type === 'radio'" placement="column" |
|
|
|
<u-input v-model="item.answer" @focus="showpicker = true" v-if="item.type === 'radio'" /> |
|
|
|
<u-picker v-if="item.type === 'radio'" :show="showpicker" v-model="item.answer" :columns="[arrtoarr(item.choose)]" @cancel="showpicker = false" @confirm="showpicker = false"></u-picker> |
|
|
|
<!-- <u-radio-group v-model="item.answer" v-if="item.type === 'radio'" placement="column" |
|
|
|
@change="groupChange"> |
|
|
|
<u-radio :customStyle="{marginBottom: '16rpx'}" v-for="(item, index) in item.choose" :key="index" |
|
|
|
:label="item.name" :name="item.name"> |
|
|
|
</u-radio> |
|
|
|
</u-radio-group> |
|
|
|
</u-radio-group> --> |
|
|
|
<u-checkbox-group v-model="item.answer" v-if="item.type === 'checkbox'" placement="column" |
|
|
|
> |
|
|
|
<u-checkbox :customStyle="{marginBottom: '16rpx'}" v-for="(item, index) in item.choose" :key="index" |
|
|
|
@ -36,18 +38,22 @@ |
|
|
|
ref |
|
|
|
} from 'vue' |
|
|
|
import { |
|
|
|
specialSign |
|
|
|
specialSign, |
|
|
|
activitySign |
|
|
|
} from '@/api/index' |
|
|
|
|
|
|
|
const titleData = ref({}) |
|
|
|
const ztid = ref('') |
|
|
|
|
|
|
|
const showpicker = ref(false) |
|
|
|
const type = ref('') |
|
|
|
|
|
|
|
|
|
|
|
function processCheckboxAnswers(arr) { |
|
|
|
return arr.map(item => { |
|
|
|
// 基础对象结构 |
|
|
|
const result = { id: item.id }; |
|
|
|
|
|
|
|
|
|
|
|
// 处理answer属性 |
|
|
|
if (item.type === 'checkbox' && typeof item.answer === 'object') { |
|
|
|
// 将对象值转为逗号分隔的字符串(带中文引号) |
|
|
|
@ -56,12 +62,21 @@ |
|
|
|
.join(','); |
|
|
|
} else { |
|
|
|
// 非checkbox类型或answer非对象的情况 |
|
|
|
result.answer = item.answer; |
|
|
|
if(item.type === 'radio') { |
|
|
|
result.answer = item.answer[0] |
|
|
|
} else { |
|
|
|
result.answer = item.answer; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return result; |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
const arrtoarr = (arr) => { |
|
|
|
let newar = arr.map(item => item.name) |
|
|
|
return newar |
|
|
|
} |
|
|
|
|
|
|
|
// 提交方法 |
|
|
|
function submit() { |
|
|
|
@ -82,25 +97,44 @@ |
|
|
|
form_id: titleData.value.form_id, |
|
|
|
answer: processCheckboxAnswers(titleData.value.question) |
|
|
|
} |
|
|
|
specialSign(param).then((res)=> { |
|
|
|
if(res.code === 1) { |
|
|
|
uni.showToast({ |
|
|
|
title: '提交成功!', |
|
|
|
duration: 2000 |
|
|
|
}) |
|
|
|
setTimeout(()=> { |
|
|
|
uni.navigateBack() |
|
|
|
},2000) |
|
|
|
} else { |
|
|
|
uni.showToast({ |
|
|
|
title: res.msg, |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
if(type.value === 'zt') { |
|
|
|
specialSign(param).then((res)=> { |
|
|
|
if(res.code === 1) { |
|
|
|
uni.showToast({ |
|
|
|
title: '提交成功!', |
|
|
|
duration: 2000 |
|
|
|
}) |
|
|
|
setTimeout(()=> { |
|
|
|
uni.navigateBack() |
|
|
|
},2000) |
|
|
|
} else { |
|
|
|
uni.showToast({ |
|
|
|
title: res.msg, |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
activitySign(param).then((res)=> { |
|
|
|
if(res.code === 1) { |
|
|
|
uni.showToast({ |
|
|
|
title: '提交成功!', |
|
|
|
duration: 2000 |
|
|
|
}) |
|
|
|
setTimeout(()=> { |
|
|
|
uni.navigateBack() |
|
|
|
},2000) |
|
|
|
} else { |
|
|
|
uni.showToast({ |
|
|
|
title: res.msg, |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
onLoad(async (param) => { |
|
|
|
type.value = param.type |
|
|
|
ztid.value = param.id |
|
|
|
titleData.value = JSON.parse(param.form) |
|
|
|
}) |
|
|
|
|