Merge remote-tracking branch 'origin/master'
commit
13c1905b57
|
@ -49,6 +49,7 @@
|
||||||
"@vue/composition-api": "^1.7.2",
|
"@vue/composition-api": "^1.7.2",
|
||||||
"axios": "0.24.0",
|
"axios": "0.24.0",
|
||||||
"clipboard": "2.0.8",
|
"clipboard": "2.0.8",
|
||||||
|
"codemirror": "^5.65.12",
|
||||||
"core-js": "3.25.3",
|
"core-js": "3.25.3",
|
||||||
"echarts": "5.4.0",
|
"echarts": "5.4.0",
|
||||||
"element-ui": "2.9.1",
|
"element-ui": "2.9.1",
|
||||||
|
|
|
@ -79,7 +79,7 @@ export function findById(id) {
|
||||||
//通过id删除数据
|
//通过id删除数据
|
||||||
export function dels(id) {
|
export function dels(id) {
|
||||||
return request({
|
return request({
|
||||||
url: '/engine/engine/delete/' + id,
|
url: '/engine/version/delete/' + id,
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data: id
|
data: id
|
||||||
})
|
})
|
||||||
|
@ -107,5 +107,13 @@ export function selectEngineById(id){
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//根据版本id查询版本信息
|
||||||
|
export function sel(id){
|
||||||
|
return request({
|
||||||
|
url: "/engine/version/selectListById/" + id,
|
||||||
|
method: "post"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -108,6 +108,15 @@ export function delUser(userId) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//修改手机号
|
||||||
|
export function updatePhone(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/user/profile/updatePhonenumber/'+data,
|
||||||
|
method: 'POST'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 用户密码重置
|
// 用户密码重置
|
||||||
export function resetUserPwd(userId, password) {
|
export function resetUserPwd(userId, password) {
|
||||||
const data = {
|
const data = {
|
||||||
|
|
|
@ -0,0 +1,57 @@
|
||||||
|
<template>
|
||||||
|
<codemirror ref="mycode" :value="curCode" :options="cmOptions" class="code" v-show="aaa">
|
||||||
|
</codemirror>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { codemirror } from 'vue-codemirror'
|
||||||
|
import "codemirror/theme/ambiance.css"; // 这里引入的是主题样式,根据设置的theme的主题引入,一定要引入!!
|
||||||
|
require("codemirror/mode/javascript/javascript"); // 这里引入的模式的js,根据设置的mode引入,一定要引入!!
|
||||||
|
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'ExecuteAction',
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
curCode: '测试',
|
||||||
|
cmOptions: {
|
||||||
|
// autorefresh: true,
|
||||||
|
// tabSize: 4,
|
||||||
|
// mode: 'text/x-properties',
|
||||||
|
// theme: 'ayu-mirage',
|
||||||
|
// line: true,
|
||||||
|
// viewportMargin: Infinity, //处理高度自适应时搭配使用
|
||||||
|
// highlightDifferences: true,
|
||||||
|
// autofocus: false,
|
||||||
|
// indentUnit: 2,
|
||||||
|
// smartIndent: true,
|
||||||
|
// readOnly: true, // 只读
|
||||||
|
// showCursorWhenSelecting: true,
|
||||||
|
// firstLineNumber: 1
|
||||||
|
lineNumbers: true, // 显示行号
|
||||||
|
mode: 'text/x-yaml', // 语法model
|
||||||
|
gutters: ['CodeMirror-lint-markers'], // 语法检查器
|
||||||
|
theme: "ambiance",
|
||||||
|
lint: true, // 开启语法检查
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
codemirror
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.information-box>>>.CodeMirror {
|
||||||
|
font-family: monospace;
|
||||||
|
height: 71vh;
|
||||||
|
direction: ltr;
|
||||||
|
}
|
||||||
|
</style>
|
17
src/main.js
17
src/main.js
|
@ -1,6 +1,23 @@
|
||||||
import Vue from 'vue'
|
import Vue from 'vue'
|
||||||
|
|
||||||
import Cookies from 'js-cookie'
|
import Cookies from 'js-cookie'
|
||||||
|
//引入文件、、
|
||||||
|
import VueCodeMirror from 'vue-codemirror'
|
||||||
|
import 'codemirror/lib/codemirror.css'
|
||||||
|
Vue.use(VueCodeMirror)
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
//codemirror
|
||||||
|
import VueCodemirror from 'vue-codemirror'
|
||||||
|
import 'codemirror/lib/codemirror.css'
|
||||||
|
Vue.use(VueCodemirror)
|
||||||
|
|
||||||
|
import 'codemirror/lib/codemirror.css'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
import Element from 'element-ui'
|
import Element from 'element-ui'
|
||||||
import './assets/styles/element-variables.scss'
|
import './assets/styles/element-variables.scss'
|
||||||
|
|
|
@ -66,17 +66,21 @@
|
||||||
</el-form>
|
</el-form>
|
||||||
|
|
||||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="findSelectSourceExport"
|
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="findSelectSourceExport"
|
||||||
|
|
||||||
v-hasPermi="['source:data:export']">导出
|
v-hasPermi="['source:data:export']">导出
|
||||||
|
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<!-- 添加按钮 /-->
|
<!-- 添加按钮 /-->
|
||||||
|
|
||||||
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['source:data:add']">
|
<el-button 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">
|
||||||
|
@ -564,8 +568,6 @@ export default {
|
||||||
|
|
||||||
handleAdd() {
|
handleAdd() {
|
||||||
|
|
||||||
// this.reset();
|
|
||||||
|
|
||||||
this.open = true;
|
this.open = true;
|
||||||
|
|
||||||
this.title = "添加规则引擎";
|
this.title = "添加规则引擎";
|
||||||
|
@ -576,8 +578,6 @@ export default {
|
||||||
|
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
|
|
||||||
// this.reset();
|
|
||||||
|
|
||||||
this.form = row;
|
this.form = row;
|
||||||
|
|
||||||
this.open = true;
|
this.open = true;
|
||||||
|
@ -673,20 +673,35 @@ export default {
|
||||||
beforeCreate() {
|
beforeCreate() {
|
||||||
|
|
||||||
}, //生命周期 - 创建之前",
|
}, //生命周期 - 创建之前",
|
||||||
|
|
||||||
beforeMount() {
|
beforeMount() {
|
||||||
|
|
||||||
}, //生命周期 - 挂载之前",
|
}, //生命周期 - 挂载之前",
|
||||||
|
|
||||||
beforeUpdate() {
|
beforeUpdate() {
|
||||||
|
|
||||||
}, //生命周期 - 更新之前",
|
}, //生命周期 - 更新之前",
|
||||||
|
|
||||||
updated() {
|
updated() {
|
||||||
|
|
||||||
}, //生命周期 - 更新之后",
|
}, //生命周期 - 更新之后",
|
||||||
|
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
|
|
||||||
}, //生命周期 - 销毁之前",
|
}, //生命周期 - 销毁之前",
|
||||||
|
|
||||||
destroyed() {
|
destroyed() {
|
||||||
|
|
||||||
}, //生命周期 - 销毁完成",
|
}, //生命周期 - 销毁完成",
|
||||||
|
|
||||||
activated() {
|
activated() {
|
||||||
|
|
||||||
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
} //如果页面有keep-alive缓存功能,这个函数会触发",
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -2,119 +2,232 @@
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
||||||
<el-button type="text" @click="dialogFormVisible = true">新增</el-button>
|
<el-button type="text" @click="addVersion()">新增</el-button>
|
||||||
|
|
||||||
<el-dialog title="添加版本信息" :visible.sync="dialogFormVisible">
|
<el-dialog title="添加版本信息" :visible.sync="dialogFormVisible">
|
||||||
|
|
||||||
<el-form :model="versions">
|
<el-form :model="versions">
|
||||||
|
|
||||||
<el-form-item label="版本类名" :label-width="formLabelWidth">
|
<el-form-item label="版本类名" :label-width="formLabelWidth">
|
||||||
|
|
||||||
<el-input v-model="versions.versionClass" autocomplete="off"></el-input>
|
<el-input v-model="versions.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="versions.name" autocomplete="off"></el-input>
|
<el-input v-model="versions.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="versions.versionCode" autocomplete="off"></el-input>
|
<el-input v-model="versions.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="versions.isActivate" autocomplete="off"></el-input>
|
|
||||||
|
<el-input v-model="versions.isActivate" disabled 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="versions.status" autocomplete="off"></el-input>
|
|
||||||
|
<el-input v-model="versions.status" disabled 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="versions.testStatus" autocomplete="off"></el-input>
|
|
||||||
|
<el-input v-model="versions.testStatus" disabled 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="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-input v-model="versions.description" autocomplete="off"></el-input>
|
||||||
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<!-- ref="mycode" :value="curCode" class="code"-->
|
||||||
|
<codemirror :options="cmOptions" v-show="opens">
|
||||||
|
|
||||||
|
|
||||||
|
</codemirror>
|
||||||
|
|
||||||
</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=handleInsert()>确 定</el-button>
|
<el-button type="primary" @click=handleInsert()>确 定</el-button>
|
||||||
|
|
||||||
|
<el-button type="primary" @click=showCode()>生成引擎类</el-button>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<el-table :data="maintenance.engineMaintenanceList" style="width: 100%">
|
<el-table :data="maintenance.engineMaintenanceList" style="width: 100%">
|
||||||
|
|
||||||
<el-table-column prop="id" label="编号"></el-table-column>
|
|
||||||
<el-table-column prop="versionClass" 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="name" label="版本名称"></el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="versionCode" label="版本编码"></el-table-column>
|
<el-table-column prop="versionCode" label="版本编码"></el-table-column>
|
||||||
|
|
||||||
<el-table-column prop="isActivate" label="是否激活">
|
<el-table-column prop="isActivate" label="是否激活">
|
||||||
|
|
||||||
<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 prop="status" label="版本状态">
|
<el-table-column prop="status" label="版本状态">
|
||||||
|
|
||||||
<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 prop="testStatus" label="版本测试状态">
|
<el-table-column prop="testStatus" label="版本测试状态">
|
||||||
|
|
||||||
<template v-slot="scope">
|
<template v-slot="scope">
|
||||||
|
|
||||||
<span v-if="scope.row.testStatus===1">数据字段</span>
|
<span v-if="scope.row.testStatus===1">数据字段</span>
|
||||||
|
|
||||||
<span v-if="scope.row.testStatus===2">数据类型</span>
|
<span v-if="scope.row.testStatus===2">数据类型</span>
|
||||||
|
|
||||||
<span v-if="scope.row.testStatus===3">数据格式</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>
|
|
||||||
|
|
||||||
|
</template>
|
||||||
|
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column fixed="right" label="操作" width="120">
|
<el-table-column fixed="right" label="操作" width="120">
|
||||||
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
||||||
<el-button @click.native.prevent="del(scope.row.id)" type="text" size="small">
|
<el-button @click.native.prevent="del(scope.row.id)" type="text" size="small">
|
||||||
|
|
||||||
删除
|
删除
|
||||||
|
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
<el-button v-show="scope.row.isActivate==1" @click="forbiddenEngines(scope.row.id)" type="text" size="small">关闭引擎</el-button>
|
<el-button v-show="scope.row.isActivate==1" @click="forbiddenEngines(scope.row.id)" type="text" size="small">
|
||||||
|
|
||||||
|
关闭引擎
|
||||||
|
|
||||||
<el-button v-show="scope.row.isActivate==2" @click="onEngines(scope.row.id)" type="text" size="small">开启引擎</el-button>
|
</el-button>
|
||||||
|
|
||||||
|
<el-button v-show="scope.row.isActivate==2" @click="onEngines(scope.row.id)" type="text" size="small">
|
||||||
|
|
||||||
|
开启引擎
|
||||||
|
|
||||||
|
</el-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
<el-table-column fixed="right" label="操作" width="120">
|
<el-table-column fixed="right" label="操作" width="120">
|
||||||
|
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
|
|
||||||
<el-button @click.native.prevent="selectEngineById(scope.row.id)" type="text" size="small">
|
<el-button @click.native.prevent="selectEngineById(scope.row.id)" type="text" size="small">
|
||||||
|
|
||||||
规则详情
|
规则详情
|
||||||
|
|
||||||
</el-button>
|
</el-button>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
|
||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
|
|
||||||
|
<!--回显-->
|
||||||
|
|
||||||
|
<el-dialog title="收货地址" :visible.sync="versionFormVisible">
|
||||||
|
|
||||||
|
<el-form :model="versions">
|
||||||
|
|
||||||
|
<el-form-item label="版本类名" :label-width="formLabelWidth">
|
||||||
|
|
||||||
|
<el-input v-model="versions.versionClass" disabled autocomplete="off"></el-input>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="版本名称" :label-width="formLabelWidth">
|
||||||
|
|
||||||
|
<el-input v-model="versions.name" disabled autocomplete="off"></el-input>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="版本编码" :label-width="formLabelWidth">
|
||||||
|
|
||||||
|
<el-input v-model="versions.versionCode" disabled autocomplete="off"></el-input>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="是否激活" :label-width="formLabelWidth">
|
||||||
|
|
||||||
|
<el-input v-model="versions.isActivate" disabled autocomplete="off"></el-input>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="版本状态" :label-width="formLabelWidth">
|
||||||
|
|
||||||
|
<el-input v-model="versions.status" disabled autocomplete="off"></el-input>
|
||||||
|
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="版本测试" :label-width="formLabelWidth">
|
||||||
|
|
||||||
|
<el-input v-model="versions.testStatus" disabled 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="back()">确 定</el-button>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
import {add, dels, findById, forbiddenEngine, onEngine, selectEngineById} from "@/api/engine/engine";
|
import {add, dels, findById, forbiddenEngine, onEngine, sel, selectEngineById} from "@/api/engine/engine";
|
||||||
|
|
||||||
|
import Java from "@/components/JavaIDE.vue/java.vue";
|
||||||
|
|
||||||
|
import {codemirror} from 'vue-codemirror'
|
||||||
|
|
||||||
|
import "codemirror/theme/ambiance.css"; // 这里引入的是主题样式,根据设置的theme的主题引入,一定要引入!!
|
||||||
|
|
||||||
|
require("codemirror/mode/javascript/javascript"); // 这里引入的模式的js,根据设置的mode引入,一定要引入!!
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
|
||||||
|
@ -122,7 +235,10 @@ export default {
|
||||||
|
|
||||||
//import引入的组件需要注入到对象中才能使用"
|
//import引入的组件需要注入到对象中才能使用"
|
||||||
|
|
||||||
components: {},
|
components: {
|
||||||
|
codemirror,
|
||||||
|
Java
|
||||||
|
},
|
||||||
|
|
||||||
props: {},
|
props: {},
|
||||||
|
|
||||||
|
@ -133,12 +249,39 @@ export default {
|
||||||
return {
|
return {
|
||||||
|
|
||||||
direction: 'rtl',
|
direction: 'rtl',
|
||||||
|
|
||||||
|
versionFormVisible: false,
|
||||||
|
|
||||||
maintenance: {
|
maintenance: {
|
||||||
|
|
||||||
engineMaintenanceList: [],
|
engineMaintenanceList: [],
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
opens: false,
|
||||||
|
|
||||||
|
javaClass: "package com.muyu.rule.engine.custom;\n" +
|
||||||
|
"\n" +
|
||||||
|
"import com.muyu.engine.action.ActionDiscard;\n" +
|
||||||
|
"import com.muyu.engine.scope.DataModelEngine;\n" +
|
||||||
|
"\n" +
|
||||||
|
"/**\n" +
|
||||||
|
" * @Author: DongZeLiang\n" +
|
||||||
|
" * @date: 2024/5/6\n" +
|
||||||
|
" * @Description: 231-231\n" +
|
||||||
|
" * @Version: 1.0\n" +
|
||||||
|
" */\n" +
|
||||||
|
"public class undefined_231 extends DataModelEngine {\n" +
|
||||||
|
" @Override\n" +
|
||||||
|
" public void execution () {\n" +
|
||||||
|
" Object value = getValue();\n" +
|
||||||
|
"\n" +
|
||||||
|
" if (value == null || \"\".equals(value) || \"null\".equals(value)) {\n" +
|
||||||
|
" throw new ActionDiscard();\n" +
|
||||||
|
" }\n" +
|
||||||
|
" }\n" +
|
||||||
|
"}",
|
||||||
|
|
||||||
title: "",
|
title: "",
|
||||||
|
|
||||||
open: false,
|
open: false,
|
||||||
|
@ -147,6 +290,51 @@ export default {
|
||||||
|
|
||||||
versions: {
|
versions: {
|
||||||
|
|
||||||
|
isActivate: '未激活',
|
||||||
|
|
||||||
|
testStatus: '未测试',
|
||||||
|
|
||||||
|
status: '初始化'
|
||||||
|
},
|
||||||
|
|
||||||
|
cmOptions: {
|
||||||
|
|
||||||
|
// autorefresh: true,
|
||||||
|
|
||||||
|
// tabSize: 4,
|
||||||
|
|
||||||
|
// mode: 'text/x-properties',
|
||||||
|
|
||||||
|
// theme: 'ayu-mirage',
|
||||||
|
|
||||||
|
// line: true,
|
||||||
|
|
||||||
|
// viewportMargin: Infinity, //处理高度自适应时搭配使用
|
||||||
|
|
||||||
|
// highlightDifferences: true,
|
||||||
|
|
||||||
|
// autofocus: false,
|
||||||
|
|
||||||
|
// indentUnit: 2,
|
||||||
|
|
||||||
|
// smartIndent: true,
|
||||||
|
|
||||||
|
// readOnly: true, // 只读
|
||||||
|
|
||||||
|
// showCursorWhenSelecting: true,
|
||||||
|
|
||||||
|
// firstLineNumber: 1
|
||||||
|
|
||||||
|
lineNumbers: true, // 显示行号
|
||||||
|
|
||||||
|
mode: 'text/x-yaml', // 语法model
|
||||||
|
|
||||||
|
gutters: ['CodeMirror-lint-markers'], // 语法检查器
|
||||||
|
|
||||||
|
theme: "ambiance",
|
||||||
|
|
||||||
|
lint: true, // 开启语法检查
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
size: '',
|
size: '',
|
||||||
|
@ -162,18 +350,68 @@ export default {
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
selectEngineById,
|
|
||||||
|
showCode() {
|
||||||
|
|
||||||
|
this.opens = true
|
||||||
|
|
||||||
|
this.javaClass;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
//添加弹窗
|
||||||
|
|
||||||
|
addVersion() {
|
||||||
|
|
||||||
|
this.versions = {},
|
||||||
|
|
||||||
|
this.versions.isActivate = '未激活',
|
||||||
|
|
||||||
|
this.versions.testStatus = '未测试',
|
||||||
|
|
||||||
|
this.versions.status = '初始化';
|
||||||
|
|
||||||
|
this.dialogFormVisible = true
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
back() {
|
||||||
|
|
||||||
|
this.versionFormVisible = false;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
//根据id查询回显
|
||||||
|
|
||||||
|
selectEngineById(id) {
|
||||||
|
|
||||||
|
this.versionFormVisible = true;
|
||||||
|
|
||||||
|
sel(id).then(res => {
|
||||||
|
|
||||||
|
this.versions = res.data;
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
handleInsert() {
|
handleInsert() {
|
||||||
this.dialogFormVisible = true
|
|
||||||
|
this.dialogFormVisible = false;
|
||||||
|
|
||||||
|
this.versions.isActivate = 1
|
||||||
|
|
||||||
|
this.versions.testStatus = 1
|
||||||
|
|
||||||
|
this.versions.status = 1
|
||||||
|
|
||||||
add(this.versions).then(res => {
|
add(this.versions).then(res => {
|
||||||
|
|
||||||
this.$modal.msgSuccess(res.msg || "新增成功")
|
this.$modal.msgSuccess(res.msg || "新增成功")
|
||||||
|
|
||||||
})
|
})
|
||||||
this.dialogFormVisible=false;
|
|
||||||
this.List();
|
this.findById();
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -184,7 +422,7 @@ export default {
|
||||||
this.$message.success(res.msg || "开启成功")
|
this.$message.success(res.msg || "开启成功")
|
||||||
|
|
||||||
})
|
})
|
||||||
this.List();
|
this.findById();
|
||||||
|
|
||||||
},
|
},
|
||||||
forbiddenEngines(id) {
|
forbiddenEngines(id) {
|
||||||
|
@ -247,4 +485,16 @@ export default {
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
|
.information-box >>> .CodeMirror {
|
||||||
|
|
||||||
|
font-family: monospace;
|
||||||
|
|
||||||
|
height: 71vh;
|
||||||
|
|
||||||
|
direction: ltr;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,9 +2,59 @@
|
||||||
<div>
|
<div>
|
||||||
<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>
|
||||||
<label>登录密码</label>
|
|
||||||
<label>安全性高的密码可以使帐号更安全</label>
|
<div class="container">
|
||||||
|
<div class="card left-card">
|
||||||
|
<el-card style="margin-top: 50px;">
|
||||||
|
<h2>登录密码</h2>
|
||||||
|
<div class="container">
|
||||||
|
<label>安全性高的密码可以使帐号更安全.建议你定期更换密码,设置6-20位登录密码</label>
|
||||||
|
<div class="button-wrapper">
|
||||||
<button @click="openModal">修改密码</button>
|
<button @click="openModal">修改密码</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card right-card">
|
||||||
|
<el-card style="margin-top: 50px;">
|
||||||
|
<h2>手机号码</h2>
|
||||||
|
<label>安全手机可以用于登录帐号,重置密码或其他安全验证</label>
|
||||||
|
<button @click="openCurrentPhoneModal">修改手机号</button>
|
||||||
|
|
||||||
|
<!-- 输入当前手机号的弹出框 -->
|
||||||
|
<div v-if="isCurrentPhoneModalVisible" class="modal-overlay">
|
||||||
|
<div class="modal-content">
|
||||||
|
<h3>当前手机号</h3>
|
||||||
|
<div>旧手机号({{ user.phonenumber }})</div>
|
||||||
|
<button @click="sendVerificationCode">发送验证码</button>
|
||||||
|
<button @click="closeCurrentPhoneModal">取消</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 输入验证码的弹出框 -->
|
||||||
|
<div v-if="isVerificationModalVisible" class="modal-overlay">
|
||||||
|
<div class="modal-content">
|
||||||
|
<h3>输入验证码</h3>
|
||||||
|
<input v-model="code" placeholder="验证码" />
|
||||||
|
<button @click="verCode">验证并输入新手机号</button>
|
||||||
|
<button @click="closeVerificationModal">取消</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- 输入新手机号的弹出框 -->
|
||||||
|
<div v-if="isNewPhoneModalVisible" class="modal-overlay">
|
||||||
|
<div class="modal-content">
|
||||||
|
<h3>输入新手机号</h3>
|
||||||
|
<input v-model="newPhone" placeholder="新手机号" />
|
||||||
|
<button @click="updatePhoneNumber">提交修改</button>
|
||||||
|
<button @click="closeNewPhoneModal">取消</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<!-- 弹出框 -->
|
<!-- 弹出框 -->
|
||||||
<div v-if="showModal" class="modal">
|
<div v-if="showModal" class="modal">
|
||||||
|
@ -47,7 +97,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import axios from 'axios';
|
import axios from 'axios';
|
||||||
import {getUserProfile,sendCode,checkCode} from "@/api/system/user";
|
import {getUserProfile,sendCode,checkCode,updatePhone} from "@/api/system/user";
|
||||||
import {updateUserPwd} from "@/api/system/user";
|
import {updateUserPwd} from "@/api/system/user";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
|
@ -60,6 +110,13 @@ export default {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
|
isVisible: false,
|
||||||
|
currentPhone: '',
|
||||||
|
newPhone: '',
|
||||||
|
verificationCode: '',
|
||||||
|
isCurrentPhoneModalVisible: false,
|
||||||
|
isVerificationModalVisible: false,
|
||||||
|
isNewPhoneModalVisible: false,
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
oldPassword: [
|
oldPassword: [
|
||||||
|
@ -80,6 +137,7 @@ export default {
|
||||||
confirmPassword: undefined
|
confirmPassword: undefined
|
||||||
},
|
},
|
||||||
showModal: false,
|
showModal: false,
|
||||||
|
aModel: false,
|
||||||
phonenumber: '',
|
phonenumber: '',
|
||||||
code: '',
|
code: '',
|
||||||
oldPassword: '',
|
oldPassword: '',
|
||||||
|
@ -92,6 +150,38 @@ export default {
|
||||||
this.getUser();
|
this.getUser();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
updatePhoneNumber() {
|
||||||
|
updatePhone(this.newPhone).then(response => {
|
||||||
|
this.closeNewPhoneModal();
|
||||||
|
this.$message({
|
||||||
|
message: '修改成功',
|
||||||
|
type: 'success'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
closeNewPhoneModal() {
|
||||||
|
this.isNewPhoneModalVisible = false;
|
||||||
|
},
|
||||||
|
closeVerificationModal() {
|
||||||
|
this.isVerificationModalVisible = false;
|
||||||
|
},
|
||||||
|
sendVerificationCode() {
|
||||||
|
try {
|
||||||
|
sendCode(this.user.phonenumber)
|
||||||
|
this.closeCurrentPhoneModal();
|
||||||
|
this.isVerificationModalVisible = true;
|
||||||
|
alert('验证码已发送');
|
||||||
|
} catch (error) {
|
||||||
|
console.error('发送验证码失败', error);
|
||||||
|
alert('发送验证码失败');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
openCurrentPhoneModal() {
|
||||||
|
this.isCurrentPhoneModalVisible = true;
|
||||||
|
},
|
||||||
|
closeCurrentPhoneModal() {
|
||||||
|
this.isCurrentPhoneModalVisible = false;
|
||||||
|
},
|
||||||
getUser() {
|
getUser() {
|
||||||
getUserProfile().then(response => {
|
getUserProfile().then(response => {
|
||||||
this.user = response.data.sysUser;
|
this.user = response.data.sysUser;
|
||||||
|
@ -123,6 +213,17 @@ export default {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
async verCode() {
|
||||||
|
checkCode(this.user.phonenumber, this.code).then(response => {
|
||||||
|
if (response.code === 200) {
|
||||||
|
this.closeVerificationModal();
|
||||||
|
this.isNewPhoneModalVisible = true; // 验证成功后弹出新手机号输入框
|
||||||
|
alert('验证码验证成功');
|
||||||
|
} else {
|
||||||
|
alert('验证码验证失败');
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
async verifyCode() {
|
async verifyCode() {
|
||||||
checkCode(this.user.phonenumber, this.code).then(response => {
|
checkCode(this.user.phonenumber, this.code).then(response => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
|
@ -135,6 +236,7 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
||||||
resetForm() {
|
resetForm() {
|
||||||
this.phonenumber = '';
|
this.phonenumber = '';
|
||||||
this.code = '';
|
this.code = '';
|
||||||
|
@ -160,6 +262,16 @@ export default {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
|
||||||
|
.button-wrapper {
|
||||||
|
margin-left: auto; /* 将按钮移动到右侧 */
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.modal-content {
|
.modal-content {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
@ -186,6 +298,50 @@ input {
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.card {
|
||||||
|
width: 50%;
|
||||||
|
padding: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal {
|
||||||
|
/* 样式设置 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-content {
|
||||||
|
/* 样式设置 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.left-card {
|
||||||
|
background-color: #f1f1f1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.right-card {
|
||||||
|
background-color: #e1e1e1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.modal-overlay {
|
||||||
|
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: white;
|
||||||
|
padding: 20px;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
button {
|
button {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
padding: 10px 15px;
|
padding: 10px 15px;
|
||||||
|
|
Loading…
Reference in New Issue