dever před 3 roky
rodič
revize
e0868136bc
34 změnil soubory, kde provedl 1958 přidání a 87 odebrání
  1. 438 0
      app/factory/admin/Auth.php
  2. 149 0
      app/factory/admin/Order.php
  3. 106 0
      app/factory/assets/pc/html/console.html
  4. 64 0
      app/factory/assets/pc/html/home.html
  5. 23 0
      app/factory/assets/pc/html/inc/head.html
  6. 345 0
      app/factory/assets/pc/html/inc/menu.html
  7. 114 0
      app/factory/assets/pc/html/inc/nav.html
  8. 28 0
      app/factory/assets/pc/html/inc/script.html
  9. 90 0
      app/factory/assets/pc/html/login.html
  10. 73 0
      app/factory/assets/pc/html/order.html
  11. 17 0
      app/factory/assets/pc/html/order_send.html
  12. 86 0
      app/factory/assets/pc/html/order_view.html
  13. 1 0
      app/factory/database/member.php
  14. 9 2
      app/factory/lib/Order.php
  15. 22 0
      app/factory/page/list.php
  16. 15 0
      app/factory/template/pc/console.php
  17. 17 0
      app/factory/template/pc/home.php
  18. 24 0
      app/factory/template/pc/inc/head.php
  19. 17 0
      app/factory/template/pc/inc/menu.php
  20. 23 0
      app/factory/template/pc/inc/nav.php
  21. 14 0
      app/factory/template/pc/inc/script.php
  22. 25 0
      app/factory/template/pc/login.php
  23. 24 0
      app/factory/template/pc/order.php
  24. 16 0
      app/factory/template/pc/order_send.php
  25. 5 0
      app/factory/template/pc/order_view.php
  26. 109 75
      app/mshop/lib/Buy.php
  27. 45 5
      app/shop/database/buy_order.php
  28. 10 0
      app/shop/database/buy_order_goods.php
  29. 4 4
      app/shop/database/buy_order_ps.php
  30. 17 0
      app/shop/database/sell_order.php
  31. 5 0
      app/shop/lib/Refund.php
  32. 1 0
      app/store/database/member.php
  33. 1 1
      config/base.php
  34. 21 0
      main/database/factory_config.php

+ 438 - 0
app/factory/admin/Auth.php

@@ -0,0 +1,438 @@
+<?php
+namespace Factory\Admin;
+
+use Dever;
+use Dever\Routing\Uri;
+use Dever\Session\Oper;
+use Dever\String\Encrypt;
+
+class Auth
+{
+    /**
+     * 后台的session名
+     *
+     * @var string
+     */
+    private $name;
+
+    /**
+     * save
+     *
+     * @var Dever\Plad\Save
+     */
+    private $save;
+
+    /**
+     * __construct
+     *
+     * @return mixed
+     */
+    public function __construct()
+    {
+        $this->save = new Oper(false, 'session');
+        $this->name = 'factory';
+    }
+
+    /**
+     * 获取当前登录的管理员信息
+     *
+     * @return mixed
+     */
+    public function info()
+    {
+        $info = $this->save->get($this->name);
+
+        return $info;
+    }
+
+    public function check()
+    {
+        $admin = $this->info();
+        if (!$admin) {
+            return $this->location_login();
+        }
+
+        return $admin;
+    }
+
+    /**
+     * 只获取中间的内容部分
+     *
+     * @return mixed
+     */
+    public function loading()
+    {
+        $set = Dever::input('loading');
+        if ($set) {
+            Dever::config('base')->url = 'loading=' . $set;
+        }
+
+        return $set;
+    }
+
+    public function config()
+    {
+        $config = Dever::db('main/factory_config')->find();
+
+        $config['refer'] = Dever::input('refer');
+
+        $config['login_url'] = Dever::url("factory/admin/auth.login");
+
+        $config['mcode_url'] = Dever::url("factory/admin/auth.getMcode?json=1");
+
+        return $config;
+    }
+
+    /**
+     * 获取当前登录的管理员信息
+     *
+     * @return mixed
+     */
+    public function manage()
+    {
+        $admin = $this->info();
+        if ($admin && $admin['id'] == 1) {
+            return '';
+        }
+        return 'display:none;';
+    }
+
+    /**
+     * 获取手机随机验证码
+     * @return mixed
+     */
+    public function getMcode_api()
+    {
+        $mobile = $this->checkMobile();
+
+        $user = Dever::db('factory/member')->find(array('mobile' => $mobile));
+        if (!$user) {
+            Dever::alert('该手机号还未注册');
+        }
+
+        $code = Dever::load('passport/reg')->mcode($mobile);
+
+        $msg = '验证码已发送至您的手机,请注意查收,十分钟之内有效';
+        $debug = Dever::config('base', 'project')->mobileCode['debug'];
+        if ($debug) {
+            $msg .= '::' . $code;
+        }
+        return $msg;
+    }
+
+    /**
+     * 退出登录
+     *
+     * @return mixed
+     */
+    public function quit_api()
+    {
+        if ($this->info()) {
+            $this->save->un($this->name);
+        }
+
+        Dever::location('login');
+    }
+
+    /**
+     * 登录
+     *
+     * @return mixed
+     */
+    public function login_api()
+    {
+        $where['mobile'] = $this->checkMobile();
+        $this->checkMcode($where['mobile']);
+        $user = Dever::db('factory/member')->find($where);
+
+        if (!$user) {
+            Dever::alert('登录失败,手机号错误,请重新输入');
+        }
+
+        if ($user) {
+            $this->save($user);
+            $refer = Dever::input('refer');
+            if ($refer) {
+                $refer = Encrypt::decode($refer);
+                Dever::out($refer);
+            } else {
+                Dever::out(Dever::url('home'));
+            }
+        } else {
+            Dever::alert('登录失败');
+        }
+    }
+
+    /**
+     * 验证手机号
+     * @return mixed
+     */
+    private function checkMobile()
+    {
+        $rule = Dever::rule('mobile');
+
+        $mobile = Dever::input('mobile');
+
+        if (!$mobile) {
+            Dever::alert('手机号不能为空');
+        }
+        if (!preg_match($rule, $mobile)) {
+            Dever::alert('手机号码格式错误');
+        }
+
+        return $mobile;
+    }
+
+    /**
+     * 验证验证码
+     * @return mixed
+     */
+    private function checkMcode($mobile)
+    {
+        $code = Dever::input('mcode');
+        if (!$code) {
+            Dever::alert('请输入验证码');
+        }
+        $code = Dever::load('passport/reg')->mcode($mobile, $code);
+        if (!$code) {
+            Dever::alert('验证码输入错误');
+        }
+    }
+
+    public function save(&$user)
+    {
+        $this->save->add($this->name, $user, 3600 * 24 * 7);
+    }
+
+    /**
+     * cookie 处理cookie
+     *
+     * @return array
+     */
+    public function cookie()
+    {
+        $cookie = $_COOKIE;
+        $array = array();
+        # 判断手机版
+        $mobile = Dever::mobile();
+        if ((isset($cookie['left_menu']) && $cookie['left_menu'] == 'close') || $mobile) {
+            $array['wrapper'] = 'enlarged forced';
+        } else {
+            $array['wrapper'] = 'forced';
+        }
+        return $array;
+    }
+
+    /**
+     * menu 对一些固定的菜单,生成其链接
+     *
+     * @return array
+     */
+    public function link()
+    {
+        return array
+            (
+            'project' => Dever::url('project/list?menu=manage&table=manage_project'),
+            'log' => Dever::url('log/list?menu=manage&table=manage_log'),
+            'logout' => Dever::url('admin/auth.quit'),
+            'index' => Dever::url('home'),
+            'console' => Dever::url('console'),
+        );
+    }
+
+    /**
+     * location_login
+     *
+     * @return mixed
+     */
+    public function location_login()
+    {
+        $refer = Encrypt::encode(Dever::url());
+        return Dever::location('factory/login?refer=' . $refer);
+    }
+
+    # 编辑员工
+    public function edit_api()
+    {
+        $admin = $this->info();
+        if (!$admin) {
+            Dever::alert('您没有权限修改');
+        }
+        $id = $admin['id'];
+        $name = Dever::input('name');
+        $mobile = Dever::input('mobile');
+
+        if ($name) {
+            $update['name'] = $name;
+        } else {
+            Dever::alert('姓名不能为空');
+        }
+
+        if ($mobile) {
+            $update['mobile'] = $mobile;
+            $check = Dever::db('factory/member')->find(array('mobile' => $mobile, 'factory_id' => $admin['factory_id']));
+            if ($check && $id && $id != $check['id']) {
+                Dever::alert('电话已存在');
+            } elseif ($check && !$id) {
+                Dever::alert('电话已存在');
+            }
+        } else {
+            Dever::alert('电话不能为空');
+        }
+
+        $update['factory_id'] = $admin['factory_id'];
+
+        if ($id) {
+            $update['where_id'] = $id;
+            Dever::db('factory/member')->update($update);
+        } else {
+            $id = Dever::db('factory/member')->insert($update);
+        }
+        $user = Dever::db('factory/member')->find($id);
+        $this->save($user);
+
+        return '操作成功';
+    }
+
+    public function menu()
+    {
+        $data = array
+        (
+            'console' => array
+            (
+                'icon' => 'home',
+                'name' => '概况',
+                'link' => Dever::url('console', 'factory'),
+            ),
+
+            'order' => array
+            (
+                'icon' => 'app',
+                'name' => '订单处理',
+                'child' => array
+                (
+                    'order' => array
+                    (
+                        'name' => '订货单处理',
+                        'link' => Dever::url('order', 'factory'),
+                    ),
+                ),
+            ),
+
+            'stat' => array
+            (
+                'icon' => 'date',
+                'name' => '结算对账',
+                'child' => array
+                (
+                    'stat' => array
+                    (
+                        'name' => '对账单',
+                        'link' => Dever::url('stat', 'factory'),
+                    ),
+                ),
+            ),
+
+            'set' => array
+            (
+                'icon' => 'set',
+                'name' => '基础设置',
+                'child' => array
+                (
+                    'set' => array
+                    (
+                        'name' => '企业资质',
+                        'link' => Dever::url('set', 'factory'),
+                    ),
+                    'msg' => array
+                    (
+                        'name' => '消息通知',
+                        'link' => Dever::url('msg', 'factory'),
+                    ),
+                    'user' => array
+                    (
+                        'name' => '账号管理',
+                        'link' => Dever::url('user', 'factory'),
+                    ),
+                    'help' => array
+                    (
+                        'name' => '帮助文档',
+                        'link' => Dever::url('help', 'factory'),
+                    ),
+                ),
+            ),
+        );
+
+        return $data;
+    }
+
+    /**
+     * menu 生成左侧的菜单 此处应加上权限来显示是否管理员有该菜单的权限
+     *
+     * @return array
+     */
+    public function getMenu($state = false)
+    {
+        $data = $this->menu();
+
+        $html = '';
+        foreach ($data as $k => $v) {
+            if (!isset($v['key'])) {
+                $v['key'] = $k;
+            }
+            $v['icon'] = $v['icon'] ? "layui-icon layui-icon-" . $v['icon'] : "layui-icon layui-icon-home";
+            $cur = 'layui-nav-itemed';
+            if ($k == 'console') {
+                $cur = 'layui-this';
+            }
+            $html .= '<li data-name="'.$v['key'].'" class="layui-nav-item menu_group '.$cur.'">';
+
+            if (isset($v['child']) && $v['child']) {
+                $link = 'href="javascript:;"';
+            } else {
+                $link = 'lay-href="'.$v['link'].'"';
+            }
+            $html .= '<a '.$link.' lay-tips="'.$v['name'].'" lay-direction="2">';
+            $html .= '<i class="'.$v['icon'].'"></i><cite>'.$v['name'].'</cite></a>';
+
+            $html .= $this->getMenuChild($v);
+
+            $html .= '</li>';
+        }
+        $html .= '';
+
+        return $html;
+    }
+
+    public function getMenuChild($v)
+    {
+        $html = '';
+
+        if (isset($v['child']) && $v['child']) {
+            $html .= '<dl class="layui-nav-child">';
+            foreach ($v['child'] as $k1 => $v1) {
+                if (!isset($v1['key'])) {
+                    $v1['key'] = $k1;
+                }
+                $html .= '<dd data-name="'.$v1['key'].'">';
+                if (isset($v1['child']) && $v1['child']) {
+                    $html .= '<a href="javascript:;">'.$v1['name'].'</a><dl class="layui-nav-child">';
+                    foreach ($v1['child'] as $k2 => $v2) {
+                        if (!isset($v2['key'])) {
+                            $v2['key'] = $k2;
+                        }
+                        $html .= '<dd data-name="'.$v2['key'].'"><a lay-href="'.$v2['link'].'">'.$v2['name'].'</a></dd>';
+                    }
+                    $html .= '</dl>';
+                } else {
+                    $html .= '<a lay-href="'.$v1['link'].'">'.$v1['name'].'</a>';
+                }
+
+                $html .= '</dd>';
+            }
+            $html .= '</dl>';
+        }
+
+        return $html;
+    }
+}

