“linengliang”
2023-12-13 399e6c1b3925f4241e6b1cef6ffe055b84fb53f6
src/views/eam/MalfunctionRepair.vue
@@ -8,11 +8,24 @@
      <a-form
        layout="inline"
        @keyup.enter.native="searchQuery"
      >
      > <a-row :gutter="24" style="margin-bottom: 1%;">
          <a-col
            :md="24"
            :sm="6"
          >
          <a-form-item label="统一编号群">
              <a-textarea
                placeholder="请输入所有统一编码,须用空格隔开,否则可能查询出错误信息"
                v-model="queryParam.nums"
                :auto-size="{ minRows: 2, maxRows:2 }"
              ></a-textarea>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col
            :md="6"
            :sm="8"
            :sm="6"
          >
            <a-form-item label="单据号">
              <a-input
@@ -23,23 +36,148 @@
          </a-col>
          <a-col
            :md="6"
            :sm="8"
            :sm="6"
          >
            <a-form-item label="设备编码">
            <a-form-item label="统一编号">
              <a-input
                placeholder="请输入设备编码"
                placeholder="请输入统一编号"
                v-model="queryParam.equipmentNum"
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col
            :md="6"
            :sm="8"
            :sm="6"
          >
            <span
              style="float: left;overflow: hidden;"
              class="table-page-search-submitButtons"
            >
            <a-form-item label="设备名称">
              <a-input
                placeholder="请输入设备名称"
                v-model="queryParam.equipmentName"
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col
            :md="6"
            :sm="6"
          >
            <a-form-item label="设备型号">
              <a-input
                placeholder="请输入设备型号"
                v-model="queryParam.model"
              ></a-input>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col
            :md="6"
            :sm="6"
          >
            <a-form-item label="设备规格">
              <a-input
                placeholder="请输入设备规格"
                v-model="queryParam.specification"
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col
            :md="6"
            :sm="6"
          >
            <a-form-item label="使用部门">
              <a-tree-select
                style="width: 100%"
                :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
                :tree-data="treeData"
                placeholder="请选择使用部门"
                tree-default-expand-all
                v-model="queryParam.useId"
              />
            </a-form-item>
          </a-col>
          <a-col
            :md="6"
            :sm="6"
          >
            <a-form-item label="故障时间">
              <a-range-picker
                style="width: 100%;"
                format="YYYY-MM-DD HH:mm:ss"
                v-model="faultTime"
                @change="timeChange"
              />
            </a-form-item>
          </a-col>
          <a-col
            :md="6"
            :sm="6"
          >
            <a-form-item label="报修人">
              <a-input
                placeholder="请输入报修人"
                v-model="queryParam.errUda2"
              ></a-input>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col
            :md="6"
            :sm="6"
          >
            <a-form-item label="单据状态">
              <j-dict-select-tag
                allow-clear
                placeholder="请选择单据状态"
                :triggerChange="true"
                dictCode="equipment_report_repair_status"
                v-model="queryParam.status"
              />
            </a-form-item>
          </a-col>
          <a-col
            :md="6"
            :sm="6"
          >
            <a-form-item label="是否停机维修">
              <j-dict-select-tag
                allow-clear
                placeholder="请选择是否停机维修"
                :triggerChange="true"
                dictCode="is_stop"
                v-model="queryParam.isStop"
              />
            </a-form-item>
          </a-col>
          <a-col
            :md="6"
            :sm="6"
          >
            <a-form-item label="是否加工零件">
              <j-dict-select-tag
                allow-clear
                placeholder="请选择是否在加工零件"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.errUda1"
              />
            </a-form-item>
          </a-col>
          <a-col
            :md="6"
            :sm="6"
          >
            <a-form-item label="制单人">
              <a-input
                placeholder="请输入制单人"
                v-model="queryParam.createBy"
              ></a-input>
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <div class="table-operator">
              <a-button
                type="primary"
                @click="searchQuery"
@@ -51,16 +189,11 @@
                icon="reload"
                style="margin-left: 8px"
              >重置</a-button>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <div class="table-operator">
      <a-button
        @click="handleAdd"
        type="primary"
        icon="plus"
        v-has="'report:add&edit'"
      >新增</a-button>
    </div>
