Browse Source

no message

aXin-0810 1 year ago
parent
commit
94480c8105
1 changed files with 462 additions and 301 deletions
  1. 462 301
      src/views/mallManagement/setActivity/index.vue

+ 462 - 301
src/views/mallManagement/setActivity/index.vue

@@ -1,10 +1,24 @@
 <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()" :operationColumnWidth="250" :moreParameters="moreParameters">
+  <template-page
+    ref="pageRef"
+    :get-list="getList"
+    :exportList="exportList"
+    :table-attributes="tableAttributes"
+    :table-events="tableEvents"
+    :options-evens-group="optionsEvensGroup"
+    :column-parsing="columnParsing"
+    :operation="operation()"
+    :operationColumnWidth="250"
+    :moreParameters="moreParameters"
+  >
     <div class="cartographer">
-      <el-dialog :title="formData.id ? '详情' : '新增'" width="100%" :modal="false" :visible.sync="formDialog"
-        :before-close="formCancel">
+      <el-dialog
+        :title="formData.id ? '详情' : '新增'"
+        width="100%"
+        :modal="false"
+        :visible.sync="formDialog"
+        :before-close="formCancel"
+      >
         <zj-form-container v-if="formDialog" ref="formRef" :form-data="formData" :styleSwitch="false">
           <zj-form-module title="活动信息" label-width="120px" :form-data="formData" :form-items="formItems">
           </zj-form-module>
@@ -26,11 +40,18 @@
 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, promotionQuestionnaireStop, promotionQuestionnaireDetail, promotionQuestionnaireShow } from "@/api/setActivity.js"
-import answer from "./answer.vue"
+import {
+  promotionQuestionnaireList,
+  promotionQuestionnaireExport,
+  promotionQuestionnaireAdd,
+  promotionQuestionnaireStop,
+  promotionQuestionnaireDetail,
+  promotionQuestionnaireShow
+} 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 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 },
@@ -43,20 +64,20 @@ export default {
         rowIndex: -1
       },
       formData: {
-        "companyWechatId": "",
-        "companyWechatName": JSON.parse(localStorage.getItem('greemall_user')).companyName,
-        "startTime": "",
-        "endTime": "",
-        "name": "",
-        "submitLimit": '',
-        "submitLimitBool": 0,
-        "qrcode": "",
-        "title": "",
-        "content": "",
-        "banner": [],
-        "detailImgs": [],
-        "promotionQuestionnaireItems": [],
-        "promotionQuestionnaireUsers": [],
+        companyWechatId: '',
+        companyWechatName: JSON.parse(localStorage.getItem('greemall_user')).companyName,
+        startTime: '',
+        endTime: '',
+        name: '',
+        submitLimit: '',
+        submitLimitBool: 0,
+        qrcode: '',
+        title: '',
+        content: '',
+        banner: [],
+        detailImgs: [],
+        promotionQuestionnaireItems: [],
+        promotionQuestionnaireUsers: []
       },
       // 表格属性
       tableAttributes: {
@@ -65,7 +86,7 @@ export default {
       },
       // 表格事件
       tableEvents: {},
-      typeView: 0,
+      typeView: 0
     }
   },
   computed: {
@@ -75,22 +96,28 @@ export default {
           name: '状态',
           key: 'status',
           value: '',
-          conditions: [{
-            label: "生效中",
-            value: "1"
-          }, {
-            label: "待生效",
-            value: "0"
-          }, {
-            label: "已过期",
-            value: "2"
-          }, {
-            label: "已终止",
-            value: "3"
-          }, {
-            label: "全部",
-            value: ""
-          }]
+          conditions: [
+            {
+              label: '生效中',
+              value: '1'
+            },
+            {
+              label: '待生效',
+              value: '0'
+            },
+            {
+              label: '已过期',
+              value: '2'
+            },
+            {
+              label: '已终止',
+              value: '3'
+            },
+            {
+              label: '全部',
+              value: ''
+            }
+          ]
         }
       ]
     },
@@ -124,7 +151,7 @@ export default {
             'value-format': 'yyyy-MM-dd HH:mm:ss',
             'picker-options': {
               disabledDate: time => {
-                return time.getTime() < (Date.now() - 86400000)
+                return time.getTime() < Date.now() - 86400000
               }
             }
           },
