初始提交
This commit is contained in:
121
components/Jnpf/Parser/mixin.js
Normal file
121
components/Jnpf/Parser/mixin.js
Normal file
@@ -0,0 +1,121 @@
|
||||
import {
|
||||
getDataInterfaceRes
|
||||
} from '@/api/common'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
ids: [],
|
||||
selectItems: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
checkboxChange(e, item) {
|
||||
this.$nextTick(() => {
|
||||
if (e.value) {
|
||||
this.selectItems.push(item)
|
||||
} else {
|
||||
const i = this.selectItems.findIndex(o => !o.checked)
|
||||
this.selectItems.splice(i, 1)
|
||||
}
|
||||
})
|
||||
},
|
||||
openSelectDialog(item) {
|
||||
if (this.checkNumLimit()) return;
|
||||
let actionConfig = item.actionConfig
|
||||
const data = {
|
||||
actionConfig,
|
||||
formData: this.formData,
|
||||
tableVmodel: this.config.__vModel__
|
||||
}
|
||||
if (item.actionType == 1) return uni.navigateTo({
|
||||
url: '/pages/apply/tableLinkage/index?data=' + JSON.stringify(data)
|
||||
})
|
||||
if (!this.tableFormData.some(item => item.checked)) return this.$u.toast('至少选中一条数据');
|
||||
if (item.actionType == 2) {
|
||||
if (actionConfig.executeType == 2) {
|
||||
this.handleScriptFunc(actionConfig)
|
||||
} else {
|
||||
this.handleInterface(actionConfig)
|
||||
}
|
||||
}
|
||||
},
|
||||
//自定义按钮JS操作
|
||||
handleScriptFunc(item) {
|
||||
let data = this.selectItems.map(child => {
|
||||
let obj = {};
|
||||
child.forEach(item => {
|
||||
obj[item.__vModel__] = item.value;
|
||||
});
|
||||
return obj;
|
||||
});
|
||||
const parameter = {
|
||||
data,
|
||||
refresh: this.initData,
|
||||
onlineUtils: this.jnpf.onlineUtils,
|
||||
}
|
||||
const func = this.jnpf.getScriptFunc.call(this, item.executeFunc)
|
||||
if (!func) return
|
||||
func.call(this, parameter)
|
||||
},
|
||||
//自定义按钮接口操作
|
||||
handleInterface(item) {
|
||||
let data = this.selectItems.flatMap(child => {
|
||||
return child.map(item => ({
|
||||
[item.__vModel__]: item.value
|
||||
}));
|
||||
});
|
||||
const handlerInterface = (data) => {
|
||||
let query = {
|
||||
paramList: this.getBatchParamList(item.executeTemplateJson, data) || [],
|
||||
}
|
||||
getDataInterfaceRes(item.executeInterfaceId, query).then(res => {
|
||||
uni.showToast({
|
||||
title: res.msg,
|
||||
icon: 'none'
|
||||
})
|
||||
})
|
||||
}
|
||||
if (!item.executeUseConfirm) return handlerInterface(data)
|
||||
uni.showModal({
|
||||
title: this.$t('common.tipTitle'),
|
||||
content: item.executeConfirmTitle || '确认执行此操作?',
|
||||
showCancel: true,
|
||||
confirmText: '确定',
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
handlerInterface(data)
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
getBatchParamList(templateJson, data) {
|
||||
if (!templateJson || !templateJson.length) return [];
|
||||
for (let i = 0; i < templateJson.length; i++) {
|
||||
const e = templateJson[i];
|
||||
let defaultValue = [];
|
||||
if (e.sourceType === 1 && data.length) {
|
||||
data.forEach(o => {
|
||||
if (o.hasOwnProperty(e.relationField)) {
|
||||
defaultValue.push(o[e.relationField]);
|
||||
}
|
||||
});
|
||||
}
|
||||
e.defaultValue = defaultValue;
|
||||
if (e.sourceType === 4 && e.relationField === '@formId' && data.id !== undefined) {
|
||||
e.defaultValue = [data.id];
|
||||
} else if (e.sourceType !== 1) {
|
||||
e.defaultValue = [];
|
||||
}
|
||||
}
|
||||
return templateJson;
|
||||
},
|
||||
// 校验限制条数
|
||||
checkNumLimit() {
|
||||
if (this.config.isNumLimit && this.tableFormData.length >= this.config.numLimit) {
|
||||
this.$u.toast(`${this.config.__config__.label}超出条数限制`);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user