TasklineForm.vue 5.09 KB
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="任务类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="type">
              <a-input-number v-model="model.type" placeholder="请输入任务类型" style="width: 100%" />
            </a-form-model-item>
          </a-col>
<!--          <a-col :span="24">-->
<!--            <a-form-model-item label="生成线路起始点" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="startLandmark">-->
<!--              <a-input-number v-model="model.startLandmark" placeholder="请输入生成线路起始点" style="width: 100%" />-->
<!--            </a-form-model-item>-->
<!--          </a-col>-->
          <a-col :span="24">
            <a-form-model-item label="生成线路起始动作" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-select-car-act placeholder="请选择生成线路起始动作" :multiple="false" v-model="model.startActId"/>
            </a-form-model-item>
          </a-col>
<!--          <a-col :span="24">-->
<!--            <a-form-model-item label="生成线路目标点" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="endLandmark">-->
<!--              <a-input-number v-model="model.endLandmark" placeholder="请输入生成线路目标点" style="width: 100%" />-->
<!--            </a-form-model-item>-->
<!--          </a-col>-->
          <a-col :span="24">
            <a-form-model-item label="生成线路目标动作" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-select-car-act placeholder="请选择生成线路目标动作" :multiple="false" v-model="model.endActId"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="静态路线选择" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-select-car-act placeholder="请依次选择动作" :multiple="true" v-model="model.actIds"/>
            </a-form-model-item>
          </a-col>
        </a-row>



      </a-form-model>
    </j-form-container>

  </a-spin>

</template>

<script>

  import '@/assets/less/TableExpand.less'
  import { httpAction, getAction } from '@/api/manage'


  export default {
    name: 'TasklineForm',
    components: {
    },
    props: {
      //表单禁用
      disabled: {
        type: Boolean,
        default: false,
        required: false
      }
    },
    data () {
      return {
        model:{
         },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules: {
          // startActId: [
          //   { required: true, message: '请选择起始动作!'},
          // ],
          // endActId: [
          //   { required: true, message: '请选择结束动作!'},
          // ],
        },


        innerData: [],
        expandedRowKeys: [],
        id: ' ',

        dictOptions:{},
        url: {
          add: "/taskLine/taskline/add",
          edit: "/taskLine/taskline/edit",
          queryById: "/taskLine/taskline/queryById",
        }
      }
    },
    computed: {
      formDisabled(){
        return this.disabled
      }
    },
    handleTableChange(){

    },
    created () {
       //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
      add () {
        this.edit(this.modelDefault);
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      submitForm () {
        const that = this;
        // 触发表单验证
        this.$refs.form.validate(valid => {
          if (valid) {
            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,this.model,method).then((res)=>{
              if(res.success){
                that.$message.success(res.message);
                that.$emit('ok');
              }else{
                that.$message.warning(res.message);
              }
            }).finally(() => {
              that.confirmLoading = false;
            })
          }
         
        })
      },
    }
  }
</script>
<style scoped>
  .ant-card-body .table-operator {
    margin-bottom: 18px;
  }

  .ant-table-tbody .ant-table-row td {
    padding-top: 15px;
    padding-bottom: 15px;
  }

  .anty-row-operator button {
    margin: 0 5px
  }

  .ant-btn-danger {
    background-color: #ffffff
  }

  .ant-modal-cust-warp {
    height: 100%
  }

  .ant-modal-cust-warp .ant-modal-body {
    height: calc(100% - 110px) !important;
    overflow-y: auto
  }

  .ant-modal-cust-warp .ant-modal-content {
    height: 90% !important;
    overflow-y: hidden
  }
</style>