很努力的去尝试自己解决,算上周末和今天已经五天时间!!

说我笨也认了,但是我真的已经自己努力解决很久,没有提问,但是今天必须要把效果做出来,否则我可以卷铺盖从公司滚蛋了。
如果这样还说我是伸手党,我也不知道说什么好了。

    function sub(){
        var bankdata;
        var list2 = $("#list2 option").map(function(){return $(this).val();}).get().join(",");
        _token = "<?php echo csrf_token();?>";
        $.ajax({
            url         : "{ url('draw/select') }",
            dataType : "json",
            data     : {_token:_token,list2:list2},
            async     : false,
            type     : "get",
            success  : function(bank){
                bankdata = bank;
            }
        });
        alert(JSON.stringify(bankdata));
    };
keikeizhang

这个是返回的数据,数据类型是json对象
我想要v-for循环显示

JellyBool 回复 keikeizhang

这个返回的是什么数据?是选中后的右边的数据么?这个 v-for 循环的话,直接赋给 vue 对象的 data 中的一个 list就好了吧。

keikeizhang 回复 JellyBool

这个显示内容是点击修改以后弹出的页面,ajax发送的请求中带的数据就是右边的三个银行身份标识,后来得到这三个银行标识以后把相应的积分数据反馈回来,我再在搜索栏下面的列表中展示出来。

JellyBool 回复 keikeizhang

显示内容是点击修改以后弹出的页面怎么又出来这个页面了,点击修改是什么?

keikeizhang 回复 JellyBool

zhangchuang0816 这个是我微信,我用小视频给你演示一下就秒懂了

keikeizhang

就是在搜索框下面
在右侧选择框中每多一个银行就会遍历显示一次

keikeizhang

请谁比较擅长简易的写一下相应的html和vue代码
万谢

keikeizhang

这个是修改功能页面,左侧选择框中的银行是不参与活动的,右侧选择框中的银行是参与的活动的。
产品的意思是,修改页面应该满足一下要求
客户添加新的银行参与活动,需要填写相应的数据。
而已经参加活动的银行,如果活动处于上线状态,则只可以修改推荐位和排序,图片和积分不可以修改。
用户如果取消一个已经参与活动的银行,也就是把右侧的银行移动到左侧,则下面数据列表也动态改变,而如果用户属于手抖,又恢复这个银行去参与活动,需要重新把这个银行的活动数据从新显示。

keikeizhang

左侧银行 -----》不参加活动的
右侧银行 -----》参加活动的

如果添加一个新的银行去参加活动,下面的数据列表需要动态显示一行,输入框是空置,要求填写数据

如果取消一个银行活动,则列表页也要删除这个银行的数据,但如果客户又恢复这个银行的活动资格,则再次添加这行数据需要有默认值。

keikeizhang

@JellyBool
我视频看了十几遍了,还是不行。

JellyBool

额。。实在不好意思。我仔细看看你的需求,有点看不明白

keikeizhang 回复 JellyBool

这个当初产品给我描述很久我才明白,我也不知道怎么形容比较容易让人理解。
现在我写的那个ajax请求回来的数据是我想要的。
而且是一个json对象,我想用 v-for 去遍历显示数据

perfectboook

搞了个粗制版的代码:https://jsfiddle.net/perfectboook/pjLpgpL8/ 。你要的应该是这样的效果吧。不要吐槽我的代码。。。

keikeizhang 回复 perfectboook

现在我数据我是有的,就是不知道怎么处理一下,可以让v-for使用

JellyBool

我个人的思路是这样的:
1.bankList 可以分为两种:一种是左边的,未参与的 list;一种是右边的,参与的list;
2.其实一种是右边的,参与的list 是跟搜索框下面的一样的吧,这里直接 v-for 输出就好了吧。
3.用户点击上方的两个个 select 框的bank(不管左边和右边),记录一个状态值
4.在添加移除这两个按钮分别绑定 click 事件,事件里就可以在各自的 list 移除bank了

下方的 v-for 输出,假设在 tr 里面:

 <tr v-for="bank in bankLists">
            <td>{% bank.name %}</td>
            <td><ipnut name="plan" value="{%bank.integral_plan %}"></ipnut></td>
  </tr>

Vue 的代码,只是一个思路。

  new Vue({
        el: '#app',
        data: {
            bankLists: [],
            unselectedBankList:[]
        },
        ready: function () {
            var list2 = $('#list2 option').map(function () {
                return $(this).val();
            }).get().join(",");
            _token = "<?php echo csrf_token();?>";
            $.ajax({
                url: '/draw/select',
                dataType: 'json',
                data: {_token: _token, list2: list2},
                async: false,
                type: 'get',
                success: function (banks) {
                    this.bankLists = banks;
                }
            });
        },
        methods: {
           toggleSelectedBank:function (bank) {
                 bank.status = 'selected';//这里只是一个演示,设置 status 是为了检测 option 中的bank的状态,你也可以直接使用 jquery 判断
                 //this.bankLists.$remove(bank);
                //再加入没选中的list
                //this.unselectedBankList.$push(bank)
           }
        }
    })

