소스 검색

fix:
- 地址添加配图
- bug修复

zhengzhibin 2 년 전
부모
커밋
1f9f7a8cbf

+ 4 - 1
app/admin/controller/Address.php

@@ -30,7 +30,10 @@ class Address extends Permissions
             $model = $this->getModel();
             $count = $model->where($where)->count();
             $data = $model->where($where)->page($post['page']??0, $post['limit']??15)->order('id desc')->select();
-
+            foreach ($data as $key => $value) {
+                $value['thumb_url'] = geturl($value['thumb']);
+                $data[$key] = $value;
+            }
             return array('code' => 0, 'count' => $count, 'data' => $data);
         } else {
             return $this->fetch();

+ 4 - 14
app/admin/controller/AppointmentApplication.php

@@ -32,15 +32,12 @@ class AppointmentApplication extends Permissions
             if (!empty($post["id_card"])) {
                 $where["id_card"] = ['like', '%' . $post["id_card"] . '%'];
             }
-            if (isset($post["appointment_id"]) and "" != $post["appointment_id"]) {
-                $where["appointment_id"] = $post["appointment_id"];
-            }
-            if (isset($post["appointment_ticket"]) and "" != $post["appointment_ticket"]) {
-                $where["appointment_ticket"] = $post["appointment_ticket"];
-            }
             if (isset($post["status"]) and "" != $post["status"]) {
                 $where["status"] = $post["status"];
             }
+            if (!empty($post["remark"])) {
+                $where["remark"] = ['like', '%' . $post["remark"] . '%'];
+            }
             if (isset($post["create_time"]) and !empty($post["create_time"])) {
                 $timerang = explode(' - ', $post["create_time"]);
                 $min_time = strtotime($timerang[0]);
@@ -75,14 +72,7 @@ class AppointmentApplication extends Permissions
 
             //验证
             $validate = new \think\Validate([
-                ['name|姓名', 'require|max:50'],
-                ['age|年龄', 'number'],
-                ['birthday|出生年月', 'max:50'],
-                ['sex|性别', 'number'],
-                ['id_card|身份证', 'require|max:50'],
-                ['childs_num|子女数量', 'number'],
-                ['problem_desc|问题描述', 'require|max:200'],
-                ['requirement_desc|需求描述', 'require|max:200'],
+                ['status|订单状态', 'number'],
                 ['remark|备注', 'max:200'],
             ]);
             if (!$validate->check($post)) {

+ 1 - 8
app/admin/controller/User.php

@@ -55,19 +55,12 @@ class User extends Permissions
             foreach ($data as $k => $v) {
                 $v['user_cate_text'] = $v->user_cate_text;
                 $v['user_type_text'] = $v->user_type_text;
-                $v['invite_code'] = $v->invite_code;
-                $v['level_text'] = $v->level_text;
                 $v['status_text'] = $v->status_text;
-                $v['parent_name'] = $v->parent ? $v->parent->nickname : '';
-                $v['child_count'] = $v->child_count;
-                $v['stop_time_text'] = $v->stop_time_text;
+                $value['sex_text'] = $v->sex_text;
                 $data[$k] = $v;
             }
             return array('code' => 0, 'count' => $count, 'data' => $data);
         } else {
-            $this->assign('user_cates', userModel::USER_CATES);
-            $this->assign('user_types', userModel::USER_TYPES);
-            $this->assign('vips', \app\common\model\User::GRADE);
             return $this->fetch();
         }
     }

+ 6 - 1
app/admin/view/address/index.html

@@ -94,8 +94,13 @@
 
                     {field: 'id', title: 'ID', width: 60},
                     {field: "title", title: '地名'},
+                    {
+                        field: 'image', title: '缩略图', width: 70, align: 'center', templet: function (row) {
+                        return (row.thumb_url == '') ? '' : '<a href="' + row.thumb_url + '" class="tooltip" target="_blank"><img src="' + row.thumb_url + '" width="20" height="20"></a>';
+                    }
+                    },
                     {field: "address", title: '详细地址'},
-                    {field: 'action', title: '操作', toolbar: '#barDemo', fixed: 'right'}
+                    {field: 'action', title: '操作', toolbar: '#barDemo', fixed: 'right',width:80}
                 ]],
                 done: function () {
                     if (isExitsFunction('showThumb')) {

+ 26 - 0
app/admin/view/address/publish.html

@@ -48,6 +48,15 @@
                        name="$data" }value="{$data.title}" {/notempty}>
             </div>
         </div>
+
+        <div class="layui-upload">
+            <label class="layui-form-label">配图</label>
+            <div class="layui-upload-list" style="margin-top: 0px">
+                <img class="layui-upload-img" id="upload_img" {notempty name="$data.thumb"}src='{$data.thumb|geturl}'{/notempty}>
+                <input type="hidden" name="thumb" id="upload_value" value='{notempty name="$data.thumb"}{$data.thumb}{/notempty}'>
+            </div>
+        </div>
+
         <!-- 纯文本段落 -->
         <div class="layui-form-item layui-form-text">
             <label class="layui-form-label">详细地址</label>
@@ -112,6 +121,23 @@
             });
         });
     </script>
