我妈已经三天没打我了 2024-03-28 15:27 采纳率: 86%
浏览 2
已结题

循环中第一个li中的order_status==0得时候剩下的不可点击,第一个li中的order_status不等于0得时候剩下的可以点击

循环中第一个li中的order_status==0得时候剩下的不可点击,第一个li中的order_status不等于0得时候剩下的可以点击

img


<ul class="top_home_ybtx_tip">
                <li class="top_home_ybtx_tips" @click="listUrl(item)" v-for="(item,key) in list" :key="item.seq_no">
                    <img src="" alt="" class="jtdimg">
                    <div class="top_home_ybtx_div">
                        <p class="top_home_ybtx_divp">
                            <span style="margin-right: 1.5rem;" class="jtdtitle" :style="{ color: item.seq_no == '1' ? (item.order_status == '0' ? defaultColor : disabledColor) : disabledColor }"></span>
                            <span class="jtdtitlesp" :style="{ color: itemStatusColor(item.order_status) }">{{item.order_status=='0' ? '未完成' : '已完成'}}</span>
                        </p>
                        <p class="top_home_ybtx_divps">
                            <span>被保险人:<i>{{item.insured_name}}</i></span>
                            <span style="margin-left: 1rem;">保费:<i>{{item.total_premium}}</i></span>
                        </p>
                    </div>
                </li>
            </ul>

var vm = new Vue({
    el: '#top_home',
    data: {
        list: [],
        family_count: 0,
    defaultColor: '#000000', // 假设默认颜色是黑色
    disabledColor: '#C8C8C8', // 禁用时的颜色
    },
    mounted() {
        this.loading_query();
  },
    methods: {
        loading_query() {
            $("#loadingToast").show();
            var fadata = {
                "seed_no": seed_no,
                "openid": openid_gv,
            };
            $.ajax({
                type: "post",
                url: vcommonurl + "v1/family/list/query",
                timeout: 30000,
                data: JSON.stringify(fadata),
                dataType: 'json',
                contentType: "application/json",
                success: (data) => {
                    this.family_count = data.family_count;
                    this.list = data.family;
                },
                complete: function (XMLHttpRequest, status) {
                    if (status == 'timeout') {
                        $('#loadingToast').hide();
                        hxui.toast("服务器繁忙,请稍后再试!");
                    }
                },
                error: function (xhr, errorType, error) {
                    $("#loadingToast").hide();
                    hxui.toast("服务器繁忙,请稍后再试!");
                }
            });
        },
        listUrl(key,) {
            plankey = key + 1
            console.log('序号', plankey)
                this.navigateToPlan();
        },
        navigateToPlan() {
            if (isFamilyPlan = "是") {
                // is_family=1为家庭单
                planUrl += "&is_family=1" + "&seq_no=" + plankey;
            }
            window.location.href = planUrl;
            console.log('链接', window.location.href)
        },
        itemStatusColor(status) {
            // 根据状态返回不同的颜色
            return status == '0' ? '#FF3A31' : '#1AB14B';
        },
    },
});

  • 写回答

1条回答 默认 最新

  • 关注

    我妈已经三天没打我了 下午好🌅🌅🌅
    本答案参考ChatGPT-3.5

    根据你的描述,你想在循环中根据第一个li的order_status值来设置剩下的li的点击状态。可以通过在模板中使用条件表达式来达到这个目的。

    修改后的代码如下:

    <ul class="top_home_ybtx_tip">
      <li class="top_home_ybtx_tips" v-for="(item, key) in list" :key="item.seq_no">
        <img src="" alt="" class="jtdimg">
        <div class="top_home_ybtx_div">
          <p class="top_home_ybtx_divp">
            <span style="margin-right: 1.5rem;" class="jtdtitle" :style="{ color: key === 0 ? (item.order_status === '0' ? defaultColor : disabledColor) : disabledColor }"></span>
            <span class="jtdtitlesp" :style="{ color: itemStatusColor(item.order_status) }">{{item.order_status === '0' ? '未完成' : '已完成'}}</span>
          </p>
          <p class="top_home_ybtx_divps">
            <span>被保险人:<i>{{item.insured_name}}</i></span>
            <span style="margin-left: 1rem;">保费:<i>{{item.total_premium}}</i>元</span>
          </p>
        </div>
      </li>
    </ul>
    

    解决方案:

    1. 根据问题描述,在循环中使用的是v-for="(item, key) in list",所以可以通过key来判断当前li是否为第一个li。
    2. 在第一个li的模板中使用条件表达式来设置颜色样式::style="{ color: key === 0 ? (item.order_status === '0' ? defaultColor : disabledColor) : disabledColor }",如果key === 0,表示当前为第一个li,根据item.order_status的值来设置颜色样式。
    3. 其他li元素的颜色样式设置为disabledColor,表示不可点击状态。
    4. 使用方法itemStatusColor获取不同状态下的颜色值。

    希望对你有帮助!如有其他问题,请随时追问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月11日
  • 已采纳回答 6月3日
  • 创建了问题 3月28日

悬赏问题

  • ¥15 问题遇到的现象和发生背景 360导航页面千次ip是20元,但是我们是刷量的 超过100ip就不算量了,假量超过100就不算了 这是什么逻辑呢 有没有人能懂的 1000元红包感谢费
  • ¥30 计算机硬件实验报告寻代
  • ¥15 51单片机写代码,要求是图片上的要求,请大家积极参与,设计一个时钟,时间从12:00开始计时,液晶屏第一行显示time,第二行显示时间
  • ¥15 用C语言判断命题逻辑关系
  • ¥15 原子操作+O3编译,程序挂住
  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