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) {
 | 
				
			||||||
 | 
					          let newArr = res.data;
 | 
				
			||||||
 | 
					          if (res.data && res.data.length < 5) {
 | 
				
			||||||
 | 
					            newArr = this.sortedNum(res.data);
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          newArr.forEach(item => {
 | 
				
			||||||
            lineXData.push(item.businessName);
 | 
					            lineXData.push(item.businessName);
 | 
				
			||||||
            dataList.push(item.total);
 | 
					            dataList.push(item.total);
 | 
				
			||||||
          });
 | 
					          });
 | 
				
			||||||
          this.lineDataParams['lineXData'] = lineXData;
 | 
					          this.lineDataParams['lineXData'] = lineXData;
 | 
				
			||||||
          this.lineDataParams['data'] = dataList;
 | 
					          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