+ 149 - 0
app/factory/admin/Order.php

@@ -0,0 +1,149 @@
+<?php
+namespace Factory\Admin;
+
+use Dever;
+
+class Order
+{
+	public function __construct()
+	{
+		$this->user = Dever::load('factory/admin/auth.check');
+		$this->id = $this->user['factory_id'];
+	}
+
+	# 获取概览数据
+	public function getData()
+	{
+		# 待处理订单
+		$where['status'] = 3;
+		$where['source_type'] = 3;
+		$where['source_id'] = $this->id;
+
+		# 待处理订单
+		$data['order_num'] = Dever::db('shop/buy_order')->getOrderNum($where);
+
+		# 超时待处理订单:72小时
+		$where['end_o'] = time() + 72*3600;
+		$data['cs_order_num'] = Dever::db('shop/buy_order')->getOrderNum($where);
+
+		return $data;
+	}
+
+	# 订单列表
+    public function getList()
+    {
+        $data = Dever::load('mshop/lib/buy')->set(13, 1)->getList($this->id);
+
+        $html = '';
+        if ($data && $data['order']) {
+        	foreach ($data['order'] as $k => $v) {
+        		if ($v['ps_info']) {
+        			$ps_date = $v['ps_info']['cdate'];
+        		} else {
+        			$ps_date = '-';
+        		}
+        		$view = Dever::url('order_view?type=2&order_id=' . $v['id'], 'factory');
+
+        		$send = Dever::url('order_send?id=' . $v['id'], 'factory');
+
+        		$button = '<a href="javascript:;" onclick="fastEdit($(this), \''.$view.'\', \'查看详情\', \'\', 1)"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5 layui-btn layui-btn-xs">查看详情</button></a>';
+
+        		if ($v['status'] < 5) {
+        			$button .= '&nbsp;&nbsp;<a href="javascript:;" onclick="layer.alert(\'开发中\')"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5 layui-btn layui-btn-xs">打印备货单</button></a>';
+        		}
+        		
+        		if ($v['status'] == 3) {
+        			$button .= '&nbsp;&nbsp;<a href="javascript:;" onclick="fastEdit($(this), \''.$send.'\', \'配送发货\', \'\', 1)"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5 layui-btn layui-btn-xs">配送发货</button></a>';
+        		}
+
+        		$html .= '<tr><td><input type="checkbox" name="mul_where_id[]" class="checkbox-checkall-list" lay-ignore value="'.$v['id'].'"/></td><td>'.$v['order_num'].'</td><td>'.$v['operdate'].'</td><td>'.$v['type_info']['name'].'</td><td>'.$ps_date.'</td><td>'.$v['p_price'].'</td><td>'.$v['status_name'].'</td><td>'.$button.'</td></tr>';
+        	}
+        }
+        return $html;
+    }
+
+    # 获取列表页搜索信息
+    public function getSearch()
+    {
+    	$config = array
+        (
+        	array('value' => '0', 'name' => '全部'),
+            array('value' => 3, 'name' => '待生产发货'),
+            array('value' => 4, 'name' => '已发货'),
+            array('value' => '5,6', 'name' => '已到货'),
+            array('value' => '7,8,11', 'name' => '已取消'),
+            array('value' => 'refund', 'name' => '缺货与报损'),
+        );
+
+        $status = Dever::input('status');
+
+        $html = '';
+        foreach ($config as $k => $v) {
+        	$selected = '';
+    		if ((!$status && $k == 0) || $status == $v['value']) {
+    			$selected = 'selected=""';
+    		} 
+
+    		$html .= '<option value="'.$v['value'].'" '.$selected.'>'.$v['name'].'</option>';
+    	}
+
+        return $html;
+    }
+
+    # 获取列表页搜索信息
+    public function getService()
+    {
+    	$service = Dever::db('shop/service')->select();
+        $html = '';
+        foreach ($service as $k => $v) {
+        	$selected = '';
+    		if ($k == 0) {
+    			$selected = 'selected=""';
+    		} 
+
+    		$html .= '<option value="'.$v['id'].'" '.$selected.'>'.$v['name'].'</option>';
+    	}
+
+        return $html;
+    }
+
+    # 获取基本信息
+    public function getConfig()
+    {
+    	$data['search'] = Dever::url('order', 'factory');
+
+    	# 发货
+    	$data['send'] = Dever::url('admin/order.send', 'factory');
+    	return $data;
+    }
+
+    # 发货
+    public function send_api()
+    {
+    	$input = Dever::input();
+
+    	$order_id = Dever::input('update_where_id');
+
+    	$where['order_id'] = $order_id;
+    	$info = Dever::db('shop/buy_order_ps')->find($where);
+
+    	$update = $where;
+    	$update['service_id'] = $input['update_service_id'];
+    	$update['order_num'] = $input['update_order_num'];
+    	$update['phy'] = $input['update_phy'];
+    	$update['dby'] = $input['update_dby'];
+    	$update['zl'] = $input['update_zl'];
+    	$update['tj'] = $input['update_tj'];
+    	$update['price'] = $input['update_price'];
+    	$update['cdate'] = $input['update_cdate'];
+    	if ($info) {
+    		$update['where_id'] = $info['id'];
+    		Dever::db('shop/buy_order_ps')->update($update);
+    	} else {
+    		Dever::db('shop/buy_order_ps')->insert($update);
+    	}
+    	Dever::db('shop/buy_order')->update(array('status' => 4, 'where_id' => $update['order_id']));
+
+    	return 'reload';
+    }
+}

+ 106 - 0
app/factory/assets/pc/html/console.html

@@ -0,0 +1,106 @@
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <script class="include" system="" path="inc/" file="head">include()</script>
+</head>
+<body>
+  
+  <div class="layui-fluid">
+    <div class="layui-row layui-col-space15">
+    
+    </div>
+    <div class="layui-row layui-col-space15">
+      <div class="layui-col-md8">
+        <div class="layui-row layui-col-space15">
+
+          <div class="layui-col-sm6 layui-col-md6">
+            <div class="layui-card">
+              <div class="layui-card-header">
+                待处理订单
+              </div>
+              <div class="layui-card-body layuiadmin-card-list">
+                <p class="layuiadmin-big-font" id="order_num">9,999,666</p>
+              </div>
+            </div>
+          </div>
+
+          <div class="layui-col-sm6 layui-col-md6">
+            <div class="layui-card">
+              <div class="layui-card-header">
+                超时未发货
+              </div>
+              <div class="layui-card-body layuiadmin-card-list">
+                <p class="layuiadmin-big-font" id="cs_order_num">9,999,666</p>
+              </div>
+            </div>
+          </div>
+
+          <div class="layui-col-md12">
+            <div class="layui-card">
+              <div class="layui-card-header">工厂业务流程</div>
+              <div class="layui-card-body">
+                <div>
+                  <button class="layui-btn layui-btn-lg layui-btn-primary layui-btn-radius">处理订货单</button>
+                  <i class="layui-icon">&nbsp;&nbsp;&#xe602;&nbsp;&nbsp;</i>
+                  <button class="layui-btn layui-btn-lg layui-btn-primary layui-btn-radius">打印订单发货</button>
+                  <i class="layui-icon">&nbsp;&nbsp;&#xe602;&nbsp;&nbsp;</i>
+                  <button class="layui-btn layui-btn-lg layui-btn-primary layui-btn-radius">对账结算</button>
+                  <i class="layui-icon">&nbsp;&nbsp;&#xe602;&nbsp;&nbsp;</i>
+                  <button class="layui-btn layui-btn-lg layui-btn-primary layui-btn-radius">保留签收单便于查账</button>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+      
+      <div class="layui-col-md4">
+
+        <div class="layui-card">
+          <div class="layui-card-header">系统信息</div>
+          <div class="layui-card-body layui-text">
+            <table class="layui-table">
+              <colgroup>
+                <col width="100">
+                <col>
+              </colgroup>
+              <tbody>
+                <tr>
+                  <td>系统名称</td>
+                  <td id="system_name">
+                    <script type="text/html" template>
+                      v{{ layui.admin.v }}
+                    </script>
+                  </td>
+                </tr>
+                <tr>
+                  <td>客服专员</td>
+                  <td id="kf"></td>
+                </tr>
+                <tr>
+                  <td>客服电话</td>
+                  <td id="kfphone"></td>
+                </tr>
+              </tbody>
+            </table>
+          </div>
+        </div>
+
+      </div>
+      
+    </div>
+  </div>
+
+  <script class="include" system="" path="inc/" file="script">include()</script>
+  <script>
+    layui.config({
+        base: '../script/lib/layui/admin/' //静态资源所在路径
+    }).extend({
+        index: 'lib/index' //主入口模块
+    }).use(['index', 'console']);
+</script>
+</body>
+</html>
+

+ 64 - 0
app/factory/assets/pc/html/home.html

