parent
eebc37811e
commit
5dba088e09
6 changed files with 1216 additions and 7 deletions
|
After Width: | Height: | Size: 8.9 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
@ -0,0 +1,260 @@ |
|||||||
|
/** |
||||||
|
* 自定义模块前端工具 |
||||||
|
*/ |
||||||
|
(function () { |
||||||
|
|
||||||
|
|
||||||
|
let URLS = { |
||||||
|
"config": { |
||||||
|
"get": "/mdiy/config/get.do", |
||||||
|
formURL: { |
||||||
|
update: { |
||||||
|
"url": "/mdiy/configData/update.do", |
||||||
|
"params": {} |
||||||
|
}, |
||||||
|
save: { |
||||||
|
"url": "/mdiy/configData/update.do", |
||||||
|
"params": {} |
||||||
|
}, |
||||||
|
get: { |
||||||
|
"url": "/mdiy/configData/get.do", |
||||||
|
"params": {} |
||||||
|
} |
||||||
|
}, |
||||||
|
|
||||||
|
}, |
||||||
|
"form": { |
||||||
|
"get": "/mdiy/form/get.do", |
||||||
|
formURL: { |
||||||
|
update: { |
||||||
|
"url": "/mdiy/formData/update.do", |
||||||
|
"params": {} |
||||||
|
}, |
||||||
|
save: { |
||||||
|
"url": "/mdiy/formData/save.do", |
||||||
|
"params": {} |
||||||
|
}, |
||||||
|
get: { |
||||||
|
"url": "/mdiy/formData/getData.do", |
||||||
|
"params": {} |
||||||
|
} |
||||||
|
}, |
||||||
|
}, |
||||||
|
"model": { |
||||||
|
"get": "/mdiy/model/get.do", |
||||||
|
formURL: { |
||||||
|
update: { |
||||||
|
"url": "/mdiy/model/data/update.do", |
||||||
|
"params": {} |
||||||
|
}, |
||||||
|
save: { |
||||||
|
"url": "/mdiy/model/data/save.do", |
||||||
|
"params": {} |
||||||
|
}, |
||||||
|
get: { |
||||||
|
"url": "/mdiy/model/data.do", |
||||||
|
"params": {} |
||||||
|
} |
||||||
|
}, |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
/** |
||||||
|
* 获取自定义配置 |
||||||
|
* @param configName:配置名称 |
||||||
|
* @paramk key:配置的key值(可选),key == null 可以获取所有的配置 |
||||||
|
* @param isSystem true 后台调用会拼接后台地址 false前台调用 |
||||||
|
*/ |
||||||
|
function config(configName, key,isSystem) { |
||||||
|
|
||||||
|
var data = {configName: configName}; |
||||||
|
|
||||||
|
if(key != null) { |
||||||
|
data.key = key; |
||||||
|
} |
||||||
|
|
||||||
|
if(isSystem) {
|
||||||
|
return ms.http.get(ms.manager + "/mdiy/configData/getMap.do",data); |
||||||
|
} else { |
||||||
|
return ms.http.get(ms.base + "/mdiy/config/get.do",data); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var dict = { |
||||||
|
/** |
||||||
|
* 获取所有字典类型的数组集合 |
||||||
|
* @param dictType 字典类型 支持多个类型用英文逗号隔开 |
||||||
|
* @param isChild 子业务类型 可选 |
||||||
|
*/ |
||||||
|
list: function(dictType, isChild) { |
||||||
|
var _dict = { |
||||||
|
dictType: dictType, |
||||||
|
isChild: isChild, |
||||||
|
} |
||||||
|
return ms.http.get(ms.base + '/mdiy/dict/list.do', _dict); |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 根据字典 value 获取对应的 label |
||||||
|
* @param dictList 字典列表 |
||||||
|
* @param value 值 |
||||||
|
* @returns {string|string|[{message: string, required: boolean}]|*} |
||||||
|
*/ |
||||||
|
getLabel: function(dictList, value) { |
||||||
|
var data = dictList.find(function (v) { |
||||||
|
return v.dictValue == value; |
||||||
|
}); |
||||||
|
|
||||||
|
if (data) { |
||||||
|
return data.dictLabel; |
||||||
|
} |
||||||
|
return ""; |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 根据字典 label 获取对应的 value |
||||||
|
* @param dictList 字典列表 |
||||||
|
* @param label 值 |
||||||
|
* @returns {string|string|[{message: string, required: boolean}]|*} |
||||||
|
*/ |
||||||
|
getValue: function(dictList, label) { |
||||||
|
var data = dictList.find(function (v) { |
||||||
|
return v.dictLabel == label; |
||||||
|
}); |
||||||
|
|
||||||
|
if (data) { |
||||||
|
return data.dictValue; |
||||||
|
} |
||||||
|
return ""; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
var model = { |
||||||
|
|
||||||
|
/** |
||||||
|
* 模型地址资源配置 |
||||||
|
*/ |
||||||
|
|
||||||
|
/** |
||||||
|
* 配置模型 |
||||||
|
* @param renderDomId 绑定的domid,表单会显示在dom里面 |
||||||
|
* @param model 模型对象 示例:业务调用{modelName:模型名称},自动业务使用{id:模型编号} |
||||||
|
* @param params 请求参数 示例:{参数名称:值} |
||||||
|
* @param isSystem true 后台调用会拼接后台地址 false前台调用 |
||||||
|
* @returns {Promise<custom_model>} |
||||||
|
*/ |
||||||
|
config: function(renderDomId, model, params, isSystem) { |
||||||
|
|
||||||
|
URLS.config.formURL.get.params = params; |
||||||
|
var urlStrs = JSON.stringify(URLS.config.formURL); |
||||||
|
return this.render(renderDomId, model, JSON.parse(urlStrs), URLS["config"].get, isSystem); |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 业务表单模型 |
||||||
|
* @param renderDomId 绑定的domid,表单会显示在dom里面 |
||||||
|
* @param model 模型对象 示例:业务调用{modelName:模型名称},自动业务使用{id:模型编号} |
||||||
|
* @param params 请求参数 示例:{参数名称:值} |
||||||
|
* @param isSystem true 后台调用会拼接后台地址 false前台调用 |
||||||
|
* @returns {Promise<custom_model>} |
||||||
|
*/ |
||||||
|
form: function(renderDomId, model, params, isSystem) { |
||||||
|
URLS.form.formURL.get.params = params; |
||||||
|
var urlStrs = JSON.stringify(URLS.form.formURL); |
||||||
|
return this.render(renderDomId, model, JSON.parse(urlStrs), URLS["form"].get, isSystem); |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 扩展业务模型 |
||||||
|
* @param renderDomId 绑定的domid,表单会显示在dom里面 |
||||||
|
* @param model 模型对象 示例:业务调用方式{modelName:模型名称}如配置的使用,自动业务使用{id:模型编号},如内容模型 |
||||||
|
* @param params 请求参数 示例:{参数名称:值} |
||||||
|
* @param isSystem true 后台调用会拼接后台地址 false前台调用 |
||||||
|
* @returns {Promise<custom_model>} |
||||||
|
*/ |
||||||
|
extend: function(renderDomId, model, params, isSystem) { |
||||||
|
|
||||||
|
URLS.model.formURL.get.params = params; |
||||||
|
var urlStrs = JSON.stringify(URLS.model.formURL); |
||||||
|
return this.render(renderDomId, model,JSON.parse(urlStrs) , URLS["model"].get, isSystem); |
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 渲染自定义模型对象 |
||||||
|
* @param renderDomId 绑定的domid,表单会显示在dom里面 |
||||||
|
* @param model 模型对象 示例:业务调用{modelName:模型名称},自动业务使用{id:模型编号} |
||||||
|
* @param url 模型获取地址 |
||||||
|
* @param isSystem true 后台调用会拼接后台地址 false前台调用 |
||||||
|
* @returns {Promise<custom_model>} 返回model对象 |
||||||
|
*/ |
||||||
|
render: function(renderDomId, model, formUrls, url, isSystem) { |
||||||
|
// if(model.modelName!=undefined || model.modelId!=undefined){
|
||||||
|
// return null;
|
||||||
|
// }
|
||||||
|
//查模型
|
||||||
|
|
||||||
|
if (isSystem) { |
||||||
|
url = ms.manager + url; |
||||||
|
formUrls.update.url = ms.manager + formUrls.update.url; |
||||||
|
formUrls.save.url = ms.manager + formUrls.save.url; |
||||||
|
formUrls.get.url = ms.manager + formUrls.get.url; |
||||||
|
} |
||||||
|
var modelId = 0; |
||||||
|
var modelName = ""; |
||||||
|
|
||||||
|
return new Promise(function(resolve,reject) { |
||||||
|
|
||||||
|
ms.http.get(url, model).then(function (res) { |
||||||
|
if (res.result && res.data) { |
||||||
|
//因为命名规范问做容错处理
|
||||||
|
if("undefined" != typeof formVue) { |
||||||
|
form = formVue; |
||||||
|
} |
||||||
|
form.mdiyModel = res.data; |
||||||
|
modelId = res.data.id; |
||||||
|
modelName = res.data.modelName; |
||||||
|
var data = JSON.parse(form.mdiyModel.modelJson); |
||||||
|
form.$nextTick(function () { |
||||||
|
|
||||||
|
var modelDom = document.getElementById(renderDomId); |
||||||
|
modelDom.innerHTML=""; |
||||||
|
var modelDom = document.getElementById(renderDomId); |
||||||
|
var scriptDom = document.createElement('script'); |
||||||
|
scriptDom.innerHTML = data.script; |
||||||
|
var divDom = document.createElement('div'); |
||||||
|
divDom.id = 'custom-model'; |
||||||
|
divDom.innerHTML = data.html; |
||||||
|
modelDom.appendChild(scriptDom); |
||||||
|
modelDom.appendChild(divDom); //初始化自定义模型并传入关联参数
|
||||||
|
// promise抛出resolve进行外部调用自定义模型
|
||||||
|
resolve(new custom_model({ |
||||||
|
data: { |
||||||
|
modelName: modelName, |
||||||
|
modelId: modelId, |
||||||
|
formURL: formUrls |
||||||
|
} |
||||||
|
})) |
||||||
|
}); |
||||||
|
|
||||||
|
} |
||||||
|
}); |
||||||
|
}) |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
var mdiy = { |
||||||
|
dict: dict, |
||||||
|
model: model, |
||||||
|
config: config |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if (typeof ms != "object") { |
||||||
|
window.ms = {}; |
||||||
|
} |
||||||
|
window.ms.mdiy = mdiy; |
||||||
|
window.ms.debug = false |
||||||
|
}()); |
||||||
File diff suppressed because one or more lines are too long
Loading…
Reference in new issue