Merge remote-tracking branch 'origin/master'

master
陈思豪 2024-08-31 19:31:30 +08:00
commit eef98ad1c2
15 changed files with 1517 additions and 244 deletions

View File

@ -9,9 +9,7 @@ export function selectEngineList(data){
}) })
} }
//添加规则数据
export function insert(data){ export function insert(data){
return request({ return request({
url: "/engine/engine/insert", url: "/engine/engine/insert",
@ -20,6 +18,7 @@ export function insert(data){
}) })
} }
//修改规则数据
export function update(data){ export function update(data){
return request({ return request({
url: "/engine/engine/update", url: "/engine/engine/update",
@ -28,8 +27,7 @@ export function update(data){
}) })
} }
//通过id删除数据
export function del(id){ export function del(id){
return request({ return request({
url: "/engine/engine/delete/" + id, url: "/engine/engine/delete/" + id,
@ -38,7 +36,6 @@ export function del(id){
}) })
} }
//开启 //开启
export function onEngine(id){ export function onEngine(id){
return request({ return request({
@ -48,7 +45,6 @@ export function onEngine(id){
}) })
} }
//禁用 //禁用
export function forbiddenEngine(id){ export function forbiddenEngine(id){
return request({ return request({
@ -58,6 +54,7 @@ export function forbiddenEngine(id){
}) })
} }
//查看等级列表信息
export function selectLevel(){ export function selectLevel(){
return request({ return request({
url: "/engine/level/selectLevelList", url: "/engine/level/selectLevelList",
@ -73,13 +70,34 @@ export function getRuleEngineInfo(id) {
}) })
} }
// 通过id查询 // 通过id查询
export function findById(id) { export function findById(id) {
return request({ return request({
url: '/engine/engine/findById/' + id, url: '/engine/engine/selectEngineById/' + id,
method: 'get' method: 'post'
})
}
//通过id删除数据
export function dels(id) {
return request({
url: '/engine/engine/delete/' + id,
method: 'post',
data: id
}) })
} }
//天机规则数据
export function add(data){
return request({
url: "/engine/version/insert",
method: "post",
data:data
})
}

View File

@ -34,6 +34,39 @@ export function updateConnector(data) {
export function phonePlace(tel) { export function phonePlace(tel) {
return request({ return request({
url: '/port/list/phonePlace?tel='+tel, url: '/port/list/phonePlace?tel='+tel,
method: 'get' method: 'GET'
})
}
export function getIpPlace(ip) {
return request({
url: '/port/list/getIpPlace?ip='+ip,
method: 'GET'
})
}
export function getHeadlines() {
return request({
url: '/port/list/getHeadlines',
method: 'GET'
})
}
export function getBirthday(data) {
return request({
url: '/port/list/getBirthday',
method: 'post',
data:data
})
}
export function getPostcode(code) {
return request({
url: '/port/list/getPostcode?code='+code,
method: 'GET'
})
}
export function getWeather() {
return request({
url: '/port/list/getWeather',
method: 'GET'
}) })
} }

View File

@ -30,6 +30,26 @@ export function userRecharge(data) {
}) })
} }
// 调用第三方实名认证
export function checkRealNameAuth(data) {
return request({
url: '/system/aliyun/pay/doPost',
method: 'post',
data: data
})
}
// 充值用户余额记录
export function createRechargeRecord(data) {
return request({
url: '/system/aliyun/pay/records',
method: 'post',
data: data
})
}
// 查询用户余额 // 查询用户余额
export function userBalance(userId) { export function userBalance(userId) {
return request({ return request({

View File

@ -8,6 +8,7 @@ export function list(){
}) })
} }
//添加类型数据
export function insert(data){ export function insert(data){
return request({ return request({
url: "/engine/type/add", url: "/engine/type/add",
@ -16,6 +17,7 @@ export function insert(data){
}) })
} }
//修改类型数据
export function update(data){ export function update(data){
return request({ return request({
url: "/engine/type/update", url: "/engine/type/update",
@ -24,6 +26,7 @@ export function update(data){
}) })
} }
//删除类型数据
export function del(id){ export function del(id){
return request({ return request({
url: "/engine/type/delete/" + id, url: "/engine/type/delete/" + id,
@ -32,6 +35,7 @@ export function del(id){
}) })
} }
//导出类型数据
export function exports(data){ export function exports(data){
return request({ return request({
url: "/engine/type/export", url: "/engine/type/export",

View File

@ -9,9 +9,7 @@ export function list(data){
}) })
} }
//添加规则引擎版本数据
export function insert(data){ export function insert(data){
return request({ return request({
url: "/engine/version/insert", url: "/engine/version/insert",
@ -20,16 +18,7 @@ export function insert(data){
}) })
} }
// export function update(data){ //删除规则引擎版本信息
// return request({
// url: "/engine/engine/update",
// method: "post",
// data:data
// })
// }
export function del(id){ export function del(id){
return request({ return request({
url: "/engine/version/delete/" + id, url: "/engine/version/delete/" + id,
@ -38,7 +27,7 @@ export function del(id){
}) })
} }
//查看等级列表
export function selectLevel(){ export function selectLevel(){
return request({ return request({
url: "/engine/level/selectLevelList", url: "/engine/level/selectLevelList",

View File

@ -1,366 +1,677 @@
<template> <template>
<div> <div>
<el-form label-width="80px" :model="engineReq" :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="engineReq.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-select v-model="engineReq.type" placeholder="请选择类型"> <el-select v-model="engineReq.type" placeholder="请选择类型">
<el-option label="字段类型" value="1"></el-option> <el-option label="字段类型" value="1"></el-option>
<el-option label="基本类型" value="2"></el-option> <el-option label="基本类型" value="2"></el-option>
<el-option label="引用类型" value="3"></el-option> <el-option label="引用类型" value="3"></el-option>
<el-option label="时间类型" value="4"></el-option> <el-option label="时间类型" value="4"></el-option>
<el-option label="转换类型" value="5"></el-option> <el-option label="转换类型" value="5"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否激活"> <el-form-item label="是否激活">
<el-select v-model="engineReq.isActivate" placeholder="是否激活"> <el-select v-model="engineReq.isActivate" placeholder="是否激活">
<el-option label="已激活" value="1"></el-option> <el-option label="已激活" value="1"></el-option>
<el-option label="未激活" value="2"></el-option> <el-option label="未激活" value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="规则状态"> <el-form-item label="规则状态">
<el-select v-model="engineReq.status" placeholder="规则状态"> <el-select v-model="engineReq.status" placeholder="规则状态">
<el-option label="开启" value="1"></el-option> <el-option label="开启" value="1"></el-option>
<el-option label="关闭" value="2"></el-option> <el-option label="关闭" value="2"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-button @click="select()"> <el-button @click="select()">
查询 查询
</el-button> </el-button>
<el-button @click="clears()"> <el-button @click="clears()">
重置 重置
</el-button> </el-button>
</el-form> </el-form>
<el-button
type="warning" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="findSelectSourceExport"
plain v-hasPermi="['source:data:export']">导出
icon="el-icon-download"
size="mini"
@click="findSelectSourceExport"
v-hasPermi="['source:data:export']"
>导出
</el-button> </el-button>
<!-- 添加按钮 /--> <!-- 添加按钮 /-->
<el-button <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['source:data:add']">
type="primary" 新增
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['source:data:add']"
>新增
</el-button> </el-button>
<!-- 添加或修改规则引擎对话框 --> <!-- 添加或修改规则引擎对话框 -->
<el-dialog :title="title" :visible.sync="open" width="80%" append-to-body> <el-dialog :title="title" :visible.sync="open" width="80%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="规则名称" prop="name"> <el-form-item label="规则名称" prop="name">
<el-input v-model="form.name" placeholder="请输入规则名称"/> <el-input v-model="form.name" placeholder="请输入规则名称"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="规则编码" prop="engineCode"> <el-form-item label="规则编码" prop="engineCode">
<el-input v-model="form.engineCode" placeholder="请输入规则编码"/> <el-input v-model="form.engineCode" placeholder="请输入规则编码"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="规则类型" prop="type"> <el-form-item label="规则类型" prop="type">
<el-select v-model="form.type" placeholder="请选择规则类型" style="width: 100%"> <el-select v-model="form.type" placeholder="请选择规则类型" style="width: 100%">
<el-option <el-option
v-for="dict in dict.type.rule_engine_type" v-for="dict in dict.type.rule_engine_type"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="Number(dict.value)" :value="Number(dict.value)"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="规则级别" prop="scope"> <el-form-item label="规则级别" prop="scope">
<el-select v-model="form.scope" placeholder="请选择规则级别" style="width: 100%"> <el-select v-model="form.scope" placeholder="请选择规则级别" style="width: 100%">
<el-option <el-option
v-for="dict in dict.type.rule_engine_level" v-for="dict in dict.type.rule_engine_level"
:key="dict.value" :key="dict.value"
:label="dict.label" :label="dict.label"
:value="Number(dict.value)" :value="Number(dict.value)"
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="是否激活" prop="isActivate"> <el-form-item label="是否激活" prop="isActivate">
<el-radio-group v-model="form.isActivate"> <el-radio-group v-model="form.isActivate">
<el-radio <el-radio
v-for="dict in dict.type.rule_engine_activate_status" v-for="dict in dict.type.rule_engine_activate_status"
:key="dict.value" :key="dict.value"
:label="dict.value" :label="dict.value"
>{{ dict.label }} >{{ dict.label }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="规则状态" prop="status"> <el-form-item label="规则状态" prop="status">
<el-radio-group v-model="form.status"> <el-radio-group v-model="form.status">
<el-radio <el-radio
v-for="dict in dict.type.sys_normal_disable" v-for="dict in dict.type.sys_normal_disable"
:key="dict.value" :key="dict.value"
:label="dict.value" :label="dict.value"
>{{ dict.label }} >{{ dict.label }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row> <el-row>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="规则描述"> <el-form-item label="规则描述">
<editor v-model="form.description" :min-height="192"/> <editor v-model="form.description" :min-height="192"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="24"> <el-col :span="24">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/> <el-input v-model="form.remark" type="textarea" placeholder="请输入内容"/>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </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>
<el-table-column label="类型" style="color: #13ce66" prop="type"> <el-table-column label="类型" style="color: #13ce66" prop="type">
<template v-slot="scope"> <template v-slot="scope">
<span v-if="scope.row.type==1"></span> <span v-if="scope.row.type==1"></span>
<span v-if="scope.row.type==2"></span> <span v-if="scope.row.type==2"></span>
<span v-if="scope.row.type==3"></span> <span v-if="scope.row.type==3"></span>
<span v-if="scope.row.type==4"></span> <span v-if="scope.row.type==4"></span>
<span v-if="scope.row.type==4"></span> <span v-if="scope.row.type==4"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="作用域" style="color: blue" prop="scope">
<el-table-column label="作用域" style="color: blue" prop="scope">
<template v-slot="scope"> <template v-slot="scope">
<span v-if="scope.row.scope==1"></span> <span v-if="scope.row.scope==1"></span>
<span v-if="scope.row.scope==2"></span> <span v-if="scope.row.scope==2"></span>
<span v-if="scope.row.scope==3"></span> <span v-if="scope.row.scope==3"></span>
<span v-if="scope.row.scope==4"></span> <span v-if="scope.row.scope==4"></span>
<span v-if="scope.row.scope==5"></span> <span v-if="scope.row.scope==5"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="引擎编码" prop="engineCode"></el-table-column> <el-table-column label="引擎编码" prop="engineCode"></el-table-column>
<el-table-column label="是否激活" style="color: red" prop="isActivate"> <el-table-column label="是否激活" style="color: red" prop="isActivate">
<template v-slot="scope"> <template v-slot="scope">
<span v-if="scope.row.isActivate==1"></span> <span v-if="scope.row.isActivate==1"></span>
<span v-if="scope.row.isActivate==2"></span> <span v-if="scope.row.isActivate==2"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="状态" style="color: #787be8" prop="status">
<el-table-column label="状态" style="color: #787be8" prop="status">
<template v-slot="scope"> <template v-slot="scope">
<span v-if="scope.row.status==1"></span> <span v-if="scope.row.status==1"></span>
<span v-if="scope.row.status==2"></span> <span v-if="scope.row.status==2"></span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="描述" prop="description"></el-table-column> <el-table-column label="描述" prop="description"></el-table-column>
<el-table-column <el-table-column
align="right"> align="right">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
icon="el-icon-delete"
size="mini"
type="text"
@click="handleDelete(scope.row.id)">删除</el-button>
<el-button
icon="el-icon-service"
size="mini"
type="text"
@click="handleUpdate(scope.row)">修改规则配置</el-button>
<el-button <el-button
icon="el-icon-service"
icon="el-icon-delete"
size="mini" size="mini"
type="text" type="text"
@click="engineRuleMaintenance(scope.row)">规则维护</el-button>
@click="handleDelete(scope.row.id)">删除
</el-button>
<el-button
icon="el-icon-service"
size="mini"
type="text"
@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"
:current-page="engineReq.pageNum" :current-page="engineReq.pageNum"
:page-sizes="[1, 2, 3, 4, 5]" :page-sizes="[1, 2, 3, 4, 5]"
:page-size="engineReq.pageSize" :page-size="engineReq.pageSize"
layout="total, sizes, prev, pager, next, jumper" layout="total, sizes, prev, pager, next, jumper"
:total="total"> :total="total">
</el-pagination> </el-pagination>
</div> </div>
</template> </template>
<script> <script>
//jsjsjson, //jsjsjson,
import {del, insert, selectEngineList, update} from "@/api/engine/engine"; import {del, insert, selectEngineList, update} from "@/api/engine/engine";
export default { export default {
name: "maintenance", name: "maintenance",
dicts: ['rule_engine_activate_status', 'rule_engine_type', 'sys_normal_disable', 'rule_engine_level'], dicts: ['rule_engine_activate_status', 'rule_engine_type', 'sys_normal_disable', 'rule_engine_level'],
//import使" //import使"
components: {}, components: {},
props: {}, props: {},
data() { data() {
//" //"
return { return {
engineReq:{
pageNum:1, engineReq: {
pageSize:5
}, pageNum: 1,
engine:{
pageSize: 5
}, },
engine: {},
title: "", title: "",
arr:[],
dialogFormVisible:false, arr: [],
total:0,
dialogFormVisible: false,
total: 0,
form: {}, form: {},
open:false,
open: false,
// //
rules: { rules: {
name: [ name: [
{required: true, message: "规则名称不能为空", trigger: "blur"} {required: true, message: "规则名称不能为空", trigger: "blur"}
], ],
type: [ type: [
{required: true, message: "规则类型不能为空", trigger: "change"} {required: true, message: "规则类型不能为空", trigger: "change"}
], ],
engineCode: [ engineCode: [
{required: true, message: "规则编码不能为空", trigger: "blur"} {required: true, message: "规则编码不能为空", trigger: "blur"}
], ],
isActivate: [ isActivate: [
{required: true, message: "是否激活不能为空", trigger: "change"} {required: true, message: "是否激活不能为空", trigger: "change"}
], ],
status: [ status: [
{required: true, message: "规则状态不能为空", trigger: "change"} {required: true, message: "规则状态不能为空", trigger: "change"}
], ],
createBy: [ createBy: [
{required: true, message: "创建者不能为空", trigger: "blur"} {required: true, message: "创建者不能为空", trigger: "blur"}
], ],
createTime: [ createTime: [
{required: true, message: "创建时间不能为空", trigger: "blur"} {required: true, message: "创建时间不能为空", trigger: "blur"}
], ],
} }
}; };
}, },
// data", // data",
computed: {}, computed: {},
//data", //data",
watch: {}, watch: {},
//", //",
methods: { methods: {
handleSizeChange(val) { handleSizeChange(val) {
console.log(`每页 ${val}`); console.log(`每页 ${val}`);
this.engineReq.pageSize = val; this.engineReq.pageSize = val;
this.findSelectSourceList(); this.findSelectSourceList();
}, },
handleCurrentChange(val) { handleCurrentChange(val) {
console.log(`当前页: ${val}`); console.log(`当前页: ${val}`);
this.engineReq.pageNum = val; this.engineReq.pageNum = val;
this.findSelectSourceList(); this.findSelectSourceList();
}, },
findSelectSourceList(){
selectEngineList(this.engineReq).then(res=>{ findSelectSourceList() {
this.arr=res.data.list;
this.total=res.data.total; selectEngineList(this.engineReq).then(res => {
this.arr = res.data.list;
this.total = res.data.total;
}) })
}, },
handleDelete(id){
if (confirm("是否删除这条数据?")){ handleDelete(id) {
del(id).then(res =>{
if (confirm("是否删除这条数据?")) {
del(id).then(res => {
// //
this.$message.success(res.msg || "删除成功") 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() { handleAdd() {
// this.reset(); // this.reset();
this.open = true; this.open = true;
this.title = "添加规则引擎"; this.title = "添加规则引擎";
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
// this.reset(); // this.reset();
this.form = row; this.form = row;
this.open = true; this.open = true;
this.title = "修改规则引擎"; this.title = "修改规则引擎";
}, },
/** 提交按钮 */ /** 提交按钮 */
submitForm() { submitForm() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
if (this.form.id != null) { if (this.form.id != null) {
update(this.form).then(response => { update(this.form).then(response => {
this.$modal.msgSuccess("修改成功"); this.$modal.msgSuccess("修改成功");
this.findSelectSourceList(); this.findSelectSourceList();
this.open = false; this.open = false;
}) })
} else { } else {
insert(this.form).then(response => { insert(this.form).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.findSelectSourceList(); this.findSelectSourceList();
this.open = false; this.open = false;
}) })
} }
} }
}); });
}, },
engineRuleMaintenance(row){
engineRuleMaintenance(row) {
this.$router.push({ this.$router.push({
path:'list',
query:{id:row.id} path: 'list',
query: {id: row.id}
}) })
}, },
clears(){
clears() {
this.engineReq = { this.engineReq = {
name: '', name: '',
type: '', type: '',
isActivate: '', isActivate: '',
status: '' status: ''
}; };
} }
}, },
// - 访this", // - 访this",
created() { created() {
this.findSelectSourceList(); this.findSelectSourceList();
}, },
// - 访DOM", // - 访DOM",
mounted() { mounted() {
}, },
beforeCreate() { beforeCreate() {
}, // - ", }, // - ",
beforeMount() { beforeMount() {
}, // - ", }, // - ",

View File

@ -1,112 +1,367 @@
<template> <template>
<div> <div>
<el-row :gutter="10"> <div style="height: 30px">
<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> {{ maintenance.name }}<br>
<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> </div>
<template slot="label"><i class="el-icon-user"></i>描述</template>
{{ customer.engineMaintenanceId }}
</el-descriptions-item>
</el-descriptions> <div style="height: 50px">
<el-divider content-position="left">规则引擎版本</el-divider>
</div> 规则名称:{{ maintenance.name }}<br>
</el-card>
</el-col> 规则类型:<span v-if="maintenance.type==1"></span>
</el-row>
<span v-if="maintenance.type==2"></span>
<span v-if="maintenance.type==3"></span>
<span v-if="maintenance.type==4"></span>
<span v-if="maintenance.type==5"></span><br>
作用域:<span v-if="maintenance.scope==1"></span>
<span v-if="maintenance.scope==2"></span>
<span v-if="maintenance.scope==3"></span>
<span v-if="maintenance.scope==4"></span>
<span v-if="maintenance.scope==5"></span><br>
引擎编码:{{ maintenance.engineCode }}<br>
是否激活:<span v-if="maintenance.isActivate==1"></span>
<span v-if="maintenance.isActivate==2"></span><br>
状态:<span v-if="maintenance.isActivate==1"></span>
<span v-if="maintenance.isActivate==2"></span>
<span v-if="maintenance.isActivate==3"></span>
<span v-if="maintenance.isActivate==4"></span>
<br>
<button @click="onEngine(maintenance.id)"></button>
</div>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<el-button type="text" @click="dialogFormVisible = true">新增</el-button>
<el-dialog title="收货地址" :visible.sync="dialogFormVisible">
<el-form :model="maintenance">
<el-form-item label="名称" :label-width="formLabelWidth">
<el-input v-model="maintenance.name" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="类型" :label-width="formLabelWidth">
<el-input v-model="maintenance.type" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="作用域" :label-width="formLabelWidth">
<el-input v-model="maintenance.scope" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="是否激活" :label-width="formLabelWidth">
<el-input v-model="maintenance.isActivate" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="状态" :label-width="formLabelWidth">
<el-input v-model="maintenance.status" 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=handleInsert()> </el-button>
</div>
</el-dialog>
<el-table :data="maintenance.engineMaintenanceList" style="width: 100%">
<el-table-column label="编号" width="180">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span style="margin-left: 10px">{{ scope.row.id }}</span>
</template>
</el-table-column>
<el-table-column label="名称" width="180">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span style="margin-left: 10px">{{ scope.row.name }}</span>
</template>
</el-table-column>
<el-table-column label="类型" width="180">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span style="margin-left: 10px" v-if="scope.row.type==1"></span>
<span style="margin-left: 10px" v-if="scope.row.type==2"></span>
<span style="margin-left: 10px" v-if="scope.row.type==3"></span>
<span style="margin-left: 10px" v-if="scope.row.type==4"></span>
<span style="margin-left: 10px" v-if="scope.row.type==5"></span>
</template>
</el-table-column>
<el-table-column label="作用域" width="180">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span style="margin-left: 10px" v-if="scope.row.scope==1"></span>
<span style="margin-left: 10px" v-if="scope.row.scope==2"></span>
<span style="margin-left: 10px" v-if="scope.row.scope==3"></span>
<span style="margin-left: 10px" v-if="scope.row.scope==4"></span>
<span style="margin-left: 10px" v-if="scope.row.scope==5"></span>
</template>
</el-table-column>
<el-table-column label="是否激活" width="180">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span style="margin-left: 10px" v-if="scope.row.isActivate==1"></span>
<span style="margin-left: 10px" v-if="scope.row.isActivate==2"></span>
</template>
</el-table-column>
<el-table-column label="状态" width="180">
<template slot-scope="scope">
<i class="el-icon-time"></i>
<span style="margin-left: 10px" v-if="scope.row.status==1"></span>
<span style="margin-left: 10px" v-if="scope.row.status==2"></span>
<span style="margin-left: 10px" v-if="scope.row.status==3"></span>
<span style="margin-left: 10px" v-if="scope.row.status==4"></span>
</template>
</el-table-column>
<el-table-column label="操作">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="del(scope.row.id)">
</el-button>
<el-button size="mini" type="danger" @click="onEngine(scope.row.id)">
</el-button>
<el-button size="mini" type="danger" @click="forbiddenEngine(scope.row.id)">
</el-button>
</template>
</el-table-column>
</el-table>
</div> </div>
</template> </template>
<script> <script>
import {findById, forbiddenEngine, onEngine} from "@/api/engine/engine"; import {add, dels, findById, onEngine} from "@/api/engine/engine";
import {insert} from "@/api/version/version";
export default { export default {
dicts: ['rule_engine_activate_status', 'rule_engine_type', 'sys_normal_disable', 'rule_engine_level'],
//import使" //import使"
components: {}, components: {},
props: {}, props: {},
data() { data() {
//" //"
return { return {
scopeList: [],
maintenance:{} direction: 'rtl',
maintenance: {
engineMaintenanceList: [],
},
title: "",
open: false,
handleClose: false,
form: {},
size: '',
dialogFormVisible: false,
formLabelWidth: '120px',
} }
}, },
methods: { methods: {
List(){
findById(this.maintenance.id).then(res =>{ handleInsert() {
this.scopeList = res.data;
console.log(this.scopeList) this.dialogFormVisible = true
add(this.maintenance).then(res => {
this.$modal.msgSuccess("新增成功")
}) })
}, },
handleStatusChange(row){
if (row.status === "Y"){ onEngine(id) {
onEngine(row.id).then((res)=>{
this.$modal.msgSuccess("启用成功") onEngine(id).then(res => {
this.getList()
}) this.$modal.msgSuccess("激活成功")
}else {
forbiddenEngine(row.id).then((res)=>{ })
this.$modal.msgSuccess("禁用成功")
this.getList() },
forbiddenEngine(id) {
onEngine(id).then(res => {
this.$modal.msgSuccess("禁用成功")
})
},
List() {
findById(this.maintenance.id).then(res => {
this.maintenance = res.data;
})
},
del(id) {
if (confirm("你确定删除吗?")) {
dels(id).then(res => {
this.$message.success(res.msg || "删除成功");
}) })
} }
},
}
}, },
// - 访this", // - 访this",
created() { created() {
this.maintenance.id = this.$route.query.id this.maintenance.id = this.$route.query.id
this.List(); this.List();
} }
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>

View File

@ -0,0 +1,11 @@
<script setup>
</script>
<template>
</template>
<style scoped lang="scss">
</style>

View File

@ -2,19 +2,32 @@
<div style="padding: 20px;"> <div style="padding: 20px;">
<h1 style="text-align: center; margin-bottom: 30px;">充值明细</h1> <h1 style="text-align: center; margin-bottom: 30px;">充值明细</h1>
<el-divider></el-divider> <el-divider></el-divider>
<el-form ref="queryForm" :inline="true" :model="queryParams" size="small">
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
end-placeholder="结束日期"
range-separator="-"
start-placeholder="开始日期"
style="width: 240px"
type="daterange"
value-format="yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button icon="el-icon-search" size="mini" type="primary" @click="handleQuery"></el-button>
</el-form-item>
</el-form>
<el-row> <el-row>
<el-col :span="50"></el-col> <el-button
<el-col :span="5" :offset="15"> v-hasPermi="['system:pay:export']"
<el-button icon="el-icon-download"
v-hasPermi="['system:pay:export']" plain
icon="el-icon-download" size="mini"
plain type="warning"
size="mini" @click="handleExport"
type="warning" >导出
@click="handleExport" </el-button>
>导出
</el-button>
</el-col>
</el-row> </el-row>
<el-table <el-table
@ -79,6 +92,7 @@ export default {
components: {PanelGroup}, components: {PanelGroup},
data() { data() {
return { return {
dateRange: [],
listDate: [], listDate: [],
total: 0, total: 0,
queryParams: { queryParams: {
@ -91,6 +105,11 @@ export default {
this.getList(); this.getList();
}, },
methods: { methods: {
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 导出按钮操作 */ /** 导出按钮操作 */
handleExport() { handleExport() {
this.download('system/user/export', { this.download('system/user/export', {
@ -98,7 +117,7 @@ export default {
}, `pay_${new Date().getTime()}.xlsx`) }, `pay_${new Date().getTime()}.xlsx`)
}, },
getList() { getList() {
userPayinfo(this.addDateRange(this.queryParams)).then(response => { userPayinfo(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.listDate = response.data.rows; this.listDate = response.data.rows;
this.total = response.data.total; this.total = response.data.total;
} }

View File

@ -44,7 +44,7 @@ export default {
addSysUser: {}, addSysUser: {},
disabled: false, disabled: false,
// //
returnUrl:'http://localhost/money/money', returnUrl:'http://172.13.1.1//money/money',
// //
rechargeParams: { rechargeParams: {
"totalAmt": '', // "totalAmt": '', //

View File

@ -4,6 +4,25 @@
<h1>用户余额</h1> <h1>用户余额</h1>
<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-dialog
title="实名认证"
:visible.sync="dialogVisible"
width="30%"
@close="handleDialogClose"
>
<el-form :model="authForm" :rules="rules" ref="authFormRef">
<el-form-item label="姓名" :label-width="formLabelWidth">
<el-input v-model="authForm.name"></el-input>
</el-form-item>
<el-form-item label="身份证号" :label-width="formLabelWidth">
<el-input v-model="authForm.idCard"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="handleCancel"></el-button>
<el-button type="primary" @click="handleConfirm"></el-button>
</div>
</el-dialog>
</el-card> </el-card>
@ -44,22 +63,36 @@
</template> </template>
<script> <script>
import { userBalance } from "@/api/system/user"; // import {userBalance} from "@/api/system/user"; //
import * as echarts from 'echarts' //echarts import * as echarts from 'echarts' //echarts
import {checkRealNameAuth} from "@/api/system/user";
export default { export default {
data() { data() {
return { return {
charts: "", charts: "",
dialogVisible: false,
dialogFormVisible: false, dialogFormVisible: false,
formLabelWidth: '120px', formLabelWidth: '120px',
opinionData: ["155", "400", "900", "800", "300", "900", "270","684","165","0","300","150"], // opinionData: ["155", "400", "900", "800", "300", "900", "270", "684", "165", "0", "300", "150"], //
userBalanceData: { userBalanceData: {
userBalance: '加载中...' userBalance: '加载中...'
}, },
form:{ authForm: {
name: '',
} idCard: ''
},
rules: {
name: [
{required: true, message: '请输入姓名', trigger: 'blur'},
{min: 2, max: 10, message: '姓名长度在 2 到 10 个字符', trigger: 'blur'}
],
idCard: [
{required: true, message: '请输入身份证号', trigger: 'blur'},
{pattern: /^\d{17}[\dXx]$/, message: '身份证号格式不正确', trigger: 'blur'}
],
},
form: {}
}; };
}, },
created() { created() {
@ -69,8 +102,51 @@ export default {
this.drawLine(); this.drawLine();
}, },
methods: { methods: {
navigateToRecharge() { handleCancel() {
this.$router.push('/money/zfb'); this.dialogVisible = false;
},
handleDialogClose() {
this.authForm.name = '';
this.authForm.idCard = '';
},
async navigateToRecharge() {
try {
const response = await checkRealNameAuth(this.authForm);
if (response.data && response.data.desc) {
//
this.$router.push('/money/zfb');
} else {
//
this.dialogVisible = true;
}
} catch (error) {
this.$message.error('实名认证检查失败,请稍后再试');
console.error('实名认证检查失败:', error);
}
},
async handleConfirm() {
this.$refs.authFormRef.validate(async (valid) => {
if (valid) {
try {
const {name, idCard} = this.authForm;
const authResponse = await checkRealNameAuth(this.authForm);
if (authResponse.data && authResponse.data.desc) {
this.$message.success('实名认证成功');
this.dialogVisible = false;
this.$router.push('/money/zfb');
} else {
this.$message.error('实名认证失败,请检查您的信息');
}
} catch (error) {
this.$message.error('实名认证验证失败,请稍后再试');
console.error('实名认证验证失败:', error);
}
} else {
console.log('error submit!!');
return false;
}
});
}, },
async fetchUserBalance() { async fetchUserBalance() {
try { try {

View File

@ -1,7 +1,7 @@
<template> <template>
<div> <div>
<el-row :gutter="50"> <el-row :gutter="50">
<el-col :span="7" v-for="connector in connectorList" v-if="connectorList.length !== 0"> <el-col :span="7" v-for="connector in connectorList" :key="connector.connectorId" v-if="connectorList.length !== 0">
<el-card class="box-card" style="margin-top: 15px;width: 500px; height: 600px;" shadow="hover"> <el-card class="box-card" style="margin-top: 15px;width: 500px; height: 600px;" shadow="hover">
<div slot="header" class="clearfix"> <div slot="header" class="clearfix">
<h1 style="font-weight: bold">{{connector.connectorName}}</h1> <h1 style="font-weight: bold">{{connector.connectorName}}</h1>
@ -14,26 +14,136 @@
<span style="font-weight: bold;font-size: 20px">价格</span> <span style="font-weight: bold;font-size: 20px">价格</span>
{{connector.connectorPrice}}/<br> {{connector.connectorPrice}}/<br>
<el-button type="primary" style="float: right; padding: 10px 10px" @click="dialogFormVisible=true" v-if="connector.connectorName=='手机号查询归属地'"></el-button> <el-button type="primary" style="float: right; padding: 10px 10px" @click="testPhone()" v-if="connector.connectorName=='手机号查询归属地'">API</el-button>
<el-button type="primary" style="float: right; padding: 10px 10px" @click="buyIP(connector)" v-if="connector.connectorName=='IP查询归属地'"></el-button> <el-button type="primary" style="float: right; padding: 10px 10px" @click="testIP()" v-if="connector.connectorName=='IP查询归属地'">API</el-button>
<el-button type="primary" style="float: right; padding: 10px 10px" @click="buyNews(connector)" v-if="connector.connectorName=='新闻头条'"></el-button> <el-button type="primary" style="float: right; padding: 10px 10px" @click="testNews()" v-if="connector.connectorName=='新闻头条'">API</el-button>
<el-button type="primary" style="float: right; padding: 10px 10px" @click="buyWeather(connector)" v-if="connector.connectorName=='气象预警'"></el-button> <el-button type="primary" style="float: right; padding: 10px 10px" @click="testWeather()" v-if="connector.connectorName=='气象预警'">API</el-button>
<el-button type="primary" style="float: right; padding: 10px 10px" @click="buyBirthdate(connector)" v-if="connector.connectorName=='生辰助手'"></el-button> <el-button type="primary" style="float: right; padding: 10px 10px" @click="testBirthdate()" v-if="connector.connectorName=='生辰助手'">API</el-button>
<el-button type="primary" style="float: right; padding: 10px 10px" @click="buyMailbox(connector)" v-if="connector.connectorName=='邮编查询'"></el-button> <el-button type="primary" style="float: right; padding: 10px 10px" @click="testMailbox()" v-if="connector.connectorName=='邮编查询'">API</el-button>
</el-card> </el-card>
</el-col> </el-col>
</el-row> </el-row>
<!-- 手机号查询归属地-->
<el-dialog title="手机查询归属地" :visible.sync="dialogFormVisible"> <el-dialog title="手机查询归属地" :visible.sync="dialogFormVisible">
<el-form :model="formInline"> <el-form :model="formInline">
<el-form-item label="手机号" :label-width="formLabelWidth"> <el-form-item label="手机号" :label-width="formLabelWidth">
<el-input v-model="formInline.tel" autocomplete="off"></el-input> <el-input v-model="formInline.tel" autocomplete="off" placeholder="请输入手机号"></el-input>
</el-form-item> </el-form-item>
<span style="font-weight: bold;font-size: 20px" v-if="formInline.reason==true">
省份{{this.formInline.province}}<br>
城市{{this.formInline.city}}<br>
区号{{this.formInline.areacode}}<br>
邮编{{this.formInline.zip}}<br>
运营商{{this.formInline.company}}<br>
</span>
</el-form> </el-form>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button type="primary" @click="buyPhone(tel)"></el-button> <el-button type="primary" @click="phonePlace()"></el-button>
</div> </div>
</el-dialog> </el-dialog>
<!--IP查询归属地-->
<el-dialog title="IP查询归属地" :visible.sync="dialogFormVisible1">
<el-form :model="formIp">
<el-form-item label="IP" >
<el-input v-model="formIp.ip" autocomplete="off" placeholder="请输入ip"></el-input>
</el-form-item>
<span style="font-weight: bold;font-size: 20px" v-if="formIp.reason==true">
国家{{this.formIp.country}}<br>
省份{{this.formIp.province}}<br>
城市{{this.formIp.city}}<br>
运营商{{this.formIp.isp}}<br>
</span>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="getIpPlace()"></el-button>
</div>
</el-dialog>
<!-- 新闻头条-->
<el-dialog title="新闻头条" :visible.sync="dialogTableVisible">
<el-table :data="gridData">
<el-table-column property="title" label="新闻标题" width="150"></el-table-column>
<el-table-column property="date" label="新闻时间" width="200"></el-table-column>
<el-table-column property="category" label="新闻分类"></el-table-column>
<el-table-column property="authorName" label="新闻来源"></el-table-column>
</el-table>
</el-dialog>
<!--生辰助手-->
<el-dialog title="生辰助手" :visible.sync="dialogFormVisible2">
<el-form :model="formBirthday">
<el-form-item label="年" >
<el-input v-model="formBirthday.year" autocomplete="off" placeholder="请输入年份"></el-input>
</el-form-item>
<el-form-item label="月" >
<el-input v-model="formBirthday.month" autocomplete="off" placeholder="请输入月份"></el-input>
</el-form-item>
<el-form-item label="日" >
<el-input v-model="formBirthday.day" autocomplete="off" placeholder="请输入几号"></el-input>
</el-form-item>
<el-form-item label="时" >
<el-input v-model="formBirthday.hour" autocomplete="off" placeholder="请输入几点"></el-input>
</el-form-item>
<span style="font-weight: bold;font-size: 20px" v-if="formBirthday.reason==true">
years {{this.formBirthday.years}}<br>
months {{this.formBirthday.months}}<br>
days {{this.formBirthday.days}}<br>
animal {{this.formBirthday.animal}}<br>
imonthcn {{this.formBirthday.imonthcn}}<br>
idaycn {{this.formBirthday.idaycn}}<br>
cyear {{this.formBirthday.cyear}}<br>
cmonth {{this.formBirthday.cmonth}}<br>
cday {{this.formBirthday.cday}}<br>
gzyear {{this.formBirthday.gzyear}}<br>
gzmonth {{this.formBirthday.gzmonth}}<br>
gzday {{this.formBirthday.gzday}}<br>
isleap {{this.formBirthday.isleap}}<br>
ncweek {{this.formBirthday.ncweek}}<br>
isterm {{this.formBirthday.isterm}}<br>
term {{this.formBirthday.term}}<br>
astro {{this.formBirthday.astro}}<br>
eightall {{this.formBirthday.eightall}}<br>
fiveall {{this.formBirthday.fiveall}}
</span>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="getBirthday()"></el-button>
</div>
</el-dialog>
<!--邮编查询-->
<el-dialog title="邮编查询" :visible.sync="dialogFormVisible3">
<el-form :model="formPostCode">
<el-form-item label="邮编" >
<el-input v-model="formPostCode.code" autocomplete="off" placeholder="请输入邮编"></el-input>
</el-form-item>
<el-table :data="gridData2" v-if="formPostCode.reason==true">
<el-table-column property="postNumber" label="邮编" width="150"></el-table-column>
<el-table-column property="province" label="省" width="200"></el-table-column>
<el-table-column property="city" label="市"></el-table-column>
<el-table-column property="district" label="区"></el-table-column>
<el-table-column property="address" label="县"></el-table-column>
</el-table>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="getPostcode()"></el-button>
</div>
</el-dialog>
<!-- 气象预警-->
<el-dialog title="气象预警" :visible.sync="dialogFormVisible4">
<el-aside width="100%">
<el-tree :data="data" :props="defaultProps">
<template slot-scope="{data,node}">
<span>{{data.provinceName}}{{data.cityName}}--{{data.cityCode}}</span>
</template>
</el-tree>
</el-aside>
</el-dialog>
</div> </div>
</template> </template>
@ -43,6 +153,11 @@
import {findConnectorList} from "@/api/port/port"; import {findConnectorList} from "@/api/port/port";
import index from "vuex"; import index from "vuex";
import {phonePlace} from "@/api/port/port"; import {phonePlace} from "@/api/port/port";
import {getIpPlace} from "@/api/port/port";
import {getHeadlines} from "@/api/port/port";
import {getBirthday} from "@/api/port/port";
import {getPostcode} from "@/api/port/port";
import {getWeather} from "@/api/port/port";
export default { export default {
//import使" //import使"
components: {}, components: {},
@ -51,10 +166,82 @@ export default {
//" //"
return { return {
formWeather:{},
data:[],
defaultProps: {
children:"citys",
label:'provinceName',
},
connectorList:[], connectorList:[],
gridData:[],
gridData2:[],
form:{}, form:{},
formInline:{}, //
formPostCode:{
code:"",
// postNumber:"",
// province:"",
// city:"",
// district:"",
// address:"",
reason:"",
},
// formInline
formInline:{
tel:"",
province:"",
city:"",
areacode:"",
zip:"",
company:"",
reason:"",
},
formIp:{
ip:"",
country:"",
province:"",
city:"",
isp:"",
reason:"",
},
formBirthday:{
year:"",
month:"",
day:"",
hour:"",
years:"",
months:"",
days:"",
animal:"",
imonthcn:"",
idaycn:"",
cyear:"",
cmonth:"",
cday:"",
gzyear:"",
gzmonth:"",
gzday:"",
isleap:"",
ncweek:"",
isterm:"",
term:"",
astro:"",
eightall:"",
fiveall:"",
reason:"",
},
formNews:{
news:"",
reason:"",
},
// IP
dialogFormVisible:false, dialogFormVisible:false,
dialogFormVisible1:false,
dialogFormVisible2:false,
dialogFormVisible3:false,
dialogFormVisible4:false,
dialogTableVisible:false,
}; };
}, },
// data", // data",
@ -70,13 +257,91 @@ export default {
watch: {}, watch: {},
//", //",
methods: { methods: {
buyPhone(tel){ //
getPhonePlace(tel).then((res)=>{ testWeather(){
console.log(111);
console.log(res.data);
alert(res.msg);
if (200==res.code){
getWeather().then((res)=>{
this.data=res.data;
this.dialogFormVisible4=true;
})
},
//
getPostcode(){
getPostcode(this.formPostCode.code).then((res)=>{
console.log(res.data);
this.gridData2=res.data;
this.formPostCode.reason=true;
})
},
testMailbox(){
this.dialogFormVisible3=true;
},
getBirthday(){
getBirthday(this.formBirthday).then((res)=>{
console.log(res.data);
this.formBirthday.reason=true;
this.formBirthday.years=res.data.years;
this.formBirthday.months=res.data.months;
this.formBirthday.days=res.data.days;
this.formBirthday.animal=res.data.animal;
this.formBirthday.imonthcn=res.data.imonthcn;
this.formBirthday.idaycn=res.data.idaycn;
this.formBirthday.cyear=res.data.cyear;
this.formBirthday.cmonth=res.data.cmonth;
this.formBirthday.cday=res.data.cday;
this.formBirthday.gzyear=res.data.gzyear;
this.formBirthday.gzmonth=res.data.gzmonth;
this.formBirthday.gzday=res.data.gzday;
this.formBirthday.isleap=res.data.isleap;
this.formBirthday.ncweek=res.data.ncweek;
this.formBirthday.isterm=res.data.isterm;
this.formBirthday.term=res.data.term;
this.formBirthday.astro=res.data.astro;
this.formBirthday.eightall=res.data.eightall;
this.formBirthday.fiveall=res.data.fiveall;
})
},
testBirthdate(){
this.dialogFormVisible2=true;
},
testNews(){
getHeadlines().then((res)=>{
this.gridData=res.data;
this.dialogTableVisible=true;
})
},
getIpPlace(){
getIpPlace(this.formIp.ip).then((res)=>{
console.log(res.data);
if (200==res.code){
this.formIp.country=res.data.country;
this.formIp.province=res.data.province;
this.formIp.city=res.data.city;
this.formIp.isp=res.data.isp;
this.formIp.reason=true;
}
})
},
testIP(ip){
this.formIp.ip=ip;
this.dialogFormVisible1=true;
},
testPhone(tel){
this.formInline.tel=tel;
this.dialogFormVisible=true;
},
phonePlace(){
phonePlace(this.formInline.tel).then((res)=>{
console.log(res.data);
if (200==res.code){
this.formInline.province=res.data.province;
this.formInline.city=res.data.city;
this.formInline.areacode=res.data.areacode;
this.formInline.zip=res.data.zip;
this.formInline.company=res.data.company;
this.formInline.reason=true;
} }
}) })
}, },

View File

@ -1,4 +1,5 @@
<template> <template>
<div> <div>
<!-- 添加或修改规则引擎对话框 --> <!-- 添加或修改规则引擎对话框 -->
@ -15,86 +16,140 @@
</el-form-item> </el-form-item>
</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 @click="dialogFormVisible = false"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button> <el-button type="primary" @click="submitForm"> </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="类型编号" width="180"> <el-table-column label="类型编号" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.id }}</span> <span style="margin-left: 10px">{{ scope.row.id }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="类型名称" width="180"> <el-table-column label="类型名称" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span style="margin-left: 10px">{{ scope.row.name }}</span> <span style="margin-left: 10px">{{ scope.row.name }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="操作"> <el-table-column label="操作">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button
size="mini" <el-button size="mini" type="danger" @click="handleDelete(scope.row.id)"></el-button>
type="danger"
@click="handleDelete(scope.row.id)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
</div> </div>
</template> </template>
<script> <script>
import {del, insert, list} from "@/api/type/type"; import {del, insert, list} from "@/api/type/type";
export default { export default {
//import使" //import使"
components: {}, components: {},
props: {}, props: {},
data() { data() {
//" //"
return { return {
arr:[],
type:{}, arr: [],
type: {},
rules: { rules: {
name: [{required: true, message: '请输入规则名称', trigger: 'blur'}] name: [{required: true, message: '请输入规则名称', trigger: 'blur'}]
}, },
dialogFormVisible:false,
dialogFormVisible: false,
formLabelWidth: '120px' formLabelWidth: '120px'
}; };
}, },
methods: { methods: {
List(){
list().then(res =>{ List() {
list().then(res => {
this.arr = res; this.arr = res;
}) })
}, },
handleDelete(id){
if (confirm("你确定删除吗?")){ handleDelete(id) {
del(id).then(res =>{
if (confirm("你确定删除吗?")) {
del(id).then(res => {
this.$message.success(res.msg || "删除成功") this.$message.success(res.msg || "删除成功")
}) })
} }
}, },
submitForm(){
this.dialogFormVisible=true submitForm() {
insert(this.type).then(res =>{
this.dialogFormVisible = true
insert(this.type).then(res => {
this.$message.success(res.msg || "添加成功") this.$message.success(res.msg || "添加成功")
}) })
this.dialogFormVisible = false; this.dialogFormVisible = false;
} }
}, },
// - 访this", // - 访this",
created() { created() {
this.List(); this.List();
} }
} }
</script> </script>
<style scoped> <style scoped>

View File

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

View File

@ -0,0 +1,98 @@
<template>
<div>
<div class="container">
<div class="card left-card">
<el-card style="margin-top: 50px;">
</el-card>
</div>
<div class="card right-card">
<el-card style="margin-top: 50px;">
<h3>账户余额</h3>
<h1>:{{ userBalanceData.userBalance || '加载中...' }}</h1>
</el-card>
</div>
</div>
<el-card style="margin-top: 50px;">
<h3>接口列表</h3>
<el-divider></el-divider>
<!-- <el-table :data="tableData">-->
<!-- <el-table-column label="">-->
<!-- <template slot-scope="scope">-->
<!-- <span style="margin-left: 10px">{{ scope.row.connectorName }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- </el-table>-->
</el-card>
</div>
</template>
<script>
import {userBalance} from "@/api/system/user";
import {getInfo} from '@/api/login'
import {findConnectorList} from "@/api/port/port";
export default {
name: 'Cards',
data() {
return {
form:{},
tableData:[],
userBalanceData: {
userBalance: '加载中...',
},
}
},
created() {
this.fetchUserBalance();
this.findConnectorList();
},
methods: {
findConnectorList(){
findConnectorList(this.form).then((res)=>{
this.tableData=res.data;
})
},
async fetchUserBalance() {
try {
const userId = localStorage.getItem('userId');
console.log(userId)// userIdlocalStorage
if (!userId) {
this.userBalanceData = { userBalance: '未登录' };
return;
}
const response = await userBalance(userId);
if (response.data ) {
console.log(response.data)
this.userBalanceData.userBalance = response.data;
} else {
this.userBalanceData.userBalance = { userBalance: '获取失败' };
}
} catch (error) {
this.userBalanceData = { userBalance: '获取失败' };
console.error('Error fetching user balance:', error);
}
},
}
};
</script>
<style scoped>
.container {
display: flex;
}
.card {
width: 50%;
padding: 20px;
box-sizing: border-box;
}
.left-card {
background-color: #f1f1f1;
}
.right-card {
background-color: #e1e1e1;
}
</style>