演示项目

This commit is contained in:
2023-12-12 17:31:48 +08:00
parent 9e3f0c440a
commit 9ae4a83573
121 changed files with 20562 additions and 288 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 225 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 277 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 120 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 136 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 114 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 142 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 168 KiB

View File

@@ -27,46 +27,50 @@
</el-form>
</div>
<div style="margin: 0px 0 20px 0">
<el-button type="primary" @click="createRow()" icon="el-icon-plus"> </el-button>
<!-- <el-button type="primary" @click="createRow()" icon="el-icon-plus"> </el-button>-->
<el-button type="primary" @click="downloadItem()" icon="el-icon-download">导出物类</el-button>
<el-button type="primary" @click="showImportItemPage()" icon="el-icon-upload2">导入物类</el-button>
</div>
<div>
<el-table :data="result.records" style="width: 100%" v-loading="loading">
<el-table-column type="index" label="行号" width="60"></el-table-column>
<el-table-column prop="fid" label="唯一标识"></el-table-column>
<el-table-column prop="categories" label="种类">
<el-table-column prop="ItemId" label="唯一标识"></el-table-column>
<el-table-column prop="Categories" label="种类">
<div slot-scope="scope">
<template v-for="(tag,index) in scope.row.categoriesArr">
<el-tag :key="index" v-if="index < 5">{{ tag }}</el-tag>
<template v-if="scope.row.Categories">
<template v-for="(tag,index) in scope.row.Categories">
<el-tag :key="index" v-if="index < 5">{{ tag }}</el-tag>
</template>
<el-tag v-if="scope.row.Categories.length > 10">...</el-tag>
</template>
<el-tag v-if="scope.row.categoriesArr.length > 10">...</el-tag>
</div>
</el-table-column>
<el-table-column prop="labels" label="标签">
<el-table-column prop="Labels" label="标签">
<div slot-scope="scope">
<template v-for="(tag,index) in scope.row.labelsArr">
<el-tag :key="index" v-if="index < 5">{{ tag }}</el-tag>
<template v-if="scope.row.Labels">
<template v-for="(tag,index) in scope.row.Labels">
<el-tag :key="index" v-if="index < 5">{{ tag }}</el-tag>
</template>
<el-tag v-if="scope.row.Labels.length > 5">...</el-tag>
</template>
<el-tag v-if="scope.row.labelsArr.length > 5">...</el-tag>
</div>
</el-table-column>
<el-table-column prop="isHidden" label="是否隐藏" width="100">
<el-table-column prop="IsHidden" label="是否隐藏" width="100">
<template slot-scope="scope">
{{ scope.row.isHidden ? '是' : '否' }}
{{ scope.row.IsHidden ? '是' : '否' }}
</template>
</el-table-column>
<el-table-column prop="description" label="描述">
<template slot-scope="scope">
{{ scope.row.description.substring(0, 100) }}{{ scope.row.description.length > 100 ? '...' : '' }}
{{ scope.row.Comment.substring(0, 100) }}{{ scope.row.Comment.length > 100 ? '...' : '' }}
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间" width="180"></el-table-column>
<el-table-column label="操作" width="180">
<el-table-column prop="Timestamp" label="创建时间" width="180"></el-table-column>
<el-table-column label="操作" width="120">
<template slot-scope="scope">
<el-button @click.native.prevent="modifyRow(scope.row)" type="text" size="small">
编辑
</el-button>
<!-- <el-button @click.native.prevent="modifyRow(scope.row)" type="text" size="small">-->
<!-- 编辑-->
<!-- </el-button>-->
<el-button @click.native.prevent="similarItem(scope.row)" type="text" size="small">
相似条目
</el-button>
@@ -201,7 +205,7 @@ export default {
if (_qo) {
_this.qo = JSON.parse(_qo);
}
_this.queryData();
_this.queryData(0);
},
methods: {
queryDataById() {
@@ -211,23 +215,12 @@ export default {
url: '/gorse/query_item/' + this.qo.LIKES_fid,
method: 'get',
}).then(res => {
let user = res.data;
if (!user) {
let item = res.data;
if (!item) {
_this.result.records = [];
} else {
if (user.categories) {
user.categoriesArr = user.categories.split(',');
} else {
user.categoriesArr = [];
}
if (user.labels) {
user.labelsArr = user.labels.split(',');
} else {
user.labelsArr = [];
}
_this.result.records = [user];
_this.result.records = [item];
}
this.loading = false;
});
} else {
@@ -235,22 +228,16 @@ export default {
this.queryData(1);
}
},
queryData(index) {
queryData(index) {// index -1 上一页0刷新 1下一页
this.loading = true;
if (index < 0 && this.cursorArr.length >= 2) {
this.cursorArr = this.cursorArr.slice(0, this.cursorArr.length - 2);
this.cursorArr = this.cursorArr.length === 0 ? [''] : this.cursorArr;
}
this.cursorArr = this.cursorArr.slice(0, this.cursorArr.length - 1 + index);
this.cursorArr = this.cursorArr.length === 0 ? [''] : this.cursorArr;
request({
url: '/gorse/query_items?cursor=' + this.cursorArr[this.cursorArr.length - 1],
method: 'get',
}).then(res => {
this.cursorArr.push(res.data.cursor);
res.data.items.forEach(row => {
row.categoriesArr = row.categories ? row.categories.split(',') : [];
row.labelsArr = row.labels ? row.labels.split(',') : [];
});
_this.result.records = res.data.items;
this.cursorArr.push(res.data.Cursor);
_this.result.records = res.data.Items;
this.loading = false;
});
},
@@ -264,7 +251,7 @@ export default {
similarItem(item) {
_this.$router.push({
path: "similarItem", query: {
itemId: item.fid,
itemId: item.ItemId,
qo: JSON.stringify(_this.qo)
}
});
@@ -281,11 +268,11 @@ export default {
type: 'warning'
}).then(() => {
request({
url: '/entrys/remove/' + item.id,
url: '/gorse/delete_item/' + item.ItemId,
method: 'post'
}).then(res => {
_this.$message.success("删除成功");
_this.queryData();
_this.queryData(0);
});
}).catch(() => {
});

View File

@@ -5,7 +5,7 @@
</div>
<div class="menu-content">
<el-tabs type="border-card">
<el-tab-pane label="人物推荐">
<el-tab-pane label="相似人物推荐">
<div>
<el-select
style="width: 100%;"
@@ -27,13 +27,13 @@
</div>
<div class="line-item" v-for="item in recommendByUserList" :key="item.id">
<div class="title-time">
<div>{{ item.fid }}</div>
<div>{{ item.createTime }}</div>
</div>
<div class="description">{{ item.description }}</div>
<div class="labels">
<el-tag v-for="la in item.labelArr">{{la}}</el-tag>
<div>{{ item }}</div>
<div></div>
</div>
<!-- <div class="description">{{ item.Comment }}</div>-->
<!-- <div class="labels" v-if="item.Labels">-->
<!-- <el-tag v-for="(la,index) in item.Labels" :key="index">{{ la }}</el-tag>-->
<!-- </div>-->
</div>
</el-tab-pane>
<el-tab-pane label="分类推荐">
@@ -63,7 +63,7 @@
</div>
<div class="description">{{ item.Comment }}</div>
<div class="labels">
<el-tag v-for="la in item.Labels">{{la}}</el-tag>
<el-tag v-for="(la,index) in item.Labels" :key="index">{{ la }}</el-tag>
</div>
</div>
</el-tab-pane>
@@ -120,11 +120,6 @@ export default {
category: _this.selectCategory
}
}).then(res => {
res.data.forEach(row => {
if(row.labels) {
row.labelArr = row.labels.split(',');
}
});
this.recommendByCategoryList = res.data;
});
},
@@ -153,11 +148,6 @@ export default {
userId: _this.selectUserId
}
}).then(res => {
res.data.forEach(row => {
if(row.labels) {
row.labelArr = row.labels.split(',');
}
});
this.recommendByUserList = res.data;
});
}
@@ -173,7 +163,7 @@ export default {
border-bottom: 1px solid #dee0e2;
padding-bottom: 10px;
.title-time{
.title-time {
display: flex;
div:first-child {

View File

@@ -21,21 +21,22 @@
</el-form>
</div>
<div style="margin: 0px 0 20px 0">
<el-button type="primary" @click="createRow()" icon="el-icon-plus"> </el-button>
<!-- <el-button type="primary" @click="createRow()" icon="el-icon-plus"> </el-button>-->
<el-button type="primary" @click="downloadUser()" icon="el-icon-download">导出用户</el-button>
<el-button type="primary" @click="showImportUserPage()" icon="el-icon-upload2">导入用户</el-button>
</div>
<div>
<el-table :data="result.records" style="width: 100%" v-loading="loading">
<el-table-column type="index" label="行号" width="60"></el-table-column>
<el-table-column prop="fid" label="唯一标识"></el-table-column>
<el-table-column prop="realname" label="姓名"></el-table-column>
<el-table-column prop="labels" label="标签">
<el-table-column prop="UserId" label="唯一标识"></el-table-column>
<el-table-column prop="Labels" label="标签">
<div slot-scope="scope">
<template v-for="(tag,index) in scope.row.labelArr">
<el-tag :key="index" v-if="index < 5">{{ tag }}</el-tag>
<template v-if="scope.row.Labels">
<template v-for="(tag,index) in scope.row.Labels">
<el-tag :key="index" v-if="index < 5">{{ tag }}</el-tag>
</template>
<el-tag v-if="scope.row.Labels.length > 5">...</el-tag>
</template>
<el-tag v-if="scope.row.labelArr.length > 5">...</el-tag>
</div>
</el-table-column>
<el-table-column label="操作" width="240">
@@ -52,9 +53,9 @@
<el-button @click.native.prevent="recommendItem(scope.row)" type="text" size="small">
查看推荐
</el-button>
<el-button @click.native.prevent="modifyRow(scope.row)" type="text" size="small">
编辑
</el-button>
<!-- <el-button @click.native.prevent="modifyRow(scope.row)" type="text" size="small">-->
<!-- 编辑-->
<!-- </el-button>-->
<el-button @click.native.prevent="removeRow(scope.row)" type="text" size="small">
删除
</el-button>
@@ -62,15 +63,6 @@
</el-table-column>
</el-table>
</div>
<!-- <div class="page-box">-->
<!-- <el-pagination background-->
<!-- @current-change="handleCurrentChange"-->
<!-- :current-page="qo.pageNo"-->
<!-- :page-size="qo.pageSize"-->
<!-- layout="total, prev, pager, next"-->
<!-- :total="result.total">-->
<!-- </el-pagination>-->
<!-- </div>-->
</div>
<el-dialog
:title="dialogName"
@@ -125,7 +117,7 @@ export default {
if (_qo) {
_this.qo = JSON.parse(_qo);
}
_this.queryData();
_this.queryData(0);
},
methods: {
queryDataById() {
@@ -139,11 +131,6 @@ export default {
if (!user) {
_this.result.records = [];
} else {
if (user.labels) {
user.labelArr = user.labels.split(',');
} else {
user.labelArr = [];
}
_this.result.records = [user];
}
@@ -154,28 +141,19 @@ export default {
this.queryData(1);
}
},
queryData(index) {
queryData(index) { // index -1 上一页0刷新 1下一页
this.loading = true;
if (index < 0 && this.cursorArr.length >= 2) {
this.cursorArr = this.cursorArr.slice(0, this.cursorArr.length - 2);
this.cursorArr = this.cursorArr.length === 0 ? [''] : this.cursorArr;
}
this.cursorArr = this.cursorArr.slice(0, this.cursorArr.length - 1 + index);
this.cursorArr = this.cursorArr.length === 0 ? [''] : this.cursorArr;
request({
url: '/gorse/query_users?cursor=' + this.cursorArr[this.cursorArr.length - 1],
method: 'get',
}).then(res => {
this.cursorArr.push(res.data.cursor);
res.data.users.forEach(row => {
row.labelArr = row.labels ? row.labels.split(',') : [];
});
_this.result.records = res.data.users;
this.cursorArr.push(res.data.Cursor);
_this.result.records = res.data.Users;
this.loading = false;
});
},
handleCurrentChange(val) {
_this.qo.pageNo = val;
_this.queryData();
},
showImportUserPage() {
_this.$router.push({
path: "importUser"
@@ -187,7 +165,7 @@ export default {
feedbackHistory(item) {
_this.$router.push({
path: "feedbackHistory", query: {
userId: item.fid,
userId: item.UserId,
cursorArr: JSON.stringify(_this.cursorArr)
}
});
@@ -195,7 +173,7 @@ export default {
linkUser(item) {
_this.$router.push({
path: "linkUser", query: {
userId: item.fid,
userId: item.UserId,
qo: JSON.stringify(_this.qo)
}
});
@@ -203,7 +181,7 @@ export default {
similarUser(item) {
_this.$router.push({
path: "similarUser", query: {
userId: item.fid,
userId: item.UserId,
qo: JSON.stringify(_this.qo)
}
});
@@ -211,7 +189,7 @@ export default {
recommendItem(item) {
_this.$router.push({
path: "recommendItem", query: {
userId: item.fid,
userId: item.UserId,
qo: JSON.stringify(_this.qo)
}
});
@@ -223,11 +201,11 @@ export default {
type: 'warning'
}).then(() => {
request({
url: '/risk-user/remove/' + item.id,
url: '/gorse/delete_user/' + item.UserId,
method: 'post'
}).then(res => {
_this.$message.success("删除成功");
_this.queryData();
_this.queryData(0);
});
}).catch(() => {
});
@@ -260,7 +238,7 @@ export default {
data: _this.cmd
}).then(res => {
_this.$message.success("编辑成功");
_this.queryData();
_this.queryData(0);
_this.cmdDialogVisible = false;
});
} else { // 新建

View File

@@ -8,21 +8,21 @@
</div>
<div class="block_box" style="margin-top: 20px">
<div class="title">信息</div>
<div >
<div>
<el-form label-width="50px">
<el-form-item label="时间">{{ item.createTime }}</el-form-item>
<el-form-item label="时间">{{ item.Timestamp }}</el-form-item>
<el-form-item label="类别">
<template v-for="(tag,index) in item.categoriesArr">
<template v-for="(tag,index) in item.Categories">
<el-tag :key="index">{{ tag }}</el-tag>
</template>
</el-form-item>
<el-form-item label="标签">
<template v-for="(tag,index) in item.labelsArr">
<template v-for="(tag,index) in item.Labels">
<el-tag :key="index">{{ tag }}</el-tag>
</template>
</el-form-item>
<el-form-item label="描述">
{{ item.description }}
{{ item.Comment }}
</el-form-item>
</el-form>
</div>
@@ -44,18 +44,22 @@
<el-table-column prop="ItemId" label="fid"></el-table-column>
<el-table-column prop="labels" label="类别">
<div slot-scope="scope">
<template v-for="(tag,index) in scope.row.Categories">
<el-tag :key="index" v-if="index < 5">{{ tag }}</el-tag>
<template v-if="scope.row.Categories">
<template v-for="(tag,index) in scope.row.Categories">
<el-tag :key="index" v-if="index < 5">{{ tag }}</el-tag>
</template>
<el-tag v-if="scope.row.Categories.length > 5">...</el-tag>
</template>
<el-tag v-if="scope.row.Categories.length > 5">...</el-tag>
</div>
</el-table-column>
<el-table-column prop="labels" label="标签">
<div slot-scope="scope">
<template v-for="(tag,index) in scope.row.Labels">
<el-tag :key="index" v-if="index < 5">{{ tag }}</el-tag>
<template v-if="scope.row.Labels">
<template v-for="(tag,index) in scope.row.Labels">
<el-tag :key="index" v-if="index < 5">{{ tag }}</el-tag>
</template>
<el-tag v-if="scope.row.Labels.length > 5">...</el-tag>
</template>
<el-tag v-if="scope.row.Labels.length > 5">...</el-tag>
</div>
</el-table-column>
<el-table-column prop="Comment" label="描述">
@@ -63,7 +67,7 @@
{{ scope.row.Comment.substring(0, 100) }}
</template>
</el-table-column>
<el-table-column prop="Score" label="Score" width="100">
<el-table-column prop="Score" label="相似度 [0, 1]" width="100">
<template slot-scope="scope">
{{ scope.row.Score.toFixed(5) }}
</template>
@@ -114,14 +118,9 @@ export default {
},
queryItem() {
request({
url: '/entrys/query_unique',
method: 'post',
data: {
EQS_fid: _this.gorseQo.itemId
}
url: '/gorse/get_item/' + _this.gorseQo.itemId,
method: 'get',
}).then(res => {
res.data.labelsArr = res.data.labels ? res.data.labels.split(',') : [];
res.data.categoriesArr = res.data.categories ? res.data.categories.split(',') : [];
_this.item = res.data;
});
},

View File

@@ -32,7 +32,7 @@
<el-tag v-if="scope.row.labelsArr.length > 5">...</el-tag>
</div>
</el-table-column>
<el-table-column prop="Score" label="Score">
<el-table-column prop="Score" label="相似度 [0, 1]">
<template slot-scope="scope">
{{scope.row.Score.toFixed(5)}}
</template>

View File

@@ -3,8 +3,8 @@ import {MessageBox, Message} from 'element-ui'
import store from '@/store'
import {getToken} from '@/utils/auth'
var _baseURL = "http://localhost:4026";
// var _baseURL = "http://139.9.106.207:4026";
// var _baseURL = "http://localhost:4026";
var _baseURL = "http://139.9.106.207:4026";
var _fileURL = "http://139.9.106.207:4026/web/";
// create an axios instance
const service = axios.create({