mirror of
https://gitee.com/myxzgzs/boyue_jnpf.git
synced 2025-08-09 07:42:43 +08:00
112 lines
2.8 KiB
JavaScript
112 lines
2.8 KiB
JavaScript
![]() |
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) {
|
||
|
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;
|
||
|
}
|
||
|
}
|
||
|
}
|