1、开发业务标识管理、业务脚本管理、业务下发管理 2、联调业务脚本管理 3、首页top5图表数据补齐
This commit is contained in:
@@ -244,3 +244,99 @@ export function updateRecord(data) {
|
|||||||
data: data
|
data: data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** ------------------业务脚本管理------------------- */
|
||||||
|
// 查询列表
|
||||||
|
export function listBusScript(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessScript/list',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询详细
|
||||||
|
export function getBusScript(Id) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessScript/' + Id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
export function addBusScript(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessScript',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改
|
||||||
|
export function updateBusScript(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessScript',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 脚本名称
|
||||||
|
export function getAllBusScriptName(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessScript/getAllScriptName',
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
export function delBusScript(roleId) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessScript/' + roleId,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/** ------------------业务下发管理------------------- */
|
||||||
|
// 查询列表
|
||||||
|
export function listBusDeploy(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessDeploy/list',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询详细
|
||||||
|
export function getBusDeploy(Id) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessDeploy/' + Id,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增
|
||||||
|
export function addBusDeploy(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessDeploy',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改
|
||||||
|
export function updateBusDeploy(data) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessDeploy',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除
|
||||||
|
export function delBusDeploy(roleId) {
|
||||||
|
return request({
|
||||||
|
url: '/system/businessDeploy/' + roleId,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<!-- <el-tooltip v-if="item && item.content" :content="item.content" placement="top">-->
|
<!-- <el-tooltip v-if="item && item.content" :content="item.content" placement="top">-->
|
||||||
<el-button v-if="item && item.content" size="mini" link :type="item.type" :icon="item.icon" v-show="scope.row[item.showName] === item.showVal" @click="handleClick(item, scope.row)" :hasPermi="[item.hasPermi]">{{item.content}}</el-button>
|
<el-button v-if="item && item.content" size="mini" link :type="item.type" :icon="item.icon" v-show="item && item.showName ? item.showVal.includes(scope.row[item.showName]) : true" @click="handleClick(item, scope.row)" :hasPermi="[item.hasPermi]">{{item.content}}</el-button>
|
||||||
<!-- </el-tooltip>-->
|
<!-- </el-tooltip>-->
|
||||||
</template>
|
</template>
|
||||||
</template>
|
</template>
|
||||||
|
|||||||
@@ -52,9 +52,9 @@ export default {
|
|||||||
Notification.warning(content)
|
Notification.warning(content)
|
||||||
},
|
},
|
||||||
// 确认窗体
|
// 确认窗体
|
||||||
confirm(content) {
|
confirm(content, titles) {
|
||||||
return MessageBox.confirm(content, "系统提示", {
|
return MessageBox.confirm(content, "系统提示", {
|
||||||
confirmButtonText: '确定',
|
confirmButtonText: titles && titles.submitTitle ? titles.submitTitle : '确定',
|
||||||
cancelButtonText: '取消',
|
cancelButtonText: '取消',
|
||||||
dangerouslyUseHTMLString: true,
|
dangerouslyUseHTMLString: true,
|
||||||
type: "warning",
|
type: "warning",
|
||||||
|
|||||||
@@ -62,19 +62,19 @@ export const constantRoutes = [
|
|||||||
component: () => import('@/views/error/401'),
|
component: () => import('@/views/error/401'),
|
||||||
hidden: true
|
hidden: true
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: '',
|
// path: '',
|
||||||
component: Layout,
|
// component: Layout,
|
||||||
redirect: 'index',
|
// redirect: 'index',
|
||||||
children: [
|
// children: [
|
||||||
{
|
// {
|
||||||
path: 'index',
|
// path: 'index',
|
||||||
component: () => import('@/views/index'),
|
// component: () => import('@/views/index'),
|
||||||
name: 'Index',
|
// name: 'Index',
|
||||||
meta: { title: '首页', icon: 'dashboard', affix: true }
|
// meta: { title: '首页', icon: 'dashboard', affix: true }
|
||||||
}
|
// }
|
||||||
]
|
// ]
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: '/user',
|
path: '/user',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
@@ -98,6 +98,19 @@ export const constantRoutes = [
|
|||||||
|
|
||||||
// 动态路由,基于用户权限动态去加载
|
// 动态路由,基于用户权限动态去加载
|
||||||
export const dynamicRoutes = [
|
export const dynamicRoutes = [
|
||||||
|
{
|
||||||
|
path: '/index',
|
||||||
|
component: Layout,
|
||||||
|
redirect: 'index',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'index',
|
||||||
|
component: () => import('@/views/index'),
|
||||||
|
name: 'Index',
|
||||||
|
meta: { title: '首页', icon: 'dashboard', affix: true }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: '/system/user-auth',
|
path: '/system/user-auth',
|
||||||
component: Layout,
|
component: Layout,
|
||||||
@@ -212,6 +225,51 @@ export const dynamicRoutes = [
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
// 业务标识管理
|
||||||
|
{
|
||||||
|
path: '/earnManage/businessIdent/details',
|
||||||
|
component: Layout,
|
||||||
|
hidden: true,
|
||||||
|
permissions: ['earnManage:businessIdent:details'],
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'index',
|
||||||
|
component: () => import('@/views/earnManage/businessIdent/details'),
|
||||||
|
name: 'BusinessIdentDetails',
|
||||||
|
meta: { title: '业务标识信息', noCache: true ,activeMenu: '/earnManage/businessIdent' }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// 业务脚本管理
|
||||||
|
{
|
||||||
|
path: '/earnManage/businessScript/details',
|
||||||
|
component: Layout,
|
||||||
|
hidden: true,
|
||||||
|
permissions: ['earnManage:businessScript:details'],
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: ':id?',
|
||||||
|
component: () => import('@/views/earnManage/businessScript/details'),
|
||||||
|
name: 'BusinessScriptDetails',
|
||||||
|
meta: { title: '业务脚本信息', noCache: true ,activeMenu: '/earnManage/businessScript' }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
// 业务下发管理
|
||||||
|
{
|
||||||
|
path: '/earnManage/businessIssued/details',
|
||||||
|
component: Layout,
|
||||||
|
hidden: true,
|
||||||
|
permissions: ['earnManage:businessIssued:details'],
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: ':id?',
|
||||||
|
component: () => import('@/views/earnManage/businessIssued/details'),
|
||||||
|
name: 'BusinessIssuedDetails',
|
||||||
|
meta: { title: '业务脚本信息', noCache: true ,activeMenu: '/earnManage/businessIssued' }
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
// 业务管理
|
// 业务管理
|
||||||
{
|
{
|
||||||
path: '/earnManage/business/details',
|
path: '/earnManage/business/details',
|
||||||
@@ -253,7 +311,7 @@ export const dynamicRoutes = [
|
|||||||
path: 'index/:id?',
|
path: 'index/:id?',
|
||||||
component: () => import('@/views/resource/switchRegister/handle'),
|
component: () => import('@/views/resource/switchRegister/handle'),
|
||||||
name: 'SwitchRegisterEdit',
|
name: 'SwitchRegisterEdit',
|
||||||
meta: { title: '交换机注册信息', activeMenu: '/resource/switchRegister' }
|
meta: { title: '交换机管理信息', activeMenu: '/resource/switchRegister' }
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
188
src/views/earnManage/businessIdent/businessIdent.vue
Normal file
188
src/views/earnManage/businessIdent/businessIdent.vue
Normal file
@@ -0,0 +1,188 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container pageTopForm">
|
||||||
|
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" size="small" label-width="68px" class="demo-ruleForm">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="业务名称" prop="businessName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.businessName"
|
||||||
|
placeholder="请输入业务名称"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item class="lastBtnSty">
|
||||||
|
<el-button type="primary" size="mini" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="Refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form>
|
||||||
|
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="roleList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange">
|
||||||
|
<template #tempBusinessName="{ row, column }">
|
||||||
|
<div>
|
||||||
|
<!-- 非编辑状态:显示文本 -->
|
||||||
|
<template v-if="!row.editStatus">
|
||||||
|
<span>{{ row.businessName }}</span>
|
||||||
|
<el-button icon="el-icon-edit" type="text" @click="rowDataChange(row)"></el-button>
|
||||||
|
</template>
|
||||||
|
<template v-else>
|
||||||
|
<!-- 编辑状态:显示输入框 -->
|
||||||
|
<el-col :span="16">
|
||||||
|
<el-input
|
||||||
|
v-model="row.businessName"
|
||||||
|
size="mini"
|
||||||
|
@keyup.enter="callback({fnCode: 'edit'}, row)"
|
||||||
|
@blur="callback({fnCode: 'edit'}, row)"
|
||||||
|
></el-input>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-button size="mini" type="primary" @click="callback({fnCode: 'submit'}, row)">确定</el-button>
|
||||||
|
<el-button size="mini" @click="callback({fnCode: 'cancel'}, row)">取消</el-button>
|
||||||
|
</el-col>
|
||||||
|
</template>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</TableList>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import TableList from "@/components/table/index.vue"
|
||||||
|
import {listBusiness,updateBusiness,countBusinessName, delBusiness} from "@/api/disRevenue/earnManage"
|
||||||
|
export default {
|
||||||
|
name: 'BusinessIdent',
|
||||||
|
components: {TableList},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
editStatus: false,
|
||||||
|
loading: false,
|
||||||
|
showSearch: true,
|
||||||
|
roleList: [],
|
||||||
|
queryParams: {
|
||||||
|
total: 0,
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
// 列显隐信息
|
||||||
|
columns: {
|
||||||
|
businessName: { label: `业务名称`, slotName: 'tempBusinessName', visible: true},
|
||||||
|
id: { label: `业务代码`, visible: true},
|
||||||
|
createTime: { label: `创建时间`, visible: true},
|
||||||
|
},
|
||||||
|
config: {
|
||||||
|
searcherForm: [
|
||||||
|
{label: '资源组名称', prop: 'groupName', type: 'input'}
|
||||||
|
],
|
||||||
|
tableButton: {
|
||||||
|
top: [
|
||||||
|
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'earnManage:businessIdent:add'},
|
||||||
|
// {content: '删除', fnCode: 'delete', type: 'danger', icon: 'el-icon-delete', hasPermi: 'disRevenue:earnManage:business:detele'},
|
||||||
|
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'earnManage:businessIdent:export'},
|
||||||
|
],
|
||||||
|
// line: [
|
||||||
|
// {content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'disRevenue:earnManage:business:edit'},
|
||||||
|
// ]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
activated() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
rowDataChange(row) {
|
||||||
|
this.$set(row, 'editStatus', true);
|
||||||
|
},
|
||||||
|
// 处理子组件传递的新值
|
||||||
|
handleValueChange(newValue) {
|
||||||
|
// 父组件更新自身数据,实现同步
|
||||||
|
this.showSearch = newValue;
|
||||||
|
// console.log('父组件拿到新值:', newValue);
|
||||||
|
},
|
||||||
|
/** 查询列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listBusiness(this.queryParams).then(response => {
|
||||||
|
this.roleList = response.rows;
|
||||||
|
this.queryParams.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryRef");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
|
||||||
|
callback(result, rowData, selectChange) {
|
||||||
|
if (result && result.fnCode) {
|
||||||
|
switch (result.fnCode) {
|
||||||
|
case 'add':
|
||||||
|
this.$router.push({
|
||||||
|
path:'/earnManage/businessIdent/details/index'});
|
||||||
|
break;
|
||||||
|
case 'submit':
|
||||||
|
if (this.loading) return;
|
||||||
|
this.loading = true;
|
||||||
|
countBusinessName(rowData).then(res => {
|
||||||
|
updateBusiness(rowData).then(response => {
|
||||||
|
this.$set(rowData, 'editStatus', false);
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess(response.msg);
|
||||||
|
this.loading = false;
|
||||||
|
}).catch(() => {
|
||||||
|
this.$modal.msgError("操作失败");
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
}).catch(error => {
|
||||||
|
// this.$modal.msgError("存在重复的业务名称,请重新输入!");
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'cancel':
|
||||||
|
this.$set(rowData, 'editStatus', false);
|
||||||
|
break;
|
||||||
|
case 'delete':
|
||||||
|
this.$modal.confirm('是否确认删除数据项?').then(function() {
|
||||||
|
return delBusiness(selectChange)
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功")
|
||||||
|
}).catch(() => {});
|
||||||
|
break;
|
||||||
|
case 'export':
|
||||||
|
// let dataList = [];
|
||||||
|
// Object.keys(this.columns).forEach(item => {
|
||||||
|
// if (item.visible) {
|
||||||
|
// dataList.push(item.prop);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// this.download("/system/Business/export", {properties: dataList,}, `业务管理_${new Date().getTime()}.xlsx`);
|
||||||
|
let paramsList = Object.assign({}, this.queryParams,rowData);
|
||||||
|
this.download("system/Business/export", paramsList, `业务管理_${new Date().getTime()}.xlsx`, null, 'json');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
::v-deep .lastBtnSty .el-form-item__content{
|
||||||
|
margin-left: 10px!important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
77
src/views/earnManage/businessIdent/details.vue
Normal file
77
src/views/earnManage/businessIdent/details.vue
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<Form :formList="formList" :ruleFormData="ruleForm" @fnClick="callback"></Form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import Form from '@/components/form/index.vue';
|
||||||
|
import {addBusiness, countBusinessName, getBusinessCode} from "@/api/disRevenue/earnManage"
|
||||||
|
export default {
|
||||||
|
name: 'BusinessIdentDetails',
|
||||||
|
components: {Form},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: true,
|
||||||
|
ruleForm: {
|
||||||
|
id: '',
|
||||||
|
businessName: ''
|
||||||
|
},
|
||||||
|
formList: [],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.fnBusinessCode();
|
||||||
|
this.fnFormList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// formList集合
|
||||||
|
fnFormList(objVal) {
|
||||||
|
this.formList = [{
|
||||||
|
config: {title: '基本信息'},
|
||||||
|
controls: {
|
||||||
|
businessName: {label: '业务名称', span: 12, type: 'input', rules: [{required: true, message: '请输入业务名称', trigger: 'blur'}]},
|
||||||
|
id: {label: '业务代码', span: 12, type: 'input', style: 'display: block', disabled: true},
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
},
|
||||||
|
// 业务编码
|
||||||
|
fnBusinessCode() {
|
||||||
|
getBusinessCode().then(val => {
|
||||||
|
this.$set(this.ruleForm, 'id', val);
|
||||||
|
}).catch(() => {
|
||||||
|
this.$modal.msgError("操作失败")
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 监听事件
|
||||||
|
callback(result, dataVal, formVal) {
|
||||||
|
if (result && result.fnCode) {
|
||||||
|
switch (result.fnCode) {
|
||||||
|
case 'submit':
|
||||||
|
this.loading = true;
|
||||||
|
countBusinessName(dataVal).then(response => {
|
||||||
|
addBusiness(dataVal).then(response => {
|
||||||
|
this.$modal.msgSuccess(response.msg);
|
||||||
|
this.$router.push("/earnManage/businessIdent");
|
||||||
|
this.loading = false;
|
||||||
|
}).catch(() => {
|
||||||
|
this.$modal.msgError("操作失败");
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
}).catch(error => {
|
||||||
|
// this.$modal.msgError("存在重复的业务名称,请重新输入!");
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'cancel':
|
||||||
|
this.$router.push("/earnManage/businessIdent");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
196
src/views/earnManage/businessIssued/businessIssued.vue
Normal file
196
src/views/earnManage/businessIssued/businessIssued.vue
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container pageTopForm">
|
||||||
|
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" size="small" label-width="68px" class="demo-ruleForm">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="任务名称" prop="taskName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.taskName"
|
||||||
|
placeholder="请输入任务名称"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item class="lastBtnSty">
|
||||||
|
<el-button type="primary" size="mini" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="Refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form>
|
||||||
|
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="roleList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange">
|
||||||
|
<template #tempStatus="{ row, column }">
|
||||||
|
<dict-tag :options="dict.type.eps_business_review_status" :value="row.reviewStatus"/>
|
||||||
|
</template>
|
||||||
|
</TableList>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import TableList from "@/components/table/index.vue"
|
||||||
|
import {listBusDeploy, delBusDeploy} from "@/api/disRevenue/earnManage"
|
||||||
|
export default {
|
||||||
|
name: 'BusinessIssued',
|
||||||
|
components: {TableList},
|
||||||
|
dicts: ['eps_business_review_status'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
editStatus: false,
|
||||||
|
loading: false,
|
||||||
|
showSearch: true,
|
||||||
|
roleList: [],
|
||||||
|
queryParams: {
|
||||||
|
total: 0,
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
// 列显隐信息
|
||||||
|
columns: {
|
||||||
|
id: {label: 'ID'},
|
||||||
|
taskName: { label: `任务名称`, minWidth: '120', visible: true},
|
||||||
|
businessName: { label: `业务名称`, minWidth: '120', visible: true},
|
||||||
|
scriptName: { label: `脚本名称`, minWidth: '120', visible: true},
|
||||||
|
scriptParams: { label: `脚本参数`, minWidth: '120',},
|
||||||
|
deployDevice: { label: `部署设备`, minWidth: '120',},
|
||||||
|
submitBy: { label: `提交人`, minWidth: '120',},
|
||||||
|
reviewStatus: { label: `审核状态`, minWidth: '120', slotName: 'tempStatus', visible: true},
|
||||||
|
reviewTime: { label: `审核时间`, minWidth: '160'},
|
||||||
|
reviewComment: { label: `审核意见`, minWidth: '160'},
|
||||||
|
createTime: { label: `创建时间`, minWidth: '160'},
|
||||||
|
updateTime: { label: `修改时间`, minWidth: '160'},
|
||||||
|
},
|
||||||
|
config: {
|
||||||
|
tableButton: {
|
||||||
|
top: [
|
||||||
|
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'earnManage:businessIssued:add'},
|
||||||
|
{content: '导出', fnCode: 'export', type: 'warning', icon: 'el-icon-download', hasPermi: 'earnManage:businessIssued:export'},
|
||||||
|
],
|
||||||
|
line: [
|
||||||
|
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'disRevenue:earnManage:businessIssued:edit'},
|
||||||
|
{content: '详情', fnCode: 'details', type: 'text', icon: 'el-icon-view', hasPermi: 'disRevenue:earnManage:businessIssued:details'},
|
||||||
|
{content: '删除', fnCode: 'delete', type: 'text', icon: 'el-icon-delete', hasPermi: 'disRevenue:earnManage:businessIssued:delete'},
|
||||||
|
{content: '审核', fnCode: 'audit', type: 'text', showName: 'reviewStatus', showVal: '1', icon: 'el-icon-document-add', hasPermi: 'disRevenue:earnManage:businessIssued:audit'},
|
||||||
|
{content: '提交审核', fnCode: 'upAudit', type: 'text', showName: 'reviewStatus', showVal: ['0', '1', '3'], icon: 'el-icon-document-checked', hasPermi: 'disRevenue:earnManage:businessIssued:upAudit'},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
activated() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
rowDataChange(row) {
|
||||||
|
this.$set(row, 'editStatus', true);
|
||||||
|
},
|
||||||
|
// 处理子组件传递的新值
|
||||||
|
handleValueChange(newValue) {
|
||||||
|
// 父组件更新自身数据,实现同步
|
||||||
|
this.showSearch = newValue;
|
||||||
|
// console.log('父组件拿到新值:', newValue);
|
||||||
|
},
|
||||||
|
/** 查询列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listBusDeploy(this.queryParams).then(response => {
|
||||||
|
this.roleList = response.rows;
|
||||||
|
this.queryParams.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryRef");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
|
||||||
|
callback(result, rowData, selectChange) {
|
||||||
|
if (result && result.fnCode) {
|
||||||
|
switch (result.fnCode) {
|
||||||
|
case 'add':
|
||||||
|
this.$router.push({
|
||||||
|
path:'/earnManage/businessIssued/details'});
|
||||||
|
break;
|
||||||
|
case 'edit':
|
||||||
|
this.$router.push({
|
||||||
|
path:'/earnManage/businessIssued/details',
|
||||||
|
query: {
|
||||||
|
id: rowData.id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'details':
|
||||||
|
this.$router.push({
|
||||||
|
path:'/earnManage/businessIssued/details',
|
||||||
|
query:{
|
||||||
|
id: rowData.id,
|
||||||
|
readonly: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'audit':
|
||||||
|
this.$router.push({
|
||||||
|
path:'/earnManage/businessIssued/details',
|
||||||
|
query:{
|
||||||
|
id: rowData.id,
|
||||||
|
audit: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'upAudit':
|
||||||
|
let content = '<p style="font-size: 1rem;font-weight: 600;">提交审核</p>' +
|
||||||
|
'<p style="height: 0px;margin:10px 0 50px;">提交审核后,相关的任务内容将不能修改</p>';
|
||||||
|
this.$modal.confirm(content, {submitTitle: '继续提交'}).then(() => {
|
||||||
|
// rowData['registrationStatus'] = '0';
|
||||||
|
// updateregisterType(rowData).then(res => {
|
||||||
|
// this.$modal.msgSuccess("取消注册成功!");
|
||||||
|
// this.getList();
|
||||||
|
// });
|
||||||
|
}).catch(() => {});
|
||||||
|
break;
|
||||||
|
case 'delete':
|
||||||
|
this.$modal.confirm('是否确认删除数据项?').then(function() {
|
||||||
|
return delBusDeploy(rowData.id)
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功")
|
||||||
|
}).catch(() => {});
|
||||||
|
break;
|
||||||
|
case 'export':
|
||||||
|
// let dataList = [];
|
||||||
|
// Object.keys(this.columns).forEach(item => {
|
||||||
|
// if (item.visible) {
|
||||||
|
// dataList.push(item.prop);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// this.download("/system/Business/export", {properties: dataList,}, `业务管理_${new Date().getTime()}.xlsx`);
|
||||||
|
let paramsList = Object.assign({}, this.queryParams,rowData);
|
||||||
|
this.download("system/businessDeploy/export", paramsList, `业务下发管理_${new Date().getTime()}.xlsx`, null, 'json');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
::v-deep .lastBtnSty .el-form-item__content{
|
||||||
|
margin-left: 10px!important;
|
||||||
|
}
|
||||||
|
::v-deep .el-message-box__status {
|
||||||
|
top: 35%!important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
120
src/views/earnManage/businessIssued/details.vue
Normal file
120
src/views/earnManage/businessIssued/details.vue
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<Form :formList="formList" :ruleFormData="ruleForm" @fnClick="callback"></Form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import Form from '@/components/form/index.vue';
|
||||||
|
import {addBusDeploy, getBusDeploy, updateBusDeploy, listAllBusinessList, getAllBusScriptName} from "@/api/disRevenue/earnManage"
|
||||||
|
export default {
|
||||||
|
name: 'BusinessIssuedDetails',
|
||||||
|
components: {Form},
|
||||||
|
dicts: ['eps_business_review_status'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: true,
|
||||||
|
ruleForm: {},
|
||||||
|
formList: [],
|
||||||
|
scriptList: {},
|
||||||
|
paramsData: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.paramsData = this.$route && this.$route.query;
|
||||||
|
if (this.paramsData && this.paramsData.id) {
|
||||||
|
this.getFormDataList(this.paramsData.id);
|
||||||
|
}
|
||||||
|
this.getBusinessNames();
|
||||||
|
this.getBusScriptNames();
|
||||||
|
this.fnFormList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// formList集合
|
||||||
|
fnFormList(objVal) {
|
||||||
|
this.formList = [{
|
||||||
|
config: {title: '基本信息', colSpan: this.paramsData && this.paramsData.readonly ? '' : 'disBlock', readonly: this.paramsData && this.paramsData.readonly},
|
||||||
|
controls: {
|
||||||
|
id: {label: 'ID',hidden: true},
|
||||||
|
taskName: {label: '任务名称', span: 12, type: 'input', required: true},
|
||||||
|
businessName: {label: '业务名称', span: 12, type: 'select', options: [], required: true},
|
||||||
|
scriptName: {label: '脚本名称', span: 12, type: 'select', options: [], eventName: 'change', required: true},
|
||||||
|
scriptPath: {label: '脚本文件地址', span: 12, type: 'input', required: true, disabled: true},
|
||||||
|
scriptParams: {label: '脚本参数', span: 12, type: 'input'},
|
||||||
|
submitBy: {label: '提交人', span: 12, type: 'input', hidden: !(this.paramsData && this.paramsData.readonly)},
|
||||||
|
reviewStatus: {label: '审核状态', span: 12, type: 'select', options: this.dict.type.eps_business_review_status, hidden: !(this.paramsData && this.paramsData.readonly)},
|
||||||
|
reviewBy: {label: '审核人', span: 12, type: 'input', hidden: !(this.paramsData && this.paramsData.readonly)},
|
||||||
|
reviewTime: {label: '审核时间', span: 12, type: 'input', hidden: !(this.paramsData && this.paramsData.readonly)},
|
||||||
|
reviewComment: {label: '审核意见', span: 12, type: 'input', hidden: !(this.paramsData && this.paramsData.readonly)},
|
||||||
|
createTime: {label: '创建时间', span: 12, type: 'date', hidden: !(this.paramsData && this.paramsData.readonly)},
|
||||||
|
updateTime: {label: '修改时间', span: 12, type: 'date', hidden: !(this.paramsData && this.paramsData.readonly)},
|
||||||
|
deployDevice: {label: '部署设备', span: 18, type: 'textarea', rows: 15, required: true},
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
},
|
||||||
|
// 获取详情
|
||||||
|
getFormDataList(id) {
|
||||||
|
getBusDeploy(id).then(val => {
|
||||||
|
if (val && val.data) {
|
||||||
|
val.data['scriptName'] = Number(val.data['scriptName']);
|
||||||
|
this.ruleForm = val.data;
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
// this.$modal.msgError("操作失败")
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 业务名称
|
||||||
|
getBusinessNames() {
|
||||||
|
listAllBusinessList().then(val => {
|
||||||
|
this.formList[0].controls.businessName['options'] = val && val.data.map(item => {
|
||||||
|
return Object.assign({label: item.businessName, value: item.id});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 脚本名称
|
||||||
|
getBusScriptNames() {
|
||||||
|
getAllBusScriptName().then(val => {
|
||||||
|
this.formList[0].controls.scriptName['options'] = val && val.data.map(item => {
|
||||||
|
this.scriptList[item.id] = item;
|
||||||
|
return Object.assign({label: item.scriptName, value: item.id});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 监听事件
|
||||||
|
callback(result, dataVal, formVal) {
|
||||||
|
if (result && result.fnCode) {
|
||||||
|
switch (result.fnCode) {
|
||||||
|
case 'scriptName':
|
||||||
|
if (dataVal) {
|
||||||
|
let dataListVal = this.scriptList[dataVal];
|
||||||
|
this.$set(this.ruleForm, 'scriptPath', dataListVal['scriptPath']);
|
||||||
|
this.$set(this.ruleForm, 'scriptParams', dataListVal['defaultParams']);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case 'submit':
|
||||||
|
this.loading = true;
|
||||||
|
let fnType = addBusDeploy;
|
||||||
|
if (dataVal && dataVal.id) {
|
||||||
|
fnType = updateBusDeploy;
|
||||||
|
}
|
||||||
|
fnType(dataVal).then(response => {
|
||||||
|
this.$modal.msgSuccess(response.msg);
|
||||||
|
this.$router.push("/earnManage/businessIssued");
|
||||||
|
this.loading = false;
|
||||||
|
}).catch(() => {
|
||||||
|
this.$modal.msgError("操作失败");
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'cancel':
|
||||||
|
this.$router.push("/earnManage/businessIssued");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
160
src/views/earnManage/businessScript/businessScript.vue
Normal file
160
src/views/earnManage/businessScript/businessScript.vue
Normal file
@@ -0,0 +1,160 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container pageTopForm">
|
||||||
|
<el-form :model="queryParams" ref="queryRef" v-show="showSearch" size="small" label-width="68px" class="demo-ruleForm">
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item label="脚本名称" prop="scriptName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.scriptName"
|
||||||
|
placeholder="请输入脚本名称"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-form-item class="lastBtnSty">
|
||||||
|
<el-button type="primary" size="mini" icon="Search" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="Refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-form>
|
||||||
|
<TableList :columns="columns" :config="config" :queryParams="queryParams" :tableList="roleList" @fnClick="callback" @fnRenderList="getList" @value-change="handleValueChange"></TableList>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import TableList from "@/components/table/index.vue"
|
||||||
|
import {listBusScript, delBusScript} from "@/api/disRevenue/earnManage"
|
||||||
|
export default {
|
||||||
|
name: 'BusinessScript',
|
||||||
|
components: {TableList},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
editStatus: false,
|
||||||
|
loading: false,
|
||||||
|
showSearch: true,
|
||||||
|
roleList: [],
|
||||||
|
queryParams: {
|
||||||
|
total: 0,
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10
|
||||||
|
},
|
||||||
|
// 列显隐信息
|
||||||
|
columns: {
|
||||||
|
id: {label: 'ID'},
|
||||||
|
scriptName: { label: `脚本名称`, visible: true},
|
||||||
|
scriptPath: { label: `脚本文件地址`, visible: true},
|
||||||
|
defaultParams: { label: `脚本默认参数`, visible: true},
|
||||||
|
},
|
||||||
|
config: {
|
||||||
|
searcherForm: [
|
||||||
|
{label: '资源组名称', prop: 'groupName', type: 'input'}
|
||||||
|
],
|
||||||
|
tableButton: {
|
||||||
|
top: [
|
||||||
|
{content: '新增', fnCode: 'add', type: 'primary', icon: 'el-icon-plus', hasPermi: 'earnManage:businessScript:add'},
|
||||||
|
],
|
||||||
|
line: [
|
||||||
|
{content: '修改', fnCode: 'edit', type: 'text', icon: 'el-icon-edit', hasPermi: 'disRevenue:earnManage:businessScript:edit'},
|
||||||
|
{content: '详情', fnCode: 'details', type: 'text', icon: 'el-icon-view', hasPermi: 'disRevenue:earnManage:businessScript:details'},
|
||||||
|
{content: '删除', fnCode: 'delete', type: 'text', icon: 'el-icon-delete', hasPermi: 'disRevenue:earnManage:businessScript:delete'},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
activated() {
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
rowDataChange(row) {
|
||||||
|
this.$set(row, 'editStatus', true);
|
||||||
|
},
|
||||||
|
// 处理子组件传递的新值
|
||||||
|
handleValueChange(newValue) {
|
||||||
|
// 父组件更新自身数据,实现同步
|
||||||
|
this.showSearch = newValue;
|
||||||
|
// console.log('父组件拿到新值:', newValue);
|
||||||
|
},
|
||||||
|
/** 查询列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listBusScript(this.queryParams).then(response => {
|
||||||
|
this.roleList = response.rows;
|
||||||
|
this.queryParams.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1
|
||||||
|
this.getList()
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryRef");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
|
||||||
|
callback(result, rowData, selectChange) {
|
||||||
|
if (result && result.fnCode) {
|
||||||
|
switch (result.fnCode) {
|
||||||
|
case 'add':
|
||||||
|
this.$router.push({
|
||||||
|
path:'/earnManage/businessScript/details'});
|
||||||
|
break;
|
||||||
|
case 'edit':
|
||||||
|
this.$router.push({
|
||||||
|
path:'/earnManage/businessScript/details',
|
||||||
|
query: {
|
||||||
|
id: rowData.id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'details':
|
||||||
|
this.$router.push({
|
||||||
|
path:'/earnManage/businessScript/details',
|
||||||
|
query:{
|
||||||
|
id: rowData.id,
|
||||||
|
readonly: true
|
||||||
|
}
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'delete':
|
||||||
|
this.$modal.confirm('是否确认删除数据项?').then(function() {
|
||||||
|
return delBusScript(rowData.id)
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功")
|
||||||
|
}).catch(() => {});
|
||||||
|
break;
|
||||||
|
case 'export':
|
||||||
|
// let dataList = [];
|
||||||
|
// Object.keys(this.columns).forEach(item => {
|
||||||
|
// if (item.visible) {
|
||||||
|
// dataList.push(item.prop);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// this.download("/system/Business/export", {properties: dataList,}, `业务管理_${new Date().getTime()}.xlsx`);
|
||||||
|
let paramsList = Object.assign({}, this.queryParams,rowData);
|
||||||
|
this.download("system/businessScript/export", paramsList, `业务脚本管理_${new Date().getTime()}.xlsx`, null, 'json');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
::v-deep .lastBtnSty .el-form-item__content{
|
||||||
|
margin-left: 10px!important;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
92
src/views/earnManage/businessScript/details.vue
Normal file
92
src/views/earnManage/businessScript/details.vue
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<Form :formList="formList" :ruleFormData="ruleForm" :config="config" @fnClick="callback"></Form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup>
|
||||||
|
import Form from '@/components/form/index.vue';
|
||||||
|
import {addBusScript, getBusScript, updateBusScript} from "@/api/disRevenue/earnManage"
|
||||||
|
export default {
|
||||||
|
name: 'BusinessScriptDetails',
|
||||||
|
components: {Form},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: true,
|
||||||
|
ruleForm: {
|
||||||
|
id: '',
|
||||||
|
businessName: ''
|
||||||
|
},
|
||||||
|
formList: [],
|
||||||
|
config: {},
|
||||||
|
paramsData: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.paramsData = this.$route && this.$route.query;
|
||||||
|
if (this.paramsData && this.paramsData.readonly) {
|
||||||
|
this.config = {
|
||||||
|
buttonGroup: [{title: '返回', fnCode: 'goBack'}]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (this.paramsData && this.paramsData.id) {
|
||||||
|
this.getFormDataList(this.paramsData.id);
|
||||||
|
}
|
||||||
|
this.fnFormList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// formList集合
|
||||||
|
fnFormList(objVal) {
|
||||||
|
this.formList = [{
|
||||||
|
config: {title: '基本信息', colSpan: this.paramsData && this.paramsData.readonly ? '' : 'disBlock', readonly: this.paramsData && this.paramsData.readonly},
|
||||||
|
controls: {
|
||||||
|
id: {label: 'ID',hidden: true},
|
||||||
|
scriptName: {label: '脚本名称', span: 12, type: 'input', required: true},
|
||||||
|
scriptPath: {label: '脚本文件地址', span: 12, type: 'input', required: true},
|
||||||
|
defaultParams: {label: '脚本默认参数', span: 12, type: 'input'},
|
||||||
|
createBy: {label: '创建人', span: 12, type: 'input', hidden: !(this.paramsData && this.paramsData.readonly)},
|
||||||
|
createTime: {label: '创建时间', span: 12, type: 'date', hidden: !(this.paramsData && this.paramsData.readonly)},
|
||||||
|
updateTime: {label: '修改时间', span: 12, type: 'date', hidden: !(this.paramsData && this.paramsData.readonly)},
|
||||||
|
}
|
||||||
|
}];
|
||||||
|
},
|
||||||
|
// 获取详情
|
||||||
|
getFormDataList(id) {
|
||||||
|
getBusScript(id).then(val => {
|
||||||
|
if (val && val.data) {
|
||||||
|
this.ruleForm = val.data;
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
// this.$modal.msgError("操作失败")
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 监听事件
|
||||||
|
callback(result, dataVal, formVal) {
|
||||||
|
if (result && result.fnCode) {
|
||||||
|
switch (result.fnCode) {
|
||||||
|
case 'submit':
|
||||||
|
let fnType = addBusScript;
|
||||||
|
if (dataVal && dataVal.id) {
|
||||||
|
fnType = updateBusScript;
|
||||||
|
}
|
||||||
|
fnType(dataVal).then(response => {
|
||||||
|
this.$modal.msgSuccess(response.msg);
|
||||||
|
this.$router.push("/earnManage/businessScript");
|
||||||
|
this.loading = false;
|
||||||
|
}).catch(() => {
|
||||||
|
this.$modal.msgError("操作失败");
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
break;
|
||||||
|
case 'cancel':
|
||||||
|
this.$router.push("/earnManage/businessScript");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
</style>
|
||||||
@@ -237,14 +237,88 @@ export default {
|
|||||||
countDeviceNumTop5().then(res => {
|
countDeviceNumTop5().then(res => {
|
||||||
let lineXData = [];
|
let lineXData = [];
|
||||||
let dataList = [];
|
let dataList = [];
|
||||||
res && res.data.forEach(item => {
|
if (res && res.data) {
|
||||||
lineXData.push(item.businessName);
|
let newArr = res.data;
|
||||||
dataList.push(item.total);
|
if (res.data && res.data.length < 5) {
|
||||||
});
|
newArr = this.sortedNum(res.data);
|
||||||
this.lineDataParams['lineXData'] = lineXData;
|
}
|
||||||
this.lineDataParams['data'] = dataList;
|
newArr.forEach(item => {
|
||||||
|
lineXData.push(item.businessName);
|
||||||
|
dataList.push(item.total);
|
||||||
|
});
|
||||||
|
this.lineDataParams['lineXData'] = lineXData;
|
||||||
|
this.lineDataParams['data'] = dataList;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
sortedNum(data){
|
||||||
|
// 提取value并转换为数字,同时保存name映射
|
||||||
|
const valueMap = new Map(); // 存储 {value: name}
|
||||||
|
const values = [];
|
||||||
|
|
||||||
|
for (const item of data) {
|
||||||
|
const value = parseInt(item.total, 10);
|
||||||
|
// 校验value有效性
|
||||||
|
if (isNaN(value) || value <= 0) {
|
||||||
|
return "错误:所有value必须是大于0的数字";
|
||||||
|
}
|
||||||
|
// 校验重复value
|
||||||
|
if (valueMap.has(value)) {
|
||||||
|
return "错误:输入数组不能包含重复的value";
|
||||||
|
}
|
||||||
|
valueMap.set(value, item.businessName);
|
||||||
|
values.push(value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 对输入value排序(降序)
|
||||||
|
const sortedInputs = [...values].sort((a, b) => b - a);
|
||||||
|
|
||||||
|
// 生成目标value序列(包含所有输入值的5个递减正数)
|
||||||
|
let targetValues = [];
|
||||||
|
let start = sortedInputs[0];
|
||||||
|
while (true) {
|
||||||
|
const candidate = new Set();
|
||||||
|
// 先加入所有输入值
|
||||||
|
sortedInputs.forEach(v => candidate.add(v));
|
||||||
|
// 从start开始向下补充,直到有5个值
|
||||||
|
let current = start;
|
||||||
|
while (candidate.size < 5) {
|
||||||
|
if (current <= 0) break;
|
||||||
|
candidate.add(current);
|
||||||
|
current--;
|
||||||
|
}
|
||||||
|
// 转换为数组并排序(降序)
|
||||||
|
const arr = [...candidate].sort((a, b) => b - a);
|
||||||
|
if (arr.length === 5 && arr.every(v => v > 0)) {
|
||||||
|
targetValues = arr;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
start++; // 若当前start无法生成有效序列,增大start重试
|
||||||
|
}
|
||||||
|
|
||||||
|
// 生成每个value对应的name
|
||||||
|
const result = [];
|
||||||
|
for (const val of targetValues) {
|
||||||
|
if (valueMap.has(val)) {
|
||||||
|
// 已有value,使用原name
|
||||||
|
result.push({ businessName: valueMap.get(val), total: val.toString() });
|
||||||
|
} else {
|
||||||
|
// 补充的value,寻找对应的name前缀
|
||||||
|
// 找到小于当前val的最大输入value
|
||||||
|
const closestSmaller = sortedInputs.find(v => v < val);
|
||||||
|
if (closestSmaller !== undefined) {
|
||||||
|
const prefix = valueMap.get(closestSmaller);
|
||||||
|
result.push({ businessName: `${prefix}${val}`, total: val.toString() });
|
||||||
|
} else {
|
||||||
|
// 若所有输入值都大于当前val(极端情况),用最大输入值的name
|
||||||
|
const maxInput = sortedInputs[0];
|
||||||
|
const prefix = valueMap.get(maxInput);
|
||||||
|
result.push({ businessName: `${prefix}${val}`, total: val.toString() });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
},
|
||||||
serverTableList() {
|
serverTableList() {
|
||||||
listBandWidth(this.serQueryParams).then(response => {
|
listBandWidth(this.serQueryParams).then(response => {
|
||||||
this.serTableList = response.rows;
|
this.serTableList = response.rows;
|
||||||
|
|||||||
@@ -73,8 +73,8 @@ export default {
|
|||||||
title: process.env.VUE_APP_TITLE,
|
title: process.env.VUE_APP_TITLE,
|
||||||
codeUrl: "",
|
codeUrl: "",
|
||||||
loginForm: {
|
loginForm: {
|
||||||
username: "admin",
|
username: "",
|
||||||
password: "admin456",
|
password: "",
|
||||||
rememberMe: false,
|
rememberMe: false,
|
||||||
code: "",
|
code: "",
|
||||||
uuid: ""
|
uuid: ""
|
||||||
@@ -142,7 +142,9 @@ export default {
|
|||||||
Cookies.remove('rememberMe')
|
Cookies.remove('rememberMe')
|
||||||
}
|
}
|
||||||
this.$store.dispatch("Login", this.loginForm).then(() => {
|
this.$store.dispatch("Login", this.loginForm).then(() => {
|
||||||
this.$router.push({ path: this.redirect || "/" }).catch(()=>{})
|
// 默认指向知识库页面
|
||||||
|
this.$router.push('/problemRecord').catch(()=>{})
|
||||||
|
// this.$router.push({ path: this.redirect || "/" }).catch(()=>{})
|
||||||
}).catch(() => {
|
}).catch(() => {
|
||||||
this.loading = false
|
this.loading = false
|
||||||
if (this.captchaEnabled) {
|
if (this.captchaEnabled) {
|
||||||
|
|||||||
Reference in New Issue
Block a user