+    <script>
+        $(function () {
+            $('#upload_img').click(function () {
+                layer.open({
+                    type: 2,
+                    title: '选择图片',
+                    area: ['570px', '485px'],
+                    id: 'layerDemo', //防止重复弹出
+                    anim: 4,
+                    content: "{:url('Attachment/selectimage')}",
+                    cancel: function () {
+                        //右上角关闭回调
+                    }
+                });
+            })
+        })
+    </script>
 </div>
 </body>
 </html>

+ 21 - 16
app/admin/view/appointment_application/index.html

@@ -29,6 +29,12 @@
 <body style="padding:10px;">
 <div class="tplay-body-div">
 
+    <div class="layui-tab">
+        <ul class="layui-tab-title">
+            <li class="layui-this">列表</li>
+            <li><a href="{:url('publish')}" class="a_menu">新增</a></li>
+        </ul>
+    </div>
 
     <script type="text/html" id="toolbarDemo">
         <div class="layui-btn-container">
@@ -50,7 +56,8 @@
             <div class="layui-input-inline" style="width: 100px">
                 <select name="sex" lay-search="">
                     <option value="">性别</option>
-                    <option value="1">男2女</option>
+                    <option value="1">男</option>
+                    <option value="2">女</option>
                 </select>
             </div>
             <div class="layui-input-inline">
@@ -61,13 +68,13 @@
                 <input type="text" name="id_card" autocomplete="off" placeholder="身份证(模糊搜索)"
                        class="layui-input layui-btn-sm">
             </div>
-            <div class="layui-input-inline" style="width:100px">
-                <input type="number" name="appointment_id" autocomplete="off" placeholder="放号配置id"
-                       class="layui-input layui-btn-sm">
-            </div>
-            <div class="layui-input-inline" style="width:100px">
-                <input type="number" name="appointment_ticket" autocomplete="off" placeholder="预约号"
-                       class="layui-input layui-btn-sm">
+            <div class="layui-input-inline" style="width: 100px">
+                <select name="appointment_period" lay-search="">
+                    <option value="">时段</option>
+                    <option value="1">上午</option>
+                    <option value="2">下午</option>
+                    <option value="3">晚上</option>
+                </select>
             </div>
             <div class="layui-input-inline" style="width: 100px">
                 <select name="status" lay-search="">
@@ -78,12 +85,12 @@
                 </select>
             </div>
             <div class="layui-input-inline">
-                <input type="text" class="layui-input time_range" id="time_range_create_time" autocomplete="off"
-                       placeholder="下单时间" name="create_time">
+                <input type="text" name="remark" autocomplete="off" placeholder="备注(模糊搜索)"
+                       class="layui-input layui-btn-sm">
             </div>
             <div class="layui-input-inline">
-                <input type="text" class="layui-input time_range" id="time_range_finish_time" autocomplete="off"
-                       placeholder="服务完成时间" name="finish_time">
+                <input type="text" class="layui-input time_range" id="time_range_create_time" autocomplete="off"
+                       placeholder="下单时间" name="create_time">
             </div>
             <button class="layui-btn layui-btn-sm" lay-submit="" lay-filter="serch">立即提交</button>
         </div>
@@ -124,15 +131,13 @@
                     {field: "name", title: '姓名'},
                     {field: "sex", title: '性别'},
                     {field: "phone", title: '电话'},
-                    {field: "id_card", title: '身份证'},
                     {field: "problem_desc", title: '问题描述'},
                     {field: "requirement_desc", title: '需求描述'},
-                    {field: "appointment_id", title: '放号配置id'},
-                    {field: "appointment_ticket", title: '预约号'},
+                    {field: "appointment_time", title: '预约时间段'},
                     {field: "status", title: '订单状态'},
                     {field: "remark", title: '备注'},
                     {field: "create_time", title: '下单时间'},
-                    {field: "finish_time", title: '服务完成时间'},
+                    {field: "finish_time", title: '完成时间'},
                     {field: 'action', title: '操作', toolbar: '#barDemo', fixed: 'right'}
                 ]],
                 done: function () {

+ 32 - 26
app/admin/view/appointment_application/publish.html

@@ -65,22 +65,13 @@
                        name="$data" }value="{$data.birthday}" {/notempty}>
             </div>
         </div>
-        <!-- 单选框 -->
-        <div class="layui-form-item">
-            <label class="layui-form-label">性别</label>
-            <div class="layui-input-block">
-                <input type="radio" name="sex" value="1" title="男2女" {notempty name="$data" }{eq name="$data.sex"
-                       value="1" } checked {/eq}{/notempty}>
-            </div>
-        </div>
         <!-- 输入框 -->
         <div class="layui-form-item">
             <label class="layui-form-label">身份证</label>
             <div class="layui-input-inline" style="max-width:300px;">
-                <input name="id_card" lay-verify="required" autocomplete="off" placeholder="请输入" class="layui-input"
-                       type="text" {notempty name="$data" }value="{$data.id_card}" {/notempty}>
+                <input name="id_card" autocomplete="off" placeholder="请输入" class="layui-input" type="text" {notempty
+                       name="$data" }value="{$data.id_card}" {/notempty}>
             </div>
-            <div class="layui-form-mid layui-word-aux">必填</div>
         </div>
         <!-- 数字 -->
         <div class="layui-form-item">
@@ -90,28 +81,43 @@
                        {notempty name="$data" }value="{$data.childs_num}" {/notempty}>
             </div>
         </div>
-        <!-- 纯文本段落 -->
-        <div class="layui-form-item layui-form-text">
+        <!-- 输入框 -->
+        <div class="layui-form-item">
             <label class="layui-form-label">问题描述</label>
-            <div class="layui-input-inline" style="width:80%;">
-                <textarea name="problem_desc" lay-verify="required" class="layui-textarea">{notempty name="$data"}{$data.problem_desc}{/notempty}</textarea>
+            <div class="layui-input-inline" style="max-width:300px;">
+                <input name="problem_desc" autocomplete="off" placeholder="请输入" class="layui-input" type="text"
+                       {notempty name="$data" }value="{$data.problem_desc}" {/notempty}>
             </div>
-            <div class="layui-form-mid layui-word-aux">必填</div>
         </div>
-        <!-- 纯文本段落 -->
-        <div class="layui-form-item layui-form-text">
+        <!-- 输入框 -->
+        <div class="layui-form-item">
             <label class="layui-form-label">需求描述</label>