@@ -77,83 +210,46 @@
        :loading="loading"
        class="j-table-force-nowrap"
        @change="handleTableChange"
        :rowSelection = "rowSelection"
        :customRow="clickThenSelect"
      >
        <!-- :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" -->
        <template
          slot="htmlSlot"
          slot-scope="text"
        >
          <div v-html="text"></div>
        </template>
        <template
          slot="imgSlot"
          slot-scope="text,record"
        >
          <span
            v-if="!text"
            style="font-size: 12px;font-style: italic;"
          >无图片</span>
          <img
            v-else
            :src="getImgView(text)"
            :preview="record.id"
            height="25px"
            alt=""
            style="max-width:80px;font-size: 12px;font-style: italic;"
          />
        </template>
        <template
          slot="fileSlot"
          slot-scope="text"
        >
          <span
            v-if="!text"
            style="font-size: 12px;font-style: italic;"
          >无文件</span>
          <a-button
            v-else
            :ghost="true"
            type="primary"
            icon="download"
            size="small"
            @click="downloadFile(text)"
          >
            下载
          </a-button>
        </template>
        <span
          slot="action"
          slot-scope="text, record"
        >
        <a-popconfirm
                  v-if="record.status == '1'"
                  title="确认提交吗?"
                  @confirm="() =>handleCommit(record, 'commit')"
                >
                  <a>提交</a>
                </a-popconfirm>
                <a-popconfirm
                  v-if="record.status == '2'"
                  title="确认撤回吗?"
                  @confirm="() =>handleCommit(record, 'back')"
                >
                  <a>撤回</a>
                </a-popconfirm>
          <a
            :disabled=" record.status !== '4'"
            @click="handleAccept(record)"
            v-has="'report:accept'"
          >验收</a>
          <!-- <a-popconfirm
            v-if="record.status == '1' || record.status == '4'"
            title="确认提交吗?"
            @confirm="() =>handleCommit(record, 'commit')"
          >
            <a>提交</a>
          </a-popconfirm>
          <a-popconfirm
            v-if="record.status == '2'"
            title="确认撤回吗?"
            @confirm="() =>handleCommit(record, 'back')"
          >
            <a>撤回</a>
          </a-popconfirm>
          <a-divider
            v-if="record.status == '1' || record.status == '2'"
            v-if="record.status == '1' || record.status == '2' || record.status == '4'"
            type="vertical"
          />
          <a
            v-if="record.status == '1' "
            v-if="record.status == '1' || record.status == '4'"
            @click="handleEdit(record)"
          >编辑</a>
          <a v-if="record.status == '2'" @click="handleApprove(record)">审批</a>
          <a
            v-if="record.status == '2'"
            @click="handleApprove(record)"
          >审批</a>
          <a-divider
            v-if="record.status == '1' || record.status == '2'"
            v-if="record.status == '1' || record.status == '2' || record.status == '4'"
            type="vertical"
          />
          <a-dropdown>
@@ -171,33 +267,6 @@
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
              <!-- <a-menu-item v-if="record.status == '1'">
                <a-popconfirm
                  v-if="record.status == '1'"
                  title="确认提交吗?"
                  @confirm="() =>handleCommit(record, 'commit')"
                >
                  <a>提交</a>
                </a-popconfirm>
              </a-menu-item>
              <a-menu-item v-if="record.status == '2'">
                <a-popconfirm
                  v-if="record.status == '2'"
                  title="确认撤回吗?"
                  @confirm="() =>handleCommit(record, 'back')"
                >
                  <a>撤回</a>
                </a-popconfirm>
              </a-menu-item>
              <a-menu-item v-if="record.status == '2'">
                <a-popconfirm
                  v-if="record.status == '2'"
                  title="确认驳回吗?"
                  @confirm="() =>handleFinish(record, 'reject')"
                >
                  <a>驳回</a>
                </a-popconfirm>
              </a-menu-item>-->
              <a-menu-item v-if="record.status == '3' || record.status == '4'">
                <a-popconfirm
                  v-if="record.status == '3' || record.status == '4'"
@@ -208,7 +277,10 @@
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
          </a-dropdown> -->
        </span>
        <span slot="jell" slot-scope="text">
            <j-ellipsis :value="text" :length="10" />
        </span>
      </a-table>
@@ -226,7 +298,7 @@
          class="table-operator"
          style="margin-top: 0px"
        >
          <FaultDescriptionList ref="FaultDescriptionList" />
          <FaultDescriptionList ref="FaultDescriptionList"   @ok="modalFormOk"/>
        </div>
      </a-tab-pane>
@@ -236,19 +308,30 @@
      ref="modalForm"
      @ok="modalFormOk"
    ></malfunction-repair-modal>
    <approvel-modal ref='approvalModalForm' @ok='approvalModalFormOk' @cancel='approvalModalFormOk'></approvel-modal>
    <approvel-modal
      ref='approvalModalForm'
      @ok='approvalModalFormOk'
      @cancel='approvalModalFormOk'
    ></approvel-modal>
    <accept-model
    ref="acceptModel"
    @ok="modalFormOk"
    ></accept-model>
  </a-card>
</template>
  
<script>
import '@/assets/less/TableExpand.less'
import { putAction,getAction } from '@/api/manage'
import { putAction, getAction } from '@/api/manage'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import MalfunctionRepairModal from './modules/malfunctionRepair/MalfunctionRepaireModal'
import FaultDescriptionList from './FaultDescriptionList'
import FaultDescriptionList from './modules/malfunctionRepair/FaultDescriptionList'
import ApprovelModal from './modules/malfunctionRepair/ApprovelModal'
import JEllipsis from '@/components/jeecg/JEllipsis'
import moment from 'moment'
import AcceptModel from './modules/malfunctionRepair/AcceptModel'
export default {
  name: 'MalfunctionRepairList',
@@ -256,10 +339,14 @@
  components: {
    MalfunctionRepairModal,
    FaultDescriptionList,
    ApprovelModal
    ApprovelModal,
    JEllipsis,
    AcceptModel,
  },
  data() {
    return {
      treeData:[],
      faultTime:[],
      description: '故障报修',
      queryParam: { delflag: 0 },
      selectedRowKeys: [],
@@ -286,7 +373,7 @@
          dataIndex: 'num'
        },
        {
          title: '设备编码',
          title: '统一编号',
          align: "center",
          dataIndex: 'equipmentNum'
        },
@@ -310,15 +397,19 @@
          align: "center",
          dataIndex: 'departName',
        },
        {
          title: '紧急程度',
          align: "center",
          dataIndex: 'urgencyName',
        },
        // {
        //   title: '紧急程度',
        //   align: "center",
        //   dataIndex: 'urgencyName',
        // },
        {
          title: '故障描述',
          align: "center",
          dataIndex: 'faultDescription'
          dataIndex: 'faultDescription',
          scopedSlots: {
            customRender: 'faultDescription'
          }
        },
        // {
        //   title: '故障拍照',
@@ -327,24 +418,37 @@
        //   scopedSlots: { customRender: 'imgSlot' }
        // },
        {
          title: '报修人',
          align: "center",
          dataIndex: 'errUda2'
        },
        {
          title: '故障时间',
          align: "center",
          dataIndex: 'faultTime'
        },
        // {
        //   title: '是否停机待修',
        //   align: "center",
        //   dataIndex: 'isStop_dictText',
        // },
        {
          title: '创建人',
          title: '是否停机待修',
          align: "center",
          dataIndex: 'isStopName',
        },
        {
          title: '是否在加工零件',
          align: "center",
          dataIndex: 'errUda1_dictText',
        },
        {
          title: '制单人',
          align: "center",
          dataIndex: 'createBy'
        },
        {
          title: '创建时间',
          title: '验收意见',
          align: "center",
          dataIndex: 'createTime',
          dataIndex: 'errUda5',
          scopedSlots: {
            customRender: 'jell'
          }
        },
        {
          title: '备注',
@@ -356,7 +460,7 @@
          dataIndex: 'action',
          align: "center",
          fixed: "right",
          width: 147,
          width: 200,
          scopedSlots: { customRender: 'action' }
        }
      ],
@@ -367,12 +471,24 @@
        exportXlsUrl: "/eam/equipmentReportRepair/exportXls",
        importExcelUrl: "eam/equipmentReportRepair/importExcel",
        edit: "/eam/equipmentReportRepair/edit",
        loadOptions: '/sys/sysDepart/loadDepartTreeOptions',
      },
      imgList:''
      /* 分页参数 */
      ipagination: {
        current: 1,
        pageSize: 5,
        pageSizeOptions: ['5', '10', '50'],
        showTotal: (total, range) => {
          return range[0] + "-" + range[1] + " 共" + total + "条"
        },
        showQuickJumper: true,
        showSizeChanger: true,
        total: 0
      },
    }
  },
  created() {
       this.initOptions();
  },
  computed: {
    importExcelUrl: function () {
@@ -397,6 +513,16 @@
    },
  },
  methods: {
    clickThenSelect(record) {
      return {
        on: {
          click: () => {
            this.onSelectChange(record.id.split(","), [record]);
          }
        }
      }
    },
    loadData(arg) {
      if (!this.url.list) {
@@ -459,12 +585,12 @@
      })
    },
    handleFinish(record,type) {
      if(type == 'agree'){
    handleFinish(record, type) {
      if (type == 'agree') {
        record.status = '3'
      }else if(type == 'reject'){
      } else if (type == 'reject') {
        record.status = '4'
      }else if(type == 'revoke'){
      } else if (type == 'revoke') {
        record.status = '2'
      }
      putAction(this.url.edit, record).then(res => {
@@ -476,10 +602,10 @@
        }
      })
    },
    handleApprove: function(record) {
    handleApprove: function (record) {
      let edit
      edit = this.url.edit
      this.$refs.approvalModalForm.showModals(record, edit,'3','4')
      this.$refs.approvalModalForm.showModals(record, edit, '3', '4')
      this.$refs.approvalModalForm.title = '审批'
      this.$refs.approvalModalForm.disableSubmit = false
@@ -506,9 +632,26 @@
      this.queryParam = {}
      this.loadData(1)
      this.onClearSelected()
      this.faultTime = []
      this.$refs.FaultDescriptionList.faultId = '-1'
    },
    initOptions() {
      getAction(this.url.loadOptions).then(res => {
        if (res.success) {
          this.treeData = res.result
        } else {
          this.$message.warning(res.message)
        }
      })
    },
    timeChange(){
      this.queryParam.faultStartTime = moment(this.faultTime[0]).format("YYYY-MM-DD HH:mm:ss")
      this.queryParam.faultEndTime = moment(this.faultTime[1]).format("YYYY-MM-DD HH:mm:ss")
    },
    handleAccept(record){
      this.$refs.acceptModel.title="验收"
      this.$refs.acceptModel.edit(record)
    }
  }
}
</script>