You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rcgy_xmf_qrcode/css/chunk-a6819184.d7af5773.css...

1 line
16 KiB

{"version":3,"sources":["webpack:///src/views/butler/components/complainPraise/src/views/butler/components/complainPraise/details.vue","webpack:///src/views/butler/page/src/views/butler/page/complainPraise.vue"],"names":[],"mappings":"AAwMA,iCACA,oBAAA,CACA,gBAAA,CACA,4BACA,CACA,4BACA,YACA,CACA,gCACA,YAAA,CACA,wBAAA,CACA,SACA,CACA,6CACA,aAAA,CACA,YAAA,CACA,kBAAA,CACA,MACA,CCzNA,uBACA,WAAA,CACA,WAAA,CACA,gBAAA,CACA,kBAAA,CACA,iBAAA,CACA,UAAA,CACA,wBACA","file":"chunk-a6819184.d7af5773.css","sourcesContent":["<template>\n <div>\n <el-drawer title=\"咨询建议\"\n :visible.sync=\"isVisibleDrawe\"\n size=\"58%\"\n :before-close=\"close\">\n <div class=\"drawer-box\"\n v-if=\"isVisibleDrawe\">\n\n <div class=\"dra-body\">\n <div class=\"dra-content\">\n <div class=\"content-titel\">\n <span>基本信息</span>\n </div>\n <div class=\"\">\n <el-form label-position=\"right\"\n label-width=\"100px\"\n size=\"small\">\n <el-form-item label=\"类型\"\n style=\"width:100%\">\n <span v-if=\"detailData.type ===3\">投诉</span>\n <span v-if=\"detailData.type ===4\">表扬</span>\n </el-form-item>\n <el-form-item label=\"内容\"\n style=\"width:100%\">\n <span>{{detailData.content}}</span>\n </el-form-item>\n <el-form-item label=\"照片\"\n v-if=\"detailData.imgUrl!==null\"\n style=\"width:100%\">\n <el-image style=\"width: 140px; height: 100px\"\n :src=\"`${$ImgUrl}${detailData.imgUrl[0].url}`\"\n fit=\"scale-down\"></el-image>\n </el-form-item>\n <el-form-item label=\"反馈内容\"\n v-if=\"detailData.voUserAdviceDetailList.length!==0\"\n style=\"width:100%\">\n <template>\n <div class=\"table_box\"\n v-for=\"(item,index) in detailData.voUserAdviceDetailList\"\n :key='index'>\n <div>\n <p>{{item.createName}}</p>\n <p>{{item.createDate}}</p>\n </div>\n <div class=\"content_item\">\n <p>{{item.content}}</p>\n </div>\n </div>\n </template>\n\n </el-form-item>\n <el-form-item label=\"星级评分\"\n v-if=\"rateNum\"\n style=\"width:100%\">\n <el-rate v-model=\"rateNum\"\n :colors=\"colors\"\n disabled></el-rate>\n </el-form-item>\n </el-form>\n </div>\n </div>\n <div class=\"dra-content\">\n <div class=\"content-titel\">\n <span>回复反馈</span>\n </div>\n <div class=\"\">\n <el-form label-position=\"right\"\n label-width=\"100px\"\n size=\"small\">\n <el-form-item label=\"反馈\"\n style=\"width:100%\">\n <el-input type=\"textarea\"\n :autosize=\"{ minRows: 6}\"\n placeholder=\"请输入内容\"\n v-model=\"content\">\n </el-input>\n\n </el-form-item>\n </el-form>\n </div>\n </div>\n </div>\n <div class=\"dra-footer\">\n <div class=\"dra-footer-content\">\n <button class=\"dra-submit el-icon-circle-check\"\n @click=\"submit\"><span>提交</span></button>\n <button class=\"dra-cancel\"\n @click=\"close\"><span>关闭</span></button>\n </div>\n </div>\n </div>\n </el-drawer>\n </div>\n</template>\n<script>\nimport { complaintPraiseFindById, complaintPraiseInsertDetail } from '@/api/butler'\nexport default {\n props: {\n drawerVrisible: {\n type: Boolean,\n default: false,\n },\n suggestId: {\n type: Number,\n default: () => 0,\n }\n },\n mounted () {\n\n },\n data () {\n return {\n detailData: {\n id: 1,\n type: null,\n score: null,\n imgUrl: null,\n voUserAdviceDetailList: [],\n },\n isVisibleDrawe: false,\n content: '',\n colors: ['#FB4702', '#FB4702', '#FB4702'],\n rate: 5,\n }\n },\n computed: {\n rateNum () {\n let rate = 0\n if (this.detailData.score) {\n rate = this.detailData.score / 2\n }\n return rate\n }\n },\n methods: {\n close () {\n this.content = null\n this.$emit('handleClose', \"Close\")\n },\n submit () {\n let pId = 0\n if (this.detailData.voUserAdviceDetailList.length > 0) {\n pId = this.detailData.voUserAdviceDetailList[0].id\n }\n let resData = {\n adviceId: this.detailData.id,\n content: this.content,\n parentId: pId,\n createUserType: 3,\n }\n console.log(resData)\n complaintPraiseInsertDetail(resData).then(result => {\n console.log(result)\n if (result.status) {\n this.$message({\n message: result.message,\n type: 'success'\n })\n this.close()\n } else {\n this.$message({\n message: result.message,\n type: 'error'\n })\n }\n })\n },\n getDetails (id) {\n if (id) {\n let resData = {\n id: id\n }\n complaintPraiseFindById(resData).then(res => {\n console.log(res)\n this.detailData = res.voFindByIdAdvice\n this.detailData.voUserAdviceDetailList = res.voFindByIdAdvice.voUserAdviceDetailList ? res.voFindByIdAdvice.voUserAdviceDetailList : []\n })\n }\n }\n },\n // 返回详情弹窗\n watch: {\n drawerVrisible: {\n handler (newValue) {\n this.isVisibleDrawe = newValue\n console.log(newValue)\n },\n immediate: true\n },\n suggestId: {\n handler (newValue) {\n this.getDetails(newValue)\n },\n immediate: true\n },\n }\n}\n</script>\n<style scoped>\n.content-titel2 {\n margin: 0px 0px 20px 30px;\n padding-top: 30px;\n border-top: 1px solid #e8e8e8;\n}\n.table_box {\n display: flex;\n}\n.table_box > div {\n padding: 14px;\n border: 1px solid #f5f5f6;\n width: 25%;\n}\n.table_box > div.content_item {\n border-left: 0;\n display: flex;\n align-items: center;\n flex: 1;\n}\n</style>\n","<style scoped>\n.tips {\n margin: 20px;\n height: 38px;\n line-height: 38px;\n background: #fafafa;\n border-radius: 4px;\n opacity: 0.8;\n border: 1px solid #e8e8e8;\n}\n</style>\n<template>\n <div class=\"main-content\">\n <div class=\"main-titel\">\n <span>投诉表扬</span>\n </div>\n <div class=\"tips\">\n <p>\n <span class=\"el-icon-warning-outline\"\n style=\"margin:0 12px\"></span>\n 温馨提示:今日新增投诉\n <span style=\"color:rgba(251, 71, 2, 1)\">{{countComplaintNew}}</span>\n 条,表扬 <span style=\"color:rgba(251, 71, 2, 1)\">{{countPraiseNew}}</span>条\n </p>\n </div>\n <div class=\"content\">\n <!-- 查询重制 -->\n <VueTable ref=\"table\"\n :config='config'\n @tableCheck=\"tableCheck\">\n <template v-slot:score=\"slotData\">\n <div>\n <el-rate :value=\"slotData.data.score/2\"\n :colors=\"colors\"\n disabled></el-rate>\n </div>\n </template>\n <template slot=\"footer\">\n <div class=\"table-footer\">\n <!-- <button @click=\"details(table_row)\">详情</button> -->\n <button @click=\"details(table_row)\">回复</button>\n <button @click=\"del(table_row)\">删除</button>\n </div>\n </template>\n </VueTable>\n </div>\n <!-- 详情 -->\n <drawerDetails :drawerVrisible='drawer_details'\n :suggestId='suggestId'\n @handleClose='getClose'></drawerDetails>\n </div>\n</template>\n\n<script>\nimport drawerDetails from '@/views/butler/components/complainPraise/details.vue'\n// adviceCountComplaintNew\nimport { adviceCountComplaintNew, adviceCountPraiseNew } from '@/api/butler'\nexport default {\n data() {\n return {\n table_row: [],\n countComplaintNew: 0,\n countPraiseNew: 0,\n colors: ['#FB4702', '#FB4702', '#FB4702'],\n suggestId: null,\n drawer_details: false,\n config: {\n thead: [\n { label: '序号', type: 'index', width: '80' },\n { label: '内容', prop: 'content', width: '350' },\n {\n label: '类型',\n prop: 'type',\n width: 'auto',\n type: 'function',\n callback: (row, prop) => {\n switch (row.type) {\n case 1:\n return '咨询'\n break\n case 2:\n return '建议'\n break\n case 3:\n return '投诉'\n break\n case 4:\n return '表扬'\n break\n default:\n break\n }\n }\n },\n { label: '发布人', prop: 'releaseName', width: 'auto' },\n { label: '发布时间', prop: 'releaseDate', width: 'auto' },\n {\n label: '状态',\n prop: 'status',\n width: 'auto',\n type: 'function',\n callback: (row, prop) => {\n switch (row.status) {\n case 1:\n return '未反馈'\n case 2:\n return '反馈中'\n break\n case 3:\n return '已反馈'\n break\n\n default:\n break\n }\n }\n },\n {\n label: '星级',\n prop: 'score',\n width: '180',\n type: 'slot',\n slotName: 'score'\n },\n {\n label: '最后一次回复/提问时间',\n prop: 'lastFeedBackDate',\n width: '280'\n }\n ],\n url: 'complaintPraiseList',\n table_data: [],\n search_item: [\n {\n type: 'startDate',\n label: '发布开始时间',\n placeholder: '请选择开始日期',\n prop: 'releaseDateStart'\n },\n {\n type: 'endDate',\n label: '发布结束时间',\n placeholder: '请选择结束时间',\n prop: 'releaseDateEnd'\n },\n {\n type: 'select',\n label: '类型',\n placeholder: '请选择',\n prop: 'type',\n options: [\n { value: 3, label: '投诉' },\n { value: 4, label: '表扬' }\n ]\n },\n {\n type: 'Input',\n label: '发布人',\n placeholder: '请选择',\n prop: 'releaseName'\n },\n {\n type: 'select',\n label: '状态',\n placeholder: '请选择',\n prop: 'status',\n options: [\n { value: 1, label: '未反馈' },\n { value: 2, label: '反馈中' },\n { value: 3, label: '已反馈' }\n ]\n }\n\n // {\n // type: 'Input',\n // label: '评分',\n // placeholder: '单元/楼栋/房号',\n // prop: 'score',\n // },\n ],\n data: {\n pageNum: 1,\n size: 10\n }\n }\n }\n },\n components: {\n drawerDetails\n },\n created() {\n this.getTipsData()\n },\n methods: {\n getTipsData() {\n // 查询今日咨询条数\n adviceCountComplaintNew().then((result) => {\n console.log(result)\n this.countComplaintNew = result.countComplaintNew\n })\n adviceCountPraiseNew().then((result) => {\n console.log(result)\n this.countPraiseNew = result.countPraiseNew\n })\n //\n },\n tableCheck(arr) {\n this.table_row = arr\n },\n details(data) {\n if (data.length) {\n if (data.length > 1) {\n this.$message({\n message: '只能操作单个数据',\n type: 'error'\n })\n return\n }\n this.suggestId = data[0].id\n this.drawer_details = true\n } else {\n this.$message({\n message: '请选择需要操作的数据',\n type: 'error'\n })\n }\n },\n // 删除\n del(data) {\n if (data.length) {\n let arr = []\n for (let i = 0; i < this.table_row.length; i++) {\n arr.push(this.table_row[i].id)\n }\n this.$confirm('是否确认删除?删除不可恢复', '删除', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n confirmButtonClass: 'confirmButton',\n cancelButtonClass: 'cancelButton'\n })\n .then(() => {\n this.$refs.table.tableDelete(arr)\n })\n .catch((action) => {})\n } else {\n this.$message.error('请选中需要删除的数据')\n }\n },\n // 关闭抽屉\n getClose(data) {\n this.drawer_details = false\n this.suggestId = null\n this.getTipsData()\n }\n }\n}\n</script>\n"]}