'article_category', 'name' => '文章分类', 'children' => [], ], [ 'key' => 'article_tag', 'name' => '文章标签', 'children' => [], ], [ 'key' => 'banner_address', 'name' => '广告位置', 'children' => [], ], [ 'key' => 'job', 'name' => '职位', 'children' => ['普通员工', '店长'], ], [ 'key' => 'store_category', 'name' => '门店分类', 'children' => [ ['name' => '家用电器', 'children' => [ ['name' => '电视'], ['name' => '冰箱'], ['name' => '洗衣机'], ]], ['name' => '手机数码', 'children' => [ ['name' => '手机'], ['name' => '手机配件'], ['name' => '摄影摄像'], ]], ['name' => '电脑办公', 'children' => [ ['name' => '电脑整机'], ['name' => '外设产品'], ['name' => '网络产品'], ]], [ 'key' => 'store_category_lottery', 'name' => '彩票', 'children' => ['电彩', '竞彩', '即开'], ], ], ], [ 'key' => 'store_business', 'name' => '门店经营分类', 'children' => ['直营', '代理'], ], [ 'key' => 'store_level', 'name' => '门店等级', 'children' => ['AAA', 'AA', 'A', 'B', 'C', '无'], ], [ 'key' => 'lottery_type', 'name' => '彩种类型', 'children' => ['电彩', '竞彩', '即开'], ], [ 'key' => 'ledger_item_type', 'name' => '上报数据类型', 'children' => [ ['key' => 'ledger_item_type_other', 'name' => '其他'] ], ], [ 'key' => 'holiday_type', 'name' => '请假类型', 'children' => ['病假', '事假'], ], [ 'key' => 'reimbursement_type', 'name' => '报销类型', 'children' => ['门店日常支出', '门店活动支出', '日常费用', '器材费', '差旅费', '车辆类报销', '会议费'], ], [ 'key' => 'book_category', 'name' => '课件分类', 'children' => ['专业知识', '服务知识', '专业技巧', '企业文化'], ] ]; $this->insertKeywors($keywords); } protected function insertKeywors(array $data = [], ?Keyword $parent = null): void { /** @var array */ foreach ($data as $i => $item) { if (! is_array($item)) { $item = ['name' => $item]; } $item['parent_id'] = $parent?->id ?: 0; if (! array_key_exists('sort', $item)) { $item['sort'] = $i + 1; } $key = Arr::pull($item, 'key', $parent?->key.'_'.($i + 1)); /** @var \App\Models\Keyword */ $keyword = Keyword::updateOrCreate( ['key' => $key], Arr::except($item, ['children']) ); $this->insertKeywors($item['children'] ?? [], $keyword->setRelation('parent', $parent)); } } }