linwei
2024-01-10 ca788e3a4122fbeb46947be76ec21625306fa0a7
src/views/task/reportForRepairs.vue
@@ -2,7 +2,7 @@
 * @Author: shuishen 1109946754@qq.com
 * @Date: 2023-12-14 17:10:00
 * @LastEditors: shuishen 1109946754@qq.com
 * @LastEditTime: 2024-01-06 15:01:25
 * @LastEditTime: 2024-01-09 18:59:37
 * @FilePath: \jczz_web\src\views\task\reportForRepairs.vue
 * @Description:
 *
@@ -12,16 +12,17 @@
<template>
  <basic-container>
    <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
      v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave" :before-open="beforeOpen"
      @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
      @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
      <template slot="confirmFlag" slot-scope="{row}">
        <el-tag size="small" :type="showConfirmFlag(row.confirmFlag).type">
            v-model="form" :permission="permissionList" @row-update="rowUpdate" @row-save="rowSave"
            :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
            @selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
            @refresh-change="refreshChange" @on-load="onLoad">
            <template slot="confirmFlag" slot-scope="{row, size}">
                <el-tag :size="size" :type="showConfirmFlag(row.confirmFlag).type">
          {{ showConfirmFlag(row.confirmFlag).text }}
        </el-tag>
      </template>
      <template slot="expand" slot-scope="{row}">
            <template slot="expand" slot-scope="{row, size}">
        <el-timeline>
          <el-timeline-item v-for="(item, index) in timeLineData(row)" :key="index" :timestamp="item.createTime"
            :icon="item.icon" :color="item.color" :hide-timestamp="item.contentType == 3" placement="top">
@@ -66,24 +67,24 @@
        </el-timeline>
      </template>
      <template slot-scope="scope" slot="menu">
        <el-button v-if="permission.report_for_repairs_details" size="small" type="text" icon="el-icon-document-remove"
          @click="rowExpansion(scope.row)">
            <template slot-scope="{row, size, index}" slot="menu">
                <el-button :size="size" v-if="permission.report_for_repairs_details" type="text"
                    icon="el-icon-document-remove" @click="rowExpansion(row)">
          详情
        </el-button>
        <el-button v-if="permission.report_for_repairs_reply" size="small" type="text" icon="el-icon-chat-dot-square"
          :disabled="scope.row.confirmFlag === 3" @click="replyBtnClick(scope.row)">
                <el-button :size="size" v-if="permission.report_for_repairs_reply" type="text"
                    icon="el-icon-chat-dot-square" :disabled="row.confirmFlag === 3" @click="replyBtnClick(row)">
          回复
        </el-button>
        <el-button v-if="permission.report_for_repairs_turn_over" size="small" type="text" icon="el-icon-document-copy"
          :disabled="scope.row.confirmFlag === 3" @click="turnOverBtnClick(scope.row)">
                <el-button :size="size" v-if="permission.report_for_repairs_turn_over" type="text"
                    icon="el-icon-document-copy" :disabled="row.confirmFlag === 3" @click="turnOverBtnClick(row)">
          移交
        </el-button>
        <el-button v-if="permission.report_for_repairs_del" size="small" type="text" icon="el-icon-delete"
          @click="rowDel(scope.row)">
                <el-button :size="size" v-if="permission.report_for_repairs_del" type="text" icon="el-icon-delete"
                    @click="rowDel(row)">
          删除
        </el-button>
      </template>
@@ -99,9 +100,10 @@
      <avue-form ref="replyForm" :option="replyOption" v-model="replyForm" @submit="handleSubmit"
        @reset-change="handleReset">
        <template slot-scope="{row}" slot="videoList">
          <el-upload class="video-uploader" action="/api/blade-resource/oss/endpoint/put-file" :file-list="fileList"
            :headers="updateHeader" :show-file-list="true" :limit="1" :on-change="getFile" :on-exceed="handleExceed"
            :on-success="uploadVideoProcess" :before-upload="beforeUploadVideo" :before-remove="beforeRemove">
                    <el-upload class="video-uploader" action="/api/blade-resource/oss/endpoint/put-file"
                        :file-list="fileList" :headers="updateHeader" :show-file-list="true" :limit="1" :on-change="getFile"
                        :on-exceed="handleExceed" :on-success="uploadVideoProcess" :before-upload="beforeUploadVideo"
                        :before-remove="beforeRemove">
            <el-button size="small" type="primary">点击上传</el-button>
            <div slot="tip" class="el-upload__tip">上传视频只能是 mp4 格式,且大小不能超过 50MB</div>
          </el-upload>
@@ -163,6 +165,12 @@
        datetime: "",
        selectionList: [],
        option: {
                labelWidth: 96,
                searchLabelWidth: 96,
                searchShow: true,
                searchMenuSpan: 3,
                menuWidth: 280,
          viewBtn: false,
          editBtn: false,
          delBtn: false,
@@ -173,19 +181,19 @@
          calcHeight: 54,
          dialogWidth: 950,
          tip: false,
          searchShow: true,
          searchMenuSpan: 3,
          menuWidth: 272,
          border: true,
          //stripe:true,
          // excelBtn: true,
          dialogClickModal: false,
          column: [{
              width: 96,
                column: [
                    {
                        width: 100,
              label: "类型",
              prop: "type",
              span: 12,
                        searchLabelWidth: 66,
              searchSpan: 4,
                        search: true,
              dataType: "number",
              type: "select",
              dicUrl: "/api/blade-system/dict-biz/dictionary?code=reportForRepairsType",
@@ -193,23 +201,23 @@
                label: "dictValue",
                value: "dictKey",
              },
              search: true,
            },
            {
              width: 96,
                        width: 110,
              label: "姓名",
              prop: "realName",
              span: 12,
              searchSpan: 4,
                        searchLabelWidth: 66,
              search: true,
            },
            {
              width: 96,
                        width: 120,
              label: "手机号码",
              prop: "phone",
              search: true,
              searchSpan: 3,
                        searchSpan: 4,
              slot: true,
              rules: [{
                validator: validatorPhone,
@@ -234,23 +242,23 @@
              span: 24,
            },
            {
                        overHidden: true,
              label: "地点",
              prop: "addressName",
              overHidden: true
            },
            {
              width: 100,
                        label: "状态",
              addDisplay: false,
              editDisplay: false,
              slot: true,
              label: "状态",
              prop: "confirmFlag",
              overHidden: true
            },
            {
                        width: 144,
              label: "上报时间",
              prop: "createTime",
              width: 160,
              addDisplay: false,
              editDisplay: false,
              type: "date",
@@ -258,9 +266,9 @@
              valueFormat: "yyyy-MM-dd HH:mm:ss",
            },
            {
                        width: 144,
              label: "处理时间",
              prop: "confirmTime",
              width: 160,
              addDisplay: false,
              editDisplay: false,
              type: "date",