@@ -150,7 +177,7 @@ export default {
             'picker-options': {
               disabledDate: time => {
                 if (this.formData.startTime) {
-                  return time.getTime() < (new Date(this.formData.startTime)).getTime()
+                  return time.getTime() < new Date(this.formData.startTime).getTime()
                 }
                 return true
               }
@@ -196,11 +223,33 @@ export default {
             console.log(value)
             return (
               <div class="redbordererr" style="">
-                <el-form-item label="" label-width="0px" prop="submitLimit" rules={value ? [{ required: true, message: '请填写', trigger: 'blur' }] : []}>
+                <el-form-item
+                  label=""
+                  label-width="0px"
+                  prop="submitLimit"
+                  rules={value ? [{ required: true, message: '请填写', trigger: 'blur' }] : []}
+                >
                   <el-radio-group disabled={!this.qx(this.formData)} value={value} onInput={onInput}>
-                    <el-radio disabled={!this.qx(this.formData)} label={0}>不限制</el-radio>
+                    <el-radio disabled={!this.qx(this.formData)} label={0}>
+                      不限制
+                    </el-radio>
                     <el-radio disabled={!this.qx(this.formData)} label={1}>
-                      限制{value ? [<el-input disabled={!this.qx(this.formData)} style="margin: 0 10px;width:100px;" value={this.formData.submitLimit} onInput={(val) => { this.formData.submitLimit = val }} type="number" placeholder="请输入内容"></el-input>, <span>次</span>] : null}
+                      限制
+                      {value
+                        ? [
+                            <el-input
+                              disabled={!this.qx(this.formData)}
+                              style="margin: 0 10px;width:100px;"
+                              value={this.formData.submitLimit}
+                              onInput={val => {
+                                this.formData.submitLimit = val
+                              }}
+                              type="number"
+                              placeholder="请输入内容"
+                            ></el-input>,
+                            <span>次</span>
+                          ]
+                        : null}
                     </el-radio>
                   </el-radio-group>
                 </el-form-item>
@@ -220,7 +269,13 @@ export default {
           render: (h, { props, onInput }) => {
             var { value } = props
             return (
-              <ImageUpload isEdit={this.qx(this.formData)} fileList={this.formData.banner} uid={`questionFiles_bananner`} limit={1} isUpdate={false} />
+              <ImageUpload
+                isEdit={this.qx(this.formData)}
+                fileList={this.formData.banner}
+                uid={`questionFiles_bananner`}
+                limit={1}
+                isUpdate={false}
+              />
             )
           }
         },
@@ -236,7 +291,13 @@ export default {
           render: (h, { props, onInput }) => {
             var { value } = props
             return (
-              <ImageUpload isEdit={this.qx(this.formData)} fileList={this.formData.detailImgs} uid={`questionFiles_detaidetailImgsdetailImgs`} limit={100} isUpdate={false} />
+              <ImageUpload
+                isEdit={this.qx(this.formData)}
+                fileList={this.formData.detailImgs}
+                uid={`questionFiles_detaidetailImgsdetailImgs`}
+                limit={100}
+                isUpdate={false}
+              />
             )
           }
         },
@@ -251,9 +312,7 @@ export default {
           },
           render: (h, { props, onInput }) => {
             var { value } = props
-            return (
-              <quillEditor disabled={!this.qx(this.formData)} value={value} onInput={onInput}></quillEditor>
-            )
+            return <quillEditor disabled={!this.qx(this.formData)} value={value} onInput={onInput}></quillEditor>
           }
         },
         {
@@ -266,225 +325,337 @@ export default {
           },
           render: (h, { props, onInput }) => {
             var { value } = props
-            return this.convertTableJson(value, [
-              {
-                columnAttributes: {
-                  label: '*姓名',
-                  prop: 'name',
-                },
-                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-input value={row[column.columnAttributes.prop]} onInput={val => { row[column.columnAttributes.prop] = val }} placeholder="请输入内容"></el-input>
-                      </el-form-item>
-                    </div>
-                  )
+            return this.convertTableJson(
+              value,
+              [
+                {
+                  columnAttributes: {
+                    label: '*姓名',
+                    prop: 'name'
+                  },
+                  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-input
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            placeholder="请输入内容"
+                          ></el-input>
+                        </el-form-item>
+                      </div>
+                    )
+                  },
+                  viewRender: (h, { row, column, index }) => {
+                    return <div style="padding-left:10px">{row[column.columnAttributes.prop]}</div>
+                  }
                 },
-                viewRender: (h, { row, column, index }) => {
-                  return <div style="padding-left:10px">{row[column.columnAttributes.prop]}</div>
-                }
-              },
-              {
-                columnAttributes: {
-                  label: '*电话',
-                  prop: 'mobile',
+                {
+                  columnAttributes: {
+                    label: '*电话',
+                    prop: 'mobile'
+                  },
+                  editRender: (h, { row, column, index }) => {
+                    return (
+                      <div class="redbordererr">
+                        <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>
+                    )
+                  },
+                  viewRender: (h, { row, column, index }) => {
+                    return <div style="padding-left:10px">{row[column.columnAttributes.prop]}</div>
+                  }
                 },
-                editRender: (h, { row, column, index }) => {
-                  return (
-                    <div class="redbordererr">
-                      <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>
-                  )
+                {
+                  columnAttributes: {
+                    label: '*时间(分钟)',
+                    prop: 'min'
+                  },
+                  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-input
+                            type="number"
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            placeholder="请输入内容"
+                          ></el-input>
+                        </el-form-item>
+                      </div>
+                    )
+                  },
+                  viewRender: (h, { row, column, index }) => {
+                    return <div style="padding-left:10px">{row[column.columnAttributes.prop]}</div>
+                  }
                 },
-                viewRender: (h, { row, column, index }) => {
-                  return <div style="padding-left:10px">{row[column.columnAttributes.prop]}</div>
+                {
+                  columnAttributes: {
+                    label: '*备注',
+                    prop: 'remark'
+                  },
+                  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-input
+                            value={row[column.columnAttributes.prop]}
+                            onInput={val => {
+                              row[column.columnAttributes.prop] = val
+                            }}
+                            placeholder="请输入内容"
+                          ></el-input>
+                        </el-form-item>
+                      </div>
+                    )
+                  },
+                  viewRender: (h, { row, column, index }) => {
+                    return <div style="padding-left:10px">{row[column.columnAttributes.prop]}</div>
+                  }
                 }
-              },
+              ],
               {
-                columnAttributes: {
-                  label: '*时间(分钟)',
-                  prop: 'min',
-                },
-                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-input type="number" value={row[column.columnAttributes.prop]} onInput={val => { row[column.columnAttributes.prop] = val }} placeholder="请输入内容"></el-input>
-                      </el-form-item>
-                    </div>
-                  )
-                },
-                viewRender: (h, { row, column, index }) => {
-                  return <div style="padding-left:10px">{row[column.columnAttributes.prop]}</div>
-                }
+                isEdit: this.qx(this.formData),
+                isAdd: this.qx(this.formData),
+                isDel: this.qx(this.formData)
               },
               {
-                columnAttributes: {
-                  label: '*备注',
-                  prop: 'remark',
+                add: () => {
+                  this.formData.promotionQuestionnaireUsers.push({
+                    min: '',
+                    mobile: '',
+                    name: '',
+                    promotionQuestionnaireId: '',
+                    remark: ''
+                  })
+                  this.isEditTableIndex = this.formData.promotionQuestionnaireUsers.length - 1
                 },
-                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-input value={row[column.columnAttributes.prop]} onInput={val => { row[column.columnAttributes.prop] = val }} placeholder="请输入内容"></el-input>
-                      </el-form-item>
-                    </div>
-                  )
+                delete: ({ row, column, index }, cb) => {
+                  if (this.isEditTableIndex == index) {
+                    this.isEditTableIndex = -1
+                  } else if (this.isEditTableIndex > index) {
+                    this.isEditTableIndex--
+                  }
+                  cb && cb()
                 },
-                viewRender: (h, { row, column, index }) => {
-                  return <div style="padding-left:10px">{row[column.columnAttributes.prop]}</div>
-                }
-              },
-            ], {
-              isEdit: this.qx(this.formData),
-              isAdd: this.qx(this.formData),
-              isDel: this.qx(this.formData),
-            }, {
-              add: () => {
-                this.formData.promotionQuestionnaireUsers.push({
-                  "min": '',
-                  "mobile": "",
-                  "name": "",
-                  "promotionQuestionnaireId": "",
-                  "remark": ""
-                })
-                this.isEditTableIndex = this.formData.promotionQuestionnaireUsers.length - 1
-              },
-              delete: ({ row, column, index }, cb) => {
-                if (this.isEditTableIndex == index) {
-                  this.isEditTableIndex = -1
-                } else if (this.isEditTableIndex > index) {
-                  this.isEditTableIndex--
+                verify: ({ row, column, index }, isEditTableIndex) => {
+                  return new Promise(r => {
+                    if (isEditTableIndex > -1) {
+                      this.$refs.formRef.validateField(
+                        [
+                          `promotionQuestionnaireUsers.${isEditTableIndex}.min`,
+                          `promotionQuestionnaireUsers.${isEditTableIndex}.mobile`,
+                          `promotionQuestionnaireUsers.${isEditTableIndex}.name`,
+                          `promotionQuestionnaireUsers.${isEditTableIndex}.remark`
+                        ],
+                        v => {
+                          if (v) {
+                            r(true)
+                          } else {
+                            r(false)
+                          }
+                        }
+                      )
+                    } else {
+                      r(true)
+                    }
+                  })
                 }
-                cb && cb()
-              },
-              verify: ({ row, column, index }, isEditTableIndex) => {
-                return new Promise(r => {
-                  if (isEditTableIndex > -1) {
-                    this.$refs.formRef.validateField([
-                      `promotionQuestionnaireUsers.${isEditTableIndex}.min`,
-                      `promotionQuestionnaireUsers.${isEditTableIndex}.mobile`,
-                      `promotionQuestionnaireUsers.${isEditTableIndex}.name`,
-                      `promotionQuestionnaireUsers.${isEditTableIndex}.remark`,
-                    ], (v) => {
-                      if (v) {
-                        r(true)
-                      } else {
-                        r(false)
-                      }
-                    })
-                  } else {
-                    r(true)
-                  }
-                })
-              },
-            })
+              }
+            )
           }