@@ -0,0 +1,64 @@
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <script class="include" system="" path="inc/" file="head">include()</script>
+</head>
+<body class="layui-layout-body fixed-left theme-1">
+
+  <div id="LAY_app">
+    <div class="layui-layout layui-layout-admin">
+
+      <script class="include" system="" path="inc/" file="nav">include()</script>
+
+      <script class="include" system="" path="inc/" file="menu">include()</script>
+
+      <!-- 页面标签 -->
+      <div class="layadmin-pagetabs" id="LAY_app_tabs">
+        <div class="layui-icon layadmin-tabs-control layui-icon-prev" layadmin-event="leftPage"></div>
+        <div class="layui-icon layadmin-tabs-control layui-icon-next" layadmin-event="rightPage"></div>
+        <div class="layui-icon layadmin-tabs-control layui-icon-down">
+          <ul class="layui-nav layadmin-tabs-select" lay-filter="layadmin-pagetabs-nav">
+            <li class="layui-nav-item" lay-unselect>
+              <a href="javascript:;"></a>
+              <dl class="layui-nav-child layui-anim-fadein">
+                <dd layadmin-event="closeThisTabs"><a href="javascript:;">关闭当前标签页</a></dd>
+                <dd layadmin-event="closeOtherTabs"><a href="javascript:;">关闭其它标签页</a></dd>
+                <dd layadmin-event="closeAllTabs"><a href="javascript:;">关闭全部标签页</a></dd>
+              </dl>
+            </li>
+          </ul>
+        </div>
+        <div class="layui-tab" lay-unauto lay-allowClose="true" lay-filter="layadmin-layout-tabs">
+          <ul class="layui-tab-title" id="LAY_app_tabsheader">
+            <li lay-id="home/console.html" lay-attr="home/console.html" class="layui-this"><i class="layui-icon layui-icon-home"></i></li>
+          </ul>
+        </div>
+      </div>
+      
+      
+      <!-- 主体内容 -->
+      <div class="layui-body" id="LAY_app_body">
+        <div class="layadmin-tabsbody-item layui-show">
+          <iframe src="home/console.html" frameborder="0" class="layadmin-iframe"></iframe>
+        </div>
+      </div>
+      
+      <!-- 辅助元素,一般用于移动设备下遮罩 -->
+      <div class="layadmin-body-shade" layadmin-event="shade"></div>
+    </div>
+  </div>
+
+  <script class="include" system="" path="inc/" file="script">include()</script>
+  <script>
+    layui.config({
+        base: '../script/lib/layui/admin/' //静态资源所在路径
+    }).extend({
+        index: 'lib/index' //主入口模块
+    }).use('index');
+</script>
+</body>
+</html>
+
+

+ 23 - 0
app/factory/assets/pc/html/inc/head.html

@@ -0,0 +1,23 @@
+<meta charset="utf-8">
+<title>后台管理</title>
+<meta name="keywords" content="后台管理">
+<meta name="description" content="后台管理">
+<meta name="apple-mobile-web-app-title" content="后台管理" />
+<meta name="author" content="rabin">
+<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+<link rel="stylesheet" type="text/css" href="../script/lib/layui/css/layui.css" />
+<link rel="stylesheet" href="../script/lib/layui/admin/style/admin.css?v3" media="all">
+
+<!-- plugin -->
+<link rel="stylesheet" type="text/css" href="../script/lib/valid/validationEngine.jquery.css">
+<link rel="stylesheet" type="text/css" href="../script/lib/fancybox/jquery.fancybox.css">
+<link rel="stylesheet" type="text/css" href="../script/lib/datetime/jquery.datetimepicker.css">
+<link rel="stylesheet" type="text/css" href="../script/lib/highlight/highlight.min.css">
+
+
+<script type="text/javascript" src="../script/lib/jquery/jquery.min.js"></script>
+<script id="script">var config={};</script>
+<style type="text/css" id="style">
+</style>

+ 345 - 0
app/factory/assets/pc/html/inc/menu.html

@@ -0,0 +1,345 @@
+<!-- 侧边菜单 -->
+      <div class="layui-side layui-side-menu">
+        <div class="layui-side-scroll">
+          <div class="layui-logo" id="console-url" lay-href="home/console.html">
+            <span id="dever-name">layuiAdmin</span>
+          </div>
+          
+          <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
+            <li data-name="home" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="主页" lay-direction="2">
+                <i class="layui-icon layui-icon-home"></i>
+                <cite>主页</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd data-name="console" class="layui-this">
+                  <a lay-href="home/console.html">控制台</a>
+                </dd>
+                <dd data-name="console">
+                  <a lay-href="home/homepage1.html">主页一</a>
+                </dd>
+                <dd data-name="console">
+                  <a lay-href="home/homepage2.html">主页二</a>
+                </dd>
+              </dl>
+            </li>
+            <li data-name="component" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="组件" lay-direction="2">
+                <i class="layui-icon layui-icon-component"></i>
+                <cite>组件</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd data-name="grid">
+                  <a href="javascript:;">栅格</a>
+                  <dl class="layui-nav-child">
+                    <dd data-name="list"><a lay-href="component/grid/list.html">等比例列表排列</a></dd>
+                    <dd data-name="mobile"><a lay-href="component/grid/mobile.html">按移动端排列</a></dd>
+                    <dd data-name="mobile-pc"><a lay-href="component/grid/mobile-pc.html">移动桌面端组合</a></dd>
+                    <dd data-name="all"><a lay-href="component/grid/all.html">全端复杂组合</a></dd>
+                    <dd data-name="stack"><a lay-href="component/grid/stack.html">低于桌面堆叠排列</a></dd>
+                    <dd data-name="speed-dial"><a lay-href="component/grid/speed-dial.html">九宫格</a></dd>
+                  </dl>
+                </dd>
+                <dd data-name="button">
+                  <a lay-href="component/button/index.html">按钮</a>
+                </dd>
+                <dd data-name="form">
+                  <a href="javascript:;">表单</a>
+                  <dl class="layui-nav-child">
+                    <dd><a lay-href="component/form/element.html">表单元素</a></dd>
+                    <dd><a lay-href="component/form/group.html">表单组合</a></dd>
+                  </dl>
+                </dd>
+                <dd data-name="nav">
+                  <a lay-href="component/nav/index.html">导航</a>
+                </dd>
+                <dd data-name="tabs">
+                  <a lay-href="component/tabs/index.html">选项卡</a>
+                </dd>
+                <dd data-name="progress">
+                  <a lay-href="component/progress/index.html">进度条</a>
+                </dd>
+                <dd data-name="panel"> 
+                  <a lay-href="component/panel/index.html">面板</a>  
+                </dd>
+                <dd data-name="badge"> 
+                  <a lay-href="component/badge/index.html">徽章</a>  
+                </dd>
+                <dd data-name="timeline"> 
+                  <a lay-href="component/timeline/index.html">时间线</a>  
+                </dd>
+                <dd data-name="anim"> 
+                  <a lay-href="component/anim/index.html">动画</a>  
+                </dd>
+                <dd data-name="auxiliar"> 
+                  <a lay-href="component/auxiliar/index.html">辅助</a>  
+                </dd>
+                <dd data-name="layer"> 
+                  <a href="javascript:;">通用弹层<span class="layui-nav-more"></span></a>  
+                  <dl class="layui-nav-child">  
+                    <dd data-name="list"> 
+                      <a lay-href="component/layer/list.html" lay-text="layer 功能演示">功能演示</a> 
+                    </dd>  
+                    <dd data-name="special-demo"> 
+                      <a lay-href="component/layer/special-demo.html" lay-text="layer 特殊示例">特殊示例</a> 
+                    </dd>  
+                    <dd data-name="theme"> 
+                      <a lay-href="component/layer/theme.html" lay-text="layer 风格定制">风格定制</a> 
+                    </dd>  
+                  </dl>  
+                </dd>
+                <dd data-name="laydate"> 
+                  <a href="javascript:;">日期时间</a>
+                  <dl class="layui-nav-child">  
+                    <dd data-name="demo1"> 
+                      <a lay-href="component/laydate/demo1.html" lay-text="layDate 功能演示一">功能演示一</a> 
+                    </dd>
+                    <dd data-name="demo2"> 
+                      <a lay-href="component/laydate/demo2.html" lay-text="layDate 功能演示二">功能演示二</a> 
+                    </dd>
+                    <dd data-name="theme"> 
+                      <a lay-href="component/laydate/theme.html" lay-text="layDate 设定主题">设定主题</a> 
+                    </dd>
+                    <dd data-name="special-demo"> 
+                      <a lay-href="component/laydate/special-demo.html" lay-text="layDate 特殊示例">特殊示例</a> 
+                    </dd>  
+                  </dl>  
+                </dd>
+                <dd data-name="table-static"> 
+                  <a lay-href="component/table/static.html">静态表格</a>
+                </dd>
+                <dd data-name="table"> 
+                  <a href="javascript:;">数据表格</a>
+                  <dl class="layui-nav-child">  
+                    <dd data-name="simple"> 
+                      <a lay-href="component/table/simple.html" lay-text="">简单数据表格</a> 
+                    </dd>
+                    <dd data-name="auto"> 
+                      <a lay-href="component/table/auto.html" lay-text="">列宽自动分配</a> 
+                    </dd>
+                    <dd data-name="data"> 
+                      <a lay-href="component/table/data.html" lay-text="">赋值已知数据</a> 
+                    </dd>
+                    <dd data-name="tostatic"> 
+                      <a lay-href="component/table/tostatic.html" lay-text="">转化静态表格</a> 
+                    </dd>
+                    <dd data-name="page"> 
+                      <a lay-href="component/table/page.html" lay-text="">开启分页</a> 
+                    </dd>
+                    <dd data-name="resetPage"> 
+                      <a lay-href="component/table/resetPage.html" lay-text="">自定义分页</a> 
+                    </dd>
+                    <dd data-name="toolbar"> 
+                      <a lay-href="component/table/toolbar.html" lay-text="">开启头部工具栏</a> 
+                    </dd>
+                    <dd data-name="totalRow"> 
+                      <a lay-href="component/table/totalRow.html" lay-text="">开启合计行</a> 
+                    </dd>
+                    <dd data-name="height"> 
+                      <a lay-href="component/table/height.html" lay-text="">高度最大适应</a> 
+                    </dd>
+                    <dd data-name="checkbox"> 
+                      <a lay-href="component/table/checkbox.html" lay-text="">开启复选框</a> 
+                    </dd>
+                    <dd data-name="radio"> 
+                      <a lay-href="component/table/radio.html" lay-text="">开启单选框</a> 
+                    </dd>
+                    <dd data-name="cellEdit"> 
+                      <a lay-href="component/table/cellEdit.html" lay-text="">开启单元格编辑</a> 
+                    </dd>
+                    <dd data-name="form"> 
+                      <a lay-href="component/table/form.html" lay-text="">加入表单元素</a> 
+                    </dd>
+                    <dd data-name="style"> 
+                      <a lay-href="component/table/style.html" lay-text="">设置单元格样式</a> 
+                    </dd>
+                    <dd data-name="fixed"> 
+                      <a lay-href="component/table/fixed.html" lay-text="">固定列</a> 
+                    </dd>
+                    <dd data-name="operate"> 
+                      <a lay-href="component/table/operate.html" lay-text="">数据操作</a> 
+                    </dd>
+                    <dd data-name="parseData"> 
+                      <a lay-href="component/table/parseData.html" lay-text="">解析任意数据格式</a> 
+                    </dd>
+                    <dd data-name="onrow"> 
+                      <a lay-href="component/table/onrow.html" lay-text="">监听行事件</a> 
+                    </dd>
+                    <dd data-name="reload">
+                      <a lay-href="component/table/reload.html" lay-text="">数据表格的重载</a> 
+                    </dd>
+                    <dd data-name="initSort"> 
+                      <a lay-href="component/table/initSort.html" lay-text="">设置初始排序</a> 
+                    </dd>
+                    <dd data-name="cellEvent"> 
+                      <a lay-href="component/table/cellEvent.html" lay-text="">监听单元格事件</a> 
+                    </dd>
+                    <dd data-name="thead"> 
+                      <a lay-href="component/table/thead.html" lay-text="">复杂表头</a> 
+                    </dd>
+                  </dl>
+                </dd>
+                <dd data-name="laypage"> 
+                  <a href="javascript:;">分页</a>  
+                  <dl class="layui-nav-child">  
+                    <dd data-name="demo1"> 
+                      <a lay-href="component/laypage/demo1.html" lay-text="layPage 功能演示一">功能演示一</a> 
+                    </dd>
+                    <dd data-name="demo2"> 
+                      <a lay-href="component/laypage/demo2.html" lay-text="layPage 功能演示二">功能演示二</a> 
+                    </dd> 
+                  </dl>  
+                </dd>
+                <dd data-name="upload"> 
+                  <a href="javascript:;">上传</a>  
+                  <dl class="layui-nav-child">  
+                    <dd data-name="demo1"> 
+                      <a lay-href="component/upload/demo1.html" lay-text="上传功能演示一">功能演示一</a> 
+                    </dd>
+                    <dd data-name="demo2"> 
+                      <a lay-href="component/upload/demo2.html" lay-text="上传功能演示二">功能演示二</a> 
+                    </dd> 
+                  </dl>  
+                </dd>
+                <dd data-name="colorpicker">
+                  <a lay-href="component/colorpicker/index.html">颜色选择器</a>
+                </dd>
+                <dd data-name="slider">
+                  <a lay-href="component/slider/index.html">滑块组件</a>
+                </dd>
+                <dd data-name="rate">
+                  <a lay-href="component/rate/index.html">评分</a>
+                </dd>
+                <dd data-name="carousel"> 
+                  <a lay-href="component/carousel/index.html">轮播</a>  
+                </dd>
+                <dd data-name="flow"> 
+                  <a lay-href="component/flow/index.html">流加载</a>  
+                </dd>
+                <dd data-name="util"> 
+                  <a lay-href="component/util/index.html">工具</a>  
+                </dd>
+                <dd data-name="code"> 
+                  <a lay-href="component/code/index.html">代码修饰</a> 
+                </dd>
+              </dl>
+            </li>
+            <li data-name="template" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="页面" lay-direction="2">
+                <i class="layui-icon layui-icon-template"></i>
+                <cite>页面</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd><a lay-href="template/personalpage.html">个人主页</a></dd>
+                <dd><a lay-href="template/addresslist.html">通讯录</a></dd>
+                <dd><a lay-href="template/caller.html">客户列表</a></dd>
+                <dd><a lay-href="template/goodslist.html">商品列表</a></dd>
+                <dd><a lay-href="template/msgboard.html">留言板</a></dd>
+                <dd><a lay-href="template/search.html">搜索结果</a></dd>
+                <dd><a href="user/reg.html" target="_blank">注册</a></dd>
+                <dd><a href="user/login.html" target="_blank">登入</a></dd>
+                <dd><a href="user/forget.html" target="_blank">忘记密码</a></dd>
+                <dd><a lay-href="template/tips/404.html">404页面不存在</a></dd>
+                <dd><a lay-href="template/tips/error.html">错误提示</a></dd>
+                <dd><a lay-href="//www.baidu.com/">百度一下</a></dd>
+                <dd><a lay-href="//www.layui.com/">layui官网</a></dd>
+                <dd><a lay-href="//www.layui.com/admin/">layuiAdmin官网</a></dd>
+              </dl>
+            </li>
+            <li data-name="app" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="应用" lay-direction="2">
+                <i class="layui-icon layui-icon-app"></i>
+                <cite>应用</cite>
+              </a>
+              <dl class="layui-nav-child">
+                
+                <dd data-name="content">
+                  <a href="javascript:;">内容系统</a>
+                  <dl class="layui-nav-child">
+                    <dd data-name="list"><a lay-href="app/content/list.html">文章列表</a></dd>
+                    <dd data-name="tags"><a lay-href="app/content/tags.html">分类管理</a></dd>
+                    <dd data-name="comment"><a lay-href="app/content/comment.html">评论管理</a></dd>
+                  </dl>
+                </dd>
+                <dd data-name="forum">
+                  <a href="javascript:;">社区系统</a>
+                  <dl class="layui-nav-child">
+                    <dd data-name="list"><a lay-href="app/forum/list.html">帖子列表</a></dd>
+                    <dd data-name="replys"><a lay-href="app/forum/replys.html">回帖列表</a></dd>
+                  </dl>
+                </dd>
+                <dd>
+                  <a lay-href="app/message/index.html">消息中心</a>
+                </dd>
+                <dd data-name="workorder">
+                  <a lay-href="app/workorder/list.html">工单系统</a>
+                </dd>
+              </dl>
+            </li>
+            <li data-name="senior" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="高级" lay-direction="2">
+                <i class="layui-icon layui-icon-senior"></i>
+                <cite>高级</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd>
+                  <a layadmin-event="im">LayIM 通讯系统</a>  
+                </dd>
+                <dd data-name="echarts">
+                  <a href="javascript:;">Echarts集成</a>
+                  <dl class="layui-nav-child">
+                    <dd><a lay-href="senior/echarts/line.html">折线图</a></dd>
+                    <dd><a lay-href="senior/echarts/bar.html">柱状图</a></dd>
+                    <dd><a lay-href="senior/echarts/map.html">地图</a></dd>
+                  </dl>
+                </dd>
+              </dl>
+            </li>
+            <li data-name="user" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="用户" lay-direction="2">
+                <i class="layui-icon layui-icon-user"></i>
+                <cite>用户</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd>
+                  <a lay-href="user/user/list.html">网站用户</a>
+                </dd>
+                <dd>
+                  <a lay-href="user/administrators/list.html">后台管理员</a>
+                </dd>
+                <dd>
+                  <a lay-href="user/administrators/role.html">角色管理</a>
+                </dd>
+              </dl>
+            </li>
+            <li data-name="set" class="layui-nav-item">
+              <a href="javascript:;" lay-tips="设置" lay-direction="2">
+                <i class="layui-icon layui-icon-set"></i>
+                <cite>设置</cite>
+              </a>
+              <dl class="layui-nav-child">
+                <dd class="layui-nav-itemed">
+                  <a href="javascript:;">系统设置</a>
+                  <dl class="layui-nav-child">
+                    <dd><a lay-href="set/system/website.html">网站设置</a></dd>
+                    <dd><a lay-href="set/system/email.html">邮件服务</a></dd>
+                  </dl>
+                </dd>
+                <dd class="layui-nav-itemed">
+                  <a href="javascript:;">我的设置</a>
+                  <dl class="layui-nav-child">
+                    <dd><a lay-href="set/user/info.html">基本资料</a></dd>
+                    <dd><a lay-href="set/user/password.html">修改密码</a></dd>
+                  </dl>
+                </dd>
+              </dl>
+            </li>
+            <li data-name="get" class="layui-nav-item">
+              <a href="javascript:;" lay-href="//www.layui.com/admin/#get" lay-tips="授权" lay-direction="2">
+                <i class="layui-icon layui-icon-auz"></i>
+                <cite>授权</cite>
+              </a>
+            </li>
+          </ul>
+        </div>
+      </div>

