diff --git a/app/admin/service/curd/BuildCurdService.php b/app/admin/service/curd/BuildCurdService.php index e2c82ac..5b98442 100644 --- a/app/admin/service/curd/BuildCurdService.php +++ b/app/admin/service/curd/BuildCurdService.php @@ -225,7 +225,7 @@ class BuildCurdService * 表单类型 * @var array */ - protected $formTypeArray = ['text', 'image', 'images', 'file', 'files', 'select', 'switch', 'date', 'editor', 'textarea', 'checkbox', 'radio', 'relation', 'table']; + protected $formTypeArray = ['text', 'image', 'images', 'file', 'files', 'select', 'switch', 'date', 'editor', 'textarea', 'checkbox', 'radio', 'relation', 'table', 'city']; /** * 初始化 @@ -665,9 +665,9 @@ class BuildCurdService preg_match('/\([\s\S]*?\)/i', $string, $defineMatch); if (!empty($formTypeMatch) && isset($defineMatch[0])) { $colum['comment'] = str_replace($defineMatch[0], '', $colum['comment']); - if (isset($colum['formType']) && in_array($colum['formType'], ['images', 'files', 'select', 'switch', 'radio', 'checkbox', 'date', 'relation', 'table'])) { + if (isset($colum['formType']) && in_array($colum['formType'], ['images', 'files', 'select', 'switch', 'radio', 'checkbox', 'date', 'relation', 'table', 'city'])) { $define = str_replace(')', '', str_replace('(', '', $defineMatch[0])); - if (in_array($colum['formType'], ['select', 'switch', 'radio', 'checkbox', 'relation', 'table'])) { + if (in_array($colum['formType'], ['select', 'switch', 'radio', 'checkbox', 'relation', 'table', 'city'])) { $formatDefine = []; $explodeArray = explode(',', $define); foreach ($explodeArray as $vo) { @@ -708,7 +708,7 @@ class BuildCurdService ); return $selectCode; } - + /** * 构架下拉模型 * @param $field @@ -753,6 +753,54 @@ class BuildCurdService ); return $optionCode; } + + protected function buildCityView($field, $options, $value) + { + + + $default_define = [ + 'comment' => $options['comment'], + 'field' => $field, + 'required' => $this->buildRequiredHtml($options['required']), + 'value' => $value, + 'level' => '' + ]; + + + + + $define = array_merge($default_define, $options['define']); + + + $formatTargetList = []; + $formatTargetList['name'] = 1; + $formatTargetList['code'] = 1; + $formatTargetList['name-province'] = 1; + $formatTargetList['name-city'] = 1; + $formatTargetList['name-district'] = 1; + $formatTargetList['code-province'] = 1; + $formatTargetList['code-city'] = 1; + $formatTargetList['code-district'] = 1; + + $submit_field_content = ''; + + foreach ($formatTargetList as $key => $value) { + if (isset($define[$key])) { + $submit_field_content .= 'data-field-' . $key . '="' . $define[$key] . '" '; + } + } + + $define['submit_field_content'] = $submit_field_content; + + + $city_main_code = $this->replaceTemplate( + $this->getTemplate("view{$this->DS}module{$this->DS}cityMain"), + $define + ); + + return $city_main_code; + } + /** * 构建表格选择器视图 * @param $field @@ -1226,6 +1274,9 @@ class BuildCurdService } elseif ($val['formType'] == 'table') { $templateFile = "view{$this->DS}module{$this->DS}table"; $define = $this->buildTableView($field, $val, $val['default']); + } elseif ($val['formType'] == 'city') { + $templateFile = "view{$this->DS}module{$this->DS}city"; + $define = $this->buildCityView($field, $val, $val['default']); } @@ -1319,6 +1370,9 @@ class BuildCurdService } elseif ($val['formType'] == 'table') { $templateFile = "view{$this->DS}module{$this->DS}table"; $define = $this->buildTableView($field, $val, $value); + } elseif ($val['formType'] == 'city') { + $templateFile = "view{$this->DS}module{$this->DS}city"; + $define = $this->buildCityView($field, $val, $value); } $editFormList .= $this->replaceTemplate( diff --git a/app/admin/service/curd/templates/view/module/city.code b/app/admin/service/curd/templates/view/module/city.code new file mode 100644 index 0000000..04df697 --- /dev/null +++ b/app/admin/service/curd/templates/view/module/city.code @@ -0,0 +1,7 @@ + +
+ +
+ {{define}} +
+
\ No newline at end of file diff --git a/app/admin/service/curd/templates/view/module/cityMain.code b/app/admin/service/curd/templates/view/module/cityMain.code new file mode 100644 index 0000000..b118c2d --- /dev/null +++ b/app/admin/service/curd/templates/view/module/cityMain.code @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/app/admin/view/test/goods/add.html b/app/admin/view/test/goods/add.html index c4e79d7..df5454b 100644 --- a/app/admin/view/test/goods/add.html +++ b/app/admin/view/test/goods/add.html @@ -150,6 +150,18 @@ + +
+ +
+ +
+
+
+ +
+ +
diff --git a/app/admin/view/test/goods/edit.html b/app/admin/view/test/goods/edit.html index 05d224c..af7d75b 100644 --- a/app/admin/view/test/goods/edit.html +++ b/app/admin/view/test/goods/edit.html @@ -1,6 +1,6 @@
- +
@@ -18,7 +18,7 @@
- +
上传 @@ -28,7 +28,7 @@
- +
上传 选择 @@ -57,7 +57,7 @@
{foreach $select_list_status as $k=>$v} - + {/foreach}
@@ -65,7 +65,7 @@
- +
上传 选择 @@ -75,9 +75,9 @@
@@ -112,7 +112,7 @@
@@ -121,7 +121,7 @@
{foreach $select_list_is_recommend as $k=>$v} - + {/foreach}
@@ -130,11 +130,11 @@
{foreach $select_list_shop_type as $k=>$v} - + {/foreach}
- +
@@ -142,7 +142,7 @@
-
+
@@ -150,21 +150,17 @@
-
+
- - - +
-
+
- - - +
diff --git a/public/static/admin/js/test/goods.js b/public/static/admin/js/test/goods.js index e65d676..63eaca0 100644 --- a/public/static/admin/js/test/goods.js +++ b/public/static/admin/js/test/goods.js @@ -17,7 +17,7 @@ define(["jquery", "easy-admin"], function ($, ea) { ea.table.render({ init: init, cols: [[ - {type: 'checkbox'}, {field: 'id', title: 'id'}, {field: 'cate_id', title: '分类ID'}, {field: 'title', title: '商品名称'}, {field: 'logo', title: '商品logo', templet: ea.table.image}, {field: 'total_stock', title: '总库存'}, {field: 'sort', title: '排序', edit: 'text'}, {field: 'status', search: 'select', selectList: ea.getDataBrage('select_list_status'), title: '状态', templet: ea.table.switch}, {field: 'cert_file', title: '合格证', templet: ea.table.url}, {field: 'remark', title: '备注说明', templet: ea.table.text}, {field: 'create_time', title: 'create_time'}, {field: 'publish_time', title: '发布日期'}, {field: 'sale_time', title: '售卖日期'}, {field: 'intro', title: '简介'}, {field: 'time_status', search: 'select', selectList: ea.getDataBrage('select_list_time_status'), title: '秒杀状态'}, {field: 'is_recommend', search: 'select', selectList: ea.getDataBrage('select_list_is_recommend'), title: '是否推荐'}, {field: 'shop_type', search: 'select', selectList: ea.getDataBrage('select_list_shop_type'), title: '商品类型'}, {field: 'mallCate.id', title: ''}, {field: 'mallCate.title', title: '分类名'}, {field: 'mallCate.image', title: '分类图片', templet: ea.table.image}, {field: 'mallCate.sort', title: '排序', edit: 'text'}, {field: 'mallCate.status', title: '状态', templet: ea.table.switch}, {field: 'mallCate.remark', title: '备注说明', templet: ea.table.text}, {field: 'mallCate.create_time', title: '创建时间'}, {width: 250, title: '操作', templet: ea.table.tool}, + {type: 'checkbox'}, {field: 'id', title: 'id'}, {field: 'cate_id', title: '分类ID'}, {field: 'title', title: '商品名称'}, {field: 'logo', title: '商品logo', templet: ea.table.image}, {field: 'total_stock', title: '总库存'}, {field: 'sort', title: '排序', edit: 'text'}, {field: 'status', search: 'select', selectList: ea.getDataBrage('select_list_status'), title: '状态', templet: ea.table.switch}, {field: 'cert_file', title: '合格证', templet: ea.table.url}, {field: 'remark', title: '备注说明', templet: ea.table.text}, {field: 'create_time', title: 'create_time'}, {field: 'publish_time', title: '发布日期'}, {field: 'sale_time', title: '售卖日期'}, {field: 'intro', title: '简介'}, {field: 'time_status', search: 'select', selectList: ea.getDataBrage('select_list_time_status'), title: '秒杀状态'}, {field: 'is_recommend', search: 'select', selectList: ea.getDataBrage('select_list_is_recommend'), title: '是否推荐'}, {field: 'shop_type', search: 'select', selectList: ea.getDataBrage('select_list_shop_type'), title: '商品类型'}, {field: 'from_area', title: '产地'}, {field: 'store_city', title: '仓库'}, {field: 'mallCate.id', title: ''}, {field: 'mallCate.title', title: '分类名'}, {field: 'mallCate.image', title: '分类图片', templet: ea.table.image}, {field: 'mallCate.sort', title: '排序', edit: 'text'}, {field: 'mallCate.status', title: '状态', templet: ea.table.switch}, {field: 'mallCate.remark', title: '备注说明', templet: ea.table.text}, {field: 'mallCate.create_time', title: '创建时间'}, {width: 250, title: '操作', templet: ea.table.tool}, ]], });