This commit is contained in:
2023-12-28 01:08:41 +08:00
parent 78eb84b2b8
commit a877721a8b
5 changed files with 633 additions and 194 deletions

View File

@@ -7,7 +7,7 @@
<div class="base-style" style="margin-top:20px;font-family: SimHei;font-size:18px;font-weight:600;margin-left:20px">
<el-row>
<el-col :span="24">
<el-button @click="openAddCategoryFun()" type="primary" plain size="medium" round >创建标签</el-button>
<el-button @click="openAddCategoryFun()" type="primary" plain size="medium" round >新增网址</el-button>
</el-col>
<el-col :span="24" style="margin-top:20px">
<el-input
@@ -22,7 +22,9 @@
<el-table class="MyTable"
:data="List"
header-row-class-name="table_header_class"
border>
border
max-height="400"
>
<el-table-column
align="center"
type="index"
@@ -31,15 +33,20 @@
label="序号"
width="50">
</el-table-column>
<el-table-column
align="center"
prop="name"
label="网站名"
width="180">
<el-table-column align="center" key="name" prop="name" label="网站名" width="190">
<template slot-scope="scope">
<el-tooltip placement="top" width="150"
trigger="hover"
effect="dark" close-delay="2000">
<div class="MyPopover" slot="content">{{scope.row.name}}</div>
<div>
<span>{{ scope.row.name.substr(0,12)}}</span>
<span v-if="(scope.row.name).length > 12">...</span>
</div>
</el-tooltip>
</template>
</el-table-column>
<el-table-column
align="center"
prop="root"
label="所属分类"
@@ -51,11 +58,18 @@
label="创建时间"
width="140">
</el-table-column>
<el-table-column
align="center"
prop="desc"
label="描述"
width="100">
<el-table-column align="center" key="desc" prop="desc" label="描述" width="100">
<!-- <template slot-scope="scope">-->
<!-- <el-tooltip placement="top" width="150"-->
<!-- trigger="hover"-->
<!-- effect="dark" close-delay="2000">-->
<!-- <div class="MyPopover" slot="content">{{scope.row.desc}}</div>-->
<!-- <div>-->
<!-- <span>{{ scope.row.desc.substr(0,12)}}</span>-->
<!-- <span v-if="(scope.row.desc).length > 12">...</span>-->
<!-- </div>-->
<!-- </el-tooltip>-->
<!-- </template>-->
</el-table-column>
<el-table-column
align="center"
@@ -89,15 +103,28 @@
</el-switch>
</template>
</el-table-column>
<el-table-column align="center" key="isNeedAgent" prop="isNeedAgent" label="是否需要代理" width="120">
<template slot-scope="scope">
<el-switch
v-model="scope.row.isNeedAgent"
:active-value="1"
:inactive-value="0"
active-color="#13ce66"
inactive-color="#ff4949"
disabled
>
</el-switch>
</template>
</el-table-column>
<el-table-column
align="center"
prop="weigh"
label="权重"
width="80">
</el-table-column>
<el-table-column prop="date" label="操作" width="160">
<el-table-column prop="date" label="操作" width="160" >
<template slot-scope="scope">
<div class="ButtonBlock">
<div class="ButtonBlock" >
<img class="MyButton" @click="handleEdit(scope.row)"
src="../../../assets/img/EditButton.svg" style="width:60px">
<img class="MyButton" @click="handleDelete(scope.row)"
@@ -106,37 +133,80 @@
</template>
</el-table-column>
</el-table>
<el-dialog title="新增分类" :visible.sync="openAddCategory" width="30%"
<div style="width:100%;height:100px"></div>
<el-dialog title="新增分类" :visible.sync="openAddCategory" width="45%"
append-to-body
:close-on-click-modal="false"
:before-close="closeDialog"
>
<el-form ref="form" :rules="rules" class="login_container" :model="form"
style="margin-top:-10px" status-icon label-width="100px" >
<el-form-item label="分类名" prop="name">
<el-input v-model="form.name" placeholder='分类名称' clearable></el-input>
<el-form-item label="网站URL" prop="name">
<el-input v-model="form.url" placeholder='网站URL' clearable></el-input>
<el-button @click="Analysis(form.url)" type="primary" plain size="medium" round >解析URL</el-button>
</el-form-item>
<el-form-item label="分类权重" prop="weigh" >
<el-input v-model="form.weigh" placeholder='分类权重' clearable ></el-input>
<el-form-item label="网站名" prop="name">
<el-input v-model="form.name" placeholder='网站名' clearable ></el-input>
</el-form-item>
<el-form-item label="用户id" prop="userId" style="display: none">
<el-input v-model="form.userId" placeholder='用户id' clearable ></el-input>
<el-form-item label="网站图标" prop="icon">
<el-input v-model="form.icon" placeholder='网站图标' clearable ></el-input>
</el-form-item>
<el-form-item label="是否启用" prop="status">
<el-radio-group v-model="form.status" >
<el-radio :label="0">有效</el-radio>
<el-radio :label="1">无效</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="是否公开" prop="needLogin">
<el-radio-group v-model="form.needLogin" >
<el-radio :label="1">公开</el-radio>
<el-radio :label="0">私有</el-radio>
</el-radio-group>
<el-form-item label="网站Tag" prop="tags">
<el-input v-model="form.tags" placeholder='网站Tag' clearable ></el-input>
</el-form-item>
<el-row>
<el-col :span="12">
<el-form-item label="网站归类" prop="cate_id">
<el-select v-model="form.cate_id" prop="cate_id"
value-key="deviceType" placeholder="请选择">
<el-option
v-for="item in Cate"
:key="item.id"
:label="item.rootName"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="分类权重" prop="weigh" >
<el-input v-model="form.weigh" placeholder='分类权重' clearable ></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否启用" prop="status">
<el-radio-group v-model="form.status" >
<el-radio :label="0">启用</el-radio>
<el-radio :label="1">禁用</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否公开" prop="needLogin">
<el-radio-group v-model="form.needLogin" >
<el-radio :label="1">公开</el-radio>
<el-radio :label="0">私有</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="需要代理" prop="is_need_agent">
<el-radio-group v-model="form.is_need_agent" >
<el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-form-item>
<div style="display: flex;flex-direction: row;align-items: center;flex-wrap: nowrap;justify-content: space-between">
<div style="display: flex;flex-direction: row;align-items: center;flex-wrap: nowrap;justify-content: space-between;width:60%">
<el-button @click="addCategory('form')" type="primary" style=";margin-top:10px">确认</el-button>
<el-button @click="reset('form')" type="success" style=";margin-top:10px">重置</el-button>
</div>
</el-form-item>
</el-form>
@@ -156,6 +226,8 @@ export default {
},
data() {
return {
// 分类列表:
Cate:[],
// 表头名字:
titlename:null,
// 新增目录页面:
@@ -170,22 +242,30 @@ export default {
form:{
name:'',
weigh:'',
needLogin:'',
status:'',
userId:'',
icon:'',
cate_id:'',
url:'',
tags:'',
desc:'',
is_need_agent:'',
},
// 校验规则
rules: {
name: [{ required: 'true', message: '请输入分类名', trigger: 'blur' }],
name: [{ required: 'true', message: '请输入网站名', trigger: 'blur' }],
weigh: [{ required: 'true', message: '请输入权重', trigger: 'blur' }],
needLogin: [{ required: 'true', message: '请完善信息', trigger: 'blur' }],
status: [{ required: 'true', message: '请输入是否启用', trigger: 'blur' }],
userId: [{ required: 'true', message: '登录信息有误', trigger: 'blur' }],
icon: [{ required: 'true', message: '请完善信息', trigger: 'blur' }],
cate_id: [{ required: 'true', message: '请完善信息', trigger: 'blur' }],
url: [{ required: 'true', message: '请完善信息', trigger: 'blur' }],
tags: [{ required: 'true', message: '请完善信息', trigger: 'blur' }],
is_need_agent: [{ required: 'true', message: '请完善信息', trigger: 'blur' }],
}
}
},
mounted() {
// this.getFormatDate();
this.GetData();
},
created() {
this.getUserInfo();
@@ -193,6 +273,36 @@ export default {
},
computed: {},
methods: {
// 重置表单:
reset(){
this.form = {
name:'',
weigh:'',
status:'',
icon:'',
cate_id:'',
url:'',
tags:'',
desc:'',
is_need_agent:'',
}
},
// 解析网址:
Analysis(url){
let that = this;
axios({
method:'post',
url:'/api/UrlAndCate/disposeUrl',
params:{
url:url
}
}).then(function(res){
that.form.icon = res.data.data.iconUrl;
that.form.name = res.data.data.title;
that.form.desc = res.data.data.description;
that.form.tags = res.data.data.keywords;
});
},
// 删除网址:
handleDelete(index) {
var that=this;
@@ -204,11 +314,10 @@ export default {
axios({
method: 'post',
// 请求的地址
url: '/api/UrlAndCate/deleteCateByCateId',
url: '/api/admin/weblist/deleteUrl',
// URL 中的查询参数
params: {
Id: index.id,
userId:this.userId,
urlId:index.urlId,
}
}).then(function (res) {
if (res.data.code === 500) {
@@ -240,13 +349,17 @@ export default {
closeDialog() {
var that = this;
// 先重置
this.GetData();
//表单重置
that.form = {
name:'',
weigh:'',
needLogin:'',
status:'',
icon:'',
cate_id:'',
url:'',
tags:'',
desc:'',
is_need_agent:'',
}
// 后关闭
this.dialogVisible = false;
@@ -255,8 +368,8 @@ export default {
// 新增按钮:
openAddCategoryFun(){
var _this = this;
console.log(_this.List);
_this.titlename="新增分类";
_this.titlename="新增网址";
console.log(this.List);
_this.openAddCategory=true;
},
// 编辑按钮:
@@ -275,14 +388,18 @@ export default {
axios({
method: 'post',
// 请求的地址
url: '/api/UrlAndCate/insertCateByUser',
url: '/api/admin/weblist/insertUrlByUser',
// URL 中的查询参数
params: {
name: this.form.name,
weigh: this.form.weigh,
icon:this.form.icon,
cate_id:this.form.cate_id,
status: this.form.status,
need_login: this.form.need_login,
is_need_agent:this.form.is_need_agent,
userId: this.form.userId,
desc: this.form.desc,
}
}).then(function (res) {
if (res.data.code === 500) {
@@ -338,7 +455,6 @@ export default {
let _this = this;
if(localStorage.getItem("Authorization") && localStorage.getItem("userId")){
_this.userId = localStorage.getItem("userId")
_this.GetData();
} else {
Vue.prototype.$notify.error({
title: '错误',
@@ -350,6 +466,7 @@ export default {
GetData(){
// 获取数据
var that = this;
axios({
method:'post',
url:'/api/UrlAndCate/disposeBookmarkToJson',
@@ -361,6 +478,11 @@ export default {
var tmp2 = [];
for(let i=0;i< tmp.length;i++){
var rootName = tmp[i].name;
var catenum = tmp[i].cateId;
var CateItem = {};
CateItem['id'] = catenum;
CateItem['rootName'] = rootName;
that.Cate.push(CateItem);
tmp[i].childUC = tmp[i].childUC.map(item=>{
return{
...item,
@@ -377,8 +499,9 @@ export default {
var D = date.getDate() + '日 ';
that.List[i].createtime = "" + Y + M + D;
}
})
});
that.form.userId = that.userId;
},
}
@@ -397,8 +520,10 @@ export default {
text-align: center;
}
.MyTable{
overflow:auto;
margin-top:10px;
width: 100%;
height:600px;
width: 95%;
background-color:var(--table-bg-color);
color:var(--theme-color);
border-radius: 5px;
@@ -418,7 +543,7 @@ export default {
border: var(--table-border) solid 3px;
}
.login_container {
width: 400px;
width: 550px;
border: 1px solid #eaeaea;
margin: 100px auto;
padding: 35px 35px 15px 35px;
@@ -435,6 +560,6 @@ export default {
::v-deep .el-dialog__body{
background-image: url("../../../assets/img/SkyPic.jpg");
margin-top:15px;
height:500px;
height:700px;
}
</style>