-            <div class="layui-input-inline" style="width:80%;">
-                <textarea name="requirement_desc" lay-verify="required" class="layui-textarea">{notempty name="$data"}{$data.requirement_desc}{/notempty}</textarea>
+            <div class="layui-input-inline" style="max-width:300px;">
+                <input name="requirement_desc" autocomplete="off" placeholder="请输入" class="layui-input" type="text"
+                       {notempty name="$data" }value="{$data.requirement_desc}" {/notempty}>
+            </div>
+        </div>
+        <!-- 下拉框 -->
+        <div class="layui-form-item">
+            <label class="layui-form-label">订单状态</label>
+            <div class="layui-input-inline" style="max-width:300px;">
+                <select name="status" lay-filter="" lay-search="">
+                    <option value="">请选择</option>
+                    <option value="0" {notempty name="$data" }{eq name="$data.status" value="0" } selected="" {
+                    /eq}{/notempty}>未签到</option>
+                    <option value="1" {notempty name="$data" }{eq name="$data.status" value="1" } selected="" {
+                    /eq}{/notempty}>已签到</option>
+                    <option value="2" {notempty name="$data" }{eq name="$data.status" value="2" } selected="" {
+                    /eq}{/notempty}>爽约</option>
+                </select>
             </div>
-            <div class="layui-form-mid layui-word-aux">必填</div>
         </div>
-        <!-- 纯文本段落 -->
-        <div class="layui-form-item layui-form-text">
+        <!-- 输入框 -->
+        <div class="layui-form-item">
             <label class="layui-form-label">备注</label>
-            <div class="layui-input-inline" style="width:80%;">
-                <textarea name="remark"
-                          class="layui-textarea">{notempty name="$data"}{$data.remark}{/notempty}</textarea>
+            <div class="layui-input-inline" style="max-width:300px;">
+                <input name="remark" autocomplete="off" placeholder="请输入" class="layui-input" type="text" {notempty
+                       name="$data" }value="{$data.remark}" {/notempty}>
             </div>
         </div>
 

+ 0 - 8
app/admin/view/specialist/index.html

@@ -45,10 +45,6 @@
     <form class="layui-form serch" action="index" method="post">
         <div class="layui-form-item" style="float: left;">
 
-            <div class="layui-input-inline">
-                <input type="text" name="ids" autocomplete="off" placeholder="请输入ID,多个id逗号分隔"
-                       class="layui-input layui-btn-sm">
-            </div>
             <div class="layui-input-inline">
                 <input type="text" name="name" autocomplete="off" placeholder="名字(模糊搜索)"
                        class="layui-input layui-btn-sm">
@@ -57,10 +53,6 @@
                 <input type="text" name="title" autocomplete="off" placeholder="职称(模糊搜索)"
                        class="layui-input layui-btn-sm">
             </div>
-            <div class="layui-input-inline">
-                <input type="text" name="head_pic" autocomplete="off" placeholder="头像(模糊搜索)"
-                       class="layui-input layui-btn-sm">
-            </div>
             <div class="layui-input-inline" style="width: 100px">
                 <select name="sex" lay-search="">
                     <option value="">性别</option>

+ 1 - 1
app/admin/view/specialist/publish.html

@@ -92,7 +92,7 @@
                     {/volist}
                 </select>
             </div>
-            <div class="layui-form-mid layui-word-aux">必填</div>
+            <div class="layui-form-mid layui-word-aux">必填,可搜索地址</div>
         </div>
 
         <!-- 输入框 -->

+ 2 - 86
app/admin/view/user/index.html

@@ -25,7 +25,6 @@
 <body style="padding:10px;">
 <div class="tplay-body-div">
 
-    {include file="user/tab"}
 
     <form class="layui-form serch" action="{:url('index')}" method="post">
         <div class="layui-form-item" style="float: left;">
@@ -37,14 +36,6 @@
                 <input type="text" name="nickname" lay-verify="title" autocomplete="off" placeholder="请输入昵称"
                        class="layui-input layui-btn-sm">
             </div>
-            <div class="layui-input-inline" style="width: 100px;">
-                <select name="user_type" lay-search="">
-                    <option value="">账号类型</option>
-                    {foreach name="$user_types" item="vo" key="k"}
-                    <option value="{$k}">{$vo}</option>
-                    {/foreach}
-                </select>
-            </div>
             <div class="layui-input-inline">
                 <input type="text" name="ip" autocomplete="off" placeholder="请输入IP"
                        class="layui-input layui-btn-sm">
