Browse Source

Merge branch 'cmy/develop-bi' into develop

chenmy 1 năm trước cách đây
mục cha
commit
dc3e317cbe

+ 9 - 6
TEAMModelBI/ClientApp/src/view/product/index.vue

@@ -1,6 +1,6 @@
 <template>
   <!--外层所有数据-->
-  <div class="productbox" v-if="showState==='default'">
+  <div class="productbox" v-loading="" v-if="showState==='default'">
     <div class="header-select">
       <el-collapse v-model="activeNames" accordion>
         <el-collapse-item title="数据筛选" name="1">
@@ -95,7 +95,7 @@
                   <span class="filtratebox-phase-title subclass">精准选择:</span>
                   <div class="filtratebox-phase-content precise">
                     <div v-if="clickNum.district ===1" class="schoolclass">
-                      <el-cascader v-model="optionsValue" :options="options" :props="areaProps" clearable />
+                      <el-cascader v-model="optionsValue" :options="options" :props="areaProps" clearable   placeholder="请选择要统计的城市或区"/>
                     </div>
                     <div v-else-if="clickNum.district ===0" class="aresclass">
                       <el-select v-model="optionsValue" placeholder="请选择要统计的省份" clearable>
@@ -267,6 +267,7 @@
 </template>
 <script setup>
 import option_cn from '@/static/regions/region_cn.json'
+import option_gl from '@/static/regions/region_gl.json'
 import { ref, getCurrentInstance, watch, h, nextTick } from 'vue'
 import { ElMessage, TableV2SortOrder, ElLoading, ElCheckbox,HeaderCellSlotProps,ElPopover} from 'element-plus'
 import { Filter } from '@element-plus/icons'
@@ -368,6 +369,8 @@ let columns = ref([
   },
 ])
 const popoverRef = ref()
+const siteValue = window.location.host === 'localhost:5001' ? 'cn' : window.location.host === 'bi.teammodel.cn' ? 'cn' : window.location.host === 'bitest.teammodel.cn' ? 'cn' : 'international'
+const optionsData = siteValue === 'cn' ? option_cn : option_gl
 columns.value[0].headerCellRenderer = (props = HeaderCellSlotProps) => {
       return (
         <div class="items-center justify-center">
@@ -396,7 +399,7 @@ columns.value[0].headerCellRenderer = (props = HeaderCellSlotProps) => {
           </ElPopover>
         </div>
       )
-    }
+}
 const sortState = ref({
   'deviceCnt':TableV2SortOrder.ASC,
   'tmidCnt': TableV2SortOrder.ASC,
@@ -570,7 +573,7 @@ const props2 = {
 }
 const areaProps = {
   multiple: false,
-  checkStrictly: false,
+  checkStrictly:true,
   label: "name",
   value: "name",
 }
@@ -957,9 +960,9 @@ function serarchInit (value) {
     // dataSource.value.composite=
     console.log(clickNum.value.subject, '0学区值0')
     options.value = dataSource.value.composite
-    clickNum.value.subject === 2 ? options.value = option_cn : ''
+    clickNum.value.subject === 2 ? options.value = optionsData : ''
   } else if (filterKey === 1) {
-    options.value = option_cn
+    options.value = optionsData
     console.log(clickNum.value.district, '1学区值1')
     clickNum.value.district === 2 ? options.value = dataSource.value.composite : ''
   }

+ 90 - 20
TEAMModelBI/ClientApp/src/view/userInquire/details.vue

@@ -96,7 +96,7 @@
                 <div class="equitystate" v-else>
                     <div class="rightsbox">
                         <div class="rightsbox-content">
-                            <el-carousel trigger="click" height="60vh" :autoplay="false">
+                            <!-- <el-carousel trigger="click" height="60vh" :autoplay="false">
                                 <el-carousel-item v-for="item in powerList" :key="item"  v-show="powerList.length >0">
                                     <div class="rightsbox-item">
                                         <div class="rightsbox-item-title">
@@ -111,20 +111,17 @@
                                         </div>
                                         <div class="rightsbox-item-expansion" v-show="item.prodCode ==='Z6ELB6EZ'">
                                             <p class="expansion-title">产品扩充项</p>
-                                            <!--产品扩充-->
                                             <div v-for="iteml in item.apruleArr" :key="iteml.key">
                                                 -<span :class="[iteml.state ? 'start-title':'error-title' ]">
                                                     {{iteml.title}}
                                                     <span v-show="iteml.key ==='cligroup' || iteml.key ==='client_volume' || iteml.key ==='soknumber'">({{iteml.value}})</span>
                                                  </span>
                                             </div>
-                                            <!--产品扩充 end-->
                                         </div>
-                                         <!--HiTeach 附加功能-->
                                          <el-divider /> 
                                         <div class="subjoin" v-show="item.prodCode ==='Z6ELB6EZ'">
                                                 <div class="subjoin-item" >
-                                                    <p class="subjoin-title">{{subjoinData.hiteachTitle}}123456</p>
+                                                    <p class="subjoin-title">{{subjoinData.hiteachTitle}}</p>
                                                     <div class="subjoin-content" v-for="item in subjoinData.hiteach" :key="item.key">
                                                         <div>
                                                             <span>{{item.title}}</span>
@@ -143,8 +140,6 @@
                                                             <span class="endtimes">(到期日:{{itemc.end}})</span>
                                                         </div>
                                                     </div>
-                                            </div>
-                                            <!--HiTeach 附加功能 end-->
                                         </div>
                                         <div class="rightsbox-item-expansion" v-show="item.prodCode ==='IPALB6EY'">
                                             <p class="expansion-title">产品详细</p>
@@ -158,21 +153,16 @@
                                                 <div class="subjoin-item" >
                                                     <p class="subjoin-title">{{subjoinData.hiteachTitle}}</p>
                                                     <div class="subjoin-content" v-for="item in subjoinData.hiteach" :key="item.key">
-                                                        <!--过期或未权限-->
                                                         <div v-show="item.exps < notTime || item.end ===0">
                                                             <span class="expire">{{item.title}}</span>
                                                             <span class="ccnums expire" v-show="item.key==='webirs'">{{item.value}}</span>
-                                                            <!-- <span class="endtimes" v-if="item.exps >= notTime">(到期日:{{item.end}})</span> -->
                                                             <span class="endtimes-error">(到期日:{{item.end}})</span>
                                                         </div>
-                                                         <!--过期或未权限 end-->
-                                                         <!--有权限-->
                                                         <div v-show="item.exps >= notTime">
                                                             <span>{{item.title}}</span>
                                                             <span class="ccnums" v-show="item.key==='webirs'">{{item.value}}</span>
-                                                            <span class="endtimes" >(到期日:{{item.end}})123</span>
+                                                            <span class="endtimes" >(到期日:{{item.end}})</span>
                                                         </div>
-                                                         <!--有权限 end-->
                                                 </div>
                                             </div>
                                                 <div class="subjoin-item" >
@@ -190,10 +180,76 @@
                                                         </div>
                                                     </div>
                                             </div>
-                                            <!--HiTeach 附加功能 end-->
                                     </div>
                                 </el-carousel-item>
-                            </el-carousel>
+                            </el-carousel> -->
+                            <div class="prodlist">
+                                <div v-if="powerList.length >0">
+                                    <div class="prodlist-item" v-for="item in powerList" :key="item">
+                                    <div class="rightsbox-item">
+                                        <div class="rightsbox-item-title">
+                                            <p>[ID授权] {{item.name}}</p>
+                                        </div>
+                                        <div class="rightsbox-item-time">
+                                            <p>
+                                                <span>时间:</span>
+                                                <span class="rightsbox-item-time-num">{{item.startDateText}}~{{item.endDateText}}</span>
+                                                <span>共<span class="rightsbox-item-timenums">{{item.intervalTime}}</span>天</span>
+                                            </p>
+                                        </div>
+                                        <div class="rightsbox-item-expansion" v-show="item.prodCode ==='Z6ELB6EZ'">
+                                            <p class="expansion-title">产品扩充项</p>
+                                            <!--产品扩充-->
+                                            <div v-for="iteml in item.apruleArr" :key="iteml.key">
+                                                -<span :class="[iteml.state ? 'start-title':'error-title' ]">
+                                                    {{iteml.title}}
+                                                    <span v-show="iteml.key ==='cligroup' || iteml.key ==='client_volume' || iteml.key ==='soknumber'">({{iteml.value}})</span>
+                                                 </span>
+                                            </div>
+                                            <!--产品扩充 end-->
+                                        </div>
+                                        <div class="rightsbox-item-expansion" v-show="item.prodCode ==='IPALB6EY'">
+                                            <p class="expansion-title">产品详细</p>
+                                            <div><span>空间大小:</span> <span class="expansion-sizenum">{{item.number}}   GB</span></div>
+                                        </div>
+                                    </div>
+                                    <el-divider /> 
+                                </div>
+                                </div>
+                                <div class="power-notdata" v-else>暂无权益内容</div>
+                                   <!--HiTeach 附加功能-->
+                                <div class="subjoin">
+                                    <div class="subjoin-item" >
+                                        <p class="subjoin-title">{{subjoinData.hiteachTitle}}</p>
+                                            <div v-if="subjoinData.hiteach.length >0">
+                                                <div class="subjoin-content" v-for="item in subjoinData.hiteach" :key="item.key">
+                                                <div>
+                                                    <span>{{item.title}}</span>
+                                                    <span class="ccnums" v-show="item.key==='webirs'">{{item.value}}</span>
+                                                    <span class="endtimes" v-if="item.exps >= notTime">(到期日:{{item.end}})</span>
+                                                    <span class="endtimes-error" v-else>(到期日:{{item.end}})</span>
+                                                </div>
+                                            </div>
+                                            </div>
+                                            <div class="not-datas" v-else>暂无数据</div>
+                                            <el-divider /> 
+                                            </div>
+                                    <div class="subjoin-item" >
+                                        <p class="subjoin-title">{{subjoinData.hiteachCCTitle}}</p>
+                                        <div v-if="subjoinData.hiteachCC.length >0">
+                                            <div class="subjoin-content" v-for="itemc in subjoinData.hiteachCC" :key="itemc.key">
+                                                <div>
+                                                    <span>{{itemc.title}}</span>
+                                                    <span class="ccnums">{{itemc.num}}</span>
+                                                    <span class="endtimes">(到期日:{{itemc.end}})</span>
+                                                 </div>
+                                            </div>
+                                        </div>
+                                        <div class="not-datas" v-else>暂无数据</div>
+                                    </div>
+                                </div>
+                                        <!--HiTeach 附加功能 end-->
+                            </div>
                         </div>
                     </div>
                 </div>
@@ -331,11 +387,11 @@ let userdata = ref([
 let productdata = ref([
     { id: 1, title: 'HiTeach', value:0,key:'HiTeach',state: false },
     { id: 2, title: 'HiTA',value:0, key:'HiTA',state: false },
-    { id: 3, title: 'IES', value:0,key:'IES', state: false },
-    { id: 4, title: '苏格拉底', value:0,key:'Socrates', state: false },
-    { id: 5, title: 'HiTeach CC', value:0,key:'cc', state: false },
-    { id: 6, title: '通用账号', value:0,key:'general', state: false },
-    { id: 7, title: 'IRS', value:0,key:'irs', state: false },
+    { id: 3, title: 'IES', value:0,key:'IES5', state: false },
+    { id: 4, title: '苏格拉底', value:0,key:'Sokrates', state: false },
+    { id: 5, title: '觀議課 APP', value:0,key:'SokAPP', state: false },
+    { id: 6, title: '通用账号', value:0,key:'Account ', state: false },
+    { id: 7, title: 'WebIRS5', value:0,key:'IRS', state: false },
 ])
 let tableData = ref([
     { time: '2023-07-05 15:33', ip: '222.209.14.199', location: '四川省成都市',platform:'HiTeach' },
@@ -1441,6 +1497,17 @@ watch(()=>transferNum.value,(newnum)=>{
 .entirety{
     position: relative;
 }
+.prodlist{
+    height:60vh;
+    overflow: hidden;
+    overflow-y: auto;
+}
+.not-datas{
+    font-size:16px;
+    font-weight: 700;
+    color: #73767a;
+    line-height: 40px;
+}
 </style>
 <style>
 .inquirebox-details .el-divider{
@@ -1455,4 +1522,7 @@ watch(()=>transferNum.value,(newnum)=>{
 .login-total .el-overlay .el-dialog__header{
     padding:5px !important;
 }
+.recordbox-item .el-tag{
+    cursor: pointer;
+}
 </style>

+ 36 - 6
TEAMModelBI/ClientApp/src/view/userInquire/index.vue

@@ -21,17 +21,17 @@
                 </template>
                 </el-input>
             </div>
-            <!-- <div class="recordbox" v-if="selecttypes==='precise'">
+            <div class="recordbox" v-if="selecttypes==='precise'">
                 <p>搜索记录:</p>
                 <div class="recordbox-item">
-                    <el-tag v-for="tag in tags" :key="tag.name" class="mx-1" closable :type="tag.type">
-                        {{ tag.name }}
+                    <el-tag v-for="tag in searchRecordsArr"  class="mx-1" closable type="''"  effect="light" @close="deleteLog(tag)" @click="searchvalue=tag">
+                        {{ tag }}
                     </el-tag>
                 </div>
             </div>
             <div class="recordbox" v-else="selecttypes ==='batch'">
                 <p>搜索结果:</p>
-            </div> -->
+            </div>
         </div>
     </div>
     <div class="inquirebox-details" v-else-if="pageShow ==='details'">
@@ -56,7 +56,9 @@ let searchvalue=ref('')
 let selecttypes = ref('precise')
 let searchResult=ref()
 let searchLoading=ref(false)
+const searchRecordsArr = ref(JSON.parse(localStorage.getItem('searchRecords')));
 const backClicks=()=>{pageShow.value='default'}
+console.log(searchRecordsArr.value,'搜索记录')
 function seachSole(datavalue) {
     if(!searchvalue.value){
         ElMessage.info('请输入手机号码/ 醍魔豆账号 进行搜索!')
@@ -82,15 +84,43 @@ function seachSole(datavalue) {
     searchvalue.value.includes(',') || searchvalue.value.includes(',') ? data={'tmids':userArr}: data = {'tmids':[searchvalue.value]}
     console.log(data)
     searchLoading.value=true
+    let setData={
+        value:searchvalue.value,
+        type:searchvalue.value.includes(',') || searchvalue.value.includes(',') ? 'multiple':'only',
+        time:Date.now()
+    }
     proxy.$api.getUserdatas(data).then((res) => { 
         console.log(res, 'user back')
-        res.length >0 ? (searchResult.value=res,searchLoading.value=false,pageShow.value='details'):(ElMessage.error('暂无搜索到相关人员,请检查信息搜索'),searchLoading.value=false)
+        res.length >0 ? 
+        (searchResult.value=res,searchLoading.value=false,pageShow.value='details'):
+        (ElMessage.error('暂无搜索到相关人员,请检查信息搜索'),searchLoading.value=false)
+        //搜索记录
+        if(res.length >0){saveSearchRecord(searchvalue.value)}
     }).catch((err) => {
         searchLoading.value=false
         ElMessage.error('API异常,查询失败')
     })
     // pageShow.value='details'
- }
+}
+// 保存搜索记录到localStorage(重复搜索的只记录一个)
+function saveSearchRecord(keyword) {
+  let searchRecords = localStorage.getItem('searchRecords');
+  !searchRecords ?searchRecords = []:searchRecords = JSON.parse(searchRecords);
+  if (!searchRecords.includes(keyword)) {
+    searchRecords.push(keyword);
+    searchRecordsArr.value.push(keyword)
+  }
+  localStorage.setItem('searchRecords', JSON.stringify(searchRecords));
+}
+function deleteLog(value){
+    console.log(value)
+    let parseSearchRecords=searchRecordsArr.value
+    console.log(parseSearchRecords,'数组内容')
+    let resultNum=parseSearchRecords.findIndex((item)=>{return item ===value})
+    console.log(resultNum,'数字')
+    resultNum !== -1 ? (searchRecordsArr.value.splice(resultNum,1)):''
+    localStorage.setItem('searchRecords', JSON.stringify(searchRecordsArr.value));
+}
 </script>
 <style scoped>
 .inquirebox{