刘妍 2024-07-11 18:36:13 +08:00
commit cae4856e35
11 changed files with 163 additions and 85 deletions

View File

@ -342,6 +342,7 @@
}) })
props.mapConfig.baseLayers?.forEach((item,index)=>{ props.mapConfig.baseLayers?.forEach((item,index)=>{
console.log("baselayers",item);
let layer = JSON.parse(item.style); let layer = JSON.parse(item.style);
let image = item.image.replace('\\','/'); let image = item.image.replace('\\','/');
let layers = { let layers = {
@ -350,7 +351,7 @@
fixed:false, fixed:false,
// zoom:0, // zoom:0,
easeToOptions:{}, easeToOptions:{},
active:false, active:item.checked,
backgroundImage:VITE_GLOB_API_URL_VAR.value+image, backgroundImage:VITE_GLOB_API_URL_VAR.value+image,
backgroundImageActive:"", backgroundImageActive:"",
onVisibleChange:(visible:boolean)=>{ onVisibleChange:(visible:boolean)=>{

View File

@ -27,7 +27,7 @@
<div class="file-item" v-for="(item,index) in fileList" :key="index"> <div class="file-item" v-for="(item,index) in fileList" :key="index">
{{ item.name }} {{ item.name }}
<span class="delete-btn" @click="handlerDelete(index)"><DeleteOutlined/></span> <span class="delete-btn" @click="handlerDelete(index)" v-if="!$attrs.disabled" ><DeleteOutlined/></span>
<span class="delete-btn" @click="handlerPreviewFile(item.url)"><CloudDownloadOutlined /></span> <span class="delete-btn" @click="handlerPreviewFile(item.url)"><CloudDownloadOutlined /></span>
</div> </div>

View File

@ -2,20 +2,20 @@
<div class="image-preview-container" id="imagePreviewContainer"> <div class="image-preview-container" id="imagePreviewContainer">
<img id="zoomableImage" draggable="false" :src="imageUrl" /> <img id="zoomableImage" draggable="false" :src="imageUrl" />
<div class="operation-container"> <div class="operation-container">
<div> <div @click="backTransFrom" style="cursor:pointer;">
<UndoOutlined @click="backTransFrom"/> <UndoOutlined />
</div> </div>
<div> <div @click="bigScale" style="cursor:pointer;">
<ZoomInOutlined @click="bigScale" /> <ZoomInOutlined />
</div> </div>
<div> <div @click="smallScale" style="cursor:pointer;">
<ZoomOutOutlined @click="smallScale"/> <ZoomOutOutlined />
</div> </div>
<div> <div @click="transform" style="cursor:pointer;" >
<RedoOutlined @click="transform" /> <RedoOutlined />
</div> </div>
<div> <div @click="closePreview" style="cursor:pointer;">
<CloseOutlined @click="closePreview"/> <CloseOutlined />
</div> </div>
</div> </div>
</div> </div>
@ -183,20 +183,20 @@ function smallScale():void {
if(scale>0.4){ if(scale>0.4){
scale-=0.4; scale-=0.4;
} }
zoomableImage.style.transform = `scale(${scale})`; zoomableImage.style.transform = `scale(${scale}) rotate(${rotate}deg)`;
} }
function bigScale():void { function bigScale():void {
scale+=0.4; scale+=0.4;
zoomableImage.style.transform = `scale(${scale})`; zoomableImage.style.transform = `scale(${scale}) rotate(${rotate}deg)`;
} }
function transform (){ function transform (){
rotate += 90; rotate += 90;
zoomableImage.style.transform = `rotate(${rotate}deg)`; zoomableImage.style.transform = `scale(${scale}) rotate(${rotate}deg)`;
} }
function backTransFrom() { function backTransFrom() {
rotate -= 90; rotate -= 90;
zoomableImage.style.transform = `rotate(${rotate}deg)`; zoomableImage.style.transform = `scale(${scale}) rotate(${rotate}deg)`;
} }
function closePreview():void{ function closePreview():void{

View File

@ -82,7 +82,7 @@
}, },
{ {
title: '图斑面积', title: '图斑面积',
dataIndex: 'gengdi_area', dataIndex: 'area',
}, },
{ {
title: '耕地面积', title: '耕地面积',
@ -189,10 +189,10 @@
// //
switch (recordValue) { switch (recordValue) {
case 0: case 0:
result = '非农化'; result = '非农化违法用地';
break; break;
case 1: case 1:
result = '非粮化'; result = '非粮化违法用地';
break; break;
} }
} else if (dataIndex == 'measure_name') { } else if (dataIndex == 'measure_name') {

View File

@ -95,22 +95,24 @@
<a @click="handlePreViewData(column, record, 7)">{{ record.ccgdmj }}</a> <a @click="handlePreViewData(column, record, 7)">{{ record.ccgdmj }}</a>
</template> </template>
<!-- 新增违法占用耕地情况计算·核实后新增违法耕地·宗数 --> <!--
新增违法占用耕地情况计算·核实后新增违法耕地·宗数
<template v-if="column.key === 'hshxzwfgdzs' && record.countyname != '总计'"> <template v-if="column.key === 'hshxzwfgdzs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record)">{{ record.hshxzwfgdzs }}</a> <a @click="handlePreViewData(column, record)">{{ record.hshxzwfgdzs }}</a>
</template> </template>
<!-- 新增违法占用耕地情况计算·核实后新增违法耕地·耕地面积 --> 新增违法占用耕地情况计算·核实后新增违法耕地·耕地面积
<template v-if="column.key === 'hshxzwfgdgdmj' && record.countyname != '总计'"> <template v-if="column.key === 'hshxzwfgdgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record)">{{ record.hshxzwfgdgdmj }}</a> <a @click="handlePreViewData(column, record)">{{ record.hshxzwfgdgdmj }}</a>
</template> </template>
<!-- 新增违法占用耕地情况计算·整改后剩余违法耕地·宗数 --> 新增违法占用耕地情况计算·整改后剩余违法耕地·宗数
<template v-if="column.key === 'zghsywfgdzs' && record.countyname != '总计'"> <template v-if="column.key === 'zghsywfgdzs' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record)">{{ record.zghsywfgdzs }}</a> <a @click="handlePreViewData(column, record)">{{ record.zghsywfgdzs }}</a>
</template> </template>
<!-- 新增违法占用耕地情况计算·整改后剩余违法耕地·耕地面积 --> 新增违法占用耕地情况计算·整改后剩余违法耕地·耕地面积
<template v-if="column.key === 'zghsywfgdgdmj' && record.countyname != '总计'"> <template v-if="column.key === 'zghsywfgdgdmj' && record.countyname != '总计'">
<a @click="handlePreViewData(column, record)">{{ record.zghsywfgdgdmj }}</a> <a @click="handlePreViewData(column, record)">{{ record.zghsywfgdgdmj }}</a>
</template> </template>
-->
</template> </template>
</BasicTable> </BasicTable>

View File

@ -29,16 +29,12 @@
</div> </div>
<div class="screen-item"> <div class="screen-item">
<div class="screen-item-label" style="margin-right:9px;">批次</div> <div class="screen-item-label" style="margin-right:9px;">批次</div>
<a-select <a-input
allowClear allowClear
style="width: 117px" class="item-input"
style="width:117px;"
v-model:value="props.batch" v-model:value="props.batch"
:options="batchOptions" @change="(value) => emits('auditProgressScreenChange',value.target.value,'batch')"
@change="
(value) => {
emits('auditProgressScreenChange', value, 'batch');
}
"
/> />
</div> </div>
</div> </div>
@ -141,6 +137,15 @@
color: #000000; color: #000000;
// width: 33.3%; // width: 33.3%;
display: flex; display: flex;
.item-input{
width:223px;
font-family: Alibaba PuHuiTi;
font-weight: 500;
font-size: 17px;
color: #000000;
line-height: 30px;
box-shadow: 2px 3px 3px 1px rgba(13,13,13,0.05);
}
.screen-item-label { .screen-item-label {
font-family: Alibaba PuHuiTi; font-family: Alibaba PuHuiTi;
font-weight: 500; font-weight: 500;

View File

@ -21,11 +21,11 @@
</div> </div>
<div class="screen-item" style="margin-bottom:15px;"> <div class="screen-item" style="margin-bottom:15px;">
<div class="screen-item-label">批次</div> <div class="screen-item-label">批次</div>
<a-select <a-input
allowClear allowClear
class="item-input"
style="width:117px;" style="width:117px;"
v-model:value="params.picihao" v-model:value="params.picihao"
:options="props.batchOptions"
/> />
</div> </div>
<div class="screen-item" style="margin-right:13px;"> <div class="screen-item" style="margin-right:13px;">
@ -139,7 +139,7 @@
<div class="info-layout-div"> <div class="info-layout-div">
<div> <div>
<Icon <Icon
:style="`font-size: 30px; color: #314A8C; cursor: pointer;${item.isouttime === 0? 'color: #314A8C;': item.isouttime === 1? 'color: #F7710F;': 'color: #D03542;'}`" :style="`font-size: 30px; color: #314A8C; cursor: pointer;${item.isouttime === 2? 'color: #D03542;': item.isouttime === 1? 'color: #F7710F;': 'color: #314A8C;'}`"
icon="icon-park-solid:timer" icon="icon-park-solid:timer"
@click="()=>{}" @click="()=>{}"
/> />

View File

@ -41,13 +41,8 @@
</a-form> </a-form>
</a-modal> </a-modal>
<!-- <a-modal <a-modal v-if="false" v-bind="$attrs" @register="registerModal" title="飞地调整" @ok="handleSubmit" >
v-if="false"
v-bind="$attrs"
@register="registerModal"
title="飞地调整"
@ok="handleSubmit"
>
<a-form <a-form
ref="formRef" ref="formRef"
:model="formState" :model="formState"
@ -95,7 +90,6 @@
import { useMessage } from '@/hooks/web/useMessage'; import { useMessage } from '@/hooks/web/useMessage';
import { updateDroneCaseInfo, getCaseInfoById } from '@/api/tiankongdi/index.ts'; import { updateDroneCaseInfo, getCaseInfoById } from '@/api/tiankongdi/index.ts';
import { getChildrenTree } from '@/api/demo/system.ts'; import { getChildrenTree } from '@/api/demo/system.ts';
const { createMessage } = useMessage(); const { createMessage } = useMessage();
defineOptions({ name: 'AccountModal' }); defineOptions({ name: 'AccountModal' });
const formRef = ref(); const formRef = ref();

View File

@ -1,21 +1,21 @@
<template> <template>
<div class="content"> <div class="content">
<div class="rollback"> <!-- <div class="rollback">
<Icon <Icon
style="font-size: 20px; cursor: pointer" style="font-size: 20px; cursor: pointer"
icon="ant-design:arrow-left-outlined" icon="ant-design:arrow-left-outlined"
@click="emits('closeShowInfo', false)" @click="emits('closeShowInfo', false)"
/> />
</div> </div> -->
<div class="screen-div"> <div class="screen-div">
<div class="screen-item"> <div class="screen-item">
<div class="screen-item-label">年份</div> <div class="screen-item-label">年份</div>
<a-select <a-select
allowClear allowClear
style="flex: 1" style="flex: 1"
v-model:value="props.infoScreenData.year" v-model:value="infoScreenData.year"
:options="yearOptions" :options="yearOptions"
@change="(value) => emits('mapListScreenChange', value, 'year')" @change="(value) => mapListScreenChange(value, 'year')"
/> />
</div> </div>
<div class="screen-item"> <div class="screen-item">
@ -23,18 +23,18 @@
<a-select <a-select
allowClear allowClear
style="flex: 1" style="flex: 1"
v-model:value="props.infoScreenData.batch" v-model:value="infoScreenData.picihao"
:options="batchOptions" :options="batchOptions"
@change="(value) => emits('mapListScreenChange', value, 'batch')" @change="(value) => mapListScreenChange(value, 'batch')"
/> />
</div> </div>
<div class="screen-item"> <div class="screen-item">
<div class="screen-item-label">图斑号</div> <div class="screen-item-label">图斑号</div>
<a-input <a-input
allowClear allowClear
v-model:value="props.infoScreenData.mapNo" v-model:value="infoScreenData.caseNo"
style="flex: 1" style="flex: 1"
@change="(value) => emits('mapListScreenChange', value.target.value, 'mapNo')" @change="(value) => mapListScreenChange( value.target.value, 'caseNo')"
/> />
</div> </div>
<div class="screen-item" v-if="cityType.level === 0"> <div class="screen-item" v-if="cityType.level === 0">
@ -43,7 +43,7 @@
disabled disabled
allowClear allowClear
style="flex: 1" style="flex: 1"
v-model:value="props.infoScreenData.countyId" v-model:value="infoScreenData.countyId"
:options="props.municipalAreaOptions" :options="props.municipalAreaOptions"
@change="(value) => emits('mapListScreenChange', value, 'countyId')" @change="(value) => emits('mapListScreenChange', value, 'countyId')"
/> />
@ -66,7 +66,7 @@
style="flex: 1" style="flex: 1"
v-model:value="props.infoScreenData.countyId" v-model:value="props.infoScreenData.countyId"
:options="props.municipalAreaOptions" :options="props.municipalAreaOptions"
@change="(value) => emits('mapListScreenChange', value, 'countyId')" @change="(value) => mapListScreenChange( value, 'countyId')"
/> />
</div> </div>
<div class="screen-item" v-if="cityType.level !== 0"> <div class="screen-item" v-if="cityType.level !== 0">
@ -84,29 +84,29 @@
<a-select <a-select
allowClear allowClear
style="flex: 1" style="flex: 1"
v-model:value="props.infoScreenData.mapType" v-model:value="infoScreenData.isIllegal"
:options="mapTypeOptions" :options="mapTypeOptions"
@change="(value) => emits('mapListScreenChange', value, 'mapType')" @change="(value) => mapListScreenChange( value, 'isIllegal')"
/> />
</div> </div>
<div class="screen-item" v-if="props.infoScreenData.mapType === 1"> <div class="screen-item" v-if="infoScreenData.isIllegal === 1">
<div class="screen-item-label">违法类型</div> <div class="screen-item-label">违法类型</div>
<a-select <a-select
allowClear allowClear
style="flex: 1" style="flex: 1"
v-model:value="props.infoScreenData.illegalType" v-model:value="infoScreenData.weifaleixing"
:options="illegalTypeOptions" :options="illegalTypeOptions"
@change="(value) => emits('mapListScreenChange', value, 'illegalType')" @change="(value) => mapListScreenChange( value, 'weifaleixing')"
/> />
</div> </div>
<div class="screen-item" v-if="props.infoScreenData.illegalType === 0"> <div class="screen-item" v-if="infoScreenData.weifaleixing === 0">
<div class="screen-item-label">整改措施</div> <div class="screen-item-label">整改措施</div>
<a-select <a-select
allowClear allowClear
style="flex: 1" style="flex: 1"
v-model:value="props.infoScreenData.measure" v-model:value="infoScreenData.measureName"
:options="measureOptions" :options="measureOptions"
@change="(value) => emits('mapListScreenChange', value, 'measure')" @change="(value) => mapListScreenChange( value, 'measureName')"
/> />
</div> </div>
<div class="screen-item"> <div class="screen-item">
@ -114,9 +114,9 @@
<a-select <a-select
allowClear allowClear
style="flex: 1" style="flex: 1"
v-model:value="props.infoScreenData.mapStatus" v-model:value="infoScreenData.nowStatus"
:options="mapStatusOptions" :options="mapStatusOptions"
@change="(value) => emits('mapListScreenChange', value, 'mapStatus')" @change="(value) => mapListScreenChange( value, 'nowStatus')"
/> />
</div> </div>
<div class="screen-item"> <div class="screen-item">
@ -124,9 +124,9 @@
<a-select <a-select
allowClear allowClear
style="flex: 1" style="flex: 1"
v-model:value="props.infoScreenData.markType" v-model:value="infoScreenData.isBuildName"
:options="markTypeOptions" :options="markTypeOptions"
@change="(value) => emits('mapListScreenChange', value, 'markType')" @change="(value) => mapListScreenChange( value, 'isBuildName')"
/> />
</div> </div>
<div class="screen-button-div"> <div class="screen-button-div">
@ -136,18 +136,18 @@
<a-button type="primary" @click="dataListSort('gengdi_area')"> <a-button type="primary" @click="dataListSort('gengdi_area')">
{{ `排序(耕地面积) ${props.infoScreenData.sort === 'gengdi_area' ? orderMark() : '-'}` }} {{ `排序(耕地面积) ${props.infoScreenData.sort === 'gengdi_area' ? orderMark() : '-'}` }}
</a-button> </a-button>
<a-button type="primary">导出</a-button> <!-- <a-button type="primary">导出</a-button> -->
<!-- <a-button <!-- <a-button
type="primary" type="primary"
:style="openCollect && 'background: #bf0000;'" :style="openCollect && 'background: #bf0000;'"
@click="getCollectList" @click="getCollectList"
>我的收藏</a-button >我的收藏</a-button
> --> > -->
<a-button @click="emits('getInfoList', 1)">查询</a-button> <a-button @click="getInfoList"></a-button>
</div> </div>
</div> </div>
<div class="data-list-div"> <div class="data-list-div">
<div v-for="(item, index) in props.infoDataList" :key="index" class="data-list-item"> <div v-for="(item, index) in infoDataList" :key="index" class="data-list-item">
<div class="data-list-layout-div"> <div class="data-list-layout-div">
<div class="data-list-title-div"> <div class="data-list-title-div">
<img src="/positioning.png" class="map-mark" style="cursor:pointer;" @click="locationFun(item)"/> <img src="/positioning.png" class="map-mark" style="cursor:pointer;" @click="locationFun(item)"/>
@ -277,7 +277,7 @@
/> />
</div> </div>
</div> </div>
<div v-else class="no-data"> <div v-else class="no-data" v-if="infoDataList.length == 0">
<a-empty :image="simpleImage" /> <a-empty :image="simpleImage" />
</div> </div>
</div> </div>
@ -292,7 +292,7 @@
@change="changePage" @change="changePage"
/> />
</div> </div>
<Amend @register="registerModal" @success="handleSuccess" :modalShow="modalShow" :modalRecord="modalRecord" @closeModel="closeModal"/> <Amend @register="registerModal" @success="handleSuccess" :modalShow="modalShow" @closeModel="closeModal"/>
<a-modal <a-modal
style="width:100vw;top:0px;left:0px;margin:0px;padding:0px;" style="width:100vw;top:0px;left:0px;margin:0px;padding:0px;"
wrap-class-name="full-modal" wrap-class-name="full-modal"
@ -330,14 +330,13 @@
mapStatusOptions, mapStatusOptions,
markTypeOptions, markTypeOptions,
} from '@/views/demo/tiankongdi/curbspotcity/util.ts'; } from '@/views/demo/tiankongdi/curbspotcity/util.ts';
import Amend from './amend.vue'; import Amend from './amend.vue';
import { useModal } from '@/components/Modal'; import { useModal } from '@/components/Modal';
import { Empty } from 'ant-design-vue'; import { Empty } from 'ant-design-vue';
import ShowInfoModal from '@/views/demo/tiankongdi/curbspotcity/MapList/ShowInfoModal/index.vue'; import ShowInfoModal from '@/views/demo/tiankongdi/curbspotcity/MapList/ShowInfoModal/index.vue';
import { message } from 'ant-design-vue';
const modalShow = ref(false) const modalShow = ref(false)
const modalRecord = ref({});
const [registerModal, { openModal }] = useModal(); const [registerModal, { openModal }] = useModal();
const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE; const simpleImage = Empty.PRESENTED_IMAGE_SIMPLE;
@ -372,6 +371,81 @@
return '↓'; return '↓';
} }
}; };
const infoDataList = ref([]);
const infoScreenData = ref({
year:null,
picihao:null,
batch: null,
countyid: null,
streetid: null,
geomid: null,
nowStatus:null,
is_illegal: null,
weifaleixing: null,
measure_name: null,
handle_status_id: null,
is_build_complete: null,
areaid: null,
level: null,
page: 1,
limit: 10,
sort: null,
order: null,
type: null,
});
const mapListScreenChange = (value, type) => {
switch (type) {
case 'year':
infoScreenData.value.year = value;
break;
case 'batch':
infoScreenData.value.picihao = value;
break;
case 'caseNo':
infoScreenData.value.caseNo = value;
break;
case 'countyId':
infoScreenData.value.countyId = value;
break;
case 'streetId':
infoScreenData.value.streetId = value;
break;
case 'isIllegal':
infoScreenData.value.isIllegal = value;
if (value !== 1) {
infoScreenData.value.weifaleixing = null;
infoScreenData.value.measureName = null;
}
break;
case 'illegalType':
infoScreenData.value.weifaleixing = value;
if (value !== 0) {
infoScreenData.value.measureName = null;
}
break;
case 'measureName':
infoScreenData.value.measureName = value;
break;
case 'nowStatus':
infoScreenData.value.nowStatus = value;
break;
case 'isBuildName':
infoScreenData.value.isBuildName = value;
break;
}
};
const getInfoList = ()=>{
getLoadDroneCaseInfoDetail(infoScreenData.value).then((res) => {
infoDataList.value = res.items;
});
}
getInfoList();
const showInfoOpen = ref(false); const showInfoOpen = ref(false);
const openCollect = computed(() => { const openCollect = computed(() => {
if (props.infoScreenData.type === '') return false; if (props.infoScreenData.type === '') return false;
@ -433,15 +507,13 @@
} }
function changeArea(record) { function changeArea(record) {
modalShow.value = true; modalShow.value = true;
modalRecord.value = record; openModal(true, {
// openModal(true, { record: record,
// record: record, });
// });
} }
function closeModal(){ function closeModal(){
modalShow.value = false; modalShow.value = false;
emits('getInfoList');
} }
function handleSuccess() {} function handleSuccess() {}
</script> </script>

View File

@ -33,12 +33,11 @@
</div> </div>
<div class="screen-item" style="margin-bottom:12px;"> <div class="screen-item" style="margin-bottom:12px;">
<div class="screen-item-label">批次</div> <div class="screen-item-label">批次</div>
<a-select <a-input
allowClear class="item-input"
style="width:117px;" style="width:117px;"
v-model:value="props.infoScreenData.batch" v-model:value="props.infoScreenData.batch"
:options="batchOptions" @change="(value) => emits('mapListScreenChange',value.target.value,'batch')"
@change="(value) => emits('mapListScreenChange',value,'batch')"
/> />
</div> </div>
<div class="screen-item" style="margin-right:15px;margin-bottom:22px;"> <div class="screen-item" style="margin-right:15px;margin-bottom:22px;">
@ -117,7 +116,7 @@
<div class="collect-div"> <div class="collect-div">
<a-popover placement="bottom"> <a-popover placement="bottom">
<template #content> <template #content>
<div style="display:flex;"> <div style="display:flex;margin-bottom:5px;">
<div>当前状态</div> <div>当前状态</div>
<div> <div>
<a-checkbox-group <a-checkbox-group
@ -127,7 +126,7 @@
:options="mapStatusOptions"></a-checkbox-group> :options="mapStatusOptions"></a-checkbox-group>
</div> </div>
</div> </div>
<div style="display:flex;"> <div style="display:flex;margin-bottom:5px;">
<div>是否超期</div> <div>是否超期</div>
<div> <div>
<a-checkbox-group <a-checkbox-group
@ -137,7 +136,7 @@
:options="isOverdueOptions"></a-checkbox-group> :options="isOverdueOptions"></a-checkbox-group>
</div> </div>
</div> </div>
<div style="display:flex;"> <div style="display:flex;margin-bottom:5px;align-items: center;">
<div>图斑面积</div> <div>图斑面积</div>
<div style="display:flex;"> <div style="display:flex;">
<a-input style="width:30%;" <a-input style="width:30%;"
@ -151,7 +150,7 @@
/> />
</div> </div>
</div> </div>
<div style="display:flex;"> <div style="display:flex;margin-bottom:5px;align-items: center;">
<div>耕地面积</div> <div>耕地面积</div>
<div style="display:flex;"> <div style="display:flex;">
<a-input style="width:30%;" <a-input style="width:30%;"
@ -165,6 +164,10 @@
/> />
</div> </div>
</div> </div>
<a-button
style="background:#086DEC"
type="primary"
@click="emits('getInfoList')">查询</a-button>
</template> </template>
<Icon <Icon
style="font-size: 30px; cursor: pointer;margin-right: 10px;" style="font-size: 30px; cursor: pointer;margin-right: 10px;"

View File

@ -889,6 +889,7 @@
}); });
if (data) { if (data) {
closePage(); closePage();
rejectOpen.value = false
return createMessage.success('成功'); return createMessage.success('成功');
} else { } else {
return createMessage.error('失败'); return createMessage.error('失败');