-        },
+        }
       ]
     },
     formItems2() {
-      return [{
-        md: 24,
-        name: 'slot-component',
-        attributes: { placeholder: '请输入' },
-        formItemAttributes: {
-          label: '',
-          'label-width': '0px',
-          prop: 'promotionQuestionnaireItems',
-          rules: [{ required: true, message: '请设置', trigger: 'blur' }]
-        },
-        render: (h, { props, onInput }) => {
-          return (
-            <div>
-              <div>
-                {this.qx(this.formData) ? <el-button type="primary" onClick={() => { this.showQuestion = true }}>新增</el-button> : null}
-              </div>
+      return [
+        {
+          md: 24,
+          name: 'slot-component',
+          attributes: { placeholder: '请输入' },
+          formItemAttributes: {
+            label: '',
+            'label-width': '0px',
+            prop: 'promotionQuestionnaireItems',
+            rules: [{ required: true, message: '请设置', trigger: 'blur' }]
+          },
+          render: (h, { props, onInput }) => {
+            return (
               <div>
-                <zj-table
-                  columns={[{
-                    columnAttributes: {
-                      label: '填写内容',
-                      prop: '',
-                    },
-                    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="display: flex">
-                              {row.answer.map(item => {
-                                return <div style="margin-right:10px">
-                                  <el-radio disabled label="">{item.option_value}</el-radio>
-                                  <div>
-                                    {item.option_files.map(v => <el-image src={v.url} preview-src-list={[v.url]} fit="fit" style="width:80px;height:80px;" />)}
-                                  </div>
-                                </div>
-                              })}
-                            </div>,
-                            <div style="display: flex">
-                              {row.answer.map(item => {
-                                return <div style="margin-right:10px">
-                                  <el-checkbox disabled label="">{item.option_value}</el-checkbox>
-                                  <div>
-                                    {item.option_files.map(v => <el-image src={v.url} preview-src-list={[v.url]} fit="fit" style="width:80px;height:80px;" />)}
-                                  </div>
-                                </div>
-                              })}
-                            </div>,
-                            <div>
-                              <el-input disabled placeholder="请输入内容"></el-input>
-                            </div>,
-                            null
-                          ][row.type - 1]}
-                        </div>
-                      )
-                    },
-                  },
-                  ...(() => {
-                    if (this.qx(this.formData)) {
-                      return [{
+                <div>
+                  {this.qx(this.formData) ? (
+                    <el-button
+                      type="primary"
+                      onClick={() => {
+                        this.showQuestion = true
+                      }}
+                    >
+                      新增
+                    </el-button>
+                  ) : null}
+                </div>
+                <div>
+                  <zj-table
+                    columns={[
+                      {
                         columnAttributes: {
-                          label: '操作',
-                          prop: '',
-                          width: '200px'
+                          label: '填写内容',
+                          prop: ''
                         },
                         render: (h, { row, column, index }) => {
                           return (
-                            <div style="padding-left:5px">
-                              <el-button size="mini" onClick={() => {
-                                this.questionData = {
-                                  ...JSON.parse(JSON.stringify(row)),
-                                  rowIndex: index
-                                }
-                                this.$nextTick(() => {
-                                  this.showQuestion = true
-                                })
-                              }}>编辑</el-button>
-                              <el-button size="mini" onClick={() => {
-                                this.formData.promotionQuestionnaireItems.push({ ...JSON.parse(JSON.stringify(row)) })
-                              }}>复制</el-button>
-                              <el-button size="mini" onClick={() => {
-                                this.formData.promotionQuestionnaireItems.splice(index, 1)
-                              }}>删除</el-button>
+                            <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="display: flex">
+                                    {row.answer.map(item => {
+                                      return (
+                                        <div style="margin-right:10px">
+                                          <el-radio disabled label="">
+                                            {item.option_value}
+                                          </el-radio>
+                                          <div>
+                                            {item.option_files.map(v => (
+                                              <el-image
+                                                src={v.url}
+                                                preview-src-list={[v.url]}
+                                                fit="fit"
+                                                style="width:80px;height:80px;"
+                                              />
+                                            ))}
+                                          </div>
+                                        </div>
+                                      )
+                                    })}
+                                  </div>,
+                                  <div style="display: flex">
+                                    {row.answer.map(item => {
+                                      return (
+                                        <div style="margin-right:10px">
+                                          <el-checkbox disabled label="">
+                                            {item.option_value}
+                                          </el-checkbox>
+                                          <div>
+                                            {item.option_files.map(v => (
+                                              <el-image
+                                                src={v.url}
+                                                preview-src-list={[v.url]}
+                                                fit="fit"
+                                                style="width:80px;height:80px;"
+                                              />
+                                            ))}
+                                          </div>
+                                        </div>
+                                      )
+                                    })}
+                                  </div>,
+                                  <div>
+                                    <el-input disabled placeholder="请输入内容"></el-input>
+                                  </div>,
+                                  null
+                                ][row.type - 1]
+                              }
                             </div>
                           )
-                        },
-                      }]
-                    }
-                    return []
-                  })()]}
-                  table-data={this.formData.promotionQuestionnaireItems}
-                />
+                        }
+                      },
+                      ...(() => {
+                        if (this.qx(this.formData)) {
+                          return [
+                            {
+                              columnAttributes: {
+                                label: '操作',
+                                prop: '',
+                                width: '200px'
+                              },
+                              render: (h, { row, column, index }) => {
+                                return (
+                                  <div style="padding-left:5px">
+                                    <el-button
+                                      size="mini"
+                                      onClick={() => {
+                                        this.questionData = {
+                                          ...JSON.parse(JSON.stringify(row)),
+                                          rowIndex: index
+                                        }
+                                        this.$nextTick(() => {
+                                          this.showQuestion = true
+                                        })
+                                      }}
+                                    >
+                                      编辑
+                                    </el-button>
+                                    <el-button
+                                      size="mini"
+                                      onClick={() => {
+                                        this.formData.promotionQuestionnaireItems.push({
+                                          ...JSON.parse(JSON.stringify(row))
+                                        })
+                                      }}
+                                    >
+                                      复制
+                                    </el-button>
+                                    <el-button
+                                      size="mini"
+                                      onClick={() => {
+                                        this.formData.promotionQuestionnaireItems.splice(index, 1)
+                                      }}
+                                    >
+                                      删除
+                                    </el-button>
+                                  </div>
+                                )
+                              }
+                            }
+                          ]
+                        }
+                        return []
+                      })()
+                    ]}
+                    table-data={this.formData.promotionQuestionnaireItems}
+                  />
+                </div>
               </div>
-            </div>
-          )
+            )
+          }
         }
