9/22
parent
f14194deca
commit
76a5c3eb7c
@ -0,0 +1,141 @@
|
|||||||
|
<template>
|
||||||
|
<div class="ApplyFoundView">
|
||||||
|
<el-form :model="DialogForm" :label-width="150" class="mainBox">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="营业执照:">
|
||||||
|
<el-upload
|
||||||
|
v-model:file-list="fileList"
|
||||||
|
class="upload-demo"
|
||||||
|
:limit="1"
|
||||||
|
:http-request="uploadApi"
|
||||||
|
:on-preview="handlePreview"
|
||||||
|
>
|
||||||
|
<el-button type="primary">
|
||||||
|
<el-icon><UploadFilled /></el-icon>
|
||||||
|
上传文件
|
||||||
|
</el-button>
|
||||||
|
</el-upload>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="企业名称/租户名称:">
|
||||||
|
<el-input v-model="DialogForm.name" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="社会信用代码:">
|
||||||
|
<el-input v-model="DialogForm.socialCreditCode" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" @click="dialogS">提交信息</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { useRouter } from "vue-router";
|
||||||
|
import { ref } from "vue";
|
||||||
|
import {
|
||||||
|
tenantRegister,
|
||||||
|
tenantUploaderFile,
|
||||||
|
tenantDownFile,
|
||||||
|
} from "@/api/Index";
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
export default {
|
||||||
|
name: "FoundBox",
|
||||||
|
setup() {
|
||||||
|
const router = useRouter();
|
||||||
|
const fileList = ref([]);
|
||||||
|
const DialogForm = ref({});
|
||||||
|
const dialogS = () => {
|
||||||
|
let type = true;
|
||||||
|
console.log(fileList.value);
|
||||||
|
if (fileList.value.length == 0) {
|
||||||
|
type = false;
|
||||||
|
}
|
||||||
|
if (type) {
|
||||||
|
let ApiData = {
|
||||||
|
...DialogForm.value,
|
||||||
|
businessLicenseUrl: fileList.value[0].filePath,
|
||||||
|
};
|
||||||
|
tenantRegister(ApiData).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
ElMessage({
|
||||||
|
message: "创建成功",
|
||||||
|
type: "success",
|
||||||
|
});
|
||||||
|
router.push("/ApplyJoin");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
ElMessage({
|
||||||
|
message: "请补全信息",
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const uploadApi = (param) => {
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append("file", param.file);
|
||||||
|
console.log(fileList.value);
|
||||||
|
tenantUploaderFile(formData).then((res) => {
|
||||||
|
fileList.value[0] = { ...fileList.value[0], ...res.data };
|
||||||
|
console.log(fileList.value);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const handlePreview = (uploadFile) => {
|
||||||
|
console.log(uploadFile);
|
||||||
|
tenantDownFile({
|
||||||
|
businessLicenseUrl: uploadFile.filePath,
|
||||||
|
}).then((res) => {
|
||||||
|
console.log(res);
|
||||||
|
const blob = new Blob([res]);
|
||||||
|
// for IE
|
||||||
|
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
|
||||||
|
const fileName = uploadFile.fileName;
|
||||||
|
window.navigator.msSaveOrOpenBlob(blob, fileName);
|
||||||
|
} else {
|
||||||
|
// for Non-IE (chrome, firefox etc.)
|
||||||
|
const fileName = uploadFile.fileName;
|
||||||
|
const elink = document.createElement("a");
|
||||||
|
elink.download = fileName;
|
||||||
|
elink.style.display = "none";
|
||||||
|
elink.href = URL.createObjectURL(blob);
|
||||||
|
document.body.appendChild(elink);
|
||||||
|
elink.click();
|
||||||
|
URL.revokeObjectURL(elink.href);
|
||||||
|
document.body.removeChild(elink);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// console.log(uploadFile);
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
DialogForm,
|
||||||
|
dialogS,
|
||||||
|
uploadApi,
|
||||||
|
handlePreview,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.ApplyFoundView {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background: #fff;
|
||||||
|
.mainBox {
|
||||||
|
width: 400px;
|
||||||
|
padding: 30px 20px;
|
||||||
|
margin-top: -70px;
|
||||||
|
background: #f9f9f9;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,126 @@
|
|||||||
|
<template>
|
||||||
|
<div class="ApplyFoundView">
|
||||||
|
<div class="mainBox">
|
||||||
|
<p class="CsTitle">加入企业</p>
|
||||||
|
<span class="CsTips">
|
||||||
|
你可以输入企业名称我们帮您匹配出相关企业,在确认公司信息后选择您要加入公司
|
||||||
|
</span>
|
||||||
|
<el-input
|
||||||
|
class="CsSearch"
|
||||||
|
size="large"
|
||||||
|
v-model="ApplyName"
|
||||||
|
@input="InputName"
|
||||||
|
>
|
||||||
|
<template #prepend>企业名称</template>
|
||||||
|
</el-input>
|
||||||
|
<div class="CsApplyList" v-if="ApplyList.Name">
|
||||||
|
<p>{{ ApplyList.Name }}</p>
|
||||||
|
<p>{{ ApplyList.socialCreditCode }}</p>
|
||||||
|
<p>{{ ApplyList.Phone }}</p>
|
||||||
|
</div>
|
||||||
|
<el-button type="primary" @click="FnJsin" :disabled="ApplyList.id">
|
||||||
|
申请加入
|
||||||
|
</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { useRouter } from "vue-router";
|
||||||
|
import { ref } from "vue";
|
||||||
|
import { tenantNameQuery, TenantApplyJoin } from "@/api/Index";
|
||||||
|
// import { ElMessage } from "element-plus";
|
||||||
|
import { useStore } from "vuex";
|
||||||
|
export default {
|
||||||
|
name: "FoundBox",
|
||||||
|
setup() {
|
||||||
|
const router = useRouter();
|
||||||
|
const ApplyName = ref("");
|
||||||
|
const ApplyList = ref({});
|
||||||
|
const store = useStore();
|
||||||
|
const InputName = (e) => {
|
||||||
|
console.log(e);
|
||||||
|
if (e) {
|
||||||
|
tenantNameQuery({ name: e }).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
ApplyList.value = res.data;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
const FnJsin = () => {
|
||||||
|
console.log(ApplyList.value);
|
||||||
|
let ApiData = {
|
||||||
|
joinTenantId: ApplyList.value.Id,
|
||||||
|
userId: store.state.User.userInfo.id,
|
||||||
|
};
|
||||||
|
TenantApplyJoin(ApiData).then((res) => {
|
||||||
|
console.log(res);
|
||||||
|
router.push("/ApplyJoin");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
ApplyName,
|
||||||
|
ApplyList,
|
||||||
|
InputName,
|
||||||
|
FnJsin,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.ApplyFoundView {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
background: #fff;
|
||||||
|
.mainBox {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
width: 600px;
|
||||||
|
padding: 30px 20px;
|
||||||
|
margin-top: -70px;
|
||||||
|
background: #f9f9f9;
|
||||||
|
.CsTitle {
|
||||||
|
font-size: 24px;
|
||||||
|
font-weight: bold;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
}
|
||||||
|
.CsTips {
|
||||||
|
font-size: 14px;
|
||||||
|
color: #c9c9c9;
|
||||||
|
}
|
||||||
|
.CsSearch {
|
||||||
|
width: 400px;
|
||||||
|
margin-top: 14px;
|
||||||
|
margin-bottom: 14px;
|
||||||
|
}
|
||||||
|
.CsApplyList {
|
||||||
|
width: 400px;
|
||||||
|
background-color: #fff;
|
||||||
|
border: 1px solid #d7dbe0;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
cursor: pointer;
|
||||||
|
margin-bottom: 14px;
|
||||||
|
p {
|
||||||
|
height: 24px;
|
||||||
|
line-height: 24px;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #7a8699;
|
||||||
|
&:nth-child(1) {
|
||||||
|
color: #1d2129;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 600;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,388 @@
|
|||||||
|
<template>
|
||||||
|
<div class="BookingMain">
|
||||||
|
<div class="ButtonBox">
|
||||||
|
<el-button type="primary" @click="GoForj">创建/加入企业</el-button>
|
||||||
|
</div>
|
||||||
|
<div class="mainBox">
|
||||||
|
<div class="mainBoxT">
|
||||||
|
<p class="mainBoxText">{{ JoinType ? "当前公司" : "申请中" }}</p>
|
||||||
|
<p class="mainBoxTname">
|
||||||
|
{{ UserTenantList.Name }}
|
||||||
|
<el-button
|
||||||
|
class="CxButton"
|
||||||
|
type="danger"
|
||||||
|
size="small"
|
||||||
|
@click="WithdrawalApplication"
|
||||||
|
v-if="!JoinType"
|
||||||
|
>
|
||||||
|
撤销
|
||||||
|
</el-button>
|
||||||
|
</p>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8" class="mainBoxTunit">
|
||||||
|
<p>
|
||||||
|
<span>创建人</span>
|
||||||
|
<span>{{ UserTenantList.CreatedUserName }}</span>
|
||||||
|
</p>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" class="mainBoxTunit">
|
||||||
|
<p>
|
||||||
|
<span>社会信用代码</span>
|
||||||
|
<span>{{ UserTenantList.socialCreditCode }}</span>
|
||||||
|
</p>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" class="mainBoxTunit">
|
||||||
|
<p>
|
||||||
|
<span>企业ID</span>
|
||||||
|
<span>{{ UserTenantList.Id }}</span>
|
||||||
|
</p>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" class="mainBoxTunit">
|
||||||
|
<p>
|
||||||
|
<span>电子邮箱</span>
|
||||||
|
<span>{{ UserTenantList.Email }}</span>
|
||||||
|
</p>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" class="mainBoxTunit">
|
||||||
|
<p>
|
||||||
|
<span>电话</span>
|
||||||
|
<span>{{ UserTenantList.Phone }}</span>
|
||||||
|
</p>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8" class="mainBoxTunit">
|
||||||
|
<p>
|
||||||
|
<span>{{ JoinType ? "创建时间" : "申请时间" }}</span>
|
||||||
|
<span>{{ UserTenantList.CreatedTime }}</span>
|
||||||
|
</p>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
<div></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { useRouter } from "vue-router";
|
||||||
|
// import SearchBox from "@/components/SearchBox.vue";
|
||||||
|
// import TableBox from "@/components/TableBox.vue";
|
||||||
|
import { Plus } from "@element-plus/icons-vue";
|
||||||
|
import {
|
||||||
|
tenantUserTenantList,
|
||||||
|
applyJoinList,
|
||||||
|
tenantRegister,
|
||||||
|
tenantUploaderFile,
|
||||||
|
tenantDownFile,
|
||||||
|
bookingTemplateDelete,
|
||||||
|
TenantCancelApplyJoin,
|
||||||
|
} from "@/api/Index";
|
||||||
|
import { ref, reactive } from "vue";
|
||||||
|
export default {
|
||||||
|
name: "ViewBooking",
|
||||||
|
components: {
|
||||||
|
// SearchBox,
|
||||||
|
// TableBox,
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
const JoinType = ref(true);
|
||||||
|
const UserTenantList = ref({});
|
||||||
|
const router = useRouter();
|
||||||
|
const init = () => {
|
||||||
|
tenantUserTenantList().then((res) => {
|
||||||
|
if (res.data.length) {
|
||||||
|
UserTenantList.value = res.data[0];
|
||||||
|
JoinType.value = true;
|
||||||
|
} else {
|
||||||
|
applyJoinList().then((res) => {
|
||||||
|
if (res.data.length) {
|
||||||
|
// UserTenantList.value = res.data[0];
|
||||||
|
UserTenantList.value = {
|
||||||
|
CreatedUserName: res.data[0].AdminName,
|
||||||
|
CreatedTime: res.data[0].applyTime,
|
||||||
|
Name: res.data[0].name,
|
||||||
|
socialCreditCode: res.data[0].socialCreditCode,
|
||||||
|
Id: res.data[0].tenantId,
|
||||||
|
id: res.data[0].id,
|
||||||
|
};
|
||||||
|
JoinType.value = false;
|
||||||
|
} else {
|
||||||
|
router.push("/ApplyJoinForJ");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
init();
|
||||||
|
const dialogFormVisible = ref(false);
|
||||||
|
const DialogForm = ref({});
|
||||||
|
const fileList = ref([]);
|
||||||
|
const TypeData = [
|
||||||
|
{
|
||||||
|
code: "10",
|
||||||
|
name: "收货人",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
code: "20",
|
||||||
|
name: "发货人",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
code: "30",
|
||||||
|
name: "通知人",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
code: "40",
|
||||||
|
name: "第二通知人",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
const SearchBoxData = reactive([
|
||||||
|
{
|
||||||
|
title: "类型",
|
||||||
|
EType: "Select",
|
||||||
|
DName: "type",
|
||||||
|
SelectList: TypeData,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "代码",
|
||||||
|
EType: "Input",
|
||||||
|
DName: "title",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "名称",
|
||||||
|
EType: "Input",
|
||||||
|
DName: "name",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "地址",
|
||||||
|
EType: "Input",
|
||||||
|
DName: "addr",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "模板内容",
|
||||||
|
EType: "Input",
|
||||||
|
DName: "content",
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const GoForj = () => {
|
||||||
|
router.push("/ApplyJoinForJ");
|
||||||
|
};
|
||||||
|
const ClickAdd = () => {
|
||||||
|
dialogFormVisible.value = true;
|
||||||
|
};
|
||||||
|
const ClickEdit = (e) => {
|
||||||
|
dialogFormVisible.value = true;
|
||||||
|
let R = [];
|
||||||
|
|
||||||
|
e.type.split("[").forEach((a) => {
|
||||||
|
if (a) {
|
||||||
|
a.split("]").forEach((b) => {
|
||||||
|
if (b) {
|
||||||
|
R.push(b);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return { ...e, type: R };
|
||||||
|
};
|
||||||
|
const TableData = reactive([
|
||||||
|
{
|
||||||
|
label: "类型",
|
||||||
|
prop: "type",
|
||||||
|
StateType: "multiple",
|
||||||
|
StateChange: TypeData,
|
||||||
|
},
|
||||||
|
{ label: "代码", prop: "title" },
|
||||||
|
{ label: "名称", prop: "name" },
|
||||||
|
{ label: "地址", prop: "addr" },
|
||||||
|
{ label: "国家", prop: "countryName" },
|
||||||
|
{ label: "备注", prop: "remark" },
|
||||||
|
{ label: "电话", prop: "tel" },
|
||||||
|
{
|
||||||
|
label: "操作",
|
||||||
|
prop: "operate",
|
||||||
|
operateData: [
|
||||||
|
{
|
||||||
|
name: "编辑",
|
||||||
|
Fn: (e) => {
|
||||||
|
DialogForm.value = ClickEdit(e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "删除",
|
||||||
|
Fn: (e) => {
|
||||||
|
ClickDelete(e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const SearchData = {
|
||||||
|
currentPage: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
total: 0,
|
||||||
|
// ReportState: "0",
|
||||||
|
// MBLNO: "",
|
||||||
|
};
|
||||||
|
const ButtonData = [
|
||||||
|
{ text: "新建", type: "primary", icon: Plus, FnName: "ClickAdd" },
|
||||||
|
];
|
||||||
|
const TableBoxRef = ref();
|
||||||
|
const ClickSearch = (e = {}) => {
|
||||||
|
console.log(e.value);
|
||||||
|
TableBoxRef.value.Search(e.value);
|
||||||
|
};
|
||||||
|
const SearchOpen = (e) => {
|
||||||
|
TableBoxRef.value.height = e ? 450 : 562;
|
||||||
|
};
|
||||||
|
const ClickDelete = (e) => {
|
||||||
|
bookingTemplateDelete({ id: e.id }).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
ClickSearch();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const dialogF = () => {
|
||||||
|
dialogFormVisible.value = false;
|
||||||
|
DialogForm.value = {};
|
||||||
|
};
|
||||||
|
const dialogS = () => {
|
||||||
|
let ApiData = {
|
||||||
|
...DialogForm.value,
|
||||||
|
businessLicenseUrl: fileList.value[0].filePath,
|
||||||
|
};
|
||||||
|
tenantRegister(ApiData).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
dialogF();
|
||||||
|
ClickSearch();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const uploadApi = (param) => {
|
||||||
|
let formData = new FormData();
|
||||||
|
formData.append("file", param.file);
|
||||||
|
tenantUploaderFile(formData).then((res) => {
|
||||||
|
console.log(res.data);
|
||||||
|
console.log(fileList.value);
|
||||||
|
let Data = [];
|
||||||
|
fileList.value.forEach((item) => {
|
||||||
|
if (item.name == res.data.fileName) {
|
||||||
|
item = { ...item, ...res.data };
|
||||||
|
console.log(item);
|
||||||
|
}
|
||||||
|
Data.push(item);
|
||||||
|
});
|
||||||
|
fileList.value = Data;
|
||||||
|
console.log(fileList.value);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const handlePreview = (uploadFile) => {
|
||||||
|
console.log(uploadFile);
|
||||||
|
tenantDownFile({
|
||||||
|
businessLicenseUrl: uploadFile.filePath,
|
||||||
|
}).then((res) => {
|
||||||
|
console.log(res);
|
||||||
|
const blob = new Blob([res]);
|
||||||
|
// for IE
|
||||||
|
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
|
||||||
|
const fileName = uploadFile.fileName;
|
||||||
|
window.navigator.msSaveOrOpenBlob(blob, fileName);
|
||||||
|
} else {
|
||||||
|
// for Non-IE (chrome, firefox etc.)
|
||||||
|
const fileName = uploadFile.fileName;
|
||||||
|
const elink = document.createElement("a");
|
||||||
|
elink.download = fileName;
|
||||||
|
elink.style.display = "none";
|
||||||
|
elink.href = URL.createObjectURL(blob);
|
||||||
|
document.body.appendChild(elink);
|
||||||
|
elink.click();
|
||||||
|
URL.revokeObjectURL(elink.href);
|
||||||
|
document.body.removeChild(elink);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// console.log(uploadFile);
|
||||||
|
};
|
||||||
|
const WithdrawalApplication = () => {
|
||||||
|
TenantCancelApplyJoin({ id: UserTenantList.value.id }).then((res) => {
|
||||||
|
console.log(res);
|
||||||
|
init();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
JoinType,
|
||||||
|
UserTenantList,
|
||||||
|
fileList,
|
||||||
|
TypeData,
|
||||||
|
DialogForm,
|
||||||
|
dialogFormVisible,
|
||||||
|
SearchBoxData,
|
||||||
|
TableBoxRef,
|
||||||
|
ClickSearch,
|
||||||
|
SearchOpen,
|
||||||
|
TableData,
|
||||||
|
SearchData,
|
||||||
|
ButtonData,
|
||||||
|
ClickAdd,
|
||||||
|
ClickDelete,
|
||||||
|
dialogF,
|
||||||
|
dialogS,
|
||||||
|
uploadApi,
|
||||||
|
handlePreview,
|
||||||
|
GoForj,
|
||||||
|
WithdrawalApplication,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.ButtonBox {
|
||||||
|
background: #fff;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding: 16px 20px 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
.BookingMain {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
.mainBox {
|
||||||
|
width: 100%;
|
||||||
|
background: #fff;
|
||||||
|
.mainBoxT {
|
||||||
|
padding: 16px 20px 20px;
|
||||||
|
position: relative;
|
||||||
|
.mainBoxText {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
background: orange;
|
||||||
|
padding: 3px 10px;
|
||||||
|
color: #fff;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
.mainBoxTname {
|
||||||
|
color: #1d2129;
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 600;
|
||||||
|
margin-bottom: 20px;
|
||||||
|
.CxButton {
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.mainBoxTunit {
|
||||||
|
span {
|
||||||
|
padding: 8px;
|
||||||
|
text-align: left;
|
||||||
|
font-size: 14px;
|
||||||
|
display: inline-block;
|
||||||
|
&:nth-child(1) {
|
||||||
|
width: 90px;
|
||||||
|
color: #7a8699;
|
||||||
|
}
|
||||||
|
&:nth-child(2) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,19 @@
|
|||||||
|
let cargoIdData = [
|
||||||
|
{
|
||||||
|
name: "S 普通货",
|
||||||
|
code: "S",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "R 冻柜",
|
||||||
|
code: "R",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "D 危险品",
|
||||||
|
code: "D",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "O 超限箱",
|
||||||
|
code: "O",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
export { cargoIdData };
|
@ -0,0 +1,112 @@
|
|||||||
|
<template>
|
||||||
|
<div class="BookingMain">
|
||||||
|
<TableBox
|
||||||
|
ref="TableBoxRef"
|
||||||
|
:TableData="TableData"
|
||||||
|
:ListApi="ListApi"
|
||||||
|
:SearchData="SearchData"
|
||||||
|
@ClickExamine="ClickExamine"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
<el-dialog
|
||||||
|
v-model="dialogVisible"
|
||||||
|
title="企业审核"
|
||||||
|
width="30%"
|
||||||
|
:before-close="handleClose"
|
||||||
|
>
|
||||||
|
<el-input
|
||||||
|
v-model="auditOpinion"
|
||||||
|
:rows="3"
|
||||||
|
type="textarea"
|
||||||
|
placeholder="审核意见"
|
||||||
|
/>
|
||||||
|
<template #footer>
|
||||||
|
<span class="dialog-footer">
|
||||||
|
<el-button type="success" @click="ClickExamineOk(1)"> 通过 </el-button>
|
||||||
|
<el-button type="danger" @click="ClickExamineOk(2)"> 驳回 </el-button>
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import TableBox from "@/components/TableBox.vue";
|
||||||
|
import { tenantWaitAuditTenantList, TenantAudit } from "@/api/Index";
|
||||||
|
import { ref, reactive } from "vue";
|
||||||
|
export default {
|
||||||
|
name: "ViewBooking",
|
||||||
|
components: {
|
||||||
|
TableBox,
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
const dialogVisible = ref(false);
|
||||||
|
const TableBoxRef = ref();
|
||||||
|
const auditOpinion = ref();
|
||||||
|
const ListApi = tenantWaitAuditTenantList;
|
||||||
|
const ClickExamineData = ref({});
|
||||||
|
const ClickExamine = (e) => {
|
||||||
|
dialogVisible.value = true;
|
||||||
|
ClickExamineData.value = e;
|
||||||
|
};
|
||||||
|
const ClickExamineOk = (auditStatus) => {
|
||||||
|
console.log(ClickExamineData.value.Id);
|
||||||
|
TenantAudit({
|
||||||
|
id: ClickExamineData.value.Id,
|
||||||
|
auditStatus,
|
||||||
|
auditOpinion: auditOpinion.value,
|
||||||
|
}).then((res) => {
|
||||||
|
TableBoxRef.value.Search();
|
||||||
|
dialogVisible.value = false;
|
||||||
|
ClickExamineData.value = {};
|
||||||
|
auditOpinion.value = "";
|
||||||
|
console.log(res);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const TableData = reactive([
|
||||||
|
{ label: "管理员名称", prop: "AdminName" },
|
||||||
|
{ label: "公司名称", prop: "Name" },
|
||||||
|
{ label: "电子邮箱", prop: "Email" },
|
||||||
|
{ label: "电话", prop: "Phone" },
|
||||||
|
{ label: "社会信用代码", prop: "socialCreditCode" },
|
||||||
|
{ label: "营业执照", prop: "businessLicenseUrl" },
|
||||||
|
{
|
||||||
|
label: "操作",
|
||||||
|
prop: "operate",
|
||||||
|
operateData: [
|
||||||
|
{
|
||||||
|
name: "审核",
|
||||||
|
Fn: (e) => {
|
||||||
|
ClickExamine(e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const SearchData = {
|
||||||
|
currentPage: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
total: 0,
|
||||||
|
// ReportState: "0",
|
||||||
|
// MBLNO: "",
|
||||||
|
};
|
||||||
|
|
||||||
|
return {
|
||||||
|
dialogVisible,
|
||||||
|
TableBoxRef,
|
||||||
|
auditOpinion,
|
||||||
|
TableData,
|
||||||
|
ClickExamine,
|
||||||
|
ClickExamineOk,
|
||||||
|
SearchData,
|
||||||
|
ListApi,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.BookingMain {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,19 @@
|
|||||||
|
let cargoIdData = [
|
||||||
|
{
|
||||||
|
name: "S 普通货",
|
||||||
|
code: "S",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "R 冻柜",
|
||||||
|
code: "R",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "D 危险品",
|
||||||
|
code: "D",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "O 超限箱",
|
||||||
|
code: "O",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
export { cargoIdData };
|
@ -0,0 +1,201 @@
|
|||||||
|
<template>
|
||||||
|
<div class="BookingMain">
|
||||||
|
<TableBox
|
||||||
|
ref="TableBoxRef"
|
||||||
|
:TableData="TableData"
|
||||||
|
:ListApi="ListApi"
|
||||||
|
:SearchData="SearchData"
|
||||||
|
:ButtonData="ButtonData"
|
||||||
|
@FnApplyList="FnApplyList"
|
||||||
|
@ClickDelete="ClickDelete"
|
||||||
|
/>
|
||||||
|
<el-dialog
|
||||||
|
v-model="dialogFormVisible"
|
||||||
|
title="申请列表"
|
||||||
|
:before-close="dialogF"
|
||||||
|
width="40%"
|
||||||
|
>
|
||||||
|
<el-table :data="tableData" style="width: 100%">
|
||||||
|
<el-table-column prop="account" label="账号" />
|
||||||
|
<el-table-column prop="name" label="姓名" />
|
||||||
|
<el-table-column prop="email" label="邮箱" width="140" />
|
||||||
|
<el-table-column prop="phone" label="手机" width="120" />
|
||||||
|
<el-table-column prop="applyTime" label="申请时间" width="160" />
|
||||||
|
<el-table-column fixed="right" label="操作" width="120">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="FnAgreeApply(scope.row)"
|
||||||
|
>
|
||||||
|
通过
|
||||||
|
</el-button>
|
||||||
|
<el-button
|
||||||
|
link
|
||||||
|
type="primary"
|
||||||
|
size="small"
|
||||||
|
@click="FnRejectApply(scope.row)"
|
||||||
|
>
|
||||||
|
驳回
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<script>
|
||||||
|
import { ElMessage } from "element-plus";
|
||||||
|
import TableBox from "@/components/TableBox.vue";
|
||||||
|
import {
|
||||||
|
tenantAdminUserList,
|
||||||
|
TenantAdminRemoveUser,
|
||||||
|
tenantWaitAdminApplyJoinList,
|
||||||
|
TenantAdminAgreeApplyJoin,
|
||||||
|
TenantAdminRejectApplyJoin,
|
||||||
|
} from "@/api/Index";
|
||||||
|
import { ref, reactive } from "vue";
|
||||||
|
export default {
|
||||||
|
name: "ViewBooking",
|
||||||
|
components: {
|
||||||
|
TableBox,
|
||||||
|
},
|
||||||
|
setup() {
|
||||||
|
const dialogFormVisible = ref(false);
|
||||||
|
const DialogForm = ref({});
|
||||||
|
const TypeData = [
|
||||||
|
{
|
||||||
|
code: "10",
|
||||||
|
name: "收货人",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
code: "20",
|
||||||
|
name: "发货人",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
code: "30",
|
||||||
|
name: "通知人",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
code: "40",
|
||||||
|
name: "第二通知人",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
const TableData = reactive([
|
||||||
|
{ label: "姓名", prop: "name" },
|
||||||
|
{ label: "账号", prop: "account" },
|
||||||
|
{ label: "邮箱", prop: "email" },
|
||||||
|
{ label: "手机", prop: "phone" },
|
||||||
|
{
|
||||||
|
label: "操作",
|
||||||
|
prop: "operate",
|
||||||
|
operateData: [
|
||||||
|
{
|
||||||
|
name: "移出",
|
||||||
|
Fn: (e) => {
|
||||||
|
ClickDelete(e);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
]);
|
||||||
|
const SearchData = {
|
||||||
|
currentPage: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
total: 0,
|
||||||
|
// ReportState: "0",
|
||||||
|
// MBLNO: "",
|
||||||
|
};
|
||||||
|
const ButtonData = [
|
||||||
|
{ text: "申请列表", type: "primary", FnName: "FnApplyList" },
|
||||||
|
];
|
||||||
|
const tableData = ref([]);
|
||||||
|
const FnApplyList = () => {
|
||||||
|
tenantWaitAdminApplyJoinList().then((res) => {
|
||||||
|
console.log(res);
|
||||||
|
if (res.data.length) {
|
||||||
|
tableData.value = res.data;
|
||||||
|
dialogFormVisible.value = true;
|
||||||
|
} else {
|
||||||
|
ElMessage({
|
||||||
|
message: "暂无申请信息!",
|
||||||
|
type: "warning",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
// const ClickEdit = (e) => {
|
||||||
|
// dialogFormVisible.value = true;
|
||||||
|
// let R = [];
|
||||||
|
|
||||||
|
// e.type.split("[").forEach((a) => {
|
||||||
|
// if (a) {
|
||||||
|
// a.split("]").forEach((b) => {
|
||||||
|
// if (b) {
|
||||||
|
// R.push(b);
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// });
|
||||||
|
// return { ...e, type: R };
|
||||||
|
// };
|
||||||
|
const TableBoxRef = ref();
|
||||||
|
const ListApi = tenantAdminUserList;
|
||||||
|
const ClickSearch = (e = {}) => {
|
||||||
|
console.log(e.value);
|
||||||
|
TableBoxRef.value.Search(e.value);
|
||||||
|
};
|
||||||
|
const SearchOpen = (e) => {
|
||||||
|
TableBoxRef.value.height = e ? 450 : 562;
|
||||||
|
};
|
||||||
|
const ClickDelete = (e) => {
|
||||||
|
TenantAdminRemoveUser({ id: e.id }).then((res) => {
|
||||||
|
if (res.code == 200) {
|
||||||
|
ClickSearch();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const FnAgreeApply = (e) => {
|
||||||
|
TenantAdminAgreeApplyJoin({ id: e.id }).then((res) => {
|
||||||
|
console.log(res);
|
||||||
|
FnApplyList();
|
||||||
|
TableBoxRef.value.Search();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const FnRejectApply = (e) => {
|
||||||
|
TenantAdminRejectApplyJoin({ id: e.id }).then((res) => {
|
||||||
|
console.log(res);
|
||||||
|
FnApplyList();
|
||||||
|
TableBoxRef.value.Search();
|
||||||
|
});
|
||||||
|
};
|
||||||
|
return {
|
||||||
|
TypeData,
|
||||||
|
DialogForm,
|
||||||
|
dialogFormVisible,
|
||||||
|
TableBoxRef,
|
||||||
|
ClickSearch,
|
||||||
|
SearchOpen,
|
||||||
|
TableData,
|
||||||
|
SearchData,
|
||||||
|
ButtonData,
|
||||||
|
ListApi,
|
||||||
|
FnApplyList,
|
||||||
|
tableData,
|
||||||
|
ClickDelete,
|
||||||
|
FnAgreeApply,
|
||||||
|
FnRejectApply,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
.BookingMain {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
</style>
|
@ -0,0 +1,19 @@
|
|||||||
|
let cargoIdData = [
|
||||||
|
{
|
||||||
|
name: "S 普通货",
|
||||||
|
code: "S",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "R 冻柜",
|
||||||
|
code: "R",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "D 危险品",
|
||||||
|
code: "D",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "O 超限箱",
|
||||||
|
code: "O",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
export { cargoIdData };
|
Loading…
Reference in New Issue