<style>

</style>
<div id="{$name}">
    <input type="hidden" name="{$name}" value="{:implode(',',$val)}">

    <el-cascader
        v-model="value"
        :options="options"
        :props="props"
        size="medium"
        filterable
        clearable
        style="width:100%"
    ></el-cascader>
</div>
<script>
    new Vue({
        el: '#{$name}',
        data: function() {
            return {
                props:{
                    value: 'id',
                    label: 'title',
                    children: 'child'
                },
                options: {:json_encode($lists)},
                value: {:json_encode($val)}
            }
        },
        watch: {
            value: function (newVal, oldVal) {
               $('input[name={$name}]').val(newVal.join(','));
            }
        }
    })
</script>