Browse Source

修改组织排序

qin_24
herenshan112 3 months ago
parent
commit
8ad0e97c37
  1. 1
      src/api/hr/org/type.ts
  2. 39
      src/views/hr/company/companyduty.vue
  3. 10
      src/views/hr/company/savePage.vue
  4. 318
      src/views/hr/organization/orgcont/addorgcont.vue
  5. 316
      src/views/hr/organization/orgcont/editorgcont.vue

1
src/api/hr/org/type.ts

@ -100,6 +100,7 @@ export interface addOrgInfo{
abbreviation?: string, //简称
wechatid?: string //企业微信对照吗
kingdeeid?: string //金蝶对照码
sort?:number //排序
}
/**
*

39
src/views/hr/company/companyduty.vue

@ -9,9 +9,11 @@ import {
getYearMonthWorkMan,
delOneDayDuty,
} from "@/api/hr/paiban/index";
import { get_org } from "@/api/opk/zxy/news/api";
import SavePage from "@/views/hr/company/savePage.vue";
const currOrgManList = ref([]);
const currOrgCont = ref(309);
const pickMonth = ref("");
const initConter = ref("");
const isSelect = ref(false);
@ -36,12 +38,21 @@ const initInfo = () => {
companyDutyInit().then((res: any) => {
console.log("初始化数据:", res.data);
initConter.value = res.data;
currOrgCont.value = res.data.currentOrg;
getOrgList(res.data.currentOrg, res.data.year, res.data.month);
get_org({
id: res.data.currentOrg.toString(),
all: 1,
}).then((res: any) => {
console.log("获取行政组织人员信息get_org", res);
currOrgManList.value = res.data;
});
});
};
//
const getOrgList = (orgid: any, years: any, months: any) => {
currOrgCont.value = orgid;
getYearMonthWorkMan({
orgId: orgid,
years: years,
@ -62,7 +73,15 @@ const delTag = () => {
};
//
const pickOrg = (val: any) => {
currOrgCont.value = val;
getOrgList(val, initConter.value.year, initConter.value.month);
get_org({
id: val.toString(),
all: 1,
}).then((res: any) => {
console.log("获取行政组织人员信息get_org", res);
currOrgManList.value = res.data;
});
};
//
const saveData = (ord: any, val: any) => {
@ -119,6 +138,24 @@ const isShowOrg = (item: any) => {
}
// return true
};
//
// watch(
// () => currOrgCont.value,
// (val: any) => {
// get_org({
// id: val.toString(),
// all: 1,
// })
// .then((res: any) => {
// console.log("get_org", res);
// orgPeopleList.value = res.data;
// })
// },
// {
// deep: true,
// }
// );
</script>
<template>
<div class="comBox">

10
src/views/hr/company/savePage.vue

@ -21,6 +21,12 @@ const props = defineProps({
return {};
},
},
currOrgManList: {
type: Object,
default() {
return {};
},
},
});
const loading = ref(false);
const emits = defineEmits(["update:isOpen", "pickRefresh"]);
@ -69,8 +75,10 @@ const getOrgPeople = () => {
saveInfo.value.isCompany = 1;
})
.finally(() => {
console.log("------------>", saveInfo.value.isCompany);
// console.log("------------>", props.currOrgManList);
if (saveInfo.value.isCompany == 1) {
// orgPeopleList.value = props.currOrgManList;
// loading.value = false;
get_org({
id: props.cumpanyId.toString(),
all: 1,

318
src/views/hr/organization/orgcont/addorgcont.vue

@ -3,189 +3,211 @@
@ 时间: 2023-06-05 16:11:54
@ 备注: 添加行政组织
-->
<script lang='ts' setup>
import { addOrgInfo,orgInfo } from '@/api/hr/org/type'
import { addOrgInfoApi,getOrgTreeList } from '@/api/hr/org/index'
<script lang="ts" setup>
import { addOrgInfo, orgInfo } from "@/api/hr/org/type";
import { addOrgInfoApi, getOrgTreeList } from "@/api/hr/org/index";
const props = defineProps({
addOrgIsShow:{
type:Boolean,
default:false
},
addorginfocont:{
type:Object,
default(){
return {organizationtype:0}
}
},
orgclasslistary:{
type:Object,
default(){
return {id:0}
}
}
addOrgIsShow: {
type: Boolean,
default: false,
},
addorginfocont: {
type: Object,
default() {
return { organizationtype: 0 };
},
},
orgclasslistary: {
type: Object,
default() {
return { id: 0 };
},
},
});
const addOrgFormRef = ref(ElForm); //
const emits = defineEmits(["update:addOrgIsShow","refreshorgtree"]);
const titlename = ref(""); //
const addOrgLoading = ref(false) //
const addOrgCont = reactive<addOrgInfo>({}) //
const addOrgFormRef = ref(ElForm); //
const emits = defineEmits(["update:addOrgIsShow", "refreshorgtree"]);
const titlename = ref(""); //
const addOrgLoading = ref(false); //
const addOrgCont = reactive<addOrgInfo>({}); //
const orgOptionsList = ref<orgInfo[]>();
const optLoading = ref(false);
const systemMenuTreeProps = {
children: "child",
label: "name",
value:"id"
}
children: "child",
label: "name",
value: "id",
};
/**
* 弹窗显示控制
*/
const add_org_is_Show = computed({
get: () => props.addOrgIsShow,
set: (val) => {
emits("update:addOrgIsShow", val);
},
const add_org_is_Show = computed({
get: () => props.addOrgIsShow,
set: (val) => {
emits("update:addOrgIsShow", val);
},
});
/**
* 关闭添加弹窗
*/
function handleCloseAddOrg(){
emits("update:addOrgIsShow", false);
initOriginalData();
function handleCloseAddOrg() {
emits("update:addOrgIsShow", false);
initOriginalData();
}
/**
* 初始化数据
*/
function initOriginalData(){
addOrgFormRef.value.resetFields();
addOrgCont.superior = ""
titlename.value=""
orgOptionsList.value?.splice(orgOptionsList.value.length);
addOrgLoading.value = false;
function initOriginalData() {
addOrgFormRef.value.resetFields();
addOrgCont.superior = "";
titlename.value = "";
orgOptionsList.value?.splice(orgOptionsList.value.length);
addOrgLoading.value = false;
}
/**
* 表单验证规则
*/
const addOrgRules = reactive({
superior: [{ required: true, message: "请选择上机行政组织", trigger: "blur" }],
name: [{ required: true, message: "请输入行政组织名称", trigger: "blur" }],
number: [{ required: true, message: "请输入行政组织编号", trigger: "blur" }],
govclass: [{ required: true, message: "请选择行政组织分类", trigger: "blur" }],
superior: [{ required: true, message: "请选择上机行政组织", trigger: "blur" }],
name: [{ required: true, message: "请输入行政组织名称", trigger: "blur" }],
number: [{ required: true, message: "请输入行政组织编号", trigger: "blur" }],
govclass: [{ required: true, message: "请选择行政组织分类", trigger: "blur" }],
});
/**
* 提交行政组织数据
*/
function submitAddOrgForm(){
addOrgLoading.value = true;
addOrgFormRef.value.validate((isValid: boolean) => {
if (isValid) {
addOrgCont.superior = addOrgCont.superior?.toString()
addOrgCont.govclass = addOrgCont.govclass?.toString()
addOrgCont.number = addOrgCont.number?.toString()
// addOrgCont.wechatid = addOrgCont.wechatid*1
// console.log("====>",addOrgCont)
addOrgInfoApi(addOrgCont)
.then((data) =>{
ElMessage.success("新增成功");
handleCloseAddOrg();
emits('refreshorgtree');
}).finally(() =>{addOrgLoading.value = false;})
}
});
function submitAddOrgForm() {
addOrgLoading.value = true;
};
addOrgFormRef.value.validate((isValid: boolean) => {
if (isValid) {
addOrgCont.superior = addOrgCont.superior?.toString();
addOrgCont.govclass = addOrgCont.govclass?.toString();
addOrgCont.number = addOrgCont.number?.toString();
// addOrgCont.wechatid = addOrgCont.wechatid*1
// console.log("====>",addOrgCont)
addOrgInfoApi(addOrgCont)
.then((data) => {
ElMessage.success("新增成功");
handleCloseAddOrg();
emits("refreshorgtree");
})
.finally(() => {
addOrgLoading.value = false;
});
}
});
}
/**
* 获取行政组织数据
*/
function haveOrgTreeInfo(){
optLoading.value = true;
getOrgTreeList({})
.then(({ data })=>{
orgOptionsList.value = data
orgOptionsList.value.push({
id:0,
name:"顶级行政组织"
})
}).finally(()=>{optLoading.value = false;})
function haveOrgTreeInfo() {
optLoading.value = true;
getOrgTreeList({})
.then(({ data }) => {
orgOptionsList.value = data;
orgOptionsList.value.push({
id: 0,
name: "顶级行政组织",
});
})
.finally(() => {
optLoading.value = false;
});
}
/**
* 监听数据
*/
watch(() => props.addOrgIsShow,() => {
// console.log("---",props.addorginfocont)
if(props.addOrgIsShow){
if(props.addorginfocont.organizationtype){
addOrgCont.superior = props.addorginfocont.organizationtype*1
}
if(props.addorginfocont.name != "" && props.addorginfocont.name != null){
titlename.value = "添加"+props.addorginfocont.name+"下属行政组织"
}else{
titlename.value = "添加顶级行政组织"
}
haveOrgTreeInfo();
}else{
addOrgCont.superior = ""
}
});
watch(
() => props.addOrgIsShow,
() => {
// console.log("---",props.addorginfocont)
if (props.addOrgIsShow) {
if (props.addorginfocont.organizationtype) {
addOrgCont.superior = props.addorginfocont.organizationtype * 1;
}
if (props.addorginfocont.name != "" && props.addorginfocont.name != null) {
titlename.value = "添加" + props.addorginfocont.name + "下属行政组织";
} else {
titlename.value = "添加顶级行政组织";
}
haveOrgTreeInfo();
} else {
addOrgCont.superior = "";
}
}
);
</script>
<template>
<el-dialog v-model="add_org_is_Show" custom-class="dialog_box" :title="titlename" :before-close="handleCloseAddOrg" width="400">
<el-form
ref="addOrgFormRef"
:model="addOrgCont"
:rules="addOrgRules"
label-width="120px"
>
<el-form-item label="上机行政组织" prop="superior">
<el-tree-select
v-model="addOrgCont.superior"
placeholder="选择上机行政组织"
:data="orgOptionsList"
filterable
check-strictly
:render-after-expand="false"
:props="systemMenuTreeProps"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="行政组织全称" prop="name">
<el-input v-model="addOrgCont.name" placeholder="请输入行政组织全称" />
</el-form-item>
<el-form-item label="行政组织简称" prop="abbreviation">
<el-input v-model="addOrgCont.abbreviation" placeholder="请输入行政组织简称" />
</el-form-item>
<el-form-item label="行政组织编码" prop="number">
<el-input v-model="addOrgCont.number" placeholder="请输入行政组织编码" />
</el-form-item>
<el-form-item label="行政组织类别" prop="govclass">
<el-select v-model="addOrgCont.govclass" placeholder="请选择行政组织类别" style="width: 100%;">
<el-option
v-for="item in props.orgclasslistary"
:key="item.id"
:label="item.name"
:value="item.id"
:disabled="!item.status"
/>
</el-select>
</el-form-item>
<el-form-item label="企业微信对照码" prop="wechatid">
<el-input v-model="addOrgCont.wechatid" placeholder="请输入企业微信对照码" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="addOrgLoading" @click="submitAddOrgForm" > </el-button>
<el-button @click="handleCloseAddOrg"> </el-button>
</div>
</template>
</el-dialog>
<el-dialog
v-model="add_org_is_Show"
custom-class="dialog_box"
:title="titlename"
:before-close="handleCloseAddOrg"
width="400"
>
<el-form
ref="addOrgFormRef"
:model="addOrgCont"
:rules="addOrgRules"
label-width="120px"
>
<el-form-item label="上机行政组织" prop="superior">
<el-tree-select
v-model="addOrgCont.superior"
placeholder="选择上机行政组织"
:data="orgOptionsList"
filterable
check-strictly
:render-after-expand="false"
:props="systemMenuTreeProps"
style="width: 100%"
/>
</el-form-item>
<el-form-item label="行政组织全称" prop="name">
<el-input v-model="addOrgCont.name" placeholder="请输入行政组织全称" />
</el-form-item>
<el-form-item label="行政组织简称" prop="abbreviation">
<el-input v-model="addOrgCont.abbreviation" placeholder="请输入行政组织简称" />
</el-form-item>
<el-form-item label="行政组织编码" prop="number">
<el-input v-model="addOrgCont.number" placeholder="请输入行政组织编码" />
</el-form-item>
<el-form-item label="行政组织类别" prop="govclass">
<el-select
v-model="addOrgCont.govclass"
placeholder="请选择行政组织类别"
style="width: 100%"
>
<el-option
v-for="item in props.orgclasslistary"
:key="item.id"
:label="item.name"
:value="item.id"
:disabled="!item.status"
/>
</el-select>
</el-form-item>
<el-form-item label="企业微信对照码" prop="wechatid">
<el-input v-model="addOrgCont.wechatid" placeholder="请输入企业微信对照码" />
</el-form-item>
<el-form-item label="排序" prop="wechatid">
<el-input-number
v-model="addOrgCont.sort"
:min="1"
:max="1000"
placeholder="请输入序号"
/>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="addOrgLoading" @click="submitAddOrgForm"
> </el-button
>
<el-button @click="handleCloseAddOrg"> </el-button>
</div>
</template>
</el-dialog>
</template>
<style lang='scss' scoped>
</style>
<style lang="scss" scoped></style>

316
src/views/hr/organization/orgcont/editorgcont.vue

@ -3,185 +3,209 @@
@ 时间: 2023-06-06 11:06:04
@ 备注: 编辑行政组织内容
-->
<script lang='ts' setup>
import { addOrgInfo,orgInfo } from '@/api/hr/org/type'
import { editOrgInfoApi,getOrgTreeList } from '@/api/hr/org/index'
<script lang="ts" setup>
import { addOrgInfo, orgInfo } from "@/api/hr/org/type";
import { editOrgInfoApi, getOrgTreeList } from "@/api/hr/org/index";
const props = defineProps({
editOrgIsShow:{
type:Boolean,
default:false
},
editorginfocont:{
type:Object,
default(){
return {organizationtype:0}
}
},
orgclasslistary:{
type:Object,
default(){
return {id:0}
}
}
editOrgIsShow: {
type: Boolean,
default: false,
},
editorginfocont: {
type: Object,
default() {
return { organizationtype: 0 };
},
},
orgclasslistary: {
type: Object,
default() {
return { id: 0 };
},
},
});
const editOrgFormRef = ref(ElForm); //
const emits = defineEmits(["update:editOrgIsShow","refreshorgtree"]);
const titlename = ref(""); //
const editOrgLoading = ref(false) //
const editOrgCont = reactive<addOrgInfo>({}) //
const editOrgFormRef = ref(ElForm); //
const emits = defineEmits(["update:editOrgIsShow", "refreshorgtree"]);
const titlename = ref(""); //
const editOrgLoading = ref(false); //
const editOrgCont = reactive<addOrgInfo>({}); //
const orgOptionsList = ref<orgInfo[]>();
const optLoading = ref(false);
const systemMenuTreeProps = {
children: "child",
label: "name",
value:"id"
}
children: "child",
label: "name",
value: "id",
};
/**
* 弹窗显示控制
*/
const edit_org_is_Show = computed({
get: () => props.editOrgIsShow,
set: (val) => {
emits("update:editOrgIsShow", val);
},
const edit_org_is_Show = computed({
get: () => props.editOrgIsShow,
set: (val) => {
emits("update:editOrgIsShow", val);
},
});
/**
* 关闭添加弹窗
*/
function handleCloseEditOrg(){
emits("update:editOrgIsShow", false);
initOriginalData();
function handleCloseEditOrg() {
emits("update:editOrgIsShow", false);
initOriginalData();
}
/**
* 初始化数据
*/
function initOriginalData(){
editOrgFormRef.value.resetFields();
titlename.value=""
orgOptionsList.value?.splice(orgOptionsList.value.length);
editOrgLoading.value = false;
function initOriginalData() {
editOrgFormRef.value.resetFields();
titlename.value = "";
orgOptionsList.value?.splice(orgOptionsList.value.length);
editOrgLoading.value = false;
}
/**
* 表单验证规则
*/
const addOrgRules = reactive({
superior: [{ required: true, message: "请选择上机行政组织", trigger: "blur" }],
name: [{ required: true, message: "请输入行政组织名称", trigger: "blur" }],
number: [{ required: true, message: "请输入行政组织编号", trigger: "blur" }],
govclass: [{ required: true, message: "请选择行政组织分类", trigger: "blur" }],
const addOrgRules = reactive({
superior: [{ required: true, message: "请选择上机行政组织", trigger: "blur" }],
name: [{ required: true, message: "请输入行政组织名称", trigger: "blur" }],
number: [{ required: true, message: "请输入行政组织编号", trigger: "blur" }],
govclass: [{ required: true, message: "请选择行政组织分类", trigger: "blur" }],
});
/**
* 获取行政组织数据
*/
function haveOrgTreeInfo(){
optLoading.value = true;
getOrgTreeList({})
.then(({ data })=>{
orgOptionsList.value = data
orgOptionsList.value.push({
id:0,
name:"顶级行政组织"
})
}).finally(()=>{optLoading.value = false;})
function haveOrgTreeInfo() {
optLoading.value = true;
getOrgTreeList({})
.then(({ data }) => {
orgOptionsList.value = data;
orgOptionsList.value.push({
id: 0,
name: "顶级行政组织",
});
})
.finally(() => {
optLoading.value = false;
});
}
/**
* 监听数据
*/
watch(() => props.editOrgIsShow,() => {
// console.log("---",props.editorginfocont)
if(props.editOrgIsShow){
editOrgCont.id = props.editorginfocont.id
editOrgCont.name = props.editorginfocont.name //
editOrgCont.number = props.editorginfocont.number //
editOrgCont.superior = props.editorginfocont.superior //
editOrgCont.govclass = props.editorginfocont.organizationtype //
editOrgCont.abbreviation = props.editorginfocont.abbreviation //
editOrgCont.wechatid = props.editorginfocont.wechatorganizationid //
editOrgCont.kingdeeid = props.editorginfocont.kingdeeid //
titlename.value = "编辑<" + props.editorginfocont.name + ">信息"
haveOrgTreeInfo();
}else{
}
});
watch(
() => props.editOrgIsShow,
() => {
// console.log("---",props.editorginfocont)
if (props.editOrgIsShow) {
editOrgCont.id = props.editorginfocont.id;
editOrgCont.name = props.editorginfocont.name; //
editOrgCont.number = props.editorginfocont.number; //
editOrgCont.superior = props.editorginfocont.superior; //
editOrgCont.govclass = props.editorginfocont.organizationtype; //
editOrgCont.abbreviation = props.editorginfocont.abbreviation; //
editOrgCont.wechatid = props.editorginfocont.wechatorganizationid; //
editOrgCont.kingdeeid = props.editorginfocont.kingdeeid; //
editOrgCont.sort = props.editorginfocont.sort;
titlename.value = "编辑<" + props.editorginfocont.name + ">信息";
haveOrgTreeInfo();
} else {
}
}
);
/**
* 提交数据
*/
function submitEditOrgForm(){
editOrgLoading.value = true;
function submitEditOrgForm() {
editOrgLoading.value = true;
editOrgFormRef.value.validate((isValid: boolean) => {
if (isValid) {
editOrgCont.superior = editOrgCont.superior?.toString()
editOrgCont.govclass = editOrgCont.govclass?.toString()
editOrgCont.number = editOrgCont.number?.toString()
editOrgCont.wechatid = editOrgCont.wechatid?.toString()
// console.log("====>",editOrgCont)
editOrgInfoApi(editOrgCont)
.then((data) =>{
ElMessage.success("编辑成功");
handleCloseEditOrg();
emits('refreshorgtree');
}).finally(() =>{editOrgLoading.value = false;})
}
});
editOrgFormRef.value.validate((isValid: boolean) => {
if (isValid) {
editOrgCont.superior = editOrgCont.superior?.toString();
editOrgCont.govclass = editOrgCont.govclass?.toString();
editOrgCont.number = editOrgCont.number?.toString();
editOrgCont.wechatid = editOrgCont.wechatid?.toString();
// console.log("====>",editOrgCont)
editOrgInfoApi(editOrgCont)
.then((data) => {
ElMessage.success("编辑成功");
handleCloseEditOrg();
emits("refreshorgtree");
})
.finally(() => {
editOrgLoading.value = false;
});
}
});
}
</script>
<template>
<el-dialog v-model="edit_org_is_Show" custom-class="dialog_box" :title="titlename" :before-close="handleCloseEditOrg" width="400">
<el-form
ref="editOrgFormRef"
:model="editOrgCont"
:rules="addOrgRules"
label-width="120px"
>
<el-form-item label="上机行政组织" prop="superior">
<el-tree-select
v-model="editOrgCont.superior"
placeholder="选择上机行政组织"
:data="orgOptionsList"
filterable
check-strictly
:render-after-expand="false"
:props="systemMenuTreeProps"
style="width: 100%;"
/>
</el-form-item>
<el-form-item label="行政组织全称" prop="name">
<el-input v-model="editOrgCont.name" placeholder="请输入行政组织全称" />
</el-form-item>
<el-form-item label="行政组织简称" prop="abbreviation">
<el-input v-model="editOrgCont.abbreviation" placeholder="请输入行政组织简称" />
</el-form-item>
<el-form-item label="行政组织编码" prop="number">
<el-input v-model="editOrgCont.number" placeholder="请输入行政组织编码" />
</el-form-item>
<el-form-item label="行政组织类别" prop="govclass">
<el-select v-model="editOrgCont.govclass" placeholder="请选择行政组织类别" style="width: 100%;">
<el-option
v-for="item in props.orgclasslistary"
:key="item.id"
:label="item.name"
:value="item.id"
:disabled="!item.status"
/>
</el-select>
</el-form-item>
<el-form-item label="企业微信对照码" prop="wechatid">
<el-input v-model="editOrgCont.wechatid" placeholder="请输入企业微信对照码" />
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="editOrgLoading" @click="submitEditOrgForm" > </el-button>
<el-button @click="handleCloseEditOrg"> </el-button>
</div>
</template>
</el-dialog>
<el-dialog
v-model="edit_org_is_Show"
custom-class="dialog_box"
:title="titlename"
:before-close="handleCloseEditOrg"
width="400"
>
<el-form
ref="editOrgFormRef"
:model="editOrgCont"
:rules="addOrgRules"
label-width="120px"
>
<el-form-item label="上机行政组织" prop="superior">
<el-tree-select
v-model="editOrgCont.superior"
placeholder="选择上机行政组织"
:data="orgOptionsList"
filterable
check-strictly
:render-after-expand="false"
:props="systemMenuTreeProps"
style="width: 100%"
/>
</el-form-item>
<el-form-item label="行政组织全称" prop="name">
<el-input v-model="editOrgCont.name" placeholder="请输入行政组织全称" />
</el-form-item>
<el-form-item label="行政组织简称" prop="abbreviation">
<el-input v-model="editOrgCont.abbreviation" placeholder="请输入行政组织简称" />
</el-form-item>
<el-form-item label="行政组织编码" prop="number">
<el-input v-model="editOrgCont.number" placeholder="请输入行政组织编码" />
</el-form-item>
<el-form-item label="行政组织类别" prop="govclass">
<el-select
v-model="editOrgCont.govclass"
placeholder="请选择行政组织类别"
style="width: 100%"
>
<el-option
v-for="item in props.orgclasslistary"
:key="item.id"
:label="item.name"
:value="item.id"
:disabled="!item.status"
/>
</el-select>
</el-form-item>
<el-form-item label="企业微信对照码" prop="wechatid">
<el-input v-model="editOrgCont.wechatid" placeholder="请输入企业微信对照码" />
</el-form-item>
<el-form-item label="排序" prop="wechatid">
<el-input-number
v-model="editOrgCont.sort"
:min="1"
:max="1000"
placeholder="请输入序号"
/>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button type="primary" :loading="editOrgLoading" @click="submitEditOrgForm"
> </el-button
>
<el-button @click="handleCloseEditOrg"> </el-button>
</div>
</template>
</el-dialog>
</template>
<style lang='scss' scoped>
</style>
<style lang="scss" scoped></style>

Loading…
Cancel
Save