linwu 9 месяцев назад
Родитель
Сommit
ff32387d9b

+ 2 - 1
app/admin/view/jfm/policy.html

@@ -54,10 +54,11 @@
                 [
                     {type: 'checkbox', fixed: 'left'},
                     {field: 'title', title: '标题'},
+                    {field: 'government', title: '发布单位', width:200},
                     {field: 'priority', title: '排序', width: 160},
                     {field: 'status_text', title: '状态', width: 100, align: 'center'},
                     {field: 'volume', title: '浏览量', width: 100},
-                    {field: 'update_time', title: '发布时间', width: 160, align: 'center'},
+                    {field: 'publish_time', title: '发布时间', width: 160, align: 'center'},
                     {title: '操作', width: 150, align: 'center', fixed: 'right', toolbar: '#setTpl'}
                 ]
             ],

+ 16 - 0
app/admin/view/jfm/policy_form.html

@@ -14,6 +14,22 @@
                                        class="layui-input">
                             </div>
                         </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label"><span style="color:#f90c05;">*</span>发布单位</label>
+                            <div class="layui-input-block">
+                                <input type="text" name="government" value="{:array_get($info,'government')}" lay-verify="required"
+                                       placeholder="请输入发布单位" autocomplete="off"
+                                       class="layui-input">
+                            </div>
+                        </div>
+                        <div class="layui-form-item">
+                            <label class="layui-form-label"><span style="color:#f90c05;">*</span>发布时间</label>
+                            <div class="layui-input-block">
+                                <input type="text" name="publish_time" value="{:array_get($info,'publish_time')}" lay-verify="required"
+                                       placeholder="例如:2024年7月24日" autocomplete="off"
+                                       class="layui-input">
+                            </div>
+                        </div>
                         <div class="layui-form-item" id="form-content">
                             <label class="layui-form-label"><span style="color:#f90c05;">*</span>内容</label>
                             <div class="layui-input-block">

+ 1 - 1
app/common/model/StreetModel.php

@@ -7,5 +7,5 @@ class StreetModel extends BaseModel
     // 设置表名
     protected $name = 'street';
 
-    const CATE = ['现代产业体系人才政策', '硕博专项政策', '柔性引才政策', '高校毕业生政策'];
+    const CATE = ['人才需求', '融资需求', '政策解读需求', '产学研需求','产业链对接需求','其他'];
 }

+ 26 - 0
app/mobile/controller/Jfm.php

@@ -4,6 +4,7 @@ namespace app\mobile\controller;
 
 use app\common\model\ArticleModel;
 use app\common\model\NavigationModel;
+use app\common\model\PolicyModel;
 use app\common\model\SlideModel;
 use app\common\model\StreetModel;
 use app\mobile\MobileBaseController;
@@ -34,4 +35,29 @@ class Jfm extends MobileBaseController
             'cate'   => json_encode($cate),
         ]);
     }
+
+    public function policy()
+    {
+        $list = PolicyModel::where('status', PolicyModel::STATUS_PUBLISH)->select();
+
+        return view('', [
+            'list' => $list,
+        ]);
+    }
+
+    public function policyDetail()
+    {
+        $id = input('id', 0);
+        if (empty($id)) {
+            jump('文章不存在!');
+        }
+
+        $info = PolicyModel::find($id);
+        $info->volume++;
+        $info->save();
+
+        return view('', [
+            'info' => $info,
+        ]);
+    }
 }

+ 1 - 1
app/mobile/view/jfm/appeal.html

@@ -112,7 +112,7 @@
         ></van-field>
     </van-cell-group>
     <div style="margin: 16px;">
-        <van-button round block type="primary" native-type="submit">
+        <van-button round block color="#BB0013" native-type="submit">
             提交
         </van-button>
     </div>

+ 7 - 10
app/mobile/view/jfm/index.html

@@ -3,16 +3,9 @@
 
 {/block}
 {block name="body"}
-<van-nav-bar
-        class="nav-theme"
-        :fixed="true"
-        :placeholder="true"
->
-    <template #title>
-        <span class="text-white">晋服码</span>
-    </template>
-</van-nav-bar>
-<p @click="toAppeal">诉求</p>
+<img src="__MIMAGES__/header_jfm.png" style="border:none;margin:0;padding:0;width:100%;display:block;"/>
+<img src="__MIMAGES__/jfm_appeal.png" style="width:95%;margin:10px auto 0 auto;display:block;" @click="toAppeal">
+<img src="__MIMAGES__/jfm_policy.png" style="width:95%;margin:0 auto;display:block;" @click="toPolicy">
 
 {/block}
 {block name="script"}
@@ -24,6 +17,10 @@
             location.href = "{:url('jfm/appeal')}";
         };
 
+        base.toPolicy = () => {
+            location.href = "{:url('jfm/policy')}";
+        };
+
         return base;
     }
 </script>

+ 42 - 0
app/mobile/view/jfm/policy.html

@@ -0,0 +1,42 @@
+{extend name="public/base_jfm"/}
+{block name="css"}
+<style>
+    .policy-item{width:90%;border:1px solid #eee;margin:20px auto 0 auto;padding:10px 10px;border-radius:10px;box-shadow: 0 0 10px #ccc;box-sizing: border-box;}
+    .policy-header {font-size:15px;font-weight:bold;padding-bottom:10px;}
+    .policy-footer {font-size:12px;display:flex;color:#8C8C8C;border-top:1px solid #ccc;padding-top:10px;}
+    .policy-footer-left {white-space: nowrap;overflow: hidden;text-overflow: ellipsis;width:calc(100% - 100px);}
+    .policy-footer-right {margin-left:auto;width:90px;}
+</style>
+{/block}
+{block name="body"}
+<img src="__MIMAGES__/header_jfm.png" style="border:none;margin:0;padding:0;width:100%;display:block;"/>
+<div class="policy-list">
+    <div class="policy-item" v-for="item in list" @click="toDetail(item.id)">
+        <div class="policy-header">
+            <van-image src="__MIMAGES__/icon_policy.png" height="14px"></van-image>
+            {{item.title}}
+        </div>
+        <div class="policy-footer">
+            <div class="policy-footer-left">{{item.government}}</div>
+            <div class="policy-footer-right">{{item.publish_time}}</div>
+        </div>
+    </div>
+</div>
+{/block}
+{block name="script"}
+<script>
+    function v_setup() {
+        let base = {};
+
+        base.list = {$list};
+        base.toDetail = (id) => {
+            location.href = "{:url('jfm/policyDetail')}?id="+id;
+        };
+
+        return base;
+    }
+</script>
+{/block}
+{block name="vue"}
+<script src="__COMPONENTS__/voteList.js"></script>
+{/block}

+ 62 - 0
app/mobile/view/jfm/policy_detail.html

@@ -0,0 +1,62 @@
+{extend name="public/base_jfm"/}
+{block name="css"}
+<style>
+    .article {background:white;padding:0 10px;}
+    .article h3 {padding:10px 0;margin:0;}
+    .article .article-info {align-items: center;display: flex;justify-content: space-between;margin: 5px;font-size:12px;}
+    .article .article-info .s-time {color:#b4b4b4;}
+    .article .article-info .s-comment {background: #f5f7f9;border-radius: 5px;flex-shrink: 0;font-size: 14px;padding:5px 10px;}
+    .content,.content img {max-width:100%;}
+</style>
+{/block}
+{block name="body"}
+<van-nav-bar
+        class="nav-theme"
+        :fixed="true"
+        :placeholder="true"
+        left-text="返回"
+        left-arrow
+        @click-left="onBack"
+>
+    <template #title>
+        <span class="text-white">政策详情</span>
+    </template>
+</van-nav-bar>
+
+<div class="article">
+    <header>
+        <h3>{$info.title}</h3>
+        <section class="article-info">
+            <div class="s-author">
+                <address>
+                    <span>{$info.government}</span>
+                </address>
+                <div class="s-time">
+                    <time>{$info.publish_time}</time>
+                </div>
+            </div>
+            <aside class="s-comment js-article-comment">
+                <van-icon name="chat-o"></van-icon>
+                <span class="js-article-commentCount">{$info.volume}</span>
+            </aside>
+        </section>
+    </header>
+    <section class="content">
+        {$info.content}
+    </section>
+</div>
+
+{/block}
+{block name="script"}
+<script>
+    function v_setup() {
+        let base = {};
+
+        base.onBack = () => {
+            history.back();
+        };
+
+        return base;
+    }
+</script>
+{/block}

BIN
public/static/mobile/images/header_jfm.png


BIN
public/static/mobile/images/icon_policy.png


BIN
public/static/mobile/images/jfm_appeal.png


BIN
public/static/mobile/images/jfm_policy.png