user.php 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484
  1. <?php
  2. return array
  3. (
  4. # 数据来源,如果当前菜单不是表名,这里可以定义从哪个表获取数据
  5. //'source' => 'manage/admin',
  6. # 列表页配置
  7. 'list' => array
  8. (
  9. //'where' => array('group_id' => $group),
  10. # 列表页类型 table表格、article文章、pic图片、goods商品,默认是表格,除table外,其余类型需要增加layout项,用以控制展示位置,并且批量操作功能将失效,如批量删除、批量操作等,后续增加更多类型
  11. 'type' => 'table',
  12. # 是否显示序号
  13. /*
  14. 'index' => array
  15. (
  16. 'name' => '序号',
  17. # 固定表头,field中也支持
  18. 'fixed' => true,
  19. ),
  20. */
  21. # 展示的字段
  22. 'field' => array
  23. (
  24. 'id',
  25. 'name',
  26. # 实现多级表头,两个字段合并到一起展示,因vue3问题,仅支持三级表头哦
  27. /*
  28. 'test2' => array
  29. (
  30. 'name' => '基本资料',
  31. 'type' => 'mul',
  32. 'child' => array
  33. (
  34. 'avatar' => 'image',
  35. 'mobile' => array
  36. (
  37. 'type' => 'show',
  38. # 加入排序
  39. 'sort' => true,
  40. ),
  41. ),
  42. ),*/
  43. 'avatar' => 'image',
  44. 'mobile' => array
  45. (
  46. 'sort' => true,
  47. ),
  48. 'job',
  49. /*
  50. # 自定义展示内容
  51. 'job' => array
  52. (
  53. //'show' => 'Dever::db("job", "test")->find("{id}")["name"]',
  54. # 气泡卡片展示
  55. 'type' => 'popover',
  56. # title
  57. 'title' => '查看更多',
  58. # 位置:top/top-start/top-end/bottom/bottom-start/bottom-end/left/left-start/left-end/right/right-start/right-end
  59. 'location' => 'right',
  60. 'show' => 'Dever::load("common")->show("{job}")',
  61. ),*/
  62. 'status' => array
  63. (
  64. 'type' => 'switch',
  65. 'show' => '{status}',
  66. 'active_value' => 1,
  67. 'inactive_value' => 2,
  68. ),
  69. 'cdate',
  70. ),
  71. # 扩展展示内容
  72. //'expand' => 'test/common.show',
  73. /*
  74. 'type' => 'article',
  75. 'layout' => array
  76. (
  77. array
  78. (
  79. 'type' => 'avatar',
  80. 'value' => array
  81. (
  82. 'image' => 'avatar',
  83. )
  84. ),
  85. array
  86. (
  87. 'type' => 'content',
  88. 'value' => array
  89. (
  90. 'title' => 'name',
  91. 'description' => 'job'
  92. )
  93. ),
  94. array
  95. (
  96. 'type' => 'content',
  97. 'value' => array
  98. (
  99. 'item' => array('时间', 'cdate'),
  100. )
  101. ),
  102. ),
  103. */
  104. /*
  105. 'type' => 'goods',
  106. 'layout' => array
  107. (
  108. 'tag' => 'mobile',
  109. 'image' => 'avatar',
  110. 'title' => 'name',
  111. 'description' => 'job',
  112. //'icon' => 'icon',
  113. ),*/
  114. /*
  115. 'type' => 'pic',
  116. 'layout' => array
  117. (
  118. 'id' => 'id',
  119. 'image' => 'avatar',
  120. ),*/
  121. # 列表页描述
  122. //'desc' => 'test',
  123. # 列表的高度,auto和100%或者具体数值,默认是auto
  124. 'height' => 'auto',
  125. # 列表页按钮,默认是快速新增和删除
  126. 'button' => array
  127. (
  128. '新增' => 'add',
  129. //'新增' => 'fastadd',
  130. '删除' => 'recycle',//删除到回收站
  131. //'彻底删除' => 'delete',
  132. //'更改角色' => array('oper', 'job'),
  133. //'链接跳转' => array('link', 'https://www.baidu.com/'),
  134. //'路由跳转' => array('route', 'test/menu?test=1'),
  135. ),
  136. # 列表页每条数据的按钮,默认是快速编辑和删除
  137. 'data_button' => array
  138. (
  139. '编辑' => 'edit',
  140. //'编辑' => 'fastedit',
  141. # 只处理某个字段,多个用逗号隔开
  142. //'编辑' => array('fastedit', 'name'),
  143. //'编辑' => array('fastedit'),
  144. '删除' => 'recycle',//删除到回收站
  145. //'彻底删除' => 'delete',
  146. //'操作' => array('oper', 'job'),
  147. //'接口操作' => array('api', 'api'),
  148. //'详情' => array('view', 'platform/admin?type=view&id=id'),
  149. //'链接跳转' => array('link', 'https://www.baidu.com/'),
  150. # 第三个参数可以自定义图标:https://element-plus.org/zh-CN/component/icon.html#icon-collection
  151. //'路由跳转' => array('route', 'test/menu?test=1', 'ChatLineSquare'),
  152. ),
  153. # 列表页导入
  154. 'import' => array
  155. (
  156. ),
  157. # 列表页导出
  158. 'export' => array
  159. (
  160. 'out' => '导出',
  161. 'manage/common.out' => '自定义导出',
  162. ),
  163. # 搜索字段 fulltext 模糊查询
  164. 'search' => array
  165. (
  166. 'name',
  167. 'mobile',
  168. 'job' => 'group',
  169. ),
  170. # 统计
  171. //'stat' => 'manage/common.stat',
  172. ),
  173. # 更新页配置
  174. 'update' => array
  175. (
  176. # 更新页描述
  177. 'desc' => '',
  178. # 自定义标签 支持分栏
  179. /*
  180. 'tab' => array
  181. (
  182. # 不设置分栏
  183. '基础设置' => 'name,mobile',
  184. # 设置分栏
  185. '基础设置' => array
  186. (
  187. array
  188. (
  189. 'name' => 12,
  190. 'mobile' => 12,
  191. ),
  192. ),
  193. '普通设置' => 'password',
  194. '其他设置' => 'job',
  195. ),
  196. # 自定义步骤 支持分栏 设置后,tab将失效
  197. 'step' => array
  198. (
  199. '第一步' => 'name,mobile',
  200. # 设置分栏
  201. '第一步' => array
  202. (
  203. array
  204. (
  205. 'name' => 12,
  206. 'mobile' => 12,
  207. ),
  208. ),
  209. '第二步' => 'password',
  210. '提交' => 'job',
  211. ),
  212. # 自定义布局 24分栏布局,设置后,tab和step里的设置将失效
  213. 'layout' => array
  214. (
  215. array
  216. (
  217. 'name' => 12,
  218. 'mobile' => 12,
  219. ),
  220. array
  221. (
  222. 'password' => 12,
  223. 'job' => 12,
  224. ),
  225. ),*/
  226. # 要更新的字段
  227. 'field' => array
  228. (
  229. 'name' => array
  230. (
  231. 'type' => 'text',
  232. # 定义editor的工具栏,一般无需配置,参考wangEditor https://www.wangeditor.com/v5/toolbar-config.html#toolbarkeys,这里直接配置toolbarConfig的值
  233. /*
  234. 'editorToolBar' => array
  235. (
  236. 'toolbarKeys' => array
  237. (
  238. 'headerSelect',
  239. '|',
  240. 'bold', 'italic',
  241. ),
  242. 'insertKeys' => array(),
  243. 'excludeKeys' => array(),
  244. ),*/
  245. # 定义editor的菜单配置,一般只需要配置上传规则即可,其余也可以配置,参考wangEditor https://www.wangeditor.com/v5/menu-config.html,这里直接配置editorConfig.MENU_CONF的值
  246. 'editorMenu' => array
  247. (
  248. # 定义上传规则,与uploadVideo一样,无需定义server
  249. 'uploadImage' => array
  250. (
  251. # 这里传入上传规则id
  252. 'upload' => 1,
  253. # 不传则默认为file
  254. 'fieldName' => 'file',
  255. ),
  256. # 也可以直接传入上传规则,其余配置默认
  257. 'uploadVideo' => 3,
  258. ),
  259. 'maxlength' => 30,
  260. # 描述
  261. 'desc' => '',
  262. ),
  263. /* type的值
  264. text:单行文本
  265. set:
  266. maxlength:最大输入长度
  267. minlength:最小输入长度
  268. size: 大小,'large' | 'default' | 'small'
  269. password:文本密码框
  270. textarea:多行文本
  271. rows:多行文本的行数,默认为2
  272. editor:编辑器
  273. number:数字计数器
  274. set:
  275. step:计数器步数,默认为1
  276. min:最小值
  277. max:最大值
  278. precision:精度,小数点几位
  279. position:按钮位置:left、right,不填为两端
  280. switch:开关
  281. set:
  282. open_color:开启颜色
  283. close_color:关闭颜色
  284. open_text:开启文字
  285. close_text:关闭文字
  286. slider:滑块
  287. set:
  288. max:最大值
  289. step:步数
  290. stops:是否显示间断点
  291. input:是否显示输入框,true/false
  292. range:是否范围选择,true/false
  293. format:格式化展示数字,这里是一个计算公式,如{a}/100,{a}为当前值变量名
  294. radio:单选
  295. radio_button:单选按钮样式
  296. set:
  297. border:单选边框样式
  298. checkbox:多选
  299. checkbox_button:多选按钮样式
  300. set:
  301. border:多选边框样式
  302. min:多选限制选择数目,最小选择数目
  303. max:多选限制选择数目,最大选择数目
  304. tree:树形选择器
  305. tree2:大量数据下的树形选择器,暂时不支持
  306. cascader:级联选择器,可以做地区等
  307. select:选择器
  308. select_tree:选择器,多选的树形模式
  309. set:
  310. clearable:是否可清空选择,true/false
  311. multiple:开启多选,true/false
  312. url:开启远程搜索,这里定义远程搜索的url
  313. remote:开启远程控制,这里定义远程控制的url
  314. rate:评分
  315. set:
  316. score:是否显示分数
  317. text:是否显示文字
  318. date:日期,不带具体时间
  319. date_type:
  320. dates:多个日期
  321. year:只显示年
  322. month:只显示月
  323. week:只显示周
  324. datetime:带有时间的日期
  325. datetimerange:带有时间的日期范围
  326. daterange:日期范围
  327. monthrange:月份范围
  328. set:
  329. disable_func:禁止选择方法,需要根据不同的date_type实现不同的方法,默认为不能选择今天之后的日期:return time.getTime() > Date.now()
  330. format:格式化展示,YYYY-MM-DD,参考:https://day.js.org/docs/en/display/format#list-of-all-available-formats
  331. shortcuts:默认展示的日期,值如:
  332. array
  333. (
  334. array
  335. (
  336. 'text' => '今天',
  337. 'func' => 'return new Date()',
  338. ),
  339. ),
  340. start_placeholder:开始日期文字描述
  341. end_placeholder:结束日期文字描述
  342. range_separator:日期范围文字描述
  343. step:步数
  344. start:开始日期
  345. end:结束日期
  346. default:默认日期
  347. time:仅选择时间
  348. step:步数
  349. start:开始时间
  350. end:结束时间
  351. */
  352. 'mobile' => array
  353. (
  354. # 仅限编辑,值为add/edit,不填则所有有效
  355. //'only' => 'edit',
  356. 'name' => '手机号',
  357. 'type' => 'text',
  358. 'disable' => false,//是否禁用
  359. 'placeholder' => '',//提示语
  360. # 校验规则,如rules => true,是必填, 无rules或者rules=false,就是选填
  361. # 参考:https://github.com/yiminghe/async-validator
  362. 'rules' => array
  363. (
  364. # 规则1
  365. array
  366. (
  367. # 必填
  368. 'required' => true,
  369. # 输入后触发
  370. 'trigger' => 'blur',
  371. # 提示信息
  372. 'message' => '请输入手机号',
  373. ),
  374. # 规则2
  375. array
  376. (
  377. # 最小字符
  378. //'min' => 3,
  379. # 最大字符
  380. //'max' => 5,
  381. # 长度
  382. 'len' => 11,
  383. # 正则
  384. 'pattern' => Dever::rule('mobile', ''),
  385. 'trigger' => 'blur',
  386. # 提示信息
  387. 'message' => '手机号错误',
  388. # 验证类型 date,array,number,boolean,integer,float,url,email,enum,string
  389. 'type' => 'string',
  390. ),
  391. ),
  392. ),
  393. 'password' => array
  394. (
  395. 'type' => 'password',
  396. # 更新时的值,始终是空的,有值才更新
  397. 'update' => '',
  398. # 对更新的值进行处理
  399. 'handle' => 'manage/common.createPwd',
  400. # 空值不允许入库
  401. 'empty' => false,
  402. 'rules' => array
  403. (
  404. array
  405. (
  406. # 仅限新增时必填,值为add/edit,不填则所有有效
  407. 'only' => 'add',
  408. 'required' => true,
  409. 'trigger' => 'blur',
  410. 'message' => '请输入密码',
  411. ),
  412. array
  413. (
  414. 'min' => 6,
  415. 'max' => 18,
  416. 'trigger' => 'blur',
  417. 'message' => '密码长度不能超过18或者少于6个字符',
  418. ),
  419. ),
  420. ),
  421. 'job' => array
  422. (
  423. 'type' => 'checkbox',
  424. # 是否开启控制功能,需要配置control
  425. //'control' => true,
  426. # 开启远程获取数据功能,这里设置接口即可,访问到api下,参考manage组件吧
  427. //'remote' => 'manage/admin.getSystem',
  428. ),
  429. # 定义另外一个表或者方法里的字段,带有"."就是方法,调用manage/job里的upload配置,这里也可以自行配置
  430. //'manage/job' => 'upload',
  431. 'avatar' => array
  432. (
  433. 'type' => 'upload',
  434. # 这里传入上传规则id
  435. 'upload' => '1',
  436. # 如果上传规则是上传到云端,配置了这个将直接上传至云端,不做本地上传
  437. 'yun' => false,
  438. # 是否支持多选
  439. 'multiple' => false,
  440. # 提示
  441. 'tip' => '',
  442. ),
  443. ),
  444. # 是否开启控制功能
  445. /*
  446. 'control' => array
  447. (
  448. 'avatar' => array
  449. (
  450. 'job' => 1,
  451. ),
  452. ),
  453. */
  454. # update提交之前的操作,需要验证哪些字段唯一,多个用逗号隔开
  455. 'check' => 'mobile',
  456. # update提交之前的操作
  457. 'start' => '',
  458. # update提交之后的操作
  459. 'end' => '',
  460. ),
  461. # 详情页配置
  462. 'view' => 'common.view',
  463. );