Compare commits

...

2 Commits

Author SHA1 Message Date
王熙朝 7e498b07b9 feat()引擎 2024-05-04 19:28:08 +08:00
王熙朝 5d4c9a6ace feat()资产展示 2024-05-01 20:45:11 +08:00
19 changed files with 1367 additions and 443 deletions

View File

@ -1,44 +0,0 @@
import request from '@/utils/request'
// 查询测试信息列表
export function listAdmin(query) {
return request({
url: '/goods/admin/list',
method: 'get',
params: query
})
}
// 查询测试信息详细
export function getAdmin(id) {
return request({
url: '/goods/admin/' + id,
method: 'get'
})
}
// 新增测试信息
export function addAdmin(data) {
return request({
url: '/goods/admin',
method: 'post',
data: data
})
}
// 修改测试信息
export function updateAdmin(data) {
return request({
url: '/goods/admin',
method: 'put',
data: data
})
}
// 删除测试信息
export function delAdmin(id) {
return request({
url: '/goods/admin/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询引擎列表
export function listConfig(query) {
return request({
url: '/goods/config/list',
method: 'get',
params: query
})
}
// 查询引擎详细
export function getConfig(id) {
return request({
url: '/goods/config/' + id,
method: 'get'
})
}
// 新增引擎
export function addConfig(data) {
return request({
url: '/goods/config',
method: 'post',
data: data
})
}
// 修改引擎
export function updateConfig(data) {
return request({
url: '/goods/config',
method: 'put',
data: data
})
}
// 删除引擎
export function delConfig(id) {
return request({
url: '/goods/config/' + id,
method: 'delete'
})
}

View File

@ -0,0 +1,10 @@
import request from '@/utils/request'
// 查询规则引擎列表
export function listCope(data) {
return request({
url: '/goods/cope/list',
method: 'post',
data
})
}

View File

@ -0,0 +1,58 @@
import request from '@/utils/request'
// 查询规则引擎列表
export function listEngine(query) {
return request({
url: '/goods/engine/list',
method: 'get',
params: query
})
}
// 查询规则引擎详细
export function getEngine(ruleId) {
return request({
url: '/goods/engine/' + ruleId,
method: 'get'
})
}
// 新增规则引擎
export function addEngine(data) {
return request({
url: '/goods/engine',
method: 'post',
data: data
})
}
// 修改规则引擎
export function updateEngine(data) {
return request({
url: '/goods/engine',
method: 'put',
data: data
})
}
// 删除规则引擎
export function delEngine(ruleId) {
return request({
url: '/goods/engine/' + ruleId,
method: 'delete'
})
}
export function selectRuleEngineByRuleId(ruleId) {
return request({
url: '/goods/engine/' + ruleId,
method: 'get'
})
}
export function description(ruleId) {
return request({
url: '/goods/engine/description/' + ruleId,
method: 'post'
})
}

View File

@ -0,0 +1,45 @@
import request from '@/utils/request'
// 查询引擎维护列表
export function listMaintenance(query) {
return request({
url: '/ruleEngine/maintenance/list',
method: 'get',
params: query
})
}
// 查询引擎维护详细
export function getMaintenance(id) {
return request({
url: '/ruleEngine/maintenance/' + id,
method: 'get'
})
}
// 新增引擎维护
export function addMaintenance(data) {
return request({
url: '/ruleEngine/maintenance',
method: 'post',
data: data
})
}
// 修改引擎维护
export function updateMaintenance(data) {
return request({
url: '/ruleEngine/maintenance/'+data.id,
method: 'put',
data: data
})
}
// 删除引擎维护
export function delMaintenance(id) {
return request({
url: '/ruleEngine/maintenance/' + id,
method: 'delete'
})
}

View File

@ -38,6 +38,13 @@ export function selJDBCStream(data) {
data
})
}
export function selJDBCStream2(data) {
return request({
url: '/system/accredit/selJDBCStream2',
method: 'post',
data
})
}
export function listListstructure(data) {
return request({
@ -124,4 +131,19 @@ export function updateUserMiddle(mid,statusId) {
})
}
export function selectShow(tableName) {
return request({
url: '/system/accredit/selectShow?tableName=' + tableName,
method: 'post'
})
}
export function selTotalNum(data) {
return request({
url: '/system/accredit/selTotalNum',
method: 'post',
data
})
}

View File

@ -0,0 +1,103 @@
<template>
<div style="height: 800px">
<codemirror ref="codeMirror" :value="code" :options="cmOptions" style="height: 800px"></codemirror>
</div>
</template>
<script>
// import 'codemirror/mode/clike/clike';
// // cm-setting.js
// //
// import 'codemirror/lib/codemirror.css';
// //
// import 'codemirror/theme/eclipse.css';
// import 'codemirror/theme/monokai.css';
// // html
// import 'codemirror/mode/htmlmixed/htmlmixed.js';
// //
// import 'codemirror/mode/javascript/javascript.js';
// import 'codemirror/mode/css/css.js';
// import 'codemirror/mode/xml/xml.js';
// //
// import 'codemirror/addon/fold/foldcode.js';
// import 'codemirror/addon/fold/foldgutter.js';
// import 'codemirror/addon/fold/foldgutter.css';
// import 'codemirror/addon/fold/brace-fold.js';
// jsjsjson,
// import from ',
export default {
// import使"
components: { codemirror },
props: {
value: {
default: "",
type: String
},
readOnly: {
default: false,
type: Boolean
}
},
data() {
// "
return {
codemirror: null,
code:this.value,
cmOptions: {
autoRefresh: true,
value: '',
mode: 'text/x-java',
tabSize: 4,
styleActiveLine: true,
lineNumbers: true,
theme: 'eclipse',
readOnly: this.readOnly,
lineWrapping: true,
gutters: [
'CodeMirror-lint-markers', //
'CodeMirror-linenumbers',
'CodeMirror-foldgutter', //
]
}
}
},
// data",
computed: {},
// data",
watch: {},
// ",
methods: {},
// - 访this",
created() {
},
// - 访DOM",
mounted() {
},
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} // keep-alive",
}
</script>
<style scoped>
.CodeMirror {
font-family: 'JetBrainsMono-Medium', monospace;
height: 800px;
}
.CodeMirror-lines {
line-height: 1.5; /* 这里的1.5是示例表示行间距是字体大小的1.5倍 */
}
</style>

View File

@ -73,19 +73,6 @@ export const constantRoutes = [
}
]
},
{
path: '/admin',
component: Layout,
redirect: 'index',
children: [
{
path: 'index',
component: () => import('@/views/goods/admin/index'),
name: '测试用户',
meta: {title: '测试用户', icon: 'form', affix: true}
}
]
},
// {
// path: '/source',
// component: Layout,

View File

@ -140,7 +140,7 @@
size="mini"
icon="el-icon-edit"
:load="expandTable"
@click="ttbb(scope.row)"
@click="synchronizations2(scope.row)"
v-hasPermi="['system:access:remove']"
>同协</el-button>
</template>
@ -299,7 +299,7 @@
<script>
import { listAccess, getAccess, delAccess, addAccess, updateAccess, synchronization } from "@/api/system/access";
import { selJDBCStream } from "@/api/system/accredit";
import { selJDBCStream, selJDBCStream2 } from "@/api/system/accredit";
import Table from '@/views/assets/table/index.vue'
import Authorization from '@/views/assets/authorization/index.vue'
@ -420,16 +420,16 @@ export default {
resolve(this.childrenList)
}, 500);
},
ttbb(row){
this.accessId = row.id
console.log(row)
},
//
synchronizations(row){
synchronization(row).then(res => {
this.$message.success(res.data)
})
},
synchronizations2(row){
selJDBCStream2(row).then(res => {
this.$message.success(res.data)
})
},
//
addParam(){

View File

@ -35,13 +35,13 @@
<el-table-column align="center" label="创建时间" prop="createTime"></el-table-column>
<el-table-column align="center" label="操作" >
<template slot-scope="scope">
<el-tooltip :content="'value:' + scope.row.statusId"></el-tooltip>
{{scope.row.statusId}}
<el-switch
style="display: block"
v-model="scope.row.statusId"
@change="updDept(scope.row)"
active-value="0"
inactive-value="1"
active-value= "Y"
inactive-value= "N"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="已授权"
@ -62,12 +62,13 @@
<el-table-column align="center" label="创建时间" prop="createTime" />
<el-table-column align="center" label="操作" >
<template slot-scope="scope">
{{scope.row.statusId}}
<el-switch
style="display: block"
v-model="scope.row.statusId"
@change="updUser(scope.row)"
active-value= "0"
inactive-value= "1"
active-value= "Y"
inactive-value= "N"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="已授权"
@ -123,27 +124,29 @@ export default {
},
methods: {
updDept(row) {
if (row.statusId == 0){
updateMiddle(row.mid,1).then(res => {
this.$message.success(res.data)
})
}else {
updateMiddle(row.mid,0).then(res => {
this.$message.success(res.data)
})
}
console.log(row.statusId)
updateMiddle(row.mid,row.statusId).then(res => {
this.$message.success(res.data)
})
// if (row.statusId == "Y"){
// console.log(row.statusId)
// updateMiddle(row.mid,"N").then(res => {
// this.$message.success(res.data)
// })
// }
// if (row.statusId == "N"){
// console.log(row.statusId)
// updateMiddle(row.mid,"Y").then(res => {
// this.$message.success(res.data)
// })
// }
},
updUser(row) {
if (row.statusId == 0){
updateUserMiddle(row.mid,1).then(res => {
console.log(row.statusId)
updateUserMiddle(row.mid,row.statusId).then(res => {
this.$message.success(res.data)
})
}else {
updateUserMiddle(row.mid,0).then(res => {
this.$message.success(res.data)
})
}
},
init() {
this.baseInfo = this.stats
@ -154,7 +157,6 @@ export default {
//
listUserMiddle2(this.title.databaseName).then(res => {
this.userList = res.data
console.log(res.data)
})
},
}

View File

@ -50,12 +50,13 @@
<el-table-column label="创建时间" prop="createTime" ></el-table-column>
<el-table-column align="center" label="操作" prop="statusId" >
<template slot-scope="scope">
{{scope.row.statusId}}
<el-switch
style="display: block"
v-model="scope.row.statusId"
@change="updDept(scope.row)"
active-value="1"
inactive-value="0"
active-value= "Y"
inactive-value= "N"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="已授权"
@ -76,12 +77,13 @@
<el-table-column align="center" label="创建时间" prop="createTime" />
<el-table-column align="center" label="操作" prop="statusId" >
<template slot-scope="scope">
{{scope.row.statusId}}
<el-switch
style="display: block"
v-model="scope.row.statusId"
@change="updUser(scope.row)"
active-value="1"
inactive-value="0"
active-value= "Y"
inactive-value= "N"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="已授权"
@ -141,27 +143,17 @@ export default {
},
methods: {
updDept(row) {
if (row.mid,row.statusId === 0){
updateMiddle(row.mid,1).then(res => {
this.$message.success(res.data)
})
}else {
updateMiddle(row.mid,0).then(res => {
this.$message.success(res.data)
})
}
console.log(row.statusId)
updateMiddle(row.mid,row.statusId).then(res => {
this.$message.success(res.data)
})
},
updUser(row) {
if (row.mid,row.statusId === 0){
updateUserMiddle(row.mid,1).then(res => {
this.$message.success(res.data)
})
}else {
updateUserMiddle(row.mid,0).then(res => {
this.$message.success(res.data)
})
}
console.log(row.statusId)
updateUserMiddle(row.mid,row.statusId).then(res => {
this.$message.success(res.data)
})
},
init(){
this.baseInfo = this.stats
@ -172,6 +164,7 @@ export default {
//
listUserMiddle(this.title.tableName,this.title.databaseName).then(res => {
this.userList = res.data
console.log(res.data)
})
}
},

View File

@ -0,0 +1,130 @@
<template>
<el-container :style="{height: mainHeight + 'px'}">
<el-aside>
<el-tree :data="assetStructureList"
:load="expandTable"
:expand-on-click-node="false"
lazy
@node-click="showName"
:props="defaultProps">
<div class="custom-tree-node" slot-scope="{ node, data }">
<div v-if="data.type === 'dataSource'">{{ data.name + '('+data.databaseName + '-' + data.systemName+')' }}</div>
<div v-if="data.type === 'dataTable'">{{ data.tableName + '-'+data.asas + '(' + data.dataTotal+')' }}</div>
</div>
</el-tree>
</el-aside>
<el-container>
<el-main>
<el-card>
<div slot="header" class="clearfix">
<span>资产模型基本信息</span>
</div>
<el-descriptions v-model="table" border :column="2">
<el-descriptions-item label="表名称">{{table.tableName}}</el-descriptions-item>
<el-descriptions-item label="表备注">{{table.asas}}</el-descriptions-item>
<el-descriptions-item label="数据量">{{ table.dataTotal }}</el-descriptions-item>
<el-descriptions-item label="是否核心">
<el-tag size="small"></el-tag>
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card class="box-card" style="margin-top: 20px">
<div slot="header" class="clearfix">
<span>模型数据</span>
</div>
<el-row :gutter="20">
<el-col :span="6" v-for="asset in assetShowList" style="margin-top: 20px">
<el-descriptions :title="asset.keysed" direction="vertical" border :column="1">
<el-descriptions-item label="Type">
<el-tag size="small">{{asset.type}}</el-tag>
</el-descriptions-item>
<el-descriptions-item label="Value">{{asset.val}}</el-descriptions-item>
</el-descriptions>
</el-col>
</el-row>
</el-card>
</el-main>
</el-container>
</el-container>
</template>
<script>
import { selectFrimary, selectShow } from "@/api/system/accredit";
export default {
name: "AssetShow",
data() {
return {
mainHeight: window.innerHeight - 85,
defaultProps: {
children: 'childrenList',
label: 'name'
},
table: null,
showAuth: null,
assetStructureList: [],
childrenList: [],
assetShowList: []
}
},
created() {
this.init()
},
methods: {
expandTable( node, resolve){
if (node.level === 0) return resolve(this.assetStructureList);
const {data} = node;
if (data.type === 'dataTable') {
return resolve([])
}
setTimeout(() => {
resolve(data.tableLists)
}, 500);
},
showName(data) {
console.log(data)
this.showAuth = data.type
if (data.type === 'dataTable'){
this.table = data
console.log(data.tableName)
selectShow(data.tableName).then(res => {
console.log(res)
this.assetShowList = res.data
console.log(res.data)
})
}
},
init() {
this.table = {
tableName: 'null',
asas: '表',
dataTotal: '0',
}
selectFrimary().then(res => {
this.assetStructureList = res.data
console.log(res.data)
})
}
}
}
</script>
<style scoped>
.el-aside {
margin: 0;
padding: 0;
width: 400px;
background-color: white;
}
.el-main {
background-color: #f1f1f1;
}
.custom-tree-node{
height: 30px;
}
.el-descriptions-row>th{
width: 200px;
}
</style>

View File

@ -4,10 +4,10 @@
<div slot="header" class="clearfix">
<span>资产模型基本信息</span>
</div>
<el-descriptions v-model="table" border :column="2">
<el-descriptions-item label="表名称">{{ table.tableName }}</el-descriptions-item>
<el-descriptions-item label="表备注">{{ table.asas }}</el-descriptions-item>
<el-descriptions-item label="数据量">{{ table.dataTotal }}</el-descriptions-item>
<el-descriptions v-model="stats" border :column="2">
<el-descriptions-item label="表名称">{{ stats.tableName }}</el-descriptions-item>
<el-descriptions-item label="表备注">{{ stats.asas }}</el-descriptions-item>
<el-descriptions-item label="数据量">{{ stats.dataTotal }}</el-descriptions-item>
<el-descriptions-item label="是否核心">
<el-tag size="small"></el-tag>
</el-descriptions-item>
@ -26,7 +26,13 @@
<el-table-column prop="columnName" label="字段名称" />
<el-table-column prop="precisions" label="长度" />
<el-table-column prop="scale" label="小数" />
<el-table-column prop="isNull" label="非空" />
<el-table-column prop="isNull" label="非空" >
<template slot-scope="scope">
<el-tag size="small" :type="scope.row.isNull === 1 ? 'success':'dager'">
{{scope.row.isNull}}
</el-tag>
</template>
</el-table-column>
<el-table-column prop="schemaName" label="默认" />
<el-table-column prop="columnComments" label="注解" />
<el-table-column prop="yesOrNo" label="是否字典"/>
@ -167,9 +173,9 @@ export default {
tableParams: {
type: Object
},
// stats: {
// type: Object
// }
stats: {
type: Object
}
},
watch: {
handler(val) {
@ -227,6 +233,7 @@ export default {
})
},
init() {
this.table =
selNameListStructure(this.tableParams.tableName,this.tableParams.databaseName).then(res => {
this.childrenList = res.data
})

View File

@ -1,61 +1,84 @@
<template>
<el-row :gutter="40" class="panel-group">
<div class="title-header">
整体数据资产结构概述
</div>
<el-col :lg="8" :sm="12" :xs="12" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('newVisitis')">
<div class="card-panel-icon-wrapper icon-people">
<svg-icon class-name="card-panel-icon" icon-class="database"/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">
数据接入
<el-form :model="totalNum">
<el-row>
<el-col :lg="8" :sm="12" :xs="12" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('newVisitis')">
<div class="card-panel-icon-wrapper icon-people">
<svg-icon class-name="card-panel-icon" icon-class="database"/>
</div>
<count-to :duration="2600" :end-val="4" :start-val="0" class="card-panel-num"/>
</div>
</div>
</el-col>
<el-col :lg="8" :sm="12" :xs="12" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-icon-wrapper icon-message">
<svg-icon class-name="card-panel-icon" icon-class="table"/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">
资产模型
<div class="card-panel-description">
<div class="card-panel-text">
数据接入
</div>
<count-to :duration="2600" :end-val="totalNum.switchOns" :start-val="0" class="card-panel-num"/>
</div>
<count-to :duration="3000" :end-val="96" :start-val="0" class="card-panel-num"/>
</div>
</div>
</el-col>
<el-col :lg="8" :sm="12" :xs="12" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('purchases')">
<div class="card-panel-icon-wrapper icon-money">
<svg-icon class-name="card-panel-icon" icon-class="field"/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">
数据模型
</el-col>
<el-col :lg="8" :sm="12" :xs="12" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('messages')">
<div class="card-panel-icon-wrapper icon-message">
<svg-icon class-name="card-panel-icon" icon-class="table"/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">
资产模型
</div>
<count-to :duration="3000" :end-val="totalNum.assetsNum" :start-val="0" class="card-panel-num"/>
</div>
<count-to :duration="3200" :end-val="560" :start-val="0" class="card-panel-num"/>
</div>
</div>
</el-col>
</el-row>
</el-col>
<el-col :lg="8" :sm="12" :xs="12" class="card-panel-col">
<div class="card-panel" @click="handleSetLineChartData('purchases')">
<div class="card-panel-icon-wrapper icon-money">
<svg-icon class-name="card-panel-icon" icon-class="field"/>
</div>
<div class="card-panel-description">
<div class="card-panel-text">
数据模型
</div>
<count-to :duration="3200" :end-val="totalNum.fieldsNum" :start-val="0" class="card-panel-num"/>
</div>
</div>
</el-col>
</el-row>
</el-form>
</template>
<script>
import CountTo from 'vue-count-to'
import { selTotalNum } from "@/api/system/accredit";
export default {
// props: {
// total:{
// type: Object
// }
// },
data() {
return {
totalNum: {
switchOns: '',
assetsNum: '',
fieldsNum: ''
}
}
},
components: {
CountTo
},
methods: {
handleSetLineChartData(type) {
this.$emit('handleSetLineChartData', type)
},
init() {
selTotalNum().then(res => {
this.totalNum = res.data
console.log(res.data)
})
}
},
created() {
this.init()
}
}
</script>

View File

@ -16,8 +16,9 @@
<el-container>
<el-main>
<OverallAssets v-if="showAssets == null"/>
<OverallAssets v-if="showAssets == 'dataSource'" />
<overall-specific-assets v-if="showAssets === 'dataSource'" :title="title" :overall-name="overallName"/>
<overall-asset-structure v-if="showAssets === 'dataTable'" :table-params="tableParams"/>
<overall-asset-structure v-if="showAssets === 'dataTable'" :table-params="tableParams" :stats="stats" />
</el-main>
</el-container>
</el-container>
@ -44,6 +45,7 @@ export default {
tableParams: null,
stats: null,
title: null,
total: null,
overallName: []
}
},

View File

@ -0,0 +1,84 @@
<template>
<el-col :span="22" offset="1">
<el-card>
<div slot="header" class="clearfix">
<span>公共配置</span>
</div>
<el-form ref="form" :model="ruleEngineCommConfig" label-width="80px">
<el-form-item label-width="">
<el-input v-model="ruleEngineCommConfig.packageName" disabled></el-input>
</el-form-item>
</el-form>
</el-card>
<el-col>
<el-card>
<div slot="header" class="clearfix">
<soan>作用域</soan>
</div>
<el-tabs type="border-card" v-model="codeCardStatus">
<el-tab-pane v-for="scope in scopeList" :label="scope.type" :name="scope.val">
<encoding v-if="codeCardStatus === scope.val" style="height: 800px" v-model="scope.code" :read-only="true">{{scope.code}}</encoding>
</el-tab-pane>
</el-tabs>
</el-card>
</el-col>
</el-col>
</template>
<script>
// jsjsjson,
// import from ',
import { listCope } from '@/api/goods/cope'
export default {
// import使"
components: { },
props: {},
data() {
// "
return {
codeCardStatus: 'taskContext',
ruleEngineCommConfig: {
packageName: "com.muyu.rule.engine"
},
scopeList: []
}
},
// data",
computed: {},
// data",
watch: {},
// ",
methods: {
init() {
listCope().then(res => {
this.scopeList = res.data
})
}
},
// - 访this",
created() {
this.init()
},
// - 访DOM",
mounted() {
},
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} // keep-alive",
}
</script>
<style scoped>
</style>

View File

@ -0,0 +1,441 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="规则名称" prop="ruleName">
<el-input
v-model="queryParams.ruleName"
placeholder="请输入规则名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="是否激活" prop="ruleIsActivate">
<el-select v-model="queryParams.ruleIsActivate" placeholder="请选择规则类型" clearable>
<el-option v-for="activate in isActive"
:key="activate.val"
:label="activate.label"
:value="activate.val"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="规则状态" prop="ruleStatus">
<el-select v-model="queryParams.ruleStatus" placeholder="请选择规则状态" clearable>
<el-option v-for="status in ruleStatus"
:key="status.val"
:label="status.label"
:value="status.val"></el-option>
</el-select>
</el-form-item>
<el-form-item label="规则级别" prop="ruleLevel">
<el-select v-model="queryParams.ruleLevel" placeholder="请选择规则级别" clearable>
<el-option v-for="level in ruleLevel"
:key="level.val"
:label="level.val"
:value="level.val"></el-option>
</el-select>
</el-form-item>
<el-form-item label="规则类型" prop="ruleType">
<el-select v-model="queryParams.ruleType" placeholder="请选择规则类型">
<el-option v-for="typeis in ruleType"
:key="typeis.val"
:label="typeis.val"
:value="typeis.val"></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['goods:engine:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['goods:engine:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['goods:engine:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['goods:engine:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="engineList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="ruleId" />
<el-table-column label="规则名称" align="center" prop="ruleName" />
<el-table-column label="引擎编码" align="center" prop="ruleCode" />
<el-table-column label="规则级别" align="center" prop="ruleLevel" />
<el-table-column label="规则类型" align="center" prop="ruleType" />
<el-table-column label="是否激活" align="center" prop="ruleIsActivate" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.ruleIsActivate === 'Y'"></el-tag>
<el-tag size="small" v-if="scope.row.ruleIsActivate === 'N'"></el-tag>
</template>
</el-table-column>
<el-table-column label="规则状态" align="center" prop="ruleStatus" >
<template slot-scope="scope">
<el-tag size="small" v-if="scope.row.ruleStatus === 'Y'"></el-tag>
<el-tag size="small" v-if="scope.row.ruleStatus === 'N'"></el-tag>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-takeaway-box"
@click="toEngineVersion(scope.row)"
v-hasPermi="['system:engine:edit']"
>规则维护</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['goods:engine:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['goods:engine:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改规则引擎对话框 -->
<el-dialog :title="title" :visible.sync="open" width="80%" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-row>
<el-col :span="12">
<el-form-item label="规则名称" prop="ruleName">
<el-input v-model="form.ruleName" placeholder="请输入规则名称" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="引擎编码" prop="ruleCode">
<el-input v-model="form.ruleCode" placeholder="请输入引擎编码" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="规则类型" prop="ruleType">
<el-select v-model="form.ruleType" placeholder="请选择规则类型" style="width: 100%">
<el-option v-for="types in ruleType"
:key="types.val"
:label="types.val"
:value="types.val"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规则级别" prop="ruleLevel">
<el-select v-model="form.ruleLevel" placeholder="请选择规则等级" style="width: 100%;">
<el-option v-for="level in ruleLevel"
:key="level.val"
:label="level.val"
:value="level.val"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="是否激活" prop="ruleIsActivate">
<el-radio-group v-model="form.ruleIsActivate">
<el-radio
v-for="active in isActive"
:key="active.val"
:label="active.val"
>{{active.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="规则状态" prop="ruleStatus">
<el-radio-group v-model="form.ruleStatus">
<el-radio v-for="status in ruleStatus"
:key="status.val"
:label="status.val"
>{{status.label}}</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="规则描述">
<editor v-model="form.description" :min-height="192"/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 规则维护 -->
<el-dialog
title="提示"
:visible.sync="cisid"
width="30%"
center>
<span>{{engine.description}}</span>
<span slot="footer" class="dialog-footer">
<el-button @click="cisid = false"> </el-button>
<el-button type="primary" @click="cisid = false"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { listEngine, getEngine, delEngine, addEngine, updateEngine, selectRuleEngineByRuleId
} from "@/api/goods/engine";
import version from "@/views/engine/version/index.vue";
import path from "path";
export default {
name: "Engine",
data() {
return {
//
cisid: false,
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
engineList: [],
engine: {
ruleId: '',
description: ''
},
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
ruleName: null,
ruleLevel: null,
ruleType: null,
ruleIsActivate: null,
ruleStatus: null,
},
//
//
ruleType: [
{val:'规则模板'},
{val:'自定义规则'}
],
//
ruleLevel: [
{val:'数据集'},
{val:'记录'},
{val:'数据字段'},
],
//
isActive: [
{
val:'Y',
label:'是',
},
{
val:'N',
label:'否',
}
],
//
ruleStatus: [
{
val:'Y',
label:'在用'
},
{
val:'N',
label:'停用'
}
],
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询规则引擎列表 */
getList() {
this.loading = true;
listEngine(this.queryParams).then(response => {
console.log(response)
this.engineList = response.data.rows;
this.total = response.data.total;
this.loading = false;
});
},
toEngineVersion(row){
this.$router.push( {path: `/engine/version/${row.ruleId}`});
// selectRuleEngineByRuleId(row.ruleId).then(res => {
// this.engine = res.data
// this.cisid = true;
// })
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
ruleId: null,
ruleName: null,
ruleCode: null,
ruleLevel: null,
ruleType: null,
ruleIsActivate: null,
ruleStatus: null,
description: null,
remark: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.ruleId)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加规则引擎";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const ruleId = row.ruleId || this.ids
getEngine(ruleId).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改规则引擎";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.ruleId != null) {
updateEngine(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addEngine(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ruleIds = row.ruleId || this.ids;
this.$modal.confirm('是否确认删除规则引擎编号为"' + ruleIds + '"的数据项?').then(function() {
return delEngine(ruleIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('goods/engine/export', {
...this.queryParams
}, `engine_${new Date().getTime()}.xlsx`)
}
}
};
</script>

View File

@ -0,0 +1,304 @@
<template>
<div>
<el-card style="width: 95%;margin-left: 35px;margin-top: 10px">
<div slot="header" class="clearfix">
<span>引擎规则基本信息</span>
<el-button style="float: right" @click="goBack" size="medium" type="text">返回</el-button>
</div>
<el-descriptions border :column="3">
<el-descriptions-item label="主键">{{ruleInfo.ruleId}}</el-descriptions-item>
<el-descriptions-item label="规则名称">{{ruleInfo.ruleName}}</el-descriptions-item>
<el-descriptions-item label="引擎编码">{{ruleInfo.ruleCode}}</el-descriptions-item>
<el-descriptions-item label="规则级别">{{ruleInfo.ruleLevel}}</el-descriptions-item>
<el-descriptions-item label="规则类型">{{ruleInfo.ruleType}}</el-descriptions-item>
<el-descriptions-item label="是否激活">{{ruleInfo.ruleIsActivate}}</el-descriptions-item>
<el-descriptions-item label="规则状态">{{ruleInfo.ruleStatus}}</el-descriptions-item>
<el-descriptions-item label="代码文本">{{ruleInfo.description}}</el-descriptions-item>
<el-descriptions-item label="备注">{{ruleInfo.remark}}</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card :body-style="{ padding: '0.3px' }" class="versionContainer" style="width: 95%;margin-left: 35px;margin-top: 10px">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['goods:config:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['goods:config:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['goods:config:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['goods:config:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="configList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="编号" align="center" prop="id" />
<el-table-column label="版本编码" align="center" prop="versionCode" />
<el-table-column label="规则内容" align="center" prop="ruleContent" />
<el-table-column label="维护编号" align="center" prop="ruleId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['goods:config:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['goods:config:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改引擎对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="版本编码" prop="versionCode">
<el-input v-model="form.versionCode" placeholder="请输入版本编码" />
</el-form-item>
<el-form-item label="规则内容">
<editor v-model="form.ruleContent" :min-height="192"/>
</el-form-item>
<el-form-item label="维护编号" prop="ruleId">
<el-input v-model="form.ruleId" placeholder="请输入维护编号" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</el-card>
</div>
</template>
<script>
// jsjsjson,
// import from ',
import { selectRuleEngineByRuleId } from "@/api/goods/engine";
// import Encoding from "@/components/Encoding/index.vue";
import { listConfig, getConfig, addConfig, updateConfig, delConfig } from "@/api/goods/config";
export default {
// import使"
components: {},
props: {},
data() {
// "
return {
visible: false,
ruleId: 1,
ruleInfo: {},
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
configList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
versionCode: null,
ruleContent: null,
ruleId: null
},
//
form: {},
//
rules: {
versionCode: [
{ required: true, message: "版本编码不能为空", trigger: "blur" }
],
newBasis: [
{ required: true, message: "新增依据不能为空", trigger: "blur" }
],
},
activeName: '0',
versionList: []
}
},
// data",
computed: {},
// data",
watch: {},
// ",
methods: {
init() {
selectRuleEngineByRuleId(this.ruleId).then(res => {
this.ruleInfo = res.data
})
listConfig().then(res => {
this.versionList = res.data
})
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
versionCode: null,
ruleContent: null,
ruleId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加引擎";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getConfig(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改引擎";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateConfig(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addConfig(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除引擎编号为"' + ids + '"的数据项?').then(function() {
return delConfig(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/config/export', {
...this.queryParams
}, `config_${new Date().getTime()}.xlsx`)
}
},
// - 访this",
created() {
this.init();
},
// - 访DOM",
mounted() {
},
beforeCreate() {
}, // - ",
beforeMount() {
}, // - ",
beforeUpdate() {
}, // - ",
updated() {
}, // - ",
beforeDestroy() {
}, // - ",
destroyed() {
}, // - ",
activated() {
} // keep-alive",
}
</script>
<style scoped>
</style>

View File

@ -1,287 +0,0 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="用户名" prop="username">
<el-input
v-model="queryParams.username"
placeholder="请输入用户名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input
v-model="queryParams.password"
placeholder="请输入密码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="号码" prop="tel">
<el-input
v-model="queryParams.tel"
placeholder="请输入号码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="角色" prop="typeId">
<el-input
v-model="queryParams.typeId"
placeholder="请输入角色"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['goods:admin:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['goods:admin:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['goods:admin:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['goods:admin:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="adminList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="主键" align="center" prop="id" />
<el-table-column label="用户名" align="center" prop="username" />
<el-table-column label="密码" align="center" prop="password" />
<el-table-column label="号码" align="center" prop="tel" />
<el-table-column label="角色" align="center" prop="typeId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['goods:admin:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['goods:admin:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改测试信息对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="用户名" prop="username">
<el-input v-model="form.username" placeholder="请输入用户名" />
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input v-model="form.password" placeholder="请输入密码" />
</el-form-item>
<el-form-item label="号码" prop="tel">
<el-input v-model="form.tel" placeholder="请输入号码" />
</el-form-item>
<el-form-item label="角色" prop="typeId">
<el-input v-model="form.typeId" placeholder="请输入角色" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listAdmin, getAdmin, delAdmin, addAdmin, updateAdmin } from "@/api/goods/admin";
export default {
name: "Admin",
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
adminList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
username: null,
password: null,
tel: null,
typeId: null
},
//
form: {},
//
rules: {
}
};
},
created() {
this.getList();
},
methods: {
/** 查询测试信息列表 */
getList() {
this.loading = true;
listAdmin(this.queryParams).then(response => {
this.adminList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
username: null,
password: null,
tel: null,
typeId: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加测试信息";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getAdmin(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改测试信息";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateAdmin(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addAdmin(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除测试信息编号为"' + ids + '"的数据项?').then(function() {
return delAdmin(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('goods/admin/export', {
...this.queryParams
}, `admin_${new Date().getTime()}.xlsx`)
}
}
};
</script>