| | |
| | | <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"> |
| | | 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"> |
| | | {{ showConfirmFlag(row.confirmFlag).text }} |
| | |
| | | </template> |
| | | |
| | | <template slot-scope="scope" slot="menu"> |
| | | <el-button type="text" icon="el-icon-chat-dot-square" @click="replyBtnClick(scope.row)"> |
| | | <el-button type="text" icon="el-icon-chat-dot-square" :disabled="scope.row.confirmFlag === 3" |
| | | @click="replyBtnClick(scope.row)"> |
| | | 回复 |
| | | </el-button> |
| | | |
| | | <el-button type="text" icon="el-icon-document-copy" @click="turnOverBtnClick(scope.row)"> |
| | | <el-button type="text" icon="el-icon-document-copy" :disabled="scope.row.confirmFlag === 3" |
| | | @click="turnOverBtnClick(scope.row)"> |
| | | 移交 |
| | | </el-button> |
| | | </template> |
| | |
| | | <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> |
| | |
| | | getReportForRepairs, |
| | | saveReply |
| | | } from "@/api/task/reportForRepairs" |
| | | import { mapGetters } from "vuex" |
| | | import { |
| | | mapGetters |
| | | } from "vuex" |
| | | import website from '@/config/website' |
| | | import { Base64 } from 'js-base64' |
| | | import { getToken } from '@/util/auth' |
| | | import { |
| | | Base64 |
| | | } from 'js-base64' |
| | | import { |
| | | getToken |
| | | } from '@/util/auth' |
| | | |
| | | export default { |
| | | data () { |
| | |
| | | viewBtn: true, |
| | | // excelBtn: true, |
| | | dialogClickModal: false, |
| | | column: [ |
| | | { |
| | | column: [{ |
| | | label: "类型", |
| | | prop: "type", |
| | | span: 12, |
| | |
| | | emptyBtn: true, |
| | | emptyText: '取消', |
| | | |
| | | column: [ |
| | | { |
| | | column: [{ |
| | | span: 24, |
| | | label: "说明", |
| | | prop: "content", |
| | |
| | | label: '处理状态', |
| | | prop: 'confirmFlag', |
| | | type: 'select', |
| | | dicData: [ |
| | | { |
| | | dicData: [{ |
| | | label: '待处理', |
| | | value: 1 |
| | | }, { |
| | |
| | | }, { |
| | | label: '已处理', |
| | | value: 3 |
| | | } |
| | | ], |
| | | }], |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择处理状态", |
| | |
| | | label: "人员类型", |
| | | prop: "peopleType", |
| | | type: 'select', |
| | | dicData: [ |
| | | { |
| | | dicData: [{ |
| | | label: '网格员', |
| | | value: 0 |
| | | }, { |
| | | label: '物业公司人员', |
| | | value: 2 |
| | | } |
| | | ], |
| | | cascader: ["transferUserld"], |
| | | }], |
| | | cascader: ["transferUserId"], |
| | | rules: [{ |
| | | required: true, |
| | | message: "请选择人员类型", |
| | |
| | | { |
| | | span: 14, |
| | | label: "指定人员", |
| | | prop: "transferUserld", |
| | | prop: "transferUserId", |
| | | type: 'select', |
| | | dicUrl: `/api/blade-system/user/getUserInfoByCode?houseCode={{addressCode}}&type={{peopleType}}`, |
| | | props: { |
| | | label: "name", |
| | | value: "id", |
| | | }, |
| | | change: ({ value, column, item, dic }) => { |
| | | change: ({ |
| | | value, |
| | | column, |
| | | item, |
| | | dic |
| | | }) => { |
| | | this.curPeopleDetails = {} |
| | | |
| | | if (value) { |
| | |
| | | videoUploadPercent: '' |
| | | } |
| | | }, |
| | | watch: { |
| | | }, |
| | | watch: {}, |
| | | computed: { |
| | | ...mapGetters(["permission", "userInfo"]), |
| | | permissionList () { |
| | |
| | | let imageList = row.imageUrls |
| | | |
| | | if (row.taskRepairAppraiseList.length) { |
| | | return [ |
| | | { |
| | | return [{ |
| | | createTime: row.createTime, |
| | | mobile: row.phone, |
| | | name: row.realName, |
| | |
| | | } |
| | | ] |
| | | } else { |
| | | return [ |
| | | { |
| | | return [{ |
| | | createTime: row.createTime, |
| | | mobile: row.phone, |
| | | name: row.realName, |
| | |
| | | let content = '' |
| | | |
| | | if (form.peopleType == 0) { |
| | | content = `事件已移交至 网格员 李伟` |
| | | content = `事件已移交至 网格员 ${this.curPeopleDetails.name}` |
| | | } else if (form.peopleType == 2) { |
| | | content = `事件已移交至 物业公司人员 ${this.curPeopleDetails.distictName || ''}${this.curPeopleDetails.name}` |
| | | } |
| | |
| | | this.onLoad(this.page, this.query) |
| | | }, |
| | | onLoad (page, params = {}) { |
| | | const { dateTime } = this.query |
| | | const { |
| | | dateTime |
| | | } = this.query |
| | | let values = { |
| | | ...params, |
| | | } |