Merge branch 'dev_vite' of ssh://18.167.251.121:10002/aidlab/aida_front into dev_vite
This commit is contained in:
@@ -86,6 +86,16 @@
|
||||
style="width: 250px"
|
||||
/>
|
||||
</div>
|
||||
<div class="admin_state_item" v-if="title?.value == 'Edit'">
|
||||
<span>{{ $t('admin.SubscribePlan') }}: <span>*</span></span>
|
||||
<a-select
|
||||
v-model:value="subscriptionPlanId"
|
||||
style="width: 250px"
|
||||
:options="planOptions"
|
||||
:field-names="{ label: 'name', value: 'id' }"
|
||||
:placeholder="$t('admin.SelectPlan')"
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="allUserPoeration_btn admin_page">
|
||||
<div class="admin_search_item" @click="cancelDsign">{{ $t('admin.Close') }}</div>
|
||||
@@ -114,9 +124,16 @@ import md5 from "md5";
|
||||
import { useI18n } from 'vue-i18n'
|
||||
export default defineComponent({
|
||||
components: {},
|
||||
props: {
|
||||
planOptions: {
|
||||
type: Array,
|
||||
default: () => []
|
||||
}
|
||||
},
|
||||
emits: ["searchHistoryList"],
|
||||
setup(props, { emit }) {
|
||||
const {t} = useI18n()
|
||||
const { planOptions } = toRefs(props)
|
||||
let operations = reactive({
|
||||
operationsModal: false,
|
||||
operationsEdit: false,
|
||||
@@ -130,6 +147,8 @@ export default defineComponent({
|
||||
password: "",
|
||||
oldPassword: "",
|
||||
credits: "",
|
||||
subscriptionPlanId: "",
|
||||
oldSubscriptionPlanId: ""
|
||||
});
|
||||
let state = ref([
|
||||
{
|
||||
@@ -163,12 +182,18 @@ export default defineComponent({
|
||||
// operationsData.validStartTime='2024-08-05T00:00:06'
|
||||
// operationsData.validEndTime='2024-08-05T00:00:06'
|
||||
operationsData.credits = data.creditsUsageLimit;
|
||||
operationsData.subscriptionPlanId = data.subscriptionPlanId || "";
|
||||
operationsData.oldSubscriptionPlanId = data.subscriptionPlanId || "";
|
||||
// operationsData.accountId = data.accountId
|
||||
// operationsData.userName = data.userName
|
||||
// operationsData.userEmail = data.userEmail
|
||||
// operationsData.validStartTime = formatTime(data.validStartTime)
|
||||
// operationsData.validEndTime = formatTime(data.validEndTime)
|
||||
}
|
||||
if (funStr.value == "Add") {
|
||||
operationsData.subscriptionPlanId = "";
|
||||
operationsData.oldSubscriptionPlanId = "";
|
||||
}
|
||||
};
|
||||
let focus = (event) => {
|
||||
if (operationsData.password == operationsData.oldPassword) {
|
||||
@@ -187,6 +212,7 @@ export default defineComponent({
|
||||
userEmail: operationsData.userEmail,
|
||||
userPassword: operationsData.password?md5(operationsData.password + "abc"):'',
|
||||
userName: operationsData.userName,
|
||||
subscriptionPlanId: operationsData.subscriptionPlanId
|
||||
};
|
||||
};
|
||||
let setEditData = () => {
|
||||
@@ -199,6 +225,7 @@ export default defineComponent({
|
||||
operationsData.password == operationsData.oldPassword
|
||||
? null
|
||||
: md5(operationsData.password + "abc"),
|
||||
subscriptionPlanId: operationsData.subscriptionPlanId
|
||||
};
|
||||
};
|
||||
let cancelDsign = () => {
|
||||
@@ -207,6 +234,8 @@ export default defineComponent({
|
||||
operationsData.userEmail = "";
|
||||
operationsData.password = "";
|
||||
operationsData.credits = "";
|
||||
operationsData.subscriptionPlanId = "";
|
||||
operationsData.oldSubscriptionPlanId = "";
|
||||
operations.operationsModal = false;
|
||||
};
|
||||
let setOk = () => {
|
||||
@@ -237,11 +266,26 @@ export default defineComponent({
|
||||
message.info("The email format is incorrect");
|
||||
return;
|
||||
}
|
||||
if (!data.userName || !data.userEmail)
|
||||
if (!data.userName || !data.userEmail || !data.subscriptionPlanId)
|
||||
return message.warning("Please check the input box marked with *");
|
||||
const needSwitchPlan =
|
||||
operationsData.subscriptionPlanId &&
|
||||
operationsData.subscriptionPlanId !==
|
||||
operationsData.oldSubscriptionPlanId;
|
||||
Https.axiosPost(Https.httpUrls.addOrUpdateSubAccount, data).then(
|
||||
(rv) => {
|
||||
if (rv) {
|
||||
if (needSwitchPlan) {
|
||||
Https.axiosGet(
|
||||
Https.httpUrls.switchSubAccountSubscribePlan,
|
||||
{
|
||||
params: {
|
||||
targetSubscriptionPlanId: operationsData.subscriptionPlanId,
|
||||
subAccId: operationsData.accountId,
|
||||
},
|
||||
}
|
||||
);
|
||||
}
|
||||
cancelDsign();
|
||||
emit("searchHistoryList");
|
||||
}
|
||||
@@ -258,6 +302,7 @@ export default defineComponent({
|
||||
focus,
|
||||
blur,
|
||||
setOk,
|
||||
planOptions,
|
||||
};
|
||||
},
|
||||
data() {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -58,6 +58,16 @@
|
||||
:options="allUserList"
|
||||
></a-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="Status">
|
||||
<a-select
|
||||
v-model:value="searchForm.status"
|
||||
mode="multiple"
|
||||
allow-clear
|
||||
placeholder="Select Status"
|
||||
style="width: 220px"
|
||||
:options="statusOption"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-space>
|
||||
<a-button type="primary" @click="handleSearch">Search</a-button>
|
||||
@@ -69,59 +79,61 @@
|
||||
|
||||
<a-card class="table-card" :bordered="false">
|
||||
<div class="table-card__header">
|
||||
<div class="table-card__title">Subscription Plan</div>
|
||||
<a-button type="primary" @click="openCreate">New Subscription Plan</a-button>
|
||||
</div>
|
||||
<a-table
|
||||
:data-source="tableData"
|
||||
:columns="columns"
|
||||
:loading="tableLoading"
|
||||
row-key="id"
|
||||
:pagination="{
|
||||
showSizeChanger: true,
|
||||
current: searchForm.page,
|
||||
pageSize: searchForm.size,
|
||||
total: searchForm.total,
|
||||
showQuickJumper: true,
|
||||
bordered: false
|
||||
}"
|
||||
>
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template
|
||||
v-if="
|
||||
column.key === 'currentPeriodStart' || column.key === 'currentPeriodEnd'
|
||||
"
|
||||
>
|
||||
{{ formatTime(record[column.key], 'YYYY-MM-DD hh:mm:ss') }}
|
||||
</template>
|
||||
<!-- <template v-if="column.key === 'organizationId'">
|
||||
{{ organizationOptions.find(item => item.id === record[column.key]).name }}
|
||||
</template> -->
|
||||
<div ref="historyTable" class="table-wrapper">
|
||||
<a-table
|
||||
:data-source="tableData"
|
||||
:columns="columns"
|
||||
:loading="tableLoading"
|
||||
:bordered="false"
|
||||
row-key="id"
|
||||
@change="changePage"
|
||||
@resizeColumn="handleResizeColumn"
|
||||
:scroll="{ y: historyTableHeight }"
|
||||
:pagination="{
|
||||
showSizeChanger: true,
|
||||
current: searchForm.page,
|
||||
pageSize: searchForm.size,
|
||||
total: searchForm.total,
|
||||
showQuickJumper: true,
|
||||
bordered: false
|
||||
}"
|
||||
>
|
||||
<template #bodyCell="{ column, record }">
|
||||
<template
|
||||
v-if="
|
||||
column.key === 'currentPeriodStart' || column.key === 'currentPeriodEnd'
|
||||
"
|
||||
>
|
||||
{{ formatTime(record[column.key], 'YYYY-MM-DD hh:mm:ss') }}
|
||||
</template>
|
||||
|
||||
<template v-if="column.key === 'status'">
|
||||
<a-tag :color="statusColorMap[record.status]">
|
||||
{{ statusLabelMap[record.status] }}
|
||||
</a-tag>
|
||||
</template>
|
||||
<template v-if="column.key === 'adminAccId'">
|
||||
{{ allUserList.find(item => item.value === record.adminAccId)?.label }}
|
||||
</template>
|
||||
<template v-if="column.key === 'status'">
|
||||
<a-tag :color="getStatusColor(record.status)">
|
||||
{{ record.status }}
|
||||
</a-tag>
|
||||
</template>
|
||||
<template v-if="column.key === 'adminAccId'">
|
||||
{{ allUserList.find(item => item.value === record.adminAccId)?.label }}
|
||||
</template>
|
||||
|
||||
<template v-else-if="column.key === 'actions'">
|
||||
<a-space>
|
||||
<a @click="openEdit(record)">Edit</a>
|
||||
<a-popconfirm
|
||||
title="Confirm to delete this subscription plan?"
|
||||
ok-text="Confirm"
|
||||
cancel-text="Cancel"
|
||||
@confirm="removePlan(record.id)"
|
||||
>
|
||||
<a class="danger-text">Delete</a>
|
||||
</a-popconfirm>
|
||||
</a-space>
|
||||
<template v-else-if="column.key === 'actions'">
|
||||
<a-space>
|
||||
<a @click="openEdit(record)">Edit</a>
|
||||
<a-popconfirm
|
||||
title="Confirm to delete this subscription plan?"
|
||||
ok-text="Confirm"
|
||||
cancel-text="Cancel"
|
||||
@confirm="removePlan(record.id)"
|
||||
>
|
||||
<a class="danger-text">Delete</a>
|
||||
</a-popconfirm>
|
||||
</a-space>
|
||||
</template>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
</a-table>
|
||||
</div>
|
||||
</a-card>
|
||||
|
||||
<div class="subscriptionPlanModal" ref="subscriptionPlanModal"></div>
|
||||
@@ -175,7 +187,7 @@
|
||||
</div>
|
||||
<div class="subscriptionPlan_center admin_page">
|
||||
<div class="form_content">
|
||||
<div class="admin_state_item">
|
||||
<div class="admin_state_item" v-if="!isEditMode">
|
||||
<span>
|
||||
Name:
|
||||
<span>*</span>
|
||||
@@ -184,7 +196,6 @@
|
||||
v-model:value="formState.name"
|
||||
placeholder="Input the name"
|
||||
style="width: 250px"
|
||||
:disabled="isEditMode"
|
||||
/>
|
||||
</div>
|
||||
<div class="admin_state_item">
|
||||
@@ -200,7 +211,6 @@
|
||||
@popupScroll="handleOrganizationScroll"
|
||||
@select="handleOrganizationSelect"
|
||||
@change="handleOrganizationChange"
|
||||
:disabled="isEditMode"
|
||||
>
|
||||
<a-select-option value="ADD_ORGANIZATION" class="add-organization-option">
|
||||
+ 添加组织
|
||||
@@ -287,11 +297,21 @@
|
||||
placeholder="Input the credit limit"
|
||||
/>
|
||||
</div>
|
||||
<div class="admin_state_item" v-if="!isEditMode">
|
||||
<span>Status:</span>
|
||||
<a-select
|
||||
v-model:value="formState.status"
|
||||
placeholder="Select status"
|
||||
allow-clear
|
||||
style="width: 250px"
|
||||
:options="statusOption"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="subscriptionPlan_btn admin_page">
|
||||
<div class="admin_search_item" @click="cancelModal">Close</div>
|
||||
<div class="admin_search_item" @click="handleSubmit">OK</div>
|
||||
<div class="admin_search_item" @click="handleSubmitDebounced">OK</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
|
||||
@@ -353,14 +373,15 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { reactive, ref, onMounted, computed, nextTick } from 'vue'
|
||||
import { reactive, ref, onMounted, onBeforeUnmount, computed, nextTick, useTemplateRef } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { Https } from '@/tool/https'
|
||||
import { formatTime } from '@/tool/util'
|
||||
import store from '@/store'
|
||||
import type { FormInstance, Rule } from 'ant-design-vue/es/form'
|
||||
import { debounce } from 'lodash-es'
|
||||
|
||||
type PlanStatus = 'active' | 'paused' | 'ended'
|
||||
type PlanStatus = 'PENDING' | 'ACTIVE' | 'EXPIRED'
|
||||
interface SubscriptionPlan {
|
||||
id: number
|
||||
name: string
|
||||
@@ -381,6 +402,7 @@ const searchForm = reactive({
|
||||
endTime: '',
|
||||
organizationId: undefined as string | undefined,
|
||||
adminAccId: undefined as string | undefined,
|
||||
status: [] as PlanStatus[] | [],
|
||||
id: '',
|
||||
page: 1,
|
||||
size: 10,
|
||||
@@ -403,7 +425,8 @@ const formState = reactive({
|
||||
organizationId: undefined as string | undefined,
|
||||
adminAccId: undefined as string | undefined,
|
||||
creditLimit: null as number | null,
|
||||
accountNum: null as number | null
|
||||
accountNum: null as number | null,
|
||||
status: undefined as PlanStatus | undefined
|
||||
})
|
||||
|
||||
const organizationModalVisible = ref(false)
|
||||
@@ -413,55 +436,110 @@ const organizationForm = reactive({
|
||||
})
|
||||
|
||||
const statusLabelMap: Record<PlanStatus, string> = {
|
||||
active: 'Active',
|
||||
paused: 'Paused',
|
||||
ended: 'Ended'
|
||||
PENDING: 'Pending',
|
||||
ACTIVE: 'Active',
|
||||
EXPIRED: 'Expired'
|
||||
}
|
||||
const statusColorMap: Record<PlanStatus, string> = {
|
||||
active: 'green',
|
||||
paused: 'orange',
|
||||
ended: 'red'
|
||||
PENDING: 'blue',
|
||||
ACTIVE: 'green',
|
||||
EXPIRED: 'red'
|
||||
}
|
||||
|
||||
const statusOption = ref([
|
||||
{
|
||||
label: 'Pending',
|
||||
value: 'PENDING'
|
||||
},
|
||||
{
|
||||
label: 'Active',
|
||||
value: 'ACTIVE'
|
||||
},
|
||||
{
|
||||
label: 'Expired',
|
||||
value: 'EXPIRED'
|
||||
}
|
||||
])
|
||||
|
||||
const normalizeStatus = (status?: string): PlanStatus | undefined => {
|
||||
if (!status) return undefined
|
||||
const upper = status.toUpperCase() as PlanStatus
|
||||
return upper
|
||||
}
|
||||
const getStatusColor = (status?: string) =>
|
||||
statusColorMap[normalizeStatus(status) as PlanStatus] || 'default'
|
||||
|
||||
const columns = [
|
||||
{ title: 'Name', dataIndex: 'name', key: 'name' },
|
||||
{ title: 'ID', dataIndex: 'id', key: 'id' },
|
||||
{ title: 'Organization', dataIndex: 'organizationName', key: 'organizationName' },
|
||||
{ title: 'Admin Account', dataIndex: 'adminAccId', key: 'adminAccId' },
|
||||
{ title: 'Account Num', dataIndex: 'accountNum', key: 'accountNum' },
|
||||
{ title: 'Name', dataIndex: 'name', key: 'name', align: 'center',width: 180 },
|
||||
{ title: 'ID', dataIndex: 'id', key: 'id', align: 'center' ,width: 80},
|
||||
{
|
||||
title: 'Organization',
|
||||
dataIndex: 'organizationName',
|
||||
key: 'organizationName',
|
||||
align: 'center',
|
||||
width: 180
|
||||
},
|
||||
{ title: 'Admin Account', dataIndex: 'adminAccId', key: 'adminAccId', align: 'center' ,width: 180},
|
||||
{ title: 'Account Num', dataIndex: 'accountNum', key: 'accountNum', align: 'center' ,width: 120},
|
||||
{
|
||||
title: 'Start Time',
|
||||
dataIndex: 'currentPeriodStart',
|
||||
key: 'currentPeriodStart'
|
||||
key: 'currentPeriodStart',
|
||||
align: 'center',
|
||||
width:200
|
||||
},
|
||||
{
|
||||
title: 'End Time',
|
||||
dataIndex: 'currentPeriodEnd',
|
||||
key: 'currentPeriodEnd'
|
||||
key: 'currentPeriodEnd',
|
||||
align: 'center',
|
||||
width:200
|
||||
},
|
||||
{ title: 'Status', dataIndex: 'status', key: 'status' },
|
||||
{ title: 'Credit Limit', dataIndex: 'creditLimit', key: 'creditLimit' },
|
||||
{ title: 'Operations', key: 'actions', width: 160 }
|
||||
{ title: 'Status', dataIndex: 'status', key: 'status', align: 'center' ,width: 100},
|
||||
{
|
||||
title: 'Credit Limit',
|
||||
dataIndex: 'creditLimit',
|
||||
key: 'creditLimit',
|
||||
align: 'center',
|
||||
width: 120
|
||||
},
|
||||
{ title: 'Operations', key: 'actions', width: 160, align: 'center', fixed: 'right' }
|
||||
]
|
||||
|
||||
const historyTable = ref()
|
||||
const historyTableHeight = ref(0)
|
||||
const handleResizeColumn = (w: any, col: any) => {
|
||||
col.width = w
|
||||
}
|
||||
|
||||
const calculateTableHeight = () => {
|
||||
nextTick(() => {
|
||||
if (historyTable.value) {
|
||||
historyTableHeight.value = historyTable.value.clientHeight - 200
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const handleResize = () => {
|
||||
calculateTableHeight()
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
await getOrganizationList()
|
||||
await handleSearch()
|
||||
calculateTableHeight()
|
||||
window.addEventListener('resize', handleResize)
|
||||
})
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
window.removeEventListener('resize', handleResize)
|
||||
})
|
||||
|
||||
const handleFetchTableData = async () => {
|
||||
tableLoading.value = true
|
||||
return Https.axiosPost(Https.httpUrls.searchAllSubscribePlan, searchForm)
|
||||
.then(res => {
|
||||
tableData.value = res.records.map(item => {
|
||||
const organization = organizationOptions.value.find(
|
||||
el => el.id === item.organizationId
|
||||
) || { name: '' }
|
||||
return {
|
||||
...item,
|
||||
organizationName: organization.name || ''
|
||||
}
|
||||
debugger
|
||||
})
|
||||
tableData.value = res.records
|
||||
searchForm.total = res.total
|
||||
})
|
||||
.finally(() => {
|
||||
@@ -477,6 +555,13 @@ const resetFormState = () => {
|
||||
formState.adminAccId = undefined
|
||||
formState.creditLimit = null
|
||||
formState.accountNum = null
|
||||
formState.status = undefined
|
||||
}
|
||||
|
||||
const changePage = (pagination: any) => {
|
||||
searchForm.page = pagination.current
|
||||
searchForm.size = pagination.pageSize
|
||||
handleFetchTableData()
|
||||
}
|
||||
|
||||
const handleSearch = () => {
|
||||
@@ -490,6 +575,7 @@ const handleReset = () => {
|
||||
searchForm.endTime = ''
|
||||
searchForm.organizationId = undefined
|
||||
searchForm.adminAccId = undefined
|
||||
searchForm.status = []
|
||||
searchForm.id = ''
|
||||
handleSearch()
|
||||
}
|
||||
@@ -508,12 +594,37 @@ const openEdit = (record: SubscriptionPlan) => {
|
||||
modalTitle.value = 'Edit Subscription Plan'
|
||||
isEditMode.value = true
|
||||
formState.name = record.name
|
||||
formState.currentPeriodStart = record.currentPeriodStart
|
||||
formState.currentPeriodEnd = record.currentPeriodEnd
|
||||
formState.currentPeriodStart = String(record.currentPeriodStart)
|
||||
formState.currentPeriodEnd = String(record.currentPeriodEnd)
|
||||
formState.organizationId = record.organizationId
|
||||
formState.adminAccId = record.adminAccId
|
||||
formState.creditLimit = record.creditLimit
|
||||
formState.accountNum = (record as any).accountNum || null
|
||||
formState.status = record.status
|
||||
formState.id = record.id
|
||||
|
||||
// 检查组织ID是否在已加载的组织列表中,如果不在,则添加临时项
|
||||
if (record.organizationId) {
|
||||
const orgExists = organizationOptions.value.some(
|
||||
(org: any) =>
|
||||
org.id === record.organizationId ||
|
||||
String(org.id) === String(record.organizationId)
|
||||
)
|
||||
if (!orgExists) {
|
||||
// 从表格数据中获取组织名称,如果存在则添加临时项
|
||||
const orgName = (record as any).organizationName
|
||||
if (orgName) {
|
||||
organizationOptions.value = [
|
||||
{
|
||||
id: record.organizationId,
|
||||
name: orgName
|
||||
},
|
||||
...organizationOptions.value
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
modalVisible.value = true
|
||||
}
|
||||
|
||||
@@ -590,6 +701,12 @@ const handleSubmit = async () => {
|
||||
}
|
||||
}
|
||||
|
||||
// 防抖包装,避免重复点击
|
||||
const handleSubmitDebounced = debounce(handleSubmit, 500, {
|
||||
leading: true,
|
||||
trailing: false
|
||||
})
|
||||
|
||||
const cancelModal = () => {
|
||||
modalVisible.value = false
|
||||
resetFormState()
|
||||
@@ -631,12 +748,24 @@ const getOrganizationList = async (isLoadMore = false) => {
|
||||
}
|
||||
organizationLoading.value = true
|
||||
try {
|
||||
const rv: any = await Https.axiosPost(
|
||||
Https.httpUrls.queryOrganization,
|
||||
organizationParams
|
||||
)
|
||||
const { total, ...requestParams } = organizationParams
|
||||
const rv: any = await Https.axiosPost(Https.httpUrls.queryOrganization, requestParams)
|
||||
if (rv) {
|
||||
organizationOptions.value = [...organizationOptions.value, ...(rv.records || [])]
|
||||
const newRecords = rv.records || []
|
||||
// 遍历新数据,如果已存在则覆盖,不存在则追加
|
||||
newRecords.forEach((newOrg: any) => {
|
||||
const newOrgId = String(newOrg.id)
|
||||
const existingIndex = organizationOptions.value.findIndex(
|
||||
(org: any) => String(org.id) === newOrgId
|
||||
)
|
||||
if (existingIndex !== -1) {
|
||||
// 如果已存在,用新数据覆盖旧项
|
||||
organizationOptions.value[existingIndex] = newOrg
|
||||
} else {
|
||||
// 如果不存在,追加到末尾
|
||||
organizationOptions.value.push(newOrg)
|
||||
}
|
||||
})
|
||||
organizationParams.total = rv.total || 0
|
||||
}
|
||||
} finally {
|
||||
@@ -725,33 +854,64 @@ const filterOption = (input: string, option: any) => {
|
||||
|
||||
<style lang="less" scoped>
|
||||
.subscription-plan {
|
||||
padding: 20px 24px 32px 0;
|
||||
padding: 2rem 2.4rem 3.2rem 0;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
flex-direction: column;
|
||||
|
||||
.search-card {
|
||||
margin-bottom: 16px;
|
||||
margin-bottom: 1.6rem;
|
||||
}
|
||||
|
||||
.table-card {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
|
||||
:deep(.ant-card-body) {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
overflow: hidden;
|
||||
padding: 2.4rem;
|
||||
}
|
||||
|
||||
.table-card__header {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 12px;
|
||||
justify-content: flex-end;
|
||||
margin-bottom: 2.6rem;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.table-card__title {
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.table-wrapper {
|
||||
flex: 1;
|
||||
overflow: hidden;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
.danger-text {
|
||||
color: #ff4d4f;
|
||||
}
|
||||
:deep(.ant-table-cell::before) {
|
||||
display: none;
|
||||
}
|
||||
|
||||
:deep(.ant-table-thead > tr > th) {
|
||||
border-bottom: none;
|
||||
}
|
||||
:deep(.ant-table-tbody > tr > td) {
|
||||
border: none;
|
||||
}
|
||||
|
||||
:deep(.ant-table-tbody > tr:hover > td) {
|
||||
background: rgb(202, 202, 202);
|
||||
}
|
||||
}
|
||||
}
|
||||
:deep(.subscriptionPlan_modal) {
|
||||
.ant-modal-body {
|
||||
height: calc(65rem * 1.2);
|
||||
// height: calc(65rem * 1.2);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 2.5rem 3rem;
|
||||
|
||||
@@ -1530,7 +1530,22 @@ export default {
|
||||
Relight: '打光',
|
||||
ChatRobot: '对话生成',
|
||||
Yes: '是',
|
||||
No: '否'
|
||||
No: '否',
|
||||
SubscribePlan: '订阅计划',
|
||||
SwitchPlanSuccess: '切换订阅计划成功',
|
||||
SwitchPlanFailed: '切换订阅计划失败',
|
||||
NoPlanSelected: '请先选择订阅计划',
|
||||
PlanNameRequired: '请输入计划名称',
|
||||
PlanNotFound: '计划不存在',
|
||||
RenamePlanSuccess: '重命名成功',
|
||||
RenamePlanFailed: '重命名失败',
|
||||
RenamePlan: '重命名订阅计划',
|
||||
PlanName: '计划名称',
|
||||
InputPlanName: '请输入计划名称',
|
||||
OK: '确定',
|
||||
Cancel: '取消',
|
||||
SelectPlan: '选择计划',
|
||||
AllPlan: '全部'
|
||||
},
|
||||
Login: {
|
||||
Login: '登录',
|
||||
|
||||
@@ -1574,7 +1574,22 @@ export default {
|
||||
Relight: 'Relight',
|
||||
ChatRobot: 'ChatRobot',
|
||||
Yes: 'Yes',
|
||||
No: 'No'
|
||||
No: 'No',
|
||||
SubscribePlan:'Subscribe Plan',
|
||||
SwitchPlanSuccess: 'Switch subscription plan successfully',
|
||||
SwitchPlanFailed: 'Failed to switch subscription plan',
|
||||
NoPlanSelected: 'Please select a subscription plan first',
|
||||
PlanNameRequired: 'Please enter plan name',
|
||||
PlanNotFound: 'Plan not found',
|
||||
RenamePlanSuccess: 'Rename successfully',
|
||||
RenamePlanFailed: 'Failed to rename',
|
||||
RenamePlan: 'Rename Subscription Plan',
|
||||
PlanName: 'Plan Name',
|
||||
InputPlanName: 'Please enter plan name',
|
||||
OK: 'OK',
|
||||
Cancel: 'Cancel',
|
||||
SelectPlan: 'Select Plan',
|
||||
AllPlan:'All'
|
||||
},
|
||||
Login: {
|
||||
Login: 'Login',
|
||||
|
||||
@@ -80,12 +80,14 @@ const userHabit : Module<UserHabit,RootState> = {
|
||||
systemList:[],
|
||||
expireTime:null,
|
||||
language:'',
|
||||
organizationId: null,
|
||||
timeData:{
|
||||
isExpiration:false,
|
||||
text:''
|
||||
},
|
||||
subscriptionType:null,
|
||||
subscriptionId:null,
|
||||
subscriptionPlanId:null,
|
||||
usernameModify:0,
|
||||
occupation:'',//职业
|
||||
country:'',//国家
|
||||
@@ -195,12 +197,14 @@ const userHabit : Module<UserHabit,RootState> = {
|
||||
systemList:[],
|
||||
expireTime:null,
|
||||
language:'',
|
||||
organizationId: null,
|
||||
timeData:{
|
||||
isExpiration:false,
|
||||
text:''
|
||||
},
|
||||
subscriptionType:null,
|
||||
subscriptionId:null,
|
||||
subscriptionPlanId:null,
|
||||
//是否是affiliate用户
|
||||
affiliate:false,
|
||||
usernameModify:0,
|
||||
@@ -230,6 +234,7 @@ const userHabit : Module<UserHabit,RootState> = {
|
||||
state.userDetail.avatar = data.avatar//头像
|
||||
state.userDetail.country = data.country//头像
|
||||
state.userDetail.occupation = data.occupation//头像
|
||||
state.userDetail.organizationId = data.organizationId //所属组织
|
||||
state.userDetail.usernameModify = data.usernameModify//当月剩余修改次数
|
||||
state.userDetail.isBeginner = data.isBeginner == 1 ? true : false;//是否完成新手指引
|
||||
state.userDetail.title = data.title//当月剩余修改次数
|
||||
@@ -315,6 +320,7 @@ const userHabit : Module<UserHabit,RootState> = {
|
||||
state.userDetail.status = data.status//当前订阅类型
|
||||
// state.userDetail.status = data.status || 'active'//当前订阅类型
|
||||
state.userDetail.subscriptionId = data.subscriptionId//最新订阅id
|
||||
state.userDetail.subscriptionPlanId = data.subscriptionPlanId//最新订阅计划id
|
||||
},
|
||||
setUpgradePlan(state,data){
|
||||
state.upgradePlan.value = data
|
||||
|
||||
@@ -130,382 +130,384 @@ axios.interceptors.response.use((res) =>{
|
||||
return Promise.reject(data_new);
|
||||
});
|
||||
export const Https = {
|
||||
httpUrls: {
|
||||
interfaceUrl: '',
|
||||
parseGoogleCredential:'/api/third/party/parseGoogleCredential',//谷歌登录注册
|
||||
parseWeChatCode:'/api/third/party/parseWeChatCode',//微信登录
|
||||
accountIsLogin:'/api/account/isLogin', //判断用户是否登录
|
||||
accountLogin:`/api/account/login`, //账号密码登录接口
|
||||
organizationNameSearch:`/api/account/organizationNameSearch`, //查询学校或者企业版名字
|
||||
getUserLanguage:`/api/account/getUserLanguage`, //获取当前用户语言
|
||||
changeUserLanguage:`/api/account/changeUserLanguage`, //切换用户当前语言
|
||||
uploadAvatar:`/api/account/uploadAvatar`, //修改头像
|
||||
editUserName:`/api/account/editUserName`, //修改用户名
|
||||
updateUserInfo:`/api/account/updateUserInfo`, //修改国家职业
|
||||
accountDetail:`/api/account/getAccountDetail`, //用户详细信息
|
||||
httpUrls: {
|
||||
interfaceUrl: '',
|
||||
parseGoogleCredential: '/api/third/party/parseGoogleCredential', //谷歌登录注册
|
||||
parseWeChatCode: '/api/third/party/parseWeChatCode', //微信登录
|
||||
accountIsLogin: '/api/account/isLogin', //判断用户是否登录
|
||||
accountLogin: `/api/account/login`, //账号密码登录接口
|
||||
organizationNameSearch: `/api/account/organizationNameSearch`, //查询学校或者企业版名字
|
||||
getUserLanguage: `/api/account/getUserLanguage`, //获取当前用户语言
|
||||
changeUserLanguage: `/api/account/changeUserLanguage`, //切换用户当前语言
|
||||
uploadAvatar: `/api/account/uploadAvatar`, //修改头像
|
||||
editUserName: `/api/account/editUserName`, //修改用户名
|
||||
updateUserInfo: `/api/account/updateUserInfo`, //修改国家职业
|
||||
accountDetail: `/api/account/getAccountDetail`, //用户详细信息
|
||||
|
||||
trialUserLogout:`/api/account/trialUserLogout`, //试用用户退出登录接口
|
||||
completeGuidancet:`/api/account/completeGuidance`, //用户指引结束
|
||||
trialUserLogout: `/api/account/trialUserLogout`, //试用用户退出登录接口
|
||||
completeGuidancet: `/api/account/completeGuidance`, //用户指引结束
|
||||
|
||||
getExpiredTime:`/api/account/getExpiredTime`, //获取用户到期时间
|
||||
getExpiredTime: `/api/account/getExpiredTime`, //获取用户到期时间
|
||||
|
||||
addNoLoginRequired:`/api/third/party/addNoLoginRequired`, //机房用户注册
|
||||
deleteNoLoginRequired:`/api/third/party/deleteNoLoginRequired`, //机房用户注销
|
||||
noLoginRequired:`api/account/noLoginRequired`, //机房用户登录
|
||||
existNoLoginRequired:`/api/third/party/existNoLoginRequired`, //获取唯一标识是否存在
|
||||
addNoLoginRequired: `/api/third/party/addNoLoginRequired`, //机房用户注册
|
||||
deleteNoLoginRequired: `/api/third/party/deleteNoLoginRequired`, //机房用户注销
|
||||
noLoginRequired: `api/account/noLoginRequired`, //机房用户登录
|
||||
existNoLoginRequired: `/api/third/party/existNoLoginRequired`, //获取唯一标识是否存在
|
||||
|
||||
deleteNoLoginRequiredNew:`/api/third/party/deleteNoLoginRequiredNew`, //机房用户注销
|
||||
addNoLoginRequiredNew:`api/third/party/addNoLoginRequiredNew`, //机房用户注册
|
||||
updateNoLoginRequiredNew:`api/third/party/updateNoLoginRequiredNew`, //机房用户更新
|
||||
|
||||
endpoint:`api/third/party/your-secured-endpoint`, //获取唯一标识是否存在
|
||||
|
||||
deleteNoLoginRequiredNew: `/api/third/party/deleteNoLoginRequiredNew`, //机房用户注销
|
||||
addNoLoginRequiredNew: `api/third/party/addNoLoginRequiredNew`, //机房用户注册
|
||||
updateNoLoginRequiredNew: `api/third/party/updateNoLoginRequiredNew`, //机房用户更新
|
||||
|
||||
designWorksRegister:'/api/account/designWorksRegister', //注册
|
||||
designWorksRegisterCode:'/api/account/designWorksRegisterCode', //注册
|
||||
|
||||
endpoint: `api/third/party/your-secured-endpoint`, //获取唯一标识是否存在
|
||||
|
||||
preLogin:'/api/account/preLogin',//预先登入
|
||||
schoolLogin:'/api/account/schoolLogin',//学校管理员登录
|
||||
enterpriseLogin:'/api/account/enterpriseLogin',//企业管理员登录
|
||||
accountSendEmail:`/api/account/sendEmail`, //发送邮件
|
||||
accountResetPwd:'/api/account/resetPwd', //忘记密码修改
|
||||
accountLogout:'/api/account/logout',//登出
|
||||
accountBindEmail:'/api/account/bindEmail', //绑定邮箱
|
||||
bindGoogle:'/api/account/bindGoogle', //绑定谷歌
|
||||
bindWeChat:'/api/account/bindWeChat', //绑定微信
|
||||
unbindGoogle:`/api/account/unbindGoogle`, //取消绑定谷歌
|
||||
unbindWeChat:'/api/account/unbindWeChat', //取消绑定微信
|
||||
elementGeneratePrint:'/api/element/generatePrint', //生成印花
|
||||
elementSavePrint:'/api/element/savePrint',//保存印花
|
||||
getRgbByTcx:'/api/element/getRgbByTcx', // 通过hsv值获取潘通信息
|
||||
getRgbByHsv:'/api/element/getRgbByHsv', //通过hsv值获取潘通信息
|
||||
elementDelete:'/api/element/delete', //删除上传的图片
|
||||
designCollection:`/api/design/designCollection`, //设计 Conllection
|
||||
reDesignCollection:`/api/design/reDesignCollection`,//重新设计 Conllection
|
||||
countDesignProcess:'/api/design/countDesignProcess', //统计design进度
|
||||
getDesignResult:'/api/design/getDesignResult', //查询design结果
|
||||
designSort:`/api/design/sort`, //design排序
|
||||
collectionLikeUpdate:`/api/history/collectionLikeUpdate`, //赋值排序
|
||||
designWorksRegister: '/api/account/designWorksRegister', //注册
|
||||
designWorksRegisterCode: '/api/account/designWorksRegisterCode', //注册
|
||||
|
||||
designProcess:`/api/design/designProcess`, //统计design进度
|
||||
designGetModel:`/api/design/getModel`, //导出获取模特链接
|
||||
preLogin: '/api/account/preLogin', //预先登入
|
||||
schoolLogin: '/api/account/schoolLogin', //学校管理员登录
|
||||
enterpriseLogin: '/api/account/enterpriseLogin', //企业管理员登录
|
||||
accountSendEmail: `/api/account/sendEmail`, //发送邮件
|
||||
accountResetPwd: '/api/account/resetPwd', //忘记密码修改
|
||||
accountLogout: '/api/account/logout', //登出
|
||||
accountBindEmail: '/api/account/bindEmail', //绑定邮箱
|
||||
bindGoogle: '/api/account/bindGoogle', //绑定谷歌
|
||||
bindWeChat: '/api/account/bindWeChat', //绑定微信
|
||||
unbindGoogle: `/api/account/unbindGoogle`, //取消绑定谷歌
|
||||
unbindWeChat: '/api/account/unbindWeChat', //取消绑定微信
|
||||
elementGeneratePrint: '/api/element/generatePrint', //生成印花
|
||||
elementSavePrint: '/api/element/savePrint', //保存印花
|
||||
getRgbByTcx: '/api/element/getRgbByTcx', // 通过hsv值获取潘通信息
|
||||
getRgbByHsv: '/api/element/getRgbByHsv', //通过hsv值获取潘通信息
|
||||
elementDelete: '/api/element/delete', //删除上传的图片
|
||||
designCollection: `/api/design/designCollection`, //设计 Conllection
|
||||
reDesignCollection: `/api/design/reDesignCollection`, //重新设计 Conllection
|
||||
countDesignProcess: '/api/design/countDesignProcess', //统计design进度
|
||||
getDesignResult: '/api/design/getDesignResult', //查询design结果
|
||||
designSort: `/api/design/sort`, //design排序
|
||||
collectionLikeUpdate: `/api/history/collectionLikeUpdate`, //赋值排序
|
||||
|
||||
//充值相关
|
||||
productList:`/api/product/list`, //获取商品列表
|
||||
payAlipay:`/api/ali-pay/trade/page/pay`, //支付宝确认支付
|
||||
payAlipayHK:`/api/alipay-hk/createOrder`, //香港支付宝确认支付
|
||||
payStripe:`/api/stripe/createOrder`, //Stripe支付
|
||||
payPaypal:`/api/paypal/trade`, //paypal确认支付
|
||||
getCredits:`/api/credits/getCredits`, //查询用户积分
|
||||
designProcess: `/api/design/designProcess`, //统计design进度
|
||||
designGetModel: `/api/design/getModel`, //导出获取模特链接
|
||||
|
||||
cancelSubscription:`/api/stripe/cancelSubscription`, //取消订阅
|
||||
|
||||
orderInfoList:`/api/order-info/list`, //查询订单列表
|
||||
getCreditsDetail:`/api/credits/getCreditsDetail`, //查询积分列表
|
||||
tradeRefundAlipay:`/api/ali-pay/trade/refund`, //支付宝退款
|
||||
tradeRefundPaypal:`/api/paypal/trade/refund`, //paypal退款
|
||||
//充值相关
|
||||
productList: `/api/product/list`, //获取商品列表
|
||||
payAlipay: `/api/ali-pay/trade/page/pay`, //支付宝确认支付
|
||||
payAlipayHK: `/api/alipay-hk/createOrder`, //香港支付宝确认支付
|
||||
payStripe: `/api/stripe/createOrder`, //Stripe支付
|
||||
payPaypal: `/api/paypal/trade`, //paypal确认支付
|
||||
getCredits: `/api/credits/getCredits`, //查询用户积分
|
||||
|
||||
tradeQuery:`/api/ali-pay/trade/query/{orderNo}`, //查询订单状态
|
||||
|
||||
getRgbByHsvBatch:`/api/element/getRgbByHsvBatch`, //通过hsv值数组批量获取潘通信息
|
||||
designLike:`/api/design/like`, //Design Like
|
||||
designDislike: `/api/design/dislike`, //Design Dislike
|
||||
queryUserGroup:`/api/history/queryUserGroup`, //History用户分页分组列表
|
||||
deleteUserGroup:`/api/history/deleteUserGroup`, //History删除用户分组
|
||||
updateUserGroupName:`/api/history/updateUserGroupName`, //History修改用户分组名
|
||||
projectSaveOrUpdate:`/api/project/saveOrUpdate`, //History修改用户分组名
|
||||
historyChoose:`/api/history/choose`, //History choose
|
||||
getDesignDetail:`/api/design/detail/getDetail`,//查询design详情
|
||||
addSysSketchToLibrary:`/api/library/addSysSketchToLibrary`,//把系统衣服添加的library
|
||||
designSingleWithGradient:`/api/design/detail/designSingleWithGradient`,//查询需要更新mask列表
|
||||
getNextSysElement:'/api/design/detail/getNextSysElement',//切换系统的element
|
||||
detailPrintDot:'/api/design/detail/printDot',//print打点预览
|
||||
designSingle:`/api/design/detail/designSingle`,//单个design
|
||||
queryLibraryPage:`/api/library/queryLibraryPage`,//Library分页列表
|
||||
libraryUpload:`/api/library/upload`, // Library文件上传
|
||||
setSketchLibrary:`/api/library/updateLibraryLevel2Type`, // 修改图片类型
|
||||
updateElementLevel2Type:`/api/element/updateElementLevel2Type`, // 修改拼贴上传的衣服类型
|
||||
|
||||
queryClassification:`/api/classification/queryClassification`,//标签类别查询
|
||||
classificationSaveOrUpdate:`/api/classification/saveOrUpdate`,//标签类别新增修改
|
||||
classificationDelete:`/api/classification/delete`,//标签类别新增修改
|
||||
relationLibrary:`/api/classification/relationLibrary`,//标签类别新增修改
|
||||
getRelClassificationIdList:`/api/classification/getRelClassificationIdList`,//标签类别新增修改
|
||||
getRelPublicClassificationIdList:`/api/classification/getRelPublicClassificationIdList`,//多选获取公共标签
|
||||
editRelPublicClassificationIdList:`/api/classification/editRelPublicClassificationIdList`,//多选修改公共标签
|
||||
|
||||
//模块化
|
||||
llmStream:`/api/llm/streamNew`,//聊天
|
||||
// llmStream:`/api/llm/stream`,//聊天
|
||||
chatCreateProject:`/api/llm/chatCreateProject`,//聊天创建项目
|
||||
getChatHistory:`/api/llm/getChatHistory`,//获取聊天历史记录
|
||||
llmUploadFile:`/api/llm/uploadFile`,//聊天上传文件
|
||||
|
||||
saveOrUpdate:`/api/project/saveOrUpdate`,//模块化新增修改
|
||||
getModuleContent:`/api/project/getModuleContent`,//获取模块内容
|
||||
saveModuleContent:`/api/project/saveModuleContent`,//储存模块内容
|
||||
historyProject:`/api/project/page`,//项目记录
|
||||
projectDetail:`/api/project/delete`,//删除项目
|
||||
//3d
|
||||
threeDPage:`/api/project/threeDPage`,
|
||||
downloadZip:`/api/project/downloadZip`,//下载zip
|
||||
getThreeDSize:`/api/project/getThreeDSize`,//下载列表
|
||||
getLayoutDetail:`/api/project/getLayoutDetail`,//获取3d详情
|
||||
getThreeDGlb:`/api/project/getThreeDGlb`,
|
||||
selectHistoryProject:`/api/project/choose`,//选择项目
|
||||
getMannequinDetail:`/api/project/getMannequinDetail`,//模块化查看模特点位
|
||||
modifyProportion:`/api/generate/modifyProportion`,//模特拉伸
|
||||
addSysModelToLib:`/api/library/addSysModelToLib`,
|
||||
poselikeOrDisike:`/api/generate/likeOrDislike`,//postTransform like
|
||||
getAllPose:`/api/generate/getAllPose`,//获取动作
|
||||
|
||||
cancelSubscription: `/api/stripe/cancelSubscription`, //取消订阅
|
||||
|
||||
|
||||
//拼贴
|
||||
genSketchRecon:`/api/generate/genSketchRecon`,
|
||||
saveReconCanvas:`/api/generate/saveReconCanvas`,
|
||||
|
||||
//动作变换
|
||||
poseTransform:`/api/generate/poseTransform`,
|
||||
poseTransformResult:`/api/generate/poseTransformResult`,
|
||||
|
||||
batchUpdateLibraryName:'/api/library/batchUpdateLibraryName',//Library修改用户文件名
|
||||
batchDeleteLibrary:'/api/library/batchDeleteLibrary',//删除library
|
||||
queryLibraryTopAndBottomPage:'/api/library/queryLibraryTopAndBottomPage',//Library分页列表(查询top和bottom)
|
||||
saveOrEditTemplatePoint:'/api/library/saveOrEditTemplatePoint',//保存或者编辑template打点
|
||||
libraryModelsDot:'/api/library/modelsDot',//Models打点预览
|
||||
chatStreamTest:`/api/python/chatStream`,//机器人助力
|
||||
pictureLikeOrUnLike:`/api/python/pictureLikeOrUnLike`,//机器人生成图喜欢
|
||||
getBloodBars:`/api/python/getBloodBars`,//机器人血条
|
||||
//工作空间
|
||||
workspaceDetail:`/api/workspace/detail`,//用户习惯详情
|
||||
workspaceenumValues:`/api/workspace/enumValues`,//getSex
|
||||
|
||||
workspaceRemove:`/api/workspace/remove`,//删除用户习惯详情
|
||||
workspacesaveOrUpdate:`/api/workspace/saveOrUpdate`,//修改用户习惯详情
|
||||
getMannequins:`/api/workspace/getMannequins`,//模特
|
||||
getStyleList:`/api/workspace/styleList`,//获取所有风格列表
|
||||
|
||||
workspaceList:`/api/workspace/list`,
|
||||
sketchAndPrintGenerate:'/api/generate/sketchAndPrint',//sketchGenerate生成图片
|
||||
orderInfoList: `/api/order-info/list`, //查询订单列表
|
||||
getCreditsDetail: `/api/credits/getCreditsDetail`, //查询积分列表
|
||||
tradeRefundAlipay: `/api/ali-pay/trade/refund`, //支付宝退款
|
||||
tradeRefundPaypal: `/api/paypal/trade/refund`, //paypal退款
|
||||
|
||||
generatePrepare:'/api/generate/prepare',//开始生成generate图片
|
||||
generateStopWaiting:'/api/generate/stopWaiting',//取消生成
|
||||
generateResult:'/api/generate/result',//获取生成结果
|
||||
generateLike:'/api/generate/like',//喜欢ganerate图片
|
||||
generateDislike:'/api/generate/dislike',//喜欢ganerate图片
|
||||
imageToSketch:'/api/generate/imageToSketch',//成品图转为线稿
|
||||
modifySketch:'/api/generate/modifySketch',//修改画布内容并且储存
|
||||
tradeQuery: `/api/ali-pay/trade/query/{orderNo}`, //查询订单状态
|
||||
|
||||
elementUpload:`/api/element/upload`,//上传图片
|
||||
imageSegmentation:`/api/element/imageSegmentation`,//分割衣服
|
||||
convertRelightElement:`/api/history/convertRelightElement`,//toproduct复制到上传图片位置
|
||||
getRgbByHsvBatch: `/api/element/getRgbByHsvBatch`, //通过hsv值数组批量获取潘通信息
|
||||
designLike: `/api/design/like`, //Design Like
|
||||
designDislike: `/api/design/dislike`, //Design Dislike
|
||||
queryUserGroup: `/api/history/queryUserGroup`, //History用户分页分组列表
|
||||
deleteUserGroup: `/api/history/deleteUserGroup`, //History删除用户分组
|
||||
updateUserGroupName: `/api/history/updateUserGroupName`, //History修改用户分组名
|
||||
projectSaveOrUpdate: `/api/project/saveOrUpdate`, //History修改用户分组名
|
||||
historyChoose: `/api/history/choose`, //History choose
|
||||
getDesignDetail: `/api/design/detail/getDetail`, //查询design详情
|
||||
addSysSketchToLibrary: `/api/library/addSysSketchToLibrary`, //把系统衣服添加的library
|
||||
designSingleWithGradient: `/api/design/detail/designSingleWithGradient`, //查询需要更新mask列表
|
||||
getNextSysElement: '/api/design/detail/getNextSysElement', //切换系统的element
|
||||
detailPrintDot: '/api/design/detail/printDot', //print打点预览
|
||||
designSingle: `/api/design/detail/designSingle`, //单个design
|
||||
queryLibraryPage: `/api/library/queryLibraryPage`, //Library分页列表
|
||||
libraryUpload: `/api/library/upload`, // Library文件上传
|
||||
setSketchLibrary: `/api/library/updateLibraryLevel2Type`, // 修改图片类型
|
||||
updateElementLevel2Type: `/api/element/updateElementLevel2Type`, // 修改拼贴上传的衣服类型
|
||||
|
||||
// oldHis:`/oldHis/history/queryUserGroup`,//上传图片
|
||||
sketchBoardsBoundingBox:`/api/design/sketchBoardsBoundingBox`,//裁剪sketch图片
|
||||
queryClassification: `/api/classification/queryClassification`, //标签类别查询
|
||||
classificationSaveOrUpdate: `/api/classification/saveOrUpdate`, //标签类别新增修改
|
||||
classificationDelete: `/api/classification/delete`, //标签类别新增修改
|
||||
relationLibrary: `/api/classification/relationLibrary`, //标签类别新增修改
|
||||
getRelClassificationIdList: `/api/classification/getRelClassificationIdList`, //标签类别新增修改
|
||||
getRelPublicClassificationIdList: `/api/classification/getRelPublicClassificationIdList`, //多选获取公共标签
|
||||
editRelPublicClassificationIdList: `/api/classification/editRelPublicClassificationIdList`, //多选修改公共标签
|
||||
|
||||
trialOrderList:`/api/account/trialOrderList`,//获取审批列表
|
||||
switchIsAutoApproval:`/api/account/switchIsAutoApproval`,//切换是否自动审批
|
||||
getIsAutoApproval:`/api/account/getIsAutoApproval`,//获取是否自动审批
|
||||
trialOrderApproval:`/api/account/trialOrderApproval`,//通过审批
|
||||
trialOrderRefuse:`/api/account/trialOrderRefuse`,//拒绝审批
|
||||
|
||||
//管理员接口
|
||||
//查询所有试用用户
|
||||
inquiryGetTrial:`/api/inquiry/getTrial`,//查询所有试用用户
|
||||
getCities:`/api/inquiry/getCities`,//获取所有付款订单使用的国家
|
||||
getUserInfo:`/api/inquiry/getUserInfo`,//查询所有用户
|
||||
queryTransaction:`/api/inquiry/queryTransaction`,//查询交易记录
|
||||
queryTransactionDownload:`/api/inquiry/queryTransaction/download`,//导出交易记录
|
||||
createCoupon:`/api/stripe/createCoupon`,//创建优惠码
|
||||
updatePromCodeInfo:`/api/stripe/updatePromCodeInfo`,//修改优惠码
|
||||
getAllCoupons:`/api/stripe/getAllCoupons`,//查询优惠码列表
|
||||
checkCoupon:`/api/stripe/checkCoupon`,//根据优惠码获取结算后的金额
|
||||
deletePromCode:`/api/stripe/deletePromCode`,//删除优惠券
|
||||
addOrganization:`/api/inquiry/addOrganization`,//添加企业版或者教育版
|
||||
queryOrganization:`/api/inquiry/queryOrganization`,//查询企业版或者教育版
|
||||
createSubscribePlan:'/api/subscription_plan/createPlan', // 创建订阅计划
|
||||
deleteSubscribePlan: '/api/subscription_plan/deletePlan', // 删除订阅计划
|
||||
updateSubscribePlan: '/api/subscription_plan/updatePlan', // 修改订阅计划
|
||||
searchAllSubscribePlan: '/api/subscription_plan/searchByPage', // 查询所有订阅计划
|
||||
switchSubscribePlan:'/api/subscription_plan/switchSubscriptionPlan', // 切换订阅计划
|
||||
|
||||
//模块化
|
||||
llmStream: `/api/llm/streamNew`, //聊天
|
||||
// llmStream:`/api/llm/stream`,//聊天
|
||||
chatCreateProject: `/api/llm/chatCreateProject`, //聊天创建项目
|
||||
getChatHistory: `/api/llm/getChatHistory`, //获取聊天历史记录
|
||||
llmUploadFile: `/api/llm/uploadFile`, //聊天上传文件
|
||||
|
||||
//云生成
|
||||
designCloud:`/api/design/designCloud`,//创建云生成
|
||||
cloudPage:`/api/design/cloudPage`,//创建云生成
|
||||
cloudTaskDelete:`/api/design/cloudTaskDelete`,//删除云生成
|
||||
cloudTaskNameUpdate:`/api/design/cloudTaskNameUpdate`,//修改云生成名字
|
||||
getDesignCloudResult:`/api/design/getDesignCloudResult`,//查询这条云生成记录的所有内容
|
||||
saveOrUpdate: `/api/project/saveOrUpdate`, //模块化新增修改
|
||||
getModuleContent: `/api/project/getModuleContent`, //获取模块内容
|
||||
saveModuleContent: `/api/project/saveModuleContent`, //储存模块内容
|
||||
historyProject: `/api/project/page`, //项目记录
|
||||
projectDetail: `/api/project/delete`, //删除项目
|
||||
//3d
|
||||
threeDPage: `/api/project/threeDPage`,
|
||||
downloadZip: `/api/project/downloadZip`, //下载zip
|
||||
getThreeDSize: `/api/project/getThreeDSize`, //下载列表
|
||||
getLayoutDetail: `/api/project/getLayoutDetail`, //获取3d详情
|
||||
getThreeDGlb: `/api/project/getThreeDGlb`,
|
||||
selectHistoryProject: `/api/project/choose`, //选择项目
|
||||
getMannequinDetail: `/api/project/getMannequinDetail`, //模块化查看模特点位
|
||||
modifyProportion: `/api/generate/modifyProportion`, //模特拉伸
|
||||
addSysModelToLib: `/api/library/addSysModelToLib`,
|
||||
poselikeOrDisike: `/api/generate/likeOrDislike`, //postTransform like
|
||||
getAllPose: `/api/generate/getAllPose`, //获取动作
|
||||
|
||||
//企业版教育版管理员页面
|
||||
subAccountList:`/api/account/subAccountList`,//查询子账号
|
||||
addOrUpdateSubAccount:`/api/account/addOrUpdateSubAccount`,//添加子账号
|
||||
deleteSubAccount:`/api/account/deleteSubAccount`,//删除子账号
|
||||
subAccountImportExcelDownload:`/api/account/subAccountImportExcelDownload`,//批量添加模板下载模板
|
||||
exportAccountsToExcel:`/api/account/exportAccountsToExcel`,//教育版导出用户数据
|
||||
getNextSequence:`/api/project/getNextSequence`,//批量添加模板下载模板
|
||||
subAccountImport:`/api/account/subAccountImport`,//模板导入
|
||||
getGenerateFrequency:`/api/inquiry/getGenerateFrequency`,//积分使用详情
|
||||
getAllGenerateFuncName:`/api/inquiry/getAllGenerateFuncName`,//获取所有generate类型
|
||||
//拼贴
|
||||
genSketchRecon: `/api/generate/genSketchRecon`,
|
||||
saveReconCanvas: `/api/generate/saveReconCanvas`,
|
||||
|
||||
//查询某个时间内design点击次数
|
||||
getDesignStatistic:`/api/inquiry/getDesignStatistic`,//拒绝审批
|
||||
getAllQuestionnaire:`/api/inquiry/getAllQuestionnaire`,//拒绝审批
|
||||
getActiveUserFunc:`/api/inquiry/getActiveUserFunc`,//获取各模块功能
|
||||
toProductImageElementDelete:`/api/history/toProductImageElementDelete`,//删除指定模块上传的内容
|
||||
recentActiveUser:`/api/inquiry/recentActiveUser`,//获取近期活跃用户
|
||||
recentActiveUserChart:`/api/inquiry/recentActiveUserChart`,//获取近期活跃用户图表数据
|
||||
recentNewUser:`/api/inquiry/recentNewUser`,//获取近期新增用户
|
||||
recentNewUserChart:`/api/inquiry/recentNewUserChart`,//获取新增用户图表
|
||||
trialUserCountry:`/api/inquiry/trialUserCountry`,//试用用户国家-城市分布
|
||||
conversionRate:`/api/inquiry/conversionRate`,//试用用户国家-城市分布
|
||||
getAllUserId:`/api/inquiry/getAllUserId`,//获取所有用户id和Name
|
||||
adminAddUser:`/api/inquiry/addUser`,//添加用户
|
||||
modifyUser:`/api/inquiry/modifyUser`,//修改用户
|
||||
publishSysMessage:`/api/message/publishSysMessage`,//发布系统任务
|
||||
//affiliate接口
|
||||
viewsIncrease:`/api/affiliate/viewsIncrease`,//增加访问量
|
||||
affiliateRegistration:`/api/affiliate/registration`,//affiliate注册
|
||||
personalCenter:`/api/affiliate/personalCenter`,//affiliate个人中心
|
||||
affiliateList:`/api/affiliate/list`,//affiliate审批列表
|
||||
updateCommission:`/api/affiliate/updateCommission`,//编辑佣金比例
|
||||
editAffiliate:`/api/affiliate/editAffiliate`,//编辑affiliate
|
||||
getEachAffiliateGeneratedRevenue:`/api/affiliate/getEachAffiliateGeneratedRevenue`,//affiliate每个用户根据日期查询收益
|
||||
affiliateApproval:`/api/affiliate/approval`,//affiliate同意 审批
|
||||
getPersonalMonthlyIncome:`/api/affiliate/getPersonalMonthlyIncome`,//affiliate图表接口
|
||||
getReferrals:`/api/affiliate/getReferrals`,//affiliate Referral列表
|
||||
editReferral:`/api/affiliate/editReferral`,//affiliate编辑referral
|
||||
batchDeleteReferral:`/api/affiliate/batchDeleteReferral`,//affiliate删除referral
|
||||
// batchDeleteReferral:`/api/affiliate/batchDeleteReferral`,//affiliate删除referral
|
||||
|
||||
getTasksList:`/api/tasks/getList`,//获取w为执行完的所有任务
|
||||
getTasksHistory:`/api/tasks/getAllTask`,//获取所有任务列表
|
||||
prepareForSR:`/api/python/prepareForSR`,//超分
|
||||
|
||||
//动作变换
|
||||
poseTransform: `/api/generate/poseTransform`,
|
||||
poseTransformResult: `/api/generate/poseTransformResult`,
|
||||
|
||||
//作品广场
|
||||
publish:`/api/portfolio/publish`,//发布作品到作品广场
|
||||
getPorfolio:`/api/portfolio/page`,//查询作品广场
|
||||
getPorfolioDetail:`/api/portfolio/detail`,//查询作品广场作品详情
|
||||
setPorfolioChoose:`/api/portfolio/choose`,//二次创作
|
||||
portfolioLike:`/api/portfolio/like`,//作品广场点赞
|
||||
portfolioNoLike:`/api/portfolio/unlike`,//作品广场取消点赞
|
||||
portfolioComment:`/api/portfolio/comment`,//作品广场评论
|
||||
portfolioCommentPage:`/api/portfolio/commentPage`,//作品广场评论列表
|
||||
commentDelete:`/api/portfolio/commentDelete`,//删除评论
|
||||
porfolioDelete:`/api/portfolio/delete`,//删除作品
|
||||
porfolioFollow:`/api/portfolio/follow`,//删除作品
|
||||
porfolioFollow:`/api/portfolio/follow`,//关注
|
||||
porfolioCancelFollow:`/api/portfolio/cancelFollow`,//取消关注
|
||||
porfolioGetFolloweeList:`/api/portfolio/getFolloweeList`,//获取关注列表
|
||||
porfolioGetFollowerList:`/api/portfolio/getFollowerList`,//获取粉丝列表
|
||||
|
||||
//product生成
|
||||
toProduct:`/api/history/toProduct`,//开始生成
|
||||
toProductImageResult:`/api/history/toProductImageResult`,//获取结果
|
||||
toProductImageElementUpload:`/api/history/toProductImageElementUpload`,//上传
|
||||
historyDeleteResult:`/api/history/deleteResult`,//relight toproduct删除
|
||||
generateDeleteResult:`/api/generate/deleteResult`,//pose删除
|
||||
|
||||
productImageLike:`/api/history/productImageLike`,//like生成结果
|
||||
productImageUnLike:`/api/history/productImageUnLike`,//取消like生成结果
|
||||
productImageLikeList:`/api/history/productImageLikeList`,//like生成结果
|
||||
|
||||
//打光
|
||||
relight:`/api/history/relight`,//开始生成
|
||||
relightResult:`/api/history/relightResult`,//开始生成
|
||||
|
||||
//保存画布
|
||||
canvasElementUpload:`/api/history/canvasElementUpload`,//画布上传临时图片
|
||||
exportSave:`/api/history/exportSave`,//保存画布
|
||||
exportSearch:`/api/history/exportSearch`,//保存画布
|
||||
batchUpdateLibraryName: '/api/library/batchUpdateLibraryName', //Library修改用户文件名
|
||||
batchDeleteLibrary: '/api/library/batchDeleteLibrary', //删除library
|
||||
queryLibraryTopAndBottomPage: '/api/library/queryLibraryTopAndBottomPage', //Library分页列表(查询top和bottom)
|
||||
saveOrEditTemplatePoint: '/api/library/saveOrEditTemplatePoint', //保存或者编辑template打点
|
||||
libraryModelsDot: '/api/library/modelsDot', //Models打点预览
|
||||
chatStreamTest: `/api/python/chatStream`, //机器人助力
|
||||
pictureLikeOrUnLike: `/api/python/pictureLikeOrUnLike`, //机器人生成图喜欢
|
||||
getBloodBars: `/api/python/getBloodBars`, //机器人血条
|
||||
//工作空间
|
||||
workspaceDetail: `/api/workspace/detail`, //用户习惯详情
|
||||
workspaceenumValues: `/api/workspace/enumValues`, //getSex
|
||||
|
||||
//活动
|
||||
activity:`/api/account/activity`,
|
||||
workspaceRemove: `/api/workspace/remove`, //删除用户习惯详情
|
||||
workspacesaveOrUpdate: `/api/workspace/saveOrUpdate`, //修改用户习惯详情
|
||||
getMannequins: `/api/workspace/getMannequins`, //模特
|
||||
getStyleList: `/api/workspace/styleList`, //获取所有风格列表
|
||||
|
||||
//bradDNA
|
||||
brandLogoUpload:`/api/history/brandLogoUpload`,//上传bradDNA
|
||||
brandDNAGenerate:`/api/history/brandDNAGenerate`,//上传bradDNA
|
||||
brandDNAUpload:`/api/history/brandDNAUpload`,//上传DNA图片
|
||||
getInitializeProgress:`/api/history/getInitializeProgress`,//获取brand进度
|
||||
brandDNADelete:`/api/history/brandDNADelete`,//删除brandDna
|
||||
|
||||
brandDNAPage:`/api/history/brandDNAPage`,//brand列表
|
||||
brandDNASaveOrUpdate:`/api/history/brandDNASaveOrUpdate`,//提交个人信息
|
||||
productImageInitialize:`/api/history/productImageInitialize`,//产品识别
|
||||
//调查问卷
|
||||
questionnaire:`/api/account/questionnaire`,//保存画布
|
||||
workspaceList: `/api/workspace/list`,
|
||||
sketchAndPrintGenerate: '/api/generate/sketchAndPrint', //sketchGenerate生成图片
|
||||
|
||||
//消息系统
|
||||
getUnreadCount:`/api/message/getUnreadCount`,//获取未读消息
|
||||
setReadStatus:`/api/message/setReadStatus`,//设置消息已读
|
||||
getHistoryNotification:`/api/message/getHistoryNotification`,//获取历史消息
|
||||
oneClickRead:`/api/message/oneClickRead`,//全部设为已读
|
||||
personalHomepage:`/api/account/personalHomepage`,//获取个人主页信息
|
||||
refreshMinioUrl:`/api/third/party/refreshMinioUrl`,//获取可以使用的minio地址
|
||||
|
||||
},
|
||||
generatePrepare: '/api/generate/prepare', //开始生成generate图片
|
||||
generateStopWaiting: '/api/generate/stopWaiting', //取消生成
|
||||
generateResult: '/api/generate/result', //获取生成结果
|
||||
generateLike: '/api/generate/like', //喜欢ganerate图片
|
||||
generateDislike: '/api/generate/dislike', //喜欢ganerate图片
|
||||
imageToSketch: '/api/generate/imageToSketch', //成品图转为线稿
|
||||
modifySketch: '/api/generate/modifySketch', //修改画布内容并且储存
|
||||
|
||||
axiosGet(url,config) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if(isLoginTime && url != '/api/portfolio/page') {
|
||||
resolve('')
|
||||
return
|
||||
}
|
||||
axios.get(url,config).then(response => {
|
||||
resolve(response)
|
||||
}).catch((error) => {
|
||||
reject(error)
|
||||
})
|
||||
});
|
||||
},
|
||||
elementUpload: `/api/element/upload`, //上传图片
|
||||
imageSegmentation: `/api/element/imageSegmentation`, //分割衣服
|
||||
convertRelightElement: `/api/history/convertRelightElement`, //toproduct复制到上传图片位置
|
||||
|
||||
axiosPut(url, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if(isLoginTime && url != '/api/portfolio/page') {
|
||||
resolve('')
|
||||
return
|
||||
}
|
||||
axios.put(url, data).then(response => {
|
||||
resolve(response)
|
||||
}).catch((error) => {
|
||||
reject(error)
|
||||
})
|
||||
});
|
||||
},
|
||||
// oldHis:`/oldHis/history/queryUserGroup`,//上传图片
|
||||
sketchBoardsBoundingBox: `/api/design/sketchBoardsBoundingBox`, //裁剪sketch图片
|
||||
|
||||
axiosPost(url, data,config) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if(isLoginTime && url != '/api/portfolio/page') {
|
||||
resolve('')
|
||||
return
|
||||
}
|
||||
axios.post(url, data,config).then(response => {
|
||||
resolve(response)
|
||||
}).catch((error) => {
|
||||
reject(error)
|
||||
})
|
||||
});
|
||||
},
|
||||
trialOrderList: `/api/account/trialOrderList`, //获取审批列表
|
||||
switchIsAutoApproval: `/api/account/switchIsAutoApproval`, //切换是否自动审批
|
||||
getIsAutoApproval: `/api/account/getIsAutoApproval`, //获取是否自动审批
|
||||
trialOrderApproval: `/api/account/trialOrderApproval`, //通过审批
|
||||
trialOrderRefuse: `/api/account/trialOrderRefuse`, //拒绝审批
|
||||
|
||||
axiosDelete(url, newData) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if(isLoginTime && url != '/api/portfolio/page') {
|
||||
resolve('')
|
||||
return
|
||||
}
|
||||
axios.delete(url,{data:newData}).then(response => {
|
||||
resolve(response)
|
||||
}).catch((error) => {
|
||||
reject(error)
|
||||
})
|
||||
});
|
||||
},
|
||||
//管理员接口
|
||||
//查询所有试用用户
|
||||
inquiryGetTrial: `/api/inquiry/getTrial`, //查询所有试用用户
|
||||
getCities: `/api/inquiry/getCities`, //获取所有付款订单使用的国家
|
||||
getUserInfo: `/api/inquiry/getUserInfo`, //查询所有用户
|
||||
queryTransaction: `/api/inquiry/queryTransaction`, //查询交易记录
|
||||
queryTransactionDownload: `/api/inquiry/queryTransaction/download`, //导出交易记录
|
||||
createCoupon: `/api/stripe/createCoupon`, //创建优惠码
|
||||
updatePromCodeInfo: `/api/stripe/updatePromCodeInfo`, //修改优惠码
|
||||
getAllCoupons: `/api/stripe/getAllCoupons`, //查询优惠码列表
|
||||
checkCoupon: `/api/stripe/checkCoupon`, //根据优惠码获取结算后的金额
|
||||
deletePromCode: `/api/stripe/deletePromCode`, //删除优惠券
|
||||
addOrganization: `/api/inquiry/addOrganization`, //添加企业版或者教育版
|
||||
queryOrganization: `/api/inquiry/queryOrganization`, //查询企业版或者教育版
|
||||
createSubscribePlan: '/api/subscription_plan/createPlan', // 创建订阅计划
|
||||
deleteSubscribePlan: '/api/subscription_plan/deletePlan', // 删除订阅计划
|
||||
updateSubscribePlan: '/api/subscription_plan/updatePlan', // 修改订阅计划
|
||||
searchAllSubscribePlan: '/api/subscription_plan/searchByPage', // 分页查询所有订阅计划
|
||||
searchSubscribeByOrg: '/api/subscription_plan/searchByOrganizationIdAndStatus', // 不分页查询
|
||||
switchSubscribePlan: '/api/subscription_plan/switchSubscriptionPlan', // 切换管理员订阅计划
|
||||
switchSubAccountSubscribePlan: '/api/subscription_plan/switchSubAccSubscriptionPlan', // 切换子账号订阅计划
|
||||
|
||||
|
||||
//云生成
|
||||
designCloud: `/api/design/designCloud`, //创建云生成
|
||||
cloudPage: `/api/design/cloudPage`, //创建云生成
|
||||
cloudTaskDelete: `/api/design/cloudTaskDelete`, //删除云生成
|
||||
cloudTaskNameUpdate: `/api/design/cloudTaskNameUpdate`, //修改云生成名字
|
||||
getDesignCloudResult: `/api/design/getDesignCloudResult`, //查询这条云生成记录的所有内容
|
||||
|
||||
//企业版教育版管理员页面
|
||||
subAccountList: `/api/account/subAccountList`, //查询子账号
|
||||
addOrUpdateSubAccount: `/api/account/addOrUpdateSubAccount`, //添加子账号
|
||||
deleteSubAccount: `/api/account/deleteSubAccount`, //删除子账号
|
||||
subAccountImportExcelDownload: `/api/account/subAccountImportExcelDownload`, //批量添加模板下载模板
|
||||
exportAccountsToExcel: `/api/account/exportAccountsToExcel`, //教育版导出用户数据
|
||||
getNextSequence: `/api/project/getNextSequence`, //批量添加模板下载模板
|
||||
subAccountImport: `/api/account/subAccountImport`, //模板导入
|
||||
getGenerateFrequency: `/api/inquiry/getGenerateFrequency`, //积分使用详情
|
||||
getAllGenerateFuncName: `/api/inquiry/getAllGenerateFuncName`, //获取所有generate类型
|
||||
|
||||
//查询某个时间内design点击次数
|
||||
getDesignStatistic: `/api/inquiry/getDesignStatistic`, //拒绝审批
|
||||
getAllQuestionnaire: `/api/inquiry/getAllQuestionnaire`, //拒绝审批
|
||||
getActiveUserFunc: `/api/inquiry/getActiveUserFunc`, //获取各模块功能
|
||||
toProductImageElementDelete: `/api/history/toProductImageElementDelete`, //删除指定模块上传的内容
|
||||
recentActiveUser: `/api/inquiry/recentActiveUser`, //获取近期活跃用户
|
||||
recentActiveUserChart: `/api/inquiry/recentActiveUserChart`, //获取近期活跃用户图表数据
|
||||
recentNewUser: `/api/inquiry/recentNewUser`, //获取近期新增用户
|
||||
recentNewUserChart: `/api/inquiry/recentNewUserChart`, //获取新增用户图表
|
||||
trialUserCountry: `/api/inquiry/trialUserCountry`, //试用用户国家-城市分布
|
||||
conversionRate: `/api/inquiry/conversionRate`, //试用用户国家-城市分布
|
||||
getAllUserId: `/api/inquiry/getAllUserId`, //获取所有用户id和Name
|
||||
adminAddUser: `/api/inquiry/addUser`, //添加用户
|
||||
modifyUser: `/api/inquiry/modifyUser`, //修改用户
|
||||
publishSysMessage: `/api/message/publishSysMessage`, //发布系统任务
|
||||
//affiliate接口
|
||||
viewsIncrease: `/api/affiliate/viewsIncrease`, //增加访问量
|
||||
affiliateRegistration: `/api/affiliate/registration`, //affiliate注册
|
||||
personalCenter: `/api/affiliate/personalCenter`, //affiliate个人中心
|
||||
affiliateList: `/api/affiliate/list`, //affiliate审批列表
|
||||
updateCommission: `/api/affiliate/updateCommission`, //编辑佣金比例
|
||||
editAffiliate: `/api/affiliate/editAffiliate`, //编辑affiliate
|
||||
getEachAffiliateGeneratedRevenue: `/api/affiliate/getEachAffiliateGeneratedRevenue`, //affiliate每个用户根据日期查询收益
|
||||
affiliateApproval: `/api/affiliate/approval`, //affiliate同意 审批
|
||||
getPersonalMonthlyIncome: `/api/affiliate/getPersonalMonthlyIncome`, //affiliate图表接口
|
||||
getReferrals: `/api/affiliate/getReferrals`, //affiliate Referral列表
|
||||
editReferral: `/api/affiliate/editReferral`, //affiliate编辑referral
|
||||
batchDeleteReferral: `/api/affiliate/batchDeleteReferral`, //affiliate删除referral
|
||||
// batchDeleteReferral:`/api/affiliate/batchDeleteReferral`,//affiliate删除referral
|
||||
|
||||
getTasksList: `/api/tasks/getList`, //获取w为执行完的所有任务
|
||||
getTasksHistory: `/api/tasks/getAllTask`, //获取所有任务列表
|
||||
prepareForSR: `/api/python/prepareForSR`, //超分
|
||||
|
||||
//作品广场
|
||||
publish: `/api/portfolio/publish`, //发布作品到作品广场
|
||||
getPorfolio: `/api/portfolio/page`, //查询作品广场
|
||||
getPorfolioDetail: `/api/portfolio/detail`, //查询作品广场作品详情
|
||||
setPorfolioChoose: `/api/portfolio/choose`, //二次创作
|
||||
portfolioLike: `/api/portfolio/like`, //作品广场点赞
|
||||
portfolioNoLike: `/api/portfolio/unlike`, //作品广场取消点赞
|
||||
portfolioComment: `/api/portfolio/comment`, //作品广场评论
|
||||
portfolioCommentPage: `/api/portfolio/commentPage`, //作品广场评论列表
|
||||
commentDelete: `/api/portfolio/commentDelete`, //删除评论
|
||||
porfolioDelete: `/api/portfolio/delete`, //删除作品
|
||||
porfolioFollow: `/api/portfolio/follow`, //删除作品
|
||||
porfolioFollow: `/api/portfolio/follow`, //关注
|
||||
porfolioCancelFollow: `/api/portfolio/cancelFollow`, //取消关注
|
||||
porfolioGetFolloweeList: `/api/portfolio/getFolloweeList`, //获取关注列表
|
||||
porfolioGetFollowerList: `/api/portfolio/getFollowerList`, //获取粉丝列表
|
||||
|
||||
//product生成
|
||||
toProduct: `/api/history/toProduct`, //开始生成
|
||||
toProductImageResult: `/api/history/toProductImageResult`, //获取结果
|
||||
toProductImageElementUpload: `/api/history/toProductImageElementUpload`, //上传
|
||||
historyDeleteResult: `/api/history/deleteResult`, //relight toproduct删除
|
||||
generateDeleteResult: `/api/generate/deleteResult`, //pose删除
|
||||
|
||||
productImageLike: `/api/history/productImageLike`, //like生成结果
|
||||
productImageUnLike: `/api/history/productImageUnLike`, //取消like生成结果
|
||||
productImageLikeList: `/api/history/productImageLikeList`, //like生成结果
|
||||
|
||||
//打光
|
||||
relight: `/api/history/relight`, //开始生成
|
||||
relightResult: `/api/history/relightResult`, //开始生成
|
||||
|
||||
//保存画布
|
||||
canvasElementUpload: `/api/history/canvasElementUpload`, //画布上传临时图片
|
||||
exportSave: `/api/history/exportSave`, //保存画布
|
||||
exportSearch: `/api/history/exportSearch`, //保存画布
|
||||
|
||||
//活动
|
||||
activity: `/api/account/activity`,
|
||||
|
||||
//bradDNA
|
||||
brandLogoUpload: `/api/history/brandLogoUpload`, //上传bradDNA
|
||||
brandDNAGenerate: `/api/history/brandDNAGenerate`, //上传bradDNA
|
||||
brandDNAUpload: `/api/history/brandDNAUpload`, //上传DNA图片
|
||||
getInitializeProgress: `/api/history/getInitializeProgress`, //获取brand进度
|
||||
brandDNADelete: `/api/history/brandDNADelete`, //删除brandDna
|
||||
|
||||
brandDNAPage: `/api/history/brandDNAPage`, //brand列表
|
||||
brandDNASaveOrUpdate: `/api/history/brandDNASaveOrUpdate`, //提交个人信息
|
||||
productImageInitialize: `/api/history/productImageInitialize`, //产品识别
|
||||
//调查问卷
|
||||
questionnaire: `/api/account/questionnaire`, //保存画布
|
||||
|
||||
//消息系统
|
||||
getUnreadCount: `/api/message/getUnreadCount`, //获取未读消息
|
||||
setReadStatus: `/api/message/setReadStatus`, //设置消息已读
|
||||
getHistoryNotification: `/api/message/getHistoryNotification`, //获取历史消息
|
||||
oneClickRead: `/api/message/oneClickRead`, //全部设为已读
|
||||
personalHomepage: `/api/account/personalHomepage`, //获取个人主页信息
|
||||
refreshMinioUrl: `/api/third/party/refreshMinioUrl` //获取可以使用的minio地址
|
||||
},
|
||||
|
||||
axiosGet(url, config) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (isLoginTime && url != '/api/portfolio/page') {
|
||||
resolve('')
|
||||
return
|
||||
}
|
||||
axios
|
||||
.get(url, config)
|
||||
.then(response => {
|
||||
resolve(response)
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
axiosPut(url, data) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (isLoginTime && url != '/api/portfolio/page') {
|
||||
resolve('')
|
||||
return
|
||||
}
|
||||
axios
|
||||
.put(url, data)
|
||||
.then(response => {
|
||||
resolve(response)
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
axiosPost(url, data, config) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (isLoginTime && url != '/api/portfolio/page') {
|
||||
resolve('')
|
||||
return
|
||||
}
|
||||
axios
|
||||
.post(url, data, config)
|
||||
.then(response => {
|
||||
resolve(response)
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
axiosDelete(url, newData) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (isLoginTime && url != '/api/portfolio/page') {
|
||||
resolve('')
|
||||
return
|
||||
}
|
||||
axios
|
||||
.delete(url, { data: newData })
|
||||
.then(response => {
|
||||
resolve(response)
|
||||
})
|
||||
.catch(error => {
|
||||
reject(error)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,14 +17,14 @@
|
||||
mode="inline"
|
||||
@click="handleClick"
|
||||
>
|
||||
<div v-for="(menu) in rootSubmenuKeys" :key="menu.key" >
|
||||
<a-menu-item :key="menu.key" :name="menu.name" :route="menu.route" v-if="!menu.children">
|
||||
<div v-for="(menu) in rootSubmenuKeys" :key="`menu-${menu.key}`" >
|
||||
<a-menu-item :key="`item-${menu.key}`" :name="menu.name" :route="menu.route" v-if="!menu.children">
|
||||
<template #icon>
|
||||
<span :class="['icon','iconfont', 'menu_icon', menu.icon]"></span>
|
||||
</template>
|
||||
<span class="menu_title" :title="menu.name">{{menu.name}}</span>
|
||||
</a-menu-item>
|
||||
<a-sub-menu :key="menu.key" v-else>
|
||||
<a-sub-menu :key="`sub-${menu.key}`" v-else>
|
||||
<template #icon>
|
||||
<span :class="['icon','iconfont', 'menu_icon', menu.icon]"></span>
|
||||
</template>
|
||||
@@ -67,7 +67,7 @@
|
||||
<script lang="ts">
|
||||
import { LoadingOutlined } from "@ant-design/icons-vue";
|
||||
import { message, Upload } from "ant-design-vue";
|
||||
import { defineComponent, onMounted, h, ref, nextTick, computed,reactive, toRefs, onBeforeMount } from "vue";
|
||||
import { defineComponent, onMounted, h, ref, nextTick, computed,reactive, toRefs, onBeforeMount, watch } from "vue";
|
||||
import { MailOutlined, AppstoreOutlined, SettingOutlined } from '@ant-design/icons-vue';
|
||||
import { Https } from "@/tool/https";
|
||||
import { useStore } from "vuex";
|
||||
@@ -102,11 +102,38 @@ export default defineComponent({
|
||||
// 5,7
|
||||
rootSubmenuKeys: [],
|
||||
openKeys: [],
|
||||
selectedKeys: ['sub1'],
|
||||
selectedKeys: [],
|
||||
nowPageName:'All User',//当前页面名称
|
||||
});
|
||||
let routers:any = ref([])
|
||||
|
||||
const syncMenuStatus = (path:string)=>{
|
||||
if(!state.rootSubmenuKeys.length)return
|
||||
let matched = false
|
||||
state.rootSubmenuKeys.some((item:any)=>{
|
||||
if(item.children){
|
||||
const target = item.children.find((child:any)=>child.route === path)
|
||||
if(target){
|
||||
state.selectedKeys = [target.key]
|
||||
state.openKeys = [`sub-${item.key}`]
|
||||
state.nowPageName = target.name
|
||||
matched = true
|
||||
return true
|
||||
}
|
||||
}else if(item.route === path){
|
||||
state.selectedKeys = [`item-${item.key}`]
|
||||
state.openKeys = []
|
||||
state.nowPageName = item.name
|
||||
matched = true
|
||||
return true
|
||||
}
|
||||
return false
|
||||
})
|
||||
if(!matched){
|
||||
state.selectedKeys = []
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const onOpenChange = (openKeys: string[]) => {
|
||||
const latestOpenKey:any = openKeys.find(key => state.openKeys.indexOf(key) === -1);
|
||||
@@ -150,24 +177,12 @@ export default defineComponent({
|
||||
state.rootSubmenuKeys = adminRouter.all(t);
|
||||
}
|
||||
const route = router.currentRoute.value
|
||||
if(state.rootSubmenuKeys.some((item:any) => item.route === route.path) || route.path == "/administrator"){
|
||||
const isMenuRoute = state.rootSubmenuKeys.some((item:any) => item.route === route.path || item.children?.some((child:any)=>child.route === route.path))
|
||||
// 如果是管理员首页或未匹配菜单,才重定向到首个菜单;否则保持当前路由,避免刷新回到 allUser
|
||||
if (route.path === "/administrator" || !isMenuRoute) {
|
||||
router.push(state.rootSubmenuKeys[0].route)
|
||||
}else{
|
||||
router.push('/administrator')
|
||||
}
|
||||
// state.rootSubmenuKeys.forEach((item:any) => {
|
||||
// if(item.children){
|
||||
// item.children.forEach((item:any) => {
|
||||
// if(item.route == router.currentRoute.value.path){
|
||||
// state.selectedKeys[0] = item.key
|
||||
// }
|
||||
// });
|
||||
// }else{
|
||||
// if(item.route == router.currentRoute.value.path){
|
||||
// state.selectedKeys[0] = item.key
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
syncMenuStatus(router.currentRoute.value.path)
|
||||
//储存所有用户id和name
|
||||
Https.axiosGet(Https.httpUrls.getAllUserId,).then((rv: any) => {
|
||||
if (rv) {
|
||||
@@ -192,8 +207,11 @@ export default defineComponent({
|
||||
// router.push(state.rootSubmenuKeys[0].route)
|
||||
|
||||
})
|
||||
onBeforeMount(()=>{
|
||||
state.selectedKeys = ['sub1']
|
||||
watch(()=>router.currentRoute.value.path,(path)=>{
|
||||
syncMenuStatus(path)
|
||||
},{immediate:true})
|
||||
onBeforeMount(()=>{
|
||||
state.selectedKeys = []
|
||||
})
|
||||
return {
|
||||
...toRefs(state),
|
||||
|
||||
Reference in New Issue
Block a user