使用 ajax 可以看看这里:https://laravist.com/community/tutorials/2

keikeizhang
function sub(){
    var bankdata;
    var list2 = $("#list2 option").map(function(){return $(this).val();}).get().join(",");
    _token = "<?php echo csrf_token();?>";
    $.ajax({
        url		 : "{ url('draw/select') }",
        dataType : "json",
        data	 : {_token:_token,list2:list2},
        async	 : false,
        type	 : "get",
        success  : function(bank){
            bankdata = bank;
        }
    });
    //alert(JSON.stringify(bankdata));
};
new Vue({
    el: '#app',
    data: {
        message: 'bankdata'
    }
})
keikeizhang

@JellyBool 现在唯一需要解决的问题就是我怎么把ajax反馈回来的数据 bank 处理成vue message可以让v-for使用的数据

JellyBool 回复 keikeizhang

你有看我的代码么?ready 这个就是实现你说的这个过程啊:

  ready: function () {
            var list2 = $('#list2 option').map(function () {
                return $(this).val();
            }).get().join(",");
            _token = "<?php echo csrf_token();?>";
            $.ajax({
                url: '/draw/select',
                dataType: 'json',
                data: {_token: _token, list2: list2},
                async: false,
                type: 'get',
                success: function (banks) {
                    this.bankLists = banks;
                }
            });
        }
keikeizhang 回复 JellyBool

new Vue({
el: ‘#tb_1’,
data: {
bankLists: [],
unselectedBankList:[]
},
ready: function () {
var list2 = $(’#list2 option’).map(function () {
return $(this).val();
}).get().join(",");
_token = “”;
.ajax({ url: '/draw/select', dataType: 'json', data: {_token: _token, list2: list2}, async: false, type: 'get', success: function (banks) { this.bankLists = banks; } }); }, methods: { toggleSelectedBank:function (bank) { bank.status = 'selected'; //这里只是一个演示,设置 status 是为了检测 option 中的bank的状态,你也可以直接使用 jquery 判断 //this.bankLists.remove(bank);
//再加入没选中的list
//this.unselectedBankList.$push(bank)
}
}
});

我现在使用的就是你的代码啊,可是一点反应都没有,我在查找

JellyBool 回复 keikeizhang

你是直接 copy 过去了么?看了我的思路你完全没有想法?再说 perfectbook 已经给出了一个 demo了

keikeizhang 回复 JellyBool

数据都得到了,就是不能给data使用,我不清楚是什么原因。
不过我用其他方法解决了,vue还是有很大的学习成本的!

JellyBool 回复 keikeizhang

额,感觉你没有理解 Vue 的工作流程。。。我个人觉得 Vue 的学习成本相对较低

keikeizhang 回复 JellyBool

内心就是有一种差一点点的感觉,总是感觉就差一点点就可以成功了,周末好好在家把你的视频代码敲一次,我感觉可以的。

keikeizhang 回复 JellyBool
<tr v-for="bank in bankLists">
    <td>@{bank.bankName}</td>
    <td>
        <select class="select" name="recommend[]">
            <option value="0">不推荐</option>
            <option value="1">推荐1</option>
            <option value="2">推荐2</option>
            <option value="3">推荐3</option>
        </select>
    </td>
</tr>

table id = tb_1 前端就给的模板就这么命名的。。。。

keikeizhang

大脑超频了

keikeizhang

讨厌做样式,讨厌!!!!

keikeizhang

我是不是应该辞职,玛德,后台数据我处理了两个小时搞定,一个前端样式我用了五天。

前端来一句,这个是后端负责的,老师告诉我不需要管!~~~~~~~~~

keikeizhang

准备收拾行李了,然后弃用vue

JellyBool 回复 keikeizhang

哎,farewell ,my bro

keikeizhang 回复 JellyBool

有的时候自己喜欢钻牛角尖,其实有很多其他方式可以解决,但是自己偏偏不信邪。
这次真的没有通过vue搞定,但是我真的感觉vue是搞定这个需求最简单的方式,没有之一。

JellyBool 回复 keikeizhang

好吧,解决了就 OK。

keikeizhang 回复 JellyBool

提交一个BUG,就是消息会显示2条,但是都是重复的

JellyBool 回复 keikeizhang

OK,我去看看,那这样呢?还会不会有两条通知

keikeizhang 回复 JellyBool

已经修复了,现在显示两条,但不重复