zhaowei
10 小时以前 a5093e5c0db210a162b5a409d3f330a0f045d90a
技术状态变更页面设备验收
已添加2个文件
已修改4个文件
345 ■■■■■ 文件已修改
src/views/eam/maintenance/EamInspectionOrderList.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/EamRepairOrderList.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/EamTechnicalStatusChangeList.vue 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/modules/EamTechnicalStatusChangeEquipmentDetail.vue 170 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/modules/EamTechnicalStatusEquipmentAcceptanceModal.vue 100 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/EamInspectionOrderList.vue
@@ -40,7 +40,6 @@
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator" v-if="isDisplayOperation">
      <a-button v-has="'eam:inspection:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button v-if="selectedRowKeys.length == 1" @click="handlePrint" type="primary">查看</a-button>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchZf('ABOLISH')" v-has="'eam:inspection:abolish'">
src/views/eam/repair/EamRepairOrderList.vue
@@ -28,18 +28,17 @@
              <a-button @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator" v-if="isDisplayOperation">
      <a-dropdown v-if="selectedRowKeys.length > 0">
      <a-dropdown :disabled="selectedRowKeys.length == 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel">
            <a-icon type="delete"/>
            åˆ é™¤
          <a-menu-item key="1" @click="handleBatchSubmit">
            <a-icon type="form"/>
            æäº¤
          </a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ
@@ -61,13 +60,15 @@
               :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange"
               :scroll="{x:'max-content'}">
        <span slot="action" slot-scope="text, record">
          <a @click="handleFillIn(record)">填报</a>
          <a-divider type="vertical"/>
          <a-popconfirm title="确定提交吗?" @confirm="() => handleSubmit(record.id)">
             <a>提交</a>
          </a-popconfirm>
          <a-divider type="vertical"/>
          <a @click="handleDetail(record)">详情</a>
          <template v-if="record.repairStatus=='PENDING_REPAIR'||record.repairStatus=='UNDER_MAINTENANCE'">
             <a @click="handleFillIn(record)">填报</a>
             <a-divider type="vertical"/>
             <a-popconfirm title="确定提交吗?" @confirm="() => handleSubmit(record.id)">
               <a>提交</a>
             </a-popconfirm>
          </template>
          <a v-else @click="handleDetail(record)">详情</a>
        </span>
      </a-table>
    </div>
