荐商发布tab点击切换发布表单参数没有切换

商铺信息与添加客户是一个顶部tab 它里面的标签都是在view容器里面的。

例如发布表单

{
    "type":"view",
    "style":"view.DefaultViewLogic",
    "name":null,
    "isGrayBg":false,
    "showWaterImg":false,
    "tags":[
        {
            "type":"tag",
            "style":"tag.AppGeneralFormTagLogic",
            "name":null,
            "linearLayout":"body",
            "data":{
                "htmlObj":[
                    {
                        "compare":false,
                        "formType":"hintText",
                        "showValue":"客户购买你的信息可得全部业绩,别人成交了你的信息可获得20%业绩",
                        "canEqual":false,
                        "checkAll":false,
                        "expression":true,
                        "hidden":false,
                        "background":"min-height: 2.25rem;background: rgba(39, 196, 152, 0.05);border-radius: 1.25rem;margin-top:1rem;min-width: 17.31rem;width: fit-content;",
                        "leftIcon":".../png",
                        "tips":"说明"
                    },
                    {
                        "compare":false,
                        "formType":"releaseTypeWidget",
                        "canEqual":false,
                        "checkAll":false,
                        "expression":true,
                        "hidden":false,
                        "formKey":"plugin_id",
                        "itemList":[
                            {
                                "dataStr":false,
                                "isScript":false,
                                "index":"1",
                                "isArray":true,
                                "check":true,
                                "isDisabled":false,
                                "label":"商铺转让",
                                "tempCheck":"true",
                                "isMajorPic":false,
                                "value":"1"
                            },
                            {
                                "dataStr":false,
                                "isScript":false,
                                "index":"1",
                                "isArray":true,
                                "check":false,
                                "isDisabled":false,
                                "label":"商铺出租",
                                "tempCheck":"false",
                                "isMajorPic":false,
                                "value":"2"
                            },
                            {
                                "dataStr":false,
                                "isScript":false,
                                "index":"1",
                                "isArray":true,
                                "check":false,
                                "isDisabled":false,
                                "label":"商铺出售",
                                "tempCheck":"false",
                                "isMajorPic":false,
                                "value":"13"
                            },
                            {
                                "dataStr":false,
                                "isScript":false,
                                "index":"2",
                                "isArray":true,
                                "check":false,
                                "isDisabled":false,
                                "label":"写字楼出租",
                                "tempCheck":"false",
                                "isMajorPic":false,
                                "value":"18"
                            },
                            {
                                "dataStr":false,
                                "isScript":false,
                                "index":"2",
                                "isArray":true,
                                "check":false,
                                "isDisabled":false,
                                "label":"写字楼出售",
                                "tempCheck":"false",
                                "isMajorPic":false,
                                "value":"19"
                            }
                        ],
                        "rules":[
                            {
                                "name":"required",
                                "message":"请选择发布类型",
                                "value":"true"
                            }
                        ],
                        "label":"发布类型",
                        "value":"1"
                    },
                    {
                        "compare":false,
                        "formType":"textInput",
                        "canEqual":false,
                        "checkAll":false,
                        "expression":true,
                        "hidden":false,
                        "formKey":"mobile",
                        "rules":[
                            {
                                "name":"pattern",
                                "message":"请输入正确的手机号码",
                                "value":"[1][3,4,5,6,7,8,9][0-9]{9}"
                            },
                            {
                                "name":"required",
                                "message":"请输入手机号码",
                                "value":"true"
                            }
                        ],
                        "textType":"number",
                        "endIcon":"release_icon_contact@3x.png",
                        "value":"",
                        "maxLength":11,
                        "placeHolder":"请填写客户号码"
                    }
                ]
            },
            "paramName":"isJsonArray"
        },
        {
            "type":"tag",
            "style":"tag.AppGeneralButtonTagLogic",
            "name":null,
            "linearLayout":"body",
            "cssStyle":"text-align:center;padding-top:1.5rem",
            "data":[
                {
                    "cssColor":"yellow",
                    "round":"true",
                    "size":"small",
                    "submit":{
                        "id":"publish",
                        "content":{
                            "isJsonArray":""
                        }
                    },
                    "plain":"",
                    "cssStyle":"width:12.5rem;height:3.06rem;border-radius:1.53rem",
                    "action":"submit",
                    "disabled":"",
                    "label":"下一步",
                    "paramName":"isJsonArray"
                }
            ]
        }
    ]
}

这个view里面有一个表单,如果切换到添加客户

表单里面的内容则会发生变化:

{
    "type":"view",
    "style":"view.DefaultViewLogic",
    "name":null,
    "isGrayBg":false,
    "showWaterImg":false,
    "tags":[
        {
            "type":"tag",
            "style":"tag.AppGeneralFormTagLogic",
            "name":null,
            "linearLayout":"body",
            "data":{
                "htmlObj":[
                    {
                        "compare":false,
                        "formType":"hintText",
                        "showValue":"客户购买你的信息可得全部业绩,别人成交了你的信息可获得20%业绩",
                        "canEqual":false,
                        "checkAll":false,
                        "expression":true,
                        "hidden":false,
                        "background":"min-height: 2.25rem;background: rgba(39, 196, 152, 0.05);border-radius: 1.25rem;margin-top:1rem;min-width: 17.31rem;width: fit-content;",
                        "leftIcon":".../png",
                        "tips":"说明"
                    },
                    {
                        "compare":false,
                        "formType":"releaseTypeWidget",
                        "canEqual":false,
                        "checkAll":false,
                        "expression":true,
                        "hidden":false,
                        "formKey":"plugin_id",
                        "itemList":[
                            {
                                "dataStr":false,
                                "isScript":false,
                                "index":"1",
                                "isArray":true,
                                "check":true,
                                "isDisabled":false,
                                "label":"找店",
                                "tempCheck":"true",
                                "isMajorPic":false,
                                "value":"3"
                            }
                        ],
                        "rules":[
                            {
                                "name":"required",
                                "message":"请选择发布类型",
                                "value":"true"
                            }
                        ],
                        "label":"发布类型",
                        "value":"3"
                    },
                    {
                        "compare":false,
                        "formType":"textInput",
                        "canEqual":false,
                        "checkAll":false,
                        "expression":true,
                        "hidden":false,
                        "formKey":"mobile",
                        "rules":[
                            {
                                "name":"pattern",
                                "message":"请输入正确的手机号码",
                                "value":"[1][3,4,5,6,7,8,9][0-9]{9}"
                            },
                            {
                                "name":"required",
                                "message":"请输入手机号码",
                                "value":"true"
                            }
                        ],
                        "textType":"number",
                        "endIcon":"release_icon_contact@3x.png",
                        "value":"",
                        "maxLength":20,
                        "placeHolder":"请填写客户号码"
                    }
                ]
            },
            "paramName":"isJsonArray"
        },
        {
            "type":"tag",
            "style":"tag.AppGeneralButtonTagLogic",
            "name":null,
            "linearLayout":"body",
            "cssStyle":"text-align:center;padding-top:1.5rem",
            "data":[
                {
                    "cssColor":"yellow",
                    "round":"true",
                    "size":"small",
                    "submit":{
                        "id":"publish2",
                        "content":{
                            "isJsonArray":""
                        }
                    },
                    "plain":"",
                    "cssStyle":"width:12.5rem;height:3.06rem;border-radius:1.53rem",
                    "action":"submit",
                    "disabled":"",
                    "label":"下一步",
                    "paramName":"isJsonArray"
                }
            ]
        }
    ]
}

但是表单需要初始化所以我们在表单切换事件中处理表单切换,注意不能用reset来重置表单因为那样原来的控件都清空了,最好是使用删除表单

 async segmentChanged(e: any) {
    const index = e.detail.value;
    const segmentButton = this.segment.nativeElement.children[index];
    segmentButton.scrollIntoView({
      behavior: "smooth",
      inline: "center",
      block: "nearest",
    });
    if (this.tagData.data) {
      this.tagData.currentTab = index;
      // 删除表单信息
      this.http.post(
        "application/part",
        {
          viewId: this.tagData.data[index].partLink.target,
          sessionId: localStorage.getItem("sessionId"),
          params: this.tagData.data[index].partLink.params,
        },
        (res: any) => {
          // #616 修改:点击转让服务和选址服务跳到第一屏的画面
          this.content.scrollToTop(0);
          if (res !== undefined && res != null) {
            const switchData = JSON.parse(res.script);
            if (switchData.tags.length > 0 && switchData.tags[0].style === 'tag.AppGeneralFormTagLogic') {
              const paramName = switchData.tags[0].paramName;
              // 如果包含 tag.AppGeneralFormTagLogic 则清除 form表单
              this.appGlobalService.delFormGroupWithParamName(paramName);
            }
            setTimeout(() => {
              this.tagData.currentData = switchData;
              localStorage.setItem(
                "refreshGrayBgTag",
                "" + this.tagData.currentData.isGrayBg
              );
              this.eventService.eventEmit.emit(
                "refreshGrayBg",
                "refreshGrayBg"
              );
              localStorage.setItem(
                "dataMapTopTabContainer",
                JSON.stringify(this.tagData)
              );
              this.eventService.eventEmit.emit(
                "refreshTopTabContainer",
                "refreshTopTabContainer"
              );
            }, 50);


          }
        }
      );
      // }
    }
  }

 

好的,下面是一个简单的示例代码: ```html <template> <div> <el-tabs v-model="activeTab"> <el-tab-pane label="表格"> <el-table :data="tableData"> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column prop="gender" label="性别"></el-table-column> </el-table> </el-tab-pane> <el-tab-pane label="表单"> <el-form ref="form" :model="formData" :rules="rules" label-width="80px"> <el-form-item label="姓名" prop="name"> <el-input v-model="formData.name"></el-input> </el-form-item> <el-form-item label="年龄" prop="age"> <el-input v-model.number="formData.age"></el-input> </el-form-item> <el-form-item label="性别" prop="gender"> <el-radio-group v-model="formData.gender"> <el-radio label="男"></el-radio> <el-radio label="女"></el-radio> </el-radio-group> </el-form-item> <el-form-item> <el-button type="primary" @click="submitForm">提交</el-button> <el-button @click="resetForm">重置</el-button> </el-form-item> </el-form> </el-tab-pane> </el-tabs> </div> </template> <script> export default { data() { return { activeTab: '表格', tableData: [ { name: '张三', age: 20, gender: '男' }, { name: '李四', age: 25, gender: '女' }, { name: '王五', age: 30, gender: '男' }, ], formData: { name: '', age: '', gender: '', }, rules: { name: [ { required: true, message: '请输入姓名', trigger: 'blur' }, ], age: [ { required: true, message: '请输入年龄', trigger: 'blur' }, { type: 'number', message: '年龄必须为数字值', trigger: 'blur' }, { validator: this.checkAge, trigger: 'blur' }, ], gender: [ { required: true, message: '请选择性别', trigger: 'change' }, ], }, }; }, methods: { submitForm() { this.$refs.form.validate(valid => { if (valid) { console.log('表单验证通过'); } else { console.log('表单验证失败'); } }); }, resetForm() { this.$refs.form.resetFields(); }, checkAge(rule, value, callback) { if (value < 18 || value > 60) { callback(new Error('年龄必须在18岁到60岁之间')); } else { callback(); } }, }, }; </script> ``` 在这个示例中,我们使用了 Element UI 提供的 `el-tabs` 和 `el-tab-pane` 组件来实现标签页切换功能。在第一个标签页中,我们使用了 `el-table` 和 `el-table-column` 组件来展示表格数据;在第二个标签页中,我们使用了 `el-form`、`el-form-item`、`el-input` 和 `el-radio-group` 组件来实现表单功能。同时,在表单中我们还使用了 Element UI 提供的表单验证功能,通过 `rules` 属性来设置表单验证规则。在表单验证通过后,我们可以将表单数据提交到后端进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值