afa 6 months ago
parent
commit
79a85edcfd

+ 4 - 3
application/admin/lang/zh-cn/general/announcementtype.php

@@ -1,7 +1,8 @@
 <?php
 
 return [
-    'Pid'   => '一级分类',
-    'Title' => '标题',
-    'Color' => '颜色'
+    'Pid'      => '一级分类',
+    'Zh_title' => '中文标题',
+    'En_title' => '英文标题',
+    'Color'    => '颜色'
 ];

+ 8 - 3
application/admin/view/general/announcementtype/add.html

@@ -7,12 +7,17 @@
         </div>
     </div>
     <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
+        <label class="control-label col-xs-12 col-sm-2">{:__('Zh_title')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-title" data-rule="required" class="form-control" name="row[title]" type="text" value="">
+            <input id="c-zh_title" data-rule="required" class="form-control" name="row[zh_title]" type="text" value="">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('En_title')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-en_title" data-rule="required" class="form-control" name="row[en_title]" type="text" value="">
         </div>
     </div>
-
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Color')}:</label>
         <div class="col-xs-12 col-sm-8">

+ 8 - 3
application/admin/view/general/announcementtype/edit.html

@@ -7,12 +7,17 @@
         </div>
     </div>
     <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Title')}:</label>
+        <label class="control-label col-xs-12 col-sm-2">{:__('Zh_title')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-title" data-rule="required" class="form-control" name="row[title]" type="text" value="{$row.title|htmlentities}">
+            <input id="c-zh_title" data-rule="required" class="form-control" name="row[zh_title]" type="text" value="{$row.zh_title|htmlentities}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('En_title')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-en_title" data-rule="required" class="form-control" name="row[en_title]" type="text" value="{$row.en_title|htmlentities}">
         </div>
     </div>
-
     
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Color')}:</label>

+ 13 - 7
application/api/controller/Announcement.php

@@ -22,7 +22,7 @@ class Announcement extends Api
     //获取大分类
     public function gettype(AnnouncementModel $announcementModel){
 
-        $this->success('', $announcementModel::getTypeList());
+        $this->success('', $announcementModel::getTypeList($this->lan));
     }
 
 
@@ -30,13 +30,19 @@ class Announcement extends Api
     public function list(AnnouncementModel $announcementModel, AnnouncementType $announcementType)
     {
         $typeId = $this->request->param('type_id', 1, 'intval');
-        $paginator = $announcementModel->where('type_id', $typeId)
-            ->where('status', 1)->where('to_lang', $this->lan)
-            ->field('id,to_lang,weigh,img_url,createtime,title as title,introduction,body,is_top,sub_type_id')
-            ->order('is_top desc, weigh desc')
-            ->paginate($this->pageSize);
+        $subTypeId = $this->request->param('sub_type_id', 0, 'intval'); //子分类id
+        $title = $this->request->param('title/s', ''); //标题
+
+        $paginator = $announcementModel->where('type_id', $typeId)->where('status', 1)->where('to_lang', $this->lan);
+
+        //子分类
+        if($subTypeId > 0) $paginator =$paginator->where('find_in_set(:id,sub_type_id)',['id'=>$subTypeId]);
+        //标题
+        if(!empty($title)) $paginator =$paginator->where('title', 'LIKE', '%'.$title.'%');
+
+        $paginator =$paginator->field('id,to_lang,weigh,img_url,createtime,title as title,is_top,sub_type_id')->order('is_top desc, weigh desc')->paginate($this->pageSize);
        
-        $paginator = $announcementType::getSubTypeById($paginator);  
+        $paginator = $announcementType::getSubTypeById($paginator, $this->lan);  
         $this->success('', $this->buildResp($paginator->total(), $paginator->currentPage(), $paginator->items()));
     }
 

+ 3 - 3
application/common/model/AnnouncementModel.php

@@ -46,11 +46,11 @@ class AnnouncementModel  extends Model
     }
 
 
-    public static function getTypeList()
+    public static function getTypeList(string $lan)
     {   
         $typeList = [['key'=>1, 'value' => __('官方公告')], ['key'=>2, 'value' => __('系统信息')], ['key'=>3 , 'value'=> __('茶说')], ['key'=>4,'value' => __('新闻中心')]];
-        foreach ($typeList as $key=>$item) {
-            $typeList[$key]['sun_type_name'] = AnnouncementType::getSubTypeByPId($item['key']);
+        foreach ($typeList as &$item) {
+            $item['sun_type_name'] = AnnouncementType::getSubTypeByPId($item['key'], $lan);
         }
         return $typeList;
     }

+ 4 - 4
application/common/model/AnnouncementType.php

@@ -29,19 +29,19 @@ class AnnouncementType extends Model
       ];
 
       //获取子分类
-      public static function getSubTypeById(object $data){
+      public static function getSubTypeById(object $data, string $lan){
 
             foreach ($data as &$item) {
             $item->sub_type_name = '';
-            if(!empty($item->sub_type_id)) $item->sub_type_name = self::whereIn('id', $item->sub_type_id)->field('id,title,color')->select();
+            if(!empty($item->sub_type_id)) $item->sub_type_name = self::whereIn('id', $item->sub_type_id)->field('id,'.$lan.'_title as title,color')->select();
             }
             return $data;
       }
 
       //获取大分类子分类
-      public static function getSubTypeByPId(int $typeId){
+      public static function getSubTypeByPId(int $typeId, string $lan){
 
-            return self::where('pid', $typeId)->column('id,title');
+            return self::where('pid', $typeId)->column('id,'.$lan.'_title as title');
       }
     
 

+ 2 - 1
public/assets/js/backend/general/announcementtype.js

@@ -27,7 +27,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form','layui'], function ($,
                         {checkbox: true},
                         {field: 'id', title: __('Id')},
                         {field: 'pid', title: __('Pid'), operate: 'LIKE',  searchList: {"1":__('官方公告'),"2":__('系统信息'),"3":__('茶说'),"4":__('新闻中心') }, formatter: Table.api.formatter.flag},
-                        {field: 'title', title: __('Title'), operate: 'LIKE'},
+                        {field: 'zh_title', title: __('Zh_title'), operate: 'LIKE'},
+                        {field: 'en_title', title: __('En_title'), operate: 'LIKE'},
                         {field: 'color', title: __('Color'), operate: false,
                             formatter: function (value, row, index, field) {
                                 return '<span class="label " style="background:'+value+'">'+value+'</span>';