setter
							parent
							
								
									4aab76d038
								
							
						
					
					
						commit
						335a675f53
					
				|  | @ -15,6 +15,8 @@ class Index extends Base | |||
|         'miniProgramSetting', | ||||
|         'clearFootmarks', | ||||
|         'baseConfig', | ||||
|         'purchaseinstructions', | ||||
|         'addWechat', | ||||
|         'work', | ||||
|         'kf', | ||||
|         'hotKeywords', | ||||
|  | @ -91,12 +93,50 @@ class Index extends Base | |||
|         try { | ||||
|             CConfig::load('extra/statement', 'statement'); | ||||
|             $content = config('statement')['content'] ?? ''; | ||||
|             $pregRule = "/<[img|IMG].*?src=[\'|\"][\/storage]{1}(.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))[\'|\"].*?[\/]?>/"; | ||||
|             $content  = preg_replace($pregRule, '<img src="' . $this->request->domain() . '/${1}" style="max-width:100%">', (string)$content  ); | ||||
| 
 | ||||
|             return $this->json(0, 'success', ['content' => $content]); | ||||
|         } catch (Exception $e) { | ||||
|             return $this->json(5000, '获取免责声明失败'); | ||||
|         } | ||||
|     } | ||||
|     /** | ||||
|      * 购买须知 | ||||
|      * | ||||
|      * @return Json | ||||
|      */ | ||||
|     public function purchaseinstructions(): Json | ||||
|     { | ||||
|         try { | ||||
|             CConfig::load('extra/purchaseinstructions', 'purchaseinstructions'); | ||||
|             $content = config('purchaseinstructions')['content'] ?? ''; | ||||
|             $pregRule = "/<[img|IMG].*?src=[\'|\"][\/storage]{1}(.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))[\'|\"].*?[\/]?>/"; | ||||
|             $content  = preg_replace($pregRule, '<img src="' . $this->request->domain() . '/${1}" style="max-width:100%">', (string)$content  ); | ||||
|             return $this->json(0, 'success', ['content' => $content]); | ||||
|         } catch (Exception $e) { | ||||
|             return $this->json(5000, '获取失败'); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 添加微信 | ||||
|      * | ||||
|      * @return Json | ||||
|      */ | ||||
|     public function addWechat(): Json | ||||
|     { | ||||
|         try { | ||||
|             CConfig::load('extra/addwechat', 'addwechat'); | ||||
|             $res = config('addwechat')?? []; | ||||
|             $pregRule = "/<[img|IMG].*?src=[\'|\"][\/storage]{1}(.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))[\'|\"].*?[\/]?>/"; | ||||
|             $res["content"]  = preg_replace($pregRule, '<img src="' . $this->request->domain() . '/${1}" style="max-width:100%">', (string)$res["content"]  ); | ||||
| 
 | ||||
|             return $this->json(0, 'success', $res); | ||||
|         } catch (Exception $e) { | ||||
|             return $this->json(5000, '获取添加微信失败'); | ||||
|         } | ||||
|     } | ||||
|     /** | ||||
|      * 关于我们 | ||||
|      * | ||||
|  | @ -107,6 +147,9 @@ class Index extends Base | |||
|         try { | ||||
|             CConfig::load('extra/about', 'about'); | ||||
|             $res = config('about')?? []; | ||||
|             $pregRule = "/<[img|IMG].*?src=[\'|\"][\/storage]{1}(.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))[\'|\"].*?[\/]?>/"; | ||||
|             $res["content"]  = preg_replace($pregRule, '<img src="' . $this->request->domain() . '/${1}" style="max-width:100%">', (string)$res["content"]  ); | ||||
| 
 | ||||
|             return $this->json(0, 'success', $res); | ||||
|         } catch (Exception $e) { | ||||
|             return $this->json(5000, '获取关于我们失败'); | ||||
|  |  | |||
|  | @ -119,13 +119,14 @@ class Config extends Base | |||
|                 unset($item); | ||||
|                 $data['footBar'] = $footBarList; | ||||
|             } | ||||
|             // 底部默认导航
 | ||||
|             $data['footBarIcons'] = [ | ||||
|                 ['key' => 'home', 'name' => '首页', 'aux' => '图标大小为 40 * 40; 第1图为默认图,第2图为高亮图', 'multi' => 1], | ||||
|                 ['key' => 'category', 'name' => '分类', 'aux' => '图标大小为 40 * 40; 第1图为默认图,第2图为高亮图', 'multi' => 1], | ||||
|                 ['key' => 'my', 'name' => '我的', 'aux' => '图标大小为 40 * 40; 第1图为默认图,第2图为高亮图', 'multi' => 1], | ||||
|                 ['key' => 'cart', 'name' => '购物车', 'aux' => '图标大小为 120 * 120', 'multi' => 0], | ||||
|             ]; | ||||
| //            // 底部默认导航
 | ||||
| //            $data['footBarIcons'] = [
 | ||||
| //                ['key' => 'home', 'name' => '首页', 'aux' => '图标大小为 40 * 40; 第1图为默认图,第2图为高亮图', 'multi' => 1],
 | ||||
| //                ['key' => 'category', 'name' => '分类', 'aux' => '图标大小为 40 * 40; 第1图为默认图,第2图为高亮图', 'multi' => 1],
 | ||||
| //                ['key' => 'my', 'name' => '我的', 'aux' => '图标大小为 40 * 40; 第1图为默认图,第2图为高亮图', 'multi' => 1],
 | ||||
| //                ['key' => 'my', 'name' => '我的',  'multi' => 1],
 | ||||
| //                ['key' => 'cart', 'name' => '购物车', 'aux' => '图标大小为 120 * 120', 'multi' => 0],
 | ||||
| //            ];
 | ||||
|             $this->data = array_merge($this->data, $data); | ||||
|             return $this->view(); | ||||
|         } | ||||
|  |  | |||
|  | @ -43,7 +43,7 @@ class Index extends Base | |||
|         $item = AccountRepository::getInstance()->findById($id); | ||||
| 
 | ||||
|         $statusList    = [ | ||||
|             Order::STATUS_SHIPPED, Order::STATUS_PAID, Order::STATUS_COMPLETED | ||||
|             Order::STATUS_SHIPPED, Order::STATUS_ORDER_PLACED, Order::STATUS_COMPLETED | ||||
|         ]; | ||||
|         $consumption   = OrderRepository::getInstance()->userOrderList($id, [], 1, 0, $statusList); | ||||
|         $orderNum      = 0; | ||||
|  |  | |||
|  | @ -14,6 +14,7 @@ use PhpOffice\PhpSpreadsheet\IOFactory; | |||
| use \PhpOffice\PhpSpreadsheet\Shared\Date as  PDate; | ||||
| use PhpOffice\PhpSpreadsheet\Style\Alignment;   //设置对齐方式
 | ||||
| use PhpOffice\PhpSpreadsheet\Spreadsheet; | ||||
| use PhpOffice\PhpSpreadsheet\Style\Color; | ||||
| use PhpOffice\PhpSpreadsheet\Writer\Xlsx; | ||||
| use think\db\exception\DataNotFoundException; | ||||
| use think\db\exception\DbException; | ||||
|  | @ -541,6 +542,35 @@ class Order extends Base | |||
|         } | ||||
|         return $this->json(4000, '非法请求'); | ||||
|     } | ||||
|     /** | ||||
|      * 修改订单里面的sku信息 | ||||
|      * | ||||
|      * @return Json | ||||
|      * @throws Exception | ||||
|      */ | ||||
|     public function editStatus() | ||||
|     { | ||||
|         $id     = input('id/d'); | ||||
| 
 | ||||
|         if(!$order = OrderModel::findById($id)){ | ||||
|             return $this->json(4001,"订单不存在"); | ||||
|         } | ||||
|         if ($this->request->isPost()) { | ||||
|             $status = input("status/s"); | ||||
|             Db::startTrans(); | ||||
|             try { | ||||
|                 $order->save(["status"=>$status]); | ||||
|                 Db::commit(); | ||||
|                 return $this->json(); | ||||
|             } catch (Exception $e) { | ||||
|                 return $this->json(4001, $e->getError()); | ||||
|             } | ||||
|         } | ||||
|         $this->data['statusList']       = OrderModel::statusTextList(); | ||||
|         $this->data['status']           = $order["status"]; | ||||
|         $this->data['id']               = $id; | ||||
|         return $this->view(); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|      * 导出订单信息 | ||||
|  | @ -567,11 +597,16 @@ class Order extends Base | |||
|         $spreadsheet->getActiveSheet()->setTitle('订单信息'); | ||||
| 
 | ||||
|         //设置默认行高。
 | ||||
|         $sheet->getDefaultRowDimension()->setRowHeight(25); | ||||
|         //设置A1单元格
 | ||||
|         $sheet->getStyle('A1')->applyFromArray($styleArray); | ||||
|         $sheet->getDefaultRowDimension()->setRowHeight(30); | ||||
| 
 | ||||
| 
 | ||||
|         //需要设置单元格  上下  水平居中的单元格
 | ||||
|         $needSetapplyFromArray = [ | ||||
|             "A1","C1","D1","A2","B2","C2","D2","E2", | ||||
|         ]; | ||||
|         // 需要设置的单元格宽度
 | ||||
|         $setColWidth = [ | ||||
|             "A"=>"30", | ||||
|             "A"=>"45", | ||||
|             "B"=>"30", | ||||
|             "C"=>"30", | ||||
|             "D"=>"30", | ||||
|  | @ -582,10 +617,76 @@ class Order extends Base | |||
|         } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|         //合并单元格
 | ||||
|         $spreadsheet->getActiveSheet()->mergeCells('A1:B1'); | ||||
| 
 | ||||
|         $sheet->setCellValue('A1', "日期:".$order->created_at); | ||||
| 
 | ||||
|         $sheet->setCellValue('A1', "日 期 : ".$order->created_at); | ||||
|         $sheet->setCellValue('C1', "订单号 : "); | ||||
|         $sheet->setCellValue('D1', " " . $order->coding); | ||||
| 
 | ||||
|         $sheet->setCellValue('A2', "商 品 名称"); | ||||
|         $sheet->setCellValue('B2', "单 位"); | ||||
|         $sheet->setCellValue('C2', "数 量"); | ||||
|         $sheet->setCellValue('D2', "单 价"); | ||||
|         $sheet->setCellValue('E2', "小 计"); | ||||
| 
 | ||||
|         //开始写入订单商品数据
 | ||||
|         $startRow = 3;//从第四行开始写入
 | ||||
|         $skusCount = count($order->skus->toArray()); | ||||
|         foreach ($order->skus as $key => $item){ | ||||
|             $sheet->setCellValue('A'.($startRow+$key), $item["spu_name"]); | ||||
|             $sheet->setCellValue('B'.($startRow+$key), $item["sku_unit"]); | ||||
|             $sheet->setCellValue('C'.($startRow+$key), $item["num"]); | ||||
|             $sheet->setCellValue('D'.($startRow+$key), $item["price"]); | ||||
|             $sheet->setCellValue('E'.($startRow+$key), $item["subtotal"]); | ||||
|             $needSetapplyFromArray[]='A'.($startRow+$key); | ||||
|             $needSetapplyFromArray[]='B'.($startRow+$key); | ||||
|             $needSetapplyFromArray[]='C'.($startRow+$key); | ||||
|             $needSetapplyFromArray[]='D'.($startRow+$key); | ||||
|             $needSetapplyFromArray[]='E'.($startRow+$key); | ||||
|         } | ||||
| 
 | ||||
|         $needSetapplyFromArray[] = 'D' . ($startRow + $skusCount); | ||||
|         $needSetapplyFromArray[] = 'E' . ($startRow + $skusCount); | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|         $sheet->setCellValue('D' . ($startRow + $skusCount), "合 计"); | ||||
|         $sheet->setCellValue('E' . ($startRow + $skusCount), $order->original_price); | ||||
| 
 | ||||
|         //单元格文字样式设置
 | ||||
|         //	getStyle 获取单元格样式
 | ||||
|         //	getFont 获取单元格文字样式
 | ||||
|         //	setBold 设置文字粗细
 | ||||
|         //	setName 设置文字字体
 | ||||
|         //	setSize 设置文字大小
 | ||||
|         $sheet->getStyle('D' . ($startRow + $skusCount))->getFont()->setBold(true)->setSize(18); | ||||
|         $sheet->getStyle('E' . ($startRow + $skusCount))->getFont()->setBold(true)->setSize(18); | ||||
|         $sheet->getStyle('D1')->getFont()->setBold(true); | ||||
|         $sheet->getStyle('A2:E2')->getFont()->setBold(true); | ||||
|         $sheet->getStyle('C3:E' . ($startRow + $skusCount - 1))->getFont()->setBold(true); | ||||
|         $sheet->getStyle('A1:E' . ($startRow + $skusCount - 1))->getFont()->setSize(12); | ||||
|         $sheet->getStyle('A' . (($startRow + $skusCount + 1)))->getFont()->setSize(12); | ||||
|         //设置字体颜色
 | ||||
|         $sheet->getStyle('D' . ($startRow + $skusCount))->getFont()->getColor()->setARGB(Color::COLOR_RED); | ||||
|         $sheet->getStyle('E' . ($startRow + $skusCount))->getFont()->getColor()->setARGB(Color::COLOR_RED); | ||||
| 
 | ||||
|         $spreadsheet->getActiveSheet()->mergeCells('A' . ($startRow + $skusCount + 1) . ":" . 'E'.($startRow + $skusCount + 2)); | ||||
|         $sheet->setCellValue('A' . (($startRow + $skusCount + 1)), | ||||
|             "婚 期:" . $order->wedding_date | ||||
|             . "  ,希望到货时间:" . $order->expected_delivery_date | ||||
|             . "  ,收 货 地 址:" . $order->address | ||||
|             . "  ,联 系 人 :" . $order->contacts | ||||
|             . "  ,联 系 人 电 话:" . $order->phone | ||||
|         ); | ||||
|         $needSetapplyFromArray[] = 'A' . (($startRow + $skusCount + 1)); | ||||
| 
 | ||||
|         //设置单元格  上下  水平居中
 | ||||
|         foreach ($needSetapplyFromArray as $key => $item) { | ||||
|             $sheet->getStyle($item)->applyFromArray($styleArray); | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
|  | @ -600,10 +701,10 @@ class Order extends Base | |||
|         if(!is_dir($path)){ | ||||
|             mkdir($path); | ||||
|         } | ||||
|         $fileName = $order->contacts . "_" . $order->phone . "_" . $order->coding . ".xlsx"; | ||||
|         $downloadFileName = $order->contacts . "_" . $order->phone . "_" . $order->coding ; | ||||
|         $fileName = $downloadFileName . ".xlsx"; | ||||
|         $filepath = $path. $fileName; | ||||
|         $writer->save($filepath); | ||||
| 
 | ||||
| 
 | ||||
|         return download($filepath,$downloadFileName ); | ||||
|     } | ||||
| } | ||||
										
											Binary file not shown.
										
									
								
							|  | @ -1,24 +0,0 @@ | |||
| -----BEGIN CERTIFICATE----- | ||||
| MIID8DCCAtigAwIBAgIUZUkH4c7FU29Hq2ArHG5O6V18jmgwDQYJKoZIhvcNAQEL | ||||
| BQAwXjELMAkGA1UEBhMCQ04xEzARBgNVBAoTClRlbnBheS5jb20xHTAbBgNVBAsT | ||||
| FFRlbnBheS5jb20gQ0EgQ2VudGVyMRswGQYDVQQDExJUZW5wYXkuY29tIFJvb3Qg | ||||
| Q0EwHhcNMjEwNzE0MDIwNTEyWhcNMjYwNzEzMDIwNTEyWjCBgTETMBEGA1UEAwwK | ||||
| MTYwNTA5MDExMTEbMBkGA1UECgwS5b6u5L+h5ZWG5oi357O757ufMS0wKwYDVQQL | ||||
| DCTlm5vlt53lpKflkJHlpKnor5rnp5HmioDmnInpmZDlhazlj7gxCzAJBgNVBAYM | ||||
| AkNOMREwDwYDVQQHDAhTaGVuWmhlbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC | ||||
| AQoCggEBAM7Hs28z9lIdDimJ/4rVqhy3Q5nOKDNaOOoMjlFkIWTJ1DFt5VtMPb4u | ||||
| vHI7l2OqZBzh4p3equG0BrRzNKkRol3CggRDMC/PP/zqui/3h73eAXPyS6trWX5M | ||||
| M7Mhy71ycW0lzhMWvuv0rB512iBBK3KX9BR3XbxrDlt8EhiuBCSEa0FuVN7rpudf | ||||
| fKsmSmUiPlvbgRjT74CsVEJW6EOmuvEa3IcOH/pjbdok2g5KMEJ9wyKvzDW1ZvSn | ||||
| HZO7Ey0ILkeFoTuXA7o8FU5NvvREy73S0ALD2XSHkZz+2VGZObhETvb6A13Jzmnq | ||||
| 3Mnt3h7LNwtROso6BXBX599hVJcn/qsCAwEAAaOBgTB/MAkGA1UdEwQCMAAwCwYD | ||||
| VR0PBAQDAgTwMGUGA1UdHwReMFwwWqBYoFaGVGh0dHA6Ly9ldmNhLml0cnVzLmNv | ||||
| bS5jbi9wdWJsaWMvaXRydXNjcmw/Q0E9MUJENDIyMEU1MERCQzA0QjA2QUQzOTc1 | ||||
| NDk4NDZDMDFDM0U4RUJEMjANBgkqhkiG9w0BAQsFAAOCAQEALrCZJlVuoxU+v5Ld | ||||
| YojgFIuBNTurNHk+s71UtJvbLYTMwxNtU/C9i7hHI7iErHfNTi7D+UmWf0NGClv7 | ||||
| naE/aN7w3zDu1jhMpl+r0ldqOtwKtuYv5VjOG6BcXfeXhDMBsR+Ip3AarT87wkTF | ||||
| bhlggQVdYeVQnRpNNEdWPhJ66H+7l7ahou4iw1ofLrYswstVCh0lyV7HdLz5VS29 | ||||
| N9j6NdFJQ1j4+En0/PKrQRuuF8Ld0/Do+vsTgyOT8SuPY2AJ7Dj6UTHkiUk77unK | ||||
| p+zs0n9ftgARIx0ACXrkaZBwr3LdP5wOEZrEJYAhTVHK5KGhhRt77JAG6sa6rmeA | ||||
| JA0BaQ== | ||||
| -----END CERTIFICATE----- | ||||
|  | @ -1,28 +0,0 @@ | |||
| -----BEGIN PRIVATE KEY----- | ||||
| MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDOx7NvM/ZSHQ4p | ||||
| if+K1aoct0OZzigzWjjqDI5RZCFkydQxbeVbTD2+LrxyO5djqmQc4eKd3qrhtAa0 | ||||
| czSpEaJdwoIEQzAvzz/86rov94e93gFz8kura1l+TDOzIcu9cnFtJc4TFr7r9Kwe | ||||
| ddogQStyl/QUd128aw5bfBIYrgQkhGtBblTe66bnX3yrJkplIj5b24EY0++ArFRC | ||||
| VuhDprrxGtyHDh/6Y23aJNoOSjBCfcMir8w1tWb0px2TuxMtCC5HhaE7lwO6PBVO | ||||
| Tb70RMu90tACw9l0h5Gc/tlRmTm4RE72+gNdyc5p6tzJ7d4eyzcLUTrKOgVwV+ff | ||||
| YVSXJ/6rAgMBAAECggEAInhd7CLAZC3dx4TuqYk2w3S1ezVHtE/M/w86xkyn2HJg | ||||
| wiCsxExwWnzWA0D12rJz3/Cz41dUKy3klD5EQA7lfzXGkMlWhhHJe/LxOL/NzBPv | ||||
| MBHrFVde4tP3Jlxy51DloalUsg/vocv2yVkiFJBomsDD+olvgdJi4VNMfPq9TAzN | ||||
| 8UAu4oZjkEEL9+6tm5/Ds1Y8znaXMJvfiYBMaxOgxb5cpijK3T3yzHLn8DrKVO7k | ||||
| ypTuwaf4F6rtgIdKBJSH634Y+O20PewMTeciD7VpDOnr/XU9P0Bf0tN51YS0/OiD | ||||
| XdSngSln07hS+GjVaayaan2cc9pDZIxu6a8KnypHoQKBgQD+MtcAmcD4O1aLOFng | ||||
| /OuK5+H8BXk1dNnkI4wNrLCGHKe4K6V5Y6PD2OaqmKVRw0sCQmQg1O5TnHrnnP7x | ||||
| tvLnmx3iApTaxUiIYb8YgDuD7kCy6/ks6dVotKb0xNFu0hOUDJvGx3HWcfDpFggb | ||||
| pP5ZPw4eVKU/CXdTG6LNDtWAOwKBgQDQPtXwCGZc4KZngHfIyy8N7GtN/imA0cE8 | ||||
| L2LuwZuYsMJJrD2UzYPLCQ2Hy//GKDAoq8Qywddp9Z16wDxdK5oOaVdPVPiSdWzI | ||||
| 75HcfgfnVOb9BkQzqlyzIZT3P8rBswCF5zRI3saL/SDDcCKkNmh0v3GmQUNXYhPj | ||||
| MMDXkrSEUQKBgDoaXNKiUl1rEskXxFOM/Dnv7tOwXJg/cV6YUXb+tgqxmhSaxWQN | ||||
| xm0Jsw/jfEZIIWkOy9xFT4SFDALM++k8LCGMbzQt6uBmn8GstgVfqjrpxpgfIAGI | ||||
| IWOhh1gDdOuj0R3SE/lHtVmTCcH9azUGbazwoMWGC49xFnlEo93DOkHpAoGAPK2S | ||||
| eNZ5vSZYVmBAhultVIlG2vrr7PUxcO/9y8PuKpeWhREDAJDBji+dGax/YqXjInaq | ||||
| PH/u3JkMwe+xpxRFV12qaxs/Mq20fPgRcEXo16cNhzyEMum5CRkH5uNXmQknZdzw | ||||
| hysifzfKjCfocCDKXvpJi0AI9zVExjY2epnsr4ECgYEA+PLEEgSiTrsCZzHtMNbY | ||||
| x6BD4lpnkTcdpWuxzvp/3ABQTqnu9EVBWiuuYEq7IrdrtMHEvyz0SETwEZlH3/Bo | ||||
| s0dPKVqTXkDgheCs/yduoO2X+6F0Y3yrQOliBYabLbsnDAUTxWcxhzNTE0o9DSYA | ||||
| n346GwplxOSB2KyUh48JIPg= | ||||
| -----END PRIVATE KEY----- | ||||
|  | @ -1,18 +0,0 @@ | |||
| 欢迎使用微信支付! | ||||
| 附件中的三份文件(证书pkcs12格式、证书pem格式、证书密钥pem格式),为接口中强制要求时需携带的证书文件。 | ||||
| 证书属于敏感信息,请妥善保管不要泄露和被他人复制。 | ||||
| 不同开发语言下的证书格式不同,以下为说明指引: | ||||
|     证书pkcs12格式(apiclient_cert.p12) | ||||
|         包含了私钥信息的证书文件,为p12(pfx)格式,由微信支付签发给您用来标识和界定您的身份 | ||||
|         部分安全性要求较高的API需要使用该证书来确认您的调用身份 | ||||
|         windows上可以直接双击导入系统,导入过程中会提示输入证书密码,证书密码默认为您的商户号(如:1900006031) | ||||
|     证书pem格式(apiclient_cert.pem) | ||||
|         从apiclient_cert.p12中导出证书部分的文件,为pem格式,请妥善保管不要泄漏和被他人复制 | ||||
|         部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 | ||||
|         您也可以使用openssl命令来自己导出:openssl pkcs12 -clcerts -nokeys -in apiclient_cert.p12 -out apiclient_cert.pem | ||||
|     证书密钥pem格式(apiclient_key.pem) | ||||
|         从apiclient_cert.p12中导出密钥部分的文件,为pem格式 | ||||
|         部分开发语言和环境,不能直接使用p12文件,而需要使用pem,所以为了方便您使用,已为您直接提供 | ||||
|         您也可以使用openssl命令来自己导出:openssl pkcs12 -nocerts -in apiclient_cert.p12 -out apiclient_key.pem | ||||
| 备注说明:   | ||||
|         由于绝大部分操作系统已内置了微信支付服务器证书的根CA证书,  2018年3月6日后, 不再提供CA证书文件(rootca.pem)下载  | ||||
|  | @ -10,10 +10,10 @@ | |||
| .layui-form-item-lg .layui-input-block{margin-left: 190px;} | ||||
| 
 | ||||
| .footBar-item {float: left; width: 47%;margin-top: 10px;margin-right:10px;border-bottom: 1px dashed #f5f5f5;} | ||||
| .footBar-item .footBar-img{ min-width: 140px;height: 140px; float: left;} | ||||
| .footBar-item .footBar-img{ min-width: 140px;height: 140px; float: left; margin-bottom: 15px} | ||||
| .footBar-item .footBar-img .preview-list{min-width: 100px;height: 100%;display: inline-block;float: left; border:1px solid #f2f2f2;} | ||||
| .footBar-item .footBar-img .preview-list .preview-li{ width: auto;height: 100%;display: inline-block;vertical-align:top;margin-right: 10px;} | ||||
| .footBar-item .footBar-img .preview-list .preview-li img{width: 90px; height: 90px;} | ||||
| .footBar-item .footBar-img .preview-list .preview-li img{width: 90px; height: 90px;background: rgba(0,0,0,0.5)} | ||||
| .footBar-item .img-change-operate{margin-top: 5px;} | ||||
| .footBar-item .img-change-operate button{margin-top:8px;} | ||||
| .footBar-item .footBar-content{min-width: 200px; float: left; margin-left: 10px;} | ||||
|  |  | |||
|  | @ -46,13 +46,13 @@ layui.use(['laytpl', 'table', 'jquery', 'form', 'miniTab', 'xmSelect', 'laydate' | |||
|             cols: [[ | ||||
|                 {type: 'checkbox'}, | ||||
|                 {field: 'id', width: 80, title: '编号'}, | ||||
|                 {field: 'nickname', width: 150, title: '昵称'}, | ||||
|                 {field: 'real_name', width: 100, title: '真实姓名'}, | ||||
|                 {field: 'mobile', width: 120, title: '电话'}, | ||||
|                 {field: 'tag', minWidth: 100, title: '客户标签'}, | ||||
|                 {field: 'created_at', minWidth: 180, title: '注册时间'}, | ||||
|                 {field: 'gender_text', minWidth: 80, title: '性别'}, | ||||
|                 {templet: '#row-operate', fixed: "right", minWidth: 250, title: '操作'}, | ||||
|                 {field: 'nickname',  title: '昵称'}, | ||||
|                 {field: 'real_name',title: '真实姓名'}, | ||||
|                 {field: 'mobile', title: '电话'}, | ||||
|                 // {field: 'tag', minWidth: 100, title: '客户标签'},
 | ||||
|                 {field: 'created_at', title: '注册时间'}, | ||||
|                 {field: 'gender_text',  title: '性别'}, | ||||
|                 {templet: '#row-operate', fixed: "right", title: '操作'}, | ||||
|             ]], | ||||
|             done: function () { | ||||
|                 Tools.setInsTb(insTb); | ||||
|  |  | |||
|  | @ -148,7 +148,7 @@ layui.use(['laytpl', 'table', 'jquery', 'form', 'miniTab', 'xmSelect', 'laydate' | |||
|                 // {field: 'express_code', title: '快递公司代号', minWidth: 150, hide: true},
 | ||||
|                 // {field: 'express_name', title: '快递公司名称', minWidth: 150, hide: true},
 | ||||
|                 // {field: 'accepted_at', title: '确认收货时间', width: 160, hide: true},
 | ||||
|                 { fixed: 'right', title: '操作', templet: '#row-operate'} | ||||
|                 { fixed: 'right', title: '操作', minWidth:220,templet: '#row-operate'} | ||||
|             ]], | ||||
|             done: function () { | ||||
|                 Tools.setInsTb(insTb); | ||||
|  |  | |||
|  | @ -34,17 +34,17 @@ | |||
|                                     </div> | ||||
|                                 </div> | ||||
| 
 | ||||
|                                 <div class="layui-inline"> | ||||
|                                     <label class="layui-form-label">客户标签</label> | ||||
|                                     <div class="layui-input-inline"> | ||||
|                                         <select name="tag"> | ||||
|                                             <option value=""></option> | ||||
|                                             {foreach $tagList as $tag} | ||||
|                                             <option value="{$tag['id'] ?? ''}">{$tag['name'] ?? ''}</option> | ||||
|                                             {/foreach} | ||||
|                                         </select> | ||||
|                                     </div> | ||||
|                                 </div> | ||||
| <!--                                <div class="layui-inline">--> | ||||
| <!--                                    <label class="layui-form-label">客户标签</label>--> | ||||
| <!--                                    <div class="layui-input-inline">--> | ||||
| <!--                                        <select name="tag">--> | ||||
| <!--                                            <option value=""></option>--> | ||||
| <!--                                            {foreach $tagList as $tag}--> | ||||
| <!--                                            <option value="{$tag['id'] ?? ''}">{$tag['name'] ?? ''}</option>--> | ||||
| <!--                                            {/foreach}--> | ||||
| <!--                                        </select>--> | ||||
| <!--                                    </div>--> | ||||
| <!--                                </div>--> | ||||
| 
 | ||||
|                                 <div class="layui-inline"> | ||||
|                                     <button type="submit" class="layui-btn layui-btn-primary"  lay-submit lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button> | ||||
|  | @ -61,15 +61,20 @@ | |||
|     </div> | ||||
| </div> | ||||
| 
 | ||||
| <!--    <a class="layui-btn layui-btn-primary layui-btn-xs" --> | ||||
| <!--   data-href="/manager/account/index/detail.html?id={{d.id}}" --> | ||||
| <!--   data-title="客户详情"--> | ||||
| <!--   lay-event="detail">详情</a>--> | ||||
| <!-- 操作列 --> | ||||
| <script type="text/html" id="row-operate"> | ||||
|     <a class="layui-btn layui-btn-primary layui-btn-xs" data-href="/manager/account/index/detail.html?id={{d.id}}" data-title="客户详情" lay-event="detail">详情</a> | ||||
| 
 | ||||
| 
 | ||||
|     <a class="layui-btn layui-btn-danger layui-btn-xs" data-href="/manager/account/index/edit.html?id={{d.id}}" data-title="用户编辑" lay-event="detail">编辑</a> | ||||
| </script> | ||||
| 
 | ||||
| <!-- toolbar --> | ||||
| <script type="text/html" id="toolbar-tpl"> | ||||
|     <a class="layui-btn layui-btn-primary layui-btn-sm" data-table-refresh lay-event="refresh"><i class="fa fa-refresh"></i></a> | ||||
|     <a class="layui-btn layui-btn-normal layui-btn-sm" data-href="/manager/account/index/tag.html" data-width="40%" data-height="60%" data-title="分配客户标签" lay-event="tag">分配客户标签</a> | ||||
| <!--    <a class="layui-btn layui-btn-normal layui-btn-sm" data-href="/manager/account/index/tag.html" data-width="40%" data-height="60%" data-title="分配客户标签" lay-event="tag">分配客户标签</a>--> | ||||
| </script> | ||||
| <script src="__MANAGER__/js/account/account.js?v={:mt_rand()}"></script> | ||||
|  | @ -4,6 +4,28 @@ | |||
|         <form class="layui-form " data-action="{:url('manager.config/'.$Request.action)}"> | ||||
|             关于我们 | ||||
|             <hr> | ||||
| 
 | ||||
|             <div class="layui-form-item"> | ||||
|                 <label class="layui-form-label required">公司名称</label> | ||||
|                 <div class="layui-input-block"> | ||||
|                     <input type="text" name="company_name" lay-verify="required" value="{$item.company_name ?? ''}" lay-reqtext="公司名称不能为空" placeholder="请输入详细地址" class="layui-input"> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="layui-form-item"> | ||||
|                 <label class="layui-form-label required">联系人</label> | ||||
|                 <div class="layui-input-block"> | ||||
|                     <input type="text" name="contacts" lay-verify="required" value="{$item.contacts ?? ''}" lay-reqtext="联系人不能为空" placeholder="请输入详细地址" class="layui-input"> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="layui-form-item"> | ||||
|                 <label class="layui-form-label required">联系电话</label> | ||||
|                 <div class="layui-input-block"> | ||||
|                     <input type="text" name="phone" lay-verify="required" value="{$item.phone ?? ''}" lay-reqtext="联系电话不能为空" placeholder="请输入详细地址" class="layui-input"> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <!-- 详细地址 --> | ||||
|             <div class="layui-form-item"> | ||||
|                 <label class="layui-form-label required">地址</label> | ||||
|  |  | |||
|  | @ -0,0 +1,45 @@ | |||
| {layout name="manager/layout" /} | ||||
| <div class="layui-card layui-col-md12"> | ||||
|     <div class="layui-card-body"> | ||||
|         <form class="layui-form " data-action="{:url('manager.config/'.$Request.action)}"> | ||||
|             添加微信 | ||||
|             <hr> | ||||
| 
 | ||||
| 
 | ||||
|             <!-- 我二维码 --> | ||||
|             <div class="layui-form-item layui-row field-div current-field-cover" > | ||||
|                 <label class="layui-form-label">二维码:</label> | ||||
|                 <div class="layui-inline layui-col-xs12 layui-col-md8"> | ||||
|                     <div class="layui-row upload-file-div"> | ||||
|                         <div class=" layui-col-xs12 layui-col-md8"> | ||||
|                             <input class="layui-input upload-file-value" name="wechat" type="text" value="{$item.wechat ?? ''}"> | ||||
|                             <div class="layui-form-mid layui-word-aux"> | ||||
|                                 图片尺寸:500*500 | ||||
|                             </div> | ||||
|                         </div> | ||||
|                         <div class="layui-col-xs12 layui-col-md3"> | ||||
|                                 <span> | ||||
|                                     <button type="button" class="layui-btn layui-btn-danger upload-btn"> | ||||
|                                         <i class="fa fa-upload"></i> 上传 | ||||
|                                     </button> | ||||
|                                 </span> | ||||
|                         </div> | ||||
|                         <ul class="layui-row layui-col-xs12 layui-col-md9 preview-list layui-col-space5"></ul> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <div class="layui-form-item"> | ||||
|                 <label class="layui-form-label">内容</label> | ||||
|                 <div class="layui-input-block editor-text"> | ||||
|                     <div class="editor"></div> | ||||
|                     <textarea name="content" class="layui-textarea layui-hide">{$item.content??''}</textarea> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <div class="layui-form-item"> | ||||
|                 <div class="layui-input-block"> | ||||
|                     <button type="button" class="layui-btn layui-btn-normal" data-url="/manager/config/{$Request.action}" lay-submit lay-filter="saveConfig">保存</button> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </form> | ||||
|     </div> | ||||
| </div> | ||||
|  | @ -20,21 +20,28 @@ | |||
|             <div class="layui-form-item"> | ||||
|                 <label class="layui-form-label">底部导航设置</label> | ||||
|                 <div class="layui-input-block"> | ||||
|                     {foreach $footBarIcons as $i => $icon} | ||||
|                     {foreach $footBar as $i => $icon} | ||||
|                     <div class="footBar-item upload-file-div"> | ||||
|                         <div class="footBar-img"> | ||||
|                             <ul class="preview-list"></ul> | ||||
|                             <input type="hidden" class="upload-file-value" name="footBar[{$i}][icon]" value="{:$footBar[$i]['icon'] ?? ''}"> | ||||
|                         </div> | ||||
|                         <div class="footBar-content"> | ||||
|                             <input type="hidden" name="footBar[{$i}][key]" value="{:$footBar[$i]['key'] ?? $icon['key']}"> | ||||
|                             <input type="text" name="footBar[{$i}][name]" autocomplete="off" placeholder="ICON标题" class="layui-input" value="{:$footBar[$i]['name'] ?? $icon['name']}" readonly> | ||||
|                             <div class="img-change-operate"> | ||||
|                                 <button type="button" class="layui-btn layui-btn-info upload-btn" data-multiple="{$icon['multi']}"> | ||||
|                                     <i class="fa fa-upload"></i> 上传 | ||||
|                                 </button> | ||||
| 
 | ||||
|                         <div class="layui-row"> | ||||
|                             <div class="footBar-img "> | ||||
|                                 <ul class="preview-list"></ul> | ||||
|                                 <input type="hidden" class="upload-file-value" name="footBar[{$i}][icon]" value="{:$footBar[$i]['icon'] ?? ''}"> | ||||
|                             </div> | ||||
|                         </div> | ||||
| 
 | ||||
|                         <div class="layui-row"> | ||||
|                             <div class="footBar-content layui-row"> | ||||
|                                 <input type="hidden" name="footBar[{$i}][key]" value="{:$footBar[$i]['key'] ?? $icon['key']}"> | ||||
|                                 <input type="text" name="footBar[{$i}][name]" autocomplete="off" placeholder="ICON标题" class="layui-input" value="{:$footBar[$i]['name'] ?? $icon['name']}" readonly> | ||||
| 
 | ||||
|                                 <div class="img-change-operate"> | ||||
|                                     <button type="button" class="layui-btn layui-btn-info upload-btn" data-multiple="1"> | ||||
|                                         <i class="fa fa-upload"></i> 上传 | ||||
|                                     </button> | ||||
|                                 </div> | ||||
|                                 <p class="word-aux">图标大小为 40 * 40; 第1图为默认图,第2图为高亮图</p> | ||||
|                             </div> | ||||
|                             <p class="word-aux">{$icon['aux']}</p> | ||||
|                         </div> | ||||
|                     </div> | ||||
|                     {/foreach} | ||||
|  |  | |||
|  | @ -0,0 +1,21 @@ | |||
| {layout name="manager/layout" /} | ||||
| <div class="layui-card layui-col-md12"> | ||||
|     <div class="layui-card-body"> | ||||
|         <form class="layui-form " data-action="{:url('manager/config/purchaseinstructions')}"> | ||||
|             免责声明 | ||||
|             <hr> | ||||
|             <div class="layui-form-item"> | ||||
|                 <label class="layui-form-label">内容</label> | ||||
|                 <div class="layui-input-block editor-text"> | ||||
|                     <div class="editor"></div> | ||||
|                     <textarea name="content" class="layui-textarea layui-hide">{$item.content??''}</textarea> | ||||
|                 </div> | ||||
|             </div> | ||||
|             <div class="layui-form-item"> | ||||
|                 <div class="layui-input-block"> | ||||
|                     <button type="button" class="layui-btn layui-btn-normal" data-url="/manager/config/purchaseinstructions" lay-submit lay-filter="saveConfig">保存</button> | ||||
|                 </div> | ||||
|             </div> | ||||
|         </form> | ||||
|     </div> | ||||
| </div> | ||||
|  | @ -18,11 +18,11 @@ | |||
|                 <div class="layui-form-item layui-form-item-lg"> | ||||
|                     <label class="layui-form-label">小程序 appSecret</label> | ||||
|                     <div class="layui-input-block"> | ||||
|                         <input class="layui-input" type="password" name="applets_appSecret" value="{$item.applets_appSecret ?? ''}" placeholder="小程序 appSecret" /> | ||||
|                         <input class="layui-input" type="text" name="applets_appSecret" value="{$item.applets_appSecret ?? ''}" placeholder="小程序 appSecret" /> | ||||
|                     </div> | ||||
|                 </div> | ||||
| 
 | ||||
|                 <div class="layui-form-item layui-form-item-lg"> | ||||
|                 <div class="layui-form-item layui-form-item-lg layui-hide"> | ||||
|                     <label class="layui-form-label">支付回调</label> | ||||
|                     <div class="layui-input-block"> | ||||
|                         <input class="layui-input" type="text" name="applets_notify_url" value="{$item.applets_notify_url ?? ''}" placeholder="支付回调地址" /> | ||||
|  | @ -55,7 +55,7 @@ | |||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="config-group-item"> | ||||
|             <div class="config-group-item layui-hide"> | ||||
|                 <div class="config-group-title">微信支付</div> | ||||
|                 <hr> | ||||
|                 <div class="layui-form-item layui-form-item-lg"> | ||||
|  | @ -106,7 +106,7 @@ | |||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="config-group-item"> | ||||
|             <div class="config-group-item layui-hide"> | ||||
|                 <div class="config-group-title">企业微信</div> | ||||
|                 <hr> | ||||
|                 <div class="layui-form-item layui-form-item-lg"> | ||||
|  |  | |||
|  | @ -0,0 +1,29 @@ | |||
| {layout name="manager/layout" /} | ||||
| <div class="layuimini-container location-tag-page"> | ||||
|     <div class="layuimini-main"> | ||||
|         <div class="layui-form layuimini-form"> | ||||
|             <input type="hidden" name="id" value="{$id}"> | ||||
| 
 | ||||
|             <div class="layui-form-item"> | ||||
|                 <label class="layui-form-label required">状态</label> | ||||
|                 <div class="layui-input-block"> | ||||
| 
 | ||||
|                     {foreach $statusList as $key =>$item} | ||||
|                     <input type="radio" name="status" value="{$key}" title="{$item}" {if $status== $key}checked="" {/if}> | ||||
|                     {/foreach} | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="layui-form-item"> | ||||
|                 <div class="layui-form-item"> | ||||
|                     <div class="layui-input-block"> | ||||
|                         <button class="layui-btn layui-btn-normal" data-url="/manager/mall/order/edit-status" lay-submit | ||||
|                                 lay-filter="saveBtn">确认保存 | ||||
|                         </button> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|         </div> | ||||
|     </div> | ||||
| </div> | ||||
|  | @ -73,7 +73,16 @@ | |||
| 
 | ||||
| <!-- 操作列 --> | ||||
| <script type="text/html" id="row-operate"> | ||||
|   <a class="layui-btn layui-btn-primary layui-btn-xs" data-href="/manager/mall/order/info.html?id={{d.id}}" data-title="订单详情" lay-event="info">详情</a> | ||||
| 
 | ||||
|   <a class="layui-btn  layui-btn-xs" data-href="/manager/mall/order/edit-status.html?id={{d.id}}" | ||||
|      data-width="40%" data-height="60%" data-title="修改状态" lay-event="edit-status">修改状态</a> | ||||
| 
 | ||||
|   <a class="layui-btn  layui-btn-xs" onclick="parent.window.open('/manager/mall/order/export-order-info?id={{d.id}}')" | ||||
|      data-title="导出" >导出</a> | ||||
| 
 | ||||
|   <a class="layui-btn layui-btn-primary layui-btn-xs" data-href="/manager/mall/order/info.html?id={{d.id}}" | ||||
|      data-title="订单详情" lay-event="info">详情</a> | ||||
| 
 | ||||
|   {{# if (d.status == 'paid' || d.status == 'shipped') { | ||||
|     let sendTitle = d.status == 'paid' ? '发货' : '重发'; | ||||
|   }} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue