feat: 文案修改&订阅计划字段修改

This commit is contained in:
2026-01-06 17:33:00 +08:00
parent 6fa5ade5b1
commit 38c0b88abf
4 changed files with 747 additions and 528 deletions

View File

@@ -15,12 +15,33 @@
> >
<div class="generalModel_btn"> <div class="generalModel_btn">
<div class="generalModel_closeIcon" @click.stop="cancelDsign()"> <div class="generalModel_closeIcon" @click.stop="cancelDsign()">
<svg width="100%" height="100%" viewBox="0 0 46 46" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg
width="100%"
height="100%"
viewBox="0 0 46 46"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<circle cx="23" cy="23" r="23" fill="#000" fill-opacity="0.3" /> <circle cx="23" cy="23" r="23" fill="#000" fill-opacity="0.3" />
<rect x="32.5063" y="12" width="3" height="29" rx="1.5" transform="rotate(45 32.5063 12)" fill="white"/> <rect
<rect x="34.6274" y="32.5059" width="3" height="29" rx="1.5" transform="rotate(135 34.6274 32.5059)" fill="white"/> x="32.5063"
y="12"
width="3"
height="29"
rx="1.5"
transform="rotate(45 32.5063 12)"
fill="white"
/>
<rect
x="34.6274"
y="32.5059"
width="3"
height="29"
rx="1.5"
transform="rotate(135 34.6274 32.5059)"
fill="white"
/>
</svg> </svg>
</div> </div>
</div> </div>
<div class="modal_title_text"> <div class="modal_title_text">
@@ -28,7 +49,10 @@
</div> </div>
<div class="allUserPoeration_center admin_page"> <div class="allUserPoeration_center admin_page">
<div class="admin_state_item"> <div class="admin_state_item">
<span>User Name: <span>*</span></span> <span>
User Name:
<span>*</span>
</span>
<input <input
:disabled="title != 'Add'" :disabled="title != 'Add'"
:class="{ active: title != 'Add' }" :class="{ active: title != 'Add' }"
@@ -39,7 +63,10 @@
/> />
</div> </div>
<div class="admin_state_item"> <div class="admin_state_item">
<span>User Email: <span>*</span></span> <span>
User Email:
<span>*</span>
</span>
<input <input
:disabled="title != 'Add'" :disabled="title != 'Add'"
:class="{ active: title != 'Add' }" :class="{ active: title != 'Add' }"
@@ -50,27 +77,47 @@
/> />
</div> </div>
<div class="admin_state_item"> <div class="admin_state_item">
<span>Create Time: <span>*</span></span> <span>
<a-date-picker :disabled="title != 'Add'" style="width: 250px" valueFormat="YYYY-MM-DDTHH:mm:ss" class="range_picker" show-time placeholder="Create Time" v-model:value="validStartTime"> Create Time:
<span>*</span>
</span>
<a-date-picker
:disabled="title != 'Add'"
style="width: 250px"
valueFormat="YYYY-MM-DDTHH:mm:ss"
class="range_picker"
show-time
placeholder="Create Time"
v-model:value="validStartTime"
>
<template #suffixIcon> <template #suffixIcon>
<span <span class="icon iconfont range_picker_icon icon-rili"></span>
class="icon iconfont range_picker_icon icon-rili"
></span>
</template> </template>
</a-date-picker> </a-date-picker>
</div> </div>
<div class="admin_state_item"> <div class="admin_state_item">
<span>End Time: <span>*</span></span> <span>
<a-date-picker style="width: 250px" valueFormat="YYYY-MM-DDTHH:mm:ss" class="range_picker" show-time placeholder="End Time" v-model:value="validEndTime"> End Time:
<span>*</span>
</span>
<a-date-picker
style="width: 250px"
valueFormat="YYYY-MM-DDTHH:mm:ss"
class="range_picker"
show-time
placeholder="End Time"
v-model:value="validEndTime"
>
<template #suffixIcon> <template #suffixIcon>
<span <span class="icon iconfont range_picker_icon icon-rili"></span>
class="icon iconfont range_picker_icon icon-rili"
></span>
</template> </template>
</a-date-picker> </a-date-picker>
</div> </div>
<div class="admin_state_item"> <div class="admin_state_item">
<span>User Type:<span>*</span></span> <span>
User Type:
<span>*</span>
</span>
<a-select <a-select
v-model:value="systemUser" v-model:value="systemUser"
size="large" size="large"
@@ -93,45 +140,31 @@
</div> </div>
<div class="admin_state_item"> <div class="admin_state_item">
<span>Country or Region:</span> <span>Country or Region:</span>
<input <!-- <input
:disabled="title != 'Add'" :disabled="title != 'Add'"
:class="{active:title != 'Add'}" :class="{active:title != 'Add'}"
v-model="country" v-model="country"
placeholder="Please enter country" placeholder="Please enter country"
type="text" type="text"
style="width: 250px" style="width: 250px"
/> /> -->
</div> <a-select
<div class="admin_state_item"> v-model:value="country"
<span>Organization Name:</span>
<input
:disabled="title != 'Add'" :disabled="title != 'Add'"
:class="{ active: title != 'Add' }" :class="{ active: title != 'Add' }"
v-model="organizationName" :allowClear="true"
placeholder="Please enter Organization Name" show-search
type="text"
style="width: 250px"
/>
</div>
<div class="admin_state_item">
<span>Sub Account Num:</span>
<input
:disabled="title != 'Add'"
:class="{active:title != 'Add'}"
v-model="subAccountNum"
placeholder="Please enter Sub Account Num"
type="number"
style="width: 250px" style="width: 250px"
:filter-option="filterOption"
placeholder="Select Country or Region"
max-tag-count="responsive"
:options="allCountry"
/> />
</div> </div>
</div> </div>
<div class="allUserPoeration_btn admin_page"> <div class="allUserPoeration_btn admin_page">
<div class="admin_search_item" @click="cancelDsign"> <div class="admin_search_item" @click="cancelDsign">Close</div>
Close <div class="admin_search_item" @click="setOk">OK</div>
</div>
<div class="admin_search_item" @click="setOk">
OK
</div>
</div> </div>
</a-modal> </a-modal>
<div class="mark_loading" v-show="loadingShow"> <div class="mark_loading" v-show="loadingShow">
@@ -139,14 +172,13 @@
</div> </div>
</template> </template>
<script> <script>
import { defineComponent, ref, reactive, watch, onMounted, nextTick, toRefs } from "vue"; import { defineComponent, ref, reactive, watch, onMounted, nextTick, toRefs } from 'vue'
import { Https } from "@/tool/https"; import { Https } from '@/tool/https'
import { Modal, message } from "ant-design-vue"; import { Modal, message } from 'ant-design-vue'
import { ExclamationCircleOutlined } from "@ant-design/icons-vue"; import { ExclamationCircleOutlined } from '@ant-design/icons-vue'
import { formatTime } from "@/tool/util"; import { formatTime } from '@/tool/util'
export default defineComponent({ export default defineComponent({
components: { components: {},
},
emits: ['searchHistoryList'], emits: ['searchHistoryList'],
setup(props, { emit }) { setup(props, { emit }) {
let operations = reactive({ let operations = reactive({
@@ -163,36 +195,34 @@ export default defineComponent({
validEndTime: '', validEndTime: '',
systemUser: '', systemUser: '',
credits: '', credits: '',
country:'', country: ''
organizationName:'',
subAccountNum:0,
}) })
let state = ref([ let state = ref([
{ {
label: 'visitor', label: 'visitor',
value:'0', value: '0'
}, },
{ {
label: 'yearly', label: 'yearly',
value:'1', value: '1'
}, },
{ {
label: 'monthly', label: 'monthly',
value:'2', value: '2'
}, },
{ {
label: 'trial', label: 'trial',
value:'3', value: '3'
}, },
{ {
label: "userInEvent", label: 'userInEvent',
value: "4", value: '4'
}, },
{ {
label: "Edu Admin", label: 'Edu Admin',
value: "7", value: '7'
}, }
]); ])
let init = (funStr, data) => { let init = (funStr, data) => {
operations.operationsModal = true operations.operationsModal = true
operations.operationsEdit = true operations.operationsEdit = true
@@ -201,8 +231,12 @@ export default defineComponent({
if (funStr == 'Edit') { if (funStr == 'Edit') {
operationsData.organizationName = data.organizationName operationsData.organizationName = data.organizationName
operationsData.subAccountNum = data.subAccountNum ? data.subAccountNum : 0 operationsData.subAccountNum = data.subAccountNum ? data.subAccountNum : 0
let startTime = data.validStartTime?formatTime(data.validStartTime / 1000,"YYYY-MM-DDThh:mm:ss"):'' let startTime = data.validStartTime
let endTime = data.validEndTime?formatTime(data.validEndTime / 1000,"YYYY-MM-DDThh:mm:ss"):'' ? formatTime(data.validStartTime / 1000, 'YYYY-MM-DDThh:mm:ss')
: ''
let endTime = data.validEndTime
? formatTime(data.validEndTime / 1000, 'YYYY-MM-DDThh:mm:ss')
: ''
operationsData.accountId = data.id operationsData.accountId = data.id
operationsData.userName = data.userName operationsData.userName = data.userName
operationsData.userEmail = data.userEmail operationsData.userEmail = data.userEmail
@@ -219,39 +253,39 @@ export default defineComponent({
// operationsData.validStartTime = formatTime(data.validStartTime) // operationsData.validStartTime = formatTime(data.validStartTime)
// operationsData.validEndTime = formatTime(data.validEndTime) // operationsData.validEndTime = formatTime(data.validEndTime)
} }
} }
let setTime = (time) =>{ let setTime = time => {
if (time) { if (time) {
const date = new Date(time); const date = new Date(time)
const timestamp = date.getTime(); // 转换为秒数 const timestamp = date.getTime() // 转换为秒数
return timestamp return timestamp
} else { } else {
return '' return ''
} }
} }
let setAddData = () => { let setAddData = () => {
return { return {
"country": operationsData.country, country: operationsData.country,
"credits": operationsData.credits, credits: operationsData.credits,
"systemUser": operationsData.systemUser, systemUser: operationsData.systemUser,
"userEmail": operationsData.userEmail, userEmail: operationsData.userEmail,
"userName": operationsData.userName, userName: operationsData.userName,
"validEndTime": setTime(operationsData.validEndTime), validEndTime: setTime(operationsData.validEndTime),
"validStartTime": setTime(operationsData.validStartTime), validStartTime: setTime(operationsData.validStartTime),
"organizationName": operationsData.organizationName?operationsData.organizationName:null, organizationName: operationsData.organizationName
"subAccountNum": operationsData.subAccountNum, ? operationsData.organizationName
: null,
subAccountNum: operationsData.subAccountNum
} }
} }
let setEditData = () => { let setEditData = () => {
return { return {
"accountId": operationsData.accountId, accountId: operationsData.accountId,
"credits": operationsData.credits, credits: operationsData.credits,
"systemUser": operationsData.systemUser, systemUser: operationsData.systemUser,
"validEndTime": setTime(operationsData.validEndTime), validEndTime: setTime(operationsData.validEndTime),
"userName": operationsData.userName, userName: operationsData.userName,
"userEmail": operationsData.userEmail, userEmail: operationsData.userEmail
} }
} }
let cancelDsign = () => { let cancelDsign = () => {
@@ -269,29 +303,43 @@ export default defineComponent({
let data let data
if (operations.title == 'Add') { if (operations.title == 'Add') {
data = setAddData() data = setAddData()
if(!data.userName || !data.userEmail || !data.validStartTime || !data.validEndTime || !data.systemUser)return message.warning('Please check the input box marked with *') if (
Https.axiosPost(Https.httpUrls.adminAddUser, data).then( !data.userName ||
(rv) => { !data.userEmail ||
!data.validStartTime ||
!data.validEndTime ||
!data.systemUser
)
return message.warning('Please check the input box marked with *')
Https.axiosPost(Https.httpUrls.adminAddUser, data).then(rv => {
if (rv) { if (rv) {
cancelDsign() cancelDsign()
emit('searchHistoryList') emit('searchHistoryList')
} }
} })
);
} else { } else {
data = setEditData() data = setEditData()
if(!data.userName || !data.userEmail || !data.validEndTime || !data.systemUser)return message.warning('Please check the input box marked with *') if (!data.userName || !data.userEmail || !data.validEndTime || !data.systemUser)
Https.axiosPost(Https.httpUrls.modifyUser,{},{params:data}).then( return message.warning('Please check the input box marked with *')
(rv) => { Https.axiosPost(Https.httpUrls.modifyUser, {}, { params: data }).then(rv => {
if (rv) { if (rv) {
cancelDsign() cancelDsign()
emit('searchHistoryList') emit('searchHistoryList')
} }
})
} }
);
} }
const allCountry = ref([])
const filterOption = (input, option) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0
} }
onMounted(() => {
const countryList = sessionStorage.getItem('allCountry')
if (countryList) {
allCountry.value = JSON.parse(countryList)
}
})
return { return {
...toRefs(operations), ...toRefs(operations),
...toRefs(operationsData), ...toRefs(operationsData),
@@ -299,17 +347,11 @@ export default defineComponent({
cancelDsign, cancelDsign,
init, init,
setOk, setOk,
}; allCountry,
}, filterOption
data() { }
return { }
}; })
},
mounted() {},
methods: {
},
});
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
:deep(.allUserPoeration_modal) { :deep(.allUserPoeration_modal) {
@@ -319,10 +361,8 @@ export default defineComponent({
flex-direction: column; flex-direction: column;
} }
} }
</style> </style>
<style lang="less" scoped> <style lang="less" scoped>
.allUserPoeration_modal { .allUserPoeration_modal {
.closeIcon { .closeIcon {
z-index: 2; z-index: 2;

View File

@@ -48,7 +48,7 @@
</a-select> </a-select>
</a-form-item> </a-form-item>
<a-form-item label="Admin Account"> <a-form-item label="Admin Account">
<a-select <!-- <a-select
v-model:value="searchForm.adminAccId" v-model:value="searchForm.adminAccId"
allow-clear allow-clear
show-search show-search
@@ -56,7 +56,8 @@
placeholder="Select Account" placeholder="Select Account"
style="width: 180px" style="width: 180px"
:options="allUserList" :options="allUserList"
></a-select> ></a-select> -->
<SelectUser v-model="testuser" />
</a-form-item> </a-form-item>
<a-form-item label="Status"> <a-form-item label="Status">
<a-select <a-select
@@ -68,6 +69,18 @@
:options="statusOption" :options="statusOption"
/> />
</a-form-item> </a-form-item>
<a-form-item label="Country or Region">
<a-select
v-model:value="searchForm.country"
:allowClear="true"
show-search
style="width: 250px"
:filter-option="filterOption"
placeholder="Select Item..."
max-tag-count="responsive"
:options="countryList"
/>
</a-form-item>
<a-form-item> <a-form-item>
<a-space> <a-space>
<a-button type="primary" @click="handleSearch">Search</a-button> <a-button type="primary" @click="handleSearch">Search</a-button>
@@ -279,7 +292,7 @@
</div> </div>
<div class="admin_state_item"> <div class="admin_state_item">
<span> <span>
Account Num: Sub-Account Num:
<span>*</span> <span>*</span>
</span> </span>
<a-input-number <a-input-number
@@ -386,6 +399,7 @@ import {
nextTick, nextTick,
useTemplateRef useTemplateRef
} from 'vue' } from 'vue'
import SelectUser from '@/component/common/SelectUser.vue'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import { Https } from '@/tool/https' import { Https } from '@/tool/https'
import { formatTime } from '@/tool/util' import { formatTime } from '@/tool/util'
@@ -394,6 +408,8 @@ import type { FormInstance, Rule } from 'ant-design-vue/es/form'
import { debounce } from 'lodash-es' import { debounce } from 'lodash-es'
import dayjs, { Dayjs } from 'dayjs' import dayjs, { Dayjs } from 'dayjs'
const testuser = ref('')
type PlanStatus = 'PENDING' | 'ACTIVE' | 'EXPIRED' type PlanStatus = 'PENDING' | 'ACTIVE' | 'EXPIRED'
interface SubscriptionPlan { interface SubscriptionPlan {
id: number id: number
@@ -413,6 +429,8 @@ const disabledDate = (current: Dayjs) => {
return current && current < dayjs().subtract(1, 'days').endOf('day') return current && current < dayjs().subtract(1, 'days').endOf('day')
} }
const countryList = ref([])
const searchForm = reactive({ const searchForm = reactive({
name: '', name: '',
startTime: '', startTime: '',
@@ -498,17 +516,19 @@ const columns = [
}, },
{ {
title: 'Admin Account', title: 'Admin Account',
dataIndex: 'adminAccId', dataIndex: 'adminAccEmail',
key: 'adminAccId', key: 'adminAccEmail',
align: 'center', align: 'center',
width: 180 width: 180,
ellipsis: true
}, },
{ {
title: 'Account Num', title: 'Sub-Account Num',
dataIndex: 'accountNum', dataIndex: 'accountNum',
key: 'accountNum', key: 'accountNum',
align: 'center', align: 'center',
width: 120 width: 120,
ellipsis: true
}, },
{ {
title: 'Start Time', title: 'Start Time',
@@ -558,6 +578,8 @@ onMounted(async () => {
await handleSearch() await handleSearch()
calculateTableHeight() calculateTableHeight()
window.addEventListener('resize', handleResize) window.addEventListener('resize', handleResize)
const list = sessionStorage.getItem('allCountry')
countryList.value = list ? JSON.parse(list) : []
}) })
onBeforeUnmount(() => { onBeforeUnmount(() => {
@@ -949,9 +971,15 @@ const filterOption = (input: string, option: any) => {
} }
.subscriptionPlan_modal { .subscriptionPlan_modal {
> .admin_state_item { .form_content{
width: 100%;
display: flex;
flex-wrap: wrap;
row-gap: 2rem;
}
.admin_state_item {
> span { > span {
width: 15rem; width: 17rem !important;
} }
} }
.modal_title_text { .modal_title_text {

View File

@@ -0,0 +1,135 @@
<template>
<a-select
v-model:value="value"
:allowClear="true"
show-search
style="width: 250px"
:filter-option="false"
placeholder="Select Item..."
max-tag-count="responsive"
:options="options"
:loading="fetching"
@popupScroll="handleScrollUserList"
@search="onSearch"
@focus="handleFocus"
@change="onChange"
></a-select>
</template>
<script setup lang="ts">
import { computed, ref, reactive } from 'vue'
import { debounce } from 'lodash-es'
type OptionItem = { [k: string]: any }
const props = defineProps<{
modelValue?: any
}>()
const emit = defineEmits(['update:modelValue', 'change', 'search'])
const pager = reactive<{ page: number; size: number; total: number | null }>({
page: 1,
size: 20,
total: null
})
const fetching = ref(false)
const keyword = ref('')
const internalList = ref<OptionItem[]>([])
// page size is stored in pager.size
const value = computed({
get: () => props.modelValue,
set: v => emit('update:modelValue', v)
})
const getLabel = (it: OptionItem) => {
return String(it['label'] ?? '')
}
const getValue = (it: OptionItem, idx: number) => {
return it['value'] ?? String(idx)
}
const options = computed(() => {
return internalList.value.map((it, idx) => ({
label: getLabel(it),
value: getValue(it, idx),
raw: it
}))
})
const defaultFetch = async ({
page: p,
pageSize: ps,
keyword: kw
}: {
page: number
pageSize: number
keyword: string
}) => {
const raw = sessionStorage.getItem('allCountry') || '[]'
let list: OptionItem[] = []
try {
list = JSON.parse(raw)
if (!Array.isArray(list)) list = []
} catch (e) {
list = []
}
// Return the raw list from sessionStorage exactly as-is (no slicing/filtering/delay)
return { data: list, total: list.length }
}
const doFetch = async (reset = false) => {
if (reset) pager.page = 1
if (pager.total !== null && (pager.page - 1) * pager.size >= (pager.total ?? 0)) return
fetching.value = true
try {
const res = await defaultFetch({
page: pager.page,
pageSize: pager.size,
keyword: keyword.value
})
const data = res?.data ?? []
pager.total = res?.total ?? null
if (pager.page === 1) internalList.value = data
else internalList.value = internalList.value.concat(data)
pager.page += 1
} finally {
fetching.value = false
}
}
const debouncedSearch = debounce((val: string) => {
keyword.value = val
emit('search', val)
doFetch(true)
}, 300)
const onSearch = (val: string) => {
debouncedSearch(val)
}
const handleScrollUserList = (e: Event) => {
const target = e?.target as HTMLElement | null
if (!target) return
const nearBottom = target.scrollTop + target.clientHeight >= target.scrollHeight - 40
if (nearBottom && !fetching.value) {
doFetch(false)
}
}
const handleFocus = () => {
// When focused, load first page (or reload with current keyword)
doFetch(true)
}
const onChange = (val: any) => {
emit('change', val)
console.log('change---------', val)
}
</script>
<style lang="less" scoped></style>

View File

@@ -1,11 +1,12 @@
const all = (t)=>{ const all = (t)=>{
return[{ return [
{
name: 'All User', name: 'All User',
route: '/administrator/allUser', route: '/administrator/allUser',
icon: 'yonghu', icon: 'yonghu',
expandIcon: 'icon-xiala', expandIcon: 'icon-xiala',
key: 'sub1', key: 'sub1',
isShow:true, isShow: true
// children: [ // children: [
// { // {
// name:'User Management', // name:'User Management',
@@ -23,14 +24,16 @@ const all = (t)=>{
// isShow:true, // isShow:true,
// }, // },
// ], // ],
},{ },
{
name: 'Design Frequency', name: 'Design Frequency',
route: '/administrator/testClickData', route: '/administrator/testClickData',
icon: 'shenpi', icon: 'shenpi',
expandIcon: 'icon-xiala', expandIcon: 'icon-xiala',
key: 'sub2', key: 'sub2',
isShow:true, isShow: true
},{ },
{
name: 'Trial User', name: 'Trial User',
icon: 'usetime', icon: 'usetime',
expandIcon: 'icon-xiala', expandIcon: 'icon-xiala',
@@ -42,40 +45,46 @@ const all = (t)=>{
route: '/administrator/trialAllUser', route: '/administrator/trialAllUser',
icon: 'usetime', icon: 'usetime',
key: 'sub3-1', key: 'sub3-1',
isShow:true, isShow: true
},{ },
{
name: 'Trial User Approval', name: 'Trial User Approval',
route: '/administrator/trialApproval', route: '/administrator/trialApproval',
icon: 'usetime', icon: 'usetime',
key: 'sub3-2', key: 'sub3-2',
isShow:true, isShow: true
},{ },
{
name: 'Trial User CHART', name: 'Trial User CHART',
route: '/administrator/trialUserCountry', route: '/administrator/trialUserCountry',
icon: '', icon: '',
key: 'sub3-3', key: 'sub3-3',
isShow:true, isShow: true
},{ },
{
name: 'Conversion Rate', name: 'Conversion Rate',
route: '/administrator/trialUserConversionRateChart', route: '/administrator/trialUserConversionRateChart',
icon: '', icon: '',
key: 'sub3-4', key: 'sub3-4',
isShow:true, isShow: true
}, }
] ]
},{ },
{
name: 'Function Use CHART', name: 'Function Use CHART',
route: '/administrator/recentActiveChart', route: '/administrator/recentActiveChart',
icon: 'usetime', icon: 'usetime',
key: 'sub4', key: 'sub4',
isShow:true, isShow: true
},{ },
{
name: 'Active User', name: 'Active User',
icon: 'usetime', icon: 'usetime',
route: '/administrator/recentActiveUser', route: '/administrator/recentActiveUser',
key: 'sub5', key: 'sub5',
isShow:true, isShow: true
},{ },
{
name: 'New User', name: 'New User',
icon: 'usetime', icon: 'usetime',
expandIcon: 'icon-xiala', expandIcon: 'icon-xiala',
@@ -87,16 +96,18 @@ const all = (t)=>{
route: '/administrator/recentNewUser', route: '/administrator/recentNewUser',
icon: '', icon: '',
key: 'sub6-1', key: 'sub6-1',
isShow:true, isShow: true
},{ },
{
name: 'New User CHART', name: 'New User CHART',
route: '/administrator/recentNewUserChart', route: '/administrator/recentNewUserChart',
icon: '', icon: '',
key: 'sub6-2', key: 'sub6-2',
isShow:true, isShow: true
}, }
] ]
},{ },
{
name: 'Events', name: 'Events',
icon: 'usetime', icon: 'usetime',
key: 'sub9', key: 'sub9',
@@ -108,8 +119,8 @@ const all = (t)=>{
route: '/administrator/questionnaire', route: '/administrator/questionnaire',
icon: '', icon: '',
key: 'sub9-1', key: 'sub9-1',
isShow:true, isShow: true
}, }
// { // {
// code:'ROLE_MANAGER', // code:'ROLE_MANAGER',
// name:'Access Permission', // name:'Access Permission',
@@ -118,8 +129,9 @@ const all = (t)=>{
// key:'/home/excil33', // key:'/home/excil33',
// isShow:true, // isShow:true,
// }, // },
], ]
},{ },
{
name: 'Affiliate', name: 'Affiliate',
icon: 'usetime', icon: 'usetime',
expandIcon: 'icon-xiala', expandIcon: 'icon-xiala',
@@ -131,17 +143,18 @@ const all = (t)=>{
route: '/administrator/affiliateAudit', route: '/administrator/affiliateAudit',
icon: '', icon: '',
key: 'sub10-1', key: 'sub10-1',
isShow:true, isShow: true
}, },
{ {
name: 'Affiliate Referral', name: 'Affiliate Referral',
route: '/administrator/affiliateReferral', route: '/administrator/affiliateReferral',
icon: '', icon: '',
key: 'sub10-2', key: 'sub10-2',
isShow:true, isShow: true
}
]
}, },
], {
},{
name: 'Transaction', name: 'Transaction',
icon: 'usetime', icon: 'usetime',
expandIcon: 'icon-xiala', expandIcon: 'icon-xiala',
@@ -153,8 +166,8 @@ const all = (t)=>{
route: '/administrator/TransactionTable', route: '/administrator/TransactionTable',
icon: '', icon: '',
key: 'sub11-1', key: 'sub11-1',
isShow:true, isShow: true
}, }
// { // {
// code:'ROLE_MANAGER', // code:'ROLE_MANAGER',
// name:'Access Permission', // name:'Access Permission',
@@ -163,27 +176,30 @@ const all = (t)=>{
// key:'/home/excil33', // key:'/home/excil33',
// isShow:true, // isShow:true,
// }, // },
], ]
},{ },
{
name: 'Promotion Code', name: 'Promotion Code',
icon: 'usetime', icon: 'usetime',
route: '/administrator/coupons', route: '/administrator/coupons',
key: 'sub12', key: 'sub12',
isShow:true, isShow: true
},{ },
{
name: 'Organization', name: 'Organization',
icon: 'usetime', icon: 'usetime',
route: '/administrator/organization', route: '/administrator/organization',
key: 'sub13', key: 'sub13',
isShow:true, isShow: true
},{ },
name:'Subscription Plan', {
name: 'Organization Plan',
icon: 'usetime', icon: 'usetime',
route: '/administrator/subscriptionPlan', route: '/administrator/subscriptionPlan',
key: 'sub14', key: 'sub14',
isShow:true, isShow: true
}] }
]
} }
const schoolOrEnterprise = (t) =>{ const schoolOrEnterprise = (t) =>{
return[ return[