Merge remote-tracking branch 'origin/master'
commit
55cbd8ffb5
|
@ -39,18 +39,16 @@ export function del(id){
|
|||
//开启
|
||||
export function onEngine(id){
|
||||
return request({
|
||||
url: "/engine/engine/onEngine/" + id,
|
||||
method: "post",
|
||||
data:id
|
||||
url: "/engine/version/open/" + id,
|
||||
method: "post"
|
||||
})
|
||||
}
|
||||
|
||||
//禁用
|
||||
export function forbiddenEngine(id){
|
||||
return request({
|
||||
url: "/engine/engine/forbiddenEngine/" + id,
|
||||
method: "post",
|
||||
data:id
|
||||
url: "/engine/version/close/" + id,
|
||||
method: "post"
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -73,8 +71,8 @@ export function getRuleEngineInfo(id) {
|
|||
// 通过id查询
|
||||
export function findById(id) {
|
||||
return request({
|
||||
url: '/engine/engine/selectEngineById/' + id,
|
||||
method: 'post'
|
||||
url: '/engine/engine/findByIdsfindByIds/' + id,
|
||||
method:'get'
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -92,7 +90,7 @@ export function dels(id) {
|
|||
//天机规则数据
|
||||
export function add(data){
|
||||
return request({
|
||||
url: "/engine/version/insert",
|
||||
url: "/engine/version/insertVersion",
|
||||
method: "post",
|
||||
data:data
|
||||
})
|
||||
|
@ -101,3 +99,13 @@ export function add(data){
|
|||
|
||||
|
||||
|
||||
export function selectEngineById(id){
|
||||
return request({
|
||||
url: "/engine/engine/selectEngineById/" + id,
|
||||
method: "post",
|
||||
data:id
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -70,3 +70,12 @@ export function getWeather() {
|
|||
method: 'GET'
|
||||
})
|
||||
}
|
||||
|
||||
//购买
|
||||
export function doBuyInterface(data) {
|
||||
return request({
|
||||
url: '/system/buy/doBuyInterface',
|
||||
method: 'post',
|
||||
data:data
|
||||
})
|
||||
}
|
||||
|
|
|
@ -41,6 +41,22 @@ export function checkRealNameAuth(data) {
|
|||
})
|
||||
}
|
||||
|
||||
// 发送验证码
|
||||
export function sendCode(phonenumber) {
|
||||
return request({
|
||||
url: '/system/aliyun/pay/sendCode/' + phonenumber,
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
//检查验证码
|
||||
export function checkCode(phonenumber,code) {
|
||||
return request({
|
||||
url: '/system/aliyun/pay/checkCode/'+ phonenumber +"/" + code,
|
||||
method: 'post',
|
||||
})
|
||||
}
|
||||
|
||||
// 充值用户余额记录
|
||||
export function createRechargeRecord(data) {
|
||||
return request({
|
||||
|
|
|
@ -7,12 +7,12 @@ module.exports = {
|
|||
/**
|
||||
* 是否系统布局配置
|
||||
*/
|
||||
showSettings: false,
|
||||
showSettings: true,
|
||||
|
||||
/**
|
||||
* 是否显示顶部导航
|
||||
*/
|
||||
topNav: false,
|
||||
topNav: true,
|
||||
|
||||
/**
|
||||
* 是否显示 tagsView
|
||||
|
@ -22,7 +22,7 @@ module.exports = {
|
|||
/**
|
||||
* 是否固定头部
|
||||
*/
|
||||
fixedHeader: false,
|
||||
fixedHeader: true,
|
||||
|
||||
/**
|
||||
* 是否显示logo
|
||||
|
@ -32,7 +32,7 @@ module.exports = {
|
|||
/**
|
||||
* 是否显示动态标题
|
||||
*/
|
||||
dynamicTitle: false,
|
||||
dynamicTitle: true,
|
||||
|
||||
/**
|
||||
* @type {string | array} 'production' | ['production', 'development']
|
||||
|
|
|
@ -1,240 +1,110 @@
|
|||
<template>
|
||||
|
||||
<div>
|
||||
<div style="height: 30px">
|
||||
|
||||
{{ maintenance.name }}<br>
|
||||
|
||||
</div>
|
||||
|
||||
<div style="height: 50px">
|
||||
|
||||
规则名称:{{ maintenance.name }}<br>
|
||||
|
||||
规则类型:<span v-if="maintenance.type==1">字段类型</span>
|
||||
|
||||
<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-dialog title="添加版本信息" :visible.sync="dialogFormVisible">
|
||||
<el-form :model="versions">
|
||||
|
||||
<el-form-item label="版本类名" :label-width="formLabelWidth">
|
||||
<el-input v-model="versions.versionClass" 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 label="版本名称" :label-width="formLabelWidth">
|
||||
<el-input v-model="versions.name" 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 label="版本编码" :label-width="formLabelWidth">
|
||||
<el-input v-model="versions.versionCode" 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-input v-model="versions.isActivate" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="状态" :label-width="formLabelWidth">
|
||||
<el-form-item label="版本状态" :label-width="formLabelWidth">
|
||||
<el-input v-model="versions.status" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-input v-model="maintenance.status" autocomplete="off"></el-input>
|
||||
<el-form-item label="版本测试状态" :label-width="formLabelWidth">
|
||||
<el-input v-model="versions.testStatus" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="规则内容" :label-width="formLabelWidth">
|
||||
<el-input v-model="versions.ruleContent" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="引擎维护编号" :label-width="formLabelWidth">
|
||||
<el-input v-model="versions.engineMaintenanceId" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="描述" :label-width="formLabelWidth">
|
||||
<el-input v-model="versions.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=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>
|
||||
|
||||
<el-table-column prop="id" label="编号"></el-table-column>
|
||||
<el-table-column prop="versionClass" label="版本类名"></el-table-column>
|
||||
<el-table-column prop="name" label="版本名称"></el-table-column>
|
||||
<el-table-column prop="versionCode" label="版本编码"></el-table-column>
|
||||
<el-table-column prop="isActivate" label="是否激活">
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.isActivate==1">正常</span>
|
||||
<span 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">{{ scope.row.name }}</span>
|
||||
|
||||
<el-table-column prop="status" label="版本状态">
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.status===1">正常</span>
|
||||
<span v-if="scope.row.status===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.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>
|
||||
|
||||
<el-table-column prop="testStatus" label="版本测试状态">
|
||||
<template v-slot="scope">
|
||||
<span v-if="scope.row.testStatus===1">数据字段</span>
|
||||
<span v-if="scope.row.testStatus===2">数据类型</span>
|
||||
<span v-if="scope.row.testStatus===3">数据格式</span>
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
<el-table-column prop="ruleContent" label="规则内容"></el-table-column>
|
||||
<el-table-column prop="engineMaintenanceId" label="引擎维护编号"></el-table-column>
|
||||
<el-table-column prop="description" label="描述"></el-table-column>
|
||||
|
||||
<el-table-column label="作用域" width="180">
|
||||
|
||||
<el-table-column fixed="right" label="操作" width="120">
|
||||
<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 @click.native.prevent="del(scope.row.id)" type="text" size="small">
|
||||
删除
|
||||
</el-button>
|
||||
|
||||
<el-button size="mini" type="danger" @click="onEngine(scope.row.id)">激活规则
|
||||
<el-button v-show="scope.row.isActivate==1" @click="forbiddenEngines(scope.row.id)" type="text" size="small">关闭引擎</el-button>
|
||||
|
||||
</el-button>
|
||||
|
||||
<el-button size="mini" type="danger" @click="forbiddenEngine(scope.row.id)">禁用规则
|
||||
|
||||
</el-button>
|
||||
<el-button v-show="scope.row.isActivate==2" @click="onEngines(scope.row.id)" type="text" size="small">开启引擎</el-button>
|
||||
|
||||
</template>
|
||||
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column fixed="right" label="操作" width="120">
|
||||
<template slot-scope="scope">
|
||||
<el-button @click.native.prevent="selectEngineById(scope.row.id)" type="text" size="small">
|
||||
规则详情
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
|
||||
</el-table>
|
||||
|
||||
</div>
|
||||
|
@ -243,9 +113,8 @@
|
|||
|
||||
<script>
|
||||
|
||||
import {add, dels, findById, onEngine} from "@/api/engine/engine";
|
||||
import {add, dels, findById, forbiddenEngine, onEngine, selectEngineById} from "@/api/engine/engine";
|
||||
|
||||
import {insert} from "@/api/version/version";
|
||||
|
||||
export default {
|
||||
|
||||
|
@ -264,7 +133,6 @@ export default {
|
|||
return {
|
||||
|
||||
direction: 'rtl',
|
||||
|
||||
maintenance: {
|
||||
|
||||
engineMaintenanceList: [],
|
||||
|
@ -277,7 +145,9 @@ export default {
|
|||
|
||||
handleClose: false,
|
||||
|
||||
form: {},
|
||||
versions: {
|
||||
|
||||
},
|
||||
|
||||
size: '',
|
||||
|
||||
|
@ -285,41 +155,46 @@ export default {
|
|||
|
||||
formLabelWidth: '120px',
|
||||
|
||||
arr:[]
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
methods: {
|
||||
selectEngineById,
|
||||
|
||||
handleInsert() {
|
||||
|
||||
this.dialogFormVisible = true
|
||||
|
||||
add(this.maintenance).then(res => {
|
||||
add(this.versions).then(res => {
|
||||
|
||||
this.$modal.msgSuccess("新增成功")
|
||||
this.$modal.msgSuccess(res.msg || "新增成功")
|
||||
|
||||
})
|
||||
this.dialogFormVisible=false;
|
||||
this.List();
|
||||
|
||||
},
|
||||
|
||||
onEngine(id) {
|
||||
onEngines(id) {
|
||||
|
||||
onEngine(id).then(res => {
|
||||
|
||||
this.$modal.msgSuccess("激活成功")
|
||||
this.$message.success(res.msg || "开启成功")
|
||||
|
||||
})
|
||||
this.List();
|
||||
|
||||
},
|
||||
forbiddenEngine(id) {
|
||||
forbiddenEngines(id) {
|
||||
|
||||
onEngine(id).then(res => {
|
||||
forbiddenEngine(id).then(res => {
|
||||
|
||||
this.$modal.msgSuccess("禁用成功")
|
||||
this.$message.success(res.msg || "关闭成功")
|
||||
|
||||
})
|
||||
this.List();
|
||||
|
||||
},
|
||||
|
||||
|
@ -327,12 +202,18 @@ export default {
|
|||
|
||||
findById(this.maintenance.id).then(res => {
|
||||
|
||||
this.maintenance = res.data;
|
||||
this.maintenance.engineMaintenanceList = res.data
|
||||
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
selectEngine(){
|
||||
selectEngineById(this.maintenance.id).then(res =>{
|
||||
this.arr = res.data
|
||||
})
|
||||
},
|
||||
|
||||
del(id) {
|
||||
|
||||
if (confirm("你确定删除吗?")) {
|
||||
|
@ -357,6 +238,8 @@ export default {
|
|||
|
||||
this.List();
|
||||
|
||||
this.selectEngine();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,211 @@
|
|||
<template>
|
||||
<div>
|
||||
<h1 style="text-align: center; margin-bottom: 30px;">安全设置</h1>
|
||||
<el-divider></el-divider>
|
||||
<label>登录密码</label>
|
||||
<label>安全性高的密码可以使帐号更安全</label>
|
||||
<button @click="openModal">修改密码</button>
|
||||
|
||||
<!-- 弹出框 -->
|
||||
<div v-if="showModal" class="modal">
|
||||
<div class="modal-content">
|
||||
<h2>身份验证</h2>
|
||||
<el-divider></el-divider>
|
||||
|
||||
<!-- 手机号和验证码 -->
|
||||
<div v-if="!verificationSent">
|
||||
<label for="phonenumber">身份验证方式:</label>
|
||||
<div><h3>通过手机({{ user.phonenumber }})获取验证</h3></div>
|
||||
<button @click="sendCode">发送验证码</button>
|
||||
</div>
|
||||
|
||||
<div v-if="verificationSent && !codeVerified">
|
||||
<label for="code">验证码:</label>
|
||||
<input v-model="code" id="code" type="text" placeholder="请输入验证码" />
|
||||
<button @click="verifyCode">验证验证码</button>
|
||||
</div>
|
||||
|
||||
<div v-if="codeVerified">
|
||||
<el-form ref="form" :model="user" :rules="rules" label-width="80px">
|
||||
<el-form-item label="旧密码" prop="oldPassword">
|
||||
<el-input v-model="user.oldPassword" placeholder="请输入旧密码" show-password type="password"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="新密码" prop="newPassword">
|
||||
<el-input v-model="user.newPassword" placeholder="请输入新密码" show-password type="password"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="确认密码" prop="confirmPassword">
|
||||
<el-input v-model="user.confirmPassword" placeholder="请确认新密码" show-password type="password"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<button @click="submit" :disabled="!user.newPassword">提交修改</button>
|
||||
</div>
|
||||
<button @click="closeModal" class="close-button">关闭</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import axios from 'axios';
|
||||
import {getUserProfile,sendCode,checkCode} from "@/api/system/user";
|
||||
import {updateUserPwd} from "@/api/system/user";
|
||||
|
||||
export default {
|
||||
data() {
|
||||
const equalToPassword = (rule, value, callback) => {
|
||||
if (this.user.newPassword !== value) {
|
||||
callback(new Error("两次输入的密码不一致"));
|
||||
} else {
|
||||
callback();
|
||||
}
|
||||
};
|
||||
return {
|
||||
// 表单校验
|
||||
rules: {
|
||||
oldPassword: [
|
||||
{required: true, message: "旧密码不能为空", trigger: "blur"}
|
||||
],
|
||||
newPassword: [
|
||||
{required: true, message: "新密码不能为空", trigger: "blur"},
|
||||
{min: 6, max: 20, message: "长度在 6 到 20 个字符", trigger: "blur"}
|
||||
],
|
||||
confirmPassword: [
|
||||
{required: true, message: "确认密码不能为空", trigger: "blur"},
|
||||
{required: true, validator: equalToPassword, trigger: "blur"}
|
||||
]
|
||||
},
|
||||
user: {
|
||||
oldPassword: undefined,
|
||||
newPassword: undefined,
|
||||
confirmPassword: undefined
|
||||
},
|
||||
showModal: false,
|
||||
phonenumber: '',
|
||||
code: '',
|
||||
oldPassword: '',
|
||||
newPassword: '',
|
||||
verificationSent: false,
|
||||
codeVerified: false,
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getUser();
|
||||
},
|
||||
methods: {
|
||||
getUser() {
|
||||
getUserProfile().then(response => {
|
||||
this.user = response.data.sysUser;
|
||||
});
|
||||
},
|
||||
openModal() {
|
||||
this.showModal = true;
|
||||
},
|
||||
closeModal() {
|
||||
this.showModal = false;
|
||||
this.resetForm();
|
||||
},
|
||||
async sendCode() {
|
||||
try {
|
||||
sendCode(this.user.phonenumber)
|
||||
this.verificationSent = true;
|
||||
alert('验证码已发送');
|
||||
} catch (error) {
|
||||
console.error('发送验证码失败', error);
|
||||
alert('发送验证码失败');
|
||||
}
|
||||
},
|
||||
submit() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
if (valid) {
|
||||
updateUserPwd(this.user.oldPassword, this.user.newPassword).then(response => {
|
||||
this.$modal.msgSuccess("修改成功");
|
||||
});
|
||||
}
|
||||
});
|
||||
},
|
||||
async verifyCode() {
|
||||
checkCode(this.user.phonenumber, this.code).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.codeVerified = true;
|
||||
alert('验证码验证成功');
|
||||
} else {
|
||||
alert('验证码验证失败');
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
resetForm() {
|
||||
this.phonenumber = '';
|
||||
this.code = '';
|
||||
this.oldPassword = '';
|
||||
this.newPassword = '';
|
||||
this.verificationSent = false;
|
||||
this.codeVerified = false;
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
/* 简单样式,仅供参考 */
|
||||
.modal {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
background: #fff;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
width: 400px;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
label {
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
input {
|
||||
width: 100%;
|
||||
padding: 10px;
|
||||
margin-top: 5px;
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
button {
|
||||
margin-top: 20px;
|
||||
padding: 10px 15px;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
background-color: #007bff;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button:disabled {
|
||||
background-color: #6c757d;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
background-color: #dc3545;
|
||||
}
|
||||
|
||||
.close-button:hover {
|
||||
background-color: #c82333;
|
||||
}
|
||||
</style>
|
|
@ -0,0 +1,110 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<el-row class="center-row" :gutter="20">
|
||||
<el-col :span="12" :xs="24">
|
||||
<el-card style="margin-top: 50px;">
|
||||
<div slot="header" class="clearfix">
|
||||
<span>个人信息</span>
|
||||
</div>
|
||||
<div>
|
||||
<div class="text-center">
|
||||
<userAvatar/>
|
||||
</div>
|
||||
<ul class="list-group list-group-striped">
|
||||
<li class="list-group-item">
|
||||
<svg-icon icon-class="user"/>
|
||||
用户名称
|
||||
<div class="pull-right">{{ user.userName }}</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<svg-icon icon-class="phone"/>
|
||||
手机号码
|
||||
<div class="pull-right">{{ user.phonenumber }}</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<svg-icon icon-class="email"/>
|
||||
用户邮箱
|
||||
<div class="pull-right">{{ user.email }}</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<svg-icon icon-class="tree"/>
|
||||
所属部门
|
||||
<div v-if="user.dept" class="pull-right">{{ user.dept.deptName }} / {{ postGroup }}</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<svg-icon icon-class="peoples"/>
|
||||
职位
|
||||
<div class="pull-right">{{ roleGroup }}</div>
|
||||
</li>
|
||||
<li class="list-group-item">
|
||||
<svg-icon icon-class="date"/>
|
||||
创建日期
|
||||
<div class="pull-right">{{ user.createTime }}</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import {getUserProfile} from "@/api/system/user";
|
||||
import userAvatar from "/src/views/system/user/profile/userAvatar";
|
||||
import userInfo from "/src/views/system/user/profile/userInfo";
|
||||
import resetPwd from "/src/views/system/user/profile/resetPwd";
|
||||
|
||||
export default {
|
||||
name: "Profile",
|
||||
components: {userAvatar, userInfo, resetPwd},
|
||||
data() {
|
||||
return {
|
||||
user: {},
|
||||
roleGroup: {},
|
||||
postGroup: {},
|
||||
activeTab: "userinfo"
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.getUser();
|
||||
},
|
||||
methods: {
|
||||
getUser() {
|
||||
getUserProfile().then(response => {
|
||||
this.user = response.data.sysUser;
|
||||
this.roleGroup = response.data.roleGroup;
|
||||
this.postGroup = response.data.postGroup;
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
||||
<style scoped>
|
||||
.app-container {
|
||||
padding: 20px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.center-row {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.box-card {
|
||||
border: 1px solid #dcdfe6;
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.list-group-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
|
@ -1,11 +1,12 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-button type="primary">+申请新数据</el-button>
|
||||
<el-row :gutter="50">
|
||||
<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">
|
||||
<div slot="header" class="clearfix">
|
||||
<h1 style="font-weight: bold">{{connector.connectorName}}</h1>
|
||||
<el-button type="primary" style="float: right; padding: 10px 10px" @click="buyPhone(connector)">购买</el-button>
|
||||
<el-button type="primary" style="float: right; padding: 10px 10px" @click="buy(connector)">购买</el-button>
|
||||
</div>
|
||||
<span style="font-weight: bold;font-size: 20px">产品图片:</span><br>
|
||||
<el-image style="width: 300px; height: 300px" :src="connector.connectorPicture" :fit="fit"></el-image><br>
|
||||
|
@ -143,6 +144,50 @@
|
|||
</el-tree>
|
||||
</el-aside>
|
||||
</el-dialog>
|
||||
<!-- 购买-->
|
||||
<el-dialog title="购买API" :visible.sync="dialogFormVisible5">
|
||||
<el-form :model="buyForm">
|
||||
<el-form-item label="产品编号" :label-width="formLabelWidth">
|
||||
<el-input v-model="buyForm.connectorId" autocomplete="off" readonly></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="产品名称" :label-width="formLabelWidth">
|
||||
<el-input v-model="buyForm.connectorName" autocomplete="off" readonly></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="产品介绍" :label-width="formLabelWidth">
|
||||
<el-input v-model="buyForm.connectorDescribe" autocomplete="off" readonly></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="产品价格" :label-width="formLabelWidth">
|
||||
<el-input v-model="buyForm.connectorPrice" autocomplete="off" readonly></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="产品公司" :label-width="formLabelWidth">
|
||||
<el-input v-model="buyForm.connectorCompany" autocomplete="off" readonly></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="API_URL" :label-width="formLabelWidth">
|
||||
<el-input v-model="buyForm.connectorApiurl" autocomplete="off" readonly></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="API_EYE" :label-width="formLabelWidth">
|
||||
<el-input v-model="buyForm.connectorApikey" autocomplete="off" readonly></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="请求方式" :label-width="formLabelWidth">
|
||||
<el-input v-model="buyForm.connectorRequest" autocomplete="off" readonly></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="购买次数" :label-width="formLabelWidth">
|
||||
<el-input-number v-model="buyForm.connectorFrequency" controls-position="right" @change="handleChange" :min="1" :max="10"></el-input-number>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="buyInterface()">购 买</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
@ -158,6 +203,7 @@ import {getHeadlines} from "@/api/port/port";
|
|||
import {getBirthday} from "@/api/port/port";
|
||||
import {getPostcode} from "@/api/port/port";
|
||||
import {getWeather} from "@/api/port/port";
|
||||
import {doBuyInterface} from "@/api/port/port";
|
||||
export default {
|
||||
//import引入的组件需要注入到对象中才能使用"
|
||||
components: {},
|
||||
|
@ -235,12 +281,14 @@ export default {
|
|||
news:"",
|
||||
reason:"",
|
||||
},
|
||||
buyForm:{},
|
||||
// IP查询归属地
|
||||
dialogFormVisible:false,
|
||||
dialogFormVisible1:false,
|
||||
dialogFormVisible2:false,
|
||||
dialogFormVisible3:false,
|
||||
dialogFormVisible4:false,
|
||||
dialogFormVisible5:false,
|
||||
dialogTableVisible:false,
|
||||
};
|
||||
},
|
||||
|
@ -257,6 +305,18 @@ export default {
|
|||
watch: {},
|
||||
//方法集合",
|
||||
methods: {
|
||||
buyInterface(){
|
||||
doBuyInterface(this.buyForm).then((res)=>{
|
||||
console.log(res);
|
||||
alert(res.msg);
|
||||
this.dialogFormVisible5=false;
|
||||
})
|
||||
},
|
||||
//购买
|
||||
buy(connector){
|
||||
this.buyForm=connector;
|
||||
this.dialogFormVisible5=true;
|
||||
},
|
||||
// 气象预警
|
||||
testWeather(){
|
||||
|
||||
|
|
|
@ -62,22 +62,6 @@
|
|||
</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="150">
|
||||
|
@ -140,12 +124,20 @@
|
|||
<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 label="价格" :label-width="formLabelWidth">
|
||||
<el-input v-model="formLabelAlign.connectorPrice" 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 label="API_URL" :label-width="formLabelWidth">
|
||||
<el-input v-model="formLabelAlign.connectorApiurl" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="API_EYE" :label-width="formLabelWidth">
|
||||
<el-input v-model="formLabelAlign.connectorApikey" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="请求方式" :label-width="formLabelWidth">
|
||||
<el-input v-model="formLabelAlign.connectorRequest" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
</el-form>
|
||||
|
@ -181,22 +173,34 @@
|
|||
<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 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="API_URL" :label-width="formLabelWidth">
|
||||
<el-input v-model="formInline.connectorApiurl" 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 label="API_EYE" :label-width="formLabelWidth">
|
||||
<el-input v-model="formInline.connectorApikey" autocomplete="off"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="请求方式" :label-width="formLabelWidth">
|
||||
<el-input v-model="formInline.connectorRequest" 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>
|
||||
|
|
Loading…
Reference in New Issue