|
@@ -1,7 +1,7 @@
|
|
|
<template>
|
|
|
<template-page ref="pageRef" :get-list="getList" :exportList="exportList" :table-attributes="tableAttributes"
|
|
|
:table-events="tableEvents" :options-evens-group="optionsEvensGroup"
|
|
|
- :column-parsing="columnParsing" :operation="operation()">
|
|
|
+ :column-parsing="columnParsing" :operation="operation()" :operationColumnWidth="200">
|
|
|
<div class="cartographer">
|
|
|
<el-dialog :title="formData.id?'详情':'新增'" width="100%" :modal="false" :visible.sync="formDialog"
|
|
|
:before-close="formCancel">
|
|
@@ -16,6 +16,7 @@
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button size="mini" @click="formCancel">取 消</el-button>
|
|
|
<el-button v-if="!formData.id" size="mini" type="primary" @click="formConfirm">确 定</el-button>
|
|
|
+ <el-button v-if="formData.id && !!~[0, 1].indexOf(formData.status)" size="mini" type="primary" @click="zhongzhi">终 止</el-button>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
</div>
|
|
@@ -27,11 +28,12 @@
|
|
|
import TemplatePage from '@/components/template/template-page-1.vue'
|
|
|
import import_mixin from '@/components/template/import_mixin.js'
|
|
|
import operation_mixin from '@/components/template/operation_mixin.js'
|
|
|
-import {promotionQuestionnaireList,promotionQuestionnaireExport,promotionQuestionnaireAdd,promotionQuestionnaireDetail} from "@/api/setActivity.js"
|
|
|
+import {promotionQuestionnaireList,promotionQuestionnaireExport,promotionQuestionnaireAdd,promotionQuestionnaireStop,promotionQuestionnaireDetail} from "@/api/setActivity.js"
|
|
|
import answer from "./answer.vue"
|
|
|
import ImageUpload from '@/components/file-upload'
|
|
|
import quillEditor from '@/components/v-quill-editor'
|
|
|
import editTable from "@/components/template/editTable.js"
|
|
|
+import { required, mobileRequired, mobile, httpUrl, email } from '@/components/template/rules_verify.js'
|
|
|
export default {
|
|
|
components: { TemplatePage, answer, ImageUpload, quillEditor },
|
|
|
mixins: [import_mixin, operation_mixin, editTable],
|
|
@@ -215,7 +217,11 @@ export default {
|
|
|
{
|
|
|
name: 'slot-component',
|
|
|
md: 24,
|
|
|
- formItemAttributes: { label: '提交记录', prop: 'promotionQuestionnaireUsers' },
|
|
|
+ formItemAttributes: {
|
|
|
+ label: '提交记录',
|
|
|
+ prop: 'promotionQuestionnaireUsers',
|
|
|
+ rules: [{ required: true, message: '请设置', trigger: 'blur' }]
|
|
|
+ },
|
|
|
render: (h, { props, onInput }) => {
|
|
|
var { value } = props
|
|
|
return this.convertTableJson(value, [
|
|
@@ -245,7 +251,7 @@ export default {
|
|
|
editRender: (h, { row, column, index }) => {
|
|
|
return (
|
|
|
<div class="redbordererr">
|
|
|
- <el-form-item label="" label-width="0px" prop={`promotionQuestionnaireUsers.${index}.${column.columnAttributes.prop}`} rules={[{ required: true, message: '请填写', trigger: 'blur' }]}>
|
|
|
+ <el-form-item label="" label-width="0px" prop={`promotionQuestionnaireUsers.${index}.${column.columnAttributes.prop}`} rules={mobileRequired}>
|
|
|
<el-input value={row[column.columnAttributes.prop]} onInput={val => { row[column.columnAttributes.prop] = val }} placeholder="请输入内容"></el-input>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
@@ -348,7 +354,7 @@ export default {
|
|
|
label: '',
|
|
|
'label-width': '0px',
|
|
|
prop: 'promotionQuestionnaireItems',
|
|
|
- rules: []
|
|
|
+ rules: [{ required: true, message: '请设置', trigger: 'blur' }]
|
|
|
},
|
|
|
render: (h, { props, onInput }) => {
|
|
|
return (
|
|
@@ -366,7 +372,7 @@ export default {
|
|
|
render: (h, { row, column, index }) => {
|
|
|
return (
|
|
|
<div style="padding:6px;">
|
|
|
- <div style="font-weight:bold;">{row.isRequire?<span style="color:red">*</span> : null}{index+1}、{row.question}({['单选','多选','填写'][row.type-1]})</div>
|
|
|
+ <div style="font-weight:bold;">{row.isRequire?<span style="color:red">*</span> : null}{index+1}、{row.question}({['单选','多选','填写','图片','视频'][row.type-1]})</div>
|
|
|
{[
|
|
|
<div>
|
|
|
{row.answer.map(item=><el-radio disabled label="">{item.option_value}</el-radio>)}
|
|
@@ -376,7 +382,8 @@ export default {
|
|
|
</div>,
|
|
|
<div>
|
|
|
<el-input disabled placeholder="请输入内容"></el-input>
|
|
|
- </div>
|
|
|
+ </div>,
|
|
|
+ null
|
|
|
][row.type-1]}
|
|
|
</div>
|
|
|
)
|
|
@@ -431,6 +438,33 @@ export default {
|
|
|
exportList: promotionQuestionnaireExport,
|
|
|
// 表格列解析渲染数据更改
|
|
|
columnParsing(item, defaultData) {
|
|
|
+ if (item.jname === 'qrcode') {
|
|
|
+ defaultData.render = (h, { row, index, column }) => {
|
|
|
+ return (
|
|
|
+ <div style="padding:0 6px;cursor: pointer;">
|
|
|
+ {row.qrcode ? row.qrcode.split(",").map(url => <el-image src={url} preview-src-list={[url]} fit="fit" style="width:80px;height:80px;" />) : null}
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (item.jname == 'startTime') {
|
|
|
+ defaultData.render = (h, { row, index, column }) => {
|
|
|
+ return (
|
|
|
+ <div style="padding:0 6px;cursor: pointer;">
|
|
|
+ {row.startTime && row.startTime.split(" ")[0]}
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (item.jname == 'endTime') {
|
|
|
+ defaultData.render = (h, { row, index, column }) => {
|
|
|
+ return (
|
|
|
+ <div style="padding:0 6px;cursor: pointer;">
|
|
|
+ {row.endTime && row.endTime.split(" ")[0]}
|
|
|
+ </div>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ }
|
|
|
return defaultData
|
|
|
},
|
|
|
// 操作按钮
|
|
@@ -459,6 +493,28 @@ export default {
|
|
|
})
|
|
|
}
|
|
|
},
|
|
|
+ createActivity: {
|
|
|
+ click: ({ row, index, column }) => {
|
|
|
+ this.$router.push({
|
|
|
+ name: "activityOrder",
|
|
|
+ query: {
|
|
|
+ type: "detail",
|
|
|
+ id: row.id,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
+ viewActivity: {
|
|
|
+ click: ({ row, index, column }) => {
|
|
|
+ this.$router.push({
|
|
|
+ name: "activityOrder",
|
|
|
+ query: {
|
|
|
+ type: "list",
|
|
|
+ id: row.id,
|
|
|
+ },
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
})
|
|
|
},
|
|
|
// 新增
|
|
@@ -476,6 +532,7 @@ export default {
|
|
|
if (valid) {
|
|
|
var data = {
|
|
|
...this.formData,
|
|
|
+ endTime: this.formData.endTime ? `${this.formData.endTime.split(" ")[0]} 23:59:59` : '',
|
|
|
banner:this.formData.banner.map(item=>item.url).join(","),
|
|
|
detailImgs:this.formData.detailImgs.map(item=>item.url).join(","),
|
|
|
promotionQuestionnaireItems:this.formData.promotionQuestionnaireItems.map(item=>{
|
|
@@ -489,7 +546,7 @@ export default {
|
|
|
promotionQuestionnaireAdd(data).then(res=>{
|
|
|
this.$message({
|
|
|
type: 'success',
|
|
|
- message: `添加成功成功!`,
|
|
|
+ message: `添加成功!`,
|
|
|
})
|
|
|
this.$refs.pageRef.refreshList()
|
|
|
this.formCancel()
|
|
@@ -497,6 +554,19 @@ export default {
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
+ // 终止
|
|
|
+ zhongzhi(){
|
|
|
+ promotionQuestionnaireStop({
|
|
|
+ id:this.formData.id
|
|
|
+ }).then(res=>{
|
|
|
+ this.$message({
|
|
|
+ type: 'success',
|
|
|
+ message: `终止成功!`,
|
|
|
+ })
|
|
|
+ this.$refs.pageRef.refreshList()
|
|
|
+ this.formCancel()
|
|
|
+ })
|
|
|
+ },
|
|
|
// 关闭题目编辑
|
|
|
questionClose(){
|
|
|
this.showQuestion = false
|