cuilei
5 小时以前 62387ac17667ce7a0f6d700172fc4f800353fe38
排产工单模块工艺点检功能页面
已添加1个文件
已修改2个文件
245 ■■■■■ 文件已修改
src/views/eam/base/modules/EamProcessParametersModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mes/MesProductionWorkOrderListView.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/mes/modules/MesProductionWorkOrderProcessCheckModal.vue 233 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/EamProcessParametersModal.vue
@@ -18,7 +18,7 @@
          <a-input placeholder="请输入参数名称" v-model="model.parameterName" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="parameterCategory" label="参数分类">
          <j-dict-select-tag dict-code="process_parameters_categorys" placeholder="请选择参数分类" v-model="model.parameterCategory" />
          <j-dict-select-tag dict-code="process_parameters_category" placeholder="请选择参数分类" v-model="model.parameterCategory" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="parameterUnit" label="计量单位">
          <a-input placeholder="请输入计量单位" v-model="model.parameterUnit" />
src/views/mes/MesProductionWorkOrderListView.vue
@@ -113,7 +113,7 @@
            </span>
            <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '1' && record.equipmentInspectionFlag === '1' && record.processInspectionFlag === '0'">
              <a-divider type="vertical" />
              <a @click="handleCompletenessCheck(record)">工艺点检</a>
              <a @click="handleProcessCheck(record)">工艺点检</a>
            </span>
            <span v-if="record.workOrderStatus === 'PUBLISHED' && record.completenessCheckFlag === '1' && record.equipmentInspectionFlag === '1' && record.processInspectionFlag === '1'">
              <a-divider type="vertical" />
@@ -196,6 +196,7 @@
    <MesProductionWorkOrderReportModal ref="MesProductionWorkOrderReportModal" @ok="modalFormOk"></MesProductionWorkOrderReportModal>
    <MesProductionWorkOrderCompletenessCheckModal ref="MesProductionWorkOrderCompletenessCheckModal" @ok="modalFormOk"></MesProductionWorkOrderCompletenessCheckModal>
    <MesProductionWorkOrderEquipmentInspectionModal ref="MesProductionWorkOrderEquipmentInspectionModal" @ok="modalFormOk"></MesProductionWorkOrderEquipmentInspectionModal>
    <MesProductionWorkOrderProcessCheckModal ref="MesProductionWorkOrderProcessCheckModal" @ok="modalFormOk"></MesProductionWorkOrderProcessCheckModal>
  </a-card>
