Merge remote-tracking branch 'origin/master'

master
陈思豪 2024-08-26 22:22:40 +08:00
commit 334c504a6e
14 changed files with 1031 additions and 201 deletions

View File

@ -40,7 +40,7 @@
"axios": "0.24.0", "axios": "0.24.0",
"clipboard": "2.0.8", "clipboard": "2.0.8",
"core-js": "3.25.3", "core-js": "3.25.3",
"echarts": "5.4.0", "echarts": "^5.5.1",
"element-ui": "2.15.14", "element-ui": "2.15.14",
"file-saver": "2.0.5", "file-saver": "2.0.5",
"fuse.js": "6.4.3", "fuse.js": "6.4.3",

View File

@ -39,5 +39,47 @@ export function del(id){
} }
//开启
export function onEngine(id){
return request({
url: "/engine/engine/onEngine/" + id,
method: "post",
data:id
})
}
//禁用
export function forbiddenEngine(id){
return request({
url: "/engine/engine/forbiddenEngine/" + id,
method: "post",
data:id
})
}
export function selectLevel(){
return request({
url: "/engine/level/selectLevelList",
method: "post"
})
}
// 查询规则引擎版本列表
export function getRuleEngineInfo(id) {
return request({
url: '/engine/engine/getRuleEngineInfo/' + id,
method: 'put'
})
}
// 通过id查询
export function findById(id) {
return request({
url: '/engine/engine/findById/' + id,
method: 'get'
})
}

View File

@ -6,3 +6,35 @@ export function getPhonePlace(tel) {
method: 'get' method: 'get'
}) })
} }
export function findConnectorList(data) {
return request({
url: '/mart/connector/findConnectorList',
method: 'post',
data:data
})
}
export function addConnector(data) {
return request({
url: '/mart/connector/addConnector',
method: 'post',
data:data
})
}
export function getDeleteConnector(connectorId) {
return request({
url: '/mart/connector/getDeleteConnector?connectorId='+connectorId,
method: 'get'
})
}
export function updateConnector(data) {
return request({
url: '/mart/connector/updateConnector',
method: 'post',
data:data
})
}

View File

@ -89,6 +89,15 @@ export function changeUserStatus(userId, status) {
}) })
} }
//对用户余额进行添加
export function addUserMoney(data) {
return request({
url: '/system/user/addUserMoney',
method: 'post',
data:data
})
}
// 查询用户个人信息 // 查询用户个人信息
export function getUserProfile() { export function getUserProfile() {
return request({ return request({

View File

@ -0,0 +1,57 @@
import request from '@/utils/request'
//查询规则引擎列表
export function list(data){
return request({
url: "/engine/version/list",
method: "get",
data:data
})
}
export function insert(data){
return request({
url: "/engine/version/insert",
method: "post",
data:data
})
}
// export function update(data){
// return request({
// url: "/engine/engine/update",
// method: "post",
// data:data
// })
// }
export function del(id){
return request({
url: "/engine/version/delete/" + id,
method: "post",
data:id
})
}
export function selectLevel(){
return request({
url: "/engine/level/selectLevelList",
method: "post"
})
}
// 查询规则引擎版本列表
export function getRuleEngineInfo(id) {
return request({
url: '/engine/engine/getRuleEngineInfo/' + id,
method: 'put'
})
}

View File

@ -1,17 +1,17 @@
<template> <template>
<div> <div>
<el-form label-width="80px" :model="engine" :inline="true" class="demo-form-inline" size="small"> <el-form label-width="80px" :model="engineReq" :inline="true" class="demo-form-inline" size="small">
<el-form-item label="规则名称"> <el-form-item label="规则名称">
<el-input v-model="engine.name"></el-input> <el-input v-model="engineReq.name"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="规则类型"> <el-form-item label="规则类型">
<el-input v-model="engine.type"></el-input> <el-input v-model="engineReq.type"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="是否激活"> <el-form-item label="是否激活">
<el-input v-model="engine.isActivate"></el-input> <el-input v-model="engineReq.isActivate"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="规则状态"> <el-form-item label="规则状态">
<el-input v-model="engine.status"></el-input> <el-input v-model="engineReq.status"></el-input>
</el-form-item> </el-form-item>
<el-button @click="select()"> <el-button @click="select()">
查询 查询
@ -26,46 +26,104 @@
v-hasPermi="['source:data:export']" v-hasPermi="['source:data:export']"
>导出 >导出
</el-button> </el-button>
<!-- 添加按钮 /-->
<el-button <el-button
icon="el-icon-delete" type="primary"
plain plain
icon="el-icon-plus"
size="mini" size="mini"
type="danger" @click="handleAdd"
@click="insert()" v-hasPermi="['source:data:add']"
>新增 >新增
</el-button> </el-button>
<el-dialog title="添加数据源接入" :visible.sync="dialogFormVisible" >
<el-form :model="engine"> <!-- 添加或修改规则引擎对话框 -->
<el-form-item label="接入源名称"> <el-dialog :title="title" :visible.sync="open" width="80%" append-to-body>
<el-input v-model="engine.id"></el-input> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
</el-form-item> <el-row>
<el-form-item label="数据来源系统名称"> <el-col :span="12">
<el-input v-model="engine.name"></el-input> <el-form-item label="规则名称" prop="name">
</el-form-item> <el-input v-model="form.name" placeholder="请输入规则名称"/>
<el-form-item label="主机地址"> </el-form-item>
<el-input v-model="engine.type"></el-input> </el-col>
</el-form-item> <el-col :span="12">
<el-form-item label="主机端口"> <el-form-item label="规则编码" prop="engineCode">
<el-input v-model="engine.scope"></el-input> <el-input v-model="form.engineCode" placeholder="请输入规则编码"/>
</el-form-item> </el-form-item>
<el-form-item label="数据接入类型"> </el-col>
<el-input v-model="engine.engineCode"></el-input> </el-row>
</el-form-item> <el-row>
<el-form-item label="数据库名称"> <el-col :span="12">
<el-input v-model="engine.isActivate"></el-input> <el-form-item label="规则类型" prop="type">
</el-form-item> <el-select v-model="form.type" placeholder="请选择规则类型" style="width: 100%">
<el-form-item label="数据库用户"> <el-option
<el-input v-model="engine.status"></el-input> v-for="dict in dict.type.rule_engine_type"
</el-form-item> :key="dict.value"
<el-form-item label="数据库密码"> :label="dict.label"
<el-input v-model="engine.description"></el-input> :value="Number(dict.value)"
</el-form-item> ></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规则级别" prop="scope">
<el-select v-model="form.scope" placeholder="请选择规则级别" style="width: 100%">
<el-option
v-for="dict in dict.type.rule_engine_level"
:key="dict.value"
:label="dict.label"
:value="Number(dict.value)"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否激活" prop="isActivate">
<el-radio-group v-model="form.isActivate">
<el-radio
v-for="dict in dict.type.rule_engine_activate_status"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规则状态" prop="status">
<el-radio-group v-model="form.status">
<el-radio
v-for="dict in dict.type.sys_normal_disable"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="规则描述">
<editor v-model="form.description" :min-height="192"/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item>
</el-col>
</el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="dialogFormVisible = false"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<el-table :data="arr" style="width: 100%"> <el-table :data="arr" style="width: 100%">
<el-table-column label="编号" prop="id"></el-table-column> <el-table-column label="编号" prop="id"></el-table-column>
<el-table-column label="名称" prop="name"></el-table-column> <el-table-column label="名称" prop="name"></el-table-column>
@ -113,33 +171,18 @@
icon="el-icon-service" icon="el-icon-service"
size="mini" size="mini"
type="text" type="text"
@click="handUpdate(scope.row.id)">规则维护</el-button> @click="handleUpdate(scope.row)">修改规则配置</el-button>
<el-button
icon="el-icon-service"
size="mini"
type="text"
@click="engineRuleMaintenance(scope.row)">规则维护</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- 分页--> <!-- 分页-->
<el-pagination <el-pagination
@size-change="handleSizeChange" @size-change="handleSizeChange"
@current-change="handleCurrentChange" @current-change="handleCurrentChange"
@ -150,25 +193,16 @@
:total="total"> :total="total">
</el-pagination> </el-pagination>
</div> </div>
</template> </template>
<script> <script>
//jsjsjson, //jsjsjson,
//import from ',
import {insertAdd} from "@/api/etl/switch";
import {del, insert, selectEngineList, update} from "@/api/engine/engine"; import {del, insert, selectEngineList, update} from "@/api/engine/engine";
export default { export default {
name: "maintenance",
dicts: ['rule_engine_activate_status', 'rule_engine_type', 'sys_normal_disable', 'rule_engine_level'],
//import使" //import使"
components: {}, components: {},
props: {}, props: {},
@ -183,9 +217,36 @@ export default {
engine:{ engine:{
}, },
title: "",
arr:[], arr:[],
dialogFormVisible:false, dialogFormVisible:false,
total:0 total:0,
form: {},
open:false,
//
rules: {
name: [
{required: true, message: "规则名称不能为空", trigger: "blur"}
],
type: [
{required: true, message: "规则类型不能为空", trigger: "change"}
],
engineCode: [
{required: true, message: "规则编码不能为空", trigger: "blur"}
],
isActivate: [
{required: true, message: "是否激活不能为空", trigger: "change"}
],
status: [
{required: true, message: "规则状态不能为空", trigger: "change"}
],
createBy: [
{required: true, message: "创建者不能为空", trigger: "blur"}
],
createTime: [
{required: true, message: "创建时间不能为空", trigger: "blur"}
],
}
}; };
}, },
// data", // data",
@ -204,13 +265,6 @@ export default {
this.engineReq.pageNum = val; this.engineReq.pageNum = val;
this.findSelectSourceList(); this.findSelectSourceList();
}, },
insert(){
this.dialogFormVisible = true
insert(this.engine).then(res =>{
this.$message.success(res.msg || "添加成功")
})
this.engine = {}
},
findSelectSourceList(){ findSelectSourceList(){
selectEngineList(this.engineReq).then(res=>{ selectEngineList(this.engineReq).then(res=>{
this.arr=res.data.list; this.arr=res.data.list;
@ -218,22 +272,60 @@ export default {
}) })
}, },
handleDelete(id){ handleDelete(id){
if (confirm("是否删除这条数据?")){
del(id).then(res =>{ del(id).then(res =>{
this.$message.success(res.msg || "删除成功") //
}) this.$message.success(res.msg || "删除成功")
},
handUpdate(){
update(this.engine).then(res =>{
this.$message.success(res.msg || "修改成功")
}) })
}
}, },
findSelectSourceExport(){ findSelectSourceExport(){
this.download('engine/engine/export', { this.download('engine/engine/export', {
...this.engineReq ...this.engineReq
}, `source_${new Date().getTime()}.xlsx`) },
`source_${new Date().getTime()}.xlsx`)
}, },
select(){ select(){
this.findSelectSourceList(); this.findSelectSourceList();
},
/** 新增按钮操作 */
handleAdd() {
// this.reset();
this.open = true;
this.title = "添加规则引擎";
},
/** 修改按钮操作 */
handleUpdate(row) {
// this.reset();
this.form = row;
this.open = true;
this.title = "修改规则引擎";
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
update(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.findSelectSourceList();
this.open = false;
})
} else {
insert(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.findSelectSourceList();
this.open = false;
})
}
}
});
},
engineRuleMaintenance(row){
this.$router.push({
path:'list',
query:{id:row.id}
})
} }
}, },
// - 访this", // - 访this",

View File

@ -0,0 +1,111 @@
<template>
<div>
<el-row :gutter="10">
<el-col :span="8" v-for="customer in scopeList" v-if="scopeList.length !== 0">
<el-card class="box-card">
<div slot="header" class="clearfix">
<span style="font-size: 18px;font-weight: 900">{{ customer.name }}</span>
<span style="font-size: 18px;font-weight: 900">{{ customer.versionCode }}</span>
<span style="font-size: 18px;font-weight: 900">{{ customer.isActivate }}</span>
<span style="font-size: 18px;font-weight: 900">{{ customer.status }}</span>
<span style="font-size: 18px;font-weight: 900">{{ customer.testStatus }}</span>
<span style="font-size: 18px;font-weight: 900">{{ customer.ruleContent }}</span>
<span style="font-size: 18px;font-weight: 900">{{ customer.engineMaintenanceId }}</span>
<span style="font-size: 18px;font-weight: 900">{{ customer.description }}</span>
</div>
<div>
<el-descriptions class="margin-top" :column="1" :size="size" border>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>版本名称</template>
{{ customer.name }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>版本编码</template>
{{ customer.versionClass }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>是否激活</template>
{{ customer.versionCode }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>版本状态</template>
{{ customer.isActivate }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>版本测试状态</template>
{{ customer.status }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>规则内容</template>
{{ customer.testStatus }}
</el-descriptions-item><el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>引擎维护编号</template>
{{ customer.ruleContent }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label"><i class="el-icon-user"></i>描述</template>
{{ customer.engineMaintenanceId }}
</el-descriptions-item>
</el-descriptions>
<el-divider content-position="left">规则引擎版本</el-divider>
</div>
</el-card>
</el-col>
</el-row>
</div>
</template>
<script>
import {findById, forbiddenEngine, getRuleEngineInfo, onEngine} from "@/api/engine/engine";
export default {
//import使"
components: {},
props: {},
data() {
//"
return {
scopeList: [],
maintenance:{}
}
},
methods: {
List(){
findById(this.maintenance.id).then(res =>{
this.scopeList = res.data;
console.log(this.scopeList)
})
},
handleStatusChange(row){
if (row.status === "Y"){
onEngine(row.id).then((res)=>{
this.$modal.msgSuccess("启用成功")
this.getList()
})
}else {
forbiddenEngine(row.id).then((res)=>{
this.$modal.msgSuccess("禁用成功")
this.getList()
})
}
},
},
// - 访this",
created() {
this.maintenance.id = this.$route.query.id
this.List();
}
}
</script>
<style scoped>
</style>

View File

@ -77,27 +77,8 @@
<el-input v-model="sourceAddReq.connectionParams"></el-input> <el-input v-model="sourceAddReq.connectionParams"></el-input>
</el-form-item> </el-form-item>
<!-- <el-form-item label="初始化连接数量">-->
<!-- <el-input v-model="sourceAddReq.initLinkNum"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="最大连接数量">-->
<!-- <el-input v-model="sourceAddReq.maxLinkNum"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="最大等待时间">-->
<!-- <el-input v-model="sourceAddReq.maxWaitTime"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="最大等待次数">-->
<!-- <el-input v-model="sourceAddReq.maxWaitTimes"></el-input>-->
<!-- </el-form-item>-->
<!-- <el-form-item label="备注">-->
<!-- <el-input v-model="sourceAddReq.remark"></el-input>-->
<!-- </el-form-item>-->
</el-form> </el-form>
<el-card class="box-card"> <el-card class="box-card">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<span>连接池配置</span> <span>连接池配置</span>

View File

@ -2,8 +2,10 @@
<el-card class="box-card"> <el-card class="box-card">
<ul class="msg-box"> <ul class="msg-box">
<li> <li>
<h4 style="margin-bottom: 15px;">充值说明</h4> <h1 style="margin-bottom: 15px;">充值说明</h1>
<h4>你敢充钱,我就敢让你没钱</h4> <h4>你敢充钱,我就敢让你没钱</h4>
<h4>子龙说你得有个小目标</h4>
<h4>什么小目标,得一个亿</h4>
</li> </li>
<li> <li>
<h4 style="margin-bottom: 15px;">支付金额</h4> <h4 style="margin-bottom: 15px;">支付金额</h4>
@ -35,11 +37,13 @@
</template> </template>
<script> <script>
import { userRecharge } from "@/api/system/user"; import {addUserMoney, userRecharge} from "@/api/system/user";
export default { export default {
data() { data() {
return { return {
amountVal: '', amountVal: '',
addSysUser: {},
disabled: false, disabled: false,
// //
returnUrl: 'http://172.13.1.1/money/money', returnUrl: 'http://172.13.1.1/money/money',
@ -82,14 +86,14 @@ export default {
// //
returnUrl: this.returnUrl, returnUrl: this.returnUrl,
// //
subject: '支付金额', subject: '充值金额',
// //
productCode: 'FAST_INSTANT_TRADE_PAY' productCode: 'FAST_INSTANT_TRADE_PAY'
} }
userRecharge(praem).then(code => { userRecharge(praem).then(code => {
if (code.code === 200) { if (code.code === 200) {
// //
this.$message.success('支付宝支付') this.$message.success('支付宝支付跳转')
const payDiv = document.getElementById('payDiv'); const payDiv = document.getElementById('payDiv');
if (payDiv) { if (payDiv) {
document.body.removeChild(payDiv); document.body.removeChild(payDiv);
@ -101,6 +105,13 @@ export default {
document.getElementById('payDiv').getElementsByTagName('form')[0].submit(); document.getElementById('payDiv').getElementsByTagName('form')[0].submit();
} }
}) })
this.addSysUser.userBalance = this.rechargeParams.totalAmt;
let userId = localStorage.getItem('userId');
this.addSysUser.userId = userId;
addUserMoney(this.addSysUser).then(res => {
}).catch(error => {
console.error('Error updating user balance:', error);
});
} }
}, },
// //

View File

@ -5,23 +5,69 @@
<p>余额{{ userBalanceData.userBalance || '加载中...' }}</p> <p>余额{{ userBalanceData.userBalance || '加载中...' }}</p>
<el-button type="primary" @click="navigateToRecharge"></el-button> <el-button type="primary" @click="navigateToRecharge"></el-button>
</el-card> </el-card>
<el-card style="margin-top: 50px">
<!-- Form -->
<h1>余额预警</h1>
<el-button type="text" @click="dialogFormVisible = true">开启</el-button>
<el-dialog title="添加预警号码" :visible.sync="dialogFormVisible">
<el-divider style="color: #00afff">
<el-tag content-position="right" type="warning">
账户可用余额小于该值时,每天短信通知一次(最多连续提醒5天)
</el-tag>
</el-divider>
<el-form :model="form">
<el-form-item label="预警阈值:" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="预警号码:" :label-width="formLabelWidth">
<el-input v-model="form.phone" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="dialogFormVisible = false"> </el-button>
</div>
</el-dialog>
</el-card>
<el-card style="margin-top: 50px">
<div>
<!-- 装ECharts的容器 -->
<div id="main" style="width: 100%; height: 520px; background: #fff">
</div>
</div>
</el-card>
</div> </div>
</template> </template>
<script> <script>
import { userBalance } from "@/api/system/user"; // userBalance@/api/money import { userBalance } from "@/api/system/user"; //
import * as echarts from 'echarts' //echarts
export default { export default {
data() { data() {
return { return {
charts: "",
dialogFormVisible: false,
formLabelWidth: '120px',
opinionData: ["155", "400", "900", "800", "300", "900", "270","684","165","0","300","150"], //
userBalanceData: { userBalanceData: {
userBalance: '加载中...' userBalance: '加载中...'
},
form:{
} }
}; };
}, },
created() { created() {
this.fetchUserBalance(); this.fetchUserBalance();
}, },
mounted() {
this.drawLine();
},
methods: { methods: {
navigateToRecharge() { navigateToRecharge() {
this.$router.push('/money/zfb'); this.$router.push('/money/zfb');
@ -37,7 +83,7 @@ export default {
const response = await userBalance(userId); const response = await userBalance(userId);
if (response.data) { if (response.data) {
console.log(response.data) console.log(response.data)
this.userBalanceData.userBalance = response.data; // response.data this.userBalanceData.userBalance = response.data;
} else { } else {
this.userBalanceData.userBalance = {userBalance: '获取失败'}; this.userBalanceData.userBalance = {userBalance: '获取失败'};
} }
@ -46,6 +92,99 @@ export default {
console.error('Error fetching user balance:', error); console.error('Error fetching user balance:', error);
} }
}, },
drawLine() {
// 线
this.charts = echarts.init(document.getElementById('main'));
// 线
this.charts.setOption({
title: {
left: "3%",
top: "5%",
text: "近12月消费趋势", //
},
tooltip: {
trigger: "axis",
},
legend: {
align: "right",
left: "3%",
top: "15%",
data: ["消费金额"], //
},
grid: {
top: "30%",
left: "5%",
right: "5%",
bottom: "5%",
containLabel: true,
},
toolbox: {
feature: {
saveAsImage: {},
},
},
// x
xAxis: {
type: "category",
boundaryGap: true,
axisTick: {
alignWithLabel: true,
},
//
data: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"],
},
// y
yAxis: {
type: "value",
boundaryGap: true,
splitNumber: 4,
interval: 250,
},
//
series: [
{
name: "消费金额", //
type: "line",
stack: "总量", //
data: this.opinionData, //
areaStyle: {
color: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
{
offset: 0,
color: "rgb(255,200,213)",
},
{
offset: 1,
color: "#ffffff",
},
],
global: false,
},
},
itemStyle: {
color: "rgb(255,96,64)",
lineStyle: {
color: "rgb(255,96,64)",
},
},
},
],
});
},
}, },
}; };
</script> </script>

View File

@ -103,7 +103,9 @@
<el-descriptions class="margin-top" :column="1" :size="size" border> <el-descriptions class="margin-top" :column="1" :size="size" border>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"><i class="el-icon-user"></i>客户名称</template> <template slot="label">
<i class="el-icon-user"></i>
客户名称</template>
{{ customer.appName }} {{ customer.appName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>

View File

@ -1,93 +1,221 @@
<template> <template>
<div> <div>
<el-row :gutter="12"> <el-button icon="el-icon-plus" type="primary" size="mini" @click="dialogFormVisible=true"></el-button>
<el-col :span="8"> <el-table
<el-card shadow="hover"> :data="tableData"
<div slot="header" class="clearfix"> style="width: 100%">
<span>手机号查询归属地</span>
<el-button style="float: right; padding: 3px 0" @click="buyPhone"></el-button> <el-table-column
<el-button style="float: right; padding: 3px 0" @click="dialogFormVisible=true"></el-button> label="id"
</div> width="100">
</el-card> <template slot-scope="scope">
</el-col> <span style="margin-left: 10px">{{ scope.row.connectorId }}</span>
<el-col :span="8"> </template>
<el-card shadow="hover"> </el-table-column>
<div slot="header" class="clearfix">
<span>IP查询归属地</span> <el-table-column
<el-button style="float: right; padding: 3px 0" @click="buyIp"></el-button> label="接口名称"
<el-button style="float: right; padding: 3px 0" @click="testIp"></el-button> width="180">
</div> <template slot-scope="scope">
</el-card> <span style="margin-left: 10px">{{ scope.row.connectorName }}</span>
</el-col> </template>
<el-col :span="8"> </el-table-column>
<el-card shadow="hover">
<div slot="header" class="clearfix"> <el-table-column
<span>新闻头条</span> label="接口分类"
<el-button style="float: right; padding: 3px 0" @click="buyNews"></el-button> width="180">
<el-button style="float: right; padding: 3px 0" @click="testNews"></el-button> <template slot-scope="scope">
</div> <span style="margin-left: 10px">{{ scope.row.connectorSort }}</span>
</el-card> </template>
</el-col> </el-table-column>
<el-col :span="8">
<el-card shadow="hover"> <el-table-column
<div slot="header" class="clearfix"> label="接口描述"
<span>气象预警</span> width="180">
<el-button style="float: right; padding: 3px 0" @click="buyWeather"></el-button> <template slot-scope="scope">
<el-button style="float: right; padding: 3px 0" @click="testWeather"></el-button> <span style="margin-left: 10px">{{ scope.row.connectorDescribe }}</span>
</div> </template>
</el-card> </el-table-column>
</el-col>
<el-col :span="8"> <el-table-column
<el-card shadow="hover"> label="接口图片"
<div slot="header" class="clearfix"> width="180">
<span>生辰助手</span> <template slot-scope="scope">
<el-button style="float: right; padding: 3px 0" @click="buyBirth"></el-button> <!-- <image-preview :src="scope.row.connectorPicture" width="50" height="50"/>-->
<el-button style="float: right; padding: 3px 0" @click="testBirth"></el-button> <el-image style="width: 100px; height: 100px" :src="scope.row.connectorPicture" :fit="fit"></el-image>
</div> </template>
</el-card> </el-table-column>
</el-col>
<el-col :span="8"> <el-table-column
<el-card shadow="hover"> label="公司"
<div slot="header" class="clearfix"> width="150">
<span>邮编查询</span> <template slot-scope="scope">
<el-button style="float: right; padding: 3px 0" @click="buyPostcodd"></el-button> <span style="margin-left: 10px">{{ scope.row.connectorCompany }}</span>
<el-button style="float: right; padding: 3px 0" @click="testPostcodd"></el-button> </template>
</div> </el-table-column>
</el-card>
</el-col> <el-table-column
</el-row> label="更新时间"
<!-- 手机号查询归属地测试--> width="180">
<el-dialog title="手机号查询归属地" :visible.sync="dialogFormVisible"> <template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.connectorTime }}</span>
</template>
</el-table-column>
<el-table-column
label="剩余次数"
width="150">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.connectorResidueDegree }}</span>
</template>
</el-table-column>
<el-table-column
label="购买次数"
width="150">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.connectorFrequency }}</span>
</template>
</el-table-column>
<el-table-column
label="状态"
width="180">
<template slot-scope="scope">
<span style="margin-left: 10px" v-if="scope.row.connectorStatus==0"></span>
<span style="margin-left: 10px" v-if="scope.row.connectorStatus==1"></span>
<span style="margin-left: 10px" v-if="scope.row.connectorStatus==2"></span>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
icon="el-icon-pear"
size="mini"
@click="handleEdit(scope.row)">编辑</el-button>
<el-button
icon="el-icon-delete"
size="mini"
type="danger"
@click="handleDelete(scope.row)">删除</el-button>
</template>
</el-table-column>
</el-table>
<!-- 新增接口-->
<el-dialog title="新增接口" :visible.sync="dialogFormVisible">
<el-form :model="form"> <el-form :model="form">
<el-form-item label="手机号" :label-width="formLabelWidth"> <el-form-item label="接口名称" :label-width="formLabelWidth">
<el-input v-model="form.name" autocomplete="off"></el-input> <el-input v-model="formLabelAlign.connectorName" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
<el-form-item :label-width="formLabelWidth">
<button @click="textPhone()"></button> <el-form-item label="接口分类" :label-width="formLabelWidth">
<el-input v-model="formLabelAlign.connectorSort" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="接口描述" :label-width="formLabelWidth">
<el-input v-model="formLabelAlign.connectorDescribe" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="接口图片" :label-width="formLabelWidth">
<el-input v-model="formLabelAlign.connectorPicture" autocomplete="off"></el-input>
<el-upload
action="https://jsonplaceholder.typicode.com/posts/"
list-type="picture-card"
:on-preview="handlePictureCardPreview"
:on-remove="handleRemove">
<i class="el-icon-plus"></i>
</el-upload>
</el-form-item>
<el-form-item label="公司" :label-width="formLabelWidth">
<el-input v-model="formLabelAlign.connectorCompany" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="剩余次数" :label-width="formLabelWidth">
<el-input v-model="formLabelAlign.connectorResidueDegree" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="购买次数" :label-width="formLabelWidth">
<el-input v-model="formLabelAlign.connectorFrequency" autocomplete="off"></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="addConnector"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
<!-- 编辑接口-->
<el-dialog title="编辑接口" :visible.sync="dialogFormVisible1">
<el-form :model="formInline">
<el-form-item label="id" :label-width="formLabelWidth">
<el-input v-model="formInline.connectorId" autocomplete="off" readonly></el-input>
</el-form-item>
<el-form-item label="接口名称" :label-width="formLabelWidth">
<el-input v-model="formInline.connectorName" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="接口分类" :label-width="formLabelWidth">
<el-input v-model="formLabelAlign.connectorSort" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="接口描述" :label-width="formLabelWidth">
<el-input v-model="formInline.connectorDescribe" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="接口图片" :label-width="formLabelWidth">
<el-input v-model="formInline.connectorPicture" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="公司" :label-width="formLabelWidth">
<el-input v-model="formInline.connectorCompany" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="剩余次数" :label-width="formLabelWidth">
<el-input v-model="formInline.connectorResidueDegree" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="购买次数" :label-width="formLabelWidth">
<el-input v-model="formInline.connectorFrequency" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="状态" :label-width="formLabelWidth">
<el-select v-model="formInline.connectorStatus" placeholder="请审核">
<el-option label="审核中" value="0">审核中</el-option>
<el-option label="审核成功" value="1">审核成功</el-option>
<el-option label="审核失败" value="2">审核失败</el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="updateConnector"> </el-button>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
//jsjsjson, //jsjsjson,
//import from ', //import from ',
import {getPhonePlace} from "@/api/port/port"; import {findConnectorList} from "@/api/port/port";
import {addConnector} from "@/api/port/port";
import {getDeleteConnector} from "@/api/port/port";
import {updateConnector} from "@/api/port/port";
export default { export default {
//import使" //import使"
components: {}, components: {},
props: {}, props: {},
data() { data() {
//" //"
return { return {
dialogFormVisible:false, formInline:{},
form:{}, form:{},
tableData:[],
formLabelAlign:{},
dialogFormVisible:false,
dialogFormVisible1:false,
}; };
}, },
// data", // data",
@ -96,12 +224,45 @@ export default {
watch: {}, watch: {},
//", //",
methods: { methods: {
textPhone(){ updateConnector(){
alert(111); updateConnector(this.formInline).then((res)=>{
alert(res.msg);
if (200==res.code){
this.findConnectorList();
this.dialogFormVisible1=false;
}
})
},
handleEdit(row){
this.formInline=row;
this.dialogFormVisible1=true;
},
handleDelete(row){
getDeleteConnector(row.connectorId).then((res)=>{
alert(res.msg);
if (200==res.code){
this.findConnectorList();
}
})
},
addConnector(){
addConnector(this.formLabelAlign).then((res)=>{
alert(res.msg);
if (200==res.code){
this.findConnectorList();
this.dialogFormVisible=false;
}
})
},
findConnectorList(){
findConnectorList(this.form).then((res)=>{
this.tableData=res.data;
})
} }
}, },
// - 访this", // - 访this",
created() { created() {
this.findConnectorList();
}, },
// - 访DOM", // - 访DOM",
mounted() { mounted() {
@ -123,24 +284,5 @@ export default {
}; };
</script> </script>
<style scoped> <style scoped>
.text {
font-size: 14px;
}
.item {
margin-bottom: 18px;
}
.clearfix:before,
.clearfix:after {
display: table;
content: "";
}
.clearfix:after {
clear: both
}
.box-card {
width: 480px;
}
</style> </style>

View File

@ -0,0 +1,212 @@
<template>
<div>
<!--条件查询-->
<el-form :model="version" >
<el-form-item label="版本编码" prop="pass">
<el-input type="text" v-model="version.versionCode" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="规则内容" prop="checkPass">
<el-input type="text" v-model="version.ruleContent" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="引擎维护编号" prop="checkPass">
<el-input type="text" v-model="version.engineMaintenanceId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm"></el-button>
</el-form-item>
</el-form>
<!-- 添加版本信息-->
<el-button type="text" @click="dialogFormVisible = true">添加版本信息</el-button>
<el-dialog title="添加信息" :visible.sync="dialogFormVisible">
<el-form :model="version">
<el-form-item label="版本类名" :label-width="formLabelWidth">
<el-input v-model="version.versionClass" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本名称" :label-width="formLabelWidth">
<el-input v-model="version.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本编码" :label-width="formLabelWidth">
<el-input v-model="version.versionCode" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="是否激活" :label-width="formLabelWidth">
<el-input v-model="version.isActivate" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本状态" :label-width="formLabelWidth">
<el-input v-model="version.status" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="版本测试状态" :label-width="formLabelWidth">
<el-input v-model="version.testStatus" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="规则内容" :label-width="formLabelWidth">
<el-input v-model="version.ruleContent" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="引擎维护编号" :label-width="formLabelWidth">
<el-input v-model="version.engineMaintenanceId" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="描述" :label-width="formLabelWidth">
<el-input v-model="version.description" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="insert"> </el-button>
</div>
</el-dialog>
<!-- 列表-->
<el-table :data="arr" style="width: 100%">
<el-table-column label="编号" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.id }}</span>
</template>
</el-table-column>
<el-table-column label="版本类名" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.versionClass }}</span>
</template>
</el-table-column>
<el-table-column label="版本名称" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.name }}</span>
</template>
</el-table-column>
<el-table-column label="版本编码" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.versionCode }}</span>
</template>
</el-table-column>
<el-table-column label="是否激活" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.isActivate }}</span>
</template>
</el-table-column>
<el-table-column label="版本状态" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.status }}</span>
</template>
</el-table-column>
<el-table-column label="版本测试状态" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.testStatus }}</span>
</template>
</el-table-column>
<el-table-column label="规则内容" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.ruleContent }}</span>
</template>
</el-table-column>
<el-table-column label="引擎维护编号" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.engineMaintenanceId }}</span>
</template>
</el-table-column>
<el-table-column label="描述" width="180">
<template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.description }}</span>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button
size="mini"
type="danger"
@click="handleDelete(scope.row.id)">删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
import {list} from "@/api/version/version";
import {del, insert} from "@/api/version/version";
export default {
//import使"
components: {},
props: {},
data() {
//"
return {
arr:[],
version:{
},
dialogFormVisible:false,
formLabelWidth: '120px'
};
},
methods: {
List(){
list(this.version).then(res =>{
this.arr = res.data;
console.log(res)
console.log(this.arr)
})
},
submitForm(){
this.List();
},
insert(){
insert(this.version).then(res =>{
this.$message.success("添加成功");
})
this.dialogFormVisible=false;
},
handleDelete(id){
if (confirm("你确定删除吗?")){
del(id).then(res =>{
this.$message.success(res.msg || "删除成功")
})
}
}
},
// - 访this",
created() {
this.List();
}
}
</script>
<style scoped>
</style>

View File

@ -38,7 +38,7 @@ module.exports = {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
target: `http://172.13.1.1/prod-api`, target: `http://172.13.1.1/prod-api`,
// target: `http://127.0.0.1/8080`, // target: `http://127.0.0.1/8080`, `http://172.13.1.1/prod-api`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: '' ['^' + process.env.VUE_APP_BASE_API]: ''