初始上传
This commit is contained in:
27
addon/printer/shop/controller/BaseController.php
Executable file
27
addon/printer/shop/controller/BaseController.php
Executable file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\printer\shop\controller;
|
||||
|
||||
use app\shop\controller\BaseShop;
|
||||
|
||||
class BaseController extends BaseShop
|
||||
{
|
||||
|
||||
public function fetch($template = '', $replace = [], $config = [])
|
||||
{
|
||||
$config = array_merge($config, [
|
||||
'SHOP_ADDON_CSS' => __ROOT__ . '/addon/printer/shop/view/public/css',
|
||||
'SHOP_ADDON_IMG' => __ROOT__ . '/addon/printer/shop/view/public/img',
|
||||
'SHOP_ADDON_JS' => __ROOT__ . '/addon/printer/shop/view/public/js',
|
||||
]);
|
||||
return parent::fetch($template, $replace, $config);
|
||||
}
|
||||
}
|
||||
269
addon/printer/shop/controller/Printer.php
Executable file
269
addon/printer/shop/controller/Printer.php
Executable file
@@ -0,0 +1,269 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\printer\shop\controller;
|
||||
|
||||
use addon\printer\model\PrinterOrder;
|
||||
use app\model\store\Store;
|
||||
use addon\printer\model\PrinterTemplate;
|
||||
use addon\printer\model\Printer as PrinterModel;
|
||||
use app\model\order\OrderCommon as OrderCommonModel;
|
||||
|
||||
class Printer extends BaseController
|
||||
{
|
||||
|
||||
/*
|
||||
* 小票打印列表
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
$model = new PrinterModel();
|
||||
|
||||
if (request()->isJson()) {
|
||||
$condition[] = [ 'site_id', '=', $this->site_id ];
|
||||
$page = input('page', 1);
|
||||
$page_size = input('page_size', PAGE_LIST_ROWS);
|
||||
$list = $model->getPrinterPageList($condition, $page, $page_size, 'printer_id desc');
|
||||
return $list;
|
||||
}
|
||||
return $this->fetch("printer/lists");
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加小票打印
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$model = new PrinterModel();
|
||||
if (request()->isJson()) {
|
||||
$data = [
|
||||
'site_id' => $this->site_id,
|
||||
'printer_name' => input('printer_name', ''),
|
||||
'brand' => input('brand', ''),
|
||||
'printer_code' => input('printer_code', ''),
|
||||
'printer_key' => input('printer_key', ''),
|
||||
'open_id' => input('open_id', ''),
|
||||
'apikey' => input('apikey', ''),
|
||||
'store_id' => input('store_id', ''),
|
||||
'printer_type' => input('printer_type', ''),
|
||||
|
||||
//订单
|
||||
'order_pay_open' => input('order_pay_open', 0),
|
||||
'order_pay_template_id' => input('order_pay_template_id', 0),
|
||||
'order_pay_print_num' => input('order_pay_print_num', 1),
|
||||
'order_pay_order_type' => input('order_pay_order_type', ''),
|
||||
|
||||
'take_delivery_open' => input('take_delivery_open', 0),
|
||||
'take_delivery_template_id' => input('take_delivery_template_id', 0),
|
||||
'take_delivery_print_num' => input('take_delivery_print_num', 1),
|
||||
'take_delivery_order_type' => input('take_delivery_order_type', ''),
|
||||
|
||||
'manual_open' => input('manual_open', 0),
|
||||
'template_id' => input('template_id', 0),
|
||||
'print_num' => input('print_num', 1),
|
||||
|
||||
//充值
|
||||
'recharge_open' => input('recharge_open', 0),
|
||||
'recharge_template_id' => input('recharge_template_id', 0),
|
||||
'recharge_print_num' => input('recharge_print_num', 1),
|
||||
|
||||
'change_shifts_open' => input('change_shifts_open', 0),
|
||||
'change_shifts_template_id' => input('change_shifts_template_id', 0),
|
||||
'change_shifts_print_num' => input('change_shifts_print_num', 1),
|
||||
|
||||
'host' => input('host', ''),
|
||||
'ip' => input('ip', ''),
|
||||
'port' => input('port', ''),
|
||||
'print_width' => input('print_width', '58mm')
|
||||
|
||||
];
|
||||
if ($data[ 'order_pay_order_type' ]) $data[ 'order_pay_order_type' ] = ',' . $data[ 'order_pay_order_type' ] . ',';
|
||||
if ($data[ 'take_delivery_order_type' ]) $data[ 'take_delivery_order_type' ] = ',' . $data[ 'take_delivery_order_type' ] . ',';
|
||||
return $model->addPrinter($data);
|
||||
|
||||
} else {
|
||||
//模板列表
|
||||
$template_model = new PrinterTemplate();
|
||||
$condition = [
|
||||
[ 'site_id', '=', $this->site_id ],
|
||||
];
|
||||
$template_list = $template_model->getPrinterTemplateList($condition, 'template_id,template_name,type', 'template_id desc');
|
||||
$this->assign('template_list', $template_list[ 'data' ]);
|
||||
|
||||
//打印机品牌
|
||||
$brand = $model->getPrinterBrand();
|
||||
$this->assign('brand', $brand);
|
||||
|
||||
//订单类型
|
||||
$order_common_model = new OrderCommonModel();
|
||||
$order_type_list = $order_common_model->getOrderTypeStatusList();
|
||||
unset($order_type_list[ 'all' ]);
|
||||
$this->assign("order_type_list", $order_type_list);
|
||||
|
||||
$is_exit_store = addon_is_exit('store');
|
||||
if ($is_exit_store == 1) {
|
||||
$store_model = new Store();
|
||||
$store_field = 'store_id,store_name';
|
||||
$store_list = $store_model->getStoreList([ [ 'site_id', '=', $this->site_id ] ], $store_field);
|
||||
$this->assign('store_list', $store_list[ 'data' ]);
|
||||
}
|
||||
$this->assign('is_exit_store', $is_exit_store);
|
||||
return $this->fetch("printer/add");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑小票打印
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$model = new PrinterModel();
|
||||
$printer_id = input('printer_id', 0);
|
||||
if (request()->isJson()) {
|
||||
$data = [
|
||||
'printer_id' => $printer_id,
|
||||
|
||||
'site_id' => $this->site_id,
|
||||
'printer_name' => input('printer_name', ''),
|
||||
'brand' => input('brand', ''),
|
||||
'printer_code' => input('printer_code', ''),
|
||||
'printer_key' => input('printer_key', ''),
|
||||
'open_id' => input('open_id', ''),
|
||||
'apikey' => input('apikey', ''),
|
||||
'store_id' => input('store_id', ''),
|
||||
'printer_type' => input('printer_type', ''),
|
||||
|
||||
//订单
|
||||
'order_pay_open' => input('order_pay_open', 0),
|
||||
'order_pay_template_id' => input('order_pay_template_id', 0),
|
||||
'order_pay_print_num' => input('order_pay_print_num', 1),
|
||||
'order_pay_order_type' => input('order_pay_order_type', ''),
|
||||
|
||||
'take_delivery_open' => input('take_delivery_open', 0),
|
||||
'take_delivery_template_id' => input('take_delivery_template_id', 0),
|
||||
'take_delivery_print_num' => input('take_delivery_print_num', 1),
|
||||
'take_delivery_order_type' => input('take_delivery_order_type', ''),
|
||||
|
||||
'manual_open' => input('manual_open', 0),
|
||||
'template_id' => input('template_id', 0),
|
||||
'print_num' => input('print_num', 1),
|
||||
|
||||
//充值
|
||||
'recharge_open' => input('recharge_open', 0),
|
||||
'recharge_template_id' => input('recharge_template_id', 0),
|
||||
'recharge_print_num' => input('recharge_print_num', 1),
|
||||
|
||||
'change_shifts_open' => input('change_shifts_open', 0),
|
||||
'change_shifts_template_id' => input('change_shifts_template_id', 0),
|
||||
'change_shifts_print_num' => input('change_shifts_print_num', 1),
|
||||
|
||||
'host' => input('host', ''),
|
||||
'ip' => input('ip', ''),
|
||||
'port' => input('port', ''),
|
||||
'print_width' => input('print_width', '58mm')
|
||||
];
|
||||
|
||||
if ($data[ 'order_pay_order_type' ]) $data[ 'order_pay_order_type' ] = ',' . $data[ 'order_pay_order_type' ] . ',';
|
||||
if ($data[ 'take_delivery_order_type' ]) $data[ 'take_delivery_order_type' ] = ',' . $data[ 'take_delivery_order_type' ] . ',';
|
||||
|
||||
return $model->editPrinter($data);
|
||||
} else {
|
||||
|
||||
$info = $model->getPrinterInfo([ [ 'printer_id', '=', $printer_id ], [ 'site_id', '=', $this->site_id ] ]);
|
||||
$info[ 'data' ][ 'take_delivery_order_type' ] = explode(',', $info[ 'data' ][ 'take_delivery_order_type' ]);
|
||||
$info[ 'data' ][ 'order_pay_order_type' ] = explode(',', $info[ 'data' ][ 'order_pay_order_type' ]);
|
||||
$this->assign('printer_info', $info[ 'data' ]);
|
||||
|
||||
//模板列表
|
||||
$template_model = new PrinterTemplate();
|
||||
$condition = [
|
||||
[ 'site_id', '=', $this->site_id ],
|
||||
];
|
||||
$template_list = $template_model->getPrinterTemplateList($condition, 'template_id,template_name,type', 'template_id desc');
|
||||
$this->assign('template_list', $template_list[ 'data' ]);
|
||||
|
||||
//打印机品牌
|
||||
$brand = $model->getPrinterBrand();
|
||||
$this->assign('brand', $brand);
|
||||
|
||||
//订单类型
|
||||
$order_common_model = new OrderCommonModel();
|
||||
$order_type_list = $order_common_model->getOrderTypeStatusList();
|
||||
unset($order_type_list[ 'all' ]);
|
||||
$this->assign("order_type_list", $order_type_list);
|
||||
|
||||
//是否存在门店
|
||||
$is_exit_store = addon_is_exit('store');
|
||||
if ($is_exit_store == 1) {
|
||||
$store_model = new Store();
|
||||
$store_field = 'store_id,store_name';
|
||||
$store_list = $store_model->getStoreList([ [ 'site_id', '=', $this->site_id ] ], $store_field);
|
||||
$this->assign('store_list', $store_list[ 'data' ]);
|
||||
}
|
||||
$this->assign('is_exit_store', $is_exit_store);
|
||||
return $this->fetch("printer/edit");
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 删除
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$printer_id = input('printer_id', '');
|
||||
|
||||
$printer_model = new PrinterModel();
|
||||
return $printer_model->deletePrinter([ [ 'printer_id', '=', $printer_id ], [ 'site_id', '=', $this->site_id ] ]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试打印
|
||||
*/
|
||||
public function testPrint()
|
||||
{
|
||||
$printer_id = input('printer_id', '');
|
||||
$print_model = new PrinterOrder();
|
||||
$res = $print_model->testPrint($printer_id, $this->site_id);
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 刷新token
|
||||
*/
|
||||
public function refreshToken()
|
||||
{
|
||||
$printer_id = input('printer_id', '');
|
||||
$print_model = new PrinterModel();
|
||||
$res = $print_model->refreshToken($printer_id, $this->site_id);
|
||||
return $res;
|
||||
}
|
||||
|
||||
/**
|
||||
* 测试打印
|
||||
*/
|
||||
public function test()
|
||||
{
|
||||
// $print_model = new PrinterOrder();
|
||||
// $res = $print_model->printer([
|
||||
//// 'order_id' => '5630',
|
||||
//// 'type' => 'goodsorder',
|
||||
//// 'printer_type' => 'order_pay',
|
||||
//// 'site_id' => $this->site_id
|
||||
// 'order_id' => '32',
|
||||
// 'type' => 'recharge',
|
||||
// 'site_id' => $this->site_id
|
||||
// ]);
|
||||
// return $res;
|
||||
$res = event('MemberRechargeOrderPayPrinter', [
|
||||
'relate_id' => 66
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
134
addon/printer/shop/controller/Template.php
Executable file
134
addon/printer/shop/controller/Template.php
Executable file
@@ -0,0 +1,134 @@
|
||||
<?php
|
||||
/**
|
||||
* Niushop商城系统 - 团队十年电商经验汇集巨献!
|
||||
* =========================================================
|
||||
* Copy right 2019-2029 杭州牛之云科技有限公司, 保留所有权利。
|
||||
* ----------------------------------------------
|
||||
* 官方网址: https://www.niushop.com
|
||||
* =========================================================
|
||||
*/
|
||||
|
||||
namespace addon\printer\shop\controller;
|
||||
|
||||
use app\shop\controller\BaseShop;
|
||||
use addon\printer\model\PrinterTemplate;
|
||||
|
||||
class Template extends BaseShop
|
||||
{
|
||||
|
||||
/*
|
||||
* 模板管理列表
|
||||
*/
|
||||
public function lists()
|
||||
{
|
||||
$model = new PrinterTemplate();
|
||||
|
||||
if (request()->isJson()) {
|
||||
$condition[] = [ 'site_id', '=', $this->site_id ];
|
||||
$page = input('page', 1);
|
||||
$page_size = input('page_size', PAGE_LIST_ROWS);
|
||||
$list = $model->getPrinterTemplatePageList($condition, $page, $page_size, 'template_id desc');
|
||||
return $list;
|
||||
}
|
||||
return $this->fetch("template/lists");
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加模板管理
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$model = new PrinterTemplate();
|
||||
|
||||
$type = input('type', 'goodsorder');
|
||||
if (request()->isJson()) {
|
||||
$data = [
|
||||
'site_id' => $this->site_id,
|
||||
'site_name' => $this->shop_info[ 'site_name' ],
|
||||
'template_type' => input('template_type', ''),
|
||||
'template_name' => input('template_name', ''),
|
||||
|
||||
'title' => input('title', ''),
|
||||
'head' => input('head', ''),
|
||||
'buy_notes' => input('buy_notes', ''),
|
||||
'seller_notes' => input('seller_notes', ''),
|
||||
'buy_name' => input('buy_name', ''),
|
||||
'buy_mobile' => input('buy_mobile', ''),
|
||||
'buy_address' => input('buy_address', ''),
|
||||
'shop_mobile' => input('shop_mobile', ''),
|
||||
'shop_address' => input('shop_address', ''),
|
||||
'shop_qrcode' => input('shop_qrcode', ''),
|
||||
'qrcode_url' => input('qrcode_url', ''),
|
||||
'bottom' => input('bottom', ''),
|
||||
|
||||
'type' => input('type', ''),
|
||||
'type_name' => input('type_name', ''),
|
||||
'goods_price_show' => input('goods_price_show', 0),
|
||||
'goods_code_show' => input('goods_code_show', 0),
|
||||
'form_show' => input('form_show', 0),
|
||||
'goods_price_type' => input('goods_price_type', ''),
|
||||
];
|
||||
|
||||
return $model->addPrinterTemplate($data);
|
||||
} else {
|
||||
$this->assign('template_type', $model->getTemplateType());
|
||||
$this->assign('type', $type);
|
||||
return event('PrinterTemplate', [ 'type' => $type, 'action' => 'add' ], true);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑模板管理
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$model = new PrinterTemplate();
|
||||
$template_id = input('template_id', 0);
|
||||
if (request()->isJson()) {
|
||||
$data = [
|
||||
'template_id' => $template_id,
|
||||
'site_id' => $this->site_id,
|
||||
'template_type' => input('template_type', ''),
|
||||
'template_name' => input('template_name', ''),
|
||||
|
||||
'title' => input('title', ''),
|
||||
'head' => input('head', ''),
|
||||
'buy_notes' => input('buy_notes', ''),
|
||||
'seller_notes' => input('seller_notes', ''),
|
||||
'buy_name' => input('buy_name', ''),
|
||||
'buy_mobile' => input('buy_mobile', ''),
|
||||
'buy_address' => input('buy_address', ''),
|
||||
'shop_mobile' => input('shop_mobile', ''),
|
||||
'shop_address' => input('shop_address', ''),
|
||||
'shop_qrcode' => input('shop_qrcode', ''),
|
||||
'qrcode_url' => input('qrcode_url', ''),
|
||||
'bottom' => input('bottom', ''),
|
||||
|
||||
'goods_price_show' => input('goods_price_show', 0),
|
||||
'goods_code_show' => input('goods_code_show', 0),
|
||||
'form_show' => input('form_show', 0),
|
||||
'goods_price_type' => input('goods_price_type', ''),
|
||||
|
||||
];
|
||||
return $model->editPrinterTemplate($data);
|
||||
|
||||
} else {
|
||||
$info = $model->getPrinterTemplateInfo([ [ 'template_id', '=', $template_id ], [ 'site_id', '=', $this->site_id ] ]);
|
||||
$this->assign('info', $info[ 'data' ]);
|
||||
|
||||
return event('PrinterTemplate', [ 'type' => $info[ 'data' ][ 'type' ], 'action' => 'edit' ], true);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* 删除
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
$template_id = input('template_id', '');
|
||||
|
||||
$printer_model = new PrinterTemplate();
|
||||
return $printer_model->deletePrinterTemplate([ [ 'template_id', '=', $template_id ], [ 'site_id', '=', $this->site_id ] ]);
|
||||
}
|
||||
|
||||
}
|
||||
290
addon/printer/shop/view/printer/add.html
Executable file
290
addon/printer/shop/view/printer/add.html
Executable file
@@ -0,0 +1,290 @@
|
||||
<div class="layui-collapse tips-wrap">
|
||||
<div class="layui-colla-item">
|
||||
<h2 class="layui-colla-title">操作提示</h2>
|
||||
<ul class="layui-colla-content layui-show">
|
||||
<li>易联云的打印机请购买k6、k4、w1系列的打印机</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form form-wrap">
|
||||
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">打印机设置</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机名称:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="printer_name" lay-verify="required" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机类型:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="printer_type" value="cloud" lay-verify="required" checked title="云打印机" lay-filter="printer_type">
|
||||
<input type="radio" name="printer_type" value="local" lay-verify="required" title="本地打印机" lay-filter="printer_type">
|
||||
<!-- <input type="radio" name="printer_type" value="network" lay-verify="required" title="网络打印机" lay-filter="printer_type">-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="printer-type cloud" style="display:block;">
|
||||
<div class="layui-form-item express_company">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机品牌:</label>
|
||||
<div class="layui-input-block len-mid">
|
||||
<select name="brand" lay-verify="cloudRequired" lay-filter="brand">
|
||||
{foreach $brand as $k=>$v}
|
||||
<option value="{$v.brand}">{$v.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机编号:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="printer_code" lay-verify="cloudRequired" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机秘钥:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="printer_key" lay-verify="cloudRequired" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 飞鹅打印机 -->
|
||||
<div class="layui-form-item feie">
|
||||
<label class="layui-form-label"><span class="required">*</span>USER:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="user" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
<p>飞鹅云后台注册用户名</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item feie">
|
||||
<label class="layui-form-label"><span class="required">*</span>UKEY:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="ukey" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
<p>飞鹅云后台登录生成的UKEY</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 易联云打印机 -->
|
||||
<div class="layui-form-item yilianyun">
|
||||
<label class="layui-form-label"><span class="required">*</span>应用id:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="open_id" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
<p>应用id(易联云-开发者中心后台应用中心里获取)</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item yilianyun">
|
||||
<label class="layui-form-label"><span class="required">*</span>apiKey:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="apikey" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
<p>apiKey(易联云-开发者中心后台应用中心里获取)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="printer-type local">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机端口:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="host" autocomplete="off" class="layui-input len-long" lay-verify="localRequired">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
<p>打印机端口 (可以填写打印机端口号:如LPT1 或 本地网络共享打印机:如\\192.168.1.100\POS_NAME)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="printer-type network">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机IP:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="ip" autocomplete="off" class="layui-input len-long" lay-verify="networkRequired">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机端口:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="port" autocomplete="off" class="layui-input len-long" lay-verify="networkRequired">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="printer-type network local">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">打印宽度:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="print_width" value="58mm" checked title="58mm">
|
||||
<input type="radio" name="print_width" value="80mm" title="80mm">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $is_exit_store == 1}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">关联门店:</label>
|
||||
<div class="layui-input-block len-mid">
|
||||
<select name="store_id" lay-verify="">
|
||||
<option value="">请选择</option>
|
||||
{foreach $store_list as $k=>$v}
|
||||
<option value="{$v.store_id}">{$v.store_name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">订单打印</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">支付打印:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="order_pay_open" lay-filter="order_pay_open" value="1" lay-skin="switch" checked/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item express_company order_pay_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印模板:</label>
|
||||
<div class="layui-input-block len-mid">
|
||||
<select name="order_pay_template_id" lay-verify="required" >
|
||||
<option value="">请选择</option>
|
||||
{foreach $template_list as $k=>$v}
|
||||
{if $v['type'] == 'goodsorder'}
|
||||
<option value="{$v.template_id}">{$v.template_name}</option>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item order_pay_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印联数:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="order_pay_print_num" value="1" lay-verify="required" checked autocomplete="off" title="1" class="layui-input len-long">
|
||||
<input type="radio" name="order_pay_print_num" value="2" lay-verify="required" autocomplete="off" title="2" class="layui-input len-long">
|
||||
<input type="radio" name="order_pay_print_num" value="3" lay-verify="required" autocomplete="off" title="3" class="layui-input len-long">
|
||||
<input type="radio" name="order_pay_print_num" value="4" lay-verify="required" autocomplete="off" title="4" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item order_pay_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>订单类型:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $order_type_list as $v}
|
||||
<input class="order-pay-order-type" type="checkbox" value="{$v.type}" lay-verify="required" lay-skin="primary" title="{$v.name}" checked="">
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">收货打印:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="take_delivery_open" lay-filter="take_delivery_open" value="1" lay-skin="switch" checked/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item express_company take_delivery_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印模板:</label>
|
||||
<div class="layui-input-block len-mid">
|
||||
<select name="take_delivery_template_id" lay-verify="required" >
|
||||
<option value="">请选择</option>
|
||||
{foreach $template_list as $k=>$v}
|
||||
{if $v['type'] == 'goodsorder'}
|
||||
<option value="{$v.template_id}">{$v.template_name}</option>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item take_delivery_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印联数:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="take_delivery_print_num" value="1" lay-verify="required" checked autocomplete="off" title="1" class="layui-input len-long">
|
||||
<input type="radio" name="take_delivery_print_num" value="2" lay-verify="required" autocomplete="off" title="2" class="layui-input len-long">
|
||||
<input type="radio" name="take_delivery_print_num" value="3" lay-verify="required" autocomplete="off" title="3" class="layui-input len-long">
|
||||
<input type="radio" name="take_delivery_print_num" value="4" lay-verify="required" autocomplete="off" title="4" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item take_delivery_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>订单类型:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $order_type_list as $v}
|
||||
<input class="take-delivery-order-type" type="checkbox" value="{$v.type}" lay-verify="required" lay-skin="primary" title="{$v.name}" checked="">
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">手动打印:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="manual_open" lay-filter="manual_open" value="1" lay-skin="switch" checked/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item express_company default_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印模板:</label>
|
||||
<div class="layui-input-block len-mid">
|
||||
<select name="template_id" lay-verify="required" >
|
||||
<option value="">请选择</option>
|
||||
{foreach $template_list as $k=>$v}
|
||||
{if $v['type'] == 'goodsorder'}
|
||||
<option value="{$v.template_id}">{$v.template_name}</option>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item default_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印联数:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="print_num" value="1" lay-verify="required" checked autocomplete="off" title="1" class="layui-input len-long">
|
||||
<input type="radio" name="print_num" value="2" lay-verify="required" autocomplete="off" title="2" class="layui-input len-long">
|
||||
<input type="radio" name="print_num" value="3" lay-verify="required" autocomplete="off" title="3" class="layui-input len-long">
|
||||
<input type="radio" name="print_num" value="4" lay-verify="required" autocomplete="off" title="4" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{php}
|
||||
$html = event('PrinterHtml');
|
||||
foreach($html as $k => $v) echo $v;
|
||||
{/php}
|
||||
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="backPrinterList()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="SHOP_ADDON_JS/printer.js"></script>
|
||||
288
addon/printer/shop/view/printer/edit.html
Executable file
288
addon/printer/shop/view/printer/edit.html
Executable file
@@ -0,0 +1,288 @@
|
||||
<div class="layui-collapse tips-wrap">
|
||||
<div class="layui-colla-item">
|
||||
<h2 class="layui-colla-title">操作提示</h2>
|
||||
<ul class="layui-colla-content layui-show">
|
||||
<li>易联云的打印机请购买k6、k4、w1系列的打印机</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form form-wrap">
|
||||
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">打印机设置</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<input type="hidden" value="{$printer_info['printer_id']}" name="printer_id">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机名称:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="printer_name" value="{$printer_info['printer_name']}" lay-verify="required" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机类型:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="printer_type" value="cloud" lay-verify="required" {if $printer_info.printer_type eq 'cloud'} checked{/if} title="云打印机" lay-filter="printer_type">
|
||||
<input type="radio" name="printer_type" value="local" lay-verify="required" {if $printer_info.printer_type eq 'local'} checked{/if} title="本地打印机" lay-filter="printer_type">
|
||||
<input type="radio" name="printer_type" value="network" lay-verify="required" {if $printer_info.printer_type eq 'network'} checked{/if} title="网络打印机" lay-filter="printer_type">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="printer-type cloud" {if $printer_info.printer_type eq 'cloud'}style="display:block;"{/if}>
|
||||
<div class="layui-form-item express_company">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机品牌:</label>
|
||||
<div class="layui-input-block len-short">
|
||||
<select name="brand" lay-verify="cloudRequired" lay-filter="brand">
|
||||
{foreach $brand as $k=>$v}
|
||||
<option value="{$v.brand}" {if $v.brand == $printer_info['brand']} selected {/if}>{$v.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机编号:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="printer_code" value="{$printer_info['printer_code']}" lay-verify="cloudRequired" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机秘钥:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="printer_key" value="{$printer_info['printer_key']}" lay-verify="cloudRequired" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 飞鹅打印机 -->
|
||||
<div class="layui-form-item feie">
|
||||
<label class="layui-form-label"><span class="required">*</span>USER:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="user" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
<p>飞鹅云后台注册用户名</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item feie">
|
||||
<label class="layui-form-label"><span class="required">*</span>UKEY:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="ukey" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
<p>飞鹅云后台登录生成的UKEY</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 易联云打印机 -->
|
||||
<div class="layui-form-item yilianyun">
|
||||
<label class="layui-form-label"><span class="required">*</span>应用id:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="open_id" value="{$printer_info['open_id']}" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
<p>应用id(易联云-开发者中心后台应用中心里获取)</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item yilianyun">
|
||||
<label class="layui-form-label"><span class="required">*</span>apiKey:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="apikey" value="{$printer_info['apikey']}" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
<p>apiKey(易联云-开发者中心后台应用中心里获取)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="printer-type local" {if $printer_info.printer_type eq 'local'}style="display:block;"{/if}>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机端口:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{$printer_info['host']}" name="host" autocomplete="off" class="layui-input len-long" lay-verify="localRequired">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
<p>打印机端口 (可以填写打印机端口号:如LPT1 或 本地网络共享打印机:如\\192.168.1.100\POS_NAME)</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="printer-type network" {if $printer_info.printer_type eq 'network'}style="display:block;"{/if}>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机IP:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{$printer_info['ip']}" name="ip" autocomplete="off" class="layui-input len-long" lay-verify="networkRequired">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印机端口:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" value="{$printer_info['port']}" name="port" autocomplete="off" class="layui-input len-long" lay-verify="networkRequired">
|
||||
</div>
|
||||
<div class="word-aux">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="printer-type network local" {if $printer_info.printer_type eq 'network' || $printer_info.printer_type eq 'local'}style="display:block;"{/if}>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">打印宽度:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="print_width" value="58mm" {if $printer_info.print_width eq '58mm'} checked{/if} title="58mm">
|
||||
<input type="radio" name="print_width" value="80mm" {if $printer_info.print_width eq '80mm'} checked{/if} title="80mm">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{if $is_exit_store == 1}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">关联门店:</label>
|
||||
<div class="layui-input-block len-short">
|
||||
<select name="store_id" lay-verify="">
|
||||
<option value="">请选择</option>
|
||||
{foreach $store_list as $k=>$v}
|
||||
<option value="{$v.store_id}" {if $v['store_id'] == $printer_info['store_id']} selected {/if}>{$v.store_name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">订单打印</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">支付打印:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="order_pay_open" lay-filter="order_pay_open" value="1" lay-skin="switch" {if $printer_info['order_pay_open']} checked {/if}/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item express_company order_pay_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印模板:</label>
|
||||
<div class="layui-input-block len-mid">
|
||||
<select name="order_pay_template_id" {if $printer_info['order_pay_open'] == 1}lay-verify="required"{/if}>
|
||||
<option value="">请选择</option>
|
||||
{foreach $template_list as $k=>$v}
|
||||
{if $v['type'] == 'goodsorder'}
|
||||
<option value="{$v.template_id}" {if $printer_info['order_pay_template_id'] == $v['template_id']} selected {/if}>{$v.template_name}</option>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item order_pay_item {if $printer_info['order_pay_open'] == 0}layui-hide{/if}">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印联数:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="order_pay_print_num" value="1" lay-verify="required" {if $printer_info['order_pay_print_num'] == 1} checked {/if} autocomplete="off" title="1" class="layui-input len-long">
|
||||
<input type="radio" name="order_pay_print_num" value="2" lay-verify="required" {if $printer_info['order_pay_print_num'] == 2} checked {/if} autocomplete="off" title="2" class="layui-input len-long">
|
||||
<input type="radio" name="order_pay_print_num" value="3" lay-verify="required" {if $printer_info['order_pay_print_num'] == 3} checked {/if} autocomplete="off" title="3" class="layui-input len-long">
|
||||
<input type="radio" name="order_pay_print_num" value="4" lay-verify="required" {if $printer_info['order_pay_print_num'] == 4} checked {/if} autocomplete="off" title="4" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item order_pay_item {if $printer_info['order_pay_open'] == 0}layui-hide{/if}">
|
||||
<label class="layui-form-label"><span class="required">*</span>订单类型:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $order_type_list as $v}
|
||||
<input class="order-pay-order-type" type="checkbox" value="{$v.type}" lay-verify="required" lay-skin="primary" title="{$v.name}" {if in_array($v.type,$printer_info.order_pay_order_type)} checked="" {/if}>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">收货打印:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="take_delivery_open" lay-filter="take_delivery_open" value="1" lay-skin="switch" {if $printer_info['take_delivery_open']} checked {/if}/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item express_company take_delivery_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印模板:</label>
|
||||
<div class="layui-input-block len-mid">
|
||||
<select name="take_delivery_template_id" {if $printer_info['take_delivery_open'] == 1}lay-verify="required"{/if}>
|
||||
<option value="">请选择</option>
|
||||
{foreach $template_list as $k=>$v}
|
||||
{if $v['type'] == 'goodsorder'}
|
||||
<option value="{$v.template_id}" {if $printer_info['take_delivery_template_id'] == $v['template_id']} selected {/if}>{$v.template_name}</option>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item take_delivery_item {if $printer_info['take_delivery_open'] == 0}layui-hide{/if}">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印联数:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="take_delivery_print_num" {if $printer_info['take_delivery_print_num'] == 1} checked {/if} value="1" lay-verify="required" autocomplete="off" title="1" class="layui-input len-long">
|
||||
<input type="radio" name="take_delivery_print_num" {if $printer_info['take_delivery_print_num'] == 2} checked {/if} value="2" lay-verify="required" autocomplete="off" title="2" class="layui-input len-long">
|
||||
<input type="radio" name="take_delivery_print_num" {if $printer_info['take_delivery_print_num'] == 3} checked {/if} value="3" lay-verify="required" autocomplete="off" title="3" class="layui-input len-long">
|
||||
<input type="radio" name="take_delivery_print_num" {if $printer_info['take_delivery_print_num'] == 4} checked {/if} value="4" lay-verify="required" autocomplete="off" title="4" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item take_delivery_item {if $printer_info['take_delivery_open'] == 0}layui-hide{/if}">
|
||||
<label class="layui-form-label"><span class="required">*</span>订单类型:</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $order_type_list as $v}
|
||||
<input class="take-delivery-order-type" type="checkbox" value="{$v.type}" lay-verify="required" lay-skin="primary" title="{$v.name}" {if in_array($v.type,$printer_info.take_delivery_order_type)} checked="" {/if}>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">手动打印:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="manual_open" lay-filter="manual_open" value="1" lay-skin="switch" {if $printer_info['manual_open']} checked {/if}/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item express_company default_item">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印模板:</label>
|
||||
<div class="layui-input-block len-mid">
|
||||
<select name="template_id" {if $printer_info['manual_open'] == 1}lay-verify="required"{/if}>
|
||||
<option value="">请选择</option>
|
||||
{foreach $template_list as $k=>$v}
|
||||
{if $v['type'] == 'goodsorder'}
|
||||
<option value="{$v.template_id}" {if $printer_info['template_id'] == $v['template_id']} selected {/if}>{$v.template_name}</option>
|
||||
{/if}
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item default_item {if $printer_info['manual_open'] == 0}layui-hide{/if}">
|
||||
<label class="layui-form-label"><span class="required">*</span>打印联数:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" name="print_num" value="1" {if $printer_info['print_num'] == 1} checked {/if} lay-verify="required" autocomplete="off" title="1" class="layui-input len-long">
|
||||
<input type="radio" name="print_num" value="2" {if $printer_info['print_num'] == 2} checked {/if} lay-verify="required" autocomplete="off" title="2" class="layui-input len-long">
|
||||
<input type="radio" name="print_num" value="3" {if $printer_info['print_num'] == 3} checked {/if} lay-verify="required" autocomplete="off" title="3" class="layui-input len-long">
|
||||
<input type="radio" name="print_num" value="4" {if $printer_info['print_num'] == 4} checked {/if} lay-verify="required" autocomplete="off" title="4" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{php}
|
||||
$html = event('PrinterHtml');
|
||||
foreach($html as $k => $v) echo $v;
|
||||
{/php}
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="backPrinterList()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="SHOP_ADDON_JS/printer.js"></script>
|
||||
201
addon/printer/shop/view/printer/lists.html
Executable file
201
addon/printer/shop/view/printer/lists.html
Executable file
@@ -0,0 +1,201 @@
|
||||
<!-- 搜索框 -->
|
||||
<div class="single-filter-box">
|
||||
<button class="layui-btn" onclick="add()">添加打印机</button>
|
||||
</div>
|
||||
|
||||
<table id="printer_list" lay-filter="printer_list"></table>
|
||||
|
||||
<!-- 操作 -->
|
||||
<script type="text/html" id="operation">
|
||||
<div class="table-btn">
|
||||
<a class="layui-btn" lay-event="edit">编辑</a>
|
||||
<a class="layui-btn" lay-event="del">删除</a>
|
||||
<a class="layui-btn" lay-event="print">测试打印</a>
|
||||
|
||||
{{# if(d.brand == 'yilianyun'){ }}
|
||||
<a class="layui-btn" lay-event="refresh_token">授权</a>
|
||||
{{# } }}
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
var table,form,repeat_flag = false; //防重复标识
|
||||
layui.use(['form'], function() {
|
||||
form = layui.form;
|
||||
form.render();
|
||||
|
||||
table = new Table({
|
||||
elem: '#printer_list',
|
||||
url: ns.url("printer://shop/printer/lists"),
|
||||
cols: [
|
||||
[{
|
||||
'field':'printer_name',
|
||||
title: '打印机名称',
|
||||
unresize: 'false'
|
||||
},{
|
||||
'field':'printer_name',
|
||||
title: '打印机类型',
|
||||
unresize: 'false',
|
||||
templet: function(data) {
|
||||
if(data.printer_type == 'local'){
|
||||
return '本地打印机';
|
||||
} else {
|
||||
return '云打印机';
|
||||
}
|
||||
}
|
||||
}, {
|
||||
field: 'brand',
|
||||
title: '打印机品牌',
|
||||
unresize: 'false',
|
||||
templet: function(data) {
|
||||
if(data.brand == '365'){
|
||||
return '365';
|
||||
} else if(data.brand == 'yilianyun'){
|
||||
return '易联云';
|
||||
} else if (data.brand == 'feie') {
|
||||
return '飞鹅';
|
||||
}
|
||||
}
|
||||
}, {
|
||||
field: 'is_default',
|
||||
title: '一次打印',
|
||||
unresize: 'false',
|
||||
templet: function(data) {
|
||||
return data.print_num + '张';
|
||||
}
|
||||
}, {
|
||||
title: '添加时间',
|
||||
unresize: 'false',
|
||||
templet: function(data) {
|
||||
return ns.time_to_date(data.create_time);
|
||||
}
|
||||
}, {
|
||||
title: '操作',
|
||||
toolbar: '#operation',
|
||||
unresize: 'false',
|
||||
align:'right'
|
||||
}]
|
||||
]
|
||||
});
|
||||
|
||||
/**
|
||||
* 监听工具栏操作
|
||||
*/
|
||||
table.tool(function(obj) {
|
||||
var data = obj.data;
|
||||
switch (obj.event) {
|
||||
case 'edit': //编辑
|
||||
location.hash = ns.hash("printer://shop/printer/edit", {"printer_id": data.printer_id});
|
||||
break;
|
||||
case 'del': //删除
|
||||
deletePrinter(data.printer_id);
|
||||
break;
|
||||
case 'print': //测试打印
|
||||
testPrint(data.printer_id);
|
||||
break;
|
||||
case 'refresh_token': //测试打印
|
||||
refreshToken(data.printer_id);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
function refreshToken(printer_id){
|
||||
layer.confirm('若易联云打印机在 "测试打印" 时提示 "access_token过期或错误",请重新授权,是否重新授权', function(index) {
|
||||
if (repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
layer.close(index);
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("printer://shop/printer/refreshtoken"),
|
||||
data: {
|
||||
printer_id: printer_id
|
||||
},
|
||||
dataType: 'JSON',
|
||||
type: 'POST',
|
||||
success: function(res) {
|
||||
layer.msg(res.message);
|
||||
repeat_flag = false;
|
||||
if (res.code == 0) {
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}, function() {
|
||||
layer.close();
|
||||
repeat_flag = false;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
function deletePrinter(printer_id) {
|
||||
layer.confirm('确定要删除该打印机吗?', function(index) {
|
||||
if (repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
layer.close(index);
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("printer://shop/printer/delete"),
|
||||
data: {
|
||||
printer_id: printer_id
|
||||
},
|
||||
dataType: 'JSON',
|
||||
type: 'POST',
|
||||
success: function(res) {
|
||||
layer.msg(res.message);
|
||||
repeat_flag = false;
|
||||
if (res.code == 0) {
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}, function() {
|
||||
layer.close();
|
||||
repeat_flag = false;
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* 测试打印
|
||||
*/
|
||||
function testPrint(printer_id)
|
||||
{
|
||||
layer.confirm('确定测试打印吗?', function(index) {
|
||||
if (repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
layer.close(index);
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("printer://shop/printer/testPrint"),
|
||||
data: {
|
||||
printer_id: printer_id
|
||||
},
|
||||
dataType: 'JSON',
|
||||
type: 'POST',
|
||||
success: function(res) {
|
||||
repeat_flag = false;
|
||||
layer.msg(res.message);
|
||||
}
|
||||
});
|
||||
}, function() {
|
||||
layer.close();
|
||||
repeat_flag = false;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function add() {
|
||||
location.hash = ns.hash("printer://shop/printer/add");
|
||||
}
|
||||
</script>
|
||||
BIN
addon/printer/shop/view/public/img/distribution.png
Executable file
BIN
addon/printer/shop/view/public/img/distribution.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
BIN
addon/printer/shop/view/public/img/distribution_new.png
Executable file
BIN
addon/printer/shop/view/public/img/distribution_new.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
BIN
addon/printer/shop/view/public/img/distribution_select.png
Executable file
BIN
addon/printer/shop/view/public/img/distribution_select.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 1.2 KiB |
226
addon/printer/shop/view/public/js/printer.js
Executable file
226
addon/printer/shop/view/public/js/printer.js
Executable file
@@ -0,0 +1,226 @@
|
||||
layui.use(['form',], function () {
|
||||
var form = layui.form,
|
||||
repeat_flag = false;
|
||||
|
||||
form.render();
|
||||
|
||||
form.on('radio(printer_type)', function (e) {
|
||||
$('.printer-type').hide()
|
||||
$('.printer-type.' + e.value).show()
|
||||
})
|
||||
|
||||
form.on('select(brand)', function (data) {
|
||||
var value = data.value;
|
||||
if (value == '365') {
|
||||
$('.feie').hide();
|
||||
$('.yilianyun').hide();
|
||||
|
||||
$("input[name='user']").attr("lay-verify", "");
|
||||
$("input[name='ukey']").attr("lay-verify", "");
|
||||
|
||||
$("input[name='open_id']").attr("lay-verify", "");
|
||||
$("input[name='apikey']").attr("lay-verify", "");
|
||||
}
|
||||
|
||||
if (value == 'feie') {
|
||||
$('.feie').show();
|
||||
$('.yilianyun').hide();
|
||||
|
||||
$("input[name='user']").attr("lay-verify", "cloudRequired");
|
||||
$("input[name='ukey']").attr("lay-verify", "cloudRequired");
|
||||
|
||||
$("input[name='open_id']").attr("lay-verify", "");
|
||||
$("input[name='apikey']").attr("lay-verify", "");
|
||||
}
|
||||
|
||||
if (value == 'yilianyun') {
|
||||
$('.yilianyun').show();
|
||||
$('.feie').hide();
|
||||
|
||||
$("input[name='open_id']").attr("lay-verify", "cloudRequired");
|
||||
$("input[name='apikey']").attr("lay-verify", "cloudRequired");
|
||||
|
||||
$("input[name='user']").attr("lay-verify", "");
|
||||
$("input[name='ukey']").attr("lay-verify", "");
|
||||
}
|
||||
});
|
||||
|
||||
form.on('switch(recharge_open)', function (data) {
|
||||
if (data.elem.checked) {
|
||||
$(".layui-form-item.recharge_item").removeClass('layui-hide');
|
||||
$('.recharge-content').removeClass('layui-hide');
|
||||
$('.recharge-content [name="recharge_template_id"]').attr('lay-verify', 'required');
|
||||
} else {
|
||||
$(".layui-form-item.recharge_item").addClass('layui-hide');
|
||||
$('.recharge-content').addClass('layui-hide');
|
||||
$('.recharge-content [name="recharge_template_id"]').attr('lay-verify', '');
|
||||
}
|
||||
});
|
||||
|
||||
form.on('switch(order_pay_open)', function (data) {
|
||||
if (data.elem.checked) {
|
||||
$('.order_pay_item').removeClass('layui-hide');
|
||||
$('.order_pay_item [name="order_pay_template_id"]').attr('lay-verify', 'required');
|
||||
} else {
|
||||
$('.order_pay_item').addClass('layui-hide');
|
||||
$('.order_pay_item [name="order_pay_template_id"]').attr('lay-verify', '');
|
||||
}
|
||||
});
|
||||
|
||||
form.on('switch(change_shifts_open)', function (data) {
|
||||
if (data.elem.checked) {
|
||||
$('.change_shifts-content').removeClass('layui-hide');
|
||||
$('.change_shifts-box [name="change_shifts_template_id"]').attr('lay-verify', 'required');
|
||||
} else {
|
||||
$('.change_shifts-content').addClass('layui-hide');
|
||||
$('.change_shifts-box [name="change_shifts_template_id"]').attr('lay-verify', '');
|
||||
}
|
||||
});
|
||||
|
||||
form.on('switch(take_delivery_open)', function (data) {
|
||||
if (data.elem.checked) {
|
||||
$('.take_delivery_item').removeClass('layui-hide');
|
||||
$('.take_delivery_item [name="take_delivery_template_id"]').attr('lay-verify', 'required');
|
||||
} else {
|
||||
$('.take_delivery_item').addClass('layui-hide');
|
||||
$('.take_delivery_item [name="take_delivery_template_id"]').attr('lay-verify', '');
|
||||
}
|
||||
});
|
||||
|
||||
form.on('switch(manual_open)', function (data) {
|
||||
if (data.elem.checked) {
|
||||
$('.default_item').removeClass('layui-hide');
|
||||
$('.default_item [name="template_id"]').attr('lay-verify', 'required');
|
||||
} else {
|
||||
$('.default_item').addClass('layui-hide');
|
||||
$('.default_item [name="template_id"]').attr('lay-verify', '');
|
||||
}
|
||||
});
|
||||
|
||||
var printer_type = $('input[name="printer_type"]:checked').val()
|
||||
$(`input[name="printer_type"][value="${printer_type}"]`).next('.layui-unselect.layui-form-radio').click()
|
||||
|
||||
var brand = $('select[name="brand"] option:checked').val()
|
||||
$("select[name='brand']").siblings("div.layui-form-select").find("dl dd[lay-value='" + brand + "']").click();
|
||||
|
||||
form.verify({
|
||||
time: function (value) {
|
||||
var now_time = (new Date()).getTime();
|
||||
var start_time = (new Date($("#start_time").val())).getTime();
|
||||
var end_time = (new Date(value)).getTime();
|
||||
if (now_time > end_time) {
|
||||
return '结束时间不能小于当前时间!'
|
||||
}
|
||||
if (start_time > end_time) {
|
||||
return '结束时间不能小于开始时间!';
|
||||
}
|
||||
},
|
||||
flnum: function (value) {
|
||||
var arrMen = value.split(".");
|
||||
var val = 0;
|
||||
if (arrMen.length == 2) {
|
||||
val = arrMen[1];
|
||||
}
|
||||
if (val.length > 2) {
|
||||
return '保留小数点后两位!'
|
||||
}
|
||||
},
|
||||
int: function (value) {
|
||||
if (value <= 1 || value % 1 != 0) {
|
||||
return '请输入大于1的正整数!'
|
||||
}
|
||||
},
|
||||
cloudRequired: function (value, ele) {
|
||||
if ($('[name="printer_type"]:checked').val() == 'cloud' && !/[\S]+/.test(value)) {
|
||||
var label = $(ele).parents('.layui-form-item').find('.layui-form-label').text().replace(':', '').replace('*', '')
|
||||
return label + '不能为空'
|
||||
}
|
||||
},
|
||||
localRequired: function (value, ele) {
|
||||
if ($('[name="printer_type"]:checked').val() == 'local' && !/[\S]+/.test(value)) {
|
||||
var label = $(ele).parents('.layui-form-item').find('.layui-form-label').text().replace(':', '').replace('*', '')
|
||||
return label + '不能为空'
|
||||
}
|
||||
},
|
||||
networkRequired: function (value, ele) {
|
||||
if ($('[name="printer_type"]:checked').val() == 'newwork' && !/[\S]+/.test(value)) {
|
||||
var label = $(ele).parents('.layui-form-item').find('.layui-form-label').text().replace(':', '').replace('*', '')
|
||||
return label + '不能为空'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
form.on('submit(save)', function (data) {
|
||||
|
||||
var field = data.field;
|
||||
if (field.brand == 'feie') {
|
||||
field.open_id = field.user;
|
||||
field.apikey = field.ukey;
|
||||
}
|
||||
|
||||
var order_pay_order_type_arr = [];
|
||||
if (field.order_pay_open) {
|
||||
$(".order-pay-order-type").each(function () {
|
||||
if ($(this).is(":checked")) {
|
||||
order_pay_order_type_arr.push($(this).val());
|
||||
}
|
||||
});
|
||||
if (order_pay_order_type_arr == "") {
|
||||
layer.msg('请选择支付打印的订单类型');
|
||||
return false;
|
||||
}
|
||||
}
|
||||
field.order_pay_order_type = order_pay_order_type_arr.toString();
|
||||
|
||||
var take_delivery_order_type_arr = [];
|
||||
if (field.order_pay_open) {
|
||||
$(".order-pay-order-type").each(function () {
|
||||
if ($(this).is(":checked")) {
|
||||
take_delivery_order_type_arr.push($(this).val());
|
||||
}
|
||||
});
|
||||
if (take_delivery_order_type_arr == "") {
|
||||
layer.msg('请选择收货打印的订单类型');
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
field.take_delivery_order_type = take_delivery_order_type_arr.toString();
|
||||
|
||||
if (repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
dataType: 'JSON',
|
||||
url: field.printer_id ? ns.url("printer://shop/printer/edit") : ns.url("printer://shop/printer/add"),
|
||||
data: field,
|
||||
async: false,
|
||||
success: function (res) {
|
||||
repeat_flag = false;
|
||||
|
||||
if (res.code == 0) {
|
||||
layer.confirm(field.printer_id ? '编辑成功' : '添加成功', {
|
||||
title: '操作提示',
|
||||
btn: ['返回列表', field.printer_id ? '继续编辑' : '继续添加'],
|
||||
closeBtn: 0,
|
||||
yes: function (index, layero) {
|
||||
location.hash = ns.hash("printer://shop/printer/lists");
|
||||
layer.close(index);
|
||||
},
|
||||
btn2: function (index, layero) {
|
||||
listenerHash(); // 刷新页面
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
layer.msg(res.message);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
});
|
||||
|
||||
function backPrinterList() {
|
||||
location.hash = ns.hash("printer://shop/printer/lists");
|
||||
}
|
||||
559
addon/printer/shop/view/template/goodsorder_template.html
Executable file
559
addon/printer/shop/view/template/goodsorder_template.html
Executable file
@@ -0,0 +1,559 @@
|
||||
<style>
|
||||
.printer-box{display: flex;}
|
||||
.printer-box > .layui-form{flex: 1;}
|
||||
.printer-box .preview{width: 310px;margin: 0 20px;}
|
||||
.printer-box .preview .layui-card-body{margin: 20px;padding: 0 10px;border: 1px solid #ededed;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;}
|
||||
.printer-box .preview .layui-card-body div{font-size: 12px;color: #333;}
|
||||
.printer-box .preview .layui-card-body div ~ div{border-top: 1px dashed #ededed ;}
|
||||
.printer-box .preview .receipt-name{text-align: center;line-height: 40px;}
|
||||
.printer-box .preview .shopping-name{line-height: 40px;font-size: 16px !important;text-align: center;}
|
||||
.printer-box .preview .order-info, .printer-box .preview .goods-info, .printer-box .preview .price-info, .printer-box .preview .buyer-info, .printer-box .preview .shopping-info{padding: 8px 0;}
|
||||
.printer-box .preview .order-info span{display: block;line-height: 2.5;}
|
||||
.printer-box .preview .goods-info table{width: 100%;}
|
||||
.printer-box .preview .goods-info table tr{line-height: 2.5;}
|
||||
.printer-box .preview .goods-info table th{font-weight: normal;}
|
||||
.printer-box .preview .price-info p{display: flex;line-height: 2.5;justify-content: space-between;}
|
||||
.printer-box .preview .buyer-info span, .printer-box .preview .shopping-info span{display: block;line-height: 2;}
|
||||
.printer-box .preview .buyer-message,.printer-box .preview .merchant-message{padding: 10px 0;line-height: 1.5;}
|
||||
.preview .button-info{height: 40px;line-height: 40px;text-align: center}
|
||||
.preview .shopping-code{text-align: center;}
|
||||
.preview .shopping-code img{width: 100px;height: 100px;margin: 10px 0;}
|
||||
.commodity-type-box{
|
||||
display: flex;
|
||||
}
|
||||
.commodity-type-item{
|
||||
margin-right: 15px;
|
||||
padding: 0px 20px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
border: 1px solid #e5e5e5;
|
||||
cursor: pointer;
|
||||
}
|
||||
.goods_code_show td{line-height: 1;padding-bottom: 5px}
|
||||
</style>
|
||||
|
||||
<div class="printer-box">
|
||||
<div class="layui-form form-wrap">
|
||||
<div class="layui-card card-common card-brief">
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">模板信息</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
{if empty($info)}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required">*</span>模板类型:</label>
|
||||
<div class="layui-input-block commodity-type-box">
|
||||
{foreach $template_type as $k => $v}
|
||||
<div class="commodity-type-item {if $type == $k} border-color{/if}" onclick="location.hash = ns.hash('printer://shop/template/add', {'type' : '{$v['type']}'})">
|
||||
<span class="{if $type == $k} text-color{/if}">{$v['type_name']}</span>
|
||||
</div>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="type_name" value="{$template_type[$type]['type_name']}">
|
||||
<input type="hidden" name="type" value="{$type}">
|
||||
{/if}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required"></span>模板名称:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="template_name" lay-verify="required" {if !empty($info)} value="{$info['template_name']}" {/if} autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
{if !empty($info)}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label"><span class="required"></span>模板类型:</label>
|
||||
<div class="layui-input-block">{$info['type_name']}</div>
|
||||
</div>
|
||||
{/if}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-card card-common card-brief">
|
||||
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">打印信息</span>
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">小票名称:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" {if !empty($info)} value="{$info['title']}"{else/} value="小票名称" {/if} lay-verify="required" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商城名称:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" lay-filter="shop_name" name="head" value="1" title="显示" {if (!empty($info) && $info['head'] == 1) || empty($info) } checked {/if} autocomplete="off" class="layui-input len-long">
|
||||
<input type="radio" lay-filter="shop_name" name="head" value="0" title="不显示" {if !empty($info) && !$info['head']} checked {/if} autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商品信息:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="goods_price_show" value="1" lay-skin="primary" title="商品金额" {if (!empty($info) && $info['goods_price_show'] == 1) || empty($info) } checked {/if} lay-filter="goods_price_show">
|
||||
<input type="checkbox" name="goods_code_show" value="1" lay-skin="primary" title="商品编码" {if !empty($info) && $info['goods_code_show'] == 1 } checked {/if} lay-filter="goods_code_show">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item goods_price_type ">
|
||||
<label class="layui-form-label">商品金额:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="radio" lay-filter="goods_price_type" name="goods_price_type" value="price" title="售价" {if (!empty($info) && $info['goods_price_type'] == 'price') || empty($info) } checked {/if} autocomplete="off" class="layui-input len-long">
|
||||
<input type="radio" lay-filter="goods_price_type" name="goods_price_type" value="order_price" title="实付价" {if !empty($info) && $info['goods_price_type'] == 'order_price'} checked {/if} autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
{if addon_is_exit('form')}
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">表单信息:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="form_show" value="1" lay-skin="primary" title="表单" {if (!empty($info) && $info['form_show']) || empty($info) } checked {/if} lay-filter="form_show">
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">备注信息:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="buy_notes" value="1" lay-skin="primary" title="买家留言" {if (!empty($info) && $info['buy_notes']) || empty($info) } checked {/if} lay-filter="buyer_message">
|
||||
<input type="checkbox" name="seller_notes" value="1" lay-skin="primary" title="卖家留言" {if (!empty($info) && $info['seller_notes']) } checked {/if} lay-filter="merchant_message">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">买家信息:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="buy_name" value="1" lay-filter="buyer_name" lay-skin="primary" title="姓名" {if (!empty($info) && $info['buy_name']) || empty($info) } checked {/if}>
|
||||
<input type="checkbox" name="buy_mobile" value="1" lay-filter="buyer_phone" lay-skin="primary" title="联系方式" {if (!empty($info) && $info['buy_mobile']) || empty($info) } checked {/if}>
|
||||
<input type="checkbox" name="buy_address" value="1" lay-filter="buyer_address" lay-skin="primary" title="地址" {if (!empty($info) && $info['buy_address']) || empty($info) } checked {/if}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商城信息:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="shop_mobile" value="1" lay-filter="shopping_phone" lay-skin="primary" title="联系方式" {if (!empty($info) && $info['shop_mobile'])} checked {/if}>
|
||||
<input type="checkbox" name="shop_address" value="1" lay-filter="shopping_addres" lay-skin="primary" title="地址" {if (!empty($info) && $info['shop_address'])} checked {/if}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">商城二维码:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="checkbox" name="shop_qrcode" value="1" lay-filter="shop_qrcode" lay-skin="primary" title="商城二维码" {if (!empty($info) && $info['shop_qrcode']) || empty($info) } checked {/if}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item qrcode_url">
|
||||
<label class="layui-form-label"><span class="required">*</span>商城二维码链接:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="qrcode_url" lay-verify="required" autocomplete="off" class="layui-input len-long" {if (!empty($info) && $info['qrcode_url'])} value="{$info['qrcode_url']}" {/if}>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">底部信息:</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="bottom" {if (!empty($info) && $info['bottom'])} value="{$info['bottom']}"{else /} value="谢谢惠顾,欢迎下次光临" {/if} lay-verify="required" placeholder="" autocomplete="off" class="layui-input len-long">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
{if !empty($info)}
|
||||
<input type="hidden" name="template_id" value="{$info['template_id']}">
|
||||
{/if}
|
||||
<div class="form-row">
|
||||
<button class="layui-btn" lay-submit lay-filter="save">保存</button>
|
||||
<button class="layui-btn layui-btn-primary" onclick="backPrinterTemplateList()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="preview">
|
||||
<div class="layui-card card-common card-brief">
|
||||
|
||||
<div class="layui-card-header">
|
||||
<span class="card-title">预览图</span>
|
||||
</div>
|
||||
|
||||
<div class="layui-card-body">
|
||||
<div class="receipt-name">小票名称</div>
|
||||
<div class="shopping-name">商城名称</div>
|
||||
<div class="order-info">
|
||||
<span>订单时间:2023年2月11日 11:16:44</span>
|
||||
<span>订单编号:ME20180702231831547866</span>
|
||||
<span>支付方式:微信支付</span>
|
||||
<span>配送时间:立即送达(自提提货、本地配送展示)</span>
|
||||
</div>
|
||||
<div class="goods-info">
|
||||
<table>
|
||||
<tr>
|
||||
<th align="left">商品名称</th>
|
||||
<th align="center">数量</th>
|
||||
<th align="right" class="goods_price_show">金额</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>男子运动外套</td>
|
||||
<td align="center">2</td>
|
||||
<td align="right" class="goods_price_show">¥388.00</td>
|
||||
</tr>
|
||||
<tr class="goods_code_show layui-hide">
|
||||
<td colspan="3">[G00000001]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>白色跑步鞋</td>
|
||||
<td align="center">2</td>
|
||||
<td align="right" class="goods_price_show">¥1689.00</td>
|
||||
</tr>
|
||||
<tr class="goods_code_show layui-hide">
|
||||
<td colspan="3">[G00000002]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>运费</td>
|
||||
<td colspan="2" align="right">¥0.00</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="price-info">
|
||||
<p>
|
||||
<span>订单原价</span>
|
||||
<span>¥2010</span>
|
||||
</p>
|
||||
<p>
|
||||
<span>优惠金额</span>
|
||||
<span>¥2010</span>
|
||||
</p>
|
||||
<p>
|
||||
<span>实付金额</span>
|
||||
<span>¥2010</span>
|
||||
</p>
|
||||
</div>
|
||||
<div class="buyer-message">买家留言:物流很快</div>
|
||||
<div class="merchant-message layui-hide">卖家留言:欢迎下次购买</div>
|
||||
{if addon_is_exit('form')}
|
||||
<div class="form_show">标题:内容</div>
|
||||
{/if}
|
||||
<div class="buyer-info">
|
||||
<span class="name">niushop</span>
|
||||
<span class="phone">15135669878</span>
|
||||
<span class="addres">山西省 太原市 小店区 创业街</span>
|
||||
</div>
|
||||
<div class="shopping-info layui-hide">
|
||||
<span class="phone layui-hide">4008867993 </span>
|
||||
<span class="addres layui-hide">山西省 太原市 小店区 创业街 世纪中心4单元1025</span>
|
||||
</div>
|
||||
<div class="shopping-code">
|
||||
<img src="SHOP_IMG/shopping_code.png" alt="">
|
||||
</div>
|
||||
<div class="button-info">谢谢惠顾,欢迎下次光临</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
layui.use(['form'], function() {
|
||||
var form = layui.form,
|
||||
repeat_flag = false;
|
||||
|
||||
form.render();
|
||||
|
||||
/**
|
||||
* 表单验证
|
||||
*/
|
||||
form.verify({
|
||||
time: function(value) {
|
||||
var now_time = (new Date()).getTime();
|
||||
var start_time = (new Date($("#start_time").val())).getTime();
|
||||
var end_time = (new Date(value)).getTime();
|
||||
if (now_time > end_time) {
|
||||
return '结束时间不能小于当前时间!'
|
||||
}
|
||||
if (start_time > end_time) {
|
||||
return '结束时间不能小于开始时间!';
|
||||
}
|
||||
},
|
||||
flnum: function(value) {
|
||||
var arrMen = value.split(".");
|
||||
var val = 0;
|
||||
if (arrMen.length == 2) {
|
||||
val = arrMen[1];
|
||||
}
|
||||
if (val.length > 2) {
|
||||
return '保留小数点后两位!'
|
||||
}
|
||||
},
|
||||
int: function(value) {
|
||||
if (value <= 1 || value % 1 != 0) {
|
||||
return '请输入大于1的正整数!'
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
form.on('checkbox(shop_qrcode)', function(data){
|
||||
|
||||
var value = data.elem.checked;
|
||||
if(value == true){
|
||||
$(".preview .shopping-code").removeClass("layui-hide");
|
||||
$(".qrcode_url").removeClass('layui-hide');
|
||||
$("input[name='qrcode_url']").attr("lay-verify", "required");
|
||||
}else{
|
||||
$(".preview .shopping-code").addClass("layui-hide");
|
||||
$(".qrcode_url").addClass('layui-hide');
|
||||
$("input[name='qrcode_url']").attr("lay-verify", "");
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 表单提交
|
||||
*/
|
||||
form.on('submit(save)', function(data){
|
||||
|
||||
var field = data.field;
|
||||
if(repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
let url = ns.url("printer://shop/template/add");
|
||||
if(parseInt(field.template_id) > 0 ) url = ns.url("printer://shop/template/edit");
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
dataType: 'JSON',
|
||||
url: url,
|
||||
data: field,
|
||||
async: false,
|
||||
success: function(res){
|
||||
repeat_flag = false;
|
||||
|
||||
if (res.code == 0) {
|
||||
layer.confirm('操作成功', {
|
||||
title:'操作提示',
|
||||
btn: ['返回列表', '{$info ? "继续编辑" : "继续添加"}'],
|
||||
closeBtn: 0,
|
||||
yes: function(index, layero){
|
||||
location.hash = ns.hash("printer://shop/template/lists");
|
||||
layer.close(index);
|
||||
},
|
||||
btn2: function(index, layero) {
|
||||
listenerHash(); // 刷新页面
|
||||
layer.close(index);
|
||||
}
|
||||
});
|
||||
}else{
|
||||
layer.msg(res.message);
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
// 小票打印
|
||||
$("input[name='title']").bind("input propertychange",function(event){
|
||||
$(".preview .receipt-name").text($("input[name='title']").val());
|
||||
});
|
||||
|
||||
//商城名称
|
||||
form.on('radio(shop_name)', function(data){
|
||||
if (parseInt(data.value)) $(".shopping-name").removeClass("layui-hide");
|
||||
else $(".shopping-name").addClass("layui-hide");
|
||||
});
|
||||
|
||||
//商品价格
|
||||
form.on('checkbox(goods_price_show)', function(data){
|
||||
if (data.elem.checked) {
|
||||
$(".goods_price_show").removeClass("layui-hide");
|
||||
$('.goods_price_type').removeClass("layui-hide");
|
||||
}else {
|
||||
$('.goods_price_type').addClass("layui-hide");
|
||||
$(".goods_price_show").addClass("layui-hide");
|
||||
}
|
||||
});
|
||||
|
||||
//商品编码
|
||||
form.on('checkbox(goods_code_show)', function(data){
|
||||
if (data.elem.checked) $(".goods_code_show").removeClass("layui-hide");
|
||||
else $(".goods_code_show").addClass("layui-hide");
|
||||
});
|
||||
|
||||
//表单
|
||||
form.on('checkbox(form_show)', function(data){
|
||||
if (data.elem.checked) $(".form_show").removeClass("layui-hide");
|
||||
else $(".form_show").addClass("layui-hide");
|
||||
});
|
||||
|
||||
//买家留言
|
||||
form.on('checkbox(buyer_message)', function(data){
|
||||
if(data.elem.checked)
|
||||
$(".buyer-message").removeClass("layui-hide");
|
||||
else
|
||||
$(".buyer-message").addClass("layui-hide");
|
||||
});
|
||||
|
||||
//卖家留言
|
||||
form.on('checkbox(merchant_message)', function(data){
|
||||
if(data.elem.checked)
|
||||
$(".merchant-message").removeClass("layui-hide");
|
||||
else
|
||||
$(".merchant-message").addClass("layui-hide");
|
||||
});
|
||||
|
||||
var buyerName = true,buyerPhone=true,buyerAddres=true;
|
||||
|
||||
//买家姓名
|
||||
form.on('checkbox(buyer_name)', function(data){
|
||||
buyerName = data.elem.checked;
|
||||
|
||||
if(data.elem.checked)
|
||||
$(".buyer-info .name").removeClass("layui-hide");
|
||||
else
|
||||
$(".buyer-info .name").addClass("layui-hide");
|
||||
|
||||
buyerFn();
|
||||
});
|
||||
|
||||
//买家手机号
|
||||
form.on('checkbox(buyer_phone)', function(data){
|
||||
buyerPhone = data.elem.checked;
|
||||
|
||||
if(data.elem.checked)
|
||||
$(".buyer-info .phone").removeClass("layui-hide");
|
||||
else
|
||||
$(".buyer-info .phone").addClass("layui-hide");
|
||||
|
||||
buyerFn();
|
||||
});
|
||||
|
||||
//买家地址
|
||||
form.on('checkbox(buyer_address)', function(data){
|
||||
buyerAddres= data.elem.checked;
|
||||
if(data.elem.checked)
|
||||
$(".buyer-info .addres").removeClass("layui-hide");
|
||||
else
|
||||
$(".buyer-info .addres").addClass("layui-hide");
|
||||
buyerFn();
|
||||
});
|
||||
|
||||
function buyerFn() {
|
||||
if (!buyerName && !buyerPhone && !buyerAddres)
|
||||
$(".buyer-info").addClass("layui-hide");
|
||||
else
|
||||
$(".buyer-info").removeClass("layui-hide");
|
||||
}
|
||||
|
||||
var shoppingPhone=false,shoppingAddress=false;
|
||||
//商家手机号
|
||||
form.on('checkbox(shopping_phone)', function(data){
|
||||
shoppingPhone = data.elem.checked;
|
||||
|
||||
if(data.elem.checked)
|
||||
$(".shopping-info .phone").removeClass("layui-hide");
|
||||
else
|
||||
$(".shopping-info .phone").addClass("layui-hide");
|
||||
|
||||
shoppingFn();
|
||||
});
|
||||
//商家地址
|
||||
form.on('checkbox(shopping_addres)', function(data){
|
||||
shoppingAddress= data.elem.checked;
|
||||
|
||||
if(data.elem.checked)
|
||||
$(".shopping-info .addres").removeClass("layui-hide");
|
||||
else
|
||||
$(".shopping-info .addres").addClass("layui-hide");
|
||||
shoppingFn();
|
||||
});
|
||||
|
||||
function shoppingFn() {
|
||||
if (!shoppingPhone && !shoppingAddress)
|
||||
$(".shopping-info").addClass("layui-hide");
|
||||
else
|
||||
$(".shopping-info").removeClass("layui-hide");
|
||||
}
|
||||
|
||||
// 底部信息
|
||||
$("input[name='bottom']").bind("input propertychange",function(event){
|
||||
$(".preview .button-info").text($("input[name='bottom']").val());
|
||||
});
|
||||
});
|
||||
|
||||
function backPrinterTemplateList() {
|
||||
location.hash = ns.hash("printer://shop/template/lists");
|
||||
}
|
||||
|
||||
</script>
|
||||
{if !empty($info)}
|
||||
<script>
|
||||
var shop_qrcode = {$info['shop_qrcode']};
|
||||
if(shop_qrcode){
|
||||
$(".preview .shopping-code").removeClass("layui-hide");
|
||||
$(".qrcode_url").removeClass('layui-hide');
|
||||
$("input[name='qrcode_url']").attr("lay-verify", "required");
|
||||
}else{
|
||||
$(".preview .shopping-code").addClass("layui-hide");
|
||||
$(".qrcode_url").addClass('layui-hide');
|
||||
$("input[name='qrcode_url']").attr("lay-verify", "");
|
||||
}
|
||||
|
||||
var head = {$info['head']};
|
||||
if (head) {
|
||||
$(".shopping-name").removeClass("layui-hide");
|
||||
}else {
|
||||
$(".shopping-name").addClass("layui-hide");
|
||||
}
|
||||
|
||||
var goods_price_show = {$info['goods_price_show']};
|
||||
if (goods_price_show) {
|
||||
$(".goods_price_show").removeClass("layui-hide");
|
||||
$('.goods_price_type').removeClass("layui-hide");
|
||||
}else {
|
||||
$('.goods_price_type').addClass("layui-hide");
|
||||
$(".goods_price_show").addClass("layui-hide");
|
||||
}
|
||||
|
||||
var goods_code_show = {$info['goods_code_show']};
|
||||
if (goods_code_show) $(".goods_code_show").removeClass("layui-hide");
|
||||
else $(".goods_code_show").addClass("layui-hide");
|
||||
|
||||
var form_show = {$info['form_show']};
|
||||
if (form_show) $(".form_show").removeClass("layui-hide");
|
||||
else $(".form_show").addClass("layui-hide");
|
||||
|
||||
var buy_notes = {$info['buy_notes']};
|
||||
if(buy_notes) $(".buyer-message").removeClass("layui-hide");
|
||||
else $(".buyer-message").addClass("layui-hide");
|
||||
|
||||
var seller_notes = {$info['seller_notes']};
|
||||
if(seller_notes) $(".merchant-message").removeClass("layui-hide");
|
||||
else $(".merchant-message").addClass("layui-hide");
|
||||
|
||||
buyerName = {$info['buy_name']},buyerPhone={$info['buy_mobile']},buyerAddres={$info['buy_address']};
|
||||
if(buyerName) $(".buyer-info .name").removeClass("layui-hide");
|
||||
else $(".buyer-info .name").addClass("layui-hide");
|
||||
|
||||
if(buyerPhone) $(".buyer-info .phone").removeClass("layui-hide");
|
||||
else $(".buyer-info .phone").addClass("layui-hide");
|
||||
|
||||
if(buyerAddres) $(".buyer-info .addres").removeClass("layui-hide");
|
||||
else $(".buyer-info .addres").addClass("layui-hide");
|
||||
|
||||
if (!buyerName && !buyerPhone && !buyerAddres) $(".buyer-info").addClass("layui-hide");
|
||||
else $(".buyer-info").removeClass("layui-hide");
|
||||
|
||||
shoppingPhone= {$info['shop_mobile']},shoppingAddress= {$info['shop_address']};
|
||||
|
||||
//商家手机号
|
||||
if(shoppingPhone)$(".shopping-info .phone").removeClass("layui-hide");
|
||||
else $(".shopping-info .phone").addClass("layui-hide");
|
||||
|
||||
//商家地址
|
||||
if(shoppingAddress) $(".shopping-info .addres").removeClass("layui-hide");
|
||||
else $(".shopping-info .addres").addClass("layui-hide");
|
||||
|
||||
if (!shoppingPhone && !shoppingAddress) $(".shopping-info").addClass("layui-hide");
|
||||
else $(".shopping-info").removeClass("layui-hide");
|
||||
|
||||
</script>
|
||||
{/if}
|
||||
106
addon/printer/shop/view/template/lists.html
Executable file
106
addon/printer/shop/view/template/lists.html
Executable file
@@ -0,0 +1,106 @@
|
||||
<!-- 搜索框 -->
|
||||
<div class="single-filter-box">
|
||||
<button class="layui-btn" onclick="add()">添加打印模板</button>
|
||||
</div>
|
||||
|
||||
<table id="template_list" lay-filter="template_list"></table>
|
||||
|
||||
<!-- 操作 -->
|
||||
<script type="text/html" id="operation">
|
||||
<div class="table-btn">
|
||||
<a class="layui-btn" lay-event="edit">编辑</a>
|
||||
<a class="layui-btn" lay-event="del">删除</a>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script>
|
||||
layui.use(['form'], function() {
|
||||
var table,
|
||||
form = layui.form,
|
||||
repeat_flag = false; //防重复标识
|
||||
form.render();
|
||||
|
||||
table = new Table({
|
||||
elem: '#template_list',
|
||||
url: ns.url("printer://shop/template/lists"),
|
||||
cols: [
|
||||
[{
|
||||
'field':'template_name',
|
||||
title: '模板名称',
|
||||
unresize: 'false'
|
||||
}, {
|
||||
title: '模板类型',
|
||||
unresize: 'false',
|
||||
templet: function(data) {
|
||||
return data.type_name;
|
||||
}
|
||||
}, {
|
||||
title: '添加时间',
|
||||
unresize: 'false',
|
||||
templet: function(data) {
|
||||
return ns.time_to_date(data.create_time);
|
||||
}
|
||||
}, {
|
||||
title: '操作',
|
||||
toolbar: '#operation',
|
||||
unresize: 'false',
|
||||
align:'right'
|
||||
}]
|
||||
]
|
||||
|
||||
});
|
||||
|
||||
/**
|
||||
* 监听工具栏操作
|
||||
*/
|
||||
table.tool(function(obj) {
|
||||
var data = obj.data;
|
||||
switch (obj.event) {
|
||||
case 'edit': //编辑
|
||||
location.hash = ns.hash("printer://shop/template/edit", {"template_id": data.template_id});
|
||||
break;
|
||||
case 'del': //删除
|
||||
deleteTemplate(data.template_id);
|
||||
break;
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
function deleteTemplate(template_id) {
|
||||
layer.confirm('确定要删除该模板吗?', function(index) {
|
||||
if (repeat_flag) return;
|
||||
repeat_flag = true;
|
||||
layer.close(index);
|
||||
|
||||
$.ajax({
|
||||
url: ns.url("printer://shop/template/delete"),
|
||||
data: {
|
||||
template_id: template_id
|
||||
},
|
||||
dataType: 'JSON',
|
||||
type: 'POST',
|
||||
success: function(res) {
|
||||
layer.msg(res.message);
|
||||
repeat_flag = false;
|
||||
if (res.code == 0) {
|
||||
table.reload({
|
||||
page: {
|
||||
curr: 1
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}, function() {
|
||||
layer.close();
|
||||
repeat_flag = false;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
function add() {
|
||||
location.hash = ns.hash("printer://shop/template/add");
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user