Lius
2 天以前 ebdee541df438f35ae291bf136c91afc2c1fffae
src/views/eam/dispose/modules/EamEquipmentTransferModal.vue
@@ -3,63 +3,53 @@
    :title="title"
    :width="800"
    :visible="visible"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="删除标记">
          <a-input-number v-model="model.delFlag"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code" label="单据号">
          <a-input placeholder="请输入单据号" v-model="model.code" />
          <a-input placeholder="编码系统自动生成" v-model="model.code"  disabled/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="设备ID">
          <a-input placeholder="请输入设备ID" v-model="model.equipmentId" />
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="调出设备">
          <lx-search-equipment-select placeholder="请输入设备编号或名称搜索"
                                      v-model="model.equipmentId"  :disabled="disableSubmit"></lx-search-equipment-select>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="oldDepartId" label="调出部门">
          <a-input placeholder="请输入调出部门" v-model="model.oldDepartId" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="newDepartId" label="调入部门">
          <a-input placeholder="请输入调入部门" v-model="model.newDepartId" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportUser" label="申请人">
          <a-input placeholder="请输入申请人" v-model="model.reportUser" />
        </a-form-model-item>
          <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="newDepartId" label="调入车间">
            <a-tree-select v-model="model.newDepartId"
                           style="width: 100%"
                           :tree-data="treeDataAlias"
                           :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
                           placeholder="请选择调入车间"
                           allow-clear
                           tree-default-expand-all
                           :disabled="disableSubmit"
            >
            </a-tree-select>
          </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="transferReason" label="变动原因">
          <a-input placeholder="请输入变动原因" v-model="model.transferReason" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="transferStatus" label="变动状态">
          <a-input placeholder="请输入变动状态" v-model="model.transferStatus" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="transferTime" label="变动日期">
          <a-input placeholder="请输入变动日期" v-model="model.transferTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalUser" label="审核人">
          <a-input placeholder="请输入审核人" v-model="model.approvalUser" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalTime" label="审核时间">
          <a-input placeholder="请输入审核时间" v-model="model.approvalTime" />
          <a-input placeholder="请输入变动原因" v-model="model.transferReason"  :disabled="disableSubmit"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark" label="备注">
          <a-input placeholder="请输入备注" v-model="model.remark" />
          <a-textarea placeholder="请输入备注" v-model="model.remark"  :disabled="disableSubmit"/>
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { httpAction } from '@/api/manage'
  import moment from "moment"
  import { httpAction,getAction } from '@/api/manage'
  import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
  export default {
    name: "EamEquipmentTransferModal",
    components: { LxSearchEquipmentSelect },
    data () {
      return {
        title:"操作",
@@ -73,22 +63,55 @@
          xs: { span: 24 },
          sm: { span: 16 },
        },
        labelColLong: {
          xs: { span: 24 },
          sm: { span: 4 }
        },
        wrapperColLong: {
          xs: { span: 24 },
          sm: { span: 18 }
        },
        disableSubmit: false,
        treeData: [],
        treeDataAlias: [],
        confirmLoading: false,
        validatorRules:{
          newDepartId: [
            { required: true, message: '请选择调入车间' }
          ],
          equipmentId: [
            { required: true, message: '请选择设备!' }
          ],
          transferReason: [
            { required: true, message: '请输入变动原因!' }
          ],
        },
        url: {
          add: "/eam/eamEquipmentTransfer/add",
          edit: "/eam/eamEquipmentTransfer/edit",
          loadProductionOptions:'/mdc/mdcProduction/loadProductionTreeOptions',
        },
      }
    },
    created () {
      this.loadAllProductionTree();
    },
    methods: {
      loadAllProductionTree() {
        //加载车间选择树
        getAction(this.url.loadProductionOptions).then(res => {
          if (res.success) {
            this.treeData = [...res.result]
            this.treeDataAlias = this.deepCopyAndModify(res.result)
          }else {
            that.$message.warning(res.message)
          }
        })
      },
      add () {
        //初始化默认值
        this.edit({});
        this.visible = true;
      },
      edit (record) {
        this.model = Object.assign({}, record);
@@ -133,7 +156,37 @@
      handleCancel () {
        this.close()
      },
      deepCopyAndModify(arr) {
        // 如果当前元素不是数组或对象,直接返回
        if (!Array.isArray(arr) && typeof arr !== 'object' || arr === null || arr.length === 0) {
          return arr;
        }
        // 如果是数组,创建一个新数组并递归处理每个元素
        if (Array.isArray(arr)) {
          const newArray = [];
          for (let i = 0; i < arr.length; i++) {
            newArray.push(this.deepCopyAndModify(arr[i]));
          }
          return newArray;
        }
        // 如果是对象,创建一个新对象并递归处理每个属性
        const newObj = {};
        for (const key in arr) {
          if (arr.hasOwnProperty(key)) {
            if(key === 'selectable') {
              newObj[key] = true;
            } else if(key === 'children') {
              newObj[key] = this.deepCopyAndModify(arr[key]);
            }else {
              newObj[key] = arr[key];
            }
          }
        }
        return newObj;
      }
    }
  }