From 45c51f0719d744d0599338224ec3d139580b0fdf Mon Sep 17 00:00:00 2001 From: sugar1569 Date: Tue, 2 Apr 2019 18:09:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BB=84=E5=90=88=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=20=E7=B4=A2=E5=BC=95=E4=B8=BA=E7=A9=BAbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/model/system/SystemGroupData.php | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/application/admin/model/system/SystemGroupData.php b/application/admin/model/system/SystemGroupData.php index 1bb74912..90873258 100644 --- a/application/admin/model/system/SystemGroupData.php +++ b/application/admin/model/system/SystemGroupData.php @@ -75,12 +75,14 @@ class SystemGroupData extends ModelBasic $data = []; $result = $model->select(); if(!$result) return $data; + $result = $result->toArray(); foreach ($result as $key => $value) { $data[$key]["id"] = $value["id"]; $fields = json_decode($value["value"],true); foreach ($fields as $index => $field) { -// $data[$key][$index] = $field['type'] == 'upload' ? (isset($field["value"][0]) ? $field["value"][0]: ''):$field["value"]; - $data[$key][$index] = $field["value"]; + if($field['type'] === 'radio') { + $data[$key][$index] = self::getGroupRadioValue($value['gid'],$field["value"]); + }else $data[$key][$index] = $field["value"]; } } return $data; @@ -111,8 +113,32 @@ class SystemGroupData extends ModelBasic $data["id"] = $value["id"]; $fields = json_decode($value["value"],true); foreach ($fields as $index => $field) { - $data[$index] = $field["value"]; + if($field['type'] === 'radio') { + $data[$index] = self::getGroupRadioValue($value['gid'],$field["value"]); + }else $data[$index] = $field["value"]; } return $data; } + + /** + * TODO radio 根据值获取参数 + * @param $id + * @param $value + * @return mixed + */ + public static function getGroupRadioValue($id,$value){ + $groupData = SystemGroup::getField($id); + foreach ($groupData['fields'] as $key=>&$item){ + if($item['type'] == 'radio'){ + $params = explode("\n",$item["param"]); + if(is_array($params) && !empty($params)){ + foreach ($params as $index => &$v) { + $vl = explode('=>',$v); + if(isset($vl[0]) && isset($vl[1]) && count($vl) && $vl[1] === $value) return $vl[0]; + } + } + } + } + return $value; + } } \ No newline at end of file