process.vue 4.37 KB
/**
* @Description:
* @author wx
* @date 2021/01/24
*/
<template>
  <div class="add-page">
    <div class="full-border-content">
      <div class="sub-title">{{ type }}工艺</div>
      <dee-form
        v-if="type==='新建'"
        :form="addData"
        :form-data="typeFormData"
        :border="configDetails&&configDetails.base&&configDetails.base.borderShow"
        :label-width="configDetails&&configDetails.base&&configDetails.base.labelWidth"
      />
      <dee-static-cmp
        v-if="(type==='新建' && addData && addData.subTypeName) || type==='编辑'"
        ref="form"
        :basic-data="{id:itemId,subTypeName:subTypeName}"
        :cmp-options="{
          typeName:subTypeName,
          value:layoutType
        }"
        :model-name="modelName"
        :on-form-event-hander="onFormEventHander"
      />
    </div>
  </div>
</template>

<script>
import { showMessage } from '@/utils/util'
import { addProcessPlan } from '@/api/craft'

export default {
  data() {
    const that = this
    return {
      typeFormData: [
        {
          title: '',
          split: 3,
          data: [
            { key: 'subTypeName',
              title: '类型',
              component: {
                name: 'modelTypeSelect',
                size: 'medium',
                params: 'DxProcessPlan',
                clearable: true
              }
            }
          ]
        }
      ],
      addData: {},
      typeName: 'DxProcessPlan',
      configDetails: {
        formData: []
      },
      docTypes: [],
      referenceObjectTable: [],
      affectedObjectTable: [],
      dialogTitle: '',
      onFormEventHander: {
        'on-submit': () => {
          that.addData = that.$refs['form'].propForm
          that.submitFun()
        },
        'on-cancel': () => {
          that.cancelFun()
        }
      },
      subTypeName: this.$route.query.subTypeName

    }
  },
  computed: {
    dxService() {
      if (!this.modelName) {
        return null
      }
      return this.$getService(this.modelName)
    },
    itemId() {
      return this.$route.query.id
    },
    modelName() {
      return this.$route.query.modelName
    },
    type() {
      return this.$route.name === 'processEdit' ? '编辑' : '新建'
    },
    layoutType() {
      return this.$route.name === 'processEdit' ? 'defaultEdit' : 'defaultCreate'
    }
  },
  watch: {
    'addData.subTypeName'(val) {
      this.subTypeName = val
    }
  },
  created() {},
  mounted() {

  },
  methods: {
    getBaseInfo() {
      if (!this.dxService) {
        return
      }
    },
    // getChangeObjectData() {
    //   const list = ['objFileLinks']
    //   getItem(this.modelName, this.itemId, list).then(res => {
    //     list.forEach(item => {
    //       this.addData[item] = clearProp('source', res[item]).map(item => {
    //         this.$set(item, 'show', true)
    //         this.$set(item, 'bindNumberField', 'target.number')
    //         return item
    //       })
    //     })
    //   })
    // },
    submitFun() {
      this.$set(this.addData, 'subTypeName', this.subTypeName)
      this.$set(this.addData, 'id', this.itemId)
      const params = JSON.parse(JSON.stringify(this.addData))
      if (this.addData.id) {
        this.addData.operator = 'MODIFY'
      } else {
        this.addData.operator = 'ADD'
      }
      if (params.targetDxPartPlanLink) {
        params.targetDxPartPlanLink = params.targetDxPartPlanLink.map(m => {
          const _m = {
            operator: m.operator,
            source: {
              id: m.source.id,
              operator: m.source.operator || 'NO_CHANGE'
            }
          }
          if (m.id) {
            _m.id = m.id
          }
          return _m
        })
      }
      addProcessPlan(this.$route.query.modelName, params).then(res => {
        showMessage('操作成功!', 'success')
        this.cancelFun(true, res.items)
      })
    },
    cancelFun(isRef = false, items) {
      this.$store.dispatch('tagsView/delVisitedView', { path: this.type === '编辑' ? '/craft/processEdit' : '/craft/processAdd' })
      if (isRef) {
        this.$router.push({ path: '/dee-craft/craft/index', params: { items: items, type: this.type }})
      } else {
        this.$router.push({ path: '/dee-craft/craft/index' })
      }
    }
  }
}

</script>
<style lang='scss'>
.add-page{
  height: 100%;
  box-sizing: border-box;
}
.full-border-content{
  overflow: auto;
}
</style>