处理表单设计更新逻辑,解决表单上报BUG,新增APP端CSS基础样式
This commit is contained in:
parent
3954a4bb8e
commit
736a5a7b99
@ -37,6 +37,13 @@ public class FormReportAppController extends DefaultBaseController {
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@PostMapping("save-release/code/{formCode}/version/{formVersion}")
|
||||
public SuccessResult saveRelease(@RequestHeader("userId") String userId, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @RequestBody Map<String, Object> params) {
|
||||
checkParams(params);
|
||||
formReportService.saveByUserId(userId, formCode, formVersion, params);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@DeleteMapping("remove/code/{formCode}/version/{formVersion}/uids/{uids}")
|
||||
public SuccessResult remove(@RequestHeader("token") String token, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @PathVariable("uids") String uids) {
|
||||
formReportService.remove(formCode, formVersion, Arrays.asList(uids.split("\\_")));
|
||||
@ -50,17 +57,35 @@ public class FormReportAppController extends DefaultBaseController {
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@PutMapping("update-release/code/{formCode}/version/{formVersion}/uid/{uid}")
|
||||
public SuccessResult updateRelease(@RequestHeader("userId") String userId, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @PathVariable("uid") String uid, @RequestBody Map<String, Object> params) {
|
||||
checkParams(params);
|
||||
formReportService.updateByCreatorAndModifier(userId, userId, formCode, formVersion, uid, params);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@GetMapping("get/code/{formCode}/version/{formVersion}/uid/{uid}")
|
||||
public Map<String, Object> get(@RequestHeader("token") String token, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @PathVariable("uid") String uid) {
|
||||
return formReportService.get(formCode, formVersion, uid);
|
||||
}
|
||||
|
||||
@GetMapping("get-release/code/{formCode}/version/{formVersion}/uid/{uid}")
|
||||
public Map<String, Object> getRelease(@RequestHeader("userId") String userId, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, @PathVariable("uid") String uid) {
|
||||
return formReportService.getByUserId(userId, formCode, formVersion, uid);
|
||||
}
|
||||
|
||||
@GetMapping("list/code/{formCode}/version/{formVersion}")
|
||||
public List<Map<String, Object>> list(@RequestHeader("token") String token, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion) {
|
||||
Map<String, Object> params = requestParams();
|
||||
return formReportService.list(formCode, formVersion, params);
|
||||
}
|
||||
|
||||
@GetMapping("list-release/code/{formCode}/version/{formVersion}")
|
||||
public List<Map<String, Object>> listRelease(@RequestHeader("userId") String userId, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion) {
|
||||
Map<String, Object> params = requestParams();
|
||||
return formReportService.listByUserId(userId, formCode, formVersion, params);
|
||||
}
|
||||
|
||||
@GetMapping("listpage/code/{formCode}/version/{formVersion}")
|
||||
public SuccessResultList<List<Map<String, Object>>> listPage(@RequestHeader("token") String token, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, ListPage page) {
|
||||
Map<String, Object> params = requestParams();
|
||||
@ -68,6 +93,13 @@ public class FormReportAppController extends DefaultBaseController {
|
||||
return formReportService.listPage(formCode, formVersion, page);
|
||||
}
|
||||
|
||||
@GetMapping("listpage-release/code/{formCode}/version/{formVersion}")
|
||||
public SuccessResultList<List<Map<String, Object>>> listPageRelease(@RequestHeader("userId") String userId, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion, ListPage page) {
|
||||
Map<String, Object> params = requestParams();
|
||||
page.setParams(params);
|
||||
return formReportService.listPageByUserId(userId, formCode, formVersion, page);
|
||||
}
|
||||
|
||||
@GetMapping("list-show-field/code/{formCode}/version/{formVersion}")
|
||||
public List<String> listShowField(@RequestHeader("token") String token, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion) {
|
||||
return formReportService.listShowField(formCode, formVersion);
|
||||
|
@ -23,6 +23,8 @@ public interface IFormDao extends IInitBaseTable {
|
||||
|
||||
void deleteDynamicFormField(String alterFieldSQL) throws RemoveException;
|
||||
|
||||
Integer countTable(String tableName) throws SearchException;
|
||||
|
||||
void save(Map<String, Object> params) throws SaveException;
|
||||
|
||||
void delete(Map<String, Object> params) throws RemoveException;
|
||||
|
@ -9,7 +9,6 @@ package ink.wgink.module.form.enums.design;
|
||||
*/
|
||||
public enum FormTypeEnum {
|
||||
DEFAULT("default", "默认"),
|
||||
FREE_REPORT("freeReport", "自由上报"),
|
||||
OA("oa", "OA");
|
||||
|
||||
private String value;
|
||||
|
@ -34,6 +34,13 @@ public interface IFormFieldService {
|
||||
*/
|
||||
void delete(List<String> ids);
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param formIds 表单ID
|
||||
*/
|
||||
void deleteByFormIds(List<String> formIds);
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
@ -126,9 +133,10 @@ public interface IFormFieldService {
|
||||
/**
|
||||
* 字段名列表
|
||||
*
|
||||
* @param formId 表单ID
|
||||
* @param formId 表单ID
|
||||
* @param isListShow 列表显示状态
|
||||
* @return
|
||||
*/
|
||||
List<String> listFieldNameByFormIdAndListShow(String formId, Boolean isListShow);
|
||||
|
||||
}
|
||||
|
@ -18,7 +18,13 @@ public interface IFormService {
|
||||
*/
|
||||
void createDynamicForm(String createTableSQL);
|
||||
|
||||
void deleteTable(String tableName);
|
||||
/**
|
||||
* 删除表
|
||||
*
|
||||
* @param tableName
|
||||
* @param checkExist 判断是否存在
|
||||
*/
|
||||
void deleteTable(String tableName, boolean checkExist);
|
||||
|
||||
void deleteDynamicForm(String deleteTableSQL);
|
||||
|
||||
@ -30,6 +36,8 @@ public interface IFormService {
|
||||
|
||||
void deleteDynamicFormField(String alterFieldSQL);
|
||||
|
||||
Integer countDynamicTable(String tableName);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
@ -53,6 +61,7 @@ public interface IFormService {
|
||||
*/
|
||||
void delete(List<String> ids);
|
||||
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
|
@ -14,12 +14,14 @@ import ink.wgink.module.form.consts.IFormDesignConst;
|
||||
import ink.wgink.module.form.enums.design.FormFieldTypeEnum;
|
||||
import ink.wgink.module.form.enums.design.FormStatusEnum;
|
||||
import ink.wgink.module.form.enums.design.FormTypeEnum;
|
||||
import ink.wgink.module.form.pojo.pos.design.FormPO;
|
||||
import ink.wgink.module.form.pojo.vos.design.FormDesignVO;
|
||||
import ink.wgink.module.form.pojo.vos.design.FormFieldVO;
|
||||
import ink.wgink.module.form.pojo.vos.design.FormVO;
|
||||
import ink.wgink.module.form.service.design.IFormDesignService;
|
||||
import ink.wgink.module.form.service.design.IFormFieldService;
|
||||
import ink.wgink.module.form.service.design.IFormService;
|
||||
import ink.wgink.module.form.service.report.IFormReportService;
|
||||
import ink.wgink.util.HtmlHelper;
|
||||
import ink.wgink.util.date.DateUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -47,6 +49,9 @@ public class FormDesignServiceImpl extends DefaultBaseService implements IFormDe
|
||||
private IFormService formService;
|
||||
@Autowired
|
||||
private IFormFieldService formFieldService;
|
||||
@Autowired
|
||||
private IFormReportService formReportService;
|
||||
|
||||
private Configuration configuration = new Configuration(Configuration.getVersion());
|
||||
|
||||
@PostConstruct
|
||||
@ -64,12 +69,37 @@ public class FormDesignServiceImpl extends DefaultBaseService implements IFormDe
|
||||
|
||||
String formCode = formDesignVO.getFormCode();
|
||||
Integer version = 1;
|
||||
String formId = null;
|
||||
boolean createNewTable = true;
|
||||
// 时间戳表单编码
|
||||
if (StringUtils.isBlank(formCode)) {
|
||||
formCode = DateUtil.getSdfTimes();
|
||||
} else {
|
||||
// 判断表中是否有数据,有数据就创建新版本
|
||||
Integer latestVersionByCode = formService.getLatestVersionByCode(formCode);
|
||||
version = latestVersionByCode + 1;
|
||||
// 判断表是否存在
|
||||
FormPO formPO = formService.getPOByCodeAndVersion(formCode, latestVersionByCode);
|
||||
Integer dynamicCount = formService.countDynamicTable(formPO.getFormTableName());
|
||||
if (dynamicCount > 0) {
|
||||
Integer count = formReportService.count(formPO.getFormTableName());
|
||||
if (count == 0) {
|
||||
createNewTable = false;
|
||||
formId = formPO.getFormId();
|
||||
// 删列
|
||||
formFieldService.deleteByFormIds(Arrays.asList(formPO.getFormId()));
|
||||
// 删表
|
||||
formService.deleteTable(formPO.getFormTableName(), false);
|
||||
} else {
|
||||
version = latestVersionByCode + 1;
|
||||
}
|
||||
} else {
|
||||
LOG.debug("动态表不存在");
|
||||
createNewTable = false;
|
||||
version = latestVersionByCode;
|
||||
formId = formPO.getFormId();
|
||||
// 删列
|
||||
formFieldService.deleteByFormIds(Arrays.asList(formPO.getFormId()));
|
||||
}
|
||||
}
|
||||
|
||||
// df:dynamicForm 动态表单
|
||||
@ -103,13 +133,17 @@ public class FormDesignServiceImpl extends DefaultBaseService implements IFormDe
|
||||
formVO.setAppUpdatePageCode(getAppUpdatePageCode(model, formDesignVO.getFormType()));
|
||||
formVO.setAppShowPageCode(getAppShowPageCode(model, formDesignVO.getFormType()));
|
||||
|
||||
String formId = formService.saveReturnId(formVO);
|
||||
if (createNewTable) {
|
||||
formId = formService.saveReturnId(formVO);
|
||||
} else {
|
||||
formService.update(formId, formVO);
|
||||
}
|
||||
|
||||
LOG.debug("保存表单字段");
|
||||
formFields.forEach(formFieldVO -> {
|
||||
for(FormFieldVO formFieldVO: formFields) {
|
||||
formFieldVO.setFormId(formId);
|
||||
formFieldService.save(formFieldVO);
|
||||
});
|
||||
}
|
||||
|
||||
LOG.debug("建表");
|
||||
String createTableSQL = getCreateTableSQL(tableName, formDesignVO.getFormName(), formFields);
|
||||
@ -129,11 +163,6 @@ public class FormDesignServiceImpl extends DefaultBaseService implements IFormDe
|
||||
model.put(ISystemConstant.FORM_HIDDEN_INPUT_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||
model.put(ISystemConstant.FORM_COMMIT_PARAM_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||
model.put(ISystemConstant.FORM_TYPE, formType);
|
||||
} else if(StringUtils.equals(FormTypeEnum.FREE_REPORT.getValue(), formType)) {
|
||||
model.put(ISystemConstant.FORM_COMMIT_URL, "api/form-report-public/save/code/{formCode}/version/{formVersion}");
|
||||
model.put(ISystemConstant.FORM_HIDDEN_INPUT_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||
model.put(ISystemConstant.FORM_COMMIT_PARAM_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||
model.put(ISystemConstant.FORM_TYPE, formType);
|
||||
} else if (StringUtils.equals(FormTypeEnum.OA.getValue(), formType)) {
|
||||
model.put(ISystemConstant.FORM_COMMIT_URL, "api/oa-form-report/save/definition-id/{processDefinitionId}/code/{formCode}/version/{formVersion}");
|
||||
model.put(ISystemConstant.FORM_HIDDEN_INPUT_LIST, Arrays.asList(new String[]{"processDefinitionId", "formCode", "formVersion"}));
|
||||
@ -158,7 +187,7 @@ public class FormDesignServiceImpl extends DefaultBaseService implements IFormDe
|
||||
model.put(ISystemConstant.FORM_HIDDEN_INPUT_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||
model.put(ISystemConstant.FORM_INIT_URL, "api/form-report/get/code/{formCode}/version/{formVersion}/uid/{uid}");
|
||||
model.put(ISystemConstant.FORM_INIT_PARAM_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||
model.put(ISystemConstant.FORM_COMMIT_URL, "api/form-report/save/code/{formCode}/version/{formVersion}");
|
||||
model.put(ISystemConstant.FORM_COMMIT_URL, "api/form-report/save/code/{formCode}/version/{formVersion}/uid/{uid}");
|
||||
model.put(ISystemConstant.FORM_COMMIT_PARAM_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||
model.put(ISystemConstant.FORM_TYPE, formType);
|
||||
} else if (StringUtils.equals(FormTypeEnum.OA.getValue(), formType)) {
|
||||
@ -236,7 +265,7 @@ public class FormDesignServiceImpl extends DefaultBaseService implements IFormDe
|
||||
model.put(ISystemConstant.FORM_HIDDEN_INPUT_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||
model.put(ISystemConstant.FORM_INIT_URL, "app/form-report/get/code/{formCode}/version/{formVersion}/uid/{uid}");
|
||||
model.put(ISystemConstant.FORM_INIT_PARAM_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||
model.put(ISystemConstant.FORM_COMMIT_URL, "app/form-report/save/code/{formCode}/version/{formVersion}");
|
||||
model.put(ISystemConstant.FORM_COMMIT_URL, "app/form-report/update/code/{formCode}/version/{formVersion}/uid/{uid}");
|
||||
model.put(ISystemConstant.FORM_COMMIT_PARAM_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||
model.put(ISystemConstant.FORM_TYPE, formType);
|
||||
} else if (StringUtils.equals(FormTypeEnum.OA.getValue(), formType)) {
|
||||
|
@ -47,6 +47,13 @@ public class FormFieldServiceImpl extends DefaultBaseService implements IFormFie
|
||||
formFieldDao.delete(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteByFormIds(List<String> formIds) {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("formIds", formIds);
|
||||
formFieldDao.delete(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(String fieldId, FormFieldVO formFieldVO) {
|
||||
Map<String, Object> params = HashMapUtil.beanToMap(formFieldVO);
|
||||
|
@ -9,6 +9,7 @@ import ink.wgink.module.form.dao.design.IFormDao;
|
||||
import ink.wgink.module.form.pojo.dtos.design.FormDTO;
|
||||
import ink.wgink.module.form.pojo.pos.design.FormPO;
|
||||
import ink.wgink.module.form.pojo.vos.design.FormVO;
|
||||
import ink.wgink.module.form.service.design.IFormFieldService;
|
||||
import ink.wgink.module.form.service.design.IFormService;
|
||||
import ink.wgink.module.form.service.report.IFormReportService;
|
||||
import ink.wgink.pojo.ListPage;
|
||||
@ -28,6 +29,8 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
|
||||
private IFormDao formDao;
|
||||
@Autowired
|
||||
private IFormReportService formReportService;
|
||||
@Autowired
|
||||
private IFormFieldService formFieldService;
|
||||
|
||||
@Override
|
||||
public void createDynamicForm(String createTableSQL) {
|
||||
@ -35,7 +38,13 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteTable(String tableName) {
|
||||
public void deleteTable(String tableName, boolean checkExist) {
|
||||
if (checkExist) {
|
||||
Integer count = formDao.countTable(tableName);
|
||||
if (count == 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
StringBuffer sqlSB = new StringBuffer("DROP TABLE `").append(tableName).append("`;");
|
||||
deleteDynamicForm(sqlSB.toString());
|
||||
}
|
||||
@ -75,6 +84,11 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
|
||||
formDao.deleteDynamicFormField(alterFieldSQL);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer countDynamicTable(String tableName) {
|
||||
return formDao.countTable(tableName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void save(FormVO formVO) {
|
||||
saveReturnId(formVO);
|
||||
@ -96,8 +110,10 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
|
||||
|
||||
@Override
|
||||
public void delete(List<String> ids) {
|
||||
// 判断表单是否有数据,有数据不能删除
|
||||
deleteTable(ids);
|
||||
List<FormDTO> formDTOs = listByIds(ids);
|
||||
deleteTable(formDTOs);
|
||||
// 删除列
|
||||
formFieldService.deleteByFormIds(ids);
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("formIds", ids);
|
||||
formDao.delete(params);
|
||||
@ -111,14 +127,18 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
|
||||
formDao.remove(params);
|
||||
}
|
||||
|
||||
private void deleteTable(List<String> ids) {
|
||||
List<FormDTO> formDTOs = listByIds(ids);
|
||||
private void deleteTable(List<FormDTO> formDTOs) {
|
||||
for (FormDTO formDTO : formDTOs) {
|
||||
Integer count = formReportService.count(formDTO.getFormTableName());
|
||||
if (count > 0) {
|
||||
Integer tableCount = countDynamicTable(formDTO.getFormTableName());
|
||||
if (tableCount == 0) {
|
||||
// 表不存在
|
||||
continue;
|
||||
}
|
||||
Integer dataCount = formReportService.count(formDTO.getFormTableName());
|
||||
if (dataCount > 0) {
|
||||
throw new RemoveException(formDTO.getFormTableName() + "表中存在数据,不能删除");
|
||||
}
|
||||
deleteTable(formDTO.getFormTableName());
|
||||
deleteTable(formDTO.getFormTableName(), false);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -35,14 +35,22 @@ public interface IFormReportService {
|
||||
|
||||
void updateByUserId(String userId, String formCode, Integer formVersion, String uid, Map<String, Object> params);
|
||||
|
||||
void updateByCreatorAndModifier(String creator, String modifier, String formCode, Integer formVersion, String uid, Map<String, Object> params);
|
||||
|
||||
void updateProcessInstanceId(String formCode, Integer formVersion, String uid, String processInstanceId);
|
||||
|
||||
Map<String, Object> get(String formCode, Integer formVersion, String uid);
|
||||
|
||||
Map<String, Object> getByUserId(String userId, String formCode, Integer formVersion, String uid);
|
||||
|
||||
List<Map<String, Object>> list(String formCode, Integer formVersion, Map<String, Object> params);
|
||||
|
||||
List<Map<String, Object>> listByUserId(String userId, String formCode, Integer formVersion, Map<String, Object> params);
|
||||
|
||||
SuccessResultList<List<Map<String, Object>>> listPage(String formCode, Integer formVersion, ListPage page);
|
||||
|
||||
SuccessResultList<List<Map<String, Object>>> listPageByUserId(String userId, String formCode, Integer formVersion, ListPage page);
|
||||
|
||||
SuccessResultList<List<Map<String, Object>>> listPageAllField(String formCode, Integer formVersion, ListPage page);
|
||||
|
||||
List<String> listShowField(String formCode, Integer formVersion);
|
||||
|
@ -132,6 +132,11 @@ public class FormReportServiceImpl extends DefaultBaseService implements IFormRe
|
||||
|
||||
@Override
|
||||
public void updateByUserId(String userId, String formCode, Integer formVersion, String uid, Map<String, Object> params) {
|
||||
updateByCreatorAndModifier(null, userId, formCode, formVersion, uid, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateByCreatorAndModifier(String creator, String modifier, String formCode, Integer formVersion, String uid, Map<String, Object> params) {
|
||||
FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion);
|
||||
checkForm(formPO);
|
||||
|
||||
@ -143,13 +148,14 @@ public class FormReportServiceImpl extends DefaultBaseService implements IFormRe
|
||||
kvList.add(Arrays.asList(new String[]{kv.getKey(), "" + kv.getValue()}));
|
||||
}
|
||||
kvList.add(Arrays.asList(new String[]{IFormDesignService.FIELD_GMT_MODIFIED, DateUtil.getTime()}));
|
||||
kvList.add(Arrays.asList(new String[]{IFormDesignService.FIELD_MODIFIER, userId}));
|
||||
kvList.add(Arrays.asList(new String[]{IFormDesignService.FIELD_MODIFIER, modifier}));
|
||||
|
||||
Map<String, Object> updateParams = getHashMap((params.size() + 3) * 2);
|
||||
updateParams.put(IFormDesignService.FIELD_UID, uid);
|
||||
updateParams.put(IFormDesignService.PARAM_KV_LIST, kvList);
|
||||
updateParams.put(IFormDesignService.PARAM_FORM_CODE, formCode);
|
||||
updateParams.put(IFormDesignService.PARAM_FORM_VERSION, formVersion);
|
||||
updateParams.put(IFormDesignService.FIELD_CREATOR, creator);
|
||||
|
||||
formReportDao.update(updateParams);
|
||||
// 更新mainTitle
|
||||
@ -179,8 +185,23 @@ public class FormReportServiceImpl extends DefaultBaseService implements IFormRe
|
||||
return formReportDao.get(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getByUserId(String userId, String formCode, Integer formVersion, String uid) {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put(IFormDesignService.FIELD_UID, uid);
|
||||
params.put(IFormDesignService.PARAM_FORM_CODE, formCode);
|
||||
params.put(IFormDesignService.PARAM_FORM_VERSION, formVersion);
|
||||
params.put(IFormDesignService.FIELD_CREATOR, userId);
|
||||
return formReportDao.get(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> list(String formCode, Integer formVersion, Map<String, Object> params) {
|
||||
return listByUserId(null, formCode, formVersion, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> listByUserId(String userId, String formCode, Integer formVersion, Map<String, Object> params) {
|
||||
FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion);
|
||||
checkForm(formPO);
|
||||
|
||||
@ -190,17 +211,24 @@ public class FormReportServiceImpl extends DefaultBaseService implements IFormRe
|
||||
queryParams.put(IFormDesignService.PARAM_FORM_VERSION, formVersion);
|
||||
queryParams.put(IFormDesignService.PARAM_QUERY_LIST, queryList);
|
||||
queryParams.put(IFormDesignService.PARAM_LIST_SHOW_FIELD, listShowField(formPO));
|
||||
queryParams.put(IFormDesignService.FIELD_CREATOR, userId);
|
||||
|
||||
return formReportDao.list(queryParams);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResultList<List<Map<String, Object>>> listPage(String formCode, Integer formVersion, ListPage page) {
|
||||
return listPageByUserId(null, formCode, formVersion, page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResultList<List<Map<String, Object>>> listPageByUserId(String userId, String formCode, Integer formVersion, ListPage page) {
|
||||
FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion);
|
||||
checkForm(formPO);
|
||||
List<String> queryList = conditionList(page.getParams());
|
||||
Map<String, Object> queryParams = getListQueryParams(formPO, queryList);
|
||||
queryParams.put(IFormDesignService.PARAM_LIST_SHOW_FIELD, listShowField(formPO));
|
||||
queryParams.put(IFormDesignService.FIELD_CREATOR, userId);
|
||||
return listPage(page, queryParams);
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@
|
||||
<delete id="delete" parameterType="map" flushCache="true">
|
||||
DELETE FROM
|
||||
form_field
|
||||
WHERE
|
||||
<where>
|
||||
<if test="fieldIds != null and fieldIds.size > 0">
|
||||
field_id IN
|
||||
<foreach collection="fieldIds" index="index" open="(" separator="," close=")">
|
||||
@ -76,14 +76,17 @@
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="formId != null and formId != ''">
|
||||
AND
|
||||
form_id = #{formId}
|
||||
</if>
|
||||
<if test="formIds != null and formIds.size > 0">
|
||||
AND
|
||||
form_id IN
|
||||
<foreach collection="formIds" index="index" open="(" separator="," close=")">
|
||||
#{formIds[${index}]}
|
||||
</foreach>
|
||||
</if>
|
||||
</where>
|
||||
</delete>
|
||||
|
||||
<!-- 更新字段 -->
|
||||
|
@ -76,26 +76,36 @@
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='表单';
|
||||
</update>
|
||||
|
||||
<!-- 建表 -->
|
||||
<!-- 创建动态表单 -->
|
||||
<update id="createDynamicForm" parameterType="java.lang.String">
|
||||
${_parameter}
|
||||
</update>
|
||||
|
||||
<!-- 建表 -->
|
||||
<!-- 删除表单 -->
|
||||
<update id="deleteDynamicForm" parameterType="java.lang.String">
|
||||
${_parameter}
|
||||
</update>
|
||||
|
||||
<!-- 建表 -->
|
||||
<!-- 更新动态表单字段 -->
|
||||
<update id="updateDynamicFormField" parameterType="java.lang.String">
|
||||
${_parameter}
|
||||
</update>
|
||||
|
||||
<!-- 建表 -->
|
||||
<!-- 删除动态表单字段 -->
|
||||
<update id="deleteDynamicFormField" parameterType="java.lang.String">
|
||||
${_parameter}
|
||||
</update>
|
||||
|
||||
<!-- 查询表数量 -->
|
||||
<select id="countTable" parameterType="java.lang.String" resultType="java.lang.Integer">
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
information_schema.tables
|
||||
WHERE
|
||||
table_name = #{_parameter}
|
||||
</select>
|
||||
|
||||
<!-- 新增表单 -->
|
||||
<insert id="save" parameterType="map" flushCache="true">
|
||||
INSERT INTO form_form(
|
||||
|
@ -39,7 +39,13 @@
|
||||
${item[0]} = '${item[1]}'
|
||||
</foreach>
|
||||
WHERE
|
||||
is_delete = 0
|
||||
AND
|
||||
uid = #{uid}
|
||||
<if test="creator != null and creator != ''">
|
||||
AND
|
||||
creator = #{creator}
|
||||
</if>
|
||||
</update>
|
||||
|
||||
<update id="updateProcessInstanceId" parameterType="map">
|
||||
@ -61,6 +67,10 @@
|
||||
is_delete = 0
|
||||
AND
|
||||
uid = #{uid}
|
||||
<if test="creator != null and creator != ''">
|
||||
AND
|
||||
creator = #{creator}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 列表 -->
|
||||
@ -81,6 +91,10 @@
|
||||
df_${formCode}_v${formVersion}
|
||||
WHERE
|
||||
is_delete = 0
|
||||
<if test="creator != null and creator != ''">
|
||||
AND
|
||||
creator = #{creator}
|
||||
</if>
|
||||
<if test="uids != null and uids.size > 0">
|
||||
AND
|
||||
uid IN
|
||||
|
@ -8,7 +8,7 @@ layui.define(['jquery', 'laydate', 'formUtils'], function(exports) {
|
||||
'<div id="{0}Box" class="layui-form-item {2}" data-id="{0}" data-tag="{1}" data-index="{3}">',
|
||||
' <label class="layui-form-label {0}" style="width: {3}px;"><span style="color:red;">{2}</span>{1}:</label>',
|
||||
' <div class="layui-input-block" style="width:calc({0} - {1}px);margin-left: {1}px;">',
|
||||
' <input id="{1}{0}" name="{0}" lay-verify="{4}" class="layui-input icon-date widget-date {2}" style="line-height: 40px;{2}"></input>',
|
||||
' <input id="{0}" name="{0}" lay-verify="{4}" class="layui-input icon-date widget-date {2}" style="line-height: 40px;{2}">',
|
||||
' </div>',
|
||||
'</div>'
|
||||
];
|
||||
|
@ -11,10 +11,10 @@ layui.define(['jquery', 'upload', 'dialog', 'restajax', 'formUtils'], function(e
|
||||
var HTML_ARRAY = [
|
||||
'<div id="{0}Box" class="layui-form-item {2}" data-id="{0}" data-tag="{1}" data-index="{3}">',
|
||||
' <label class="layui-form-label">{0}:</label>',
|
||||
' <button type="button" class="layui-btn" id="{0}UploadBtn">',
|
||||
' <button type="button" class="layui-btn layui-upload-file-btn" id="{0}UploadBtn">',
|
||||
' 上传图片',
|
||||
' </button>',
|
||||
' <div>',
|
||||
' <div class="upload-image-box">',
|
||||
' <input type="hidden" id="{0}" name="{0}">',
|
||||
' <div class="layui-btn-container" id="{0}FileBox"></div>',
|
||||
' </div>',
|
||||
|
@ -120,11 +120,10 @@ layui.config({
|
||||
' <div class="layui-input-block">',
|
||||
' <select id="formType" name="formType" lay-verify="required">',
|
||||
' <option value="default">默认</option>',
|
||||
' <option value="freeReport">自由上报</option>',
|
||||
' <option value="oa">OA表单</option>',
|
||||
' </select>',
|
||||
' </div>',
|
||||
' <div class="layui-form-mid layui-word-aux">提示:OA表单数据参与OA流程;默认表单中APP的页面校验用户token;自由上报APP不校验token,但校验refer,需要提交时传唯一用户标识“creator”。</div>',
|
||||
' <div class="layui-form-mid layui-word-aux">提示:OA表单数据参与OA流程;默认表单中APP的页面校验用户token,可对接开放接口,不校验token,但需要传userId;</div>',
|
||||
' </div>',
|
||||
' <div class="layui-form-item">',
|
||||
' <label class="layui-form-label">OA标题模板</label>',
|
||||
|
239
module-form/src/main/resources/static/form/css/form-app.css
Normal file
239
module-form/src/main/resources/static/form/css/form-app.css
Normal file
@ -0,0 +1,239 @@
|
||||
.layui-card-body {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
.layui-form-item {
|
||||
margin-bottom: 0px;
|
||||
padding: 15px 0;
|
||||
clear: both;
|
||||
border-top: 1px;
|
||||
border-left: 0;
|
||||
border-right: 0;
|
||||
border-bottom: 0;
|
||||
border-color: #e6e6e6;
|
||||
border-style: solid;
|
||||
text-align: right;
|
||||
}
|
||||
.layui-form-item:first-child {
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
.layui-input-block {
|
||||
border: 0 !important;
|
||||
}
|
||||
.layui-form-item .layui-form-label {
|
||||
border: 0;
|
||||
text-align: left;
|
||||
padding: 8px 0;
|
||||
background-color: #FFF;
|
||||
}
|
||||
.layui-form-pane .layui-input {
|
||||
border: 0;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.layui-form-pane .layui-form-text .layui-textarea {
|
||||
border-width: 0;
|
||||
padding: 0;
|
||||
line-height: 0.3rem;
|
||||
resize: none;
|
||||
}
|
||||
|
||||
.layui-form-item .layui-upload-file-btn {
|
||||
}
|
||||
|
||||
.layui-form-item .upload-image-box {
|
||||
clear: both;
|
||||
width: 100%;
|
||||
padding: 0;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.layui-form-item:last-child {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.layui-btn {
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
.layui-layout-admin .layui-footer {
|
||||
padding: 0.1rem 0;
|
||||
}
|
||||
|
||||
.form-report-foot {
|
||||
padding: 0 !important;
|
||||
}
|
||||
/* 上传图片 */
|
||||
.form-upload-image {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin: 0 0.22rem 0.15rem 0;
|
||||
}
|
||||
|
||||
.form-upload-image:nth-child(3n) {
|
||||
margin: 0 0 0.15rem 0;
|
||||
}
|
||||
|
||||
.form-upload-image:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.form-upload-image img {
|
||||
width: 2.15rem;
|
||||
height: 2.15rem;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
.layui-btn-container {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.form-upload-image .delete-btn {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 上传附件 */
|
||||
.form-upload-file {
|
||||
|
||||
}
|
||||
|
||||
.form-upload-file .operation {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.form-upload-file .delete-btn {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 上传视频 */
|
||||
.form-upload-video {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin: 0.1rem 0.1rem 0 0;
|
||||
}
|
||||
|
||||
.form-upload-video:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.form-upload-video .delete-btn {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 上传音频 */
|
||||
.form-upload-audio {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
margin: 0.1rem 0.1rem 0 0;
|
||||
}
|
||||
|
||||
.form-upload-audio:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.form-upload-audio .delete-btn {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 用户选择 */
|
||||
.select-user {
|
||||
height: 100%;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
.select-user .list {
|
||||
width: 316px;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
max-height: 356px;
|
||||
}
|
||||
|
||||
.select-user .list .item {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
margin: 0 5px;
|
||||
padding: 5px;
|
||||
border-top: 1px solid;
|
||||
border-left: 1px solid;
|
||||
border-right: 1px solid;
|
||||
}
|
||||
|
||||
.select-user .list .item {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
margin: 0 5px;
|
||||
padding: 5px;
|
||||
border-top: 1px dotted;
|
||||
border-left: 1px dotted;
|
||||
border-right: 1px dotted;
|
||||
border-color: silver;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.select-user .active {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
.select-user .list .item:hover {
|
||||
background-color: #f1f1f1;
|
||||
}
|
||||
|
||||
.select-user .list .item:last-child {
|
||||
margin-bottom: 40px;
|
||||
border-bottom: 1px dotted silver;
|
||||
}
|
||||
|
||||
.select-user .list .item .avatar {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.select-user .list .item .avatar img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.select-user .list .item .info {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.select-user .list .item .info .text {
|
||||
width: 200px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.select-user .list .item .checkbox {
|
||||
display: none;
|
||||
margin-left: 5px;
|
||||
font-size: 25px;
|
||||
}
|
||||
|
||||
.select-user .list .active .checkbox {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.select-user .foot {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
padding: 5px 0;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
background-color: #FFF;
|
||||
}
|
@ -10,12 +10,18 @@ function FormUtil(layui, viewer) {
|
||||
|
||||
/**
|
||||
* 初始化图片上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
* @param opt
|
||||
*/
|
||||
this.initUploadImage = function (fieldName, maxCount) {
|
||||
maxCount = maxCount ? parseInt(maxCount) : 9
|
||||
maxCount = maxCount < 0 ? 9 : maxCount;
|
||||
function initUploadImage(opt) {
|
||||
var maxCount = opt.maxCount ? parseInt(opt.maxCount) : 9
|
||||
maxCount = opt.maxCount < 0 ? 9 : opt.maxCount;
|
||||
var fieldName = opt.fieldName;
|
||||
var headers = opt.headers;
|
||||
headers = headers ? headers : {};
|
||||
var isApp = opt.isApp;
|
||||
var isAppRelease = opt.isAppRelease;
|
||||
var isShow = opt.isShow;
|
||||
|
||||
var id = '#' + fieldName;
|
||||
var fileBoxId = id + 'FileBox';
|
||||
var uploadBtnId = id + 'UploadBtn';
|
||||
@ -52,15 +58,28 @@ function FormUtil(layui, viewer) {
|
||||
}
|
||||
|
||||
function addClick() {
|
||||
var layerLoadingIndex;
|
||||
var url = 'api/file/v2/upload-image';
|
||||
if (isApp) {
|
||||
url = 'app/file/v2/upload-image'
|
||||
}
|
||||
if (isAppRelease) {
|
||||
url = 'app/file/v2/upload-image-release'
|
||||
}
|
||||
upload.render({
|
||||
elem: uploadBtnId,
|
||||
url: 'api/file/v2/upload-image',
|
||||
url: url,
|
||||
accept: 'images',
|
||||
acceptMime: 'image/*',
|
||||
field: 'image',
|
||||
exts: 'jpg|png|gif|bmp|jpeg',
|
||||
name: fieldName,
|
||||
headers: headers,
|
||||
before: function (obj) {
|
||||
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
||||
},
|
||||
done: function (res, index, upload) {
|
||||
layer.close(layerLoadingIndex);
|
||||
var name = this.name;
|
||||
var files = $('#' + this.name).val();
|
||||
if (files.length > 0) {
|
||||
@ -73,6 +92,7 @@ function FormUtil(layui, viewer) {
|
||||
});
|
||||
},
|
||||
error: function (index, upload) {
|
||||
layer.close(layerLoadingIndex);
|
||||
layer.msg('文件上传失败');
|
||||
},
|
||||
progress: function (n, elem, res, index) {
|
||||
@ -105,17 +125,92 @@ function FormUtil(layui, viewer) {
|
||||
init(function () {
|
||||
viewerObj[fieldName] = new Viewer(document.getElementById(fieldName + 'FileBox'), {navbar: false});
|
||||
});
|
||||
addClick();
|
||||
|
||||
if (!isShow) {
|
||||
addClick();
|
||||
} else {
|
||||
$(uploadBtnId).hide();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化图片上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
*/
|
||||
this.initUploadImage = function (fieldName, maxCount) {
|
||||
initUploadImage({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: false,
|
||||
isShow: false
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化APP图片上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
* @param headers
|
||||
*/
|
||||
this.initAppUploadImage = function (fieldName, maxCount, headers) {
|
||||
initUploadImage({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: true,
|
||||
isAppRelease: false,
|
||||
isShow: false,
|
||||
headers: headers
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化APP放行图片上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
* @param headers
|
||||
*/
|
||||
this.initAppReleaseUploadImage = function (fieldName, maxCount, headers) {
|
||||
initUploadImage({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: true,
|
||||
isShow: false,
|
||||
headers: headers
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示上传图片
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
*/
|
||||
this.initShowUploadImage = function (fieldName, maxCount) {
|
||||
initUploadImage({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: false,
|
||||
isShow: true
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化文件上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
* @param opt
|
||||
*/
|
||||
this.initUploadFile = function (fieldName, maxCount) {
|
||||
maxCount = maxCount ? parseInt(maxCount) : 3
|
||||
maxCount = maxCount < 0 ? 3 : maxCount;
|
||||
function initUploadFile(opt) {
|
||||
var maxCount = opt.maxCount ? parseInt(opt.maxCount) : 3
|
||||
maxCount = opt.maxCount < 0 ? 3 : opt.maxCount;
|
||||
var fieldName = opt.fieldName;
|
||||
var headers = opt.headers;
|
||||
headers = headers ? headers : {};
|
||||
var isApp = opt.isApp;
|
||||
var isAppRelease = opt.isAppRelease;
|
||||
var isShow = opt.isShow;
|
||||
|
||||
var id = '#' + fieldName;
|
||||
var fileBoxId = id + 'FileBox';
|
||||
var uploadBtnId = id + 'UploadBtn';
|
||||
@ -175,9 +270,17 @@ function FormUtil(layui, viewer) {
|
||||
}
|
||||
|
||||
function addClick() {
|
||||
var layerLoadingIndex;
|
||||
var url = 'api/file/v2/upload-file';
|
||||
if (isApp) {
|
||||
url = 'app/file/v2/upload-file'
|
||||
}
|
||||
if (isAppRelease) {
|
||||
url = 'app/file/v2/upload-file-release'
|
||||
}
|
||||
upload.render({
|
||||
elem: uploadBtnId,
|
||||
url: 'api/file/v2/upload-file',
|
||||
url: url,
|
||||
accept: 'file',
|
||||
acceptMime: [
|
||||
'application/pdf',
|
||||
@ -195,7 +298,12 @@ function FormUtil(layui, viewer) {
|
||||
field: 'file',
|
||||
exts: 'pdf|doc|docx|xls|xlsx|ppt|pptx|wps|txt|rar|zip',
|
||||
name: fieldName,
|
||||
headers: headers,
|
||||
before: function (obj) {
|
||||
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
||||
},
|
||||
done: function (res, index, upload) {
|
||||
layer.close(layerLoadingIndex);
|
||||
var name = this.name;
|
||||
var files = $('#' + this.name).val();
|
||||
if (files.length > 0) {
|
||||
@ -206,6 +314,7 @@ function FormUtil(layui, viewer) {
|
||||
init();
|
||||
},
|
||||
error: function (index, upload) {
|
||||
layer.close(layerLoadingIndex);
|
||||
layer.msg('文件上传失败');
|
||||
},
|
||||
progress: function (n, elem, res, index) {
|
||||
@ -235,21 +344,96 @@ function FormUtil(layui, viewer) {
|
||||
}
|
||||
|
||||
init();
|
||||
addClick();
|
||||
if (!isShow) {
|
||||
addClick();
|
||||
} else {
|
||||
$(uploadBtnId).hide();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化文件上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
*/
|
||||
this.initUploadFile = function (fieldName, maxCount) {
|
||||
initUploadFile({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: false,
|
||||
isShow: false
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化APP文件上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
* @param headers
|
||||
*/
|
||||
this.initAppUploadFile = function (fieldName, maxCount, headers) {
|
||||
initUploadFile({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: true,
|
||||
isAppRelease: false,
|
||||
isShow: false,
|
||||
headers: headers
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化APP放行文件上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
* @param headers
|
||||
*/
|
||||
this.initAppReleaseUploadFile = function (fieldName, maxCount, headers) {
|
||||
initUploadFile({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: true,
|
||||
isShow: false,
|
||||
headers: headers
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示上传文件
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
*/
|
||||
this.initShowUploadFile = function (fieldName, maxCount) {
|
||||
initUploadFile({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: false,
|
||||
isShow: true
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化视频上传
|
||||
* @param fileName
|
||||
* @param maxCount
|
||||
* @param opt
|
||||
*/
|
||||
this.initUploadVideo = function (fileName, maxCount) {
|
||||
maxCount = maxCount ? parseInt(maxCount) : 1
|
||||
maxCount = maxCount < 0 ? 1 : maxCount;
|
||||
var id = '#' + fileName;
|
||||
function initUploadVideo(opt) {
|
||||
var maxCount = opt.maxCount ? parseInt(opt.maxCount) : 1
|
||||
maxCount = opt.maxCount < 0 ? 1 : opt.maxCount;
|
||||
var fieldName = opt.fieldName;
|
||||
var headers = opt.headers;
|
||||
headers = headers ? headers : {};
|
||||
var isApp = opt.isApp;
|
||||
var isAppRelease = opt.isAppRelease;
|
||||
var isShow = opt.isShow;
|
||||
|
||||
var id = '#' + fieldName;
|
||||
var fileBoxId = id + 'FileBox';
|
||||
var uploadBtnId = id + 'UploadBtn';
|
||||
var deleteBtnClass = '.delete-' + fileName + '-btn';
|
||||
var deleteBtnClass = '.delete-' + fieldName + '-btn';
|
||||
|
||||
function init() {
|
||||
var fileIds = $(id).val();
|
||||
@ -262,7 +446,7 @@ function FormUtil(layui, viewer) {
|
||||
' <source src="route/file/download/true/' + fileId + '" type="video/mp4">',
|
||||
' 您的浏览器不支持 video 标签',
|
||||
' </video>',
|
||||
' <a class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-' + fileName + '-btn" href="javascript:void(0);" data-id="' + fileId + '" data-name="' + fileName + '">',
|
||||
' <a class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-' + fieldName + '-btn" href="javascript:void(0);" data-id="' + fileId + '" data-name="' + fieldName + '">',
|
||||
' <i class="fa fa-trash-o"></i>',
|
||||
' </a>',
|
||||
'</div>',
|
||||
@ -282,15 +466,28 @@ function FormUtil(layui, viewer) {
|
||||
}
|
||||
|
||||
function addClick() {
|
||||
var layerLoadingIndex;
|
||||
var url = 'api/file/v2/upload-video';
|
||||
if (isApp) {
|
||||
url = 'app/file/v2/upload-video'
|
||||
}
|
||||
if (isAppRelease) {
|
||||
url = 'app/file/v2/upload-video-release'
|
||||
}
|
||||
upload.render({
|
||||
elem: uploadBtnId,
|
||||
url: 'api/file/v2/upload-video',
|
||||
url: url,
|
||||
accept: 'video',
|
||||
acceptMime: 'video/mp4',
|
||||
exts: 'mp4',
|
||||
field: 'video',
|
||||
name: fileName,
|
||||
name: fieldName,
|
||||
headers: headers,
|
||||
before: function (obj) {
|
||||
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
||||
},
|
||||
done: function (res, index, upload) {
|
||||
layer.close(layerLoadingIndex);
|
||||
var name = this.name;
|
||||
var files = $('#' + this.name).val();
|
||||
if (files.length > 0) {
|
||||
@ -301,6 +498,7 @@ function FormUtil(layui, viewer) {
|
||||
init();
|
||||
},
|
||||
error: function (index, upload) {
|
||||
layer.close(layerLoadingIndex);
|
||||
layer.msg('文件上传失败');
|
||||
},
|
||||
progress: function (n, elem, res, index) {
|
||||
@ -329,21 +527,92 @@ function FormUtil(layui, viewer) {
|
||||
}
|
||||
|
||||
init();
|
||||
addClick();
|
||||
|
||||
if (!isShow) {
|
||||
addClick();
|
||||
} else {
|
||||
$(uploadBtnId).hide();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化音频上传
|
||||
* @param fileName
|
||||
* 初始化视频上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
*/
|
||||
this.initUploadAudio = function (fileName, maxCount) {
|
||||
maxCount = maxCount ? parseInt(maxCount) : 1
|
||||
maxCount = maxCount < 0 ? 1 : maxCount;
|
||||
var id = '#' + fileName;
|
||||
this.initUploadVideo = function (fieldName, maxCount) {
|
||||
initUploadVideo({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: false,
|
||||
isShow: false
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化APP视频上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
* @param headers
|
||||
*/
|
||||
this.initAppUploadVideo = function (fieldName, maxCount, headers) {
|
||||
initUploadVideo({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: true,
|
||||
isAppRelease: false,
|
||||
isShow: false,
|
||||
headers: headers
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化APP放行视频上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
* @param headers
|
||||
*/
|
||||
this.initAppReleaseUploadVideo = function (fieldName, maxCount, headers) {
|
||||
initUploadVideo({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: true,
|
||||
isShow: false,
|
||||
headers: headers
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示上传视频
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
*/
|
||||
this.initShowUploadVideo = function (fieldName, maxCount) {
|
||||
initUploadVideo({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: false,
|
||||
isShow: true
|
||||
});
|
||||
}
|
||||
|
||||
function initUploadAudio(opt) {
|
||||
var maxCount = opt.maxCount ? parseInt(opt.maxCount) : 1
|
||||
maxCount = opt.maxCount < 0 ? 1 : opt.maxCount;
|
||||
var fieldName = opt.fieldName;
|
||||
var headers = opt.headers;
|
||||
headers = headers ? headers : {};
|
||||
var isApp = opt.isApp;
|
||||
var isAppRelease = opt.isAppRelease;
|
||||
var isShow = opt.isShow;
|
||||
|
||||
var id = '#' + fieldName;
|
||||
var fileBoxId = id + 'FileBox';
|
||||
var uploadBtnId = id + 'UploadBtn';
|
||||
var deleteBtnClass = '.delete-' + fileName + '-btn';
|
||||
var deleteBtnClass = '.delete-' + fieldName + '-btn';
|
||||
|
||||
function init() {
|
||||
var fileIds = $(id).val();
|
||||
@ -355,7 +624,7 @@ function FormUtil(layui, viewer) {
|
||||
' <audio src="route/file/download/true/' + fileId + '" controls>',
|
||||
' 您的浏览器不支持 audio 标签。',
|
||||
' </audio>',
|
||||
' <a class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-' + fileName + '-btn" href="javascript:void(0);" data-id="' + fileId + '" data-name="' + fileName + '">',
|
||||
' <a class="layui-btn layui-btn-xs layui-btn-danger delete-btn delete-' + fieldName + '-btn" href="javascript:void(0);" data-id="' + fileId + '" data-name="' + fieldName + '">',
|
||||
' <i class="fa fa-trash-o"></i>',
|
||||
' </a>',
|
||||
'</div>',
|
||||
@ -375,9 +644,17 @@ function FormUtil(layui, viewer) {
|
||||
}
|
||||
|
||||
function addClick() {
|
||||
var layerLoadingIndex;
|
||||
var url = 'api/file/v2/upload-audio';
|
||||
if (isApp) {
|
||||
url = 'app/file/v2/upload-audio'
|
||||
}
|
||||
if (isAppRelease) {
|
||||
url = 'app/file/v2/upload-audio-release'
|
||||
}
|
||||
upload.render({
|
||||
elem: uploadBtnId,
|
||||
url: 'api/file/v2/upload-audio',
|
||||
url: url,
|
||||
accept: 'audio',
|
||||
acceptMime: [
|
||||
'audio/wav',
|
||||
@ -385,8 +662,13 @@ function FormUtil(layui, viewer) {
|
||||
],
|
||||
exts: 'wav|mp3',
|
||||
field: 'audio',
|
||||
name: fileName,
|
||||
name: fieldName,
|
||||
headers: headers,
|
||||
before: function (obj) {
|
||||
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
||||
},
|
||||
done: function (res, index, upload) {
|
||||
layer.close(layerLoadingIndex);
|
||||
var name = this.name;
|
||||
var files = $('#' + this.name).val();
|
||||
if (files.length > 0) {
|
||||
@ -397,6 +679,7 @@ function FormUtil(layui, viewer) {
|
||||
init();
|
||||
},
|
||||
error: function (index, upload) {
|
||||
layer.close(layerLoadingIndex);
|
||||
layer.msg('文件上传失败');
|
||||
},
|
||||
progress: function (n, elem, res, index) {
|
||||
@ -425,7 +708,76 @@ function FormUtil(layui, viewer) {
|
||||
}
|
||||
|
||||
init();
|
||||
addClick();
|
||||
|
||||
if (!isShow) {
|
||||
addClick();
|
||||
} else {
|
||||
$(uploadBtnId).hide();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化音频上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
*/
|
||||
this.initUploadAudio = function (fieldName, maxCount) {
|
||||
initUploadAudio({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: false,
|
||||
isShow: false
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化APP音频上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
* @param headers
|
||||
*/
|
||||
this.initAppUploadAudio = function (fieldName, maxCount, headers) {
|
||||
initUploadAudio({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: true,
|
||||
isAppRelease: false,
|
||||
isShow: false,
|
||||
headers: headers
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化APP放行音频上传
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
* @param headers
|
||||
*/
|
||||
this.initAppReleaseUploadAudio = function (fieldName, maxCount, headers) {
|
||||
initUploadAudio({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: true,
|
||||
isShow: false,
|
||||
headers: headers
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示上传音频
|
||||
* @param fieldName
|
||||
* @param maxCount
|
||||
*/
|
||||
this.initShowUploadAudio = function (fieldName, maxCount) {
|
||||
initUploadAudio({
|
||||
fieldName: fieldName,
|
||||
maxCount: maxCount,
|
||||
isApp: false,
|
||||
isAppRelease: false,
|
||||
isShow: true
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
@ -630,6 +982,7 @@ function FormUtil(layui, viewer) {
|
||||
var boxId = '#' + item.fieldName + 'Box';
|
||||
$(boxId).css('position', 'relative');
|
||||
$(boxId).append('<div style="width: 100%; height: 100%; background-color: #fff0; position: absolute; top: 0; left: 0; cursor: not-allowed;"></div>');
|
||||
$(boxId).filter('input, button, textarea').attr('disabled', 'disabled');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
12
module-form/src/main/resources/static/form/js/rem.js
Normal file
12
module-form/src/main/resources/static/form/js/rem.js
Normal file
@ -0,0 +1,12 @@
|
||||
function setPage() {
|
||||
var html = document.getElementsByTagName('html')[0];
|
||||
var deviceWidth = document.documentElement.clientWidth;
|
||||
var scale = deviceWidth / 750;//psd图上的宽度
|
||||
html.style.fontSize = scale * 100 + 'px';
|
||||
}
|
||||
|
||||
setPage();
|
||||
|
||||
window.onresize = function () {
|
||||
setPage();
|
||||
}
|
@ -12,7 +12,8 @@
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="static/form/css/form.css">
|
||||
<link rel="stylesheet" type="text/css" href="static/form/css/form-app.css?v=1">
|
||||
<script src="static/form/js/rem.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-anim layui-anim-fadein">
|
||||
@ -22,20 +23,18 @@
|
||||
<#list fields as field>
|
||||
${field.html}
|
||||
</#list>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" id="submitFormBtn" class="layui-btn" lay-submit lay-filter="submitForm">提交</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
<div class="layui-layout-admin">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" id="submitFormBtn" class="layui-btn" lay-submit lay-filter="submitForm">提交</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -44,7 +43,7 @@
|
||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||
</#list>
|
||||
</div>
|
||||
<script src="static/form/js/form-util.js"></script>
|
||||
<script src="static/form/js/form-util.js?v=1"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
@ -82,13 +81,13 @@
|
||||
function initData() {
|
||||
<#list fields as field>
|
||||
<#if field.data.tag == 'uploadImage'>
|
||||
formUtil.initUploadImage('${field.data.id}', ${field.data.count});
|
||||
formUtil.initAppUploadImage('${field.data.id}', ${field.data.count}, {token: token});
|
||||
<#elseif field.data.tag == 'uploadFile'>
|
||||
formUtil.initUploadFile('${field.data.id}', ${field.data.count});
|
||||
formUtil.initAppUploadFile('${field.data.id}', ${field.data.count}, {token: token});
|
||||
<#elseif field.data.tag == 'uploadVideo'>
|
||||
formUtil.initUploadVideo('${field.data.id}', ${field.data.count});
|
||||
formUtil.initAppUploadVideo('${field.data.id}', ${field.data.count}, {token: token});
|
||||
<#elseif field.data.tag == 'uploadAudio'>
|
||||
formUtil.initUploadAudio('${field.data.id}', ${field.data.count});
|
||||
formUtil.initAppUploadAudio('${field.data.id}', ${field.data.count}, {token: token});
|
||||
<#elseif field.data.tag == 'date'>
|
||||
formUtil.initDate({
|
||||
id: '${field.data.id}',
|
||||
|
@ -12,7 +12,8 @@
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="static/form/css/form.css">
|
||||
<link rel="stylesheet" type="text/css" href="static/form/css/form-app.css?v=1">
|
||||
<script src="static/form/js/rem.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-anim layui-anim-fadein">
|
||||
@ -22,18 +23,16 @@
|
||||
<#list fields as field>
|
||||
${field.html}
|
||||
</#list>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
<div class="layui-layout-admin">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -42,7 +41,7 @@
|
||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||
</#list>
|
||||
</div>
|
||||
<script src="static/form/js/form-util.js"></script>
|
||||
<script src="static/form/js/form-util.js?v=1"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
@ -65,7 +64,7 @@
|
||||
function initData() {
|
||||
var self = this;
|
||||
var loadLayerIndex;
|
||||
top.restAjax.get(restAjax.path('${initUrl}', [
|
||||
restAjax.get(restAjax.path('${initUrl}', [
|
||||
<#list initParams as initParam>
|
||||
$('#${initParam}').val(),
|
||||
</#list>
|
||||
@ -85,13 +84,13 @@
|
||||
<#if field.data.tag == 'checkbox'>
|
||||
formUtil.initCheckboxData('dataForm', dataFormData['${field.data.id}'], '${field.data.id}');
|
||||
<#elseif field.data.tag == 'uploadImage'>
|
||||
formUtil.initUploadImage('${field.data.id}', ${field.data.count});
|
||||
formUtil.initShowUploadImage('${field.data.id}', ${field.data.count});
|
||||
<#elseif field.data.tag == 'uploadFile'>
|
||||
formUtil.initUploadFile('${field.data.id}', ${field.data.count});
|
||||
formUtil.initShowUploadFile('${field.data.id}', ${field.data.count});
|
||||
<#elseif field.data.tag == 'uploadVideo'>
|
||||
formUtil.initUploadVideo('${field.data.id}', ${field.data.count});
|
||||
formUtil.initShowUploadVideo('${field.data.id}', ${field.data.count});
|
||||
<#elseif field.data.tag == 'uploadAudio'>
|
||||
formUtil.initUploadAudio('${field.data.id}', ${field.data.count});
|
||||
formUtil.initShowUploadAudio('${field.data.id}', ${field.data.count});
|
||||
<#elseif field.data.tag == 'date'>
|
||||
formUtil.initDate({
|
||||
id: '${field.data.id}',
|
||||
@ -106,11 +105,11 @@
|
||||
|
||||
form.render(null, 'dataForm');
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
layer.msg(data.msg);
|
||||
}, function() {
|
||||
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||
loadLayerIndex = layer.msg('加载中...', {icon: 16, time: 0, shade: 0.3});
|
||||
}, function() {
|
||||
top.dialog.close(loadLayerIndex);
|
||||
layer.close(loadLayerIndex);
|
||||
});
|
||||
}
|
||||
initData();
|
||||
|
@ -12,7 +12,8 @@
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
|
||||
<link rel="stylesheet" type="text/css" href="static/form/css/form.css">
|
||||
<link rel="stylesheet" type="text/css" href="static/form/css/form-app.css?v=1">
|
||||
<script src="static/form/js/rem.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-anim layui-anim-fadein">
|
||||
@ -22,20 +23,18 @@
|
||||
<#list fields as field>
|
||||
${field.html}
|
||||
</#list>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" id="submitFormBtn" class="layui-btn" lay-submit lay-filter="submitForm">提交</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
<div class="layui-layout-admin">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" id="submitFormBtn" class="layui-btn" lay-submit lay-filter="submitForm">提交</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -44,7 +43,7 @@
|
||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||
</#list>
|
||||
</div>
|
||||
<script src="static/form/js/form-util.js"></script>
|
||||
<script src="static/form/js/form-util.js?v=1"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
@ -83,7 +82,7 @@
|
||||
function initData() {
|
||||
var self = this;
|
||||
var loadLayerIndex;
|
||||
top.restAjax.get(restAjax.path('${initUrl}', [
|
||||
restAjax.get(restAjax.path('${initUrl}', [
|
||||
<#list initParams as initParam>
|
||||
$('#${initParam}').val(),
|
||||
</#list>
|
||||
@ -103,13 +102,13 @@
|
||||
<#if field.data.tag == 'checkbox'>
|
||||
formUtil.initCheckboxData('dataForm', dataFormData['${field.data.id}'], '${field.data.id}');
|
||||
<#elseif field.data.tag == 'uploadImage'>
|
||||
formUtil.initUploadImage('${field.data.id}', ${field.data.count});
|
||||
formUtil.initAppUploadImage('${field.data.id}', ${field.data.count}, {token: token});
|
||||
<#elseif field.data.tag == 'uploadFile'>
|
||||
formUtil.initUploadFile('${field.data.id}', ${field.data.count});
|
||||
formUtil.initAppUploadFile('${field.data.id}', ${field.data.count}, {token: token});
|
||||
<#elseif field.data.tag == 'uploadVideo'>
|
||||
formUtil.initUploadVideo('${field.data.id}', ${field.data.count});
|
||||
formUtil.initAppUploadVideo('${field.data.id}', ${field.data.count}, {token: token});
|
||||
<#elseif field.data.tag == 'uploadAudio'>
|
||||
formUtil.initUploadAudio('${field.data.id}', ${field.data.count});
|
||||
formUtil.initAppUploadAudio('${field.data.id}', ${field.data.count}, {token: token});
|
||||
<#elseif field.data.tag == 'date'>
|
||||
formUtil.initDate({
|
||||
id: '${field.data.id}',
|
||||
@ -129,11 +128,11 @@
|
||||
formUtil.disableFields(fields);
|
||||
</#if>
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
layer.msg(data.msg);
|
||||
}, function() {
|
||||
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||
loadLayerIndex = layer.msg('加载中...', {icon: 16, time: 0, shade: 0.3});
|
||||
}, function() {
|
||||
top.dialog.close(loadLayerIndex);
|
||||
layer.close(loadLayerIndex);
|
||||
});
|
||||
}
|
||||
initData();
|
||||
@ -241,7 +240,7 @@
|
||||
restAjax.put(restAjax.path('${commitUrl}', [
|
||||
<#list commitParams as commitParam>
|
||||
$('#${commitParam}').val(),
|
||||
</#list>,
|
||||
</#list>
|
||||
uid
|
||||
]), formData.field, {
|
||||
headers: {
|
||||
|
@ -22,20 +22,18 @@
|
||||
<#list fields as field>
|
||||
${field.html}
|
||||
</#list>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" id="submitFormBtn" class="layui-btn" lay-submit lay-filter="submitForm">提交</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
<div class="layui-layout-admin">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" id="submitFormBtn" class="layui-btn" lay-submit lay-filter="submitForm">提交</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -44,7 +42,7 @@
|
||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||
</#list>
|
||||
</div>
|
||||
<script src="static/form/js/form-util.js"></script>
|
||||
<script src="static/form/js/form-util.js?v=1"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
|
@ -22,18 +22,16 @@
|
||||
<#list fields as field>
|
||||
${field.html}
|
||||
</#list>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
<div class="layui-layout-admin">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -42,7 +40,7 @@
|
||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||
</#list>
|
||||
</div>
|
||||
<script src="static/form/js/form-util.js"></script>
|
||||
<script src="static/form/js/form-util.js?v=1"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
@ -64,7 +62,7 @@
|
||||
function initData() {
|
||||
var self = this;
|
||||
var loadLayerIndex;
|
||||
top.restAjax.get(restAjax.path('${initUrl}', [
|
||||
restAjax.get(restAjax.path('${initUrl}', [
|
||||
<#list initParams as initParam>
|
||||
$('#${initParam}').val(),
|
||||
</#list>
|
||||
@ -80,13 +78,13 @@
|
||||
<#if field.data.tag == 'checkbox'>
|
||||
formUtil.initCheckboxData('dataForm', dataFormData['${field.data.id}'], '${field.data.id}');
|
||||
<#elseif field.data.tag == 'uploadImage'>
|
||||
formUtil.initUploadImage('${field.data.id}', ${field.data.count});
|
||||
formUtil.initShowUploadImage('${field.data.id}', ${field.data.count});
|
||||
<#elseif field.data.tag == 'uploadFile'>
|
||||
formUtil.initUploadFile('${field.data.id}', ${field.data.count});
|
||||
formUtil.initShowUploadFile('${field.data.id}', ${field.data.count});
|
||||
<#elseif field.data.tag == 'uploadVideo'>
|
||||
formUtil.initUploadVideo('${field.data.id}', ${field.data.count});
|
||||
formUtil.initShowUploadVideo('${field.data.id}', ${field.data.count});
|
||||
<#elseif field.data.tag == 'uploadAudio'>
|
||||
formUtil.initUploadAudio('${field.data.id}', ${field.data.count});
|
||||
formUtil.initShowUploadAudio('${field.data.id}', ${field.data.count});
|
||||
<#elseif field.data.tag == 'date'>
|
||||
formUtil.initDate({
|
||||
id: '${field.data.id}',
|
||||
@ -101,11 +99,11 @@
|
||||
|
||||
form.render(null, 'dataForm');
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
layer.msg(data.msg);
|
||||
}, function() {
|
||||
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||
loadLayerIndex = layer.msg('加载中...', {icon: 16, time: 0, shade: 0.3});
|
||||
}, function() {
|
||||
top.dialog.close(loadLayerIndex);
|
||||
layer.close(loadLayerIndex);
|
||||
});
|
||||
}
|
||||
initData();
|
||||
|
@ -22,20 +22,18 @@
|
||||
<#list fields as field>
|
||||
${field.html}
|
||||
</#list>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" id="submitFormBtn" class="layui-btn" lay-submit lay-filter="submitForm">提交</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
<div class="layui-layout-admin">
|
||||
<#if formType == "oa">
|
||||
<div class="layui-footer form-report-foot">
|
||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
<#else>
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" id="submitFormBtn" class="layui-btn" lay-submit lay-filter="submitForm">提交</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回</button>
|
||||
</div>
|
||||
</#if>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
@ -44,7 +42,7 @@
|
||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||
</#list>
|
||||
</div>
|
||||
<script src="static/form/js/form-util.js"></script>
|
||||
<script src="static/form/js/form-util.js?v=1"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
@ -82,7 +80,7 @@
|
||||
function initData() {
|
||||
var self = this;
|
||||
var loadLayerIndex;
|
||||
top.restAjax.get(restAjax.path('${initUrl}', [
|
||||
restAjax.get(restAjax.path('${initUrl}', [
|
||||
<#list initParams as initParam>
|
||||
$('#${initParam}').val(),
|
||||
</#list>
|
||||
@ -124,11 +122,11 @@
|
||||
formUtil.disableFields(fields);
|
||||
</#if>
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
layer.msg(data.msg);
|
||||
}, function() {
|
||||
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||
loadLayerIndex = layer.msg('加载中...', {icon: 16, time: 0, shade: 0.3});
|
||||
}, function() {
|
||||
top.dialog.close(loadLayerIndex);
|
||||
layer.close(loadLayerIndex);
|
||||
});
|
||||
}
|
||||
initData();
|
||||
|
Loading…
Reference in New Issue
Block a user