</template>
@@ -214,6 +215,7 @@
import MesProductionWorkOrderReportModal from '@views/mes/modules/MesProductionWorkOrderReportModal.vue'
import MesProductionWorkOrderCompletenessCheckModal from '@views/mes/modules/MesProductionWorkOrderCompletenessCheckModal.vue'
import MesProductionWorkOrderEquipmentInspectionModal from '@views/mes/modules/MesProductionWorkOrderEquipmentInspectionModal.vue'
import MesProductionWorkOrderProcessCheckModal from '@views/mes/modules/MesProductionWorkOrderProcessCheckModal.vue'
import JSelectFactory from '@comp/jeecgbiz/JSelectFactory.vue'
import moment from 'moment/moment'
@@ -229,7 +231,8 @@
    MesProductionWorkOrderRepublishModal,
    MesProductionWorkOrderReportModal,
    MesProductionWorkOrderCompletenessCheckModal,
    MesProductionWorkOrderEquipmentInspectionModal
    MesProductionWorkOrderEquipmentInspectionModal,
    MesProductionWorkOrderProcessCheckModal
  },
  data() {
    return {
@@ -651,6 +654,9 @@
    handleEquipmentInspection(record) {
      this.$refs.MesProductionWorkOrderEquipmentInspectionModal.inspect(record)
    },
    handleProcessCheck(record) {
      this.$refs.MesProductionWorkOrderProcessCheckModal.inspect(record)
    },
    async handleUnLoadingDetail(row){
      console.log('row---->',row)
      const unloadingResult = await getAction(this.url.queryUnloadingByLoadingId,{'loadingId':row.id})
src/views/mes/modules/MesProductionWorkOrderProcessCheckModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,233 @@
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="spinning">
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
        <a-row :gutter="24">
          <a-col :span="8">
            <a-form-model-item prop="equipmentId" label="设备编号">
              <a-select placeholder="请选择设备" v-model="model.equipmentId" :options="processCheckEquipmentOptions" @change="handleEquipmentChange"></a-select>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <vxe-table
            ref="table"
            border
            show-overflow
            show-header-overflow
            :scroll-x="{enabled: true}"
            :data="dataSource"
            :edit-config="{trigger: 'click', mode: 'cell'}"
            :edit-rules="editRules"
          >
            <vxe-table-column title="序号" type="seq" width="50" align="center"></vxe-table-column>
            <vxe-table-column title="参数编码" field="parameterCode" align="center"></vxe-table-column>
            <vxe-table-column title="参数名称" field="parameterName" align="center"></vxe-table-column>
            <vxe-table-column title="参数分类" field="parameterCategory" align="center">
              <template #default="{ row }">
                <span v-if="row.parameterCategory">{{ parameterCategoryDict[row.parameterCategory] }}</span>
              </template>
            </vxe-table-column>
            <vxe-table-column title="计量单位" field="parameterUnit" align="center"></vxe-table-column>
            <vxe-table-column title="参数范围" field="parameterPeriod" align="center"></vxe-table-column>
            <vxe-table-column title="点检结果" field="checkResult" align="center"
                              :edit-render="{name: '$select', options: checkResultOptions, events: {change: handleCheckResultChange}}">
              <template #default="{ row }">
                <span v-if="row.checkResult">{{ row.checkResultLabel }}</span>
                <span v-else class="placeholder-text">请选择点检结果</span>
              </template>
            </vxe-table-column>
            <vxe-table-column title="异常描述" field="exceptionDescription" align="center"
                              :edit-render="{name: '$input', placeholder: '请输入异常描述'}">
              <template #default="{ row }">
                <span v-if="row.checkResult === '2' && !row.exceptionDescription" class="placeholder-text">请输入异常描述</span>
                <span v-else-if="row.exceptionDescription">{{ row.exceptionDescription }}</span>
              </template>
              <template #edit="{ row }">
                <vxe-input v-if="row.checkResult === '2'" v-model="row.exceptionDescription" placeholder="请输入异常描述" />
              </template>
            </vxe-table-column>
          </vxe-table>
        </a-row>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
import { postAction, getAction, putAction } from '@api/manage'
import { ajaxGetDictItems } from '@api/api'
export default {
  name: 'MesProductionWorkOrderProcessCheckModal',
  data () {
    return {
      title: '设备点检',
      width: 1200,
      visible: false,
      loading: false,
      disableSubmit: false,
      model: {},
      spinning: false,
      validatorRules: {
      },
      labelCol: {
        xs: { span: 24 },
        sm: { span: 6 },
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 18 },
      },
      checkResultOptions: [
        {
          label: '正常',
          value: '1'
        },
        {
          label: '异常',
          value: '2'
        }
      ],
      parameterCategoryDict: {},
      dataSource: [],
      editRules: {
        checkResult: [
          { required: true, message: '检查结果必须选择' }
        ],
        exceptionDescription: [
          {
            required: true,
            message: '异常描述不能为空',
            validator: ({ cellValue, row }) => {
              // å½“点检结果为异常时,异常描述必填
              if (row.checkResult === '2') {
                return cellValue && cellValue.trim() !== '' ? true : new Error('异常描述必须填写');
              }
              return true;
            }
          }
        ]
      },
      url: {
        listProcessCheckEquipment: '/eam/equipment/listProductionLineProcessCheckEquipment',
        queryByEquipmentId: '/eam/equipmentProcessParameters/queryByEquipmentId',
        addProcessCheck: '/eam/eamProcessCheck/add',
        updateOrderInspectionStatus: '/mes/mesProductionWorkOrder/edit'
      },
      processCheckEquipmentOptions: [],
      workOrderId: null
    }
  },
  computed: {
    formDisabled(){
      return this.disabled
    }
  },
  methods: {
    handleCheckResultChange($event, value) {
      const selected = this.checkResultOptions.find(item => item.value === value.value)
      $event.row.checkResultLabel = selected.label
    },
    inspect (record) {
      this.resetFormData()
      ajaxGetDictItems("process_parameters_category").then(res => {
        if (res.success) {
          res.result.forEach(item => {
            this.parameterCategoryDict[item.value] = item.label
          })
        }
      })
      this.workOrderId = record.id
      getAction(this.url.listProcessCheckEquipment, {orderId: record.id}).then(res => {
        if (res.success) {
          this.processCheckEquipmentOptions = res.result
        }
      })
      this.visible = true
    },
    close () {
      this.$emit('close');
      this.visible = false;
    },
    handleEquipmentChange(id) {
      getAction(this.url.queryByEquipmentId, {equipmentId: id}).then(res => {
        if (res.success) {
          this.dataSource = res.result
        }
      })
    },
    handleOk () {
      this.$refs.table.validate((valid) => {
        if (valid) {
          this.$message.error("请完成所有必填信息后再提交!")
        } else {
          let tableData = this.$refs.table.getTableData().fullData
          const data = {
            equipmentId: this.model.equipmentId,
            workOrderId: this.workOrderId,
            checkDetailList: tableData
          }
          console.log(data)
          postAction(this.url.addProcessCheck, data).then(res=> {
            if (res.success) {
              this.$message.success(res.message)
              getAction(this.url.listProcessCheckEquipment, {orderId: this.workOrderId}).then(res => {
                if (res.success) {
                  if (res.result && res.result.length > 0) {
                    // è¿˜æœ‰è®¾å¤‡éœ€è¦ç‚¹æ£€ï¼Œæ¸…空表单和表格数据
                    this.processCheckEquipmentOptions = res.result
                    this.resetFormData()
                  } else {
                    // æ²¡æœ‰éœ€è¦ç‚¹æ£€çš„设备,更新点检状态
                    putAction(this.url.updateOrderInspectionStatus, {id: this.workOrderId, processInspectionFlag: '1'}).then(res => {
                      if (res.success) {
                        this.$message.success('工艺点检完成')
                        this.submitCallback()
                      } else {
                        this.$message.warning(res.message)
                      }
                    })
                    this.submitCallback()
                  }
                }
              })
            } else {
              this.$message.warning(res.message)
            }
          })
        }
      })
    },
    resetFormData() {
      this.model = {}
      this.dataSource = []
    },
    submitCallback(){
      this.$emit('ok');
      this.visible = false;
    },
    handleCancel () {
      this.close()
    }
  }
}
</script>
<style scoped>
.placeholder-text {
  color: #999;
  font-style: italic;
}
</style>