浏览代码

feat: 意见反馈需求变更

TIANYONG 1 年之前
父节点
当前提交
006070a9c8

+ 10 - 0
src/page-instrument/api.ts

@@ -56,3 +56,13 @@ export const getSubjectList = (data: any) => {
     requestType: "json",
   });
 };
+
+/**
+ * 获取意见类型
+ */
+export const getSuggestionList = (params: any) => {
+  return request.post('/sysSuggestionType/page', {
+    data: params,
+    requestType: "json",
+  });
+};

+ 4 - 3
src/page-instrument/custom-plugins/helper-model/recommendation/index.module.less

@@ -56,12 +56,11 @@
 
 .tags {
     display: flex;
-    justify-content: space-between;
     text-align: center;
     flex-wrap: wrap;
     padding: 0 var(--van-cell-horizontal-padding) var(--van-cell-vertical-padding) var(--van-cell-horizontal-padding);
     >span {
-        margin: 3px 0;
+        margin: 3px 12px 3px 0;
         border-radius: 3PX;
         display: block;
         width: 30%;
@@ -70,7 +69,9 @@
         background-color: #F8F8F8;
         color: #999999;
         border: 1PX solid #F8F8F8;
-
+        &:nth-child(3n+3) {
+            margin-right: 0px;
+        }
         &.active {
             color: var(--van-primary-color);
             border-color: var(--van-primary-color);

+ 29 - 10
src/page-instrument/custom-plugins/helper-model/recommendation/index.tsx

@@ -1,26 +1,39 @@
-import { defineComponent, reactive, ref } from "vue";
+import { defineComponent, reactive, ref, onMounted } from "vue";
 import styles from "./index.module.less";
 import iconClose from "../icons/close2.svg";
 import { Button, Cell, Field, Tab, Tabs, showToast } from "vant";
 import iconSubmit from "../icons/icon-submit.svg";
-import { sysSuggestionAdd } from "/src/page-instrument/api";
+import { sysSuggestionAdd, getSuggestionList } from "/src/page-instrument/api";
+import { storeData } from "/src/store";
 
 export default defineComponent({
 	name: "recommendation",
 	emits: ["close"],
 	setup(props, { emit }) {
+		const suggestionTypeList = ref([] as any);
 		const tags = ["识别不准", "无法评测", "不出评测结果", "曲谱不一致", "指法错误", "其他"];
 		const recommenData = reactive({
 			loading: false,
 			active: "识别不准",
 			message: "",
+			suggestId: null,
 		});
+		// 获取建议类别
+		const getTypeList = async () => {
+			try {
+			  const res = await getSuggestionList({ rows: 9999, page: 1 });
+			  suggestionTypeList.value = res.data.rows || [];
+			} catch (e) {
+			  //
+			}
+		};
 
 		/** 提交意见反馈 */
 		const handleSubmit = async () => {
-			if (!recommenData.message) {
+			if (!recommenData.message || !recommenData.suggestId) {
+				const desc = !recommenData.suggestId ? '请先选择问题类型' : '请先填写意见反馈'
 				showToast({
-					message: "请先填写意见反馈",
+					message: desc,
 					position: "top",
 				});
 				return;
@@ -28,30 +41,36 @@ export default defineComponent({
 			recommenData.loading = true;
 			try {
 				await sysSuggestionAdd({
-					content: recommenData.message + "#" + recommenData.active,
+					content: recommenData.message,
 					type: "SMART_PRACTICE",
+					suggestionTypeId: recommenData.suggestId,
+					mobileNo: storeData.user?.phone
 				});
 				showToast({
 					message: "意见反馈已提交",
 					position: "top",
 				});
 				emit("close");
+				recommenData.suggestId = null
+				recommenData.message = ''
 			} catch (error) {}
 			recommenData.loading = false;
 		};
-
+		onMounted(() => {
+			getTypeList();
+		});
 		return () => (
 			<div class={styles.content}>
 				<Tabs lineHeight={0} color="#1A1A1A">
 					<Tab title="意见反馈">
 						<Cell border={false} title="请选择问题类型" />
 						<div class={styles.tags}>
-							{tags.map((text) => (
+							{suggestionTypeList.value.map((item: any) => (
 								<span
-									class={[styles.tag, recommenData.active === text && styles.active]}
-									onClick={() => (recommenData.active = text)}
+									class={[styles.tag, recommenData.suggestId === item.id && styles.active]}
+									onClick={() => (recommenData.suggestId = item.id)}
 								>
-									{text}
+									{item.name}
 								</span>
 							))}
 						</div>

+ 1 - 0
src/store.ts

@@ -19,6 +19,7 @@ type IUser = {
   clientType?: "BACKEND" | "SCHOOL" | "TEACHER" | "STUDENT";
   /** 是否是VIP */
   vipMember?: boolean;
+  phone?: string;
 };
 type IStatus = "init" | "login" | "logout" | "error";
 type IPlatformType = "STUDENT" | "TEACHER" | "WEB" | "";