<template>
<div style="float:left;width: 100%">
<el-row>
<el-col :span=6>
<el-input size = "small" v-model="apiId" placeholder="接口名" autocomplete="off" clearable @keyup.enter="query"></el-input>
</el-col>
<el-col :span=4>
<el-button size = "small" icon="el-icon-search" @click="query">查询</el-button>
<el-button size = "small" type="primary" icon="el-icon-plus" :disabled = "!$root.writeFlag" @click="add">增加</el-button>
</el-col>
</el-row>
</div>
<div >
<el-table :data="tableData.filter(data => !search || data.apiId.toLowerCase().includes(search.toLowerCase()))"
stripe
height="700"
style="width: 100%">
<el-table-column label="序号" fixed width="60">
<template #default="scope">
{{paginationData.pageSize * (paginationData.currentPage - 1) + scope.$index+1}}
</template>
</el-table-column>
<el-table-column label="copybook" prop="copybook"></el-table-column>
<el-table-column label="fieldNo" prop="fieldNo"></el-table-column>
<el-table-column label="cobolName" prop="cobolName"></el-table-column>
<el-table-column label="schema" prop="schema"></el-table-column>
<el-table-column label="tableName" prop="tableName"></el-table-column>
<el-table-column label="columnName" prop="columnName"></el-table-column>
<el-table-column label="columnName" prop="pic"></el-table-column>
<el-table-column label="scale" prop="scale"></el-table-column>
<el-table-column label="signed" prop="signed"></el-table-column>
<el-table-column label="parent" prop="parent"></el-table-column>
<el-table-column label="redefine" prop="redefine"></el-table-column>
<el-table-column label="offset" prop="offset"></el-table-column>
<el-table-column label="length" prop="length"></el-table-column>
<el-table-column label="lengthDependOn" prop="lengthDependOn"></el-table-column>
<el-table-column label="filler" prop="filler"></el-table-column>
<el-table-column label="key" prop="key"></el-table-column>
<el-table-column label="displayName" prop="displayName"></el-table-column>
<el-table-column label="memo" prop="memo"></el-table-column>
<el-table-column label="picLength" prop="picLength"></el-table-column>
<el-table-column label="comp" prop="comp"></el-table-column>
<el-table-column align="right" width="100" fixed="right" >
<template #header>
<el-input v-model="search" size="mini" placeholder="API"></el-input>
</template>
<template #default="scope">
<el-button size="mini" @click="handleEdit(scope.$index, scope.row)" icon="el-icon-edit" :disabled="!$root.writeFlag"
>编辑</el-button>
<!-- <el-button size="mini" @click="handleCopy(scope.$index, scope.row)" icon="el-icon-plus" type="primary" :disabled="!$root.writeFlag"-->
<!-- >复制</el-button>-->
</template>
</el-table-column>
</el-table>
</div>
<div class="pagination">
<paging ref="paging" :pagination-data="paginationData"></paging>
</div>
<div>
<el-dialog title="配置信息" v-model = "show">
<el-form :model="form">
<el-form-item label="ABTable" :label-width="formLabelWidth">
<el-input v-model="form.ABTable" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="copybook" :label-width="formLabelWidth">
<el-input v-model="form.copybook" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="fieldNo" :label-width="formLabelWidth">
<el-input v-model="form.fieldNo" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="cobolName" :label-width="formLabelWidth">
<el-input v-model="form.cobolName" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="schema" :label-width="formLabelWidth">
<el-input v-model="form.schema" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="tableName" :label-width="formLabelWidth">
<el-input v-model="form.tableName" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="columnName" :label-width="formLabelWidth">
<el-input v-model="form.columnName" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="pic" :label-width="formLabelWidth">
<el-input v-model="form.pic" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="numeric" :label-width="formLabelWidth">
<el-input v-model="form.numeric" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="scale" :label-width="formLabelWidth">
<el-input v-model="form.scale" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="signed" :label-width="formLabelWidth">
<el-input v-model="form.signed" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="parent" :label-width="formLabelWidth">
<el-input v-model="form.parent" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="redefine" :label-width="formLabelWidth">
<el-input v-model="form.redefine" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="offset" :label-width="formLabelWidth">
<el-input v-model="form.offset" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="length" :label-width="formLabelWidth">
<el-input v-model="form.length" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="lengthDependOn" :label-width="formLabelWidth">
<el-input v-model="form.lengthDependOn" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="filler" :label-width="formLabelWidth">
<el-input v-model="form.filler" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="key" :label-width="formLabelWidth">
<el-input v-model="form.key" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="displayName" :label-width="formLabelWidth">
<el-input v-model="form.displayName" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="memo" :label-width="formLabelWidth">
<el-input v-model="form.memo" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="picLength" :label-width="formLabelWidth">
<el-input v-model="form.picLength" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="comp" :label-width="formLabelWidth">
<el-input v-model="form.comp" placeholder="" autocomplete="off" clearable :disabled="true"></el-input>
</el-form-item>
<el-form-item label="修改原因" :label-width="formLabelWidth">
<el-input v-model="reason" placeholder="请输入修改原因" autocomplete="off" clearable :disabled="insert"></el-input>
</el-form-item>
</el-form>
<div class="dialog-footer">
<el-button @click="show = false">取 消</el-button>
<el-button type="primary" @click="save">确 定</el-button>
</div>
</el-dialog>
</div>
</template>

<script>
import Paging from '../../components/Paging'
import { post } from '../../api/request'
import Cookies from 'js-cookies/src/cookies'
import { isEmpty } from '../../utils/commonUtil'

export default {
components: { Paging },
data () {
return {
formLabelWidth: '120px',
tableData: [
],
search: '',
apiId: '',
insert: true,
show: false,
paginationData: {
total: 0,
currentPage: 1,
pageSize: 30,
handleCurrentChange: val => {
this.paginationData.currentPage = val
this.query()
},
handleSizeChange: val => {
this.paginationData.pageSize = val
this.query()
}
},
old: {

},
reason: '',
form: {
ABTable: '',
copybook: '',
fieldNo: '',
cobolName: '',
schema: '',
tableName: '',
columnName: '',
pic: '',
numeric: '',
scale: '',
signed: '',
parent: '',
redefine: '',
offset: '',
length: '',
lengthDependOn: '',
filler: '',
key: '',
displayName: '',
memo: '',
picLength: '',
comp: '',
total: 0,
currentPage: 1,
pageSize: 30
}
}
},
mounted () {
this.$nextTick(() => {
this.query()
})
},
methods: {
preQuery () {
this.form.currentPage = this.paginationData.currentPage
this.form.total = this.paginationData.total
this.form.pageSize = this.paginationData.pageSize
},
query () {
this.preQuery()
console.log(this)
console.log(JSON.stringify(this))
debugger
post('/api/config/copybookFiled/query', this.form).then((reult) => {
this.tableData = reult.list
this.paginationData.total = reult.total
})
},
add () {
this.form = {
apiId: '',
url: '',
type: '0',
percentage: 0,
coxTps: 1000,
ctgTps: 50,
status: '1',
switchTail: ''
}
this.insert = true
this.show = true
},
// handleCopy (index, row) {
// this.form = {
// apiId: '',
// url: row.url.replaceAll(row.apiId, ''),
// type: row.type,
// percentage: row.percentage,
// coxTps: row.coxTps,
// ctgTps: row.ctgTps,
// status: row.status,
// switchTail: row.switchTail
// }
// this.insert = true
// this.show = true
// },
handleEdit (index, row) {
this.form = {
ABTable: row.ABTable,
copybook: row.copybook,
fieldNo: row.fieldNo,
cobolName: row.cobolName,
schema: row.schema,
tableName: row.tableName,
columnName: row.columnName,
pic: row.pic,
numeric: row.numeric,
scale: row.scale,
signed: row.signed,
parent: row.parent,
redefine: row.redefine,
offset: row.offset,
length: row.length,
lengthDependOn: row.lengthDependOn,
filler: row.filler,
key: row.key,
displayName: row.displayName,
memo: row.memo,
picLength: row.picLength,
comp: row.comp,
total: row.total,
currentPage: row.currentPage,
pageSize: row.pageSize
}
this.old = {
ABTable: row.ABTable,
copybook: row.copybook,
fieldNo: row.fieldNo,
cobolName: row.cobolName,
schema: row.schema,
tableName: row.tableName,
columnName: row.columnName,
pic: row.pic,
numeric: row.numeric,
scale: row.scale,
signed: row.signed,
parent: row.parent,
redefine: row.redefine,
offset: row.offset,
length: row.length,
lengthDependOn: row.lengthDependOn,
filler: row.filler,
key: row.key,
displayName: row.displayName,
memo: row.memo,
picLength: row.picLength,
comp: row.comp,
total: row.total,
currentPage: row.currentPage,
pageSize: row.pageSize
}
this.reason = ''
this.insert = false
this.show = true
},
save () {
if (this.insert) {
this.insert2Db()
} else {
this.update()
}
},
update () {
if (isEmpty(this.reason)) {
this.$message({ type: 'error', message: '请填写修改原因' })
return
}
this.$confirm('此操作将永久修改,是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const p = [this.form, this.old]
Cookies.setItem('reason', this.reason)
post('/api/config/api_configs/update', p).then((result) => {
if (result.code === '200') {
this.$message({ type: 'info', message: '修改成功' })
this.query()
} else {
this.$message({ type: 'error', message: '修改失败' })
}
Cookies.removeItem('reason')
})
}).catch(() => {
this.$message({ type: 'info', message: '已取消修改' })
Cookies.removeItem('reason')
})
this.show = false
},
insert2Db () {
if (this.checkInput(this.form)) {
post('/api/config/api_configs/add', this.form).then((result) => {
if (result.code === '200') {
this.$message({ type: 'info', message: '插入成功' })
this.query()
} else {
this.$message({ type: 'error', message: '插入失败' })
}
})
this.show = false
}
},
checkInput (form) {
if (isEmpty(form.apiId)) {
this.$message({ type: 'error', message: '请输入接口名!' })
return false
}
if (isEmpty(form.url)) {
this.$message({ type: 'error', message: '请输入接口URL!' })
return false
}
const url = form.url
if (url.indexOf('custinfo') === -1 && url.indexOf('cardinfo') === -1 && url.indexOf('accountinfo') === -1) {
this.$message({ type: 'error', message: '请输入正确的URL,如/custinfo/apiId、/cardinfo/apiId、/accountinfo/apiId!' })
return false
}
return true
}
}
} </script>

feildconfig的更多相关文章

  1. Redis:解决分布式高并发修改同一个Key的问题

    本篇文章是通过watch(监控)+mutil(事务)实现应用于在分布式高并发处理等相关场景.下边先通过redis-cli.exe来测试多个线程修改时,遇到问题及解决问题. 高并发下修改同一个key遇到 ...

随机推荐

  1. [Gin] gin-jwt 业务逻辑中使用实例化的 middleware 的方式

    依然需要按文档所示实例化一个 authMiddleware. 在路由组中使用的方式是 authMiddleware.MiddlewareFunc(). 通过追踪 MiddlewareFunc 可以知道 ...

  2. [Go] httprouter 自动 OPTIONS 响应 和 CORS

    httprouter 是 Gin framework 使用的路由组件. 要对 OPTIONS 请求自动响应,比如支持 CORS 请求或者设置请求头,可用 Router.GlobalOPTIONS. r ...

  3. dotnet 警惕使用 StackTrace 加获取方法标记 Attribute 特性在 Release 下被内联

    大家都知道,在 dotnet 里的 Debug 下和 Release 下的一个最大的不同是在 Release 下开启了代码优化.启用代码优化,将会对生成的 IL 代码进行优化,同时优化后的 IL 也会 ...

  4. WPF 下拉框选项做鼠标 Hover 预览效果

    本文来告诉大家如何在 WPF 中,在 下拉框 ComboBox 里面,鼠标移动到 ComboBoxItem 上时,自动触发对应的事件,用来预览此选项值.例如我在实现一个颜色下拉框,此时我可以通过点击下 ...

  5. 2019-11-29-VisualStudio-2019-如何离线下载

    title author date CreateTime categories VisualStudio 2019 如何离线下载 lindexi 2019-11-29 08:38:13 +0800 2 ...

  6. 微服务 - 作业调度 · Hangfire集成式 · 仪表盘 · DolphinScheduler分布式 · 定义流程

    系列目录 微服务 - 1.概念 · 应用 · 架构 · 通讯 · 授权 · 跨域 · 限流 微服务 - 2.IdentityServer4认证授权 · 概念认识 · 运行过程 · 实践应用 微服务 - ...

  7. 特工17Agent17汉化版游戏破解金币方法修改破解金币的增加方法

    又是一个renpy游戏,昨晚搞了半个小时搞定的,其实这个游戏要赚钱也不难,就是点点点就可以了,但是我觉得还是挺费劲的,因为好多道具都很贵,攒钱又不怎么容易,花钱的地方还挺多的,所以干脆不如直接破解了算 ...

  8. 批量删除WordPress文章和页面的数据库命令和从后台直接删除

    批量删除wordpress的方法有两种:1.从wp后台可以调整展示:最多999条 2.选择"Bulk"--"Apply" 通过批量删除wordpress文章和页 ...

  9. C语言:快速排序(详解)

    快速排序采用的是两头对比交换 http://t.csdn.cn/TXcAK 上面这个连接大家可以点进去看看博客李小白大大的图文解释,我觉得这个是对我启发比较大的,对刚接触快速排序的人来说非常友好,很快 ...

  10. AIRIOT可视化组态引擎如何应用于物联业务场景中

    在物联网的业务应用场景中,可视化组态是一个必不可少的功能需求.不同的行业场景,都需要将物联设备采集的数据和业务场景状态进行直观的可视化展示,供使用者进行分析或决策.如工艺流程用能监测.3D场景构建.能 ...