Merge branch 'dev_vite' of ssh://18.167.251.121:10002/aidlab/aida_front into dev_vite

This commit is contained in:
X1627315083
2025-10-09 10:15:42 +08:00
3 changed files with 838 additions and 721 deletions

View File

@@ -1,12 +1,11 @@
<template> <template>
<div class="test_cli admin_page"> <div class="test_cli admin_page">
<div class="admin_table_search"> <div class="admin_table_search">
<div class="admin_state"> <div class="admin_state">
<div class="admin_state_item"> <div class="admin_state_item">
<span>{{ $t('admin.StartDate') }}:</span> <span>{{ $t("admin.StartDate") }}:</span>
<a-range-picker <a-range-picker
style="width:250px" style="width: 250px"
class="range_picker" class="range_picker"
v-model:value="rangePickerValue" v-model:value="rangePickerValue"
:placeholder="[ :placeholder="[
@@ -23,35 +22,56 @@
</a-range-picker> </a-range-picker>
</div> </div>
<div class="admin_state_item"> <div class="admin_state_item">
<span>{{ $t('admin.StartTime') }}:</span> <span>{{ $t("admin.StartTime") }}:</span>
<a-time-range-picker style="width:250px" :placeholder="[$t('admin.startTime'), $t('admin.endTime'),]" class="range_picker" valueFormat="HH:mm:ss" v-model:value="rangeTimeValue" /> <a-time-range-picker
style="width: 250px"
:placeholder="[
$t('admin.startTime'),
$t('admin.endTime'),
]"
class="range_picker"
valueFormat="HH:mm:ss"
v-model:value="rangeTimeValue"
/>
</div> </div>
<div class="admin_state_item"> <div class="admin_state_item">
<span>{{ $t('admin.Email') }}:</span> <span>{{ $t("admin.Email") }}:</span>
<input <input
v-model="email" v-model="email"
:placeholder="$t('admin.enterEmail')" :placeholder="$t('admin.enterEmail')"
@keydown.enter="gettrialList" @keydown.enter="gettrialList"
type="text" type="text"
style="width: 250px" style="width: 250px"
/> />
</div> </div>
<div class="admin_state_item"> <div class="admin_state_item">
<span>{{ $t('admin.UserName') }}:</span> <span>{{ $t("admin.UserName") }}:</span>
<a-select <a-select
v-model:value="ids" v-model:value="ids"
mode="multiple" mode="multiple"
style="width: 250px" style="width: 250px"
:filter-option="filterOption" :filter-option="filterOption"
:placeholder="$t('admin.selectUserName')" :placeholder="$t('admin.selectUserName')"
max-tag-count="responsive" max-tag-count="responsive"
:options="allUserList" :options="allUserList"
@keydown.enter="gettrialList" @keydown.enter="gettrialList"
></a-select> ></a-select>
</div> </div>
<div class="admin_state_item">
<span>Organization Name:</span>
<input
v-model="organizationName"
placeholder="Please enter Organization Name"
@keydown.enter="gettrialList"
type="text"
style="width: 250px"
/>
</div>
</div> </div>
<div class="admin_search"> <div class="admin_search">
<div class="admin_search_item" @click="searchHistoryList">{{ $t('admin.search') }}</div> <div class="admin_search_item" @click="searchHistoryList">
{{ $t("admin.search") }}
</div>
</div> </div>
</div> </div>
@@ -73,205 +93,207 @@
> >
</a-table> </a-table>
</div> </div>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref, createVNode, computed } from "vue"; import { defineComponent, ref, createVNode, computed } from "vue";
import { useStore } from "vuex"; import { useStore } from "vuex";
import { Https } from "@/tool/https"; import { Https } from "@/tool/https";
import { useI18n } from 'vue-i18n' import { useI18n } from "vue-i18n";
export default defineComponent({ export default defineComponent({
components: { components: {},
}, setup() {
setup() { const store: any = useStore();
const store:any = useStore() let rangePickerValue: any = ref([]);
let rangePickerValue: any = ref([]); let rangeTimeValue: any = ref([]);
let rangeTimeValue: any = ref([]); let renameData: any = ref({}); //修改名字选中的数据
let renameData: any = ref({}); //修改名字选中的数据 const { t } = useI18n();
const {t} = useI18n() const columns: any = computed(() => {
const columns: any = computed(() => { return [
return [ {
{ title: t("admin.Email"),
title: t('admin.Email'), align: "center",
align: "center", dataIndex: "userEmail",
dataIndex: "userEmail", key: "userEmail",
key: "userEmail", width: 200,
width:200, fixed: "left",
fixed: "left", },
}, {
{ title: t("admin.UserId"),
title: t('admin.UserId'), align: "center",
align: "center", ellipsis: true,
ellipsis: true, dataIndex: "accountId",
dataIndex: "accountId", key: "accountId",
key: "accountId", width: 100,
width:100, },
}, {
{ title: t("admin.UserName"),
title: t('admin.UserName'), align: "center",
align: "center", ellipsis: 200,
ellipsis: 200, dataIndex: "userName",
dataIndex: "userName", key: "userName",
key: "userName", width: 100,
width:100, // customRender: (record: any) => {
// customRender: (record: any) => { // let time = formatTime(
// let time = formatTime( // record.text / 1000,
// record.text / 1000, // "YYYY-MM-DD hh:mm:ss"
// "YYYY-MM-DD hh:mm:ss" // );
// ); // return time;
// return time; // },
// }, },
}, {
{ title: t("admin.Frequency"),
title: t('admin.Frequency'), align: "center",
align: "center", ellipsis: true,
ellipsis: true, dataIndex: "designTimes",
dataIndex: "designTimes", key: "designTimes",
key: "designTimes", width: 100,
width:100, },
}, {
{ title: t("admin.CreateTime"),
title: t('admin.CreateTime'), align: "center",
align: "center", ellipsis: true,
ellipsis: true, // width: 150,
// width: 150, // minWidth: 100,
// minWidth: 100, // maxWidth: 200,
// maxWidth: 200, // resizable: true,
// resizable: true, dataIndex: "createTime",
dataIndex: "createTime", key: "createTime",
key: "createTime", width: 200,
width:200, },
}, {
{ title: t("admin.Credits"),
title: t('admin.Credits'), align: "center",
align: "center", ellipsis: true,
ellipsis: true, // width: 150,
// width: 150, // minWidth: 100,
// minWidth: 100, // maxWidth: 200,
// maxWidth: 200, // resizable: true,
// resizable: true, dataIndex: "credits",
dataIndex: "credits", key: "credits",
key: "credits", width: 100,
width:100, },
}, ];
]; });
});
let allUserList: any = computed(()=>{ let allUserList: any = computed(() => {
return store.state.adminPage.allUserList return store.state.adminPage.allUserList;
}) });
let ids = ref([]) let ids = ref([]);
let email = ref('') let email = ref("");
let dataList: any = ref([]); let dataList: any = ref([]);
let status: any = ref(0); let status: any = ref(0);
let filterOption = (input: any, option: any) => { let organizationName: any = ref("");
// 使用 option.label 进行搜索 let filterOption = (input: any, option: any) => {
return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0; // 使用 option.label 进行搜索
}; return option.label.toLowerCase().indexOf(input.toLowerCase()) >= 0;
return { };
rangePickerValue, return {
rangeTimeValue, rangePickerValue,
columns, rangeTimeValue,
dataList, columns,
allUserList, dataList,
ids, allUserList,
email, ids,
renameData, email,
status, renameData,
filterOption, status,
}; filterOption,
}, organizationName,
data() { };
return { },
currentPage: 1, data() {
pageSize: 10, return {
total: 0, currentPage: 1,
historyTableHeight: 0, pageSize: 10,
handleResizeColumn: (w:any, col:any) => { total: 0,
col.width = w; 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();
}, },
};
},
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() { searchHistoryList() {
this.currentPage = 1; this.currentPage = 1;
this.gettrialList(); this.gettrialList();
}, },
//获取列表 //获取列表
gettrialList() { gettrialList() {
let startTime: any = this.rangeTimeValue?.[0] let startTime: any = this.rangeTimeValue?.[0]
? this.rangeTimeValue[0] ? this.rangeTimeValue[0]
: '00:00:00'; : "00:00:00";
let endTime: any = this.rangeTimeValue?.[1] let endTime: any = this.rangeTimeValue?.[1]
? this.rangeTimeValue[1] ? this.rangeTimeValue[1]
: '23:59:59'; : "23:59:59";
let startDate: any = this.rangePickerValue?.[0] let startDate: any = this.rangePickerValue?.[0]
? this.rangePickerValue[0]+' '+startTime ? this.rangePickerValue[0] + " " + startTime
: ""; : "";
let endDate: any = this.rangePickerValue?.[1] let endDate: any = this.rangePickerValue?.[1]
? this.rangePickerValue[1]+' '+endTime ? this.rangePickerValue[1] + " " + endTime
: ""; : "";
let ids = this.ids.join(',') let ids = this.ids.join(",");
let data = { let data = {
endTime:endDate, endTime: endDate,
startTime:startDate, startTime: startDate,
ids:ids, ids: ids,
email:this.email.trim(), email: this.email.trim(),
} organizationName: this.organizationName,
Https.axiosGet(Https.httpUrls.getDesignStatistic,{params:data}).then((rv: any) => { };
if (rv) { Https.axiosGet(Https.httpUrls.getDesignStatistic, {
this.dataList = rv params: data,
// this.workspaceItem.position = this.singleTypeList[0].label }).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, // deleteGroup(record: any, index: number) {
// }; // let deleteGroupFun = (id: any, index: number) => {
// Https.axiosPost(Https.httpUrls.deleteUserGroup, data).then( // let data = {
// (rv: any) => { // userGroupId: id,
// this.dataList.splice(index, 1); // };
// } // Https.axiosPost(Https.httpUrls.deleteUserGroup, data).then(
// ); // (rv: any) => {
// }; // this.dataList.splice(index, 1);
// Modal.confirm({ // }
// title: "", // );
// icon: createVNode(ExclamationCircleOutlined), // };
// okText: "Yes", // Modal.confirm({
// cancelText: "No", // title: "",
// centered: true, // icon: createVNode(ExclamationCircleOutlined),
// mask: false, // okText: "Yes",
// onOk() { // cancelText: "No",
// deleteGroupFun(record.id, index); // centered: true,
// }, // mask: false,
// }); // onOk() {
// }, // deleteGroupFun(record.id, index);
// },
// });
}, // },
}); },
});
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.admin_page .admin_table_search .admin_state { .admin_page .admin_table_search .admin_state {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
} }
</style> </style>

View File

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

View File

@@ -1,228 +1,305 @@
<template> <template>
<div class="admin_page"> <div class="admin_page">
<div class="admin_table_search" > <div class="admin_table_search">
<div class="admin_state"> <div class="admin_state">
<div class="admin_state_item"> <div class="admin_state_item">
<span>Status:</span> <span>Create Time:</span>
<a-select <a-range-picker
v-model:value="status" style="width: 250px"
size="large" class="range_picker"
style="width: 250px" v-model:value="rangePickerValue"
optionFilterProp="label" :placeholder="[
:options="statusList" $t('HistoryPage.StartDate'),
placeholder="Please select" $t('HistoryPage.EndDate'),
allowClear ]"
show-search valueFormat="YYYY-MM-DD"
></a-select> >
</div> <template #suffixIcon>
</div> <span
<div class="admin_search"> class="icon iconfont range_picker_icon icon-rili"
<div class="admin_search_item" @click="searchHistoryList"> ></span>
Search </template>
</div> </a-range-picker>
<div class="admin_search_item" @click="addhHistoryList"> </div>
Add <div class="admin_state_item">
</div> <span>Status:</span>
</div> <a-select
</div> v-model:value="status"
<div class="admin_table_content" ref="historyTable"> size="large"
<a-table style="width: 250px"
@resizeColumn="handleResizeColumn" optionFilterProp="label"
:loading="tableLoading" :options="statusList"
:columns="columns" placeholder="Please select"
:data-source="dataList" @change="changeStatus"
:scroll="{ y: historyTableHeight }" allowClear
@change="changePage" show-search
:showSorterTooltip='false' ></a-select>
:pagination="{ </div>
showSizeChanger: true, <div class="admin_state_item">
current: currentPage, <span>School:</span>
pageSize: pageSize, <a-select
total: total, v-model:value="school"
showQuickJumper: true, size="large"
bordered: false, style="width: 250px"
}" optionFilterProp="label"
> :options="schoolList"
</a-table> placeholder="Please select"
</div> allowClear
show-search
@focus="handleFocus"
></a-select>
</div>
</div>
<div class="admin_search">
<div class="admin_search_item" @click="searchHistoryList">
Search
</div>
<div class="admin_search_item" @click="addhHistoryList">
Add
</div>
</div>
</div>
<div class="admin_table_content" ref="historyTable">
<a-table
@resizeColumn="handleResizeColumn"
:loading="tableLoading"
:columns="columns"
:data-source="dataList"
:scroll="{ y: historyTableHeight }"
@change="changePage"
:showSorterTooltip="false"
:pagination="{
showSizeChanger: true,
current: currentPage,
pageSize: pageSize,
total: total,
showQuickJumper: true,
bordered: false,
}"
>
</a-table>
</div>
<add ref="add" @searchHistoryList="searchHistoryList"></add> <add ref="add" @searchHistoryList="searchHistoryList"></add>
</div> </div>
</template> </template>
<script lang="ts"> <script lang="ts">
import { import {
defineComponent, defineComponent,
ref, ref,
createVNode, createVNode,
computed, computed,
reactive, reactive,
toRefs, toRefs,
onMounted, onMounted,
} from "vue"; } from "vue";
import { formatTime } from "@/tool/util"; import { formatTime } from "@/tool/util";
import { useStore } from "vuex"; import { useStore } from "vuex";
import { Https } from "@/tool/https"; import { Https } from "@/tool/https";
import {getCookie,clonAllCookie} from '@/tool/cookie' import { getCookie, clonAllCookie } from "@/tool/cookie";
import add from './add.vue' import add from "./add.vue";
export default defineComponent({ export default defineComponent({
components: {add}, components: { add },
setup() { setup() {
const store:any = useStore() const store: any = useStore();
let filter: any = reactive({ let filter: any = reactive({
dataList: [], dataList: [],
tableLoading: false, tableLoading: false,
countryList: computed(()=>{ countryList: computed(() => {
return store.state.adminPage.country return store.state.adminPage.country;
}), }),
add:null as any, add: null as any,
status:'', });
}); let filterData: any = reactive({
let filterData: any = reactive({ currentPage: 1,
currentPage: 1, pageSize: 10,
pageSize: 10, total: 0,
total: 0, country: "",
country: "", status: "",
status: "", school: "",
type: "", rangePickerValue: [],
}); });
let selectList=reactive({ let selectList = reactive({
statusList:[ statusList: [
{ {
label: "all", label: "all",
value: "", value: "",
},
{
label: "Enterprise",
value: "Enterprise",
},
{
label: "Education",
value: "Education",
},
],
schoolList: [],
});
let renameData: any = ref({}); //修改名字选中的数据
const columns: any = computed(() => {
return [
{
title: "Id",
align: "center",
dataIndex: "id",
key: "id",
width: 150,
ellipsis: true,
},
{
title: "Name",
align: "center",
dataIndex: "name",
key: "name",
width: 150,
ellipsis: true,
},
{
title: "Create Time",
align: "center",
dataIndex: "createTime",
key: "createTime",
width: 150,
ellipsis: true,
},
{
title: "Type",
align: "center",
dataIndex: "type",
key: "type",
width: 150,
ellipsis: true,
},
];
});
//改变页码
let changePage = (e: any, filters: any, sorter: any) => {
filterData.currentPage = e.current;
filterData.pageSize = e.pageSize;
gettrialList();
};
const filterOption = (e: any) => {
let type = filterData.status;
if (type == "Education") type = "School";
let params = {
name: e,
type,
};
Https.axiosPost(
Https.httpUrls.organizationNameSearch,
{},
{ params: params }
).then((rv: any) => {
if (rv.length == 0) return (selectList.schoolList = []);
selectList.schoolList = rv.map((item: any) => {
return {
label: item,
value: item,
};
});
});
};
//查询列表
let searchHistoryList = () => {
filterData.currentPage = 1;
gettrialList();
};
//获取列表
let gettrialList = () => {
filter.tableLoading = true;
const dateArr = filterData.rangePickerValue;
const startDate = dateArr?.[0] ? dateArr[0] + " " + "00:00:00" : "";
const endDate = dateArr?.[1] ? dateArr[1] + " " + "23:59:59" : "";
const params = {
startTime: startDate,
endTime: endDate,
id: "",
name: filterData.school,
type: filterData.status,
size: filterData.pageSize,
page: filterData.currentPage,
}; //type: "Enterprise"
Https.axiosPost(Https.httpUrls.queryOrganization, params).then(
(rv: any) => {
if (rv) {
console.log(rv);
// filter.dataList = rv;
filter.dataList = rv.records;
filterData.total = rv.total;
filter.tableLoading = false;
// this.workspaceItem.position = this.singleTypeList[0].label
}
}
);
};
let addhHistoryList = () => {
filter.add.init("Add", "");
};
const handleFocus = () => {
if (selectList.schoolList.length == 0) {
filterOption("");
}
};
const changeStatus = () => {
filterData.school = "";
selectList.schoolList = [];
};
onMounted(() => {
gettrialList();
});
return {
...toRefs(filter),
...toRefs(filterData),
...toRefs(selectList),
columns,
renameData,
changePage,
searchHistoryList,
gettrialList,
addhHistoryList,
handleFocus,
changeStatus,
};
},
data() {
return {
historyTableHeight: 0,
handleResizeColumn: (w: any, col: any) => {
col.width = w;
}, },
{ };
label:'Enterprise', },
value:'Enterprise', mounted() {
}, let historyTable: any = this.$refs.historyTable;
{ this.historyTableHeight = historyTable.clientHeight - 200;
label:'Education', },
value:'Education', methods: {},
}, });
],
})
let renameData: any = ref({}); //修改名字选中的数据
const columns: any = computed(() => {
return [
{
title: "Id",
align: "center",
dataIndex: "id",
key: "id",
width:150,
ellipsis:true
},
{
title: "Name",
align: "center",
dataIndex: "name",
key: "name",
width:150,
ellipsis:true
},
{
title: "Create Time",
align: "center",
dataIndex: "createTime",
key: "createTime",
width:150,
ellipsis:true
},
{
title: "Type",
align: "center",
dataIndex: "type",
key: "type",
width:150,
ellipsis:true,
},
];
});
//改变页码
let changePage = (e: any, filters:any, sorter:any) => {
filterData.currentPage = e.current;
filterData.pageSize = e.pageSize;
gettrialList();
};
//查询列表
let searchHistoryList = () => {
filterData.currentPage = 1;
gettrialList();
};
//获取列表
let gettrialList = () => {
filter.tableLoading = true;
Https.axiosGet(Https.httpUrls.queryOrganization, {params:{type:'Enterprise'}}).then(
(rv: any) => {
if (rv) {
console.log(rv)
filter.dataList = rv
// filter.dataList = rv.content;
// filterData.total = rv.total;
filter.tableLoading = false;
// this.workspaceItem.position = this.singleTypeList[0].label
}
}
);
};
let addhHistoryList = () => {
filter.add.init('Add','')
};
onMounted(() => {
gettrialList();
});
return {
...toRefs(filter),
...toRefs(filterData),
...toRefs(selectList),
columns,
renameData,
changePage,
searchHistoryList,
gettrialList,
addhHistoryList,
};
},
data() {
return {
historyTableHeight: 0,
handleResizeColumn: (w: any, col: any) => {
col.width = w;
},
};
},
mounted() {
let historyTable: any = this.$refs.historyTable;
this.historyTableHeight = historyTable.clientHeight - 200;
},
methods: {},
});
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.admin_page .admin_table_search .admin_state { .admin_page .admin_table_search .admin_state {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
}
:deep(.operate_list){
.fi{
font-size: 2rem;
margin-right: 1rem;
} }
.success{ :deep(.operate_list) {
.fi-ss-check-circle{ .fi {
color: #3ab45c; font-size: 2rem;
margin-right: 1rem;
}
.success {
.fi-ss-check-circle {
color: #3ab45c;
}
}
.pending {
.fi-ss-check-circle {
color: #ffc628;
}
}
.fail {
.fi-ss-check-circle {
color: #ff0000;
}
} }
} }
.pending{
.fi-ss-check-circle{
color: #ffc628;
}
}
.fail{
.fi-ss-check-circle{
color: #ff0000;
}
}
}
</style> </style>