@@ -98,15 +89,6 @@
         </div>
     </form>
 
-    <form id="setVipForm" style="display:none;margin: 10px 30px;" class="layui-form alert-form">
-        <div class="layui-form-item">
-            <div class="layui-input-block" style="max-width:200px;">
-                {volist name="$vips" id="vo"}
-                <input type="radio" name="vip" value="{$key}" title="{$vo}">
-                {/volist}
-            </div>
-        </div>
-    </form>
 
     {include file="public/foot"}
 
@@ -136,13 +118,14 @@
                     }
                     },
                     {field: 'user_type_text', title: '账号类型', width: 80},
-                    {field: 'sex', title: '性别', width: 80},
+                    {field: 'sex_text', title: '性别', width: 80},
                     {field: 'country', title: '国家', width: 80},
                     {field: 'province', title: '省份', width: 80},
                     {field: 'city', title: '城市', width: 80},
                     {field: 'login_time', title: '最后登录时间', width: 150},
                     {field: 'create_time', title: '注册时间', width: 150},
                     {field: 'ip', title: '注册ip', width: 100},
+                    {field: "remark", title: '备注', width: 100},
                     {
                         field: 'status', title: '审核', width: 80, fixed: 'right', templet: function (row) {
                         if (row.status == 1) {
@@ -258,73 +241,6 @@
             //监听事件
             table.on('toolbar(table)', function (obj) {
                 if (obj.event == 'setPoint') {
-                    var checkStatus = table.checkStatus(obj.config.id);//获取选中的数据
-                    var data = checkStatus.data;
-                    if (data.length == 0) {
-                        layer.msg('请先勾选需要操作的记录');
-                        return;
-                    }
-                    var ids = [];//数组
-                    data.forEach(function (item, key) {
-                        ids[key] = item.id;
-                    });
-
-                    var fromobj = $('#setForm');
-                    layer.open({
-                        type: 1,
-                        title: '批量修改积分',
-                        area: ['400px', '230px'],
-                        id: 'layerDemo', //防止重复弹出
-                        content: fromobj,
-                        btn: ['提交', '关闭'],
-                        btnAlign: 'c', //按钮居中
-                        yes: function (index, layero) {
-                            var post_data = fromobj.serializeJson();
-                            post_data['ids'] = ids;
-                            $.post("{:url('setPoint')}", post_data, function (json) {
-                                layer.msg(json.msg);
-                                if (json.code > 0) {
-                                    layer.close(index);
-                                    table.reload('table');
-                                }
-                            });
-                        }, btn2: function (index) {
-                        }, zIndex: 999 //重点1
-                    });
-                }
-                else if (obj.event == 'setVip') {
-                    var checkStatus = table.checkStatus(obj.config.id);//获取选中的数据
-                    var data = checkStatus.data;
-                    if (data.length == 0) {
-                        layer.msg('请先勾选需要操作的记录');
-                        return;
-                    }
-                    var ids = [];//数组
-                    data.forEach(function (item, key) {
-                        ids[key] = item.id;
-                    })
-                    var fromobj = $('#setVipForm');
-                    layer.open({
-                        type: 1,
-                        title: '修改会员',
-                        area: ['375px', '265px'],
-                        id: 'layerDemo', //防止重复弹出
-                        content: fromobj,
-                        btn: ['提交', '关闭'],
-                        btnAlign: 'r', //按钮居中
-                        yes: function (index, layero) {
-                            var post_data = fromobj.serializeJson();
-                            post_data['ids'] = ids;
-                            $.post("{:url('setVips')}", post_data, function (json) {
-                                layer.msg(json.msg);
-                                if (json.code > 0) {
-                                    layer.close(index);
-                                    table.reload('table');
-                                }
-                            });
-                        }, btn2: function (index) {
-                        }, zIndex: 999 //重点1
-                    });
                 }
             });
         });

+ 6 - 25
app/admin/view/user/publish.html

@@ -13,7 +13,6 @@
 <body style="padding:10px;">
 <div class="tplay-body-div">
 
-  {include file="user/tab"}
 
   <div style="margin-top: 20px;">
   </div>
@@ -23,7 +22,7 @@
       <label class="layui-form-label">账号</label>
       {notempty name="$user"}
       <div class="layui-input-inline" style="max-width:300px;">
-        <input name="passport" placeholder="请输入" disabled autocomplete="off" class="layui-input" type="text" {notempty name="$user.passport"}value="{$user.passport}"{/notempty}>
+        <input name="passport" placeholder="请输入" readonly="readonly" autocomplete="off" class="layui-input" type="text" {notempty name="$user.passport"}value="{$user.passport}"{/notempty}>
       </div>
       <div class="layui-form-mid layui-word-aux">不允许修改</div>
       {else/}
@@ -42,32 +41,14 @@
     </div>
 
 
-    <div class="layui-form-item">
-      <label class="layui-form-label">账号类型</label>
-      <div class="layui-input-inline" style="max-width:300px;">
-        <select name="user_type" lay-filter="aihao">
-          <option value="">请选择</option>
-          {foreach name="$user_types" item="vo" key="k"}
-          <option value="{$k}" {notempty name="$user"}{eq name="$user.user_type" value="$k"} selected=""{/eq}{/notempty}>{$vo}</option>
-          {/foreach}
-        </select>
+    <div class="layui-form-item layui-form-text">
+      <label class="layui-form-label">备注</label>
+      <div class="layui-input-inline" style="width:80%;">
+                <textarea name="remark"
+                          class="layui-textarea">{notempty name="$user"}{$user.remark}{/notempty}</textarea>
       </div>
-      <div class="layui-form-mid layui-word-aux">以哪种方式登入</div>
     </div>
 
-
-    <div class="layui-form-item">
-      <label class="layui-form-label">用户角色</label>
-      <div class="layui-input-inline" style="max-width:300px;">
-        <select name="user_cate" lay-filter="aihao">
-          {foreach name="$user_cates" item="vo" key="k"}
-          <option value="{$k}" {notempty name="$user"}{eq name="$user.user_cate" value="$k"} selected=""{/eq}{/notempty}>{$vo}</option>
-          {/foreach}
-        </select>
-      </div>
-    </div>
-
-
     {notempty name="$user"}
     <input type="hidden" name="id" value="{$user.id}">
     {/notempty}

+ 18 - 0
app/common/model/User.php

@@ -49,6 +49,24 @@ class User extends Model
 
     const GRADE = ["非会员", "月度会员", "季度会员", "年度会员"];
 
+
+    const SEX_UNKNOW = 0;
+    const SEX_MAN = 1;
+    const SEX_WOMAN = 2;
+
+    const SEXS = [
+        self::SEX_UNKNOW => '未知',
+        self::SEX_MAN => '男',
+        self::SEX_WOMAN => '女'
+    ];
+
+    //sex_text
+    public function getSexTextAttr($value, $data)
+    {
+        return self::SEXS[$data['sex']]??'';
+    }
+
+
     /**
      * 是否为会员
      * @return bool

+ 1 - 1
app/common/view/think_exception.tpl

@@ -440,7 +440,7 @@
     <?php } ?>
 
     <div class="copyright">
-        <span><?php echo systemName().'-'.PRODUCT_VERSION ?> © <?php echo url('/','',false,true) ?></span>
+        <span><?php echo systemName() ?> © <?php echo url('/','',false,true) ?></span>
     </div>
     <?php if(\think\App::$debug) { ?>
     <script>

+ 3 - 0
app/install/data/db.sql

@@ -838,3 +838,6 @@ INSERT INTO `tplay_webconfig` (`id`, `name`, `is_log`, `is_close_site`, `file_ty
 /*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */;
 /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
 /*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */;
+
+ALTER TABLE `tplay_address`
+	ADD COLUMN `thumb` INT NOT NULL DEFAULT '0' COMMENT '封面' AFTER `title`;