+ 114 - 0
app/factory/assets/pc/html/inc/nav.html

@@ -0,0 +1,114 @@
+<div id="load_style" style="display:none;">
+</div>
+<style>
+@media screen and (max-width: 1024px) {
+    .nav{
+        display: none;
+    }
+}
+</style>
+<div id="dever-name" style="display:none;"></div>
+<div class="layui-header" id="nav">
+<!-- 头部区域 -->
+<ul class="layui-nav layui-layout-left" id="top">
+  <li class="layui-nav-item layadmin-flexible" lay-unselect>
+    <a href="javascript:;" layadmin-event="flexible" title="侧边伸缩">
+      <i class="layui-icon layui-icon-shrink-right" id="LAY_app_flexible"></i>
+    </a>
+  </li><li class="layui-nav-item" lay-unselect>
+    <a href="javascript:;" layadmin-event="back" title="上一页">
+      <i class="layui-icon layui-icon-return"></i>
+    </a>
+  </li><li class="layui-nav-item" lay-unselect>
+    <a href="javascript:;" layadmin-event="refresh" title="刷新">
+      <i class="layui-icon layui-icon-refresh-3"></i>
+    </a>
+  </li>
+</ul>
+
+<ul class="layui-nav layui-layout-right" lay-filter="layadmin-layout-right">
+
+  <li class="layui-nav-item auth-top" lay-unselect style="display:none;">
+    <a href="javascript:;">
+      <cite><span></span></cite>
+    </a>
+    <ul class="layui-nav-child">
+      <li><a lay-href="set/user/info.html">基本资料</a></li>
+    </ul>
+  </li>
+
+  <li class="layui-nav-item" lay-unselect style="display:none;">
+    <a lay-href="app/message/index.html" layadmin-event="message" lay-text="消息中心">
+      <i class="layui-icon layui-icon-notice"></i>  
+      
+      <!-- 如果有新消息,则显示小圆点 -->
+      <span class="layui-badge-dot"></span>
+    </a>
+  </li>
+  <li class="layui-nav-item layui-hide-xs" lay-unselect>
+    <a href="javascript:;" layadmin-event="theme">
+      <i class="layui-icon layui-icon-theme"></i>
+    </a>
+  </li>
+  <li class="layui-nav-item layui-hide-xs" lay-unselect style="display:none;">
+    <a href="javascript:;" layadmin-event="note">
+      <i class="layui-icon layui-icon-note"></i>
+    </a>
+  </li>
+  <li class="layui-nav-item layui-hide-xs" lay-unselect style="display:none;">
+    <a href="javascript:;" layadmin-event="fullscreen">
+      <i class="layui-icon layui-icon-screen-full"></i>
+    </a>
+  </li>
+  <li class="layui-nav-item" lay-unselect>
+    <a href="javascript:;">
+      <cite id="manage-name"></cite>
+    </a>
+    <dl class="layui-nav-child">
+      <dd><a id="edit_password" onclick="pass($(this));" style="cursor: pointer;display: none;">修改密码</a></dd>
+      <dd><a id="edit_user" href="javascript:;" onclick="editUser($(this));" style="cursor: pointer;">修改资料</a></dd>
+      <hr>
+      <dd style="text-align: center;"><a id="logout-url" href="javascript:;">退出</a></dd>
+    </dl>
+  </li>
+  
+  <li class="layui-nav-item layui-hide-xs" lay-unselect style="display:none;">
+    <a href="javascript:;" layadmin-event="about"><i class="layui-icon layui-icon-more-vertical"></i></a>
+  </li>
+  <li class="layui-nav-item layui-show-xs-inline-block layui-hide-sm" lay-unselect>
+    <a href="javascript:;" layadmin-event="more"><i class="layui-icon layui-icon-more-vertical"></i></a>
+  </li>
+</ul>
+</div>
+
+<script>
+function editUser(e)
+{
+  var name = e.attr('data-name');
+  var mobile = e.attr('data-mobile');
+  var html = '<style>.password_edit div{margin:10px;}.password_edit input{width:200px;}</style><div class="password_edit">';
+  html += '<div><label class="layui-form-label">姓名:</label><input type="text" class="form-control form_margin layui-input" id="edit_name" value="'+name+'"/></div>';
+  html += '<div><label class="layui-form-label">手机号:</label><input type="text" class="form-control form_margin layui-input" id="edit_mobile" value="'+mobile+'"/></div>';
+  html += '</div>';
+
+  var edit = function()
+  {
+    var edit_name = $("#edit_name").val();
+    var edit_mobile = $("#edit_mobile").val();
+    
+    if(!edit_name || !edit_mobile)
+    {
+      layer.msg('请输入姓名或者手机号');
+      return;
+    }
+    $.getJSON(config.host + 'admin/auth.edit?json=1', {name:edit_name,mobile:edit_mobile}, function(t)
+    {
+        msg(t);
+    })
+  };
+
+  console.info(html);
+
+  showAlert(html, edit, '修改资料');
+}
+</script>

