mirror of
https://github.com/yangjian102621/geekai.git
synced 2025-09-17 16:56:38 +08:00
add drag icon for dragable rows
This commit is contained in:
parent
2140eff51b
commit
9ece25e17d
@ -1,5 +1,10 @@
|
|||||||
# 更新日志
|
# 更新日志
|
||||||
|
|
||||||
|
## v4.1.3
|
||||||
|
* 功能优化:VIP 会员在进行任何操作都不扣减算力,以实现会员周卡月卡功能
|
||||||
|
* 功能优化:管理后台给可以拖动排序的组件添加拖动图标
|
||||||
|
* 功能新增:支持 Luma 文生视频功能
|
||||||
|
|
||||||
## v4.1.2
|
## v4.1.2
|
||||||
* Bug修复:修复思维导图页面获取模型失败的问题
|
* Bug修复:修复思维导图页面获取模型失败的问题
|
||||||
* 功能优化:优化MJ,SD,DALL-E 任务列表页面,显示失败任务的错误信息,删除失败任务可以恢复扣减算力
|
* 功能优化:优化MJ,SD,DALL-E 任务列表页面,显示失败任务的错误信息,删除失败任务可以恢复扣减算力
|
||||||
|
@ -6,6 +6,6 @@ VUE_APP_ADMIN_USER=admin
|
|||||||
VUE_APP_ADMIN_PASS=admin123
|
VUE_APP_ADMIN_PASS=admin123
|
||||||
VUE_APP_KEY_PREFIX=GeekAI_DEV_
|
VUE_APP_KEY_PREFIX=GeekAI_DEV_
|
||||||
VUE_APP_TITLE="Geek-AI 创作系统"
|
VUE_APP_TITLE="Geek-AI 创作系统"
|
||||||
VUE_APP_VERSION=v4.1.2
|
VUE_APP_VERSION=v4.1.3
|
||||||
VUE_APP_DOCS_URL=https://docs.geekai.me
|
VUE_APP_DOCS_URL=https://docs.geekai.me
|
||||||
VUE_APP_GIT_URL=https://github.com/yangjian102621/geekai
|
VUE_APP_GIT_URL=https://github.com/yangjian102621/geekai
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
VUE_APP_API_HOST=
|
VUE_APP_API_HOST=
|
||||||
VUE_APP_WS_HOST=
|
VUE_APP_WS_HOST=
|
||||||
VUE_APP_KEY_PREFIX=GeekAI_
|
VUE_APP_KEY_PREFIX=GeekAI_
|
||||||
VUE_APP_VERSION=v4.1.2
|
VUE_APP_VERSION=v4.1.3
|
||||||
VUE_APP_DOCS_URL=https://docs.geekai.me
|
VUE_APP_DOCS_URL=https://docs.geekai.me
|
||||||
VUE_APP_GIT_URL=https://github.com/yangjian102621/geekai
|
VUE_APP_GIT_URL=https://github.com/yangjian102621/geekai
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "iconfont"; /* Project id 4125778 */
|
font-family: "iconfont"; /* Project id 4125778 */
|
||||||
src: url('iconfont.woff2?t=1721896403264') format('woff2'),
|
src: url('iconfont.woff2?t=1723434190230') format('woff2'),
|
||||||
url('iconfont.woff?t=1721896403264') format('woff'),
|
url('iconfont.woff?t=1723434190230') format('woff'),
|
||||||
url('iconfont.ttf?t=1721896403264') format('truetype');
|
url('iconfont.ttf?t=1723434190230') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconfont {
|
.iconfont {
|
||||||
@ -13,6 +13,14 @@
|
|||||||
-moz-osx-font-smoothing: grayscale;
|
-moz-osx-font-smoothing: grayscale;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-drag:before {
|
||||||
|
content: "\e8ec";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-move:before {
|
||||||
|
content: "\e6fd";
|
||||||
|
}
|
||||||
|
|
||||||
.icon-link:before {
|
.icon-link:before {
|
||||||
content: "\e6b4";
|
content: "\e6b4";
|
||||||
}
|
}
|
||||||
|
File diff suppressed because one or more lines are too long
@ -5,6 +5,20 @@
|
|||||||
"css_prefix_text": "icon-",
|
"css_prefix_text": "icon-",
|
||||||
"description": "",
|
"description": "",
|
||||||
"glyphs": [
|
"glyphs": [
|
||||||
|
{
|
||||||
|
"icon_id": "15617554",
|
||||||
|
"name": "drag",
|
||||||
|
"font_class": "drag",
|
||||||
|
"unicode": "e8ec",
|
||||||
|
"unicode_decimal": 59628
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "240317",
|
||||||
|
"name": "move",
|
||||||
|
"font_class": "move",
|
||||||
|
"unicode": "e6fd",
|
||||||
|
"unicode_decimal": 59133
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon_id": "880330",
|
"icon_id": "880330",
|
||||||
"name": "link",
|
"name": "link",
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -15,8 +15,8 @@ export function checkSession() {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
httpGet('/api/user/session').then(res => {
|
httpGet('/api/user/session').then(res => {
|
||||||
item.data = res.data
|
item.data = res.data
|
||||||
// cache expires after 5 minutes
|
// cache expires after 10 secs
|
||||||
item.expire = Date.now() + 1000 * 60 * 5
|
item.expire = Date.now() + 1000 * 10
|
||||||
Storage.set(userDataKey, item)
|
Storage.set(userDataKey, item)
|
||||||
resolve(item.data)
|
resolve(item.data)
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
@ -38,8 +38,7 @@ export function checkAdminSession() {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
httpGet('/api/admin/session').then(res => {
|
httpGet('/api/admin/session').then(res => {
|
||||||
item.data = res.data
|
item.data = res.data
|
||||||
// cache expires after 10 minutes
|
item.expire = Date.now() + 1000 * 10
|
||||||
item.expire = Date.now() + 1000 * 60 * 10
|
|
||||||
Storage.set(adminDataKey, item)
|
Storage.set(adminDataKey, item)
|
||||||
resolve(item.data)
|
resolve(item.data)
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
@ -60,8 +59,7 @@ export function getSystemInfo() {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
httpGet('/api/config/get?key=system').then(res => {
|
httpGet('/api/config/get?key=system').then(res => {
|
||||||
item.data = res
|
item.data = res
|
||||||
// cache expires after 10 minutes
|
item.expire = Date.now() + 1000 * 10
|
||||||
item.expire = Date.now() + 1000 * 60 * 10
|
|
||||||
Storage.set(systemInfoKey, item)
|
Storage.set(systemInfoKey, item)
|
||||||
resolve(item.data)
|
resolve(item.data)
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
@ -79,8 +77,7 @@ export function getLicenseInfo() {
|
|||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
httpGet('/api/config/license').then(res => {
|
httpGet('/api/config/license').then(res => {
|
||||||
item.data = res
|
item.data = res
|
||||||
// cache expires after 10 minutes
|
item.expire = Date.now() + 1000 * 10
|
||||||
item.expire = Date.now() + 1000 * 60 * 10
|
|
||||||
Storage.set(licenseInfoKey, item)
|
Storage.set(licenseInfoKey, item)
|
||||||
resolve(item.data)
|
resolve(item.data)
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
|
@ -17,7 +17,10 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="应用名称" prop="name">
|
<el-table-column label="应用名称" prop="name">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span class="sort" :data-id="scope.row.id">{{ scope.row.name }}</span>
|
<span class="sort" :data-id="scope.row.id">
|
||||||
|
<i class="iconfont icon-drag"></i>
|
||||||
|
{{ scope.row.name }}
|
||||||
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="应用标识" prop="key"/>
|
<el-table-column label="应用标识" prop="key"/>
|
||||||
@ -373,6 +376,14 @@ const uploadImg = (file) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sort {
|
||||||
|
cursor move
|
||||||
|
.iconfont {
|
||||||
|
position relative
|
||||||
|
top 1px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.pagination {
|
.pagination {
|
||||||
padding 20px 0
|
padding 20px 0
|
||||||
display flex
|
display flex
|
||||||
|
@ -13,7 +13,10 @@
|
|||||||
<el-table-column type="selection" width="38"></el-table-column>
|
<el-table-column type="selection" width="38"></el-table-column>
|
||||||
<el-table-column prop="name" label="模型名称">
|
<el-table-column prop="name" label="模型名称">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span class="sort" :data-id="scope.row.id">{{ scope.row.name }}</span>
|
<span class="sort" :data-id="scope.row.id">
|
||||||
|
<i class="iconfont icon-drag"></i>
|
||||||
|
{{ scope.row.name }}
|
||||||
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="value" label="模型值">
|
<el-table-column prop="value" label="模型值">
|
||||||
@ -339,6 +342,14 @@ const remove = function (row) {
|
|||||||
width: 100%
|
width: 100%
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sort {
|
||||||
|
cursor move
|
||||||
|
.iconfont {
|
||||||
|
position relative
|
||||||
|
top 1px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.pagination {
|
.pagination {
|
||||||
padding 20px 0
|
padding 20px 0
|
||||||
display flex
|
display flex
|
||||||
|
@ -9,7 +9,10 @@
|
|||||||
<el-table :data="items" :row-key="row => row.id" table-layout="auto">
|
<el-table :data="items" :row-key="row => row.id" table-layout="auto">
|
||||||
<el-table-column prop="name" label="菜单名称">
|
<el-table-column prop="name" label="菜单名称">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span class="sort" :data-id="scope.row.id">{{ scope.row.name }}</span>
|
<span class="sort" :data-id="scope.row.id">
|
||||||
|
<i class="iconfont icon-drag"></i>
|
||||||
|
{{ scope.row.name }}
|
||||||
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="icon" label="菜单图标">
|
<el-table-column prop="icon" label="菜单图标">
|
||||||
@ -240,6 +243,14 @@ const uploadImg = (file) => {
|
|||||||
height 36px
|
height 36px
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sort {
|
||||||
|
cursor move
|
||||||
|
.iconfont {
|
||||||
|
position relative
|
||||||
|
top 1px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.el-select {
|
.el-select {
|
||||||
width: 100%
|
width: 100%
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,10 @@
|
|||||||
<el-table :data="items" :row-key="row => row.id" table-layout="auto">
|
<el-table :data="items" :row-key="row => row.id" table-layout="auto">
|
||||||
<el-table-column prop="name" label="产品名称">
|
<el-table-column prop="name" label="产品名称">
|
||||||
<template #default="scope">
|
<template #default="scope">
|
||||||
<span class="sort" :data-id="scope.row.id">{{ scope.row.name }}</span>
|
<span class="sort" :data-id="scope.row.id">
|
||||||
|
<i class="iconfont icon-drag"></i>
|
||||||
|
{{ scope.row.name }}
|
||||||
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column prop="price" label="产品价格"/>
|
<el-table-column prop="price" label="产品价格"/>
|
||||||
@ -227,6 +230,14 @@ const remove = function (row) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sort {
|
||||||
|
cursor move
|
||||||
|
.iconfont {
|
||||||
|
position relative
|
||||||
|
top 1px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.el-select {
|
.el-select {
|
||||||
width: 100%
|
width: 100%
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user