system 模块,quartz job 页面中新增弹窗调整

This commit is contained in:
任珮宇 2024-01-30 17:44:44 +08:00
parent f09ca1e38a
commit 4c0e48dd43
2 changed files with 125 additions and 127 deletions

View File

@ -3,7 +3,7 @@
<a-input :placeholder="placeholder" v-model="editCronValue" :disabled="disabled"> <a-input :placeholder="placeholder" v-model="editCronValue" :disabled="disabled">
<a slot="addonAfter" @click="showConfigDlg" class="config-btn" :disabled="disabled"> <a slot="addonAfter" @click="showConfigDlg" class="config-btn" :disabled="disabled">
<a-icon type="setting"></a-icon> <a-icon type="setting"></a-icon>
选择 Select
</a> </a>
</a-input> </a-input>
<j-modal :visible.sync="show" title="Cron表达式" width="800px"> <j-modal :visible.sync="show" title="Cron表达式" width="800px">
@ -27,41 +27,41 @@ export default {
components: { EasyCron }, components: { EasyCron },
model: { model: {
prop: 'cronValue', prop: 'cronValue',
event: 'change' event: 'change',
}, },
props: { props: {
cronValue: { cronValue: {
type: String, type: String,
default: '' default: '',
}, },
width: { width: {
type: String, type: String,
default: '800px' default: '800px',
}, },
placeholder: { placeholder: {
type: String, type: String,
default: '请输入cron表达式' default: '请输入cron表达式',
}, },
disabled: { disabled: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
exeStartTime: { exeStartTime: {
type: [Number, String, Object], type: [Number, String, Object],
default: 0 default: 0,
}, },
hideSecond: { hideSecond: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
hideYear: { hideYear: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
remote: { remote: {
type: Function, type: Function,
default: null default: null,
} },
}, },
data() { data() {
return { return {
@ -78,22 +78,20 @@ export default {
}, },
editCronValue(newVal, oldVal) { editCronValue(newVal, oldVal) {
this.$emit('change', newVal) this.$emit('change', newVal)
} },
}, },
methods: { methods: {
showConfigDlg() { showConfigDlg() {
if (!this.disabled) { if (!this.disabled) {
this.show = true this.show = true
} }
} },
} },
} }
</script> </script>
<style scoped> <style scoped>
.config-btn { .config-btn {
cursor: pointer; cursor: pointer;
} }
</style> </style>

View File

@ -6,26 +6,31 @@
:confirmLoading="confirmLoading" :confirmLoading="confirmLoading"
@ok="handleOk" @ok="handleOk"
@cancel="handleCancel" @cancel="handleCancel"
okText="保存并安排任务" okText="Save And Schedule Tasks"
cancelText="关闭"> cancelText="Close"
>
<a-spin :spinning="confirmLoading"> <a-spin :spinning="confirmLoading">
<a-form-model ref="form" :model="model" :rules="validatorRules"> <a-form-model ref="form" :model="model" :rules="validatorRules">
<a-form-model-item
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="任务类名" prop="jobClassName" hasFeedback > :labelCol="labelCol"
<a-input placeholder="请输入任务类名" v-model="model.jobClassName" /> :wrapperCol="wrapperCol"
label="Task Class Name"
prop="jobClassName"
hasFeedback
>
<a-input placeholder="Please enter a task class name" v-model="model.jobClassName" />
</a-form-model-item> </a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Cron表达式" prop="cronExpression"> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Cron Expression" prop="cronExpression">
<!-- <j-cron v-model="model.cronExpression"/>--> <!-- <j-cron v-model="model.cronExpression"/>-->
<j-easy-cron v-model="model.cronExpression" /> <j-easy-cron v-model="model.cronExpression" />
</a-form-model-item> </a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="参数" prop="parameter" > <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Arguments" prop="parameter">
<a-textarea placeholder="请输入参数" :rows="5" v-model="model.parameter" /> <a-textarea placeholder="Please enter parameters" :rows="5" v-model="model.parameter" />
</a-form-model-item> </a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="描述" prop="description"> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Description" prop="description">
<a-textarea placeholder="请输入描述" :rows="3" v-model="model.description" /> <a-textarea placeholder="Please enter a description" :rows="3" v-model="model.description" />
</a-form-model-item> </a-form-model-item>
<a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="状态" prop="status"> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" label="Status" prop="status">
<j-dict-select-tag type="radioButton" v-model="model.status" dictCode="quartz_status" /> <j-dict-select-tag type="radioButton" v-model="model.status" dictCode="quartz_status" />
</a-form-model-item> </a-form-model-item>
</a-form-model> </a-form-model>
@ -36,16 +41,16 @@
<script> <script>
import { httpAction } from '@/api/manage' import { httpAction } from '@/api/manage'
// import JCron from "@/components/jeecg/JCron"; // import JCron from "@/components/jeecg/JCron";
import cronValidator from "@/components/jeecg/JEasyCron/validator"; import cronValidator from '@/components/jeecg/JEasyCron/validator'
export default { export default {
name: "QuartzJobModal", name: 'QuartzJobModal',
components: { components: {
// JCron, // JCron,
}, },
data() { data() {
return { return {
title:"操作", title: '操作',
buttonStyle: 'solid', buttonStyle: 'solid',
visible: false, visible: false,
model: {}, model: {},
@ -59,24 +64,20 @@
}, },
cron: { cron: {
label: '', label: '',
value: '' value: '',
}, },
confirmLoading: false, confirmLoading: false,
validatorRules: { validatorRules: {
cronExpression: [ cronExpression: [{ required: true, message: '请输入cron表达式!' }, { validator: cronValidator }],
{required: true, message: '请输入cron表达式!'}, jobClassName: [{ required: true, message: '请输入任务类名!' }],
{validator: cronValidator,}
],
jobClassName: [{required: true, message: '请输入任务类名!'}]
}, },
url: { url: {
add: "/sys/quartzJob/add", add: '/sys/quartzJob/add',
edit: "/sys/quartzJob/edit", edit: '/sys/quartzJob/edit',
}, },
} }
}, },
created () { created() {},
},
methods: { methods: {
add() { add() {
// //
@ -86,56 +87,55 @@
}) })
}, },
edit(record) { edit(record) {
this.visible = true; this.visible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.form.resetFields() this.$refs.form.resetFields()
this.model = Object.assign({}, record) this.model = Object.assign({}, record)
}) })
}, },
close() { close() {
this.$emit('close'); this.$emit('close')
this.visible = false; this.visible = false
}, },
handleOk() { handleOk() {
const that = this; const that = this
// //
this.$refs.form.validate((ok, err) => { this.$refs.form.validate((ok, err) => {
if (ok) { if (ok) {
that.confirmLoading = true; that.confirmLoading = true
let httpurl = ''; let httpurl = ''
let method = ''; let method = ''
if (!this.model.id) { if (!this.model.id) {
httpurl+=this.url.add; httpurl += this.url.add
method = 'post'; method = 'post'
} else { } else {
httpurl+=this.url.edit; httpurl += this.url.edit
method = 'put'; method = 'put'
} }
console.log('提交参数', this.model) console.log('提交参数', this.model)
httpAction(httpurl,this.model,method).then((res)=>{ httpAction(httpurl, this.model, method)
.then((res) => {
if (res.success) { if (res.success) {
that.$message.success(res.message); that.$message.success(res.message)
that.$emit('ok'); that.$emit('ok')
that.close(); that.close()
} else { } else {
that.$message.warning(res.message); that.$message.warning(res.message)
} }
}).finally(() => {
that.confirmLoading = false;
}) })
.finally(() => {
that.confirmLoading = false
})
} }
}) })
}, },
handleCancel() { handleCancel() {
this.close() this.close()
}, },
},
}
} }
</script> </script>
<style scoped> <style scoped>
</style> </style>