feat: 风险管理页面完成
This commit is contained in:
parent
90036784db
commit
34835be268
|
@ -86,6 +86,39 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
checktaskset: {
|
||||||
|
list: {
|
||||||
|
name: "列表",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.get(
|
||||||
|
`${config.API_URL}/dpm/checktaskset/`,
|
||||||
|
data
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
create: {
|
||||||
|
name: "创建",
|
||||||
|
req: async function(data){
|
||||||
|
return await http.post(
|
||||||
|
`${config.API_URL}/dpm/checktaskset/`,
|
||||||
|
data);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
delete: {
|
||||||
|
name: "删除",
|
||||||
|
req: async function(id){
|
||||||
|
return await http.delete(
|
||||||
|
`${config.API_URL}/dpm/checktaskset/${id}/`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
toggle: {
|
||||||
|
name: "变更",
|
||||||
|
req: async function(id){
|
||||||
|
return await http.put(
|
||||||
|
`${config.API_URL}/dpm/checktaskset/${id}/toggle/`);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
checkwork: {
|
checkwork: {
|
||||||
list: {
|
list: {
|
||||||
name: "列表",
|
name: "列表",
|
||||||
|
|
|
@ -184,4 +184,4 @@ export const schedulePeriodEnum = new EnumFactory({
|
||||||
'minutes': '分钟',
|
'minutes': '分钟',
|
||||||
'hours': '小时',
|
'hours': '小时',
|
||||||
'days': '天',
|
'days': '天',
|
||||||
}, parseInt)
|
})
|
|
@ -20,15 +20,21 @@
|
||||||
width="80"
|
width="80"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="期限(h)"
|
label="限期(h)"
|
||||||
prop="expire"
|
prop="expire"
|
||||||
width="80"
|
width="80"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="启用"
|
label="启用"
|
||||||
prop="enabled"
|
|
||||||
width="50"
|
width="50"
|
||||||
></el-table-column>
|
><template #default="scope">
|
||||||
|
<el-icon v-if="scope.row.enabled" color="green"
|
||||||
|
><CircleCheckFilled
|
||||||
|
/></el-icon>
|
||||||
|
<el-icon v-else color="red"
|
||||||
|
><CircleCloseFilled
|
||||||
|
/></el-icon>
|
||||||
|
</template></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="派发次数"
|
label="派发次数"
|
||||||
prop="total_run_count"
|
prop="total_run_count"
|
||||||
|
@ -38,6 +44,40 @@
|
||||||
label="最近派发"
|
label="最近派发"
|
||||||
prop="last_run_at"
|
prop="last_run_at"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
|
<el-table-column label="操作" fixed="right" align="center" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-popconfirm
|
||||||
|
title="确定停用/启用吗?"
|
||||||
|
@confirm="table_toggle(scope.row, scope.$index)"
|
||||||
|
>
|
||||||
|
<template #reference>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
v-auth="'checktaskset.update'"
|
||||||
|
type="warning"
|
||||||
|
icon="el-icon-opportunity"
|
||||||
|
></el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
<el-popconfirm
|
||||||
|
title="确定删除吗?"
|
||||||
|
@confirm="table_del(scope.row, scope.$index)"
|
||||||
|
>
|
||||||
|
<template #reference>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
v-auth="'checktaskset.delete'"
|
||||||
|
type="danger"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
></el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</scTable>
|
</scTable>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -52,18 +92,27 @@ export default {
|
||||||
riskLevelEnum,
|
riskLevelEnum,
|
||||||
manageLevelEnum,
|
manageLevelEnum,
|
||||||
riskTypeEnum,
|
riskTypeEnum,
|
||||||
apiObj: this.$API.dpm.risk.list,
|
apiObj: this.$API.dpm.checktaskset.list,
|
||||||
params: { riskpoint: this.rpId },
|
params: { riskpoint: this.rpId },
|
||||||
query: {
|
query: {
|
||||||
search: "",
|
search: "",
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {},
|
methods: {
|
||||||
created() {},
|
handleQuery() {
|
||||||
mounted() {},
|
this.$refs.table.queryData(this.query);
|
||||||
computed: {},
|
},
|
||||||
watch: {},
|
table_del(row) {
|
||||||
components: {},
|
this.$API.dpm.checktaskset.delete.req(row.id).then(() => {
|
||||||
|
this.handleQuery();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
table_toggle(row) {
|
||||||
|
this.$API.dpm.checktaskset.toggle.req(row.id).then(res=>{
|
||||||
|
this.handleQuery();
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -9,11 +9,61 @@
|
||||||
hideDo
|
hideDo
|
||||||
style="height: 400px"
|
style="height: 400px"
|
||||||
>
|
>
|
||||||
|
<el-table-column
|
||||||
|
label="排序"
|
||||||
|
prop="sort"
|
||||||
|
width="50"
|
||||||
|
></el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="名称"
|
label="名称"
|
||||||
prop="name"
|
prop="name"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="等级"
|
||||||
|
prop="level"
|
||||||
|
width="100"
|
||||||
|
><template #default="scope"
|
||||||
|
><el-tag
|
||||||
|
:type="riskLevelEnum[scope.row.level]?.type"
|
||||||
|
>{{
|
||||||
|
riskLevelEnum[scope.row.level]?.text
|
||||||
|
}}</el-tag
|
||||||
|
>
|
||||||
|
</template></el-table-column>
|
||||||
|
<el-table-column
|
||||||
|
label="LECD值"
|
||||||
|
>
|
||||||
|
<template #default="scope">
|
||||||
|
{{scope.row.riskl}}*{{scope.row.riske}}*{{scope.row.riskc}}={{scope.row.riskd}}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" fixed="right" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
@click="table_edit(scope.row)"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
></el-button>
|
||||||
|
<el-popconfirm
|
||||||
|
title="确定删除吗?"
|
||||||
|
@confirm="
|
||||||
|
table_del(scope.row, scope.$index)
|
||||||
|
"
|
||||||
|
>
|
||||||
|
<template #reference>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
type="danger"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
></el-button>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</scTable>
|
</scTable>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
@ -33,11 +83,19 @@ export default {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {},
|
methods: {
|
||||||
created() {},
|
handleQuery() {
|
||||||
mounted() {},
|
this.$refs.table.queryData(this.query);
|
||||||
computed: {},
|
},
|
||||||
watch: {},
|
table_edit(row) {
|
||||||
components: {},
|
this.$emit("updateRisk", row);
|
||||||
|
},
|
||||||
|
table_del(row) {
|
||||||
|
this.$API.dpm.risk.delete.req(row.id).then(() => {
|
||||||
|
this.handleQuery();
|
||||||
|
this.$message.success("删除成功");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -0,0 +1,112 @@
|
||||||
|
<template>
|
||||||
|
<el-form>
|
||||||
|
<el-form :model="saveForm" label-width="120px" ref="saveForm">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="项目/步骤" required>
|
||||||
|
<el-input v-model="saveForm.name" type="textarea" :rows="1"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="检查标准">
|
||||||
|
<el-input v-model="saveForm.standard" type="textarea" :rows="2"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="危害因素">
|
||||||
|
<el-input v-model="saveForm.hazard_factors" type="textarea" :rows="2"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="可能后果">
|
||||||
|
<el-select v-model="saveForm.results" multiple>
|
||||||
|
<el-option v-for="item in resultOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="lecd判定" required>
|
||||||
|
<el-input-number :min="0" :precision="1" :step="0.1" controls-position="right" v-model="saveForm.riskl" placeholder="L值"/>
|
||||||
|
<el-input-number :min="0" :precision="1" :step="0.1" controls-position="right" v-model="saveForm.riske" placeholder="E值" style="margin-left: 2px"/>
|
||||||
|
<el-input-number :min="0" :precision="1" :step="0.1" controls-position="right" v-model="saveForm.riskc" placeholder="C值" style="margin-left: 2px"/>
|
||||||
|
<span style="margin-left: 6px">D值: <span v-if="saveForm.riskl*saveForm.riske*saveForm.riskc">{{saveForm.riskl*saveForm.riske*saveForm.riskc}}</span></span>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="排序" required>
|
||||||
|
<el-input-number :min="0" controls-position="right" v-model="saveForm.sort"/>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="12">
|
||||||
|
<el-form-item label="工程技术措施" required>
|
||||||
|
<el-input v-model="saveForm.measure_tech" type="textarea" :rows="2"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="管理措施" required>
|
||||||
|
<el-input v-model="saveForm.measure_manage" type="textarea" :rows="2"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="培训教育措施" required>
|
||||||
|
<el-input v-model="saveForm.measure_edu" type="textarea" :rows="2"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="个体防护措施" required>
|
||||||
|
<el-input v-model="saveForm.measure_protect" type="textarea" :rows="2"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="应急处置措施" required>
|
||||||
|
<el-input v-model="saveForm.measure_emer" type="textarea" :rows="2"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div style="display: flex; justify-content: flex-end; margin-top: 10px">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
:loading="formSaving"
|
||||||
|
@click="formSubmit()"
|
||||||
|
>保 存</el-button
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
const defaultForm = {};
|
||||||
|
export default {
|
||||||
|
props:{
|
||||||
|
riskpoint: {type: String, default: ""}
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
saveForm: Object.assign({"riskpoint": this.riskpoint}, defaultForm),
|
||||||
|
formSaving: false,
|
||||||
|
resultOptions:[],
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
this.getResultOptions();
|
||||||
|
},
|
||||||
|
methods:{
|
||||||
|
setData(data){
|
||||||
|
this.saveForm = data;
|
||||||
|
},
|
||||||
|
getResultOptions() {
|
||||||
|
this.$API.system.dict.list.req({page: 0, type__code: "accident_result"}).then(res=>{
|
||||||
|
this.resultOptions = res;
|
||||||
|
})
|
||||||
|
},
|
||||||
|
formSubmit(){
|
||||||
|
this.formSaving = true;
|
||||||
|
if (this.saveForm.id) {
|
||||||
|
this.$API.dpm.risk.update
|
||||||
|
.req(this.saveForm.id, this.saveForm)
|
||||||
|
.then((res) => {
|
||||||
|
this.formSaving = false;
|
||||||
|
this.$message.success("更新成功");
|
||||||
|
this.$emit("riskConfirm");
|
||||||
|
})
|
||||||
|
.catch((e) => {
|
||||||
|
this.formSaving = false;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.$API.dpm.risk.create
|
||||||
|
.req(this.saveForm)
|
||||||
|
.then((res) => {
|
||||||
|
this.formSaving = false;
|
||||||
|
this.$message.success("创建成功");
|
||||||
|
this.$emit("riskConfirm");
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.formSaving = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -174,11 +174,14 @@
|
||||||
</el-header>
|
</el-header>
|
||||||
<el-main class="nopadding">
|
<el-main class="nopadding">
|
||||||
<Risk
|
<Risk
|
||||||
|
ref="riskTable"
|
||||||
:rpId="rowData.id"
|
:rpId="rowData.id"
|
||||||
v-if="defaultX == '风险列表' && rowData.id"
|
v-if="defaultX == '风险列表' && rowData.id"
|
||||||
style="height: 100%"
|
style="height: 100%"
|
||||||
|
@updateRisk="updateRisk"
|
||||||
></Risk>
|
></Risk>
|
||||||
<CheckTaskSet
|
<CheckTaskSet
|
||||||
|
ref="checktasksetTable"
|
||||||
:rpId="rowData.id"
|
:rpId="rowData.id"
|
||||||
v-if="defaultX == '排查任务配置' && rowData.id"
|
v-if="defaultX == '排查任务配置' && rowData.id"
|
||||||
style="height: 100%"
|
style="height: 100%"
|
||||||
|
@ -330,7 +333,10 @@
|
||||||
/>
|
/>
|
||||||
</span>
|
</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="排查备注" prop="note" required>
|
<el-form-item label="有效期(h)" prop="expire">
|
||||||
|
<el-input-number :min="0" controls-position="right" v-model="saveForm2.expire"/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="排查备注" prop="note">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="saveForm2.note"
|
v-model="saveForm2.note"
|
||||||
clearable
|
clearable
|
||||||
|
@ -348,7 +354,10 @@
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog v-model="choseMyScheduleDialog" title="选择策略">
|
<el-dialog v-model="choseMyScheduleDialog" title="选择策略">
|
||||||
<MySchedule></MySchedule>
|
<MySchedule @scheduleChose="scheduleChose"></MySchedule>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog v-model="riskDialog" title="新增/编辑" width="90%">
|
||||||
|
<RiskForm ref="riskForm" :riskpoint="rowData.id" @riskConfirm="riskConfirm"></RiskForm>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</el-container>
|
</el-container>
|
||||||
</template>
|
</template>
|
||||||
|
@ -357,9 +366,10 @@ import { riskLevelEnum, manageLevelEnum, riskTypeEnum } from "@/utils/enum.js";
|
||||||
import Risk from "./risk.vue";
|
import Risk from "./risk.vue";
|
||||||
import CheckTaskSet from "./checktaskset.vue";
|
import CheckTaskSet from "./checktaskset.vue";
|
||||||
import MySchedule from "@/views/sys/myschedule.vue";
|
import MySchedule from "@/views/sys/myschedule.vue";
|
||||||
|
import RiskForm from "./risk_form.vue";
|
||||||
const defaultForm = {};
|
const defaultForm = {};
|
||||||
export default {
|
export default {
|
||||||
components: { Risk, CheckTaskSet, MySchedule},
|
components: { Risk, CheckTaskSet, MySchedule, RiskForm},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
riskTypeEnum,
|
riskTypeEnum,
|
||||||
|
@ -368,13 +378,14 @@ export default {
|
||||||
formSaving: false,
|
formSaving: false,
|
||||||
saveDialog: false,
|
saveDialog: false,
|
||||||
saveDialog2: false,
|
saveDialog2: false,
|
||||||
|
riskDialog: false,
|
||||||
choseMyScheduleDialog: false,
|
choseMyScheduleDialog: false,
|
||||||
query: {
|
query: {
|
||||||
search: "",
|
search: "",
|
||||||
},
|
},
|
||||||
apiObj: this.$API.dpm.riskpoint.list,
|
apiObj: this.$API.dpm.riskpoint.list,
|
||||||
saveForm: Object.assign({}, defaultForm),
|
saveForm: Object.assign({}, defaultForm),
|
||||||
saveForm2: {},
|
saveForm2: {"expire": 0},
|
||||||
deptOptions: [],
|
deptOptions: [],
|
||||||
rowData: {},
|
rowData: {},
|
||||||
xoptions: ["风险列表", "排查任务配置"],
|
xoptions: ["风险列表", "排查任务配置"],
|
||||||
|
@ -386,8 +397,27 @@ export default {
|
||||||
this.getAreaOptions();
|
this.getAreaOptions();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
updateRisk(row) {
|
||||||
|
this.riskDialog = true;
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$refs.riskForm.setData(row);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
riskConfirm(){
|
||||||
|
this.riskDialog = false;
|
||||||
|
this.$refs.riskTable.handleQuery();
|
||||||
|
},
|
||||||
|
risk_add() {
|
||||||
|
this.riskDialog = true;
|
||||||
|
},
|
||||||
|
scheduleChose(item){
|
||||||
|
this.saveForm2.myschedule = item.id;
|
||||||
|
this.saveForm2.myschedule_name = item.name;
|
||||||
|
this.choseMyScheduleDialog = false;
|
||||||
|
},
|
||||||
checktaskset_add() {
|
checktaskset_add() {
|
||||||
this.saveDialog2 = true;
|
this.saveDialog2 = true;
|
||||||
|
this.saveForm2 = {"expire": 0};
|
||||||
},
|
},
|
||||||
rowClick(row) {
|
rowClick(row) {
|
||||||
this.rowData = row;
|
this.rowData = row;
|
||||||
|
@ -426,7 +456,27 @@ export default {
|
||||||
this.handleQuery();
|
this.handleQuery();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
formSubmit2() {
|
||||||
|
this.$refs.saveForm2.validate((valid)=>{
|
||||||
|
if(valid){
|
||||||
|
this.formSaving = true;
|
||||||
|
this.$API.dpm.checktaskset.create
|
||||||
|
.req(this.saveForm2)
|
||||||
|
.then((res) => {
|
||||||
|
this.formSaving = false;
|
||||||
|
this.$message.success("创建成功");
|
||||||
|
this.$refs.checktasksetTable.handleQuery();
|
||||||
|
})
|
||||||
|
.catch((err) => {
|
||||||
|
this.formSaving = false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
},
|
||||||
formSubmit() {
|
formSubmit() {
|
||||||
|
this.$refs.saveForm.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
this.formSaving = true;
|
this.formSaving = true;
|
||||||
if (this.saveForm.id) {
|
if (this.saveForm.id) {
|
||||||
this.$API.dpm.riskpoint.update
|
this.$API.dpm.riskpoint.update
|
||||||
|
@ -452,7 +502,8 @@ export default {
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
this.formSaving = false;
|
this.formSaving = false;
|
||||||
});
|
});
|
||||||
}
|
}}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,22 +14,53 @@
|
||||||
hidePagination
|
hidePagination
|
||||||
hideDo
|
hideDo
|
||||||
style="height: 400px"
|
style="height: 400px"
|
||||||
|
@row-click="rowClick"
|
||||||
>
|
>
|
||||||
<el-table-column label="类型" prop="name" width="80"></el-table-column>
|
<el-table-column label="类型" prop="name" width="80">
|
||||||
|
<template #default="scope"
|
||||||
|
>{{ scheduleTypeEnum[scope.row.type]?.text }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
<el-table-column
|
<el-table-column
|
||||||
label="名称"
|
label="名称"
|
||||||
prop="name"
|
prop="name"
|
||||||
min-width="100"
|
min-width="100"
|
||||||
></el-table-column>
|
></el-table-column>
|
||||||
|
<el-table-column label="操作" fixed="right" align="center" width="80">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-popconfirm
|
||||||
|
title="确定删除吗?"
|
||||||
|
@confirm="table_del(scope.row, scope.$index)"
|
||||||
|
>
|
||||||
|
<template #reference>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
size="small"
|
||||||
|
v-auth="'myschedule.delete'"
|
||||||
|
type="danger"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
></el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
|
</el-popconfirm>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
</scTable>
|
</scTable>
|
||||||
<el-dialog title="创建/编辑" v-model="dialogVisible" width="80%">
|
<el-dialog title="创建/编辑" v-model="dialogVisible" width="80%">
|
||||||
<el-form-item label="策略类型" prop="note" required>
|
<el-form :model="saveForm" label-width="100px" ref="saveForm">
|
||||||
<el-select
|
<el-form-item label="策略类型" required>
|
||||||
v-model="saveForm.type"
|
<el-select v-model="saveForm.type">
|
||||||
>
|
<el-option
|
||||||
|
v-for="e in scheduleTypeEnum.values"
|
||||||
|
:key="e.key"
|
||||||
|
:value="e.key"
|
||||||
|
:label="e.text"
|
||||||
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="策略式" required>
|
<el-divider />
|
||||||
|
<el-form-item label="策略式" required v-if="saveForm.type == 10">
|
||||||
|
<div style="display: flex">
|
||||||
每隔
|
每隔
|
||||||
<el-input-number
|
<el-input-number
|
||||||
v-model="saveForm.interval_.every"
|
v-model="saveForm.interval_.every"
|
||||||
|
@ -38,6 +69,8 @@
|
||||||
></el-input-number>
|
></el-input-number>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="saveForm.interval_.period"
|
v-model="saveForm.interval_.period"
|
||||||
|
style="width: 200px; margin-left: 4px"
|
||||||
|
placeholder="间隔"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="e in schedulePeriodEnum.values"
|
v-for="e in schedulePeriodEnum.values"
|
||||||
|
@ -46,40 +79,111 @@
|
||||||
:label="e.text"
|
:label="e.text"
|
||||||
></el-option>
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="策略式" required v-if="saveForm.type == 20">
|
||||||
|
<div style="width: 100%">
|
||||||
|
<div style="display: flex">
|
||||||
|
<span style="margin-right: 4px; width: 100px">分钟</span
|
||||||
|
><el-input
|
||||||
|
v-model="saveForm.crontab_.minute"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; margin-top: 4px">
|
||||||
|
<span style="margin-right: 4px; width: 100px">小时</span
|
||||||
|
><el-input v-model="saveForm.crontab_.hour"></el-input>
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; margin-top: 4px">
|
||||||
|
<span style="margin-right: 4px; width: 100px"
|
||||||
|
>每周的天</span
|
||||||
|
><el-input
|
||||||
|
v-model="saveForm.crontab_.day_of_week"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; margin-top: 4px">
|
||||||
|
<span style="margin-right: 4px; width: 100px"
|
||||||
|
>每月的天</span
|
||||||
|
><el-input
|
||||||
|
v-model="saveForm.crontab_.day_of_month"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
<div style="display: flex; margin-top: 4px">
|
||||||
|
<span style="margin-right: 4px; width: 100px"
|
||||||
|
>每年的月</span
|
||||||
|
><el-input
|
||||||
|
v-model="saveForm.crontab_.month_of_year"
|
||||||
|
></el-input>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<template #footer>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
:loading="formSaving"
|
||||||
|
@click="formSubmit()"
|
||||||
|
>保 存</el-button
|
||||||
|
>
|
||||||
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { scheduleTypeEnum, schedulePeriodEnum } from "@/utils/enum.js";
|
import { scheduleTypeEnum, schedulePeriodEnum } from "@/utils/enum.js";
|
||||||
const defaultForm = {
|
const defaultForm = {
|
||||||
interval_: {},
|
interval_: {},
|
||||||
crontab_: {}
|
crontab_: {},
|
||||||
}
|
};
|
||||||
export default {
|
export default {
|
||||||
name: "myschedule",
|
name: "myschedule",
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
schedulePeriodEnum, scheduleTypeEnum,
|
schedulePeriodEnum,
|
||||||
|
scheduleTypeEnum,
|
||||||
|
formSaving: false,
|
||||||
dialogVisible: false,
|
dialogVisible: false,
|
||||||
apiObj: this.$API.system.myschedule.list,
|
apiObj: this.$API.system.myschedule.list,
|
||||||
query: {
|
query: {
|
||||||
search: "",
|
search: "",
|
||||||
},
|
},
|
||||||
saveForm: Object.assign({}, defaultForm)
|
params: {},
|
||||||
|
saveForm: Object.assign({}, defaultForm),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
rowClick(item) {
|
||||||
|
console.log(item)
|
||||||
|
this.$emit("scheduleChose", item);
|
||||||
|
},
|
||||||
|
handleQuery() {
|
||||||
|
this.$refs.table.queryData(this.query);
|
||||||
|
},
|
||||||
table_add() {
|
table_add() {
|
||||||
this.dialogVisible = true;
|
this.dialogVisible = true;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.saveForm = Object.assign({}, defaultForm)
|
this.saveForm = Object.assign({}, defaultForm);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
table_del(row) {
|
||||||
|
this.$API.system.myschedule.delete.req(row.id).then(() => {
|
||||||
|
this.$message.success("操作成功");
|
||||||
|
this.handleQuery();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
formSubmit() {
|
||||||
|
this.formSaving = true;
|
||||||
|
this.$refs.saveForm.validate((valid) => {
|
||||||
|
if (valid) {
|
||||||
|
this.$API.system.myschedule.create
|
||||||
|
.req(this.saveForm)
|
||||||
|
.then(() => {
|
||||||
|
this.handleQuery();
|
||||||
|
this.dialogVisible = false;
|
||||||
|
this.$message.success("操作成功");
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
this.formSaving = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
},
|
},
|
||||||
created() {},
|
|
||||||
mounted() {},
|
|
||||||
computed: {},
|
|
||||||
watch: {},
|
|
||||||
components: {},
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Reference in New Issue