Files
fibo-rule/h5-enginex-manager/src/utils/contminxin/contmixin.js
2022-06-20 14:03:57 +08:00

386 lines
7.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}
}
}