|
@@ -0,0 +1,188 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div class="edu-training-edit">
|
|
|
|
|
+ <DialogCom :title="title" @close="onHide" :visible.sync="isShow" width="460px">
|
|
|
|
|
+ <div class="page-body">
|
|
|
|
|
+ <el-form :model="formData" :rules="formDataRules" size="small" ref="form" label-position="top"
|
|
|
|
|
+ label-width="150px" label-prefix=":">
|
|
|
|
|
+ <el-row>
|
|
|
|
|
+ <el-col :span="19">
|
|
|
|
|
+ <el-form-item prop="name" label="任务名称">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.name"
|
|
|
|
|
+ :maxlength="32"
|
|
|
|
|
+ placeholder="请输入任务名称"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ <el-row>
|
|
|
|
|
+ <el-col :span="19">
|
|
|
|
|
+ <el-form-item prop="beginTime" label="开始时间">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.beginTime"
|
|
|
|
|
+ :maxlength="8"
|
|
|
|
|
+ placeholder="请输入开始时间"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row>
|
|
|
|
|
+ <el-col :span="19">
|
|
|
|
|
+ <el-form-item prop="endTime" label="结束时间">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.endTime"
|
|
|
|
|
+ :maxlength="8"
|
|
|
|
|
+ placeholder="请输入结束时间"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row>
|
|
|
|
|
+ <el-col :span="19">
|
|
|
|
|
+ <el-form-item prop="cycle" label="诊断周期(小时)">
|
|
|
|
|
+ <el-input
|
|
|
|
|
+ v-model="formData.cycle"
|
|
|
|
|
+ :maxlength="32"
|
|
|
|
|
+ placeholder="请输入诊断周期"
|
|
|
|
|
+ clearable
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ <el-row>
|
|
|
|
|
+ <el-col :span="19" prop="enabled">
|
|
|
|
|
+ <el-form-item>
|
|
|
|
|
+ <el-radio-group v-model="formData.enabled">
|
|
|
|
|
+ <el-radio :label="1">启用</el-radio>
|
|
|
|
|
+ <el-radio :label="0">禁用</el-radio>
|
|
|
|
|
+ </el-radio-group>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
|
|
+ <el-button type="primary" @click="onSubmit">确 定</el-button>
|
|
|
|
|
+ <el-button @click="onHide">取 消</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </DialogCom>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script>
|
|
|
|
|
+import {mapMutations, mapState} from "vuex";
|
|
|
|
|
+import {addMission,editMission} from "@/api/iot/diagnoseMission";
|
|
|
|
|
+
|
|
|
|
|
+export default {
|
|
|
|
|
+ components: {},
|
|
|
|
|
+ data() {
|
|
|
|
|
+ const params = this.$route.params;
|
|
|
|
|
+ return {
|
|
|
|
|
+ missionId: params ? params.missionId : null,
|
|
|
|
|
+ isShow: false,
|
|
|
|
|
+ title: '',
|
|
|
|
|
+ formData: this.reset(),
|
|
|
|
|
+ isEdit: false,
|
|
|
|
|
+ formDataRules: {
|
|
|
|
|
+ name: [{required: true, message: "请输入任务名称", trigger: 'blur'}],
|
|
|
|
|
+ beginTime: [{required: true, message: "请输入开始时间", trigger: 'blur'}],
|
|
|
|
|
+ endTime: [{required: true, message: "请输入结束时间", trigger: 'blur'}],
|
|
|
|
|
+ cycle: [
|
|
|
|
|
+ {required: true, message: '请输入诊断周期', trigger: 'blur'},
|
|
|
|
|
+ {validator: this.validatePort, trigger: 'blur'}
|
|
|
|
|
+ ],
|
|
|
|
|
+ enabled: [{required: true, message: "请输入启用/禁用", trigger: 'blur'}]
|
|
|
|
|
+ },
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ props: {},
|
|
|
|
|
+ watch: {},
|
|
|
|
|
+ created() {
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ mounted() {
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ ...mapState(["loginUser", "org"]),
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ ...mapMutations([]),
|
|
|
|
|
+ reset(other = {}) {
|
|
|
|
|
+ return {
|
|
|
|
|
+ missionId: null,
|
|
|
|
|
+ name: null,
|
|
|
|
|
+ startTime: null,
|
|
|
|
|
+ endTime: null,
|
|
|
|
|
+ cycle: "",
|
|
|
|
|
+ enabled: 1,
|
|
|
|
|
+ ...other,
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ async show(formData) {
|
|
|
|
|
+ this.title = '新增任务';
|
|
|
|
|
+ this.isEdit=false;
|
|
|
|
|
+ if (formData.missionId){
|
|
|
|
|
+ this.formData = formData;
|
|
|
|
|
+ this.title = '编辑任务';
|
|
|
|
|
+ this.isEdit=true;
|
|
|
|
|
+ }
|
|
|
|
|
+ this.isShow = true;
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ // 事件
|
|
|
|
|
+ onHide() {
|
|
|
|
|
+ this.isShow = false;
|
|
|
|
|
+ this.formData = this.reset();
|
|
|
|
|
+ },
|
|
|
|
|
+ async onSubmit() {
|
|
|
|
|
+ this.$refs["form"].validate(async (valid) => {
|
|
|
|
|
+ if (valid) {
|
|
|
|
|
+ if (!this.formData.missionId) {
|
|
|
|
|
+ await addMission(this.formData).then(r => {
|
|
|
|
|
+ this.$modal.msgSuccess("新增成功");
|
|
|
|
|
+ })
|
|
|
|
|
+ } else {
|
|
|
|
|
+ await editMission(this.formData).then(r => {
|
|
|
|
|
+ this.$modal.msgSuccess("修改成功");
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ this.$emit("success");
|
|
|
|
|
+ this.isShow = false;
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ validatePort(rule, value, callback) {
|
|
|
|
|
+ if (!value) {
|
|
|
|
|
+ return callback(new Error('请输入诊断周期'));
|
|
|
|
|
+ }
|
|
|
|
|
+ const port = parseInt(value, 10);
|
|
|
|
|
+ if (isNaN(port)) {
|
|
|
|
|
+ callback(new Error('诊断周期必须是一个数字'));
|
|
|
|
|
+ } else if (port < 1 || port > 65535) {
|
|
|
|
|
+ callback(new Error('诊断周期必须在1到65535之间'));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ callback();
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+};
|
|
|
|
|
+</script>
|
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
|
+ .el-form-item{
|
|
|
|
|
+ justify-content:center;
|
|
|
|
|
+ align-items:center;
|
|
|
|
|
+ }
|
|
|
|
|
+</style>
|