|
@@ -1,95 +1,65 @@
|
|
|
<template>
|
|
<template>
|
|
|
- <el-tabs v-model="activeName">
|
|
|
|
|
- <el-tab-pane label="问题反馈" name="submitForm">
|
|
|
|
|
- <div style="width: 80%; margin: 0 auto;">
|
|
|
|
|
- <avue-form v-model="feedbackForm" :option="option" @submit="handleSubmitFeedback"></avue-form>
|
|
|
|
|
- </div>
|
|
|
|
|
- </el-tab-pane>
|
|
|
|
|
- <el-tab-pane label="历史反馈" name="history">
|
|
|
|
|
|
|
+ <div>
|
|
|
|
|
+ <avue-crud
|
|
|
|
|
+ ref="crud"
|
|
|
|
|
+ v-bind="bindVal"
|
|
|
|
|
+ v-on="onEvent"
|
|
|
|
|
+ v-model="form"
|
|
|
|
|
+ :page.sync="page"
|
|
|
|
|
+ :before-open="handleBeforeOpen"
|
|
|
|
|
+ @row-click="handleRowClick"
|
|
|
|
|
+ >
|
|
|
|
|
|
|
|
- </el-tab-pane>
|
|
|
|
|
- </el-tabs>
|
|
|
|
|
|
|
+ </avue-crud>
|
|
|
|
|
+
|
|
|
|
|
+ <el-dialog
|
|
|
|
|
+ title="反馈详情"
|
|
|
|
|
+ :visible.sync="dialogVisible"
|
|
|
|
|
+ width="760px"
|
|
|
|
|
+ append-to-body
|
|
|
|
|
+ @close="handleDialogClose"
|
|
|
|
|
+ >
|
|
|
|
|
+ <detail :data="rowData"></detail>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+
|
|
|
|
|
+ </div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
-import { getList, add, rep } from "@/api/system/feedback";
|
|
|
|
|
-import { FEEDBACK_TYPE_DICTS } from "@/config/dict";
|
|
|
|
|
|
|
+import crudCommon from '@/mixins/crud';
|
|
|
|
|
+import detail from "./detail.vue";
|
|
|
|
|
+
|
|
|
|
|
|
|
|
-export default {
|
|
|
|
|
- name: "CompFeedback",
|
|
|
|
|
|
|
+export default crudCommon({
|
|
|
|
|
+ components: {
|
|
|
|
|
+ detail
|
|
|
|
|
+ },
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
- activeName: 'submitForm',
|
|
|
|
|
- feedbackForm: {},
|
|
|
|
|
- option: {
|
|
|
|
|
- labelWidth: 100,
|
|
|
|
|
- column: [
|
|
|
|
|
- {
|
|
|
|
|
- label:'反馈类型',
|
|
|
|
|
- prop:'type',
|
|
|
|
|
- type:'select',
|
|
|
|
|
- dicData: FEEDBACK_TYPE_DICTS,
|
|
|
|
|
- span: 24,
|
|
|
|
|
- rules: [{
|
|
|
|
|
- required: true,
|
|
|
|
|
- message: '请选择反馈类型',
|
|
|
|
|
- trigger: 'blur'
|
|
|
|
|
- }]
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label:'详细描述',
|
|
|
|
|
- prop:'remark',
|
|
|
|
|
- type: 'textarea',
|
|
|
|
|
- span: 24,
|
|
|
|
|
- rules: [{
|
|
|
|
|
- required: true,
|
|
|
|
|
- message: '请输入详细描述',
|
|
|
|
|
- trigger: 'blur'
|
|
|
|
|
- }]
|
|
|
|
|
- },
|
|
|
|
|
- {
|
|
|
|
|
- label: "截图证明",
|
|
|
|
|
- prop: "attachment",
|
|
|
|
|
- type: "upload",
|
|
|
|
|
- listType: "picture-card",
|
|
|
|
|
- span: 24,
|
|
|
|
|
- fileType: "img",
|
|
|
|
|
- accept: "image/png, image/jpeg",
|
|
|
|
|
- limit: 5,
|
|
|
|
|
- propsHttp: {
|
|
|
|
|
- res: "data",
|
|
|
|
|
- url: 'link',
|
|
|
|
|
- },
|
|
|
|
|
- action: '/api/kd-resource/oss/endpoint/put-file',
|
|
|
|
|
- tip: "支持png、jpg等格式",
|
|
|
|
|
- },
|
|
|
|
|
- ]
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ dialogVisible: false,
|
|
|
|
|
+
|
|
|
|
|
+ page: {
|
|
|
|
|
+ pageSizes: [10, 30, 50, 100, 200],
|
|
|
|
|
+ pageSize: 10
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ rowData: {},
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
- handleSubmitFeedback(done) {
|
|
|
|
|
- const params = { ...this.feedbackForm };
|
|
|
|
|
- params.attachment = params.attachment.join(',');
|
|
|
|
|
- add(params).then(({ data }) => {
|
|
|
|
|
- done();
|
|
|
|
|
- if (data.data.code == 200) {
|
|
|
|
|
- this.$message.success("提交成功!");
|
|
|
|
|
- }
|
|
|
|
|
- }).catch(() => {
|
|
|
|
|
- done();
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ handleDialogClose() {
|
|
|
|
|
+ this.dialogVisible = false;
|
|
|
|
|
+ },
|
|
|
|
|
+ handleRowClick(row) {
|
|
|
|
|
+ this.dialogVisible = true;
|
|
|
|
|
+ this.rowData = row;
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
-};
|
|
|
|
|
|
|
+ },
|
|
|
|
|
+}, {
|
|
|
|
|
+ // 模块路径
|
|
|
|
|
+ name: 'system/feedbackComp',
|
|
|
|
|
+ res: ({ data }) => {
|
|
|
|
|
+ return data;
|
|
|
|
|
+ },
|
|
|
|
|
+});
|
|
|
</script>
|
|
</script>
|
|
|
-
|
|
|
|
|
-<style lang="scss" scoped>
|
|
|
|
|
-.code {
|
|
|
|
|
- font-size: 12px;
|
|
|
|
|
- display: block;
|
|
|
|
|
- font-family: monospace;
|
|
|
|
|
- white-space: pre;
|
|
|
|
|
- margin: 1em 0px;
|
|
|
|
|
-}
|
|
|
|
|
-</style>
|
|
|