+ 28 - 0
app/factory/assets/pc/html/inc/script.html

@@ -0,0 +1,28 @@
+<!-- 加载图片展示 -->
+<script type="text/javascript" src="../script/lib/fancybox/jquery.fancybox.js"></script>
+
+<!-- 加载echarts -->
+<script type="text/javascript" src="../script/lib/echarts/echarts.common.min.js?v1"></script>
+
+<!-- 加载时间控件 -->
+<script type="text/javascript" src="../script/lib/datetime/jquery.datetimepicker.min.js"></script>
+
+<!-- 加载highlight.min.js -->
+<script type="text/javascript" src="../script/lib/highlight/highlight.min.js"></script>
+
+<!-- 加载valid -->
+<script type="text/javascript" src="../script/lib/valid/jquery.validationEngine.min.js?v3"></script>
+
+<script type="text/javascript" src="../script/lib/qiniu/upload/plupload.full.min.js"></script>
+<script type="text/javascript" src="../script/lib/qiniu/qiniu.upload.js"></script>
+<script type="text/javascript" src="../script/lib/tool/md5.js"></script>
+
+<script type="text/javascript" src="../script/lib/layui/upload.js?v23"></script>
+<script type="text/javascript" src="../script/lib/layui/layui.js"></script>
+
+<script type="text/javascript" src="../script/lib/clipboard/clipboard.js"></script>
+
+<script type="text/javascript" src="../script/lib/pic/holder.js"></script>
+
+<!-- 加载主要js,很乱,后续优化 -->
+<script type="text/javascript" src="../script/lib/manage/main.js?v72"></script>

+ 90 - 0
app/factory/assets/pc/html/login.html

@@ -0,0 +1,90 @@
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <script class="include" system="" path="inc/" file="head">include()</script>
+  <link rel="stylesheet" href="../script/lib/layui/admin/style/login.css" media="all">
+</head>
+<body>
+
+  <div class="layadmin-user-login layadmin-user-display-show" id="LAY-user-login">
+    <form action="/auth.login" method="post" target="f1" class="form-horizontal m-t-20" id="login">
+    <input type="hidden" name="function" id="function" value="msg">
+    <input type="hidden" name="refer" id="refer" value="">
+    <iframe id="f1" name="f1" style="display:none;"></iframe>
+    <div class="layadmin-user-login-main">
+      <div class="layadmin-user-login-box layadmin-user-login-header">
+        <h2 id="name">dever</h2>
+      </div>
+      <div class="layadmin-user-login-box layadmin-user-login-body layui-form">
+        <div class="layui-form-item">
+          <label class="layadmin-user-login-icon layui-icon layui-icon-cellphone" for="LAY-user-login-cellphone"></label>
+          <input type="text" name="mobile" id="LAY-user-login-cellphone" lay-verify="phone" placeholder="手机号" class="layui-input">
+        </div>
+        <div class="layui-form-item">
+          <div class="layui-row">
+            <div class="layui-col-xs7">
+              <label class="layadmin-user-login-icon layui-icon layui-icon-vercode" for="LAY-user-login-vercode"></label>
+              <input type="text" name="mcode" id="LAY-user-login-vercode" lay-verify="required" placeholder="验证码" class="layui-input">
+            </div>
+            <div class="layui-col-xs5">
+              <div style="margin-left: 10px;">
+                <button type="button" class="layui-btn layui-btn-primary layui-btn-fluid" id="LAY-user-getsmscode">获取验证码</button>
+              </div>
+            </div>
+          </div>
+        </div>
+        <div class="layui-form-item">
+          <button class="layui-btn layui-btn-fluid" lay-submit lay-filter="LAY-user-login-submit">登 入</button>
+        </div>
+      </div>
+    </div>
+    
+    <div class="layui-trans layadmin-user-login-footer">
+      <p id="footer">© 2015-2020 dever.cc,Inc. Licensed under MIT license.</p>
+    </div>
+    
+    <div class="ladmin-user-login-theme" style="display:none;">
+      <script type="text/html" template>
+        <ul>
+          <li data-theme=""><img src="{{ layui.setter.base }}style/res/bg-none.jpg"></li>
+          <li data-theme="#03152A" style="background-color: #03152A;"></li>
+          <li data-theme="#2E241B" style="background-color: #2E241B;"></li>
+          <li data-theme="#50314F" style="background-color: #50314F;"></li>
+          <li data-theme="#344058" style="background-color: #344058;"></li>
+          <li data-theme="#20222A" style="background-color: #20222A;"></li>
+        </ul>
+      </script>
+    </div>
+    </form> 
+  </div>
+
+  <script class="include" system="" path="inc/" file="script">include()</script>
+  <script>
+  $(function()
+  {
+    $("#login").bind("keydown",function(e){
+      var theEvent = e || window.event;    
+      var code = theEvent.keyCode || theEvent.which || theEvent.charCode;    
+      if (code == 13) {    
+              $("#login").submit();
+          }
+     });
+  });
+
+  </script>
+  <script>
+  layui.config({
+    base: '../script/lib/layui/admin/' //静态资源所在路径
+    ,version: true
+  }).extend({
+    index: 'lib/index' //主入口模块
+  }).use(['index', 'user'], function(){
+    var $ = layui.$
+    ,setter = layui.setter
+    ,admin = layui.admin
+  });
+  </script>
+</body>
+</html>

+ 73 - 0
app/factory/assets/pc/html/order.html

@@ -0,0 +1,73 @@
+
+
+<!DOCTYPE html>
+<html>
+<head>
+  <script class="include" system="" path="inc/" file="head">include()</script>
+</head>
+<body>
+  
+  <div id="content_2" style="display:">  
+  <div class="layui-fluid">
+    <div class="layui-card">
+      <input type="hidden" name="url1" id="url" value="">
+
+      <form id="form1" name="form1" method="get" target="f1" action="">
+
+      <input type="hidden" name="function" id="function" value="msg">
+      <input type="hidden" name="l" id="l" value="order">
+      <input type="hidden" name="method" id="method" value="search">
+      <div id="search_param"></div> 
+      <iframe id="f1" name="f1" style="display:none;"></iframe>
+        <div class="layui-card-body" id="search_content" style="">
+
+          <div class="layui-form layui-card-header layuiadmin-card-header-auto">
+            <div class="layui-form-item">
+              <div id="search"><div style="margin-top:0px;"><div><div class="layui-inline"><div class="layui-input-inline"><input type="text" class="autoload_text layui-input update_value form-control layui-input " value="" name="order_num" id="order_num" autocomplete="off" placeholder="订单编号"></div></div><div class="layui-inline"><div class="layui-input-inline"><input type="text" value="" placeholder=">=订货时间" name="start" id="start" class="manage_date update_value form-control layui-input " autocomplete="off"></div></div><div class="layui-inline"><div class="layui-input-inline"><input type="text" value="" placeholder="<=订货时间" name="end" id="end" class="manage_date update_value form-control layui-input " autocomplete="off"></div></div><div class="layui-inline"><div class="layui-input-inline"><select lay-ignore="" xm-select-radio="" class="update_value form-control layui-input layui-select   " name="status" id="status"><option value="0" selected="">状态</option><option parent="" value="1">待支付</option><option parent="" value="2">待审核</option><option parent="" value="3">待发货</option><option parent="" value="4">待收货确认</option><option parent="" value="5">已完成</option><option parent="" value="6">已完成(有退款)</option><option parent="" value="7">已取消</option><option parent="" value="8">已退款</option><option parent="" value="11">已过期</option></select></div></div><div class="layui-inline"><input type="hidden" value="2" name="excel" id="excel" autocomplete="off"><button class="btn btn-primary layui-btn layuiadmin-btn-list" onclick="list_search($(this))" type="button" style="height: 38px;margin-left:0px;margin-top:-2px;">搜索</button></div></div></div></div>
+            </div>
+          </div>
+        </div>
+      <div class="layui-card-body">
+        <div style="padding-bottom: 10px;">
+          <a class="layui-btn layuiadmin-btn-list" data-type="add" id="list-parent" style="display:none" href="">返回上一页</a>
+
+          <a class="layui-btn layuiadmin-btn-list" data-type="add" id="list-add" href="http://zsmatest.nongxiaohe.com/package/manage/?l=project/database/update&amp;project=shop&amp;search_option_type=2&amp;table=buy_order&amp;menu=shop&amp;menu_id=99&amp;search_option_state=1" style="display:none">新增</a>
+
+          <span id="list-button"></span>
+        </div>
+        <div id="table_1" style="display:none"></div>
+        <div id="table_2" style="display:"> 
+          <table class="table layui-table layui-table-body" id="table">
+          <thead id="list-thead">
+              <tr><th data-priority="1"><input type="checkbox" class="checkbox-checkall" name="checkall" id="checkall" value="list" lay-ignore/></th><th data-priority="1">订单号</th><th data-priority="1">订货日期</th><th data-priority="1">订单收件人</th><th data-priority="1">发货日期</th><th data-priority="1">订单金额</th><th data-priority="1">订单状态</th><th data-priority="1" class="dever-manage">管理</th></tr>
+          </thead>
+          <tbody id="list-tbody"><tr><td><input type="checkbox" name="mul_where_id[]" class="checkbox-checkall-list" lay-ignore value="1"/></td><td>河北仓库1(18710001234)</td><td>测试工厂(15810090845)</td><td>F202111095151925058966182</td><td>38</td><td>2</td><td>待收货确认</td><td><a href="javascript:;" onclick="fastEdit($(this), 'http://zsmatest.nongxiaohe.com/package/manage/?l=project/database/list&amp;project=shop&amp;search_option_type=2&amp;page_type=2&amp;table=buy_order_goods&amp;project=shop&amp;order_id=1&amp;page_type=1&amp;menu=shop&amp;menu_id=99&amp;search_option_state=1', '查看详情', '', 1, 1)"><button type="button" class="btn btn-info btn-rounded waves-effect waves-light m-b-5 layui-btn layui-btn-xs">查看详情</button></a>&nbsp;&nbsp;</td></tr></tbody>
+      </table>
+
+      <div id="mul"></div>
+      <div id="page"></div>
+      <div class="dever_desc" id="desc" style="display:none;"></div>
+        </div>
+      </div>
+       </form></div>
+        </div>
+      
+    </div>
+
+  <script class="include" system="" path="inc/" file="script">include()</script>
+  <script>
+    layui.config({
+        base: '../script/lib/layui/admin/' //静态资源所在路径
+    }).extend({
+    formSelects: 'plugin/formselects/formselects',
+    index: 'lib/index' //主入口模块
+  }).use(['index', 'contlist', 'table', 'form', 'formSelects'], function(){
+    var table = layui.table;
+    var form = layui.form; 
+    var formSelects = layui.formSelects;
+    init();
+  });
+</script>
+</body>
+</html>
+

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 17 - 0
app/factory/assets/pc/html/order_send.html


Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 86 - 0
app/factory/assets/pc/html/order_view.html


