228 lines
7.3 KiB
JavaScript
228 lines
7.3 KiB
JavaScript
/* ******************* youhong.ai 建模部分 start ******************* */
|
||
$(() => {
|
||
let config = {
|
||
workflowUrl: '',
|
||
table: '',
|
||
detailTable: 'detail_1',
|
||
fieldMap: {
|
||
fkgs: 'fkgs',
|
||
zw: 'zw',
|
||
fj: 'fj'
|
||
}
|
||
}
|
||
|
||
function jumpToWorkflow() {
|
||
let ids = ModeList.getCheckedID();
|
||
let url = `${config.workflowUrl}&table=${config.table}&ids=${ids}&detail=${config.detailTable}&field_map=${JSON.stringify(config.fieldMap)}`
|
||
window.open(url, "_blank")
|
||
}
|
||
|
||
window.jumpToWorkflow = jumpToWorkflow
|
||
})
|
||
|
||
/* ******************* youhong.ai 建模部分 end ******************* */
|
||
|
||
|
||
/* ******************* youhong.ai 流程部分 start ******************* */
|
||
$(() => {
|
||
|
||
function getQueryString(name) {
|
||
let reg = new RegExp("(^|&|\/?)" + name + "=([^&]*)(&|$)", "i");
|
||
let searchStr = window.location.href
|
||
if (searchStr.startsWith('&')) {
|
||
searchStr = searchStr.substr(1)
|
||
}
|
||
let search = searchStr.match(reg)
|
||
if (search != null) {
|
||
return unescape(search[2]);
|
||
}
|
||
return null;
|
||
}
|
||
|
||
function getConfig() {
|
||
let tableName = getQueryString("table")
|
||
let ids = getQueryString("ids")
|
||
let mapping = getQueryString("field_map")
|
||
let detail = getQueryString("detail")
|
||
let fieldMap = JSON.parse(mapping)
|
||
return {
|
||
table: tableName,
|
||
ids,
|
||
fieldMap,
|
||
detailTable: detail
|
||
}
|
||
}
|
||
|
||
function runJs(config) {
|
||
console.log("config", config)
|
||
let {WeaLoadingGlobal} = ecCom
|
||
WeaLoadingGlobal.start();
|
||
$.ajax(`/aiyh/taibao/packing2model/packing?table=${config.table}&ids=${config.ids}`, {
|
||
success: (res) => {
|
||
WeaLoadingGlobal.destroy();
|
||
if (res && res.code === 200) {
|
||
console.log("获取到的数据", res.data)
|
||
let modelData = res.data
|
||
let fieldMap = config.fieldMap
|
||
let workflowDetailList = []
|
||
modelData.forEach(item => {
|
||
let obj = {}
|
||
Object.keys(fieldMap).forEach(key => {
|
||
obj[key] = item[fieldMap[key]]
|
||
})
|
||
workflowDetailList.push(obj)
|
||
})
|
||
console.log("收集整理的数据:", workflowDetailList)
|
||
addDetailValue(workflowDetailList, config.detailTable)
|
||
} else {
|
||
WfForm.showMessage("打包数据错误,无法带出数据!", 2, 5);
|
||
}
|
||
},
|
||
error: (err) => {
|
||
WeaLoadingGlobal.destroy();
|
||
WfForm.showMessage("网路异常,打包失败!", 2, 5);
|
||
console.log(err)
|
||
},
|
||
complete: () => {
|
||
WeaLoadingGlobal.destroy();
|
||
}
|
||
})
|
||
}
|
||
|
||
function addDetailValue(workflowDetailList, detail) {
|
||
workflowDetailList.forEach(item => {
|
||
let valueMap = {}
|
||
Object.keys(item).forEach(key => {
|
||
valueMap[WfForm.convertFieldNameToId(key, detail)] = {
|
||
value: item[key]
|
||
}
|
||
})
|
||
console.log("添加明细行数据", valueMap)
|
||
WfForm.addDetailRow(detail, valueMap);
|
||
})
|
||
}
|
||
|
||
runJs(getConfig())
|
||
|
||
})
|
||
|
||
/* ******************* youhong.ai 流程部分 end ******************* */
|
||
|
||
|
||
/* ******************* youhong.ai 编号验证是否存在 start ******************* */
|
||
$(() => {
|
||
const config = {
|
||
ecId: '',
|
||
tableName: '',
|
||
field: 'fwbh',
|
||
}
|
||
|
||
/**
|
||
* @author youhong.ai
|
||
* @desc 发起请求
|
||
*/
|
||
function api(requestOptions = {
|
||
url: "",
|
||
type: "GET",
|
||
data: "",
|
||
isAsync: true,
|
||
success: () => {
|
||
},
|
||
error: () => {
|
||
},
|
||
complete: () => {
|
||
},
|
||
contentType: 'application/json',
|
||
beforeSend: () => {
|
||
}
|
||
}) {
|
||
let options = Object.assign({
|
||
url: "",
|
||
type: "GET",
|
||
data: "",
|
||
isAsync: true,
|
||
success: () => {
|
||
},
|
||
error: () => {
|
||
},
|
||
complete: () => {
|
||
},
|
||
contentType: 'application/json',
|
||
beforeSend: () => {
|
||
}
|
||
}, requestOptions)
|
||
return $.ajax(options)
|
||
}
|
||
|
||
function findReact(dom, traverseUp = 0) {
|
||
const key = Object.keys(dom).find(key => {
|
||
return key.startsWith("__reactFiber$") // react 17+
|
||
|| key.startsWith("__reactInternalInstance$")
|
||
|| key.startsWith("__reactEventHandlers$"); // react <17
|
||
});
|
||
const domFiber = dom[key];
|
||
if (domFiber == null) return null;
|
||
// react <16
|
||
if (domFiber._currentElement) {
|
||
let compFiber = domFiber._currentElement._owner;
|
||
for (let i = 0; i < traverseUp; i++) {
|
||
compFiber = compFiber._currentElement._owner;
|
||
}
|
||
return compFiber._instance;
|
||
}
|
||
// react 16+
|
||
const GetCompFiber = fiber => {
|
||
let parentFiber = fiber.return;
|
||
while (typeof parentFiber.type == "string") {
|
||
parentFiber = parentFiber.return;
|
||
}
|
||
return parentFiber;
|
||
};
|
||
let compFiber = GetCompFiber(domFiber);
|
||
for (let i = 0; i < traverseUp; i++) {
|
||
compFiber = GetCompFiber(compFiber);
|
||
}
|
||
return compFiber.stateNode;
|
||
}
|
||
|
||
function runJs() {
|
||
let node = findReact($(`button[ecid='${config.ecId}']`)[0])
|
||
let baseInfo = WfForm.getBaseInfo();
|
||
baseInfo.workflowid
|
||
if (baseInfo.requestid == -1) {
|
||
return
|
||
}
|
||
if (node) {
|
||
let click = node.props.onClick;
|
||
node.props.onClick = (e) => {
|
||
api({
|
||
url: `/api/aiyh/taibao/bh/check-number?tableName=${config.tableName}&field=${config.field}&requestId=${baseInfo.requestid}`,
|
||
success(res) {
|
||
if (res && res.code == 200) {
|
||
if (res.data) {
|
||
// 存在编号,提示是否需要编号
|
||
WfForm.showConfirm("编号一存在,是否重新编号?", function () {
|
||
click(e)
|
||
}, function () {
|
||
// 不重新编号,刷新
|
||
window.location.reload()
|
||
}, {
|
||
title: "编号确认", //弹确认框的title,仅PC端有效
|
||
okText: "确认", //自定义确认按钮名称
|
||
cancelText: "取消" //自定义取消按钮名称
|
||
});
|
||
} else {
|
||
click(e)
|
||
}
|
||
}
|
||
}
|
||
})
|
||
};
|
||
}
|
||
|
||
}
|
||
|
||
runJs()
|
||
})
|
||
/* ******************* youhong.ai 编号验证是否存在 end ******************* */
|