Diy.php 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的多应用管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\model\diy;
  12. use app\dict\diy\PagesDict;
  13. use app\dict\diy\TemplateDict;
  14. use core\base\BaseModel;
  15. /**
  16. * 自定义页面模型
  17. * Class Diy
  18. * @package app\model\diy
  19. */
  20. class Diy extends BaseModel
  21. {
  22. protected $type = [
  23. 'create_time' => 'timestamp',
  24. 'update_time' => 'timestamp',
  25. ];
  26. /**
  27. * 数据表主键
  28. * @var string
  29. */
  30. protected $pk = 'id';
  31. /**
  32. * 模型名称
  33. * @var string
  34. */
  35. protected $name = 'diy_page';
  36. /**
  37. * 状态字段转化:所属插件名称
  38. * @param $value
  39. * @param $data
  40. * @return string
  41. */
  42. public function getAddonNameAttr($value, $data)
  43. {
  44. $addon_name = '';
  45. $template = TemplateDict::getTemplate([
  46. 'query' => 'addon'
  47. ]);
  48. foreach ($template as $k => $v) {
  49. foreach ($v[ 'list' ] as $ck => $cv) {
  50. if ($ck == $data[ 'type' ]) {
  51. $addon_name = $v[ 'title' ];
  52. break;
  53. }
  54. }
  55. }
  56. return $addon_name;
  57. }
  58. /**
  59. * 状态字段转化
  60. * @param $value
  61. * @param $data
  62. * @return mixed
  63. */
  64. public function getTypePageAttr($value, $data)
  65. {
  66. if (!empty($data[ 'type' ])) {
  67. return TemplateDict::getTemplate([ 'key' => [ $data[ 'type' ] ] ])[ $data[ 'type' ] ][ 'page' ] ?? '';
  68. }
  69. return '';
  70. }
  71. /**
  72. * 状态字段转化
  73. * @param $value
  74. * @param $data
  75. * @return mixed
  76. */
  77. public function getTypeNameAttr($value, $data)
  78. {
  79. if (!empty($data[ 'type' ])) {
  80. return TemplateDict::getTemplate([ 'key' => [ $data[ 'type' ] ] ])[ $data[ 'type' ] ][ 'title' ] ?? '';
  81. }
  82. return '';
  83. }
  84. /**
  85. * 状态字段转化
  86. * @param $value
  87. * @param $data
  88. * @return mixed
  89. */
  90. public function getTemplateNameAttr($value, $data)
  91. {
  92. if (!empty($data[ 'template' ])) {
  93. $page = PagesDict::getPages([ 'type' => $data[ 'type' ] ])[ $data[ 'template' ] ][ 'title' ];
  94. return $page ?? '';
  95. }
  96. return '';
  97. }
  98. /**
  99. * 状态字段转化
  100. * @param $value
  101. * @param $data
  102. * @return mixed
  103. */
  104. public function getShareAttr($value, $data)
  105. {
  106. if (empty($data[ 'share' ])) {
  107. $data[ 'share' ] = json_encode([
  108. 'wechat' => [
  109. 'title' => $data[ 'title' ],
  110. 'desc' => '',
  111. 'url' => ''
  112. ],
  113. 'weapp' => [
  114. 'title' => $data[ 'title' ],
  115. 'url' => ''
  116. ]
  117. ]);
  118. }
  119. return $data[ 'share' ] ?? '';
  120. }
  121. /**
  122. * 搜索器:自定义页面标识
  123. * @param $query
  124. * @param $value
  125. * @param $data
  126. */
  127. public function searchAddonNameAttr($query, $value, $data)
  128. {
  129. if ($value) {
  130. $list = [];
  131. $template = TemplateDict::getTemplate([
  132. 'query' => 'addon'
  133. ]);
  134. foreach ($template as $k => $v) {
  135. if ($k == $value) {
  136. $list = array_keys($v[ 'list' ]);
  137. }
  138. }
  139. $query->where("type", 'in', $list);
  140. }
  141. }
  142. /**
  143. * 搜索器:自定义页面
  144. * @param $query
  145. * @param $value
  146. * @param $data
  147. */
  148. public function searchIdAttr($query, $value, $data)
  149. {
  150. if ($value) {
  151. $query->where("id", $value);
  152. }
  153. }
  154. /**
  155. * 搜索器:页面标题(用于前台展示),页面名称(用于后台展示)
  156. * @param $query
  157. * @param $value
  158. * @param $data
  159. */
  160. public function searchTitleAttr($query, $value, $data)
  161. {
  162. if ($value) {
  163. $query->where("title|page_title", 'like', '%' . $value . '%');
  164. }
  165. }
  166. /**
  167. * 搜索器:自定义页面标识
  168. * @param $query
  169. * @param $value
  170. * @param $data
  171. */
  172. public function searchNameAttr($query, $value, $data)
  173. {
  174. if ($value) {
  175. $query->where("name", $value);
  176. }
  177. }
  178. /**
  179. * 搜索器:自定义页面模板
  180. * @param $query
  181. * @param $value
  182. * @param $data
  183. */
  184. public function searchTypeAttr($query, $value, $data)
  185. {
  186. if ($value) {
  187. $query->where("type", $value);
  188. }
  189. }
  190. /**
  191. * 搜索器:页面展示模式,diy:自定义,fixed:固定
  192. * @param $query
  193. * @param $value
  194. * @param $data
  195. */
  196. public function searchModeAttr($query, $value, $data)
  197. {
  198. if ($value) {
  199. $query->where("mode", $value);
  200. }
  201. }
  202. /**
  203. * 搜索器:自定义页面数据,json格式
  204. * @param $query
  205. * @param $value
  206. * @param $data
  207. */
  208. public function searchValueAttr($query, $value, $data)
  209. {
  210. if ($value) {
  211. $query->where("value", $value);
  212. }
  213. }
  214. /**
  215. * 搜索器:自定义页面是否默认页面,1:是,0:否
  216. * @param $query
  217. * @param $value
  218. * @param $data
  219. */
  220. public function searchIsDefaultAttr($query, $value, $data)
  221. {
  222. if ($value) {
  223. $query->where("is_default", $value);
  224. }
  225. }
  226. /**
  227. * 搜索器:自定义页面访问量
  228. * @param $query
  229. * @param $value
  230. * @param $data
  231. */
  232. public function searchShareAttr($query, $value, $data)
  233. {
  234. if ($value) {
  235. $query->where("share", $value);
  236. }
  237. }
  238. /**
  239. * 搜索器:自定义页面访问量
  240. * @param $query
  241. * @param $value
  242. * @param $data
  243. */
  244. public function searchVisitCountAttr($query, $value, $data)
  245. {
  246. if ($value) {
  247. $query->where("visit_count", $value);
  248. }
  249. }
  250. /**
  251. * 搜索器:自定义页面创建时间
  252. * @param $query
  253. * @param $value
  254. * @param $data
  255. */
  256. public function searchCreateTimeAttr($query, $value, $data)
  257. {
  258. if ($value) {
  259. $query->where("create_time", $value);
  260. }
  261. }
  262. /**
  263. * 搜索器:自定义页面更新时间
  264. * @param $query
  265. * @param $value
  266. * @param $data
  267. */
  268. public function searchUpdateTimeAttr($query, $value, $data)
  269. {
  270. if ($value) {
  271. $query->where("update_time", $value);
  272. }
  273. }
  274. }