基础框架修改内容同步
parent
4a4c869dce
commit
383b09adf0
@ -1,206 +0,0 @@
|
||||
// WFProcess 流程模版基本信息
|
||||
import { defHttp } from '@/utils/http/axios';
|
||||
import {
|
||||
taskCountParams,
|
||||
caseInfoParams,
|
||||
countModel,
|
||||
taskInfoParams,
|
||||
addCaseFavoriteParams,
|
||||
updateCaseInfoParams,
|
||||
} from './model/index';
|
||||
|
||||
enum Api {
|
||||
// 获取待办任务统计数据
|
||||
LoadTaskCount = '/api/DroneCaseInfoSingle/LoadTaskCount',
|
||||
// 获取图斑信息统计数据
|
||||
LoadDroneCaseInfoCount = '/api/DroneCaseInfoSingle/LoadDroneCaseInfoCount',
|
||||
// 分页获取图斑信息列表
|
||||
LoadDroneCaseInfoDetail = '/api/DroneCaseInfoSingle/LoadTasklList',
|
||||
// 分页获取任务信息列表
|
||||
LoadTaskDetailList = '/api/DroneCaseInfoSingle/LoadTaskDetailList',
|
||||
// 收藏图斑
|
||||
AddCaseFavorite = '/api/DroneCaseInfoSingle/AddCaseFavorite',
|
||||
// 获取收藏图斑列表
|
||||
FavoriteCaseList = '/api/DroneCaseinfo/FavoriteCaseList',
|
||||
DeleteFavoriteCase = '/api/DroneCaseInfoSingle/DeleteFavoriteCase',
|
||||
// 获取图斑详情
|
||||
GetCaseInfoById = '/api/DroneCaseInfoSingle/GetCaseInfoById',
|
||||
// 更新图斑行政区划
|
||||
UpdateDroneCaseInfo = '/api/DroneCaseInfoSingle/UpdateDroneCaseInfo',
|
||||
// 督办流程
|
||||
Supervise = '/api/WFProcess/Supervise',
|
||||
// 获取部门父级
|
||||
LoadParents = '/api/Orgs/LoadParents',
|
||||
// 审核列表收藏
|
||||
AddtaskFavorite = '/api/DroneCaseInfoSingle/AddtaskFavorite',
|
||||
// 审核列表删除收藏
|
||||
DeleteTaskCase = '/api/DroneCaseInfoSingle/DeleteTaskCase',
|
||||
// 获取当前账号可以看见的乡镇
|
||||
loadStreet = '/api/DroneCaseInfoSingle/loadStreet',
|
||||
// 违法处理,待办任务列表
|
||||
LoadTaskIllegalDetailList = '/api/DroneCaseInfoSingle/LoadTaskIllegalDetailList',
|
||||
// 分割图斑
|
||||
SplitCase = '/api/DroneCaseInfoSingle/CaseSplit',
|
||||
// 恢复还原
|
||||
RecoverCase = '/api/DroneCaseInfoSingle/CaseRecover',
|
||||
// 获取图斑中心点
|
||||
GetPolygonCenter = '/api/DroneCaseInfoSingle/GetCenterPoints',
|
||||
// 获取用户访问机构权限
|
||||
GetUserOrgs = '/api/Check/GetOrgs',
|
||||
// 大屏下发图斑统计
|
||||
IssuedStatitical = '/api/DroneScreenDisplay/CaseOffenceXiaFa',
|
||||
// 大屏核实新增统计
|
||||
VerifyStatitical = '/api/DroneScreenDisplay/CaseOffenceCheckAdd',
|
||||
// 大屏整改剩余统计
|
||||
RectificationStatitical = '/api/DroneScreenDisplay/CaseOffenceModifyRemain',
|
||||
// 获取案件图片坐标、方位角信息
|
||||
LoadCaseImgList = '/api/DroneCaseInfoSingle/LoadCaseImgList',
|
||||
// 获取范围内影像服务信息
|
||||
GetIntersects = '/api/GeoTiffManager/GetIntersects',
|
||||
// 获取网络环境
|
||||
GetNetWorkEev = '/api/DroneCloudQuery/IsPublic',
|
||||
// 获取其他专题或历史图斑图片
|
||||
rebackzhuantipic = '/api/DroneCaseInfoSingle/rebackzhuantipic',
|
||||
CopyImg = '/api/DroneCaseInfoSingle/CopyImg',
|
||||
// 获取其他专题或历史图斑附件
|
||||
rebackzhuantifujian = '/api/DroneCaseInfoSingle/rebackzhuantifujian',
|
||||
Copyfujian = '/api/DroneCaseInfoSingle/Copyfujian',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getCaseFlowLog
|
||||
*/
|
||||
export function getLoadTaskCount(params?: taskCountParams) {
|
||||
return defHttp.get<countModel>({ url: Api.LoadTaskCount, params });
|
||||
}
|
||||
export function getLoadStreet() {
|
||||
return defHttp.get({ url: Api.loadStreet });
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getCaseFlowLog
|
||||
*/
|
||||
export function getLoadDroneCaseInfoCount(params?: taskCountParams) {
|
||||
return defHttp.get<countModel>({ url: Api.LoadDroneCaseInfoCount, params });
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getCaseFlowLog
|
||||
*/
|
||||
export function getLoadDroneCaseInfoDetail(params?: caseInfoParams) {
|
||||
return defHttp.get({ url: Api.LoadDroneCaseInfoDetail, params });
|
||||
}
|
||||
/**
|
||||
* @description: getCaseFlowLog
|
||||
*/
|
||||
export function getLoadTaskDetailList(params?: taskInfoParams) {
|
||||
return defHttp.get({ url: Api.LoadTaskDetailList, params });
|
||||
}
|
||||
|
||||
export function addCaseFavorite(params?: addCaseFavoriteParams) {
|
||||
return defHttp.post({ url: Api.AddCaseFavorite, params });
|
||||
}
|
||||
export function addTaskFavorite(params?: { taskId: string; favoriteUserId: string }) {
|
||||
return defHttp.post({ url: Api.AddtaskFavorite, params });
|
||||
}
|
||||
export function deleteFavoriteCase(params: string) {
|
||||
return defHttp.post({ url: Api.DeleteFavoriteCase, data: params });
|
||||
}
|
||||
export function deleteTaskCase(params: string) {
|
||||
return defHttp.post({ url: Api.DeleteTaskCase, data: params });
|
||||
}
|
||||
|
||||
export function getFavoriteCaseList(params?: { uid: string }) {
|
||||
return defHttp.get({ url: Api.FavoriteCaseList, params });
|
||||
}
|
||||
export function getCaseInfoById(params?: { id: string }) {
|
||||
return defHttp.get({ url: Api.GetCaseInfoById, params });
|
||||
}
|
||||
export const updateDroneCaseInfo = (params: updateCaseInfoParams) =>
|
||||
defHttp.post({ url: Api.UpdateDroneCaseInfo, params });
|
||||
|
||||
export const updateSupervise = (params: { id: string; supervise: number }) =>
|
||||
defHttp.post({ url: `${Api.Supervise}?id=${params.id}&supervise=${params.supervise}`, params });
|
||||
|
||||
export const getLoadParents = (params: { childId: Number }) =>
|
||||
defHttp.get({ url: `${Api.LoadParents}?childId=${params.childId}` });
|
||||
|
||||
export function getLoadTaskIllegalDetailList(params?: taskInfoParams) {
|
||||
return defHttp.get({ url: Api.LoadTaskIllegalDetailList, params });
|
||||
}
|
||||
|
||||
export function splitCase(params) {
|
||||
return defHttp.post({ url: Api.SplitCase, data: params });
|
||||
}
|
||||
|
||||
export function recoverCase(params) {
|
||||
return defHttp.post({ url: Api.RecoverCase, data: params });
|
||||
}
|
||||
|
||||
export function getPolygonCenter(params) {
|
||||
return defHttp.get({ url: Api.GetPolygonCenter, params });
|
||||
}
|
||||
|
||||
export function getUserOrgs(params) {
|
||||
return defHttp.get({ url: Api.GetUserOrgs, params });
|
||||
}
|
||||
|
||||
export function getIssuedStatitical(params) {
|
||||
return defHttp.get({
|
||||
url: Api.IssuedStatitical,
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function getVerifyStatitical(params) {
|
||||
return defHttp.get({
|
||||
url: Api.VerifyStatitical,
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function getRectificationStatitical(params) {
|
||||
return defHttp.get({
|
||||
url: Api.RectificationStatitical,
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function getLoadCaseImgList(params) {
|
||||
return defHttp.get({
|
||||
url: Api.LoadCaseImgList,
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function getIntersectTif(params) {
|
||||
return defHttp.get({ url: Api.GetIntersects, params });
|
||||
}
|
||||
|
||||
export function getNetworkType() {
|
||||
return defHttp.get({ url: Api.GetNetWorkEev });
|
||||
}
|
||||
export function rebackzhuantipic(params: { zhuanti; CaseId }) {
|
||||
return defHttp.get({
|
||||
url: Api.rebackzhuantipic,
|
||||
params,
|
||||
});
|
||||
}
|
||||
export function CopyImg(params: { caseid; images }) {
|
||||
return defHttp.post({
|
||||
url: Api.CopyImg,
|
||||
data: params,
|
||||
});
|
||||
}
|
||||
export function rebackzhuantifujian(params: { zhuanti; CaseId }) {
|
||||
return defHttp.get({
|
||||
url: Api.rebackzhuantifujian,
|
||||
params,
|
||||
});
|
||||
}
|
||||
export function Copyfujian(params: string[]) {
|
||||
return defHttp.post({
|
||||
url: Api.Copyfujian,
|
||||
data: params,
|
||||
});
|
||||
}
|
@ -1,54 +0,0 @@
|
||||
export interface taskCountParams {
|
||||
year?: number;
|
||||
}
|
||||
|
||||
export interface taskInfoParams {
|
||||
page?: number;
|
||||
limit?: number;
|
||||
level?: number;
|
||||
areaid?: string;
|
||||
geomid?: string;
|
||||
year?: number;
|
||||
is_build_complete?: number;
|
||||
}
|
||||
|
||||
export interface addCaseFavoriteParams {
|
||||
id: string;
|
||||
caseNo: string;
|
||||
favoriteUserId: string;
|
||||
}
|
||||
|
||||
export interface caseInfoParams {
|
||||
page?: number;
|
||||
limit?: number;
|
||||
level?: number;
|
||||
areaid?: string;
|
||||
year?: number;
|
||||
geomid?: string;
|
||||
countyid?: string;
|
||||
streetid?: string;
|
||||
is_illegal?: number;
|
||||
weifaleixing?: number;
|
||||
measure_name?: string;
|
||||
is_build_complete?: number;
|
||||
handle_status_id?: number;
|
||||
key?: string;
|
||||
}
|
||||
|
||||
export interface countItem {
|
||||
areaid: string;
|
||||
areaname: string;
|
||||
level: number;
|
||||
count: number;
|
||||
}
|
||||
export type countModel = countItem[];
|
||||
|
||||
export interface updateCaseInfoParams {
|
||||
id?: string;
|
||||
countyid?: string;
|
||||
countyname?: string;
|
||||
streetid?: string;
|
||||
streetname?: string;
|
||||
communityid?: string;
|
||||
communityname?: string;
|
||||
}
|
@ -0,0 +1,82 @@
|
||||
<!-- 开始节点配置 -->
|
||||
<template>
|
||||
<div class="subprocess">
|
||||
<a-form
|
||||
ref="formRef"
|
||||
:model="node"
|
||||
labelAlign="left"
|
||||
:label-col="labelCol"
|
||||
:wrapper-col="wrapperCol"
|
||||
:disabled="data.componentDisabled"
|
||||
>
|
||||
<a-form-item label="节点标识">
|
||||
<a-input v-model:value="node.id" placeholder="请输入" readonly />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { reactive, defineProps, ref, watch, onMounted } from 'vue';
|
||||
import { getLoad, getVerisonsLoad } from '@/api/sys/WFSchemeInfo';
|
||||
import { flowStore } from '@/store/modules/flow';
|
||||
|
||||
const flowWfDataStore = flowStore();
|
||||
const labelCol = { span: 7 };
|
||||
const wrapperCol = { span: 17 };
|
||||
const props = defineProps({
|
||||
element: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {};
|
||||
},
|
||||
},
|
||||
schemeCode: String,
|
||||
pageType: String,
|
||||
pageView: String,
|
||||
});
|
||||
let node: any = ref({});
|
||||
const data = reactive({
|
||||
componentDisabled: props.pageType == 'detail' ? true : false,
|
||||
});
|
||||
const list: any = ref([]);
|
||||
const verisons: any = ref([]);
|
||||
watch(
|
||||
() => props.element,
|
||||
(newVal) => {
|
||||
if (newVal.type == 'bpmn:Transaction') {
|
||||
const currentNode = flowWfDataStore.getWfDataNode(newVal.id);
|
||||
if (currentNode) {
|
||||
node.value = currentNode;
|
||||
} else {
|
||||
node.value = newVal;
|
||||
}
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
async function getSchemeList() {
|
||||
const data = await getLoad();
|
||||
list.value = data;
|
||||
}
|
||||
|
||||
async function changeScheme() {
|
||||
const data = await getVerisonsLoad({ id: node.value.wfschemeId });
|
||||
verisons.value = data;
|
||||
}
|
||||
onMounted(() => {
|
||||
getSchemeList();
|
||||
if (props.element.type == 'bpmn:SubProcess') {
|
||||
const currentNode = flowWfDataStore.getWfDataNode(props.element.id);
|
||||
if (currentNode) {
|
||||
node.value = currentNode;
|
||||
} else {
|
||||
node.value = props.element;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
defineExpose({});
|
||||
</script>
|
||||
|
||||
<style></style>
|
@ -1,152 +0,0 @@
|
||||
<template>
|
||||
<a-spin :spinning="loading">
|
||||
<div class="modal-content">
|
||||
<div class="subject" v-for="subject in fileList">
|
||||
<div class="subject-name">{{ subject.zname }}</div>
|
||||
<div class="show-file-div">
|
||||
<div class="item-file" v-for="(item, index) in subject.val">
|
||||
<a-checkbox
|
||||
style="margin-right: 10px"
|
||||
:checked="selectFile.some((obj) => obj === item.path)"
|
||||
@change="changeSelect(selectFile.some((obj) => obj === item.path) ? 1 : 2, item.path)"
|
||||
>
|
||||
</a-checkbox>
|
||||
<Icon
|
||||
icon="material-symbols:attach-file"
|
||||
:size="20"
|
||||
style="cursor: pointer"
|
||||
@click="hanlderPreViewFile(item.path)"
|
||||
/>
|
||||
{{ item.path }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="button-div">
|
||||
<a-button type="primary" @click="save">保存</a-button>
|
||||
</div>
|
||||
<a-modal
|
||||
v-model:open="previewFileModalVisible"
|
||||
style="width: 100vw"
|
||||
title="文件预览"
|
||||
wrap-class-name="full-modal"
|
||||
>
|
||||
<FilePreview v-if="previewFileModalVisible" :fileUrl="previewFileUrl"></FilePreview>
|
||||
<template #footer>
|
||||
<a-button key="cancel" @click="handleCancelPreviewFile">取消</a-button>
|
||||
<a-button key="confirm" type="primary" @click="handlerDownloadFle">下载</a-button>
|
||||
</template>
|
||||
</a-modal>
|
||||
</a-spin>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { defineProps, onMounted, ref, defineEmits } from 'vue';
|
||||
import { rebackzhuantifujian, Copyfujian } from '@/api/tiankongdi/index';
|
||||
import Icon from '@/components/Icon/Icon.vue';
|
||||
import { message } from 'ant-design-vue';
|
||||
import { getZhuantiName } from '@/utils/global';
|
||||
import FilePreview from '@/components/Upload/src/components/FilePreview.vue';
|
||||
|
||||
const props = defineProps(['server']);
|
||||
const emits = defineEmits(['save']);
|
||||
const fileList = ref<string[]>([]);
|
||||
const selectFile = ref<string[]>([]);
|
||||
const loading = ref(false);
|
||||
const previewFileModalVisible = ref(false);
|
||||
const previewFileUrl = ref('');
|
||||
onMounted(() => {
|
||||
loading.value = true;
|
||||
let caseid = sessionStorage.getItem('SelectOtherId');
|
||||
rebackzhuantifujian({ CaseId: caseid, zhuanti: getZhuantiName() })
|
||||
.then((res) => {
|
||||
console.log('res', res);
|
||||
fileList.value = res;
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
});
|
||||
|
||||
const changeSelect = (type, item) => {
|
||||
switch (type) {
|
||||
case 1:
|
||||
selectFile.value = selectFile.value.filter((useItem) => useItem !== item);
|
||||
break;
|
||||
case 2:
|
||||
selectFile.value.push(item);
|
||||
break;
|
||||
}
|
||||
};
|
||||
const save = () => {
|
||||
if (selectFile.value.length <= 0) {
|
||||
message.warning('至少选择一个文件');
|
||||
return;
|
||||
}
|
||||
loading.value = true;
|
||||
Copyfujian(selectFile.value)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
emits('save', res);
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
};
|
||||
const hanlderPreViewFile = (url) => {
|
||||
previewFileUrl.value = `${props.server}/${url}`;
|
||||
previewFileModalVisible.value = true;
|
||||
};
|
||||
|
||||
const handlerDownloadFle = () => {
|
||||
window.open(previewFileUrl.value, 'mozillaTab');
|
||||
};
|
||||
const handleCancelPreviewFile = () => {
|
||||
previewFileModalVisible.value = false;
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.modal-content {
|
||||
min-height: 500px;
|
||||
padding: 0px 20px;
|
||||
max-height: 678px;
|
||||
overflow: auto;
|
||||
scrollbar-width: none;
|
||||
::-webkit-scrollbar {
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
.subject {
|
||||
margin-bottom: 10px;
|
||||
.subject-name {
|
||||
height: 30px;
|
||||
background-color: #8b8b8b;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #fff;
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.show-file-div {
|
||||
width: 100%;
|
||||
.item-file {
|
||||
display: flex;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.item-file:hover {
|
||||
background-color: #f4f4f4;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.button-div {
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
padding: 20px;
|
||||
}
|
||||
</style>
|
@ -1,155 +0,0 @@
|
||||
<template>
|
||||
<a-spin :spinning="loading">
|
||||
<div class="modal-content">
|
||||
<div class="subject" v-for="subject in imageList">
|
||||
<div class="subject-name">{{ subject.zname }}</div>
|
||||
<div class="show-image-div">
|
||||
<div class="image-item" v-for="(item, index) in subject.val">
|
||||
<a-image
|
||||
style="width: 100px; height: 100px"
|
||||
:src="`${props.server}/${item.FilePath}`"
|
||||
></a-image>
|
||||
<div
|
||||
class="select-div"
|
||||
@click="
|
||||
changeSelect(
|
||||
selectImage.some((obj) => obj === item.FilePath) ? 1 : 2,
|
||||
item.FilePath,
|
||||
)
|
||||
"
|
||||
>
|
||||
<Icon
|
||||
v-if="selectImage.some((obj) => obj === item.FilePath)"
|
||||
icon="material-symbols-light:check-circle"
|
||||
:size="25"
|
||||
style="color: #18a058"
|
||||
/>
|
||||
<Icon
|
||||
v-else
|
||||
icon="material-symbols-light:check-circle-outline"
|
||||
:size="25"
|
||||
style="color: #cacdcd"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="button-div">
|
||||
<a-button type="primary" @click="save">保存</a-button>
|
||||
</div>
|
||||
</a-spin>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { defineProps, onMounted, ref, defineEmits } from 'vue';
|
||||
import { rebackzhuantipic, CopyImg } from '@/api/tiankongdi/index';
|
||||
import Icon from '@/components/Icon/Icon.vue';
|
||||
import { message } from 'ant-design-vue';
|
||||
import { getZhuantiName } from '@/utils/global';
|
||||
|
||||
const props = defineProps(['caseid', 'server', 'zhuanti']);
|
||||
const emits = defineEmits(['save']);
|
||||
const imageList = ref<string[]>([]);
|
||||
const selectImage = ref<string[]>([]);
|
||||
const loading = ref(false);
|
||||
onMounted(() => {
|
||||
loading.value = true;
|
||||
let caseid = sessionStorage.getItem('SelectOtherId');
|
||||
rebackzhuantipic({ CaseId: caseid, zhuanti: getZhuantiName() })
|
||||
.then((res) => {
|
||||
imageList.value = res;
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
});
|
||||
|
||||
const changeSelect = (type, item) => {
|
||||
switch (type) {
|
||||
case 1:
|
||||
selectImage.value = selectImage.value.filter((useItem) => useItem !== item);
|
||||
break;
|
||||
case 2:
|
||||
selectImage.value.push(item);
|
||||
break;
|
||||
}
|
||||
};
|
||||
const save = () => {
|
||||
if (selectImage.value.length <= 0) {
|
||||
message.warning('至少选择一张图片');
|
||||
return;
|
||||
}
|
||||
loading.value = true;
|
||||
let params = {
|
||||
caseid: sessionStorage.getItem('SelectOtherId'),
|
||||
images: selectImage.value,
|
||||
};
|
||||
CopyImg(params)
|
||||
.then((res) => {
|
||||
emits('save', res);
|
||||
})
|
||||
.finally(() => {
|
||||
loading.value = false;
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.modal-content {
|
||||
min-height: 500px;
|
||||
padding: 0px 20px;
|
||||
max-height: 678px;
|
||||
overflow: auto;
|
||||
scrollbar-width: none;
|
||||
::-webkit-scrollbar {
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
.subject {
|
||||
margin-bottom: 10px;
|
||||
.subject-name {
|
||||
height: 30px;
|
||||
background-color: #8b8b8b;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
color: #fff;
|
||||
font-size: 20px;
|
||||
font-weight: 500;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.show-image-div {
|
||||
width: 100%;
|
||||
// height: 100%;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
.image-item {
|
||||
position: relative;
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
margin-right: 12px;
|
||||
margin-bottom: 10px;
|
||||
.select-div {
|
||||
position: absolute;
|
||||
bottom: 0px;
|
||||
height: 20px;
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
background-color: #00000075;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.button-div {
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
padding: 20px;
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue