This commit is contained in:
sakuya 2021-07-08 23:13:51 +08:00
parent f248b768ec
commit 7c575c01cf
4 changed files with 131 additions and 129 deletions

View File

@ -32,13 +32,7 @@
</el-main> </el-main>
</el-container> </el-container>
<el-dialog :title="titleMap[saveMode]" v-model="saveDialogVisible" :width="500" destroy-on-close> <save-dialog ref="saveDialog"></save-dialog>
<save-dialog ref="saveDialog" :mode="saveMode"></save-dialog>
<template #footer>
<el-button @click="saveDialogVisible=false" > </el-button>
<el-button v-if="saveMode!='show'" type="primary" @click="saveForm()" :loading="isSaveing"> </el-button>
</template>
</el-dialog>
</template> </template>
@ -53,40 +47,17 @@
data(){ data(){
return { return {
apiObj: this.$API.app.list, apiObj: this.$API.app.list,
selection: [], selection: []
saveDialogVisible: false,
saveMode: 'add',
titleMap: {
add: "新增",
edit: "编辑",
show: "查看"
},
isSaveing: false,
} }
}, },
methods: { methods: {
add(){ add(){
this.saveMode = 'add'; this.$refs.saveDialog.show()
this.saveDialogVisible = true;
}, },
// //
table_edit(row){ table_edit(row){
this.saveMode = 'edit'; this.$refs.saveDialog.show('edit')
this.saveDialogVisible = true;
this.$nextTick(() => {
//ID
this.$refs.saveDialog.setData(row) this.$refs.saveDialog.setData(row)
})
},
//
table_show(row){
this.saveMode = 'show';
this.saveDialogVisible = true;
this.$nextTick(() => {
//ID
this.$refs.saveDialog.setData(row)
})
}, },
// //
async table_del(row, index){ async table_del(row, index){
@ -119,25 +90,10 @@
}) })
}, },
//
saveForm(){
this.$refs.saveDialog.submit(async (formData) => {
this.isSaveing = true;
var res = await this.$API.user.save.post(formData);
this.isSaveing = false;
if(res.code == 200){
// OR /
this.saveDialogVisible = false;
this.$message.success("操作成功")
}else{
this.$alert(res.message, "提示", {type: 'error'})
}
})
},
// //
selectionChange(selection){ selectionChange(selection){
this.selection = selection; this.selection = selection;
}, }
} }
} }
</script> </script>

View File

@ -1,4 +1,5 @@
<template> <template>
<el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close>
<el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="100px" label-position="left"> <el-form :model="form" :rules="rules" :disabled="mode=='show'" ref="dialogForm" label-width="100px" label-position="left">
<el-form-item label="应用标识" prop="appId"> <el-form-item label="应用标识" prop="appId">
<el-input v-model="form.appId" clearable></el-input> <el-input v-model="form.appId" clearable></el-input>
@ -21,15 +22,22 @@
<el-date-picker v-model="form.exp" type="datetime" placeholder="选择日期时间"></el-date-picker> <el-date-picker v-model="form.exp" type="datetime" placeholder="选择日期时间"></el-date-picker>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer>
<el-button @click="visible=false" > </el-button>
<el-button type="primary" :loading="isSaveing" @click="submit()"> </el-button>
</template>
</el-dialog>
</template> </template>
<script> <script>
export default { export default {
props: {
mode: { type: String, default: "add" }
},
data() { data() {
return { return {
mode: "add",
titleMap: {
add: '新增APP',
edit: '编辑APP'
},
// //
form: { form: {
id:"", id:"",
@ -57,30 +65,48 @@
{required: true, message: '请选择授权到期日期'} {required: true, message: '请选择授权到期日期'}
] ]
}, },
visible: false,
isSaveing: false,
pData: {}
} }
}, },
methods: { methods: {
//
show(mode='add'){
this.mode = mode;
this.visible = true;
this.form = this.$options.data().form
},
// //
submit(callback){ submit(){
this.$refs.dialogForm.validate((valid) => { this.$refs.dialogForm.validate(async (valid) => {
if (valid) { if (valid) {
callback(this.form) this.isSaveing = true;
var res = await this.$API.user.save.post(this.form);
this.isSaveing = false;
if(res.code == 200){
this.visible = false;
if(this.mode == 'add'){
//
}else if(this.mode == 'edit'){
Object.assign(this.pData, this.form)
}
this.$message.success("操作成功")
}else{ }else{
return false; this.$alert(res.message, "提示", {type: 'error'})
}
} }
}) })
}, },
// //
setData(data){ setData(data){
this.pData = data
this.form.id = data.id this.form.id = data.id
this.form.appId = data.appId this.form.appId = data.appId
this.form.appName = data.appName this.form.appName = data.appName
this.form.secret = data.secret this.form.secret = data.secret
this.form.type = data.type this.form.type = data.type
this.form.exp = data.exp this.form.exp = data.exp
//
//Object.assign(this.form, data)
} }
} }
} }

View File

