loulijun2021
2023-02-12 adb74c51618faf025fe1d46bf6b22db895c2608f
src/views/sbgl/wxjl.vue
@@ -2,7 +2,7 @@
  <div>
    <div class="body" :style="{height:mainHeight+'px'}">
      <div class="bodyTopButtonGroup" style="justify-content: space-between">
        <el-button type="primary" icon="el-icon-download" @click="download">导出</el-button>
        <el-button v-waves type="primary" icon="el-icon-download" @click="download">导出</el-button>
      </div>
      <div class="bodyTopFormGroup">
@@ -11,10 +11,10 @@
          :model="form"
          label-width="100px"
          inline
          style="display: flex;justify-content: space-between"
          style="display: flex;"
        >
          <div class="elForm">
            <el-form-item label="生产车间" label-width="70px" style=" display: flex;">
            <el-form-item label="生产车间"style=" display: flex;">
              <el-select v-model="form.wkshopcode" style="width: 200px" placeholder="请选择">
                <el-option
                  v-for="item in wkshopSelectArr"
@@ -33,7 +33,7 @@
            <el-form-item label="报修人员" style=" display: flex;">
              <el-input v-model="form.reportuser" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label-width="70px" label="维修人员" style=" display: flex;">
            <el-form-item v-show="isExpandForm" label="维修人员" style=" display: flex;">
              <el-input v-model="form.repairuser" placeholder="请输入" style="width: 200px" />
            </el-form-item>
            <el-form-item v-show="isExpandForm" label="验证人员" style=" display: flex;">
@@ -67,7 +67,6 @@
            </el-form-item>
            <el-form-item
              v-show="isExpandForm"
              label-width="70px"
              label="验证时间"
              style=" display: flex;align-items: center"
            >
@@ -84,9 +83,9 @@
              />
            </el-form-item>
          </div>
          <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened?'5%':'10%'}">
            <el-button type="primary" icon="el-icon-search" @click="search">查询</el-button>
            <el-button type="info" icon="el-icon-refresh" @click="reset">重置</el-button>
          <div class="bodySearchReset" :style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}">
            <el-button v-waves type="primary" icon="el-icon-search" @click="search">查询</el-button>
            <el-button v-waves type="info" icon="el-icon-refresh" @click="reset">重置</el-button>
          </div>
        </el-form>
        <div
@@ -131,6 +130,7 @@
          <el-table-column
            prop="repair_code"
            label="维修单号"
            show-tooltip-when-overflow
            min-width="160"
            sortable="custom"
          />
@@ -159,28 +159,33 @@
            prop="request_person"
            label="报修人"
            sortable="custom"
            show-tooltip-when-overflow
            width="100"
          />
          <el-table-column
            prop="request_date"
            label="报修时间"
            show-tooltip-when-overflow
            width="160"
            sortable="custom"
          />
          <el-table-column
            prop="repair_person"
            label="维修人"
            show-tooltip-when-overflow
            width="100"
            sortable="custom"
          />
          <el-table-column
            prop="repair_date"
            label="维修完成时间"
            show-tooltip-when-overflow
            width="160"
            sortable="custom"
          />
          <el-table-column
            prop="cycleDate"
            show-tooltip-when-overflow
            label="维修时长"
            width="120"
            sortable="custom"
@@ -193,11 +198,13 @@
            prop="verify_person"
            label="验证人"
            width="100"
            show-tooltip-when-overflow
            sortable="custom"
          />
          <el-table-column
            prop="verify_date"
            label="验证时间"
            show-tooltip-when-overflow
            width="160"
            sortable="custom"
          />
@@ -205,15 +212,16 @@
            prop="verify_result"
            label="验证结果"
            width="120"
            show-tooltip-when-overflow
            sortable="custom"
          >
            <template slot-scope="{row}">
              <div v-if="row.verify_result==='通过'" style="display: flex;align-items: center">
                <div style="margin-right: 5px;width:10px;height: 10px;border-radius: 50%;background-color: #42b983" />
                <i class="el-icon-success" :style="{color:$store.state.settings.theme}" style="margin-right: 2px" />
                通过
              </div>
              <div v-if="row.verify_result==='不通过'" style="display: flex;align-items: center">
                <div style="margin-right: 5px;width:10px;height: 10px;border-radius: 50%;background-color: red" />
                <i class="el-icon-info" style="margin-right: 2px" />
                不通过
              </div>
            </template>
