@@ -1,10 +1,10 @@ | |||||
# 页面标题 | # 页面标题 | ||||
VUE_APP_TITLE = 影刀后台管理系统 | |||||
VUE_APP_TITLE = 旺嘉-RPA | |||||
# 开发环境配置 | # 开发环境配置 | ||||
ENV = 'development' | ENV = 'development' | ||||
# 影刀后台管理系统/开发环境 | |||||
# 旺嘉-RPA/开发环境 | |||||
VUE_APP_BASE_API = '/dev-api' | VUE_APP_BASE_API = '/dev-api' | ||||
# 路由懒加载 | # 路由懒加载 | ||||
@@ -1,8 +1,8 @@ | |||||
# 页面标题 | # 页面标题 | ||||
VUE_APP_TITLE = 影刀后台管理系统 | |||||
VUE_APP_TITLE = 旺嘉-RPA | |||||
# 生产环境配置 | # 生产环境配置 | ||||
ENV = 'production' | ENV = 'production' | ||||
# 影刀后台管理系统/生产环境 | |||||
# 旺嘉-RPA/生产环境 | |||||
VUE_APP_BASE_API = '/prod-api' | VUE_APP_BASE_API = '/prod-api' |
@@ -1,10 +1,10 @@ | |||||
# 页面标题 | # 页面标题 | ||||
VUE_APP_TITLE = 影刀后台管理系统 | |||||
VUE_APP_TITLE = 旺嘉-RPA | |||||
NODE_ENV = production | NODE_ENV = production | ||||
# 测试环境配置 | # 测试环境配置 | ||||
ENV = 'staging' | ENV = 'staging' | ||||
# 影刀后台管理系统/测试环境 | |||||
# 旺嘉-RPA/测试环境 | |||||
VUE_APP_BASE_API = '/stage-api' | VUE_APP_BASE_API = '/stage-api' |
@@ -1,7 +1,7 @@ | |||||
{ | { | ||||
"name": "ruoyi", | "name": "ruoyi", | ||||
"version": "3.8.5", | "version": "3.8.5", | ||||
"description": "影刀后台管理系统", | |||||
"description": "旺嘉-RPA", | |||||
"author": "若依", | "author": "若依", | ||||
"license": "MIT", | "license": "MIT", | ||||
"scripts": { | "scripts": { | ||||
@@ -24,11 +24,11 @@ export function updateRunTime(data) { | |||||
// 重新运行计划 | // 重新运行计划 | ||||
export function appRetry(jobUuid) { | |||||
export function appRetry(jobUuid,newData) { | |||||
return request({ | return request({ | ||||
url: '/business/ctApplyPlan/appRetry', | url: '/business/ctApplyPlan/appRetry', | ||||
method: 'post', | method: 'post', | ||||
data: {jobUuid} | |||||
data: {jobUuid,newData} | |||||
}) | }) | ||||
} | } | ||||
@@ -35,7 +35,7 @@ export default { | |||||
}, | }, | ||||
data() { | data() { | ||||
return { | return { | ||||
title: '影刀后台管理系统', | |||||
title: '旺嘉-RPA', | |||||
logo: logoImg | logo: logoImg | ||||
} | } | ||||
} | } | ||||
@@ -97,7 +97,7 @@ | |||||
<el-table-column label="appid" align="center" prop="appId" width="300" /> --> | <el-table-column label="appid" align="center" prop="appId" width="300" /> --> | ||||
<!-- <el-table-column label="部门id" align="center" prop="deptId" width="100" /> --> | <!-- <el-table-column label="部门id" align="center" prop="deptId" width="100" /> --> | ||||
<el-table-column label="创建者" align="center" fixed="right" prop="createBy" width="100" /> | |||||
<el-table-column label="创建者" align="center" fixed="right" prop="createBy" width="150" /> | |||||
<el-table-column label="创建时间" align="center" fixed="right" prop="createTime" width="100"> | <el-table-column label="创建时间" align="center" fixed="right" prop="createTime" width="100"> | ||||
<template slot-scope="scope"> | <template slot-scope="scope"> | ||||
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> | <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d}') }}</span> | ||||
@@ -190,10 +190,14 @@ | |||||
<el-button @click="cancel">取 消</el-button> | <el-button @click="cancel">取 消</el-button> | ||||
</div> | </div> | ||||
</el-dialog> | </el-dialog> | ||||
<!-- 设置可执行机器人 --> | <!-- 设置可执行机器人 --> | ||||
<el-dialog title="配置可执行的机器人" :visible.sync="showConfigRebotVisible" width="400px" append-to-body> | |||||
<el-dialog title="配置可执行的机器人" :visible.sync="showConfigRebotVisible" width="500px" append-to-body> | |||||
<el-form ref="applyRebot" :model="applyRebot" :rules="rules" label-width="120px"> | <el-form ref="applyRebot" :model="applyRebot" :rules="rules" label-width="120px"> | ||||
<span style="color:red">绑定后其他机器人即使空闲也将不会执行该应用,请慎重</span> | |||||
<div style="color:red">注意事项:</div> | |||||
<div style="color:red">1:绑定指定机器人后其他机器人即使空闲也将不会执行该应用,请慎重</div> | |||||
<div style="color:red">2:不绑定则默认所有机器人都可能执行</div> | |||||
<div style="color:red">3:该绑定关系影响范围为全部计划(立即执行、指定时间、周期执行)</div> | |||||
<el-form-item label="可执行的机器人" prop="rebotName"> | <el-form-item label="可执行的机器人" prop="rebotName"> | ||||
<el-select v-model="applyRebot.optRebot" multiple placeholder="请选择"> | <el-select v-model="applyRebot.optRebot" multiple placeholder="请选择"> | ||||
<el-option v-for="rebot in rebotList" :key="rebot.robotClientName" :label="rebot.robotClientName" | <el-option v-for="rebot in rebotList" :key="rebot.robotClientName" :label="rebot.robotClientName" | ||||
@@ -271,8 +275,7 @@ export default { | |||||
}, | }, | ||||
methods: { | methods: { | ||||
/** 设置绑定的机器人 */ | /** 设置绑定的机器人 */ | ||||
submitConfigRebot(row) { | |||||
console.log("this.applyRebot",this.applyRebot); | |||||
submitConfigRebot() { | |||||
updateApplyRebot(this.applyRebot).then(res => { | updateApplyRebot(this.applyRebot).then(res => { | ||||
this.$modal.msgSuccess("设置成功"); | this.$modal.msgSuccess("设置成功"); | ||||
this.showConfigRebotVisible = false; | this.showConfigRebotVisible = false; | ||||
@@ -283,10 +286,8 @@ export default { | |||||
showConfigRebot(row) { | showConfigRebot(row) { | ||||
this.applyRebot.applyId = row.appId | this.applyRebot.applyId = row.appId | ||||
listRebotSelectAll({}).then(res => { | listRebotSelectAll({}).then(res => { | ||||
console.log("listRebotSelectAll",res.data); | |||||
this.rebotList = res.data; | this.rebotList = res.data; | ||||
listApplyAll(this.applyRebot).then(res => { | listApplyAll(this.applyRebot).then(res => { | ||||
console.log("showConfigRebot", res); | |||||
this.applyRebot.optRebot = res.data; | this.applyRebot.optRebot = res.data; | ||||
this.showConfigRebotVisible = true; | this.showConfigRebotVisible = true; | ||||
}); | }); | ||||
@@ -296,7 +297,6 @@ export default { | |||||
/** 设置时间 */ | /** 设置时间 */ | ||||
submitConfigTime() { | submitConfigTime() { | ||||
let data = { id: this.form.id, appId: this.form.appId, manualTime: this.form.manualTime } | let data = { id: this.form.id, appId: this.form.appId, manualTime: this.form.manualTime } | ||||
console.log("data", data); | |||||
updateRunDate(data).then(response => { | updateRunDate(data).then(response => { | ||||
this.$modal.msgSuccess("设置成功"); | this.$modal.msgSuccess("设置成功"); | ||||
this.showConfigTimeVisible = false; | this.showConfigTimeVisible = false; | ||||
@@ -42,7 +42,7 @@ | |||||
{{ scope.$index + 1 }} | {{ scope.$index + 1 }} | ||||
</template> | </template> | ||||
</el-table-column> | </el-table-column> | ||||
<el-table-column label="计划名称" align="center" prop="planName" width="200" > | |||||
<el-table-column label="计划名称" align="center" prop="planName" width="200"> | |||||
<template slot-scope="scope"> | <template slot-scope="scope"> | ||||
<el-popover trigger="hover" placement="top"> | <el-popover trigger="hover" placement="top"> | ||||
<p>{{ scope.row.planName }}</p> | <p>{{ scope.row.planName }}</p> | ||||
@@ -60,7 +60,8 @@ | |||||
<span v-if="scope.row.outParam != null && !scope.row.outParam.includes('.xlsx')">{{ scope.row.outParam | <span v-if="scope.row.outParam != null && !scope.row.outParam.includes('.xlsx')">{{ scope.row.outParam | ||||
}}</span> | }}</span> | ||||
<span v-if="scope.row.outParam == null"> 没有文件</span> | <span v-if="scope.row.outParam == null"> 没有文件</span> | ||||
<el-tag v-if="scope.row.excType == '2'" :type="''" effect="dark" style='cursor:pointer;margin-left: 10px;' @click="showLog(scope.row.id)"> | |||||
<el-tag v-if="scope.row.excType == '2'" :type="''" effect="dark" style='cursor:pointer;margin-left: 10px;' | |||||
@click="showLog(scope.row.id)"> | |||||
更多 | 更多 | ||||
</el-tag> | </el-tag> | ||||
</template> | </template> | ||||
@@ -149,19 +150,22 @@ | |||||
<el-button size="mini" v-if="scope.row.taskStatus == 'await_create'" type="text" icon="el-icon-setting" | <el-button size="mini" v-if="scope.row.taskStatus == 'await_create'" type="text" icon="el-icon-setting" | ||||
v-hasPermi="['business:ctApplyPlan:edit']">启用</el-button> | v-hasPermi="['business:ctApplyPlan:edit']">启用</el-button> | ||||
</router-link> --> | </router-link> --> | ||||
<el-button size="mini" | |||||
v-if="(scope.row.taskStatus == 'await_create' || scope.row.taskStatus == 'finish' || scope.row.taskStatus == 'stopped' || scope.row.taskStatus == 'error' || scope.row.taskStatus == 'skipped' || scope.row.taskStatus == 'cancel') | |||||
&& (scope.row.excType == '1' || scope.row.excType == '2')" | |||||
type="text" icon="el-icon-date" @click="updateParams(scope.row)" | |||||
v-hasPermi="['business:ctApplyPlan:updateFile']">修改文件</el-button> | |||||
<el-button size="mini" v-if="(scope.row.taskStatus == 'await_create' || scope.row.taskStatus == 'finish' || scope.row.taskStatus == 'stopped' || scope.row.taskStatus == 'error' || scope.row.taskStatus == 'skipped' || scope.row.taskStatus == 'cancel') | |||||
&& (scope.row.excType == '1' || scope.row.excType == '2')" type="text" icon="el-icon-date" | |||||
@click="updateParams(scope.row)" v-hasPermi="['business:ctApplyPlan:updateFile']">修改文件</el-button> | |||||
<el-button size="mini" | <el-button size="mini" | ||||
v-if="((scope.row.excType == '1' && scope.row.taskStatus == 'await_create') || scope.row.excType == '2')" | v-if="((scope.row.excType == '1' && scope.row.taskStatus == 'await_create') || scope.row.excType == '2')" | ||||
type="text" icon="el-icon-date" @click="updateRunTime(scope.row)" | type="text" icon="el-icon-date" @click="updateRunTime(scope.row)" | ||||
v-hasPermi="['business:ctApplyPlan:updateRunTime']">设置执行时间</el-button> | v-hasPermi="['business:ctApplyPlan:updateRunTime']">设置执行时间</el-button> | ||||
<el-button size="mini" | |||||
v-if="scope.row.taskStatus == 'stopped' || scope.row.taskStatus == 'error' || scope.row.taskStatus == 'cancel'" | |||||
type="text" icon="el-icon-refresh" @click="appRetry(scope.row)" | |||||
v-hasPermi="['business:ctApplyPlan:appRetry']">重新运行</el-button> | |||||
<el-popconfirm confirm-button-text='新参数运行' cancel-button-text='旧参数运行' v-hasPermi="['business:ctApplyPlan:appRetry']" | |||||
title="请选择使用的参数" @confirm="appRetry(scope.row,true)" @cancel="appRetry(scope.row,true)" v-if="scope.row.taskStatus == 'stopped' || scope.row.taskStatus == 'error' || scope.row.taskStatus == 'cancel'"> | |||||
<el-button size="mini" type="text" icon="el-icon-refresh-right" slot="reference">重新运行</el-button> | |||||
</el-popconfirm> | |||||
<!-- <el-button size="mini" | |||||
type="text" icon="el-icon-refresh" @click="" | |||||
>重新运行</el-button> --> | |||||
<el-button size="mini" v-if="scope.row.taskStatus == 'running' || scope.row.taskStatus == 'waiting'" | <el-button size="mini" v-if="scope.row.taskStatus == 'running' || scope.row.taskStatus == 'waiting'" | ||||
type="text" icon="el-icon-video-pause" @click="stopRun(scope.row)" | type="text" icon="el-icon-video-pause" @click="stopRun(scope.row)" | ||||
v-hasPermi="['business:ctApplyPlan:stopRun']">停止运行</el-button> | v-hasPermi="['business:ctApplyPlan:stopRun']">停止运行</el-button> | ||||
@@ -365,7 +369,7 @@ | |||||
</template> | </template> | ||||
<script> | <script> | ||||
import { listCtApplyPlan, getCtApplyPlan, delCtApplyPlan, addCtApplyPlan, updateCtApplyPlan, stopRun, appRetry, stopOrStart,updateRunTime } from "@/api/business/ctApplyPlan"; | |||||
import { listCtApplyPlan, getCtApplyPlan, delCtApplyPlan, addCtApplyPlan, updateCtApplyPlan, stopRun, appRetry, stopOrStart, updateRunTime } from "@/api/business/ctApplyPlan"; | |||||
import { listCtApplyPlanLogAll } from "@/api/business/ctApplyPlanLog"; | import { listCtApplyPlanLogAll } from "@/api/business/ctApplyPlanLog"; | ||||
import { listByAppId, updateBatch } from "@/api/business/ctResourceLibrary"; | import { listByAppId, updateBatch } from "@/api/business/ctResourceLibrary"; | ||||
import { listRebotAll } from "@/api/business/ctRebot"; | import { listRebotAll } from "@/api/business/ctRebot"; | ||||
@@ -454,6 +458,7 @@ export default { | |||||
}, | }, | ||||
created() { | created() { | ||||
this.getList(); | this.getList(); | ||||
this.listApplyAll(); | |||||
}, | }, | ||||
methods: { | methods: { | ||||
/** 显示执行日志 */ | /** 显示执行日志 */ | ||||
@@ -554,8 +559,8 @@ export default { | |||||
}); | }); | ||||
}, | }, | ||||
/** 重新运行 */ | /** 重新运行 */ | ||||
appRetry(row) { | |||||
appRetry(row.taskUuid).then(res => { | |||||
appRetry(row,newData) { | |||||
appRetry(row.taskUuid,newData).then(res => { | |||||
this.$modal.msgSuccess("操作成功"); | this.$modal.msgSuccess("操作成功"); | ||||
this.getList(); | this.getList(); | ||||
}); | }); | ||||
@@ -1,7 +1,7 @@ | |||||
<template> | <template> | ||||
<div class="login"> | <div class="login"> | ||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> | <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> | ||||
<h3 class="title">影刀后台管理系统</h3> | |||||
<h3 class="title">旺嘉-RPA</h3> | |||||
<el-form-item prop="username"> | <el-form-item prop="username"> | ||||
<el-input | <el-input | ||||
v-model="loginForm.username" | v-model="loginForm.username" | ||||
@@ -111,7 +111,12 @@ export default { | |||||
methods: { | methods: { | ||||
getConfigKey(){ | getConfigKey(){ | ||||
getConfigKey('sys.account.registerUser').then(res => { | getConfigKey('sys.account.registerUser').then(res => { | ||||
this.register = res.msg; | |||||
if(res.msg == 'true'){ | |||||
this.register = true; | |||||
}else{ | |||||
this.register = false; | |||||
} | |||||
}); | }); | ||||
}, | }, | ||||
getCode() { | getCode() { | ||||
@@ -1,7 +1,7 @@ | |||||
<template> | <template> | ||||
<div class="register"> | <div class="register"> | ||||
<el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form"> | <el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form"> | ||||
<h3 class="title">影刀后台管理系统</h3> | |||||
<h3 class="title">旺嘉-RPA</h3> | |||||
<el-form-item prop="username"> | <el-form-item prop="username"> | ||||
<el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号"> | <el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="账号"> | ||||
<svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> | <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> | ||||
@@ -7,7 +7,7 @@ function resolve(dir) { | |||||
const CompressionPlugin = require('compression-webpack-plugin') | const CompressionPlugin = require('compression-webpack-plugin') | ||||
const name = process.env.VUE_APP_TITLE || '影刀后台管理系统' // 网页标题 | |||||
const name = process.env.VUE_APP_TITLE || '旺嘉-RPA' // 网页标题 | |||||
const port = process.env.port || process.env.npm_config_port || 80 // 端口 | const port = process.env.port || process.env.npm_config_port || 80 // 端口 | ||||