CostForm.vue 5.14 KB
<template>
  <a-modal
    :width="modalWidth"
    :style="modalStyle"
    :visible="visible"
    :confirmLoading="confirmLoading"
    :maskClosable="false"
    @cancel="handleCancel">
    <template slot="footer">
      <a-button @click="handleCancel">关闭</a-button>
    </template>
    <a-spin :spinning="confirmLoading">
    <a-form :form="form" >
        <a-row>
          <a-col :span="24">
            <a-form-item label="工作令" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <a-input v-decorator="['field0056']"></a-input>
            </a-form-item>
          </a-col>

          <a-col :span="24">
            <a-form-item label="核算类型" :labelCol="labelCol" :wrapperCol="wrapperCol">
              <j-search-select-tag v-model="accountingType" v-decorator="['accountingType']"   :dictOptions="searchOptions">
              </j-search-select-tag>
            </a-form-item>
          </a-col>

          <a-col :span="24">

            <span style="margin-left: 100px;">备份此此核算结果:<a-switch v-model="backup"/></span>
          </a-col>

          <a-col  :span="24" style="text-align: center" class="table-page-search-submitButtons">
            <a-button type="primary" @click="submitForm" icon="check-circle">提 交</a-button>
          </a-col>
        </a-row>

    </a-form>
    </a-spin>
  </a-modal>
</template>

<script>

import { httpAction} from '@/api/manage'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import pick from 'lodash.pick'
import { getPriceMonth,costCalcuate} from "../../../api/api";


export default {
  name: 'CostForm',
  mixins:[JeecgListMixin],
  components: {
  },
  props: {
    //流程表单data
    formData: {
      type: Object,
      default: ()=>{},
      required: false
    },
    //表单模式:true流程表单 false普通表单
    formBpm: {
      type: Boolean,
      default: false,
      required: false
    },
    //表单禁用
    disabled: {
      type: Boolean,
      default: false,
      required: false
    }
  },
  data () {
    return {
      visible: false,
      modalWidth: '50%',
      accountingMonth: '',
      backup:false,
      accountingType: '',
      modalStyle: { 'top': '20px'},
      form: this.$form.createForm(this),
      model: {},
      barcode:'',
      remark:'',
      pno:'',
      month:'',
      field0057:'',
      field0054:'',
      field0055:'',
      bomIdList:[],
      field0056:'',
      flag:false,
      flag2:false,
      searchOptions:[{
        text:"价格",
        value:"1"
      },{
        text:"重量",
        value:"2"
      },{
        text:"工时",
        value:"3"
      },{
        text:"全部",
        value:"0"
      }],
      workno:'',
      labelCol: {
        xs: { span: 24 },
        sm: { span: 5 },
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 16 },
      },
      confirmLoading: false,
      validatorRules: {
      },
      url: {
        list:"1",
        add: "/pbom_type/pbomType/add",
        edit: "/pbom_type/pbomType/edit",
        queryById: "/pbom_type/pbomType/queryById"
      }
    }
  },
  computed: {
    formDisabled(){
      if(this.formBpm===true){
        if(this.formData.disabled===false){
          return false
        }
        return true
      }
      return this.disabled
    },
    showFlowSubmitButton(){
      if(this.formBpm===true){
        if(this.formData.disabled===false){
          return true
        }
      }
      return false
    },

  },
  created () {
    //如果是流程中表单,则需要加载流程表单data
    this.showFlowData();
  },
  methods: {
    add () {
      this.edit({});
    },
    edit (record) {
      this.visible=true;
      this.form.resetFields();
      this.model = Object.assign({}, record);
      this.field0054=record.field0054
      this.field0057=record.field0057
      this.field0055=record.field0055
      this.field0056=record.field0056
      this.visible = true;
      this.$nextTick(() => {
        this.form.setFieldsValue(pick(this.model,'field0056'))

      })
      let params = {
        'workno': record.field0056
      }
      getPriceMonth(params).then((res) => {
        if (res.success) {
          this.bomIdList = res.result
        }
      })
    },
    handleCancel(){
      this.visible = false
    },

    submitForm () {
      const that = this;
      // 触发表单验证
      this.form.validateFields((err, values) => {
        if (!err) {
          if(this.accountingType == null || this.accountingType == ""){
            this.$message.error("请先选择核算类型!");
            return false;
          }
          this.$message.info("开始后台计算成本,计算完成会发送系统通知!!")
          let params = {
            'accountingType': this.accountingType,
            'workno': this.field0056,
            'uuids': this.field0057 + ',' + this.field0054 + ',' + this.field0055,
            'flag':this.backup
          }

          const that = this;
          let obj = costCalcuate(params);
          obj.then((res) => {
            that.workContent = res;
          })


        }
      })
    },
    popupCallback(row){
      this.form.setFieldsValue(pick(row,'cno','uuid','barcode','code'))
    },
  }
}
</script>