This commit is contained in:
2023-06-19 17:25:29 +08:00
parent 5940dfa4aa
commit 8aa883ecc2
183 changed files with 21841 additions and 18453 deletions

View File

@ -1,20 +1,20 @@
<template>
<div class="app-container">
<el-form
v-show="showSearch"
ref="queryFormRef"
:inline="true"
:model="queryParams"
label-width="68px"
v-show="showSearch"
ref="queryFormRef"
:inline="true"
:model="queryParams"
label-width="68px"
>
<el-form-item label="企业名称" prop="name">
<el-input
v-model="queryParams.name"
clearable
placeholder="请输入企业名称"
size="default"
style="width: 240px"
@keyup.enter.native="handleQuery"
v-model="queryParams.name"
clearable
placeholder="请输入企业名称"
size="default"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<!-- <el-form-item label="所属站点" prop="tenantId">
@ -23,78 +23,72 @@
<el-form-item>
<el-button
icon="search"
size="default"
type="primary"
@click="handleQuery"
>搜索
</el-button
>
icon="search"
size="default"
type="primary"
@click="handleQuery"
>搜索
</el-button>
<el-button icon="refresh" size="default" @click="resetQuery"
>重置
</el-button
>
>重置
</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
icon="plus"
plain
size="default"
type="primary"
@click="handleAdd"
>新增
</el-button
>
icon="plus"
plain
size="default"
type="primary"
@click="handleAdd"
>新增
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
icon="upload"
plain
size="default"
type="info"
@click="handleImport"
>导入
</el-button
>
icon="upload"
plain
size="default"
type="info"
@click="handleImport"
>导入
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
icon="download"
plain
size="default"
type="warning"
@click="handleExport"
>导出
</el-button
>
icon="download"
plain
size="default"
type="warning"
@click="handleExport"
>导出
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
:disabled="!ids.length"
icon="delete"
type="danger"
@click="handleDelete()"
>批量删除
</el-button
>
:disabled="!ids.length"
icon="delete"
type="danger"
@click="handleDelete()"
>批量删除
</el-button>
</el-col>
<right-toolbar
:showSearch.sync="showSearch"
@queryTable="getList"
:showSearch.sync="showSearch"
@queryTable="getList"
></right-toolbar>
</el-row>
<el-table
v-loading="loading"
:data="dataList"
@selection-change="handleSelectionChange"
v-loading="loading"
:data="dataList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55"/>
<el-table-column align="center" label="数据编号" prop="id"/>
<el-table-column align="center" label="企业名称" prop="name"/>
<el-table-column type="selection" width="55" />
<el-table-column align="center" label="数据编号" prop="id" />
<el-table-column align="center" label="企业名称" prop="name" />
<!-- <el-table-column label="统一社会信用代码" align="center" prop="code" /> -->
<el-table-column align="center" label="所属领域" show-overflow-tooltip>
<template #default="{ row }">
@ -106,7 +100,7 @@
{{ siteList.find((el) => el.id === row.tenantId)?.name ?? "无" }}
</template>
</el-table-column> -->
<el-table-column align="center" label="所在地" prop="address"/>
<el-table-column align="center" label="所在地" prop="address" />
<el-table-column align="center" label="企业类型" prop="kind">
<template #default="{ row }">
<div>
@ -122,78 +116,73 @@
<el-table-column align="center" label="操作">
<template #default="{ row }">
<el-button
icon="edit"
size="small"
type="text"
@click="handleDetail(row.id)"
>修改
</el-button
>
icon="edit"
size="small"
type="text"
@click="handleDetail(row.id)"
>修改
</el-button>
<el-button
icon="delete"
size="small"
type="text"
@click="handleDelete(row.id)"
>删除
</el-button
>
icon="delete"
size="small"
type="text"
@click="handleDelete(row.id)"
>删除
</el-button>
<el-button
icon="edit"
size="small"
type="text"
@click="openAssignAccount(row.id)"
>分配账号
</el-button
>
icon="edit"
size="small"
type="text"
@click="openAssignAccount(row.id)"
>分配账号
</el-button>
<el-button
icon="edit"
size="small"
type="text"
@click="openResetPassword(row.id)"
>重置密码
</el-button
>
icon="edit"
size="small"
type="text"
@click="openResetPassword(row.id)"
>重置密码
</el-button>
<el-button
icon="edit"
size="small"
type="text"
@click="handleOpenVip(row.id)"
>开通会员
</el-button
>
icon="edit"
size="small"
type="text"
@click="handleOpenVip(row.id)"
>开通会员
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
v-model:limit="queryParams.pageSize"
v-model:page="queryParams.pageNum"
:total="total"
@pagination="getList"
v-show="total > 0"
v-model:limit="queryParams.pageSize"
v-model:page="queryParams.pageNum"
:total="total"
@pagination="getList"
/>
<!-- 用户导入对话框 -->
<el-dialog
v-model="upload.open"
:title="upload.title"
append-to-body
width="400px"
v-model="upload.open"
:title="upload.title"
append-to-body
width="400px"
>
<el-upload
ref="uploadRef"
:action="upload.url"
:auto-upload="false"
:disabled="upload.isUploading"
:headers="upload.headers"
:limit="1"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
accept=".xlsx, .xls"
drag
ref="uploadRef"
:action="upload.url"
:auto-upload="false"
:disabled="upload.isUploading"
:headers="upload.headers"
:limit="1"
:on-progress="handleFileUploadProgress"
:on-success="handleFileSuccess"
accept=".xlsx, .xls"
drag
>
<el-icon class="el-icon--upload">
<upload-filled/>
<upload-filled />
</el-icon>
<div class="el-upload__text">将文件拖到此处<em>点击上传</em></div>
<template #tip>
@ -223,79 +212,77 @@
</el-dialog>
<el-dialog
v-model="showAssignAccount"
append-to-body
title="分配账号"
width="400px"
v-model="showAssignAccount"
append-to-body
title="分配账号"
width="400px"
>
<el-form
ref="assignAccountFormRef"
:model="assignAccountForm"
:rules="assignAccoutRules"
label-width="80px"
ref="assignAccountFormRef"
:model="assignAccountForm"
:rules="assignAccoutRules"
label-width="80px"
>
<el-form-item label="用户名" prop="username">
<el-input v-model="assignAccountForm.username"></el-input>
</el-form-item>
<el-form-item label="密码" prop="password">
<el-input
v-model="assignAccountForm.password"
show-password
v-model="assignAccountForm.password"
show-password
></el-input>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitAssignAccount"
>
</el-button
>
>
</el-button>
<el-button @click="closeAssignAccount"> </el-button>
</div>
</template>
</el-dialog>
<el-dialog
v-model="showResetPassword"
append-to-body
title="重置密码"
width="400px"
v-model="showResetPassword"
append-to-body
title="重置密码"
width="400px"
>
<el-form
ref="resetPasswordFormRef"
:model="resetPasswordForm"
:rules="assignAccoutRules"
label-width="80px"
ref="resetPasswordFormRef"
:model="resetPasswordForm"
:rules="assignAccoutRules"
label-width="80px"
>
<el-form-item label="密码" prop="password">
<el-input
v-model="resetPasswordForm.password"
show-password
v-model="resetPasswordForm.password"
show-password
></el-input>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" @click="submitResetPassword"
>
</el-button
>
>
</el-button>
<el-button @click="closeResetPassword"> </el-button>
</div>
</template>
</el-dialog>
<el-dialog
v-model="showOpenVip"
:title="vipForm.id ? `修改会员` : `开通会员`"
append-to-body
width="400px"
v-model="showOpenVip"
:title="vipForm.id ? `修改会员` : `开通会员`"
append-to-body
width="400px"
>
<el-form
ref="vipFormRef"
:model="vipForm"
:rules="assignAccoutRules"
label-width="80px"
ref="vipFormRef"
:model="vipForm"
:rules="assignAccoutRules"
label-width="80px"
>
<el-form-item label="会员类型" prop="vipType">
<el-radio-group v-model="vipForm.vipType">
@ -305,27 +292,26 @@
</el-radio-group>
</el-form-item>
<el-form-item
v-if="vipForm.vipType != '0'"
label="到期时间"
prop="expireTime"
v-if="vipForm.vipType != '0'"
label="到期时间"
prop="expireTime"
>
<el-date-picker
v-model="vipForm.expireTime"
placeholder="选择到期时间"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
v-model="vipForm.expireTime"
placeholder="选择到期时间"
type="datetime"
value-format="YYYY-MM-DD HH:mm:ss"
/>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button
:disabled="vipForm.vipType == 0"
type="primary"
@click="submitVip"
>
</el-button
>
:disabled="vipForm.vipType == 0"
type="primary"
@click="submitVip"
>
</el-button>
<el-button @click="closeVip"> </el-button>
</div>
</template>
@ -345,17 +331,17 @@ import {
updateCasVip,
} from "@/api/dataList/enterprise";
import md5 from "js-md5";
import {getToken} from "@/utils/auth";
import { getToken } from "@/utils/auth";
// import SiteOptions from "@/views/components/SiteOptions";
// import axios from "axios";
// import { download } from "@/utils/request";
// import dayjs from "dayjs";
import {blobValidate} from "@/utils/ruoyi";
import {saveAs} from "file-saver";
import {reactive, ref, toRefs} from "vue";
import {useRouter} from "vue-router";
import {enterpriseOptions} from "@/utils/parameter";
import {ElLoading, ElMessage, ElMessageBox} from "element-plus";
import { blobValidate } from "@/utils/ruoyi";
import { saveAs } from "file-saver";
import { reactive, ref, toRefs } from "vue";
import { useRouter } from "vue-router";
import { enterpriseOptions } from "@/utils/parameter";
import { ElLoading, ElMessage, ElMessageBox } from "element-plus";
import request from "@/utils/request";
import dayjs from "dayjs";
@ -381,12 +367,12 @@ const upload = reactive({
// 是否更新已经存在的用户数据
// updateSupport: 0,
// 设置上传的请求头部
headers: {Authorization: "Bearer " + getToken()},
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: import.meta.env.VITE_APP_BASE_API + "/business/enterprise/importData",
});
const {queryParams} = toRefs(data);
const { queryParams } = toRefs(data);
const showSearch = ref(true);
// const siteList = ref([]);
const loading = ref(true);
@ -418,11 +404,11 @@ const handleQuery = () => {
};
const assignAccoutRules = {
username: [{required: true, message: "请输入用户名", trigger: "blur"}],
password: [{required: true, message: "请输入密码", trigger: "blur"}],
vipType: [{required: true, message: "请选择会员类型", trigger: "change"}],
username: [{ required: true, message: "请输入用户名", trigger: "blur" }],
password: [{ required: true, message: "请输入密码", trigger: "blur" }],
vipType: [{ required: true, message: "请选择会员类型", trigger: "change" }],
expireTime: [
{required: true, message: "请选择到期时间", trigger: "change"},
{ required: true, message: "请选择到期时间", trigger: "change" },
],
};
const showAssignAccount = ref(false);
@ -439,7 +425,7 @@ const showResetPassword = ref(false);
const openAssignAccount = async (id) => {
resetForm();
const {have, data} = await getAccount(id);
const { have, data } = await getAccount(id);
if (have) {
ElMessageBox.alert(`已经存在账号:${data}`, "账号已经存在");
} else {
@ -450,7 +436,7 @@ const openAssignAccount = async (id) => {
const openResetPassword = async (id) => {
resetForm();
const {have, userId} = await getAccount(id);
const { have, userId } = await getAccount(id);
if (have) {
resetPasswordForm.id = userId;
showResetPassword.value = true;
@ -498,15 +484,15 @@ const submitResetPassword = async () => {
//TODO:
/** 开通vip操作 */
const vipData = reactive({
vipForm: {userType: "1"},
vipForm: { userType: "1" },
});
const {vipForm} = toRefs(vipData);
const { vipForm } = toRefs(vipData);
const showOpenVip = ref(false);
const vipFormRef = ref();
const handleOpenVip = async (id) => {
resetVipForm();
const {have, userId} = await getAccount(id);
const { have, userId } = await getAccount(id);
if (have) {
const resp = await getCasVip(userId);
if (resp.have) {
@ -535,7 +521,7 @@ const submitVip = async () => {
};
const resetVipForm = () => {
vipForm.value = {userType: "1"};
vipForm.value = { userType: "1" };
if (vipFormRef.value) {
vipFormRef.value.resetFields();
}
@ -561,7 +547,7 @@ const handleAdd = () => {
const handleDetail = (id) => {
router.push({
path: "/dataList/enterprise/add",
query: {id},
query: { id },
});
};
const uploadRef = ref(null);
@ -575,9 +561,9 @@ function handleImport() {
/** 下载模板操作 */
function importTemplate() {
proxy.download(
"system/user/importTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
"system/user/importTemplate",
{},
`user_template_${new Date().getTime()}.xlsx`
);
}
@ -591,11 +577,11 @@ const handleFileSuccess = (response, file, fileList) => {
upload.isUploading = false;
uploadRef.value.handleRemove(file);
ElMessageBox.alert(
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
"<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
response.msg +
"</div>",
"导入结果",
{dangerouslyUseHTMLString: true}
"导入结果",
{ dangerouslyUseHTMLString: true }
);
getList();
};
@ -608,13 +594,12 @@ function submitFileForm() {
const handleDelete = async (id) => {
const delIds = id || ids.value.join(",");
ElMessageBox.confirm(`是否确认删除编号为${delIds}的数据项?`)
.then(async () => {
await companyDelete(delIds);
getList();
ElMessage.success("删除成功");
})
.catch(() => {
});
.then(async () => {
await companyDelete(delIds);
getList();
ElMessage.success("删除成功");
})
.catch(() => {});
};
let downloadLoadingInstance;
@ -624,41 +609,41 @@ const download = (url, filename) => {
background: "rgba(0, 0, 0, 0.7)",
});
return request
.get(url, {
// transformRequest: [
// (params) => {
// return tansParams(params);
// },
// ],
headers: {"Content-Type": "application/x-www-form-urlencoded"},
responseType: "blob",
})
.then(async (data) => {
const isLogin = await blobValidate(data);
if (isLogin) {
const blob = new Blob([data]);
saveAs(blob, filename);
} else {
const resText = await data.text();
const rspObj = JSON.parse(resText);
const errMsg =
errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
ElMessage.error(errMsg);
}
downloadLoadingInstance.close();
})
.catch((r) => {
console.error(r);
ElMessage.error("下载文件出现错误,请联系管理员!");
downloadLoadingInstance.close();
});
.get(url, {
// transformRequest: [
// (params) => {
// return tansParams(params);
// },
// ],
headers: { "Content-Type": "application/x-www-form-urlencoded" },
responseType: "blob",
})
.then(async (data) => {
const isLogin = await blobValidate(data);
if (isLogin) {
const blob = new Blob([data]);
saveAs(blob, filename);
} else {
const resText = await data.text();
const rspObj = JSON.parse(resText);
const errMsg =
errorCode[rspObj.code] || rspObj.msg || errorCode["default"];
ElMessage.error(errMsg);
}
downloadLoadingInstance.close();
})
.catch((r) => {
console.error(r);
ElMessage.error("下载文件出现错误,请联系管理员!");
downloadLoadingInstance.close();
});
};
const handleExport = () => {
ElMessageBox.confirm(`是否确认企业列表?`).then(() => {
download(
`/business/enterprise/export`,
`企业信息(${dayjs().format("YYYYMMDDHHmmss")}).xlsx`
`/business/enterprise/export`,
`企业信息(${dayjs().format("YYYYMMDDHHmmss")}).xlsx`
);
});
};