346 lines
9.8 KiB
Vue
346 lines
9.8 KiB
Vue
<template>
|
|
<div class="test_cli admin_page">
|
|
<div class="admin_table_search">
|
|
<div class="admin_state">
|
|
|
|
<div class="admin_state_item">
|
|
<span>Start Date:</span>
|
|
<a-range-picker
|
|
style="width:250px"
|
|
class="range_picker"
|
|
v-model:value="rangePickerValue"
|
|
:placeholder="[
|
|
$t('HistoryPage.StartDate'),
|
|
$t('HistoryPage.EndDate'),
|
|
]"
|
|
valueFormat="YYYY-MM-DD"
|
|
>
|
|
<template #suffixIcon>
|
|
<span
|
|
class="icon iconfont range_picker_icon icon-rili"
|
|
></span>
|
|
</template>
|
|
</a-range-picker>
|
|
</div>
|
|
<div class="admin_state_item">
|
|
<span>Start Time:</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>
|
|
<input
|
|
v-model="email"
|
|
placeholder="Please enter email"
|
|
@keydown.enter="gettrialList"
|
|
type="text"
|
|
style="width: 250px"
|
|
/>
|
|
</div>
|
|
<div class="admin_state_item">
|
|
<span>User Name:</span>
|
|
<a-select
|
|
v-model:value="ids"
|
|
mode="multiple"
|
|
style="width: 250px"
|
|
:filter-option="filterOption"
|
|
placeholder="Select Item..."
|
|
max-tag-count="responsive"
|
|
:options="allUserList"
|
|
@keydown.enter="gettrialList"
|
|
></a-select>
|
|
</div>
|
|
</div>
|
|
<div class="admin_search">
|
|
<div class="admin_search_item" @click="searchHistoryList">Search</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="admin_table_content" ref="historyTable">
|
|
<a-table
|
|
@resizeColumn="handleResizeColumn"
|
|
:columns="columns"
|
|
:data-source="dataList"
|
|
:scroll="{ y: historyTableHeight }"
|
|
@change="changePage"
|
|
:pagination="{
|
|
showSizeChanger: true,
|
|
current: currentPage,
|
|
pageSize: pageSize,
|
|
total: total,
|
|
showQuickJumper: true,
|
|
bordered: false,
|
|
}"
|
|
>
|
|
</a-table>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script lang="ts">
|
|
import { defineComponent, ref, createVNode, computed } from "vue";
|
|
import { useStore } from "vuex";
|
|
import { Https } from "@/tool/https";
|
|
export default defineComponent({
|
|
components: {
|
|
},
|
|
setup() {
|
|
const store:any = useStore()
|
|
let rangePickerValue: any = ref([]);
|
|
let rangeTimeValue: any = ref([]);
|
|
let renameData: any = ref({}); //修改名字选中的数据
|
|
const columns: any = computed(() => {
|
|
return [
|
|
{
|
|
title: 'Email',
|
|
align: "center",
|
|
dataIndex: "userEmail",
|
|
key: "userEmail",
|
|
width:200,
|
|
fixed: "left",
|
|
},
|
|
{
|
|
title: 'User Id',
|
|
align: "center",
|
|
ellipsis: true,
|
|
dataIndex: "accountId",
|
|
key: "accountId",
|
|
width:100,
|
|
},
|
|
{
|
|
title: 'User Name',
|
|
align: "center",
|
|
ellipsis: 200,
|
|
dataIndex: "userName",
|
|
key: "userName",
|
|
width:100,
|
|
// customRender: (record: any) => {
|
|
// let time = formatTime(
|
|
// record.text / 1000,
|
|
// "YYYY-MM-DD hh:mm:ss"
|
|
// );
|
|
// return time;
|
|
// },
|
|
},
|
|
{
|
|
title: 'isTrial',
|
|
align: "center",
|
|
ellipsis: true,
|
|
dataIndex: "isTrial",
|
|
key: "isTrial",
|
|
width:100,
|
|
customRender: (record: any) => {
|
|
let str
|
|
if(record.value == 1){
|
|
str ='Yes'
|
|
}else{
|
|
str ='No'
|
|
}
|
|
return str;
|
|
},
|
|
},
|
|
{
|
|
title: 'Frequency',
|
|
align: "center",
|
|
ellipsis: true,
|
|
dataIndex: "designTimes",
|
|
key: "designTimes",
|
|
width:100,
|
|
},
|
|
{
|
|
title: 'Country',
|
|
align: "center",
|
|
ellipsis: true,
|
|
dataIndex: "country",
|
|
key: "country",
|
|
width:200,
|
|
},
|
|
{
|
|
title: 'Title',
|
|
align: "center",
|
|
ellipsis: true,
|
|
dataIndex: "title",
|
|
key: "title",
|
|
width:100,
|
|
},
|
|
{
|
|
title: 'Surname',
|
|
align: "center",
|
|
ellipsis: true,
|
|
dataIndex: "surname",
|
|
key: "surname",
|
|
width:150,
|
|
},
|
|
{
|
|
title: 'Given Name',
|
|
align: "center",
|
|
ellipsis: true,
|
|
dataIndex: "givenName",
|
|
key: "givenName",
|
|
width:100,
|
|
},
|
|
{
|
|
title: 'Create Time',
|
|
align: "center",
|
|
ellipsis: true,
|
|
// width: 150,
|
|
// minWidth: 100,
|
|
// maxWidth: 200,
|
|
// resizable: true,
|
|
dataIndex: "createTime",
|
|
key: "createTime",
|
|
width:200,
|
|
},
|
|
{
|
|
title: 'Credits',
|
|
align: "center",
|
|
ellipsis: true,
|
|
// width: 150,
|
|
// minWidth: 100,
|
|
// maxWidth: 200,
|
|
// resizable: true,
|
|
dataIndex: "credits",
|
|
key: "credits",
|
|
width:100,
|
|
},
|
|
{
|
|
title: 'Occupation',
|
|
align: "center",
|
|
ellipsis: true,
|
|
// width: 150,
|
|
// minWidth: 100,
|
|
// maxWidth: 200,
|
|
// resizable: true,
|
|
dataIndex: "occupation",
|
|
key: "occupation",
|
|
width:100,
|
|
},
|
|
{
|
|
title: 'Trial Order Id',
|
|
align: "center",
|
|
ellipsis: true,
|
|
// width: 150,
|
|
// resizable: true,
|
|
dataIndex: "trialOrderId",
|
|
key: "trialOrderId",
|
|
width:100,
|
|
},
|
|
];
|
|
});
|
|
|
|
let allUserList: any = computed(()=>{
|
|
return store.state.adminPage.allUserList
|
|
})
|
|
let ids = ref([])
|
|
let email = ref('')
|
|
let dataList: any = ref([]);
|
|
let status: any = ref(0);
|
|
let filterOption = (input: any, option: any) => {
|
|
// 使用 option.label 进行搜索
|
|
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
|
|
};
|
|
return {
|
|
rangePickerValue,
|
|
rangeTimeValue,
|
|
columns,
|
|
dataList,
|
|
allUserList,
|
|
ids,
|
|
email,
|
|
renameData,
|
|
status,
|
|
filterOption,
|
|
};
|
|
},
|
|
data() {
|
|
return {
|
|
currentPage: 1,
|
|
pageSize: 10,
|
|
total: 0,
|
|
historyTableHeight: 0,
|
|
handleResizeColumn: (w:any, col:any) => {
|
|
col.width = w;
|
|
},
|
|
};
|
|
},
|
|
mounted() {
|
|
let historyTable: any = this.$refs.historyTable;
|
|
this.historyTableHeight = historyTable.clientHeight - 200;
|
|
this.gettrialList();
|
|
},
|
|
methods: {
|
|
//改变页码
|
|
changePage(e: any) {
|
|
this.currentPage = e.current;
|
|
this.pageSize = e.pageSize;
|
|
// this.gettrialList();
|
|
},
|
|
|
|
//查询列表
|
|
searchHistoryList() {
|
|
this.currentPage = 1;
|
|
this.gettrialList();
|
|
},
|
|
|
|
//获取列表
|
|
gettrialList() {
|
|
let startTime: any = this.rangeTimeValue[0]
|
|
? this.rangeTimeValue[0]
|
|
: '00:00:00';
|
|
let endTime: any = this.rangeTimeValue[1]
|
|
? this.rangeTimeValue[1]
|
|
: '00:00:00';
|
|
let startDate: any = this.rangePickerValue[0]
|
|
? this.rangePickerValue[0]+' '+startTime
|
|
: "";
|
|
let endDate: any = this.rangePickerValue[1]
|
|
? this.rangePickerValue[1]+' '+endTime
|
|
: "";
|
|
let ids = this.ids.join(',')
|
|
let data = {
|
|
endTime:endDate,
|
|
startTime:startDate,
|
|
ids:ids,
|
|
email:this.email,
|
|
}
|
|
Https.axiosGet(Https.httpUrls.getDesignStatistic,{params:data}).then((rv: any) => {
|
|
if (rv) {
|
|
this.dataList = rv
|
|
// this.workspaceItem.position = this.singleTypeList[0].label
|
|
}
|
|
})
|
|
},
|
|
|
|
//删除分组
|
|
// deleteGroup(record: any, index: number) {
|
|
// let deleteGroupFun = (id: any, index: number) => {
|
|
// let data = {
|
|
// userGroupId: id,
|
|
// };
|
|
// Https.axiosPost(Https.httpUrls.deleteUserGroup, data).then(
|
|
// (rv: any) => {
|
|
// this.dataList.splice(index, 1);
|
|
// }
|
|
// );
|
|
// };
|
|
// Modal.confirm({
|
|
// title: "",
|
|
// icon: createVNode(ExclamationCircleOutlined),
|
|
// okText: "Yes",
|
|
// cancelText: "No",
|
|
// centered: true,
|
|
// mask: false,
|
|
// onOk() {
|
|
// deleteGroupFun(record.id, index);
|
|
// },
|
|
// });
|
|
// },
|
|
|
|
|
|
},
|
|
});
|
|
</script>
|
|
<style lang="less" scoped>
|
|
.admin_page .admin_table_search .admin_state {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
}
|
|
</style> |