@@ -226,7 +234,8 @@
            <template slot-scope="{row}">
              <i
                class="el-icon-tickets"
                style="cursor: pointer;color: #42b983;margin-right: 15px"
                :style="{color:$store.state.settings.theme}"
                style="cursor: pointer;margin-right: 15px"
                @click="edit('edit',row)"
              />
            </template>
@@ -246,6 +255,7 @@
    </div>
    <el-dialog
      v-el-drag-dialog
      title="维修明细"
      :visible.sync="dialogVisible"
      width="800px"
@@ -256,7 +266,7 @@
    >
      <div style="font-size:16px;">
        <div style="margin-bottom: 20px">
          <i class="el-icon-s-operation" style="color:#42b983;" /> 设备报修信息:
          <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 设备报修信息:
        </div>
        <div style="display: flex;flex-direction: column;margin-left: 40px">
          <div style="margin-bottom: 10px">故障来源:{{ dialogData1.faultsource }}</div>
@@ -267,13 +277,13 @@
                style="width: 100px;margin-right: 10px"
                :src="baseUrl+item.img1url"
                alt=""
                @click="handlePictureCardPreview(baseUrl+item.img1url)"
                @click="handlePictureCardPreview(baseUrl+item.img1url,'设备报修/故障图片')"
              >
            </div>
          </div>
        </div>
        <div style="margin-bottom: 20px">
          <i class="el-icon-s-operation" style="color:#42b983;" /> 设备维修信息:
          <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 设备维修信息:
        </div>
        <div style="display: flex;flex-direction: column;margin-left: 40px">
          <div style="margin-bottom: 10px">故障描述:{{ dialogData2.faultdescr }}</div>
@@ -283,7 +293,7 @@
                style="width: 100px;margin-right: 10px"
                :src="baseUrl+item.img1url"
                alt=""
                @click="handlePictureCardPreview(baseUrl+item.img1url)"
                @click="handlePictureCardPreview(baseUrl+item.img1url,'设备维修/故障图片')"
              >
            </div>
          </div>
@@ -296,16 +306,28 @@
                style="width: 100px;margin-right: 10px"
                :src="baseUrl+item.img2url"
                alt=""
                @click="handlePictureCardPreview(baseUrl+item.img2url)"
                @click="handlePictureCardPreview(baseUrl+item.img2url,'设备维修/备件图片')"
              >
            </div>
          </div>
        </div>
        <div style="margin-bottom: 20px">
          <i class="el-icon-s-operation" style="color:#42b983;" /> 设备维修验证信息:
          <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> 设备维修验证信息:
        </div>
        <div style="display: flex;flex-direction: column;margin-left: 40px">
          <div style="margin-bottom: 10px">验证结果:{{ isResult }}</div>
          <div style="margin-bottom: 10px;display: flex;">验证结果:
            <i
              v-if="isResult==='通过'"
              class="el-icon-success"
              :style="{color:$store.state.settings.theme}"
              style="margin-right: 2px"
            />
            <i v-if="isResult==='不通过'" class="el-icon-info" style="margin-right: 2px" />
            {{ isResult }}
          </div>
        </div>
      </div>
      <!--      图片预览对话框-->
@@ -316,18 +338,46 @@
        append-to-body
        @close="pictureHandleClose"
      >
        <img width="100%" :src="pictureUrl" alt="">
        <div style="font-size: 16px;margin-bottom: 10px">
          <i class="el-icon-s-comment" :style="{color:$store.state.settings.theme}" /> {{ pictureName }}
        </div>
        <img :key="new Date()" width="100%" :src="pictureUrl" alt="">
        <el-tooltip class="item" effect="light" content="上一张" placement="top">
          <div
            v-if="pictureUrlAll.findIndex(item => item.url === pictureUrl)!==0"
            style="position: absolute;top: 48%;left: 3.5%;"
          ><i
            :style="{color:$store.state.settings.theme}"
            style="cursor: pointer;font-size: 20px"
            class="el-icon-d-arrow-left"
            @click="arrowLeftClick(pictureUrl,pictureName)"
          /></div>
        </el-tooltip>
        <el-tooltip class="item" effect="light" content="下一张" placement="top">
          <div
            v-if="pictureUrlAll.findIndex(item => item.url === pictureUrl)!==pictureUrlAll.length-1"
            style="position: absolute;top: 48%;right: 3.5%;"
          >
            <i
              :style="{color:$store.state.settings.theme}"
              style="cursor: pointer;font-size: 20px"
              class="el-icon-d-arrow-right"
              @click="arrowRightClick(pictureUrl,pictureName)"
            /></div>
        </el-tooltip>
        <span slot="footer" class="dialog-footer">
          <div class="footerButton">
            <el-button @click="pictureVisible=false">返 回</el-button>
            <el-button v-waves @click="pictureVisible=false">返 回</el-button>
          </div>
        </span>
      </el-dialog>
      <span slot="footer" class="dialog-footer">
        <div class="footerButton">
          <el-button @click="dialogVisibleCancel">返 回</el-button>
          <!--          <el-button type="primary" @click="dialogVisibleConfirm">确 定</el-button>-->
          <el-button v-waves @click="dialogVisibleCancel">返 回</el-button>
          <!--          <el-button v-waves type="primary" @click="dialogVisibleConfirm">确 定</el-button>-->
        </div>
      </span>
    </el-dialog>
@@ -351,12 +401,15 @@
import { handleDatetime } from '@/utils/global'
import { DeviceUpdateOutExcel, DeviceUpdateSearch, DeviceUpdateSubSearch } from '@/api/sbgl'
import { ShopSearch } from '@/api/dzkb'
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
export default {
  name: 'Zzjg',
  components: {
    Pagination, ImportPicker
  },
  directives: { elDragDialog, waves },
  data() {
    return {
      mouseHoverType: 'mouseout',
@@ -387,10 +440,12 @@
      isResult: '', // 验证结果
      operation: '',
      baseUrl: 'http://121.196.36.24:8001/', // 图片预览地址前缀
      baseUrl: '', // 图片预览地址前缀
      pictureVisible: false, // 图片预览对话框
      pictureUrl: '', // 图片预览Url
      pictureName: '', // 图片预览名称
      pictureUrlAll: [], // 图片预览地址的所有Url
      title_value: '数据导入 / 点检部位',
      code: '4',
@@ -411,6 +466,8 @@
  mounted() {
    window.addEventListener('resize', this.getHeight)
    this.getHeight()
    this.baseUrl = process.env.VUE_APP_BASE_API_FILE
  },
  methods: {
    handleRequest() {
@@ -506,19 +563,58 @@
      this.dialogData1 = res.data1
      this.dialogData2 = res.data2
      this.isResult = row.verify_result
      // 设备报修图片集合
      if (this.dialogData1.faultimage) {
        this.dialogData1.faultimage.forEach(item => {
          this.pictureUrlAll.push(
            { url: this.baseUrl + item.img1url, name: '设备报修/故障图片' }
          )
        })
      }
      // 设备维修图片集合
      if (this.dialogData2.repairimage) {
        this.dialogData2.repairimage.forEach(item => {
          this.pictureUrlAll.push(
            {
              url: item.img1url ? this.baseUrl + item.img1url : this.baseUrl + item.img2url,
              name: item.img1url ? '设备维修/故障图片' : '设备维修/备件图片'
            }
          )
        })
      }
    },
    handlePictureCardPreview(url) {
    handlePictureCardPreview(url, name) {
      this.pictureVisible = true
      this.pictureUrl = url
      this.pictureName = name
    },
    arrowLeftClick(pictureUrl, pictureName) {
      this.pictureUrlAll.forEach((item, index) => {
        if (item.url === pictureUrl) {
          this.pictureUrl = this.pictureUrlAll[index - 1].url
          this.pictureName = this.pictureUrlAll[index - 1].name
        }
      })
    },
    arrowRightClick(pictureUrl, pictureName) {
      this.pictureUrlAll.forEach((item, index) => {
        if (item.url === pictureUrl) {
          this.pictureUrl = this.pictureUrlAll[index + 1].url
          this.pictureName = this.pictureUrlAll[index + 1].name
        }
      })
    },
    pictureHandleClose() {
      this.pictureUrl = ''
      this.pictureName = ''
    },
    // 对话框关闭事件
    handleClose() {
      this.dialogData1 = {}
      this.dialogData2 = {}
      this.isResult = ''
      this.pictureUrlAll = []
    },
    async download() {
      let reportdate = this.form.reportdate