@@ -261,6 +262,11 @@
          })
      },
      // æ‰¹é‡æäº¤æ—¶è§¦å‘
      handleBatchSubmit() {
      },
      /**
       * ç‚¹å‡»è¯¦æƒ…触发
       * @param record è¡¨æ ¼è¡Œä¿¡æ¯
src/views/eam/technical/EamTechnicalStatusChangeList.vue
@@ -47,30 +47,37 @@
    <!-- table区域-begin -->
    <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource"
             :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}">
             :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}" @change="handleTableChange"
             :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange,type:'radio'}"
             :customRow="customRow">
        <span slot="action" slot-scope="text, record">
          <template v-if="record.changeStatus=='WAIT_SUBMIT'">
          <a @click="handleEdit(record)">编辑</a>
          <a @click.stop="handleEdit(record)">编辑</a>
          <a-divider type="vertical"/>
          <a-popconfirm title="确定提交吗?" @confirm="handleSubmit(record.id)">
             <a>提交</a>
             <a @click="e=>e.stopPropagation()">提交</a>
          </a-popconfirm>
          <a-divider type="vertical"/>
          <a-popconfirm title="确定作废吗?" @confirm="handleAbolish(record.id)">
            <a>作废</a>
            <a @click="e=>e.stopPropagation()">作废</a>
          </a-popconfirm>
          </template>
          <a @click="handleDetail(record)"
          <a @click.stop="handleDetail(record)"
             v-if="record.changeStatus!='WAIT_SUBMIT'&&record.changeStatus!='ABOLISH'">详情</a>
        </span>
    </a-table>
    <!-- table区域-end -->
    <a-tabs v-if="selectedRowKeys.length>0">
      <a-tab-pane tab="设备明细">
        <eam-technical-status-change-equipment-detail :selectedRow="selectionRows[0]"/>
      </a-tab-pane>
    </a-tabs>
    <!-- è¡¨å•区域 -->
    <eamTechnicalStatusChange-modal ref="modalForm" @ok="modalFormOk" :productionTreeData="productionTreeData"/>
@@ -87,11 +94,13 @@
  import { getAction } from '@/api/manage'
  import TechnicalStatusChangeApprovalModal
    from '../../flowable/workflow/TechnicalStatus/TechnicalStatusChangeApprovalModal'
  import EamTechnicalStatusChangeEquipmentDetail from './modules/EamTechnicalStatusChangeEquipmentDetail'
  export default {
    name: 'EamTechnicalStatusChangeList',
    mixins: [JeecgListMixin],
    components: {
      EamTechnicalStatusChangeEquipmentDetail,
      TechnicalStatusChangeApprovalModal,
      EamTechnicalStatusChangeModal
    },
@@ -133,7 +142,7 @@
          {
            title: '使用单位室级主管签字',
            align: 'center',
            dataIndex: 'departHeaderSignature'
            dataIndex: 'departHeaderSignature_dictText'
          },
          {
            title: '使用单位室级主管签字时间',
@@ -143,7 +152,7 @@
          {
            title: '使用单位部级主管签字',
            align: 'center',
            dataIndex: 'departLeaderSignature'
            dataIndex: 'departLeaderSignature_dictText'
          },
          {
            title: '使用单位部级主管签字时间',
@@ -255,6 +264,19 @@
        this.$refs.technicalStatusChangeApprovalModal.handleDetail(record)
      },
      customRow(record) {
        return {
          style: {
            cursor: 'pointer'
          },
          on: {
            click: event => {
              this.onSelectChange([record.id], [record])
            }
          }
        }
      },
      /**
       * ç”³è¯·æ—¶é—´å‘生改变时触发
       * @param dateStringArray
src/views/eam/technical/modules/EamTechnicalStatusChangeEquipmentDetail.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,170 @@
<template>
  <div>
    <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource"
             :pagination="false" :loading="loading" :scroll="{x:'max-content'}">
    <span slot="action" slot-scope="text, record">
      <!--非搬迁-->
      <a v-if="record.changeCategory!='EQUIPMENT_RELOCATION'"
         :disabled="selectedRow.changeStatus!='COMPLETED'||(selectedRow.changeStatus=='COMPLETED'&&record.acceptanceChecker)"
         @click="handleAcceptance(record)">验收</a>
      <!--搬迁-->
      <a-popconfirm v-else title="是否生成技术状态鉴定工单?" @confirm="handleAcceptance(record)">
        <a
          :disabled="selectedRow.changeStatus!='COMPLETED'||(selectedRow.changeStatus=='COMPLETED'&&record.acceptanceChecker)">验收</a>
      </a-popconfirm>
    </span>
    </a-table>
    <!--设备验收弹窗-->
    <eam-technical-status-equipment-acceptance-modal ref="modalForm" @ok="modalFormOk"/>
  </div>
</template>
<script>
  import { getAction, postAction } from '@/api/manage'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import EamTechnicalStatusEquipmentAcceptanceModal from './EamTechnicalStatusEquipmentAcceptanceModal'
  export default {
    name: 'EamTechnicalStatusChangeEquipmentDetail',
    components: { EamTechnicalStatusEquipmentAcceptanceModal },
    mixins: [JeecgListMixin],
    props: {
      selectedRow: {
        type: Object
      }
    },
    watch: {
      selectedRow: {
        handler(val) {
          if (val) {
            this.loadData()
          }
        },
        immediate: true
      }
    },
    data() {
      return {
        disableMixinCreated: true,
        columns: [
          {
            title: '#',
            dataIndex: '',
            key: 'rowIndex',
            width: 60,
            align: 'center',
            customRender: function(t, r, index) {
              return parseInt(index) + 1
            }
          },
          {
            title: '统一编码',
            dataIndex: 'equipmentCode',
            align: 'center'
          },
          {
            title: '设备名称',
            dataIndex: 'equipmentName',
            align: 'center'
          },
          {
            title: '设备型号',
            dataIndex: 'equipmentModel',
            align: 'center'
          },
          {
            title: '使用单位',
            dataIndex: 'factoryName',
            align: 'center'
          },
          {
            title: '变更原因',
            dataIndex: 'changeCategory_dictText',
            align: 'center'
          },
          {
            title: '变更日期',
            dataIndex: 'changeDate',
            align: 'center'
          },
          {
            title: '变更后技术状态',
            dataIndex: 'changeTechnicalStatus_dictText',
            align: 'center'
          },
          {
            title: '验收人',
            dataIndex: 'acceptanceChecker_dictText',
            align: 'center'
          },
          {
            title: '验收时间',
            dataIndex: 'acceptanceCheckTime',
            align: 'center'
          },
          {
            title: '验收检查结果',
            dataIndex: 'acceptanceCheckResult_dictText',
            align: 'center'
          },
          {
            title: '验收意见',
            dataIndex: 'acceptanceCheckComment',
            align: 'center'
          },
          {
            title: '操作',
            dataIndex: 'action',
            align: 'center',
            width: 200,
            fixed: 'right',
            scopedSlots: { customRender: 'action' }
          }
        ],
        url: {
          list: '/eam/eamTechnicalStatusChangeDetail/queryList',
          acceptance: '/eam/eamTechnicalStatusChange/acceptance'
        }
      }
    },
    methods: {
      loadData() {
        this.loading = true
        getAction(this.url.list, { orderId: this.selectedRow.id })
          .then((res) => {
            if (res.success) this.dataSource = res.result
          })
          .finally(() => {
            this.loading = false
          })
      },
      handleAcceptance(record) {
        if (record.changeCategory != 'EQUIPMENT_RELOCATION') {
          this.$refs.modalForm.handleAcceptance(record)
          this.$refs.modalForm.title = '验收'
        } else {
          this.loading = true
          postAction(this.url.acceptance, record)
            .then(res => {
              if (res.success) {
                this.$notification.success({
                  message: '消息',
                  description: res.message
                })
                this.loadData()
              } else {
                this.$notification.warning({
                  message: '消息',
                  description: res.message
                })
                this.loading = false
              }
            })
        }
      }
    }
  }
</script>
src/views/eam/technical/modules/EamTechnicalStatusEquipmentAcceptanceModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,100 @@
<template>
  <j-modal :title="title" :width="500" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
           @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="验收检查结果" prop="acceptanceCheckResult">
              <j-dict-select-tag dict-code="equipment_technology_status" type="radio"
                                 v-model="model.acceptanceCheckResult"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="验收意见" prop="acceptanceCheckComment">
              <a-textarea placeholder="请输入验收意见" v-model="model.acceptanceCheckComment"/>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { postAction } from '@/api/manage'
  export default {
    name: 'EamTechnicalStatusEquipmentAcceptanceModal',
    data() {
      return {
        title: '操作',
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 7 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 15 }
        },
        confirmLoading: false,
        validatorRules: {
          acceptanceCheckResult: [{ required: true, message: '请选择验收检查结果', trigger: 'change' }],
          acceptanceCheckComment: [{ required: true, message: '请输入验收意见', trigger: 'change' }]
        },
        url: {
          acceptance: '/eam/eamTechnicalStatusChange/acceptance'
        }
      }
    },
    methods: {
      handleAcceptance(record) {
        this.model = Object.assign({}, record)
        this.visible = true
      },
      handleOk() {
        const that = this
        // è§¦å‘表单验证
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true
            postAction(this.url.acceptance, this.model)
              .then(res => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.$emit('ok')
                  that.handleCancel()
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              })
              .finally(() => {
                that.confirmLoading = false
              })
          } else {
            return false
          }
        })
      },
      handleCancel() {
        this.close()
      },
      close() {
        this.$emit('close')
        this.visible = false
        this.$refs.form.clearValidate()
      }
    }
  }
</script>
src/views/flowable/workflow/TechnicalStatusEvaluation/TechnicalStatusEvaluationApprovalModal.vue
@@ -56,7 +56,7 @@
                          v-if="disableSubmit||
                          selectShenpiData.taskDefKey&&(selectShenpiData.taskDefKey=='safety_equipment_check'||selectShenpiData.taskDefKey=='safety_equipment_check_confirm')||
                          model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'&&detail.safetyEquipmentCheckList.length>0">
                <j-vxe-table ref="editableDetailTable1" rowNumber bordered alwaysEdit keep-source :height="300"
                <j-vxe-table ref="editableDetailTable1" rowNumber bordered alwaysEdit keep-source
                             :dataSource="detail.safetyEquipmentCheckList"
                             :columns="detail.safetyEquipmentCheckColumns">
                  <template v-slot:safetyEquipmentCheckResult="props">
@@ -97,7 +97,7 @@
                          selectShenpiData.taskDefKey&&(selectShenpiData.taskDefKey=='equipment_precision_check'||selectShenpiData.taskDefKey=='equipment_precision_check_confirm')||
                          model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'&&detail.precisionCheckList.length>0">
                <j-vxe-table ref="editableDetailTable2" rowNumber bordered
                             alwaysEdit keep-source :height="300"
                             alwaysEdit keep-source
                             :dataSource="detail.precisionCheckList" :columns="detail.precisionCheckColumns">
                  <template v-slot:precisionCheckResult="props">
                    <a-input-number v-model="props.row.precisionCheckResult"
@@ -136,7 +136,7 @@
                          selectShenpiData.taskDefKey&&(selectShenpiData.taskDefKey=='other_check'||selectShenpiData.taskDefKey=='other_check_confirm')||
                          model.evaluationStatus&&model.evaluationStatus!='UNDER_EVALUATION'&&detail.otherCheckList.length>0">
                <j-vxe-table ref="editableDetailTable3" rowNumber bordered
                             alwaysEdit keep-source :height="300"
                             alwaysEdit keep-source
                             :dataSource="detail.otherCheckList" :columns="detail.otherCheckColumns">
                  <template v-slot:otherCheckResult="props">
                    <a-textarea v-model="props.row.otherCheckResult" :rows="1"