Browse Source

增加分享记录

bding 9 months ago
parent
commit
4de54dd492
46 changed files with 504 additions and 215 deletions
  1. 1 1
      package.json
  2. 18 13
      pnpm-lock.yaml
  3. 12 1
      src/api/modules/rai/YanXuanApi.js
  4. BIN
      src/assets/img/home/mfyx_icon.png
  5. 61 46
      src/router/modules/cygxRoutes.js
  6. 25 0
      src/router/modules/researchRoutes.js
  7. 1 1
      src/views/rai_manage/activityManage/activityManage.vue
  8. 41 1
      src/views/rai_manage/activityManage/applyManage.vue
  9. 3 2
      src/views/rai_manage/activityManage/components/ThemeSurvey/voteDlg.vue
  10. 1 1
      src/views/rai_manage/activityManage/components/ThemeSurvey/votingResultsDlg.vue
  11. 12 12
      src/views/rai_manage/activityManage/components/addActivity.vue
  12. 2 2
      src/views/rai_manage/activityManage/components/addComopnents/ResearchDeduct.vue
  13. 11 3
      src/views/rai_manage/activityManage/meetingManagement.vue
  14. 2 2
      src/views/rai_manage/activityManage/roadShow/components/addVideoDlg.vue
  15. 6 10
      src/views/rai_manage/activityManage/roadShow/components/playDetailsDlg.vue
  16. 8 5
      src/views/rai_manage/activityManage/roadShow/components/releaseAudio.vue
  17. 5 5
      src/views/rai_manage/activityManage/roadShowList.vue
  18. 6 6
      src/views/rai_manage/activityManage/specialResearch.vue
  19. 1 1
      src/views/rai_manage/activityManage/specialResearch/addResearch.vue
  20. 3 3
      src/views/rai_manage/activityManage/specialResearch/determineTravel.vue
  21. 1 1
      src/views/rai_manage/activityManage/specialResearch/particularsAll.vue
  22. 3 4
      src/views/rai_manage/components/addChoiceness.vue
  23. 1 1
      src/views/rai_manage/components/addMorningMeeting.vue
  24. 2 2
      src/views/rai_manage/components/addRoadshow.vue
  25. 3 3
      src/views/rai_manage/components/addSummarizing.vue
  26. 9 3
      src/views/rai_manage/components/addSummary.vue
  27. 2 2
      src/views/rai_manage/components/addThisWeek.vue
  28. 12 22
      src/views/rai_manage/components/apply/applyDialog.vue
  29. 26 7
      src/views/rai_manage/components/apply/particularsDialog.vue
  30. 2 12
      src/views/rai_manage/components/apply/searchCustomerDlg.vue
  31. 11 3
      src/views/rai_manage/components/editMobile.vue
  32. 2 3
      src/views/rai_manage/components/matchingDlg.vue
  33. 6 10
      src/views/rai_manage/components/particalDialog.vue
  34. 1 1
      src/views/rai_manage/components/report_preview/choicenessPre.vue
  35. 1 1
      src/views/rai_manage/components/report_preview/lastWeekSummary.vue
  36. 1 1
      src/views/rai_manage/components/report_preview/roadshowPre.vue
  37. 10 13
      src/views/rai_manage/components/report_preview/summaryPre.vue
  38. 1 1
      src/views/rai_manage/components/report_preview/thisWeekSummary.vue
  39. 5 4
      src/views/rai_manage/components/special/specialResearchDlg.vue
  40. 1 1
      src/views/rai_manage/reportManage/appletsReport.vue
  41. 1 1
      src/views/rai_manage/reportManage/components/addHaveReport.vue
  42. 1 1
      src/views/rai_manage/reportManage/morningMeetingManage.vue
  43. 1 1
      src/views/rai_manage/reportManage/roadshowEssence.vue
  44. 1 1
      src/views/rai_manage/reportManage/summaryManage.vue
  45. 1 1
      src/views/rai_manage/reportManage/tacticsTimeLine.vue
  46. 180 0
      src/views/research_manage/shareRecord.vue

+ 1 - 1
package.json

@@ -37,7 +37,7 @@
     "vue-qr": "^4.0.9",
     "vue-router": "^4.3.0",
     "vue3-tree-org": "^4.2.2",
