| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135 |
- <?php
- namespace zin;
- class detailBody extends wg
- {
- /**
- * @var mixed[]
- */
- protected static $defineProps = array(
- 'isForm?: bool=false',
- 'hasExtraMain?: bool=true' // 是否展示工作流扩展字段
- );
- /**
- * @var mixed[]
- */
- protected static $defineBlocks = array(
- 'main' => array('map' => 'sectionList'),
- 'side' => array('map' => 'detailSide'),
- 'bottom' => array('map' => 'history,fileList'),
- 'floating' => array('map' => 'floatToolbar')
- );
- public static function getPageCSS()
- {
- return file_get_contents(__DIR__ . DS . 'css' . DS . 'v1.css');
- }
- public static function getPageJS()
- {
- return file_get_contents(__DIR__ . DS . 'js' . DS . 'v1.js');
- }
- protected function buildExtraMain()
- {
- global $app;
- $app->control->loadModel('flow');
- $isForm = $this->prop('isForm');
- $object = data($app->getModuleName());
- $fields = $app->control->appendExtendForm('info', $object);
- $extraMain = array();
- foreach($fields as $field)
- {
- $fieldValue = !$isForm ? $app->control->flow->getFieldValue($field, $object) : null;
- $extraMain[] = section
- (
- !empty($field->control['control']) && $field->control['control'] == 'fileSelector' && $object->files ? fileList
- (
- set::files($object->files),
- set::extra($field->field),
- set::fieldset(false),
- set::showEdit(true),
- set::showDelete(true)
- ) : null,
- set::title($field->name),
- set::required($field->required),
- !$isForm ? (div(!empty($field->control['control']) && $field->control['control'] == 'editor' ? html($fieldValue) : $fieldValue)) : formGroup
- (
- set::id($field->field),
- set::name($field->field),
- set::disabled((bool)$field->readonly),
- set::control($field->control),
- set::items($field->items),
- set::value($field->value),
- set::placeholder($field->placeholder)
- )
- );
- }
- return empty($extraMain) ? null : sectionList($extraMain);
- }
- protected function build()
- {
- global $app;
- $main = $this->block('main');
- $side = $this->block('side');
- $bottom = $this->block('bottom');
- $floating = $this->block('floating');
- $isForm = $this->prop('isForm');
- $hasExtraMain = $this->prop('hasExtraMain');
- $extraMain = $hasExtraMain ? $this->buildExtraMain() : null;
- if(!$isForm)
- {
- return div
- (
- setClass('detail-body rounded flex gap-1'),
- set($this->getRestProps()),
- div
- (
- setClass('col gap-1 grow min-w-0'),
- $main,
- $extraMain,
- $bottom,
- empty($floating) ? null : center(setClass('pt-6 sticky bottom-0'), $floating)
- ),
- $side,
- html($app->control->appendExtendCssAndJS('', '', data($app->getModuleName())))
- );
- }
- return formBase
- (
- set::actionsClass('h-14 flex flex-none items-center justify-center shadow'),
- setClass('detail-body rounded col overflow-y-hidden bg-white'),
- set($this->getRestProps()),
- div
- (
- setClass('flex-auto overflow-y-auto'),
- div
- (
- setClass('flex'),
- setStyle('min-height', '100%'),
- div
- (
- setClass('col grow min-w-0'),
- $main,
- $extraMain,
- $bottom
- ),
- div
- (
- setClass('w-1'),
- setStyle('background', 'var(--zt-page-bg)')
- ),
- $side
- )
- ),
- html($app->control->appendExtendCssAndJS('', '', data($app->getModuleName())))
- );
- }
- }
|