fix
This commit is contained in:
@@ -45,11 +45,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal_title_text">
|
||||
<div>{{ title }} User</div>
|
||||
<div>{{ title.label }} User</div>
|
||||
</div>
|
||||
<div class="allUserPoeration_center admin_page">
|
||||
<div class="admin_state_item">
|
||||
<span>User Name: <span>*</span></span>
|
||||
<span>{{ $t('adminSeAllUser.UserName') }}: <span>*</span></span>
|
||||
<input
|
||||
v-model="userName"
|
||||
placeholder="Please enter user name"
|
||||
@@ -58,7 +58,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="admin_state_item">
|
||||
<span>User Email: <span>*</span></span>
|
||||
<span>{{ $t('adminSeAllUser.UserEmail') }}: <span>*</span></span>
|
||||
<input
|
||||
v-model="userEmail"
|
||||
placeholder="Please enter email"
|
||||
@@ -67,7 +67,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="admin_state_item">
|
||||
<span>Password: <span>*</span></span>
|
||||
<span>{{ $t('adminSeAllUser.Password') }}: <span>*</span></span>
|
||||
<input
|
||||
@focus="focus"
|
||||
@blur="blur"
|
||||
@@ -78,7 +78,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="admin_state_item">
|
||||
<span>Maximum Credits:</span>
|
||||
<span>{{ $t('adminSeAllUser.MaximumCredits') }}:</span>
|
||||
<input
|
||||
v-model="credits"
|
||||
placeholder="Please enter credits"
|
||||
@@ -88,8 +88,8 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="allUserPoeration_btn admin_page">
|
||||
<div class="admin_search_item" @click="cancelDsign">Close</div>
|
||||
<div class="admin_search_item" @click="setOk">OK</div>
|
||||
<div class="admin_search_item" @click="cancelDsign">{{ $t('adminSeAllUser.Close') }}</div>
|
||||
<div class="admin_search_item" @click="setOk">{{ $t('adminSeAllUser.OK') }}</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
<div class="mark_loading" v-show="loadingShow">
|
||||
@@ -119,7 +119,7 @@ export default defineComponent({
|
||||
operationsModal: false,
|
||||
operationsEdit: false,
|
||||
loadingShow: false,
|
||||
title: "",
|
||||
title: null,
|
||||
});
|
||||
let operationsData = reactive({
|
||||
accountId: -1,
|
||||
@@ -151,8 +151,8 @@ export default defineComponent({
|
||||
operations.operationsModal = true;
|
||||
operations.operationsEdit = true;
|
||||
operations.title = funStr;
|
||||
if (funStr == "Add") operations.operationsEdit = false;
|
||||
if (funStr == "Edit") {
|
||||
if (funStr.value == "Add") operations.operationsEdit = false;
|
||||
if (funStr.value == "Edit") {
|
||||
operationsData.accountId = data.id;
|
||||
operationsData.userName = data.userName;
|
||||
operationsData.userEmail = data.userEmail;
|
||||
@@ -195,7 +195,7 @@ export default defineComponent({
|
||||
userEmail: operationsData.userEmail,
|
||||
userPassword:
|
||||
operationsData.password == operationsData.oldPassword
|
||||
? ""
|
||||
? null
|
||||
: md5(operationsData.password + "abc"),
|
||||
};
|
||||
};
|
||||
@@ -209,19 +209,18 @@ export default defineComponent({
|
||||
};
|
||||
let setOk = () => {
|
||||
let data;
|
||||
if (operations.title == "Add") {
|
||||
if (operations.title?.value == "Add") {
|
||||
data = setAddData();
|
||||
if (!isEmail(data.userEmail)) {
|
||||
message.info("The email format is incorrect");
|
||||
message.info(t('adminSeAllUser.jsContent1'));
|
||||
return;
|
||||
}
|
||||
if (
|
||||
!data.userName ||
|
||||
!data.userEmail ||
|
||||
!data.userPassword ||
|
||||
!data.creditsUsageLimit
|
||||
!data.userPassword
|
||||
)
|
||||
return message.warning("Please check the input box marked with *");
|
||||
return message.warning(t('adminSeAllUser.jsContent2'));
|
||||
Https.axiosPost(Https.httpUrls.addOrUpdateSubAccount, data).then(
|
||||
(rv) => {
|
||||
if (rv) {
|
||||
@@ -236,7 +235,7 @@ export default defineComponent({
|
||||
message.info("The email format is incorrect");
|
||||
return;
|
||||
}
|
||||
if (!data.userName || !data.userEmail || !data.creditsUsageLimit)
|
||||
if (!data.userName || !data.userEmail)
|
||||
return message.warning("Please check the input box marked with *");
|
||||
Https.axiosPost(Https.httpUrls.addOrUpdateSubAccount, data).then(
|
||||
(rv) => {
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<div class="admin_table_search">
|
||||
<div class="admin_state">
|
||||
<div class="admin_state_item">
|
||||
<span>Create Time:</span>
|
||||
<span>{{ $t('adminSeAllUser.CreateTime') }}:</span>
|
||||
<a-range-picker
|
||||
style="width: 230px"
|
||||
class="range_picker"
|
||||
@@ -45,7 +45,7 @@
|
||||
/>
|
||||
</div> -->
|
||||
<div class="admin_state_item">
|
||||
<span>User Name:</span>
|
||||
<span>{{ $t('adminSeAllUser.UserName') }}:</span>
|
||||
<a-select
|
||||
v-model:value="ids"
|
||||
mode="multiple"
|
||||
@@ -74,16 +74,22 @@
|
||||
</div>
|
||||
<div class="admin_search">
|
||||
<div class="admin_search_item" @click="searchHistoryList">
|
||||
Search
|
||||
{{ $t('adminSeAllUser.search') }}
|
||||
</div>
|
||||
<div class="admin_search_item" @click="addhHistoryList">
|
||||
Add
|
||||
{{ $t('adminSeAllUser.add') }}
|
||||
</div>
|
||||
<div class="admin_search_item" style="width: auto;padding: 0 2rem;" @click="downloadTemplate">
|
||||
Download template
|
||||
{{ $t('adminSeAllUser.DownloadTemplate') }}
|
||||
</div>
|
||||
<div class="admin_search_item" style="width: auto;padding: 0 2rem;" @click="uploadTemplate">
|
||||
Upload template
|
||||
{{ $t('adminSeAllUser.UploadTemplate') }}
|
||||
</div>
|
||||
<div class="admin_search_item" style="width: auto;padding: 0 2rem;" @click="ExportAccountData">
|
||||
{{ $t('adminSeAllUser.ExportAccountData') }}
|
||||
</div>
|
||||
<div class="admin_search_item" style="width: auto;padding: 0 2rem;" @click="deleteList">
|
||||
{{ $t('adminSeAllUser.Delete') }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="admin_state_list">
|
||||
@@ -91,19 +97,19 @@
|
||||
class="admin_state_list_item"
|
||||
@click="lastGeTrialList('year')"
|
||||
>
|
||||
Nearly a year
|
||||
{{ $t('adminSeAllUser.NearlyAYear') }}
|
||||
</div>
|
||||
<div
|
||||
class="admin_state_list_item"
|
||||
@click="lastGeTrialList('month')"
|
||||
>
|
||||
Last month
|
||||
{{ $t('adminSeAllUser.LastMonth') }}
|
||||
</div>
|
||||
<div
|
||||
class="admin_state_list_item"
|
||||
@click="lastGeTrialList('week')"
|
||||
>
|
||||
Last week
|
||||
{{ $t('adminSeAllUser.LastWeek') }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -113,6 +119,8 @@
|
||||
:loading="tableLoading"
|
||||
:columns="columns"
|
||||
:data-source="dataList"
|
||||
:row-selection="rowSelection"
|
||||
rowKey="id"
|
||||
:scroll="{ y: historyTableHeight }"
|
||||
@change="changePage"
|
||||
:showSorterTooltip='false'
|
||||
@@ -132,13 +140,13 @@
|
||||
@click="setAagree(record)"
|
||||
style="margin-right: 2rem;"
|
||||
>
|
||||
Edit
|
||||
{{ $t('adminSeAllUser.Edit') }}
|
||||
</div>
|
||||
<div
|
||||
class="operate_item"
|
||||
@click="deleteAagree(record)"
|
||||
>
|
||||
Delete
|
||||
{{ $t('adminSeAllUser.Delete') }}
|
||||
</div>
|
||||
<!-- <div
|
||||
class="operate_item"
|
||||
@@ -169,18 +177,31 @@ import { Https } from "@/tool/https";
|
||||
import { Modal,message } from 'ant-design-vue';
|
||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||
import allUserPoerationsVue from "./addAllUser.vue";
|
||||
import { useI18n } from 'vue-i18n'
|
||||
export default defineComponent({
|
||||
components: {allUserPoerationsVue,},
|
||||
setup() {
|
||||
const store:any = useStore()
|
||||
const selectedRowKeys = ref([]) as any;
|
||||
const onSelectChange = (changableRowKeys: string[]) => {
|
||||
selectedRowKeys.value = changableRowKeys;
|
||||
};
|
||||
let filter: any = reactive({
|
||||
dataList: [],
|
||||
tableLoading: false,
|
||||
allUserList: computed(()=>{
|
||||
return store.state.adminPage.allUserList
|
||||
}),
|
||||
allCountry:[]
|
||||
allCountry:[],
|
||||
rowSelection:computed(() => {
|
||||
return {
|
||||
selectedRowKeys: unref(selectedRowKeys),
|
||||
onChange: onSelectChange,
|
||||
}
|
||||
})
|
||||
});
|
||||
const {t} = useI18n()
|
||||
|
||||
let filterData: any = reactive({
|
||||
rangePickerValue: [],
|
||||
currentPage: 1,
|
||||
@@ -196,37 +217,12 @@ export default defineComponent({
|
||||
orderBy:'',
|
||||
userName: "",
|
||||
});
|
||||
let state: any = ref([
|
||||
{
|
||||
label: "all",
|
||||
value: "",
|
||||
},
|
||||
{
|
||||
label:'visitor',
|
||||
value:'0',
|
||||
},
|
||||
{
|
||||
label:'yearly',
|
||||
value:'1',
|
||||
},
|
||||
{
|
||||
label:'monthly',
|
||||
value:'2',
|
||||
},
|
||||
{
|
||||
label:'trial',
|
||||
value:'3',
|
||||
},
|
||||
{
|
||||
label: "userInEvent",
|
||||
value: "4",
|
||||
},
|
||||
]);
|
||||
|
||||
let renameData: any = ref({}); //修改名字选中的数据
|
||||
const columns: any = computed(() => {
|
||||
return [
|
||||
{
|
||||
title: "User Id",
|
||||
title: t("adminSeAllUser.UserId"),
|
||||
align: "center",
|
||||
dataIndex: "id",
|
||||
key: "id",
|
||||
@@ -235,7 +231,7 @@ export default defineComponent({
|
||||
sorter: true,
|
||||
},
|
||||
{
|
||||
title: "Email",
|
||||
title: t("adminSeAllUser.Email"),
|
||||
align: "center",
|
||||
dataIndex: "userEmail",
|
||||
key: "userEmail",
|
||||
@@ -243,7 +239,7 @@ export default defineComponent({
|
||||
ellipsis:true
|
||||
},
|
||||
{
|
||||
title: "User Name",
|
||||
title: t("adminSeAllUser.UserName"),
|
||||
align: "center",
|
||||
dataIndex: "userName",
|
||||
key: "userName",
|
||||
@@ -258,7 +254,7 @@ export default defineComponent({
|
||||
// },
|
||||
},
|
||||
{
|
||||
title: "language",
|
||||
title: t("adminSeAllUser.language"),
|
||||
align: "center",
|
||||
dataIndex: "language",
|
||||
key: "language",
|
||||
@@ -266,7 +262,7 @@ export default defineComponent({
|
||||
ellipsis:true,
|
||||
},
|
||||
{
|
||||
title: "Create Date",
|
||||
title: t("adminSeAllUser.CreateDate"),
|
||||
align: "center",
|
||||
dataIndex: "createDate",
|
||||
key: "createDate",
|
||||
@@ -274,19 +270,19 @@ export default defineComponent({
|
||||
sorter: true,
|
||||
},
|
||||
{
|
||||
title: "Credits",
|
||||
title: t("adminSeAllUser.Credits"),
|
||||
align: "center",
|
||||
// width: 150,
|
||||
// minWidth: 100,
|
||||
// maxWidth: 200,
|
||||
// resizable: true,
|
||||
dataIndex: "creditsUsageLimit",
|
||||
dataIndex: "credits",
|
||||
key: "credits",
|
||||
width:100,
|
||||
sorter: true,
|
||||
},
|
||||
{
|
||||
title: "Credits Usage",
|
||||
title: t("adminSeAllUser.CreditsUsage"),
|
||||
align: "center",
|
||||
dataIndex: "creditsUsage",
|
||||
key: "creditsUsage",
|
||||
@@ -294,7 +290,7 @@ export default defineComponent({
|
||||
sorter: true,
|
||||
},
|
||||
{
|
||||
title: "Credits Usage Limit",
|
||||
title: t("adminSeAllUser.CreditsUsageLimit"),
|
||||
align: "center",
|
||||
dataIndex: "creditsUsageLimit",
|
||||
key: "creditsUsageLimit",
|
||||
@@ -302,7 +298,7 @@ export default defineComponent({
|
||||
sorter: true,
|
||||
},
|
||||
{
|
||||
title: "Operations",
|
||||
title: t("adminSeAllUser.Operations"),
|
||||
key: "operation",
|
||||
width:120,
|
||||
align: "center",
|
||||
@@ -418,11 +414,11 @@ export default defineComponent({
|
||||
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
|
||||
};
|
||||
let addhHistoryList = () => {
|
||||
allUserPoerationsVue.value.init('Add','')
|
||||
allUserPoerationsVue.value.init({value:'Add',label:t('adminSeAllUser.add')},'')
|
||||
};
|
||||
let allUserPoerationsVue = ref()
|
||||
let setAagree = (data:any) =>{
|
||||
allUserPoerationsVue.value.init('Edit',data)
|
||||
allUserPoerationsVue.value.init({value:'Edit',label:t('adminSeAllUser.Edit')},data)
|
||||
}
|
||||
const downloadTemplate = ()=>{
|
||||
Https.axiosGet(Https.httpUrls.subAccountImportExcelDownload,{responseType: 'blob',env:{binary:true}}).then((rv:any)=>{
|
||||
@@ -436,6 +432,18 @@ export default defineComponent({
|
||||
URL.revokeObjectURL(link.href);
|
||||
})
|
||||
}
|
||||
const ExportAccountData = ()=>{
|
||||
Https.axiosGet(Https.httpUrls.exportAccountsToExcel,{headers:{responseType: 'blob',},env:{binary:true,binaryType:'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8'}}).then((rv:any)=>{
|
||||
const link = document.createElement('a');
|
||||
link.href = rv.url;
|
||||
link.download = 'file.xlsx'; // 设置正确的文件扩展名
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
document.body.removeChild(link);
|
||||
// 释放 URL 对象
|
||||
URL.revokeObjectURL(link.href);
|
||||
})
|
||||
}
|
||||
const uploadTemplate = ()=>{
|
||||
const fileInput = document.createElement('input');
|
||||
fileInput.type = 'file';
|
||||
@@ -473,6 +481,18 @@ export default defineComponent({
|
||||
});
|
||||
})
|
||||
}
|
||||
const deleteList = async ()=>{
|
||||
console.log(selectedRowKeys.value)
|
||||
if(selectedRowKeys.value.length == 0)return
|
||||
let boolean:any = await confirmDelete()
|
||||
if(!boolean){
|
||||
return
|
||||
}
|
||||
Https.axiosPost(Https.httpUrls.deleteSubAccount,{deleteIdList:selectedRowKeys.value})
|
||||
.then((rv:any)=>{
|
||||
gettrialList();
|
||||
})
|
||||
}
|
||||
const deleteAagree = async (event:any)=>{
|
||||
let boolean:any = await confirmDelete()
|
||||
if(!boolean){
|
||||
@@ -496,7 +516,6 @@ export default defineComponent({
|
||||
return {
|
||||
...toRefs(filter),
|
||||
...toRefs(filterData),
|
||||
state,
|
||||
columns,
|
||||
renameData,
|
||||
changePage,
|
||||
@@ -508,7 +527,9 @@ export default defineComponent({
|
||||
allUserPoerationsVue,
|
||||
setAagree,
|
||||
downloadTemplate,
|
||||
ExportAccountData,
|
||||
uploadTemplate,
|
||||
deleteList,
|
||||
deleteAagree,
|
||||
};
|
||||
},
|
||||
@@ -530,13 +551,17 @@ export default defineComponent({
|
||||
<style lang="less" scoped>
|
||||
.admin_page .admin_table_search .admin_state {
|
||||
display: flex;
|
||||
width: 75%;
|
||||
width: 70%;
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
}
|
||||
.admin_page .admin_table_search .admin_search {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
width: 25%;
|
||||
width: 30%;
|
||||
> .admin_search_item{
|
||||
height: 4rem;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -4,7 +4,7 @@
|
||||
<div class="admin_state">
|
||||
|
||||
<div class="admin_state_item">
|
||||
<span>Start Date:</span>
|
||||
<span>{{ $t('adminSeDesignDetail.StartDate') }}:</span>
|
||||
<a-range-picker
|
||||
style="width:250px"
|
||||
class="range_picker"
|
||||
@@ -23,11 +23,11 @@
|
||||
</a-range-picker>
|
||||
</div>
|
||||
<div class="admin_state_item">
|
||||
<span>Start Time:</span>
|
||||
<span>{{ $t('adminSeDesignDetail.StartTime') }}:</span>
|
||||
<a-time-range-picker style="width:250px" class="range_picker" valueFormat="HH:mm:ss" v-model:value="rangeTimeValue" />
|
||||
</div>
|
||||
<div class="admin_state_item">
|
||||
<span>Email:</span>
|
||||
<span>{{ $t('adminSeDesignDetail.Email') }}:</span>
|
||||
<input
|
||||
v-model="email"
|
||||
placeholder="Please enter email"
|
||||
@@ -37,7 +37,7 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="admin_state_item">
|
||||
<span>User Name:</span>
|
||||
<span>{{ $t('adminSeDesignDetail.UserName') }}:</span>
|
||||
<a-select
|
||||
v-model:value="ids"
|
||||
mode="multiple"
|
||||
@@ -79,6 +79,7 @@
|
||||
import { defineComponent, ref, createVNode, computed } from "vue";
|
||||
import { useStore } from "vuex";
|
||||
import { Https } from "@/tool/https";
|
||||
import { useI18n } from 'vue-i18n'
|
||||
export default defineComponent({
|
||||
components: {
|
||||
},
|
||||
@@ -87,10 +88,11 @@ export default defineComponent({
|
||||
let rangePickerValue: any = ref([]);
|
||||
let rangeTimeValue: any = ref([]);
|
||||
let renameData: any = ref({}); //修改名字选中的数据
|
||||
const {t} = useI18n()
|
||||
const columns: any = computed(() => {
|
||||
return [
|
||||
{
|
||||
title: 'Email',
|
||||
title: t('adminSeDesignDetail.Email'),
|
||||
align: "center",
|
||||
dataIndex: "userEmail",
|
||||
key: "userEmail",
|
||||
@@ -98,7 +100,7 @@ export default defineComponent({
|
||||
fixed: "left",
|
||||
},
|
||||
{
|
||||
title: 'User Id',
|
||||
title: t('adminSeDesignDetail.UserId'),
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
dataIndex: "accountId",
|
||||
@@ -106,7 +108,7 @@ export default defineComponent({
|
||||
width:100,
|
||||
},
|
||||
{
|
||||
title: 'User Name',
|
||||
title: t('adminSeDesignDetail.UserName'),
|
||||
align: "center",
|
||||
ellipsis: 200,
|
||||
dataIndex: "userName",
|
||||
@@ -121,7 +123,7 @@ export default defineComponent({
|
||||
// },
|
||||
},
|
||||
{
|
||||
title: 'Frequency',
|
||||
title: t('adminSeDesignDetail.Frequency'),
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
dataIndex: "designTimes",
|
||||
@@ -129,7 +131,7 @@ export default defineComponent({
|
||||
width:100,
|
||||
},
|
||||
{
|
||||
title: 'Create Time',
|
||||
title: t('adminSeDesignDetail.CreateTime'),
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
// width: 150,
|
||||
@@ -141,7 +143,7 @@ export default defineComponent({
|
||||
width:200,
|
||||
},
|
||||
{
|
||||
title: 'Credits',
|
||||
title: t('adminSeDesignDetail.Credits'),
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
// width: 150,
|
||||
|
||||
Reference in New Issue
Block a user