-    "vuedraggable": "^2.24.3"
+    "vuedraggable": "^4.1.0"
   },
   "devDependencies": {
     "@vitejs/plugin-vue": "^5.0.4",

+ 18 - 13
pnpm-lock.yaml

@@ -1,5 +1,9 @@
 lockfileVersion: '6.0'
 
+settings:
+  autoInstallPeers: true
+  excludeLinksFromLockfile: false
+
 dependencies:
   '@element-plus/icons-vue':
     specifier: ^2.3.1
@@ -80,8 +84,8 @@ dependencies:
     specifier: ^4.2.2
     version: 4.2.2(vue@3.4.20)
   vuedraggable:
-    specifier: ^2.24.3
-    version: 2.24.3
+    specifier: ^4.1.0
+    version: 4.1.0(vue@3.4.20)
 
 devDependencies:
   '@vitejs/plugin-vue':
@@ -1373,14 +1377,16 @@ packages:
     resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
     dev: false
 
-  /opencc-js@1.0.5:
-    resolution: {integrity: sha512-LD+1SoNnZdlRwtYTjnQdFrSVCAaYpuDqL5CkmOaHOkKoKh7mFxUicLTRVNLU5C+Jmi1vXQ3QL4jWdgSaa4sKjg==, tarball: https://registry.npmmirror.com/opencc-js/-/opencc-js-1.0.5.tgz}
   /once@1.4.0:
     resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
     dependencies:
       wrappy: 1.0.2
     dev: false
 
+  /opencc-js@1.0.5:
+    resolution: {integrity: sha512-LD+1SoNnZdlRwtYTjnQdFrSVCAaYpuDqL5CkmOaHOkKoKh7mFxUicLTRVNLU5C+Jmi1vXQ3QL4jWdgSaa4sKjg==, tarball: https://registry.npmmirror.com/opencc-js/-/opencc-js-1.0.5.tgz}
+    dev: false
+
   /parenthesis@3.1.8:
     resolution: {integrity: sha512-KF/U8tk54BgQewkJPvB4s/US3VQY68BRDpH638+7O/n58TpnwiwnOtGIOsT2/i+M78s61BBpeC83STB88d8sqw==}
     dev: false
@@ -1507,8 +1513,8 @@ packages:
       simple-concat: 1.0.1
     dev: false
 
-  /sortablejs@1.10.2:
-    resolution: {integrity: sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==}
+  /sortablejs@1.14.0:
+    resolution: {integrity: sha512-pBXvQCs5/33fdN1/39pPL0NZF20LeRbLQ5jtnheIPN9JQAaufGjKdWduZn4U7wCtVuzKhmRkI0DFYHYRbB2H1w==, tarball: https://registry.npmmirror.com/sortablejs/-/sortablejs-1.14.0.tgz}
     dev: false
 
   /sortablejs@1.15.2:
@@ -1697,10 +1703,13 @@ packages:
       '@vue/server-renderer': 3.4.20(vue@3.4.20)
       '@vue/shared': 3.4.20
 
-  /vuedraggable@2.24.3:
-    resolution: {integrity: sha512-6/HDXi92GzB+Hcs9fC6PAAozK1RLt1ewPTLjK0anTYguXLAeySDmcnqE8IC0xa7shvSzRjQXq3/+dsZ7ETGF3g==}
+  /vuedraggable@4.1.0(vue@3.4.20):
+    resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==, tarball: https://registry.npmmirror.com/vuedraggable/-/vuedraggable-4.1.0.tgz}
+    peerDependencies:
+      vue: ^3.0.1
     dependencies:
-      sortablejs: 1.10.2
+      sortablejs: 1.14.0
+      vue: 3.4.20
     dev: false
 
   /which@2.0.2:
@@ -1714,7 +1723,3 @@ packages:
   /wrappy@1.0.2:
     resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
     dev: false
-
-settings:
-  autoInstallPeers: true
-  excludeLinksFromLockfile: false

+ 12 - 1
src/api/modules/rai/YanXuanApi.js

@@ -45,7 +45,18 @@ const YanXuanApi = {
   getYanxuanShowButton: (params) => {
     return http.get("/cygx/yanxuan_special/show_button", params);
   },
-  
+  // 分享记录列表接口
+  getShareRecordList: (params) => {
+    return http.get("/cygx/mfyx/admin/share/list", params);
+  },
+  // 修改推荐人 备注信息
+  yanxuan_specialAuthorUpdate: (params) => {
+    return http.post("/cygx/yanxuan_special/author/update", params);
+  },
+  // 作者模糊查询
+  yanxuan_specialAuthorSearch: (params) => {
+    return http.get("/cygx/yanxuan_special/author/search", params);
+  },
 };
 
 export default YanXuanApi;

BIN
src/assets/img/home/mfyx_icon.png


+ 61 - 46
src/router/modules/cygxRoutes.js

@@ -2,54 +2,69 @@ import Home from "@/layouts/index.vue";
 
 export default [
   // // ----------------------------------- 查研观向报告预览
-  // {
-  //   path: "/summaryPre",
-  //   component: () => import("@/views/rai_manage/components/report_preview/summaryPre.vue"),
-  //   name: "预览研选报告",
-  //   hidden: true,
-  // },
-  // {
-  //   path: "/choicenessPre",
-  //   component: () => import("@/views/rai_manage/components/report_preview/choicenessPre.vue"),
-  //   name: "预览报告精选",
-  //   hidden: true,
-  // },
-  // {
-  //   path: "/roadshowPre",
-  //   component: () => import("@/views/rai_manage/components/report_preview/roadshowPre.vue"),
-  //   name: "预览路演精华",
-  //   hidden: true,
-  // },
-  // {
-  //   path: "/thisWeekSummary",
-  //   component: () => import("@/views/rai_manage/components/report_preview/thisWeekSummary.vue"),
-  //   name: "预览本周汇总",
-  //   hidden: true,
-  // },
-  // {
-  //   path: "/lastWeekSummary",
-  //   component: () => import("@/views/rai_manage/components/report_preview/lastWeekSummary.vue"),
-  //   name: "预览上周汇总",
-  //   hidden: true,
-  // },
+  {
+    path: "/summaryPre",
+    component: () => import("@/views/rai_manage/components/report_preview/summaryPre.vue"),
+    name: "summaryPre",
+    hidden: true,
+    meta: {
+      title: "预览研选报告",
+    },
+  },
+  {
+    path: "/choicenessPre",
+    component: () => import("@/views/rai_manage/components/report_preview/choicenessPre.vue"),
+    name: "choicenessPre",
+    hidden: true,
+    meta: {
+      title: "预览报告精选",
+    },
+  },
+  {
+    path: "/roadshowPre",
+    component: () => import("@/views/rai_manage/components/report_preview/roadshowPre.vue"),
+    name: "roadshowPre",
+    hidden: true,
+    meta: {
+      title: "预览路演精华",
+    },
+  },
+  {
+    path: "/thisWeekSummary",
+    component: () => import("@/views/rai_manage/components/report_preview/thisWeekSummary.vue"),
+    name: "thisWeekSummary",
+    hidden: true,
+    meta: {
+      title: "预览本周汇总",
+    },
+  },
+  {
+    path: "/lastWeekSummary",
+    component: () => import("@/views/rai_manage/components/report_preview/lastWeekSummary.vue"),
+    name: "lastWeekSummary",
+    hidden: true,
+    meta: {
+      title: "预览上周汇总",
+    },
+  },
   // //  ------------------------------------------------
   /* 查研观向报告 */
   {
     path: "/",
     component: Home,
     name: "CYGXREPORT",
-    mate: {
+    meta: {
       title: "查研观向报告",
     },
     hidden: false,
-    // icon_path: require("@/assets/img/home/rai_report.png"),
+    icon_path: require("@/assets/img/home/rai_report.png"),
     children: [
       // {
       //   path: "RaiDetail",
       //   component: () => import("@/views/custom_manage/customList/customDetail.vue"),
       //   name: "RaiDetail",
       //   hidden: true,
-      //   mate: {
+      //   meta: {
       //     title: "客户详情",
       //     keepAlive: false,
       //   },
@@ -59,7 +74,7 @@ export default [
         component: () => import("@/views/rai_manage/reportManage/appletsReport.vue"),
         name: "appletsReport",
         hidden: false,
-        mate: {
+        meta: {
           title: "弘则报告管理",
           keepAlive: false,
         },
@@ -140,7 +155,7 @@ export default [
         component: () => import("@/views/rai_manage/reportManage/reportChoiceness.vue"),
         name: "reportChoiceness",
         hidden: false,
-        mate: {
+        meta: {
           title: "报告精选",
           keepAlive: false,
         },
@@ -369,17 +384,17 @@ export default [
     component: Home,
     name: "CYGXGL",
     hidden: false,
-    mate: {
+    meta: {
       title: "查研观向管理",
     },
-    // icon_path: require("@/assets/img/home/rai_admin.png"),
+    icon_path: require("@/assets/img/home/rai_admin.png"),
     children: [
       {
         path: "Raimap",
         component: () => import("@/views/rai_manage/cygxManage/industryMap.vue"),
         name: "Raimap",
         hidden: false,
-        mate: {
+        meta: {
           title: "行业图谱",
           keepAlive: false,
         },
@@ -389,7 +404,7 @@ export default [
         component: () => import("@/views/rai_manage/cygxManage/adviceList.vue"),
         name: "RaiAdvice",
         hidden: false,
-        mate: {
+        meta: {
           title: "优化建议",
           keepAlive: false,
         },
@@ -399,7 +414,7 @@ export default [
         component: () => import("@/views/rai_manage/cygxManage/searchManage.vue"),
         name: "searchManage",
         hidden: false,
-        mate: {
+        meta: {
           title: "搜索词管理",
           keepAlive: false,
         },
@@ -409,7 +424,7 @@ export default [
         component: () => import("@/views/rai_manage/cygxManage/applyUserList.vue"),
         name: "applyList",
         hidden: false,
-        mate: {
+        meta: {
           title: "权益申请记录",
           keepAlive: false,
         },
@@ -419,7 +434,7 @@ export default [
         component: () => import("@/views/rai_manage/cygxManage/interviewList.vue"),
         name: "RaiInterview",
         hidden: false,
-        mate: {
+        meta: {
           title: "访谈申请",
           keepAlive: false,
         },
@@ -429,7 +444,7 @@ export default [
         component: () => import("@/views/rai_manage/cygxManage/bannerManage.vue"),
         name: "bannerManage",
         hidden: false,
-        mate: {
+        meta: {
           title: "banner管理",
           keepAlive: false,
         },
@@ -439,7 +454,7 @@ export default [
         component: () => import("@/views/rai_manage/cygxManage/lableManage.vue"),
         name: "lableManage",
         hidden: false,
-        mate: {
+        meta: {
           title: "标签管理",
           keepAlive: false,
         },
@@ -453,7 +468,7 @@ export default [
     component: Home,
     name: "HZHDGL",
     hidden: false,
-    // icon_path: require("@/assets/img/home/rai_activity.png"),
+    icon_path: require("@/assets/img/home/rai_activity.png"),
     children: [
       {
         path: "activityManage",
@@ -644,7 +659,7 @@ export default [
     component: Home,
     name: "YXHDGL",
     hidden: false,
-    // icon_path: require("@/assets/img/home/rai_activity.png"),
+    icon_path: require("@/assets/img/home/rai_activity.png"),
     children: [
       {
         path: "purchaserActivityManage",

+ 25 - 0
src/router/modules/researchRoutes.js

@@ -0,0 +1,25 @@
+import Home from "@/layouts/index.vue";
+
+export default [
+  {
+    path: "/",
+    component: Home,
+    name: "MFYXGL",
+    hidden: false,
+    icon_path: require("@/assets/img/home/mfyx_icon.png"),
+    meta: {
+      title: "买方研选管理",
+    },
+    children: [
+      {
+        path: "shareRecordResearch",
+        component: () => import("@/views/research_manage/shareRecord.vue"),
+        name: "shareRecordResearch",
+        hidden: false,
+        meta: {
+          title: "分享记录",
+        },
+      },
+    ],
+  },
+];

+ 1 - 1
src/views/rai_manage/activityManage/activityManage.vue

@@ -356,7 +356,7 @@ const {
           <el-select placeholder="活动类型" clearable v-model="cactivityTypeVal" @change="conditionChange">
             <el-option v-for="item in cactivityTypeList" :label="item.ActivityTypeName" :key="item.ActivityTypeId" :value="item.ActivityTypeId"></el-option>
           </el-select>
-          <el-date-picker v-model="publishDate" type="date" placeholder="发布时间" format="yyyy 年 MM 月 dd 日" value-format="yyyy-MM-dd" @change="conditionChange"> </el-date-picker>
+          <el-date-picker v-model="publishDate" type="date" placeholder="发布时间" format="yyyy 年 MM 月 dd 日" value-format="YYYY-MM-DD" @change="conditionChange"> </el-date-picker>
           <date-picker v-model="issueTime" type="date" range placeholder="活动时间" value-type="format" @change="conditionChange"> </date-picker>
           <el-select placeholder="发布状态" clearable v-model="status" @change="conditionChange">
             <el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id"></el-option>

+ 41 - 1
src/views/rai_manage/activityManage/applyManage.vue

@@ -78,7 +78,7 @@ const tabsBtnName = computed(() => {
 });
 
 watch(
-  () => titleValue,
+  () => pageState.titleValue,
   () => {
     pageState.page_no = 1;
     init();
@@ -314,6 +314,45 @@ onMounted(() => {
   !isResearch.value && chartPermission();
   getsDataList();
 });
+
+const {
+  tabsSelectionOne,
+  dataList, //表格的列表
+  page_no,
+  total, //条数
+  PageSize, //每页显示几条
+  industry, //行业
+  cactivityTypeVal, //活动
+  issueTime, //时间
+  selectList, //新增外呼人员的id
+  chartPermissionList, //行业的数组
+  cactivityTypeList, //活动类型
+  addDialogVisible, //新增外呼的弹框
+  particularsDialogVisible, //报名详情弹框
+  subscribe, //预约外呼弹框的tittle
+  titleValue, //标题关键词
+  tabsPitchonType,
+  dialogVisible, //文章详情
+  detailData, //文章详情数据
+  dialogVisibleId, //弹框id
+  reminder, //提示
+  generaitondialogVisib, //代问的弹框
+  generaitonId,
+  generaitonType,
+  numberFull, //
+  tableApplyColums,
+  signUpAdd,
+  minimumSummation,
+  numberLimi, //
+  addDialogType,
+  summaryRemindDlg, //预约纪要、会议提醒
+  isShowAppointment, //是 预约纪要、会议提醒
+  activityTypeName,
+  cactivityStatus,
+  publishStatus, //发布状态
+  messageDialogVisible, //发送消息模版
+  isResearchPoints, //
+} = toRefs(pageState);
 </script>
 
 <template>
@@ -444,6 +483,7 @@ onMounted(() => {
         margin-right: 30px;
         margin-bottom: 20px;
         color: #409eff;
+        cursor: pointer;
       }
       .pitch {
         background-color: #409eff;

+ 3 - 2
src/views/rai_manage/activityManage/components/ThemeSurvey/voteDlg.vue

@@ -1,5 +1,5 @@
 <script setup>
-import { reactive, ref, onMounted } from "vue";
+import { reactive, ref, onMounted, watch } from "vue";
 import { raiInterface, raiSpecial } from "@/api/api.js";
 import RichText from "../../../components/richText.vue";
 
@@ -172,7 +172,7 @@ onMounted(() => {
             </div>
           </el-form-item>
           <el-form-item prop="date">
-            <el-date-picker v-model="votingForm.date" type="date" placeholder="请设置投票截止时间" value-format="yyyy-MM-dd" style="width: 100%"> </el-date-picker>
+            <el-date-picker v-model="votingForm.date" type="date" placeholder="请设置投票截止时间" value-format="YYYY-MM-DD" style="width: 100%"> </el-date-picker>
           </el-form-item>
           <el-form-item prop="select">
             <el-select v-model="votingForm.select" placeholder="最多可选几项" style="width: 100%" @change="selectChangeHandler">
@@ -241,6 +241,7 @@ onMounted(() => {
 }
 
 .fr-wrapper-content-vote-dlg-container {
+  width: 100%;
   border-top: 1px solid #cccccc !important;
   border-bottom: 1px solid #cccccc !important;
 }

+ 1 - 1
src/views/rai_manage/activityManage/components/ThemeSurvey/votingResultsDlg.vue

@@ -1,5 +1,5 @@
 <script setup>
-import { ref, onMounted, nextTick } from "vue";
+import { ref, onMounted, nextTick ,watch} from "vue";
 
 import { raiInterface, raiSpecial } from "@/api/api.js";
 

+ 12 - 12
src/views/rai_manage/activityManage/components/addActivity.vue

@@ -5,7 +5,7 @@ import { raiInterface, customInterence, getOSSSign, resourceVoiceupload } from "
 import VueFroala from "vue-froala-wysiwyg";
 import Clipboard from "clipboard";
 import AddIndustryMark from "../../components/addIndustryMark.vue";
-import RichText from "../../../components/richText.vue";
+import RichText from "../../components/richText.vue";
 import MD5 from "js-md5";
 import ResearchDeduct from "./addComopnents/ResearchDeduct.vue";
 import ModifyImgDlg from "./addComopnents/modifyImgDlg.vue";
@@ -325,7 +325,7 @@ const saveTheRelease = _.debounce(async function (type, arr, VoiceList, VideoDet
   let PointsSet = RefPage.PointsSet;
   const res = await raiInterface.preserveAndPublishAdd({
     DoType: type == "发布" ? 1 : 0,
-    ActivityId: Number(route.query.id) || 0,
+    ActivityId: Number($route.query.id) || 0,
     ActivityTypeId: Number(pageState.cactivityType),
     Body: pageState.content,
     PermissionName: pageState.optionFormregion,
@@ -359,7 +359,7 @@ const saveTheRelease = _.debounce(async function (type, arr, VoiceList, VideoDet
 
   if (res.Ret !== 200) return;
   ElMessage.success("操作成功!");
-  router.back();
+  $router.back();
 }, 500);
 //获取行业
 function chartPermission() {
@@ -524,13 +524,13 @@ function handleCheckedCitiesChange(value) {
   pageState.checkAll = checkedCount === pageState.cities.length;
   pageState.isIndeterminate = checkedCount > 0 && checkedCount < pageState.cities.length;
 }
-function functioncancelBtn() {
-  router.back();
+function cancelBtn() {
+  $router.back();
 }
-function functioncontentTemplate(type) {
+function contentTemplate(type) {
   pageState.contentTemplateTitle = type;
 }
-function functionhandleCloseSubject() {
+function handleCloseSubject() {
   pageState.nameSubjectOptions = [];
   pageState.addSubjectName = "";
   pageState.addSubjectOptions = [];
@@ -573,7 +573,7 @@ async function searchInfo(val) {
   }
 }
 //套餐类型的 提升文本
-function functioncheckboxTooltip(val) {
+function checkboxTooltip(val) {
   let str = "";
   switch (val) {
     case "全选":
@@ -723,7 +723,7 @@ async function getVideoAndImg(type, isOne = "") {
 }
 
 watch(
-  () => radio,
+  () => pageState.radio,
   (newVal) => {
     if (newVal == 1) {
       pageState.astrict = "";
@@ -734,7 +734,7 @@ watch(
 );
 
 watch(
-  () => radioTemporary,
+  () => pageState.radioTemporary,
   (newVal) => {
     if (pageState.radioTemporary) {
       pageState.selectDisabled = true;
@@ -746,14 +746,14 @@ watch(
 );
 
 watch(
-  () => subjectRadio,
+  () => pageState.subjectRadio,
   (newVal) => {
     pageState.addSubjectLabel = [];
   }
 );
 
 watch(
-  () => cactivityType,
+  () => pageState.cactivityType,
   (newVal) => {
     if ($route.query.id) return;
     isCheckAllType(newval === 4 ? true : false);

+ 2 - 2
src/views/rai_manage/activityManage/components/addComopnents/ResearchDeduct.vue

@@ -1,5 +1,5 @@
 <script setup>
-import { ref, reactive, watch, onMounted, toRefs } from "vue";
+import { ref, reactive, watch, onMounted, toRefs, computed } from "vue";
 import { raiInterface } from "@/api/api.js";
 import { DeductUser, DeductForm } from "./addOfEditData";
 import { useRouter, useRoute } from "vue-router";
@@ -213,7 +213,7 @@ const {
       </template>
       <span style="margin: 0 20px" v-if="isDeduct">
         报名截止时间:
-        <el-date-picker clearable v-model="SiginupDeadline" type="datetime" placeholder="选择日期时间" value-format="yyyy-MM-dd HH:mm:ss"> </el-date-picker>
+        <el-date-picker clearable v-model="SiginupDeadline" type="datetime" placeholder="选择日期时间" value-format="YYYY-MM-DD HH:mm:ss"> </el-date-picker>
       </span>
       <span style="margin: 0 20px 0 0" v-if="PointsSet.PointsType == 1">
         取消报名截止时间:

+ 11 - 3
src/views/rai_manage/activityManage/meetingManagement.vue

@@ -1,5 +1,5 @@
 <script setup>
-import { ref, watch, onMounted, reactive, computed, toRefs } from "vue";
+import { ref, watch, onMounted, reactive, computed, toRefs, nextTick } from "vue";
 
 import mPage from "@/components/mPage.vue";
 import { raiInterface } from "@/api/api.js";
@@ -405,8 +405,16 @@ const {
         </span>
       </template>
     </el-dialog>
-    <matching-dlg v-model:matchingDlgShow="matchingDlgShow" :matchingId="matchingId" @getsDataList="getsDataList"/>
-    <partical-dialog  @getsDataList="getsDataList" @particulars="particulars" :type="attendType" :offlineId="offlineId" v-model:submitDialog="submitDialog" v-model:dialogVisiblepartica="dialogVisiblepartica" :particlaDlg="particlaDlg" />
+    <matching-dlg v-model:matchingDlgShow="matchingDlgShow" :matchingId="matchingId" @getsDataList="getsDataList" />
+    <partical-dialog
+      @getsDataList="getsDataList"
+      @particulars="particulars"
+      :type="attendType"
+      :offlineId="offlineId"
+      v-model:submitDialog="submitDialog"
+      v-model:dialogVisiblepartica="dialogVisiblepartica"
+      :particlaDlg="particlaDlg"
+    />
     <search-customer-dlg v-model:searchCustomer="searchCustomer" />
   </div>
 </template>

+ 2 - 2
src/views/rai_manage/activityManage/roadShow/components/addVideoDlg.vue

@@ -310,8 +310,8 @@ function cancelHandle() {
               v-model="addEditVideo.publishDate"
               type="date"
               placeholder="请选择发布时间"
-              format="yyyy 年 MM 月 dd 日"
-              value-format="yyyy-MM-dd"
+              format="YYYY 年 MM 月 DD 日"
+              value-format="YYYY-MM-DD"
               @change="conditionChange"
             >
             </el-date-picker>

+ 6 - 10
src/views/rai_manage/activityManage/roadShow/components/playDetailsDlg.vue

@@ -28,7 +28,7 @@ const tableColums = computed(() => {
 
 watch(
   () => props.playDetailsList.VideoId,
-  () => {
+  (newval) => {
     if (newval) {
       props.tabActive == 4 && getVideoDeatil();
     }
@@ -37,23 +37,19 @@ watch(
 
 watch(
   () => props.playDetailsList.FileName,
-  () => {
+  (newval) => {
     if (newval) {
-      if (newval) {
-        newval == "视频" && activityVideoDeatil();
-        newval == "音频" && getVoiceDeatil();
-      }
+      newval == "视频" && activityVideoDeatil();
+      newval == "音频" && getVoiceDeatil();
     }
   }
 );
 
 watch(
   () => props.playDetailsList.AskserieVideoId,
-  () => {
+  (newval) => {
     if (newval) {
-      if (newval) {
-        askserieVideoHistoryList();
-      }
+      askserieVideoHistoryList();
     }
   }
 );

+ 8 - 5
src/views/rai_manage/activityManage/roadShow/components/releaseAudio.vue

@@ -39,14 +39,13 @@ const fileListAudio = ref([]);
 const videoAndVoiceList = ref([]);
 const defaultImage = ref([]);
 const modifyImgVisible = ref(false);
-const defaultImage = ref("");
-const shareImg = ref("");
+const shareImg = ref(null);
 const dlgTitle = ref("发布问答");
 
 watch(
   () => props.playDetailsList.AskserieVideoId,
-  () => {
-    if (newval) {
+  (newVal) => {
+    if (newVal) {
       newVal && newVal > 0 && askserieVideoDetail();
     }
   },
@@ -91,7 +90,7 @@ const ruleFormAudio = ref(null);
 function confirmSubmit(type) {
   ruleFormAudio.value.validate(async (valid) => {
     if (valid) {
-      if (!fileListAudio[0].value.url) return ElMessage.error("请上传音频");
+      if (!fileListAudio.value[0].url) return ElMessage.error("请上传音频");
       if (!addEditAudio.value.audioName) return ElMessage.error("请输入音频名称");
       let ChartPermissionName = "";
       props.chartPermissionList.forEach((item) => {
@@ -270,6 +269,10 @@ async function askserieVideoDetail() {
     }
   }
 }
+.dialog-footer {
+  display: flex;
+  justify-content: center;
+}
 </style>
 <style lang="scss" scoped>
 .add-edit-release-audio {

+ 5 - 5
src/views/rai_manage/activityManage/roadShowList.vue

@@ -34,7 +34,7 @@ const $route = useRoute();
 const $router = useRouter();
 
 const pageState = reactive({
-  tableColums: [],
+  tableColumsPage: [],
   dataList: [],
   tabActive: 1, //tabs 选中
   chartPermissionList: [], //行业的数组
@@ -80,7 +80,7 @@ onMounted(() => {
     pageState.tabActive = tabActive;
   }
 
-  pageState.tableColums = tableColums(pageState.tabActive);
+  pageState.tableColumsPage = tableColums(pageState.tabActive);
   chartPermission();
   activityType();
   getVideoList();
@@ -88,7 +88,7 @@ onMounted(() => {
 
 function topTabsHandler(item) {
   pageState.tabActive = item.value;
-  pageState.tableColums = tableColums(pageState.tabActive);
+  pageState.tableColumsPage = tableColums(pageState.tabActive);
   pageState.publishStatus = "";
   pageState.cactivityTypeVal = "";
   pageState.page_no = 1;
@@ -271,7 +271,7 @@ onBeforeRouteLeave((to, from, next) => {
 });
 
 const {
-  tableColums,
+  tableColumsPage,
   dataList,
   tabActive, //tabs 选中
   chartPermissionList, //行业的数组
@@ -340,7 +340,7 @@ const {
       </div>
       <el-table :data="dataList" style="width: 100%" border @sort-change="sortChangeHandle">
         <el-table-column
-          v-for="item in tableColums"
+          v-for="item in tableColumsPage"
           :key="item.label"
           :label="item.label"
           :width="item.widthsty"

+ 6 - 6
src/views/rai_manage/activityManage/specialResearch.vue

@@ -45,7 +45,7 @@ const pageState = reactive({
   previewList: [],
   interestData: [], //感兴趣人数
   exportInterest: "",
-  tableColums: [],
+  tableColumsPage: [],
   tabsActive: 1,
   offlineId: 0, //提交的ID
   dialogVisiblepartica: false, //到会详情的隐现
@@ -77,7 +77,7 @@ const tabsTop = computed(() => {
 //点击了头部切换
 function tabsHandle(item) {
   pageState.tabsActive = item.id;
-  pageState.tableColums = tableColums(pageState.tabsActive);
+  pageState.tableColumsPage = tableColums(pageState.tabsActive);
   pageState.status = "";
   pageState.page_no = 1;
   getsDataList();
@@ -273,7 +273,7 @@ function handleRowContent(row, key) {
 }
 // 新增活动报名
 function addapply() {
-  if (!this.selectList) returnElMessage.error("请先选择活动");
+  if (!pageState.selectList) returnElMessage.error("请先选择活动");
   pageState.addDialogVisible = true;
 }
 // 新增活动报名的表格选择
@@ -316,7 +316,7 @@ onMounted(() => {
   }
   chartPermission();
   getsDataList();
-  pageState.tableColums = tableColums(pageState.tabsActive);
+  pageState.tableColumsPage = tableColums(pageState.tabsActive);
 });
 
 onBeforeRouteLeave((to, from, next) => {
@@ -345,7 +345,7 @@ const {
   previewList,
   interestData, //感兴趣人数
   exportInterest,
-  tableColums,
+  tableColumsPage,
   tabsActive,
   offlineId, //提交的ID
   dialogVisiblepartica, //到会详情的隐现
@@ -392,7 +392,7 @@ const {
     <el-card>
       <el-table @selection-change="selectChange" :data="dataList" style="width: 100%; margin-top: 20px" border>
         <el-table-column v-if="tabsActive == 2" align="center" type="selection" width="55"> </el-table-column>
-        <el-table-column v-for="item in tableColums" :key="item.label" :label="item.label" :width="item.widthsty" :min-width="item.minwidthsty" align="center">
+        <el-table-column v-for="item in tableColumsPage" :key="item.label" :label="item.label" :width="item.widthsty" :min-width="item.minwidthsty" align="center">
           <template #default="{ row }">
             <span @click="handleRowClick(row, item.key)" :style="handleRowStyle(item.key)">{{ handleRowContent(row, item.key) }}</span>
           </template>

+ 1 - 1
src/views/rai_manage/activityManage/specialResearch/addResearch.vue

@@ -78,7 +78,7 @@ watch(
 
 watch(
   () => pageState.ruleForm.modality,
-  () => {
+  (newval) => {
     if (newval) {
       pageState.ruleForm.city = "";
     }

+ 3 - 3
src/views/rai_manage/activityManage/specialResearch/determineTravel.vue

@@ -88,8 +88,8 @@ watch(
 
 watch(
   () => pageState.ruleForm.modality,
-  () => {
-    if (newval) {
+  (newval) => {
+    if (newval==1) {
       pageState.ruleForm.city = "";
     }
   },
@@ -447,7 +447,7 @@ const {
           <div v-for="(item, num) in isDateTime" :key="num" class="day-item">
             <span class="day-nub"> DAY {{ num + 1 }} : </span>
             <div>
-              <el-date-picker style="width: 186px; margin-right: 25px" v-model="item.DateYmd" type="date" value-format="yyyy-MM-dd" placeholder="请选择日期"> </el-date-picker>
+              <el-date-picker style="width: 186px; margin-right: 25px" v-model="item.DateYmd" type="date" value-format="YYYY-MM-DD" placeholder="请选择日期"> </el-date-picker>
             </div>
             <div>
               <div v-for="(key, index) in item.DateHmsList" :key="index">

+ 1 - 1
src/views/rai_manage/activityManage/specialResearch/particularsAll.vue

@@ -160,7 +160,7 @@ function cancelApply(item) {
   </div>
 </template>
 
-<style lang="less">
+<style lang="scss">
 .container-particulars {
   .table-box {
     margin: 20px auto;

+ 3 - 4
src/views/rai_manage/components/addChoiceness.vue

@@ -52,7 +52,6 @@ const timeInterval = ref(null); // 定时器
 // 报告的缓存处理数据
 function dataInit() {
   if (sessionStorage.getItem("addChoicenessQY")) {
-    console.log("????");
     let data = JSON.parse(sessionStorage.getItem("addChoicenessQY"));
     setTimeout(() => {
       industryList.value = data.industryList;
@@ -326,7 +325,7 @@ const confirm = _.debounce(function (type) {
       let params = dataHandle(type);
       if (type == "预览") {
         sessionStorage.setItem("choicenessPre", JSON.stringify(params));
-        let { href } = router.resolve({ name: "预览报告精选" });
+        let { href } = router.resolve({ name: "choicenessPre" });
         window.open(href, "_blank");
       } else {
         const res = await raiInterface.industrialSubjectPreserveAndPublish(params);
@@ -505,7 +504,7 @@ onBeforeRouteLeave((to, from, next) => {
             </el-col>
             <el-col :span="6">
               <el-form-item prop="time">
-                <el-date-picker type="date" placeholder="选择发布时间" value-format="yyyy-MM-dd" v-model="ruleForm.time"></el-date-picker>
+                <el-date-picker type="date" placeholder="选择发布时间" value-format="YYYY-MM-DD" v-model="ruleForm.time"></el-date-picker>
               </el-form-item>
             </el-col>
           </el-row>
@@ -525,7 +524,7 @@ onBeforeRouteLeave((to, from, next) => {
         </el-form>
         <!-- 产业/标的 模块 -->
         <div class="content-module" v-if="industryList.length">
-          <draggable v-model="industryList" animation="300" @update="sortChange">
+          <draggable v-model="industryList" animation="300" @update="sortChange" item-key="id">
             <template #item="{ element, index }">
               <div class="content-industry">
                 <div class="content-name" :class="industryIndex == index ? 'active' : ''" @click="industryBtn(element, index)">{{ element.ChartPermissionName }}</div>

+ 1 - 1
src/views/rai_manage/components/addMorningMeeting.vue

@@ -285,7 +285,7 @@ const { meettingDate, meetingId, froalaConfig, sectionData, industryData, allPro
   <!-- 添加/编辑 晨会精华 -->
   <div class="add-morning-meeting-wrap" v-loading="dataLoading">
     <div class="date-pick-wrap">
-      <el-date-picker v-model="meettingDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="请选择晨会日期"> </el-date-picker>
+      <el-date-picker v-model="meettingDate" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" placeholder="请选择晨会日期"> </el-date-picker>
     </div>
     <div class="content-wrap">
       <div class="meeting-content-wrap">

+ 2 - 2
src/views/rai_manage/components/addRoadshow.vue

@@ -146,7 +146,7 @@ const confirm = _.debounce(function (type) {
       };
       if (type == "预览") {
         sessionStorage.setItem("roadShowPre", JSON.stringify(params));
-        let { href } = $router.resolve({ name: "预览路演精华" });
+        let { href } = $router.resolve({ name: "roadshowPre" });
         window.open(href, "_blank");
       } else {
         const res = await raiInterface.roadshowEssencePreserveAndPublish(params);
@@ -213,7 +213,7 @@ const { listForm, property, rules, optionsIndustry, optionsProperty, optionsTarg
           </el-col>
           <el-col :span="6">
             <el-form-item prop="time">
-              <el-date-picker v-model="listForm.time" type="date" placeholder="请选择日期" value-format="yyyy-MM-dd"> </el-date-picker>
+              <el-date-picker v-model="listForm.time" type="date" placeholder="请选择日期" value-format="YYYY-MM-DD"> </el-date-picker>
             </el-form-item>
           </el-col>
         </el-row>

+ 3 - 3
src/views/rai_manage/components/addSummarizing.vue

@@ -82,7 +82,7 @@ const ruleFormRef = ref(null);
 const confirm = _.debounce(function (type) {
   ruleFormRef.value.validate(async (val) => {
     if (!val) return;
-    const isFlag = await pageState.fnConFirm();
+    const isFlag = await fnConFirm();
     if (isFlag) return;
     let params = {
       Abstract: pageState.ruleForm.explain,
@@ -101,7 +101,7 @@ const confirm = _.debounce(function (type) {
     };
     if (type == "预览") {
       sessionStorage.setItem("lastWeekPre", JSON.stringify(params));
-      let { href } = $router.resolve({ name: "预览上周汇总" });
+      let { href } = $router.resolve({ name: "lastWeekSummary" });
       window.open(href, "_blank");
     } else {
       const res = await raiInterface.minutesSummaryPreserveAndPublish(params);
@@ -230,7 +230,7 @@ const { ruleForm, rules, ListCydyjy, SortCydyjy, ListSsgs, SortSsgs, isSortCydyj
           </el-col>
           <el-col :span="6">
             <el-form-item prop="time">
-              <el-date-picker type="date" placeholder="选择发布时间" value-format="yyyy-MM-dd" v-model="ruleForm.time"></el-date-picker>
+              <el-date-picker type="date" placeholder="选择发布时间" value-format="YYYY-MM-DD" v-model="ruleForm.time"></el-date-picker>
             </el-form-item>
           </el-col>
         </el-row>

+ 9 - 3
src/views/rai_manage/components/addSummary.vue

@@ -3,7 +3,6 @@ import { ref, onMounted, reactive, toRefs } from "vue";
 import { raiInterface } from "@/api/api.js";
 import Clipboard from "clipboard";
 import RichText from "./richText.vue";
-import chartDialogVue from "../../dataEntry_manage/components/chartDialog.vue";
 import AddIndustryMark from "../components/addIndustryMark.vue";
 import _ from "lodash";
 import { ElMessageBox, ElMessage } from "element-plus";
@@ -199,7 +198,7 @@ const submitForm = _.debounce(async function (type) {
         window.open(href, "_blank");
       } else {
         sessionStorage.setItem("summaryPre", JSON.stringify(params));
-        let { href } = $router.resolve({ name: "预览研选报告" });
+        let { href } = $router.resolve({ name: "summaryPre" });
         window.open(href, "_blank");
       }
       return;
@@ -459,7 +458,7 @@ const {
         </el-select>
         <img v-if="!isSource" src="~@/assets/img/set_m/add_ico.png" style="margin: 0 0 0 10px" @click="isAddMarketDlg" />
         <el-form-item prop="publishTime">
-          <el-date-picker style="margin-left: 30px" v-model="addOfEditForm.publishTime" type="date" placeholder="请选择发布时间" format="yyyy-MM-dd" value-format="yyyy-MM-dd"> </el-date-picker>
+          <el-date-picker style="margin-left: 30px" v-model="addOfEditForm.publishTime" type="date" placeholder="请选择发布时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD"> </el-date-picker>
         </el-form-item>
       </el-card>
 
@@ -616,6 +615,9 @@ const {
     justify-content: space-between;
   }
   .form-item-bootm {
+    width: 100%;
+    display: flex;
+    justify-content: center;
     margin-top: 50px;
     text-align: center;
     .el-button {
@@ -633,4 +635,8 @@ const {
 .fr-visible {
   display: none !important;
 }
+
+.el-form-item__content {
+  justify-content: center;
+}
 </style>

+ 2 - 2
src/views/rai_manage/components/addThisWeek.vue

@@ -138,7 +138,7 @@ const confirm = _.debounce(function (type) {
     };
     if (type == "预览") {
       sessionStorage.setItem("pageStateWeekPre", JSON.stringify(params));
-      let { href } = $router.resolve({ name: "预览本周汇总" });
+      let { href } = $router.resolve({ name: "thisWeekSummary" });
       window.open(href, "_blank");
     } else {
       const res = await raiInterface.researchSummaryPreserveAndPublish(params);
@@ -254,7 +254,7 @@ const {
           </el-col>
           <el-col :span="6">
             <el-form-item prop="time">
-              <el-date-picker type="date" placeholder="选择发布时间" value-format="yyyy-MM-dd" v-model="ruleForm.time"></el-date-picker>
+              <el-date-picker type="date" placeholder="选择发布时间" value-format="YYYY-MM-DD" v-model="ruleForm.time"></el-date-picker>
             </el-form-item>
           </el-col>
         </el-row>

+ 12 - 22
src/views/rai_manage/components/apply/applyDialog.vue

@@ -31,14 +31,14 @@ const props = defineProps({
 
 const dynamicItem = ref([{ name: "", isShow: false, radio: "1", checked: false }]);
 const companyList = ref([]); //客户名称的数组
-const userTyepa = ref([]); //客户名称的数组
+const userTyep = ref([]); //客户名称的数组
 const timeout = ref(null);
 const warningIsShow = ref(false);
 const isShow = ref("");
 const userId = ref("");
 
 const isType = computed(() => {
-  if (props.selectionArr.length > 0) {
+  if (props.selectionArr && props.selectionArr.length > 0) {
     return props.selectionArr.some(
       (item) => item.ActivityTypeName == "公司调研电话会" || item.ActivityTypeName == "专家电话会" || item.ActivityTypeName == "分析师电话会" || item.IsYidongConduct == 1
     );
@@ -46,7 +46,7 @@ const isType = computed(() => {
 });
 
 const isShowSummary = computed(() => {
-  if (props.selectionArr.length > 0) {
+  if (props.selectionArr && props.selectionArr.length > 0) {
     return (props.addDialogType == "新增外呼人员" || props.addDialogType == "新增报名") && !props.selectionArr.some((item) => item.ActivityTypeName == "公司调研电话会" && item.LimitPeopleNum !== 0);
   }
 });
@@ -116,7 +116,8 @@ function deleteItem(item, index) {
   dynamicItem.value.splice(index, 1);
 }
 /* 获取客户名称 */
-function getCompany(query) {
+function getCompany(query, cd) {
+  cd([]);
   if (query.includes(",")) return;
   if (query) {
     raiInterface
@@ -135,28 +136,18 @@ function getCompany(query) {
               arr.push(obj);
             });
           companyList.value = arr;
+          cd(companyList.value);
+          if (companyList.value.length == 0) {
+            warningIsShow.value = true;
+          } else {
+            warningIsShow.value = false;
+          }
         }
       });
   } else {
     companyList.value = [];
   }
 }
-function callbackHandle(data, cb) {
-  let results = data
-    ? companyList.value.filter((item) => {
-        return item.value.includes(data);
-      })
-    : companyList.value;
-  clearTimeout(timeout.value);
-  timeout.value = setTimeout(() => {
-    cb(results);
-  }, 300);
-  if (results.length == 0) {
-    warningIsShow.value = true;
-  } else {
-    warningIsShow.value = false;
-  }
-}
 //退出弹框
 function handleClose() {
   userId.value = "";
@@ -230,9 +221,8 @@ function measurement() {
           <el-autocomplete
             class="inline-input"
             v-model="item.name"
-            :fetch-suggestions="callbackHandle"
+            :fetch-suggestions="getCompany"
             placeholder="请输入姓名"
-            @input="getCompany(item.name)"
             @select="selectCompany(item, index)"
             @blur="focusCompany(item.name)"
             :trigger-on-focus="false"

+ 26 - 7
src/views/rai_manage/components/apply/particularsDialog.vue

@@ -1,5 +1,5 @@
 <script setup>
-import { ref, watch, onMounted, computed, reactive, nextTick } from "vue";
+import { ref, watch, onMounted, computed, reactive, nextTick, toRefs } from "vue";
 import { ElMessageBox, ElMessage } from "element-plus";
 import { raiInterface } from "@/api/api.js";
 import EditMobile from "../editMobile.vue";
@@ -55,12 +55,10 @@ const pageState = reactive({
 
 // 下载
 const exportUser = computed(() => {
-  if (props.selectionArr.length > 0) {
-    if (pageState.Teleconference || props.subscribe == "预约外呼详情") {
-      return import.meta.env.VITE_APP_API_ROOT + "/cygx/activitySignup/callExport?ActivityId=" + pageState.excelId + "&" + localStorage.getItem("auth") || "";
-    } else {
-      return import.meta.env.VITE_APP_API_ROOT + "/cygx/activitySignup/signupFailExport?ActivityId=" + pageState.excelId + "&" + localStorage.getItem("auth") || "";
-    }
+  if (pageState.Teleconference || props.subscribe == "预约外呼详情") {
+    return import.meta.env.VITE_APP_API_ROOT + "/cygx/activitySignup/callExport?ActivityId=" + pageState.excelId + "&" + localStorage.getItem("auth") || "";
+  } else {
+    return import.meta.env.VITE_APP_API_ROOT + "/cygx/activitySignup/signupFailExport?ActivityId=" + pageState.excelId + "&" + localStorage.getItem("auth") || "";
   }
 });
 
@@ -245,6 +243,27 @@ function handleConfirmDownload() {
   pageState.isNameListDownloadShow = false;
   pageState.downloadTypeName = 0;
 }
+
+const {
+  page_no,
+  PageSize,
+  dataList, //表格
+  value1,
+  radioArr,
+  excelType, //下载类型
+  excelId, //下载的id
+  total, //条数
+  myTotal, //条数
+  isLimitPeople, //条数
+  memberType, //
+  editMobileDialogVisible, //
+  editMobileId, //
+  outboundMobile,
+  isFullNum, //报名人数是否已满
+  isNameListDownloadShow, //下载名单弹框
+  downloadTypeName,
+  isYidongConduct, // 是否是易懂
+} = toRefs(pageState);
 </script>
 
 <template>

+ 2 - 12
src/views/rai_manage/components/apply/searchCustomerDlg.vue

@@ -77,7 +77,7 @@ async function handleRowClick(row, key) {
   }
 }
 
-const $emit =defineEmits()
+const $emit = defineEmits();
 
 //搜索的取消
 function searchCancelHandle() {
@@ -96,17 +96,7 @@ function detaileCancelHandle() {
   pageState.detailedDateList = [];
 }
 
-
-cosnt {
-  clientName,
-  clientList,
-  resultCustomer,
-  resultDateList,
-  resultDate,
-  detailedVisibleDlg,
-  detailedDateList,
-  detailedDate,
-} =toRefs(pageState)
+const { clientName, clientList, resultCustomer, resultDateList, resultDate, detailedVisibleDlg, detailedDateList, detailedDate } = toRefs(pageState);
 </script>
 
 <template>

+ 11 - 3
src/views/rai_manage/components/editMobile.vue

@@ -24,6 +24,7 @@ const props = defineProps({
 });
 
 const selectValue = ref("86");
+
 const optionsMobile = ref([
   { value: "+86", key: "86" },
   { value: "+852", key: "852" },
@@ -49,7 +50,7 @@ async function activitySignupSignupDetail() {
   }
 }
 
-const $emit = defineEmits(['getsDataList']);
+const $emit = defineEmits(["getsDataList"]);
 function handleClose() {
   selectValue.value = "86";
   modelKey.value = "";
@@ -89,7 +90,7 @@ async function btnOk() {
         </div>
       </template>
       <div class="content-box" style="margin-top: 20px; margin-bottom: 60px">
-        <el-select style="width: 80px" v-model="selectValue" placeholder="请选择">
+        <el-select style="width: 90px" v-model="selectValue" placeholder="请选择">
           <el-option v-for="item in optionsMobile" :key="item.key" :label="item.value" :value="item.key"> </el-option>
         </el-select>
         <el-input style="width: 368px" v-model="modelKey" placeholder="请输入手机号或座机号" />
@@ -104,7 +105,14 @@ async function btnOk() {
     </el-dialog>
   </div>
 </template>
-
+<style lang="scss">
+.el-select {
+  .el-input,
+  .el-input__wrapper {
+    width: 100% !important;
+  }
+}
+</style>
 <style scoped lang="scss">
 .container-editMobile {
   .content-box {

+ 2 - 3
src/views/rai_manage/components/matchingDlg.vue

@@ -1,7 +1,6 @@
 <script setup>
 import { ref, watch, nextTick } from "vue";
 
-import mDialog from "@/components/mDialog.vue";
 import { raiInterface } from "@/api/api.js";
 import { ElMessage } from "element-plus";
 
@@ -62,7 +61,7 @@ async function confirm() {
 
 <template>
   <div class="container-macthing">
-    <mDialog v-model="props.matchingDlgShow" @beforeClose="closeDlg" :width="'40%'">
+    <el-dialog draggable :modal-append-to-body="false" center v-model="props.matchingDlgShow" @beforeClose="closeDlg" :width="'40%'">
       <div class="content-macthing">
         <el-select style="width: 100%" v-model="matchingValue" filterable clearable :filter-method="remoteMethod" placeholder="请输入活动名称关键字">
           <el-option v-for="item in dataQueryList" :key="item.RoadshowTitle + item.ActivityTime" :label="item.value" :value="item.RoadshowTitle + '{|}' + item.ActivityTime"> </el-option>
@@ -80,7 +79,7 @@ async function confirm() {
           <el-button type="primary" @click="closeDlg">取消</el-button>
         </div>
       </template>
-    </mDialog>
+    </el-dialog>
   </div>
 </template>
 

+ 6 - 10
src/views/rai_manage/components/particalDialog.vue

@@ -49,7 +49,7 @@ watch(
 watch(
   () => props.dialogVisiblepartica,
   (newValue) => {
-    if (newval) {
+    if (newValue) {
       if (isShowparticulars.value == "报名详情") {
         offlineListDetail();
       } else {
@@ -61,10 +61,8 @@ watch(
 watch(
   () => props.submitDialog,
   (newValue) => {
-    if (newval) {
-      if (newval) {
-        arriveOfflineListDetail();
-      }
+    if (newValue) {
+      arriveOfflineListDetail();
     }
   }
 );
@@ -79,7 +77,7 @@ async function offlineListDetail() {
   }
 }
 
-const $emit = defineEmits(["getsDataList",'particulars']);
+const $emit = defineEmits(["getsDataList", "particulars"]);
 
 //到会详情
 async function arriveOfflineListDetail() {
@@ -128,11 +126,9 @@ async function confirmSubmit() {
     userId.value = "";
     dynamicItem.value = [];
     $emit("update:submitDialog", false);
-    this.$parent.getsDataList();
     $emit("getsDataList");
-    $nextTick(() => {
-    $emit("particulars",props.offlineId, "到会详情");
-
+    nextTick(() => {
+      $emit("particulars", props.offlineId, "到会详情");
     });
   }
 }

+ 1 - 1
src/views/rai_manage/components/report_preview/choicenessPre.vue

@@ -5,7 +5,7 @@ import Disclaimer from "./components/disclaimer.vue";
 import toTop from "./components/toTop.vue";
 import moment from "moment";
 import { raiInterface } from "@/api/api.js";
-
+import $ from 'jquery'
 const $route = useRoute();
 const $router = useRouter();
 

+ 1 - 1
src/views/rai_manage/components/report_preview/lastWeekSummary.vue

@@ -6,7 +6,7 @@ import Disclaimer from "./components/disclaimer.vue";
 import toTop from "./components/toTop.vue";
 import moment from "moment";
 import { raiInterface } from "@/api/api.js";
-
+import $ from 'jquery'
 const $route = useRoute();
 const $router = useRouter();
 

+ 1 - 1
src/views/rai_manage/components/report_preview/roadshowPre.vue

@@ -6,7 +6,7 @@ import Disclaimer from "./components/disclaimer.vue";
 import toTop from "./components/toTop.vue";
 import moment from "moment";
 import { raiInterface } from "@/api/api.js";
-
+import $ from 'jquery'
 const $route = useRoute();
 const $router = useRouter();
 

+ 10 - 13
src/views/rai_manage/components/report_preview/summaryPre.vue

@@ -5,7 +5,7 @@ import { useRoute, useRouter } from "vue-router";
 import Disclaimer from "./components/disclaimer.vue";
 import toTop from "./components/toTop.vue";
 import moment from "moment";
-
+import $ from 'jquery'
 const $route = useRoute();
 const $router = useRouter();
 
@@ -16,19 +16,16 @@ const publishTime = computed(() => {
 const reportInfo = ref(JSON.parse(sessionStorage.getItem("summaryPre")) || "");
 const showTips = ref(false);
 
+function showDisclaimer() {
+  showTips.value = true;
+}
+function lookDeeperReport() {
+  window.open(reportInfo.value.ReportLink, "_blank");
+}
 
- function  showDisclaimer() {
-      showTips.value = true;
-    },
-   function lookDeeperReport() {
-      window.open(reportInfo.value.ReportLink, "_blank");
-    },
-
-
-onMounted(()=>{
-    $("#report-content img").css("max-width", "100%");
-
-})
+onMounted(() => {
+  $("#report-content img").css("max-width", "100%");
+});
 </script>
 
 <template>

+ 1 - 1
src/views/rai_manage/components/report_preview/thisWeekSummary.vue

@@ -6,7 +6,7 @@ import Disclaimer from "./components/disclaimer.vue";
 import toTop from "./components/toTop.vue";
 import moment from "moment";
 import { raiInterface } from "@/api/api.js";
-
+import $ from 'jquery'
 const $route = useRoute();
 const $router = useRouter();
 

+ 5 - 4
src/views/rai_manage/components/special/specialResearchDlg.vue

@@ -1,7 +1,8 @@
-<script>
+<script setup>
 import { ref, nextTick, watch } from "vue";
 
 import { raiInterface, raiSpecial } from "@/api/api.js";
+import $ from 'jquery'
 
 const props = defineProps({
   dialogTitle: {
@@ -56,7 +57,7 @@ function handleCloseSubject() {
 async function interestDetails() {
   const res = await raiSpecial.specialInterested({ ActivityId: props.specialDetailId });
   if (res.Ret === 200) {
-    exportInterest.value = `${import.meta.env.VITE_APP_API_ROOT}/cygx/special/export?${localStorage.getItem("auth") || ""}&ActivityId=${this.specialDetailId}`;
+    exportInterest.value = `${import.meta.env.VITE_APP_API_ROOT}/cygx/special/export?${localStorage.getItem("auth") || ""}&ActivityId=${props.specialDetailId}`;
     nextTick(() => {
       interestData.value = res.Data.List;
     });
@@ -66,8 +67,8 @@ async function interestDetails() {
 async function themeDetails() {
   const res = await raiSpecial.specialDetail({ ActivityId: props.specialDetailId });
   if (res.Ret === 200) {
-    previewList.value = res.Data;
-    previewList.value.push(props.tabsActive == 1 ? previewList.value.TripImgLink : previewList.value.TripImgLinkFix);
+    activityDetail.value = res.Data;
+    previewList.value.push(props.tabsActive == 1 ? activityDetail.value.TripImgLink : activityDetail.value.TripImgLinkFix);
   }
 }
 </script>

+ 1 - 1
src/views/rai_manage/reportManage/appletsReport.vue

@@ -384,7 +384,7 @@ async function lookDetail(item) {
     const res = await raiInterface.reportArticleDetail({ ArticleId: item.ArticleId });
     if (res.Ret === 200) {
       sessionStorage.setItem("summaryPre", JSON.stringify(res.Data));
-      let { href } = router.resolve({ name: "预览研选报告" });
+      let { href } = router.resolve({ name: "summaryPre" });
       window.open(href, "_blank");
     }
   }

+ 1 - 1
src/views/rai_manage/reportManage/components/addHaveReport.vue

@@ -298,7 +298,7 @@ const {
           <el-input style="width: 360px" clearable v-model="addOfEditForm.title" placeholder="请输入报告标题"></el-input>
         </el-form-item>
         <el-form-item prop="publishTime">
-          <el-date-picker style="width: 360px" v-model="addOfEditForm.publishTime" type="date" placeholder="请选择发布时间" format="yyyy-MM-dd" value-format="yyyy-MM-dd"> </el-date-picker>
+          <el-date-picker style="width: 360px" v-model="addOfEditForm.publishTime" type="date" placeholder="请选择发布时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD"> </el-date-picker>
         </el-form-item>
         <el-form-item>
           <el-input style="width: 360px" clearable v-model="addOfEditForm.department" placeholder="请输入作者(选填)"></el-input>

+ 1 - 1
src/views/rai_manage/reportManage/morningMeetingManage.vue

@@ -152,7 +152,7 @@ const { tableColumn, tableData, page_no, pageSize, total, searchPublish, searchD
               :value="item.value"
             />
           </el-select>
-          <el-date-picker v-model="searchDate" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" @change="changeSelect" class="date-pick" placeholder="晨会时间"> </el-date-picker>
+          <el-date-picker v-model="searchDate" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD" @change="changeSelect" class="date-pick" placeholder="晨会时间"> </el-date-picker>
         </div>
 
         <el-input placeholder="请输入产业标签" clearable v-model="searchLabel" @input="changeSelect" :prefix-icon="Search"> </el-input>

+ 1 - 1
src/views/rai_manage/reportManage/roadshowEssence.vue

@@ -118,7 +118,7 @@ function operationBtn(id, value) {
 }
 //文章详情
 function goDetail(row) {
-  let { href } = $router.resolve({ name: "预览路演精华", query: { ArticleId: row.ArticleId } });
+  let { href } = $router.resolve({ name: "roadshowPre", query: { ArticleId: row.ArticleId } });
   window.open(href, "_blank");
 }
 //分页

+ 1 - 1
src/views/rai_manage/reportManage/summaryManage.vue

@@ -169,7 +169,7 @@ async function lookDetail(item) {
     const res = await raiInterface.getsummaryManagedetail({ ArticleId: item.ArticleId });
     if (res.Ret === 200) {
       sessionStorage.setItem("summaryPre", JSON.stringify(res.Data));
-      let { href } = $router.resolve({ name: "预览研选报告" });
+      let { href } = $router.resolve({ name: "summaryPre" });
       window.open(href, "_blank");
     }
   }

+ 1 - 1
src/views/rai_manage/reportManage/tacticsTimeLine.vue

@@ -235,7 +235,7 @@ const { page_no, total, PageSize, visibleRange, dataTableList, statusValue, stat
     <el-dialog v-model="addOfEditDialog" :title="addOfEditText" draggable :close-on-click-modal="false" :modal-append-to-body="false" center width="661px" @close="handleClose">
       <el-form :model="dataForm" :rules="dataRules" ref="ruleForm">
         <el-form-item prop="PublishTime">
-          <el-date-picker type="date" value-format="yyyy-MM-dd" placeholder="请选择日期" v-model="dataForm.PublishTime" style="width: 100%"></el-date-picker>
+          <el-date-picker type="date" value-format="YYYY-MM-DD" placeholder="请选择日期" v-model="dataForm.PublishTime" style="width: 100%"></el-date-picker>
         </el-form-item>
         <el-form-item prop="Content">
           <div class="fr-wrapper" style="width: 100%">

+ 180 - 0
src/views/research_manage/shareRecord.vue

@@ -0,0 +1,180 @@
+<script setup>
+import { customInterence, raiInterface } from "@/api/api.js";
+import mPage from "@/components/mPage.vue";
+import { onMounted, reactive, ref, toRefs } from "vue";
+
+import { useRoute, useRouter } from "vue-router";
+
+import { Calendar, Search, InfoFilled } from "@element-plus/icons-vue";
+
+const $route = useRoute();
+const $router = useRouter();
+const pageState = reactive({
+  total: 0, //条数
+  pageSize: 10, //每页显示几条
+  page_no: 1,
+  keyword: "",
+  sales: [],
+  salesArr: [], //销售
+  defaultSalesProps: {
+    multiple: true,
+    label: "RealName",
+    children: "ChildrenList",
+    value: "AdminId",
+  }, //销售级联配置
+  selectTime: [],
+  tableData: [],
+  actionVal: "",
+  actionOptions: ["注册", "查看专栏", "查看报告", "查看活动"],
+});
+
+/* 获取销售 */
+function getSale() {
+  customInterence.getSalesRaiData().then((res) => {
+    if (res.Ret === 200) {
+      pageState.salesArr = res.Data.List;
+    }
+  });
+}
+/* 筛选了重新变动 */
+function handleListChange() {
+  pageState.page_no = 1;
+  getDataList();
+}
+function handleCurrentChange(page) {
+  pageState.page_no = page;
+  getDataList();
+}
+/* 查看客户详情 */
+function customDetail(row) {
+  if (row.CompanyId == 1) return;
+  const { href } = $router.resolve({
+    path: "/customDetail",
+    query: {
+      id: row.CompanyId,
+    },
+  });
+  window.open(href, "_blank");
+}
+/* 查看报告/活动标题详情 */
+function titleDetail(row) {
+  window.open(row.HttpUrl, "_blank");
+}
+/* 获取数据 */
+async function getDataList() {
+  let salesArr = [];
+  if (pageState.sales.length) {
+    salesArr = pageState.sales.map((item) => {
+      return item[item.length - 1];
+    });
+  }
+
+  const res = await raiInterface.getShareRecordList({
+    PageSize: pageState.pageSize,
+    CurrentIndex: pageState.page_no,
+    AdminId: salesArr.join(","),
+    KeyWord: pageState.keyword,
+    StartDate: pageState.selectTime && pageState.selectTime[0] ? pageState.selectTime[0] : "",
+    EndDate: pageState.selectTime && pageState.selectTime[1] ? pageState.selectTime[1] : "",
+    Action: pageState.actionVal,
+  });
+  if (res.Ret === 200) {
+    pageState.tableData = res.Data.List || [];
+    pageState.total = res.Data.Paging.Totals;
+  }
+}
+
+onMounted(() => {
+  getSale();
+  getDataList();
+});
+
+const {
+  total, //条数
+  pageSize, //每页显示几条
+  page_no,
+  keyword,
+  sales,
+  salesArr, //销售
+  defaultSalesProps, //销售级联配置
+  selectTime,
+  tableData,
+  actionVal,
+  actionOptions,
+} = toRefs(pageState);
+</script>
+
+<template>
+  <div class="container share-record-container">
+    <el-card>
+      <div class="share-record-top">
+        <div>
+          <el-date-picker
+            v-model="selectTime"
+            style="width: 260px"
+            type="daterange"
+            value-format="YYYY-MM-DD"
+            range-separator="至"
+            start-placeholder="开始日期"
+            end-placeholder="结束日期"
+            @change="handleListChange"
+          >
+          </el-date-picker>
+          <el-cascader
+            v-model="sales"
+            placeholder="请选择分享人"
+            style="width: 200px; margin: 0 20px"
+            :options="salesArr"
+            :props="defaultSalesProps"
+            :show-all-levels="false"
+            collapse-tags
+            clearable
+            filterable
+            @change="handleListChange"
+          >
+          </el-cascader>
+          <el-select v-model="actionVal" placeholder="用户行为" @change="handleListChange" clearable>
+            <el-option v-for="item in actionOptions" :key="item" :label="item" :value="item"> </el-option>
+          </el-select>
+        </div>
+        <div>
+          <el-input placeholder="请输入姓名/手机号" v-model="keyword" style="width: 300px" @input="handleListChange" clearable :prefix-icon="Search"> </el-input>
+        </div>
+      </div>
+    </el-card>
+
+    <el-card style="margin-top: 20px">
+      <el-table ref="userTable" :data="tableData" border>
+        <el-table-column prop="Action" label="用户行为" align="center" width="150"> </el-table-column>
+        <el-table-column prop="CreateTime" label="行为时间" align="center" width="180"> </el-table-column>
+        <el-table-column prop="RegisterPlatformText" label="分享平台" align="center" width="150"> </el-table-column>
+        <el-table-column prop="RealName" label="姓名" align="center" width="130"> </el-table-column>
+        <el-table-column prop="Mobile" label="手机号" align="center" width="150"> </el-table-column>
+        <el-table-column prop="CompanyName" label="公司名称" align="center">
+          <template #default="{ row }">
+            <span v-if="row.CompanyId == 1">{{ row.CompanyName }}</span>
+            <span class="editsty" @click="customDetail(row)" v-else>{{ row.CompanyName }}</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="ShareName" label="分享人" align="center" width="100"> </el-table-column>
+        <el-table-column prop="SourceTitle" label="报告/活动标题" align="center">
+          <template #default="{ row }">
+            <span class="editsty" @click="titleDetail(row)">{{ row.SourceTitle }}</span>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-col :span="24" class="toolbar">
+        <m-page :total="total" :page_no="page_no" @handleCurrentChange="handleCurrentChange" />
+      </el-col>
+    </el-card>
+  </div>
+</template>
+
+<style scoped lang="scss">
+.share-record-container {
+  .share-record-top {
+    display: flex;
+    justify-content: space-between;
+  }
+}
+</style>