+ 1 - 0
app/factory/database/member.php

@@ -15,6 +15,7 @@ return array
     # 显示给用户看的名称
     'lang' => '账号管理',
     'menu' => false,
+    'check' => 'mobile',
     # 数据结构
     'struct' => array
     (

+ 9 - 2
app/factory/lib/Order.php

@@ -16,6 +16,7 @@ class Order
         $goods = Dever::json_decode($goods);
 
         $this->data['price'] = 0;
+        $this->data['p_price'] = 0;
         $this->data['num'] = 0;
         $this->data['name'] = array();
         $factory_id = Dever::input('factory_id');
@@ -37,11 +38,15 @@ class Order
             $this->data['list'][$k]['buy_num'] = $n;
             $this->data['num'] += $n;
             if ($goods_sku) {
-                $price = $goods_sku['p_price'];
+                $p_price = $goods_sku['p_price'];
             } else {
-                $price = $this->data['list'][$k]['price'];
+                $p_price = 0;
             }
+            $this->data['list'][$k]['p_price'] = $p_price;
+
+            $price = $this->data['list'][$k]['price'];
             $this->data['price'] += $price * $n;
+            $this->data['p_price'] += $p_price * $n;
             $this->data['name'][] = $this->data['list'][$k]['name'];
         }
 
@@ -63,6 +68,7 @@ class Order
         $order_data['num'] = $this->data['num'];
         $order_data['info'] = $info;
         $order_data['price'] = $this->data['price'];
+        $order_data['p_price'] = $this->data['p_price'];
         $order_data['status'] = 3;
 
         $order_data['order_num'] = $this->getOrderId();
@@ -77,6 +83,7 @@ class Order
             $data['goods_id'] = $v['id'];
             $data['sku_id'] = $v['sku_id'];
             $data['price'] = $v['price'] * $v['buy_num'];
+            $data['p_price'] = $v['p_price'] * $v['buy_num'];
             $data['num'] = $v['buy_num'];
 
             $state = Dever::db('shop/buy_order_goods')->insert($data);

+ 22 - 0
app/factory/page/list.php

@@ -0,0 +1,22 @@
+<?php
+# 定义父节点的类型、属性等(整个page的节点)
+$html->parent = array('ul', 'class="pagination layui-box layui-laypage layui-laypage-default" style="display:inline-flex;"');
+# 定义子节点的类型、属性等(每个page的节点)
+$html->child = array('li', 'class=""');
+# 定义上一页的名称、样式
+$html->prev = array('上一页', 'btn p1 layui-laypage-prev');
+# 定义下一页的名称、样式
+$html->next = array('下一页', 'btn p2 layui-laypage-next');
+# 定义每个页数的样式,当前页的样式 样式写在哪 是否和旧样式共用
+$html->page = array('layui-laypage-curr', 'dever_page_disabled layui-disabled', '');
+# 定义开始页
+$html->start = array('首页', 'layui-laypage-first');
+# 定义结束页
+$html->end = array('末页', 'layui-laypage-last');
+# 定义跳转页
+$html->jump = '<li class="layui-laypage-skip"><input type="text" class="form-control" id="dever_page" style="margin-top:0px;width:50px;font-size: 12px;" value="'.$page->current().'" onclick="$(this).val(\'\')"/><a href="javascript:;" style="float:right;" class="" {click}>跳转</a></li><li><span class="layui-laypage-count">每页 '.$page->num.' 条,共 '.$page->total.' 条</span></li>';
+
+# 定义扩展信息
+$html->ext = '';
+# 生成
+$html->create();

+ 15 - 0
app/factory/template/pc/console.php

@@ -0,0 +1,15 @@
+<?php
+
+# 后续添加:自定义的待办、快捷方式、数据概览、推荐列表等
+
+$view
+->fetch('#system_name', 'factory/admin/auth.config#name')
+
+->fetch('#kf', 'factory/admin/auth.config#kf_name')
+->fetch('#kfphone', 'factory/admin/auth.config#phone')
+
+->fetch('#order_num', 'factory/admin/order.getData#order_num')
+->fetch('#cs_order_num', 'factory/admin/order.getData#cs_order_num')
+
+# display
+->display();

+ 17 - 0
app/factory/template/pc/home.php

@@ -0,0 +1,17 @@
+<?php
+
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+ */
+$view
+  
+->fetch('#LAY_app@class', 'factory/admin/auth.cookie#wrapper')       
+->fetch('.layadmin-iframe@src', 'factory/admin/auth.link#console')
+
+->fetch('#LAY_app_tabsheader li@lay-id', 'factory/admin/auth.link#console')
+->fetch('#LAY_app_tabsheader li@lay-attr', 'factory/admin/auth.link#console')
+     
+# display 
+->display();

+ 24 - 0
app/factory/template/pc/inc/head.php

@@ -0,0 +1,24 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+$name = '后台管理';
+
+$view
+
+# 定义名称
+->fetch('title', 					'factory/admin/auth.config#name')
+->fetch(array('meta@content', 1), 	'factory/admin/auth.config#name')
+->fetch(array('meta@content', 2), 	'factory/admin/auth.config#name')
+->fetch(array('meta@content', 3), 	'factory/admin/auth.config#name')
+ 
+# 初始化几个js变量
+->fetch('#script',	'<{Dever::script()}>config.lib="<{Dever::config("host")->public}>"')
+
+->fetch('#style', '<{Dever::load("factory/admin/auth.loading") ? ".content,.content-page{margin-left: 0px;min-height:auto}" : ""}>')
+
+# display
+->display();

+ 17 - 0
app/factory/template/pc/inc/menu.php

@@ -0,0 +1,17 @@
+<?php
+
+# 项目列表中的管理选项:
+# 数据库基本配置与数据管理、模板列表与生成、项目基本配置与管理等
+# 这里面很多都是demo
+$view
+
+->fetch('#dever-name', 'factory/admin/auth.config#name')
+
+# 首页的链接
+->fetch('#console-url@lay-href', 'factory/admin/auth.link#console')   
+
+# 项目列表
+->fetch('#LAY-system-side-menu', 'factory/admin/auth.getMenu')
+
+# display
+->display();

+ 23 - 0
app/factory/template/pc/inc/nav.php

@@ -0,0 +1,23 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| 头部
+|--------------------------------------------------------------------------
+*/
+
+$view
+
+->fetch('#nav@style', '<{Dever::load("factory/admin/auth.loading") ? "display:none;" : ""}>')
+
+->fetch('#dever-name', 'factory/admin/auth.config#name')
+
+->fetch('#manage-name', 'factory/admin/auth.info#name')
+
+->fetch('#edit_user@data-name', 'factory/admin/auth.info#name')
+
+->fetch('#edit_user@data-mobile', 'factory/admin/auth.info#mobile')
+
+->fetch('#logout-url@href', 'factory/admin/auth.link#logout')
+
+# display
+->display();

+ 14 - 0
app/factory/template/pc/inc/script.php

@@ -0,0 +1,14 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+
+$view
+
+# 定义名称
+->fetch('#myModalLabel@load', 					'init')
+
+# display
+->display();

+ 25 - 0
app/factory/template/pc/login.php

@@ -0,0 +1,25 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+$view
+
+# 定义名称
+->fetch('#name', 'factory/admin/auth.config#name')  
+
+# 定义尾部
+->fetch('#footer', 'factory/admin/auth.config#foot', 'none') 
+
+# 定义refer
+->fetch('#refer@value', 'factory/admin/auth.config#refer')
+
+# 定义form action
+->fetch('#login@action', 'factory/admin/auth.config#login_url')
+
+# 定义验证码获取接口
+->fetch('#LAY-user-getsmscode@url', 'factory/admin/auth.config#mcode_url')
+
+# display
+->display();

+ 24 - 0
app/factory/template/pc/order.php

@@ -0,0 +1,24 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+$view
+
+# 定义名称
+->fetch('#content_2@test', '1')  
+->fetch('#status', 'factory/admin/order.getSearch') 
+->fetch('#form1@action', 'factory/admin/order.getConfig#search') 
+
+->fetch('#list-tbody', 'factory/admin/order.getList') 
+
+
+->fetch('#order_num@value', '<{Dever::input("order_num")}>') 
+->fetch('#start@value', '<{Dever::input("start")}>') 
+->fetch('#end@value', '<{Dever::input("end")}>')  
+
+->fetch('#page','<{Dever::page("current")}>') 
+
+# display
+->display();

+ 16 - 0
app/factory/template/pc/order_send.php

@@ -0,0 +1,16 @@
+<?php
+/*
+|--------------------------------------------------------------------------
+| home
+|--------------------------------------------------------------------------
+*/
+$view
+
+# 定义名称
+->fetch('#update_service_id', 'factory/admin/order.getService') 
+->fetch('.form1@action', 'factory/admin/order.getConfig#send') 
+->fetch('#update_where_id@value', '<{Dever::input("id")}>') 
+
+
+# display
+->display();

+ 5 - 0
app/factory/template/pc/order_view.php

@@ -0,0 +1,5 @@
+<?php
+
+$view
+->fetch('#show', 'mshop/lib/buy.show')
+->display();

+ 109 - 75
app/mshop/lib/Buy.php

@@ -59,14 +59,44 @@ class Buy
         $where = $this->where($id);
         $status = Dever::input('status');
         if ($status) {
+            if ($status == 'refund') {
+                $where['refund_status'] = 2;
+            }
             $where['status'] = $status;
         }
 
+        $order_num = Dever::input('order_num');
+        if ($order_num) {
+            $where['order_num'] = $order_num;
+        }
+
+        $refund_status = Dever::input('refund_status');
+        if ($refund_status) {
+            $where['refund_status'] = $refund_status;
+        }
+
         $result['search_value'] = $where;
         $result['search_value']['day'] = $day = Dever::input('day');
         if ($day) {
-            $where['start'] = Dever::maketime($day . ' 00:00:00');
-            $where['end'] = Dever::maketime($day . ' 23:59:59');
+            if ($this->type > 10) {
+                $where['start_o'] = Dever::maketime($day . ' 00:00:00');
+                $where['end_o'] = Dever::maketime($day . ' 23:59:59');
+            } else {
+                $where['start'] = Dever::maketime($day . ' 00:00:00');
+                $where['end'] = Dever::maketime($day . ' 23:59:59');
+            }
+        }
+
+        $result['search_value']['start'] = $start = Dever::input('start');
+        $result['search_value']['end'] = $end = Dever::input('end');
+        if ($start && $end) {
+            if ($this->type > 10) {
+                $where['start_o'] = Dever::maketime($start);
+                $where['end_o'] = Dever::maketime($end);
+            } else {
+                $where['start'] = Dever::maketime($start);
+                $where['end'] = Dever::maketime($end);
+            }
         }
 
         $result['order'] = Dever::db($this->table)->getAll($where);
@@ -452,6 +482,8 @@ class Buy
     {
         $id = Dever::input('order_id');
 
+        $type = Dever::input('type', 1);
+
         $config = Dever::db('shop/buy_order')->config;
 
         $info = Dever::db('shop/buy_order')->one($id);
@@ -462,59 +494,61 @@ class Buy
         $status = $config['status'][$info['status']];
 
         $tk = Dever::db('shop/buy_order_refund')->find(array('order_id' => $info['id'], 'type' => 1));
+
+        $opertime = date('Y-m-d H:i', $info['operdate']);
         
         $html = '[基本信息]:<table class="layui-table"><thead><tr><th style="width:20%">项目</th><th style="width:80%">详情</th></tr> </thead><tbody>';
 
         $html .= '<tr>
-          <td>订单号</td>
-          <td>'.$this->table(false, array(array($info['order_num']))).'</td>
+          <td>基本信息</td>
+          <td>'.$this->table(false, array(array('订单号:' . $info['order_num'], '金额:' . $info['price'], '数量:' . $info['num']))).'</td>
+
+        </tr>';
+
+        if ($type == 1 && $tk && $tk['process'] == 1) {
+            $status = '申请' . $tk_status[$tk['status']];
+        }
+
+        $html .= '<tr>
+          <td>订单状态</td>
+          <td>'.$this->table(false, array(array($status))).'</td>
+
+        </tr>';
+
+        $html .= '<tr>
+          <td>订货时间</td>
+          <td>'.$this->table(false, array(array($opertime))).'</td>
 
         </tr>';
 
         if ($info['type'] == 1) {
             $type_info = Dever::db('shop/info')->find($info['type_id']);
-            $html .= '<tr>
-              <td>门店信息</td>
-              <td>'.$this->table(false, array(array('门店名称:' . $type_info['name'], '联系人:' . $type_info['truename'], '联系电话:' . $type_info['mobile']))).'</td>
-
-            </tr>';
         } elseif ($info['type'] == 2) {
             $type_info = Dever::db('store/info')->find($info['type_id']);
-            $html .= '<tr>
-              <td>仓库信息</td>
-              <td>'.$this->table(false, array(array('仓库名称:' . $type_info['name'], '联系人:' . $type_info['truename'], '联系电话:' . $type_info['mobile']))).'</td>
-
-            </tr>';
         } elseif ($info['type'] == 3) {
             $type_info = Dever::db('store/info')->find($info['type_id']);
-            $html .= '<tr>
-              <td>工厂信息</td>
-              <td>'.$this->table(false, array(array('工厂名称:' . $type_info['name'], '联系人:' . $type_info['truename'], '联系电话:' . $type_info['mobile']))).'</td>
-
-            </tr>';
         }
-        
 
-        if ($info['source_id'] > 0) {
-            if ($info['source_type'] == 2) {
-                # 仓库
-                $store = Dever::db('store/info')->find($info['source_id']);
+        $html .= '<tr>
+          <td>配送信息</td>
+          <td>'.$this->table(false, array(array($type_info['name']  . '' . $type_info['truename'] . '' . $type_info['mobile'] . '' . $type_info['address']))).'</td>
 
-                $html .= '<tr>
-                  <td>供应商信息</td>
-                  <td>'.$this->table(false, array(array('仓库名称:' . $store['name'], '联系人:' . $store['truename'], '联系电话:' . $store['mobile']))).'</td>
+        </tr>';
 
-                </tr>';
+
+        if ($type == 1 && $info['source_id'] > 0) {
+            if ($info['source_type'] == 2) {
+                # 仓库
+                $source_info = Dever::db('store/info')->find($info['source_id']);
             } elseif ($info['source_type'] == 3) {
                 # 工厂
-                $factory = Dever::db('factory/info')->find($info['source_id']);
-
-                $html .= '<tr>
+                $source_info = Dever::db('factory/info')->find($info['source_id']);
+            }
+            $html .= '<tr>
                   <td>供应商信息</td>
-                  <td>'.$this->table(false, array(array('工厂名称:' . $factory['name'], '联系人:' . $factory['truename'], '联系电话:' . $factory['mobile']))).'</td>
+                  <td>'.$this->table(false, array(array($source_info['name']  . '' . $source_info['truename'] . '' . $source_info['mobile']))).'</td>
 
                 </tr>';
-            }
         }
         
         if ($info['info']) {
@@ -525,52 +559,44 @@ class Buy
             </tr>';
         }
 
+        $html .= '</tbody></table>';
+
         $url = Dever::url('lib/buy.refund', 'mshop');
         if (!$info['refund_cash']) {
             $info['refund_cash'] = 0;
         }
 
-        if ($info['refund_cash'] > 0) {
+        if ($info['refund_cash'] > 0 && $tk) {
             
-            if ($tk) {
+            if ($tk['process'] == 1) {
+                $process = '<a href="javascript:;" onclick="audit('.$tk['id'].', 2, \''.$url.'\')" class="layui-btn">通过</a><a href="javascript:;" onclick="audit('.$tk['id'].', 3, \''.$url.'\')" class="layui-btn layui-btn-danger">驳回</a>';
+            } else {
                 $process = $tk_process[$tk['process']];
-                $process = '';
-
-                if ($tk['process'] == 1) {
-                    $status = '申请' . $tk_status[$tk['status']];
-                    $process .= '&nbsp;&nbsp;<a href="javascript:;" onclick="audit('.$tk['id'].', 2, \''.$url.'\')" class="layui-btn">通过</a><a href="javascript:;" onclick="audit('.$tk['id'].', 3, \''.$url.'\')" class="layui-btn layui-btn-danger">驳回</a>';
-
-                }
-                $desc = array();
-                $desc['原因'] = $tk['desc'];
-                if ($tk['pic']) {
-                    $desc['图片'] = '';
-                    $pic = explode(',', $tk['pic']);
-                    foreach ($pic as $k => $v) {
-                        $desc['图片'] .= '<a href="'.$v.'" target="_blank"><img src="'.$v.'" width="100"/></a>';
-                    }
+            }
+            $desc = array();
+            $desc['退款原因'] = $tk['desc'];
+            if ($tk['pic']) {
+                $desc['退款图片'] = '';
+                $pic = explode(',', $tk['pic']);
+                foreach ($pic as $k => $v) {
+                    $desc['图片'] .= '<a href="'.$v.'" target="_blank"><img src="'.$v.'" width="100"/></a>';
                 }
-                $tk['desc'] = '<a href="javascript:layer.alert($(\'#desc_content\').html());">查看</a><span id="desc_content" style="display:none">'.Dever::table($desc).'</span>';
             }
+            $tk['desc'] = '<a href="javascript:showAlert($(\'#desc_content\').html());">查看</a><span id="desc_content" style="display:none">'.Dever::table($desc).'</span>';
 
-            $html .= '<tr>
-              <td>订单信息</td>
-              <td>'.$this->table(array('金额', '数量', '订单状态', '退款金额', '退款原因', '退款审核'), array(array($info['price'], $info['num'], $status, $info['refund_cash'], $tk['desc'], $process))).'</td>
-            </tr>';
+            $html .= '[退款信息]:';
 
-        } else {
-            $html .= '<tr>
-              <td>订单信息</td>
-              <td>'.$this->table(array('金额', '数量', '订单状态'), array(array($info['price'], $info['num'], $status))).'</td>
-            </tr>';
-        }
-        
+            $head = array('退款金额', '数量', '退款进度', '退款原因');
 
-        $html .= '</tbody></table>';
+            $body = array(array($info['refund_cash'], $info['num'], $process, $tk['desc']));
+
+            $html .= $this->table($head, $body);
+
+        }
 
         $info['ps_info'] = Dever::db('shop/buy_order_ps')->find(array('order_id' => $info['id']));
         if ($info['ps_info']) {
-            $info['ps_info']['service_name'] = '商家自送';
+            $info['ps_info']['service_name'] = '供应商自送';
             $info['ps_info']['cdate'] = date('Y-m-d H:i', $info['ps_info']['cdate']);
             if ($info['ps_info']['ydate']) {
                 $info['ps_info']['ydate'] = date('Y-m-d H:i', $info['ps_info']['ydate']);
@@ -585,7 +611,7 @@ class Buy
                 $info['ps_info']['service_name'] = $service['name'];
             }
 
-            $html .= '[配送信息]:';
+            $html .= '[物流信息]:';
 
             $head = array('名称', '单号', '费用', '数量', '重量', '体积', '配货员', '打包员', '状态');
 
@@ -619,7 +645,7 @@ class Buy
                 }
                 $status .= '&nbsp;&nbsp;<a href="javascript:layer.alert($(\'#desc_content\').html());">查看原因</a><span id="desc_content" style="display:none">'.Dever::table($desc).'</span>';
 
-                if ($tk['process'] == 1) {
+                if ($type == 1 && $tk['process'] == 1) {
                     $status .= '&nbsp;&nbsp;<a href="javascript:;" onclick="audit('.$tk['id'].', 2, \''.$url.'\')" class="layui-btn">通过</a><a href="javascript:;" onclick="audit('.$tk['id'].', 3, \''.$url.'\')" class="layui-btn layui-btn-danger">驳回</a>';
                 }
             }
@@ -778,7 +804,7 @@ class Buy
 
         if ($this->order_num > 0) {
             if ($this->order_num == 1) {
-                Dever::db('shop/buy_order')->update(array('where_id' => $order['id'], 'status' => 3, 'source_type' => $find[0], 'source_id' => implode('', $find[1])));
+                Dever::db('shop/buy_order')->update(array('where_id' => $order['id'], 'status' => 3, 'source_type' => $find[0], 'source_id' => implode('', $find[1]), 'p_price' => $find[3][0], 'operdate' => time()));
 
                 Dever::db('shop/buy_order')->delete($find[2][0]);
                 Dever::db('shop/buy_order_goods')->delete(array('order_id' => $find[2][0]));
@@ -814,8 +840,9 @@ class Buy
         $find = array();
         $type_id = array();
         $id = array();
+        $p_price = array();
         if (!$store) {
-            return array(2, $type_id, $id);
+            return array(2, $type_id, $id, $p_price);
         }
         foreach ($store as $k => $v) {
             $where['store_id'] = $v['id'];
@@ -826,22 +853,24 @@ class Buy
             if ($sku) {
                 if ($goods['num'] <= $sku['total']) {
                     # 如果库存符合,直接下单即可,生成仓库订单
-                    $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 2, $where['store_id'], $goods['price'], $goods['num'], $where['goods_id'], $where['sku_id']);
+                    $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 2, $where['store_id'], $goods['price'], $goods['price'], $goods['num'], $where['goods_id'], $where['sku_id']);
                     if ($state) {
                         $type_id[] = $where['store_id'];
                         $id[] = $state;
+                        $p_price[] = $goods['price'];
                         break;
                     }
                 } elseif ($state == 1 && $sku['total'] > 0) {
                     # 如果库存不够,从这个仓库扣下一部分,剩余的从另外仓库处理
                     $goods['num'] = $goods['num'] - $sku['total'];
                     # 生成仓库订单
-                    $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 2, $where['store_id'], $goods['price'], $sku['total'], $where['goods_id'], $where['sku_id']);
+                    $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 2, $where['store_id'], $goods['price'], $goods['price'], $sku['total'], $where['goods_id'], $where['sku_id']);
                     if (!$state) {
                         $goods['num'] = $goods['num'] + $sku['total'];
                     } else {
                         $type_id[] = $where['store_id'];
                         $id[] = $state;
+                        $p_price[] = $goods['price'];
                     }
                     continue;
 
@@ -852,7 +881,7 @@ class Buy
             }
         }
 
-        return array(2, $type_id, $id);
+        return array(2, $type_id, $id, $p_price);
     }
 
     private function factory($order_id, $order_num, $shop, $factory, $goods)
@@ -860,8 +889,9 @@ class Buy
         $find = array();
         $type_id = array();
         $id = array();
+        $p_price = array();
         if (!$factory) {
-            return array(3, $type_id, $id);
+            return array(3, $type_id, $id, $p_price);
         }
 
         foreach ($factory as $k => $v) {
@@ -871,10 +901,11 @@ class Buy
             $sku = Dever::db('factory/goods_sku')->select($where);
 
             if ($sku) {
-                $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 3, $where['factory_id'], $goods['price'], $goods['num'], $where['goods_id'], $where['sku_id']);
+                $state = $this->createOrder($order_id, $order_num, 1, $shop['id'], 3, $where['factory_id'], $goods['price'], $sku['p_price'], $goods['num'], $where['goods_id'], $where['sku_id']);
                 if ($state) {
                     $type_id[] = $where['factory_id'];
                     $id[] = $state;
+                    $p_price[] = $sku['p_price'];
                     break;
                 }
             } else {
@@ -882,11 +913,11 @@ class Buy
             }
         }
 
-        return array(3, $type_id, $id);
+        return array(3, $type_id, $id, $p_price);
     }
 
     # 生成拆单的订单
