代码生成类型 enum 枚举型 会把字段名给输出了

enum 枚举型 自动生成单选框

bktype enum '银行卡','支付宝','微信'

vue生成的代码是

{ '银行卡': 'bktype 银行卡', '支付宝': 'bktype 支付宝', '微信': 'bktype 微信'}

前面多了一个 bktype 字段名

vue正确的应该是

{ '银行卡': '银行卡', '支付宝': '支付宝', '微信': '微信' }

4个回答默认排序 投票数排序
苏晓生
苏晓生
在藏经阁
10月前

试试这个?

javaya
javaya
这家伙很懒,什么也没写~
3月前

我也碰到

{ label: t('room.direction'), prop: 'direction', align: 'center', render: 'tag', operator: 'eq', sortable: false, replaceValue: { '东': 'direction 东', '南': 'direction 南', '西': 'direction 西', '北': 'direction 北', '东北': 'direction 东北', '东南': 'direction 东南', '西北': 'direction 西北', '西南': 'direction 西南' } },

数据库是enum
direction ENUM('东','南','西','北','东北','东南','西北','西南') NULL DEFAULT '南' COMMENT '朝向' COLLATE 'utf8mb4_unicode_ci',

javaya
javaya
这家伙很懒,什么也没写~
3月前

建议改进

javaya
javaya
这家伙很懒,什么也没写~
3月前

crud.php改一下可以。

private function getColumnDict($column, $translationPrefix = ''): array
{
    $dict = [];
    // 确保字典中无翻译也可以识别到该值
    if (in_array($column['type'], ['enum', 'set'])) {
        $dataType   = str_replace(' ', '', $column['dataType']);
        $columnData = substr($dataType, stripos($dataType, '(') + 1, -1);
        $columnData = explode(',', str_replace(["'", '"'], '', $columnData));
        foreach ($columnData as $columnDatum) {
            //$dict[$columnDatum] = $column['name'] . ' ' . $columnDatum; 我不需要$column['name']
            $dict[$columnDatum] = $columnDatum;
        }
    }
    $dictData = [];
    Helper::getDictData($dictData, $column, 'zh-cn', $translationPrefix);
    if ($dictData) {
        unset($dictData[$translationPrefix . $column['name']]);
        foreach ($dictData as $key => $item) {
            $keyName        = str_replace($translationPrefix . $column['name'] . ' ', '', $key);
            $dict[$keyName] = "t('" . $this->webTranslate . $key . "')";
        }
    }
    return $dict;
}
请先登录
0
1
0
4