| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/vue-loader/lib/index.js??vue-loader-options!/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/view/customer_service/feedbackList.vue?vue&type=script&lang=js&","dependencies":[{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/view/customer_service/feedbackList.vue","mtime":1618306924000},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":1665684022107},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":1665684010704},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":1665684022107},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/vue-loader/lib/index.js","mtime":1665684006084}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\nimport axios from '@/libs/api.request'\nexport default {\n\n name: 'voice',\n data () {\n return {\n promotionId: '',\n agentId: '', // 代理ID\n agentName: '', // 姓名\n showRelieve: false,\n queryDataPage: 1,\n total: 0,\n showVideoModal: false,\n showLevelModal: false,\n feedback_type: '', // 反馈类型\n content: '', // 反馈内容\n textarea: '', // 回复内容\n feedbackId: [], // 反馈id\n startDate: '',\n endDate: '',\n batchdelIDarray: '', // 选中的id数组\n postData: {\n province: '', // 省\n city: '', // 市\n district: '' // 区\n },\n province: '', // 编辑时用到的省id\n provinceList: [], // 省列表\n cityList: [], // 市列表\n districtList: [], // 区列表\n // 查询条件\n queryData: {\n level: '',\n cp_id: '',\n mobile: '',\n pagenum: 15\n },\n discounts: '',\n min_num: '',\n task_num: '',\n levelData: [],\n columns: [{\n type: 'selection',\n width: 60,\n align: 'center'\n },\n {\n title: '代理ID',\n key: 'uid',\n width:100\n },\n {\n title: '手机号',\n key: 'mobile',\n width:120\n },\n {\n title: '当前所在城区',\n key: 'area',\n width:200\n },\n {\n title: '反馈内容',\n key: 'content'\n },\n {\n title: '反馈类型',\n width:100,\n key: 'feedback_type',\n render: (h, params) => {\n if (params.row.feedback_type != undefined) {\n return h('span', params.row.feedback_type == 1 ? '建议' : '投诉')\n }\n }\n },\n {\n title: '日期',\n key: 'created_at',\n width:200,\n },\n {\n title: '操作',\n width: 200,\n key: 'action',\n align: 'center',\n render: (h, params) => {\n return h('div', [\n h('Button', {\n props: {\n size: 'small',\n type: 'primary'\n },\n style: {\n marginTop: '5px',\n marginBottom: '5px',\n marginRight: '10px'\n },\n on: {\n click: () => {\n this.showVideoModal = true\n this.content = params.row.content\n }\n }\n }, '查看'),\n h('Button', {\n props: {\n size: 'small',\n type: 'primary'\n },\n style: {\n marginTop: '5px',\n marginBottom: '5px',\n marginRight: '5px'\n },\n on: {\n click: () => {\n this.showLevelModal = true\n this.feedbackId = []\n this.feedbackId.push(params.row.id)\n this.textarea = params.row.audit_remark\n }\n },\n directives: [\n {\n name: 'opcode',\n value: 'admins/serve/feedback/reply'\n }\n ]\n }, '回复')\n ])\n }\n }\n ],\n tableData: [],\n isSearch: false\n }\n },\n created () {\n this.taskList()\n this.getProvince()\n },\n methods: {\n // 分页\n levelchangepage (res) {\n this.queryDataPage = res\n if (this.isSearch) {\n this.cateadd(this.queryDataPage);\n } else {\n this.taskList()\n }\n },\n // 点击查询\n cateadd (page) {\n var listData = {\n page: page,\n word: this.queryData.mobile,\n province: this.postData.province,\n city: this.postData.city,\n district: this.postData.district,\n startTime: this.startDate,\n feedbackType: this.feedback_type,\n perPage: this.queryData.pagenum\n }\n // 清除对象中的空属性\n listData = this.clearNullData(listData)\n // listData = clearNullData(listData)\n axios\n .request({\n method: 'POST',\n url: '/admins/serve/feedback',\n data: listData\n })\n .then(res => {\n if (res.data.code === 'success') {\n this.$refs['pages'].currentPage = page;\n this.tableData = res.data.data.data\n this.total = res.data.data.total\n this.isSearch = true\n } else {\n this.$Message.error(res.data.message, 'middle')\n }\n })\n },\n // 获取列表信息\n taskList () {\n axios\n .request({\n method: 'POST',\n url: '/admins/serve/feedback',\n data: {\n page: this.queryDataPage,\n perPage: this.queryData.pagenum\n }\n })\n .then(res => {\n if (res.data.code === 'success') {\n this.tableData = res.data.data.data\n this.total = res.data.data.total\n this.isSearch = false\n } else {\n this.$Message.error(res.data.message, 'middle')\n }\n })\n },\n // 省\n getProvince (type) {\n axios.request({\n method: 'GET',\n url: '/admins/area/0'\n }).then((res) => {\n if (res.data.code === 'success') {\n // this.postData.province === '' && (this.postData.province = res.data.data.list[0].id)\n this.provinceList = res.data.data.list\n } else {\n this.$Message.error(res.data.message, 'middle')\n }\n })\n },\n // 市\n getCity () {\n var id = this.postData.province\n axios.request({\n method: 'GET',\n url: '/admins/area/' + id\n }).then((res) => {\n if (res.data.code === 'success') {\n this.cityList = res.data.data.list\n this.postData.city = res.data.data.list[0].id\n this.getDistrict()\n } else {\n this.$Message.error(res.data.message, 'middle')\n }\n })\n },\n // 区\n getDistrict () {\n var id = parseInt(this.$route.query.id)\n axios.request({\n method: 'GET',\n url: '/admins/area/' + this.postData.city\n }).then((res) => {\n if (res.data.code === 'success') {\n this.districtList = res.data.data.list\n this.postData.district = res.data.data.list[0].id\n if (this.$route.query.id) {\n this.postData.district = this.bankList[id].district\n }\n } else {\n this.$Message.error(res.data.message, 'middle')\n }\n })\n },\n // 全选\n selectionClick (data) {\n // 只要选中项发生变化时就会触发\n this.feedbackId = []\n if (data.length !== 0) {\n for (var item of data) {\n this.feedbackId.push(item.id)\n }\n // console.log(this.batchdelIDarray)\n }\n },\n // 批量审核\n batchSccress () {\n if (this.feedbackId.length == 0) {\n this.$Message.warning('请先选择反馈记录', 'middle')\n return\n }\n this.showLevelModal = true\n },\n // 回复内容\n treatyok () {\n axios.request({\n method: 'POST',\n url: '/admins/serve/feedback/reply',\n params: {\n id: this.feedbackId,\n audit_remark: this.textarea\n }\n })\n .then(res => {\n this.$Message.info(res.data.message)\n var that = this\n if (res.data.code === 'success') {\n setTimeout(function () {\n if (that.isSearch) {\n that.cateadd(this.queryDataPage);\n } else {\n that.taskList()\n }\n that.feedbackId = []\n }, 2000)\n }\n })\n },\n // 点击取消\n cancel () {\n this.feedbackId = []\n }\n }\n}\n",{"version":3,"sources":["feedbackList.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"feedbackList.vue","sourceRoot":"src/view/customer_service","sourcesContent":["<template>\n <div>\n <Card>\n <Row>\n <Form ref=\"queryform\" inline :label-width=\"60\">\n <FormItem :label-width=\"0\">\n <Button type=\"primary\" v-opcode=\"'admins/serve/feedback/reply'\" @click=\"batchSccress\">批量回复</Button>\n </FormItem>\n <FormItem prop=\"province\" label=\"地区\">\n <Select placeholder=\"请选择省\" v-model=\"postData.province\" @on-change=\"getCity()\">\n <Option :value=\"item.id\" v-for=\"(item,i) in provinceList\" :key='i'>{{item.name}}</Option>\n </Select>\n </FormItem>\n <FormItem :label-width=\"0\">\n <Select placeholder=\"请选择市\" v-model=\"postData.city\" @on-change=\"getDistrict()\">\n <Option :value=\"item.id\" v-for=\"(item,i) in cityList\" :key='i'>{{item.name}}</Option>\n </Select>\n </FormItem>\n <FormItem :label-width=\"0\">\n <Select placeholder=\"请选择区\" v-model=\"postData.district\">\n <Option :value=\"item.id\" v-for=\"(item,i) in districtList\" :key='i'>{{item.name}}</Option>\n </Select>\n </FormItem>\n <FormItem prop=\"mobile\" label=\"代理\">\n <Input v-model=\"queryData.mobile\" placeholder=\"输入代理手机号\"/>\n </FormItem>\n <FormItem prop=\"mobile\" label=\"反馈类型\">\n <Select placeholder=\"反馈类型\" v-model=\"feedback_type\">\n <Option value=\"\">所有</Option>\n <Option value=\"2\">投诉</Option>\n <Option value=\"1\">建议</Option>\n </Select>\n </FormItem>\n <FormItem :label-width=\"0\">\n <Button type=\"primary\" @click=\"cateadd(1)\">查询</Button>\n </FormItem>\n </Form>\n </Row>\n <Row class=\"mt10\">\n <Table border ref=\"selection\" :columns=\"columns\" :data=\"tableData\" @on-selection-change='selectionClick'>\n </Table>\n </Row>\n <!-- 页码 -->\n <div style=\"margin: 10px;overflow: hidden\">\n <div style=\"float: left;\">\n <Page :total=\"total\" ref=\"pages\" :current=\"queryDataPage\" :page-size=\"queryData.pagenum\"\n @on-change=\"levelchangepage\"></Page>\n </div>\n </div>\n </Card>\n <!-- 查看反馈内容 -->\n <Modal v-model=\"showVideoModal\" title=\"反馈内容\" :mask-closable=\"false\">\n <div>{{content}}</div>\n <div slot=\"footer\">\n <Row type=\"flex\" justify=\"center\">\n <Button @click=\"showVideoModal=false\">关闭</Button>\n </Row>\n </div>\n </Modal>\n <!-- 回复反馈 -->\n <Modal v-model=\"showLevelModal\" title=\"回复内容\" :mask-closable=\"false\" @on-ok=\"treatyok\" @on-cancel=\"cancel\">\n <Form :label-width=\"80\">\n <FormItem label=\"回复内容\">\n <Input v-model=\"textarea\" type=\"textarea\" :autosize=\"{minRows: 2,maxRows: 5}\" placeholder=\"请输入回复的内容\"></Input>\n </FormItem>\n </Form>\n </Modal>\n </div>\n</template>\n\n<script>\n import axios from '@/libs/api.request'\n export default {\n\n name: 'voice',\n data () {\n return {\n promotionId: '',\n agentId: '', // 代理ID\n agentName: '', // 姓名\n showRelieve: false,\n queryDataPage: 1,\n total: 0,\n showVideoModal: false,\n showLevelModal: false,\n feedback_type: '', // 反馈类型\n content: '', // 反馈内容\n textarea: '', // 回复内容\n feedbackId: [], // 反馈id\n startDate: '',\n endDate: '',\n batchdelIDarray: '', // 选中的id数组\n postData: {\n province: '', // 省\n city: '', // 市\n district: '' // 区\n },\n province: '', // 编辑时用到的省id\n provinceList: [], // 省列表\n cityList: [], // 市列表\n districtList: [], // 区列表\n // 查询条件\n queryData: {\n level: '',\n cp_id: '',\n mobile: '',\n pagenum: 15\n },\n discounts: '',\n min_num: '',\n task_num: '',\n levelData: [],\n columns: [{\n type: 'selection',\n width: 60,\n align: 'center'\n },\n {\n title: '代理ID',\n key: 'uid',\n width:100\n },\n {\n title: '手机号',\n key: 'mobile',\n width:120\n },\n {\n title: '当前所在城区',\n key: 'area',\n width:200\n },\n {\n title: '反馈内容',\n key: 'content'\n },\n {\n title: '反馈类型',\n width:100,\n key: 'feedback_type',\n render: (h, params) => {\n if (params.row.feedback_type != undefined) {\n return h('span', params.row.feedback_type == 1 ? '建议' : '投诉')\n }\n }\n },\n {\n title: '日期',\n key: 'created_at',\n width:200,\n },\n {\n title: '操作',\n width: 200,\n key: 'action',\n align: 'center',\n render: (h, params) => {\n return h('div', [\n h('Button', {\n props: {\n size: 'small',\n type: 'primary'\n },\n style: {\n marginTop: '5px',\n marginBottom: '5px',\n marginRight: '10px'\n },\n on: {\n click: () => {\n this.showVideoModal = true\n this.content = params.row.content\n }\n }\n }, '查看'),\n h('Button', {\n props: {\n size: 'small',\n type: 'primary'\n },\n style: {\n marginTop: '5px',\n marginBottom: '5px',\n marginRight: '5px'\n },\n on: {\n click: () => {\n this.showLevelModal = true\n this.feedbackId = []\n this.feedbackId.push(params.row.id)\n this.textarea = params.row.audit_remark\n }\n },\n directives: [\n {\n name: 'opcode',\n value: 'admins/serve/feedback/reply'\n }\n ]\n }, '回复')\n ])\n }\n }\n ],\n tableData: [],\n isSearch: false\n }\n },\n created () {\n this.taskList()\n this.getProvince()\n },\n methods: {\n // 分页\n levelchangepage (res) {\n this.queryDataPage = res\n if (this.isSearch) {\n this.cateadd(this.queryDataPage);\n } else {\n this.taskList()\n }\n },\n // 点击查询\n cateadd (page) {\n var listData = {\n page: page,\n word: this.queryData.mobile,\n province: this.postData.province,\n city: this.postData.city,\n district: this.postData.district,\n startTime: this.startDate,\n feedbackType: this.feedback_type,\n perPage: this.queryData.pagenum\n }\n // 清除对象中的空属性\n listData = this.clearNullData(listData)\n // listData = clearNullData(listData)\n axios\n .request({\n method: 'POST',\n url: '/admins/serve/feedback',\n data: listData\n })\n .then(res => {\n if (res.data.code === 'success') {\n this.$refs['pages'].currentPage = page;\n this.tableData = res.data.data.data\n this.total = res.data.data.total\n this.isSearch = true\n } else {\n this.$Message.error(res.data.message, 'middle')\n }\n })\n },\n // 获取列表信息\n taskList () {\n axios\n .request({\n method: 'POST',\n url: '/admins/serve/feedback',\n data: {\n page: this.queryDataPage,\n perPage: this.queryData.pagenum\n }\n })\n .then(res => {\n if (res.data.code === 'success') {\n this.tableData = res.data.data.data\n this.total = res.data.data.total\n this.isSearch = false\n } else {\n this.$Message.error(res.data.message, 'middle')\n }\n })\n },\n // 省\n getProvince (type) {\n axios.request({\n method: 'GET',\n url: '/admins/area/0'\n }).then((res) => {\n if (res.data.code === 'success') {\n // this.postData.province === '' && (this.postData.province = res.data.data.list[0].id)\n this.provinceList = res.data.data.list\n } else {\n this.$Message.error(res.data.message, 'middle')\n }\n })\n },\n // 市\n getCity () {\n var id = this.postData.province\n axios.request({\n method: 'GET',\n url: '/admins/area/' + id\n }).then((res) => {\n if (res.data.code === 'success') {\n this.cityList = res.data.data.list\n this.postData.city = res.data.data.list[0].id\n this.getDistrict()\n } else {\n this.$Message.error(res.data.message, 'middle')\n }\n })\n },\n // 区\n getDistrict () {\n var id = parseInt(this.$route.query.id)\n axios.request({\n method: 'GET',\n url: '/admins/area/' + this.postData.city\n }).then((res) => {\n if (res.data.code === 'success') {\n this.districtList = res.data.data.list\n this.postData.district = res.data.data.list[0].id\n if (this.$route.query.id) {\n this.postData.district = this.bankList[id].district\n }\n } else {\n this.$Message.error(res.data.message, 'middle')\n }\n })\n },\n // 全选\n selectionClick (data) {\n // 只要选中项发生变化时就会触发\n this.feedbackId = []\n if (data.length !== 0) {\n for (var item of data) {\n this.feedbackId.push(item.id)\n }\n // console.log(this.batchdelIDarray)\n }\n },\n // 批量审核\n batchSccress () {\n if (this.feedbackId.length == 0) {\n this.$Message.warning('请先选择反馈记录', 'middle')\n return\n }\n this.showLevelModal = true\n },\n // 回复内容\n treatyok () {\n axios.request({\n method: 'POST',\n url: '/admins/serve/feedback/reply',\n params: {\n id: this.feedbackId,\n audit_remark: this.textarea\n }\n })\n .then(res => {\n this.$Message.info(res.data.message)\n var that = this\n if (res.data.code === 'success') {\n setTimeout(function () {\n if (that.isSearch) {\n that.cateadd(this.queryDataPage);\n } else {\n that.taskList()\n }\n that.feedbackId = []\n }, 2000)\n }\n })\n },\n // 点击取消\n cancel () {\n this.feedbackId = []\n }\n }\n }\n</script>\n\n<style>\n .mt10 {\n margin-top: 10px;\n }\n\n .ivu-btn-error {\n margin-left: 10px;\n }\n</style>\n"]}]}
|