-    private function createOrder($order_id, $order_num, $type, $type_id, $source_type, $source_id, $price, $num, $goods_id, $sku_id)
+    private function createOrder($order_id, $order_num, $type, $type_id, $source_type, $source_id, $price, $p_price, $num, $goods_id, $sku_id)
     {
         $where['parent_order_id'] = $order_id;
         $where['type'] = $type;
@@ -904,6 +935,7 @@ class Buy
             $data['operdate'] = time();
             $data['status'] = 3;
             $data['price'] = $price;
+            $data['p_price'] = $p_price;
             $data['num'] = $num;
             $id = $state = Dever::db('shop/buy_order')->insert($data);
         } else {
@@ -911,6 +943,7 @@ class Buy
 
             $data['where_id'] = $id;
             $data['price'] = $info['price'] + $price;
+            $data['p_price'] = $info['p_price'] + $p_price;
             $data['num'] = $info['num'] + $num;
             $state = Dever::db('shop/buy_order')->update($data);
         }
@@ -922,6 +955,7 @@ class Buy
                 $goods['goods_id'] = $goods_id;
                 $goods['sku_id'] = $sku_id;
                 $goods['price'] = $price;
+                $goods['p_price'] = $p_price;
                 $goods['num'] = $num;
                 Dever::db('shop/buy_order_goods')->insert($goods);
             }

+ 45 - 5
app/shop/database/buy_order.php

@@ -13,6 +13,12 @@ $status = array
     11 => '已过期',
 );
 
+$refund_status = array
+(
+    1 => '未申请',
+    2 => '已申请',
+);
+
 $type = array
 (
     1 => '门店',
@@ -20,6 +26,8 @@ $type = array
     3 => '工厂',
 );
 
+$search_option_type = Dever::input('search_option_type', 1);
+
 return array
 (
     # 表名
@@ -115,12 +123,23 @@ return array
         'price'      => array
         (
             'type'      => 'varchar-50',
-            'name'      => '购买价格',
-            'default'   => '',
+            'name'      => '购买价格-销售价',
+            'default'   => '0',
             'desc'      => '购买价格',
             'match'     => 'option',
             'update'    => 'text',
-            'list'        => true,
+            'list'      => $search_option_type == 1 ? true : false,
+        ),
+
+        'p_price'     => array
+        (
+            'type'      => 'varchar-50',
+            'name'      => '购买价格-出厂价,给厂家看的',
+            'default'   => '0',
+            'desc'      => '购买价格',
+            'match'     => 'option',
+            'update'    => 'text',
+            'list'      => $search_option_type == 2 ? true : false,
         ),
 
         'num'        => array
@@ -144,6 +163,17 @@ return array
             'update'    => 'text',
         ),
 
+        'refund_status'        => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '申请退款类型',
+            'default'   => '1',
+            'desc'      => '申请退款类型',
+            'match'     => 'is_numeric',
+            'option'    => $refund_status,
+            //'search'    => 'select',
+        ),
+
         'info'      => array
         (
             'type'      => 'varchar-300',
@@ -231,18 +261,22 @@ return array
             'option' => array
             (
                 'name' => array('yes', 'like'),
+                'order_num' => array('yes', 'like'),
                 'type' => 'yes',
                 'type_id' => 'yes',
                 'source_type' => 'yes',
                 'source_id' => 'yes',
                 'start' => array('yes-cdate', '>='),
                 'end' => array('yes-cdate', '<='),
+                'start_o' => array('yes-operdate', '>='),
+                'end_o' => array('yes-operdate', '<='),
                 'status' => array('yes', 'in'),
+                'refund_status' => 'yes',
                 'state' => 1,
             ),
             'type' => 'all',
             'order' => array('cdate' => 'desc'),
-            'page' => array(10, 'list'),
+            'page' => array(20, 'list'),
             'col' => '*',
         ),
 
@@ -254,6 +288,8 @@ return array
             (
                 'start' => array('yes-cdate', '>='),
                 'end' => array('yes-cdate', '<='),
+                'start_o' => array('yes-operdate', '>='),
+                'end_o' => array('yes-operdate', '<='),
                 'type' => 'yes',
                 'type_id' => 'yes',
                 'source_type' => 'yes',
@@ -273,6 +309,8 @@ return array
             (
                 'start' => array('yes-cdate', '>='),
                 'end' => array('yes-cdate', '<='),
+                'start_o' => array('yes-operdate', '>='),
+                'end_o' => array('yes-operdate', '<='),
                 'type' => 'yes',
                 'type_id' => 'yes',
                 'source_type' => 'yes',
@@ -281,7 +319,7 @@ return array
                 'state' => 1,
             ),
             'type' => 'one',
-            'col' => 'sum(price) as total',
+            'col' => 'sum(price-refund_cash) as total',
         ),
 
         # 获取商品数量
@@ -292,6 +330,8 @@ return array
             (
                 'start' => array('yes-cdate', '>='),
                 'end' => array('yes-cdate', '<='),
+                'start_o' => array('yes-operdate', '>='),
+                'end_o' => array('yes-operdate', '<='),
                 'type' => 'yes',
                 'type_id' => 'yes',
                 'source_type' => 'yes',

+ 10 - 0
app/shop/database/buy_order_goods.php

@@ -70,6 +70,16 @@ return array
             'list'        => true,
         ),
 
+        'p_price'     => array
+        (
+            'type'      => 'varchar-50',
+            'name'      => '价格',
+            'default'   => '0',
+            'desc'      => '价格',
+            'match'     => 'option',
+            'update'    => 'text',
+        ),
+
         'num'        => array
         (
             'type'      => 'int-11',

+ 4 - 4
app/shop/database/buy_order_ps.php

@@ -91,7 +91,7 @@ return array
             'name'      => '打包员',
             'default'   => '',
             'desc'      => '打包员',
-            'match'     => 'is_string',
+            'match'     => 'option',
             'update'    => 'text',
         ),
 
@@ -101,7 +101,7 @@ return array
             'name'      => '包裹重量-单位:克',
             'default'   => '',
             'desc'      => '包裹重量',
-            'match'     => 'is_string',
+            'match'     => 'option',
             'update'    => 'text',
         ),
 
@@ -111,7 +111,7 @@ return array
             'name'      => '包裹体积-单位:立方厘米',
             'default'   => '',
             'desc'      => '包裹体积',
-            'match'     => 'is_string',
+            'match'     => 'option',
             'update'    => 'text',
         ),
 
@@ -122,7 +122,7 @@ return array
             'name'      => '包裹数量',
             'default'   => '',
             'desc'      => '包裹数量',
-            'match'     => 'is_numeric',
+            'match'     => 'option',
             'search'    => 'select',
             'list'        => true,
         ),

+ 17 - 0
app/shop/database/sell_order.php

@@ -36,6 +36,12 @@ $status = array
 
 //1待支付2支付成功3处理中4待确认5已完成6已完成(有退款)7已取消8已退款11已过期
 
+$refund_status = array
+(
+    1 => '未申请',
+    2 => '已申请',
+);
+
 return array
 (
     # 表名
@@ -183,6 +189,17 @@ return array
             'update'    => 'text',
         ),
 
+        'refund_status'        => array
+        (
+            'type'      => 'tinyint-1',
+            'name'      => '申请退款类型',
+            'default'   => '1',
+            'desc'      => '申请退款类型',
+            'match'     => 'is_numeric',
+            'option'    => $refund_status,
+            //'search'    => 'select',
+        ),
+
         'kou_cash'      => array
         (
             'type'      => 'varchar-50',

+ 5 - 0
app/shop/lib/Refund.php

@@ -153,6 +153,7 @@ class Refund
                 $update = array();
                 $update['where_id'] = $data['id'];
                 $update['refund_cash'] = $data['refund_cash'] + $cash;
+                $update['refund_status'] = 2;
                 if ($dec > 0) {
                     $update['num'] = $data['num'] - $dec;
                 }
@@ -203,6 +204,10 @@ class Refund
             }
             $update['refund_cash'] = $order['refund_cash'] - $info['cash'];
             $update['where_id'] = $order['id'];
+            if ($update['refund_cash'] <= 0) {
+                $update['refund_status'] = 1;
+            }
+            
             $state = Dever::db($this->order_table)->update($update);
         } else {
             if ($info['type'] == 2) {

+ 1 - 0
app/store/database/member.php

@@ -15,6 +15,7 @@ return array
     # 显示给用户看的名称
     'lang' => '账号管理',
     'menu' => false,
+    'check' => 'mobile',
     # 数据结构
     'struct' => array
     (

+ 1 - 1
config/base.php

@@ -144,7 +144,7 @@ $config['template'] = array
     'relation' => array
     (
         # 首页启动屏幕
-        'home' => 'page',
+        'home' => 'home',
     ),
     
 );

+ 21 - 0
main/database/factory_config.php

@@ -45,6 +45,16 @@ return array
             'update'    => 'textarea',
         ),
 
+        'kf_name'      => array
+        (
+            'type'      => 'varchar-100',
+            'name'      => '客服姓名',
+            'default'   => '',
+            'desc'      => '客服姓名',
+            'match'     => 'option',
+            'update'    => 'text',
+        ),
+
         'phone'      => array
         (
             'type'      => 'varchar-100',
@@ -55,6 +65,17 @@ return array
             'update'    => 'text',
         ),
 
+        'foot'      => array
+        (
+            'type'      => 'text-255',
+            'name'      => '底部信息',
+            'default'   => '',
+            'desc'      => '底部信息',
+            'match'     => 'option',
+            'update'    => 'editor',
+            'key'       => '1',
+        ),
+
         'state'     => array
         (
             'type'      => 'tinyint-1',

Některé soubory nejsou zobrazeny, neboť je v těchto rozdílových datech změněno mnoho souborů