【问题解决】 avue dicUrl 动态参数加载字典数据(已解决)

    事情是这样的,用了avue-crud组件,配置了一个option。
    现在有一列source属性要展示为 多选的下拉框 ,当然问题不在这而在于,选项是需要根据同级别属性id去拿的。也就是option.column.source 的配置中 需要该行的option.column.id作为参数。大致是这样。
    如下是我问GPT的问题——这是aven-crud的option的column的项, prop为’source’的项的dicUrl如何获得另一个同样传递过来的、跟source同级的属性prop: 'id’作为参数?

{
            prop: 'id',
            span: 24,
            type: 'input',
            label: '主键',
            display: false,
            hide: true
        },
{
            prop: 'source',
            span: 24,
            type: 'select',
            multiple: true, // 多选
            label: '节点对应模块',
            rules: [
                {
                    message: '节点对应模块必须填写',
                    required: true
                }
            ],
            required: true,
            // dicData: [{
            //     label: '字典1',
            //     value: 0
            // }, {
            //     label: '字典2',
            //     value: 1
            // }, {
            //     label: '字典3',
            //     value: 2
            // }],
            dicUrl: '/bz/node?id=???',
            props: {
                label: 'source',
                value: 'source'
            },
            search: true,
            searchMultiple: true,
            searchLabelWidth: '35%'
        },

    当然GPT也没给出什么好办法,网上的很多方法也进行了尝试,总归都不行,大家可以从注释行看到做了多少尝试。。虽然更多的删掉了。
【问题解决】 avue dicUrl 动态参数加载字典数据(已解决)_第1张图片

    最后是从 Avue使用本地/网络数据字典 中获得了启发,解决了问题,总体而言就是 不操作dicUrl直接给dicData赋值 ,虽然理论上这种方法操作dicUrl也行得通,但是鬼知道js会不会即时加载改变的dicUrl获取数据,也懒得试了。

解决

  1. avue-crud组件里v-model绑定一个form属性,同时在数据那里初始化返回form空对象
    在这里插入图片描述
    【问题解决】 avue dicUrl 动态参数加载字典数据(已解决)_第2张图片

  2. avue-crud组件里把option设为 .sync(不知道有没有用)
    在这里插入图片描述

  3. watch里面监听 form.id,此时handler的val就是变化的id,handler里面有个参数是那个immediate:true,大概是即时生效的意思,具体也不是很懂。
    在这里插入图片描述
    【问题解决】 avue dicUrl 动态参数加载字典数据(已解决)_第3张图片

    大致的步骤就是这样,更多的属于个人的需求了,得益于form.id一旦变化是立刻被监听到的,算是把列表查询里和增改弹窗里的下拉框各查了一次去赋值,所以watch里的操作还写不少的。虽然功能是实现了,但是有时候属实有点卡,希望是在房里连公司网络不好使的原因。。

你可能感兴趣的:(问题记录,前端,vue,前端框架,学习,bug)