提交 4e0c2c11 作者: 毛细亚

合并分支 '1.1' 到 'release'

1.1

查看合并请求 !4
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"/><title>company_app</title><script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script><script defer="defer" src="static/js/chunk-vendors.fc0c503d.js"></script><script defer="defer" src="static/js/app.7f7f9292.js"></script><link href="static/css/chunk-vendors.8e901099.css" rel="stylesheet"><link href="static/css/app.2d27e365.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but company_app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
\ No newline at end of file
<!doctype html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9"/><title>company_app</title><script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script><script defer="defer" src="static/js/chunk-vendors.b6398f5b.js"></script><script defer="defer" src="static/js/app.101d7d80.js"></script><link href="static/css/chunk-vendors.8e901099.css" rel="stylesheet"><link href="static/css/app.1b60c483.css" rel="stylesheet"></head><body><noscript><strong>We're sorry but company_app doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div></body></html>
\ No newline at end of file
......@@ -153,13 +153,6 @@ export default {
this.set_token(cookieToken)
console.log('从 Cookie 恢复 token:', cookieToken)
}
// 页面刷新时从 Cookie 恢复 accountSelect 到 store
const cookieAccountSelect = Cookies.get('accountSelect')
if (cookieAccountSelect && !this.$store.state.game.accountSelect) {
this.set_accountSelect(cookieAccountSelect)
console.log('从 Cookie 恢复 accountSelect:', cookieAccountSelect)
}
// 初始化时处理路径
const currentPath = this.$route.path
if (currentPath === '/' || currentPath === '' || currentPath === '/index.html') {
......
......@@ -9,7 +9,7 @@
<script>
import devModeManager from '@/utils/devMode'
export default {
name: 'Debug',
name: 'debug',
methods: {
handleDevModeClick() {
devModeManager.handleClick()
......
......@@ -32,6 +32,7 @@
<script>
export default {
name: 'inputTagsAlias',
props: {
rowInfo: {
type: Array,
......
......@@ -58,6 +58,7 @@
<script>
import Alias from './alias.vue'
export default {
name: 'inputTags',
props: {
inputSelectList: {
type: Array,
......
......@@ -7,6 +7,7 @@
<script>
export default {
name: 'loading',
data() {
return {
}
......
......@@ -17,6 +17,7 @@
import { selectSearch } from '@/api/game'
import { searchcondition } from '@/api/pigeon'
export default {
name: 'mainGame',
// gameType:存在的时候取信鸽的游戏列表接口 gameDefaultList 编辑的时候 如果没有当前的游戏 id 主动加上去
props: ['defaultValue', 'width', 'label', 'disabled','gameType','gameDefaultList','isResize'],
data() {
......
......@@ -14,7 +14,7 @@
<script>
export default {
name: 'NoContent',
name: 'noContent',
props: {
// 主标题
title: {
......
......@@ -14,7 +14,7 @@
<script type="text/javascript">
export default {
name: 'page',
name: 'pageNum',
props: ['pageInfo'],
data() {
return {}
......
......@@ -105,6 +105,7 @@
<script type="text/javascript">
import { searchTags } from '@/api/works'
export default {
name: 'selectTag',
components: {
},
// checkList 选中的标签 checkbox 是否显示 在当前主体不同客服号同步进行打标
......
......@@ -45,6 +45,7 @@
<script>
import { base64toFile } from '@/utils/index'
export default {
name: 'textEditor',
props: ['remark', 'contenteditable', 'domid'], // remark 原来的图文内容 contenteditable 是否可编辑 domid 编辑器的 DomId resultReamrk 方法吐出最后的编辑好的内容
data() {
return {
......
......@@ -79,6 +79,7 @@
import { uploadImageBefore } from '@/utils/index'
// import imageCropper from './imageCorpper.vue'
export default {
name: 'uploadMultiple',
components: {
// imageCropper
},
......
......@@ -26,16 +26,16 @@ Vue.use(globalComponent).use(permission).use(clickagain).use(loadmore).use(scrol
import '@/utils/vconsoleCleanup'
// 开发环境下初始化 stagewise 工具栏
if (process.env.NODE_ENV === 'development') {
import('@stagewise/toolbar').then(({ initToolbar }) => {
const stagewiseConfig = {
plugins: []
};
initToolbar(stagewiseConfig);
}).catch(err => {
console.error('Failed to initialize stagewise toolbar:', err);
});
}
// if (process.env.NODE_ENV === 'development') {
// import('@stagewise/toolbar').then(({ initToolbar }) => {
// const stagewiseConfig = {
// plugins: []
// };
// initToolbar(stagewiseConfig);
// }).catch(err => {
// console.error('Failed to initialize stagewise toolbar:', err);
// });
// }
// 开发环境不收集日志
if (process.env.NODE_ENV !== 'development') {
......
......@@ -5,12 +5,9 @@ import { zyouBindMember } from '@/api/works'
import Cookies from 'js-cookie'
// 从本地缓存获取accountSelect
const getAccountSelectFromCache = () => {
return Cookies.get('accountSelect') || ''
}
const state = {
accountSelect: getAccountSelectFromCache(), // 当前选中的用户的member_id,从缓存初始化
accountSelect: '', // 当前选中的用户的member_id,从缓存初始化
bindGameUserList: [], // 用户绑定的游戏角色
changeSelectWindow: false, // 切换客服窗口的时候 下发通知
gameUserInfo:{},
......@@ -22,12 +19,6 @@ const state = {
const mutations = {
set_accountSelect(state, data) {
state.accountSelect = data
// 同步到本地缓存
if (data) {
Cookies.set('accountSelect', data, { expires: 30 }) // 30天过期
} else {
Cookies.remove('accountSelect')
}
},
set_bindGameUserList(state, data) {
state.bindGameUserList = data
......
......@@ -18,7 +18,7 @@ import AreaTransferApply from './components/ApplyRecords/AreaTransferApply.vue'
import errorHandle from './components/ApplyRecords/errorHandle.vue'
import TerminalTransfer from './components/ApplyRecords/TerminaTranfer.vue'
export default {
name: 'GiftTab',
name: 'applyRecord',
components: {
AreaTransferApply,
errorHandle,
......
......@@ -245,6 +245,7 @@ import shenpi4 from '@/assets/icon/shenpi4.svg'
import shenpi5 from '@/assets/icon/shenpi5.svg'
import noContent from '@/components/noContent.vue'
export default {
name: 'AreaTransferApply',
computed: {
...mapState('game', ['accountSelect']),
...mapState('user', ['userInfo'])
......
......@@ -225,7 +225,7 @@ import { searchcondition, transfer_server_request_add } from '@/api/game'
import textEditor from '@/components/textEditor.vue'
import mainGameSelect from '@/components/mainGame.vue'
export default {
name: 'AreaTransferDialog',
name: 'areaTransferDialog',
components: {
textEditor,
mainGameSelect
......
......@@ -66,62 +66,14 @@
</p>
<p><span class="label">转端状态:</span><span class="value">{{ item.trans_check_status_text || '-' }}</span></p>
</div>
<div class="terminaItemRight columnFlex columnCenter">
<el-button
v-if="item.approval_status== 3 && item.related_request_id == 0"
type="primary"
size="mini"
style="margin-bottom:15px;"
@click.stop="resubmitApproval(item)"
>重新提交</el-button>
<img
v-if="item.approval_status == 1"
:src="shenpi1"
class="icon"
/>
<img
v-else-if="item.approval_status == 2"
:src="shenpi2"
class="icon"
/>
<img
v-else-if="item.approval_status == 3"
:src="shenpi6"
class="icon"
/>
<img
v-else-if="item.approval_status == 4"
:src="shenpi4"
class="icon"
/>
<img
v-else-if="item.approval_status == 5"
:src="shenpi5"
class="icon"
/>
</div>
</div>
<!-- 审批进度 -->
<el-collapse-transition>
<div
v-if="item.showStep"
class="terminaProcessList"
>
<el-steps
direction="vertical"
:active="item.current"
finish-status="success"
>
<el-step
v-for="(items, indexs) in item.terminaProcessList"
:key="'trans_item_' + indexs"
:title="items.node_name"
>
<div v-if="item.showStep" class="terminaProcessList">
<el-steps direction="vertical" :active="item.current" finish-status="success">
<el-step v-for="(items, indexs) in item.terminaProcessList" :key="'trans_item_' + indexs"
:title="items.node_name">
<template slot="description">
<div
v-if="items"
class="trans-follow-1 card-style"
>
<div v-if="items" class="trans-follow-1 card-style">
<div class="follow-item">
<span class="follow-info-label label-font">
{{ items.node_sort !== '0' ? '审批人:' : '登记人:' }}
......@@ -129,32 +81,22 @@
<span class="info-value value-font">
{{ Array.isArray(items.user_name) ? items.user_name[0] : items.user_name }}
</span>
<el-tooltip
v-if="Array.isArray(items.user_name) && items.user_name.length > 1"
class="item"
effect="dark"
:content="items.user_name.slice(1).join('、')"
placement="top"
>
<el-tooltip v-if="Array.isArray(items.user_name) && items.user_name.length > 1" class="item"
effect="dark" :content="items.user_name.slice(1).join('、')" placement="top">
<span class="info-value value-font info-value-color">
{{ `+${items.user_name.length - 1}` }}
</span>
</el-tooltip>
</div>
<div
v-if="items.node_sort !== '0' || items.node_name === '系统'"
class="follow-item"
>
<div v-if="items.node_sort !== '0' || items.node_name === '系统'" class="follow-item">
<span class="follow-info-label label-font">
审批结果:
</span>
<span
class="info-value value-font"
:class="items.current < indexs ? '' : switchStateTag(items.approval_result)"
>
{{ items.current < indexs ? '' : items.approval_result_text=='通过' ? '完成' : items.approval_result_text }}
</span>
<span class="info-value value-font"
:class="items.current < indexs ? '' : switchStateTag(items.approval_result)">
{{ items.current < indexs ? '' : items.approval_result_text == '通过' ? '完成' :
items.approval_result_text }} </span>
</div>
<div class="follow-item">
<span class="follow-info-label label-font">
......@@ -166,8 +108,7 @@
</div>
<div
v-if="(items.node_sort !== '0' || items.node_name === '系统') && items.approval_result === '2'"
class="follow-item"
>
class="follow-item">
<span class="follow-info-label label-font">
驳回原因:
</span>
......@@ -178,8 +119,7 @@
<div
v-if="items.node_sort === item.terminaProcessList[item.terminaProcessList.length - 1].node_sort + '' && items.approval_result === '1' && items.node_sort !== '0'"
class="follow-item-remark follow-item"
>
class="follow-item-remark follow-item">
<span class="follow-info-label label-font">
处理结果:
</span>
......@@ -189,22 +129,16 @@
</div>
<div
v-if="items.node_name !== '系统' && items.extra_attribution && items.extra_attribution.remark"
class="info-item-remark"
>
class="info-item-remark">
<div style="display: flex;">
<span class="info-label remark-label">详情:</span>
<span
class="preview-btn"
@click.stop="previewRemark(items.extra_attribution.remark)"
>
<span class="preview-btn" @click.stop="previewRemark(items.extra_attribution.remark)">
<i class="el-icon-view"></i>
点击查看大图
</span>
</div>
<div
class="remark-value"
v-html="formatImg(items.extra_attribution && items.extra_attribution.remark ? items.extra_attribution.remark : '')"
>
<div class="remark-value"
v-html="formatImg(items.extra_attribution && items.extra_attribution.remark ? items.extra_attribution.remark : '')">
</div>
</div>
</div>
......@@ -215,27 +149,19 @@
</el-collapse-transition>
</div>
</div>
</div>
<div v-else class="noContent rowFlex allCenter">
<noContent />
</div>
</div>
<el-dialog
:visible.sync="dialogRemarkVisible"
append-to-body
title="查看大图"
custom-class="remake-dialog"
>
<el-dialog :visible.sync="dialogRemarkVisible" append-to-body title="查看大图" custom-class="remake-dialog">
<div class="remake-box">
<div v-html="dialogRemake"></div>
</div>
</el-dialog>
<!-- 编辑误操作 -->
<TerminalTransferDialog
v-if="showaddAreaTransfer"
:visible.sync="showaddAreaTransfer"
:area-transfer-item="areaTransferItem"
@updateList="updateList"
/>
<TerminalTransferDialog v-if="showaddAreaTransfer" :visible.sync="showaddAreaTransfer"
:area-transfer-item="areaTransferItem" @updateList="updateList" />
</div>
</template>
<script>
......@@ -252,6 +178,7 @@ import shenpi5 from '@/assets/icon/shenpi5.svg'
import shenpi6 from '@/assets/icon/shenpi6.svg'
import noContent from '@/components/noContent.vue'
export default {
name: 'terminaTranfer',
computed: {
...mapState('game', ['accountSelect']),
...mapState('user', ['userInfo'])
......@@ -462,15 +389,22 @@ export default {
.terminaListContent {
width: 100%;
height: 100%;
.TerminaTranferContent{
width: 100%;
height: 100%;
overflow: auto;
.terminaListForm{
::v-deep .el-form-item__label{
overflow-x: hidden;
}
.terminaListForm {
::v-deep .el-form-item__label {
font-weight: 400;
}
}
.addApply {
margin-top: 15px;
}
.taskForm {
::v-deep .el-form-item {
margin-bottom: 10px;
......@@ -530,8 +464,9 @@ export default {
height: auto;
margin-bottom: 40px;
padding: 0 10px;
.terminaContent {
width:100%;
width: 100%;
}
//举报申请
......@@ -627,7 +562,7 @@ export default {
width: 1px;
}
::v-deep .el-step > .is-success {
::v-deep .el-step>.is-success {
color: #409EFF;
border-color: #409EFF;
......@@ -636,11 +571,11 @@ export default {
}
}
::v-deep .el-step__main > .is-success {
::v-deep .el-step__main>.is-success {
color: #409EFF;
}
::v-deep .el-step > .is-process {
::v-deep .el-step>.is-process {
color: #409EFF;
border-color: #409EFF;
......@@ -649,7 +584,7 @@ export default {
}
}
::v-deep .el-step__main > .is-process {
::v-deep .el-step__main>.is-process {
color: #409EFF;
}
......@@ -775,7 +710,7 @@ export default {
height: 80px;
}
&:hover > .preview-pic {
&:hover>.preview-pic {
z-index: 100;
}
}
......
......@@ -141,7 +141,7 @@ import { searchcondition, approval_group_flow_list, approval_group_flow_user, ap
import textEditor from '@/components/textEditor.vue'
export default {
name: 'TerminalTransferDialog',
name: 'terminalTransferDialog',
components: {
textEditor
},
......
......@@ -119,6 +119,7 @@
import { mapMutations, mapActions, mapState } from 'vuex'
import textEditor from '@/components/textEditor.vue'
export default {
name: 'addErrorHandle',
components: { searchSelect, uploadMultiple, textEditor },
props: ['show', 'width', 'title', 'info'],
computed: {
......
......@@ -108,6 +108,7 @@ import { memberView, misoperationIndex, searchcondition } from '@/api/game'
import addErrorHandle from './addErrorHandle.vue'
import noContent from '@/components/noContent.vue'
export default {
name: 'errorHandle',
components: {
searchSelect,
addErrorHandle,
......
......@@ -186,6 +186,7 @@
import { mapMutations, mapActions, mapState } from 'vuex'
import page from '@/components/page/pageNum.vue'
export default {
name: 'addUser',
components: {
userTable,
page
......
......@@ -33,6 +33,7 @@ import { getToken,removeToken } from '@/utils/auth'
// 更新代码
export default {
name: 'bindUserList',
components: {
addUser
},
......@@ -88,21 +89,24 @@ export default {
close(){
this.bindAccount = this.accountSelect
},
gameMemberView(item) {
async gameMemberView(item) {
if (this.accountSelect && this.accountSelect !== '') {
this.set_viewLoading(true)
this.set_gameUserInfo({})
await this.$nextTick()
const data = { member_id: this.accountSelect, need_channel: 1, need_roleInfo: 1, need_banned: 1 }
memberView(data).then((res) => {
try {
const res = await memberView(data)
this.set_viewLoading(false)
if (res.status_code === 1) {
this.set_gameUserInfo(res.data)
} else {
this.set_gameUserInfo({})
}
}, (err) => {
} catch (error) {
this.set_viewLoading(false)
this.set_gameUserInfo({})
})
}
}
},
logout(){
......
......@@ -54,6 +54,7 @@
<script>
export default {
name: 'userTable',
props: ['list'],
data() {
return {
......
......@@ -73,6 +73,7 @@
import roleTimeRecharge from './giftDetails/roleTimeRecharge.vue'
import { debounce } from '@/utils/index'
export default {
name: 'applyGift',
components: {
roleRecharge, // 角色累充
oneDayCharge, // 单日累充
......
......@@ -66,6 +66,7 @@
import { giftBagApply } from '@/api/game'
import { mapState } from 'vuex'
export default {
name: 'confirmLayer',
// type 3:image 4:video
props: ['show', 'width', 'title', 'activeInfo', 'remark'],
data() {
......
......@@ -142,6 +142,7 @@ import { removeDp, debounce } from '@/utils/index'
import applyGift from './applyGift.vue'
import selectDate from '@/components/selectDate.vue'
export default {
name: 'emailGift',
components: {
selectDate,
applyGift
......
......@@ -135,6 +135,7 @@ import { giftBagApply } from '@/api/game'
import { mapState, mapMutations, mapActions } from 'vuex'
import confirmLayer from '../confirmLayer'
export default {
name: 'oneDay',
// type 3:image 4:video
components: {
confirmLayer
......
......@@ -67,6 +67,7 @@ import { giftBagApply } from '@/api/game'
import confirmLayer from '../confirmLayer'
import { mapState } from 'vuex'
export default {
name: 'roleRecharge',
// type 3:image 4:video
components: {
confirmLayer
......
......@@ -261,6 +261,7 @@ import { giftBagApply, checkRoleReceivedBag } from '@/api/game'
import { mapState, mapMutations, mapActions } from 'vuex'
import confirmLayer from '../confirmLayer'
export default {
name: 'roleTimeRecharge',
// type 3:image 4:video
components: {
confirmLayer
......
......@@ -31,7 +31,7 @@ import Clipboard from 'clipboard'
import { debounce,copyText,sendChatMessage } from '@/utils/index'
import { mapState } from 'vuex'
export default {
name: 'WxGift',
name: 'wxGift',
data() {
return {
loading: false,
......
......@@ -61,6 +61,7 @@
import { refundRequest } from '@/api/game'
import textEditor from '@/components/textEditor.vue'
export default {
name: 'orderRefund',
components: { textEditor },
props: ['show', 'title', 'info'],
data() {
......
......@@ -231,6 +231,7 @@
import orderRefund from './orderRefund.vue'
import noContent from '@/components/noContent.vue'
export default {
name: 'refundLog',
components: {
searchSelect,
orderRefund,
......
......@@ -35,6 +35,7 @@
import { roleList } from '@/api/game'
import { mapState } from 'vuex'
export default {
name: 'searchUser',
// uid 默认选择的uid
props: ['placeholder', 'selectWord', 'value', 'width', 'defaultValue', 'disabled', 'accountChange'],
data() {
......
......@@ -206,6 +206,7 @@ import sendSelectChannel from './sendGame/sendSelectChannel.vue'
import gameLogMixin from '@/mixins/gameLogMixin'
export default {
name: 'sendGame',
mixins: [gameLogMixin],
components: {
createChannel,
......
......@@ -136,6 +136,7 @@
import { getZqCserGroup,getZqCserWxBelong } from '@/api/works'
import mainGameSelect from './mainGame.vue'
export default {
name: 'createChannel',
components: {
mainGameSelect
},
......
......@@ -20,15 +20,16 @@
<script>
import { selectSearch } from '@/api/game'
export default {
props: ['defaultValue', 'width', 'label'],
data() {
name: 'mainGame',
props: ['defaultValue', 'width', 'label'],
data() {
return {
loading: false,
reg_game_id: '',
regGameList: []
}
},
watch: {
},
watch: {
defaultValue(newVal) {
if (newVal) {
this.reg_game_id = this.defaultValue
......@@ -36,12 +37,12 @@ watch: {
}
}
},
mounted() {
},
mounted() {
this.reg_game_id = this.defaultValue
this.requestRegGameList()
},
methods: {
},
methods: {
requestRegGameList() {
const data = {
type: 'gameListWithType',
......@@ -68,7 +69,7 @@ methods: {
})
this.$emit('result', this.reg_game_id, label)
}
}
}
}
</script>
<style lang="scss" scoped>
......
......@@ -55,6 +55,7 @@ import { zyouGetMemberLink } from '@/api/works'
import gameLogMixin from '@/mixins/gameLogMixin'
export default {
name: 'selectChannel',
mixins: [gameLogMixin],
props: ['show', 'channelInfoList', 'chatUser'],
data() {
......
......@@ -9,6 +9,7 @@ import { throttle } from '@/utils/index'
import gameLogMixin from '@/mixins/gameLogMixin'
export default {
name: 'sendSelectChannel',
mixins: [gameLogMixin],
props: ['show', 'channelInfoList', 'chatUser'],
data() {
......
......@@ -103,6 +103,7 @@
import { passwardEncryption,createVipUrl } from '@/api/game'
import { giftCodeList, sendGiftCode, getZyouAuthLink } from '@/api/works'
export default {
name: 'vipTools',
data() {
return {
disabled: true,
......
......@@ -252,6 +252,7 @@
import noContent from "@/components/noContent.vue";
import watchMember from '@/mixins/watchMember'
export default {
name: 'approval',
computed: {
...mapState('game', ['accountSelect']),
...mapState('user', ['userInfo'])
......
......@@ -284,6 +284,7 @@
import shenpi5 from '@/assets/icon/shenpi5.svg'
import noContent from '@/components/noContent.vue'
export default {
name: 'report',
computed: {
...mapState('game', ['accountSelect']),
...mapState('user', ['cser_id','cser_name'])
......
......@@ -122,6 +122,7 @@
import appeal from './layer/appeal.vue'
import watchMember from '@/mixins/watchMember'
export default {
name: 'roleInfo',
components: {
noContent,
appeal
......
......@@ -232,7 +232,7 @@ import debounce from '@/directive/debounce/index'
import loadingChat from '@/directive/loading/index'
import { getCorpBetaConfig, getAiResponse, Aihistory, answerComment, calAnswerClickTime, getQuoteData } from '@/api/skill'
export default {
name: 'AiLibrary',
name: 'aiLibrary',
directives: {
debounce,
loadingChat
......
......@@ -58,6 +58,7 @@ import { mapState, mapMutations, mapActions } from 'vuex'
import { throttle, copyToClipboard } from '@/utils/index'
import {getMediaId} from '@/api/works'
export default {
name: 'skillCompany',
components: {},
props: {
activeName: {
......
......@@ -62,6 +62,7 @@ import { mapState, mapMutations, mapActions } from 'vuex'
import { throttle, debounce, copyToClipboard,sendChatMessage } from '@/utils/index'
import noContent from '@/components/noContent.vue'
export default {
name: 'skillLibrary',
components: {
noContent
},
......
......@@ -58,6 +58,7 @@ import {getMediaId} from '@/api/works'
import { mapState, mapMutations, mapActions } from 'vuex'
import { debounce, copyToClipboard } from '@/utils/index'
export default {
name: 'skillPersonal',
components: {},
props: {
activeName: {
......
......@@ -15,7 +15,7 @@ import EmailGift from './components/giftRecord/emailGift.vue'
import WxGift from './components/giftRecord/wxGift.vue'
import { mapActions } from 'vuex'
export default {
name: 'GiftTab',
name: 'giftRecord',
components: {
EmailGift,
WxGift
......
......@@ -48,6 +48,7 @@ import { mapMutations, mapState } from 'vuex'
import { getToken, setToken } from '@/utils/auth'
import jsApiList from '@/utils/jsApiList'
export default {
name: 'login',
components: {
},
data() {
......
<template>
<div class="mail-list-container">
<div class="mail-list-container"
ref="mailListScroll"
v-scroll:50="loadMoreMail"
>
<!-- 搜索过滤区域 -->
<div class="search-header">
<div class="search-row">
......@@ -92,7 +95,7 @@
>
<div
v-for="(item, index) in mailList"
:key="item._id || index"
:key="item._id+index"
class="contact-item"
:class="{ active: item.external_userid === chatUserInfo.external_userid }"
>
......@@ -163,7 +166,7 @@ import { debounce } from '@/utils/index'
import searchSelectUser from '@/components/searchSelectUser.vue'
export default {
name: 'MailList',
name: 'mailList',
components: {
searchSelectUser
},
......@@ -252,12 +255,11 @@ export default {
...this.pagination,
userid: this.userid,
}
// 根据搜索类型构建不同的参数
if (this.searchType === 'remark') {
this.searchParams = {
...this.searchParams,
...baseParams,
...this.searchParams
}
} else if (this.searchType === 'w_account') {
this.searchParams = {
......@@ -267,7 +269,6 @@ export default {
} else {
this.searchParams = baseParams
}
// 添加筛选参数
if (this.mailFilterType === 'unbind') {
this.searchParams.red_tip = 1
......@@ -324,6 +325,7 @@ export default {
// 加载更多通讯录
loadMoreMail() {
if (this.hasMore && !this.mailLoading) {
console.log('loadMoreMail')
this.pagination.page++
this.loadMailList()
}else{
......@@ -393,10 +395,9 @@ export default {
<style scoped lang="scss">
.mail-list-container {
width: 100%;
background: #fff;
height: 100%;
display: flex;
flex-direction: column;
}
// 搜索头部
......
......@@ -177,6 +177,7 @@ import { throttle } from '@/utils'
import sanjiaoxing from '@/assets/icon/sanjiaoxing.svg'
import noContent from '@/components/noContent.vue'
export default {
name: 'orderList',
components: {
searchSelect,
refundLog,
......
......@@ -53,6 +53,7 @@ import skillPersonal from './components/skill/skillPersonal.vue'
import skillLibrary from './components/skill/skillLibrary.vue'
import { mapActions } from 'vuex'
export default {
name: 'quickReply',
components: {
skillCompany,
skillPersonal,
......
......@@ -24,6 +24,7 @@ import vipTools from './components/quickSendGame/vipTools.vue'
import sendGame from './components/quickSendGame/sendGame.vue'
import { mapActions } from 'vuex'
export default {
name: 'quickSendGame',
components: {
vipTools,
sendGame,
......
......@@ -2,7 +2,7 @@
<div class="roleTab">
<el-tabs v-model="roleActive">
<el-tab-pane label="角色信息" name="roleInfo">
<roleInfo v-if="roleActive === 'roleInfo'" :chatUserDetails="chatUserInfo" />
<roleInfoPanel v-if="roleActive === 'roleInfo'" :chatUserDetails="chatUserInfo" />
</el-tab-pane>
<el-tab-pane label="举报信息" name="report">
<report v-if="roleActive === 'report'" />
......@@ -15,13 +15,14 @@
</template>
<script>
import roleInfo from './components/roleInfo/roleInfo.vue'
import roleInfoPanel from './components/roleInfo/roleInfoPanel.vue'
import report from './components/roleInfo/report.vue'
import approval from './components/roleInfo/approval.vue'
import { mapState } from 'vuex'
export default {
name: 'roleInfo',
components: {
roleInfo,
roleInfoPanel,
approval,
report
},
......
......@@ -197,6 +197,7 @@ import { mapState } from 'vuex'
import textEditor from '@/components/textEditor.vue'
import NoContent from '@/components/noContent.vue'
export default {
name: 'taskRecord',
components: {
textEditor,
NoContent
......
......@@ -118,7 +118,7 @@
</div> -->
<!-- 游戏业务的账号信息 -->
<gameDetails
v-if="gameUserInfo.username"
v-if="gameUserInfo.username && !viewLoading"
:chat-user-details="chatUserDetails"
:game-user-info="gameUserInfo"
@changeAppraisal="changeAppraisal"
......@@ -208,7 +208,7 @@ import watchMember from '@/mixins/watchMember'
import { memberBindCser,editUser,zyouUnBind } from '@/api/works'
import selectTag from '@/components/selectTag.vue'
export default {
name: 'UserDetailsPanel',
name: 'info',
components: {
gameDetails,
changePhone,
......
......@@ -15,6 +15,7 @@
import { bindMobile } from '@/api/game'
import { mapState } from 'vuex'
export default {
name: 'changePhone',
components: {
},
props: ['show', 'width', 'title', 'body', 'phone'],
......
......@@ -220,6 +220,7 @@
import ZyouTag from './ZyouTag.vue'
import { debounce } from '@/utils'
export default {
name: 'gameUserInfo',
components: {
ZyouTag
},
......
......@@ -56,7 +56,7 @@
import { shareInfoUpsert, shareInfoDel } from '@/api/works'
import { mapState } from 'vuex'
export default {
name: 'ShareInfo',
name: 'shareInfo',
props: ['chatUserDetails'],
data() {
return {
......
......@@ -24,7 +24,7 @@ import violationRecord from '@/views/ViolationRecord.vue'
import { mapState, mapMutations } from 'vuex'
export default {
name: 'UserInfo',
name: 'userInfo',
components: {
Info,
roleInfo,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论