自定义单选标签

使用vue+iview

在这里插入图片描述

<template>
  <div>
    <Form
      ref="formItem"
      :model="formItem"
      :rules="ruleValidate"
      :label-width="120"
      style="padding: 10px 25px 30px; width: 850px"
    >
      <Card>
        <FormItem label="投诉建议类型" prop="type" class="typeselect">
          <span
            :class="{ hasChoosen: item.isCheck }"
            v-for="(item, index) in sugType"
            :key="index"
            @click="selectType(item.type)"
            >{{ item.type }}</span
          >
        </FormItem>
        <FormItem style="text-align: center; margin-top: 100px">
          <Button
            style="width: 270px"
            type="primary"
            @click="handleSubmit('formItem')"
            >发布</Button
          >
        </FormItem>
      </Card>
    </Form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      formItem: {
        type: "",
      },
      sugType: [
        { type: "基础服务类", isCheck: false },
        { type: "物业", isCheck: false },
        { type: "房屋", isCheck: false },
        { type: "餐饮", isCheck: false },
        { type: "其他", isCheck: false },
      ],
      ruleValidate: {
        type: [
          {
            required: true,
            type: "string",
            message: "投诉建议类型不能为空",
          },
        ],
      },
    };
  },
  methods: {
    selectType(item) {
      this.sugType.forEach((element) => {
        if (element.type != item) {
          element.isCheck = false;
        } else {
          element.isCheck = true;
          this.formItem.type = item;
        }
      });
    },
    handleSubmit(name) {
      this.$refs[name].validate((valid) => {
        if (valid) {
          console.log(this.formItem);
        } else {
          console.log(this.formItem);
        }
      });
    },
  },
};
</script>

<style scoped>
.hasChoosen {
  background-color: #2d8cf0 !important;
  color: #fff !important;
}

.typeselect span {
  width: 80px;
  height: 23px;
  font-size: 12px;
  border-radius: 5px;
  display: inline-block;
  margin-right: 30px;
  text-align: center;
  background-color: #f7f7f7;
  color: #515a6e;
  vertical-align: middle;
  line-height: 23px;
  cursor: pointer;
}
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值