Files
fibo-rule/h5-enginex-manager/src/utils/contminxin/contmixin.js

386 lines
7.7 KiB
JavaScript
Raw Normal View History

2022-06-20 14:03:57 +08:00
export default {
data() {
return {
}
},
created() {
},
computed: {
showRight() {
if (this.currid) {
return true
} else {
return false
}
},
listunfold() {
let arr = []
this.deepGetListunfold(this.list, arr)
console.log(arr)
return arr
}
},
mounted() {},
methods: {
deepGetListunfold(list, arr) {
list.forEach(value => {
arr.push(value)
if (value.children.length > 0) {
this.deepGetListunfold(value.children, arr)
}
})
},
mixnewFileZindexVerify(arr,id){
let ZIndex = 1
b(arr)
function b(arr){
console.log(arr)
arr.forEach(value=>{
if(value.id==id){
ZIndex = value.ZIndex
}
if(value.children.length>0){
b(value.children)
}
})
}
return ZIndex
},
mixnewFileSure(params) {
let is = false
let parentId = params.parentId
let tempId = this.currid
if (this.tempNewF.trim() == "") {
this.$message.error('文件夹名不能为空');
this.leftloading = false
return
}
this.tempNewF = this.tempNewF.trim()
this.deepGetCurr(parentId, this.list, (value) => {
value.children.forEach(item => {
if (item.name == params.name || item.name == params.fieldType) {
is = true
}
})
})
// 验证重名
if (is) {
this.$message.error('同一文件夹下不允许同名');
this.leftloading = false
return
}
if (params.parentId == "99999999") {
params.parentId = "0"
}
this.getData.addlist(params).then((res) => {
if (res.status === "1") {
this.$message({
message: '添加成功',
type: 'success'
});
this.leftloading = false
this.deepGetCurr(parentId, this.list, (value) => {
value.children.push({
ZIndex: value.ZIndex + 1,
name: this.tempNewF,
id: res.data.fieldTypeId || res.data.node.id,
open: false,
show: value.open,
Rename: false,
parentId: parentId,
children: []
})
})
}
this.newf = false
this.tempNewF = ""
}).catch(() => {
this.$message.error("请求失败了" + '-_-');
this.leftloading = false
})
},
using(id) {
let arr = this.selection.map((value) => {
return value.id
})
if (arr.length < 1) {
this.$message.error('未选择任何文件');
return
}
let params = {
status: id,
ids: arr.join(','),
nameId: this.currid
}
this.getData.fieldusing(params).then(res => {
if (res.status == "1") {
this.$message({
message: '操作成功',
type: 'success'
});
if (this.getData.type == 1 || this.getData.type == 2) {
this.$store.dispatch('reGetRuleList')
}
this.getlist()
this.selection = []
}
})
},
clickCurrid(id) {
this.currid = id
this.currPage = 1
this.listRedact = false;
this.tempRedactId = 0
this.selection = []
let tempIs = false
this.list.forEach(value => {
if (value.id === id && value.Rename) {
tempIs = true
}
})
if (!tempIs) {
this.RenameFun()
}
this.getlist()
this.deepGetCurr(id, this.list, deepSetCurr)
// 递归寻找文件夹
// 打开关闭文件夹
function deepSetCurr(obj) {
if (obj.open) {
// 关闭文件夹
obj.open = false
deepCloseFile(obj)
} else {
// 打开文件夹
obj.open = true
obj.children.forEach(value => {
value.show = true
})
}
}
function deepCloseFile(obj) {
if (obj.children.length > 0) {
obj.children.forEach(value => {
value.show = false
deepCloseFile(value)
})
}
}
},
deepGetCurr(id, item, fn, fn2) {
item.forEach((value, index) => {
if (value.id == id) {
fn(value, item, index)
} else {
if (fn2) {
fn2(value, item, index)
}
if (value.children.length > 0) {
this.deepGetCurr(id, value.children, fn, fn2)
}
}
})
},
listTreeDeep(item, num) {
let arr = item.map((value) => {
return {
id: value.id,
parentId: value.parentId,
name: value.name || value.fieldType,
ZIndex: num,
open: false,
show: num === 1 ? true : false,
Rename: false,
children: this.listTreeDeep(value.children, num + 1)
}
})
return arr
},
RenameFun(id) {
this.deepGetCurr(id, this.list, (value) => {
value.Rename = true
}, (value) => {
value.Rename = false
})
},
newFile() {
if (!this.currid) {
this.$message({
message: '请先选择左侧文件夹',
type: 'warning'
});
} else {
this.newf = true
}
},
RenameClose() {
this.deepGetCurr(0, this.list, () => {}, (value) => {
value.Rename = false
})
},
updatafilelist(params) {
this.leftloading = true
let tempNum = null
this.deepGetCurr(params.id, this.list, (value) => {
tempNum = value.parentId
})
params.parentId = tempNum == 99999999 ? 0 : tempNum
tempNum = null
this.getData.updatalist(params).then(res => {
if (res.status === "1") {
this.$message({
message: '修改成功',
type: 'success'
});
this.deepGetCurr(params.id, this.list, (value) => {
value.name = params.name
value.Rename = false
})
this.leftloading = false
} else {
this.leftloading = false
}
}).catch(() => {
this.$message.error("请求失败了" + '-_-');
this.leftloading = false
})
},
delectFun(id) {
let name
let parentId
this.deepGetCurr(id, this.list, (value) => {
name = value.name
parentId = value.parentId
})
let params = {
status: "-1",
id: id,
name: name,
"type": "1",
"engineId": "",
"parentId": parentId == 99999999 ? 0 : parentId
}
this.getData.updatalist(params).then(res => {
if (res.status === "1") {
this.$message({
type: 'success',
message: '删除成功!'
});
this.deepGetCurr(id, this.list, (value, item, index) => {
item.splice(index, 1)
})
}
this.leftloading = false
this.currid = 99999999
this.getlist()
}).catch(() => {
this.$message.error("请求失败了" + '-_-');
this.leftloading = false
})
},
dialogShow(id) {
this.tempRedactId = id
this.listRedact = true
},
select(selection) {
this.selection = selection
},
selectAll(selection) {
this.selection = selection
},
fileRight(e, item) {
this.tempHintLeft = e.x
this.tempHintTop = e.y
this.tempId = item.id
},
beforeUpload(file) {
console.log(file, '文件');
this.files = file;
const extension = file.name.split('.')[1] === 'xls'
const extension2 = file.name.split('.')[1] === 'xlsx'
const isLt2M = file.size / 1024 / 1024 < 5
if (!extension && !extension2) {
this.$message.warning('上传模板只能是 xls、xlsx格式!')
return
}
if (!isLt2M) {
this.$message.warning('上传模板大小不能超过 5MB!')
return
}
this.fileName = file.name;
return false // 返回false不会自动上传
},
submitUpload() {
this.Uploadloading = true
console.log('上传' + this.files.name)
if (this.fileName == "") {
this.$message.warning('请选择要上传的文件!')
this.Uploadloading = false
return false
}
let fileFormData = new FormData();
fileFormData.append('file', this.files); //filename是键file是值就是要传的文件test.zip是要传的文件名
this.getData.fieldsubmit(fileFormData).then(res => {
if (res.status === "1") {
this.callbackresult = res.data
this.upCallbackShow = true
this.upShowClose()
this.getlist()
this.$store.dispatch('reGetRuleList')
this.$store.dispatch('reGetfielduser')
}
this.Uploadloading = false
})
},
upShowClose() {
this.upShow = false
}
}
}