Commit 6a7a5511 authored by zhengke's avatar zhengke

修复关注 bug

parent 6f4f849b
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
</div> </div>
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
...@@ -74,23 +76,23 @@ const RefreshLoading = ref(false) ...@@ -74,23 +76,23 @@ const RefreshLoading = ref(false)
const followForm = ref() const followForm = ref()
const close = () => { const close = () => {
stopTimerHandler() stopTimerHandler(1)
emit('close') emit('close')
} }
if(model.value==0 && ConfigId.value) params.ConfigId = ConfigId.value if(model.value==0 && ConfigId.value) params.ConfigId = ConfigId.value
const beginTimerHandler = ()=>{ const beginTimerHandler = ()=>{
queryTimer.value = setInterval(async ()=>{ queryTimer.value = setInterval(()=>{
await userLoginHandler(0) userLoginHandler(0)
},3000) },3000)
} }
const stopTimerHandler = async ()=>{ const stopTimerHandler = (type:any)=>{
if(queryTimer.value){ if(queryTimer.value){
clearInterval(queryTimer.value) clearInterval(queryTimer.value)
queryTimer.value=null queryTimer.value=null
userLoginHandler(1) if(type==1) userLoginHandler(1)
} }
} }
...@@ -111,17 +113,24 @@ const getQrcode = async (type:any) =>{ ...@@ -111,17 +113,24 @@ const getQrcode = async (type:any) =>{
if(type)RefreshLoading.value = false if(type)RefreshLoading.value = false
} }
const userLoginHandler = async (type:any)=>{ const userLoginHandler = async (type:number)=>{
const result = await user.setUserWechatLoginAsync(scene_id.value,type) if(type==0 && !queryTimer.value) {
return
}
const result = await user.setUserWechatFollowAsync(scene_id.value,type)
if(result.status=='SUCCESS'){ if(result.status=='SUCCESS'){
if(!type) { if(type==0) {
stopTimerHandler()
ElMessage.success({message:'关注成功'}) ElMessage.success({message:'关注成功'})
stopTimerHandler()
emit('success') emit('success')
} }
}else if(result.status=='SCANNING') {
stopTimerHandler()
emit('success')
}else if(result.status=='ERROR') { }else if(result.status=='ERROR') {
if(!type) { if(type==0) {
stopTimerHandler() stopTimerHandler(1)
loseEffect.value = true loseEffect.value = true
ElMessage.error({message:'二维码维码已失效,请重新获取'}) ElMessage.error({message:'二维码维码已失效,请重新获取'})
} }
......
...@@ -11,12 +11,13 @@ let datas: AxiosResponse ...@@ -11,12 +11,13 @@ let datas: AxiosResponse
export enum ApiResult{ export enum ApiResult{
'SUCCESS' = 1, 'SUCCESS' = 1,
'FAILED' = 0, 'nv' = 0,
'TOKEN_INVALID' = 10000, 'TOKEN_INVALID' = 10000,
'TOKEN_ILLEGAL' = 10001, 'TOKEN_ILLEGAL' = 10001,
'REMOTE_LOGIN' = 10010, 'REMOTE_LOGIN' = 10010,
'STATIC_ACCESS' = 20005, 'STATIC_ACCESS' = 20005,
'SCANNING_STATE' = 10008 'SCANNING_STATE' = 10008,
'SCANNING_SUCCESS' = 10002,
} }
export enum VipType{ export enum VipType{
...@@ -78,7 +79,7 @@ const getErrorCode2text = (response: AxiosResponse): string => { ...@@ -78,7 +79,7 @@ const getErrorCode2text = (response: AxiosResponse): string => {
*/ */
const service = Axios.create({ const service = Axios.create({
// process.env.VUE_APP_API_URL // process.env.VUE_APP_API_URL
//'http://reborn.oytour.com/api/common/post' //'https://reborn.oytour.com/api/common/post'
baseURL: process.env.VUE_APP_API_URL, baseURL: process.env.VUE_APP_API_URL,
timeout: 200000, timeout: 200000,
headers: { headers: {
......
...@@ -26,7 +26,7 @@ const menus:{menu:Menu,owner:MenuOwner}[] = [ ...@@ -26,7 +26,7 @@ const menus:{menu:Menu,owner:MenuOwner}[] = [
{menu:{name:'字体',icon:'IconAddText',url:'/m/font'},owner:'M'}, {menu:{name:'字体',icon:'IconAddText',url:'/m/font'},owner:'M'},
{menu:{name:'账号一览',icon:'IconEarth',url:'/a'},owner:'A'}, {menu:{name:'账号一览',icon:'IconEarth',url:'/a'},owner:'A'},
{menu:{name:'成员管理',icon:'IconPeoples',url:'/a/u'},owner:'A'}, {menu:{name:'成员管理',icon:'IconPeoples',url:'/a/u'},owner:'A'},
{menu:{name:'数据统计',icon:'IconDashBoard',url:'/a/d'},owner:'A'}, // {menu:{name:'数据统计',icon:'IconDashBoard',url:'/a/d'},owner:'A'},
{menu:{name:'水印设置',icon:'IconTag',url:'/a/w'},owner:'A'}, {menu:{name:'水印设置',icon:'IconTag',url:'/a/w'},owner:'A'},
{menu:{name:'云盘空间',icon:'IconCloudStorage',url:'/a/c'},owner:'A'}, {menu:{name:'云盘空间',icon:'IconCloudStorage',url:'/a/c'},owner:'A'},
{menu:{name:'订单/发票',icon:'IconCurrency',url:'/a/order'},owner:'E'}, {menu:{name:'订单/发票',icon:'IconCurrency',url:'/a/order'},owner:'E'},
......
...@@ -20,7 +20,7 @@ const st: StorageLike = { ...@@ -20,7 +20,7 @@ const st: StorageLike = {
} }
export interface UserLoginResult { export interface UserLoginResult {
status:'ERROR'|'CHOSEN'|'SUCCESS'|'UNSWEPT', status:'ERROR'|'CHOSEN'|'SUCCESS'|'UNSWEPT'|'SCANNING',
verify:boolean, verify:boolean,
data?:any[] data?:any[]
} }
...@@ -113,11 +113,23 @@ export const useUserStore = defineStore('user', { ...@@ -113,11 +113,23 @@ export const useUserStore = defineStore('user', {
this.userInfo.logo = ENTERPRISE_DEFAULT_HEADER this.userInfo.logo = ENTERPRISE_DEFAULT_HEADER
} }
}, },
async setUserWechatFollowAsync(scene_id:string,islean:any) {
try {
let response = await UserService.WechatLoginAsync(scene_id,islean)
if (response.data.resultCode == ApiResult.SUCCESS) {
return { status:'SUCCESS'} as UserLoginResult
} else if(response.data.resultCode == ApiResult.SCANNING_STATE) return { status:'UNSWEPT'} as UserLoginResult
else if(response.data.resultCode == ApiResult.SCANNING_SUCCESS) return { status: 'SCANNING'} as UserLoginResult
else if(response.data.resultCode == ApiResult.nv) return { status:'ERROR'} as UserLoginResult
} catch (error) {
}
},
async setUserWechatLoginAsync(scene_id:string,islean:any) { async setUserWechatLoginAsync(scene_id:string,islean:any) {
try { try {
let response = await UserService.WechatLoginAsync(scene_id,islean) let response = await UserService.WechatLoginAsync(scene_id,islean)
if (response.data.resultCode == ApiResult.SUCCESS) { if (response.data.resultCode == ApiResult.SUCCESS) {
if(!Array.isArray(response.data.data)) { if(response.data.data && response.data.data.token && response.data.data.userinfo) {
this.token = response.data.data.token this.token = response.data.data.token
this.userInfo = response.data.data.userinfo this.userInfo = response.data.data.userinfo
if(!this.userInfo.photo || (!this.userInfo.photo.includes('http://')&& !this.userInfo.photo.includes('https://'))){ if(!this.userInfo.photo || (!this.userInfo.photo.includes('http://')&& !this.userInfo.photo.includes('https://'))){
...@@ -126,13 +138,13 @@ export const useUserStore = defineStore('user', { ...@@ -126,13 +138,13 @@ export const useUserStore = defineStore('user', {
if(!this.userInfo.logo || (!this.userInfo.logo.includes('http://')&& !this.userInfo.logo.includes('https://'))){ if(!this.userInfo.logo || (!this.userInfo.logo.includes('http://')&& !this.userInfo.logo.includes('https://'))){
this.userInfo.logo = ENTERPRISE_DEFAULT_HEADER this.userInfo.logo = ENTERPRISE_DEFAULT_HEADER
} }
return { status:'SUCCESS'} as UserLoginResult }else {
} else { return { status:'ERROR'} as UserLoginResult
return { status:'CHOSEN', data:response.data.data } as UserLoginResult
} }
return { status:'SUCCESS'} as UserLoginResult
} else if(response.data.resultCode == ApiResult.SCANNING_STATE) return { status:'UNSWEPT'} as UserLoginResult } else if(response.data.resultCode == ApiResult.SCANNING_STATE) return { status:'UNSWEPT'} as UserLoginResult
else return { status:'ERROR'} as UserLoginResult else if(response.data.resultCode == ApiResult.SCANNING_SUCCESS) return { status: 'SCANNING'} as UserLoginResult
else if(response.data.resultCode == ApiResult.nv) return { status:'ERROR'} as UserLoginResult
} catch (error) {} } catch (error) {}
return { status:'ERROR' } as UserLoginResult return { status:'ERROR' } as UserLoginResult
}, },
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
<div class="Market-fromBj"></div> <div class="Market-fromBj"></div>
<div class=""> <div class="">
<div :class="[datas.scrollTop>200?'MarketHeader':'']"> <div :class="[datas.scrollTop>200?'MarketHeader':'']">
<adHeader v-if="!userInfo.iv&&!userInfo.it&&!userInfo.OpenScanCode" style="position: relative;z-index: 2;" <!-- <adHeader v-if="!userInfo.iv&&!userInfo.it&&!userInfo.OpenScanCode" style="position: relative;z-index: 2;"
@close="closeScanCode" @scanCode="isPublicAccount=true"></adHeader> @close="closeScanCode" @scanCode="isPublicAccount=true"></adHeader> -->
<div class="MarketSearch row items-center"> <div class="MarketSearch row items-center">
<img class="q-pr-36 cusor-pointer" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/pptTD.png" style="height: 28px;" @click="forwordHandler('/space')" /> <img class="q-pr-36 cusor-pointer" src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/pptTD.png" style="height: 28px;" @click="forwordHandler('/space')" />
<div class="row grow Market-select reactive"> <div class="row grow Market-select reactive">
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<UserCard :ScanCode="ScanCode"></UserCard> <UserCard :ScanCode="ScanCode"></UserCard>
</div> </div>
</div> </div>
<div class="relative" style="padding: 0 17px 22px 17px; max-width:1440px; margin:0 auto;z-index: 2;"> <div class="relative" style="padding: 0 17px 22px 17px; max-width:1440px; margin:0 auto;z-index: 1;">
<div class="marketTag-from row"> <div class="marketTag-from row">
<div class="bg-white rounded text-nowrap marketTag"> <div class="bg-white rounded text-nowrap marketTag">
<div class="column text-small"> <div class="column text-small">
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<div class="row items-center q-mb-lg"> <div class="row items-center q-mb-lg">
<span class="fz14 q-pr-md shrink microsoft">关键字:</span> <span class="fz14 q-pr-md shrink microsoft">关键字:</span>
<div> <div>
<el-input class="microsoft" style="max-width:212px" v-model="queryObj.Title" placeholder="请输入关键字" clearable <el-input class="microsoft" style="max-width:150px" v-model="queryObj.Title" placeholder="请输入关键字" clearable
@keyup.enter="search"></el-input> @keyup.enter="search"></el-input>
</div> </div>
</div> </div>
...@@ -90,6 +90,20 @@ ...@@ -90,6 +90,20 @@
/> />
</el-select> </el-select>
</div> </div>
<div class="row items-center q-mb-lg q-pl-lg" v-if="userInfo.isp">
<span class="fz14 q-pr-md shrink microsoft">&nbsp;&nbsp;类型:</span>
<el-select v-model="queryObj.QAuthType"
class="ml-1 shrink TemSel microsoft"
placeholder="类型" @change="search()">
<!-- <el-option class="microsoft" key="" label="不限" value=""/> -->
<el-option class="microsoft"
v-for="item in QAuthTypes"
:key="item.ID"
:label="`${item.Name}`"
:value="item.ID"
/>
</el-select>
</div>
</div> </div>
<div class="row nowrap" style="flex-shrink: 0;width: 205px;"> <div class="row nowrap" style="flex-shrink: 0;width: 205px;">
<div> <div>
...@@ -317,6 +331,7 @@ const queryObj = reactive({ ...@@ -317,6 +331,7 @@ const queryObj = reactive({
TemplateType: 0,//0 不限 1模版 2广告 TemplateType: 0,//0 不限 1模版 2广告
type: 0, type: 0,
OrderByType: 1,//排序方式 OrderByType: 1,//排序方式
QAuthType: '',//1-免费,2-VIP,3-私有
}) })
const queryColor = ref({ const queryColor = ref({
DictKey: 'Trip_Template_Color', DictKey: 'Trip_Template_Color',
...@@ -324,6 +339,12 @@ const queryColor = ref({ ...@@ -324,6 +339,12 @@ const queryColor = ref({
}) })
const setTemplateType = ref(1) const setTemplateType = ref(1)
const ColorList = ref([]) const ColorList = ref([])
const QAuthTypes = ref([
{Name:'免费',ID:1},
{Name:'VIP',ID:2},
{Name:'私有',ID:3},
])
marketStore.setModel('1') marketStore.setModel('1')
const tableScrollHandler = ()=>{ const tableScrollHandler = ()=>{
if(queryObj.pageCount>queryObj.pageIndex){ if(queryObj.pageCount>queryObj.pageIndex){
...@@ -759,6 +780,8 @@ getTemplateQuery(); ...@@ -759,6 +780,8 @@ getTemplateQuery();
queryTemplateBySearchHandler(); queryTemplateBySearchHandler();
onMounted(()=>{ onMounted(()=>{
if(userInfo.value.isp) queryObj.QAuthType = 1
console.log(userInfo.value.isp,'-----')
// marketRef.value.addEventListener("scroll", scrollingHandler); // marketRef.value.addEventListener("scroll", scrollingHandler);
}) })
</script> </script>
...@@ -1214,6 +1237,6 @@ onMounted(()=>{ ...@@ -1214,6 +1237,6 @@ onMounted(()=>{
line-height: 42px; line-height: 42px;
} }
.TemSel{ .TemSel{
width: 120px; width: 100px;
} }
</style> </style>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment