diff --git a/application/plugins/freightfee/Admin.php b/application/plugins/freightfee/Admin.php
index eb2585de9..20f4237f5 100644
--- a/application/plugins/freightfee/Admin.php
+++ b/application/plugins/freightfee/Admin.php
@@ -12,6 +12,7 @@ namespace app\plugins\freightfee;
use think\Controller;
use app\service\PluginsService;
+use app\service\RegionService;
/**
* 运费设置 - 管理
@@ -61,6 +62,20 @@ class Admin extends Controller
1 => array('id' => 1, 'name' => '按重量'),
];
+ // 地区
+ $region = RegionService::RegionItems(['pid'=>0, 'field'=>'id,name']);
+ if(!empty($region))
+ {
+ $region = array_map(function($v)
+ {
+ $v['items'] = RegionService::RegionItems(['pid'=>$v['id'], 'field'=>'id,name']);
+ return $v;
+ }, $region);
+ }
+
+ //print_r($ret['data']);
+
+ $this->assign('region_list', $region);
$this->assign('is_whether_list', $is_whether_list);
$this->assign('data', $ret['data']);
return $this->fetch('../../../plugins/view/freightfee/admin/saveinfo');
diff --git a/application/plugins/view/freightfee/admin/saveinfo.html b/application/plugins/view/freightfee/admin/saveinfo.html
index eadd8545b..cb0836067 100644
--- a/application/plugins/view/freightfee/admin/saveinfo.html
+++ b/application/plugins/view/freightfee/admin/saveinfo.html
@@ -21,8 +21,8 @@
-
-
+
-
+
+
+
+
diff --git a/application/service/RegionService.php b/application/service/RegionService.php
index 366a805d6..684d3c9f4 100755
--- a/application/service/RegionService.php
+++ b/application/service/RegionService.php
@@ -36,17 +36,18 @@ class RegionService
}
/**
- * 获取地区idx下列表
+ * 获取地区id下列表
* @author Devil
* @blog http://gong.gg/
* @version 1.0.0
* @datetime 2018-12-09T00:13:02+0800
- * @param [array] $param [输入参数]
+ * @param [array] $params [输入参数]
*/
- public static function RegionItems($param = [])
+ public static function RegionItems($params = [])
{
- $pid = isset($param['pid']) ? intval($param['pid']) : 0;
- return Db::name('Region')->where(['pid'=>$pid, 'is_enable'=>1])->select();
+ $pid = isset($params['pid']) ? intval($params['pid']) : 0;
+ $field = empty($params['field']) ? '*' : $params['field'];
+ return Db::name('Region')->field($field)->where(['pid'=>$pid, 'is_enable'=>1])->select();
}
/**
diff --git a/public/static/common/css/common.css b/public/static/common/css/common.css
index 5e663252e..05acfef6b 100755
--- a/public/static/common/css/common.css
+++ b/public/static/common/css/common.css
@@ -80,7 +80,7 @@ iframe { width: 100%; height: 100%; border: 0; }
form.am-form .am-form-group:hover, .plug-file-upload-view:hover {
background: #f6f9fc;
}
- form.am-form .am-form-group, .plug-images-list, .goods-specifications, .content-app-items, .plug-file-upload-view {
+ form.am-form .am-form-group, .plug-images-list, .goods-specifications, .content-app-items, .plug-file-upload-view, .business-form-block {
border-bottom: 1px dashed #ccc;
padding: 10px 20% 10px 5px;
}
diff --git a/public/static/plugins/css/freightfee/admin.css b/public/static/plugins/css/freightfee/admin.css
index 62214c747..8562ba949 100755
--- a/public/static/plugins/css/freightfee/admin.css
+++ b/public/static/plugins/css/freightfee/admin.css
@@ -8,4 +8,80 @@
}
.freightfee-content .edit-submit {
margin-bottom: 20px;
+}
+
+/**
+ * 编辑页面
+ */
+.freightfee-rules table.am-table {
+ margin-bottom: 10px;
+}
+.freightfee-rules table.am-table tr td input {
+ max-width: 100px;
+ display: -webkit-inline-box;
+}
+.freightfee-rules table.am-table tr th, .freightfee-rules table.am-table tr td, .freightfee-rules table.am-table tr td input {
+ text-align: center;
+}
+.freightfee-rules table.am-table tr td.first
+{
+ width: 30%;
+}
+.freightfee-rules table.am-table tr td .region-td {
+ border: 1px solid #bee5c0;
+ padding: 5px;
+ background: #f0fff0;
+ margin-bottom: 5px;
+}
+.freightfee-rules table.am-table td.first input {
+ position: absolute;
+ margin-left: -1000000px;
+}
+
+/**
+ * 弹窗
+ */
+#freightfee-region-popup ul {
+ margin: 0;
+ padding: 0;
+}
+#freightfee-region-popup ul li {
+ list-style-type: none;
+ border-bottom: 1px solid #eee;
+ margin-bottom: 15px;
+}
+#freightfee-region-popup ul.city-list {
+ overflow: hidden;
+ margin-top: 5px;
+}
+#freightfee-region-popup ul .province-name {
+ border-bottom: 1px solid #e7e7e7;
+ background: #f5f5f5;
+ margin: 0;
+}
+#freightfee-region-popup ul .province-name.selected-may {
+ background: #eaf7eb;
+ border-bottom: 1px solid #d2efd3;
+}
+#freightfee-region-popup ul .province-name.selected {
+ background: #4CAF50;
+ border-bottom: 1px solid #409643;
+ color: #fff;
+}
+#freightfee-region-popup ul.city-list li {
+ float: left;
+ background: #e9e8e8;
+ margin: 0 10px 10px 0;
+ border-radius: 3px;
+ border: 1px solid #d6d6d6;
+}
+#freightfee-region-popup ul li .province-name, #freightfee-region-popup ul li .city-name
+{
+ cursor: pointer;
+ padding: 2px 5px;
+}
+#freightfee-region-popup ul.city-list li.selected {
+ background: #4CAF50;
+ color: #fff;
+ border: 1px solid #409643;
}
\ No newline at end of file
diff --git a/public/static/plugins/js/freightfee/admin.js b/public/static/plugins/js/freightfee/admin.js
new file mode 100644
index 000000000..06682fd9d
--- /dev/null
+++ b/public/static/plugins/js/freightfee/admin.js
@@ -0,0 +1,260 @@
+$(function()
+{
+ // 计费方式切换
+ $('form.am-form input[name=valuation]').on('click', function()
+ {
+ var $this = $(this);
+ var valuation = parseInt($this.val());
+ if($(this).parents('.am-form-group').attr('data-value') != valuation)
+ {
+ AMUI.dialog.confirm({
+ title: '温馨提示',
+ content: '切换计价方式后,所设置当前模板的运输信息将被清空,确定继续么?',
+ onConfirm: function(e)
+ {
+ // 内容
+ var valuation_unit = ['件', 'kg'];
+ var unit = valuation_unit[valuation] || null;
+ if(unit == null)
+ {
+ Prompt('配置有误');
+ return false;
+ }
+
+ $this.parents('.am-form-group').attr('data-value', valuation);
+ var thead = '';
+ thead += '| 运送到 | ';
+ thead += '首件数('+unit+') | ';
+ thead += '首费(元) | ';
+ thead += '续件数('+unit+') | ';
+ thead += '续费(元) | ';
+ thead += '操作 | ';
+ thead += '
';
+
+ var html = '';
+ switch(valuation)
+ {
+ // 按件
+ case 0 :
+ html += '';
+ html += '| 默认运费';
+ html += ' | ';
+ html += '';
+ html += '';
+ html += ' | ';
+ html += '';
+ html += '';
+ html += ' | ';
+ html += '';
+ html += '';
+ html += ' | ';
+ html += '';
+ html += '';
+ html += ' | ';
+ html += ' | ';
+ html += '
';
+ break;
+
+ // 按重量
+ case 1 :
+ html += '';
+ html += '| 默认运费';
+ html += ' | ';
+ html += '';
+ html += '';
+ html += ' | ';
+ html += '';
+ html += '';
+ html += ' | ';
+ html += '';
+ html += '';
+ html += ' | ';
+ html += '';
+ html += '';
+ html += ' | ';
+ html += ' | ';
+ html += '
';
+ break;
+
+ default :
+ Prompt('配置有误');
+ }
+ $('.freightfee-rules table.am-table thead').html(thead);
+ $('.freightfee-rules table.am-table tbody').html(html);
+ },
+ onCancel: function()
+ {
+ $('form.am-form input[name=valuation]').eq(valuation).uCheck('uncheck');
+ $('form.am-form input[name=valuation]').eq(valuation == 1 ? 0 : 1).uCheck('check');
+ $this.parents('.am-form-group').attr('data-value', valuation == 1 ? 0 : 1);
+ }
+ });
+ }
+ });
+
+ // 元素添加
+ $('.rules-submit-add').on('click', function()
+ {
+ // 唯一索引
+ var index = parseInt(Math.random()*1000001);
+
+ // 元素html
+ var html = $('.freightfee-rules table.am-table').find('tbody tr:first').prop('outerHTML');
+ if(html.indexOf('默认运费') >= 0)
+ {
+ html = html.replace(/默认运费/ig, '添加地区');
+ }
+ if(html.indexOf('') >= 0)
+ {
+ html = html.replace(//ig, '删除');
+ }
+ $('.freightfee-rules table.am-table').append(html);
+
+ // 值赋空
+ $('.freightfee-rules table.am-table').find('tbody tr:last').find('input').each(function(k, v)
+ {
+ $(this).attr('value', '');
+ });
+ $('.freightfee-rules table.am-table').find('tbody tr:last .region-td').text('').addClass('none');
+
+ // 移除原来的class新增新的class
+ $('.freightfee-rules table.am-table').find('tbody tr:last').removeClass().addClass('data-list-'+index);
+
+ // name名称设置
+ $('.freightfee-rules table.am-table').find('tbody tr:last .region-name').attr('name', 'region_name['+index+'][\'region\']');
+ $('.freightfee-rules table.am-table').find('tbody tr:last .first-name').attr('name', 'first_name['+index+'][\'first\']');
+ $('.freightfee-rules table.am-table').find('tbody tr:last .first-price-name').attr('name', 'first_price_name['+index+'][\'first_price\']');
+ $('.freightfee-rules table.am-table').find('tbody tr:last .continue-name').attr('name', 'continue_name['+index+'][\'continue\']');
+ $('.freightfee-rules table.am-table').find('tbody tr:last .continue-price-name').attr('name', 'continue_price_name['+index+'][\'continue_price\']');
+ });
+
+ // 行移除
+ $(document).on('click', '.freightfee-rules table.am-table .line-remove', function()
+ {
+ $(this).parents('tr').remove();
+ });
+
+ // 地区编辑
+ $(document).on('click', '.freightfee-rules table.am-table .line-edit', function()
+ {
+ var index = $(this).data('index');
+ $('#freightfee-region-popup').modal();
+ $('#freightfee-region-popup').attr('data-index', index);
+
+ // 清楚选中
+ $('#freightfee-region-popup').find('.province-name').removeClass('selected').removeClass('selected-may');
+ $('#freightfee-region-popup').find('.city-name').parent('li').removeClass('selected');
+
+ // 地区选中
+ var ids = $('.data-list-'+index).find('td.first input').val() || null;
+
+ if(ids != null)
+ {
+ var ids_all = ids.split('-');
+ for(var i in ids_all)
+ {
+ $('.region-node-'+ids_all[i]).parent('li').addClass('selected');
+ }
+
+ // 父级选择处理
+ $('#freightfee-region-popup .city-list').each(function(k, v)
+ {
+ var items_count = $(this).find('.city-name').length;
+ var selected_count = $(this).find('.selected').length;
+ if(selected_count >= items_count)
+ {
+ $(this).prev('.province-name').removeClass('selected-may').addClass('selected');
+ } else if(selected_count > 0 && selected_count < items_count)
+ {
+ $(this).prev('.province-name').removeClass('selected').addClass('selected-may');
+ } else {
+ $(this).prev('.province-name').removeClass('selected-may').removeClass('selected');
+ }
+ });
+ }
+ });
+
+ // 地区选择事件 - 省
+ $('#freightfee-region-popup .province-name').on('click', function()
+ {
+ if($(this).hasClass('selected-may') || $(this).hasClass('selected'))
+ {
+ $(this).next('.city-list').find('li').removeClass('selected');
+ $(this).removeClass('selected-may').removeClass('selected');
+ } else {
+ $(this).next('.city-list').find('li').addClass('selected');
+ $(this).addClass('selected');
+ }
+ });
+
+ // 地区选择事件 - 城市
+ $('#freightfee-region-popup .city-name').on('click', function()
+ {
+ if($(this).parent('li').hasClass('selected'))
+ {
+ $(this).parent('li').removeClass('selected');
+ } else {
+ $(this).parent('li').addClass('selected');
+ }
+
+ // 父级处理
+ var items_count = $(this).parents('.city-list').find('.city-name').length;
+ var selected_count = $(this).parents('.city-list').find('.selected').length;
+ if(selected_count >= items_count)
+ {
+ $(this).parents('.city-list').prev('.province-name').removeClass('selected-may').addClass('selected');
+ } else if(selected_count > 0 && selected_count < items_count)
+ {
+ $(this).parents('.city-list').prev('.province-name').removeClass('selected').addClass('selected-may');
+ } else {
+ $(this).parents('.city-list').prev('.province-name').removeClass('selected-may').removeClass('selected');
+ }
+ });
+
+ // 地区选择确认
+ $('#freightfee-region-popup button[type="submit"]').on('click', function()
+ {
+ var name_all = [];
+ var ids_all = [];
+ var city_index = 0;
+ var province_index = 0;
+ var province_id = 0;
+ $('#freightfee-region-popup .city-list li').each(function(k, v)
+ {
+ if($(this).parent('.city-list').prev('.province-name').hasClass('selected'))
+ {
+ var temp_province_id = $(this).parent('.city-list').prev('.province-name').data('id');
+ console.log(temp_province_id)
+ if(province_id != temp_province_id)
+ {
+ province_id = temp_province_id;
+ name_all[province_index] = $(this).parent('.city-list').prev('.province-name').text();
+ province_index++;
+ }
+ } else {
+ if($(this).hasClass('selected'))
+ {
+ name_all[province_index] = $(this).find('.city-name').text();
+ province_index++;
+ }
+ }
+ if($(this).hasClass('selected'))
+ {
+ ids_all[city_index] = $(this).find('.city-name').data('city-id');
+ city_index++;
+ }
+ });
+ var $content = $('.data-list-'+$('#freightfee-region-popup').attr('data-index')+' .region-td');
+ $content.text(name_all.join('、'));
+ if(name_all.length > 0)
+ {
+ $content.removeClass('none');
+ } else {
+ $content.addClass('none');
+ }
+
+ $('.data-list-'+$('#freightfee-region-popup').attr('data-index')+' td.first input').val(ids_all.join('-'));
+
+ $('#freightfee-region-popup').modal('close');
+ });
+});
\ No newline at end of file