Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
杨树贤
/
liexin_supplier
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
e0a8c91d
authored
Jul 19, 2023
by
杨树贤
Browse files
Options
_('Browse Files')
Download
Plain Diff
Merge branch 'master' into ysx-spu的redis拆库-20230705
parents
fd1a9f6a
8c8f386f
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
356 additions
and
189 deletions
.env
app/Http/Controllers/Api/ExternalApiController.php
app/Http/Controllers/Api/SupplierApiController.php
app/Http/Controllers/Api/SupplierShareApplyApiController.php
app/Http/Controllers/SupplierAccountController.php
app/Http/Controllers/SupplierApplyController.php
app/Http/Controllers/SupplierController.php
app/Http/Middleware/Menu.php
app/Http/Services/DataService.php
app/Http/Services/SkuService.php
app/Http/Services/SupplierAuditService.php
app/Http/Services/SupplierService.php
app/Http/Services/SupplierShareApplyService.php
app/Http/Services/SupplierSkuAuditRulerService.php
app/Http/Services/SupplierStatisticsService.php
app/Http/Transformers/SupplierShareApplyTransformer.php
app/Http/Validators/SupplierAccountValidator.php
app/Http/routes.php
config/field.php
config/fixed.php
resources/views/script/AddSupplierScript.blade.php
resources/views/script/ApplySupplierShareScript.blade.php
resources/views/script/AuditSupplierShareApplyScript.blade.php
resources/views/script/SupplierApplyListScript.blade.php
resources/views/script/SupplierListScript.blade.php
resources/views/script/UpdateSupplierScript.blade.php
resources/views/script/supplier/SupplierContactScript.blade.php
resources/views/web/AddSupplierAccount.blade.php
resources/views/web/ApplySupplierShare.blade.php
resources/views/web/AuditSupplierShareApply.blade.php
resources/views/web/BatchAllocateYunxinChannelUser.blade.php
resources/views/web/QuerySupplier.blade.php
resources/views/web/SkuList.blade.php
resources/views/web/SupplierDetail.blade.php
resources/views/web/UpdateSupplier.blade.php
resources/views/web/UpdateSupplierAccount.blade.php
resources/views/web/supplier/SupplierListFilter.blade.php
.env
View file @
e0a8c91d
...
...
@@ -41,7 +41,7 @@ DB_SELF_USERNAME=spu
DB_SELF_PASSWORD=spu
DB_SELF_PORT=3306
#
云芯
MYSQL配置
#
芯链
MYSQL配置
DB_HOST_YUNXIN=192.168.1.252
DB_DATABASE_YUNXIN=liexin_yunxin
DB_USERNAME_YUNXIN=liexin_yunxin
...
...
@@ -124,6 +124,7 @@ RABBITMQ2_QUEUE=wms_service
#RABBITMQ_PASSWORD=jy2y2900
ES_SKU_URL=http://so.liexin.net/search/Es/searchSku
ES_URL=http://so.liexin.net
MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
...
...
app/Http/Controllers/Api/ExternalApiController.php
View file @
e0a8c91d
...
...
@@ -79,7 +79,7 @@ class ExternalApiController extends Controller
if
(
$canApplySupplier
!==
true
)
{
$this
->
externalResponse
(
-
1
,
$canApplySupplier
);
}
//判断这个手机号对应的
云芯
账号是否已经存在
//判断这个手机号对应的
芯链
账号是否已经存在
$existAccount
=
SupplierAccountModel
::
where
(
'mobile'
,
$data
[
'mobile'
])
->
exists
();
if
(
$existAccount
)
{
$this
->
externalResponse
(
-
1
,
'该手机号已经有对应的芯链账号,请重新选择手机号'
);
...
...
app/Http/Controllers/Api/SupplierApiController.php
View file @
e0a8c91d
...
...
@@ -515,7 +515,7 @@ class SupplierApiController extends Controller
}
//设置
云芯
账号
//设置
芯链
账号
public
function
SetYunxinChannelUid
(
$request
)
{
$supplierId
=
$request
->
get
(
'supplier_id'
);
...
...
@@ -534,14 +534,14 @@ class SupplierApiController extends Controller
$adminService
=
new
AdminUserService
();
$user
=
$adminService
->
getAdminUserInfoByCodeId
(
$channelUid
);
$logService
=
new
LogService
();
$logService
->
AddLog
(
$supplierId
,
LogModel
::
UPDATE_OPERATE
,
'设置
SKU采购员'
,
'设置SKU
采购员为 : '
.
$user
[
'name'
]);
$logService
->
AddLog
(
$supplierId
,
LogModel
::
UPDATE_OPERATE
,
'设置
线上采购员'
,
'设置线上
采购员为 : '
.
$user
[
'name'
]);
$this
->
response
(
0
,
'设置SKU采购成功'
);
}
else
{
$this
->
response
(
-
1
,
'设置SKU采购失败'
);
}
}
//批量分配
云芯
采购员
//批量分配
芯链
采购员
public
function
BatchAllocateYunxinChannelUser
(
$request
)
{
$channelUid
=
$request
->
get
(
'channel_uid'
);
...
...
@@ -549,13 +549,13 @@ class SupplierApiController extends Controller
$supplierIds
=
explode
(
','
,
$supplierIds
);
$supplierService
=
new
SupplierService
();
if
(
empty
(
$channelUid
))
{
$this
->
response
(
-
1
,
'请选择
SKU
采购员'
);
$this
->
response
(
-
1
,
'请选择
线上
采购员'
);
}
if
(
!
$supplierService
->
checkCanAllocatYunxinChannelUid
(
$supplierIds
,
$channelUid
))
{
$this
->
response
(
-
1
,
'选择的供应商里面不存在对应的
SKU
采购员'
);
$this
->
response
(
-
1
,
'选择的供应商里面不存在对应的
线上
采购员'
);
}
$supplierService
->
batchAllocateYunxinChannelUser
(
$supplierIds
,
$channelUid
);
$this
->
response
(
0
,
'批量分配
SKU
采购员成功'
);
$this
->
response
(
0
,
'批量分配
线上
采购员成功'
);
}
//检查能否能申请审核
...
...
app/Http/Controllers/Api/SupplierShareApplyApiController.php
View file @
e0a8c91d
...
...
@@ -25,6 +25,14 @@ class SupplierShareApplyApiController extends Controller
}
//校验申请的供应商,并且还要返回所属部门列表
/**
* 功能说明:1、采购员在操作共用申请时,如果该供应商有sku采购员,则只能选择sku采购员所在部门进行审核(其余部门都不显示)并且出现“申请原因”,文本框,必填,300个字符以内;
* PS:没有sku采购员的供应商,申请共用时不显示“申请原因”,无需填写;
* 如果该供应商没有sku采购员,有其他采购员,则显示其他采购员对应的采购部门(有几个部门就显示几个部门,不显示运营部)
* 如果该供应商没有sku采购员,也没有采购员,有运营部人员,则显示运营部;
* PS:该供应商完全没有人员,则无法申请共用(同现有流程)
**/
public
function
CheckApplySupplierShare
(
$request
)
{
$supplierName
=
trim
(
$request
->
get
(
'supplier_name'
));
...
...
@@ -40,6 +48,7 @@ class SupplierShareApplyApiController extends Controller
if
(
empty
(
$supplier
))
{
$this
->
response
(
-
1
,
'该供应商名称不存在,请输入正确供应商名称'
);
}
$hasYunxinChannelUid
=
$supplier
[
'yunxin_channel_uid'
]
?
1
:
0
;
$userId
=
$request
->
user
->
userId
;
$codeId
=
$request
->
user
->
codeId
;
if
(
empty
(
$codeId
))
{
...
...
@@ -52,7 +61,8 @@ class SupplierShareApplyApiController extends Controller
$q
->
orWhere
(
'purchase_uid'
,
$codeId
)
->
orwhere
(
'channel_uid'
,
'like'
,
"%
$codeId
%"
);
}
})
->
where
(
'is_type'
,
0
)
->
first
();
})
->
where
(
'is_type'
,
0
)
->
first
();
if
(
$isOwn
)
{
$this
->
response
(
-
1
,
'你已经可以管理该供应商,无需申请共用'
);
}
...
...
@@ -70,7 +80,11 @@ class SupplierShareApplyApiController extends Controller
if
(
empty
(
$departments
))
{
$this
->
response
(
-
1
,
'该供应商不存在相关联的部门'
);
}
$this
->
response
(
0
,
'匹配到供应商数据,可以下拉选择你需要申请的部门'
,
$departments
,
$supplier
[
'supplier_id'
]);
$data
=
[
'departments'
=>
$departments
,
'has_yunxin_channel_uid'
=>
$hasYunxinChannelUid
,
];
$this
->
response
(
0
,
'匹配到供应商数据,可以下拉选择你需要申请的部门'
,
$data
,
$supplier
[
'supplier_id'
]);
}
//保存共用申请
...
...
@@ -78,10 +92,11 @@ class SupplierShareApplyApiController extends Controller
{
$map
=
$request
->
only
([
'apply_department_id'
,
'apply_reason'
,
'supplier_id'
,
]);
if
(
empty
(
$map
[
'apply_department_id'
])
||
empty
(
$map
[
'supplier_id'
]))
{
$this
->
response
(
-
1
,
'
缺少参数
'
);
$this
->
response
(
-
1
,
'
被申请部门不能为空
'
);
}
if
(
empty
(
$request
->
user
->
codeId
))
{
$this
->
response
(
-
1
,
'你还没有绑定内部编码,无法申请共用'
);
...
...
@@ -92,6 +107,12 @@ class SupplierShareApplyApiController extends Controller
if
(
$hasNoFinish
)
{
$this
->
response
(
-
1
,
'你存在对该供应商的申请,正在审核流程中,请等待对应的审核流程走完方可针对该供应商进行新的共用申请'
);
}
//如果是包含sku采购员的供应商,那么就要有申请理由
if
(
SupplierChannelModel
::
where
(
'supplier_id'
,
$map
[
'supplier_id'
])
->
value
(
'yunxin_channel_uid'
))
{
if
(
!
$map
[
'apply_reason'
])
{
$this
->
response
(
-
1
,
'申请原因不能为空'
);
}
}
$result
=
$applyService
->
saveSupplierShareApply
(
$map
);
if
(
!
$result
)
{
$this
->
response
(
-
1
,
'申请失败,系统错误'
);
...
...
app/Http/Controllers/SupplierAccountController.php
View file @
e0a8c91d
...
...
@@ -48,7 +48,7 @@ class SupplierAccountController extends Controller
public
function
AddSupplierAccount
(
$request
)
{
//获取所有启用的供应商编码,而且类型是包括
云芯
//获取所有启用的供应商编码,而且类型是包括
芯链
$model
=
new
SupplierChannelModel
();
$suppliers
=
$model
->
where
(
'is_type'
,
0
)
->
whereRaw
(
'stockup_type like "%5%"'
)
...
...
@@ -69,7 +69,7 @@ class SupplierAccountController extends Controller
$id
=
$request
->
get
(
'id'
);
$model
=
new
SupplierAccountModel
();
$account
=
$model
->
where
(
'id'
,
$id
)
->
first
()
->
toArray
();
//获取所有启用的供应商编码,而且类型是包括
云芯
//获取所有启用的供应商编码,而且类型是包括
芯链
$model
=
new
SupplierChannelModel
();
$suppliers
=
$model
->
where
(
'is_type'
,
0
)
->
whereRaw
(
'stockup_type like "%5%"'
)
...
...
app/Http/Controllers/SupplierApplyController.php
View file @
e0a8c91d
...
...
@@ -53,7 +53,7 @@ class SupplierApplyController extends Controller
$apply
=
SupplierApplyModel
::
with
(
'supplier'
)
->
where
(
'id'
,
$id
)
->
first
()
->
toArray
();
$apply
[
'supplier_group_name'
]
=
array_get
(
config
(
'fixed.SupplierGroup'
),
$apply
[
'supplier'
][
'supplier_group'
]);
$this
->
data
[
'apply'
]
=
$apply
;
$this
->
data
[
'title'
]
=
'
云芯
入驻审核'
;
return
$this
->
view
(
'
云芯
入驻审核'
);
$this
->
data
[
'title'
]
=
'
芯链
入驻审核'
;
return
$this
->
view
(
'
芯链
入驻审核'
);
}
}
\ No newline at end of file
app/Http/Controllers/SupplierController.php
View file @
e0a8c91d
...
...
@@ -316,7 +316,7 @@ class SupplierController extends Controller
return
view
(
'web'
,
$data
);
}
//分配
SKU
采购员
//分配
线上
采购员
public
function
SetYunxinChannelUser
(
$request
)
{
$supplierId
=
$request
->
get
(
'supplier_id'
);
...
...
@@ -326,7 +326,7 @@ class SupplierController extends Controller
$this
->
data
[
'supplier'
]
=
$supplier
;
$intraCodeModel
=
new
IntracodeModel
();
$userCodes
=
$intraCodeModel
->
getSampleEncode
();
//去除非当前供应商所拥有的采购的人员,只能从当前供应商设置的采购里面选择
SKU
采购员
//去除非当前供应商所拥有的采购的人员,只能从当前供应商设置的采购里面选择
线上
采购员
$channelUids
=
explode
(
','
,
$supplier
[
'channel_uid'
]);
foreach
(
$userCodes
as
$codeId
=>
$value
)
{
if
(
!
in_array
(
$codeId
,
$channelUids
))
{
...
...
@@ -337,7 +337,7 @@ class SupplierController extends Controller
return
$this
->
view
(
'审核供应商'
);
}
//批量分配
SKU
采购员
//批量分配
线上
采购员
public
function
BatchAllocateYunxinChannelUser
(
$request
)
{
$supplierIds
=
$request
->
get
(
'supplier_ids'
);
...
...
app/Http/Middleware/Menu.php
View file @
e0a8c91d
...
...
@@ -69,7 +69,7 @@ class Menu
$urls
=
[
[
'title'
=>
'商机管理'
,
'href'
=>
'https://
yunxi
n.ichunt.com'
,
'href'
=>
'https://
xinlia
n.ichunt.com'
,
'class'
=>
''
,
'target'
=>
'_blank'
,
'childs'
=>
[],
...
...
app/Http/Services/DataService.php
View file @
e0a8c91d
...
...
@@ -484,7 +484,7 @@ class DataService
'是否平台供应商'
,
'是否芯链商家'
,
'是否SKU上架中'
,
'现有
SKU
采购员或者意向分配采购员'
,
'现有
线上
采购员或者意向分配采购员'
,
'采购所在采购部门'
,
];
$intraCodeModel
=
new
IntracodeModel
();
...
...
@@ -806,7 +806,7 @@ class DataService
}
}
//同步基石的sku上传内部编码到供应商的
SKU
采购员
//同步基石的sku上传内部编码到供应商的
线上
采购员
public
function
syncFootstoneSkuUploadEncoded
(
$isUpdate
=
false
)
{
$suppliers
=
SupplierChannelModel
::
select
([
'supplier_code'
,
'yunxin_channel_uid'
])
->
where
(
'is_type'
,
...
...
@@ -818,14 +818,14 @@ class DataService
if
(
!
$lastEncoded
)
{
continue
;
}
//判断是否已经有
SKU
采购员了,有的话跳过
//判断是否已经有
线上
采购员了,有的话跳过
$hasSkuChannelUid
=
SupplierChannelModel
::
where
(
'supplier_code'
,
$supplier
[
'supplier_code'
])
->
where
(
'yunxin_channel_uid'
,
'!='
,
0
)
->
exists
();
if
(
$hasSkuChannelUid
)
{
echo
"已经有
SKU
采购员,供应商编码为 : ${supplier['supplier_code']} , 跳过"
.
PHP_EOL
;
echo
"已经有
线上
采购员,供应商编码为 : ${supplier['supplier_code']} , 跳过"
.
PHP_EOL
;
continue
;
}
echo
"修改
SKU
采购员 : ${supplier['supplier_code']} => ${lastEncoded}"
.
PHP_EOL
;
echo
"修改
线上
采购员 : ${supplier['supplier_code']} => ${lastEncoded}"
.
PHP_EOL
;
if
(
$isUpdate
)
{
SupplierChannelModel
::
where
(
'supplier_code'
,
$supplier
[
'supplier_code'
])
->
update
([
'yunxin_channel_uid'
=>
$lastEncoded
]);
...
...
@@ -933,7 +933,7 @@ class DataService
'供应商名称'
,
'供应商性质'
,
'采购员'
,
'
sku
采购员'
,
'
线上
采购员'
,
'最新修改人'
,
'创建人'
,
'创建时间'
,
...
...
@@ -1066,7 +1066,7 @@ class DataService
// }
$intraCodeModel
=
new
IntracodeModel
();
$users
=
$intraCodeModel
->
getSampleName
(
true
);
$header
=
[
'供应商编码'
,
'供应商名称'
,
'
sku
采购员'
,
'采购组别'
];
$header
=
[
'供应商编码'
,
'供应商名称'
,
'
线上
采购员'
,
'采购组别'
];
//
// //导出sku接入方式为专营API
// $excelData = [];
...
...
@@ -1168,7 +1168,7 @@ class DataService
'供应商编码'
,
'供应商名称'
,
'供应商性质'
,
'
sku
采购员'
,
'
线上
采购员'
,
'组别'
,
];
$intraCodeModel
=
new
IntracodeModel
();
...
...
@@ -1264,7 +1264,7 @@ class DataService
//有上架sku的供应商
$supplierCount
=
SupplierChannelModel
::
where
(
'is_type'
,
0
)
->
where
(
'supplier_group'
,
'!='
,
4
)
->
whereNotIn
(
'supplier_name'
,
config
(
'field.SkipChangeSupplierTypeNames'
))
->
whereNotIn
(
'supplier_code'
,
$excludeSupplierCodeList
)
->
where
(
'sku_num'
,
'>'
,
0
)
->
count
();
//
云芯
供应商编码
//
芯链
供应商编码
$yunxinSupplierCodes
=
SupplierChannelModel
::
where
(
'is_type'
,
0
)
->
where
(
'stockup_type'
,
'like'
,
'%5%'
)
->
where
(
'sku_num'
,
'>'
,
0
)
->
pluck
(
'supplier_code'
)
->
toArray
();
//找出哪些是芯链上传的
...
...
@@ -1277,27 +1277,70 @@ class DataService
// echo("<p>SKU 上架条数(不含API接口):" . $skuNum2 . '</p>');
}
//获取采购系统24号作废的深圳入库明细
public
function
getDeletedSZStockInItemList
()
public
function
statisticsSkuNumberFromSKu
()
{
$todayTime
=
Carbon
::
now
()
->
startOfDay
()
->
timestamp
;
//->where('item_status',-3)
$stockInItems
=
StockInItemModel
::
where
(
'create_time'
,
'>'
,
$todayTime
)
->
where
(
'item_status'
,
-
3
)
->
whereHas
(
'stock_in'
,
function
(
$q
)
{
$q
->
whereIn
(
'stock_in_type'
,
[
3
]);
})
->
get
()
->
toArray
();
dd
(
count
(
$stockInItems
));
foreach
(
$stockInItems
as
$stockInItem
)
{
$first
=
$stockInItem
[
'stock_in_item_id'
];
dd
(
$first
,
$stockInItem
[
'stock_in_id'
]);
StockInItemModel
::
where
(
'stock_in_item_id'
,
$first
)
->
update
([
'item_status'
=>
1
]);
StockInModel
::
where
(
'stock_in_id'
,
$stockInItem
[
'stock_in_id'
])
->
update
([
'erp_stock_in_sn'
=>
''
,
'status'
=>
1
]);
$excludeSupplierCodeList
=
[
'L0004938'
,
'L0007913'
,
'L0011546'
,
'L0001175'
,
'L0007243'
,
'L0015040'
,
];
$dataManagerSupplierCodeList
=
DataManageModel
::
where
(
'is_type'
,
0
)
->
where
(
'canal'
,
'!='
,
''
)
->
pluck
(
'canal'
)
->
toArray
();
$excludeSupplierCodeList
=
array_merge
(
$excludeSupplierCodeList
,
$dataManagerSupplierCodeList
);
//sku上架总数含api接口
$skuNum1
=
SupplierChannelModel
::
where
(
'is_type'
,
0
)
->
where
(
'supplier_group'
,
'!='
,
4
)
->
whereNotIn
(
'supplier_name'
,
config
(
'field.SkipChangeSupplierTypeNames'
))
->
whereNotIn
(
'supplier_code'
,
$excludeSupplierCodeList
)
->
sum
(
'sku_num'
);
//sku上架总数,不含api接口
$skuNum2
=
SupplierChannelModel
::
where
(
'is_type'
,
0
)
->
where
(
'supplier_group'
,
'!='
,
4
)
->
whereNotIn
(
'supplier_name'
,
config
(
'field.SkipChangeSupplierTypeNames'
))
->
whereNotIn
(
'supplier_code'
,
$excludeSupplierCodeList
)
->
sum
(
'sku_num'
);
//有上架sku的供应商
$supplierCount
=
SupplierChannelModel
::
where
(
'is_type'
,
0
)
->
where
(
'supplier_group'
,
'!='
,
4
)
->
whereNotIn
(
'supplier_name'
,
config
(
'field.SkipChangeSupplierTypeNames'
))
->
whereNotIn
(
'supplier_code'
,
$excludeSupplierCodeList
)
->
where
(
'sku_num'
,
'>'
,
0
)
->
count
();
//芯链供应商编码
$yunxinSupplierCodes
=
SupplierChannelModel
::
where
(
'is_type'
,
0
)
->
where
(
'stockup_type'
,
'like'
,
'%5%'
)
->
where
(
'sku_num'
,
'>'
,
0
)
->
pluck
(
'supplier_code'
)
->
toArray
();
//找出哪些是芯链上传的
// $yunxinUploadSupplierCodes = SkuUploadLogModel::whereIn('supplier_code', $yunxinSupplierCodes)->where('source', 2)->pluck('supplier_code')->unique()->toArray();
$yunxinUploadSupplierCount
=
0
;
$esUrl
=
env
(
'ES_URL'
,
''
);
$map
=
[
"source"
=>
7
,
"supplier_id"
=>
17
,
"goods_status"
=>
1
,
];
$return
=
curl
(
$esUrl
.
'/es/countZhuanmaiSource'
,
$map
,
1
);
$return
=
json_decode
(
$return
,
true
);
$yunxinUploadSupplierCount
=
0
;
if
(
isset
(
$return
[
'code'
])
&
$return
[
'code'
]
==
0
)
{
$yunxinUploadSupplierCount
=
$return
[
'data'
][
'total'
];
}
// $skuNumYunxin = SupplierChannelModel::whereIn('supplier_code', $yunxinUploadSupplierCodes)->sum('sku_num');
//去搜索直接获取
$url
=
env
(
'ES_SKU_URL'
,
''
);
$map
=
[
"source/eq"
=>
7
,
"supplier_id"
=>
17
,
"p"
=>
"1"
,
"offset"
=>
"20"
,
"show_status"
=>
1
,
"goods_status/condition"
=>
1
,
];
$return
=
curl
(
$url
,
$map
,
1
);
$return
=
json_decode
(
$return
,
true
);
$skuNumYunxin
=
0
;
if
(
isset
(
$return
[
'error_code'
])
&
$return
[
'error_code'
]
==
0
)
{
$skuNumYunxin
=
$return
[
'data'
][
'total'
];
}
dd
(
count
((
array_column
(
$stockInItems
,
'stock_in_item_id'
))));
echo
(
"<p>上架供应商数(全部):"
.
$supplierCount
.
'</p>'
);
echo
(
"<p>上架供应商数(仅芯链):"
.
$yunxinUploadSupplierCount
.
'</p>'
);
echo
(
"<p>SKU上架总条数(全部):"
.
$skuNum1
.
'</p>'
);
echo
(
"<p>SKU上架总条数(仅芯链):"
.
$skuNumYunxin
.
'</p>'
);
// echo("<p>SKU 上架条数(不含API接口):" . $skuNum2 . '</p>');
}
//统计有上传sku的供应商
...
...
@@ -1305,7 +1348,7 @@ class DataService
{
$header
=
[
'采购部门'
,
'
sku
采购员'
,
'
线上
采购员'
,
'供应商性质'
,
'供应商编码'
,
'供应商名称'
,
...
...
@@ -1410,7 +1453,7 @@ class DataService
{
ini_set
(
'memory_limit'
,
-
1
);
$isUpdate
=
false
;
$filePath
=
public_path
(
'data'
)
.
DIRECTORY_SEPARATOR
.
'没有
SKU
采购员供应商清单.xlsx'
;
$filePath
=
public_path
(
'data'
)
.
DIRECTORY_SEPARATOR
.
'没有
线上
采购员供应商清单.xlsx'
;
$supplierCodeList
=
[];
Excel
::
selectSheetsByIndex
(
0
)
->
load
(
$filePath
,
function
(
$reader
)
use
(
$isUpdate
,
&
$supplierCodeList
)
{
$reader
->
sheet
(
'Sheet1'
,
function
()
use
(
$reader
,
$isUpdate
,
&
$supplierCodeList
)
{
...
...
@@ -1435,7 +1478,7 @@ class DataService
$header
=
[
'供应商名称'
,
'最大金额采购员'
,
'
sku
采购员'
,
'
线上
采购员'
,
'采购员'
,
'创建人'
,
];
...
...
@@ -1449,15 +1492,15 @@ class DataService
}
if
(
$supplier
[
'create_name'
])
{
$createName
=
$supplier
[
'create_name'
];
}
else
if
(
$supplier
[
'create_uid'
])
{
}
else
if
(
$supplier
[
'create_uid'
])
{
$createUser
=
(
new
AdminUserService
())
->
getAdminUserInfo
(
$supplier
[
'create_uid'
]);
$createName
=
array_get
(
$createUser
,
'name'
,
''
);
$createName
=
array_get
(
$createUser
,
'name'
,
''
);
}
if
(
$supplier
[
'channel_uid'
])
{
$purchaseCodeIdList
=
explode
(
','
,
$supplier
[
'channel_uid'
]);
$usersT
=
(
new
AdminUserService
())
->
getAdminUserListByCodeIds
(
$purchaseCodeIdList
);
$purchaseNames
=
array_column
(
$usersT
,
'name'
);
$purchaseNames
=
implode
(
','
,
$purchaseNames
);
$purchaseNames
=
array_column
(
$usersT
,
'name'
);
$purchaseNames
=
implode
(
','
,
$purchaseNames
);
$channelUids
=
IntracodeModel
::
whereIn
(
'code_id'
,
$purchaseCodeIdList
)
->
pluck
(
'admin_id'
)
->
toArray
();
//去采购系统找最多金额的用户id
$purchaseAmountMap
=
[];
...
...
@@ -1516,4 +1559,26 @@ class DataService
});
})
->
export
(
'csv'
);
}
//初始化sku规则
public
function
initSkuRulers
()
{
//全部供应商修改默认值
// SupplierChannelModel::where('supplier_id', 12270)->update([
SupplierChannelModel
::
where
(
'supplier_id'
,
'>'
,
0
)
->
update
([
'sku_audit_ruler'
=>
json_encode
([
'skip'
=>
1
,
'audit_ruler'
=>
[
"1"
=>
1
],
])
]);
$redis
=
Redis
::
connection
();
$supplierIds
=
SupplierChannelModel
::
where
(
'supplier_id'
,
'>'
,
0
)
->
pluck
(
'supplier_id'
)
->
toArray
();
foreach
(
$supplierIds
as
$supplierId
)
{
$redis
->
hset
(
'supplier_sku_audit_ruler'
,
$supplierId
,
json_encode
([
'skip'
=>
1
,
'audit_ruler'
=>
[
"1"
=>
1
],
]));
}
}
}
\ No newline at end of file
app/Http/Services/SkuService.php
View file @
e0a8c91d
...
...
@@ -48,6 +48,8 @@ class SkuService
}
$sku
=
json_decode
(
$redis
->
hget
(
'sku'
,
$goodsId
),
true
);
if
(
empty
(
$sku
))
{
$sku
=
[
'goods_id'
=>
$goodsId
];
$list
[]
=
$sku
;
continue
;
}
//赋值
...
...
@@ -108,6 +110,9 @@ class SkuService
$encodedList
=
array_column
(
$list
,
'encoded'
);
$encodedUsers
=
$intraCodeModel
->
getEncodedUserByEncoded
(
$encodedList
);
$list
=
array_map
(
function
(
$item
)
use
(
$encodedUsers
,
$redis
)
{
if
(
empty
(
$item
[
'goods_name'
]))
{
return
$item
;
}
$encoded
=
array_get
(
$item
,
'encoded'
,
0
);
$item
[
'encoded_user_name'
]
=
array_get
(
$encodedUsers
,
$encoded
,
''
);
$item
[
'moq'
]
=
$item
[
'moq'
]
?:
0
;
...
...
app/Http/Services/SupplierAuditService.php
View file @
e0a8c91d
...
...
@@ -276,7 +276,7 @@ class SupplierAuditService
return
true
;
}
else
{
if
(
$field
===
'stockup_type'
)
{
//还要单独判断供应商的stockup_type,只有是操作
云芯
这个值的时候,才不去审核,真是服了
//还要单独判断供应商的stockup_type,只有是操作
芯链
这个值的时候,才不去审核,真是服了
$oldStockupType
=
explode
(
','
,
trim
(
$supplier
[
'stockup_type'
],
''
));
$newStockupType
=
explode
(
','
,
trim
(
$channel
[
'stockup_type'
],
''
));
if
(
count
(
$oldStockupType
)
>
count
(
$newStockupType
))
{
...
...
app/Http/Services/SupplierService.php
View file @
e0a8c91d
...
...
@@ -109,7 +109,6 @@ class SupplierService
//sku上传规则相关设置
$skuAuditRulerService
=
new
SupplierSkuAuditRulerService
();
$channel
[
'sku_audit_ruler'
]
=
$skuAuditRulerService
->
getSkuAuditRulerForDB
(
$channel
[
'sku_audit_ruler'
]);
/**新增供应商操作**/
if
(
empty
(
$channel
[
'supplier_id'
]))
{
//处理附件信息,新增的时候才会有附件信息提交过来
...
...
@@ -487,7 +486,7 @@ class SupplierService
return
true
;
}
//批量分配
SKU
采购员
//批量分配
线上
采购员
public
function
batchAllocateYunxinChannelUser
(
$supplierIds
,
$yunxinChannelUid
)
{
$yunxinChannelUserName
=
(
new
AdminUserService
())
->
getAdminUserNameByCodeId
(
$yunxinChannelUid
);
...
...
@@ -512,13 +511,13 @@ class SupplierService
$redis
->
expire
(
$redisKey
,
60
*
60
*
3
);
}
$preYunxinChannelUserName
=
(
new
AdminUserService
())
->
getAdminUserNameByCodeId
(
$preYunxinChannelUid
);
$content
=
"将
SKU
采购员由 [${preYunxinChannelUserName}] 改为 [${yunxinChannelUserName}]"
;
$content
=
"将
线上
采购员由 [${preYunxinChannelUserName}] 改为 [${yunxinChannelUserName}]"
;
$logService
->
AddIgnoreAuditCheckLog
(
$supplierId
,
LogModel
::
UPDATE_OPERATE
,
'分配渠道开发员'
,
$content
);
}
return
true
;
}
//检测是否可以批量分配
SKU
采购员(分配的采购员必须供应商要有的)
//检测是否可以批量分配
线上
采购员(分配的采购员必须供应商要有的)
//$filterChannelUid筛选出来的采购员ID
public
function
checkCanAllocatYunxinChannelUid
(
$supplierIds
,
$skuChannelUid
)
{
...
...
@@ -782,7 +781,7 @@ class SupplierService
$supplier
=
SupplierChannelModel
::
where
(
'supplier_name'
,
$supplierName
)
->
first
();
$supplier
=
!
empty
(
$supplier
)
?
$supplier
->
toArray
()
:
[];
if
(
$supplier
)
{
//查询是否是
云芯
商家
//查询是否是
芯链
商家
$existsYunxinAccount
=
SupplierAccountModel
::
where
(
'supplier_id'
,
$supplier
[
'supplier_id'
])
->
exists
();
$supplier
[
'is_yunxin_supplier'
]
=
$existsYunxinAccount
?
1
:
0
;
}
...
...
app/Http/Services/SupplierShareApplyService.php
View file @
e0a8c91d
...
...
@@ -18,7 +18,7 @@ class SupplierShareApplyService
$limit
=
request
()
->
get
(
'limit'
,
10
);
$query
=
$applyModel
::
with
([
'supplier'
=>
function
(
$q
)
{
$q
->
select
([
'supplier_name'
,
'supplier_id'
]);
$q
->
select
([
'supplier_name'
,
'supplier_id'
,
'yunxin_channel_uid'
]);
},
'department'
,
'apply_department'
...
...
@@ -45,13 +45,21 @@ class SupplierShareApplyService
public
function
getApplyCanUseDepartments
(
$supplier
)
{
$supplier
=
$supplier
->
toArray
();
//找出采购,开发员,创建者所属部门,一个供应商可能和多个部门相关,因为采购可能有自营或者联营的
$purchaseUid
=
$supplier
[
'purchase_uid'
];
$channelUids
=
explode
(
','
,
$supplier
[
'channel_uid'
]);
$createUid
=
$supplier
[
'create_uid'
];
$yunxinChannelUid
=
$supplier
[
'yunxin_channel_uid'
];
//如果是有芯链sku采购员的,那么就只取sku采购员所在的部门进行审核
if
(
$yunxinChannelUid
)
{
$purchaseUid
=
0
;
$channelUids
=
[
$yunxinChannelUid
];
$createUid
=
0
;
}
else
{
//找出采购,开发员,创建者所属部门,一个供应商可能和多个部门相关,因为采购可能有自营或者联营的
$purchaseUid
=
$supplier
[
'purchase_uid'
];
$channelUids
=
explode
(
','
,
$supplier
[
'channel_uid'
]);
$createUid
=
$supplier
[
'create_uid'
];
}
//dd($purchaseUid,$channelUids,$createUid);
$departmentService
=
new
DepartmentService
();
$adminService
=
new
AdminUserService
();
$purchaseUser
=
$adminService
->
getAdminUserInfoByCodeId
(
$purchaseUid
);
$purchaseDepartment
=
$departmentService
->
getUpperDepartmentByUserIdForShareApply
(
$purchaseUser
[
'userId'
]);
$createDepartment
=
$departmentService
->
getUpperDepartmentByUserIdForShareApply
(
$createUid
);
...
...
@@ -75,6 +83,12 @@ class SupplierShareApplyService
$allDepartments
=
array_filter
(
$allDepartments
,
function
(
$department
)
{
return
!
empty
(
$department
);
});
//这里还要去判断,如果返回的部门里面有多个部门,并且包含运营部,那么就要去除运营部
if
(
count
(
$allDepartments
)
>
1
)
{
$allDepartments
=
array_filter
(
$allDepartments
,
function
(
$department
)
{
return
$department
[
'department_id'
]
!=
config
(
'field.YunyingTopDepartmentId'
);
});
}
return
$allDepartments
;
}
...
...
@@ -108,11 +122,10 @@ class SupplierShareApplyService
$departmentService
=
new
DepartmentService
();
$topDepartment
=
$departmentService
->
getUpperDepartmentByUserIdForShareApply
(
$userId
);
$departmentId
=
$topDepartment
[
'department_id'
];
$applyModel
=
new
SupplierShareApplyModel
();
$query
=
$applyModel
::
with
([
'supplier'
=>
function
(
$q
)
{
$q
->
select
([
'supplier_name'
,
'supplier_id'
]);
$q
->
select
([
'supplier_name'
,
'supplier_id'
,
'yunxin_channel_uid'
]);
},
'department'
,
'apply_department'
,
...
...
@@ -163,7 +176,6 @@ class SupplierShareApplyService
$syncService
->
syncSupplierToErp
(
$apply
[
'supplier_id'
]);
}
}
return
$applyModel
->
where
(
'id'
,
$id
)
->
update
(
$apply
);
}
}
\ No newline at end of file
app/Http/Services/SupplierSkuAuditRulerService.php
View file @
e0a8c91d
...
...
@@ -57,12 +57,12 @@ class SupplierSkuAuditRulerService
*/
$defaultRuler
=
[
'1'
=>
1
,
'2'
=>
1
,
'3'
=>
1
,
'4'
=>
1
//
'2' => 1,
//
'3' => 1,
//
'4' => 1
];
if
(
empty
(
$auditData
))
{
$auditRuler
[
'skip'
]
=
0
;
$auditRuler
[
'skip'
]
=
1
;
$auditRuler
[
'audit_ruler'
]
=
$defaultRuler
;
return
json_encode
(
$auditRuler
);
}
...
...
app/Http/Services/SupplierStatisticsService.php
View file @
e0a8c91d
...
...
@@ -85,25 +85,25 @@ class SupplierStatisticsService
'all_channel_user_resigned'
=>
null
,
//历史平台合作供应商
'uploaded_sku'
=>
null
,
// 非
云芯
供应商
// 非
芯链
供应商
'not_yunxin'
=>
null
,
//已上架(非
云芯
)供应商
//已上架(非
芯链
)供应商
'not_yunxin_and_has_sku'
=>
null
,
//已下架(非
云芯
)供应商
//已下架(非
芯链
)供应商
'not_yunxin_and_has_no_sku'
=>
null
,
//
云芯
供应商
//
芯链
供应商
'yunxin'
=>
null
,
//已上架(
云芯
)供应商
//已上架(
芯链
)供应商
'yunxin_and_has_sku'
=>
null
,
//已下架(
云芯
)供应商
//已下架(
芯链
)供应商
'yunxin_and_has_no_sku'
=>
null
,
//3天内到期(
云芯
)供应商
//3天内到期(
芯链
)供应商
'yunxin_expired_at_days'
=>
null
,
//3天内到期(非
云芯
)供应商
//3天内到期(非
芯链
)供应商
'not_yunxin_expired_at_days'
=>
null
,
//已过期(
云芯
)供应商
//已过期(
芯链
)供应商
'yunxin_expired'
=>
null
,
//已过期(非
云芯
)供应商
//已过期(非
芯链
)供应商
'not_yunxin_expired'
=>
null
,
//缺少平台合作协议(线上)
'no_cooperation_agreement'
=>
null
,
...
...
app/Http/Transformers/SupplierShareApplyTransformer.php
View file @
e0a8c91d
...
...
@@ -14,6 +14,7 @@ class SupplierShareApplyTransformer
foreach
(
$list
as
&
$item
)
{
$item
[
'create_time'
]
=
date
(
'Y-m-d H:i:s'
,
$item
[
'create_time'
]);
$item
[
'status_name'
]
=
array_get
(
config
(
'field.SupplierShareApplyStatus'
),
$item
[
'status'
]);
$item
[
'yunxin_channel_name'
]
=
(
new
AdminUserService
())
->
getAdminUserNameByCodeId
(
$item
[
'supplier'
][
'yunxin_channel_uid'
]);
}
unset
(
$item
);
return
$list
;
...
...
app/Http/Validators/SupplierAccountValidator.php
View file @
e0a8c91d
...
...
@@ -55,7 +55,7 @@ class SupplierAccountValidator
{
return
[
'supplier_code.required'
=>
'请选择一个供应商'
,
'a_type.required'
=>
'类型必须勾选为
云芯
商家'
,
'a_type.required'
=>
'类型必须勾选为
芯链
商家'
,
'mobile.required'
=>
'登录账号不能为空'
,
'mobile.regex'
=>
'账号格式必须为手机号'
,
'password_raw.required'
=>
'账号密码不能为空'
,
...
...
app/Http/routes.php
View file @
e0a8c91d
...
...
@@ -56,7 +56,7 @@ Route::group(['middleware' => ['web'], 'namespace' => 'Api'], function () {
Route
::
match
([
'get'
,
'post'
],
'/api/shipping_cost_ruler/{key}'
,
'ShippingCostRulerApiController@Entrance'
);
//单独的统计接口
Route
::
match
([
'get'
,
'post'
],
'/statisticsSkuNumber'
,
function
()
{
(
new
\App\Http\Services\DataService
())
->
statisticsSkuNumber
();
(
new
\App\Http\Services\DataService
())
->
statisticsSkuNumber
FromSKu
();
});
});
...
...
@@ -77,7 +77,10 @@ Route::group(['middleware' => ['external'], 'namespace' => 'Sync'], function ()
Route
::
match
([
'get'
,
'post'
],
'/test'
,
function
()
{
(
new
\App\Http\Services\DataService
())
->
exportSupplierByPurchaseAmount
();
\App\Model\SupplierChannelModel
::
where
(
'supplier_id'
,
15385
)
->
update
([
'supplier_name'
=>
'Information And Communication Technology Group (Hongkong) Co., Limited'
]);
// (new \App\Http\Services\DataService())->initSkuRulers();
// (new \App\Http\Services\DataService())->initialMainBrandsLimit();
// (new \App\Http\Services\DataService())->initialMainBrandsToSkuRuler();
...
...
config/field.php
View file @
e0a8c91d
...
...
@@ -68,7 +68,7 @@ return [
'SupplierAccountType'
=>
[
0
=>
'其它'
,
1
=>
'
云芯
商家'
1
=>
'
芯链
商家'
],
'AttachmentFields'
=>
[
...
...
@@ -98,6 +98,8 @@ return [
'ZiYingDepartmentId'
=>
51
,
//60是本地的数据
'LiangYingDepartmentIds'
=>
[
47
,
60
,
72
],
//运营部门id
'YunyingTopDepartmentId'
=>
9
,
//等级显示对应数据
'LevelMap'
=>
[
...
...
@@ -131,7 +133,7 @@ return [
'OutsideContactType'
=>
[
1
=>
'人工上传'
,
2
=>
'API对接'
,
3
=>
'
云芯
上传'
3
=>
'
芯链
上传'
],
//以下供应商为代购供应商,不要更改为临时的,保持为正式供应商
...
...
@@ -224,7 +226,7 @@ return [
4
=>
'专营API'
,
5
=>
'专营数据包'
,
6
=>
'专营后台上传'
,
7
=>
'专营
云芯
上传'
,
7
=>
'专营
芯链
上传'
,
8
=>
'专营采集'
,
],
...
...
config/fixed.php
View file @
e0a8c91d
...
...
@@ -55,7 +55,7 @@ return [
'OutsideContactType'
=>
[
1
=>
'API'
,
//2 => 'FTP',
3
=>
'
云芯
'
,
3
=>
'
芯链
'
,
],
'StockupTypeOld'
=>
[
...
...
@@ -65,7 +65,7 @@ return [
7
=>
'联营-原厂直供'
,
2
=>
'自营-自采'
,
4
=>
'自营-寄售'
,
// 5 => '联营-
云芯
商家',
// 5 => '联营-
芯链
商家',
],
'StockupType'
=>
[
...
...
@@ -75,7 +75,7 @@ return [
7
=>
'原厂直供'
,
2
=>
'猎芯仓库'
,
4
=>
'现货寄售'
,
5
=>
'
云芯
商家'
,
5
=>
'
芯链
商家'
,
],
'SupplierPayType'
=>
[
...
...
@@ -93,7 +93,7 @@ return [
'SupplierApiType'
=>
[
1
=>
'API'
,
2
=>
'FTP'
,
3
=>
'
云芯
'
,
3
=>
'
芯链
'
,
],
...
...
@@ -184,15 +184,15 @@ return [
"skip"
=>
0
,
//1无需审核,0需要审核
"audit_ruler"
=>
[
"1"
=>
1
,
//1=>1 如果其中一条数据型号与品牌都存在,value是1,代表需要审核;value是0,直接通过
"2"
=>
1
,
//依次类推类推
"3"
=>
1
,
"4"
=>
1
,
//
"2" => 1, //依次类推类推
//
"3" => 1,
//
"4" => 1,
],
"name_map"
=>
[
"1"
=>
'型号与品牌已存在'
,
"2"
=>
'型号不存在,品牌存在'
,
"3"
=>
'型号不存在,品牌不存在'
,
"4"
=>
'型号存在,品牌不存在'
,
//
"2" => '型号不存在,品牌存在',
//
"3" => '型号不存在,品牌不存在',
//
"4" => '型号存在,品牌不存在',
]
],
...
...
@@ -241,16 +241,16 @@ return [
'pay_type_term'
=>
'账期供应商'
,
'all_channel_user_resigned'
=>
'采购员全离职'
,
'uploaded_sku'
=>
'历史平台合作供应商'
,
'not_yunxin'
=>
'非
云芯
供应商'
,
'not_yunxin_and_has_sku'
=>
'已上架(非
云芯
)供应商'
,
'not_yunxin_and_has_no_sku'
=>
'已下架(非
云芯
)供应商'
,
'yunxin'
=>
'
云芯
供应商'
,
'yunxin_and_has_sku'
=>
'已上架(
云芯
)供应商'
,
'yunxin_and_has_no_sku'
=>
'已下架(
云芯
)供应商'
,
'yunxin_expired_at_days'
=>
'3天内到期(
云芯
)供应商'
,
'not_yunxin_expired_at_days'
=>
'3天内到期(非
云芯
)供应商'
,
'yunxin_expired'
=>
'已过期(
云芯
)供应商'
,
'not_yunxin_expired'
=>
'已过期(非
云芯
)供应商'
,
'not_yunxin'
=>
'非
芯链
供应商'
,
'not_yunxin_and_has_sku'
=>
'已上架(非
芯链
)供应商'
,
'not_yunxin_and_has_no_sku'
=>
'已下架(非
芯链
)供应商'
,
'yunxin'
=>
'
芯链
供应商'
,
'yunxin_and_has_sku'
=>
'已上架(
芯链
)供应商'
,
'yunxin_and_has_no_sku'
=>
'已下架(
芯链
)供应商'
,
'yunxin_expired_at_days'
=>
'3天内到期(
芯链
)供应商'
,
'not_yunxin_expired_at_days'
=>
'3天内到期(非
芯链
)供应商'
,
'yunxin_expired'
=>
'已过期(
芯链
)供应商'
,
'not_yunxin_expired'
=>
'已过期(非
芯链
)供应商'
,
'no_cooperation_agreement'
=>
'缺少平台合作协议(线上)'
,
],
//Sku列表的罗盘对应菜单id
...
...
resources/views/script/AddSupplierScript.blade.php
View file @
e0a8c91d
...
...
@@ -19,7 +19,7 @@
//不让选,也不隐藏
form
.
on
(
'checkbox(stockup_type_filter)'
,
function
(
data
)
{
if
(
data
.
elem
.
checked
&&
data
.
elem
.
name
===
"stockup_type[5]"
)
{
layer
.
msg
(
'新增供应商没法设置为
云芯账号类型,设置云芯
账号要先去魔方系统配置阶梯系数'
,
{
icon
:
5
})
layer
.
msg
(
'新增供应商没法设置为
芯链账号类型,设置芯链
账号要先去魔方系统配置阶梯系数'
,
{
icon
:
5
})
$
(
'input[name="stockup_type[5]"]'
).
next
().
click
();
}
});
...
...
resources/views/script/ApplySupplierShareScript.blade.php
View file @
e0a8c91d
...
...
@@ -43,6 +43,7 @@
//点击校验按钮
$
(
'#check_apply_supplier_share'
).
click
(
function
()
{
$
(
'#apply_reason_div'
).
hide
();
let
supplierName
=
$
(
'#supplier_name'
).
val
();
let
url
=
'/api/supplier_share_apply/CheckApplySupplierShare'
;
let
data
=
{
...
...
@@ -50,17 +51,25 @@
}
let
res
=
ajax
(
url
,
data
);
if
(
res
.
err_code
===
0
)
{
//是否有sku采购
if
(
res
.
total
>
0
)
{
$
(
'#apply_audit_reason'
)
}
layer
.
msg
(
res
.
err_msg
,
{
icon
:
6
});
//设置对应的supplier_id,后端暂时放到res.count这个字段吧...
let
supplierId
=
res
.
count
;
$
(
'#supplier_id'
).
val
(
supplierId
);
//渲染下拉框
let
optionHtml
=
'
<
option
value
=
""
>
请选择一个部门
<
/option>'
;
$
.
each
(
res
.
data
,
function
(
index
,
value
)
{
$
.
each
(
res
.
data
.
departments
,
function
(
index
,
value
)
{
optionHtml
+=
"
<
option
value
=
'" + value.department_id + "'
>
" + value.department_name + "
<
/option>
"
})
$
(
'#apply_department_id'
).
html
(
optionHtml
);
form
.
render
(
'select'
);
let
hasYunxinChannelUid
=
res
.
data
.
has_yunxin_channel_uid
;
if
(
hasYunxinChannelUid
)
{
$
(
'#apply_reason_div'
).
show
();
}
}
else
{
layer
.
msg
(
res
.
err_msg
,
{
icon
:
5
});
}
...
...
resources/views/script/AuditSupplierShareApplyScript.blade.php
View file @
e0a8c91d
...
...
@@ -29,7 +29,11 @@
}
},
{
field
:
'apply_department_name'
,
title
:
'被申请部门'
,
width
:
150
,
align
:
'center'
,
templet
:
function
(
d
)
{
field
:
'apply_department_name'
,
title
:
'被申请部门'
,
width
:
150
,
align
:
'center'
,
templet
:
function
(
d
)
{
return
d
.
apply_department
?
d
.
apply_department
.
department_name
:
''
;
}
},
...
...
@@ -41,23 +45,56 @@
,
page
:
{}
});
$
(
document
).
on
(
'click'
,
'.audit_supplier_share_apply'
,
function
()
{
let
status
=
$
(
this
).
attr
(
'status'
);
let
id
=
$
(
this
).
val
();
let
statusName
=
status
===
'pass'
?
'通过'
:
'拒绝'
;
layer
.
confirm
(
'确定要'
+
statusName
+
'该申请吗?'
,
function
()
{
let
url
=
'/api/supplier_share_apply/AuditSupplierShareApply'
;
let
result
=
ajax
(
url
,
{
status
:
status
,
id
:
id
,
});
if
(
result
.
err_code
===
0
)
{
layer
.
msg
(
'审核成功'
,
{
icon
:
6
})
table
.
reload
(
'auditList'
);
table
.
on
(
'tool(auditList)'
,
function
(
obj
)
{
//注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
var
data
=
obj
.
data
;
//获得当前行数据
var
layEvent
=
obj
.
event
;
//获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
var
tr
=
obj
.
tr
;
//获得当前行 tr 的 DOM 对象(如果有的话)
if
(
layEvent
===
'pass'
||
layEvent
===
'reject'
)
{
//查看
let
hasYunxinChannelUid
=
data
.
supplier
.
yunxin_channel_uid
;
let
statusName
=
layEvent
===
'pass'
?
'通过'
:
'拒绝'
;
let
status
=
layEvent
;
//没有芯链采购员
if
(
!
hasYunxinChannelUid
)
{
layer
.
confirm
(
'确定要'
+
statusName
+
'该申请吗?'
,
function
()
{
let
url
=
'/api/supplier_share_apply/AuditSupplierShareApply'
;
let
result
=
ajax
(
url
,
{
status
:
status
,
id
:
data
.
id
,
});
if
(
result
.
err_code
===
0
)
{
layer
.
msg
(
'审核成功'
,
{
icon
:
6
})
table
.
reload
(
'auditList'
);
}
else
{
layer
.
msg
(
result
.
err_msg
,
{
icon
:
5
})
}
});
}
else
{
layer
.
msg
(
result
.
err_msg
,
{
icon
:
5
})
layer
.
confirm
(
'确定要'
+
statusName
+
'该申请吗?'
,{
area
:
[
'700px'
,
'500px'
],
title
:
'确定要'
+
statusName
+
'该申请吗?'
,
content
:
'
<
div
><
div
style
=
"margin-left: 20px;margin-bottom: 20px"
><
p
>
该供应商有
<
span
style
=
"color: #D9001B"
>
SKU
采购员
:
' + data.yunxin_channel_name + '
<
/span>,请确认是否同意<span style="color: #E85B2F">"' + data.apply_user.name + '"</
span
>
的共用申请
<
/p></
div
><
div
>
' +
'
<
div
class
=
"layui-form-item"
><
label
class
=
"layui-form-label"
>
申请原因
:
<
/label><div class="layui-input-block"><textarea class="layui-textarea layui-disabled" disabled>' + data.apply_reason + '</
textarea
><
/div></
div
><
/div></
div
>
',
btn: ['
确定
', '
取消
']
}, function (index) {
let url = '
/
api
/
supplier_share_apply
/
AuditSupplierShareApply
';
let result = ajax(url, {
status: status,
id: data.id,
});
if (result.err_code === 0) {
layer.msg('
审核成功
', {icon: 6})
table.reload('
auditList
'
);
}
else
{
layer
.
msg
(
result
.
err_msg
,
{
icon
:
5
})
}
},
function
(
index
)
{
// 取消按钮点击回调函数
layer
.
close
(
index
);
});
return
false
;
}
});
}
});
});
</script>
\ No newline at end of file
resources/views/script/SupplierApplyListScript.blade.php
View file @
e0a8c91d
...
...
@@ -96,11 +96,11 @@
return
;
}
if
(
data
[
0
].
has_ladder_ratio
!==
1
&&
data
[
0
].
has_ladder_ratio
!==
1
)
{
layer
.
msg
(
'请先设置该供应商为“
云芯
商家”,并且配置“阶梯系数”后,再进行审核操作'
,
{
icon
:
5
});
layer
.
msg
(
'请先设置该供应商为“
芯链
商家”,并且配置“阶梯系数”后,再进行审核操作'
,
{
icon
:
5
});
return
;
}
if
(
data
[
0
].
is_yunxin
!==
1
)
{
layer
.
msg
(
'请先设置该供应商为“
云芯
商家”,再进行审核操作'
,
{
icon
:
5
});
layer
.
msg
(
'请先设置该供应商为“
芯链
商家”,再进行审核操作'
,
{
icon
:
5
});
return
;
}
if
(
data
[
0
].
has_ladder_ratio
!==
1
)
{
...
...
@@ -112,7 +112,7 @@
type
:
2
,
content
:
'/supplier_apply/AuditSupplierApply?view=iframe&id='
+
id
,
area
:
[
'800px'
,
'600px'
],
title
:
'
云芯
入驻审核'
,
title
:
'
芯链
入驻审核'
,
end
:
function
()
{
table
.
reload
(
'supplierApplyList'
);
}
...
...
@@ -129,7 +129,7 @@
let
hasLadderRatio
=
table
.
cache
[
'supplierApplyList'
][
rowIndex
].
has_ladder_ratio
;
let
yunxinHtml
=
isYunxin
?
'
<
i
class
=
"layui-icon layui-icon-ok-circle"
style
=
"color: limegreen"
><
/i>' : '<i class="layui-icon layui-icon-close-fill" style="color: orangered"></i
>
';
let ratioHtml = hasLadderRatio ? '
<
i
class
=
"layui-icon layui-icon-ok-circle"
style
=
"color: limegreen"
><
/i>' : '<i class="layui-icon layui-icon-close-fill" style="color:orangered"></i
>
';
let html = '
<
p
>
云芯
商家
' + yunxinHtml + '
<
/p><p>阶梯系数 ' + ratioHtml + '</
p
>
'
let html = '
<
p
>
芯链
商家
' + yunxinHtml + '
<
/p><p>阶梯系数 ' + ratioHtml + '</
p
>
'
auditConditionTipsVal = layer.tips(html, self, {
tips: [3, "#555555"],
time: 1000000,
...
...
resources/views/script/SupplierListScript.blade.php
View file @
e0a8c91d
...
...
@@ -168,7 +168,7 @@
},
{
field
:
'purchase_username'
,
title
:
'渠道开发员'
,
align
:
'center'
,
width
:
110
},
{
field
:
'last_update_name'
,
title
:
'最新修改人'
,
align
:
'center'
,
width
:
110
},
{
field
:
'yunxin_channel_username'
,
title
:
'
SKU
采购员'
,
align
:
'center'
,
width
:
110
},
{
field
:
'yunxin_channel_username'
,
title
:
'
线上
采购员'
,
align
:
'center'
,
width
:
110
},
{
field
:
'has_sku'
,
title
:
'SKU上传'
,
align
:
'center'
,
width
:
80
},
{
field
:
'uploaded_sku'
,
title
:
'SKU合作'
,
align
:
'center'
,
width
:
80
,
templet
:
function
(
data
)
{
...
...
@@ -638,7 +638,7 @@
type
:
2
,
content
:
'/supplier/BatchAllocateYunxinChannelUser?view=iframe&supplier_ids='
+
supplierIds
,
area
:
[
'80%'
,
'80%'
],
title
:
'批量配置
SKU
采购员'
,
title
:
'批量配置
线上
采购员'
,
end
:
function
()
{
table
.
reload
(
'list'
);
}
...
...
resources/views/script/UpdateSupplierScript.blade.php
View file @
e0a8c91d
...
...
@@ -11,7 +11,7 @@
});
//点击
云芯
//点击
芯链
form
.
on
(
'checkbox(stockup_type_filter)'
,
function
(
data
)
{
if
(
data
.
elem
.
checked
&&
data
.
elem
.
name
===
"stockup_type[5]"
)
{
let
url
=
'/api/supplier/checkHasLadderPriceSetting?supplier_id='
+
getQueryVariable
(
'supplier_id'
);
...
...
@@ -28,7 +28,7 @@
if
(
res
.
err_code
===
0
)
{
}
else
{
layer
.
msg
(
'请先去魔方系统配置阶梯系数,再新建
云芯
账号'
,
{
icon
:
5
})
layer
.
msg
(
'请先去魔方系统配置阶梯系数,再新建
芯链
账号'
,
{
icon
:
5
})
$
(
'input[name="stockup_type[5]"]'
).
next
().
click
();
}
},
...
...
resources/views/script/supplier/SupplierContactScript.blade.php
View file @
e0a8c91d
...
...
@@ -89,7 +89,7 @@
type
:
2
,
content
:
'/supplier/SetYunxinChannelUser?view=iframe&supplier_id='
+
supplierId
,
area
:
[
'600px'
,
'525px'
],
title
:
'配置
SKU
采购员'
,
title
:
'配置
线上
采购员'
,
end
:
function
()
{
// 监听弹窗关闭
table
.
reload
(
'contactList'
);
}
...
...
resources/views/web/AddSupplierAccount.blade.php
View file @
e0a8c91d
...
...
@@ -32,7 +32,7 @@
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
><span
class=
"require"
>
*
</span>
账号类型 :
</label>
<div
class=
"layui-input-block"
>
<input
type=
"checkbox"
name=
"a_type"
title=
"
云芯
商家"
lay-skin=
"primary"
checked
>
<input
type=
"checkbox"
name=
"a_type"
title=
"
芯链
商家"
lay-skin=
"primary"
checked
>
</div>
</div>
<div
class=
"layui-form-item"
>
...
...
resources/views/web/ApplySupplierShare.blade.php
View file @
e0a8c91d
...
...
@@ -4,26 +4,26 @@
}
</style>
<div
class=
"layui-card"
>
{{--
<div
class=
"layui-card-header"
style=
"height: 90px"
>
--}}
{{--
<div
class=
"layui-card-header"
style=
"height: 90px"
>
--}}
{{--
</div>
--}}
{{--
</div>
--}}
<div
class=
"layui-card-body"
>
<form
class=
"layui-form"
action=
""
>
<div
class=
"layui-form-item"
>
<div
class=
"layui-col-xs8"
>
<label
class=
"layui-form-label"
><span
class=
"require"
>
*
</span>
供应商名称 :
</label>
<div
class=
"layui-inline"
style=
"width: 250px"
>
<input
type=
"text"
id=
"supplier_name"
placeholder=
"请输入供应商名称进行校验"
class=
"layui-input"
value=
""
>
</div>
<input
type=
"hidden"
name=
"supplier_id"
id=
"supplier_id"
>
</div>
<div
class=
"layui-col-xs4"
>
<button
type=
"button"
class=
"layui-btn layui-btn-sm"
id=
"check_apply_supplier_share"
>
校验
</button>
<div
class=
"layui-form-item"
>
<div
class=
"layui-col-xs8"
>
<label
class=
"layui-form-label"
><span
class=
"require"
>
*
</span>
供应商名称 :
</label>
<div
class=
"layui-inline"
style=
"width: 250px"
>
<input
type=
"text"
id=
"supplier_name"
placeholder=
"请输入供应商名称进行校验"
class=
"layui-input"
value=
""
>
</div>
<input
type=
"hidden"
name=
"supplier_id"
id=
"supplier_id"
>
</div>
<div
class=
"layui-col-xs4"
>
<button
type=
"button"
class=
"layui-btn layui-btn-sm"
id=
"check_apply_supplier_share"
>
校验
</button>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
><span
class=
"require"
>
*
</span>
被申请部门 :
</label>
...
...
@@ -33,6 +33,13 @@
</select>
</div>
</div>
<div
class=
"layui-form-item"
style=
"display: none"
id=
"apply_reason_div"
>
<label
class=
"layui-form-label"
><span
class=
"require"
>
*
</span>
申请原因 :
</label>
<div
class=
"layui-input-block"
>
<textarea
class=
"layui-textarea"
name=
"apply_reason"
placeholder=
"请填写申请原因"
></textarea>
</div>
</div>
<div
class=
"layui-form-item"
>
<div
align=
"center"
style=
"margin-top: 20px;text-align: right"
>
<button
type=
"button"
class=
"layui-btn layui-btn-sm layui-btn-info submit-loading"
lay-submit
...
...
resources/views/web/AuditSupplierShareApply.blade.php
View file @
e0a8c91d
...
...
@@ -4,9 +4,9 @@
<table
class=
"layui-table"
id=
"auditList"
lay-filter=
"auditList"
></table>
<script
type=
"text/html"
id=
"operate"
>
<
div
>
<
button
type
=
"button"
value
=
"@{{ d.id}}"
status
=
"pass"
class
=
"layui-btn layui-btn-xs audit_supplier_share_apply"
>
同意
<
button
type
=
"button"
value
=
"@{{ d.id}}"
status
=
"pass"
class
=
"layui-btn layui-btn-xs audit_supplier_share_apply"
lay
-
event
=
"pass"
>
同意
<
/button
>
<
button
type
=
"button"
value
=
"@{{ d.id}}"
status
=
"reject"
class
=
"layui-btn layui-btn-xs layui-btn-danger audit_supplier_share_apply"
>
拒绝
<
button
type
=
"button"
value
=
"@{{ d.id}}"
status
=
"reject"
class
=
"layui-btn layui-btn-xs layui-btn-danger audit_supplier_share_apply"
lay
-
event
=
"reject"
>
拒绝
<
/button
>
<
/div
>
</script>
\ No newline at end of file
resources/views/web/BatchAllocateYunxinChannelUser.blade.php
View file @
e0a8c91d
...
...
@@ -13,7 +13,7 @@
<div
class=
"layui-form-item"
>
<div
class=
"layui-inline"
style=
"margin-left: -30px"
>
@inject('statusPresenter','App\Presenters\StatusPresenter')
{!! $statusPresenter->render('channel_uid','
SKU
采购员',null,
{!! $statusPresenter->render('channel_uid','
线上
采购员',null,
$userCodes,['required'=>true,'width'=>'150px']) !!}
</div>
</div>
...
...
@@ -31,7 +31,7 @@
</div>
<div
class=
"layui-card-body"
>
<blockquote
class=
"layui-elem-quote layui-text"
>
<b>
当前选中需要批量修改
SKU采购员的供应商列表
<span
style=
"color: red"
>
(注意需要分配的SKU
采购员必须是下列供应商都有的采购才行)
</span></b>
<b>
当前选中需要批量修改
线上采购员的供应商列表
<span
style=
"color: red"
>
(注意需要分配的线上
采购员必须是下列供应商都有的采购才行)
</span></b>
</blockquote>
<table
class=
"layui-table"
>
<colgroup>
...
...
@@ -44,7 +44,7 @@
<tr>
<th>
供应商名称
</th>
<th>
当前采购员
</th>
<th>
当前
SKU
采购员
</th>
<th>
当前
线上
采购员
</th>
</tr>
</thead>
<tbody>
...
...
resources/views/web/QuerySupplier.blade.php
View file @
e0a8c91d
...
...
@@ -27,7 +27,7 @@
是否有平台合作 :
<span
id=
"uploaded_sku"
></span>
</div>
<div
class=
"layui-col-md4"
>
是否
云芯
商家 :
<span
id=
"is_yunxin_supplier"
></span>
是否
芯链
商家 :
<span
id=
"is_yunxin_supplier"
></span>
</div>
</div>
</form>
...
...
resources/views/web/SkuList.blade.php
View file @
e0a8c91d
...
...
@@ -24,10 +24,12 @@
@if(checkPerm('TempTemp'))
<button type="
button
" class="
layui
-
btn
layui
-
btn
-
sm
" id="
add_supplier
">新增</button>
@endif
@if
(checkPerm('OperateSku
'))
@if
(checkPerm('UpdateGoodsStatus
'))
<button type="
button
" class="
layui
-
btn
layui
-
btn
-
sm
" id="
batch_putaway
">上架</button>
<button type="
button
" class="
layui
-
btn
layui
-
btn
-
sm
" id="
batch_off_shelf
">下架</button>
<button type="
button
" class="
layui
-
btn
layui
-
btn
-
sm
" id="
remote_batch_off_shelf
">批量下架</button>
@endif
@if(checkPerm('OperateSku'))
@if (checkPerm('BatchUpdateEncoded'))
<button type="
button
" class="
layui
-
btn
layui
-
btn
-
sm
" id="
batch_update_encoded
">批量修改内部编码</button>
@endif
...
...
resources/views/web/SupplierDetail.blade.php
View file @
e0a8c91d
...
...
@@ -17,7 +17,7 @@
}
</style>
<div
class=
"layui-card"
>
<div
class=
"layui-card-header fix-top"
style=
"box-shadow: 0 5px 5px -5px rgba(0, 0, 0, 0.5);"
>
<div
class=
"layui-card-header fix-top"
style=
"box-shadow: 0 5px 5px -5px rgba(0, 0, 0, 0.5);"
>
<div
class=
"layui-row"
>
<div
class=
"layui-col-md2"
>
<b>
{{$supplier['supplier_name']}}
</b>
...
...
@@ -51,7 +51,7 @@
</div>
<div
class=
"layui-col-md2"
>
SKU
采购员 : {{$supplier['yunxin_channel_username']}}
线上
采购员 : {{$supplier['yunxin_channel_username']}}
</div>
<div
class=
"layui-col-md3"
>
<span
title=
"{{$supplier['channel_username']}}"
>
...
...
@@ -178,10 +178,10 @@
</div>
<div
class=
"layui-row"
>
<span
class=
"required_field"
>
*
</span>
主营品牌 :{{$supplier['main_brand_names']}}
{{--
<div
style=
""
>
--}}
{{-- 主营品牌数量--}}
{{-- :{{$supplier['main_brands_limit']!=-1?$supplier['main_brands_limit']:'无限制'}}--}}
{{--
</div>
--}}
{{--
<div
style=
""
>
--}}
{{-- 主营品牌数量--}}
{{-- :{{$supplier['main_brands_limit']!=-1?$supplier['main_brands_limit']:'无限制'}}--}}
{{--
</div>
--}}
</div>
@if($supplier['supplier_group'] == \App\Model\SupplierChannelModel::SUPPLIER_GROUP_MIX)
<div
class=
"layui-row"
>
...
...
resources/views/web/UpdateSupplier.blade.php
View file @
e0a8c91d
...
...
@@ -59,7 +59,7 @@
@endif
</div>
<div
class=
"layui-col-md2"
>
SKU
采购员 : {{$supplier['yunxin_channel_username']}}
线上
采购员 : {{$supplier['yunxin_channel_username']}}
</div>
<div
class=
"layui-col-md3"
>
<span
title=
"{{$supplier['channel_username']}}"
>
...
...
resources/views/web/UpdateSupplierAccount.blade.php
View file @
e0a8c91d
...
...
@@ -33,7 +33,7 @@
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
><span
class=
"require"
>
*
</span>
账号类型 :
</label>
<div
class=
"layui-input-block"
>
<input
type=
"checkbox"
name=
"a_type"
title=
"
云芯
商家"
lay-skin=
"primary"
@
if
(!
empty
($
account
['
a_type
'])&&$
account
['
a_type
']==
1
)
checked
@
endif
>
<input
type=
"checkbox"
name=
"a_type"
title=
"
芯链
商家"
lay-skin=
"primary"
@
if
(!
empty
($
account
['
a_type
'])&&$
account
['
a_type
']==
1
)
checked
@
endif
>
</div>
</div>
<div
class=
"layui-form-item"
>
...
...
resources/views/web/supplier/SupplierListFilter.blade.php
View file @
e0a8c91d
...
...
@@ -151,55 +151,55 @@
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"非
云芯
供应商"
id=
"not_yunxin"
>
非
云芯
供应商
<a
class=
"main_filter"
title=
"非
芯链
供应商"
id=
"not_yunxin"
>
非
芯链
供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已上架(非
云芯
)供应商"
id=
"not_yunxin_and_has_sku"
>
已上架(非
云芯
)供应商
<a
class=
"main_filter"
title=
"已上架(非
芯链
)供应商"
id=
"not_yunxin_and_has_sku"
>
已上架(非
芯链
)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已下架(非
云芯
)供应商"
id=
"not_yunxin_and_has_no_sku"
>
已下架(非
云芯
)供应商
<a
class=
"main_filter"
title=
"已下架(非
芯链
)供应商"
id=
"not_yunxin_and_has_no_sku"
>
已下架(非
芯链
)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"
云芯
供应商"
id=
"yunxin"
>
云芯
供应商
<a
class=
"main_filter"
title=
"
芯链
供应商"
id=
"yunxin"
>
芯链
供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已上架(
云芯
)供应商"
id=
"yunxin_and_has_sku"
>
已上架(
云芯
)供应商
<a
class=
"main_filter"
title=
"已上架(
芯链
)供应商"
id=
"yunxin_and_has_sku"
>
已上架(
芯链
)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已下架(
云芯
)供应商"
id=
"yunxin_and_has_no_sku"
>
已下架(
云芯
)供应商
<a
class=
"main_filter"
title=
"已下架(
芯链
)供应商"
id=
"yunxin_and_has_no_sku"
>
已下架(
芯链
)供应商
</a>
</div>
</div>
<div
class=
"split-item"
id=
"s8"
style=
"text-align: center"
>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"3天内到期(
云芯
)供应商"
id=
"yunxin_expired_at_days"
>
3天内到期(
云芯
)供应商
<a
class=
"main_filter"
title=
"3天内到期(
芯链
)供应商"
id=
"yunxin_expired_at_days"
>
3天内到期(
芯链
)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"3天内到期(非
云芯
)供应商"
id=
"not_yunxin_expired_at_days"
>
3天内到期(非
云芯
)供应商
<a
class=
"main_filter"
title=
"3天内到期(非
芯链
)供应商"
id=
"not_yunxin_expired_at_days"
>
3天内到期(非
芯链
)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已过期(
云芯
)供应商"
id=
"yunxin_expired"
>
已过期(
云芯
)供应商
<a
class=
"main_filter"
title=
"已过期(
芯链
)供应商"
id=
"yunxin_expired"
>
已过期(
芯链
)供应商
</a>
</div>
<div
class=
"layui-row"
>
<a
class=
"main_filter"
title=
"已过期(非
云芯
)供应商"
id=
"not_yunxin_expired"
>
已过期(非
云芯
)供应商
<a
class=
"main_filter"
title=
"已过期(非
芯链
)供应商"
id=
"not_yunxin_expired"
>
已过期(非
芯链
)供应商
</a>
</div>
</div>
...
...
@@ -241,7 +241,7 @@
<div
class=
"layui-row"
>
<div
class=
"layui-inline"
>
@inject('multiTransformableSelectPresenter','App\Presenters\Filter\MultiTransformableSelectPresenter')
{!! $multiTransformableSelectPresenter->render(['has_sku'=>'SKU上传','sku_tag'=>'SKU标准','sku_mode'=>'SKU模式','uploaded_sku' => '历史SKU合作','outside_contact_type' => 'SKU上传方式','yunxin_channel_uid' => '
SKU
采购员'],
{!! $multiTransformableSelectPresenter->render(['has_sku'=>'SKU上传','sku_tag'=>'SKU标准','sku_mode'=>'SKU模式','uploaded_sku' => '历史SKU合作','outside_contact_type' => 'SKU上传方式','yunxin_channel_uid' => '
线上
采购员'],
['has_sku'=>[1=>'是',-1=>'否'], 'sku_tag'=>config('field.SkuTag'),'sku_mode'=>config('field.SkuMode'),'uploaded_sku'=>[1=>'是',-1=>'否'],'outside_contact_type'=>config('field.OutsideContactType'),'yunxin_channel_uid' => $userCodes]) !!}
</div>
<div
class=
"layui-inline"
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment