wlzboy
2025-09-29 c622702a7b9357a45df08361dfab4dcc690fc95c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
<template>
  <div class="test-container">
    <h2>客户满意度评价功能测试</h2>
    
    <div class="test-section">
      <h3>1. 生成二维码测试</h3>
      <el-form :inline="true">
        <el-form-item label="车牌号">
          <el-input v-model="testVehicleNo" placeholder="请输入车牌号" />
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="generateQrcode">生成二维码</el-button>
        </el-form-item>
      </el-form>
      
      <div v-if="qrcodeInfo" class="qrcode-result">
        <p><strong>二维码URL:</strong> {{ qrcodeInfo.qrcodeUrl }}</p>
        <p><strong>二维码内容:</strong> {{ qrcodeInfo.qrcodeContent }}</p>
        <p><strong>二维码图片:</strong> {{ qrcodeInfo.qrcodeImage }}</p>
      </div>
    </div>
 
    <div class="test-section">
      <h3>2. 评价维度配置测试</h3>
      <el-button type="primary" @click="loadDimensions">加载评价维度</el-button>
      
      <div v-if="dimensions.length > 0" class="dimensions-result">
        <h4>评价维度列表:</h4>
        <ul>
          <li v-for="dimension in dimensions" :key="dimension.dimensionId">
            {{ dimension.dimensionName }} - {{ dimension.dimensionType }} 
            <span v-if="dimension.isRequired === '1'">(必填)</span>
          </li>
        </ul>
      </div>
    </div>
 
    <div class="test-section">
      <h3>3. 评价提交测试</h3>
      <el-form :model="testEvaluation" label-width="100px">
        <el-form-item label="车牌号">
          <el-input v-model="testEvaluation.vehicleNo" />
        </el-form-item>
        <el-form-item label="客户姓名">
          <el-input v-model="testEvaluation.customerName" />
        </el-form-item>
        <el-form-item label="客户手机">
          <el-input v-model="testEvaluation.customerPhone" />
        </el-form-item>
        <el-form-item>
          <el-button type="primary" @click="submitTestEvaluation">提交测试评价</el-button>
        </el-form-item>
      </el-form>
    </div>
 
    <div class="test-section">
      <h3>4. 直接访问评价页面</h3>
      <p>访问地址: <a :href="evaluationUrl" target="_blank">{{ evaluationUrl }}</a></p>
    </div>
  </div>
</template>
 
<script>
import { generateQrcode, getEvaluationDimensions, submitEvaluation } from "@/api/evaluation";
 
export default {
  name: "EvaluationTest",
  data() {
    return {
      testVehicleNo: "粤A12345",
      qrcodeInfo: null,
      dimensions: [],
      testEvaluation: {
        vehicleNo: "粤A12345",
        customerName: "测试用户",
        customerPhone: "13800138000",
        evaluationDetails: [
          {
            dimensionId: 1,
            score: 5
          },
          {
            dimensionId: 2,
            score: 4
          },
          {
            dimensionId: 3,
            score: 5
          },
          {
            dimensionId: 4,
            score: 4
          }
        ]
      }
    };
  },
  computed: {
    evaluationUrl() {
      return `${window.location.origin}/evaluation?vehicle=${this.testVehicleNo}`;
    }
  },
  methods: {
    async generateQrcode() {
      try {
        const response = await generateQrcode(this.testVehicleNo);
        if (response.code === 200) {
          this.qrcodeInfo = response.data;
          this.$message.success("二维码生成成功");
        } else {
          this.$message.error(response.msg || "生成失败");
        }
      } catch (error) {
        console.error("生成二维码失败:", error);
        this.$message.error("生成二维码失败");
      }
    },
 
    async loadDimensions() {
      try {
        const response = await getEvaluationDimensions();
        if (response.code === 200) {
          this.dimensions = response.data;
          this.$message.success("评价维度加载成功");
        } else {
          this.$message.error(response.msg || "加载失败");
        }
      } catch (error) {
        console.error("加载评价维度失败:", error);
        this.$message.error("加载评价维度失败");
      }
    },
 
    async submitTestEvaluation() {
      try {
        const response = await submitEvaluation(this.testEvaluation);
        if (response.code === 200) {
          this.$message.success(response.msg || "评价提交成功");
        } else {
          this.$message.error(response.msg || "提交失败");
        }
      } catch (error) {
        console.error("提交评价失败:", error);
        this.$message.error("提交评价失败");
      }
    }
  }
};
</script>
 
<style scoped>
.test-container {
  max-width: 800px;
  margin: 0 auto;
  padding: 20px;
}
 
.test-section {
  margin-bottom: 30px;
  padding: 20px;
  border: 1px solid #e4e7ed;
  border-radius: 6px;
  background-color: #fafafa;
}
 
.test-section h3 {
  margin-top: 0;
  color: #333;
}
 
.qrcode-result, .dimensions-result {
  margin-top: 15px;
  padding: 15px;
  background-color: white;
  border-radius: 4px;
  border: 1px solid #e4e7ed;
}
 
.dimensions-result ul {
  margin: 10px 0;
  padding-left: 20px;
}
 
.dimensions-result li {
  margin-bottom: 5px;
}
</style>