Shannon_mu 3 роки тому
батько
коміт
66bc8627ee

+ 1 - 1
operationSupport/src/components/common/Header.vue

@@ -1,6 +1,6 @@
 <template>
     <div class="header" :class="[collapse ? 'collapse' : 'expand']">
-        <div class="el-fl-left"><v-tags></v-tags></div>
+        <v-tags></v-tags>
         <div class="header-right">
             <div class="header-user-con">
                 <div class="formulation" @click="formulationToPage" v-if="permissionFiltering">

+ 1 - 4
operationSupport/src/utils/utils.js

@@ -150,14 +150,11 @@ Vue.prototype.__exportExcel = (
   const httpReg = /(http|https):\/\/([\w.]+\/?)\S*/;
   let urlStr = httpReg.test(url) ? `${url}&` : `${url}?`;
   _.mapKeys(params, (val, key) => {
-
-    if (!_.isEmpty(String(val)) && val) {
+    if (!_.isEmpty(String(val)) && (val == 0 || val)) {
       urlStr += `${key}=${val}&`;
     }
   });
-
   link.href = `${urlStr}access_token=${token}`;
-
   document.body.appendChild(link);
   link.click();
 };

+ 24 - 6
operationSupport/src/views/newWorkBench/components/pendingComplaints.vue

@@ -3,7 +3,9 @@
     <div class="modelBlock">
         <div class="model-title">
             <div class="model-title-text">待处理投诉</div>
-            <div class="buttons" @click="toPage"><span class="text">查看更多</span> <span class="triangle"></span></div>
+            <div class="buttons" @click="$router.push({ path: '/propertyManagement/index' })">
+                <span class="text">查看更多</span> <span class="triangle"></span>
+            </div>
         </div>
         <div class="model-content">
             <div class="listInformation" v-for="(item, index) in datas" :key="index">
@@ -15,7 +17,7 @@
                     <div>投诉内容:{{ item.content }}</div>
                     <div>投诉时间:{{ item.createDate }}</div>
                 </div>
-                <div class="listInformation_operation"><span @click="toPage" class="zoniot_font zoniot-icon-chuli"></span></div>
+                <div class="listInformation_operation"><span @click="toPage(item)" class="zoniot_font zoniot-icon-chuli"></span></div>
             </div>
             <div v-if="datas.length <= 0" class="noData">暂无数据</div>
         </div>
@@ -27,7 +29,8 @@ export default {
         return {
             mixins_query: {
                 pageNum: 1,
-                pageSize: 3
+                pageSize: 3,
+                handleStatus: 1
             },
             datas: []
         };
@@ -51,9 +54,24 @@ export default {
                 })
                 .catch((err) => {});
         },
-        toPage() {
-            this.$router.push({
-                path: '/propertyManagement/index'
+        toPage(row) {
+            new Promise((resolve) => {
+                this.$store.dispatch('addPopup', {
+                    url: '/propertyManagement/stepPage/indexEdit.vue',
+                    width: '700px',
+                    height: '650px',
+                    props: {
+                        row,
+                        callback: resolve
+                    },
+                    showResetButton: row.handleStatus == 1 || row.handleStatus == 3 ? true : false,
+                    showConfirmButton: row.handleStatus == 1 || row.handleStatus == 3 ? false : true,
+                    showCancelButton: row.handleStatus == 1 || row.handleStatus == 3 ? true : false,
+                    confirmButtonText: '提交',
+                    title: '投诉建议'
+                });
+            }).then(() => {
+                this.mixins_search();
             });
         }
     }

+ 1 - 2
operationSupport/src/views/payService/statisticalReport/paymentDetails.vue

@@ -84,8 +84,7 @@ export default {
         };
     },
     created() {
-        // console.log(this.params);
-        this.mixins_query = Object.assign(this.params.mixins_query,{houseId:this.params.row.houseId}) ;   
+        this.mixins_query = Object.assign({ houseId: this.params.row.houseId, paymentMethod: -1 }, this.params.mixins_query);
         this.mixins_dataUrl = '/sc-charge/charge/bill/page';
         this.mixins_search();
     },

+ 8 - 72
operationSupport/src/views/performanceManagement/performanceStatistics/components/kpiStatistics.vue

@@ -74,16 +74,6 @@
                 @page-change="pageChange"
                 @selection-change="selectionChange"
             >
-                <template slot="currentTaskName" slot-scope="scope">
-                    <span v-if="scope.row.planStatus === 2">完成</span>
-                    <span v-else-if="scope.row.planStatus === 3">终止</span>
-                    <span v-else>{{ scope.row.currentTaskName }}</span>
-                </template>
-                <template slot="opt" slot-scope="scope">
-                    <i @click="routingdetail('edit', scope.row)" class="iconfont" style="color: #2787f1" v-txt-tip data-txt="详情"
-                        >&#xe77d;</i
-                    >
-                </template>
             </zz-table>
         </div>
     </div>
@@ -148,9 +138,7 @@ export default {
                     prop: 'cycle'
                 }
             ],
-            taskTypeList: [],
-            selectRow: [],
-            dialogMapVisible: false
+            selectRow: []
         };
     },
     methods: {
@@ -227,60 +215,6 @@ export default {
             this.mixins_post = 'post';
             this.mixins_search();
         },
-        //详情
-        routingdetail(tip, item) {
-            let row = {},
-                notip = 'none',
-                showConfirmButton = true, //确定按钮关闭
-                agree = this.$agree, //同意按钮默认关闭
-                reject = this.$reject, //驳回按钮默认关闭
-                replayTrack = this.$replayTrack, //轨迹回放
-                title = '任务详情',
-                termiNation = this.$termiNation; //终止按钮
-            if (item.planStatus === 3 || item.planStatus === 2) {
-                termiNation = false; //终止之后关闭按钮
-            } else {
-                termiNation = this.$termiNation; //根据权限展示
-            }
-            new Promise((resolve) => {
-                if (tip === 'edit') {
-                    title = '任务详情';
-                    row = item;
-                    this.$http.get('/workflow/task/plan/pending/power', { id: item.id }).then(({ status, data, msg }) => {
-                        if (data === false) {
-                            agree = false;
-                            reject = false;
-                        } else {
-                            agree = this.$agree;
-                            reject = this.$reject;
-                        }
-                        resolve();
-                    });
-                }
-            }).then(() => {
-                new Promise((resolve) => {
-                    this.$store.dispatch('openModal', {
-                        url: '/routingInspectionManage/taskManagement/popups/allTaskPopup.vue',
-                        width: '1040px',
-                        height: '844px',
-                        props: {
-                            data: row,
-                            todo: tip,
-                            callback: resolve
-                        },
-                        title: title,
-                        notip: notip,
-                        showConfirmButton: showConfirmButton,
-                        agree: agree,
-                        reject: reject,
-                        replayTrack: replayTrack,
-                        termiNation: termiNation
-                    });
-                }).then(() => {
-                    this.mixins_search();
-                });
-            });
-        },
         exportExcel() {
             let params = {};
             switch (this.mixins_query.cycle) {
@@ -309,11 +243,13 @@ export default {
             } else {
                 params = this.mixins_query;
             }
-            this.$http.post('/sc-community/evaluation/result/export/excel', params).then(({ status, data, msg }) => {
-                if (status === 0 && data) {
-                    window.location.href = this.envConfig.baseExcelApi + data;
-                }
-            });
+            this.__exportExcel('/sc-community/evaluation/result/export/excel', params);
+            // this.$http.get('/sc-community/evaluation/result/export/excel', params).then(({ status, data, msg }) => {
+            //     debugger;
+            //     if (status === 0 && data) {
+            //         window.location.href = this.envConfig.baseExcelApi + data;
+            //     }
+            // });
         }
     },
     created() {

+ 24 - 315
operationSupport/src/views/propertyManagement/index.vue

@@ -9,7 +9,7 @@
                 v-model.trim="mixins_query.likeValue"
             ></el-input>
             <el-select placeholder="请选择所属社区" v-model="mixins_query.communityId" clearable>
-                <el-option v-for="(item, index) in communityList" :key="index" :label="item.label" :value="item.id"></el-option>
+                <el-option v-for="(item, index) in communityList" :key="index" :label="item.communityName" :value="item.id"></el-option>
             </el-select>
             <el-select placeholder="请选择投诉类型" v-model="mixins_query.type" clearable>
                 <el-option v-for="(item, index) in complaintType" :key="index" :label="item.label" :value="item.status">{{
@@ -64,153 +64,6 @@
                     </template>
                 </zz-table>
             </div>
-            <!-- 详情弹框 -->
-            <el-dialog title="投诉建议" :visible.sync="centerDialogVisible" width="700px">
-                <div class="complaint">
-                    <div v-if="rowData">
-                        <div class="complaint-title">
-                            <div class="complaint-title-left"></div>
-                            <span class="complaint-title-right">投诉建议信息</span>
-                        </div>
-                        <p class="complaint-content">
-                            <span>
-                                <span class="complaint-content-left">所属社区:</span>
-                                <span class="complaint-content-right">{{ rowData.communityName }}</span>
-                            </span>
-                            <span>
-                                <span class="complaint-content-left">地址:</span>
-                                <span class="complaint-content-right"
-                                    >{{ rowData.buildingName }}{{ rowData.unitName }}{{ rowData.roomNumber }}</span
-                                >
-                            </span>
-                        </p>
-                        <p class="complaint-content">
-                            <span>
-                                <span class="complaint-content-left" style="margin-left: 12px">投诉人:</span>
-                                <span class="complaint-content-right">{{ rowData.userName }}</span>
-                            </span>
-                            <span>
-                                <span class="complaint-content-left">手机号:</span>
-                                <span class="complaint-content-right">{{ rowData.phone }}</span>
-                            </span>
-                        </p>
-                        <p class="complaint-content">
-                            <span>
-                                <span class="complaint-content-left">投诉类型:</span>
-                                <span class="complaint-content-right">{{ rowData.typeDict }}</span>
-                            </span>
-                            <span>
-                                <span class="complaint-content-left">投诉时间:</span>
-                                <span class="complaint-content-right">{{ rowData.createDate }}</span>
-                            </span>
-                        </p>
-                        <div class="complaint-content">
-                            <span>
-                                <span class="complaint-content-left">投诉内容:</span>
-                                <span class="complaint-content-right" style="margin: 0">{{ rowData.content }}</span>
-                            </span>
-                        </div>
-                        <div class="complaint-images complaint-content">
-                            <span class="complaint-content-left">图片/视频:</span>
-                            <span v-if="mediaList.length > 0">
-                                <span v-for="(item, index) in mediaList" :key="index">
-                                    <span v-if="typeVideo(item)">
-                                        <video class="images videos" :src="item" @click="lookVideos(item)"></video>
-                                    </span>
-                                    <span v-else>
-                                        <el-image class="images" :src="item" :preview-src-list="[item]"></el-image>
-                                    </span>
-                                </span>
-                            </span>
-                            <span v-else> 暂无图片 </span>
-                        </div>
-                    </div>
-                    <div class="complaint-title">
-                        <div class="complaint-title-left"></div>
-                        <span class="complaint-title-right">处理记录</span>
-                    </div>
-                    <div class="record">
-                        <div class="recored-detali" v-if="rowData">
-                            <!-- v-for="(item, index) in 3" :key="index" -->
-                            <div v-for="(item, index) of recordData" :key="index">
-                                <div class="recored-detali-row last-row">
-                                    <div>
-                                        <img class="circle" src="../../assets/img/point_yiwancheng@2x.png" alt="" />
-                                        <span>{{ item.replyTime }}</span>
-                                    </div>
-                                </div>
-                                <div class="recored-detali-rows">
-                                    <!-- rowData.handleStatus != 1 &&  ((index == 0 && recordData.length != 1) || (index == 1 && recordData.length > 2)) -->
-                                    <div class="record-left" v-show="recordData.length > 1 && index != recordData.length - 1"></div>
-                                    <span class="font-size-small"
-                                        >{{ item.replyUserName }}:&nbsp;&nbsp;&nbsp;{{ item.replyContent ? item.replyContent : '--' }}</span
-                                    >
-                                </div>
-                            </div>
-                            <div :class="{ 'last-row-right': true, statusColor: rowData.handleStatus == '1' }">
-                                {{ rowData.handleStatus | filterComplaintStatus }}
-                            </div>
-                        </div>
-                    </div>
-                    <template v-if="rowData.handleStatus == 1 || rowData.handleStatus == 3">
-                        <el-form :model="replayForm" :rules="rules" ref="replayForm" label-width="80px" class="demo-ruleForm">
-                            <el-form-item label="处理状态" prop="status" class="replay">
-                                <el-select
-                                    v-model="placeholderHandleStatus"
-                                    clearable
-                                    :disabled="rowData.handleStatus == 2 || rowData.handleStatus == 4 || rowData.handleStatus == 5"
-                                >
-                                    <el-option
-                                        v-for="(item, index) in replayForm.complaintStatus"
-                                        :key="index"
-                                        :label="item.label"
-                                        :value="item.status"
-                                    ></el-option>
-                                </el-select>
-                            </el-form-item>
-                            <el-form-item
-                                label="物业回复"
-                                prop="replay"
-                                class="replay"
-                                v-if="rowData.handleStatus == 1 || rowData.handleStatus == 3"
-                            >
-                                <el-input
-                                    v-model="replayForm.replay"
-                                    type="textarea"
-                                    placeholder="请输入回复内容"
-                                    maxlength="100"
-                                    rows="3"
-                                    show-word-limit
-                                ></el-input>
-                            </el-form-item>
-                            <el-form-item class="dialog-footer">
-                                <span>
-                                    <el-button type="primary" plain @click="dialogButton('clear')">重置</el-button>
-                                    <el-button type="primary" @click="dialogButton('submit')">提交</el-button>
-                                </span>
-                            </el-form-item>
-                        </el-form>
-                    </template>
-                    <!--用户 评价 -->
-                    <div v-if="rowData.handleStatus == 5" class="grate">
-                        <div class="complaint-title">
-                            <div class="complaint-title-left"></div>
-                            <span class="complaint-title-right grate-rate-title">用户评价</span>
-                        </div>
-                        <div class="grate-rate">
-                            <i
-                                class="el-icon-star-on"
-                                style="color: #ffca3b; font-size: 26px; margin-right: 10px"
-                                v-for="(item, index) in rowData.evaluation"
-                                :key="index"
-                            ></i>
-                            <div class="grate-text">
-                                {{ rowData.evaluationContent }}
-                            </div>
-                        </div>
-                    </div>
-                </div>
-            </el-dialog>
         </div>
     </div>
 </template>
@@ -220,35 +73,7 @@ import list from '@utils/list.js';
 export default {
     mixins: [list],
     data() {
-        let _this = this;
         return {
-            placeholderHandleStatus: 0,
-            // 处理记录
-            recordData: [],
-            // 视频获得焦点
-            videoControls: false,
-            mediaList: [],
-            // 物业回复
-            replayForm: {
-                replay: '',
-                // 投诉状态
-                complaintStatus: [
-                    {
-                        status: 3,
-                        label: '处理中'
-                    },
-                    {
-                        status: 4,
-                        label: '已处理'
-                    }
-                ]
-            },
-            rules: {
-                complaintStatus: [{ required: true, message: '请选择处理状态', trigger: 'change' }],
-                replay: [{ required: true, message: '请输入内容', trigger: 'blur' }]
-            },
-            // 输入地址
-            location: '',
             //社区列表
             communityList: [],
             // 投诉类型
@@ -356,13 +181,7 @@ export default {
                     slot: 'opt'
                 }
             ],
-            mixins_post: 'post',
-            // 显隐弹框
-            centerDialogVisible: false,
-            // 行数据
-            rowData: '',
-            // 回复详情记录
-            compRecode: ''
+            mixins_post: 'post'
         };
     },
     created() {
@@ -372,46 +191,6 @@ export default {
     },
     mounted() {},
     methods: {
-        typeVideo(str) {
-            let type = str.slice(str.lastIndexOf('.') + 1, str.length);
-            let videoType = ['mp4'];
-            return videoType.includes(type);
-        },
-        lookVideos(src) {
-            new Promise((resolve) => {
-                this.$store.dispatch('addPopup', {
-                    url: '/lookVideo.vue',
-                    width: '600px',
-                    height: '500px',
-                    props: {
-                        src: src,
-                        callback: resolve
-                    },
-                    showConfirmButton: true,
-                    showCancelButton: true,
-                    hideStar: true,
-                    title: '查看视频'
-                });
-            }).then(() => {
-                this.mixins_search();
-            });
-        },
-        /** 点击播放视频*/
-        clickVideo() {
-            this.videoControls = !this.videoControls;
-            if (this.videoControls) {
-                try {
-                    if (document.pictureInPictureElement) {
-                        document.exitPictureInPicture();
-                    } else {
-                        video.requestPictureInPicture();
-                    }
-                } catch (err) {
-                    // Video failed to enter/leave Picture-in-Picture mode.
-                    console.log('浏览器不支持播放');
-                }
-            }
-        },
         timeToggle(e) {
             let start = '00:00:00',
                 end = '23:59:59';
@@ -423,107 +202,37 @@ export default {
                 this.mixins_query.endTime = ``;
             }
         },
-        /**
-         *  弹框按钮
-         */
-        dialogButton(type) {
-            if (type === 'submit') {
-                // console.log('点击保存', this.rowData);
-                this.$refs['replayForm'].validate((valid) => {
-                    if (valid) {
-                        let query = {
-                            buildingId: this.rowData.buildingId,
-                            communityId: this.rowData.communityId,
-                            content: '',
-                            handleStatus: this.placeholderHandleStatus == '处理中' ? 3 : 4,
-                            houseId: this.rowData.houseId,
-                            id: this.rowData.id
-                        };
-                        this.$http.post('/sc-community-web/feedback/update', query).then((res) => {
-                            // this.message(res.status, '回复');
-                            // console.log('点击提交', res, this.mixins_query.complaintStatus, this.replayForm.replay);
-                        });
-                        let querys = {
-                            fid: this.rowData.id,
-                            replyContent: this.replayForm.replay
-                        };
-                        this.$http.post('/sc-community-web/feedback/speed/add', querys).then((res) => {
-                            this.message(res.status, res.msg);
-                            this.$refs['replayForm'].resetFields();
 
-                            console.log('点击提交', res, this.placeholderHandleStatus, this.replayForm.replay);
-                        });
-                    } else {
-                        return false;
-                    }
-                });
-            } else {
-                this.placeholderHandleStatus = '';
-                this.$refs['replayForm'].resetFields();
-            }
-        },
-        complaintStatus(val) {
-            val = val == 1 || val == 3 ? '处理中' : '已处理';
-            return val;
-        },
         /** 获取社区列表*/
         getCommunityList() {
-            this.communityList = [];
-            let onOption = '';
-            this.$http.get('/sc-community/assets/community/list', {}).then((res) => {
-                console.log('获取社区列表', res);
-                res.data.map((res) => {
-                    onOption = {
-                        label: res.communityName,
-                        id: res.id
-                    };
-                    this.communityList.push(onOption);
-                });
+            this.$http.get('/sc-community/assets/community/list').then(({ data, msg, status }) => {
+                if (status == 0) {
+                    this.communityList = data;
+                    this.$store.commit('setAreaSelect', data);
+                }
             });
         },
         /** 查看处理详情*/
         clickEdit(row) {
-            this.mediaList = [];
-            // 获取处理内容
-            this.$http.post(`/sc-community-web/feedback/find/${row.id}`).then((res) => {
-                if (res.status === 0) {
-                    this.rowData = res.data;
-                    this.placeholderHandleStatus = this.complaintStatus(this.rowData.handleStatus);
-                    this.centerDialogVisible = true;
-                    if (!!this.$refs['replayForm']) {
-                        this.$refs['replayForm'].resetFields();
-                    }
-                    if (res.data.imageUrl.length > 0) {
-                        this.mediaList = res.data.imageUrl.split(',');
-                    }
-                } else {
-                    this.$message.error(msg);
-                }
-            });
-            let query = {
-                fid: row.id
-            };
-            // 获取处理记录
-            this.$http.get('/sc-community-web/feedback/speed/list', query).then((res) => {
-                this.recordData = res.data;
-            });
-        },
-        /**提示消息 */
-        message(status, text) {
-            if (status === 0) {
-                this.$message({
-                    message: `${text}`,
-                    type: 'success'
+            new Promise((resolve) => {
+                this.$store.dispatch('addPopup', {
+                    url: '/propertyManagement/stepPage/indexEdit.vue',
+                    width: '700px',
+                    height: '650px',
+                    props: {
+                        row,
+                        callback: resolve
+                    },
+                    showResetButton: row.handleStatus == 1 || row.handleStatus == 3 ? true : false,
+                    showConfirmButton: row.handleStatus == 1 || row.handleStatus == 3 ? false : true,
+                    showCancelButton: row.handleStatus == 1 || row.handleStatus == 3 ? true : false,
+                    confirmButtonText: '提交',
+                    hideStar: row.handleStatus == 1 || row.handleStatus == 3 ? false : true,
+                    title: '投诉建议'
                 });
-                this.centerDialogVisible = false;
-                this.dialogVisibleDelete = false;
+            }).then(() => {
                 this.mixins_search();
-            } else {
-                this.$message({
-                    message: `${text}`,
-                    type: 'error'
-                });
-            }
+            });
         }
     }
 };

+ 272 - 0
operationSupport/src/views/propertyManagement/stepPage/indexEdit.vue

@@ -0,0 +1,272 @@
+<template>
+    <div class="complaint">
+        <div v-if="rowData">
+            <div class="complaint-title">
+                <div class="complaint-title-left"></div>
+                <span class="complaint-title-right">投诉建议信息</span>
+            </div>
+            <p class="complaint-content">
+                <span>
+                    <span class="complaint-content-left">所属社区:</span>
+                    <span class="complaint-content-right">{{ rowData.communityName }}</span>
+                </span>
+                <span>
+                    <span class="complaint-content-left">地址:</span>
+                    <span class="complaint-content-right">{{ rowData.buildingName }}{{ rowData.unitName }}{{ rowData.roomNumber }}</span>
+                </span>
+            </p>
+            <p class="complaint-content">
+                <span>
+                    <span class="complaint-content-left" style="margin-left: 12px">投诉人:</span>
+                    <span class="complaint-content-right">{{ rowData.userName }}</span>
+                </span>
+                <span>
+                    <span class="complaint-content-left">手机号:</span>
+                    <span class="complaint-content-right">{{ rowData.phone }}</span>
+                </span>
+            </p>
+            <p class="complaint-content">
+                <span>
+                    <span class="complaint-content-left">投诉类型:</span>
+                    <span class="complaint-content-right">{{ rowData.typeDict }}</span>
+                </span>
+                <span>
+                    <span class="complaint-content-left">投诉时间:</span>
+                    <span class="complaint-content-right">{{ rowData.createDate }}</span>
+                </span>
+            </p>
+            <div class="complaint-content">
+                <span>
+                    <span class="complaint-content-left">投诉内容:</span>
+                    <span class="complaint-content-right" style="margin: 0">{{ rowData.content }}</span>
+                </span>
+            </div>
+            <div class="complaint-images complaint-content">
+                <span class="complaint-content-left">图片/视频:</span>
+                <span v-if="mediaList.length > 0">
+                    <span v-for="(item, index) in mediaList" :key="index">
+                        <span v-if="typeVideo(item)">
+                            <video class="images videos" :src="item" @click="lookVideos(item)"></video>
+                        </span>
+                        <span v-else>
+                            <el-image class="images" :src="item" :preview-src-list="[item]"></el-image>
+                        </span>
+                    </span>
+                </span>
+                <span v-else> 暂无图片 </span>
+            </div>
+        </div>
+        <div class="complaint-title">
+            <div class="complaint-title-left"></div>
+            <span class="complaint-title-right">处理记录</span>
+        </div>
+        <div class="record">
+            <div class="recored-detali" v-if="rowData">
+                <div v-for="(item, index) of recordData" :key="index">
+                    <div class="recored-detali-row last-row">
+                        <div>
+                            <img class="circle" src="@assets/img/point_yiwancheng@2x.png" alt="" />
+                            <span>{{ item.replyTime }}</span>
+                        </div>
+                    </div>
+                    <div class="recored-detali-rows">
+                        <div class="record-left" v-show="recordData.length > 1 && index != recordData.length - 1"></div>
+                        <span class="font-size-small"
+                            >{{ item.replyUserName }}:&nbsp;&nbsp;&nbsp;{{ item.replyContent ? item.replyContent : '--' }}</span
+                        >
+                    </div>
+                </div>
+                <div :class="{ 'last-row-right': true, statusColor: rowData.handleStatus == '1' }">
+                    {{ rowData.handleStatus | filterComplaintStatus }}
+                </div>
+            </div>
+        </div>
+        <template v-if="rowData.handleStatus == 1 || rowData.handleStatus == 3">
+            <el-form :model="replayForm" :rules="rules" ref="replayForm" label-width="80px" class="demo-ruleForm">
+                <el-form-item label="处理状态" prop="handleStatus" class="replay">
+                    <el-select
+                        v-model="replayForm.handleStatus"
+                        clearable
+                        :disabled="rowData.handleStatus == 2 || rowData.handleStatus == 4 || rowData.handleStatus == 5"
+                    >
+                        <el-option
+                            v-for="(item, index) in complaintStatus"
+                            :key="index"
+                            :label="item.label"
+                            :value="item.status"
+                        ></el-option>
+                    </el-select>
+                </el-form-item>
+                <el-form-item label="物业回复" prop="replay" class="replay" v-if="rowData.handleStatus == 1 || rowData.handleStatus == 3">
+                    <el-input
+                        v-model="replayForm.replay"
+                        type="textarea"
+                        placeholder="请输入回复内容"
+                        maxlength="100"
+                        rows="3"
+                        show-word-limit
+                    ></el-input>
+                </el-form-item>
+            </el-form>
+        </template>
+        <!--用户 评价 -->
+        <div v-if="rowData.handleStatus == 5" class="grate">
+            <div class="complaint-title">
+                <div class="complaint-title-left"></div>
+                <span class="complaint-title-right grate-rate-title">用户评价</span>
+            </div>
+            <div class="grate-rate">
+                <i
+                    class="el-icon-star-on"
+                    style="color: #ffca3b; font-size: 26px; margin-right: 10px"
+                    v-for="(item, index) in rowData.evaluation"
+                    :key="index"
+                ></i>
+                <div class="grate-text">
+                    {{ rowData.evaluationContent }}
+                </div>
+            </div>
+        </div>
+    </div>
+</template>
+<script>
+export default {
+    props: ['params'],
+    data() {
+        let _this = this;
+        return {
+            // 处理记录
+            recordData: [],
+            // 视频获得焦点
+            videoControls: false,
+            mediaList: [],
+            // 物业回复
+            replayForm: {
+                replay: '',
+                handleStatus: ''
+            },
+            complaintStatus: [
+                {
+                    status: 3,
+                    label: '处理中'
+                },
+                {
+                    status: 4,
+                    label: '已处理'
+                }
+            ],
+            rules: {
+                handleStatus: [{ required: true, message: '请选择处理状态', trigger: 'change' }],
+                replay: [{ required: true, message: '请输入内容', trigger: 'blur' }]
+            },
+            // 行数据
+            rowData: ''
+        };
+    },
+    created() {
+        this.clickEdit(this.params.row);
+    },
+    mounted() {},
+    methods: {
+        typeVideo(str) {
+            let type = str.slice(str.lastIndexOf('.') + 1, str.length);
+            let videoType = ['mp4'];
+            return videoType.includes(type);
+        },
+        lookVideos(src) {
+            new Promise((resolve) => {
+                this.$store.dispatch('addPopup', {
+                    url: '/lookVideo.vue',
+                    width: '600px',
+                    height: '500px',
+                    props: {
+                        src: src,
+                        callback: resolve
+                    },
+                    showConfirmButton: true,
+                    showCancelButton: true,
+                    hideStar: true,
+                    title: '查看视频'
+                });
+            }).then(() => {
+                this.mixins_search();
+            });
+        },
+        /** 点击播放视频*/
+        clickVideo() {
+            this.videoControls = !this.videoControls;
+            if (this.videoControls) {
+                try {
+                    if (document.pictureInPictureElement) {
+                        document.exitPictureInPicture();
+                    } else {
+                        video.requestPictureInPicture();
+                    }
+                } catch (err) {
+                    // Video failed to enter/leave Picture-in-Picture mode.
+                    console.log('浏览器不支持播放');
+                }
+            }
+        },
+        submit() {
+            this.$refs['replayForm'].validate((valid) => {
+                if (valid) {
+                    let query = {
+                        buildingId: this.rowData.buildingId,
+                        communityId: this.rowData.communityId,
+                        content: '',
+                        handleStatus: this.replayForm.handleStatus,
+                        houseId: this.rowData.houseId,
+                        id: this.rowData.id
+                    };
+                    this.$http.post('/sc-community-web/feedback/update', query).then((res) => {});
+                    let querys = {
+                        fid: this.rowData.id,
+                        replyContent: this.replayForm.replay
+                    };
+                    this.$http.post('/sc-community-web/feedback/speed/add', querys).then(({ status, msg }) => {
+                        if (status == 0) {
+                            this.$message.success(msg);
+                            this.params.callback();
+                            this.$emit('close');
+                        } else {
+                            this.$message.error(msg);
+                        }
+                    });
+                }
+            });
+        },
+        reset() {
+            this.$refs['replayForm'].resetFields();
+        },
+        /** 查看处理详情*/
+        clickEdit(row) {
+            this.mediaList = [];
+            // 获取处理内容
+            this.$http.post(`/sc-community-web/feedback/find/${row.id}`).then((res) => {
+                if (res.status === 0) {
+                    this.rowData = res.data;
+                    if (res.data.imageUrl.length > 0) {
+                        this.mediaList = res.data.imageUrl.split(',');
+                    }
+                } else {
+                    this.$message.error(msg);
+                }
+            });
+            let query = {
+                fid: row.id
+            };
+            // 获取处理记录
+            this.$http.get('/sc-community-web/feedback/speed/list', query).then((res) => {
+                this.recordData = res.data;
+            });
+        }
+    }
+};
+</script>
+<style lang="scss" scoped>
+@import '../style.scss';
+/deep/ .el-dialog {
+    margin-top: 5vh !important;
+}
+</style>