dangdang 1 ヶ月 前
コミット
fc15346508
6 ファイル変更78 行追加20 行削除
  1. 1 1
      default.conf
  2. 23 1
      src/views/ChatTts.vue
  3. 14 5
      src/views/DetailView.vue
  4. 7 6
      src/views/HomeView.vue
  5. 32 6
      src/views/ResultView.vue
  6. 1 1
      vite.config.js

+ 1 - 1
default.conf

@@ -14,7 +14,7 @@ server {
 
     set $stg_token "C1qziFGlIv3tnCQxcFaStrLuZOO2ZZXjN7FB_G0WlrOLjclfObbSaXAKzl4RWwQBf_0Zhsm0CoVvdVsYMD18iM_LJrxtn7LHJJQuF9UoUuF3fvqOwrG4EF6Z4GahtxtQ2oeaPQBBNKlgVW1xUW7tkhEdXWqzDHPA_I_91Lczk0PI4guhx1c88Hst4-HI8pdMbiUdEJzj3d3a2W06Fa0XA9Q0taAwaRd1k9jUrDVyj9GfS84_SIgJF4SPjWVfsraV79ieb_StgRcUwZjbscGPMlifnJD6F00wwNbxG7AuCHbl3EtMfSed1vuVx3AsizIckwzIVSVRpOGw72cdAMui-I6es9Ozj2ITzSa5KgyXEpX4qCHF1VcCM1wlHLQ_5hLnJIi4r8NsnJPsxMYrTw";
 
-    set $prd_token "mVcexzY_mjtGAL5_exPlmAyfOJxuuEthWY1mk9tUFC_HwceY58uRZ2WDhz7-ttexCdUtFN8C7V636_jIq6fzaSfqIj8OQyhUPKPMa2eZjLlblT77ySqBt_lYM6iEAhrj7-raGmySMmkLS4Rqh651Ak2tqmUbjS64cqv5ofMsuadOCg1J-CtLFt7NeSoU4N3Kpm5MJ_4sOFBhQGfBym88dcwxosFl9LbvhpyleXFf6fOZkkOj0l2X8Nr2pfNjYs3_VOmCQxrxXh1XZ_a1v9qj5_rA9k9wGNNQfmr2JwJTUT4V9NwtNq94gNFt8C0J6MWKVE2eyr25Rke8tkKu3CGNNmspmEFpr6LavPlaWnWOIh9CRJ1cIDB70pg_JD2l0nPTkPbtaTQaIGTz";
+    set $prd_token "W9JbmhijqNR15ETUHW_pPAyfOJxuuEthWY1mk9tUST_bxeO65t_Ma0ewpFTY6ceSCLxWMt8C7V636_jIq6fzaSfqIj8OQyhUPKPMa2eZjLlblT77ySqBt_lYM6iEAhrj7-raGmySMmkLS4Rqh651Ak2tqmUbjS64cqv5ofMsuadOCg1J-CtLFt7NeSoU4N3Kpm5MJ_4sOFBhQGfBym88dcwxosFl9LbvhpyleXFf6fOZkkOj0l2X8Nr2pfNjYs3_VOmCQxrxXh1XZ_a1v9qj5_rA9k9wGNNQfmr2JwJTUT4V9NwtNq94gNFt8C0J6MWKenvcyr2TREaCrkKu4Bm-GUsahEVi9pyZvPlecFGmYBgoUfZJJyl7sPANSmTykXqE5faXCSQvAmTz";
     
     location /openapi-stg/ {
         rewrite ^/openapi-stg/(.*)$ /$1 break;

+ 23 - 1
src/views/ChatTts.vue

@@ -15,6 +15,7 @@ const route = useRoute();
 const router = useRouter();
 const conversationId = computed(() => route.query.taskId); // 会话ID
 const round = computed(() => route.query.round); // 轮次
+const scenceType = computed(() => route.query.scenceType); // 场景类型
 const sessionId = ref("");
 const taskStatus = ref(false)
 const loading = ref(true);  //初始化进入的加载状态
@@ -569,7 +570,7 @@ const chatGpt1 = async (userMessage) => {
 const next = () => {
   router.push({
     name: "result",
-    query: { conversationId: conversationId.value },
+    query: { conversationId: conversationId.value,scenceType:scenceType.value },
   });
 };
 
@@ -619,6 +620,13 @@ onMounted(() => {
         :rate="rate"
         :text="text"
       />
+    </div>
+     <div class="tooltip">
+      <p>拜访客户现场情况:</p>
+      <p>进入厂区需登记</p>
+      <p>门口有招聘广告</p>
+      <p>会议室有产品展示柜 </p>
+      <p>参观了车间和厂区,车间管理规范</p>
     </div>
     <BG />
     <div class="loading" v-show="loading">
@@ -661,6 +669,20 @@ onMounted(() => {
   top: 70px;
   z-index: 9999;
 }
+.tooltip {
+  width: 85%;
+  position: fixed;
+  top: 150px;
+  left: 50%;
+  /* 左边到视口宽度的一半 */
+  transform: translateX(-50%);
+  /* 再左移自身宽度的一半,实现居中 */
+  z-index: 9999;
+  font-size: 12px;
+  padding: 8px 12px;
+  background-color: rgba(0, 0, 0, 0.5);
+  color: #fff;
+}
 .next-btn {
   position: fixed;
   bottom: calc(20px + env(safe-area-inset-bottom));

+ 14 - 5
src/views/DetailView.vue

@@ -5,7 +5,6 @@ import selectPage from "./result/selectPage.vue";
 import { fetchTaskCreate } from "./utils/api";
 import { showToast } from "vant";
 import { useRouter } from "vue-router";
-import { RollerSkatingRound } from "@vicons/material";
 
 const router = useRouter();
 
@@ -13,6 +12,9 @@ const selectedRole = ref("");
 const selectedNature = ref(null);
 const selectedRounds = ref(0);
 
+const sceneType = ref("")
+const naturesOptions = ref([]);
+
 const rolelist = ref([]);
 const roleOptions = JSON.parse(localStorage.getItem('role')).roleOption
 
@@ -22,13 +24,18 @@ const roundsOptions = [
   { text: 10, value: 10 },
 ];
 
-const naturesOptions = [
+const mappings = {
+  XIAOWEI: [
   { text: "固执己见,不愿妥协", value: "固执己见,不愿妥协" },
   { text: "细心周到,考虑周全", value: "细心周到,考虑周全" },
   { text: "易怒暴躁,难以沟通", value: "易怒暴躁,难以沟通" },
   { text: "幽默风趣,气氛活跃", value: "幽默风趣,气氛活跃" },
   { text: "自私冷漠,缺乏同理", value: "自私冷漠,缺乏同理" },
-];
+],
+XIAOWEI_RONGZI: [{ text: "谨慎理性", value: "谨慎理性" }],
+DEFAULT:[{ text: "无", value: "无" }]
+};
+
 
 const handleSelectNature = (option) => {
   selectedNature.value = option.value;
@@ -51,13 +58,13 @@ const handleExam = async () => {
     tutoringRole: selectedRole.value,
     personality: selectedNature.value,
     round: selectedRounds.value,
-    sceneType:"XIAOWEI",
+    sceneType:sceneType.value,
   };
   try {
     const { body } = await fetchTaskCreate(data);
     router.push({
       name: "ChatTts",
-      query: { taskId: body, round: selectedRounds.value },
+      query: { taskId: body, round: selectedRounds.value , sceneType:sceneType.value },
     });
   } catch (error) {
     console.log(error);
@@ -66,6 +73,8 @@ const handleExam = async () => {
 onMounted(() => {
   const role = JSON.parse(localStorage.getItem('role'))
   rolelist.value = role
+  sceneType.value = role.sceneType
+  naturesOptions.value = mappings[sceneType.value] || mappings.DEFAULT;
   localStorage.removeItem("chatHistory");
   localStorage.removeItem("status");
 });

+ 7 - 6
src/views/HomeView.vue

@@ -28,23 +28,24 @@ const cardlist = ref([
     image: role3,
     subTitle: "白名单新客触达",
     description: "通过电话联系同业存客、或白户客户,摸排客户融资需求,寻找商机",
+    sceneType:"XIAOWEI",
     roleOption:[
       {text: '同业存客', value: '同业存客'},
       {text: '白户客户', value: '白户客户'}
     ]
   },
   {
-    title: "转介客户",
+    title: "融资拜访",
     image: role2,
     subTitle: "转介名单拓展营销",
     description:'通过电话联系渠道(或存量客户)转介名单,开展营销,寻找商机',
+    sceneType:"XIAOWEI_RONGZI",
     roleOption:[
-      {text: '渠道转介', value: '渠道转介'},
-      {text: '存量转介', value: '存量转介'},
+      {text: '客户经理', value: '客户经理'},
     ]
   },
   {
-    title: "存量客户",
+    title: "存量客户(待解锁)",
     image: role1,
     subTitle: "存量客户名单",
     description: "通过电话联系已有的存量客户名单,开展营销,寻找商机",
@@ -53,7 +54,7 @@ const cardlist = ref([
     ]
   },
   {
-    title: "区域陌拜",
+    title: "区域陌拜(待解锁)",
     image: role,
     subTitle: "地推周边企业陌拜",
     description:"通过地推的方式搜索新客户,并进行现场陌拜,建立关系,挖掘商机",
@@ -64,7 +65,7 @@ const cardlist = ref([
 ])
 
 const handleDetail = (item,index) => { 
-  if(index === 0){
+  if(index === 0 || index === 1){
     localStorage.setItem("role", JSON.stringify(item));
     router.push("/detail");
   }

+ 32 - 6
src/views/ResultView.vue

@@ -20,16 +20,41 @@ const score = ref(0);
 const data = ref(null);
 const scoresList = ref(null);
 const taskId = computed(() => route.query.conversationId); // 会话ID "2c64eb8b69be432ca0bb9ae55bc78def"
+const scenceType = computed(() => route.query.scenetype); // 场景类型 "XIAOWEI"
 const randarlist = ref([0, 0, 0, 0]);
 
-const nameMapping = {
-  introduction_profession: "自我介绍专业性",
-  demand_accuracy: "挖掘需求准确性",
-  product_advantages: "清晰表达产品优势",
-  attract_interest: "吸引客户兴趣",
-  penalty_points: "扣分项",
+
+
+const mappings = {
+  XIAOWEI: {
+    introduction_profession: "自我介绍专业性",
+    demand_accuracy: "挖掘需求准确性",
+    product_advantages: "清晰表达产品优势",
+    attract_interest: "吸引客户兴趣",
+    penalty_points: "扣分项",
+  },
+  XIAOWEI_RONGZI: {
+    self_intro: "自我介绍专业性",
+    needs_objection: "需求洞察清晰性",
+    info_guidance: "信息挖掘准确性",
+    proposal_expression: "方案呈现完整性",
+    relationship_closure: "关系维护",
+    penalty_points: "扣分项",
+  },
+  DEFAULT: {
+    self_intro: "自我介绍",
+    needs_objection: "需求洞察",
+    info_guidance: "信息挖掘",
+    proposal_expression: "方案呈现",
+    relationship_closure: "关系维护",
+    penalty_points: "扣分项",
+  },
 };
 
+// 根据 scenceType 获取映射表,找不到就用 DEFAULT
+const nameMapping = mappings[scenceType] || mappings.DEFAULT;
+
+
 const handleResult = async () => {
   let res;
   let shouldContinue = true; // 控制是否继续调用接口的标志
@@ -98,6 +123,7 @@ onBeforeUnmount(() => {
     // 执行一些操作,例如关闭当前页面或跳转到其他页面
     window.location.href = "/#/home";
   });
+  localStorage.clear()
 });
 </script>
 <template>

+ 1 - 1
vite.config.js

@@ -4,7 +4,7 @@ import fs from 'fs'
 
 const stgToken = 'C1qziFGlIv3tnCQxcFaStrLuZOO2ZZXjN7FB_G0WlrOLjclfObbSaXAKzl4RWwQBf_0Zhsm0CoVvdVsYMD18iM_LJrxtn7LHJJQuF9UoUuF3fvqOwrG4EF6Z4GahtxtQ2oeaPQBBNKlgVW1xUW7tkhEdXWqzDHPA_I_91Lczk0PI4guhx1c88Hst4-HI8pdMbiUdEJzj3d3a2W06Fa0XA9Q0taAwaRd1k9jUrDVyj9GfS84_SIgJF4SPjWVfsraV79ieb_StgRcUwZjbscGPMlifnJD6F00wwNbxG7AuCHbl3EtMfSed1vuVx3AsizIckwzIVSVRpOGw72cdAMui-I6es9Ozj2ITzSa5KgyXEpX4qCHF1VcCM1wlHLQ_5hLnJIi4r8NsnJPsxMYrTw'
 
-const prdToken = '2g4pgi27kWjPBjaKoHSfZAyfOJxuuEthWY1mk9tUbyPSrr6sn_6aPGaTxT7_ldXoKIJuMt8C7V636_jIq6fzaSfqIj8OQyhUPKPMa2eZjLlblT77ySqBt_lYM6iEAhrj7-raGmySMmkLS4Rqh651Ak2tqmUbjS64cqv5ofMsuadOCg1J-CtLFt7NeSoU4N3Kpm5MJ_4sOFBhQGfBym88dcwxosFl9LbvhpyleXFf6fOZkkOj0l2X8Nr2pfNjYs3_VOmCQxrxXh1XZ_a1v9qj5_rA9k9wGNNQfmr2JwJTUT4V9NwtNq94gNFt8C0J6MWKRHvYyb2XRkaCnEKu8QiNElcIwU9l9azouu5Lc3uafG1dd98yFm9I784oNWvIpVjUrsTkFiJxNGTz'
+const prdToken = 'W9JbmhijqNR15ETUHW_pPAyfOJxuuEthWY1mk9tUST_bxeO65t_Ma0ewpFTY6ceSCLxWMt8C7V636_jIq6fzaSfqIj8OQyhUPKPMa2eZjLlblT77ySqBt_lYM6iEAhrj7-raGmySMmkLS4Rqh651Ak2tqmUbjS64cqv5ofMsuadOCg1J-CtLFt7NeSoU4N3Kpm5MJ_4sOFBhQGfBym88dcwxosFl9LbvhpyleXFf6fOZkkOj0l2X8Nr2pfNjYs3_VOmCQxrxXh1XZ_a1v9qj5_rA9k9wGNNQfmr2JwJTUT4V9NwtNq94gNFt8C0J6MWKenvcyr2TREaCrkKu4Bm-GUsahEVi9pyZvPlecFGmYBgoUfZJJyl7sPANSmTykXqE5faXCSQvAmTz'
 
 // https://vite.dev/config/
 export default defineConfig({