切换导航条
此项目
正在载入...
登录
李涵
/
integral
·
提交
转到一个项目
GitLab
转到仪表盘
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
差异文件
浏览文件
作者
李涵
6 years ago
提交
9f2ae6ef56fb00df47315999e7b23167c4013e00
2 个父辈
530a3f81
5d594386
合并分支 'xv' 到 'master'
商品列表与添加商品完成 查看合并请求
!2
隐藏空白字符变更
内嵌
并排对比
正在显示
6 个修改的文件
包含
642 行增加
和
31 行删除
app/admin/controller/ZjGoodsController.php
public/static/js/admin.js
public/themes/admin_simpleboot3/admin/zj_goods/add.html
public/themes/admin_simpleboot3/admin/zj_goods/edit.html
public/themes/admin_simpleboot3/admin/zj_goods/index.html
public/themes/admin_simpleboot3/user/webuploader.html
app/admin/controller/ZjGoodsController.php
查看文件 @
9f2ae6e
...
...
@@ -19,22 +19,178 @@ class ZjGoodsController extends AdminBaseController
*/
public
function
index
(){
$where
[
'g.delete_time'
]
=
0
;
$where1
=
[];
$param
=
[];
if
(
$this
->
request
->
param
()){
$param
=
input
(
'param.'
);
if
(
!
empty
(
$param
[
'cate'
])){
$where
[
'ca.id'
]
=
$param
[
'cate'
];
if
(
!
empty
(
$param
[
'cate1'
])){
$where
[
'ca.id'
]
=
$param
[
'cate1'
];
}
if
(
!
empty
(
$param
[
'cate2'
])){
$where
[
'g.cid'
]
=
$param
[
'cate2'
];
}
if
(
!
empty
(
$param
[
'id'
])){
$where
[
'g.id'
]
=
$param
[
'id'
];
}
if
(
!
empty
(
$param
[
'name'
])){
$name
=
$param
[
'name'
];
$where
[
'g.name'
]
=
[
'like'
,
"%
$name
%"
];
}
if
(
!
empty
(
$param
[
'min'
])){
$where
[
'g.price'
]
=
[
'egt'
,
$param
[
'min'
]];
}
if
(
!
empty
(
$param
[
'max'
])){
$where1
[
'g.price'
]
=
[
'elt'
,
$param
[
'max'
]];
}
if
(
!
empty
(
$param
[
'zt'
])){
if
(
$param
[
'zt'
]
==
1
){
$where
[
'g.is_sta'
]
=
1
;
}
elseif
(
$param
[
'zt'
]
==
2
){
$where
[
'g.is_sta'
]
=
2
;
}
elseif
(
$param
[
'zt'
]
==
3
){
$where
[
'g.is_shove'
]
=
2
;
}
elseif
(
$param
[
'zt'
]
==
4
){
$where
[
'g.is_shove'
]
=
1
;
}
}
}
$all
=
Db
::
name
(
'zj_goods'
)
->
alias
(
'g'
)
->
join
(
'zj_category c'
,
'g.cid=c.id'
)
->
join
(
'zj_category ca'
,
'c.cid=ca.id'
)
->
where
(
$where
)
->
field
(
'g.*,c.name as cname,ca.name as caname'
)
->
order
(
'create_time'
,
'desc'
)
->
paginate
(
15
);
->
where
(
$where
)
->
where
(
$where1
)
->
field
(
'g.*,c.name as cname,ca.name as caname,ca.id as caid'
)
->
order
(
'create_time'
,
'desc'
)
->
paginate
(
15
);
$cate
=
Db
::
name
(
'zj_category'
)
->
where
(
'delete_time'
,
'0'
)
->
field
(
'id,name,grade,cid'
)
->
select
();
foreach
(
$cate
as
$k
=>
$v
){
if
(
$v
[
'grade'
]
==
1
){
$cate1
[
$k
]
=
$v
;
}
else
{
$cate2
[
$k
]
=
$v
;
}
}
$cate2
=
array_merge
(
$cate2
);
$cate1
=
array_merge
(
$cate1
);
$all
->
appends
(
$param
);
$this
->
assign
(
'zt'
,
!
empty
(
$param
[
'zt'
])
?
$param
[
'zt'
]
:
''
);
$this
->
assign
(
'max'
,
!
empty
(
$param
[
'max'
])
?
$param
[
'max'
]
:
''
);
$this
->
assign
(
'min'
,
!
empty
(
$param
[
'min'
])
?
$param
[
'min'
]
:
''
);
$this
->
assign
(
'name'
,
!
empty
(
$param
[
'name'
])
?
$param
[
'name'
]
:
''
);
$this
->
assign
(
'id'
,
!
empty
(
$param
[
'id'
])
?
$param
[
'id'
]
:
''
);
$this
->
assign
(
'cate2'
,
!
empty
(
$param
[
'cate2'
])
?
$param
[
'cate2'
]
:
''
);
$this
->
assign
(
'cate1'
,
!
empty
(
$param
[
'cate1'
])
?
$param
[
'cate1'
]
:
''
);
$this
->
assign
(
'cate3'
,
$cate1
);
$this
->
assign
(
'cate4'
,
$cate2
);
$this
->
assign
(
'all'
,
$all
->
items
());
$this
->
assign
(
'page'
,
$all
->
render
());
return
$this
->
fetch
();
}
/**
* 商品状态修改
*/
public
function
state
(){
if
(
$this
->
request
->
isAjax
()){
$param
=
input
(
'param.'
);
$edit
=
Db
::
name
(
'zj_goods'
)
->
update
(
$param
);
if
(
empty
(
$edit
)){
$this
->
error
(
'商品状态修改失败'
);
}
else
{
$this
->
success
(
'商品状态修改成功'
);
}
}
}
/**
* 添加商品
*/
public
function
add
(){
$cate
=
Db
::
name
(
'zj_category'
)
->
where
(
'delete_time'
,
'0'
)
->
field
(
'id,name,grade,cid'
)
->
select
();
foreach
(
$cate
as
$k
=>
$v
){
if
(
$v
[
'grade'
]
==
1
){
$cate1
[
$k
]
=
$v
;
}
else
{
$cate2
[
$k
]
=
$v
;
}
}
$cate2
=
array_merge
(
$cate2
);
$cate1
=
array_merge
(
$cate1
);
$this
->
assign
(
'cate3'
,
$cate1
);
$this
->
assign
(
'cate4'
,
$cate2
);
return
$this
->
fetch
();
}
/**
* 添加商品提交
*/
public
function
addPost
(){
if
(
$this
->
request
->
param
()){
$param
=
input
(
'param.'
);
//检查商品详情是否为空
if
(
empty
(
$param
[
'content'
])){
$this
->
error
(
'商品详情不能为空'
);
}
//检查商品的价格是否为小数
if
(
strpos
(
$param
[
'price_cash'
],
'.'
)
||
strpos
(
$param
[
'price'
],
'.'
)
||
strpos
(
$param
[
'price_num'
],
'.'
)){
$this
->
error
(
'商品金额、积分、单价为整数'
);
}
//检查商品缩略图
if
(
empty
(
$param
[
'thumb'
])){
$this
->
error
(
'请添加商品缩略图'
);
}
//检查图片轮播图图片数量并转json
if
(
empty
(
$param
[
'photo_urls'
])){
$this
->
error
(
'请至少上传1张商品轮播图'
);
}
elseif
(
!
empty
(
$param
[
'photo_urls'
][
'5'
])){
$this
->
error
(
'最多上传五张商品轮播图'
,
''
,
$param
);
}
else
{
foreach
(
$param
[
'photo_urls'
]
as
$k
=>
$v
){
$param
[
'more'
][
$k
]
=
[
'url'
=>
$v
,
'name'
=>
$param
[
'photo_names'
][
$k
]];
}
unset
(
$param
[
'photo_names'
]);
unset
(
$param
[
'photo_urls'
]);
$param
[
'more'
]
=
json_encode
(
$param
[
'more'
]);
}
//检查商品的一级分类
if
(
$param
[
'cate'
]
==
2
){
if
(
empty
(
$param
[
'is_type'
])){
$this
->
error
(
'请选择组合支付方式'
);
}
//判断组合支付方式
if
(
$param
[
'is_type'
]
==
2
){
if
(
$param
[
'price_num'
]
!=
0
){
$this
->
error
(
'最低金额选项的商品积分应为‘0’'
);
}
if
(
$param
[
'price_cash'
]
>=
$param
[
'price'
]){
$this
->
error
(
'商品单价应大于商品金额'
);
}
}
else
if
(
$param
[
'is_type'
]
==
1
){
if
(
$param
[
'price'
]
!=
$param
[
'price_cash'
]
+
$param
[
'price_num'
]){
$this
->
error
(
'商品积分+商品金额=商品价格'
);
}
}
else
{
$this
->
error
(
'组合支付方式出现未知错误'
.
$param
[
'is_type'
]);
}
}
else
{
//属性赋值
$param
[
'price_cash'
]
=
'0'
;
$param
[
'price_num'
]
=
'0'
;
$param
[
'is_type'
]
=
'0'
;
}
//检查商品的价格是否大于等于0
if
(
$param
[
'price'
]
<
0
||
$param
[
'price_num'
]
<
0
||
$param
[
'price_cash'
]
<
0
){
$this
->
error
(
'商品金额、商品积分、商品单价应大于等于0'
);
}
$param
[
'content'
]
=
htmlspecialchars
(
cmf_replace_content_file_url
(
htmlspecialchars_decode
(
$param
[
'content'
])));
$param
[
'create_time'
]
=
time
();
unset
(
$param
[
'cate'
]);
$add
=
Db
::
name
(
'zj_goods'
)
->
insert
(
$param
);
if
(
empty
(
$add
)){
$this
->
error
(
'商品添加失败'
);
}
else
{
$this
->
success
(
'商品添加成功'
);
}
}
}
/**
* 商品分类列表
...
...
@@ -45,7 +201,6 @@ class ZjGoodsController extends AdminBaseController
$this
->
assign
(
'all'
,
$all
);
return
$this
->
fetch
();
}
/**
* 添加商品分类
*/
...
...
public/static/js/admin.js
查看文件 @
9f2ae6e
...
...
@@ -237,7 +237,7 @@
//$('<span class="tips_error">' + data.msg + '</span>').appendTo($btn.parent()).fadeIn('fast');
$btn
.
removeProp
(
'disabled'
).
removeClass
(
'disabled'
);
console
.
log
(
data
)
new
Noty
({
text
:
data
.
msg
,
type
:
'error'
,
...
...
@@ -247,7 +247,7 @@
open
:
'animated bounceInDown'
,
// Animate.css class names
close
:
'animated bounceOutUp'
,
// Animate.css class names
},
timeout
:
1
,
timeout
:
2
,
callbacks
:
{
afterClose
:
function
()
{
_refresh
();
...
...
@@ -835,7 +835,7 @@ function uploadOne(dialog_title, input_selector, filetype, extra_params, app) {
*/
function
uploadOneImage
(
dialog_title
,
input_selector
,
extra_params
,
app
)
{
openUploadDialog
(
dialog_title
,
function
(
dialog
,
files
)
{
$
(
input_selector
).
val
(
files
[
0
].
filepath
);
$
(
input_selector
).
val
(
files
[
0
].
preview_url
);
$
(
input_selector
+
'-preview'
).
attr
(
'src'
,
files
[
0
].
preview_url
);
$
(
input_selector
+
'-name'
).
val
(
files
[
0
].
name
);
},
extra_params
,
0
,
'image'
,
app
);
...
...
@@ -858,7 +858,7 @@ function uploadMultiImage(dialog_title, container_selector, item_tpl_wrapper_id,
itemtpl
=
itemtpl
.
replace
(
/
\{
id
\}
/g
,
item
.
id
);
itemtpl
=
itemtpl
.
replace
(
/
\{
url
\}
/g
,
item
.
url
);
itemtpl
=
itemtpl
.
replace
(
/
\{
preview_url
\}
/g
,
item
.
preview_url
);
itemtpl
=
itemtpl
.
replace
(
/
\{
filepath
\}
/g
,
item
.
filepath
);
itemtpl
=
itemtpl
.
replace
(
/
\{
filepath
\}
/g
,
item
.
preview_url
);
itemtpl
=
itemtpl
.
replace
(
/
\{
name
\}
/g
,
item
.
name
);
html
+=
itemtpl
;
});
...
...
public/themes/admin_simpleboot3/admin/zj_goods/add.html
0 → 100644
查看文件 @
9f2ae6e
<include
file=
"public@header"
/>
<style
type=
"text/css"
>
.pic-list
li
{
margin-bottom
:
5px
;
}
</style>
<script
type=
"text/html"
id=
"photos-item-tpl"
>
<
li
id
=
"saved-image{id}"
>
<
input
id
=
"photo-{id}"
type
=
"hidden"
name
=
"photo_urls[]"
value
=
"{filepath}"
>
<
input
class
=
"form-control"
id
=
"photo-{id}-name"
type
=
"text"
name
=
"photo_names[]"
value
=
"{name}"
style
=
"width: 200px;"
title
=
"图片名称"
>
<
img
id
=
"photo-{id}-preview"
src
=
"{url}"
style
=
"height:36px;width: 36px;"
onclick
=
"imagePreviewDialog(this.src);"
>
<
a
href
=
"javascript:uploadOneImage('图片上传','#photo-{id}');"
>
替换
<
/a
>
<
a
href
=
"javascript:(function(){$('#saved-image{id}').remove();})();"
>
移除
<
/a
>
<
/li
>
</script>
</head>
<body>
<div
class=
"wrap js-check-wrap"
>
<ul
class=
"nav nav-tabs"
>
<li><a
href=
"{:url('index')}"
>
商品列表
</a></li>
<li
class=
"active"
><a
href=
"{:url('add')}"
>
添加商品
</a></li>
</ul>
<div
class=
"row margin-top-20"
>
<form
class=
"js-ajax-form"
action=
"{:url('addPost')}"
method=
"post"
>
<div
class=
"col-md-7"
>
<div
class=
"tab-content"
>
<div
class=
"tab-pane active"
id=
"A"
>
<div
class=
"form-group"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品名称
</label>
<div>
<input
type=
"text"
class=
"form-control"
placeholder=
"请输入名称"
id=
"name"
name=
"name"
maxlength=
"30"
required
>
</div>
</div>
<div
class=
"form-group"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品简介
</label>
<div>
<input
type=
"text"
name=
"intro"
maxlength=
"50"
class=
"form-control"
placeholder=
"请输入简介"
required
>
</div>
</div>
<div
class=
"form-group"
>
<label><span
class=
"form-required"
>
*
</span>
一级分类
</label>
<div>
<select
class=
"form-control"
name=
"cate"
id=
"classo"
onchange=
"teacherChange(this.options[this.selectedIndex].value)"
>
<foreach
name=
"cate3"
item=
"vo"
>
<option
value=
"{$vo.id}"
>
{$vo.name}
</option>
</foreach>
</select>
</div>
</div>
<div
class=
"form-group"
>
<label><span
class=
"form-required"
>
*
</span>
二级分类
</label>
<div>
<select
name=
"cid"
class=
"form-control"
id=
"classobj"
>
<foreach
name=
"cate4"
item=
"vo"
>
<option
value=
"{$vo.id}"
>
{$vo.name}
</option>
</foreach>
</select>
</div>
</div>
<div
class=
"form-group"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品详情
</label>
<div>
<script
type=
"text/plain"
id=
"content"
name=
"content"
></script>
</div>
</div>
</div>
</div>
<div
class=
"form-group"
style=
"text-align: right;"
>
<button
type=
"submit"
class=
"btn btn-primary js-ajax-submit"
>
{:lang('ADD')}
</button>
<a
class=
"btn btn-default"
href=
"{:url('category')}"
>
{:lang('BACK')}
</a>
</div>
</div>
<div
class=
"col-md-3"
>
<div
class=
"form-group"
>
<label><span
class=
"form-required"
>
*
</span>
商品缩略图
</label>
<div>
<div
style=
"text-align: left;"
>
<input
type=
"hidden"
name=
"thumb"
id=
"thumbnail"
value=
""
>
<a
href=
"javascript:uploadOneImage('图片上传','#thumbnail');"
>
<img
src=
"__TMPL__/public/assets/images/default-thumbnail.png"
id=
"thumbnail-preview"
width=
"135"
style=
"cursor: pointer"
/>
</a>
<input
type=
"button"
class=
"btn btn-sm btn-cancel-thumbnail"
value=
"取消图片"
>
</div>
</div>
</div>
<div
class=
"form-group"
>
<label><span
class=
"form-required"
>
*
</span>
商品轮播图
</label>
<div>
<ul
id=
"photos"
class=
"pic-list list-unstyled form-inline"
></ul>
<a
href=
"javascript:uploadMultiImage('图片上传','#photos','photos-item-tpl');"
class=
"btn btn-default btn-sm"
>
选择图片
</a>
</div>
</div>
<div
class=
"form-group"
id=
"xx"
style=
"display: none"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
组合支付方式
</label>
<div
style=
"padding-left: 10px"
>
固定金额:
<input
type=
"radio"
name=
"is_type"
value=
"1"
style=
"margin-right: 30px"
>
最低金额:
<input
type=
"radio"
name=
"is_type"
value=
"2"
>
</div>
</div>
<div
class=
"form-group price"
style=
"display: none"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品金额
</label>
<div>
<input
type=
"number"
name=
"price_cash"
maxlength=
"50"
class=
"form-control"
placeholder=
"请输入金额"
required
>
</div>
</div>
<div
class=
"form-group price"
style=
"display: none"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品积分
</label>
<div>
<input
type=
"number"
name=
"price_num"
maxlength=
"50"
class=
"form-control"
placeholder=
"请输入积分(最低金额支付此项请填'0')"
required
>
</div>
</div>
<div
class=
"form-group"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品单价
</label>
<div>
<input
type=
"number"
name=
"price"
maxlength=
"50"
class=
"form-control"
placeholder=
"请输入单价"
required
>
</div>
</div>
</div>
</form>
</div>
</div>
<script
type=
"text/javascript"
src=
"__STATIC__/js/admin.js"
></script>
<script
type=
"text/javascript"
>
//编辑器路径定义
var
editorURL
=
GV
.
WEB_ROOT
;
</script>
<script
type=
"text/javascript"
src=
"__STATIC__/js/ueditor/ueditor.config.js"
></script>
<script
type=
"text/javascript"
src=
"__STATIC__/js/ueditor/ueditor.all.min.js"
></script>
<script
type=
"text/javascript"
>
$
(
function
()
{
editorcontent
=
new
baidu
.
editor
.
ui
.
Editor
();
editorcontent
.
render
(
'content'
);
try
{
editorcontent
.
sync
();
}
catch
(
err
)
{
}
$
(
'.btn-cancel-thumbnail'
).
click
(
function
()
{
$
(
'#thumbnail-preview'
).
attr
(
'src'
,
'__TMPL__/public/assets/images/default-thumbnail.png'
);
$
(
'#thumbnail'
).
val
(
''
);
});
});
var
ar1
=
{:
json_encode
(
$cate4
)};
//后台传入服务名称
//当选择指向类时改变目标的下拉菜单
function
teacherChange
(
area
){
var
tobj
=
document
.
getElementById
(
'classobj'
);
removeAllOptions
(
tobj
);
if
(
area
==
2
){
$
(
".price"
).
css
(
'display'
,
'block'
)
$
(
"#xx"
).
css
(
'display'
,
'block'
)
}
else
if
(
area
==
3
){
$
(
".price"
).
css
(
'display'
,
'none'
)
$
(
"#xx"
).
css
(
'display'
,
'none'
)
}
else
if
(
area
==
1
){
$
(
".price"
).
css
(
'display'
,
'none'
)
$
(
"#xx"
).
css
(
'display'
,
'none'
)
}
for
(
m
=
0
;
m
<
ar1
.
length
;
m
++
){
if
(
ar1
[
m
][
'cid'
]
==
area
&&
area
!=
''
){
var
option
=
document
.
createElement
(
"option"
);
option
.
text
=
ar1
[
m
][
'name'
];
option
.
value
=
ar1
[
m
][
'id'
];
tobj
.
add
(
option
);
}
else
if
(
area
==
''
){
var
option
=
document
.
createElement
(
"option"
);
option
.
text
=
ar1
[
m
][
'name'
];
option
.
value
=
ar1
[
m
][
'id'
];
tobj
.
add
(
option
);
}
}
}
//移除option 当中所有元素
function
removeAllOptions
(
selectbox
)
{
var
i
;
for
(
i
=
selectbox
.
options
.
length
-
1
;
i
>=
0
;
i
--
)
{
selectbox
.
remove
(
i
);
}
}
</script>
</body>
</html>
\ No newline at end of file
...
...
public/themes/admin_simpleboot3/admin/zj_goods/edit.html
0 → 100644
查看文件 @
9f2ae6e
<include
file=
"public@header"
/>
<style
type=
"text/css"
>
.pic-list
li
{
margin-bottom
:
5px
;
}
</style>
<script
type=
"text/html"
id=
"photos-item-tpl"
>
<
li
id
=
"saved-image{id}"
>
<
input
id
=
"photo-{id}"
type
=
"hidden"
name
=
"photo_urls[]"
value
=
"{filepath}"
>
<
input
class
=
"form-control"
id
=
"photo-{id}-name"
type
=
"text"
name
=
"photo_names[]"
value
=
"{name}"
style
=
"width: 200px;"
title
=
"图片名称"
>
<
img
id
=
"photo-{id}-preview"
src
=
"{url}"
style
=
"height:36px;width: 36px;"
onclick
=
"imagePreviewDialog(this.src);"
>
<
a
href
=
"javascript:uploadOneImage('图片上传','#photo-{id}');"
>
替换
<
/a
>
<
a
href
=
"javascript:(function(){$('#saved-image{id}').remove();})();"
>
移除
<
/a
>
<
/li
>
</script>
</head>
<body>
<div
class=
"wrap js-check-wrap"
>
<ul
class=
"nav nav-tabs"
>
<li><a
href=
"{:url('index')}"
>
商品列表
</a></li>
<li
class=
"active"
><a
href=
"{:url('add')}"
>
添加商品
</a></li>
</ul>
<div
class=
"row margin-top-20"
>
<form
class=
"js-ajax-form"
action=
"{:url('addPost')}"
method=
"post"
>
<div
class=
"col-md-7"
>
<div
class=
"tab-content"
>
<div
class=
"tab-pane active"
id=
"A"
>
<div
class=
"form-group"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品名称
</label>
<div>
<input
type=
"text"
class=
"form-control"
placeholder=
"请输入名称"
id=
"name"
name=
"name"
maxlength=
"30"
required
>
</div>
</div>
<div
class=
"form-group"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品简介
</label>
<div>
<input
type=
"text"
name=
"intro"
maxlength=
"50"
class=
"form-control"
placeholder=
"请输入简介"
required
>
</div>
</div>
<div
class=
"form-group"
>
<label><span
class=
"form-required"
>
*
</span>
一级分类
</label>
<div>
<select
class=
"form-control"
name=
"cate"
id=
"classo"
onchange=
"teacherChange(this.options[this.selectedIndex].value)"
>
<foreach
name=
"cate3"
item=
"vo"
>
<option
value=
"{$vo.id}"
>
{$vo.name}
</option>
</foreach>
</select>
</div>
</div>
<div
class=
"form-group"
>
<label><span
class=
"form-required"
>
*
</span>
二级分类
</label>
<div>
<select
name=
"cid"
class=
"form-control"
id=
"classobj"
>
<foreach
name=
"cate4"
item=
"vo"
>
<option
value=
"{$vo.id}"
>
{$vo.name}
</option>
</foreach>
</select>
</div>
</div>
<div
class=
"form-group"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品详情
</label>
<div>
<script
type=
"text/plain"
id=
"content"
name=
"content"
></script>
</div>
</div>
</div>
</div>
<div
class=
"form-group"
style=
"text-align: right;"
>
<button
type=
"submit"
class=
"btn btn-primary js-ajax-submit"
>
{:lang('ADD')}
</button>
<a
class=
"btn btn-default"
href=
"{:url('category')}"
>
{:lang('BACK')}
</a>
</div>
</div>
<div
class=
"col-md-3"
>
<div
class=
"form-group"
>
<label><span
class=
"form-required"
>
*
</span>
商品缩略图
</label>
<div>
<div
style=
"text-align: left;"
>
<input
type=
"hidden"
name=
"thumb"
id=
"thumbnail"
value=
""
>
<a
href=
"javascript:uploadOneImage('图片上传','#thumbnail');"
>
<img
src=
"__TMPL__/public/assets/images/default-thumbnail.png"
id=
"thumbnail-preview"
width=
"135"
style=
"cursor: pointer"
/>
</a>
<input
type=
"button"
class=
"btn btn-sm btn-cancel-thumbnail"
value=
"取消图片"
>
</div>
</div>
</div>
<div
class=
"form-group"
>
<label><span
class=
"form-required"
>
*
</span>
商品轮播图
</label>
<div>
<ul
id=
"photos"
class=
"pic-list list-unstyled form-inline"
></ul>
<a
href=
"javascript:uploadMultiImage('图片上传','#photos','photos-item-tpl');"
class=
"btn btn-default btn-sm"
>
选择图片
</a>
</div>
</div>
<div
class=
"form-group"
id=
"xx"
style=
"display: none"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
组合支付方式
</label>
<div
style=
"padding-left: 10px"
>
固定金额:
<input
type=
"radio"
name=
"is_type"
value=
"1"
style=
"margin-right: 30px"
>
最低金额:
<input
type=
"radio"
name=
"is_type"
value=
"2"
>
</div>
</div>
<div
class=
"form-group price"
style=
"display: none"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品金额
</label>
<div>
<input
type=
"number"
name=
"price_cash"
maxlength=
"50"
class=
"form-control"
placeholder=
"请输入金额"
required
>
</div>
</div>
<div
class=
"form-group price"
style=
"display: none"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品积分
</label>
<div>
<input
type=
"number"
name=
"price_num"
maxlength=
"50"
class=
"form-control"
placeholder=
"请输入积分(最低金额支付此项请填'0')"
required
>
</div>
</div>
<div
class=
"form-group"
>
<label
for=
"name"
><span
class=
"form-required"
>
*
</span>
商品单价
</label>
<div>
<input
type=
"number"
name=
"price"
maxlength=
"50"
class=
"form-control"
placeholder=
"请输入单价"
required
>
</div>
</div>
</div>
</form>
</div>
</div>
<script
type=
"text/javascript"
src=
"__STATIC__/js/admin.js"
></script>
<script
type=
"text/javascript"
>
//编辑器路径定义
var
editorURL
=
GV
.
WEB_ROOT
;
</script>
<script
type=
"text/javascript"
src=
"__STATIC__/js/ueditor/ueditor.config.js"
></script>
<script
type=
"text/javascript"
src=
"__STATIC__/js/ueditor/ueditor.all.min.js"
></script>
<script
type=
"text/javascript"
>
$
(
function
()
{
editorcontent
=
new
baidu
.
editor
.
ui
.
Editor
();
editorcontent
.
render
(
'content'
);
try
{
editorcontent
.
sync
();
}
catch
(
err
)
{
}
$
(
'.btn-cancel-thumbnail'
).
click
(
function
()
{
$
(
'#thumbnail-preview'
).
attr
(
'src'
,
'__TMPL__/public/assets/images/default-thumbnail.png'
);
$
(
'#thumbnail'
).
val
(
''
);
});
});
var
ar1
=
{:
json_encode
(
$cate4
)};
//后台传入服务名称
//当选择指向类时改变目标的下拉菜单
function
teacherChange
(
area
){
var
tobj
=
document
.
getElementById
(
'classobj'
);
removeAllOptions
(
tobj
);
if
(
area
==
2
){
$
(
".price"
).
css
(
'display'
,
'block'
)
$
(
"#xx"
).
css
(
'display'
,
'block'
)
}
else
if
(
area
==
3
){
$
(
".price"
).
css
(
'display'
,
'none'
)
$
(
"#xx"
).
css
(
'display'
,
'none'
)
}
else
if
(
area
==
1
){
$
(
".price"
).
css
(
'display'
,
'none'
)
$
(
"#xx"
).
css
(
'display'
,
'none'
)
}
for
(
m
=
0
;
m
<
ar1
.
length
;
m
++
){
if
(
ar1
[
m
][
'cid'
]
==
area
&&
area
!=
''
){
var
option
=
document
.
createElement
(
"option"
);
option
.
text
=
ar1
[
m
][
'name'
];
option
.
value
=
ar1
[
m
][
'id'
];
tobj
.
add
(
option
);
}
else
if
(
area
==
''
){
var
option
=
document
.
createElement
(
"option"
);
option
.
text
=
ar1
[
m
][
'name'
];
option
.
value
=
ar1
[
m
][
'id'
];
tobj
.
add
(
option
);
}
}
}
//移除option 当中所有元素
function
removeAllOptions
(
selectbox
)
{
var
i
;
for
(
i
=
selectbox
.
options
.
length
-
1
;
i
>=
0
;
i
--
)
{
selectbox
.
remove
(
i
);
}
}
</script>
</body>
</html>
\ No newline at end of file
...
...
public/themes/admin_simpleboot3/admin/zj_goods/index.html
查看文件 @
9f2ae6e
...
...
@@ -4,37 +4,42 @@
<div
class=
"wrap"
>
<ul
class=
"nav nav-tabs"
>
<li
class=
"active"
><a
href=
"javascript:;"
>
商品列表
</a></li>
<li><a
href=
"{:url('add')}"
>
添加商品
</a></li>
</ul>
<form
class=
"well form-inline margin-top-20"
method=
"post"
action=
"{:url('index')}"
>
id:
<input
class=
"form-control"
type=
"text"
name=
"id"
style=
"width:
2
00px;"
value=
"{$id|default=''}"
<input
class=
"form-control"
type=
"text"
name=
"id"
style=
"width:
1
00px;"
value=
"{$id|default=''}"
placeholder=
"请输入id"
>
一级分类:
<select
name=
"
step"
class=
"form-control"
style=
"width: 120px;
"
>
<select
name=
"
cate1"
class=
"form-control"
style=
"width: 120px;"
id=
"classo"
onchange=
"teacherChange(this.options[this.selectedIndex].value)
"
>
<option
value
>
选择分类
</option>
<foreach
name=
"cate3"
item=
"vo"
>
<option
value=
"{$vo.id}"
<
eq
name=
"$cate1"
value=
"$vo.id"
>
selected
</eq>
>{$vo.name}
</option>
</foreach>
</select>
二级分类:
<select
name=
"
step"
class=
"form-control"
style=
"width: 120px;
"
>
<select
name=
"
cate2"
class=
"form-control"
style=
"width: 120px;"
id=
"classobj
"
>
<option
value
>
选择分类
</option>
<foreach
name=
"cate4"
item=
"vo"
>
<option
value=
"{$vo.id}"
<
eq
name=
"$cate2"
value=
"$vo.id"
>
selected
</eq>
>{$vo.name}
</option>
</foreach>
</select>
商品名称:
<input
class=
"form-control"
type=
"text"
name=
"name"
style=
"width: 200px;"
value=
"{$name|default=''}"
placeholder=
"请输入商品名称"
>
单价:
<input
class=
"form-control"
type=
"number"
name=
"min"
style=
"width: 200px;"
value=
"{$min|default=''}"
placeholder=
"请输入最低价"
>
-
<input
class=
"form-control"
type=
"number"
name=
"max"
style=
"width: 200px;"
value=
"{$max|default=''}"
placeholder=
"请输入最高价"
>
<br/>
<input
class=
"form-control"
type=
"number"
name=
"min"
style=
"width: 100px;"
value=
"{$min|default=''}"
placeholder=
"最低价"
>
-
<input
class=
"form-control"
type=
"number"
name=
"max"
style=
"width: 100px;"
value=
"{$max|default=''}"
placeholder=
"最高价"
>
商品状态:
<select
name=
"zt"
class=
"form-control"
style=
"width: 120px;"
>
<option
value
>
选择状态
</option>
<option
value=
"1"
>
上架
</option>
<option
value=
"2"
>
下架
</option>
<option
value=
"3"
>
推荐
</option>
<option
value=
"4"
>
未推荐
</option>
<option
value=
"1"
<
eq
name=
"$zt"
value=
"1"
>
selected
</eq>
>上架
</option>
<option
value=
"2"
<
eq
name=
"$zt"
value=
"2"
>
selected
</eq>
>下架
</option>
<option
value=
"3"
<
eq
name=
"$zt"
value=
"3"
>
selected
</eq>
>推荐
</option>
<option
value=
"4"
<
eq
name=
"$zt"
value=
"4"
>
selected
</eq>
>不推荐
</option>
</select>
<input
type=
"hidden"
name=
"uid"
value=
"{$uid|default=''}"
>
<input
type=
"submit"
class=
"btn btn-primary"
value=
"搜索"
/>
<a
class=
"btn btn-danger"
href=
"{:url('index')}"
>
清空
</a>
</form>
...
...
@@ -43,6 +48,7 @@
<thead>
<tr>
<th>
id
</th>
<th>
商品名称
</th>
<th>
一级分类
</th>
<th>
二级分类
</th>
<th>
添加时间
</th>
...
...
@@ -50,25 +56,60 @@
<th>
金额售价
</th>
<th>
总价
</th>
<th>
商品状态
</th>
<th>
操作
</th>
<th
style=
"width: 200px;"
>
操作
</th>
</tr>
</thead>
<tbody>
<foreach
name=
"all"
item=
"vo"
>
<tr>
<td>
{$vo.id}
</td>
<td>
{$vo.name}
</td>
<td>
{$vo.caname}
</td>
<td>
{$vo.cname}
</td>
<td>
{:date('Y-m-d H:i'$vo.create_time)}
</td>
<td>
{:date('Y-m-d H:i'
,
$vo.create_time)}
</td>
<td>
<if
condition=
"$vo.price_num eq 0"
>
<if
condition=
"$vo.caid eq 1||$vo.caid eq 3"
>
{$vo.caname}专区商品
<elseif
condition=
"$vo.is_type eq 2"
>
最低现金商品
<else>
{$vo.price_num}
</if>
{$vo.price+num}
</td>
<td>
{$vo.id}
</td>
<td>
{$vo.id}
</td>
<td>
{$vo.id}
</td>
<td>
<if
condition=
"$vo.caid eq 1||$vo.caid eq 3"
>
{$vo.caname}专区商品
<else>
{$vo.price_cash}
</if>
</td>
<td>
{$vo.price}
</td>
<td>
<eq
name=
"$vo.is_shove"
value=
"1"
>
不推荐
<else>
推荐
</eq>
,
<eq
name=
"$vo.is_sta"
value=
"1"
>
上架
<else>
下架
</eq>
</td>
<td>
<eq
name=
"$vo.is_shove"
value=
"1"
>
<a
href=
"{:url('state',array('id'=>$vo['id'],'is_shove'=>'2'))}"
class=
"js-ajax-dialog-btn"
data-msg=
"确定推荐该商品"
>
推荐
</a>
<else>
<a
href=
"{:url('state',array('id'=>$vo['id'],'is_shove'=>'1'))}"
class=
"js-ajax-dialog-btn"
data-msg=
"确定取消推荐"
>
不推荐
</a>
</eq>
<eq
name=
"$vo.is_sta"
value=
"1"
>
<a
href=
"{:url('state',array('id'=>$vo['id'],'is_sta'=>'2'))}"
class=
"js-ajax-dialog-btn"
data-msg=
"确定下架商品"
>
下架
</a>
<else>
<a
href=
"{:url('state',array('id'=>$vo['id'],'is_sta'=>'1'))}"
class=
"js-ajax-dialog-btn"
data-msg=
"确定上架商品"
>
上架
</a>
</eq>
<a
href=
"{:url('edit',array('id'=>$vo.id))}"
>
编辑
</a>
</td>
</tr>
</foreach>
</tbody>
...
...
@@ -77,5 +118,40 @@
</form>
</div>
<script
src=
"__STATIC__/js/admin.js"
></script>
<script>
var
ar1
=
{:
json_encode
(
$cate4
)};
//后台传入服务名称
//当选择指向类时改变目标的下拉菜单
function
teacherChange
(
area
){
var
tobj
=
document
.
getElementById
(
'classobj'
);
removeAllOptions
(
tobj
);
var
option
=
document
.
createElement
(
"option"
);
option
.
text
=
"选择分类"
;
option
.
value
=
""
;
tobj
.
add
(
option
);
for
(
m
=
0
;
m
<
ar1
.
length
;
m
++
){
if
(
ar1
[
m
][
'cid'
]
==
area
&&
area
!=
''
){
var
option
=
document
.
createElement
(
"option"
);
option
.
text
=
ar1
[
m
][
'name'
];
option
.
value
=
ar1
[
m
][
'id'
];
tobj
.
add
(
option
);
}
else
if
(
area
==
''
){
var
option
=
document
.
createElement
(
"option"
);
option
.
text
=
ar1
[
m
][
'name'
];
option
.
value
=
ar1
[
m
][
'id'
];
tobj
.
add
(
option
);
}
}
}
//移除option 当中所有元素
function
removeAllOptions
(
selectbox
)
{
var
i
;
for
(
i
=
selectbox
.
options
.
length
-
1
;
i
>=
0
;
i
--
)
{
selectbox
.
remove
(
i
);
}
}
</script>
</body>
</html>
\ No newline at end of file
...
...
public/themes/admin_simpleboot3/user/webuploader.html
查看文件 @
9f2ae6e
...
...
@@ -102,7 +102,7 @@
}
var
multi
=
{
$multi
};
//是否允许同时选多个文件
var
maxFiles
=
{
$max_files
}
;
//允许上传多少文件
var
maxFiles
=
5
;
//允许上传多少文件
var
fileErrorMsg
=
{};
...
...
请
注册
或
登录
后发表评论