1. <?php
    2. namespace app\controller;
    3. use app\BaseController;
    4. use think\db\Query;
    5. use tpScriptVueCurd\base\model\BaseModel;
    6. use tpScriptVueCurd\base\model\VueCurlModel;
    7. use tpScriptVueCurd\FieldCollection;
    8. use tpScriptVueCurd\option\FunControllerIndexData;
    9. use tpScriptVueCurd\option\FunControllerIndexPage;
    10. class User extends BaseController
    11. {
    12. use \tpScriptVueCurd\base\controller\BaseController;
    13. /**
    14. * 列表条件自定义
    15. * @param Query $query
    16. */
    17. protected function indexListWhere(Query $query): void
    18. {
    19. //$query->where('status',1);
    20. }
    21. /**
    22. * index页面在显示前
    23. * @param BaseModel|null $baseInfo 父表信息
    24. */
    25. protected function indexShowBefore(?BaseModel &$baseInfo): void
    26. {
    27. //要改fields,可以直接在 这里 $this->fields
    28. // 列表页面显示前处理,在indexFetch前
    29. }
    30. /**
    31. * index页面给前台的数据处理
    32. * @param array $fetch
    33. */
    34. protected function indexFetch(array &$fetch): void
    35. {
    36. // 列表页面显示前处理,在indexShowBefore后
    37. }
    38. /**
    39. * 对index页面给前台ajax获取到的数据进行处理
    40. * @param FunControllerIndexData $option
    41. */
    42. protected function indexData(FunControllerIndexData $option): void
    43. {
    44. //列表数据处理钩子
    45. }
    46. /**
    47. * 详细页面展示数据处理
    48. * @param array $fetch
    49. * @return array
    50. */
    51. protected function showFetch(array $fetch):array{
    52. // 详情页面显示前处理
    53. return $fetch;
    54. }
    55. protected function showBefore(BaseModel $info,?BaseModel $parentInfo,FieldCollection &$field){
    56. //数据显示前
    57. }
    58. /**
    59. * 添加页面打开前
    60. * @param array $fetchData
    61. * @return array
    62. */
    63. protected function beforeAddShow(array $fetchData): array
    64. {
    65. return $fetchData;
    66. }
    67. /**
    68. * 修改页面打开前
    69. * @param array $fetchData
    70. * @return array
    71. */
    72. protected function beforeEditShow(array $fetchData): array
    73. {
    74. return $fetchData;
    75. }
    76. protected function editBefore(FieldCollection &$fields,BaseModel $old,?BaseModel $parentInfo,?array &$data=null): void
    77. {
    78. // 数据添加或修改时,显示与提交都会执行此方法
    79. // 如果没有$old->id,表示当前操作是添加
    80. }
    81. /**
    82. * 数据添加成功后调用
    83. * @param BaseModel $info
    84. */
    85. protected function addAfter(BaseModel $info): void
    86. {
    87. // 数据添加成功后钩子,方便子类处理(子类重写此方法)
    88. }
    89. /**
    90. * 数据修改成功后调用
    91. * @param BaseModel $info
    92. */
    93. protected function editAfter(BaseModel $info): void
    94. {
    95. // 数据修改成功后钩子,方便子类处理(子类重写此方法)
    96. }
    97. /**
    98. * 编辑页面打开,数据生成前
    99. * @param FieldCollection $fields
    100. * @param VueCurlModel|null $data
    101. * @param BaseModel|null $baseModel
    102. */
    103. protected function createEditFetchDataBefore(FieldCollection $fields, BaseModel &$data,?BaseModel $baseModel):void
    104. {
    105. //(添加/编辑页面)生成解析数据前,处理数据(控制字段显示与否),$data为空代表是新增
    106. }
    107. /**
    108. * 执行删除前
    109. * @param array $ids
    110. * @return array
    111. */
    112. protected function beforeDel(array $ids): array
    113. {
    114. //返回要删除的数据的ID
    115. return $ids;
    116. }
    117. /**
    118. * 删除成功后
    119. * @param \think\Collection $delInfos
    120. */
    121. protected function afterDel(\think\Collection $delInfos): void
    122. {
    123. }
    124. public function importBefore(FunControllerImportBefore $option):void{
    125. // 数据导入前,方便子类处理(子类重写此方法)
    126. }
    127. public function importAfter(FunControllerImportAfter $option):void{
    128. // 数据导入后,方便子类处理(子类重写此方法)
    129. }
    130. /**
    131. * 列表按钮组左侧
    132. * @param BaseModel $info 当前行信息
    133. * @param FieldCollection $fields
    134. * @param BaseModel|null $parentInfo
    135. * @param \think\model\Collection $list 列表信息
    136. * @return RowBtn[]|OpenBtn[]
    137. */
    138. public function getListRowBeforeBtns(BaseModel $info,FieldCollection $fields,?BaseModel $parentInfo,\think\model\Collection $list): array
    139. {
    140. return [];
    141. }
    142. /**
    143. * 列表按钮组右侧
    144. * @param BaseModel $info 当前行信息
    145. * @param FieldCollection $fields
    146. * @param BaseModel|null $parentInfo
    147. * @param \think\model\Collection $list 列表信息
    148. * @return RowBtn[]|OpenBtn[]
    149. */
    150. public function getListRowAfterBtns(BaseModel $info,FieldCollection $fields,?BaseModel $parentInfo,\think\model\Collection $list): array
    151. {
    152. return [];
    153. }
    154. /**
    155. * 工具栏标题左侧按钮
    156. * @param FieldCollection $fields 当前字段信息
    157. * @param BaseModel|null $parentInfo 父表
    158. * @return RowBtn[]|OpenBtn[]
    159. */
    160. public function getToolTitleLeftBtns(FieldCollection $fields,?BaseModel $parentInfo):array{
    161. return [];
    162. }
    163. /**
    164. * 工具栏标题右侧按钮
    165. * @param FieldCollection $fields 当前字段信息
    166. * @param BaseModel|null $parentInfo 父表
    167. * @return RowBtn[]|OpenBtn[]
    168. */
    169. public function getToolTitleRightBtns(FieldCollection $fields,?BaseModel $parentInfo):array{
    170. return [];
    171. }
    172. /**
    173. * 工具栏右侧按钮集左边
    174. * @param FieldCollection $fields 当前字段信息
    175. * @param BaseModel|null $parentInfo 父表
    176. * @return RowBtn[]|OpenBtn[]
    177. */
    178. public function getToolBtnLeftBtns(FieldCollection $fields,?BaseModel $parentInfo):array{
    179. return [];
    180. }
    181. /**
    182. * 工具栏右侧按钮集右边
    183. * @param FieldCollection $fields 当前字段信息
    184. * @param BaseModel|null $parentInfo 父表
    185. * @return RowBtn[]|OpenBtn[]
    186. */
    187. public function getToolBtnRightBtns(FieldCollection $fields,?BaseModel $parentInfo):array{
    188. return [];
    189. }
    190. }