6 Commits

Author SHA1 Message Date
liruiqiang 5412eb184d 首页刷新时间 1 month ago
liruiqiang f101fac716 行情期限用户操作日志 1 month ago
liruiqiang 8d0947d320 行情期限用户操作日志 1 month ago
liruiqiang 10aa45dbba 行情期限用户数据响应 1 month ago
liruiqiang 980642142e 地区对接修改 1 month ago
liruiqiang 28610b3eda 改为选择模板 1 month ago
  1. 18
      src/api/userPermissions.js
  2. 85
      src/layout/Layout.vue
  3. 35
      src/views/UserPermissions/Market.vue
  4. 21
      src/views/UserPermissions/Module.vue

18
src/api/userPermissions.js

@ -145,3 +145,21 @@ export function indicatorListApi(params) {
data: params,
});
}
// 设置-获取刷新时间
export function getEnvApi(params) {
return request({
url: base_url + "/admin/env/get",
method: "post",
data: params,
});
}
// 设置-修改刷新时间
export function setEnvApi(params) {
return request({
url: base_url + "/admin/env/set",
method: "post",
data: params,
});
}

85
src/layout/Layout.vue

@ -49,8 +49,31 @@
<el-icon style="bottom: -3px; "><SwitchButton /></el-icon>
退出登录
</div>
<div class="sidebar-set" @click="handleSet">
<el-icon style="bottom: -3px; "><Setting /></el-icon>
设置
</div>
</el-aside>
<!-- 首页刷新时间弹窗 -->
<el-dialog v-model="setValue" title="首页刷新时间" width="500">
<div class="refresh-time-container">
<el-form-item label="刷新时间" style="margin-top: 50px;">
<el-input-number v-model="refreshTime" :step="1" placeholder="请输入刷新时间" style="width: 200px">
<template #suffix>
<span>s</span>
</template>
</el-input-number>
</el-form-item>
</div>
<template #footer>
<div class="dialog-footer">
<el-button @click="setValue = false">取消</el-button>
<el-button type="danger" @click="setEnv">确认修改</el-button>
</div>
</template>
</el-dialog>
<!-- 主页面 -->
<el-main class="main-content">
<router-view />
@ -62,6 +85,7 @@
import { computed, ref, watch } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import { ElMessage } from 'element-plus';
import { getEnvApi, setEnvApi} from '../api/userPermissions'
const router = useRouter()
const route = useRoute()
@ -130,6 +154,42 @@ const handleLogout = () => {
ElMessage.error('退出登录失败,请重试');
}
};
// token
const token = localStorage.getItem('token')
//
const setValue = ref(false)
//
const refreshTime = ref('')
//
const handleSet = async() => {
const data = await getEnvApi({
token: token,
key: 'SYNC_INTERVAL'
})
refreshTime.value = data;
setValue.value = true;
};
//
const setEnv = async() => {
try{
await setEnvApi({
token: token,
key: 'SYNC_INTERVAL',
value: refreshTime.value
})
ElMessage.success('修改成功');
setValue.value = false;
} catch (error) {
ElMessage.error('修改失败');
setValue.value = false;
}
}
</script>
<style scoped>
@ -277,7 +337,7 @@ const handleLogout = () => {
.sidebar-logout {
position: absolute;
bottom: 30px;
left: 30%;
left: 10%;
color: #1f0303;
font-family: "PingFang SC", sans-serif;
@ -295,4 +355,27 @@ const handleLogout = () => {
.sidebar-logout:hover {
color: #FF0000;
}
/* 设置 */
.sidebar-set {
position: absolute;
bottom: 30px;
left: 60%;
color: #1f0303;
font-family: "PingFang SC", sans-serif;
font-size: 21.06px;
font-style: normal;
font-weight: 700;
line-height: 33.1px;
cursor: pointer;
user-select: none;
transition: color 0.2s ease;
}
/* 设置hover效果 */
.sidebar-set:hover {
color: #FF0000;
}
</style>

35
src/views/UserPermissions/Market.vue

@ -27,14 +27,15 @@
v-model="searchForm.market"
placeholder="请选择地区"
clearable
filterable
style="height: 36px; width: 160px;"
:loading="isRegionLoading"
>
<el-option
v-for="region in regionList"
:key="region.id"
:label="region.text_cn"
:value="region.market"
:key="region.ID"
:label="region.Name"
:value="region.ID"
/>
</el-select>
</div>
@ -72,17 +73,18 @@
{{ (currentPage - 1) * pageSize + scope.$index + 1 }}
</template>
</el-table-column>
<el-table-column prop="dccode" label="账号" align="center" header-align="center"/>
<el-table-column prop="dcname" label="姓名" align="center" header-align="center" width="150"/>
<el-table-column prop="market" label="地区" align="center" header-align="center"/>
<el-table-column prop="phone" label="电话" align="center" header-align="center"/>
<el-table-column prop="email" label="邮箱" align="center" header-align="center" width="200"/>
<el-table-column prop="created_at" label="注册时间" align="center" header-align="center" sortable="custom" width="200"/>
<el-table-column prop="expire_time" label="到期时间" align="center" header-align="center" sortable="custom" width="200"/>
<el-table-column prop="jwcode" label="账号" align="center" header-align="center"/>
<el-table-column prop="username" label="姓名" align="center" header-align="center" width="150"/>
<el-table-column prop="country" label="地区" align="center" header-align="center"/>
<el-table-column prop="dialingCode" align="center" header-align="center" width="60"/>
<el-table-column prop="mobiles" label="电话" align="center" header-align="center"/>
<el-table-column prop="emails" label="邮箱" align="center" header-align="center" width="200"/>
<el-table-column prop="regtime" label="注册时间" align="center" header-align="center" sortable="custom" width="180"/>
<el-table-column prop="expire_time" label="到期时间" align="center" header-align="center" sortable="custom" width="180"/>
<el-table-column label="操作" width="180" align="center" header-align="center">
<template #default="scope">
<el-button type="text" @click="handleEdit(scope.row)">编辑</el-button>
<el-button type="text" @click="handleLog(scope.row.dccode)">操作日志</el-button>
<el-button type="text" @click="handleLog(scope.row.jwcode)">操作日志</el-button>
</template>
</el-table-column>
</el-table>
@ -389,7 +391,10 @@ const resetForm = () => {
const fetchRegionList = async () => {
try {
isRegionLoading.value = true;
const data = await marketListApi({token: token});
const data = await marketListApi({
token: token,
app_form: "en"
});
regionList.value = data.list;
} catch (error) {
console.error('获取地区列表失败:', error);
@ -484,15 +489,15 @@ const resetBn = () => {
//
const handleEdit = (row) => {
dialogVisible.value = true;
hlidsInput.value = row.dccode;
hlidsInput.value = row.jwcode;
deadline.value = row.expire_time;
};
//
const handleLog = (dccode) => {
const handleLog = (jwcode) => {
router.push({
path: "/userPermissions/logMarket",
query: { dccode: dccode }
query: { dccode: jwcode }
});
};

21
src/views/UserPermissions/Module.vue

@ -40,14 +40,15 @@
v-model="searchFormDM.market"
placeholder="请选择地区"
clearable
filterable
style="height: 36px; width: 160px;"
:loading="isRegionLoading"
>
<el-option
v-for="region in regionList"
:key="region.id"
:label="region.text_cn"
:value="region.market"
:key="region.ID"
:label="region.Name"
:value="region.ID"
/>
</el-select>
</div>
@ -211,14 +212,15 @@
v-model="searchFormDE.market"
placeholder="请选择地区"
clearable
filterable
style="height: 36px; width: 160px;"
:loading="isRegionLoading"
>
<el-option
v-for="region in regionList"
:key="region.id"
:label="region.text_cn"
:value="region.market"
:key="region.ID"
:label="region.Name"
:value="region.ID"
/>
</el-select>
</div>
@ -342,7 +344,7 @@
<!-- 设置指标 -->
<div class="form-item">
<label class="form-label">选择指标</label>
<label class="form-label">选择模板</label>
<el-checkbox-group v-model="indicator_id" class="indicator-checkbox-group">
<el-checkbox
v-for="item in indicatorOptions"
@ -491,7 +493,10 @@ const isRegionLoading = ref(false);
const fetchRegionList = async () => {
try {
isRegionLoading.value = true;
const data = await marketListApi({token: token});
const data = await marketListApi({
token: token,
app_form: "en"
});
regionList.value = data.list;
} catch (error) {
console.error('获取地区列表失败:', error);

Loading…
Cancel
Save