Commit 679d75dd authored by 李鹏 's avatar 李鹏

interface

parent f4a77a56
...@@ -82,7 +82,8 @@ export default { ...@@ -82,7 +82,8 @@ export default {
}, },
transparentBg() { transparentBg() {
return ( return (
this.documentScrollTop < 180 && (this.$route.name === "shopRecommend" || this.$route.name === "shopSearch") this.documentScrollTop < 180 &&
(this.$route.name === "shopRecommend" || this.$route.name === "shopSearch")
); );
}, },
isFront() { isFront() {
......
...@@ -3,17 +3,26 @@ ...@@ -3,17 +3,26 @@
class="login-container" class="login-container"
:style="{ :style="{
'background-image': `url(${ 'background-image': `url(${
configOptions.backgroundUrl ? JSON.parse(configOptions.backgroundUrl)[0].url : getImageUrl('bg.png') configOptions.backgroundUrl
? JSON.parse(configOptions.backgroundUrl)[0].url
: getImageUrl('bg.png')
})`, })`,
}"> }">
<el-alert class="bg-warning" title="系统有效期剩余345 天,请管理员及时更换license!" type="warning" /> <el-alert
class="bg-warning"
title="系统有效期剩余345 天,请管理员及时更换license!"
type="warning" />
<div class="bg-main"> <div class="bg-main">
<!-- <div class="bg-logo"> <!-- <div class="bg-logo">
<img class="logo" src="../../assets/imgs/login_img_logo.png" /> <img class="logo" src="../../assets/imgs/login_img_logo.png" />
</div> --> </div> -->
<div class="bg-content"> <div class="bg-content">
<bg-tabs class="login-tab" v-model="loginTab" style="width: 480px" v-if="pageType === 'login'"> <bg-tabs
class="login-tab"
v-model="loginTab"
style="width: 480px"
v-if="pageType === 'login'">
<bg-tab label="账号密码登录" name="account"> <bg-tab label="账号密码登录" name="account">
<LoginByAccount @register="switchPageType('account')" @password="password" /> <LoginByAccount @register="switchPageType('account')" @password="password" />
</bg-tab> </bg-tab>
...@@ -27,13 +36,16 @@ ...@@ -27,13 +36,16 @@
<div class="bg-msg"> <div class="bg-msg">
<p v-if="configOptions && configOptions.patent">{{ configOptions.patent }}</p> <p v-if="configOptions && configOptions.patent">{{ configOptions.patent }}</p>
<p v-if="configOptions"> <p v-if="configOptions">
<span class="can_click_text" @click="open(configOptions.icpUrl)"> {{ configOptions.icpFiling }} | </span> <span class="can_click_text" @click="open(configOptions.icpUrl)">
{{ configOptions.icpFiling }} |
</span>
<span class="can_click_text" @click="open(configOptions.publicSecurityUrl)"> <span class="can_click_text" @click="open(configOptions.publicSecurityUrl)">
{{ configOptions.publicSecurityFiling }} {{ configOptions.publicSecurityFiling }}
</span> </span>
</p> </p>
<p> <p>
<span class="can_click_text" @click="open(configOptions.legalStatementUrl)">法律声明</span> | <span class="can_click_text" @click="open(configOptions.legalStatementUrl)">法律声明</span>
|
<span class="can_click_text" @click="open(configOptions.privacyPolicyUrl)">隐私政策</span> <span class="can_click_text" @click="open(configOptions.privacyPolicyUrl)">隐私政策</span>
</p> </p>
</div> </div>
......
...@@ -22,24 +22,28 @@ ...@@ -22,24 +22,28 @@
<el-input v-model="systemForm.business_name" /> <el-input v-model="systemForm.business_name" />
</el-form-item> </el-form-item>
<el-form-item label="AppId" prop="appid" v-if="formType"> <el-form-item label="AppId" prop="appid" v-if="formType">
<el-input v-model="systemForm.appid" :disabled="formType">
<el-input v-model="systemForm.appid" :disabled="formType" >
<template #suffix> <template #suffix>
<bg-icon icon="#bg-ic-copy" style="cursor: pointer;" @click="copyText(systemForm.appid)"></bg-icon> <bg-icon
icon="#bg-ic-copy"
style="cursor: pointer"
@click="copyText(systemForm.appid)"></bg-icon>
</template> </template>
</el-input> </el-input>
<!-- <span class="pl-1"><el-button type="primary" @click="copyText(systemForm.appid)">复制</el-button></span> --> <!-- <span class="pl-1"><el-button type="primary" @click="copyText(systemForm.appid)">复制</el-button></span> -->
</el-form-item> </el-form-item>
<el-form-item label="AppSecret" prop="appsecret" v-if="formType"> <el-form-item label="AppSecret" prop="appsecret" v-if="formType">
<div style="display: flex;width: 100%;"> <div style="display: flex; width: 100%">
<el-input v-model="systemForm.appsecret" :disabled="formType"> <el-input v-model="systemForm.appsecret" :disabled="formType">
<template #suffix> <template #suffix>
<bg-icon icon="#bg-ic-copy" style="cursor: pointer;" @click="copyText(systemForm.appsecret)"></bg-icon> <bg-icon
icon="#bg-ic-copy"
style="cursor: pointer"
@click="copyText(systemForm.appsecret)"></bg-icon>
</template> </template>
</el-input> </el-input>
<span class="pl-1"><el-button type="primary" @click="resetSecret">重置</el-button></span> <span class="pl-1"><el-button type="primary" @click="resetSecret">重置</el-button></span>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="系统LOGO" prop="logo"> <el-form-item label="系统LOGO" prop="logo">
<bg-upload-image <bg-upload-image
...@@ -53,11 +57,24 @@ ...@@ -53,11 +57,24 @@
customTips="请选择图片上传:大小120 * 120像素支持jpg、png等格式,图片需小于500KB"></bg-upload-image> customTips="请选择图片上传:大小120 * 120像素支持jpg、png等格式,图片需小于500KB"></bg-upload-image>
</el-form-item> </el-form-item>
<el-form-item label="业务系统概述" prop="business_desc"> <el-form-item label="业务系统概述" prop="business_desc">
<el-input type="textarea" :rows="3" v-model="systemForm.business_desc" show-word-limit maxlength="300" /> <el-input
type="textarea"
:rows="3"
v-model="systemForm.business_desc"
show-word-limit
maxlength="300" />
</el-form-item> </el-form-item>
<el-form-item label="角色" prop="system_role_id" v-if="!formType"> <el-form-item label="角色" prop="system_role_id" v-if="!formType">
<el-select v-model="systemForm.system_role_id" placeholder="请选择角色" :disabled="true" style="width: 100%"> <el-select
<el-option v-for="item in roleList" :key="item.role_id" :label="item.role_name" :value="item.role_id" /> v-model="systemForm.system_role_id"
placeholder="请选择角色"
:disabled="true"
style="width: 100%">
<el-option
v-for="item in roleList"
:key="item.role_id"
:label="item.role_name"
:value="item.role_id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="账号" prop="system_account"> <el-form-item label="账号" prop="system_account">
...@@ -69,7 +86,10 @@ ...@@ -69,7 +86,10 @@
<el-form-item label="密码" prop="password" v-if="!formType"> <el-form-item label="密码" prop="password" v-if="!formType">
<el-input :type="password_eye ? 'text' : 'password'" v-model="systemForm.password"> <el-input :type="password_eye ? 'text' : 'password'" v-model="systemForm.password">
<template #suffix> <template #suffix>
<bg-icon @click="password_eye = !password_eye" class="icon_eye" icon="#bg-ic-eye"></bg-icon> <bg-icon
@click="password_eye = !password_eye"
class="icon_eye"
icon="#bg-ic-eye"></bg-icon>
</template> </template>
</el-input> </el-input>
</el-form-item> </el-form-item>
...@@ -85,7 +105,11 @@ ...@@ -85,7 +105,11 @@
</el-form-item> </el-form-item>
<el-form-item label="开发厂商名称" prop="develop_id"> <el-form-item label="开发厂商名称" prop="develop_id">
<el-select v-model="systemForm.develop_id" placeholder="请选择开发厂商" style="width: 100%"> <el-select v-model="systemForm.develop_id" placeholder="请选择开发厂商" style="width: 100%">
<el-option v-for="item in firmList" :key="item.dict_id" :label="item.dict_name" :value="item.dict_id" /> <el-option
v-for="item in firmList"
:key="item.dict_id"
:label="item.dict_name"
:value="item.dict_id" />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否启用" prop="state"> <el-form-item label="是否启用" prop="state">
...@@ -98,7 +122,7 @@ ...@@ -98,7 +122,7 @@
import { reactive, ref, onBeforeMount, onMounted, computed } from "vue"; import { reactive, ref, onBeforeMount, onMounted, computed } from "vue";
import axios from "@/request/http.js"; import axios from "@/request/http.js";
import { ElMessage } from "element-plus"; import { ElMessage } from "element-plus";
import { validatePhone } from "@/services/rules.js" import { validatePhone } from "@/services/rules.js";
const props = defineProps({ const props = defineProps({
formType: { formType: {
type: Boolean, type: Boolean,
...@@ -143,7 +167,11 @@ const validateBusinessName = (rule, value, callback) => { ...@@ -143,7 +167,11 @@ const validateBusinessName = (rule, value, callback) => {
} else { } else {
let params = null; let params = null;
if (props.id) { if (props.id) {
params = { id: parseInt(props.id), business_name: value, organization_id: systemForm.organization_id }; params = {
id: parseInt(props.id),
business_name: value,
organization_id: systemForm.organization_id,
};
} else { } else {
params = { business_name: value, organization_id: systemForm.organization_id }; params = { business_name: value, organization_id: systemForm.organization_id };
} }
...@@ -182,20 +210,19 @@ const validateSystemAccount = (rule, value, callback) => { ...@@ -182,20 +210,19 @@ const validateSystemAccount = (rule, value, callback) => {
const checkPhoneRepet = (rule, value, callback) => { const checkPhoneRepet = (rule, value, callback) => {
let params = null; let params = null;
if (props.id){ if (props.id) {
params = {id: parseInt(props.id),contact_phone: value,} params = { id: parseInt(props.id), contact_phone: value };
}else { } else {
params = {id: 0,contact_phone: value} params = { id: 0, contact_phone: value };
} }
axios.post(`/apaas/system/v5/org/check`,params) axios.post(`/apaas/system/v5/org/check`, params).then((res) => {
.then((res) => {
if (res.data.code == 200) { if (res.data.code == 200) {
callback() callback();
}else { } else {
callback(new Error(res.data.data)) callback(new Error(res.data.data));
} }
}) });
} };
const formRules = reactive({ const formRules = reactive({
organization_id: [{ required: true, message: "请选择组织机构", trigger: "change" }], organization_id: [{ required: true, message: "请选择组织机构", trigger: "change" }],
......
...@@ -215,10 +215,13 @@ const exportFile = () => { ...@@ -215,10 +215,13 @@ const exportFile = () => {
axios axios
.get(`/apaas/system/v5/log/userAccountAudit/list/export`, { .get(`/apaas/system/v5/log/userAccountAudit/list/export`, {
params, params,
responseType: "blob",
}) })
.then((res) => { .then((res) => {
if (res.status === 200) { if (res.status === 200) {
downloadBlob(res.data); const type =
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8";
downloadBlob(res.data, type);
} else { } else {
ElMessage.error(res.statusText); ElMessage.error(res.statusText);
} }
......
...@@ -254,31 +254,25 @@ const state = reactive({ ...@@ -254,31 +254,25 @@ const state = reactive({
deleteTips: "", deleteTips: "",
}); });
const { const { filter, operateStatusList, headers, selectedNum, tableRows, deleteDialog, deleteTips } =
filter, toRefs(state);
operateStatusList,
headers,
selectedNum,
detailHeaders,
tableRows,
tableTotal,
dialogDetail,
deleteDialog,
deleteTips,
} = toRefs(state);
//导出 //导出
const exportFile = () => { const exportFile = () => {
let params = { ...state.filter }; let params = { ...state.filter };
params.start_at = params.time ? params.time[0] || "" : ""; params.start_at = params.time ? params.time[0] || "" : "";
params.end_at = params.time ? params.time[1] || "" : ""; params.end_at = params.time ? params.time[1] || "" : "";
delete params.time; delete params.time;
delete params.total;
axios axios
.get(`/apaas/system/v5/log/userBehavior/list/export`, { .get(`/apaas/system/v5/log/userBehavior/list/export`, {
params, params,
responseType: "blob",
}) })
.then((res) => { .then((res) => {
if (res.status === 200) { if (res.status === 200) {
downloadBlob(res.data); const type =
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8";
downloadBlob(res.data, type);
} else { } else {
ElMessage.error(res.statusText); ElMessage.error(res.statusText);
} }
...@@ -317,10 +311,10 @@ const deleteCurrent = (row) => { ...@@ -317,10 +311,10 @@ const deleteCurrent = (row) => {
const confirmDelete = () => { const confirmDelete = () => {
const ids = state.selectedRows.map((item) => item.id); const ids = state.selectedRows.map((item) => item.id);
axios axios
.delete("/apaas/system/v5/log/userBehavior/delete", { data: { ids: ids } }) .delete(`/apaas/system/v5/log/userBehavior/delete?ids=${ids.join(",")}`)
.then((res) => { .then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
ElMessage.success(res.data.msg); ElMessage.success(res.data.data);
cleanSelected(); cleanSelected();
getTableRows(); getTableRows();
} else { } else {
......
...@@ -53,7 +53,10 @@ ...@@ -53,7 +53,10 @@
ref="accountFromRef" ref="accountFromRef"
:form-type="route.query.id ? true : false" :form-type="route.query.id ? true : false"
@action="getAccountFromData"></accountFrom> @action="getAccountFromData"></accountFrom>
<passwordForm v-show="step === 2" ref="passwordFormRef" @action="getPasswordFormData"></passwordForm> <passwordForm
v-show="step === 2"
ref="passwordFormRef"
@action="getPasswordFormData"></passwordForm>
<div class="process_end" v-show="step === 3"> <div class="process_end" v-show="step === 3">
<div> <div>
<div> <div>
......
...@@ -266,9 +266,9 @@ var pathToUrl = (path) => { ...@@ -266,9 +266,9 @@ var pathToUrl = (path) => {
} }
}; };
const downloadBlob = (blobData, fileName) => { const downloadBlob = (blobData, type, fileName) => {
const blob = new Blob([blobData], { const blob = new Blob([blobData], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8", type,
}); });
const url = window.URL.createObjectURL(blob); const url = window.URL.createObjectURL(blob);
const aLink = document.createElement("a"); const aLink = document.createElement("a");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment