diff --git a/application/admin/controller/AutoDispatchLogic.php b/application/admin/controller/AutoDispatchLogic.php index 617cabe..31484a6 100644 --- a/application/admin/controller/AutoDispatchLogic.php +++ b/application/admin/controller/AutoDispatchLogic.php @@ -6,6 +6,7 @@ namespace app\admin\controller; use app\admin\controller\orders\DispatchLogic; use app\admin\model\Admin; +use app\admin\model\Message; use app\admin\model\OrderDispatch; use app\admin\model\Worker; use think\Hook; @@ -13,7 +14,7 @@ use think\Hook; class AutoDispatchLogic { - public static function autoDispatch($order,$auth=null,$isRetry=false) + public static function autoDispatch($order, $auth = null, $isRetry = false) { // // if ($order->dispatch_type != 2) { @@ -24,11 +25,26 @@ class AutoDispatchLogic $worker_id = (new DispatchLogic())->getMaxScoreWorker($order); // dd($worker_id); if (!$worker_id) { + $area_id = substr($order->area_id, 0, 4); + $res = Admin::where('area_ids', 'like', '%' . $area_id . '%') + ->column('id'); + $insert = []; + foreach ($res as $re) { + $insert [] = [ + 'to_id' => $re, + 'type' => 1, + 'title' => '派单通知', + 'content' => '【派单通知】您有一条订单号为' . $order->order_no . '的新订单,请立即派单!' + ]; + } + $build = new Message(); + $build->saveAll($insert); + $order->dispatch_type = 1; $order->save(); return false; } - $admin = Admin::where('id',config('system_id'))->find(); + $admin = Admin::where('id', config('system_id'))->find(); $insert = [ 'admin_id' => $admin->id, 'admin_user' => $admin->nickname, @@ -47,8 +63,8 @@ class AutoDispatchLogic $res = $orderDispatch->allowField(true)->save($insert); $order->status = \app\admin\model\Order::STATUS_DISPATCHED; $order->dispatch_time = date('Y-m-d H:i:s'); - $order->dispatch_admin_id = $admin->id; - $order->dispatch_admin_user = $admin->nickname; + $order->dispatch_admin_id = $admin->id; + $order->dispatch_admin_user = $admin->nickname; $order->worker_id = $worker_id; $order->dispatch_type = 2; $order->save(); @@ -59,15 +75,15 @@ class AutoDispatchLogic $hookparams['role'] = 1; $hookparams['auth'] = null; $hookparams['remark'] = '自动完成派单';//. $worker->name.'('.$worker->tel.')'; - if ($isRetry) { + /*if ($isRetry) { $hookparams['remark'] = '订单重派:工程师【'.$worker->name.'】超时不接单,系统自动转派订单'; - } + }*/ Hook::listen('order_change', $hookparams); //日志 $hookParams = [ 'dispatch' => (new OrderDispatch())->where('id', $orderDispatch->id)->find(), - 'remark' => '自动派单给工程师:'. $worker->name .'('.$worker->tel.')', + 'remark' => '自动派单给工程师:' . $worker->name . '(' . $worker->tel . ')', ]; Hook::listen('order_dispatch_change', $hookParams); diff --git a/application/admin/controller/Order.php b/application/admin/controller/Order.php index 906ced8..e5134b2 100644 --- a/application/admin/controller/Order.php +++ b/application/admin/controller/Order.php @@ -157,6 +157,7 @@ class Order extends Backend $filter = (array)json_decode(input()['filter'] ?? '', true); $admin_filter = $filter['user.nickname'] ?? false; $area_id = $filter['area_id'] ?? false; + $item_id = $filter['item_id'] ?? false; $is_timeout = $filter['is_timeout'] ?? null; // dd($create_time,$filter); if ($admin_filter) { @@ -166,6 +167,11 @@ class Order extends Backend if ($area_id) { $build->where('area_id', 'like', $this->getSelectAreaCode($area_id) . '%'); } + if ($item_id) { + $item_ids = $this->getItemsById($item_id); + $item_ids [] = $item_id; + $build->whereIn('item_id', $item_ids); + } if (!is_null($is_timeout)) { if ($is_timeout == 1){ $build->where('status', '>=', \app\admin\model\Order::STATUS_DISPATCHING) @@ -290,8 +296,9 @@ class Order extends Backend $result = $this->model->allowField(true)->save($params); $auth = clone $this->auth; + $order = \app\admin\model\Order::get($this->model->id); //日志 - $hookparams['order'] = \app\admin\model\Order::get($this->model->id); + $hookparams['order'] = $order; $hookparams['role'] = 1; $hookparams['auth'] = $auth; $hookparams['remark'] = '录入订单'; @@ -816,29 +823,11 @@ class Order extends Backend $this->request->get([config('paginate.var_page') => $page]); $filter = (array)json_decode($filter, true); + unset($filter['item_id']); - - $province_id = $filter['province_id']??null; - $city_id = $filter['city_id']??null; - $area_id = $filter['city_id']??null; - unset($filter['city_id']); - unset($filter['province_id']); unset($filter['area_id']); - if(!empty($area_id)){ - $filter['area_id'] = $area_id; - }else{ - if(!empty($city_id)){ - $filter['area_id'] = $city_id; - }else{ - if(!empty($province_id)){ - $filter['area_id'] = $province_id; - } - } - } - $op = (array)json_decode($op, true); - $op['area_id'] = 'LIKE%'; $filter = $filter ? $filter : []; $where = []; $alias = []; diff --git a/application/admin/controller/aftersales/Aftersale.php b/application/admin/controller/aftersales/Aftersale.php index 494eb5a..5a9cf39 100644 --- a/application/admin/controller/aftersales/Aftersale.php +++ b/application/admin/controller/aftersales/Aftersale.php @@ -123,6 +123,11 @@ class Aftersale extends Backend if(empty($order)){ $this->error('订单不存在'); } + + if($order->aftersale_id > 0){ + $this->error('订单已存在售后信息,不可重复创建'); + } + $this->assign('order',$order); } @@ -253,6 +258,15 @@ class Aftersale extends Backend $result = $row->allowField(true)->save($params); + if($params['status'] != 3){ //非退款售后 + $order = Order::get($row->order_id); + if(empty($order)){ + $this->error('订单不存在'); + } + $order->status = Order::STATUS_FINISHED; + $order->save(); + } + /*if($params['handle_type'] == 1 && $params['status'] == 2){ //处理完成,重新计算利润 $row->refund_status = 3; diff --git a/application/admin/controller/aftersales/Aftersale2.php b/application/admin/controller/aftersales/Aftersale2.php index 465e88e..341e8cb 100644 --- a/application/admin/controller/aftersales/Aftersale2.php +++ b/application/admin/controller/aftersales/Aftersale2.php @@ -12,6 +12,7 @@ use think\Db; use think\exception\DbException; use think\exception\PDOException; use think\exception\ValidateException; +use think\Loader; /** * 待退款列表 @@ -69,11 +70,29 @@ class Aftersale2 extends Backend } list($where, $sort, $order, $offset, $limit) = $this->buildparams(); + + $filter = (array)json_decode(input()['filter'] ?? '', true); + + $area_id = $filter['area_id'] ?? request()->get('area_id') ?? false; + $item_id = $filter['item_id'] ?? request()->get('item_id') ?? false; + $builder = $this->model ->whereIn('fa_aftersale.status',[3,4]) ->with(['order']) ->where($where); + + if ($area_id) { + $builder->where('area_id', 'like', $this->getSelectAreaCode($area_id) . '%'); + } + + + if ($item_id) { + $item_ids = $this->getItemsById($item_id); + $item_ids [] = $item_id; + $builder->whereIn('item_id', $item_ids); + } + if($from == 2){ //$builder->where('refund_amount','>',0); //$builder->where('status','<>',-1); @@ -102,6 +121,200 @@ class Aftersale2 extends Backend return $this->view->fetch(); } + protected function buildparams($searchfields = null, $relationSearch = null) + { + $searchfields = is_null($searchfields) ? $this->searchFields : $searchfields; + $relationSearch = is_null($relationSearch) ? $this->relationSearch : $relationSearch; + $search = $this->request->get("search", ''); + $filter = $this->request->get("filter", ''); + $op = $this->request->get("op", '', 'trim'); + $sort = $this->request->get("sort", !empty($this->model) && $this->model->getPk() ? $this->model->getPk() : 'id'); + $order = $this->request->get("order", "DESC"); + $offset = max(0, $this->request->get("offset/d", 0)); + $limit = max(0, $this->request->get("limit/d", 0)); + $limit = $limit ?: 999999; + //新增自动计算页码 + $page = $limit ? intval($offset / $limit) + 1 : 1; + if ($this->request->has("page")) { + $page = max(0, $this->request->get("page/d", 1)); + } + $this->request->get([config('paginate.var_page') => $page]); + $filter = (array)json_decode($filter, true); + + + unset($filter['area_id']); + unset($filter['item_id']); + + + + $op = (array)json_decode($op, true); + $filter = $filter ? $filter : []; + $where = []; + $alias = []; + $bind = []; + $name = ''; + $aliasName = ''; + if (!empty($this->model) && $relationSearch) { + $name = $this->model->getTable(); + $alias[$name] = Loader::parseName(basename(str_replace('\\', '/', get_class($this->model)))); + $aliasName = $alias[$name] . '.'; + } + $sortArr = explode(',', $sort); + foreach ($sortArr as $index => & $item) { + $item = stripos($item, ".") === false ? $aliasName . trim($item) : $item; + } + unset($item); + $sort = implode(',', $sortArr); + $adminIds = $this->getDataLimitAdminIds(); + if (is_array($adminIds)) { + $where[] = [$aliasName . $this->dataLimitField, 'in', $adminIds]; + } + if ($search) { + $searcharr = is_array($searchfields) ? $searchfields : explode(',', $searchfields); + foreach ($searcharr as $k => &$v) { + $v = stripos($v, ".") === false ? $aliasName . $v : $v; + } + unset($v); + $where[] = [implode("|", $searcharr), "LIKE", "%{$search}%"]; + } + $index = 0; + foreach ($filter as $k => $v) { + if (!preg_match('/^[a-zA-Z0-9_\-\.]+$/', $k)) { + continue; + } + $sym = $op[$k] ?? '='; + if (stripos($k, ".") === false) { + $k = $aliasName . $k; + } + $v = !is_array($v) ? trim($v) : $v; + $sym = strtoupper($op[$k] ?? $sym); + //null和空字符串特殊处理 + if (!is_array($v)) { + if (in_array(strtoupper($v), ['NULL', 'NOT NULL'])) { + $sym = strtoupper($v); + } + if (in_array($v, ['""', "''"])) { + $v = ''; + $sym = '='; + } + } + + switch ($sym) { + case '=': + case '<>': + $where[] = [$k, $sym, (string)$v]; + break; + case 'LIKE': + case 'NOT LIKE': + case 'LIKE %...%': + case 'NOT LIKE %...%': + $where[] = [$k, trim(str_replace('%...%', '', $sym)), "%{$v}%"]; + break; + // ✅ 新增:右匹配(like%) + case 'LIKE%': + $where[] = [$k, 'LIKE', "{$v}%"]; + break; + + // ✅ 新增:左匹配(%like) + case '%LIKE': + $where[] = [$k, 'LIKE', "%{$v}"]; + break; + case '>': + case '>=': + case '<': + case '<=': + $where[] = [$k, $sym, intval($v)]; + break; + case 'FINDIN': + case 'FINDINSET': + case 'FIND_IN_SET': + $v = is_array($v) ? $v : explode(',', str_replace(' ', ',', $v)); + $findArr = array_values($v); + foreach ($findArr as $idx => $item) { + $bindName = "item_" . $index . "_" . $idx; + $bind[$bindName] = $item; + $where[] = "FIND_IN_SET(:{$bindName}, `" . str_replace('.', '`.`', $k) . "`)"; + } + break; + case 'IN': + case 'IN(...)': + case 'NOT IN': + case 'NOT IN(...)': + $where[] = [$k, str_replace('(...)', '', $sym), is_array($v) ? $v : explode(',', $v)]; + break; + case 'BETWEEN': + case 'NOT BETWEEN': + $arr = array_slice(explode(',', $v), 0, 2); + if (stripos($v, ',') === false || !array_filter($arr, function ($v) { + return $v != '' && $v !== false && $v !== null; + })) { + continue 2; + } + //当出现一边为空时改变操作符 + if ($arr[0] === '') { + $sym = $sym == 'BETWEEN' ? '<=' : '>'; + $arr = $arr[1]; + } elseif ($arr[1] === '') { + $sym = $sym == 'BETWEEN' ? '>=' : '<'; + $arr = $arr[0]; + } + $where[] = [$k, $sym, $arr]; + break; + case 'RANGE': + case 'NOT RANGE': + $v = str_replace(' - ', ',', $v); + $arr = array_slice(explode(',', $v), 0, 2); + if (stripos($v, ',') === false || !array_filter($arr)) { + continue 2; + } + //当出现一边为空时改变操作符 + if ($arr[0] === '') { + $sym = $sym == 'RANGE' ? '<=' : '>'; + $arr = $arr[1]; + } elseif ($arr[1] === '') { + $sym = $sym == 'RANGE' ? '>=' : '<'; + $arr = $arr[0]; + } + $tableArr = explode('.', $k); + if (count($tableArr) > 1 && $tableArr[0] != $name && !in_array($tableArr[0], $alias) + && !empty($this->model) && $this->relationSearch) { + //修复关联模型下时间无法搜索的BUG + $relation = Loader::parseName($tableArr[0], 1, false); + $alias[$this->model->$relation()->getTable()] = $tableArr[0]; + } + $where[] = [$k, str_replace('RANGE', 'BETWEEN', $sym) . ' TIME', $arr]; + break; + case 'NULL': + case 'IS NULL': + case 'NOT NULL': + case 'IS NOT NULL': + $where[] = [$k, strtolower(str_replace('IS ', '', $sym))]; + break; + default: + break; + } + $index++; + } + if (!empty($this->model)) { + $this->model->alias($alias); + } + $model = $this->model; + $where = function ($query) use ($where, $alias, $bind, &$model) { + if (!empty($model)) { + $model->alias($alias); + $model->bind($bind); + } + foreach ($where as $k => $v) { + if (is_array($v)) { + call_user_func_array([$query, 'where'], $v); + } else { + $query->where($v); + } + } + }; + return [$where, $sort, $order, $offset, $limit, $page, $alias, $bind]; + } + /** * 添加 * @@ -225,7 +438,7 @@ class Aftersale2 extends Backend return $this->view->fetch(); } - if($row->status != 3 || $row->handle_type!= 1){ + if($row->status != 3){ $this->error('售后状态不是待退款,不可编辑'); } $params = $this->request->post('row/a'); diff --git a/application/admin/controller/orders/Dispatch.php b/application/admin/controller/orders/Dispatch.php index cbd3bd6..a7456cb 100644 --- a/application/admin/controller/orders/Dispatch.php +++ b/application/admin/controller/orders/Dispatch.php @@ -161,6 +161,7 @@ class Dispatch extends Backend $order->dispatch_time = date('Y-m-d H:i:s'); $order->dispatch_admin_id = $this->auth->id; $order->worker_id = $worker->id; + $order->dispatch_admin_user = $this->auth->nickname; $order->save(); $auth = clone $this->auth; diff --git a/application/admin/controller/orders/Dispatchrecord.php b/application/admin/controller/orders/Dispatchrecord.php index b21ef7a..268c6b2 100644 --- a/application/admin/controller/orders/Dispatchrecord.php +++ b/application/admin/controller/orders/Dispatchrecord.php @@ -125,8 +125,8 @@ class Dispatchrecord extends Backend $params['notice_time'] = date('Y-m-d', $timestamp) . ' 09:00:00'; // 拼接为明天的 9 点 //$dispatch->work_progress = $params['rate']; - $params['need_notice'] = 0; - $params['status'] = 1; + $params['need_notice'] = 1; + //$params['status'] = 1; /* if(!empty($params['rate'])){ //修改任务的状态 if($dispatch->status != $params['rate']){ $dispatch->status = $params['rate']; @@ -142,6 +142,9 @@ class Dispatchrecord extends Backend $dispatch->admin_user = $groupName.':'. $this->auth->nickname; $dispatch->record_images = $params['images']; $dispatch->from_record = 1; + + $dispatch->status = OrderDispatch::STATUS_GOTIT; + $hookParams = [ 'dispatch' => $dispatch, 'remark' => '跟进订单,跟进内容:'.$params['remark'], diff --git a/application/admin/controller/salary/CustomDetail.php b/application/admin/controller/salary/CustomDetail.php index 5c65b6d..52bde3c 100644 --- a/application/admin/controller/salary/CustomDetail.php +++ b/application/admin/controller/salary/CustomDetail.php @@ -151,7 +151,9 @@ class CustomDetail extends Backend return json($result); } - $this->assignconfig("manage", $this->auth->check('salary/custom_detail/edit')); + $this->assignconfig("edit", $this->auth->check('salary/custom_detail/edit')); + $this->assignconfig("copy", $this->auth->check('salary/custom_detail/copy')); + $this->assignconfig("settle", $this->auth->check('salary/custom_detail/settle')); $this->view->assign("month", $month); $this->view->assign("salaryitem", json_encode($salaryItem)); return $this->view->fetch(); @@ -416,7 +418,7 @@ class CustomDetail extends Backend Db::name('salary_status') ->where('salary_month', $month) ->where('target_admin_id', $targetAdminId) - ->save([ + ->update([ 'settle_status' => 1, ]); $this->success(); diff --git a/application/admin/controller/statistics/Aftersale.php b/application/admin/controller/statistics/Aftersale.php index 6fe008a..9dd9525 100644 --- a/application/admin/controller/statistics/Aftersale.php +++ b/application/admin/controller/statistics/Aftersale.php @@ -50,18 +50,12 @@ class Aftersale extends Backend return $this->fetch('index'); } - public function list() - { - $build = new Order(); - - } - public function dispatch() { $build = new Admin(); $build->alias('a') ->join('order b', 'a.id = b.admin_id', 'right') - ->join('aftersale c', 'b.id = c.admin_id', 'left') + ->join('aftersale c', 'a.id = c.refund_admin_id', 'left') ->where('b.status', Order::STATUS_FINISHED); @@ -101,6 +95,7 @@ class Aftersale extends Backend 'a.mobile', 'count(b.id) order_total', 'count(c.id) after_total', + 'sum(c.refund_amount) refund_amount', ] ); @@ -157,6 +152,7 @@ class Aftersale extends Backend 'a.area_id', 'count(a.id) order_total', 'count(c.id) after_total', + 'sum(c.refund_amount) refund_amount', ] )->with([ 'area' => function ($q) { @@ -205,7 +201,7 @@ class Aftersale extends Backend } $build->where('audit_time', '>=', $start); $build->where('audit_time', '<=', $end_at); - $build->group('a.item_title'); + $build->group('a.item_id,a.item_title'); @@ -217,9 +213,11 @@ class Aftersale extends Backend $build->field( [ + 'a.item_id', 'a.item_title', 'count(a.id) order_total', 'count(c.id) after_total', + 'sum(c.refund_amount) refund_amount', ] ); @@ -253,20 +251,13 @@ class Aftersale extends Backend return $val; } - private function getItemsById(mixed $item_id) - { - $build = new \app\admin\model\Item(); - $data = $build->getAllData(); - return \app\admin\model\Item::getAllChildIds($data,$item_id); - } - public function worker() { $build = new \app\admin\model\Worker(); $build->alias('a') ->join('order b', 'a.id = b.worker_id', 'right') - ->join('aftersale c', 'b.id = c.admin_id', 'left') + ->join('aftersale c', 'a.id = c.worker_id', 'left') ->where('b.status', Order::STATUS_FINISHED); @@ -306,6 +297,7 @@ class Aftersale extends Backend 'a.tel', 'count(b.id) order_total', 'count(c.id) after_total', + 'sum(c.refund_amount) refund_amount', ] ); diff --git a/application/admin/controller/workers/Worker.php b/application/admin/controller/workers/Worker.php index 094a54c..6d72192 100644 --- a/application/admin/controller/workers/Worker.php +++ b/application/admin/controller/workers/Worker.php @@ -6,6 +6,7 @@ use app\admin\model\Area; use app\admin\model\AuthGroup; use app\admin\model\Item; use app\admin\model\Order; +use app\admin\model\OrderDispatch; use app\admin\model\WorkerItem; use app\common\controller\Backend; use fast\Tree; @@ -21,6 +22,7 @@ use think\exception\ValidateException; class Worker extends Backend { + protected $noNeedRight = ['dispatchList','dispatchMapList']; /** * Worker模型对象 * @var \app\admin\model\Worker @@ -282,6 +284,7 @@ class Worker extends Backend $build = model('worker') ->where('status', 1) + ->where('type',2) ->with(['area']) ->withCount(['myorder' => function ($query) { $query->where('status', Order::STATUS_FINISHED); @@ -319,7 +322,7 @@ class Worker extends Backend $order_id = request()->get('order_id'); $search = request()->get('search'); list($where, $sort, $order, $offset, $limit) = $this->buildparams(); - $order = (new Order())->where('id',$order_id)->field(['id','lng','lat'])->select(); + $order = (new Order())->where('id',$order_id)->field(['id','lng','lat','item_id'])->select(); if (!empty($order)) { $order = $order[0]; @@ -332,16 +335,28 @@ SELECT id, point(lng, lat), point(?, ?) ) AS distance -FROM fa_worker where status = 1 +FROM fa_worker where status = 1 and type = 2 ) AS t WHERE distance < 50000 ORDER BY distance;",[$order->lng,$order->lat]); $worker_ids = array_column($worker_distance,'id'); + $worker_items_ids = (new WorkerItem()) + ->where('item_id', $order->item_id) + ->whereIn('worker_id', $worker_ids) + ->column('worker_id'); + +// $out_worker = OrderDispatch::where('order_id',$order->id) +// ->where('status',-30)->column('worker_id'); + + $out_worker_ids = array_intersect($worker_ids, $worker_items_ids); +// $out_worker_ids = array_values(array_diff($out_worker_ids, $out_worker)); + + $build = model('worker') ->where('status', 1) - ->whereIn('id', $worker_ids); + ->whereIn('id', $out_worker_ids); if ($search){ diff --git a/application/admin/view/aftersales/aftersale2/edit.html b/application/admin/view/aftersales/aftersale2/edit.html index 252d6d2..c5b731c 100644 --- a/application/admin/view/aftersales/aftersale2/edit.html +++ b/application/admin/view/aftersales/aftersale2/edit.html @@ -164,19 +164,21 @@ +
-
+
diff --git a/application/admin/view/aftersales/aftersale2/index.html b/application/admin/view/aftersales/aftersale2/index.html index 65184b4..ddf3449 100644 --- a/application/admin/view/aftersales/aftersale2/index.html +++ b/application/admin/view/aftersales/aftersale2/index.html @@ -24,7 +24,7 @@
@@ -34,3 +34,12 @@
+ + diff --git a/application/admin/view/order/index.html b/application/admin/view/order/index.html index 45219b3..af0ab3f 100644 --- a/application/admin/view/order/index.html +++ b/application/admin/view/order/index.html @@ -41,7 +41,7 @@ - + - + + + diff --git a/application/admin/view/orderplan/index.html b/application/admin/view/orderplan/index.html index 4fd5607..e245af0 100644 --- a/application/admin/view/orderplan/index.html +++ b/application/admin/view/orderplan/index.html @@ -45,6 +45,22 @@
+
+
+
+
+ 进行中的订单 +
+
+
+ 0 / 0 / 0 / 0 +
+
+ 待派单 / 待接单 / 待上门 / 服务中 +
+
+
+
@@ -100,12 +116,10 @@
-
+
-

报错

-

单位/笔

详情> @@ -118,12 +132,10 @@
-
+
-

待配置

-

单位/笔

详情> @@ -136,12 +148,10 @@
-
+
-

待审核

-

单位/笔

详情> @@ -154,12 +164,10 @@
-
+
-

待回访

-

单位/笔

详情> @@ -172,12 +180,10 @@
-
+
-

待售后

-

单位/笔

详情> @@ -190,12 +196,10 @@
-
+
-

开票

-

单位/笔

详情> @@ -246,24 +250,6 @@
- -
-
-
-
-
- 进行中的订单 -
-
-
- 0 / 0 / 0 / 0 -
-
- 待派单 / 待接单 / 待上门 / 服务中 -
-
-
-
订单数据
@@ -682,10 +668,11 @@ .order-count-title { background-color: #c389f6; - color: #7b38b7; + color: #FFFFFF; padding: 5px; border-radius: 20px; font-size: 14px; + font-weight: bold; } .order-count-plan { @@ -699,12 +686,12 @@ .order-count-num { font-size: 20px; margin: 10px 0; - color: #292e39; + color: rgba(0, 0, 0, 0.9); } .order-count-num-sub { font-size: 12px; - color: #C9C5C5; + color: rgba(0, 0, 0, 0.5); } .static-plan{ display: flex; @@ -732,9 +719,11 @@ } .static-text-num{ font-size: 16px; + font-weight: bold; + color: rgba(0, 0, 0, 0.9); } .static-text-sub{ - color: #C9C5C5; + color: rgba(0, 0, 0, 0.5); font-size: 12px; } .rank-plan{ @@ -800,7 +789,11 @@ flex: 1; } .service-content-sub{ - color: #ccc; + color: rgba(0, 0, 0, 0.5); font-size: 12px; } - \ No newline at end of file + + .service-content-title { + color: rgba(0, 0, 0, 0.9); + } + diff --git a/application/admin/view/orders/configorder/edit.html b/application/admin/view/orders/configorder/edit.html index 092c19f..246f193 100644 --- a/application/admin/view/orders/configorder/edit.html +++ b/application/admin/view/orders/configorder/edit.html @@ -263,6 +263,15 @@
--> + +
+ +
+ +
+
+ +