问题描述:
优惠券的品类、品牌数据回显问题
解决方法:
- 文件路径 src/pages/marketing/storeCouponIssue/create.vue
- 按照下图中标记的内容对比修改
this.formData.category_id = Array.isArray(data.category_id) ? data.category_id : [];
this.formData.brand_id = Array.isArray(data.brand_id) ? data.brand_id : [];
public function copy($id = 0)
{
if (!$id) return $this->fail('参数错误');
$info = $this->services->get($id);
if ($info) $info = $info->toArray();
if ($info['product_id'] != '') {
$productIds = explode(',', $info['product_id']);
/** @var StoreProductServices $product */
$product = app()->make(StoreProductServices::class);
$productImages = $product->getColumn([['id', 'in', $productIds]], 'image', 'id');
foreach ($productIds as $item) {
$info['productInfo'][] = [
'product_id' => $item,
'image' => $productImages[$item]
];
}
}
if ($info['category_id'] != '') {
/** @var StoreProductCategoryServices $categoryServices */
$categoryServices = app()->make(StoreProductCategoryServices::class);
$category = $categoryServices->get($info['category_id']);
if ($category && $category['pid']) {
$categoryPid = $categoryServices->get($category['pid']);
if ($categoryPid && $categoryPid['pid']) {
$info['category_id'] = [$categoryPid['pid'], $category['pid'], $info['category_id']];
} else {
$info['category_id'] = [$category['pid'], $info['category_id']];
}
} else {
$info['category_id'] = [$info['category_id']];
}
}
if ($info['brand_id'] != '') {
/** @var StoreBrandServices $brandServices */
$brandServices = app()->make(StoreBrandServices::class);
$brand = $brandServices->get($info['brand_id']);
if ($brand && $brand['pid']) {
$brandPid = $brandServices->get($brand['pid']);
if ($brandPid && $brandPid['pid']) {
$info['brand_id'] = [$brandPid['pid'], $brand['pid'], $info['brand_id']];
} else {
$info['brand_id'] = [$brand['pid'], $info['brand_id']];
}
} else {
$info['brand_id'] = [$info['brand_id']];
}
}
//适用门店
$info['stores'] = [];
if (isset($info['applicable_type']) && ($info['applicable_type'] == 1 || ($info['applicable_type'] == 2 && isset($info['applicable_store_id']) && $info['applicable_store_id']))) {//查询门店信息
$where = ['is_del' => 0];
if ($info['applicable_type'] == 2) {
$store_ids = is_array($info['applicable_store_id']) ? $info['applicable_store_id'] : explode(',', $info['applicable_store_id']);
$where['id'] = $store_ids;
}
$field = ['id', 'cate_id', 'name', 'phone', 'address', 'detailed_address', 'image', 'is_show', 'day_time', 'day_start', 'day_end'];
/** @var SystemStoreServices $storeServices */
$storeServices = app()->make(SystemStoreServices::class);
$storeData = $storeServices->getStoreList($where, $field, '', '', 0, ['categoryName']);
$info['stores'] = $storeData['list'] ?? [];
}
return $this->success($info);
}