FileList修改样式,上传
parent
0014cc018a
commit
5c1b23421c
|
@ -35,42 +35,14 @@ Item {
|
|||
|
||||
Component {
|
||||
id: fileListItemHeader
|
||||
|
||||
RowLayout {
|
||||
id: fileListItemHeaderItem
|
||||
width: ListView.view.width
|
||||
height: 48
|
||||
|
||||
// back to folder button
|
||||
FluIconButton {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
id: backButton
|
||||
width: 24
|
||||
height: 24
|
||||
iconSource: FluentIcons.ForwardCall
|
||||
onClicked: {
|
||||
if (header.count() > 0) {
|
||||
header.items = header.items.slice(0, header.count() - 1)
|
||||
}
|
||||
fileListItemHeaderItem.update()
|
||||
}
|
||||
ColumnLayout {
|
||||
function add(folderName, uuid) {
|
||||
console.log(header.items)
|
||||
header.items = header.items.concat([{
|
||||
"title": folderName,
|
||||
"uuid": uuid
|
||||
}])
|
||||
}
|
||||
FluBreadcrumbBar {
|
||||
id: header
|
||||
//width: parent.width
|
||||
height: parent.height
|
||||
separator: ">"
|
||||
items: []
|
||||
onClickItem: function (model) {
|
||||
if (model.index + 1 !== count()) {
|
||||
items = items.slice(0, model.index + 1)
|
||||
}
|
||||
}
|
||||
onItemsChanged: {
|
||||
fileListItemHeaderItem.update()
|
||||
}
|
||||
}
|
||||
|
||||
FluButton {
|
||||
Layout.alignment: Qt.AlignRight
|
||||
text: "上传"
|
||||
|
@ -78,28 +50,25 @@ Item {
|
|||
console.log("click")
|
||||
fileDialog.open()
|
||||
}
|
||||
|
||||
FileDialog {
|
||||
id: fileDialog
|
||||
onAccepted: function () {
|
||||
const size = FileTransferManager.getFileSize(
|
||||
selectedFile)
|
||||
const md5 = FileTransferManager.getFileMd5(selectedFile)
|
||||
|
||||
if (size <= 0 || md5 === '')
|
||||
return
|
||||
|
||||
var body = {
|
||||
"name": "test2",
|
||||
"brief": "brief",
|
||||
"size": size,
|
||||
"md5": md5,
|
||||
"tags": [],
|
||||
"parentId": null
|
||||
"parentId": header.items.length
|
||||
!== 0 ? header.items[header.items.length - 1].uuid : null
|
||||
}
|
||||
console.log("begin")
|
||||
console.log(JSON.stringify(body))
|
||||
|
||||
Request.post("knowledge/file", JSON.stringify(body),
|
||||
function (res, data) {
|
||||
console.log(res)
|
||||
|
@ -113,64 +82,112 @@ Item {
|
|||
}
|
||||
}
|
||||
}
|
||||
RowLayout {
|
||||
id: fileListItemHeaderItem
|
||||
width: ListView.view.width
|
||||
height: 48
|
||||
|
||||
function add(folderName, uuid) {
|
||||
console.log(header.items)
|
||||
header.items = header.items.concat([{
|
||||
"title": folderName,
|
||||
"uuid": uuid
|
||||
}])
|
||||
}
|
||||
|
||||
function getType(suffix) {
|
||||
if (suffix === "ppt" || suffix === "pptx")
|
||||
return "PPT"
|
||||
else if (suffix === "doc" || suffix === "docx")
|
||||
return "WORD"
|
||||
}
|
||||
|
||||
function update() {
|
||||
var uuid = header.items.length
|
||||
=== 0 ? "null" : header.items[header.items.length - 1].uuid
|
||||
Request.get(uuid, function (response) {
|
||||
var data = JSON.parse(response)
|
||||
console.log(data.knowledgeFileAttribute)
|
||||
fileListModel.clear()
|
||||
var files = data.children
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
var file = files[i]
|
||||
console.log(file.name)
|
||||
var modelItem = {
|
||||
"title": file.name,
|
||||
"uuid": file.id,
|
||||
"date": file.createTime
|
||||
// back to folder button
|
||||
FluIconButton {
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
id: backButton
|
||||
width: 24
|
||||
height: 24
|
||||
iconSource: FluentIcons.ForwardCall
|
||||
onClicked: {
|
||||
if (header.count() > 0) {
|
||||
header.items = header.items.slice(
|
||||
0, header.count() - 1)
|
||||
}
|
||||
if (file.knowledgeFileAttribute === null) {
|
||||
modelItem.type = "folder"
|
||||
modelItem.isDir = true
|
||||
modelItem.size = 0
|
||||
} else {
|
||||
modelItem.isDir = false
|
||||
modelItem.type = getType(
|
||||
file.knowledgeFileAttribute.suffix)
|
||||
modelItem.size = file.knowledgeFileAttribute.size
|
||||
modelItem.brief = file.knowledgeFileAttribute.brief
|
||||
modelItem.pageView = file.knowledgeFileAttribute.pageView
|
||||
modelItem.stars = 0
|
||||
// merge file.knowledgeFileAttribute.tags array to a string
|
||||
var tagString = ""
|
||||
for (var j = 0; j < file.knowledgeFileAttribute.tags.length; j++) {
|
||||
if (j != 0)
|
||||
tagString = tagString + ","
|
||||
tagString = tagString + file.knowledgeFileAttribute.tags[j].name
|
||||
}
|
||||
modelItem.tags = tagString
|
||||
}
|
||||
fileListModel.append(modelItem)
|
||||
fileListItemHeaderItem.update()
|
||||
}
|
||||
console.log(fileListModel)
|
||||
listView.currentIndex = -1
|
||||
})
|
||||
}
|
||||
FluBreadcrumbBar {
|
||||
id: header
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
separator: ">"
|
||||
items: []
|
||||
onClickItem: function (model) {
|
||||
if (model.index + 1 !== count()) {
|
||||
items = items.slice(0, model.index + 1)
|
||||
}
|
||||
}
|
||||
onItemsChanged: {
|
||||
fileListItemHeaderItem.update()
|
||||
}
|
||||
}
|
||||
|
||||
function getType(suffix) {
|
||||
if (suffix === "ppt" || suffix === "pptx")
|
||||
return "PPT"
|
||||
else if (suffix === "doc" || suffix === "docx")
|
||||
return "WORD"
|
||||
else if (suffix === "pdf")
|
||||
return "PDF"
|
||||
else if (suffix === "txt")
|
||||
return "TXT"
|
||||
else if (suffix === "xls" || suffix === "xlsx")
|
||||
return "EXCEL"
|
||||
else if (suffix === "zip" || suffix === "rar")
|
||||
return "ZIP"
|
||||
else if (suffix === "png" || suffix === "jpg"
|
||||
|| suffix === "jpeg" || suffix === "gif")
|
||||
return "IMAGE"
|
||||
else if (suffix === "mp3" || suffix === "wav")
|
||||
return "AUDIO"
|
||||
else if (suffix === "mp4" || suffix === "avi"
|
||||
|| suffix === "rmvb" || suffix === "rm"
|
||||
|| suffix === "wmv" || suffix === "mkv")
|
||||
return "VIDEO"
|
||||
else
|
||||
return "OTHER"
|
||||
}
|
||||
|
||||
function update() {
|
||||
var uuid = header.items.length
|
||||
=== 0 ? "null" : header.items[header.items.length - 1].uuid
|
||||
Request.get("/knowledge/" + uuid, function (response) {
|
||||
var data = JSON.parse(response)
|
||||
console.log(data.knowledgeFileAttribute)
|
||||
fileListModel.clear()
|
||||
var files = data.children
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
var file = files[i]
|
||||
console.log(file.name)
|
||||
var modelItem = {
|
||||
"title": file.name,
|
||||
"uuid": file.id,
|
||||
"date"// cut time after 'T'
|
||||
: file.createTime.substring(0, 10)
|
||||
}
|
||||
if (file.knowledgeFileAttribute === null) {
|
||||
modelItem.type = "folder"
|
||||
modelItem.isDir = true
|
||||
modelItem.size = 0
|
||||
} else {
|
||||
modelItem.isDir = false
|
||||
modelItem.type = getType(
|
||||
file.knowledgeFileAttribute.suffix)
|
||||
modelItem.size = file.knowledgeFileAttribute.size
|
||||
modelItem.brief = file.knowledgeFileAttribute.brief
|
||||
modelItem.pageView = file.knowledgeFileAttribute.pageView
|
||||
modelItem.stars = 0
|
||||
// merge file.knowledgeFileAttribute.tags array to a string
|
||||
var tagString = ""
|
||||
for (var j = 0; j < file.knowledgeFileAttribute.tags.length; j++) {
|
||||
if (j != 0)
|
||||
tagString = tagString + ","
|
||||
tagString = tagString + file.knowledgeFileAttribute.tags[j].name
|
||||
}
|
||||
modelItem.tags = tagString
|
||||
}
|
||||
fileListModel.append(modelItem)
|
||||
}
|
||||
console.log(fileListModel)
|
||||
listView.currentIndex = -1
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -206,6 +223,7 @@ Item {
|
|||
function doubleClicked() {
|
||||
listView.currentIndex = index
|
||||
if (model.isDir) {
|
||||
console.log(listView.headerItem)
|
||||
listView.headerItem.add(model.title, model.uuid)
|
||||
} else {
|
||||
emit: SignalFileOperation.open(model.uuid)
|
||||
|
|
|
@ -39,11 +39,13 @@ FluArea {
|
|||
Image {
|
||||
id: icon
|
||||
source: type ? "qrc:/AicsKnowledgeBase/res/" + type + ".png" : ""
|
||||
Layout.preferredHeight: 18
|
||||
Layout.preferredWidth: 18
|
||||
Layout.preferredHeight: 32
|
||||
Layout.preferredWidth: 32
|
||||
}
|
||||
FluText {
|
||||
id: title
|
||||
font.bold: true
|
||||
font.pointSize: 15
|
||||
text: fileItem.title
|
||||
}
|
||||
}
|
||||
|
@ -52,17 +54,23 @@ FluArea {
|
|||
id: brief
|
||||
visible: !fileItem.isDir
|
||||
text: fileItem.brief
|
||||
Layout.fillWidth: true
|
||||
wrapMode: Text.WrapAnywhere
|
||||
elide: Text.ElideRight
|
||||
maximumLineCount: 2
|
||||
}
|
||||
RowLayout {
|
||||
id: infoRow
|
||||
visible: !fileItem.isDir
|
||||
FluText {
|
||||
id: date
|
||||
color: "#5F5F5F"
|
||||
text: fileItem.date
|
||||
}
|
||||
FluText {
|
||||
id: size
|
||||
// cast Byte size to right text size
|
||||
color: "#5F5F5F"
|
||||
text: fileItem.size > 1024
|
||||
* 1024 ? (fileItem.size / 1024 / 1024).toFixed(
|
||||
2) + "MB" : (fileItem.size / 1024).toFixed(
|
||||
|
@ -70,10 +78,12 @@ FluArea {
|
|||
}
|
||||
FluText {
|
||||
id: pageView
|
||||
color: "#5F5F5F"
|
||||
text: fileItem.pageView + "浏览"
|
||||
}
|
||||
FluText {
|
||||
id: stars
|
||||
color: "#5F5F5F"
|
||||
text: fileItem.stars + "收藏"
|
||||
}
|
||||
}
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 5.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
Loading…
Reference in New Issue