Browse Source

语料库词典集成

natasha 1 year ago
parent
commit
a1bd73123b
6 changed files with 185 additions and 130 deletions
  1. 8 2
      src/api/api.js
  2. 129 114
      src/components/Header.vue
  3. 2 3
      src/permission.js
  4. 6 0
      src/router/index.js
  5. 4 1
      src/views/corpus/Result.vue
  6. 36 10
      src/views/corpus/seekPage.vue

+ 8 - 2
src/api/api.js

@@ -68,19 +68,25 @@ export function getLogin(MethodName, data) {
     });
 }
 
-export function BookgetContent(MethodName, data) {
+export function BookgetContent(MethodName, data, AppID, AccessToken) {
     let userInfor = getToken();
     let SessionID = '';
     let UserCode = '';
     let UserType = '';
+    let url = ''
     if (userInfor) {
         let user = JSON.parse(getToken());
         UserCode = user.user_code;
         UserType = user.user_type;
         SessionID = user.session_id;
     }
+    if (AccessToken) {
+      url=`/GCLSBookWebSI/ServiceInterface?MethodName=${MethodName}&AppID=${AppID}&AccessToken=${AccessToken}`
+    } else {
+      url= `/GCLSBookWebSI/ServiceInterface?MethodName=${MethodName}&UserCode=${UserCode}&UserType=${UserType}&SessionID=${SessionID}`
+    }
     return request({
-        url: `/GCLSBookWebSI/ServiceInterface?MethodName=${MethodName}&UserCode=${UserCode}&UserType=${UserType}&SessionID=${SessionID}`,
+        url: url,
         method: 'post',
         data,
     });

+ 129 - 114
src/components/Header.vue

@@ -1,33 +1,40 @@
 <template>
   <!-- 顶部登录导航 -->
   <div v-if="isData" class="LoginNav1">
-    <div v-if="configInfor" class="logo">
-      <img
-        v-if="configInfor.logo_image_url"
-        :src="configInfor.logo_image_url"
-        alt=""
-        class="logo-image"
-        @click="handleSelect"
-      />
-      <span v-else class="logo-img">logo</span>
-      <ul v-if="!projectShow" class="logo-projectlist">
-        <li
-          v-for="(itemI, indexI) in projectList"
-          :key="indexI"
-          :class="indexI == LoginNavIndex ? 'active' : ''"
-          @click="handleCommand(indexI)"
-        >
-          {{ itemI.name }}
-        </li>
-      </ul>
-      <template v-else-if="seekShow">
-        <div class="ylk_seek" @keydown="downSeek">
-          <input v-model="keyword" type="text" />
-          <div @click="seekresult">搜索</div>
-        </div>
-      </template>
-      <el-popover v-if="seekOptions" v-model="visibleOption" placement="bottom" width="335" trigger="click">
-        <!-- <div class="set_corpus_dv">
+    <template v-if="$route.query.AccessToken">
+      <div class="ylk_seek" @keydown="downSeek" v-if="seekShow">
+        <input v-model="keyword" type="text" />
+        <div @click="seekresult">搜索</div>
+      </div>
+    </template>
+    <template v-else>
+      <div v-if="configInfor" class="logo">
+        <img
+          v-if="configInfor.logo_image_url"
+          :src="configInfor.logo_image_url"
+          alt=""
+          class="logo-image"
+          @click="handleSelect"
+        />
+        <span v-else class="logo-img">logo</span>
+        <ul v-if="!projectShow" class="logo-projectlist">
+          <li
+            v-for="(itemI, indexI) in projectList"
+            :key="indexI"
+            :class="indexI == LoginNavIndex ? 'active' : ''"
+            @click="handleCommand(indexI)"
+          >
+            {{ itemI.name }}
+          </li>
+        </ul>
+        <template v-else-if="seekShow">
+          <div class="ylk_seek" @keydown="downSeek">
+            <input v-model="keyword" type="text" />
+            <div @click="seekresult">搜索</div>
+          </div>
+        </template>
+        <el-popover v-if="seekOptions" v-model="visibleOption" placement="bottom" width="335" trigger="click">
+          <!-- <div class="set_corpus_dv">
           <span>选择难度</span>
           <el-select v-model="corpus.difficlty" style="width: 205px" placeholder="请选择">
             <el-option
@@ -38,56 +45,12 @@
             />
           </el-select>
         </div> -->
-        <!-- <div class="set_corpus_dv">
+          <!-- <div class="set_corpus_dv">
           <span>选择范围</span>
           <el-select v-model="corpus.scope" style="width: 205px" placeholder="请选择">
             <el-option v-for="(itemD, indexD) in scopeList" :key="indexD" :label="itemD.label" :value="itemD.value" />
           </el-select>
         </div> -->
-        <div class="set_corpus_dv">
-          <span>句子长度</span>
-          <el-input
-            v-model="corpus.sentenceStart"
-            style="width: 55px; margin-right: 8px"
-            onkeyup="value=value.replace(/^0+(\d)|[^\d]+/g,'')"
-            class="numbre-input"
-          />
-          ——
-          <el-input
-            v-model="corpus.sentenceEnd"
-            style="width: 55px; margin: 0 8px"
-            onkeyup="value=value.replace(/^0+(\d)|[^\d]+/g,'')"
-            class="numbre-input"
-          />
-          词
-        </div>
-        <div class="set_corpus_submit">
-          <div @click="visibleOption = false">取消</div>
-          <div @click="sureCorpus">确认</div>
-        </div>
-        <div slot="reference" class="set_corpus" style="margin-left: 24px; cursor: pointer">设置条件</div>
-      </el-popover>
-    </div>
-    <div class="userName">
-      <template v-if="seekOption">
-        <el-popover v-model="visible" placement="bottom" width="335" trigger="click">
-          <!-- <div class="set_corpus_dv">
-            <span>选择难度</span>
-            <el-select v-model="corpus.difficlty" style="width: 205px" placeholder="请选择">
-              <el-option
-                v-for="(itemD, indexD) in difficltyList"
-                :key="indexD"
-                :label="itemD.label"
-                :value="itemD.value"
-              />
-            </el-select>
-          </div> -->
-          <!-- <div class="set_corpus_dv">
-            <span>选择范围</span>
-            <el-select v-model="corpus.scope" style="width: 205px" placeholder="请选择">
-              <el-option v-for="(itemD, indexD) in scopeList" :key="indexD" :label="itemD.label" :value="itemD.value" />
-            </el-select>
-          </div> -->
           <div class="set_corpus_dv">
             <span>句子长度</span>
             <el-input
@@ -106,54 +69,99 @@
           </div>
           <div class="set_corpus_submit">
-            <div @click="visible = false">取消</div>
+            <div @click="visibleOption = false">取消</div>
             <div @click="sureCorpus">确认</div>
           </div>
-          <div slot="reference" class="set_corpus">设置</div>
+          <div slot="reference" class="set_corpus" style="margin-left: 24px; cursor: pointer">设置条件</div>
         </el-popover>
-      </template>
-      <template>
-        <el-dropdown style="margin-right: 16px; cursor: pointer" trigger="click" @command="changeLang">
-          <span class="el-dropdown-link" style="color: #000">
-            {{ lang }}
-            <i class="el-icon-arrow-down el-icon--right"></i>
-          </span>
-          <el-dropdown-menu slot="dropdown" style="width: 200px">
-            <el-dropdown-item v-for="item in language_list" :key="item.language_type" :command="item">{{
-              item.language_name
-            }}</el-dropdown-item>
-          </el-dropdown-menu>
-        </el-dropdown>
-      </template>
-      <div v-if="!userMessage" class="selectLoginOrRegistration">
-        <span @click="cutLoginReg"> <!-- 登录 -->{{ $t('Key9') }} </span>
       </div>
-      <!-- 用户头像和用户名 -->
-      <div v-else class="user">
-        <img
-          class="headPhoto"
-          :src="userMessage.image_url ? userMessage.image_url : require('../assets/login/Group3214.png')"
-          alt=""
-          @click="userShow = !userShow"
-        />
-        <span @click="userShow = !userShow">{{ userMessage.user_real_name }}</span>
-        <div v-show="userShow" class="userShow">
-          <p @click="gotoPersonalcenter">
-            <img src="../assets/login/project7.png" alt="" />
-            <!-- 个人中心 -->{{ $t('Key38') }}
-          </p>
-          <p @click="QuitLogin">
-            <img src="../assets/login/Frame77.png" alt="" />
-            <!-- 退出登录 -->{{ $t('Key39') }}
-          </p>
+      <div class="userName">
+        <template v-if="seekOption">
+          <el-popover v-model="visible" placement="bottom" width="335" trigger="click">
+            <!-- <div class="set_corpus_dv">
+            <span>选择难度</span>
+            <el-select v-model="corpus.difficlty" style="width: 205px" placeholder="请选择">
+              <el-option
+                v-for="(itemD, indexD) in difficltyList"
+                :key="indexD"
+                :label="itemD.label"
+                :value="itemD.value"
+              />
+            </el-select>
+          </div> -->
+            <!-- <div class="set_corpus_dv">
+            <span>选择范围</span>
+            <el-select v-model="corpus.scope" style="width: 205px" placeholder="请选择">
+              <el-option v-for="(itemD, indexD) in scopeList" :key="indexD" :label="itemD.label" :value="itemD.value" />
+            </el-select>
+          </div> -->
+            <div class="set_corpus_dv">
+              <span>句子长度</span>
+              <el-input
+                v-model="corpus.sentenceStart"
+                style="width: 55px; margin-right: 8px"
+                onkeyup="value=value.replace(/^0+(\d)|[^\d]+/g,'')"
+                class="numbre-input"
+              />
+              ——
+              <el-input
+                v-model="corpus.sentenceEnd"
+                style="width: 55px; margin: 0 8px"
+                onkeyup="value=value.replace(/^0+(\d)|[^\d]+/g,'')"
+                class="numbre-input"
+              />
+              词
+            </div>
+            <div class="set_corpus_submit">
+              <div @click="visible = false">取消</div>
+              <div @click="sureCorpus">确认</div>
+            </div>
+            <div slot="reference" class="set_corpus">设置</div>
+          </el-popover>
+        </template>
+        <template>
+          <el-dropdown style="margin-right: 16px; cursor: pointer" trigger="click" @command="changeLang">
+            <span class="el-dropdown-link" style="color: #000">
+              {{ lang }}
+              <i class="el-icon-arrow-down el-icon--right"></i>
+            </span>
+            <el-dropdown-menu slot="dropdown" style="width: 200px">
+              <el-dropdown-item v-for="item in language_list" :key="item.language_type" :command="item">{{
+                item.language_name
+              }}</el-dropdown-item>
+            </el-dropdown-menu>
+          </el-dropdown>
+        </template>
+        <div v-if="!userMessage" class="selectLoginOrRegistration">
+          <span @click="cutLoginReg"> <!-- 登录 -->{{ $t('Key9') }} </span>
+        </div>
+        <!-- 用户头像和用户名 -->
+        <div v-else class="user">
+          <img
+            class="headPhoto"
+            :src="userMessage.image_url ? userMessage.image_url : require('../assets/login/Group3214.png')"
+            alt=""
+            @click="userShow = !userShow"
+          />
+          <span @click="userShow = !userShow">{{ userMessage.user_real_name }}</span>
+          <div v-show="userShow" class="userShow">
+            <p @click="gotoPersonalcenter">
+              <img src="../assets/login/project7.png" alt="" />
+              <!-- 个人中心 -->{{ $t('Key38') }}
+            </p>
+            <p @click="QuitLogin">
+              <img src="../assets/login/Frame77.png" alt="" />
+              <!-- 退出登录 -->{{ $t('Key39') }}
+            </p>
+          </div>
+        </div>
+        <!-- 消息 铃铛图片 -->
+        <div class="message">
+          <img src="../assets/login/Vector.png" alt="" @click="gotoPersonalcenter" />
+          <span v-if="is_exist == 'true'" class="redDot"></span>
         </div>
       </div>
-      <!-- 消息 铃铛图片 -->
-      <div class="message">
-        <img src="../assets/login/Vector.png" alt="" @click="gotoPersonalcenter" />
-        <span v-if="is_exist == 'true'" class="redDot"></span>
-      </div>
-    </div>
+    </template>
   </div>
 </template>
 
@@ -260,6 +268,9 @@ export default {
           label: '全部',
         },
       ],
+      AccessToken: this.$route.query.AccessToken,
+      AppID: this.$route.query.AppID,
+      userID: this.$route.query.UserID ? this.$route.query.UserID : '',
     };
   },
   computed: {
@@ -279,6 +290,7 @@ export default {
   },
   mounted() {
     let _this = this;
+    if (_this.$route.query.AccessToken) return;
     let user = getToken();
     if (user) {
       _this.userMessage = JSON.parse(user);
@@ -319,6 +331,9 @@ export default {
           path: '/corpus/Result',
           query: {
             keyword: this.keyword,
+            AppID: this.AppID,
+            AccessToken: this.AccessToken,
+            UserID: this.UserID,
           },
         })
         .catch((err) => err);

+ 2 - 3
src/permission.js

@@ -18,12 +18,11 @@ router.beforeEach(async (to, from, next) => {
   //next();
   NProgress.done()
   const hasToken = getToken()
-
-  if (hasToken || to.path === '/Integration/TextAnalyser') {
+  if (hasToken || to.path === '/Integration/TextAnalyser' || to.path === '/Integration/Corpus') {
     //=======重点部分以下=======
 
     let config = getConfig();
-    if (config || to.path === '/Integration/TextAnalyser') {
+    if (config || to.path === '/Integration/TextAnalyser' || to.path === '/Integration/Corpus') {
       if (to.path === '/login') {
         // if is logged in, redirect to the home page
         next({ path: '/EnterSys' })

+ 6 - 0
src/router/index.js

@@ -117,6 +117,12 @@ const routes = [{
             import ('@/views/corpus/seekPage'),
     },
     {
+        path: '/Integration/Corpus',
+        name: 'IntegrationCorpus',
+        component: () =>
+            import ('@/views/corpus/seekPage'),
+    },
+    {
         path: '/corpus/Result',
         component: () =>
             import ('@/views/corpus/Result'),

+ 4 - 1
src/views/corpus/Result.vue

@@ -461,6 +461,9 @@ export default {
       levelList: [],
       selectLaiyuanBookIdList: [], // 选中右侧来源书籍列表id
       selectCurrent: 0,
+      AccessToken: this.$route.query.AccessToken,
+      AppID: this.$route.query.AppID,
+      userID: this.$route.query.UserID ? this.$route.query.UserID : '',
     };
   },
   //计算属性 类似于data概念
@@ -766,7 +769,7 @@ export default {
             ? Number(JSON.parse(localStorage.getItem('seekPageData')).sentenceEnd)
             : -1, // 例句分词长度范围(最大值),-1 表示不检测最大值
       };
-      BookgetContent(Mname, data)
+      BookgetContent(Mname, data, this.AppID, this.AccessToken)
         .then((res) => {
           this.allList = {
             sentence_list: [],

+ 36 - 10
src/views/corpus/seekPage.vue

@@ -1,14 +1,17 @@
 <template>
   <div class="corpus_seekpage">
-    <Header :projectShow="true" :seekOptions="false" :seekOption="true" />
-    <div class="title">
-      <p>语料库词典</p>
-      <p>Corpus Dictionary</p>
-    </div>
-    <div class="seek" @keydown="downSeek">
-      <input type="text" v-model="keyword" />
-      <button @click="seekEvent">搜索</button>
-    </div>
+    <Header :projectShow="true" :seekOptions="false" :seekOption="true" v-if="!userID" />
+    <template v-if="showPage">
+      <div class="title">
+        <p>语料库词典</p>
+        <p>Corpus Dictionary</p>
+      </div>
+      <div class="seek" @keydown="downSeek">
+        <input type="text" v-model="keyword" />
+        <button @click="seekEvent">搜索</button>
+      </div>
+    </template>
+
     <!-- <div class="txt">请搜索汉字,例如:好</div> -->
   </div>
 </template>
@@ -17,6 +20,9 @@
 //这里可以导入其它文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)
 //例如:import 《组件名称》from ‘《组件路径》';
 import Header from '@/components/Header';
+import { getConfigInfor } from '@/utils/index';
+import { getStaticContent } from '@/api/api';
+import { setToken } from '@/utils/auth';
 
 export default {
   name: 'corpus_seekpage',
@@ -29,6 +35,10 @@ export default {
     //这里存放数据
     return {
       keyword: null,
+      AccessToken: this.$route.query.AccessToken,
+      AppID: this.$route.query.AppID,
+      showPage: false,
+      userID: this.$route.query.UserID ? this.$route.query.UserID : '',
     };
   },
   //计算属性 类似于data概念
@@ -55,13 +65,29 @@ export default {
         path: '/corpus/Result',
         query: {
           keyword: this.keyword,
+          AppID: this.AppID,
+          AccessToken: this.AccessToken,
+          UserID: this.UserID,
         },
       });
     },
   },
   //生命周期 - 创建完成(可以访问当前this实例)
-  created() {
+  async created() {
+    const _this = this;
+    if (this.AccessToken) {
+      const Mname = 'login_control-ParseAccessToken';
+      await getStaticContent(Mname, {
+        access_token: _this.AccessToken,
+      }).then((res) => {
+        res.access_token = _this.AccessToken;
+        setToken(res);
+        this.showPage = true;
+      });
+      await getConfigInfor();
+    }
     localStorage.removeItem('seekPageData');
+    this.showPage = true;
   },
   //生命周期 - 挂载完成(可以访问DOM元素)
   mounted() {},