-      }]
+      ]
     }
   },
   methods: {
@@ -498,40 +669,25 @@ export default {
         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}
+              {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(!!~[0, 2].indexOf(row.status) || !!~['待生效','生效中'].indexOf(row.statusText)){
-          //  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>
-          //  )
-          //}else{
-          //  return (
-          //    <div style="padding:0 6px;cursor: pointer;opacity: 0.3;">
-          //      {row.qrcode ? row.qrcode.split(",").map(url => <el-image src={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>
-          )
+          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 <div style="padding:0 6px;cursor: pointer;">{row.endTime && row.endTime.split(' ')[0]}</div>
         }
       }
       return defaultData
@@ -550,11 +706,11 @@ export default {
                 promotionQuestionnaireItems: res.data.promotionQuestionnaireItems.map(item => {
                   return {
                     ...item,
-                    answer: JSON.parse(item?.answer || "[]")
+                    answer: JSON.parse(item?.answer || '[]')
                   }
                 }),
-                banner: res.data?.banner?.split(",").map(url => ({ url })),
-                detailImgs: res.data?.detailImgs?.split(",").map(url => ({ url }))
+                banner: res.data?.banner?.split(',').map(url => ({ url })),
+                detailImgs: res.data?.detailImgs?.split(',').map(url => ({ url }))
               }
               this.$nextTick(() => {
                 this.formDialog = true
@@ -577,11 +733,11 @@ export default {
                 promotionQuestionnaireItems: res.data.promotionQuestionnaireItems.map(item => {
                   return {
                     ...item,
-                    answer: JSON.parse(item?.answer || "[]")
+                    answer: JSON.parse(item?.answer || '[]')
                   }
                 }),
-                banner: res.data?.banner?.split(",").map(url => ({ url })),
-                detailImgs: res.data?.detailImgs?.split(",").map(url => ({ url }))
+                banner: res.data?.banner?.split(',').map(url => ({ url })),
+                detailImgs: res.data?.detailImgs?.split(',').map(url => ({ url }))
               }
               this.$nextTick(() => {
                 this.formDialog = true
@@ -595,50 +751,52 @@ export default {
           },
           click: ({ row, index, column }) => {
             this.$router.push({
-              name: "activityOrder",
+              name: 'activityOrder',
               params: {
                 pageName: row.id,
                 pageType: 'detail',
-                pageCode: row.id,
-              },
+                pageCode: row.id
+              }
             })
           }
         },
         viewActivity: {
           click: ({ row, index, column }) => {
             this.$router.push({
-              name: "activityOrder",
+              name: 'activityOrder',
               params: {
                 pageName: row.id,
                 pageType: 'list',
-                pageCode: row.id,
-              },
+                pageCode: row.id
+              }
             })
           }
         },
         isView: {
           name: ({ row, index, column }) => {
-            return row.isShow ? "隐藏" : "显示"
+            return row.isShow ? '隐藏' : '显示'
           },
           click: ({ row, index, column }) => {
-            this.$confirm(`是否确定${row.isShow ? "隐藏" : "显示"}?`, '提示', {
+            this.$confirm(`是否确定${row.isShow ? '隐藏' : '显示'}?`, '提示', {
               confirmButtonText: '确定',
               cancelButtonText: '取消',
               type: 'warning'
-            }).then(() => {
-              promotionQuestionnaireShow({
-                id: row.id,
-                isShow: !row.isShow
-              }).then(res => {
-                this.$message({
-                  type: 'success',
-                  message: `设置成功!`,
+            })
+              .then(() => {
+                promotionQuestionnaireShow({
+                  id: row.id,
+                  isShow: !row.isShow
+                }).then(res => {
+                  this.$message({
+                    type: 'success',
+                    message: `设置成功!`
+                  })
+                  this.$refs.pageRef.refreshList()
                 })
-                this.$refs.pageRef.refreshList()
               })
-            }).catch(() => {});
+              .catch(() => {})
           }
-        },
+        }
       })
     },
     // 新增
@@ -658,9 +816,9 @@ 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(","),
+            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 => {
               return {
                 ...item,
@@ -672,7 +830,7 @@ export default {
           promotionQuestionnaireAdd(data).then(res => {
             this.$message({
               type: 'success',
-              message: `添加成功!`,
+              message: `添加成功!`
             })
             this.$refs.pageRef.refreshList()
             this.formCancel()
@@ -687,7 +845,7 @@ export default {
       }).then(res => {
         this.$message({
           type: 'success',
-          message: `终止成功!`,
+          message: `终止成功!`
         })
         this.$refs.pageRef.refreshList()
         this.formCancel()
@@ -709,11 +867,14 @@ export default {
       }
       this.questionClose()
       this.$nextTick(() => {
-        this.$refs.formRef.validateField(["promotionQuestionnaireItems"], (v) => { })
+        this.$refs.formRef.validateField(['promotionQuestionnaireItems'], v => {})
       })
     },
     qx(item) {
-      return this.typeView && (!item.id || !!~[0, 1].indexOf(item.status) || !!~['待生效', '生效中'].indexOf(item.statusText))
+      return (
+        this.typeView &&
+        (!item.id || !!~[0, 1].indexOf(item.status) || !!~['待生效', '生效中'].indexOf(item.statusText))
+      )
     }
   }
 }