切换导航条
此项目
正在载入...
登录
何书鹏
/
anttest
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
何书鹏
4 years ago
提交
4f72b722aa97a7b37e2a7697f2125c93b8e0c1b8
1 个父辈
0ec6d440
经销商修改库存
隐藏空白字符变更
内嵌
并排对比
正在显示
5 个修改的文件
包含
316 行增加
和
2 行删除
application/admin/controller/dealer/Dealer.php
application/admin/controller/shopro/goods/Goods.php
application/admin/view/dealer/dealer/dealer_sku.html
application/admin/view/dealer/dealer/goods.html
public/assets/js/backend/dealer/dealer.js
application/admin/controller/dealer/Dealer.php
查看文件 @
4f72b72
...
...
@@ -293,9 +293,21 @@ class Dealer extends Backend
}
/**
* 供
货
商品
* 供
应
商品
*/
public
function
goods
(
$id
)
public
function
goods
()
{
if
(
$this
->
request
->
isAjax
()){
(
new
\app\admin\controller\shopro\goods\Goods
)
->
index
();
}
$this
->
assignconfig
(
'dealer_id'
,
$this
->
request
->
param
(
'dealer_id'
));
return
$this
->
view
->
fetch
();
}
/**
* 经销商规格
*/
public
function
dealerSku
(
$id
,
$dealer_id
)
{
$skuList
=
\app\admin\model\shopro\goods\Sku
::
all
([
'pid'
=>
0
,
'goods_id'
=>
$id
]);
if
(
$skuList
)
{
...
...
@@ -306,14 +318,74 @@ class Dealer extends Backend
$skuPrice
=
\app\admin\model\shopro\goods\SkuPrice
::
all
([
'goods_id'
=>
$id
]);
//编辑
foreach
(
$skuPrice
as
$k
=>
&
$p
)
{
$actSkuPrice
[
$k
]
=
\app\admin\model\dealer\DealerStock
::
get
([
'sku_price_id'
=>
$p
[
'id'
],
'dealer_id'
=>
$dealer_id
]);
if
(
!
$actSkuPrice
[
$k
])
{
$actSkuPrice
[
$k
][
'id'
]
=
0
;
$actSkuPrice
[
$k
][
'dealer_id'
]
=
$dealer_id
;
$actSkuPrice
[
$k
][
'goods_id'
]
=
$id
;
$actSkuPrice
[
$k
][
'status'
]
=
'down'
;
$actSkuPrice
[
$k
][
'stock'
]
=
''
;
$actSkuPrice
[
$k
][
'sales'
]
=
'0'
;
$actSkuPrice
[
$k
][
'sku_price_id'
]
=
$p
[
'id'
];
}
else
{
$actSkuPrice
[
$k
][
'status'
]
=
'up'
;
}
}
$this
->
assignconfig
(
'skuList'
,
$skuList
);
$this
->
assignconfig
(
'skuPrice'
,
$skuPrice
);
$this
->
assignconfig
(
'actSkuPrice'
,
$actSkuPrice
);
return
$this
->
view
->
fetch
();
}
/**
* 更新经销商规格
*/
public
function
createOrUpdateSku
(
$actSkuPrice
)
{
$actSkuPrice
=
json_decode
(
$actSkuPrice
,
true
);
$list
=
[];
$act
=
new
\app\admin\model\dealer\DealerStock
;
Db
::
startTrans
();
try
{
foreach
(
$actSkuPrice
as
$a
=>
$c
)
{
if
(
$c
[
'status'
]
==
'down'
){
$act
->
where
(
'id'
,
$c
[
'id'
])
->
delete
();
}
else
{
if
(
$c
[
'id'
]
==
0
)
{
unset
(
$c
[
'id'
]);
}
$list
[]
=
$c
;
}
}
$act
->
allowField
(
true
)
->
saveAll
(
$list
);
// 更新规格库存
foreach
(
$list
as
$v
)
{
$sum_stock
=
$act
->
where
(
'sku_price_id'
,
$v
[
'sku_price_id'
])
->
sum
(
'stock'
);
\app\admin\model\shopro\goods\SkuPrice
::
where
(
'id'
,
$v
[
'sku_price_id'
])
->
update
([
'stock'
=>
$sum_stock
]);
}
Db
::
commit
();
}
catch
(
PDOException
$e
)
{
Db
::
rollback
();
$this
->
error
(
$e
->
getMessage
());
}
catch
(
Exception
$e
)
{
Db
::
rollback
();
$this
->
error
(
$e
->
getMessage
());
}
$this
->
success
();
}
public
function
selectpage
()
{
return
parent
::
selectpage
();
// TODO: Change the autogenerated stub
...
...
application/admin/controller/shopro/goods/Goods.php
查看文件 @
4f72b72
...
...
@@ -529,6 +529,7 @@ class Goods extends Backend
$min_price
=
$this
->
request
->
get
(
"min_price"
,
""
);
$max_price
=
$this
->
request
->
get
(
"max_price"
,
""
);
$category_id
=
$this
->
request
->
get
(
'category_id'
,
0
);
$dealer_id
=
$this
->
request
->
get
(
'dealer_id'
,
0
);
$name
=
$this
->
model
->
getQuery
()
->
getTable
();
$tableName
=
$name
.
'.'
;
...
...
@@ -596,6 +597,12 @@ class Goods extends Backend
});
}
if
(
isset
(
$dealer_id
)
&&
$dealer_id
!=
0
)
{
$goods_ids
=
\app\admin\model\dealer\DealerStock
::
where
(
'dealer_id'
,
$dealer_id
)
->
column
(
'goods_id'
);
$goods_ids
=
$goods_ids
?
array_unique
(
$goods_ids
)
:
[];
$goods
=
$goods
->
where
(
'id'
,
'in'
,
$goods_ids
);
}
return
$goods
;
}
}
...
...
application/admin/view/dealer/dealer/dealer_sku.html
0 → 100644
查看文件 @
4f72b72
<style>
.skuChildrenBox
{
display
:
flex
;
padding
:
0
15px
;
flex-wrap
:
wrap
;
}
.skuChildren
{
margin-right
:
10px
;
margin-top
:
10px
;
width
:
50px
;
height
:
24px
;
line-height
:
24px
;
color
:
rgba
(
80
,
80
,
80
,
1
);
border-radius
:
2px
;
font-size
:
12px
;
text-align
:
center
;
border
:
1px
solid
rgba
(
231
,
231
,
231
,
1
);
position
:
relative
;
}
.skuChildrenSelect
{
border
:
1px
solid
rgba
(
212
,
48
,
48
,
1
)
}
.skuChildren-close
{
position
:
absolute
;
background
:
rgba
(
212
,
48
,
48
,
1
);
color
:
#fff
;
border-radius
:
50%
;
width
:
12px
;
height
:
12px
;
top
:
-6px
;
right
:
-6px
;
font-style
:
12px
;
-webkit-transform
:
scale
(
0.8
);
}
.status
{
border
:
none
;
cursor
:
pointer
;
color
:
#3498db
;
font-size
:
14px
;
}
.status-s
{
color
:
#ED3C30
;
}
[
v-cloak
]
{
display
:
none
}
</style>
<script
src=
"__CDN__/assets/addons/shopro/libs/vue.js"
></script>
<form
id=
"add-form"
class=
"form-horizontal"
role=
"form"
data-toggle=
"validator"
method=
"POST"
action=
""
>
<div
class=
"panel panel-default panel-intro"
>
<div
class=
"panel-body"
>
<div
id=
"myTabContent"
class=
"tab-content"
>
<div
class=
"tab-pane fade active in"
id=
"basic"
>
<div
class=
"widget-body no-padding"
>
<table
class=
"table"
id=
"skuPrce"
v-cloak
>
<thead>
<tr>
<th
v-for=
"(item, i) in skuList"
:key=
"i"
>
{{item.name}}
</th>
<th
width=
"80"
>
库存
</th>
<th
width=
"80"
>
价格
</th>
<th
width=
"80"
>
参与库存
</th>
<th
width=
"80"
>
操作
</th>
</tr>
</thead>
<tbody>
<tr
v-for=
"(item, i) in skuPrice"
:key=
"i"
>
<td
v-for=
"(v, j) in item.goods_sku_text"
:key=
"j"
>
{{v}}
</td>
<td
width=
"80"
><input
type=
"text"
v-model=
"item.stock"
class=
"input-sm form-control"
disabled
>
</td>
<td
width=
"80"
>
<input
type=
"text"
v-model=
"item.price"
class=
"input-sm form-control"
disabled
>
</td>
<td
width=
"80"
><input
v-if=
"actSkuPrice[i].status=='up'"
type=
"number"
v-model=
"actSkuPrice[i].stock"
class=
"input-sm form-control"
>
</td>
<td
width=
"80"
>
<span
class=
"input-sm form-control status"
@
click=
"goJoin(i)"
>
{{actSkuPrice[i].status=='up'?'取消':'参与'}}
</span></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
<div
class=
"form-group layer-footer"
>
<label
class=
"control-label col-xs-12 col-sm-2"
></label>
<div
class=
"col-xs-12 col-sm-8"
>
<button
type=
"button"
class=
"btn btn-success btn-embossed"
id=
"stockSub"
>
{:__('OK')}
</button>
</div>
</div>
</form>
\ No newline at end of file
...
...
application/admin/view/dealer/dealer/goods.html
0 → 100644
查看文件 @
4f72b72
<div
class=
"panel panel-default panel-intro"
>
{:build_heading()}
<div
class=
"panel-body"
>
<div
id=
"myTabContent"
class=
"tab-content"
>
<div
class=
"tab-pane fade active in"
id=
"one"
>
<div
class=
"widget-body no-padding"
>
<div
id=
"toolbar"
class=
"toolbar"
>
<a
href=
"javascript:;"
class=
"btn btn-primary btn-refresh"
title=
"{:__('Refresh')}"
><i
class=
"fa fa-refresh"
></i>
</a>
</div>
<table
id=
"table"
class=
"table table-striped table-bordered table-hover table-nowrap"
data-operate-edit=
"{:$auth->check('banner/edit')}"
data-operate-del=
"{:$auth->check('banner/del')}"
width=
"100%"
>
</table>
</div>
</div>
</div>
</div>
</div>
...
...
public/assets/js/backend/dealer/dealer.js
查看文件 @
4f72b72
...
...
@@ -43,6 +43,14 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
classname
:
'btn btn-xs btn-primary btn-dialog'
,
icon
:
'fa fa-list'
,
url
:
'shopro/order/order?dealer_id={id}'
,
},
{
name
:
'goods'
,
text
:
__
(
'供应商品'
),
title
:
__
(
'供应商品'
),
classname
:
'btn btn-xs btn-primary btn-dialog'
,
icon
:
'fa fa-list'
,
url
:
'dealer/dealer/goods?dealer_id={id}&page_type=select'
,
}
],
formatter
:
Table
.
api
.
formatter
.
operate
...
...
@@ -139,6 +147,110 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
})
Controller
.
api
.
bindevent
();
},
goods
:
function
()
{
// 初始化表格参数配置
Table
.
api
.
init
({
extend
:
{
index_url
:
'shopro/goods/goods/index'
+
location
.
search
,
table
:
'shopro_goods'
,
}
});
var
table
=
$
(
"#table"
);
// 初始化表格
table
.
bootstrapTable
({
url
:
$
.
fn
.
bootstrapTable
.
defaults
.
extend
.
index_url
,
pk
:
'id'
,
sortName
:
'id'
,
columns
:
[
[
{
checkbox
:
true
},
{
field
:
'id'
,
title
:
__
(
'Id'
)},
{
field
:
'image'
,
title
:
__
(
'商品图片'
),
operate
:
false
,
events
:
Table
.
api
.
events
.
image
,
formatter
:
Table
.
api
.
formatter
.
image
},
{
field
:
'title'
,
title
:
__
(
'商品名称'
),
operate
:
'LIKE'
},
{
field
:
'price'
,
title
:
__
(
'价格'
),
operate
:
'BETWEEN'
},
{
field
:
'stock'
,
title
:
__
(
'库存'
),
operate
:
false
},
{
field
:
'sales'
,
title
:
__
(
'销量'
),
operate
:
false
},
// {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
//操作栏,默认有编辑、删除或排序按钮,可自定义配置buttons来扩展按钮
{
field
:
'operate'
,
title
:
__
(
'Operate'
),
table
:
table
,
events
:
Table
.
api
.
events
.
operate
,
buttons
:
[
{
name
:
'stock'
,
text
:
__
(
'修改库存'
),
title
:
__
(
'修改库存'
),
classname
:
'btn btn-xs btn-success btn-dialog'
,
icon
:
'fa fa-edit'
,
url
:
'dealer/dealer/dealerSku?id={id}&dealer_id='
+
Config
.
dealer_id
,
}
],
formatter
:
Table
.
api
.
formatter
.
operate
}
]
]
});
// 为表格绑定事件
Table
.
api
.
bindevent
(
table
);
},
dealersku
:
function
()
{
var
vueSku
=
new
Vue
({
el
:
"#skuPrce"
,
data
()
{
return
{
skuList
:
Config
.
skuList
,
skuPrice
:
Config
.
skuPrice
,
actSkuPrice
:
Config
.
actSkuPrice
,
}
},
methods
:
{
goJoin
(
i
)
{
let
status
=
this
.
actSkuPrice
[
i
].
status
===
'up'
?
'down'
:
'up'
;
this
.
$set
(
this
.
actSkuPrice
[
i
],
'status'
,
status
)
},
},
})
$
(
document
).
on
(
"click"
,
"#stockSub"
,
function
()
{
Layer
.
confirm
(
'确认提交吗'
,
{
btn
:
[
'确认'
,
'取消'
]
},
function
()
{
let
isSubmit
=
true
isSubmit
=
!
(
vueSku
.
$data
.
actSkuPrice
.
every
(
function
(
item
,
index
,
array
)
{
return
item
.
status
==
'down'
;
}))
vueSku
.
$data
.
actSkuPrice
.
forEach
(
i
=>
{
if
(
i
.
status
==
'up'
&&
!
i
.
stock
)
{
isSubmit
=
false
}
})
if
(
isSubmit
)
{
Fast
.
api
.
ajax
({
url
:
'dealer/dealer/createOrUpdateSku'
,
data
:
{
'actSkuPrice'
:
JSON
.
stringify
(
vueSku
.
$data
.
actSkuPrice
)}
},
function
()
{
Layer
.
closeAll
();
location
.
reload
();
},
function
()
{
layer
.
msg
(
'更新失败'
);
});
return
true
;
}
else
{
layer
.
msg
(
'请把信息填写完整'
);
}
return
true
;
},
function
()
{
Layer
.
closeAll
();
return
false
;
});
})
Controller
.
api
.
bindevent
();
},
api
:
{
bindevent
:
function
()
{
Form
.
api
.
bindevent
(
$
(
"form[role=form]"
));
...
...
请
注册
或
登录
后发表评论