fix
This commit is contained in:
4
.env.dev
4
.env.dev
@@ -3,6 +3,6 @@ NODE_ENV = 'development'
|
|||||||
# VUE_APP_BASE_URL = 'https://api.aida.com.hk'
|
# VUE_APP_BASE_URL = 'https://api.aida.com.hk'
|
||||||
|
|
||||||
# VUE_APP_BASE_URL = 'http://18.167.251.121:10086'
|
# VUE_APP_BASE_URL = 'http://18.167.251.121:10086'
|
||||||
# VUE_APP_BASE_URL = 'https://develop.api.aida.com.hk'
|
VUE_APP_BASE_URL = 'https://develop.api.aida.com.hk'
|
||||||
# VUE_APP_BASE_URL = 'http://192.168.1.9:17088'
|
# VUE_APP_BASE_URL = 'http://192.168.1.9:17088'
|
||||||
VUE_APP_BASE_URL = 'http://192.168.1.7:5567'
|
# VUE_APP_BASE_URL = 'http://192.168.1.7:5567'
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
@font-face {
|
@font-face {
|
||||||
font-family: "iconfont"; /* Project id */
|
font-family: "iconfont"; /* Project id */
|
||||||
src: url('iconfont.ttf?t=1709865709415') format('truetype');
|
src: url('iconfont.ttf?t=1709874981482') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
.iconfont {
|
.iconfont {
|
||||||
@@ -87,3 +87,19 @@
|
|||||||
content: "\e62d";
|
content: "\e62d";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.icon-shenpi:before {
|
||||||
|
content: "\e6a1";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-yonghu:before {
|
||||||
|
content: "\e617";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-usetime:before {
|
||||||
|
content: "\e601";
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-xiala:before {
|
||||||
|
content: "\e634";
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -137,6 +137,34 @@
|
|||||||
"font_class": "tuceng1",
|
"font_class": "tuceng1",
|
||||||
"unicode": "e62d",
|
"unicode": "e62d",
|
||||||
"unicode_decimal": 58925
|
"unicode_decimal": 58925
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "130751283",
|
||||||
|
"name": "审批",
|
||||||
|
"font_class": "shenpi",
|
||||||
|
"unicode": "e6a1",
|
||||||
|
"unicode_decimal": 59041
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "130751284",
|
||||||
|
"name": "用户",
|
||||||
|
"font_class": "yonghu",
|
||||||
|
"unicode": "e617",
|
||||||
|
"unicode_decimal": 58903
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "130751285",
|
||||||
|
"name": "使用次数",
|
||||||
|
"font_class": "usetime",
|
||||||
|
"unicode": "e601",
|
||||||
|
"unicode_decimal": 58881
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"icon_id": "130751286",
|
||||||
|
"name": "下拉",
|
||||||
|
"font_class": "xiala",
|
||||||
|
"unicode": "e634",
|
||||||
|
"unicode_decimal": 58932
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
@@ -291,86 +291,85 @@ li {
|
|||||||
top: 0.1rem;
|
top: 0.1rem;
|
||||||
width: 0.3rem;
|
width: 0.3rem;
|
||||||
}
|
}
|
||||||
.ant-select-allow-clear {
|
.trial_page .ant-select-allow-clear {
|
||||||
font-size: 1.2rem;
|
|
||||||
height: 3rem;
|
|
||||||
}
|
|
||||||
.ant-select-allow-clear .ant-select-selector {
|
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.ant-select-allow-clear .ant-select-selector .ant-select-selection-overflow {
|
.trial_page .ant-select-allow-clear .ant-select-selector {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
.ant-select-allow-clear .ant-select-selector .ant-select-selection-overflow .ant-select-selection-overflow-item {
|
.trial_page .ant-select-allow-clear .ant-select-selector .ant-select-selection-overflow {
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
.trial_page .ant-select-allow-clear .ant-select-selector .ant-select-selection-overflow .ant-select-selection-overflow-item {
|
||||||
height: 80%;
|
height: 80%;
|
||||||
}
|
}
|
||||||
.ant-select-allow-clear .ant-select-selector .ant-select-selection-overflow .ant-select-selection-overflow-item .ant-select-selection-item {
|
.trial_page .ant-select-allow-clear .ant-select-selector .ant-select-selection-overflow .ant-select-selection-overflow-item .ant-select-selection-item {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
margin-right: 0.4rem;
|
margin-right: 0.4rem;
|
||||||
background-color: #e1d9ec;
|
background-color: #e1d9ec;
|
||||||
}
|
}
|
||||||
.ant-select-allow-clear .ant-select-selector .ant-select-selection-overflow .ant-select-selection-overflow-item .ant-select-selection-item .ant-select-selection-item-content {
|
.trial_page .ant-select-allow-clear .ant-select-selector .ant-select-selection-overflow .ant-select-selection-overflow-item .ant-select-selection-item .ant-select-selection-item-content {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
line-height: 1.7;
|
line-height: 1.7;
|
||||||
}
|
}
|
||||||
.ant-select-allow-clear .ant-select-selector .ant-select-selection-overflow .ant-select-selection-overflow-item .ant-select-selection-item .ant-select-selection-item-remove {
|
.trial_page .ant-select-allow-clear .ant-select-selector .ant-select-selection-overflow .ant-select-selection-overflow-item .ant-select-selection-item .ant-select-selection-item-remove {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
.ant-select-allow-clear .ant-select-selector::after {
|
.trial_page .ant-select-allow-clear .ant-select-selector::after {
|
||||||
line-height: 1;
|
line-height: 1;
|
||||||
}
|
}
|
||||||
.ant-select-allow-clear.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {
|
.trial_page .ant-select-allow-clear.ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector {
|
||||||
box-shadow: 0 0 0 2px rgba(24, 144, 255, 0);
|
box-shadow: 0 0 0 2px rgba(24, 144, 255, 0);
|
||||||
border: 1px solid #d9d9d9;
|
border: 1px solid #d9d9d9;
|
||||||
}
|
}
|
||||||
.ant-select:not(.ant-select-disabled):hover .ant-select-selector {
|
.trial_page .ant-select:not(.ant-select-disabled):hover .ant-select-selector {
|
||||||
border: 1px solid #d9d9d9;
|
border: 1px solid #d9d9d9;
|
||||||
}
|
}
|
||||||
.ant-select-dropdown {
|
.trial_page .ant-select-dropdown {
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
}
|
}
|
||||||
.ant-select-dropdown .ant-cascader-menu-item {
|
.trial_page .ant-select-dropdown .ant-cascader-menu-item {
|
||||||
padding: 0.5rem 1.2rem;
|
padding: 0.5rem 1.2rem;
|
||||||
line-height: 2.2rem;
|
line-height: 2.2rem;
|
||||||
}
|
}
|
||||||
.ant-select-dropdown .ant-cascader-menu-item .ant-cascader-checkbox {
|
.trial_page .ant-select-dropdown .ant-cascader-menu-item .ant-cascader-checkbox {
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
}
|
}
|
||||||
.ant-select-dropdown .ant-cascader-menu-item .ant-cascader-checkbox :hover .ant-cascader-checkbox-inner {
|
.trial_page .ant-select-dropdown .ant-cascader-menu-item .ant-cascader-checkbox :hover .ant-cascader-checkbox-inner {
|
||||||
border: 1px solid #d9d9d9;
|
border: 1px solid #d9d9d9;
|
||||||
}
|
}
|
||||||
.ant-select-dropdown .ant-cascader-menu-item .ant-cascader-checkbox .ant-cascader-checkbox-inner {
|
.trial_page .ant-select-dropdown .ant-cascader-menu-item .ant-cascader-checkbox .ant-cascader-checkbox-inner {
|
||||||
width: 1.6rem;
|
width: 1.6rem;
|
||||||
height: 1.6rem;
|
height: 1.6rem;
|
||||||
}
|
}
|
||||||
.ant-select-dropdown .ant-cascader-menu-item .ant-cascader-checkbox .ant-cascader-checkbox-inner::after {
|
.trial_page .ant-select-dropdown .ant-cascader-menu-item .ant-cascader-checkbox .ant-cascader-checkbox-inner::after {
|
||||||
width: 0.8rem;
|
width: 0.8rem;
|
||||||
height: 0.8rem;
|
height: 0.8rem;
|
||||||
}
|
}
|
||||||
.ant-cascader-checkbox-checked .ant-cascader-checkbox-inner {
|
.trial_page .ant-cascader-checkbox-checked .ant-cascader-checkbox-inner {
|
||||||
background-color: #767676;
|
background-color: #767676;
|
||||||
border-color: #d9d9d9 !important;
|
border-color: #d9d9d9 !important;
|
||||||
}
|
}
|
||||||
.ant-cascader-checkbox-checked::after {
|
.trial_page .ant-cascader-checkbox-checked::after {
|
||||||
border-color: #d9d9d9;
|
border-color: #d9d9d9;
|
||||||
}
|
}
|
||||||
.ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-inner,
|
.trial_page .ant-cascader-checkbox-wrapper:hover .ant-cascader-checkbox-inner,
|
||||||
.ant-cascader-checkbox:hover .ant-cascader-checkbox-inner,
|
.trial_page .ant-cascader-checkbox:hover .ant-cascader-checkbox-inner,
|
||||||
.ant-cascader-checkbox-input:focus + .ant-cascader-checkbox-inner {
|
.trial_page .ant-cascader-checkbox-input:focus + .ant-cascader-checkbox-inner {
|
||||||
border-color: #d9d9d9;
|
border-color: #d9d9d9;
|
||||||
}
|
}
|
||||||
.ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner::after {
|
.trial_page .ant-cascader-checkbox-indeterminate .ant-cascader-checkbox-inner::after {
|
||||||
background-color: #767676;
|
background-color: #767676;
|
||||||
}
|
}
|
||||||
.ant-checkbox-wrapper-disabled .ant-checkbox-disabled .ant-checkbox-inner {
|
.trial_page .ant-checkbox-wrapper-disabled .ant-checkbox-disabled .ant-checkbox-inner {
|
||||||
background-color: #d9d9d9;
|
background-color: #d9d9d9;
|
||||||
}
|
}
|
||||||
.ant-checkbox-wrapper-disabled .ant-checkbox-disabled .ant-checkbox-inner::after {
|
.trial_page .ant-checkbox-wrapper-disabled .ant-checkbox-disabled .ant-checkbox-inner::after {
|
||||||
border-color: #eeeeee;
|
border-color: #eeeeee;
|
||||||
}
|
}
|
||||||
.ant-modal-mask {
|
.ant-modal-mask {
|
||||||
|
|||||||
@@ -342,11 +342,13 @@ input:focus{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.trial_page{
|
||||||
|
|
||||||
//Library多级菜单
|
//Library多级菜单
|
||||||
.ant-select-allow-clear{
|
.ant-select-allow-clear{
|
||||||
font-size: 1.2rem;
|
// font-size: 1.2rem;
|
||||||
height: 3rem;
|
// height: 3rem;
|
||||||
|
height: 100%;
|
||||||
.ant-select-selector{
|
.ant-select-selector{
|
||||||
height: 100%;
|
height: 100%;
|
||||||
.ant-select-selection-overflow{
|
.ant-select-selection-overflow{
|
||||||
@@ -430,6 +432,7 @@ input:focus{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.ant-modal-mask{
|
.ant-modal-mask{
|
||||||
background: linear-gradient(45deg, #eee4f3, #f3f4e6);
|
background: linear-gradient(45deg, #eee4f3, #f3f4e6);
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="trial_page">
|
<div class="test_cli">
|
||||||
<div class="page_content">
|
<div class="page_content">
|
||||||
<img
|
<img
|
||||||
class="page_content_bg"
|
class="page_content_bg"
|
||||||
src="@/assets/images/homePage/bg1.jpg"
|
src="@/assets/images/homePage/bg1.jpg"
|
||||||
/>
|
/>
|
||||||
<div class="page_content_body">
|
<div class="page_content_body">
|
||||||
<div class="trial_page_body">
|
<div class="test_cli_body">
|
||||||
<div class="trial_table_search">
|
<div class="trial_table_search">
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
class="range_picker"
|
class="range_picker"
|
||||||
@@ -329,7 +329,7 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
<style lang="less">
|
<style lang="less">
|
||||||
.trial_page {
|
.test_cli {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
@@ -349,10 +349,9 @@ export default defineComponent({
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
|
||||||
.trial_page_body {
|
.test_cli_body {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: calc(100% - 7rem);
|
height: calc(100% - 7rem);
|
||||||
padding: 0 2.5rem 4rem;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
.trial_table_search {
|
.trial_table_search {
|
||||||
display: flex;
|
display: flex;
|
||||||
435
src/component/Administrator/allUser.vue
Normal file
435
src/component/Administrator/allUser.vue
Normal file
@@ -0,0 +1,435 @@
|
|||||||
|
<template>
|
||||||
|
<div class="allUser_page">
|
||||||
|
<div class="allUser_table_search">
|
||||||
|
<!-- <div class="allUser_state">
|
||||||
|
<div class="allUser_state_item allUser_table_voluntarily">
|
||||||
|
<span>voluntarily:</span>
|
||||||
|
<a-switch v-model:checked="voluntarily" @change="setIsAutoApproval" />
|
||||||
|
</div>
|
||||||
|
<div class="allUser_state_item">
|
||||||
|
<span>State:</span>
|
||||||
|
<a-select v-model:value="currentState.value" size="large" style="width:280px" optionFilterProp="label" :options="state" placeholder="Please select" allowClear show-search></a-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="allUser_search">
|
||||||
|
<div class="allUser_search_item" @click="searchHistoryList">Search</div>
|
||||||
|
</div> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="allUser_table_content" ref="historyTable">
|
||||||
|
<a-table
|
||||||
|
:columns="columns"
|
||||||
|
:data-source="collectionList"
|
||||||
|
:scroll="{ y: historyTableHeight }"
|
||||||
|
@change="changePage"
|
||||||
|
:pagination="{
|
||||||
|
showSizeChanger: true,
|
||||||
|
current: currentPage,
|
||||||
|
pageSize: pageSize,
|
||||||
|
total: total,
|
||||||
|
showQuickJumper: true,
|
||||||
|
bordered: false,
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<template
|
||||||
|
#bodyCell="{ column, text, record, index }"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="operate_list"
|
||||||
|
v-if="column?.Operations"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
v-show="status == 0"
|
||||||
|
class="operate_item"
|
||||||
|
@click="setConsent(record, index)"
|
||||||
|
>
|
||||||
|
consent
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-show="status == 0"
|
||||||
|
class="operate_item"
|
||||||
|
@click="setRefuse(record, index)"
|
||||||
|
>
|
||||||
|
refuse
|
||||||
|
</div>
|
||||||
|
<!-- <div
|
||||||
|
class="operate_item"
|
||||||
|
@click="deleteGroup(record, index)"
|
||||||
|
>
|
||||||
|
Delete
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent, ref, createVNode, computed } from "vue";
|
||||||
|
import { setCookie, getCookie, WriteCookie } from "@/tool/cookie";
|
||||||
|
import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||||
|
import HistoryDetail from "@/component/Detail/HistoryDetail.vue";
|
||||||
|
import router from "@/router/index";
|
||||||
|
import { Https } from "@/tool/https";
|
||||||
|
import { formatTime } from "@/tool/util";
|
||||||
|
import { Modal, message } from "ant-design-vue";
|
||||||
|
import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
||||||
|
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
||||||
|
import { useI18n } from "vue-i18n";
|
||||||
|
export default defineComponent({
|
||||||
|
components: {
|
||||||
|
HeaderComponent,
|
||||||
|
HistoryDetail,
|
||||||
|
RobotAssist,
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
let renameData: any = ref({}); //修改名字选中的数据
|
||||||
|
const columns: any = computed(() => {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
title: 'Email',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "email",
|
||||||
|
key: "email",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Create Time',
|
||||||
|
align: "center",
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "updateTime",
|
||||||
|
key: "updateTime",
|
||||||
|
// customRender: (record: any) => {
|
||||||
|
// let time = formatTime(
|
||||||
|
// record.text / 1000,
|
||||||
|
// "YYYY-MM-DD hh:mm:ss"
|
||||||
|
// );
|
||||||
|
// return time;
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'State',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "status",
|
||||||
|
key: "status",
|
||||||
|
customRender: (record: any) => {
|
||||||
|
let str
|
||||||
|
if(record.value == 0){
|
||||||
|
str ='pending'
|
||||||
|
}else if(record.value == 1){
|
||||||
|
str ='consent'
|
||||||
|
}else if(record.value == 2){
|
||||||
|
str ='reject'
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Address',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "country",
|
||||||
|
key: "country",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Surname',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "surname",
|
||||||
|
key: "surname",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Name',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "userName",
|
||||||
|
key: "userName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Operations',
|
||||||
|
key: "operation",
|
||||||
|
align: "center",
|
||||||
|
fixed: "right",
|
||||||
|
width: 70,
|
||||||
|
// slots:{customRender:'action'}
|
||||||
|
Operations: true,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
let currentState = ref({
|
||||||
|
name:'all',
|
||||||
|
value:'',
|
||||||
|
state:false,
|
||||||
|
},)
|
||||||
|
let state:any = ref([
|
||||||
|
{
|
||||||
|
label:'all',
|
||||||
|
value:'',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:'pending',
|
||||||
|
value:0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:'consent',
|
||||||
|
value:1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:'rejected',
|
||||||
|
value:2,
|
||||||
|
},
|
||||||
|
])
|
||||||
|
let collectionList: any = ref([]);
|
||||||
|
let userInfo: any = {};
|
||||||
|
let status: any = ref(0);
|
||||||
|
let voluntarily: any = ref(false);
|
||||||
|
return {
|
||||||
|
columns,
|
||||||
|
collectionList,
|
||||||
|
renameData,
|
||||||
|
userInfo,
|
||||||
|
status,
|
||||||
|
currentState,
|
||||||
|
state,
|
||||||
|
voluntarily,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
currentPage: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
total: 0,
|
||||||
|
historyTableHeight: 0,
|
||||||
|
newCollectionName: "",
|
||||||
|
renameVisivle: false, //修改名字弹窗
|
||||||
|
collectionName: "", //选中的名字
|
||||||
|
searchCollectionName: "",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
let historyTable: any = this.$refs.historyTable;
|
||||||
|
this.historyTableHeight = historyTable.clientHeight - 130;
|
||||||
|
this.gettrialList();
|
||||||
|
let userInfo:any = getCookie("userInfo")
|
||||||
|
this.userInfo = JSON.parse(userInfo);
|
||||||
|
this.getIsAutoApproval()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//改变页码
|
||||||
|
changePage(e: any) {
|
||||||
|
this.currentPage = e.current;
|
||||||
|
this.pageSize = e.pageSize;
|
||||||
|
this.gettrialList();
|
||||||
|
},
|
||||||
|
//获取是否自动审批
|
||||||
|
getIsAutoApproval(){
|
||||||
|
Https.axiosPost(Https.httpUrls.getIsAutoApproval, {}).then(
|
||||||
|
(rv: any) => {
|
||||||
|
this.voluntarily = rv
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
//查询列表
|
||||||
|
searchHistoryList() {
|
||||||
|
this.currentPage = 1;
|
||||||
|
this.gettrialList();
|
||||||
|
},
|
||||||
|
|
||||||
|
setIsAutoApproval(){
|
||||||
|
Https.axiosPost(Https.httpUrls.switchIsAutoApproval, {}).then(
|
||||||
|
(rv: any) => {
|
||||||
|
this.getIsAutoApproval
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
//获取列表
|
||||||
|
gettrialList() {
|
||||||
|
let data = {
|
||||||
|
page: this.currentPage,
|
||||||
|
size: this.pageSize,
|
||||||
|
status: this.currentState.value,
|
||||||
|
// startDate:startDate,
|
||||||
|
// endDate:endDate
|
||||||
|
};
|
||||||
|
Https.axiosPost(Https.httpUrls.trialOrderList, data).then(
|
||||||
|
(rv: any) => {
|
||||||
|
this.collectionList = rv.content;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
setConsent(record: any, index: number){
|
||||||
|
const formData = new FormData()
|
||||||
|
formData.append('ids',record.id)
|
||||||
|
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
||||||
|
Https.axiosPost(Https.httpUrls.trialOrderApproval, {ids:record.id}).then(
|
||||||
|
(rv: any) => {
|
||||||
|
message.success('同意成功~')
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
setRefuse(record: any, index: number){
|
||||||
|
const formData = new FormData()
|
||||||
|
formData.append('ids',record.id)
|
||||||
|
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
||||||
|
Https.axiosPost(Https.httpUrls.trialOrderRefuse, formData,config).then(
|
||||||
|
(rv: any) => {
|
||||||
|
this.gettrialList();
|
||||||
|
message.success('拒绝成功~')
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
setState(){
|
||||||
|
this.currentState.state = true
|
||||||
|
},
|
||||||
|
setStateItem(item:any){
|
||||||
|
this.currentState = item
|
||||||
|
this.currentState.state = false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
.allUser_page {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
// min-width: 1440px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.allUser_table_search {
|
||||||
|
display: flex;
|
||||||
|
margin-top: 2rem;
|
||||||
|
padding: 2rem 3.5rem 5rem 2.8rem;
|
||||||
|
background: #fff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.allUser_search{
|
||||||
|
width: 40%;
|
||||||
|
.allUser_search_item{
|
||||||
|
background: #343579;
|
||||||
|
border-color: #343579;
|
||||||
|
height: 4rem;
|
||||||
|
padding: .64rem 1.5rem;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
border-radius: 2px;
|
||||||
|
display: inline-block;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.allUser_state {
|
||||||
|
position: relative;
|
||||||
|
cursor: pointer;
|
||||||
|
width: 60%;
|
||||||
|
.allUser_state_item{
|
||||||
|
margin-right: 2rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
>span{
|
||||||
|
font-size: 1.6rem;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #030303;
|
||||||
|
margin-right: 15px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
display: block;
|
||||||
|
min-width: 13rem;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.allUser_current{
|
||||||
|
background: #fff;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.header_user_content {
|
||||||
|
position: absolute;
|
||||||
|
border: 2px solid;
|
||||||
|
border-radius: 1rem;
|
||||||
|
overflow: hidden;
|
||||||
|
top: 0;
|
||||||
|
transform: translateY(6rem);
|
||||||
|
z-index: 2;
|
||||||
|
display: none;
|
||||||
|
margin-left: -2rem;
|
||||||
|
.username{
|
||||||
|
padding: 0 2rem;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.username:hover{
|
||||||
|
background: #e1e1e1;
|
||||||
|
}
|
||||||
|
&.active{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.allUser_table_content {
|
||||||
|
margin-top: 2.6rem;
|
||||||
|
width: 100%;
|
||||||
|
height: calc(100% - 13.7rem);
|
||||||
|
padding-bottom: 3rem;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 2rem;
|
||||||
|
overflow: hidden;
|
||||||
|
.ant-table {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-table-body {
|
||||||
|
overflow-y: auto !important;
|
||||||
|
-ms-overflow-style: none;
|
||||||
|
overflow: -moz-scrollbars-none;
|
||||||
|
|
||||||
|
&::-webkit-scrollbar {
|
||||||
|
width: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ant-table-thead > tr > th {
|
||||||
|
background: #ffffff00;
|
||||||
|
border-bottom: none;
|
||||||
|
backdrop-filter: blur(1rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-table-tbody > tr > td {
|
||||||
|
border: none;
|
||||||
|
background: transparent;
|
||||||
|
// color: #fff;
|
||||||
|
}
|
||||||
|
.ant-table-tbody > tr {
|
||||||
|
&:hover > td {
|
||||||
|
background: #ffffff3a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ant-table-pagination-right {
|
||||||
|
padding-right: 3.5rem;
|
||||||
|
}
|
||||||
|
.operate_list {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 1rem;
|
||||||
|
|
||||||
|
.operate_item {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
font-family: Roboto;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #343579;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
435
src/component/Administrator/trialApproval.vue
Normal file
435
src/component/Administrator/trialApproval.vue
Normal file
@@ -0,0 +1,435 @@
|
|||||||
|
<template>
|
||||||
|
<div class="trial_page">
|
||||||
|
<div class="trial_table_search">
|
||||||
|
<div class="trial_state">
|
||||||
|
<div class="trial_state_item trial_table_voluntarily">
|
||||||
|
<span>voluntarily:</span>
|
||||||
|
<a-switch v-model:checked="voluntarily" @change="setIsAutoApproval" />
|
||||||
|
</div>
|
||||||
|
<div class="trial_state_item">
|
||||||
|
<span>State:</span>
|
||||||
|
<a-select v-model:value="currentState.value" size="large" style="width:280px" optionFilterProp="label" :options="state" placeholder="Please select" allowClear show-search></a-select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="trial_search">
|
||||||
|
<div class="trial_search_item" @click="searchHistoryList">Search</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="trial_table_content" ref="historyTable">
|
||||||
|
<a-table
|
||||||
|
:columns="columns"
|
||||||
|
:data-source="collectionList"
|
||||||
|
:scroll="{ y: historyTableHeight }"
|
||||||
|
@change="changePage"
|
||||||
|
:pagination="{
|
||||||
|
showSizeChanger: true,
|
||||||
|
current: currentPage,
|
||||||
|
pageSize: pageSize,
|
||||||
|
total: total,
|
||||||
|
showQuickJumper: true,
|
||||||
|
bordered: false,
|
||||||
|
}"
|
||||||
|
>
|
||||||
|
<template
|
||||||
|
#bodyCell="{ column, text, record, index }"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="operate_list"
|
||||||
|
v-if="column?.Operations"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
v-show="status == 0"
|
||||||
|
class="operate_item"
|
||||||
|
@click="setConsent(record, index)"
|
||||||
|
>
|
||||||
|
consent
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
v-show="status == 0"
|
||||||
|
class="operate_item"
|
||||||
|
@click="setRefuse(record, index)"
|
||||||
|
>
|
||||||
|
refuse
|
||||||
|
</div>
|
||||||
|
<!-- <div
|
||||||
|
class="operate_item"
|
||||||
|
@click="deleteGroup(record, index)"
|
||||||
|
>
|
||||||
|
Delete
|
||||||
|
</div> -->
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
import { defineComponent, ref, createVNode, computed } from "vue";
|
||||||
|
import { setCookie, getCookie, WriteCookie } from "@/tool/cookie";
|
||||||
|
import HeaderComponent from "@/component/HomePage/Header.vue";
|
||||||
|
import HistoryDetail from "@/component/Detail/HistoryDetail.vue";
|
||||||
|
import router from "@/router/index";
|
||||||
|
import { Https } from "@/tool/https";
|
||||||
|
import { formatTime } from "@/tool/util";
|
||||||
|
import { Modal, message } from "ant-design-vue";
|
||||||
|
import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
||||||
|
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
||||||
|
import { useI18n } from "vue-i18n";
|
||||||
|
export default defineComponent({
|
||||||
|
components: {
|
||||||
|
HeaderComponent,
|
||||||
|
HistoryDetail,
|
||||||
|
RobotAssist,
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
let renameData: any = ref({}); //修改名字选中的数据
|
||||||
|
const columns: any = computed(() => {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
title: 'Email',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "email",
|
||||||
|
key: "email",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Create Time',
|
||||||
|
align: "center",
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "updateTime",
|
||||||
|
key: "updateTime",
|
||||||
|
// customRender: (record: any) => {
|
||||||
|
// let time = formatTime(
|
||||||
|
// record.text / 1000,
|
||||||
|
// "YYYY-MM-DD hh:mm:ss"
|
||||||
|
// );
|
||||||
|
// return time;
|
||||||
|
// },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'State',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "status",
|
||||||
|
key: "status",
|
||||||
|
customRender: (record: any) => {
|
||||||
|
let str
|
||||||
|
if(record.value == 0){
|
||||||
|
str ='pending'
|
||||||
|
}else if(record.value == 1){
|
||||||
|
str ='consent'
|
||||||
|
}else if(record.value == 2){
|
||||||
|
str ='reject'
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Address',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "country",
|
||||||
|
key: "country",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Surname',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "surname",
|
||||||
|
key: "surname",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Name',
|
||||||
|
align: "center",
|
||||||
|
ellipsis: true,
|
||||||
|
width: 70,
|
||||||
|
dataIndex: "userName",
|
||||||
|
key: "userName",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Operations',
|
||||||
|
key: "operation",
|
||||||
|
align: "center",
|
||||||
|
fixed: "right",
|
||||||
|
width: 70,
|
||||||
|
// slots:{customRender:'action'}
|
||||||
|
Operations: true,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
let currentState = ref({
|
||||||
|
name:'all',
|
||||||
|
value:'',
|
||||||
|
state:false,
|
||||||
|
},)
|
||||||
|
let state:any = ref([
|
||||||
|
{
|
||||||
|
label:'all',
|
||||||
|
value:'',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:'pending',
|
||||||
|
value:0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:'consent',
|
||||||
|
value:1,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
label:'rejected',
|
||||||
|
value:2,
|
||||||
|
},
|
||||||
|
])
|
||||||
|
let collectionList: any = ref([]);
|
||||||
|
let userInfo: any = {};
|
||||||
|
let status: any = ref(0);
|
||||||
|
let voluntarily: any = ref(false);
|
||||||
|
return {
|
||||||
|
columns,
|
||||||
|
collectionList,
|
||||||
|
renameData,
|
||||||
|
userInfo,
|
||||||
|
status,
|
||||||
|
currentState,
|
||||||
|
state,
|
||||||
|
voluntarily,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
currentPage: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
total: 0,
|
||||||
|
historyTableHeight: 0,
|
||||||
|
newCollectionName: "",
|
||||||
|
renameVisivle: false, //修改名字弹窗
|
||||||
|
collectionName: "", //选中的名字
|
||||||
|
searchCollectionName: "",
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
let historyTable: any = this.$refs.historyTable;
|
||||||
|
this.historyTableHeight = historyTable.clientHeight - 130;
|
||||||
|
this.gettrialList();
|
||||||
|
let userInfo:any = getCookie("userInfo")
|
||||||
|
this.userInfo = JSON.parse(userInfo);
|
||||||
|
this.getIsAutoApproval()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
//改变页码
|
||||||
|
changePage(e: any) {
|
||||||
|
this.currentPage = e.current;
|
||||||
|
this.pageSize = e.pageSize;
|
||||||
|
this.gettrialList();
|
||||||
|
},
|
||||||
|
//获取是否自动审批
|
||||||
|
getIsAutoApproval(){
|
||||||
|
Https.axiosPost(Https.httpUrls.getIsAutoApproval, {}).then(
|
||||||
|
(rv: any) => {
|
||||||
|
this.voluntarily = rv
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
//查询列表
|
||||||
|
searchHistoryList() {
|
||||||
|
this.currentPage = 1;
|
||||||
|
this.gettrialList();
|
||||||
|
},
|
||||||
|
|
||||||
|
setIsAutoApproval(){
|
||||||
|
Https.axiosPost(Https.httpUrls.switchIsAutoApproval, {}).then(
|
||||||
|
(rv: any) => {
|
||||||
|
this.getIsAutoApproval
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
|
//获取列表
|
||||||
|
gettrialList() {
|
||||||
|
let data = {
|
||||||
|
page: this.currentPage,
|
||||||
|
size: this.pageSize,
|
||||||
|
status: this.currentState.value,
|
||||||
|
// startDate:startDate,
|
||||||
|
// endDate:endDate
|
||||||
|
};
|
||||||
|
Https.axiosPost(Https.httpUrls.trialOrderList, data).then(
|
||||||
|
(rv: any) => {
|
||||||
|
this.collectionList = rv.content;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
setConsent(record: any, index: number){
|
||||||
|
const formData = new FormData()
|
||||||
|
formData.append('ids',record.id)
|
||||||
|
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
||||||
|
Https.axiosPost(Https.httpUrls.trialOrderApproval, {ids:record.id}).then(
|
||||||
|
(rv: any) => {
|
||||||
|
message.success('同意成功~')
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
setRefuse(record: any, index: number){
|
||||||
|
const formData = new FormData()
|
||||||
|
formData.append('ids',record.id)
|
||||||
|
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
||||||
|
Https.axiosPost(Https.httpUrls.trialOrderRefuse, formData,config).then(
|
||||||
|
(rv: any) => {
|
||||||
|
this.gettrialList();
|
||||||
|
message.success('拒绝成功~')
|
||||||
|
}
|
||||||
|
);
|
||||||
|
},
|
||||||
|
setState(){
|
||||||
|
this.currentState.state = true
|
||||||
|
},
|
||||||
|
setStateItem(item:any){
|
||||||
|
this.currentState = item
|
||||||
|
this.currentState.state = false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
.trial_page {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
// min-width: 1440px;
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
.trial_table_search {
|
||||||
|
display: flex;
|
||||||
|
margin-top: 2rem;
|
||||||
|
padding: 2rem 3.5rem 5rem 2.8rem;
|
||||||
|
background: #fff;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
.trial_search{
|
||||||
|
width: 40%;
|
||||||
|
.trial_search_item{
|
||||||
|
background: #343579;
|
||||||
|
border-color: #343579;
|
||||||
|
height: 4rem;
|
||||||
|
padding: .64rem 1.5rem;
|
||||||
|
font-size: 1.6rem;
|
||||||
|
border-radius: 2px;
|
||||||
|
display: inline-block;
|
||||||
|
color: #fff;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.trial_state {
|
||||||
|
position: relative;
|
||||||
|
cursor: pointer;
|
||||||
|
width: 60%;
|
||||||
|
.trial_state_item{
|
||||||
|
margin-right: 2rem;
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
>span{
|
||||||
|
font-size: 1.6rem;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #030303;
|
||||||
|
margin-right: 15px;
|
||||||
|
flex-shrink: 0;
|
||||||
|
display: block;
|
||||||
|
min-width: 13rem;
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.trial_current{
|
||||||
|
background: #fff;
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
}
|
||||||
|
.header_user_content {
|
||||||
|
position: absolute;
|
||||||
|
border: 2px solid;
|
||||||
|
border-radius: 1rem;
|
||||||
|
overflow: hidden;
|
||||||
|
top: 0;
|
||||||
|
transform: translateY(6rem);
|
||||||
|
z-index: 2;
|
||||||
|
display: none;
|
||||||
|
margin-left: -2rem;
|
||||||
|
.username{
|
||||||
|
padding: 0 2rem;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
.username:hover{
|
||||||
|
background: #e1e1e1;
|
||||||
|
}
|
||||||
|
&.active{
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.trial_table_content {
|
||||||
|
margin-top: 2.6rem;
|
||||||
|
width: 100%;
|
||||||
|
height: calc(100% - 13.7rem);
|
||||||
|
padding-bottom: 3rem;
|
||||||
|
background: #fff;
|
||||||
|
border-radius: 2rem;
|
||||||
|
overflow: hidden;
|
||||||
|
.ant-table {
|
||||||
|
background: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-table-body {
|
||||||
|
overflow-y: auto !important;
|
||||||
|
-ms-overflow-style: none;
|
||||||
|
overflow: -moz-scrollbars-none;
|
||||||
|
|
||||||
|
&::-webkit-scrollbar {
|
||||||
|
width: 0 !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ant-table-thead > tr > th {
|
||||||
|
background: #ffffff00;
|
||||||
|
border-bottom: none;
|
||||||
|
backdrop-filter: blur(1rem);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-table-tbody > tr > td {
|
||||||
|
border: none;
|
||||||
|
background: transparent;
|
||||||
|
// color: #fff;
|
||||||
|
}
|
||||||
|
.ant-table-tbody > tr {
|
||||||
|
&:hover > td {
|
||||||
|
background: #ffffff3a;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.ant-table-pagination-right {
|
||||||
|
padding-right: 3.5rem;
|
||||||
|
}
|
||||||
|
.operate_list {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 0 1rem;
|
||||||
|
|
||||||
|
.operate_item {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
font-family: Roboto;
|
||||||
|
font-weight: 400;
|
||||||
|
color: #343579;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -142,9 +142,12 @@
|
|||||||
<input type="number" @input="setMaxInput('height', 10000)" v-model="canvasWH.height" />
|
<input type="number" @input="setMaxInput('height', 10000)" v-model="canvasWH.height" />
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="" @click="multiselect">all</div>
|
<!-- <div class="" @click="multiselect">all</div> -->
|
||||||
|
<div class="exportCanvasBox_right_credits" v-show="credits<1">
|
||||||
|
<div><span class="icon iconfont icon-zhuyi"></span>Your points balance is insufficient, if you need to use this feature, please click the top left corner to recharge</div>
|
||||||
|
</div>
|
||||||
<div class="exportCanvasBox_right_btn">
|
<div class="exportCanvasBox_right_btn">
|
||||||
<div class="subitOkPreviewBtn" @click="setHDExport">HD Export</div>
|
<div class="subitOkPreviewBtn" :class="{active:credits<1}" @click="setHDExport">HD Export</div>
|
||||||
<div class="subitOkPreviewBtn" @click="setExport">Export</div>
|
<div class="subitOkPreviewBtn" @click="setExport">Export</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -183,12 +186,10 @@ export default defineComponent({
|
|||||||
});
|
});
|
||||||
canvasWH.value.width = [window.innerWidth/2.4]
|
canvasWH.value.width = [window.innerWidth/2.4]
|
||||||
canvasWH.value.width = canvasWH.value.width.map(num => Math.round(num / 100) * 100)[0];
|
canvasWH.value.width = canvasWH.value.width.map(num => Math.round(num / 100) * 100)[0];
|
||||||
let sketch = computed(() => {
|
let credits = computed(() => {
|
||||||
return store.state.HomeStoreModule.showSketchList;
|
return store.state.UserHabit.credits.value;
|
||||||
});
|
|
||||||
let sketchList = computed(() => {
|
|
||||||
return store.state.UploadFilesModule.showSketchboard;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
let allBoardData = computed(() => {
|
let allBoardData = computed(() => {
|
||||||
return store.state.UploadFilesModule.allBoardData;
|
return store.state.UploadFilesModule.allBoardData;
|
||||||
});
|
});
|
||||||
@@ -965,6 +966,7 @@ export default defineComponent({
|
|||||||
return {
|
return {
|
||||||
showUpgradePlan,
|
showUpgradePlan,
|
||||||
canvasWH,
|
canvasWH,
|
||||||
|
credits,
|
||||||
init,
|
init,
|
||||||
setExport,
|
setExport,
|
||||||
cancelDsign,
|
cancelDsign,
|
||||||
@@ -1056,12 +1058,12 @@ export default defineComponent({
|
|||||||
margin-bottom: .5rem;
|
margin-bottom: .5rem;
|
||||||
font-size: 1.8rem;
|
font-size: 1.8rem;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
margin-top: 2rem;
|
// margin-top: 2rem;
|
||||||
|
padding-top: 2rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 1rem;
|
|
||||||
background: #f9fafb;
|
background: #f9fafb;
|
||||||
z-index: 2;
|
z-index: 2;
|
||||||
.icon{
|
.icon{
|
||||||
@@ -1185,13 +1187,21 @@ export default defineComponent({
|
|||||||
// display: flex;
|
// display: flex;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
.exportCanvasBox_right_credits{
|
||||||
|
margin-bottom: 2rem;
|
||||||
|
}
|
||||||
.exportCanvasBox_right_btn{
|
.exportCanvasBox_right_btn{
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.subitOkPreviewBtn{
|
.subitOkPreviewBtn{
|
||||||
position: initial;
|
position: initial;
|
||||||
transform: none;
|
transform: none;
|
||||||
|
&.active{
|
||||||
|
opacity: .7;
|
||||||
|
cursor: not-allowed;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.exportCanvasBox_center {
|
.exportCanvasBox_center {
|
||||||
|
|||||||
@@ -217,7 +217,7 @@ export default defineComponent({
|
|||||||
let isTest = ref()
|
let isTest = ref()
|
||||||
let isMurmur = ref()
|
let isMurmur = ref()
|
||||||
let credits = computed(()=>{
|
let credits = computed(()=>{
|
||||||
return Number(store.state.UserHabit.credits.value)
|
return store.state.UserHabit.credits.value
|
||||||
})
|
})
|
||||||
let activeCredits = ref(false)
|
let activeCredits = ref(false)
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -103,7 +103,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="mark_loading bgFFF" v-show="isShowMark">
|
<div class="mark_loading bgFFF" v-show="isShowMark">
|
||||||
<div class="mark_loading_title">Paid completed</div>
|
<div class="mark_loading_title">Paid completed</div>
|
||||||
<div class="mark_loading_intro">Please keep the window open until the payment is completed. If you are unable to open the payment window, please check your browser settings to see if pop-ups are being blocked.</div>
|
<div class="mark_loading_intro">Please keep the window open until the payment is completed. If you are unable to open the payment window, please check your browser settings to see if pop-ups are being blocked.Points may be delayed after successful payment. Please wait 1-3 minutes and click the credits refresh button</div>
|
||||||
|
|
||||||
<div class="mark_loading_title_box">
|
<div class="mark_loading_title_box">
|
||||||
<div class="mark_loading_btn mark_loading_btn2" @click="setPaidBack">Back</div>
|
<div class="mark_loading_btn mark_loading_btn2" @click="setPaidBack">Back</div>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { defineAsyncComponent } from 'vue'
|
|||||||
import { getBrowserInfo, murmur } from '@/tool/util'
|
import { getBrowserInfo, murmur } from '@/tool/util'
|
||||||
import { getCookie, setCookie } from "@/tool/cookie";
|
import { getCookie, setCookie } from "@/tool/cookie";
|
||||||
const _import = (path: string) => defineAsyncComponent(() => import(`../views/${path}.vue`));
|
const _import = (path: string) => defineAsyncComponent(() => import(`../views/${path}.vue`));
|
||||||
|
const _import_custom = (path : string) => defineAsyncComponent(() => import(`../component/${path}`));
|
||||||
|
|
||||||
const routes: Array<RouteRecordRaw> = [
|
const routes: Array<RouteRecordRaw> = [
|
||||||
{
|
{
|
||||||
@@ -36,10 +37,32 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
name: 'history',
|
name: 'history',
|
||||||
component: _import('HistoryPage')
|
component: _import('HistoryPage')
|
||||||
},
|
},
|
||||||
|
// {
|
||||||
|
// path: '/testClickData',
|
||||||
|
// name: 'testClickData',
|
||||||
|
// component: _import('TestClickData')
|
||||||
|
// },
|
||||||
{
|
{
|
||||||
path: '/testClickData',
|
path: '/administrator',
|
||||||
name: 'testClickData',
|
name: 'administrator',
|
||||||
component: _import('TestClickData')
|
component: _import('Administrator'),
|
||||||
|
children:[
|
||||||
|
{
|
||||||
|
path:'allUser',
|
||||||
|
name:'allUser',
|
||||||
|
component: _import_custom('Administrator/allUser.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path:'testClickData',
|
||||||
|
name:'testClickData',
|
||||||
|
component: _import_custom('Administrator/TestClickData.vue'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path:'trialApproval',
|
||||||
|
name:'trialApproval',
|
||||||
|
component: _import_custom('Administrator/trialApproval.vue'),
|
||||||
|
},
|
||||||
|
]
|
||||||
},
|
},
|
||||||
// {//老版本history
|
// {//老版本history
|
||||||
// path: '/oldHistory',
|
// path: '/oldHistory',
|
||||||
@@ -56,11 +79,11 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
name: 'library',
|
name: 'library',
|
||||||
component: _import('LibraryPage')
|
component: _import('LibraryPage')
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
path: '/trialApproval',
|
// path: '/trialApproval',
|
||||||
name: 'trialApproval',
|
// name: 'trialApproval',
|
||||||
component: _import('trialApproval')
|
// component: _import('trialApproval')
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
path: '/setIdentification',
|
path: '/setIdentification',
|
||||||
name: 'setIdentification',
|
name: 'setIdentification',
|
||||||
@@ -89,7 +112,6 @@ router.beforeEach((to, from, next) => {
|
|||||||
// 检查路由是否存在
|
// 检查路由是否存在
|
||||||
// 机房用户
|
// 机房用户
|
||||||
let userInfo = JSON.parse(getCookie("userInfo") as any);
|
let userInfo = JSON.parse(getCookie("userInfo") as any);
|
||||||
|
|
||||||
let murmurStr: any = localStorage.getItem('murmurStr')
|
let murmurStr: any = localStorage.getItem('murmurStr')
|
||||||
let getIsMurmur: any = getCookie("isMurmur")
|
let getIsMurmur: any = getCookie("isMurmur")
|
||||||
let token = getCookie("token");
|
let token = getCookie("token");
|
||||||
@@ -98,11 +120,13 @@ router.beforeEach((to, from, next) => {
|
|||||||
let userIdList = [83,88,6]
|
let userIdList = [83,88,6]
|
||||||
const routeExists = router.getRoutes().some(({ name }) =>{
|
const routeExists = router.getRoutes().some(({ name }) =>{
|
||||||
if(name){
|
if(name){
|
||||||
return name === to.name
|
console.log(name , to.name);
|
||||||
|
return name === to.name
|
||||||
}else{
|
}else{
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (routeExists) {
|
if (routeExists) {
|
||||||
if (isMurmur && murmurStr && token) {
|
if (isMurmur && murmurStr && token) {
|
||||||
const toName = to.name === 'login';
|
const toName = to.name === 'login';
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ axios.interceptors.response.use((res) =>{
|
|||||||
|
|
||||||
}, function(error) {
|
}, function(error) {
|
||||||
if(error?.response?.status === 401 && router.currentRoute._value.name != 'setIdentification'){//如果是记录浏览器页面就不跳转login
|
if(error?.response?.status === 401 && router.currentRoute._value.name != 'setIdentification'){//如果是记录浏览器页面就不跳转login
|
||||||
router.replace('/login')
|
// router.replace('/login')
|
||||||
return Promise.reject()
|
return Promise.reject()
|
||||||
}
|
}
|
||||||
let data_new = error?.response?.data
|
let data_new = error?.response?.data
|
||||||
|
|||||||
283
src/views/Administrator.vue
Normal file
283
src/views/Administrator.vue
Normal file
@@ -0,0 +1,283 @@
|
|||||||
|
<template>
|
||||||
|
<div class="administrator_page">
|
||||||
|
<div class="administrator_page_left">
|
||||||
|
<div class="modal_title_text">Administrator</div>
|
||||||
|
<a-menu
|
||||||
|
id="dddddd"
|
||||||
|
class="menu_list_content"
|
||||||
|
theme="dark"
|
||||||
|
v-model:openKeys="openKeys"
|
||||||
|
v-model:selectedKeys="selectedKeys"
|
||||||
|
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">
|
||||||
|
<template #icon><span :class="['icon','iconfont', 'menu_icon', menu.icon]"></span></template>
|
||||||
|
<span class="menu_title">{{menu.name}}</span>
|
||||||
|
</a-menu-item>
|
||||||
|
<a-sub-menu :key="menu.key" v-else>
|
||||||
|
<template #icon>
|
||||||
|
<span :class="['icon','iconfont', 'menu_icon', menu.icon]"></span>
|
||||||
|
</template>
|
||||||
|
<template #expandIcon><span :class="['icon','iconfont', 'menu_icon', menu.expandIcon]"></span></template>
|
||||||
|
<template #title><span class="menu_title">{{menu.name}}</span></template>
|
||||||
|
<div >
|
||||||
|
<a-menu-item v-for="child in menu.children" :key="child.key" :name="child.name" :route="child.route"><span class="menu_title">{{child.name}}</span></a-menu-item>
|
||||||
|
</div>
|
||||||
|
</a-sub-menu>
|
||||||
|
</div>
|
||||||
|
</a-menu>
|
||||||
|
</div>
|
||||||
|
<div class="administrator_page_right">
|
||||||
|
<div class="administrator_page_right_header">
|
||||||
|
<div class="page_name">
|
||||||
|
<div v-show="!routers.length" class="page_name_title">{{nowPageName}}</div>
|
||||||
|
<a-breadcrumb v-show="routers.length" :routes="routers">
|
||||||
|
<template #itemRender="{ route, routes, paths }">
|
||||||
|
<span v-if="routes.indexOf(route) === routes.length - 1">
|
||||||
|
{{ route.breadcrumbName }}
|
||||||
|
</span>
|
||||||
|
<router-link v-else :to="`${paths.join('/')}`">
|
||||||
|
{{ route.breadcrumbName }}
|
||||||
|
</router-link>
|
||||||
|
</template>
|
||||||
|
</a-breadcrumb>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="administrator_page_right_content">
|
||||||
|
<router-view/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</template>
|
||||||
|
<script lang="ts">
|
||||||
|
import { LoadingOutlined } from "@ant-design/icons-vue";
|
||||||
|
import { message, Upload } from "ant-design-vue";
|
||||||
|
import { defineComponent, onMounted, h, ref, nextTick, inject,reactive, toRefs } from "vue";
|
||||||
|
import { MailOutlined, AppstoreOutlined, SettingOutlined } from '@ant-design/icons-vue';
|
||||||
|
import { Https } from "@/tool/https";
|
||||||
|
import { useStore } from "vuex";
|
||||||
|
import { useRouter,useRoute } from 'vue-router'
|
||||||
|
import GO from "@/tool/GO";
|
||||||
|
import { getCookie } from "@/tool/cookie";
|
||||||
|
import { getUploadUrl } from "@/tool/util";
|
||||||
|
// import { forEach } from "jszip";
|
||||||
|
import scaleImage from "@/component/HomePage/scaleImage.vue";
|
||||||
|
import { openGuide,driverObj__,driverIndex__ } from "@/tool/guide";
|
||||||
|
import { useI18n } from "vue-i18n";
|
||||||
|
export default defineComponent({
|
||||||
|
components: {
|
||||||
|
MailOutlined,
|
||||||
|
AppstoreOutlined,
|
||||||
|
SettingOutlined,
|
||||||
|
},
|
||||||
|
props: ["msg",'sketchCatecoryList'],
|
||||||
|
setup() {
|
||||||
|
const router = useRouter()
|
||||||
|
const route:any = useRoute()
|
||||||
|
const state = reactive({
|
||||||
|
rootSubmenuKeys: [{
|
||||||
|
name:'Trial User',
|
||||||
|
route:'/administrator/allUser',
|
||||||
|
icon:'yonghu',
|
||||||
|
expandIcon:'icon-xiala',
|
||||||
|
key:'/administrator/allUser',
|
||||||
|
isShow:true,
|
||||||
|
// children: [
|
||||||
|
// {
|
||||||
|
// name:'User Management',
|
||||||
|
// route:'/home/excil1',
|
||||||
|
// icon:'',
|
||||||
|
// key:'/home/excil22',
|
||||||
|
// isShow:true,
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// code:'ROLE_MANAGER',
|
||||||
|
// name:'Access Permission',
|
||||||
|
// route:'/home/excil2',
|
||||||
|
// icon:'',
|
||||||
|
// key:'/home/excil33',
|
||||||
|
// isShow:true,
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
|
},{
|
||||||
|
name:'Trial User Approval',
|
||||||
|
route:'/administrator/testClickData',
|
||||||
|
icon:'shenpi',
|
||||||
|
expandIcon:'icon-xiala',
|
||||||
|
key:'/administrator/testClickData',
|
||||||
|
isShow:true,
|
||||||
|
},{
|
||||||
|
name:'Design Frequency',
|
||||||
|
route:'/administrator/trialApproval',
|
||||||
|
icon:'usetime',
|
||||||
|
key:'/administrator/trialApproval',
|
||||||
|
expandIcon:'icon-xiala',
|
||||||
|
isShow:true,
|
||||||
|
}],
|
||||||
|
openKeys: ['sub1'],
|
||||||
|
selectedKeys: [],
|
||||||
|
nowPageName:'Trial User',//当前页面名称
|
||||||
|
});
|
||||||
|
let routers:any = ref([])
|
||||||
|
|
||||||
|
|
||||||
|
const onOpenChange = (openKeys: string[]) => {
|
||||||
|
const latestOpenKey:any = openKeys.find(key => state.openKeys.indexOf(key) === -1);
|
||||||
|
if (state.rootSubmenuKeys.indexOf(latestOpenKey!) === -1) {
|
||||||
|
state.openKeys = openKeys;
|
||||||
|
} else {
|
||||||
|
state.openKeys = latestOpenKey ? [latestOpenKey] : [];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
let handleClick = (event:any) => {
|
||||||
|
|
||||||
|
// state.selectedKeys = [Number(event.key)]
|
||||||
|
state.nowPageName = event.item.name
|
||||||
|
router.push({path:event.item.route})
|
||||||
|
}
|
||||||
|
onMounted(() => {
|
||||||
|
let cookieInfo = getCookie('userInfo') || ''
|
||||||
|
if(cookieInfo){
|
||||||
|
// menuList.value = JSON.parse(menuListSession)
|
||||||
|
// userInfo.value = JSON.parse(cookieInfo)
|
||||||
|
// state.selectedKeys = [route.path]
|
||||||
|
// getBreadData(route.name)
|
||||||
|
// getTitle(menuList.value, route.path)
|
||||||
|
}else{
|
||||||
|
}
|
||||||
|
state.nowPageName = state.rootSubmenuKeys[0].name
|
||||||
|
router.push(state.rootSubmenuKeys[0].route)
|
||||||
|
|
||||||
|
})
|
||||||
|
return {
|
||||||
|
...toRefs(state),
|
||||||
|
onOpenChange,
|
||||||
|
routers,
|
||||||
|
handleClick,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
data(prop) {
|
||||||
|
return {
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
mounted() {
|
||||||
|
},
|
||||||
|
watch:{
|
||||||
|
// newWindowState:{
|
||||||
|
// handler(newVal,oldVal){
|
||||||
|
// console.log(newVal);
|
||||||
|
// if(newVal){
|
||||||
|
// this.newWindow?.close();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// },
|
||||||
|
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
|
||||||
|
},
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<style lang="less">
|
||||||
|
.administrator_page {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
background: rgba(243,244,248,0.4);
|
||||||
|
|
||||||
|
.administrator_page_left{
|
||||||
|
padding-top: 20px;
|
||||||
|
.modal_title_text{
|
||||||
|
// font-size: var(--aida-fsize1-8);
|
||||||
|
line-height: 10rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.ant-menu-dark.menu_list_content{
|
||||||
|
padding-left: 1.8rem;
|
||||||
|
width: 30rem;
|
||||||
|
height: calc(100% - 59px);
|
||||||
|
background: #FFFFFF;
|
||||||
|
flex-shrink: 0;
|
||||||
|
|
||||||
|
.menu_icon{
|
||||||
|
font-size: 2.4rem;
|
||||||
|
color: #808185;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-menu-item{
|
||||||
|
padding-left: 3.1rem !important;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
height: 6.6rem;
|
||||||
|
border-radius: 3.3rem 0px 0px 3.3rem;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
&.ant-menu-item-only-child{
|
||||||
|
padding-left: 5.6rem !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-menu-submenu-title{
|
||||||
|
padding-left: 3.1rem !important;
|
||||||
|
height: 6.6rem;
|
||||||
|
|
||||||
|
}
|
||||||
|
.ant-menu-inline.ant-menu-sub{
|
||||||
|
background: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu_title{
|
||||||
|
font-size: 1.8rem;
|
||||||
|
font-family: Adobe Heiti Std;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #808185;
|
||||||
|
}
|
||||||
|
.ant-menu-item-selected{
|
||||||
|
background: #F3F4F8;
|
||||||
|
|
||||||
|
.menu_title{
|
||||||
|
color: #343579;
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu_icon{
|
||||||
|
color: #808185;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.administrator_page_right{
|
||||||
|
flex: 1;
|
||||||
|
.administrator_page_right_header{
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
align-items: center;
|
||||||
|
height: 6.6rem;
|
||||||
|
padding: 0 2.8rem 0 3.0rem;
|
||||||
|
|
||||||
|
.page_name{
|
||||||
|
border-left: solid .4rem #161F29;
|
||||||
|
.page_name_title,.ant-breadcrumb-link{
|
||||||
|
font-size: 1.8rem;
|
||||||
|
font-weight: normal;
|
||||||
|
color: #333333;
|
||||||
|
padding-left: 1.2rem;
|
||||||
|
line-height: 1.8rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.administrator_page_right_content{
|
||||||
|
height: 100%;
|
||||||
|
padding-left: 3rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -1,567 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="trial_page">
|
|
||||||
<div class="page_content">
|
|
||||||
<img
|
|
||||||
class="page_content_bg"
|
|
||||||
src="@/assets/images/homePage/bg1.jpg"
|
|
||||||
/>
|
|
||||||
<div class="page_content_body">
|
|
||||||
<HeaderComponent></HeaderComponent>
|
|
||||||
<div class="trial_page_body">
|
|
||||||
<div class="trial_table_search">
|
|
||||||
<div class="trial_table_voluntarily">
|
|
||||||
<span>voluntarily</span>
|
|
||||||
<a-switch v-model:checked="voluntarily" @change="setIsAutoApproval" />
|
|
||||||
</div>
|
|
||||||
<a-range-picker
|
|
||||||
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 class="trial_state">
|
|
||||||
<div class="trial_current" @click="setState">
|
|
||||||
{{currentState.name}}
|
|
||||||
<div
|
|
||||||
:class="['icon', 'iconfont', 'icon-xiala']"
|
|
||||||
@click.stop=""
|
|
||||||
></div>
|
|
||||||
</div>
|
|
||||||
<div class="header_user_content" :class="{active:currentState.state}">
|
|
||||||
<!-- <span class="icon iconfont icon-yuyan"></span> -->
|
|
||||||
<div class="username" v-for="item,index in state" :key="item" @click.stop="setStateItem(item)">{{ item.name }}</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="content_search_block">
|
|
||||||
<input
|
|
||||||
class="search_input"
|
|
||||||
:placeholder="$t('HistoryPage.inputContent1')"
|
|
||||||
v-model="searchCollectionName"
|
|
||||||
@keydown.enter="searchHistoryList()"
|
|
||||||
/>
|
|
||||||
<div
|
|
||||||
class="search_icon_block"
|
|
||||||
@click="searchHistoryList()"
|
|
||||||
>
|
|
||||||
<span class="icon iconfont icon-sousuo"></span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="trial_table_content" ref="historyTable">
|
|
||||||
<a-table
|
|
||||||
:columns="columns"
|
|
||||||
:data-source="collectionList"
|
|
||||||
:scroll="{ y: historyTableHeight }"
|
|
||||||
@change="changePage"
|
|
||||||
:pagination="{
|
|
||||||
showSizeChanger: true,
|
|
||||||
current: currentPage,
|
|
||||||
pageSize: pageSize,
|
|
||||||
total: total,
|
|
||||||
showQuickJumper: true,
|
|
||||||
bordered: false,
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<template
|
|
||||||
#bodyCell="{ column, text, record, index }"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="operate_list"
|
|
||||||
v-if="column?.Operations"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
v-show="status == 0"
|
|
||||||
class="operate_item"
|
|
||||||
@click="setConsent(record, index)"
|
|
||||||
>
|
|
||||||
consent
|
|
||||||
</div>
|
|
||||||
<div
|
|
||||||
v-show="status == 0"
|
|
||||||
class="operate_item"
|
|
||||||
@click="setRefuse(record, index)"
|
|
||||||
>
|
|
||||||
refuse
|
|
||||||
</div>
|
|
||||||
<!-- <div
|
|
||||||
class="operate_item"
|
|
||||||
@click="deleteGroup(record, index)"
|
|
||||||
>
|
|
||||||
Delete
|
|
||||||
</div> -->
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</a-table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
<script lang="ts">
|
|
||||||
import { defineComponent, ref, createVNode, computed } from "vue";
|
|
||||||
import { setCookie, getCookie, WriteCookie } from "@/tool/cookie";
|
|
||||||
import HeaderComponent from "@/component/HomePage/Header.vue";
|
|
||||||
import HistoryDetail from "@/component/Detail/HistoryDetail.vue";
|
|
||||||
import router from "@/router/index";
|
|
||||||
import { Https } from "@/tool/https";
|
|
||||||
import { formatTime } from "@/tool/util";
|
|
||||||
import { Modal, message } from "ant-design-vue";
|
|
||||||
import RobotAssist from "@/component/HomePage/RobotAssist.vue";
|
|
||||||
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
|
||||||
import { useI18n } from "vue-i18n";
|
|
||||||
export default defineComponent({
|
|
||||||
components: {
|
|
||||||
HeaderComponent,
|
|
||||||
HistoryDetail,
|
|
||||||
RobotAssist,
|
|
||||||
},
|
|
||||||
setup() {
|
|
||||||
let rangePickerValue: any = ref([]);
|
|
||||||
let renameData: any = ref({}); //修改名字选中的数据
|
|
||||||
const columns: any = computed(() => {
|
|
||||||
return [
|
|
||||||
{
|
|
||||||
title: 'Email',
|
|
||||||
align: "center",
|
|
||||||
ellipsis: true,
|
|
||||||
width: 170,
|
|
||||||
dataIndex: "email",
|
|
||||||
key: "email",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Create Time',
|
|
||||||
align: "center",
|
|
||||||
ellipsis: 200,
|
|
||||||
dataIndex: "updateTime",
|
|
||||||
key: "updateTime",
|
|
||||||
// customRender: (record: any) => {
|
|
||||||
// let time = formatTime(
|
|
||||||
// record.text / 1000,
|
|
||||||
// "YYYY-MM-DD hh:mm:ss"
|
|
||||||
// );
|
|
||||||
// return time;
|
|
||||||
// },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'State',
|
|
||||||
align: "center",
|
|
||||||
ellipsis: true,
|
|
||||||
width: 150,
|
|
||||||
dataIndex: "status",
|
|
||||||
key: "status",
|
|
||||||
customRender: (record: any) => {
|
|
||||||
let str
|
|
||||||
if(record.value == 0){
|
|
||||||
str ='pending'
|
|
||||||
}else if(record.value == 1){
|
|
||||||
str ='consent'
|
|
||||||
}else if(record.value == 2){
|
|
||||||
str ='reject'
|
|
||||||
}
|
|
||||||
return str;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Address',
|
|
||||||
align: "center",
|
|
||||||
ellipsis: true,
|
|
||||||
width: 150,
|
|
||||||
dataIndex: "country",
|
|
||||||
key: "country",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Surname',
|
|
||||||
align: "center",
|
|
||||||
ellipsis: true,
|
|
||||||
width: 150,
|
|
||||||
dataIndex: "surname",
|
|
||||||
key: "surname",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Name',
|
|
||||||
align: "center",
|
|
||||||
ellipsis: true,
|
|
||||||
width: 150,
|
|
||||||
dataIndex: "userName",
|
|
||||||
key: "userName",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Operations',
|
|
||||||
key: "operation",
|
|
||||||
align: "center",
|
|
||||||
fixed: "right",
|
|
||||||
width: 200,
|
|
||||||
// slots:{customRender:'action'}
|
|
||||||
Operations: true,
|
|
||||||
},
|
|
||||||
];
|
|
||||||
});
|
|
||||||
let currentState = ref({
|
|
||||||
name:'all',
|
|
||||||
value:'',
|
|
||||||
state:false,
|
|
||||||
},)
|
|
||||||
let state:any = ref([
|
|
||||||
{
|
|
||||||
name:'all',
|
|
||||||
value:'',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name:'unprocessed',
|
|
||||||
value:0,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name:'pending',
|
|
||||||
value:1,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name:'rejected',
|
|
||||||
value:2,
|
|
||||||
},
|
|
||||||
])
|
|
||||||
let collectionList: any = ref([]);
|
|
||||||
let userInfo: any = {};
|
|
||||||
let status: any = ref(0);
|
|
||||||
let voluntarily: any = ref(false);
|
|
||||||
return {
|
|
||||||
rangePickerValue,
|
|
||||||
columns,
|
|
||||||
collectionList,
|
|
||||||
renameData,
|
|
||||||
userInfo,
|
|
||||||
status,
|
|
||||||
currentState,
|
|
||||||
state,
|
|
||||||
voluntarily,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
currentPage: 1,
|
|
||||||
pageSize: 10,
|
|
||||||
total: 0,
|
|
||||||
historyTableHeight: 0,
|
|
||||||
newCollectionName: "",
|
|
||||||
renameVisivle: false, //修改名字弹窗
|
|
||||||
collectionName: "", //选中的名字
|
|
||||||
searchCollectionName: "",
|
|
||||||
};
|
|
||||||
},
|
|
||||||
mounted() {
|
|
||||||
let historyTable: any = this.$refs.historyTable;
|
|
||||||
this.historyTableHeight = historyTable.clientHeight - 130;
|
|
||||||
this.gettrialList();
|
|
||||||
let userInfo:any = getCookie("userInfo")
|
|
||||||
this.userInfo = JSON.parse(userInfo);
|
|
||||||
this.getIsAutoApproval()
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
//改变页码
|
|
||||||
changePage(e: any) {
|
|
||||||
this.currentPage = e.current;
|
|
||||||
this.pageSize = e.pageSize;
|
|
||||||
this.gettrialList();
|
|
||||||
},
|
|
||||||
|
|
||||||
//查询列表
|
|
||||||
searchHistoryList() {
|
|
||||||
this.currentPage = 1;
|
|
||||||
this.gettrialList();
|
|
||||||
},
|
|
||||||
//获取是否自动审批
|
|
||||||
getIsAutoApproval(){
|
|
||||||
Https.axiosPost(Https.httpUrls.getIsAutoApproval, {}).then(
|
|
||||||
(rv: any) => {
|
|
||||||
this.voluntarily = rv
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
setIsAutoApproval(){
|
|
||||||
Https.axiosPost(Https.httpUrls.switchIsAutoApproval, {}).then(
|
|
||||||
(rv: any) => {
|
|
||||||
this.getIsAutoApproval
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
//获取列表
|
|
||||||
gettrialList() {
|
|
||||||
let startDate: any = this.rangePickerValue
|
|
||||||
? new Date(this.rangePickerValue[0]).getTime()
|
|
||||||
: "";
|
|
||||||
let endDate: any = this.rangePickerValue
|
|
||||||
? new Date(this.rangePickerValue[1]).getTime()
|
|
||||||
: "";
|
|
||||||
let data = {
|
|
||||||
page: this.currentPage,
|
|
||||||
size: this.pageSize,
|
|
||||||
status: this.currentState.value,
|
|
||||||
// startDate:startDate,
|
|
||||||
// endDate:endDate
|
|
||||||
};
|
|
||||||
Https.axiosPost(Https.httpUrls.trialOrderList, data).then(
|
|
||||||
(rv: any) => {
|
|
||||||
this.collectionList = rv.content;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
setConsent(record: any, index: number){
|
|
||||||
const formData = new FormData()
|
|
||||||
formData.append('ids',record.id)
|
|
||||||
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
|
||||||
Https.axiosPost(Https.httpUrls.trialOrderApproval, {ids:record.id}).then(
|
|
||||||
(rv: any) => {
|
|
||||||
message.success('同意成功~')
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
setRefuse(record: any, index: number){
|
|
||||||
const formData = new FormData()
|
|
||||||
formData.append('ids',record.id)
|
|
||||||
let config:any = {headers:{'Content-Type':'multipart/form-data','Accept':'*/*' }}
|
|
||||||
Https.axiosPost(Https.httpUrls.trialOrderRefuse, formData,config).then(
|
|
||||||
(rv: any) => {
|
|
||||||
this.gettrialList();
|
|
||||||
message.success('拒绝成功~')
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
//删除分组
|
|
||||||
// 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.collectionList.splice(index, 1);
|
|
||||||
// }
|
|
||||||
// );
|
|
||||||
// };
|
|
||||||
// Modal.confirm({
|
|
||||||
// title: "",
|
|
||||||
// icon: createVNode(ExclamationCircleOutlined),
|
|
||||||
// okText: "Yes",
|
|
||||||
// cancelText: "No",
|
|
||||||
// centered: true,
|
|
||||||
// mask: false,
|
|
||||||
// onOk() {
|
|
||||||
// deleteGroupFun(record.id, index);
|
|
||||||
// },
|
|
||||||
// });
|
|
||||||
// },
|
|
||||||
setState(){
|
|
||||||
this.currentState.state = true
|
|
||||||
},
|
|
||||||
setStateItem(item:any){
|
|
||||||
this.currentState = item
|
|
||||||
this.currentState.state = false
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
<style lang="less">
|
|
||||||
.trial_page {
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
padding: 0 9rem;
|
|
||||||
overflow: hidden;
|
|
||||||
// min-width: 1440px;
|
|
||||||
position: relative;
|
|
||||||
.page_content {
|
|
||||||
position: relative;
|
|
||||||
.page_content_bg {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page_content_body {
|
|
||||||
position: absolute;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
box-sizing: border-box;
|
|
||||||
|
|
||||||
.trial_page_body {
|
|
||||||
width: 100%;
|
|
||||||
height: calc(100% - 7rem);
|
|
||||||
padding: 0 2.5rem 4rem;
|
|
||||||
box-sizing: border-box;
|
|
||||||
.trial_table_search {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin-top: 5rem;
|
|
||||||
color: #fff;
|
|
||||||
.range_picker {
|
|
||||||
width: 36rem;
|
|
||||||
height: 4.8rem;
|
|
||||||
|
|
||||||
.ant-picker-input > input {
|
|
||||||
font-size: 1.6rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.range_picker_icon {
|
|
||||||
font-size: 2.2rem;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.trial_table_voluntarily{
|
|
||||||
padding: 0 2rem;
|
|
||||||
margin: 0 2rem;
|
|
||||||
margin-left: 0;
|
|
||||||
// border: 0.1rem solid #f1f1f1;
|
|
||||||
span{
|
|
||||||
}
|
|
||||||
>button{
|
|
||||||
transform: scale(.8);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.content_search_block {
|
|
||||||
margin-left: 4rem;
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
.search_input {
|
|
||||||
width: 32.8rem;
|
|
||||||
padding-left: 1.5rem;
|
|
||||||
height: 4.8rem;
|
|
||||||
line-height: 4.6rem;
|
|
||||||
background: #ffffff;
|
|
||||||
border: 0.1rem solid #f1f1f1;
|
|
||||||
font-size: 1.6rem;
|
|
||||||
font-weight: 400;
|
|
||||||
&::placeholder {
|
|
||||||
color: #c2c2c2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.search_icon_block {
|
|
||||||
width: 7.2rem;
|
|
||||||
height: 4.8rem;
|
|
||||||
line-height: 4.8rem;
|
|
||||||
text-align: center;
|
|
||||||
background: #343579;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
.icon-sousuo {
|
|
||||||
font-size: 2rem;
|
|
||||||
color: #ffffff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.trial_state {
|
|
||||||
border: 0.1rem solid #f1f1f1;
|
|
||||||
position: relative;
|
|
||||||
width: 20rem;
|
|
||||||
margin: 0 2rem;
|
|
||||||
padding: 0 2rem;
|
|
||||||
cursor: pointer;
|
|
||||||
.trial_current{
|
|
||||||
width: 100%;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
.header_user_content {
|
|
||||||
position: absolute;
|
|
||||||
border: 2px solid;
|
|
||||||
border-radius: 1rem;
|
|
||||||
overflow: hidden;
|
|
||||||
top: 0;
|
|
||||||
transform: translateY(6rem);
|
|
||||||
z-index: 2;
|
|
||||||
display: none;
|
|
||||||
margin-left: -2rem;
|
|
||||||
.username{
|
|
||||||
padding: 0 2rem;
|
|
||||||
background: #ffffff;
|
|
||||||
color: #000;
|
|
||||||
}
|
|
||||||
.username:hover{
|
|
||||||
background: #e1e1e1;
|
|
||||||
}
|
|
||||||
&.active{
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.trial_table_content {
|
|
||||||
margin-top: 2.6rem;
|
|
||||||
width: 100%;
|
|
||||||
height: calc(100% - 13.7rem);
|
|
||||||
background: rgba(255, 255, 255, 0.3);
|
|
||||||
padding-bottom: 3rem;
|
|
||||||
border-radius: 2rem;
|
|
||||||
backdrop-filter: blur(3rem);
|
|
||||||
overflow: hidden;
|
|
||||||
box-shadow: 0px 0px 18px rgba(0, 0, 0, 0.38);
|
|
||||||
.ant-table {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ant-table-body {
|
|
||||||
overflow-y: auto !important;
|
|
||||||
-ms-overflow-style: none;
|
|
||||||
overflow: -moz-scrollbars-none;
|
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
|
||||||
width: 0 !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
.ant-table-thead > tr > th {
|
|
||||||
background: #ffffff00;
|
|
||||||
color: #fff;
|
|
||||||
border-bottom: none;
|
|
||||||
backdrop-filter: blur(1rem);
|
|
||||||
}
|
|
||||||
|
|
||||||
.ant-table-tbody > tr > td {
|
|
||||||
border: none;
|
|
||||||
background: transparent;
|
|
||||||
// color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.ant-table-tbody > tr {
|
|
||||||
&:hover > td {
|
|
||||||
background: #ffffff3a;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.ant-table-pagination-right {
|
|
||||||
padding-right: 3.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.operate_list {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding: 0 1rem;
|
|
||||||
|
|
||||||
.operate_item {
|
|
||||||
font-size: 1.4rem;
|
|
||||||
font-family: Roboto;
|
|
||||||
font-weight: 400;
|
|
||||||
color: #343579;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
Reference in New Issue
Block a user