Compare commits
3 Commits
5a64936e28
...
fa25527257
| Author | SHA1 | Date |
|---|---|---|
|
|
fa25527257 | |
|
|
bc51ed3991 | |
|
|
4e4ec20f40 |
|
|
@ -10,7 +10,7 @@ VITE_GLOB_API_URL=http://192.168.10.104:9020
|
|||
|
||||
|
||||
# File upload address, optional
|
||||
VITE_GLOB_UPLOAD_URL=/upload
|
||||
VITE_GLOB_UPLOAD_URL=http://192.168.10.104:9011
|
||||
|
||||
# Interface prefix
|
||||
VITE_GLOB_API_URL_PREFIX=
|
||||
|
|
|
|||
|
|
@ -1,25 +1,29 @@
|
|||
|
||||
// WFProcess 流程模版基本信息
|
||||
// WFProcess 流程模版基本信息
|
||||
import { defHttp } from '@/utils/http/axios';
|
||||
import { caseFlowLogParams , flowLogModel , droneCaseDealModel ,droneCaseDealParams} from './model/index'
|
||||
import {
|
||||
caseFlowLogParams,
|
||||
flowLogModel,
|
||||
droneCaseDealModel,
|
||||
droneCaseDealParams,
|
||||
} from './model/index';
|
||||
|
||||
enum Api {
|
||||
// 获取案件详情步骤条
|
||||
GetCaseFlowLog = '/api/DroneCaseinfo/GetCaseFlowLog',
|
||||
// 获取案件处理详情
|
||||
GetDroneCaseDeal = '/api/DroneCaseinfo/GetDroneCaseDeal',
|
||||
// 获取案件详情
|
||||
GetCaseInfo = '/api/DroneCaseinfo/GetCaseInfo',
|
||||
// 获取案件详情
|
||||
GetCaseInfo = '/api/DroneCaseinfo/GetCaseInfo',
|
||||
// 案件列表
|
||||
LoadCaseInfoList = '/api/DroneCaseinfo/LoadCaseInfoList',
|
||||
// 获取GeoJson图层
|
||||
GetDroneGeoJson='/api/DroneCaseinfo/GetDroneGeoJson'
|
||||
GetDroneGeoJson = '/api/DroneCaseinfo/GetDroneGeoJson',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getCaseFlowLog
|
||||
*/
|
||||
export function getCaseFlowLog(params?: caseFlowLogParams) {
|
||||
export function getCaseFlowLog(params?: caseFlowLogParams) {
|
||||
return defHttp.get<flowLogModel>({ url: Api.GetCaseFlowLog, params });
|
||||
}
|
||||
/**
|
||||
|
|
@ -46,5 +50,3 @@ export function getCaseInfoList(params?: caseFlowLogParams) {
|
|||
export function getDroneGeoJson(params?: caseFlowLogParams) {
|
||||
return defHttp.get<flowLogModel>({ url: Api.GetDroneGeoJson, params });
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,21 +1,22 @@
|
|||
export interface caseFlowLogParams {
|
||||
id?: string;
|
||||
}
|
||||
export interface droneCaseDealParams{
|
||||
caseid?:string;
|
||||
export interface droneCaseDealParams {
|
||||
caseid?: string;
|
||||
id?: string;
|
||||
}
|
||||
export interface flowLog {
|
||||
name: string;
|
||||
time: string;
|
||||
user_name: string;
|
||||
status: number;
|
||||
state?:string;
|
||||
state?: string;
|
||||
}
|
||||
export type flowLogModel = flowLog[];
|
||||
|
||||
export interface fileList{
|
||||
filePath?:string | undefined;
|
||||
s_filePath?:string;
|
||||
export interface fileList {
|
||||
filePath?: string | undefined;
|
||||
s_filePath?: string;
|
||||
}
|
||||
export type fileListModel = fileList[];
|
||||
|
||||
|
|
@ -30,5 +31,4 @@ export type droneCaseDealModel = {
|
|||
payment_pic_list?: any;
|
||||
agree_checkout_pic_list?: any;
|
||||
checkout_pic_list?: any;
|
||||
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
// WFDelegate 流程模版基本信息
|
||||
// WFDelegate 流程模版基本信息
|
||||
import { defHttp } from '@/utils/http/axios';
|
||||
import {DetailParams} from './model/wfSchemeInfoModel'
|
||||
import { DetailParams } from './model/wfSchemeInfoModel';
|
||||
|
||||
enum Api {
|
||||
enum Api {
|
||||
// 创建流程
|
||||
LoadMyUserList = '/api/WFDelegate/LoadMyUserList',
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getLoadMyUserList
|
||||
*/
|
||||
export function getLoadMyUserList(params?: DetailParams) {
|
||||
export function getLoadMyUserList(params?: DetailParams) {
|
||||
return defHttp.get({ url: Api.LoadMyUserList, params });
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,8 +1,12 @@
|
|||
|
||||
// WFProcess 流程模版基本信息
|
||||
// WFProcess 流程模版基本信息
|
||||
import { defHttp } from '@/utils/http/axios';
|
||||
import { CreateParams, DeleteDraftParams, RevokeAuditParams,LoadNextAuditorsParams } from './model/WFProcessModel'
|
||||
import { MyUncompletedParams } from './model/WFTaskModel'
|
||||
import {
|
||||
CreateParams,
|
||||
DeleteDraftParams,
|
||||
RevokeAuditParams,
|
||||
LoadNextAuditorsParams,
|
||||
} from './model/WFProcessModel';
|
||||
import { MyUncompletedParams } from './model/WFTaskModel';
|
||||
|
||||
enum Api {
|
||||
// 创建流程
|
||||
|
|
@ -28,73 +32,63 @@ enum Api {
|
|||
// 加签审核
|
||||
SignAudit = '/api/WFProcess/SignAudit',
|
||||
// 流程审核
|
||||
Audit='/api/WFProcess/Audit',
|
||||
Audit = '/api/WFProcess/Audit',
|
||||
// 获取下一节点审核人
|
||||
LoadNextAuditors='/api/WFProcess/LoadNextAuditors',
|
||||
LoadNextAuditors = '/api/WFProcess/LoadNextAuditors',
|
||||
// 确认阅读
|
||||
ReadFlow='/api/WFProcess/ReadFlow',
|
||||
ReadFlow = '/api/WFProcess/ReadFlow',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getLoadMyPage
|
||||
*/
|
||||
export function getLoadNextAuditors(params?: LoadNextAuditorsParams) {
|
||||
export function getLoadNextAuditors(params?: LoadNextAuditorsParams) {
|
||||
return defHttp.get({ url: Api.LoadNextAuditors, params });
|
||||
}
|
||||
/**
|
||||
* @description: 创建流程
|
||||
*/
|
||||
export function create(params?: CreateParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.Create,
|
||||
params,
|
||||
},
|
||||
);
|
||||
return defHttp.post({
|
||||
url: Api.Create,
|
||||
params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @description: 重新创建流程
|
||||
*/
|
||||
export function createAgain(params?: CreateParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.CreateAgain,
|
||||
params,
|
||||
},
|
||||
);
|
||||
return defHttp.post({
|
||||
url: Api.CreateAgain,
|
||||
params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @description: 加签审核
|
||||
*/
|
||||
export function signAudit(id?:String,params?: CreateParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.SignAudit+"?id="+id,
|
||||
params,
|
||||
},
|
||||
);
|
||||
export function signAudit(id?: String, params?: CreateParams) {
|
||||
return defHttp.post({
|
||||
url: Api.SignAudit + '?id=' + id,
|
||||
params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @description: 流程审核
|
||||
*/
|
||||
export function audit(id:String,params?: CreateParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.Audit+"?id="+id,
|
||||
params,
|
||||
},
|
||||
);
|
||||
export function audit(id: String, params?: CreateParams) {
|
||||
return defHttp.post({
|
||||
url: Api.Audit + '?id=' + id,
|
||||
params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @description: 保存草稿
|
||||
*/
|
||||
export function saveDraft(params?: CreateParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.SaveDraft,
|
||||
params,
|
||||
},
|
||||
);
|
||||
return defHttp.post({
|
||||
url: Api.SaveDraft,
|
||||
params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @description: getLoadMyPage
|
||||
|
|
@ -112,45 +106,37 @@ export function getLoadMyDraftPage(params?: MyUncompletedParams) {
|
|||
* @description: 删除草稿
|
||||
*/
|
||||
export function deleteDraft(params: DeleteDraftParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.DeleteDraft + "?id=" + params.id,
|
||||
params,
|
||||
},
|
||||
);
|
||||
return defHttp.post({
|
||||
url: Api.DeleteDraft + '?id=' + params.id,
|
||||
params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @description: 催办
|
||||
*/
|
||||
export function urge(params: DeleteDraftParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.Urge + "?id=" + params.id,
|
||||
params,
|
||||
},
|
||||
);
|
||||
return defHttp.post({
|
||||
url: Api.Urge + '?id=' + params.id,
|
||||
params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @description: 撤销
|
||||
*/
|
||||
export function revoke(params: DeleteDraftParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.Revoke + "?id=" + params.id,
|
||||
params,
|
||||
},
|
||||
);
|
||||
return defHttp.post({
|
||||
url: Api.Revoke + '?id=' + params.id,
|
||||
params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @description: 审核撤销
|
||||
*/
|
||||
export function revokeAudit(params: RevokeAuditParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.RevokeAudit + "?id=" + params.id + "&taskId=" + params.taskId,
|
||||
params,
|
||||
},
|
||||
);
|
||||
return defHttp.post({
|
||||
url: Api.RevokeAudit + '?id=' + params.id + '&taskId=' + params.taskId,
|
||||
params,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* @description: getPBMN
|
||||
|
|
@ -162,10 +148,8 @@ export function getBPMN(params: DeleteDraftParams) {
|
|||
/**
|
||||
* @description: 确认阅读
|
||||
*/
|
||||
export function ReadFlow(id: string) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.ReadFlow + "?id=" + id ,
|
||||
},
|
||||
);
|
||||
}
|
||||
export function ReadFlow(id: string) {
|
||||
return defHttp.post({
|
||||
url: Api.ReadFlow + '?id=' + id,
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,25 +1,35 @@
|
|||
// WFSchemeInfo 流程模版基本信息
|
||||
// WFSchemeInfo 流程模版基本信息
|
||||
import { defHttp } from '@/utils/http/axios';
|
||||
import {SchemeListParams,GetSchemeModel,AddParams,
|
||||
DeleteParams,UpdateParams,StateParams,HistoryParams,GetHistoryModel,SchemeParams,DetailParams} from './model/wfSchemeInfoModel'
|
||||
import {
|
||||
SchemeListParams,
|
||||
GetSchemeModel,
|
||||
AddParams,
|
||||
DeleteParams,
|
||||
UpdateParams,
|
||||
StateParams,
|
||||
HistoryParams,
|
||||
GetHistoryModel,
|
||||
SchemeParams,
|
||||
DetailParams,
|
||||
} from './model/wfSchemeInfoModel';
|
||||
|
||||
enum Api {
|
||||
enum Api {
|
||||
// 流程模板基本信息
|
||||
LoadPage = '/api/WFSchemeInfo/LoadPage',
|
||||
Add = '/api/WFSchemeInfo/Add',
|
||||
Update = '/api/WFSchemeInfo/Update',
|
||||
Delete = '/api/WFSchemeInfo/Delete',
|
||||
UpDateState = '/api/WFSchemeInfo/UpDateState',
|
||||
GetDetail='/api/WFSchemeInfo/Get',
|
||||
GetDetail = '/api/WFSchemeInfo/Get',
|
||||
// 可用模板合集
|
||||
Load='/api/WFSchemeInfo/Load',
|
||||
Load = '/api/WFSchemeInfo/Load',
|
||||
// 流程模板详细信息
|
||||
LoadHistoryPage= '/api/WFScheme/LoadPage',
|
||||
UpdateScheme='/api/WFSchemeInfo/UpdateScheme',
|
||||
LoadHistoryPage = '/api/WFScheme/LoadPage',
|
||||
UpdateScheme = '/api/WFSchemeInfo/UpdateScheme',
|
||||
// 获取某模板历史数据
|
||||
VerisonsLoad='/api/WFScheme/Load',
|
||||
VerisonsLoad = '/api/WFScheme/Load',
|
||||
// 获取自定义流程列表(流程发起页)
|
||||
GetInfoList='/api/WFSchemeInfo/GetInfoList'
|
||||
GetInfoList = '/api/WFSchemeInfo/GetInfoList',
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -28,57 +38,56 @@ import {SchemeListParams,GetSchemeModel,AddParams,
|
|||
export function getLoadPage(params?: SchemeListParams) {
|
||||
return defHttp.get<GetSchemeModel>({ url: Api.LoadPage, params });
|
||||
}
|
||||
export function getDetail(params?: DetailParams){
|
||||
export function getDetail(params?: DetailParams) {
|
||||
return defHttp.get({ url: Api.GetDetail, params });
|
||||
}
|
||||
/**
|
||||
* @description: getLoad 可用模板列表
|
||||
*/
|
||||
export function getLoad(params?: SchemeListParams) {
|
||||
export function getLoad(params?: SchemeListParams) {
|
||||
return defHttp.get<GetSchemeModel>({ url: Api.Load, params });
|
||||
}
|
||||
/**
|
||||
* @description: postAdd
|
||||
*/
|
||||
export function postAdd( params?:AddParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.Add,
|
||||
params,
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
export function update(params:UpdateParams) {
|
||||
export function postAdd(params?: AddParams) {
|
||||
return defHttp.post({
|
||||
url: Api.Update+"?id="+params.schemeinfo.id,
|
||||
params
|
||||
url: Api.Add,
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function del(params:DeleteParams) {
|
||||
return defHttp.post({ url: Api.Delete + "?id=" + params.id });
|
||||
export function update(params: UpdateParams) {
|
||||
return defHttp.post({
|
||||
url: Api.Update + '?id=' + params.schemeinfo.id,
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function updateState(params:StateParams){
|
||||
return defHttp.post({ url: Api.UpDateState + "?id=" + params.id +"&state="+params.state});
|
||||
export function del(params: DeleteParams) {
|
||||
return defHttp.post({ url: Api.Delete + '?id=' + params.id });
|
||||
}
|
||||
|
||||
export function getLoadHistoryPage(params?:HistoryParams){
|
||||
return defHttp.get<GetHistoryModel>({url:Api.LoadHistoryPage,params})
|
||||
}
|
||||
export function getVerisonsLoad(params?:HistoryParams){
|
||||
return defHttp.get<GetHistoryModel>({url:Api.VerisonsLoad,params})
|
||||
export function updateState(params: StateParams) {
|
||||
return defHttp.post({ url: Api.UpDateState + '?id=' + params.id + '&state=' + params.state });
|
||||
}
|
||||
|
||||
export function updateScheme(params:SchemeParams){
|
||||
return defHttp.post({ url: Api.UpdateScheme + "?id=" + params.id +"&schemeId="+params.schemeId});
|
||||
export function getLoadHistoryPage(params?: HistoryParams) {
|
||||
return defHttp.get<GetHistoryModel>({ url: Api.LoadHistoryPage, params });
|
||||
}
|
||||
export function getVerisonsLoad(params?: HistoryParams) {
|
||||
return defHttp.get<GetHistoryModel>({ url: Api.VerisonsLoad, params });
|
||||
}
|
||||
|
||||
export function updateScheme(params: SchemeParams) {
|
||||
return defHttp.post({
|
||||
url: Api.UpdateScheme + '?id=' + params.id + '&schemeId=' + params.schemeId,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getInfoList 获取流程自定义列表
|
||||
*/
|
||||
export function getInfoList(params) {
|
||||
export function getInfoList(params) {
|
||||
return defHttp.get({ url: Api.GetInfoList, params });
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,55 +1,53 @@
|
|||
|
||||
// WFTask
|
||||
import { defHttp } from '@/utils/http/axios';
|
||||
import {MyUncompletedParams,TaskDetailParam} from './model/WFTaskModel'
|
||||
import { MyUncompletedParams, TaskDetailParam } from './model/WFTaskModel';
|
||||
|
||||
enum Api {
|
||||
enum Api {
|
||||
// 我的待办
|
||||
LoadMyUncompletedPage = '/api/WFTask/LoadMyUncompletedPage',
|
||||
// 我的已办
|
||||
LoadMyCompletedPage='/api/WFTask/LoadMyCompletedPage',
|
||||
LoadMyCompletedPage = '/api/WFTask/LoadMyCompletedPage',
|
||||
// 我的传阅
|
||||
LoadMyReadPage='/api/WFTask/LoadMyReadPage',
|
||||
LoadMyReadPage = '/api/WFTask/LoadMyReadPage',
|
||||
// 我的委托
|
||||
LoadMyDelegatePage='/api/WFTask/LoadMyDelegatePage',
|
||||
GetTaskDetail='/api/WFTask/Get',
|
||||
GetBPMNTask='/api/WFTask/GetBPMN'
|
||||
LoadMyDelegatePage = '/api/WFTask/LoadMyDelegatePage',
|
||||
GetTaskDetail = '/api/WFTask/Get',
|
||||
GetBPMNTask = '/api/WFTask/GetBPMN',
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: getLoadMyUncompletedPage
|
||||
*/
|
||||
export function getLoadMyUncompletedPage(params?: MyUncompletedParams) {
|
||||
export function getLoadMyUncompletedPage(params?: MyUncompletedParams) {
|
||||
return defHttp.get({ url: Api.LoadMyUncompletedPage, params });
|
||||
}
|
||||
/**
|
||||
* @description: getLoadMyCompletedPage
|
||||
*/
|
||||
export function getLoadMyCompletedPage(params?: MyUncompletedParams) {
|
||||
export function getLoadMyCompletedPage(params?: MyUncompletedParams) {
|
||||
return defHttp.get({ url: Api.LoadMyCompletedPage, params });
|
||||
}
|
||||
/**
|
||||
* @description: getLoadMyReadPage
|
||||
*/
|
||||
export function getLoadMyReadPage(params?: MyUncompletedParams) {
|
||||
export function getLoadMyReadPage(params?: MyUncompletedParams) {
|
||||
return defHttp.get({ url: Api.LoadMyReadPage, params });
|
||||
}
|
||||
/**
|
||||
* @description: getLoadMyDelegatePage
|
||||
*/
|
||||
export function getLoadMyDelegatePage(params?: MyUncompletedParams) {
|
||||
export function getLoadMyDelegatePage(params?: MyUncompletedParams) {
|
||||
return defHttp.get({ url: Api.LoadMyDelegatePage, params });
|
||||
}
|
||||
/**
|
||||
* @description: GetTaskDetail
|
||||
*/
|
||||
export function getTaskDetail(params?: TaskDetailParam) {
|
||||
export function getTaskDetail(params?: TaskDetailParam) {
|
||||
return defHttp.get({ url: Api.GetTaskDetail, params });
|
||||
}
|
||||
/**
|
||||
* @description: getBPMNTask
|
||||
*/
|
||||
export function getBPMNTask(params?: TaskDetailParam) {
|
||||
export function getBPMNTask(params?: TaskDetailParam) {
|
||||
return defHttp.get({ url: Api.GetBPMNTask, params });
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
import { defHttp } from '@/utils/http/axios';
|
||||
import {TableListParams,TableListModel,TableFormsParams,TableFormsModel} from './model/flowPenal'
|
||||
import {
|
||||
TableListParams,
|
||||
TableListModel,
|
||||
TableFormsParams,
|
||||
TableFormsModel,
|
||||
} from './model/flowPenalModel';
|
||||
|
||||
enum Api {
|
||||
GetTableList = '/api/FormModule/GetTableList',
|
||||
|
|
@ -15,7 +20,7 @@ export function getTableList(params: TableListParams) {
|
|||
}
|
||||
/**
|
||||
* @description: getTableForms 获取表的对象集合
|
||||
*/
|
||||
export function getTableForms(params: TableFormsParams) {
|
||||
*/
|
||||
export function getTableForms(params: TableFormsParams) {
|
||||
return defHttp.get<TableFormsModel>({ url: Api.GetTableForms, params });
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,45 +1,44 @@
|
|||
/**
|
||||
* @description: 创建流程参数
|
||||
*/
|
||||
export interface CreateParams {
|
||||
processId?: string | null,
|
||||
schemeCode?: string,
|
||||
title?: string,
|
||||
userId?: string,
|
||||
toUserId?: string,
|
||||
export interface CreateParams {
|
||||
processId?: string | null;
|
||||
schemeCode?: string;
|
||||
title?: string;
|
||||
userId?: string;
|
||||
toUserId?: string;
|
||||
nextUsers?: {
|
||||
additionalProp1: string,
|
||||
additionalProp2: string,
|
||||
additionalProp3: string
|
||||
},
|
||||
des?: string,
|
||||
code?: string,
|
||||
name?: string,
|
||||
stampImg?: string,
|
||||
stampPassWord?: string,
|
||||
nextId?: string
|
||||
additionalProp1: string;
|
||||
additionalProp2: string;
|
||||
additionalProp3: string;
|
||||
};
|
||||
des?: string;
|
||||
code?: string;
|
||||
name?: string;
|
||||
stampImg?: string;
|
||||
stampPassWord?: string;
|
||||
nextId?: string;
|
||||
}
|
||||
/**
|
||||
* @description: 删除草稿参数
|
||||
*/
|
||||
export interface DeleteDraftParams {
|
||||
id: string,
|
||||
export interface DeleteDraftParams {
|
||||
id: string;
|
||||
}
|
||||
/**
|
||||
* @description: 审核撤销参数
|
||||
*/
|
||||
export interface RevokeAuditParams {
|
||||
id: string,
|
||||
taskId:string,
|
||||
export interface RevokeAuditParams {
|
||||
id: string;
|
||||
taskId: string;
|
||||
}
|
||||
/**
|
||||
* @description: 下一节点审核人参数
|
||||
*/
|
||||
export interface LoadNextAuditorsParams {
|
||||
code: string,
|
||||
processId?:string | number,
|
||||
nodeId:string,
|
||||
operationCode:string,
|
||||
userId:string,
|
||||
export interface LoadNextAuditorsParams {
|
||||
code: string;
|
||||
processId?: string | number;
|
||||
nodeId: string;
|
||||
operationCode: string;
|
||||
userId: string;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* @description: 我的待办查询参数
|
||||
*/
|
||||
export interface MyUncompletedParams {
|
||||
export interface MyUncompletedParams {
|
||||
keyWord: string;
|
||||
page: number;
|
||||
limit: number;
|
||||
|
|
@ -10,4 +10,4 @@
|
|||
}
|
||||
export interface TaskDetailParam {
|
||||
id: string;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* @description: 表数据
|
||||
*/
|
||||
export interface TableListModel {
|
||||
export interface TableListModel {
|
||||
name: string;
|
||||
description: number;
|
||||
dbObjectType: number;
|
||||
|
|
@ -15,7 +15,7 @@ export interface TableListParams {
|
|||
/**
|
||||
* @description: 表对象集合的参数
|
||||
*/
|
||||
export interface TableFormsParams {
|
||||
export interface TableFormsParams {
|
||||
dbCode: string;
|
||||
tableNames: string;
|
||||
}
|
||||
|
|
@ -23,7 +23,7 @@ export interface TableListParams {
|
|||
/**
|
||||
* @description: 表对象集合
|
||||
*/
|
||||
export interface TableFormsModel {
|
||||
export interface TableFormsModel {
|
||||
db_codetable: object;
|
||||
db_codecolumnsList:object
|
||||
}
|
||||
db_codecolumnsList: object;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,8 +19,8 @@ export interface AddParams {
|
|||
/**
|
||||
* @description: 字典明细更新参数
|
||||
*/
|
||||
export interface UpdateParams {
|
||||
itemDetailId?:string;
|
||||
export interface UpdateParams {
|
||||
itemDetailId?: string;
|
||||
itemName?: string;
|
||||
itemValue?: string;
|
||||
sortCode?: number;
|
||||
|
|
@ -28,12 +28,11 @@ export interface AddParams {
|
|||
description?: string;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description: 分类明细删除参数
|
||||
*/
|
||||
export interface DeleteParams {
|
||||
id: string ;
|
||||
id: string;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -20,41 +20,41 @@ export interface DetailParams {
|
|||
*/
|
||||
export interface AddParams {
|
||||
schemeinfo: {
|
||||
id: string,
|
||||
code: string,
|
||||
name: string,
|
||||
category: string,
|
||||
color: string,
|
||||
icon: string,
|
||||
schemeId: string,
|
||||
enabledMark: 0,
|
||||
mark: 0,
|
||||
isInApp: 0,
|
||||
authType: 0,
|
||||
description: string,
|
||||
type: 0,
|
||||
createDate: string,
|
||||
createUserId: string,
|
||||
createUserName: string
|
||||
},
|
||||
id: string;
|
||||
code: string;
|
||||
name: string;
|
||||
category: string;
|
||||
color: string;
|
||||
icon: string;
|
||||
schemeId: string;
|
||||
enabledMark: 0;
|
||||
mark: 0;
|
||||
isInApp: 0;
|
||||
authType: 0;
|
||||
description: string;
|
||||
type: 0;
|
||||
createDate: string;
|
||||
createUserId: string;
|
||||
createUserName: string;
|
||||
};
|
||||
schemeAuthList: [
|
||||
{
|
||||
id: string,
|
||||
schemeInfoId: string,
|
||||
objName: string,
|
||||
objId: string,
|
||||
objType: 0
|
||||
}
|
||||
],
|
||||
id: string;
|
||||
schemeInfoId: string;
|
||||
objName: string;
|
||||
objId: string;
|
||||
objType: 0;
|
||||
},
|
||||
];
|
||||
scheme: {
|
||||
id: string,
|
||||
schemeInfoId: string,
|
||||
type: 0,
|
||||
createDate: string,
|
||||
createUserId: string,
|
||||
createUserName: string,
|
||||
content: string
|
||||
}
|
||||
id: string;
|
||||
schemeInfoId: string;
|
||||
type: 0;
|
||||
createDate: string;
|
||||
createUserId: string;
|
||||
createUserName: string;
|
||||
content: string;
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -62,44 +62,43 @@ export interface AddParams {
|
|||
*/
|
||||
export interface UpdateParams {
|
||||
schemeinfo: {
|
||||
id: string,
|
||||
code: string,
|
||||
name: string,
|
||||
category: string,
|
||||
color: string,
|
||||
icon: string,
|
||||
schemeId: string,
|
||||
enabledMark: 0,
|
||||
mark: 0,
|
||||
isInApp: 0,
|
||||
authType: 0,
|
||||
description: string,
|
||||
type: 0,
|
||||
createDate: string,
|
||||
createUserId: string,
|
||||
createUserName: string
|
||||
},
|
||||
id: string;
|
||||
code: string;
|
||||
name: string;
|
||||
category: string;
|
||||
color: string;
|
||||
icon: string;
|
||||
schemeId: string;
|
||||
enabledMark: 0;
|
||||
mark: 0;
|
||||
isInApp: 0;
|
||||
authType: 0;
|
||||
description: string;
|
||||
type: 0;
|
||||
createDate: string;
|
||||
createUserId: string;
|
||||
createUserName: string;
|
||||
};
|
||||
schemeAuthList: [
|
||||
{
|
||||
id: string,
|
||||
schemeInfoId: string,
|
||||
objName: string,
|
||||
objId: string,
|
||||
objType: 0
|
||||
}
|
||||
],
|
||||
id: string;
|
||||
schemeInfoId: string;
|
||||
objName: string;
|
||||
objId: string;
|
||||
objType: 0;
|
||||
},
|
||||
];
|
||||
scheme: {
|
||||
id: string,
|
||||
schemeInfoId: string,
|
||||
type: 0,
|
||||
createDate: string,
|
||||
createUserId: string,
|
||||
createUserName: string,
|
||||
content: string
|
||||
}
|
||||
id: string;
|
||||
schemeInfoId: string;
|
||||
type: 0;
|
||||
createDate: string;
|
||||
createUserId: string;
|
||||
createUserName: string;
|
||||
content: string;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @description: 分类明细删除参数
|
||||
*/
|
||||
|
|
@ -149,18 +148,18 @@ export interface HistoryParams {
|
|||
* @description: 历史记录返回值
|
||||
*/
|
||||
export interface GetHistoryModel {
|
||||
id: string,
|
||||
schemeInfoId: string,
|
||||
type: number,
|
||||
createDate: string,
|
||||
createUserId: string,
|
||||
createUserName: string,
|
||||
content: string
|
||||
id: string;
|
||||
schemeInfoId: string;
|
||||
type: number;
|
||||
createDate: string;
|
||||
createUserId: string;
|
||||
createUserName: string;
|
||||
content: string;
|
||||
}
|
||||
/**
|
||||
* @description: 切换版本
|
||||
*/
|
||||
export interface SchemeParams {
|
||||
id: string,
|
||||
schemeId: string
|
||||
id: string;
|
||||
schemeId: string;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,12 @@
|
|||
// sysDataItemDetail 字典明细接口api
|
||||
import { defHttp } from '@/utils/http/axios';
|
||||
import {CodeParams,AddParams,UpdateParams ,DeleteParams,GetSysDataItemDetailModel} from './model/sysDataItemDetailModel'
|
||||
import {
|
||||
CodeParams,
|
||||
AddParams,
|
||||
UpdateParams,
|
||||
DeleteParams,
|
||||
GetSysDataItemDetailModel,
|
||||
} from './model/sysDataItemDetailModel';
|
||||
enum Api {
|
||||
Load = '/api/SysDataItemDetail/Load',
|
||||
Add = '/api/SysDataItemDetail/Add',
|
||||
|
|
@ -11,13 +17,11 @@ enum Api {
|
|||
/**
|
||||
* @description: postAdd
|
||||
*/
|
||||
export function postAdd(code:string, params?:AddParams) {
|
||||
return defHttp.post(
|
||||
{
|
||||
url: Api.Add + "?code=" + code,
|
||||
params,
|
||||
},
|
||||
);
|
||||
export function postAdd(code: string, params?: AddParams) {
|
||||
return defHttp.post({
|
||||
url: Api.Add + '?code=' + code,
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -27,16 +31,14 @@ export function getLoad(params: CodeParams) {
|
|||
return defHttp.get<GetSysDataItemDetailModel>({ url: Api.Load, params });
|
||||
}
|
||||
|
||||
export function update(params?:UpdateParams) {
|
||||
console.log(params)
|
||||
export function update(params?: UpdateParams) {
|
||||
console.log(params);
|
||||
return defHttp.post({
|
||||
url: Api.Update,
|
||||
params
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function del(params:DeleteParams) {
|
||||
return defHttp.post({ url: Api.Delete + "?id=" + params.id });
|
||||
export function del(params: DeleteParams) {
|
||||
return defHttp.post({ url: Api.Delete + '?id=' + params.id });
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -4,8 +4,9 @@ import { UploadFileParams } from '#/axios';
|
|||
import { useGlobSetting } from '@/hooks/setting';
|
||||
import { AxiosProgressEvent } from 'axios';
|
||||
|
||||
const { uploadUrl = '' } = useGlobSetting();
|
||||
const { uploadUrl } = useGlobSetting();
|
||||
|
||||
const uploadFileUrl = uploadUrl + '/api/Platform/Upload'
|
||||
/**
|
||||
* @description: Upload interface
|
||||
*/
|
||||
|
|
@ -15,7 +16,7 @@ export function uploadApi(
|
|||
) {
|
||||
return defHttp.uploadFile<UploadApiResult>(
|
||||
{
|
||||
url: uploadUrl,
|
||||
url: uploadFileUrl,
|
||||
onUploadProgress,
|
||||
},
|
||||
params,
|
||||
|
|
|
|||
|
|
@ -17,15 +17,17 @@ enum Api {
|
|||
* @description: user login api
|
||||
*/
|
||||
export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') {
|
||||
console.log(defHttp.post<LoginResultModel>(
|
||||
{
|
||||
url: Api.Login,
|
||||
params,
|
||||
},
|
||||
{
|
||||
errorMessageMode: mode,
|
||||
},
|
||||
))
|
||||
console.log(
|
||||
defHttp.post<LoginResultModel>(
|
||||
{
|
||||
url: Api.Login,
|
||||
params,
|
||||
},
|
||||
{
|
||||
errorMessageMode: mode,
|
||||
},
|
||||
),
|
||||
);
|
||||
return defHttp.post<LoginResultModel>(
|
||||
{
|
||||
url: Api.Login,
|
||||
|
|
|
|||
|
|
@ -0,0 +1,22 @@
|
|||
.mapboxgl-ctrl-logo {
|
||||
display: none !important;
|
||||
}
|
||||
.map-container {
|
||||
position: relative;
|
||||
}
|
||||
.map-box,
|
||||
.map-container {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
.map-control {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 10px;
|
||||
display: flex;
|
||||
}
|
||||
.map-control img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
|
@ -17,7 +17,7 @@
|
|||
</a-steps>
|
||||
</div>
|
||||
<div class="case-view_content">
|
||||
<div class="file-box w-1/2 xl:w-1/2" v-if="caseHandleInfo">
|
||||
<div :class="props.mapShow ? 'file-box w-1/2 xl:w-1/2' : 'file-all'" v-if="caseHandleInfo">
|
||||
<CollapseContainer
|
||||
title="【案件下发信息】"
|
||||
:canExpan="false"
|
||||
|
|
@ -138,7 +138,7 @@
|
|||
</a-descriptions>
|
||||
</CollapseContainer>
|
||||
</div>
|
||||
<CollapseContainer title="地图位置" :canExpan="false" class="map-box ml-1 w-1/2 xl:w-1/2">
|
||||
<CollapseContainer v-if="props.mapShow" title="地图位置" :canExpan="false" class="map_box ml-1 w-1/2 xl:w-1/2">
|
||||
<MapDetail :ruleForm="detailData" :isOnce="true"></MapDetail>
|
||||
</CollapseContainer>
|
||||
</div>
|
||||
|
|
@ -172,6 +172,12 @@
|
|||
});
|
||||
const props = defineProps({
|
||||
caseId: String,
|
||||
mapShow: {
|
||||
type: Boolean,
|
||||
default: () => {
|
||||
return true ;
|
||||
},
|
||||
},
|
||||
});
|
||||
console.log(props);
|
||||
watch(
|
||||
|
|
@ -430,11 +436,15 @@
|
|||
display: flex;
|
||||
height: 65vh;
|
||||
.file-box {
|
||||
overflow: auto;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.file-all{
|
||||
overflow-y: auto;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
}
|
||||
.map-box {
|
||||
.map_box {
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -15,11 +15,11 @@ export interface caseDetailObj {
|
|||
remark?: string;
|
||||
case_description?: string;
|
||||
}
|
||||
export interface infoObj{
|
||||
export interface infoObj {
|
||||
createusername?: string;
|
||||
createtime?:string;
|
||||
verifystatusname?:string;
|
||||
measure_name?:string;
|
||||
createtime?: string;
|
||||
verifystatusname?: string;
|
||||
measure_name?: string;
|
||||
result_name?: string;
|
||||
contacts_people?: string;
|
||||
contacts_phone?: string;
|
||||
|
|
@ -43,9 +43,20 @@ export interface infoObj{
|
|||
evidence_file_indate?: string;
|
||||
illegal_contact_idcard?: string;
|
||||
registr_number?: string;
|
||||
procedure_indate?:string;
|
||||
procedure_indate?: string;
|
||||
}
|
||||
export interface caseHandleInfoObj {
|
||||
info:infoObj
|
||||
info: infoObj;
|
||||
is_illegal?: string;
|
||||
}
|
||||
}
|
||||
export interface ListItem {
|
||||
title: string;
|
||||
icon: string;
|
||||
color?: string;
|
||||
}
|
||||
|
||||
export interface TabItem {
|
||||
key: string;
|
||||
name: string;
|
||||
component: string;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@
|
|||
import { reactive, watch, ref } from 'vue';
|
||||
import { ImagePreview } from '@/components/Preview';
|
||||
import { DetailModel, caseDetailObj } from '../model';
|
||||
|
||||
const labelStyle = ref({
|
||||
width: '100px',
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class="w-full">
|
||||
<MapboxMaps :mapOptions="mapOptions" @map-on-load="mapOnLoad" />
|
||||
<MapboxMaps :mapOptions="mapOptions" :control="[]" @map-on-load="mapOnLoad" />
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
|
|
@ -8,6 +8,7 @@
|
|||
import { ref, watch } from 'vue';
|
||||
import MapboxMaps from '@/components/MapboxMaps/index.vue';
|
||||
import { getDroneGeoJson } from '@/api/monitor/index';
|
||||
|
||||
const detailMap = ref();
|
||||
const props = defineProps({
|
||||
ruleForm: {
|
||||
|
|
@ -199,7 +200,6 @@
|
|||
</script>
|
||||
<style scoped lang="less">
|
||||
.w-full {
|
||||
width: 100%;
|
||||
height: 50vh;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -16,7 +16,9 @@ export { default as Evidence } from './caseview/src/evidence.vue';
|
|||
export { default as Investigate } from './caseview/src/investigate.vue';
|
||||
// 【案件办理信息-违法-拟完善手续】
|
||||
export { default as Procedure } from './caseview/src/procedure.vue';
|
||||
|
||||
|
||||
|
||||
|
||||
// 案件判读
|
||||
export { default as Interpret } from './interpretation/src/interpret.vue';
|
||||
// 案件处理
|
||||
export { default as Dispose } from './interpretation/src/dispose.vue';
|
||||
// 案件判读地图
|
||||
export { default as InterpretMap } from './interpretation/src/interpretMap.vue';
|
||||
|
|
|
|||
|
|
@ -0,0 +1,251 @@
|
|||
<template>
|
||||
<div class="interpretation-box">
|
||||
<InterpretMap :interpretData="interpretData" @setArea="setArea"></InterpretMap>
|
||||
<div :class="prefixCls" v-if="disabledType">
|
||||
<div :class="`${prefixCls}__top`">
|
||||
<a-form ref="formRef" :model="listQuery" labelAlign="left">
|
||||
<a-form-item placeholder="状态">
|
||||
<a-select
|
||||
v-model:value="listQuery.is_intact"
|
||||
placeholder="请选择"
|
||||
:options="data.intactDatas"
|
||||
:field-names="{ label: 'itemName', value: 'itemValue' }"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item placeholder="办理状态">
|
||||
<a-select
|
||||
v-model:value="listQuery.handle_status_id"
|
||||
placeholder="请选择"
|
||||
:options="data.handleDealOptions"
|
||||
:field-names="{ label: 'itemName', value: 'itemValue' }"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item placeholder="办理状态">
|
||||
<a-tree-select
|
||||
v-model:value="value"
|
||||
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||
:tree-data="data.OrgList"
|
||||
placeholder="查询地区"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-input v-model:value="listQuery.key" placeholder="请输入关键字" />
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-input v-model:value="listQuery.identification_user" placeholder="判读人姓名" />
|
||||
</a-form-item>
|
||||
<a-form-item class="btn_item">
|
||||
<a-button @click="getList">
|
||||
<template #icon><SearchOutlined /></template>
|
||||
</a-button>
|
||||
<a-button>
|
||||
<template #icon><VerticalAlignBottomOutlined /></template>
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
<div :class="`${prefixCls}__content`">
|
||||
<List :pagination="pagination">
|
||||
<template v-for="item in data.dataList" :key="item.id">
|
||||
<List.Item class="list">
|
||||
<List.Item.Meta>
|
||||
<template #avatar>
|
||||
<a-image
|
||||
:width="60"
|
||||
src="https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png"
|
||||
/>
|
||||
</template>
|
||||
<template #title>
|
||||
<span>{{ item.case_description }}</span>
|
||||
</template>
|
||||
<template #description>
|
||||
<div class="description-box">
|
||||
<div class="description">
|
||||
<span>{{ item.streetname }} {{ item.communityname }}</span>
|
||||
|
||||
<span style="float: right">{{ item.createtime }}</span>
|
||||
</div>
|
||||
<div class="description">
|
||||
{{ item.identification_user }}
|
||||
</div>
|
||||
<div class="extra">
|
||||
<a-button type="primary" @click="interpretBnt(item)">操作</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</List.Item.Meta>
|
||||
</List.Item>
|
||||
</template>
|
||||
</List>
|
||||
</div>
|
||||
</div>
|
||||
<div class="case_info" v-else>
|
||||
<CollapseContainer title="案件信息" :canExpan="false">
|
||||
<template #action>
|
||||
<div class="case_close" @click="changeType">
|
||||
<CloseOutlined />
|
||||
</div>
|
||||
</template>
|
||||
<a-tabs v-model:activeKey="activeKey">
|
||||
<a-tab-pane key="1" tab="案件判读">
|
||||
<Interpret :interpretData="interpretData"></Interpret>
|
||||
</a-tab-pane>
|
||||
<a-tab-pane key="2" tab="案件处理">
|
||||
<Dispose :id="interpretData.id"></Dispose>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</CollapseContainer>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onMounted } from 'vue';
|
||||
import { Progress, Row, Col, List, Tag, Tabs } from 'ant-design-vue';
|
||||
import Icon from '@/components/Icon/Icon.vue';
|
||||
import { CollapseContainer } from '@/components/Container';
|
||||
import { SearchOutlined } from '@ant-design/icons-vue';
|
||||
import { VerticalAlignBottomOutlined, CloseOutlined } from '@ant-design/icons-vue';
|
||||
import { BasicForm } from '@/components/Form';
|
||||
import MapboxMaps from '@/components/MapboxMaps/index.vue';
|
||||
import { getCaseInfoList } from '@/api/monitor/index';
|
||||
import { Interpret, Dispose, InterpretMap } from '../index';
|
||||
const disabledType = ref(true);
|
||||
const prefixCls = 'list-basic';
|
||||
const activeKey = ref('1');
|
||||
const interpretData = ref({});
|
||||
const pagination = ref({
|
||||
onChange: (page: number) => {
|
||||
console.log(page);
|
||||
listQuery.value.page = page;
|
||||
getList();
|
||||
},
|
||||
pageSize: 5,
|
||||
total: 0,
|
||||
});
|
||||
const listQuery = ref({
|
||||
page: 1,
|
||||
limit: 5,
|
||||
is_intact: 0,
|
||||
});
|
||||
const data = reactive({
|
||||
OrgList: [],
|
||||
handleDealOptions: [],
|
||||
intactDatas: [],
|
||||
dataList: [],
|
||||
});
|
||||
|
||||
const mapOptions = {
|
||||
center: [117.84714891969796, 35.22152309532066],
|
||||
zoom: 10,
|
||||
};
|
||||
const detailMap = ref();
|
||||
const mapBox = ref();
|
||||
const mapOnLoad = (map) => {
|
||||
mapBox.value = map;
|
||||
// 测试地址
|
||||
const testSource =
|
||||
'http://123.132.248.154:9205/geoserver/gwc/service/tms/1.0.0/TEST_WORK_SPACE%3Alindi@EPSG:900913@pbf/{z}/{x}/{y}.pbf';
|
||||
map.U.addVector('name', testSource);
|
||||
map.U.addLineLayer('ffff', {
|
||||
source: 'name',
|
||||
'source-layer': 'lindi',
|
||||
});
|
||||
detailMap.value = map;
|
||||
};
|
||||
async function getList() {
|
||||
const obj = await getCaseInfoList(listQuery.value);
|
||||
console.log(obj);
|
||||
data.dataList = obj.items;
|
||||
pagination.value.total = obj.total;
|
||||
}
|
||||
function changeType() {
|
||||
disabledType.value = true;
|
||||
}
|
||||
function interpretBnt(item) {
|
||||
disabledType.value = false;
|
||||
console.log(item);
|
||||
interpretData.value = item;
|
||||
}
|
||||
function setArea(area) {
|
||||
interpretData.value.area = area;
|
||||
}
|
||||
onMounted(() => {
|
||||
getList();
|
||||
});
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
.w-full {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
height: 90vh;
|
||||
}
|
||||
.case_info {
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
left: 25px;
|
||||
width: 40%;
|
||||
height: 87vh;
|
||||
.vben-collapse-container {
|
||||
height: 100%;
|
||||
}
|
||||
.case_close {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.list-basic {
|
||||
position: absolute;
|
||||
top: 12px;
|
||||
left: 25px;
|
||||
width: 30%;
|
||||
height: 90vh;
|
||||
&__top {
|
||||
padding: 10px;
|
||||
background-color: @component-background;
|
||||
text-align: center;
|
||||
height: 10vh;
|
||||
.clear {
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
||||
&__content {
|
||||
height: 76vh;
|
||||
overflow: auto;
|
||||
margin-top: 12px;
|
||||
padding: 10px 0;
|
||||
background-color: @component-background;
|
||||
|
||||
.list {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.icon {
|
||||
font-size: 40px !important;
|
||||
}
|
||||
|
||||
.extra {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
.description-box {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
}
|
||||
::v-deep .ant-form {
|
||||
.ant-form-item {
|
||||
float: left;
|
||||
margin-bottom: 4px;
|
||||
margin-left: 4px;
|
||||
width: 30%;
|
||||
button {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,382 @@
|
|||
<template>
|
||||
<div>
|
||||
<CollapseContainer title="【案件核查信息】" :canExpan="false">
|
||||
<a-descriptions bordered :column="1" size="small" :labelStyle="labelStyle">
|
||||
<a-descriptions-item label="核查人">{{
|
||||
caseHandlingData.createusername
|
||||
}}</a-descriptions-item>
|
||||
<a-descriptions-item label="核查时间">
|
||||
{{ caseHandlingData.createtime }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="是否违法">
|
||||
<span v-if="illegal == 0">合法</span>
|
||||
<span v-else-if="illegal == 1">违法</span>
|
||||
<span v-else-if="illegal == 2">伪变化</span>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="现场照片">
|
||||
<div>
|
||||
<ImagePreview :imageList="imageList" />
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="现场视频">
|
||||
<div v-if="playerOptions.length > 0">
|
||||
<video-player
|
||||
class="video-player vjs-custom-skin"
|
||||
v-for="(item, index) in playerOptions"
|
||||
:key="index"
|
||||
ref="videoPlayer"
|
||||
:playsinline="true"
|
||||
:options="item"
|
||||
style="width: 200px"
|
||||
></video-player>
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
|
||||
<a-descriptions-item label="处理措施" v-if="illegal == 1">
|
||||
{{ caseHandlingData.createtime }}
|
||||
</a-descriptions-item>
|
||||
|
||||
<template v-if="illegal == 0">
|
||||
<a-descriptions-item label="项目名称">
|
||||
{{ caseHandlingData.result_name }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="建设情况">
|
||||
{{ caseHandlingData.actual_scene_case }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="建筑结构">
|
||||
{{ caseHandlingData.build_structure }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="实际用途">
|
||||
{{ caseHandlingData.actual_use_to }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="当事人">
|
||||
{{ caseHandlingData.illegal_contact }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="当事人电话">
|
||||
{{ caseHandlingData.illegal_contact_phone }}
|
||||
</a-descriptions-item>
|
||||
</template>
|
||||
</a-descriptions>
|
||||
</CollapseContainer>
|
||||
<CollapseContainer title="【案件办理信息-合法】" :canExpan="false" v-if="illegal == 0">
|
||||
<a-descriptions-item label="批准文件名称">
|
||||
{{ caseHandlingData.evidence_file_name }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="批准文件编号">
|
||||
{{ caseHandlingData.evidence_file_number }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="批准文件有效期">
|
||||
{{ caseHandlingData.evidence_file_indate }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="合法批准文件">
|
||||
<div>
|
||||
<ImagePreview :imageList="evidenceFileList" />
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="勘测定界图">
|
||||
<div>
|
||||
<ImagePreview :imageList="boundaryImageList" />
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="是否超范围">
|
||||
{{ caseHandlingData.is_out_boundary == 1 ? '是' : '否' }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="是否超层">
|
||||
{{ caseHandlingData.is_over_floor == 1 ? '是' : '否' }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="办理人">
|
||||
{{ caseHandlingData.transactor_name }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="办理时间">
|
||||
{{ caseHandlingData.transact_time }}
|
||||
</a-descriptions-item>
|
||||
</CollapseContainer>
|
||||
<CollapseContainer title="【案件办理信息-伪变化】" :canExpan="false" v-if="illegal == 2">
|
||||
<a-descriptions-item label="伪变化原因">
|
||||
{{ caseHandlingData.pseudo_change_reason }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="实际用途">
|
||||
{{ caseHandlingData.actual_use_to }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="实际面积">
|
||||
{{ caseHandlingData.actual_area }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="是否有建筑物">
|
||||
{{ caseHandlingData.is_have_build == 1 ? '是' : '否' }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="是否永久性建筑">
|
||||
{{ caseHandlingData.is_have_build == 1 ? '是' : '否' }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="办理人">
|
||||
{{ caseHandlingData.transactor_name }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="办理时间">
|
||||
{{ caseHandlingData.transact_time }}
|
||||
</a-descriptions-item>
|
||||
</CollapseContainer>
|
||||
<CollapseContainer
|
||||
title="【案件办理信息-拟拆除】"
|
||||
:canExpan="false"
|
||||
v-if="illegal == 1 && caseHandlingData.measure_name == '拟拆除'"
|
||||
>
|
||||
<a-descriptions-item label="实际用途">
|
||||
{{ caseHandlingData.actual_use_to }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="当事人">
|
||||
{{ caseHandlingData.illegal_contact }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="当事人电话">
|
||||
{{ caseHandlingData.illegal_contact_phone }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="建设情况">
|
||||
{{ caseHandlingData.is_build_complete == 1 ? '已建成' : '建设中' }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="建筑结构">
|
||||
{{ caseHandlingData.build_structure }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="拆除后照片">
|
||||
<div>
|
||||
<ImagePreview :imageList="afterImageList" />
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="办理人">
|
||||
{{ caseHandlingData.transactor_name }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="办理时间">
|
||||
{{ caseHandlingData.transact_time }}
|
||||
</a-descriptions-item>
|
||||
</CollapseContainer>
|
||||
<CollapseContainer
|
||||
title="【案件办理信息-查处】"
|
||||
:canExpan="false"
|
||||
v-if="illegal == 1 && caseHandlingData.measure_name == '查处'"
|
||||
>
|
||||
<a-descriptions-item label="实际用途">
|
||||
{{ caseHandlingData.actual_use_to }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="当事人">
|
||||
{{ caseHandlingData.illegal_contact }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="当事人电话">
|
||||
{{ caseHandlingData.illegal_contact_phone }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="身份证号码">
|
||||
{{ caseHandlingData.illegal_contact_idcard }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="违法类型">
|
||||
{{ caseHandlingData.illegal_type }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="立案号">
|
||||
{{ caseHandlingData.build_structure }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="处罚通知书">
|
||||
<div>
|
||||
<ImagePreview :imageList="punishImageList" />
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="交款通知书">
|
||||
<div>
|
||||
<ImagePreview :imageList="paymentImagesList" />
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="办理人">
|
||||
{{ caseHandlingData.transactor_name }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="办理时间">
|
||||
{{ caseHandlingData.transact_time }}
|
||||
</a-descriptions-item>
|
||||
</CollapseContainer>
|
||||
<CollapseContainer
|
||||
title="【案件办理信息-拟完善手续】"
|
||||
:canExpan="false"
|
||||
v-if="illegal == 1 && caseHandlingData.measure_name == '拟完善手续'"
|
||||
>
|
||||
<a-descriptions-item label="实际用途">
|
||||
{{ caseHandlingData.actual_use_to }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="当事人">
|
||||
{{ caseHandlingData.illegal_contact }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="当事人电话">
|
||||
{{ caseHandlingData.illegal_contact_phone }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="拟完善手续名称">
|
||||
{{ caseHandlingData.result_name }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="完善手续条件">
|
||||
{{ caseHandlingData.is_have_checkout_condition == 1 ? '是' : '否' }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="违法类型">
|
||||
{{ caseHandlingData.illegal_type }}
|
||||
</a-descriptions-item>
|
||||
|
||||
<a-descriptions-item label="政府同意完善手续证明">
|
||||
<div>
|
||||
<ImagePreview :imageList="agreeImageList" />
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
|
||||
<a-descriptions-item label="办理手续照片">
|
||||
<div>
|
||||
<ImagePreview :imageList="checkoutImageList" />
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="勘测定界图">
|
||||
<div>
|
||||
<ImagePreview :imageList="boundaryImageList" />
|
||||
</div>
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="手续有效期">
|
||||
{{ caseHandlingData.procedure_indate }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="办理人">
|
||||
{{ caseHandlingData.transactor_name }}
|
||||
</a-descriptions-item>
|
||||
<a-descriptions-item label="办理时间">
|
||||
{{ caseHandlingData.transact_time }}
|
||||
</a-descriptions-item>
|
||||
</CollapseContainer>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { reactive, watch, ref , onMounted} from 'vue';
|
||||
import { ImagePreview } from '@/components/Preview';
|
||||
import { CollapseContainer } from '@/components/Container';
|
||||
import { caseHandleInfoObj } from '../model';
|
||||
import { getDroneCaseDeal } from '@/api/monitor/index'
|
||||
const illegal = ref(0);
|
||||
const labelStyle = ref({
|
||||
width: '100px',
|
||||
});
|
||||
const caseHandlingData = ref({});
|
||||
const playerOptions = ref([]);
|
||||
const imageList = ref([
|
||||
'https://picsum.photos/id/66/346/216',
|
||||
'https://picsum.photos/id/67/346/216',
|
||||
'https://picsum.photos/id/68/346/216',
|
||||
]);
|
||||
const evidenceFileList = ref([
|
||||
'https://picsum.photos/id/66/346/216',
|
||||
'https://picsum.photos/id/67/346/216',
|
||||
'https://picsum.photos/id/68/346/216',
|
||||
]);
|
||||
const boundaryImageList = ref([
|
||||
'https://picsum.photos/id/66/346/216',
|
||||
'https://picsum.photos/id/67/346/216',
|
||||
'https://picsum.photos/id/68/346/216',
|
||||
]);
|
||||
const afterImageList = ref([
|
||||
'https://picsum.photos/id/66/346/216',
|
||||
'https://picsum.photos/id/67/346/216',
|
||||
'https://picsum.photos/id/68/346/216',
|
||||
]);
|
||||
const punishImageList = ref([]);
|
||||
const paymentImagesList = ref([]);
|
||||
const agreeImageList = ref([]);
|
||||
const checkoutImageList = ref([]);
|
||||
|
||||
const props = defineProps({
|
||||
id: String
|
||||
});
|
||||
watch(
|
||||
() => props.id,
|
||||
(newVal, oldVal) => {
|
||||
getCaseHandlingDetail()
|
||||
},
|
||||
);
|
||||
onMounted(() => {
|
||||
getCaseHandlingDetail();
|
||||
});
|
||||
async function getCaseHandlingDetail() {
|
||||
const data = await getDroneCaseDeal({ caseid: props.id });
|
||||
illegal.value = data.is_illegal;
|
||||
caseHandlingData.value = data.info;
|
||||
imageList.value = [];
|
||||
if (data.pic_info_list.length > 0) {
|
||||
data.pic_info_list.forEach((item) => {
|
||||
item.s_filePath = BASE_IMAGE_URL + '/S_' + item.filePath;
|
||||
item.filePath = BASE_IMAGE_URL + '/' + item.filePath;
|
||||
imageList.value.push(item);
|
||||
});
|
||||
}
|
||||
|
||||
afterImageList.value = [];
|
||||
if (data.after_pic_list.length > 0) {
|
||||
data.after_pic_list.forEach((item) => {
|
||||
item.s_filePath = BASE_IMAGE_URL + '/S_' + item.filePath;
|
||||
item.filePath = BASE_IMAGE_URL + '/' + item.filePath;
|
||||
afterImageList.value.push(item);
|
||||
});
|
||||
}
|
||||
|
||||
// 证明材料
|
||||
evidenceFileList.value = [];
|
||||
if (data.evidence_file_list.length > 0) {
|
||||
data.evidence_file_list.forEach((item) => {
|
||||
item.s_filePath = BASE_IMAGE_URL + '/S_' + item.filePath;
|
||||
item.filePath = BASE_IMAGE_URL + '/' + item.filePath;
|
||||
evidenceFileList.value.push(item);
|
||||
});
|
||||
}
|
||||
// 罚款通知书
|
||||
if (data.punish_pic_list.length > 0) {
|
||||
punishImageList.value = this.handleImageArray(data.punish_pic_list);
|
||||
}
|
||||
// 交款通知单
|
||||
if (data.payment_pic_list.length > 0) {
|
||||
paymentImagesList.value = this.handleImageArray(data.payment_pic_list);
|
||||
}
|
||||
// 政府同意证明
|
||||
if (data.agree_checkout_pic_list.length > 0) {
|
||||
agreeImageList.value = this.handleImageArray(data.agree_checkout_pic_list);
|
||||
}
|
||||
// 办理手续
|
||||
if (data.checkout_pic_list.length > 0) {
|
||||
checkoutImageList.value = this.handleImageArray(data.checkout_pic_list);
|
||||
}
|
||||
|
||||
// 勘测定界照片
|
||||
if (data.boundary_pic_list.length > 0) {
|
||||
boundaryImageList.value = this.handleImageArray(data.boundary_pic_list);
|
||||
}
|
||||
|
||||
playerOptions.value = [];
|
||||
if (data.video_list.length > 0) {
|
||||
data.video_list.forEach((item, index) => {
|
||||
let options = {
|
||||
playbackRates: [0.5, 1.0, 1.5, 2.0], //可选择的播放速度
|
||||
autoplay: false, //如果true,浏览器准备好时开始回放。
|
||||
muted: false, // 默认情况下将会消除任何音频。
|
||||
loop: false, // 视频一结束就重新开始。
|
||||
preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持)
|
||||
language: 'zh-CN',
|
||||
aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3")
|
||||
fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。
|
||||
sources: [
|
||||
{
|
||||
type: '',
|
||||
src: BASE_IMAGE_URL + '/' + item, //url地址
|
||||
},
|
||||
],
|
||||
poster: '', //你的封面地址
|
||||
// width: document.documentElement.clientWidth,
|
||||
notSupportedMessage: '此视频暂无法播放,请稍后再试', //允许覆盖Video.js无法播放媒体源时显示的默认信息。
|
||||
controlBar: {
|
||||
timeDivider: true, //当前时间和持续时间的分隔符
|
||||
durationDisplay: true, //显示持续时间
|
||||
remainingTimeDisplay: false, //是否显示剩余时间功能
|
||||
fullscreenToggle: true, //全屏按钮
|
||||
},
|
||||
};
|
||||
playerOptions.value.push(options);
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
::v-deep .ant-image .ant-image-img {
|
||||
width: 85px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,177 @@
|
|||
<template>
|
||||
<div class="interpret-box">
|
||||
<a-form
|
||||
ref="formRef"
|
||||
:rules="data.rules"
|
||||
:model="ruleForm"
|
||||
:label-col="labelCol"
|
||||
:wrapper-col="wrapperCol"
|
||||
>
|
||||
<a-form-item label="案件编号">
|
||||
<a-input v-model:value="ruleForm.case_no" disabled />
|
||||
</a-form-item>
|
||||
<a-form-item label="案件详情">
|
||||
<a-input v-model:value="ruleForm.case_description" placeholder="请输入" />
|
||||
</a-form-item>
|
||||
<a-form-item label="违规类型" name="typeid">
|
||||
<a-select
|
||||
v-model:value="ruleForm.typeid"
|
||||
placeholder="请选择"
|
||||
:options="data.violationOptions"
|
||||
:field-names="{ label: 'itemName', value: 'itemValue' }"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="图斑面积">
|
||||
<a-input v-model:value="ruleForm.area" placeholder="请输入" />
|
||||
</a-form-item>
|
||||
<a-form-item label="县/区">
|
||||
<a-select
|
||||
v-model:value="ruleForm.countyid"
|
||||
placeholder="请选择"
|
||||
:options="data.cityDatas"
|
||||
:field-names="{ label: 'itemName', value: 'itemValue' }"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="乡镇/街道">
|
||||
<a-select
|
||||
v-model:value="ruleForm.streetid"
|
||||
placeholder="请选择"
|
||||
:options="data.streetDatas"
|
||||
:field-names="{ label: 'itemName', value: 'itemValue' }"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="社区/村">
|
||||
<a-select
|
||||
v-model:value="ruleForm.communityname"
|
||||
placeholder="请选择"
|
||||
:options="data.communtDatas"
|
||||
:field-names="{ label: 'itemName', value: 'itemValue' }"
|
||||
>
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<a-form-item label="详细地址">
|
||||
<a-input v-model:value="ruleForm.address" placeholder="请输入" />
|
||||
</a-form-item>
|
||||
<a-form-item label="备注">
|
||||
<a-textarea
|
||||
v-model:value="ruleForm.description"
|
||||
placeholder="备注"
|
||||
:auto-size="{ minRows: 1, maxRows: 3 }"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item label="现场照片">
|
||||
<ImageUpload :maxSize="20" v-model:file-list="fileList" :maxNumber="10" @change="handleChange" :api="uploadApi" />
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" setup>
|
||||
import { ImageUpload } from '@/components/Upload';
|
||||
import { ref, reactive , watch} from 'vue';
|
||||
import {uploadApi} from '@/api/sys/upload'
|
||||
const formRef = ref();
|
||||
const labelCol = { span: 7 };
|
||||
const wrapperCol = { span: 17 };
|
||||
const ruleForm = ref({});
|
||||
const fileList = ref([]);
|
||||
const data = reactive({
|
||||
violationOptions: [],
|
||||
communtDatas: [],
|
||||
streetDatas: [],
|
||||
cityDatas: [],
|
||||
rules: {
|
||||
typeid: [{ required: true, message: '请选择违规类型' }],
|
||||
},
|
||||
});
|
||||
|
||||
const props = defineProps({
|
||||
interpretData: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {};
|
||||
},
|
||||
},
|
||||
});
|
||||
console.log(props.interpretData);
|
||||
ruleForm.value = props.interpretData;
|
||||
watch(
|
||||
() => props.interpretData,
|
||||
(newVal, oldVal) => {
|
||||
ruleForm.value = newVal;
|
||||
},
|
||||
);
|
||||
|
||||
const handleChange = (info: UploadChangeParam) => {
|
||||
if (info.file.status === 'uploading') {
|
||||
loading.value = true;
|
||||
return;
|
||||
}
|
||||
if (info.file.status === 'done') {
|
||||
// Get this url from response in real world.
|
||||
getBase64(info.file.originFileObj, (base64Url: string) => {
|
||||
imageUrl.value = base64Url;
|
||||
loading.value = false;
|
||||
});
|
||||
}
|
||||
if (info.file.status === 'error') {
|
||||
loading.value = false;
|
||||
message.error('upload error');
|
||||
}
|
||||
};
|
||||
// 获取违规类型
|
||||
async function getNoBuildStatus() {
|
||||
getMethodCommon('/Categorys/LoadList', { typeid: 'DRONE_CASE_TYPE' }).then((res) => {
|
||||
this.violationOptions = res.result;
|
||||
});
|
||||
}
|
||||
// 获取地区
|
||||
async function getAreasData() {
|
||||
getMethodCommon('/Orgs/LoadOrgList', { name: '费县' }).then((res) => {
|
||||
this.areasDatas = res.result;
|
||||
res.result.forEach((item) => {
|
||||
if (item.parentName == '临沂市') {
|
||||
this.cityDatas.push(item);
|
||||
}
|
||||
if (item.parentId == this.ruleForm.countyid) {
|
||||
this.streetDatas.push(item);
|
||||
}
|
||||
if (item.parentId == this.ruleForm.streetid) {
|
||||
this.communtDatas.push(item);
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
async function validateForm() {
|
||||
let res = await formRef.value
|
||||
.validate()
|
||||
.then((values) => {
|
||||
return true;
|
||||
})
|
||||
.catch((error) => {
|
||||
return false;
|
||||
});
|
||||
return res;
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.interpret-box {
|
||||
width: 100%;
|
||||
.ant-form {
|
||||
padding: 20px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
.ant-form-item {
|
||||
float: left;
|
||||
margin-bottom: 10px;
|
||||
margin-left: 4px;
|
||||
width: 100%;
|
||||
button {
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,103 @@
|
|||
<template>
|
||||
<div class="w-full">
|
||||
<MapboxMaps :mapOptions="mapOptions" @map-on-load="mapOnLoad" :control="mapControl" @map-draw="handlerMapDraw" />
|
||||
</div>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { ref, reactive, onMounted, watch } from 'vue';
|
||||
import rodeImg from '@/assets/images/icon_fly2.png';
|
||||
import MapboxMaps from '@/components/MapboxMaps/index.vue';
|
||||
import { DrawingType } from '@/enums/mapEnum';
|
||||
const mapControl: DrawingType[] = [DrawingType.Polygon];
|
||||
|
||||
const mapOptions = {
|
||||
center: [117.84714891969796, 35.22152309532066],
|
||||
zoom: 10,
|
||||
};
|
||||
const detailMap = ref();
|
||||
const mapBox = ref();
|
||||
const ruleForm = ref({});
|
||||
const props = defineProps({
|
||||
interpretData: {
|
||||
type: Object,
|
||||
default: () => {
|
||||
return {};
|
||||
},
|
||||
},
|
||||
});
|
||||
console.log(props.interpretData);
|
||||
ruleForm.value = props.interpretData;
|
||||
watch(
|
||||
() => props.interpretData,
|
||||
(newVal, oldVal) => {
|
||||
ruleForm.value = newVal;
|
||||
detailMap.value.flyTo({
|
||||
center: [newVal.lng, newVal.lat], // 中心点
|
||||
zoom: 18, // 缩放比例
|
||||
pitch: 0, // 倾斜度
|
||||
});
|
||||
loadDroneMarker(newVal.lng, newVal.lat);
|
||||
},
|
||||
);
|
||||
const mapOnLoad = (map) => {
|
||||
mapBox.value = map;
|
||||
// 测试地址
|
||||
const testSource =
|
||||
'http://123.132.248.154:9205/geoserver/gwc/service/tms/1.0.0/TEST_WORK_SPACE%3Alindi@EPSG:900913@pbf/{z}/{x}/{y}.pbf';
|
||||
map.U.addVector('name', testSource);
|
||||
map.U.addLineLayer('ffff', {
|
||||
source: 'name',
|
||||
'source-layer': 'lindi',
|
||||
});
|
||||
detailMap.value = map;
|
||||
};
|
||||
//地图绘制的回调
|
||||
const handlerMapDraw = (type: string, data: any) => {
|
||||
console.log('data::: ', data);
|
||||
console.log('type::: ', type);
|
||||
};
|
||||
// 案件位置显示无人机图标
|
||||
function loadDroneMarker(lng, lat) {
|
||||
if (detailMap.value.getLayer('cat-on-building')) {
|
||||
detailMap.value.removeLayer('cat-on-building');
|
||||
detailMap.value.removeSource('cat-on-building');
|
||||
detailMap.value.removeImage('cat');
|
||||
}
|
||||
detailMap.value.loadImage(rodeImg, (error, image) => {
|
||||
detailMap.value.addImage('cat', image);
|
||||
detailMap.value.addLayer({
|
||||
id: 'cat-on-building',
|
||||
source: {
|
||||
type: 'geojson',
|
||||
data: {
|
||||
type: 'FeatureCollection',
|
||||
features: [
|
||||
{
|
||||
type: 'Feature',
|
||||
geometry: {
|
||||
type: 'Point',
|
||||
coordinates: [lng, lat],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
},
|
||||
slot: 'top',
|
||||
type: 'symbol',
|
||||
layout: {
|
||||
'icon-image': 'cat',
|
||||
'icon-size': 0.05,
|
||||
'symbol-placement': 'point',
|
||||
'symbol-z-elevate': true,
|
||||
},
|
||||
});
|
||||
});
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
.w-full {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
height: 90vh;
|
||||
}
|
||||
</style>
|
||||
Loading…
Reference in New Issue