@ -1,10 +1,10 @@
<!-- <!--
* @Descripttion: 系统计划任务配置 * @Descripttion: 系统计划任务配置
* @version: 1.0 * @version: 1.1
* @Author: sakuya * @Author: sakuya
* @Date: 2021年7月7日09:28:32 * @Date: 2021年7月7日09:28:32
* @LastEditors: * @LastEditors: sakuya
* @LastEditTime: * @LastEditTime: 2021年7月8日22:15:13
--> -->
<template> <template>
@ -57,13 +57,7 @@
</el-row> </el-row>
</el-main> </el-main>
<el-dialog title="计划任务" v-model="saveDialogVisible" :width="400" destroy-on-close>
<save-dialog ref="saveDialog"></save-dialog> <save-dialog ref="saveDialog"></save-dialog>
<template #footer>
<el-button @click="saveDialogVisible=false" > </el-button>
<el-button type="primary" @click="saveForm()" :loading="isSaveing"> </el-button>
</template>
</el-dialog>
<el-drawer title="计划任务日志" v-model="logsVisible" :size="600" direction="rtl" destroy-on-close> <el-drawer title="计划任务日志" v-model="logsVisible" :size="600" direction="rtl" destroy-on-close>
<logs></logs> <logs></logs>
@ -80,11 +74,14 @@
saveDialog, saveDialog,
logs logs
}, },
provide() {
return {
list: this.list
}
},
data() { data() {
return { return {
saveDialogVisible: false,
logsVisible: false, logsVisible: false,
isSaveing: false,
list: [ list: [
{ {
id: "1", id: "1",
@ -115,13 +112,11 @@
}, },
methods: { methods: {
add(){ add(){
this.saveDialogVisible = true; this.$refs.saveDialog.show()
}, },
edit(task){ edit(task){
this.saveDialogVisible = true; this.$refs.saveDialog.show('edit')
this.$nextTick(() => {
this.$refs.saveDialog.setData(task) this.$refs.saveDialog.setData(task)
})
}, },
del(task){ del(task){
this.$confirm(`确认删除 ${task.title} 计划任务吗?`,'提示', { this.$confirm(`确认删除 ${task.title} 计划任务吗?`,'提示', {
@ -139,13 +134,6 @@
}, },
run(task){ run(task){
this.$message.success(`已成功执行计划任务:${task.title}`) this.$message.success(`已成功执行计划任务:${task.title}`)
},
saveForm(){
this.$refs.saveDialog.submit((formData) => {
console.log(formData)
this.$message.success("操作成功")
this.saveDialogVisible = false;
})
} }
} }
} }

View File

@ -1,33 +1,45 @@
<!-- <!--
* @Descripttion: 系统计划任务配置 * @Descripttion: 系统计划任务配置
* @version: 1.0 * @version: 1.1
* @Author: sakuya * @Author: sakuya
* @Date: 2021年7月7日09:28:32 * @Date: 2021年7月7日09:28:32
* @LastEditors: * @LastEditors: sakuya
* @LastEditTime: * @LastEditTime: 2021年7月8日22:15:13
--> -->
<template> <template>
<el-dialog :title="titleMap[mode]" v-model="visible" :width="400" destroy-on-close>
<el-form :model="form" :rules="rules" ref="dialogForm" label-width="100px" label-position="left"> <el-form :model="form" :rules="rules" ref="dialogForm" label-width="100px" label-position="left">
<el-form-item label="描述" prop="title"> <el-form-item label="描述" prop="title">
<el-input v-model="form.title" clearable></el-input> <el-input v-model="form.title" placeholder="计划任务标题" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="执行类" prop="handler"> <el-form-item label="执行类" prop="handler">
<el-input v-model="form.handler" clearable></el-input> <el-input v-model="form.handler" placeholder="计划任务执行类名称" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="定时规则" prop="cron"> <el-form-item label="定时规则" prop="cron">
<el-input v-model="form.cron" clearable></el-input> <el-input v-model="form.cron" placeholder="请输入Cron定时规则" clearable></el-input>
</el-form-item> </el-form-item>
<el-form-item label="状态" prop="state"> <el-form-item label="是否启用" prop="state">
<el-switch v-model="form.state" active-value="1" inactive-value="-1"></el-switch> <el-switch v-model="form.state" active-value="1" inactive-value="-1"></el-switch>
</el-form-item> </el-form-item>
</el-form> </el-form>
<template #footer>
<el-button @click="visible=false" > </el-button>
<el-button type="primary" :loading="isSaveing" @click="submit()"> </el-button>
</template>
</el-dialog>
</template> </template>
<script> <script>
export default { export default {
inject: ['list'],
data() { data() {
return { return {
mode: "add",
titleMap: {
add: '新增计划任务',
edit: '编辑计划任务'
},
form: { form: {
id:"", id:"",
title: "", title: "",
@ -45,20 +57,40 @@
cron:[ cron:[
{required: true, message: '请填写定时规则'} {required: true, message: '请填写定时规则'}
] ]
} },
visible: false,
isSaveing: false,
} }
}, },
mounted() { mounted() {
}, },
methods: { methods: {
//
show(mode='add'){
this.mode = mode;
this.visible = true;
this.form = this.$options.data().form
},
// //
submit(callback){ submit(){
this.$refs.dialogForm.validate((valid) => { this.$refs.dialogForm.validate((valid) => {
if (valid) { if (valid) {
callback(this.form) this.isSaveing = true;
}else{ setTimeout(()=>{
return false; this.isSaveing = false;
this.visible = false;
this.$message.success("操作成功")
if(this.mode == 'add'){
var newItem = {...this.form}
newItem.id = new Date().getTime()
this.list.push(newItem)
}else if(this.mode == 'edit'){
this.list.filter(item => item.id===this.form.id ).forEach(item => {
Object.assign(item, this.form)
})
}
},1000)
} }
}) })
}, },