修改整体样式,并且完成型号、舷号管理
This commit is contained in:
parent
c3837919b7
commit
cc26a51744
30
src/api/ship.js
Normal file
30
src/api/ship.js
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
import { getAction, deleteAction, putAction, postAction, httpAction,uploadAction } from '@/api/manage'
|
||||||
|
|
||||||
|
const shipNumCreate = (params)=>postAction("/shipNum/create",params);
|
||||||
|
const shipNumUpdateById = (params)=>putAction("/shipNum/updateById",params);
|
||||||
|
const shipNumQueryById = (params)=>getAction("/shipNum/queryById",params);
|
||||||
|
const shipNumPageList = (params)=>getAction("/shipNum/pageList",params);
|
||||||
|
const shipNumQueryByModelId = (params)=>getAction("/shipNum/queryByModelId",params);
|
||||||
|
|
||||||
|
const shipModelCreate = (params)=>postAction("/shipModel/create",params);
|
||||||
|
const shipModelUpdateById = (params)=>putAction("/shipModel/updateById",params);
|
||||||
|
const shipModelQueryById = (params)=>getAction("/shipModel/queryById",params);
|
||||||
|
const shipModelPageList = (params)=>getAction("/shipModel/pageList",params);
|
||||||
|
const shipModelQueryByModelId = (params)=>getAction("/shipModel/queryByModelId",params);
|
||||||
|
const shipModeldeleteById = (params)=>deleteAction("/shipModel/deleteById",params);
|
||||||
|
export {
|
||||||
|
shipNumCreate,
|
||||||
|
shipNumUpdateById,
|
||||||
|
shipNumQueryById,
|
||||||
|
shipNumPageList,
|
||||||
|
shipNumQueryByModelId,
|
||||||
|
shipModelCreate,
|
||||||
|
shipModelUpdateById,
|
||||||
|
shipModelQueryById,
|
||||||
|
shipModelPageList,
|
||||||
|
shipModelQueryByModelId,
|
||||||
|
shipModeldeleteById
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,7 @@
|
||||||
width: 0;
|
width: 0;
|
||||||
height: 0;
|
height: 0;
|
||||||
border: 6px solid transparent;
|
border: 6px solid transparent;
|
||||||
border-top-color: rgba(0, 0, 0, 0.25);
|
border-top-color: #1890FF;
|
||||||
transition: all .3s linear;
|
transition: all .3s linear;
|
||||||
transform-origin: center;
|
transform-origin: center;
|
||||||
}
|
}
|
||||||
|
@ -121,7 +121,7 @@
|
||||||
margin: 2px 0;
|
margin: 2px 0;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
outline: none;
|
outline: none;
|
||||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
box-shadow: 0 2px 8px #1890FF;
|
||||||
|
|
||||||
transition: opacity 0.15s, transform 0.3s !important;
|
transition: opacity 0.15s, transform 0.3s !important;
|
||||||
transform-origin: center top !important;
|
transform-origin: center top !important;
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
padding: 6px 0;
|
padding: 6px 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
color: #565656;
|
color: #ffffff;
|
||||||
list-style: none;
|
list-style: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -169,7 +169,7 @@
|
||||||
margin: 2px 0;
|
margin: 2px 0;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
outline: none;
|
outline: none;
|
||||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
|
box-shadow: 0 2px 8px #1890FF;
|
||||||
|
|
||||||
transition: opacity 0.15s, transform 0.3s !important;
|
transition: opacity 0.15s, transform 0.3s !important;
|
||||||
transform-origin: center top !important;
|
transform-origin: center top !important;
|
||||||
|
@ -249,11 +249,11 @@
|
||||||
|
|
||||||
.cascader-menu-list::-webkit-scrollbar-thumb:vertical,
|
.cascader-menu-list::-webkit-scrollbar-thumb:vertical,
|
||||||
.area-selectable-list-wrap::-webkit-scrollbar-thumb:vertical {
|
.area-selectable-list-wrap::-webkit-scrollbar-thumb:vertical {
|
||||||
background-color: #b8b8b8;
|
background-color: #ffffff;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.cascader-menu-list::-webkit-scrollbar-thumb:vertical:hover,
|
.cascader-menu-list::-webkit-scrollbar-thumb:vertical:hover,
|
||||||
.area-selectable-list-wrap::-webkit-scrollbar-thumb:vertical:hover {
|
.area-selectable-list-wrap::-webkit-scrollbar-thumb:vertical:hover {
|
||||||
background-color: #777;
|
background-color: #ffffff;
|
||||||
}
|
}
|
|
@ -1,12 +1,12 @@
|
||||||
@bordercolor : #C8C8C8;
|
@bordercolor : #C8C8C8;
|
||||||
@headercolor : #1f232a;
|
@headercolor : #ffffff;
|
||||||
@backcolor : #454959;
|
@backcolor : #ffffff;
|
||||||
@inpuitbackcolor : #ffffff;
|
@inpuitbackcolor : #ffffff;
|
||||||
@labelDeaultColor : #282828;
|
@labelDeaultColor : #000000;
|
||||||
@defaultWhiteColor: #eeeeee;
|
@defaultWhiteColor: #ffffff;
|
||||||
@fontfamily : 'Microsoft YaHei';
|
@fontfamily : 'Microsoft YaHei';
|
||||||
@tableheadColor : #e5e8eb;
|
@tableheadColor : #fafafa;
|
||||||
@tableColor : #575D63;
|
@tableColor : #000000;
|
||||||
|
|
||||||
/* 滚动条优化 start */
|
/* 滚动条优化 start */
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
|
@ -670,7 +670,7 @@ textarea,
|
||||||
.ant-btn:hover,
|
.ant-btn:hover,
|
||||||
.ant-btn:active,
|
.ant-btn:active,
|
||||||
.ant-btn:focus {
|
.ant-btn:focus {
|
||||||
background: url('~@/assets/img/buttonSelect.png') !important;
|
//background: url('~@/assets/img/buttonSelect.png') !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.ant-menu-light {
|
.ant-menu-light {
|
||||||
|
|
|
@ -23,6 +23,6 @@ i {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.trcolor{
|
.trcolor{
|
||||||
background-color: rgba(255, 192, 203, 0.31);
|
background-color: #1890FF;
|
||||||
color:red;
|
color:red;
|
||||||
}
|
}
|
||||||
|
|
|
@ -209,10 +209,10 @@
|
||||||
|
|
||||||
.ant-modal-close {
|
.ant-modal-close {
|
||||||
right: 56px;
|
right: 56px;
|
||||||
color: rgba(0, 0, 0, 0.45);
|
color: rgba(255, 255, 255, 0.45);
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
color: rgba(0, 0, 0, 0.75);
|
color: rgb(255, 255, 255);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
199
src/views/ship/modules/QuartzJobModal.vue
Normal file
199
src/views/ship/modules/QuartzJobModal.vue
Normal file
|
@ -0,0 +1,199 @@
|
||||||
|
<template>
|
||||||
|
<a-modal
|
||||||
|
:title="title"
|
||||||
|
:width="800"
|
||||||
|
:visible="visible"
|
||||||
|
:confirmLoading="confirmLoading"
|
||||||
|
@ok="handleOk"
|
||||||
|
@cancel="handleCancel"
|
||||||
|
okText="保存并安排任务"
|
||||||
|
cancelText="关闭">
|
||||||
|
|
||||||
|
<a-spin :spinning="confirmLoading">
|
||||||
|
<a-form :form="form">
|
||||||
|
<a-form-item label="任务名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<a-input v-decorator="['quartzName']" ></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item label="同步策略名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
|
||||||
|
<j-select-multiple v-model="dataStrategySelected" :options="strategys"/>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
:labelCol="labelCol"
|
||||||
|
:wrapperCol="wrapperCol"
|
||||||
|
label="cron表达式">
|
||||||
|
<j-cron ref="innerVueCron" v-decorator="['cronExpression', { initialValue: '* * * * * ? *' }]" @change="setCorn"></j-cron>
|
||||||
|
</a-form-item>
|
||||||
|
<a-form-item
|
||||||
|
:labelCol="labelCol"
|
||||||
|
:wrapperCol="wrapperCol"
|
||||||
|
label="描述">
|
||||||
|
<a-textarea placeholder="请输入描述" :rows="3" v-decorator="['description', {}]" />
|
||||||
|
</a-form-item>
|
||||||
|
</a-form>
|
||||||
|
</a-spin>
|
||||||
|
</a-modal>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { httpAction } from '@/api/manage'
|
||||||
|
import JCron from "@/components/jeecg/JCron";
|
||||||
|
import JSelectMultiple from '@/components/jeecg/JSelectMultiple'
|
||||||
|
import pick from 'lodash.pick'
|
||||||
|
// import moment from "moment"
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "QuartzJobModal",
|
||||||
|
components: {
|
||||||
|
JCron,
|
||||||
|
JSelectMultiple
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
title:"操作",
|
||||||
|
buttonStyle: 'solid',
|
||||||
|
visible: false,
|
||||||
|
status:'',
|
||||||
|
model: {},
|
||||||
|
labelCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 5 },
|
||||||
|
},
|
||||||
|
wrapperCol: {
|
||||||
|
xs: { span: 24 },
|
||||||
|
sm: { span: 16 },
|
||||||
|
},
|
||||||
|
cron: {
|
||||||
|
label: '',
|
||||||
|
value: ''
|
||||||
|
},
|
||||||
|
confirmLoading: false,
|
||||||
|
form: this.$form.createForm(this),
|
||||||
|
validatorRules: {
|
||||||
|
cron: {
|
||||||
|
rules: [{
|
||||||
|
required: true, message: '请输入cron表达式!'
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
url: {
|
||||||
|
add: "/sys/quartzJob/add",
|
||||||
|
edit: "/sys/quartzJob/edit",
|
||||||
|
queryEditStrategyList:"/sys/quartzJob/editSynchronSelectDetails",
|
||||||
|
queryAddStrategyList:"/sys/quartzJob/addSynchronSelectDetails"
|
||||||
|
},
|
||||||
|
strategys:[],
|
||||||
|
dataStrategySelected:'',
|
||||||
|
idcDataStrategyId:""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
add () {
|
||||||
|
this.edit({});
|
||||||
|
},
|
||||||
|
edit (record) {
|
||||||
|
let that = this;
|
||||||
|
that.form.resetFields();
|
||||||
|
this.model = Object.assign({},record);
|
||||||
|
this.visible = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if(this.model.id){
|
||||||
|
this.status = this.model.status;
|
||||||
|
this.getEditStrategyList();
|
||||||
|
}else{
|
||||||
|
this.getAddStrategyList();
|
||||||
|
}
|
||||||
|
this.dataStrategySelected = this.model.strategyId;
|
||||||
|
this.form.setFieldsValue(pick(this.model,'cronExpression','description','quartzName'));
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
close () {
|
||||||
|
this.$emit('close');
|
||||||
|
this.visible = false;
|
||||||
|
},
|
||||||
|
//add获取同步策略列表
|
||||||
|
getAddStrategyList(){
|
||||||
|
httpAction(this.url.queryAddStrategyList,{},"get").then((res)=>{
|
||||||
|
if(res.success){
|
||||||
|
this.strategys=res.result;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//edit获取同步策略列表
|
||||||
|
getEditStrategyList(){
|
||||||
|
httpAction(this.url.queryEditStrategyList,{},"get").then((res)=>{
|
||||||
|
if(res.success){
|
||||||
|
this.strategys=res.result;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
strategyChange(value){
|
||||||
|
this.idcDataStrategyId = value;
|
||||||
|
},
|
||||||
|
handleOk () {
|
||||||
|
const that = this;
|
||||||
|
// 触发表单验证
|
||||||
|
this.form.validateFields((err, values) => {
|
||||||
|
console.log('values',values)
|
||||||
|
if (!err) {
|
||||||
|
if (typeof values.cronExpression == "undefined" || Object.keys(values.cronExpression).length==0 ) {
|
||||||
|
this.$message.warning('请输入cron表达式!');
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
that.confirmLoading = true;
|
||||||
|
let httpurl = '';
|
||||||
|
let method = '';
|
||||||
|
if(!this.model.id){
|
||||||
|
httpurl+=this.url.add;
|
||||||
|
method = 'post';
|
||||||
|
}else{
|
||||||
|
httpurl+=this.url.edit;
|
||||||
|
method = 'put';
|
||||||
|
}
|
||||||
|
httpAction(httpurl, {quartzName:values.quartzName,strategyId:this.dataStrategySelected,cronExpression:values.cronExpression,description:values.description,id:this.model.id,status:this.status},method).then((res)=>{
|
||||||
|
if(res.success){
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.$emit('ok');
|
||||||
|
}else{
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
that.confirmLoading = false;
|
||||||
|
that.close();
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
handleCancel () {
|
||||||
|
this.close()
|
||||||
|
},
|
||||||
|
setCorn(data){
|
||||||
|
console.log('data)',data);
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.model.cronExpression = data;
|
||||||
|
})
|
||||||
|
|
||||||
|
if (Object.keys(data).length==0) {
|
||||||
|
this.$message.warning('请输入cron表达式!');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
validateCron(rule, value, callback){
|
||||||
|
if(!value){
|
||||||
|
callback()
|
||||||
|
}else if (Object.keys(value).length==0) {
|
||||||
|
callback("请输入cron表达式!");
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.disabled{
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
</style>
|
399
src/views/ship/shipMode.vue
Normal file
399
src/views/ship/shipMode.vue
Normal file
|
@ -0,0 +1,399 @@
|
||||||
|
<template>
|
||||||
|
<a-card :bordered="false">
|
||||||
|
|
||||||
|
<!-- 查询区域 -->
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||||
|
<a-row :gutter="30">
|
||||||
|
<a-col :md="6" :sm="10">
|
||||||
|
<a-form-item label="定时任务名称">
|
||||||
|
<a-input placeholder="请输入定时任务名称" v-model="queryParam.quartzName"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="6" :sm="10">
|
||||||
|
<a-form-item label="同步策略名称">
|
||||||
|
<a-input placeholder="请输入同步策略名称" v-model="queryParam.strategyName"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="6" :sm="10">
|
||||||
|
<a-form-item label="任务状态">
|
||||||
|
<a-select style="width: 220px" v-model="queryParam.status" placeholder="请选择状态">
|
||||||
|
<a-select-option value="">全部</a-select-option>
|
||||||
|
<a-select-option value="0">正常</a-select-option>
|
||||||
|
<a-select-option value="-1">停止</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="6" :sm="10" >
|
||||||
|
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
|
||||||
|
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
|
||||||
|
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
|
||||||
|
</span>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 操作按钮区域 -->
|
||||||
|
<div class="table-operator">
|
||||||
|
<a-button @click="handleAdd" type="primary" v-has="'cont:btn'" icon="plus">新增</a-button>
|
||||||
|
<a-button type="primary" v-has="'cont:btn'" icon="download" @click="handleExportXls('定时任务信息')">导出</a-button>
|
||||||
|
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
|
||||||
|
<a-button type="primary" v-has="'cont:btn'" icon="import">导入</a-button>
|
||||||
|
</a-upload>
|
||||||
|
<a-button type="primary" v-has="'cont:btn'" @click="batchDel" icon="del">批量删除</a-button>
|
||||||
|
<a-button type="primary" v-has="'cont:btn'" @click="batchStart" icon="start" style="margin-left: 8px">批量启动</a-button>
|
||||||
|
<a-button type="primary" v-has="'cont:btn'" @click="pauseJobBatch" icon="pauseJob" style="margin-left: 8px">批量暂停</a-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- table区域-begin -->
|
||||||
|
<div style="height:615px;overflow-y:auto;">
|
||||||
|
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
|
||||||
|
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
|
||||||
|
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a-table
|
||||||
|
ref="table"
|
||||||
|
size="middle"
|
||||||
|
bordered
|
||||||
|
rowKey="id"
|
||||||
|
:columns="columns"
|
||||||
|
:dataSource="dataSource"
|
||||||
|
:pagination="ipagination"
|
||||||
|
:loading="loading"
|
||||||
|
:rowSelection="{selectedRowKeys: selectedRowKeys,onChange: onSelectChange}"
|
||||||
|
@change="handleTableChange">
|
||||||
|
<!-- :locale="myLocale"-->
|
||||||
|
|
||||||
|
<div slot="expandedRowRender" slot-scope="record" style="margin: 0">
|
||||||
|
<div style="margin-bottom: 5px">
|
||||||
|
<span v-for="(item,index) in record.strategyName.split(',')" :key="index">
|
||||||
|
<a-badge status="success" style="vertical-align: middle;"/><span>{{ item }}<br></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 字符串超长截取省略号显示-->
|
||||||
|
<span slot="description" slot-scope="text">
|
||||||
|
<j-ellipsis :value="text" :length="20" />
|
||||||
|
</span>
|
||||||
|
<span slot="parameterRender" slot-scope="text">
|
||||||
|
<j-ellipsis :value="text" :length="20" />
|
||||||
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
<span slot="action" slot-scope="text, record">
|
||||||
|
<a @click="resumeJob(record)" v-if="record.status==-1" v-has="'cont:btn'">启动</a>
|
||||||
|
<a @click="pauseJob(record)" v-if="record.status==0" v-has="'cont:btn'">停止</a>
|
||||||
|
|
||||||
|
<a-divider type="vertical" v-has="'cont:btn'" />
|
||||||
|
<a-dropdown v-has="'cont:btn'">
|
||||||
|
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
|
||||||
|
<a-menu slot="overlay">
|
||||||
|
<a-menu-item><a @click="executeImmediately(record)">立即执行</a></a-menu-item>
|
||||||
|
<a-menu-item><a @click="handleEdit(record)">编辑</a></a-menu-item>
|
||||||
|
<a-menu-item>
|
||||||
|
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
|
||||||
|
<a>删除</a>
|
||||||
|
</a-popconfirm>
|
||||||
|
</a-menu-item>
|
||||||
|
</a-menu>
|
||||||
|
</a-dropdown>
|
||||||
|
<a-divider type="vertical" v-has="'cont:btn'" />
|
||||||
|
<a @click="handleDetail(record)">详情</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- 状态渲染模板 -->
|
||||||
|
<template slot="customRenderStatus" slot-scope="status">
|
||||||
|
<a-tag v-if="status==0" color="green">已启动</a-tag>
|
||||||
|
<a-tag v-if="status==-1" color="orange">已暂停</a-tag>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
<!-- table区域-end -->
|
||||||
|
|
||||||
|
<!-- 表单区域 -->
|
||||||
|
<quartzJob-modal ref="modalForm" @ok="modalFormOk"></quartzJob-modal>
|
||||||
|
</a-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import QuartzJobModal from './modules/QuartzJobModal'
|
||||||
|
import { getAction } from '@/api/manage'
|
||||||
|
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
|
||||||
|
import JEllipsis from "@/components/jeecg/JEllipsis";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "QuartzJobList",
|
||||||
|
mixins:[JeecgListMixin],
|
||||||
|
components: {
|
||||||
|
QuartzJobModal,
|
||||||
|
JEllipsis,
|
||||||
|
VNodes: {
|
||||||
|
functional: true,
|
||||||
|
render: (h, ctx) => ctx.props.vnodes,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
description: '定时任务在线管理',
|
||||||
|
dataSources: [],
|
||||||
|
// 查询条件
|
||||||
|
queryParam: {},
|
||||||
|
//myLocale: {emptyText: '同步策略已全部配置'},
|
||||||
|
// 表头
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: '#',
|
||||||
|
dataIndex: '',
|
||||||
|
key:'rowIndex',
|
||||||
|
width:60,
|
||||||
|
align:"center",
|
||||||
|
customRender:function (t,r,index) {
|
||||||
|
return parseInt(index)+1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '定时任务名称',
|
||||||
|
align:"center",
|
||||||
|
dataIndex: 'quartzName',
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'cron表达式',
|
||||||
|
align:"center",
|
||||||
|
dataIndex: 'cronExpression'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '描述',
|
||||||
|
align:"center",
|
||||||
|
width: 250,
|
||||||
|
dataIndex: 'description',
|
||||||
|
scopedSlots: {customRender: 'description'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '状态',
|
||||||
|
align:"center",
|
||||||
|
dataIndex: 'status',
|
||||||
|
scopedSlots: { customRender: 'customRenderStatus' },
|
||||||
|
filterMultiple: false,
|
||||||
|
filters: [
|
||||||
|
{ text: '已启动', value: '0' },
|
||||||
|
{ text: '已暂停', value: '-1' },
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
align:"center",
|
||||||
|
width:180,
|
||||||
|
scopedSlots: { customRender: 'action' },
|
||||||
|
}
|
||||||
|
],
|
||||||
|
url: {
|
||||||
|
list: "/sys/quartzJob/list",
|
||||||
|
delete: "/sys/quartzJob/delete",
|
||||||
|
deleteBatch: "/sys/quartzJob/deleteBatch",
|
||||||
|
startBatch: "/sys/quartzJob/startBatch",
|
||||||
|
pauseJobBatch: "/sys/quartzJob/pauseJobBatch",
|
||||||
|
pause: "/sys/quartzJob/pause",
|
||||||
|
resume: "/sys/quartzJob/resume",
|
||||||
|
exportXlsUrl: "sys/quartzJob/exportXls",
|
||||||
|
importExcelUrl: "sys/quartzJob/importExcel",
|
||||||
|
execute: "sys/quartzJob/execute",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
importExcelUrl: function () {
|
||||||
|
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//筛选需要重写handleTableChange
|
||||||
|
handleTableChange(pagination, filters, sorter) {
|
||||||
|
//分页、排序、筛选变化时触发
|
||||||
|
//TODO 筛选
|
||||||
|
if (Object.keys(sorter).length > 0) {
|
||||||
|
this.isorter.column = sorter.field;
|
||||||
|
this.isorter.order = "ascend" == sorter.order ? "asc" : "desc"
|
||||||
|
}
|
||||||
|
//这种筛选方式只支持单选
|
||||||
|
//this.filters.status = filters.status[0];
|
||||||
|
this.ipagination = pagination;
|
||||||
|
this.loadData();
|
||||||
|
},
|
||||||
|
pauseJobBatch: function () {
|
||||||
|
if(!this.url.pauseJobBatch){
|
||||||
|
this.$message.error("请设置url.pauseJobBatch属性!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let content_ = '是否暂停选中数据?';
|
||||||
|
if (this.selectedRowKeys.length <= 0) {
|
||||||
|
content_ = '是否暂停全部数据?'
|
||||||
|
}
|
||||||
|
var ids = "";
|
||||||
|
for (var a = 0; a < this.selectedRowKeys.length; a++) {
|
||||||
|
ids += this.selectedRowKeys[a] + ",";
|
||||||
|
}
|
||||||
|
var that = this;
|
||||||
|
this.$confirm({
|
||||||
|
title: "确认暂停",
|
||||||
|
content: content_,
|
||||||
|
onOk: function () {
|
||||||
|
that.loading = true;
|
||||||
|
getAction(that.url.pauseJobBatch, {ids: ids}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.loadData();
|
||||||
|
that.onClearSelected();
|
||||||
|
} else {
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
that.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
loadData(arg) {
|
||||||
|
if(!this.url.list){
|
||||||
|
this.$message.error("请设置url.list属性!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
//加载数据 若传入参数1则加载第一页的内容
|
||||||
|
if (arg === 1) {
|
||||||
|
this.ipagination.current = 1;
|
||||||
|
}
|
||||||
|
let params = this.getQueryParams();//查询条件
|
||||||
|
let strategyName = params.strategyName;
|
||||||
|
let status = "";
|
||||||
|
if(this.idcDataSourceTableId){
|
||||||
|
strategyName = this.idcDataSourceSelected + "-" + this.sourceUserId + "-" + this.idcDataSourceTableId;
|
||||||
|
}else if(this.sourceUserId && this.sourceUserId.length > 0){
|
||||||
|
strategyName = this.idcDataSourceSelected + "-" + this.sourceUserId;
|
||||||
|
}else if(this.idcDataSourceSelected){
|
||||||
|
strategyName = this.idcDataSourceSelected;
|
||||||
|
}
|
||||||
|
this.$set(this.queryParam,'strategyName',strategyName);
|
||||||
|
console.log(params)
|
||||||
|
if(params.status){
|
||||||
|
status = params.status;
|
||||||
|
}
|
||||||
|
this.loading = true;
|
||||||
|
getAction(this.url.list, {quartzName:params.quartzName,strategyName:strategyName,status:status,pageNo:params.pageNo,pageSize:params.pageSize,order:params.order,column:params.column}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
//update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||||
|
this.dataSource = res.result.records||res.result;
|
||||||
|
if(res.result.total)
|
||||||
|
{
|
||||||
|
this.ipagination.total = res.result.total;
|
||||||
|
}
|
||||||
|
//update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||||
|
}
|
||||||
|
if(res.code===510){
|
||||||
|
this.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
this.loading = false;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
batchStart: function () {
|
||||||
|
if(!this.url.startBatch){
|
||||||
|
this.$message.error("请设置url.startBatch属性!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let content_ = '是否启动选中数据?';
|
||||||
|
if (this.selectedRowKeys.length <= 0) {
|
||||||
|
content_ = '是否启动全部数据?'
|
||||||
|
}
|
||||||
|
var ids = "";
|
||||||
|
for (var a = 0; a < this.selectedRowKeys.length; a++) {
|
||||||
|
ids += this.selectedRowKeys[a] + ",";
|
||||||
|
}
|
||||||
|
var that = this;
|
||||||
|
this.$confirm({
|
||||||
|
title: "确认启动",
|
||||||
|
content: content_,
|
||||||
|
onOk: function () {
|
||||||
|
that.loading = true;
|
||||||
|
getAction(that.url.startBatch, {ids: ids}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.loadData();
|
||||||
|
that.onClearSelected();
|
||||||
|
} else {
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
that.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
pauseJob: function(record){
|
||||||
|
var that = this;
|
||||||
|
//暂停定时任务
|
||||||
|
this.$confirm({
|
||||||
|
title:"确认暂停",
|
||||||
|
content:"是否暂停选中任务?",
|
||||||
|
onOk: function(){
|
||||||
|
getAction(that.url.pause,{id:record.id}).then((res)=>{
|
||||||
|
if(res.success){
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.loadData();
|
||||||
|
that.onClearSelected();
|
||||||
|
}else{
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
resumeJob: function(record){
|
||||||
|
var that = this;
|
||||||
|
//恢复定时任务
|
||||||
|
this.$confirm({
|
||||||
|
title:"确认启动",
|
||||||
|
content:"是否启动选中任务?",
|
||||||
|
onOk: function(){
|
||||||
|
getAction(that.url.resume,{id:record.id}).then((res)=>{
|
||||||
|
if(res.success){
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.loadData();
|
||||||
|
that.onClearSelected();
|
||||||
|
}else{
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
executeImmediately(record){
|
||||||
|
var that = this;
|
||||||
|
//立即执行定时任务
|
||||||
|
this.$confirm({
|
||||||
|
title:"确认提示",
|
||||||
|
content:"是否立即执行任务?",
|
||||||
|
onOk: function(){
|
||||||
|
getAction(that.url.execute,{id:record.id}).then((res)=>{
|
||||||
|
if(res.success){
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.loadData();
|
||||||
|
that.onClearSelected();
|
||||||
|
}else{
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
|
</style>
|
399
src/views/ship/shipNum.vue
Normal file
399
src/views/ship/shipNum.vue
Normal file
|
@ -0,0 +1,399 @@
|
||||||
|
<template>
|
||||||
|
<a-card :bordered="false">
|
||||||
|
|
||||||
|
<!-- 查询区域 -->
|
||||||
|
<div class="table-page-search-wrapper">
|
||||||
|
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||||
|
<a-row :gutter="30">
|
||||||
|
<a-col :md="6" :sm="10">
|
||||||
|
<a-form-item label="定时任务名称">
|
||||||
|
<a-input placeholder="请输入定时任务名称" v-model="queryParam.quartzName"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="6" :sm="10">
|
||||||
|
<a-form-item label="同步策略名称">
|
||||||
|
<a-input placeholder="请输入同步策略名称" v-model="queryParam.strategyName"></a-input>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="6" :sm="10">
|
||||||
|
<a-form-item label="任务状态">
|
||||||
|
<a-select style="width: 220px" v-model="queryParam.status" placeholder="请选择状态">
|
||||||
|
<a-select-option value="">全部</a-select-option>
|
||||||
|
<a-select-option value="0">正常</a-select-option>
|
||||||
|
<a-select-option value="-1">停止</a-select-option>
|
||||||
|
</a-select>
|
||||||
|
</a-form-item>
|
||||||
|
</a-col>
|
||||||
|
<a-col :md="6" :sm="10" >
|
||||||
|
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
|
||||||
|
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
|
||||||
|
<a-button type="primary" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
|
||||||
|
</span>
|
||||||
|
</a-col>
|
||||||
|
</a-row>
|
||||||
|
</a-form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 操作按钮区域 -->
|
||||||
|
<div class="table-operator">
|
||||||
|
<a-button @click="handleAdd" type="primary" v-has="'cont:btn'" icon="plus">新增</a-button>
|
||||||
|
<a-button type="primary" v-has="'cont:btn'" icon="download" @click="handleExportXls('定时任务信息')">导出</a-button>
|
||||||
|
<a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
|
||||||
|
<a-button type="primary" v-has="'cont:btn'" icon="import">导入</a-button>
|
||||||
|
</a-upload>
|
||||||
|
<a-button type="primary" v-has="'cont:btn'" @click="batchDel" icon="del">批量删除</a-button>
|
||||||
|
<a-button type="primary" v-has="'cont:btn'" @click="batchStart" icon="start" style="margin-left: 8px">批量启动</a-button>
|
||||||
|
<a-button type="primary" v-has="'cont:btn'" @click="pauseJobBatch" icon="pauseJob" style="margin-left: 8px">批量暂停</a-button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- table区域-begin -->
|
||||||
|
<div style="height:615px;overflow-y:auto;">
|
||||||
|
<div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
|
||||||
|
<i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
|
||||||
|
<a style="margin-left: 24px" @click="onClearSelected">清空</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a-table
|
||||||
|
ref="table"
|
||||||
|
size="middle"
|
||||||
|
bordered
|
||||||
|
rowKey="id"
|
||||||
|
:columns="columns"
|
||||||
|
:dataSource="dataSource"
|
||||||
|
:pagination="ipagination"
|
||||||
|
:loading="loading"
|
||||||
|
:rowSelection="{selectedRowKeys: selectedRowKeys,onChange: onSelectChange}"
|
||||||
|
@change="handleTableChange">
|
||||||
|
<!-- :locale="myLocale"-->
|
||||||
|
|
||||||
|
<div slot="expandedRowRender" slot-scope="record" style="margin: 0">
|
||||||
|
<div style="margin-bottom: 5px">
|
||||||
|
<span v-for="(item,index) in record.strategyName.split(',')" :key="index">
|
||||||
|
<a-badge status="success" style="vertical-align: middle;"/><span>{{ item }}<br></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 字符串超长截取省略号显示-->
|
||||||
|
<span slot="description" slot-scope="text">
|
||||||
|
<j-ellipsis :value="text" :length="20" />
|
||||||
|
</span>
|
||||||
|
<span slot="parameterRender" slot-scope="text">
|
||||||
|
<j-ellipsis :value="text" :length="20" />
|
||||||
|
</span>
|
||||||
|
|
||||||
|
|
||||||
|
<span slot="action" slot-scope="text, record">
|
||||||
|
<a @click="resumeJob(record)" v-if="record.status==-1" v-has="'cont:btn'">启动</a>
|
||||||
|
<a @click="pauseJob(record)" v-if="record.status==0" v-has="'cont:btn'">停止</a>
|
||||||
|
|
||||||
|
<a-divider type="vertical" v-has="'cont:btn'" />
|
||||||
|
<a-dropdown v-has="'cont:btn'">
|
||||||
|
<a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
|
||||||
|
<a-menu slot="overlay">
|
||||||
|
<a-menu-item><a @click="executeImmediately(record)">立即执行</a></a-menu-item>
|
||||||
|
<a-menu-item><a @click="handleEdit(record)">编辑</a></a-menu-item>
|
||||||
|
<a-menu-item>
|
||||||
|
<a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
|
||||||
|
<a>删除</a>
|
||||||
|
</a-popconfirm>
|
||||||
|
</a-menu-item>
|
||||||
|
</a-menu>
|
||||||
|
</a-dropdown>
|
||||||
|
<a-divider type="vertical" v-has="'cont:btn'" />
|
||||||
|
<a @click="handleDetail(record)">详情</a>
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- 状态渲染模板 -->
|
||||||
|
<template slot="customRenderStatus" slot-scope="status">
|
||||||
|
<a-tag v-if="status==0" color="green">已启动</a-tag>
|
||||||
|
<a-tag v-if="status==-1" color="orange">已暂停</a-tag>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
<!-- table区域-end -->
|
||||||
|
|
||||||
|
<!-- 表单区域 -->
|
||||||
|
<quartzJob-modal ref="modalForm" @ok="modalFormOk"></quartzJob-modal>
|
||||||
|
</a-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import QuartzJobModal from './modules/QuartzJobModal'
|
||||||
|
import { getAction } from '@/api/manage'
|
||||||
|
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
|
||||||
|
import JEllipsis from "@/components/jeecg/JEllipsis";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "QuartzJobList",
|
||||||
|
mixins:[JeecgListMixin],
|
||||||
|
components: {
|
||||||
|
QuartzJobModal,
|
||||||
|
JEllipsis,
|
||||||
|
VNodes: {
|
||||||
|
functional: true,
|
||||||
|
render: (h, ctx) => ctx.props.vnodes,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
description: '定时任务在线管理',
|
||||||
|
dataSources: [],
|
||||||
|
// 查询条件
|
||||||
|
queryParam: {},
|
||||||
|
//myLocale: {emptyText: '同步策略已全部配置'},
|
||||||
|
// 表头
|
||||||
|
columns: [
|
||||||
|
{
|
||||||
|
title: '#',
|
||||||
|
dataIndex: '',
|
||||||
|
key:'rowIndex',
|
||||||
|
width:60,
|
||||||
|
align:"center",
|
||||||
|
customRender:function (t,r,index) {
|
||||||
|
return parseInt(index)+1;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '定时任务名称',
|
||||||
|
align:"center",
|
||||||
|
dataIndex: 'quartzName',
|
||||||
|
sorter: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'cron表达式',
|
||||||
|
align:"center",
|
||||||
|
dataIndex: 'cronExpression'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '描述',
|
||||||
|
align:"center",
|
||||||
|
width: 250,
|
||||||
|
dataIndex: 'description',
|
||||||
|
scopedSlots: {customRender: 'description'},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '状态',
|
||||||
|
align:"center",
|
||||||
|
dataIndex: 'status',
|
||||||
|
scopedSlots: { customRender: 'customRenderStatus' },
|
||||||
|
filterMultiple: false,
|
||||||
|
filters: [
|
||||||
|
{ text: '已启动', value: '0' },
|
||||||
|
{ text: '已暂停', value: '-1' },
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'action',
|
||||||
|
align:"center",
|
||||||
|
width:180,
|
||||||
|
scopedSlots: { customRender: 'action' },
|
||||||
|
}
|
||||||
|
],
|
||||||
|
url: {
|
||||||
|
list: "/sys/quartzJob/list",
|
||||||
|
delete: "/sys/quartzJob/delete",
|
||||||
|
deleteBatch: "/sys/quartzJob/deleteBatch",
|
||||||
|
startBatch: "/sys/quartzJob/startBatch",
|
||||||
|
pauseJobBatch: "/sys/quartzJob/pauseJobBatch",
|
||||||
|
pause: "/sys/quartzJob/pause",
|
||||||
|
resume: "/sys/quartzJob/resume",
|
||||||
|
exportXlsUrl: "sys/quartzJob/exportXls",
|
||||||
|
importExcelUrl: "sys/quartzJob/importExcel",
|
||||||
|
execute: "sys/quartzJob/execute",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
importExcelUrl: function () {
|
||||||
|
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//筛选需要重写handleTableChange
|
||||||
|
handleTableChange(pagination, filters, sorter) {
|
||||||
|
//分页、排序、筛选变化时触发
|
||||||
|
//TODO 筛选
|
||||||
|
if (Object.keys(sorter).length > 0) {
|
||||||
|
this.isorter.column = sorter.field;
|
||||||
|
this.isorter.order = "ascend" == sorter.order ? "asc" : "desc"
|
||||||
|
}
|
||||||
|
//这种筛选方式只支持单选
|
||||||
|
//this.filters.status = filters.status[0];
|
||||||
|
this.ipagination = pagination;
|
||||||
|
this.loadData();
|
||||||
|
},
|
||||||
|
pauseJobBatch: function () {
|
||||||
|
if(!this.url.pauseJobBatch){
|
||||||
|
this.$message.error("请设置url.pauseJobBatch属性!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let content_ = '是否暂停选中数据?';
|
||||||
|
if (this.selectedRowKeys.length <= 0) {
|
||||||
|
content_ = '是否暂停全部数据?'
|
||||||
|
}
|
||||||
|
var ids = "";
|
||||||
|
for (var a = 0; a < this.selectedRowKeys.length; a++) {
|
||||||
|
ids += this.selectedRowKeys[a] + ",";
|
||||||
|
}
|
||||||
|
var that = this;
|
||||||
|
this.$confirm({
|
||||||
|
title: "确认暂停",
|
||||||
|
content: content_,
|
||||||
|
onOk: function () {
|
||||||
|
that.loading = true;
|
||||||
|
getAction(that.url.pauseJobBatch, {ids: ids}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.loadData();
|
||||||
|
that.onClearSelected();
|
||||||
|
} else {
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
that.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
loadData(arg) {
|
||||||
|
if(!this.url.list){
|
||||||
|
this.$message.error("请设置url.list属性!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
//加载数据 若传入参数1则加载第一页的内容
|
||||||
|
if (arg === 1) {
|
||||||
|
this.ipagination.current = 1;
|
||||||
|
}
|
||||||
|
let params = this.getQueryParams();//查询条件
|
||||||
|
let strategyName = params.strategyName;
|
||||||
|
let status = "";
|
||||||
|
if(this.idcDataSourceTableId){
|
||||||
|
strategyName = this.idcDataSourceSelected + "-" + this.sourceUserId + "-" + this.idcDataSourceTableId;
|
||||||
|
}else if(this.sourceUserId && this.sourceUserId.length > 0){
|
||||||
|
strategyName = this.idcDataSourceSelected + "-" + this.sourceUserId;
|
||||||
|
}else if(this.idcDataSourceSelected){
|
||||||
|
strategyName = this.idcDataSourceSelected;
|
||||||
|
}
|
||||||
|
this.$set(this.queryParam,'strategyName',strategyName);
|
||||||
|
console.log(params)
|
||||||
|
if(params.status){
|
||||||
|
status = params.status;
|
||||||
|
}
|
||||||
|
this.loading = true;
|
||||||
|
getAction(this.url.list, {quartzName:params.quartzName,strategyName:strategyName,status:status,pageNo:params.pageNo,pageSize:params.pageSize,order:params.order,column:params.column}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
//update-begin---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||||
|
this.dataSource = res.result.records||res.result;
|
||||||
|
if(res.result.total)
|
||||||
|
{
|
||||||
|
this.ipagination.total = res.result.total;
|
||||||
|
}
|
||||||
|
//update-end---author:zhangyafei Date:20201118 for:适配不分页的数据列表------------
|
||||||
|
}
|
||||||
|
if(res.code===510){
|
||||||
|
this.$message.warning(res.message)
|
||||||
|
}
|
||||||
|
this.loading = false;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
batchStart: function () {
|
||||||
|
if(!this.url.startBatch){
|
||||||
|
this.$message.error("请设置url.startBatch属性!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let content_ = '是否启动选中数据?';
|
||||||
|
if (this.selectedRowKeys.length <= 0) {
|
||||||
|
content_ = '是否启动全部数据?'
|
||||||
|
}
|
||||||
|
var ids = "";
|
||||||
|
for (var a = 0; a < this.selectedRowKeys.length; a++) {
|
||||||
|
ids += this.selectedRowKeys[a] + ",";
|
||||||
|
}
|
||||||
|
var that = this;
|
||||||
|
this.$confirm({
|
||||||
|
title: "确认启动",
|
||||||
|
content: content_,
|
||||||
|
onOk: function () {
|
||||||
|
that.loading = true;
|
||||||
|
getAction(that.url.startBatch, {ids: ids}).then((res) => {
|
||||||
|
if (res.success) {
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.loadData();
|
||||||
|
that.onClearSelected();
|
||||||
|
} else {
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
}).finally(() => {
|
||||||
|
that.loading = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
pauseJob: function(record){
|
||||||
|
var that = this;
|
||||||
|
//暂停定时任务
|
||||||
|
this.$confirm({
|
||||||
|
title:"确认暂停",
|
||||||
|
content:"是否暂停选中任务?",
|
||||||
|
onOk: function(){
|
||||||
|
getAction(that.url.pause,{id:record.id}).then((res)=>{
|
||||||
|
if(res.success){
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.loadData();
|
||||||
|
that.onClearSelected();
|
||||||
|
}else{
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
},
|
||||||
|
resumeJob: function(record){
|
||||||
|
var that = this;
|
||||||
|
//恢复定时任务
|
||||||
|
this.$confirm({
|
||||||
|
title:"确认启动",
|
||||||
|
content:"是否启动选中任务?",
|
||||||
|
onOk: function(){
|
||||||
|
getAction(that.url.resume,{id:record.id}).then((res)=>{
|
||||||
|
if(res.success){
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.loadData();
|
||||||
|
that.onClearSelected();
|
||||||
|
}else{
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
executeImmediately(record){
|
||||||
|
var that = this;
|
||||||
|
//立即执行定时任务
|
||||||
|
this.$confirm({
|
||||||
|
title:"确认提示",
|
||||||
|
content:"是否立即执行任务?",
|
||||||
|
onOk: function(){
|
||||||
|
getAction(that.url.execute,{id:record.id}).then((res)=>{
|
||||||
|
if(res.success){
|
||||||
|
that.$message.success(res.message);
|
||||||
|
that.loadData();
|
||||||
|
that.onClearSelected();
|
||||||
|
}else{
|
||||||
|
that.$message.warning(res.message);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
@import '~@assets/less/common.less';
|
||||||
|
</style>
|
Loading…
Reference in New Issue
Block a user