处理表单设计更新逻辑,解决表单上报BUG,新增APP端CSS基础样式
This commit is contained in:
parent
3954a4bb8e
commit
736a5a7b99
@ -37,6 +37,13 @@ public class FormReportAppController extends DefaultBaseController {
|
|||||||
return new SuccessResult();
|
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}")
|
@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) {
|
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("\\_")));
|
formReportService.remove(formCode, formVersion, Arrays.asList(uids.split("\\_")));
|
||||||
@ -50,17 +57,35 @@ public class FormReportAppController extends DefaultBaseController {
|
|||||||
return new SuccessResult();
|
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}")
|
@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) {
|
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);
|
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}")
|
@GetMapping("list/code/{formCode}/version/{formVersion}")
|
||||||
public List<Map<String, Object>> list(@RequestHeader("token") String token, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion) {
|
public List<Map<String, Object>> list(@RequestHeader("token") String token, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion) {
|
||||||
Map<String, Object> params = requestParams();
|
Map<String, Object> params = requestParams();
|
||||||
return formReportService.list(formCode, formVersion, params);
|
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}")
|
@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) {
|
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();
|
Map<String, Object> params = requestParams();
|
||||||
@ -68,6 +93,13 @@ public class FormReportAppController extends DefaultBaseController {
|
|||||||
return formReportService.listPage(formCode, formVersion, page);
|
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}")
|
@GetMapping("list-show-field/code/{formCode}/version/{formVersion}")
|
||||||
public List<String> listShowField(@RequestHeader("token") String token, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion) {
|
public List<String> listShowField(@RequestHeader("token") String token, @PathVariable("formCode") String formCode, @PathVariable("formVersion") Integer formVersion) {
|
||||||
return formReportService.listShowField(formCode, formVersion);
|
return formReportService.listShowField(formCode, formVersion);
|
||||||
|
@ -23,6 +23,8 @@ public interface IFormDao extends IInitBaseTable {
|
|||||||
|
|
||||||
void deleteDynamicFormField(String alterFieldSQL) throws RemoveException;
|
void deleteDynamicFormField(String alterFieldSQL) throws RemoveException;
|
||||||
|
|
||||||
|
Integer countTable(String tableName) throws SearchException;
|
||||||
|
|
||||||
void save(Map<String, Object> params) throws SaveException;
|
void save(Map<String, Object> params) throws SaveException;
|
||||||
|
|
||||||
void delete(Map<String, Object> params) throws RemoveException;
|
void delete(Map<String, Object> params) throws RemoveException;
|
||||||
|
@ -9,7 +9,6 @@ package ink.wgink.module.form.enums.design;
|
|||||||
*/
|
*/
|
||||||
public enum FormTypeEnum {
|
public enum FormTypeEnum {
|
||||||
DEFAULT("default", "默认"),
|
DEFAULT("default", "默认"),
|
||||||
FREE_REPORT("freeReport", "自由上报"),
|
|
||||||
OA("oa", "OA");
|
OA("oa", "OA");
|
||||||
|
|
||||||
private String value;
|
private String value;
|
||||||
|
@ -34,6 +34,13 @@ public interface IFormFieldService {
|
|||||||
*/
|
*/
|
||||||
void delete(List<String> ids);
|
void delete(List<String> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除
|
||||||
|
*
|
||||||
|
* @param formIds 表单ID
|
||||||
|
*/
|
||||||
|
void deleteByFormIds(List<String> formIds);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 修改
|
* 修改
|
||||||
*
|
*
|
||||||
@ -131,4 +138,5 @@ public interface IFormFieldService {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<String> listFieldNameByFormIdAndListShow(String formId, Boolean isListShow);
|
List<String> listFieldNameByFormIdAndListShow(String formId, Boolean isListShow);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,13 @@ public interface IFormService {
|
|||||||
*/
|
*/
|
||||||
void createDynamicForm(String createTableSQL);
|
void createDynamicForm(String createTableSQL);
|
||||||
|
|
||||||
void deleteTable(String tableName);
|
/**
|
||||||
|
* 删除表
|
||||||
|
*
|
||||||
|
* @param tableName
|
||||||
|
* @param checkExist 判断是否存在
|
||||||
|
*/
|
||||||
|
void deleteTable(String tableName, boolean checkExist);
|
||||||
|
|
||||||
void deleteDynamicForm(String deleteTableSQL);
|
void deleteDynamicForm(String deleteTableSQL);
|
||||||
|
|
||||||
@ -30,6 +36,8 @@ public interface IFormService {
|
|||||||
|
|
||||||
void deleteDynamicFormField(String alterFieldSQL);
|
void deleteDynamicFormField(String alterFieldSQL);
|
||||||
|
|
||||||
|
Integer countDynamicTable(String tableName);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增
|
* 新增
|
||||||
*
|
*
|
||||||
@ -53,6 +61,7 @@ public interface IFormService {
|
|||||||
*/
|
*/
|
||||||
void delete(List<String> ids);
|
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.FormFieldTypeEnum;
|
||||||
import ink.wgink.module.form.enums.design.FormStatusEnum;
|
import ink.wgink.module.form.enums.design.FormStatusEnum;
|
||||||
import ink.wgink.module.form.enums.design.FormTypeEnum;
|
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.FormDesignVO;
|
||||||
import ink.wgink.module.form.pojo.vos.design.FormFieldVO;
|
import ink.wgink.module.form.pojo.vos.design.FormFieldVO;
|
||||||
import ink.wgink.module.form.pojo.vos.design.FormVO;
|
import ink.wgink.module.form.pojo.vos.design.FormVO;
|
||||||
import ink.wgink.module.form.service.design.IFormDesignService;
|
import ink.wgink.module.form.service.design.IFormDesignService;
|
||||||
import ink.wgink.module.form.service.design.IFormFieldService;
|
import ink.wgink.module.form.service.design.IFormFieldService;
|
||||||
import ink.wgink.module.form.service.design.IFormService;
|
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.HtmlHelper;
|
||||||
import ink.wgink.util.date.DateUtil;
|
import ink.wgink.util.date.DateUtil;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@ -47,6 +49,9 @@ public class FormDesignServiceImpl extends DefaultBaseService implements IFormDe
|
|||||||
private IFormService formService;
|
private IFormService formService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IFormFieldService formFieldService;
|
private IFormFieldService formFieldService;
|
||||||
|
@Autowired
|
||||||
|
private IFormReportService formReportService;
|
||||||
|
|
||||||
private Configuration configuration = new Configuration(Configuration.getVersion());
|
private Configuration configuration = new Configuration(Configuration.getVersion());
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
@ -64,13 +69,38 @@ public class FormDesignServiceImpl extends DefaultBaseService implements IFormDe
|
|||||||
|
|
||||||
String formCode = formDesignVO.getFormCode();
|
String formCode = formDesignVO.getFormCode();
|
||||||
Integer version = 1;
|
Integer version = 1;
|
||||||
|
String formId = null;
|
||||||
|
boolean createNewTable = true;
|
||||||
// 时间戳表单编码
|
// 时间戳表单编码
|
||||||
if (StringUtils.isBlank(formCode)) {
|
if (StringUtils.isBlank(formCode)) {
|
||||||
formCode = DateUtil.getSdfTimes();
|
formCode = DateUtil.getSdfTimes();
|
||||||
} else {
|
} else {
|
||||||
|
// 判断表中是否有数据,有数据就创建新版本
|
||||||
Integer latestVersionByCode = formService.getLatestVersionByCode(formCode);
|
Integer latestVersionByCode = formService.getLatestVersionByCode(formCode);
|
||||||
|
// 判断表是否存在
|
||||||
|
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;
|
version = latestVersionByCode + 1;
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
LOG.debug("动态表不存在");
|
||||||
|
createNewTable = false;
|
||||||
|
version = latestVersionByCode;
|
||||||
|
formId = formPO.getFormId();
|
||||||
|
// 删列
|
||||||
|
formFieldService.deleteByFormIds(Arrays.asList(formPO.getFormId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// df:dynamicForm 动态表单
|
// df:dynamicForm 动态表单
|
||||||
String tableName = "df_" + formCode + "_v" + version;
|
String tableName = "df_" + formCode + "_v" + version;
|
||||||
@ -103,13 +133,17 @@ public class FormDesignServiceImpl extends DefaultBaseService implements IFormDe
|
|||||||
formVO.setAppUpdatePageCode(getAppUpdatePageCode(model, formDesignVO.getFormType()));
|
formVO.setAppUpdatePageCode(getAppUpdatePageCode(model, formDesignVO.getFormType()));
|
||||||
formVO.setAppShowPageCode(getAppShowPageCode(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("保存表单字段");
|
LOG.debug("保存表单字段");
|
||||||
formFields.forEach(formFieldVO -> {
|
for(FormFieldVO formFieldVO: formFields) {
|
||||||
formFieldVO.setFormId(formId);
|
formFieldVO.setFormId(formId);
|
||||||
formFieldService.save(formFieldVO);
|
formFieldService.save(formFieldVO);
|
||||||
});
|
}
|
||||||
|
|
||||||
LOG.debug("建表");
|
LOG.debug("建表");
|
||||||
String createTableSQL = getCreateTableSQL(tableName, formDesignVO.getFormName(), formFields);
|
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_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_COMMIT_PARAM_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||||
model.put(ISystemConstant.FORM_TYPE, formType);
|
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)) {
|
} 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_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"}));
|
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_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_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_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_COMMIT_PARAM_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||||
model.put(ISystemConstant.FORM_TYPE, formType);
|
model.put(ISystemConstant.FORM_TYPE, formType);
|
||||||
} else if (StringUtils.equals(FormTypeEnum.OA.getValue(), 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_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_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_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_COMMIT_PARAM_LIST, Arrays.asList(new String[]{"formCode", "formVersion"}));
|
||||||
model.put(ISystemConstant.FORM_TYPE, formType);
|
model.put(ISystemConstant.FORM_TYPE, formType);
|
||||||
} else if (StringUtils.equals(FormTypeEnum.OA.getValue(), formType)) {
|
} else if (StringUtils.equals(FormTypeEnum.OA.getValue(), formType)) {
|
||||||
|
@ -47,6 +47,13 @@ public class FormFieldServiceImpl extends DefaultBaseService implements IFormFie
|
|||||||
formFieldDao.delete(params);
|
formFieldDao.delete(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteByFormIds(List<String> formIds) {
|
||||||
|
Map<String, Object> params = getHashMap(2);
|
||||||
|
params.put("formIds", formIds);
|
||||||
|
formFieldDao.delete(params);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void update(String fieldId, FormFieldVO formFieldVO) {
|
public void update(String fieldId, FormFieldVO formFieldVO) {
|
||||||
Map<String, Object> params = HashMapUtil.beanToMap(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.dtos.design.FormDTO;
|
||||||
import ink.wgink.module.form.pojo.pos.design.FormPO;
|
import ink.wgink.module.form.pojo.pos.design.FormPO;
|
||||||
import ink.wgink.module.form.pojo.vos.design.FormVO;
|
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.design.IFormService;
|
||||||
import ink.wgink.module.form.service.report.IFormReportService;
|
import ink.wgink.module.form.service.report.IFormReportService;
|
||||||
import ink.wgink.pojo.ListPage;
|
import ink.wgink.pojo.ListPage;
|
||||||
@ -28,6 +29,8 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
|
|||||||
private IFormDao formDao;
|
private IFormDao formDao;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IFormReportService formReportService;
|
private IFormReportService formReportService;
|
||||||
|
@Autowired
|
||||||
|
private IFormFieldService formFieldService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void createDynamicForm(String createTableSQL) {
|
public void createDynamicForm(String createTableSQL) {
|
||||||
@ -35,7 +38,13 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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("`;");
|
StringBuffer sqlSB = new StringBuffer("DROP TABLE `").append(tableName).append("`;");
|
||||||
deleteDynamicForm(sqlSB.toString());
|
deleteDynamicForm(sqlSB.toString());
|
||||||
}
|
}
|
||||||
@ -75,6 +84,11 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
|
|||||||
formDao.deleteDynamicFormField(alterFieldSQL);
|
formDao.deleteDynamicFormField(alterFieldSQL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer countDynamicTable(String tableName) {
|
||||||
|
return formDao.countTable(tableName);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void save(FormVO formVO) {
|
public void save(FormVO formVO) {
|
||||||
saveReturnId(formVO);
|
saveReturnId(formVO);
|
||||||
@ -96,8 +110,10 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void delete(List<String> ids) {
|
public void delete(List<String> ids) {
|
||||||
// 判断表单是否有数据,有数据不能删除
|
List<FormDTO> formDTOs = listByIds(ids);
|
||||||
deleteTable(ids);
|
deleteTable(formDTOs);
|
||||||
|
// 删除列
|
||||||
|
formFieldService.deleteByFormIds(ids);
|
||||||
Map<String, Object> params = getHashMap(2);
|
Map<String, Object> params = getHashMap(2);
|
||||||
params.put("formIds", ids);
|
params.put("formIds", ids);
|
||||||
formDao.delete(params);
|
formDao.delete(params);
|
||||||
@ -111,14 +127,18 @@ public class FormServiceImpl extends DefaultBaseService implements IFormService
|
|||||||
formDao.remove(params);
|
formDao.remove(params);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteTable(List<String> ids) {
|
private void deleteTable(List<FormDTO> formDTOs) {
|
||||||
List<FormDTO> formDTOs = listByIds(ids);
|
|
||||||
for (FormDTO formDTO : formDTOs) {
|
for (FormDTO formDTO : formDTOs) {
|
||||||
Integer count = formReportService.count(formDTO.getFormTableName());
|
Integer tableCount = countDynamicTable(formDTO.getFormTableName());
|
||||||
if (count > 0) {
|
if (tableCount == 0) {
|
||||||
|
// 表不存在
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
Integer dataCount = formReportService.count(formDTO.getFormTableName());
|
||||||
|
if (dataCount > 0) {
|
||||||
throw new RemoveException(formDTO.getFormTableName() + "表中存在数据,不能删除");
|
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 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);
|
void updateProcessInstanceId(String formCode, Integer formVersion, String uid, String processInstanceId);
|
||||||
|
|
||||||
Map<String, Object> get(String formCode, Integer formVersion, String uid);
|
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>> 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>>> 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);
|
SuccessResultList<List<Map<String, Object>>> listPageAllField(String formCode, Integer formVersion, ListPage page);
|
||||||
|
|
||||||
List<String> listShowField(String formCode, Integer formVersion);
|
List<String> listShowField(String formCode, Integer formVersion);
|
||||||
|
@ -132,6 +132,11 @@ public class FormReportServiceImpl extends DefaultBaseService implements IFormRe
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateByUserId(String userId, String formCode, Integer formVersion, String uid, Map<String, Object> params) {
|
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);
|
FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion);
|
||||||
checkForm(formPO);
|
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[]{kv.getKey(), "" + kv.getValue()}));
|
||||||
}
|
}
|
||||||
kvList.add(Arrays.asList(new String[]{IFormDesignService.FIELD_GMT_MODIFIED, DateUtil.getTime()}));
|
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);
|
Map<String, Object> updateParams = getHashMap((params.size() + 3) * 2);
|
||||||
updateParams.put(IFormDesignService.FIELD_UID, uid);
|
updateParams.put(IFormDesignService.FIELD_UID, uid);
|
||||||
updateParams.put(IFormDesignService.PARAM_KV_LIST, kvList);
|
updateParams.put(IFormDesignService.PARAM_KV_LIST, kvList);
|
||||||
updateParams.put(IFormDesignService.PARAM_FORM_CODE, formCode);
|
updateParams.put(IFormDesignService.PARAM_FORM_CODE, formCode);
|
||||||
updateParams.put(IFormDesignService.PARAM_FORM_VERSION, formVersion);
|
updateParams.put(IFormDesignService.PARAM_FORM_VERSION, formVersion);
|
||||||
|
updateParams.put(IFormDesignService.FIELD_CREATOR, creator);
|
||||||
|
|
||||||
formReportDao.update(updateParams);
|
formReportDao.update(updateParams);
|
||||||
// 更新mainTitle
|
// 更新mainTitle
|
||||||
@ -179,8 +185,23 @@ public class FormReportServiceImpl extends DefaultBaseService implements IFormRe
|
|||||||
return formReportDao.get(params);
|
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
|
@Override
|
||||||
public List<Map<String, Object>> list(String formCode, Integer formVersion, Map<String, Object> params) {
|
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);
|
FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion);
|
||||||
checkForm(formPO);
|
checkForm(formPO);
|
||||||
|
|
||||||
@ -190,17 +211,24 @@ public class FormReportServiceImpl extends DefaultBaseService implements IFormRe
|
|||||||
queryParams.put(IFormDesignService.PARAM_FORM_VERSION, formVersion);
|
queryParams.put(IFormDesignService.PARAM_FORM_VERSION, formVersion);
|
||||||
queryParams.put(IFormDesignService.PARAM_QUERY_LIST, queryList);
|
queryParams.put(IFormDesignService.PARAM_QUERY_LIST, queryList);
|
||||||
queryParams.put(IFormDesignService.PARAM_LIST_SHOW_FIELD, listShowField(formPO));
|
queryParams.put(IFormDesignService.PARAM_LIST_SHOW_FIELD, listShowField(formPO));
|
||||||
|
queryParams.put(IFormDesignService.FIELD_CREATOR, userId);
|
||||||
|
|
||||||
return formReportDao.list(queryParams);
|
return formReportDao.list(queryParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SuccessResultList<List<Map<String, Object>>> listPage(String formCode, Integer formVersion, ListPage page) {
|
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);
|
FormPO formPO = formService.getPOByCodeAndVersion(formCode, formVersion);
|
||||||
checkForm(formPO);
|
checkForm(formPO);
|
||||||
List<String> queryList = conditionList(page.getParams());
|
List<String> queryList = conditionList(page.getParams());
|
||||||
Map<String, Object> queryParams = getListQueryParams(formPO, queryList);
|
Map<String, Object> queryParams = getListQueryParams(formPO, queryList);
|
||||||
queryParams.put(IFormDesignService.PARAM_LIST_SHOW_FIELD, listShowField(formPO));
|
queryParams.put(IFormDesignService.PARAM_LIST_SHOW_FIELD, listShowField(formPO));
|
||||||
|
queryParams.put(IFormDesignService.FIELD_CREATOR, userId);
|
||||||
return listPage(page, queryParams);
|
return listPage(page, queryParams);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@
|
|||||||
<delete id="delete" parameterType="map" flushCache="true">
|
<delete id="delete" parameterType="map" flushCache="true">
|
||||||
DELETE FROM
|
DELETE FROM
|
||||||
form_field
|
form_field
|
||||||
WHERE
|
<where>
|
||||||
<if test="fieldIds != null and fieldIds.size > 0">
|
<if test="fieldIds != null and fieldIds.size > 0">
|
||||||
field_id IN
|
field_id IN
|
||||||
<foreach collection="fieldIds" index="index" open="(" separator="," close=")">
|
<foreach collection="fieldIds" index="index" open="(" separator="," close=")">
|
||||||
@ -76,14 +76,17 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
<if test="formId != null and formId != ''">
|
<if test="formId != null and formId != ''">
|
||||||
|
AND
|
||||||
form_id = #{formId}
|
form_id = #{formId}
|
||||||
</if>
|
</if>
|
||||||
<if test="formIds != null and formIds.size > 0">
|
<if test="formIds != null and formIds.size > 0">
|
||||||
|
AND
|
||||||
form_id IN
|
form_id IN
|
||||||
<foreach collection="formIds" index="index" open="(" separator="," close=")">
|
<foreach collection="formIds" index="index" open="(" separator="," close=")">
|
||||||
#{formIds[${index}]}
|
#{formIds[${index}]}
|
||||||
</foreach>
|
</foreach>
|
||||||
</if>
|
</if>
|
||||||
|
</where>
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<!-- 更新字段 -->
|
<!-- 更新字段 -->
|
||||||
|
@ -76,26 +76,36 @@
|
|||||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='表单';
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='表单';
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 建表 -->
|
<!-- 创建动态表单 -->
|
||||||
<update id="createDynamicForm" parameterType="java.lang.String">
|
<update id="createDynamicForm" parameterType="java.lang.String">
|
||||||
${_parameter}
|
${_parameter}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 建表 -->
|
<!-- 删除表单 -->
|
||||||
<update id="deleteDynamicForm" parameterType="java.lang.String">
|
<update id="deleteDynamicForm" parameterType="java.lang.String">
|
||||||
${_parameter}
|
${_parameter}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 建表 -->
|
<!-- 更新动态表单字段 -->
|
||||||
<update id="updateDynamicFormField" parameterType="java.lang.String">
|
<update id="updateDynamicFormField" parameterType="java.lang.String">
|
||||||
${_parameter}
|
${_parameter}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 建表 -->
|
<!-- 删除动态表单字段 -->
|
||||||
<update id="deleteDynamicFormField" parameterType="java.lang.String">
|
<update id="deleteDynamicFormField" parameterType="java.lang.String">
|
||||||
${_parameter}
|
${_parameter}
|
||||||
</update>
|
</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 id="save" parameterType="map" flushCache="true">
|
||||||
INSERT INTO form_form(
|
INSERT INTO form_form(
|
||||||
|
@ -39,7 +39,13 @@
|
|||||||
${item[0]} = '${item[1]}'
|
${item[0]} = '${item[1]}'
|
||||||
</foreach>
|
</foreach>
|
||||||
WHERE
|
WHERE
|
||||||
|
is_delete = 0
|
||||||
|
AND
|
||||||
uid = #{uid}
|
uid = #{uid}
|
||||||
|
<if test="creator != null and creator != ''">
|
||||||
|
AND
|
||||||
|
creator = #{creator}
|
||||||
|
</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<update id="updateProcessInstanceId" parameterType="map">
|
<update id="updateProcessInstanceId" parameterType="map">
|
||||||
@ -61,6 +67,10 @@
|
|||||||
is_delete = 0
|
is_delete = 0
|
||||||
AND
|
AND
|
||||||
uid = #{uid}
|
uid = #{uid}
|
||||||
|
<if test="creator != null and creator != ''">
|
||||||
|
AND
|
||||||
|
creator = #{creator}
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 列表 -->
|
<!-- 列表 -->
|
||||||
@ -81,6 +91,10 @@
|
|||||||
df_${formCode}_v${formVersion}
|
df_${formCode}_v${formVersion}
|
||||||
WHERE
|
WHERE
|
||||||
is_delete = 0
|
is_delete = 0
|
||||||
|
<if test="creator != null and creator != ''">
|
||||||
|
AND
|
||||||
|
creator = #{creator}
|
||||||
|
</if>
|
||||||
<if test="uids != null and uids.size > 0">
|
<if test="uids != null and uids.size > 0">
|
||||||
AND
|
AND
|
||||||
uid IN
|
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}">',
|
'<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>',
|
' <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;">',
|
' <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>',
|
||||||
'</div>'
|
'</div>'
|
||||||
];
|
];
|
||||||
|
@ -11,10 +11,10 @@ layui.define(['jquery', 'upload', 'dialog', 'restajax', 'formUtils'], function(e
|
|||||||
var HTML_ARRAY = [
|
var HTML_ARRAY = [
|
||||||
'<div id="{0}Box" class="layui-form-item {2}" data-id="{0}" data-tag="{1}" data-index="{3}">',
|
'<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>',
|
' <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>',
|
' </button>',
|
||||||
' <div>',
|
' <div class="upload-image-box">',
|
||||||
' <input type="hidden" id="{0}" name="{0}">',
|
' <input type="hidden" id="{0}" name="{0}">',
|
||||||
' <div class="layui-btn-container" id="{0}FileBox"></div>',
|
' <div class="layui-btn-container" id="{0}FileBox"></div>',
|
||||||
' </div>',
|
' </div>',
|
||||||
|
@ -120,11 +120,10 @@ layui.config({
|
|||||||
' <div class="layui-input-block">',
|
' <div class="layui-input-block">',
|
||||||
' <select id="formType" name="formType" lay-verify="required">',
|
' <select id="formType" name="formType" lay-verify="required">',
|
||||||
' <option value="default">默认</option>',
|
' <option value="default">默认</option>',
|
||||||
' <option value="freeReport">自由上报</option>',
|
|
||||||
' <option value="oa">OA表单</option>',
|
' <option value="oa">OA表单</option>',
|
||||||
' </select>',
|
' </select>',
|
||||||
' </div>',
|
' </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>',
|
||||||
' <div class="layui-form-item">',
|
' <div class="layui-form-item">',
|
||||||
' <label class="layui-form-label">OA标题模板</label>',
|
' <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 opt
|
||||||
* @param maxCount
|
|
||||||
*/
|
*/
|
||||||
this.initUploadImage = function (fieldName, maxCount) {
|
function initUploadImage(opt) {
|
||||||
maxCount = maxCount ? parseInt(maxCount) : 9
|
var maxCount = opt.maxCount ? parseInt(opt.maxCount) : 9
|
||||||
maxCount = maxCount < 0 ? 9 : maxCount;
|
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 id = '#' + fieldName;
|
||||||
var fileBoxId = id + 'FileBox';
|
var fileBoxId = id + 'FileBox';
|
||||||
var uploadBtnId = id + 'UploadBtn';
|
var uploadBtnId = id + 'UploadBtn';
|
||||||
@ -52,15 +58,28 @@ function FormUtil(layui, viewer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function addClick() {
|
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({
|
upload.render({
|
||||||
elem: uploadBtnId,
|
elem: uploadBtnId,
|
||||||
url: 'api/file/v2/upload-image',
|
url: url,
|
||||||
accept: 'images',
|
accept: 'images',
|
||||||
acceptMime: 'image/*',
|
acceptMime: 'image/*',
|
||||||
field: 'image',
|
field: 'image',
|
||||||
exts: 'jpg|png|gif|bmp|jpeg',
|
exts: 'jpg|png|gif|bmp|jpeg',
|
||||||
name: fieldName,
|
name: fieldName,
|
||||||
|
headers: headers,
|
||||||
|
before: function (obj) {
|
||||||
|
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
||||||
|
},
|
||||||
done: function (res, index, upload) {
|
done: function (res, index, upload) {
|
||||||
|
layer.close(layerLoadingIndex);
|
||||||
var name = this.name;
|
var name = this.name;
|
||||||
var files = $('#' + this.name).val();
|
var files = $('#' + this.name).val();
|
||||||
if (files.length > 0) {
|
if (files.length > 0) {
|
||||||
@ -73,6 +92,7 @@ function FormUtil(layui, viewer) {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
error: function (index, upload) {
|
error: function (index, upload) {
|
||||||
|
layer.close(layerLoadingIndex);
|
||||||
layer.msg('文件上传失败');
|
layer.msg('文件上传失败');
|
||||||
},
|
},
|
||||||
progress: function (n, elem, res, index) {
|
progress: function (n, elem, res, index) {
|
||||||
@ -105,17 +125,92 @@ function FormUtil(layui, viewer) {
|
|||||||
init(function () {
|
init(function () {
|
||||||
viewerObj[fieldName] = new Viewer(document.getElementById(fieldName + 'FileBox'), {navbar: false});
|
viewerObj[fieldName] = new Viewer(document.getElementById(fieldName + 'FileBox'), {navbar: false});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!isShow) {
|
||||||
addClick();
|
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 opt
|
||||||
* @param maxCount
|
|
||||||
*/
|
*/
|
||||||
this.initUploadFile = function (fieldName, maxCount) {
|
function initUploadFile(opt) {
|
||||||
maxCount = maxCount ? parseInt(maxCount) : 3
|
var maxCount = opt.maxCount ? parseInt(opt.maxCount) : 3
|
||||||
maxCount = maxCount < 0 ? 3 : maxCount;
|
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 id = '#' + fieldName;
|
||||||
var fileBoxId = id + 'FileBox';
|
var fileBoxId = id + 'FileBox';
|
||||||
var uploadBtnId = id + 'UploadBtn';
|
var uploadBtnId = id + 'UploadBtn';
|
||||||
@ -175,9 +270,17 @@ function FormUtil(layui, viewer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function addClick() {
|
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({
|
upload.render({
|
||||||
elem: uploadBtnId,
|
elem: uploadBtnId,
|
||||||
url: 'api/file/v2/upload-file',
|
url: url,
|
||||||
accept: 'file',
|
accept: 'file',
|
||||||
acceptMime: [
|
acceptMime: [
|
||||||
'application/pdf',
|
'application/pdf',
|
||||||
@ -195,7 +298,12 @@ function FormUtil(layui, viewer) {
|
|||||||
field: 'file',
|
field: 'file',
|
||||||
exts: 'pdf|doc|docx|xls|xlsx|ppt|pptx|wps|txt|rar|zip',
|
exts: 'pdf|doc|docx|xls|xlsx|ppt|pptx|wps|txt|rar|zip',
|
||||||
name: fieldName,
|
name: fieldName,
|
||||||
|
headers: headers,
|
||||||
|
before: function (obj) {
|
||||||
|
layerLoadingIndex = layer.msg('上传中...', {icon: 16, time: 0, shade: 0.3})
|
||||||
|
},
|
||||||
done: function (res, index, upload) {
|
done: function (res, index, upload) {
|
||||||
|
layer.close(layerLoadingIndex);
|
||||||
var name = this.name;
|
var name = this.name;
|
||||||
var files = $('#' + this.name).val();
|
var files = $('#' + this.name).val();
|
||||||
if (files.length > 0) {
|
if (files.length > 0) {
|
||||||
@ -206,6 +314,7 @@ function FormUtil(layui, viewer) {
|
|||||||
init();
|
init();
|
||||||
},
|
},
|
||||||
error: function (index, upload) {
|
error: function (index, upload) {
|
||||||
|
layer.close(layerLoadingIndex);
|
||||||
layer.msg('文件上传失败');
|
layer.msg('文件上传失败');
|
||||||
},
|
},
|
||||||
progress: function (n, elem, res, index) {
|
progress: function (n, elem, res, index) {
|
||||||
@ -235,21 +344,96 @@ function FormUtil(layui, viewer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
if (!isShow) {
|
||||||
addClick();
|
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 opt
|
||||||
* @param maxCount
|
|
||||||
*/
|
*/
|
||||||
this.initUploadVideo = function (fileName, maxCount) {
|
function initUploadVideo(opt) {
|
||||||
maxCount = maxCount ? parseInt(maxCount) : 1
|
var maxCount = opt.maxCount ? parseInt(opt.maxCount) : 1
|
||||||
maxCount = maxCount < 0 ? 1 : maxCount;
|
maxCount = opt.maxCount < 0 ? 1 : opt.maxCount;
|
||||||
var id = '#' + fileName;
|
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 fileBoxId = id + 'FileBox';
|
||||||
var uploadBtnId = id + 'UploadBtn';
|
var uploadBtnId = id + 'UploadBtn';
|
||||||
var deleteBtnClass = '.delete-' + fileName + '-btn';
|
var deleteBtnClass = '.delete-' + fieldName + '-btn';
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
var fileIds = $(id).val();
|
var fileIds = $(id).val();
|
||||||
@ -262,7 +446,7 @@ function FormUtil(layui, viewer) {
|
|||||||
' <source src="route/file/download/true/' + fileId + '" type="video/mp4">',
|
' <source src="route/file/download/true/' + fileId + '" type="video/mp4">',
|
||||||
' 您的浏览器不支持 video 标签',
|
' 您的浏览器不支持 video 标签',
|
||||||
' </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>',
|
' <i class="fa fa-trash-o"></i>',
|
||||||
' </a>',
|
' </a>',
|
||||||
'</div>',
|
'</div>',
|
||||||
@ -282,15 +466,28 @@ function FormUtil(layui, viewer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function addClick() {
|
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({
|
upload.render({
|
||||||
elem: uploadBtnId,
|
elem: uploadBtnId,
|
||||||
url: 'api/file/v2/upload-video',
|
url: url,
|
||||||
accept: 'video',
|
accept: 'video',
|
||||||
acceptMime: 'video/mp4',
|
acceptMime: 'video/mp4',
|
||||||
exts: 'mp4',
|
exts: 'mp4',
|
||||||
field: 'video',
|
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) {
|
done: function (res, index, upload) {
|
||||||
|
layer.close(layerLoadingIndex);
|
||||||
var name = this.name;
|
var name = this.name;
|
||||||
var files = $('#' + this.name).val();
|
var files = $('#' + this.name).val();
|
||||||
if (files.length > 0) {
|
if (files.length > 0) {
|
||||||
@ -301,6 +498,7 @@ function FormUtil(layui, viewer) {
|
|||||||
init();
|
init();
|
||||||
},
|
},
|
||||||
error: function (index, upload) {
|
error: function (index, upload) {
|
||||||
|
layer.close(layerLoadingIndex);
|
||||||
layer.msg('文件上传失败');
|
layer.msg('文件上传失败');
|
||||||
},
|
},
|
||||||
progress: function (n, elem, res, index) {
|
progress: function (n, elem, res, index) {
|
||||||
@ -329,21 +527,92 @@ function FormUtil(layui, viewer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
|
||||||
|
if (!isShow) {
|
||||||
addClick();
|
addClick();
|
||||||
|
} else {
|
||||||
|
$(uploadBtnId).hide();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 初始化音频上传
|
* 初始化视频上传
|
||||||
* @param fileName
|
* @param fieldName
|
||||||
* @param maxCount
|
* @param maxCount
|
||||||
*/
|
*/
|
||||||
this.initUploadAudio = function (fileName, maxCount) {
|
this.initUploadVideo = function (fieldName, maxCount) {
|
||||||
maxCount = maxCount ? parseInt(maxCount) : 1
|
initUploadVideo({
|
||||||
maxCount = maxCount < 0 ? 1 : maxCount;
|
fieldName: fieldName,
|
||||||
var id = '#' + fileName;
|
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 fileBoxId = id + 'FileBox';
|
||||||
var uploadBtnId = id + 'UploadBtn';
|
var uploadBtnId = id + 'UploadBtn';
|
||||||
var deleteBtnClass = '.delete-' + fileName + '-btn';
|
var deleteBtnClass = '.delete-' + fieldName + '-btn';
|
||||||
|
|
||||||
function init() {
|
function init() {
|
||||||
var fileIds = $(id).val();
|
var fileIds = $(id).val();
|
||||||
@ -355,7 +624,7 @@ function FormUtil(layui, viewer) {
|
|||||||
' <audio src="route/file/download/true/' + fileId + '" controls>',
|
' <audio src="route/file/download/true/' + fileId + '" controls>',
|
||||||
' 您的浏览器不支持 audio 标签。',
|
' 您的浏览器不支持 audio 标签。',
|
||||||
' </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>',
|
' <i class="fa fa-trash-o"></i>',
|
||||||
' </a>',
|
' </a>',
|
||||||
'</div>',
|
'</div>',
|
||||||
@ -375,9 +644,17 @@ function FormUtil(layui, viewer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function addClick() {
|
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({
|
upload.render({
|
||||||
elem: uploadBtnId,
|
elem: uploadBtnId,
|
||||||
url: 'api/file/v2/upload-audio',
|
url: url,
|
||||||
accept: 'audio',
|
accept: 'audio',
|
||||||
acceptMime: [
|
acceptMime: [
|
||||||
'audio/wav',
|
'audio/wav',
|
||||||
@ -385,8 +662,13 @@ function FormUtil(layui, viewer) {
|
|||||||
],
|
],
|
||||||
exts: 'wav|mp3',
|
exts: 'wav|mp3',
|
||||||
field: 'audio',
|
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) {
|
done: function (res, index, upload) {
|
||||||
|
layer.close(layerLoadingIndex);
|
||||||
var name = this.name;
|
var name = this.name;
|
||||||
var files = $('#' + this.name).val();
|
var files = $('#' + this.name).val();
|
||||||
if (files.length > 0) {
|
if (files.length > 0) {
|
||||||
@ -397,6 +679,7 @@ function FormUtil(layui, viewer) {
|
|||||||
init();
|
init();
|
||||||
},
|
},
|
||||||
error: function (index, upload) {
|
error: function (index, upload) {
|
||||||
|
layer.close(layerLoadingIndex);
|
||||||
layer.msg('文件上传失败');
|
layer.msg('文件上传失败');
|
||||||
},
|
},
|
||||||
progress: function (n, elem, res, index) {
|
progress: function (n, elem, res, index) {
|
||||||
@ -425,7 +708,76 @@ function FormUtil(layui, viewer) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
init();
|
init();
|
||||||
|
|
||||||
|
if (!isShow) {
|
||||||
addClick();
|
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';
|
var boxId = '#' + item.fieldName + 'Box';
|
||||||
$(boxId).css('position', 'relative');
|
$(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).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/layui/css/layui.css" media="all">
|
||||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.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="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>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="layui-anim layui-anim-fadein">
|
<div class="layui-anim layui-anim-fadein">
|
||||||
@ -22,8 +23,7 @@
|
|||||||
<#list fields as field>
|
<#list fields as field>
|
||||||
${field.html}
|
${field.html}
|
||||||
</#list>
|
</#list>
|
||||||
<div class="layui-form-item layui-layout-admin">
|
<div class="layui-layout-admin">
|
||||||
<div class="layui-input-block">
|
|
||||||
<#if formType == "oa">
|
<#if formType == "oa">
|
||||||
<div class="layui-footer form-report-foot">
|
<div class="layui-footer form-report-foot">
|
||||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||||
@ -36,7 +36,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -44,7 +43,7 @@
|
|||||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||||
</#list>
|
</#list>
|
||||||
</div>
|
</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/js/vendor/viewer/viewer.min.js"></script>
|
||||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||||
<script>
|
<script>
|
||||||
@ -82,13 +81,13 @@
|
|||||||
function initData() {
|
function initData() {
|
||||||
<#list fields as field>
|
<#list fields as field>
|
||||||
<#if field.data.tag == 'uploadImage'>
|
<#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'>
|
<#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'>
|
<#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'>
|
<#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'>
|
<#elseif field.data.tag == 'date'>
|
||||||
formUtil.initDate({
|
formUtil.initDate({
|
||||||
id: '${field.data.id}',
|
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/layui/css/layui.css" media="all">
|
||||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.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="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>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="layui-anim layui-anim-fadein">
|
<div class="layui-anim layui-anim-fadein">
|
||||||
@ -22,8 +23,7 @@
|
|||||||
<#list fields as field>
|
<#list fields as field>
|
||||||
${field.html}
|
${field.html}
|
||||||
</#list>
|
</#list>
|
||||||
<div class="layui-form-item layui-layout-admin">
|
<div class="layui-layout-admin">
|
||||||
<div class="layui-input-block">
|
|
||||||
<#if formType == "oa">
|
<#if formType == "oa">
|
||||||
<div class="layui-footer form-report-foot">
|
<div class="layui-footer form-report-foot">
|
||||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||||
@ -34,7 +34,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -42,7 +41,7 @@
|
|||||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||||
</#list>
|
</#list>
|
||||||
</div>
|
</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/js/vendor/viewer/viewer.min.js"></script>
|
||||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||||
<script>
|
<script>
|
||||||
@ -65,7 +64,7 @@
|
|||||||
function initData() {
|
function initData() {
|
||||||
var self = this;
|
var self = this;
|
||||||
var loadLayerIndex;
|
var loadLayerIndex;
|
||||||
top.restAjax.get(restAjax.path('${initUrl}', [
|
restAjax.get(restAjax.path('${initUrl}', [
|
||||||
<#list initParams as initParam>
|
<#list initParams as initParam>
|
||||||
$('#${initParam}').val(),
|
$('#${initParam}').val(),
|
||||||
</#list>
|
</#list>
|
||||||
@ -85,13 +84,13 @@
|
|||||||
<#if field.data.tag == 'checkbox'>
|
<#if field.data.tag == 'checkbox'>
|
||||||
formUtil.initCheckboxData('dataForm', dataFormData['${field.data.id}'], '${field.data.id}');
|
formUtil.initCheckboxData('dataForm', dataFormData['${field.data.id}'], '${field.data.id}');
|
||||||
<#elseif field.data.tag == 'uploadImage'>
|
<#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'>
|
<#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'>
|
<#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'>
|
<#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'>
|
<#elseif field.data.tag == 'date'>
|
||||||
formUtil.initDate({
|
formUtil.initDate({
|
||||||
id: '${field.data.id}',
|
id: '${field.data.id}',
|
||||||
@ -106,11 +105,11 @@
|
|||||||
|
|
||||||
form.render(null, 'dataForm');
|
form.render(null, 'dataForm');
|
||||||
}, function(code, data) {
|
}, function(code, data) {
|
||||||
top.dialog.msg(data.msg);
|
layer.msg(data.msg);
|
||||||
}, function() {
|
}, 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() {
|
}, function() {
|
||||||
top.dialog.close(loadLayerIndex);
|
layer.close(loadLayerIndex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
initData();
|
initData();
|
||||||
|
@ -12,7 +12,8 @@
|
|||||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
<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" 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="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>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="layui-anim layui-anim-fadein">
|
<div class="layui-anim layui-anim-fadein">
|
||||||
@ -22,8 +23,7 @@
|
|||||||
<#list fields as field>
|
<#list fields as field>
|
||||||
${field.html}
|
${field.html}
|
||||||
</#list>
|
</#list>
|
||||||
<div class="layui-form-item layui-layout-admin">
|
<div class="layui-layout-admin">
|
||||||
<div class="layui-input-block">
|
|
||||||
<#if formType == "oa">
|
<#if formType == "oa">
|
||||||
<div class="layui-footer form-report-foot">
|
<div class="layui-footer form-report-foot">
|
||||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||||
@ -36,7 +36,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -44,7 +43,7 @@
|
|||||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||||
</#list>
|
</#list>
|
||||||
</div>
|
</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/js/vendor/viewer/viewer.min.js"></script>
|
||||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||||
<script>
|
<script>
|
||||||
@ -83,7 +82,7 @@
|
|||||||
function initData() {
|
function initData() {
|
||||||
var self = this;
|
var self = this;
|
||||||
var loadLayerIndex;
|
var loadLayerIndex;
|
||||||
top.restAjax.get(restAjax.path('${initUrl}', [
|
restAjax.get(restAjax.path('${initUrl}', [
|
||||||
<#list initParams as initParam>
|
<#list initParams as initParam>
|
||||||
$('#${initParam}').val(),
|
$('#${initParam}').val(),
|
||||||
</#list>
|
</#list>
|
||||||
@ -103,13 +102,13 @@
|
|||||||
<#if field.data.tag == 'checkbox'>
|
<#if field.data.tag == 'checkbox'>
|
||||||
formUtil.initCheckboxData('dataForm', dataFormData['${field.data.id}'], '${field.data.id}');
|
formUtil.initCheckboxData('dataForm', dataFormData['${field.data.id}'], '${field.data.id}');
|
||||||
<#elseif field.data.tag == 'uploadImage'>
|
<#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'>
|
<#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'>
|
<#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'>
|
<#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'>
|
<#elseif field.data.tag == 'date'>
|
||||||
formUtil.initDate({
|
formUtil.initDate({
|
||||||
id: '${field.data.id}',
|
id: '${field.data.id}',
|
||||||
@ -129,11 +128,11 @@
|
|||||||
formUtil.disableFields(fields);
|
formUtil.disableFields(fields);
|
||||||
</#if>
|
</#if>
|
||||||
}, function(code, data) {
|
}, function(code, data) {
|
||||||
top.dialog.msg(data.msg);
|
layer.msg(data.msg);
|
||||||
}, function() {
|
}, 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() {
|
}, function() {
|
||||||
top.dialog.close(loadLayerIndex);
|
layer.close(loadLayerIndex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
initData();
|
initData();
|
||||||
@ -241,7 +240,7 @@
|
|||||||
restAjax.put(restAjax.path('${commitUrl}', [
|
restAjax.put(restAjax.path('${commitUrl}', [
|
||||||
<#list commitParams as commitParam>
|
<#list commitParams as commitParam>
|
||||||
$('#${commitParam}').val(),
|
$('#${commitParam}').val(),
|
||||||
</#list>,
|
</#list>
|
||||||
uid
|
uid
|
||||||
]), formData.field, {
|
]), formData.field, {
|
||||||
headers: {
|
headers: {
|
||||||
|
@ -22,8 +22,7 @@
|
|||||||
<#list fields as field>
|
<#list fields as field>
|
||||||
${field.html}
|
${field.html}
|
||||||
</#list>
|
</#list>
|
||||||
<div class="layui-form-item layui-layout-admin">
|
<div class="layui-layout-admin">
|
||||||
<div class="layui-input-block">
|
|
||||||
<#if formType == "oa">
|
<#if formType == "oa">
|
||||||
<div class="layui-footer form-report-foot">
|
<div class="layui-footer form-report-foot">
|
||||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||||
@ -36,7 +35,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -44,7 +42,7 @@
|
|||||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||||
</#list>
|
</#list>
|
||||||
</div>
|
</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/js/vendor/viewer/viewer.min.js"></script>
|
||||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
@ -22,8 +22,7 @@
|
|||||||
<#list fields as field>
|
<#list fields as field>
|
||||||
${field.html}
|
${field.html}
|
||||||
</#list>
|
</#list>
|
||||||
<div class="layui-form-item layui-layout-admin">
|
<div class="layui-layout-admin">
|
||||||
<div class="layui-input-block">
|
|
||||||
<#if formType == "oa">
|
<#if formType == "oa">
|
||||||
<div class="layui-footer form-report-foot">
|
<div class="layui-footer form-report-foot">
|
||||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary close">返回</button>
|
||||||
@ -34,7 +33,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -42,7 +40,7 @@
|
|||||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||||
</#list>
|
</#list>
|
||||||
</div>
|
</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/js/vendor/viewer/viewer.min.js"></script>
|
||||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||||
<script>
|
<script>
|
||||||
@ -64,7 +62,7 @@
|
|||||||
function initData() {
|
function initData() {
|
||||||
var self = this;
|
var self = this;
|
||||||
var loadLayerIndex;
|
var loadLayerIndex;
|
||||||
top.restAjax.get(restAjax.path('${initUrl}', [
|
restAjax.get(restAjax.path('${initUrl}', [
|
||||||
<#list initParams as initParam>
|
<#list initParams as initParam>
|
||||||
$('#${initParam}').val(),
|
$('#${initParam}').val(),
|
||||||
</#list>
|
</#list>
|
||||||
@ -80,13 +78,13 @@
|
|||||||
<#if field.data.tag == 'checkbox'>
|
<#if field.data.tag == 'checkbox'>
|
||||||
formUtil.initCheckboxData('dataForm', dataFormData['${field.data.id}'], '${field.data.id}');
|
formUtil.initCheckboxData('dataForm', dataFormData['${field.data.id}'], '${field.data.id}');
|
||||||
<#elseif field.data.tag == 'uploadImage'>
|
<#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'>
|
<#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'>
|
<#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'>
|
<#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'>
|
<#elseif field.data.tag == 'date'>
|
||||||
formUtil.initDate({
|
formUtil.initDate({
|
||||||
id: '${field.data.id}',
|
id: '${field.data.id}',
|
||||||
@ -101,11 +99,11 @@
|
|||||||
|
|
||||||
form.render(null, 'dataForm');
|
form.render(null, 'dataForm');
|
||||||
}, function(code, data) {
|
}, function(code, data) {
|
||||||
top.dialog.msg(data.msg);
|
layer.msg(data.msg);
|
||||||
}, function() {
|
}, 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() {
|
}, function() {
|
||||||
top.dialog.close(loadLayerIndex);
|
layer.close(loadLayerIndex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
initData();
|
initData();
|
||||||
|
@ -22,8 +22,7 @@
|
|||||||
<#list fields as field>
|
<#list fields as field>
|
||||||
${field.html}
|
${field.html}
|
||||||
</#list>
|
</#list>
|
||||||
<div class="layui-form-item layui-layout-admin">
|
<div class="layui-layout-admin">
|
||||||
<div class="layui-input-block">
|
|
||||||
<#if formType == "oa">
|
<#if formType == "oa">
|
||||||
<div class="layui-footer form-report-foot">
|
<div class="layui-footer form-report-foot">
|
||||||
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
<div id="submitBtnGroup" class="layui-btn-group"></div>
|
||||||
@ -36,7 +35,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</#if>
|
</#if>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -44,7 +42,7 @@
|
|||||||
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
<input type="hidden" id="${hiddenInput}" value="${r'${'}${hiddenInput}${r'}'}">
|
||||||
</#list>
|
</#list>
|
||||||
</div>
|
</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/js/vendor/viewer/viewer.min.js"></script>
|
||||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||||
<script>
|
<script>
|
||||||
@ -82,7 +80,7 @@
|
|||||||
function initData() {
|
function initData() {
|
||||||
var self = this;
|
var self = this;
|
||||||
var loadLayerIndex;
|
var loadLayerIndex;
|
||||||
top.restAjax.get(restAjax.path('${initUrl}', [
|
restAjax.get(restAjax.path('${initUrl}', [
|
||||||
<#list initParams as initParam>
|
<#list initParams as initParam>
|
||||||
$('#${initParam}').val(),
|
$('#${initParam}').val(),
|
||||||
</#list>
|
</#list>
|
||||||
@ -124,11 +122,11 @@
|
|||||||
formUtil.disableFields(fields);
|
formUtil.disableFields(fields);
|
||||||
</#if>
|
</#if>
|
||||||
}, function(code, data) {
|
}, function(code, data) {
|
||||||
top.dialog.msg(data.msg);
|
layer.msg(data.msg);
|
||||||
}, function() {
|
}, 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() {
|
}, function() {
|
||||||
top.dialog.close(loadLayerIndex);
|
layer.close(loadLayerIndex);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
initData();
|
initData();
|
||||||
|
Loading…
Reference in New Issue
Block a user