Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
jamesyang1999
ShopXO
提交
3fa0d80c
ShopXO
项目概览
jamesyang1999
/
ShopXO
与 Fork 源项目一致
Fork自
纵之格 / ShopXO
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
ShopXO
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
3fa0d80c
编写于
5月 15, 2020
作者:
D
devil
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
后台管理新增详情查看页面
上级
e74dcc9f
变更
18
展开全部
显示空白变更内容
内联
并排
Showing
18 changed file
with
974 addition
and
637 deletion
+974
-637
application/admin/controller/Goods.php
application/admin/controller/Goods.php
+47
-9
application/admin/controller/Order.php
application/admin/controller/Order.php
+34
-1
application/admin/controller/Orderaftersale.php
application/admin/controller/Orderaftersale.php
+32
-1
application/admin/view/default/goods/detail.html
application/admin/view/default/goods/detail.html
+100
-0
application/admin/view/default/goods/index.html
application/admin/view/default/goods/index.html
+13
-98
application/admin/view/default/order/detail.html
application/admin/view/default/order/detail.html
+248
-0
application/admin/view/default/order/index.html
application/admin/view/default/order/index.html
+17
-245
application/admin/view/default/orderaftersale/detail.html
application/admin/view/default/orderaftersale/detail.html
+114
-0
application/admin/view/default/orderaftersale/index.html
application/admin/view/default/orderaftersale/index.html
+50
-163
application/service/GoodsService.php
application/service/GoodsService.php
+6
-0
application/service/OrderAftersaleService.php
application/service/OrderAftersaleService.php
+6
-6
application/service/OrderService.php
application/service/OrderService.php
+93
-41
config/app.php
config/app.php
+1
-1
config/shopxo.sql
config/shopxo.sql
+148
-34
public/static/admin/default/css/goods.css
public/static/admin/default/css/goods.css
+9
-2
public/static/admin/default/css/order.css
public/static/admin/default/css/order.css
+9
-9
public/static/admin/default/css/orderaftersale.css
public/static/admin/default/css/orderaftersale.css
+15
-15
public/static/common/js/common.js
public/static/common/js/common.js
+32
-12
未找到文件。
application/admin/controller/Goods.php
浏览文件 @
3fa0d80c
...
...
@@ -79,7 +79,6 @@ class Goods extends Common
'm'
=>
$page
->
GetPageStarNumber
(),
'n'
=>
$number
,
'is_category'
=>
1
,
'is_admin_access'
=>
1
,
];
$ret
=
GoodsService
::
GoodsList
(
$data_params
);
...
...
@@ -101,6 +100,40 @@ class Goods extends Common
return
$this
->
fetch
();
}
/**
* 详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-08-05T08:21:54+0800
*/
public
function
Detail
()
{
// 参数
$params
=
input
();
// 条件
$where
=
GoodsService
::
GetAdminIndexWhere
(
$params
);
// 获取列表
$data_params
=
array
(
'm'
=>
0
,
'n'
=>
1
,
'where'
=>
$where
,
'is_category'
=>
1
,
);
$ret
=
GoodsService
::
GoodsList
(
$data_params
);
$data
=
(
empty
(
$ret
[
'data'
])
||
empty
(
$ret
[
'data'
][
0
]))
?
[]
:
$ret
[
'data'
][
0
];
$this
->
assign
(
'data'
,
$data
);
// 是否上下架
$this
->
assign
(
'common_is_shelves_list'
,
lang
(
'common_is_shelves_list'
));
// 参数
$this
->
assign
(
'params'
,
$params
);
return
$this
->
fetch
();
}
/**
* [SaveInfo 商品添加/编辑页面]
* @author Devil
...
...
@@ -117,8 +150,12 @@ class Goods extends Common
$data
=
[];
if
(
!
empty
(
$params
[
'id'
]))
{
// 条件
$where
=
GoodsService
::
GetAdminIndexWhere
(
$params
);
// 获取数据
$data_params
=
[
'where'
=>
[
'id'
=>
$params
[
'id'
]]
,
'where'
=>
$where
,
'm'
=>
0
,
'n'
=>
1
,
'is_photo'
=>
1
,
...
...
@@ -165,6 +202,7 @@ class Goods extends Common
$this
->
assign
(
'editor_path_type'
,
'goods'
);
// 数据
unset
(
$params
[
'id'
]);
$this
->
assign
(
'data'
,
$data
);
$this
->
assign
(
'params'
,
$params
);
return
$this
->
fetch
();
...
...
application/admin/controller/Order.php
浏览文件 @
3fa0d80c
...
...
@@ -53,7 +53,6 @@ class Order extends Common
{
// 参数
$params
=
input
();
$params
[
'admin'
]
=
$this
->
admin
;
$params
[
'user_type'
]
=
'admin'
;
// 分页
...
...
@@ -82,6 +81,7 @@ class Order extends Common
'n'
=>
$number
,
'where'
=>
$where
,
'is_public'
=>
0
,
'user_type'
=>
'admin'
,
);
$data
=
OrderService
::
OrderList
(
$data_params
);
$this
->
assign
(
'data_list'
,
$data
[
'data'
]);
...
...
@@ -118,6 +118,39 @@ class Order extends Common
return
$this
->
fetch
();
}
/**
* 详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-08-05T08:21:54+0800
*/
public
function
Detail
()
{
// 参数
$params
=
input
();
$params
[
'user_type'
]
=
'admin'
;
// 条件
$where
=
OrderService
::
OrderListWhere
(
$params
);
// 获取列表
$data_params
=
array
(
'm'
=>
0
,
'n'
=>
1
,
'where'
=>
$where
,
'is_public'
=>
0
,
'user_type'
=>
'admin'
,
);
$ret
=
OrderService
::
OrderList
(
$data_params
);
$data
=
(
empty
(
$ret
[
'data'
])
||
empty
(
$ret
[
'data'
][
0
]))
?
[]
:
$ret
[
'data'
][
0
];
$this
->
assign
(
'data'
,
$data
);
// 参数
$this
->
assign
(
'params'
,
$params
);
return
$this
->
fetch
();
}
/**
* [Delete 订单删除]
* @author Devil
...
...
application/admin/controller/Orderaftersale.php
浏览文件 @
3fa0d80c
...
...
@@ -54,7 +54,6 @@ class Orderaftersale extends Common
{
// 参数
$params
=
input
();
$params
[
'admin'
]
=
$this
->
admin
;
$params
[
'user_type'
]
=
'admin'
;
// 分页
...
...
@@ -97,6 +96,38 @@ class Orderaftersale extends Common
return
$this
->
fetch
();
}
/**
* 详情
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2019-08-05T08:21:54+0800
*/
public
function
Detail
()
{
// 参数
$params
=
input
();
$params
[
'user_type'
]
=
'admin'
;
// 条件
$where
=
OrderAftersaleService
::
OrderAftersaleListWhere
(
$params
);
// 获取列表
$data_params
=
array
(
'm'
=>
0
,
'n'
=>
1
,
'where'
=>
$where
,
'is_public'
=>
0
,
);
$ret
=
OrderAftersaleService
::
OrderAftersaleList
(
$data_params
);
$data
=
(
empty
(
$ret
[
'data'
])
||
empty
(
$ret
[
'data'
][
0
]))
?
[]
:
$ret
[
'data'
][
0
];
$this
->
assign
(
'data'
,
$data
);
// 参数
$this
->
assign
(
'params'
,
$params
);
return
$this
->
fetch
();
}
/**
* 确认
* @author Devil
...
...
application/admin/view/default/goods/detail.html
0 → 100644
浏览文件 @
3fa0d80c
{{include file="public/header" /}}
<!-- content start -->
<div
class=
"am-padding-sm"
>
{{if !empty($data)}}
<dl
class=
"dl-content"
>
<dt>
标题名称
</dt>
<dd>
<div
class=
"goods"
>
<a
href=
"{{$data.goods_url}}"
target=
"_blank"
title=
"{{$data.title}}"
>
<img
src=
"{{$data['images']}}"
class=
"am-img-thumbnail am-radius goods-images"
/>
</a>
<a
href=
"{{$data.goods_url}}"
target=
"_blank"
title=
"{{$data.title}}"
{{
if
!
empty
($
data
['
title_color
'])}}
style=
"color:{{$data.title_color}};"
{{/
if
}}
class=
"am-nowrap-initial"
>
{{$data.title}}
</a>
</div>
</dd>
<dt>
商品简述
</dt>
<dd
class=
"am-nowrap-initial"
>
{{$data.simple_desc}}
</dd>
<dt>
销售价格(元)
</dt>
<dd>
{{$data.price}}
{{if !empty($data['original_price']) and $data['original_price'] gt 0}}
<br
/><span
class=
"am-badge am-radius"
>
原价 {{$data.original_price}}
</span>
{{/if}}
</dd>
<dt>
上下架
</dt>
<dd>
{{$common_is_shelves_list[$data['is_shelves']]['name']}}
</dd>
<dt>
库存数量
</dt>
<dd>
{{$data.inventory}} {{$data.inventory_unit}}
</dd>
<dt>
最低起购数量
</dt>
<dd>
{{$data.buy_min_number}} {{$data.inventory_unit}}
</dd>
<dt>
单次最大购买数量
</dt>
<dd>
{{if $data['buy_max_number'] eq 0}}
<span
class=
"cr-ddd"
>
不限
</span>
{{else /}}
{{$data.buy_max_number}} {{$data.inventory_unit}}
{{/if}}
</dd>
<dt>
商品型号
</dt>
<dd>
{{$data.model}}
</dd>
<dt>
品牌
</dt>
<dd>
{{$data.brand_name}}
</dd>
<dt>
生产地
</dt>
<dd>
{{$data.place_origin_name}}
</dd>
<dt>
商品分类
</dt>
<dd>
{{$data.category_text}}
</dd>
<dt>
购买赠送积分
</dt>
<dd>
{{$data.give_integral}}
</dd>
<dt>
扣减库存
</dt>
<dd>
{{:lang('common_is_text_list')[$data['is_deduction_inventory']]['name']}}
</dd>
<dt>
访问次数
</dt>
<dd>
{{$data.access_count}}
</dd>
<dt>
电脑端详情
</dt>
<dd>
<div
class=
"am-scrollable-vertical am-nowrap-initial"
>
{{$data.content_web|raw}}
</div>
</dd>
<dt>
虚拟商品展示数据
</dt>
<dd>
<div
class=
"am-scrollable-vertical am-nowrap-initial"
>
{{$data.fictitious_goods_value|raw}}
</div>
</dd>
<dt>
SEO标题
</dt>
<dd>
{{$data.seo_title}}
</dd>
<dt>
SEO关键字
</dt>
<dd>
{{$data.seo_keywords}}
</dd>
<dt>
SEO描述
</dt>
<dd>
{{$data.seo_desc}}
</dd>
<dt>
创建时间
</dt>
<dd>
{{$data.add_time}}
</dd>
<dt>
更新时间
</dt>
<dd>
{{$data.upd_time}}
</dd>
</dl>
{{else /}}
<div
class=
"table-no"
><i
class=
"am-icon-warning"
></i>
没有相关数据
</div>
{{/if}}
</div>
<!-- content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
application/admin/view/default/goods/index.html
浏览文件 @
3fa0d80c
...
...
@@ -146,7 +146,6 @@
<th>
库存数量
</th>
<th>
商品型号
</th>
<th>
品牌
</th>
<th
class=
"am-text-center"
>
更多
</th>
<th
class=
"am-text-center"
>
操作
</th>
</tr>
</thead>
...
...
@@ -156,6 +155,7 @@
<tr
id=
"data-list-{{$v.id}}"
{{
if
$
v
['
is_shelves
']
eq
0}}
class=
"am-active"
{{/
if
}}
>
<td
class=
"am-text-middle"
>
{{$v.id}}
</td>
<td
class=
"am-text-middle"
>
<div
class=
"goods"
>
<a
href=
"{{$v.goods_url}}"
target=
"_blank"
title=
"{{$v.title}}"
>
<img
src=
"{{$v['images']}}"
class=
"am-img-thumbnail am-radius goods-images"
/>
</a>
...
...
@@ -163,6 +163,7 @@
{{if !empty($v['simple_desc'])}}
<p
class=
"am-text-danger am-nowrap-initial"
>
{{$v.simple_desc}}
</p>
{{/if}}
</div>
</td>
<td
class=
"am-text-middle"
>
{{$v.price}}
...
...
@@ -179,98 +180,12 @@
<td
class=
"am-text-middle"
>
{{$v.inventory}} {{$v.inventory_unit}}
</td>
<td
class=
"am-text-middle"
>
{{$v.model}}
</td>
<td
class=
"am-text-middle"
>
{{$v.brand_name}}
</td>
<td
class=
"am-text-middle"
>
<p
class=
"am-text-center xo-cursor-pr"
>
<i
class=
"am-icon-caret-down"
></i>
<span
data-am-modal=
"{target: '#my-popup{{$v.id}}'}"
>
查看更多
</span>
</p>
<div
class=
"am-popup am-radius"
id=
"my-popup{{$v.id}}"
>
<div
class=
"am-popup-inner"
>
<div
class=
"am-popup-hd"
>
<h4
class=
"am-popup-title"
>
详情内容
</h4>
<span
data-am-modal-close
class=
"am-close"
>
×
</span>
</div>
<div
class=
"am-popup-bd"
>
<dl
class=
"dl-content"
>
<dt>
标题名称
</dt>
<dd
class=
"am-nowrap-initial"
>
{{$v.title}}
</dd>
<dt>
商品简述
</dt>
<dd
class=
"am-nowrap-initial"
>
{{$v.simple_desc}}
</dd>
<dt>
销售价格(元)
</dt>
<dd>
{{$v.price}}
{{if !empty($v['original_price']) and $v['original_price'] gt 0}}
<br
/><span
class=
"am-badge am-radius"
>
原价 {{$v.original_price}}
</span>
{{/if}}
</dd>
<dt>
上下架
</dt>
<dd>
{{:lang('common_is_shelves_list')[$v['is_shelves']]['name']}}
</dd>
<dt>
库存数量
</dt>
<dd>
{{$v.inventory}} {{$v.inventory_unit}}
</dd>
<dt>
最低起购数量
</dt>
<dd>
{{$v.buy_min_number}} {{$v.inventory_unit}}
</dd>
<dt>
单次最大购买数量
</dt>
<dd>
{{if $v['buy_max_number'] eq 0}}
<span
class=
"cr-ddd"
>
不限
</span>
{{else /}}{{$v.buy_max_number}} {{$v.inventory_unit}}{{/if}}
</dd>
<dt>
商品型号
</dt>
<dd>
{{$v.model}}
</dd>
<dt>
品牌
</dt>
<dd>
{{$v.brand_name}}
</dd>
<dt>
生产地
</dt>
<dd>
{{$v.place_origin_name}}
</dd>
<dt>
商品分类
</dt>
<dd>
{{$v.category_text}}
</dd>
<dt>
购买赠送积分
</dt>
<dd>
{{$v.give_integral}}
</dd>
<dt>
扣减库存
</dt>
<dd>
{{:lang('common_is_text_list')[$v['is_deduction_inventory']]['name']}}
</dd>
<dt>
访问次数
</dt>
<dd>
{{$v.access_count}}
</dd>
<dt>
电脑端详情
</dt>
<dd>
<div
class=
"am-scrollable-vertical am-nowrap-initial"
>
{{$v.content_web|raw}}
</div>
</dd>
<dt>
虚拟商品展示数据
</dt>
<dd>
<div
class=
"am-scrollable-vertical am-nowrap-initial"
>
{{$v.fictitious_goods_value|raw}}
</div>
</dd>
<dt>
SEO标题
</dt>
<dd>
{{$v.seo_title}}
</dd>
<dt>
SEO关键字
</dt>
<dd>
{{$v.seo_keywords}}
</dd>
<dt>
SEO描述
</dt>
<dd>
{{$v.seo_desc}}
</dd>
<dt>
创建时间
</dt>
<dd>
{{$v.add_time}}
</dd>
<dt>
更新时间
</dt>
<dd>
{{$v.upd_time}}
</dd>
</dl>
</div>
</div>
</div>
</td>
<td
class=
"am-operate-grid"
>
<div
class=
"am-scrollable-vertical"
>
<button
class=
"am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup"
data-url=
"{{:MyUrl('admin/goods/detail', ['id'=>$v['id']])}}"
>
<i
class=
"am-icon-eye"
></i>
<span>
详情
</span>
</button>
<a
class=
"am-btn am-btn-secondary am-btn-xs am-radius am-btn-block"
href=
"{{:MyUrl('admin/goods/saveinfo', array_merge($params, ['id'=>$v['id']]))}}"
>
<i
class=
"am-icon-edit"
></i>
<span>
编辑
</span>
...
...
application/admin/view/default/order/detail.html
0 → 100644
浏览文件 @
3fa0d80c
{{include file="public/header" /}}
<!-- content start -->
<div
class=
"am-padding-sm"
>
{{if !empty($data)}}
<dl
class=
"dl-content"
>
<dt>
订单号
</dt>
<dd>
{{if empty($data['order_no'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.order_no}}{{/if}}
</dd>
<dt>
订单模式
</dt>
<dd>
{{if empty($data['order_model_name'])}}
<span
class=
"cr-ddd"
>
未知
</span>
{{else /}}
<span
class=
"am-badge am-badge-primary am-radius"
title=
"订单模式"
>
{{$data.order_model_name}}
</span>
{{/if}}
</dd>
<dt>
客户端类型
</dt>
<dd>
{{if empty($data['client_type_name'])}}
<span
class=
"cr-ddd"
>
未知
</span>
{{else /}}
<span
class=
"am-badge am-badge-secondary am-radius"
title=
"客户端类型"
>
{{$data.client_type_name}}
</span>
{{/if}}
</dd>
<dt>
基础信息
</dt>
<dd>
{{foreach $data.items as $vs}}
<div
class=
"goods-item"
>
<div
class=
"base"
>
<a
href=
"{{:MyUrl('index/goods/index', ['id'=>$vs['goods_id']])}}"
target=
"_blank"
title=
"{{$vs.title}}"
>
<img
src=
"{{$vs['images']}}"
class=
"am-img-thumbnail am-radius goods-images"
/>
</a>
<a
href=
"{{:MyUrl('index/goods/index', ['id'=>$vs['goods_id']])}}"
target=
"_blank"
title=
"{{$vs.title}}"
{{
if
!
empty
($
vs
['
title_color
'])}}
style=
"color:{{$vs.title_color}};"
{{/
if
}}
class=
"am-nowrap-initial"
>
{{$vs.title}}
</a>
</div>
<div
class=
"other"
>
{{if !empty($vs['model'])}}
<span
class=
"am-fl am-text-xs"
>
型号:{{$vs.model}}
</span>
{{/if}}
{{if !empty($vs['spec_text'])}}
<span
class=
"am-fl am-text-xs"
>
规格:{{$vs.spec_text}}
</span>
{{/if}}
{{if !empty($vs['spec_weight']) and $vs['spec_weight'] gt 0}}
<span
class=
"am-fl am-text-xs"
>
重量:{{$vs.spec_weight}}
</span>
{{/if}}
{{if !empty($vs['spec_coding'])}}
<span
class=
"am-fl am-text-xs"
>
编码:{{$vs.spec_coding}}
</span>
{{/if}}
{{if $vs['returned_quantity'] gt 0 or $vs['refund_price'] gt 0}}
<span
class=
"am-text-danger am-fr am-margin-left-sm"
>
已退 {{$vs.returned_quantity}} / {{$vs.refund_price}}
</span>
{{/if}}
<span
class=
"am-fr"
>
{{$vs.price}}x{{$vs.buy_number}}
</span>
</div>
<hr
data-am-widget=
"divider"
class=
"am-divider am-divider-dashed am-margin-vertical-0"
/>
</div>
{{/foreach}}
<div
class=
"am-margin-top-sm"
>
{{$data.describe}}
</div>
</dd>
<dt>
用户信息
</dt>
<dd
class=
"user-info"
>
{{if !empty($data['user'])}}
<img
src=
"{{$data.user.avatar}}"
alt=
"{{$data.user.user_name_view}}"
class=
"am-img-thumbnail am-radius am-align-left"
/>
<ul
class=
"user-base"
>
<li>
名称:{{if empty($data['user']['username'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$data.user.username}}{{/if}}
</li>
<li>
昵称:{{if empty($data['user']['nickname'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$data.user.nickname}}{{/if}}
</li>
<li>
手机:{{if empty($data['user']['mobile'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$data.user.mobile}}{{/if}}
</li>
<li>
邮箱:{{if empty($data['user']['email'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$data.user.email}}{{/if}}
</li>
</ul>
{{else /}}
用户信息异常
{{/if}}
</dd>
{{if in_array($data['order_model'], [0,2])}}
<dt>
地址信息
</dt>
<dd>
{{if !empty($data['address_data'])}}
{{$data.address_data.name}}
<br
/>
{{$data.address_data.tel}}
<br
/>
{{$data.address_data.province_name}}
{{$data.address_data.city_name}}
{{$data.address_data.county_name}}
{{$data.address_data.address}}
{{else /}}
<span
class=
"cr-ddd"
>
无信息
</span>
{{/if}}
</dd>
{{/if}}
{{if $data['order_model'] eq 2}}
<dt>
取货信息
</dt>
<dd>
{{if !empty($data['extraction_data'])}}
<p>
<span>
取货码:
</span>
{{if empty($data['extraction_data']['code'])}}
<span
class=
"am-text-danger"
>
取货码不存在、请联系管理员
</span>
{{else /}}
<span
class=
"am-badge am-badge-success am-radius"
>
{{$data.extraction_data.code}}
</span>
{{/if}}
</p>
{{if !empty($data['extraction_data']['images'])}}
<p
class=
"am-margin-top-xs"
>
<img
class=
"am-img-thumbnail"
src=
"{{$data.extraction_data.images}}"
alt=
"取货码"
/>
</p>
{{/if}}
{{else /}}
<span
class=
"cr-ddd"
>
无信息
</span>
{{/if}}
</dd>
{{/if}}
{{if $data['order_model'] eq 3}}
<dt>
密钥信息
</dt>
<dd>
<ul
class=
"am-list am-margin-bottom-0 fictitious-container"
>
{{foreach $data.items as $goods}}
<li
class=
"am-g am-list-item-desced am-list-item-thumbed am-list-item-thumb-left"
>
<div
class=
"am-u-sm-2 am-list-thumb"
>
<img
src=
"{{$goods.images}}"
alt=
"{{$goods.title}}"
class=
"am-img-thumbnail am-radius"
/>
</div>
<div
class=
"am-u-sm-10 am-list-item-text"
>
{{if empty($goods['fictitious_goods_value'])}}
<span>
未配置数据
</span>
{{else /}}
{{$goods.fictitious_goods_value|raw}}
{{/if}}
</div>
</li>
{{/foreach}}
</ul>
</dd>
{{/if}}
<dt>
快递信息
</dt>
<dd>
{{if empty($data['express_name'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.express_name}}
<br
/>
{{$data.express_number}}{{/if}}
</dd>
<dt>
支付状态
</dt>
<dd>
{{if empty($data['pay_status_name'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.pay_status_name}}{{/if}}
</dd>
<dt>
订单状态
</dt>
<dd>
{{if empty($data['status_name'])}}
<span
class=
"cr-ddd"
>
未设置
</span>
{{else /}}{{$data.status_name}}{{/if}}
</dd>
<dt>
支付方式
</dt>
<dd>
{{if empty($data['payment_name'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.payment_name}}{{/if}}
</dd>
<dt>
用户备注
</dt>
<dd>
{{if empty($data['user_note'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.user_note}}{{/if}}
</dd>
<dt>
订单金额(元)
</dt>
<dd>
{{if empty($data['price'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}
金额:{{$data.price}}
<br
/>
增加:{{$data.increase_price}}
<br
/>
优惠:{{$data.preferential_price}}
<br
/>
总价:{{$data.total_price}}
<br
/>
支付:{{$data.pay_price}}
<br
/>
退款:{{if $data['refund_price'] gt 0}}
<span
class=
"am-text-danger"
>
{{$data.refund_price}}
</span>
{{else /}}{{$data.refund_price}}{{/if}}
{{/if}}
</dd>
<dt>
扩展数据
</dt>
<dd>
{{if empty($data['extension_data'])}}
<span
class=
"cr-ddd"
>
无
</span>
{{else /}}
{{foreach $data.extension_data as $extk=>$ext}}
{{if $extk gt 0}}
<br
/>
{{/if}}
{{$ext.name}} [{{$ext.tips}}]
{{/foreach}}
{{/if}}
</dd>
<dt>
最新售后
</dt>
<dd>
{{if empty($data['aftersale_first'])}}
<span
class=
"cr-ddd"
>
无
</span>
{{else /}}
状态:{{$data.aftersale_first.status_text}}
<br
/>
类型:{{$data.aftersale_first.type_text}}
<br
/>
金额:
<strong
class=
"am-text-danger"
>
{{$data.aftersale_first.price}}
</strong><br
/>
数量:{{$data.aftersale_first.number}}
<br
/>
原因:{{$data.aftersale_first.reason}}
{{/if}}
</dd>
<dt>
购买总数
</dt>
<dd>
{{if empty($data['buy_number_count'])}}
<span
class=
"cr-ddd"
>
未知
</span>
{{else /}}{{$data.buy_number_count}}{{/if}}
</dd>
<dt>
退货总数
</dt>
<dd>
{{if empty($data['returned_quantity'])}}
<span
class=
"cr-ddd"
>
未退货
</span>
{{else /}}{{$data.returned_quantity}}{{/if}}
</dd>
<dt>
退款金额
</dt>
<dd>
{{if empty($data['refund_price']) or $data['refund_price'] elt 0.00}}
<span
class=
"cr-ddd"
>
未退款
</span>
{{else /}}
<span
class=
"am-text-danger"
>
{{$data.refund_price}}{{/if}}
</span></dd>
{{if $data['order_model'] eq 2}}
<dt>
自提取货码
</dt>
<dd>
{{if empty($data['extraction_code'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.extraction_code}}{{/if}}
</dd>
{{/if}}
<dt>
确认时间
</dt>
<dd>
{{if empty($data['confirm_time'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.confirm_time}}{{/if}}
</dd>
<dt>
支付时间
</dt>
<dd>
{{if empty($data['pay_time'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.pay_time}}{{/if}}
</dd>
<dt>
发货时间
</dt>
<dd>
{{if empty($data['delivery_time'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.delivery_time}}{{/if}}
</dd>
<dt>
完成时间
</dt>
<dd>
{{if empty($data['collect_time'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.collect_time}}{{/if}}
</dd>
<dt>
取消时间
</dt>
<dd>
{{if empty($data['cancel_time'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.cancel_time}}{{/if}}
</dd>
<dt>
关闭时间
</dt>
<dd>
{{if empty($data['close_time'])}}
<span
class=
"cr-ddd"
>
未填写
</span>
{{else /}}{{$data.close_time}}{{/if}}
</dd>
<dt>
创建时间
</dt>
<dd>
{{$data.add_time}}
</dd>
<dt>
更新时间
</dt>
<dd>
{{$data.upd_time}}
</dd>
</dl>
{{else /}}
<div
class=
"table-no"
><i
class=
"am-icon-warning"
></i>
没有相关数据
</div>
{{/if}}
</div>
<!-- content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
application/admin/view/default/order/index.html
浏览文件 @
3fa0d80c
此差异已折叠。
点击以展开。
application/admin/view/default/orderaftersale/detail.html
0 → 100644
浏览文件 @
3fa0d80c
{{include file="public/header" /}}
<!-- content start -->
<div
class=
"am-padding-sm"
>
{{if !empty($data)}}
<dl
class=
"dl-content"
>
<dt>
商品信息
</dt>
<dd>
<div
class=
"goods-detail"
>
<a
href=
"{{$data.order_data.items.goods_url}}"
target=
"_blank"
>
<img
src=
"{{$data.order_data.items.images}}"
class=
"am-img-thumbnail am-radius"
/>
</a>
<div
class=
"goods-base"
>
<a
href=
"{{$data.order_data.items.goods_url}}"
target=
"_blank"
class=
"am-nowrap-initial am-text-truncate-2 goods-title"
>
{{$data.order_data.items.title}}
</a>
{{if !empty($data.order_data.items.spec)}}
<ul
class=
"goods-spec am-margin-top-xs"
>
{{foreach $data.order_data.items.spec as $spec}}
<li>
{{$spec.type}}:{{$spec.value}}
</li>
{{/foreach}}
</ul>
{{/if}}
</div>
</div>
{{if $data.order_data.items.original_price gt 0}}
<p
class=
"original-price"
>
{{$price_symbol}}{{$data.order_data.items.original_price}}
</p>
{{/if}}
<p
class=
"line-price"
>
{{$price_symbol}}{{$data.order_data.items.price}} x {{$data.order_data.items.buy_number}}
</p>
</dd>
<dt>
用户信息
</dt>
<dd
class=
"user-info"
>
{{if !empty($data['user'])}}
<img
src=
"{{$data.user.avatar}}"
alt=
"{{$data.user.user_name_view}}"
class=
"am-img-thumbnail am-radius am-align-left"
/>
<ul
class=
"user-base"
>
<li>
名称:{{if empty($data['user']['username'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$data.user.username}}{{/if}}
</li>
<li>
昵称:{{if empty($data['user']['nickname'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$data.user.nickname}}{{/if}}
</li>
<li>
手机:{{if empty($data['user']['mobile'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$data.user.mobile}}{{/if}}
</li>
<li>
邮箱:{{if empty($data['user']['email'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$data.user.email}}{{/if}}
</li>
</ul>
{{else /}}
用户信息异常
{{/if}}
</dd>
<dt>
申请信息
</dt>
<dd>
类型:{{$data.type_text}}
<br
/>
原因:{{$data.reason}}
<br
/>
数量:{{$data.number}}
<br
/>
金额:
<span
class=
"am-text-danger"
>
{{$price_symbol}}{{$data.price}}
</span><br
/>
说明:{{$data.msg}}
<br
/>
时间:{{$data.apply_time_time}}
</dd>
<dt>
凭证
</dt>
<dd>
{{if !empty($data['images'])}}
{{foreach $data.images as $img}}
<a
href=
"{{$img}}"
target=
"_blank"
>
<img
src=
"{{$img}}"
class=
"am-img-thumbnail"
width=
"80"
height=
"80"
/>
</a>
{{/foreach}}
{{/if}}
</dd>
<dt>
状态
</dt>
<dd>
<p>
{{$data.status_text}}
</p>
{{if $data['status'] eq 3 and !empty($data['refundment_text'])}}
<span
class=
"am-badge am-badge-success am-margin-top-xs"
>
{{$data.refundment_text}}
</span>
{{/if}}
</dd>
<dt>
拒绝原因
</dt>
<dd
class=
"am-text-danger"
>
{{$data.refuse_reason}}
</dd>
<dt>
快递信息
</dt>
<dd>
{{if $data['type'] eq 1 and in_array($data['status'], [2,3])}}
快递:{{$data.express_name}}
<br
/>
单号:{{$data.express_number}}
<br
/>
时间:{{$data.delivery_time_time}}
{{/if}}
</dd>
<dt>
申请时间
</dt>
<dd>
{{$data.apply_time_time}}
</dd>
<dt>
确认时间
</dt>
<dd>
{{$data.confirm_time_time}}
</dd>
<dt>
退货时间
</dt>
<dd>
{{$data.delivery_time_time}}
</dd>
<dt>
审核时间
</dt>
<dd>
{{$data.audit_time_time}}
</dd>
<dt>
取消时间
</dt>
<dd>
{{$data.cancel_time_time}}
</dd>
<dt>
添加时间
</dt>
<dd>
{{$data.add_time_time}}
</dd>
<dt>
更新时间
</dt>
<dd>
{{$data.upd_time_time}}
</dd>
</dl>
{{else /}}
<div
class=
"table-no"
><i
class=
"am-icon-warning"
></i>
没有相关数据
</div>
{{/if}}
</div>
<!-- content end -->
<!-- footer start -->
{{include file="public/footer" /}}
<!-- footer end -->
\ No newline at end of file
application/admin/view/default/orderaftersale/index.html
浏览文件 @
3fa0d80c
...
...
@@ -107,7 +107,6 @@
<th
class=
"am-grid-sm"
>
凭证
</th>
<th>
状态
</th>
<th
class=
"am-grid-sm"
>
快递信息
</th>
<th
class=
"am-text-center"
>
更多
</th>
<th
class=
"am-text-center"
>
操作
</th>
</tr>
</thead>
...
...
@@ -196,125 +195,12 @@
时间:{{$v.delivery_time_time}}
{{/if}}
</td>
<td
class=
"am-text-middle"
>
<p
class=
"am-text-center xo-cursor-pr"
>
<i
class=
"am-icon-caret-down"
></i>
<span
data-am-modal=
"{target: '#my-popup{{$v.id}}'}"
>
查看更多
</span>
</p>
<div
class=
"am-popup am-radius"
id=
"my-popup{{$v.id}}"
>
<div
class=
"am-popup-inner"
>
<div
class=
"am-popup-hd"
>
<h4
class=
"am-popup-title"
>
详情内容
</h4>
<span
data-am-modal-close
class=
"am-close"
>
×
</span>
</div>
<div
class=
"am-popup-bd"
>
<dl
class=
"dl-content"
>
<dt>
商品信息
</dt>
<dd>
<div
class=
"goods-detail"
>
<a
href=
"{{$v.order_data.items.goods_url}}"
target=
"_blank"
>
<img
src=
"{{$v.order_data.items.images}}"
class=
"am-img-thumbnail am-radius"
/>
</a>
<div
class=
"goods-base"
>
<a
href=
"{{$v.order_data.items.goods_url}}"
target=
"_blank"
class=
"am-nowrap-initial am-text-truncate-2 goods-title"
>
{{$v.order_data.items.title}}
</a>
{{if !empty($v.order_data.items.spec)}}
<ul
class=
"goods-spec am-margin-top-xs"
>
{{foreach $v.order_data.items.spec as $spec}}
<li>
{{$spec.type}}:{{$spec.value}}
</li>
{{/foreach}}
</ul>
{{/if}}
</div>
</div>
{{if $v.order_data.items.original_price gt 0}}
<p
class=
"original-price"
>
{{$price_symbol}}{{$v.order_data.items.original_price}}
</p>
{{/if}}
<p
class=
"line-price"
>
{{$price_symbol}}{{$v.order_data.items.price}} x {{$v.order_data.items.buy_number}}
</p>
</dd>
<dt>
用户信息
</dt>
<dd
class=
"user-info"
>
{{if !empty($v['user'])}}
<img
src=
"{{$v.user.avatar}}"
alt=
"{{$v.user.user_name_view}}"
class=
"am-img-thumbnail am-radius am-align-left"
/>
<ul
class=
"user-base"
>
<li>
名称:{{if empty($v['user']['username'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$v.user.username}}{{/if}}
</li>
<li>
昵称:{{if empty($v['user']['nickname'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$v.user.nickname}}{{/if}}
</li>
<li>
手机:{{if empty($v['user']['mobile'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$v.user.mobile}}{{/if}}
</li>
<li>
邮箱:{{if empty($v['user']['email'])}}
<span
class=
"cr-ccc"
>
未填写
</span>
{{else /}}{{$v.user.email}}{{/if}}
</li>
</ul>
{{else /}}
用户信息异常
{{/if}}
</dd>
<dt>
申请信息
</dt>
<dd>
类型:{{$v.type_text}}
<br
/>
原因:{{$v.reason}}
<br
/>
数量:{{$v.number}}
<br
/>
金额:
<span
class=
"am-text-danger"
>
{{$price_symbol}}{{$v.price}}
</span><br
/>
说明:{{$v.msg}}
<br
/>
时间:{{$v.apply_time_time}}
</dd>
<dt>
凭证
</dt>
<dd>
{{if !empty($v['images'])}}
{{foreach $v.images as $img}}
<a
href=
"{{$img}}"
target=
"_blank"
>
<img
src=
"{{$img}}"
class=
"am-img-thumbnail"
width=
"80"
height=
"80"
/>
</a>
{{/foreach}}
{{/if}}
</dd>
<dt>
状态
</dt>
<dd>
<p>
{{$v.status_text}}
</p>
{{if $v['status'] eq 3 and !empty($v['refundment_text'])}}
<span
class=
"am-badge am-badge-success am-margin-top-xs"
>
{{$v.refundment_text}}
</span>
{{/if}}
</dd>
<dt>
拒绝原因
</dt>
<dd
class=
"am-text-danger"
>
{{$v.refuse_reason}}
</dd>
<dt>
快递信息
</dt>
<dd>
{{if $v['type'] eq 1 and in_array($v['status'], [2,3])}}
快递:{{$v.express_name}}
<br
/>
单号:{{$v.express_number}}
<br
/>
时间:{{$v.delivery_time_time}}
{{/if}}
</dd>
<dt>
申请时间
</dt>
<dd>
{{$v.apply_time_time}}
</dd>
<dt>
确认时间
</dt>
<dd>
{{$v.confirm_time_time}}
</dd>
<dt>
退货时间
</dt>
<dd>
{{$v.delivery_time_time}}
</dd>
<dt>
审核时间
</dt>
<dd>
{{$v.audit_time_time}}
</dd>
<dt>
取消时间
</dt>
<dd>
{{$v.cancel_time_time}}
</dd>
<dt>
添加时间
</dt>
<dd>
{{$v.add_time_time}}
</dd>
<dt>
更新时间
</dt>
<dd>
{{$v.upd_time_time}}
</dd>
</dl>
</div>
</div>
</div>
</td>
<td
class=
"am-operate-grid"
>
<div
class=
"am-scrollable-vertical"
>
<button
class=
"am-btn am-btn-default am-btn-xs am-radius am-btn-block submit-popup"
data-url=
"{{:MyUrl('admin/orderaftersale/detail', ['id'=>$v['id']])}}"
>
<i
class=
"am-icon-eye"
></i>
<span>
详情
</span>
</button>
{{if $v['status'] eq 0 and $v['type'] eq 1}}
<button
type=
"button"
class=
"am-btn am-btn-secondary am-btn-xs am-radius am-btn-block submit-ajax"
data-url=
"{{:MyUrl('admin/orderaftersale/confirm')}}"
data-id=
"{{$v.id}}"
data-view=
"reload"
>
<i
class=
"am-icon-check"
></i>
...
...
@@ -366,6 +252,7 @@
}
}
{{/php}}
</div>
</td>
</tr>
{{/foreach}}
...
...
application/service/GoodsService.php
浏览文件 @
3fa0d80c
...
...
@@ -979,6 +979,12 @@ class GoodsService
[
'is_delete_time'
,
'='
,
0
],
];
// id
if
(
!
empty
(
$params
[
'id'
]))
{
$where
[]
=
[
'id'
,
'='
,
intval
(
$params
[
'id'
])];
}
// 模糊
if
(
!
empty
(
$params
[
'keywords'
]))
{
...
...
application/service/OrderAftersaleService.php
浏览文件 @
3fa0d80c
...
...
@@ -390,9 +390,9 @@ class OrderAftersaleService
$data
=
Db
::
name
(
'OrderAftersale'
)
->
field
(
$field
)
->
where
(
$where
)
->
limit
(
$m
,
$n
)
->
order
(
$order_by
)
->
select
();
if
(
!
empty
(
$data
))
{
$
common_order_aftersale_
type_list
=
lang
(
'common_order_aftersale_type_list'
);
$
common_order_aftersale_
status_list
=
lang
(
'common_order_aftersale_status_list'
);
$
common_order_aftersale_
refundment_list
=
lang
(
'common_order_aftersale_refundment_list'
);
$type_list
=
lang
(
'common_order_aftersale_type_list'
);
$status_list
=
lang
(
'common_order_aftersale_status_list'
);
$refundment_list
=
lang
(
'common_order_aftersale_refundment_list'
);
foreach
(
$data
as
&
$v
)
{
// 订单商品
...
...
@@ -409,13 +409,13 @@ class OrderAftersaleService
}
// 类型
$v
[
'type_text'
]
=
$common_order_aftersale_type_list
[
$v
[
'type'
]][
'name'
]
;
$v
[
'type_text'
]
=
array_key_exists
(
$v
[
'type'
],
$type_list
)
?
$type_list
[
$v
[
'type'
]][
'name'
]
:
''
;
// 状态
$v
[
'status_text'
]
=
$common_order_aftersale_status_list
[
$v
[
'status'
]][
'name'
]
;
$v
[
'status_text'
]
=
array_key_exists
(
$v
[
'status'
],
$status_list
)
?
$status_list
[
$v
[
'status'
]][
'name'
]
:
''
;
// 退款方式
$v
[
'refundment_text'
]
=
$common_order_aftersale_refundment_list
[
$v
[
'refundment'
]][
'name'
]
;
$v
[
'refundment_text'
]
=
array_key_exists
(
$v
[
'refundment'
],
$refundment_list
)
?
$refundment_list
[
$v
[
'refundment'
]][
'name'
]
:
''
;
// 图片
if
(
!
empty
(
$v
[
'images'
]))
...
...
application/service/OrderService.php
浏览文件 @
3fa0d80c
...
...
@@ -892,7 +892,82 @@ class OrderService
// 订单详情
if
(
$is_items
==
1
)
{
$items
=
Db
::
name
(
'OrderDetail'
)
->
where
([
'order_id'
=>
$v
[
'id'
]])
->
select
();
$items
=
self
::
OrderItemList
(
$v
[
'id'
],
$v
[
'order_model'
],
$v
[
'status'
],
$v
[
'pay_status'
],
$is_orderaftersale
);
$v
[
'items'
]
=
$items
;
$v
[
'items_count'
]
=
count
(
$items
);
// 描述
$v
[
'describe'
]
=
'共'
.
$v
[
'buy_number_count'
]
.
'件 合计:'
.
config
(
'shopxo.price_symbol'
)
.
$v
[
'total_price'
]
.
'元'
;
}
// 管理员读取
if
(
$user_type
==
'admin'
)
{
// 获取最新一条售后订单
$v
[
'aftersale_first'
]
=
self
::
OrderAftersaleFirst
(
$v
[
'id'
]);
}
// 订单处理后钩子
$hook_name
=
'plugins_service_order_handle_end'
;
$ret
=
HookReturnHandle
(
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'params'
=>
&
$params
,
'order'
=>
&
$v
,
'order_id'
=>
$v
[
'id'
]
]));
if
(
isset
(
$ret
[
'code'
])
&&
$ret
[
'code'
]
!=
0
)
{
return
$ret
;
}
}
}
return
DataReturn
(
'success'
,
0
,
$data
);
}
/**
* 订单最新一条售后
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-05-15
* @desc description
* @param [int] $order_id [订单 id]
*/
public
static
function
OrderAftersaleFirst
(
$order_id
)
{
$data
=
Db
::
name
(
'OrderAftersale'
)
->
where
([
'order_id'
=>
$order_id
])
->
field
(
'status,type,number,price,reason,msg'
)
->
order
(
'id desc'
)
->
find
();
if
(
!
empty
(
$data
))
{
$type_list
=
lang
(
'common_order_aftersale_type_list'
);
$status_list
=
lang
(
'common_order_aftersale_status_list'
);
// 类型
$data
[
'type_text'
]
=
array_key_exists
(
$data
[
'type'
],
$type_list
)
?
$type_list
[
$data
[
'type'
]][
'name'
]
:
''
;
// 状态
$data
[
'status_text'
]
=
array_key_exists
(
$data
[
'status'
],
$status_list
)
?
$status_list
[
$data
[
'status'
]][
'name'
]
:
''
;
}
return
$data
;
}
/**
* 订单详情列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @date 2020-05-15
* @desc description
* @param [int] $order_id [订单 id]
* @param [int] $order_model [订单模式]
* @param [int] $status [订单状态]
* @param [int] $pay_status [支付状态]
* @param [int] $is_orderaftersale [是否读取订单售后(0否, 1是)]
*/
public
static
function
OrderItemList
(
$order_id
,
$order_model
,
$status
,
$pay_status
,
$is_orderaftersale
=
0
)
{
$items
=
Db
::
name
(
'OrderDetail'
)
->
where
([
'order_id'
=>
$order_id
])
->
select
();
if
(
!
empty
(
$items
))
{
foreach
(
$items
as
&
$vs
)
...
...
@@ -919,7 +994,7 @@ class OrderService
}
// 虚拟销售商品 - 虚拟信息处理
if
(
$v
[
'order_model'
]
==
3
&&
$v
[
'pay_status'
]
==
1
&&
in_array
(
$v
[
'status'
]
,
[
3
,
4
]))
if
(
$order_model
==
3
&&
$pay_status
==
1
&&
in_array
(
$status
,
[
3
,
4
]))
{
$vs
[
'fictitious_goods_value'
]
=
Db
::
name
(
'OrderFictitiousValue'
)
->
where
([
'order_detail_id'
=>
$vs
[
'id'
]])
->
value
(
'value'
);
}
...
...
@@ -929,34 +1004,11 @@ class OrderService
{
$orderaftersale
=
Db
::
name
(
'OrderAftersale'
)
->
where
([
'order_detail_id'
=>
$vs
[
'id'
]])
->
order
(
'id desc'
)
->
find
();
$vs
[
'orderaftersale'
]
=
$orderaftersale
;
$vs
[
'orderaftersale_btn_text'
]
=
self
::
OrderAftersaleStatusBtnText
(
$v
[
'status'
]
,
$orderaftersale
);
$vs
[
'orderaftersale_btn_text'
]
=
self
::
OrderAftersaleStatusBtnText
(
$status
,
$orderaftersale
);
}
}
}
$v
[
'items'
]
=
$items
;
$v
[
'items_count'
]
=
count
(
$items
);
// 描述
$v
[
'describe'
]
=
'共'
.
$v
[
'buy_number_count'
]
.
'件 合计:'
.
config
(
'shopxo.price_symbol'
)
.
$v
[
'total_price'
]
.
'元'
;
}
// 订单处理后钩子
$hook_name
=
'plugins_service_order_handle_end'
;
$ret
=
HookReturnHandle
(
Hook
::
listen
(
$hook_name
,
[
'hook_name'
=>
$hook_name
,
'is_backend'
=>
true
,
'params'
=>
&
$params
,
'order'
=>
&
$v
,
'order_id'
=>
$v
[
'id'
]
]));
if
(
isset
(
$ret
[
'code'
])
&&
$ret
[
'code'
]
!=
0
)
{
return
$ret
;
}
}
}
return
DataReturn
(
'success'
,
0
,
$data
);
return
$items
;
}
/**
...
...
config/app.php
浏览文件 @
3fa0d80c
...
...
@@ -19,7 +19,7 @@ return [
// 应用地址
'app_host'
=>
''
,
// 应用调试模式
'app_debug'
=>
fals
e
,
'app_debug'
=>
tru
e
,
// 应用Trace
'app_trace'
=>
false
,
// 是否支持多模块
...
...
config/shopxo.sql
浏览文件 @
3fa0d80c
此差异已折叠。
点击以展开。
public/static/admin/default/css/goods.css
浏览文件 @
3fa0d80c
/**
* 列表
*/
.goods
-list.am-table
.goods-images
{
.goods
.goods-images
{
width
:
60px
;
height
:
60px
;
float
:
left
;
margin-right
:
5px
;
}
.goods-list.am-table
dl
img
{
.goods
{
overflow
:
hidden
;
}
/**
* 详情
*/
.dl-content
img
{
max-width
:
100%
;
}
...
...
public/static/admin/default/css/order.css
浏览文件 @
3fa0d80c
/**
* 列表
*
商品
列表
*/
.
am-table
.
goods-images
{
width
:
60px
;
height
:
60px
;
float
:
left
;
margin-right
:
5px
;
}
.
am-table
.
goods-item
,
.
am-table
.
goods-item
.base
,
.
am-table
.
goods-item
.other
{
overflow
:
hidden
;
}
.goods-images
{
width
:
60px
;
height
:
60px
;
float
:
left
;
margin-right
:
5px
;
}
.goods-item
,
.goods-item
.base
,
.goods-item
.other
{
overflow
:
hidden
;
}
/**
* 业务弹窗
...
...
@@ -28,7 +28,7 @@
/**
* 用户信息
*/
.
content-right
.
user-info
img
{
.user-info
img
{
max-width
:
35px
;
max-height
:
35px
;
margin
:
0
5px
2px
0
;
...
...
public/static/admin/default/css/orderaftersale.css
浏览文件 @
3fa0d80c
/**
* 商品列表
*/
.
content-right
.
goods-detail
img
{
width
:
60px
;
height
:
60px
;
position
:
absolute
;
left
:
0
;
}
.
content-right
.
goods-detail
{
position
:
relative
;
min-height
:
65px
;
overflow
:
hidden
;
}
.
content-right
.
goods-title
{
max-height
:
36px
;
height
:
auto
;
}
.
content-right
.
goods-base
{
float
:
left
;
top
:
0
;
margin-left
:
65px
;
}
.
content-right
.
goods-spec
li
{
color
:
#888
;
line-height
:
16px
;
}
.
content-right
.
original-price
{
color
:
#9c9c9c
;
text-decoration
:
line-through
;
}
.goods-detail
img
{
width
:
60px
;
height
:
60px
;
position
:
absolute
;
left
:
0
;
}
.goods-detail
{
position
:
relative
;
min-height
:
65px
;
overflow
:
hidden
;
}
.goods-title
{
max-height
:
36px
;
height
:
auto
;
}
.goods-base
{
float
:
left
;
top
:
0
;
margin-left
:
65px
;
}
.goods-spec
li
{
color
:
#888
;
line-height
:
16px
;
}
.original-price
{
color
:
#9c9c9c
;
text-decoration
:
line-through
;
}
/**
* 用户信息
*/
.
content-right
.
user-info
img
{
.user-info
img
{
max-width
:
35px
;
max-height
:
35px
;
margin
:
0
5px
2px
0
;
...
...
@@ -21,18 +21,18 @@
* 列表
*/
@media
only
screen
and
(
min-width
:
640px
)
{
.content-right
table
.am-table
tr
.row-goods
{
width
:
25%
;
}
.content-right
table
.am-table
tr
.row-user-info
{
width
:
15%
;
}
.content-right
table
.am-table
tr
.row-apply
{
width
:
25%
;
}
.content-right
table
.am-table
tr
.row-more
{
width
:
80px
;
}
.content-right
table
.am-table
tr
.row-operation
{
width
:
85px
;
}
table
.am-table
tr
.row-goods
{
width
:
25%
;
}
table
.am-table
tr
.row-user-info
{
width
:
15%
;
}
table
.am-table
tr
.row-apply
{
width
:
25%
;
}
table
.am-table
tr
.row-more
{
width
:
80px
;
}
table
.am-table
tr
.row-operation
{
width
:
85px
;
}
}
@media
only
screen
and
(
max-width
:
640px
)
{
.content-right
table
.am-table
tr
.row-apply
{
width
:
50%
;
}
.content-right
table
.am-table
tr
.row-operation
,
.content-right
table
.am-table
tr
.row-more
{
width
:
75px
;
}
table
.am-table
tr
.row-apply
{
width
:
50%
;
}
table
.am-table
tr
.row-operation
,
table
.am-table
tr
.row-more
{
width
:
75px
;
}
}
.content-right
table
.am-table
.am-slider
{
table
.am-table
.am-slider
{
width
:
100px
;
max-height
:
108px
;
overflow
:
hidden
;
...
...
public/static/common/js/common.js
浏览文件 @
3fa0d80c
...
...
@@ -1586,11 +1586,18 @@ function TableContainerInit()
$
(
this
).
find
(
'
>th:last
'
).
css
(
'
right
'
,
right
);
// 最后一列自定义宽度->默认宽度,设置倒数第二列 padding-right
var
last_width
=
$
(
this
).
find
(
'
>th
'
).
last
().
data
(
'
width
'
)
||
$
(
this
).
find
(
'
>th
'
).
last
().
innerWidth
(
);
var
last_width
=
parseInt
(
$
(
this
).
find
(
'
>th
'
).
last
().
attr
(
'
data-width
'
)
||
$
(
this
).
find
(
'
>th
'
).
last
().
innerWidth
()
);
if
(
last_width
>
0
)
{
$
(
this
).
find
(
'
>th
'
).
eq
(
-
2
).
css
(
'
min-width
'
,
((
$
(
this
).
find
(
'
>th
'
).
eq
(
-
2
).
data
(
'
width
'
)
||
0
)
+
last_width
)
+
'
px
'
);
// 倒数第二个元素的宽度、默认读取属性宽度
var
last_width2
=
parseInt
(
$
(
this
).
find
(
'
>th
'
).
eq
(
-
2
).
attr
(
'
data-width
'
)
||
$
(
this
).
find
(
'
>th
'
).
eq
(
-
2
).
innerWidth
());
// 设置宽度、倒数第二个元素的宽度+最后一个元素的宽度
$
(
this
).
find
(
'
>th
'
).
eq
(
-
2
).
css
(
'
min-width
'
,
last_width2
+
last_width
+
'
px
'
);
// 设置宽度、最后一个元素的宽度+10
$
(
this
).
find
(
'
>th
'
).
eq
(
-
2
).
css
(
'
padding-right
'
,
(
last_width
+
10
)
+
'
px
'
);
// 设置属性数据
$
(
this
).
find
(
'
>th
'
).
eq
(
-
2
).
attr
(
'
data-width
'
,
last_width2
);
$
(
this
).
find
(
'
>th
'
).
last
().
attr
(
'
data-width
'
,
last_width
);
}
}
...
...
@@ -1649,9 +1656,10 @@ function TableContainerInit()
$
(
this
).
find
(
'
>td:last
'
).
css
(
'
right
'
,
right
);
// 最后一列自定义宽度->默认宽度,设置倒数第二列 padding-right
var
last_width
=
$
(
this
).
find
(
'
>td
'
).
last
().
data
(
'
width
'
)
||
$
(
this
).
find
(
'
>td
'
).
last
().
innerWidth
(
);
var
last_width
=
parseInt
(
$
(
this
).
find
(
'
>td
'
).
last
().
attr
(
'
data-width
'
)
||
$
(
this
).
find
(
'
>td
'
).
last
().
innerWidth
()
);
if
(
last_width
>
0
)
{
// 设置宽度、最后一个元素的宽度+10
$
(
this
).
find
(
'
>td
'
).
eq
(
-
2
).
css
(
'
padding-right
'
,
(
last_width
+
10
)
+
'
px
'
);
}
}
...
...
@@ -1695,6 +1703,16 @@ $(function()
// 表格初始化
TableContainerInit
();
/**
* 页面加载 loading
*/
if
(
$
(
'
.am-page-loading
'
).
length
>
0
)
{
setTimeout
(
function
()
{
$
(
'
.am-page-loading
'
).
fadeOut
(
500
);
},
300
);
}
// 全屏操作
$
(
'
.fullscreen-event
'
).
on
(
'
click
'
,
function
()
{
...
...
@@ -2362,14 +2380,16 @@ $(function()
}
});
/**
* 页面加载 loading
*/
if
(
$
(
'
.am-page-loading
'
).
length
>
0
)
// 加载 loading popup 弹层
$
(
document
).
on
(
'
click
'
,
'
.submit-popup
'
,
function
()
{
setTimeout
(
function
()
{
$
(
'
.am-page-loading
'
).
fadeOut
(
500
);
},
300
);
var
url
=
$
(
this
).
data
(
'
url
'
)
||
null
;
if
(
url
==
null
)
{
Prompt
(
'
url未配置
'
);
return
false
;
}
ModalLoad
(
url
);
});
});
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录