@@ -33,7 +15,7 @@
diff --git a/backend/application/common/model/data/Logs.php b/backend/application/common/model/data/Logs.php
index 6546bc8..9f535b1 100644
--- a/backend/application/common/model/data/Logs.php
+++ b/backend/application/common/model/data/Logs.php
@@ -29,9 +29,77 @@ class Logs extends Model
];
protected $type = [
- 'before_data' => 'array',
- 'after_data' => 'array',
+
];
+
+ // JSON 字段统一处理:读取时输出 JSON 字符串,写入时接受数组或 JSON 字符串
+ public function getBeforeDataAttr($value)
+ {
+ return $this->stringifyJsonData($value);
+ }
+
+ public function getAfterDataAttr($value)
+ {
+ return $this->stringifyJsonData($value);
+ }
+
+ public function setBeforeDataAttr($value)
+ {
+ return $this->normalizeJsonData($value);
+ }
+
+ public function setAfterDataAttr($value)
+ {
+ return $this->normalizeJsonData($value);
+ }
+
+ /**
+ * 将数据库值转换为可展示的 JSON 字符串
+ */
+ protected function stringifyJsonData($value)
+ {
+ $flag = JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT;
+
+ if (is_array($value)) {
+ return empty($value) ? '' : json_encode($value, $flag);
+ }
+
+ $value = $value === null ? '' : trim((string)$value);
+ if ($value === '') {
+ return '';
+ }
+
+ $decoded = json_decode($value, true);
+ if (json_last_error() !== JSON_ERROR_NONE) {
+ return $value;
+ }
+
+ return json_encode($decoded, $flag);
+ }
+
+ /**
+ * 将输入(数组或 JSON 字符串)规范化为存储的 JSON 字符串
+ */
+ protected function normalizeJsonData($value)
+ {
+ $flag = JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES;
+
+ if (is_array($value)) {
+ return json_encode($value, $flag);
+ }
+
+ $value = $value === null ? '' : trim((string)$value);
+ if ($value === '') {
+ return '';
+ }
+
+ $decoded = json_decode($value, true);
+ if (json_last_error() !== JSON_ERROR_NONE) {
+ return json_encode([$value], $flag);
+ }
+
+ return json_encode($decoded, $flag);
+ }
diff --git a/backend/public/assets/js/backend/order/goods.js b/backend/public/assets/js/backend/order/goods.js
index a78729d..edcc47f 100644
--- a/backend/public/assets/js/backend/order/goods.js
+++ b/backend/public/assets/js/backend/order/goods.js
@@ -31,11 +31,10 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{field: 'order_no', title: __('Order_no'), operate: 'LIKE'},
{field: 'spu_id', title: __('Spu_id'), operate: 'LIKE'},
{field: 'sku_id', title: __('Sku_id'), operate: 'LIKE'},
- {field: 'room_id', title: __('Room_id'), operate: 'LIKE'},
{field: 'goods_main_type', title: __('Goods_main_type')},
{field: 'goods_vice_type', title: __('Goods_vice_type')},
{field: 'goods_name', title: __('Goods_name'), operate: 'LIKE', table: table, class: 'autocontent', formatter: Table.api.formatter.content},
- {field: 'goods_picture_url', title: __('Goods_picture_url'), operate: 'LIKE', formatter: Table.api.formatter.url},
+ {field: 'goods_picture_url', title: __('Goods_picture_url'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{field: 'origin_price', title: __('Origin_price'), operate:'BETWEEN'},
{field: 'actual_price', title: __('Actual_price'), operate:'BETWEEN'},
{field: 'buy_quantity', title: __('Buy_quantity')},
diff --git a/backend/public/assets/js/backend/orders.js b/backend/public/assets/js/backend/orders.js
index 2376170..bd80a24 100644
--- a/backend/public/assets/js/backend/orders.js
+++ b/backend/public/assets/js/backend/orders.js
@@ -29,9 +29,6 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'user_id', title: __('User_id')},
- {field: 'saas_id', title: __('Saas_id'), operate: 'LIKE'},
- {field: 'store_id', title: __('Store_id'), operate: 'LIKE'},
- {field: 'store_name', title: __('Store_name'), operate: 'LIKE'},
{field: 'parent_order_no', title: __('Parent_order_no'), operate: 'LIKE'},
{field: 'order_id', title: __('Order_id'), operate: 'LIKE'},
{field: 'order_no', title: __('Order_no'), operate: 'LIKE'},