diff --git a/package.json b/package.json index 72fd21a..432dd50 100644 --- a/package.json +++ b/package.json @@ -50,12 +50,13 @@ "@wangeditor/editor-for-vue": "5.1.10", "@wecom/jssdk": "^1.3.2", "appsys": "file:", - "axios": "^1.4.0", + "axios": "^1.10.0", "clipboard": "^2.0.11", "compressorjs": "^1.2.1", "dayjs": "^1.11.11", - "echarts": "^5.4.3", + "echarts": "^5.6.0", "element-plus": "^2.3.4", + "element-resize-detector": "^1.2.4", "font-awesome": "^4.7.0", "html2canvas": "^1.4.1", "jquery": "^3.7.1", @@ -74,7 +75,7 @@ "screenfull": "^6.0.0", "sortablejs": "^1.15.2", "spark-md5": "^3.0.2", - "tinymce": "^6.8.1", + "tinymce": "^6.8.6", "ts-md5": "^1.3.1", "uuid": "^9.0.1", "vue": "^3.3.1", diff --git a/src/api/DesignForm/types.ts b/src/api/DesignForm/types.ts index c3aecee..145f3cf 100644 --- a/src/api/DesignForm/types.ts +++ b/src/api/DesignForm/types.ts @@ -142,7 +142,8 @@ export interface formStruct{ previewVisible: boolean; // 预览窗口 designType: any; // 当前页面设计类型,有效值search formDict: any; - formOtherData:formOtherData + formOtherData:formOtherData; + echatsViews:echatsViews[]; } export interface DrawerStruct{ @@ -215,4 +216,29 @@ export interface appSetUpContent{ groupKey:string; appdescribe?:string; } +//图标结构 +export interface echatsViews { + uuid:string; + type:string; + title:string; + y:string[]; + x:string[]; + filter:string[]; + timelength:number; + search:searchInfo; +} +//图标结构搜索条件 +export interface searchInfo{ + state:boolean; + searchBut:string[]; + factor:searchFactor[]; +} +//搜索控件 +export interface searchButConfig{ + searchBut:boolean; + resetBut:boolean; +} +//收缩结构体 +export interface searchFactor{ +} diff --git a/src/api/chart/index.ts b/src/api/chart/index.ts new file mode 100644 index 0000000..0311f5f --- /dev/null +++ b/src/api/chart/index.ts @@ -0,0 +1,25 @@ +import request from '@/utils/request'; +//获取维度及度量字段 +export function dimMeaFormTable(data?: any) { + return request({ + url: "/systemapi/chart/dimMeaFormTable", + method: 'post', + data: data + }); +} +//将图表信息写入数据库 +export function countChartValue(data?: any) { + return request({ + url: "/systemapi/chart/countChartValue", + method: 'post', + data: data + }); +} +//获取图表设定信息 +export function getChartCont(data?: any) { + return request({ + url: "/systemapi/chart/getChartCont", + method: 'post', + data: data + }); +} diff --git a/src/api/chart/type.ts b/src/api/chart/type.ts new file mode 100644 index 0000000..b84d14e --- /dev/null +++ b/src/api/chart/type.ts @@ -0,0 +1,67 @@ +export interface dimMeaInfo { + title:string; + type:number; + field:string; +} + +export interface dimSetInfo{ + title: string; + type: string; + field: string; + options: any, + oldTitle: string; + timeType: string; + sort: number; +} + +export interface maeSetInfo extends dimSetInfo{ + method:number; + format:number; +} + +/** +@ 作者: 秦东 +@ 时间: 2025-07-03 16:46:48 +@ 功能: 过滤器结构体 +*/ +export interface filterInfo { + type:number; //字段类型 1:文本;2:数值;3:时间 + lable:string; //名称 + field:string; //字段 + conditions:string; //文本类型条件值 + method:number; //聚合方式 1:求和;2:平均值;3:计数;4:去重计数;5:最大值;6:求和; + modality:number; //条件形式。 1:单条件;2:或条件;3:且条件 + modalityList:modalityListInfo[]; //条件列表 + startTime:number; //开始时间 + endTime:number; //结束时间 +} + +/** +@ 作者: 秦东 +@ 时间: 2025-07-03 16:52:33 +@ 功能: 过滤数字类型聚合条件列表 +*/ +export interface modalityListInfo{ + equation:number; //表达式。1:等于;2:不等于;3:大于;4:小于;5:大于等于;6:小于等于;7:为空;8:不为空 + value:string; //等式值 +} + +/** +@ 作者: 秦东 +@ 时间: 2025-07-07 14:32:41 +@ 功能: 搜索结构 +*/ +export interface searchInfo{ + lable: string; + type: number; + field: string; + options: any; + oldTitle: string; + timeType: string; + sort: number; + isTime: boolean; + value: string; + startTime: string; + endTime: string; + coor: string; +} diff --git a/src/api/chart/unitData.ts b/src/api/chart/unitData.ts new file mode 100644 index 0000000..95983ee --- /dev/null +++ b/src/api/chart/unitData.ts @@ -0,0 +1,61 @@ +export const matchList = [ + { + label:"求和", + value:1 + }, + { + label:"平均值", + value:2 + }, + { + label:"计数", + value:3 + }, + { + label:"去重计数", + value:4 + }, + { + label:"最大值", + value:5 + }, + { + label:"最小值", + value:6 + } +] +//表达式 +export const expList = [ + { + label:"等于", + value:1 + }, + { + label:"不等于", + value:2 + }, + { + label:"大于", + value:3 + }, + { + label:"小于", + value:4 + }, + { + label:"大于等于", + value:5 + }, + { + label:"小于等于", + value:6 + }, + { + label:"为空", + value:7 + }, + { + label:"不为空", + value:8 + } +] diff --git a/src/assets/icons/bingtu.svg b/src/assets/icons/bingtu.svg new file mode 100644 index 0000000..da5ebbf --- /dev/null +++ b/src/assets/icons/bingtu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/leidatu.svg b/src/assets/icons/leidatu.svg new file mode 100644 index 0000000..6f45f67 --- /dev/null +++ b/src/assets/icons/leidatu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/paiming.svg b/src/assets/icons/paiming.svg new file mode 100644 index 0000000..202e053 --- /dev/null +++ b/src/assets/icons/paiming.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/paiming1.svg b/src/assets/icons/paiming1.svg new file mode 100644 index 0000000..8411f0b --- /dev/null +++ b/src/assets/icons/paiming1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/zhexiantu.svg b/src/assets/icons/zhexiantu.svg new file mode 100644 index 0000000..c14b272 --- /dev/null +++ b/src/assets/icons/zhexiantu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/zhibiao.svg b/src/assets/icons/zhibiao.svg new file mode 100644 index 0000000..a807840 --- /dev/null +++ b/src/assets/icons/zhibiao.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/zhu.svg b/src/assets/icons/zhu.svg new file mode 100644 index 0000000..fb62537 --- /dev/null +++ b/src/assets/icons/zhu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/DesignForm/app/index.vue b/src/components/DesignForm/app/index.vue index 41154c1..302f64a 100644 --- a/src/components/DesignForm/app/index.vue +++ b/src/components/DesignForm/app/index.vue @@ -38,6 +38,7 @@ import { softDeletion, retractRunWorkFlow, recallSendMsg, + recalSendMsg, } from "@/api/taskapi/management"; import { formatNumber } from "@/api/DesignForm/utils"; diff --git a/src/components/DesignForm/dragControlApp.vue b/src/components/DesignForm/dragControlApp.vue index 7720709..18b4577 100644 --- a/src/components/DesignForm/dragControlApp.vue +++ b/src/components/DesignForm/dragControlApp.vue @@ -3,163 +3,162 @@ @ 时间: 2024-05-09 15:12:45 @ 备注: 自定义表单组件页面(App专用) --> - - diff --git a/src/components/DesignForm/dragControlNew.vue b/src/components/DesignForm/dragControlNew.vue index 726cf46..feb95a6 100644 --- a/src/components/DesignForm/dragControlNew.vue +++ b/src/components/DesignForm/dragControlNew.vue @@ -3,100 +3,99 @@ @ 时间: 2024-05-09 10:47:19 @ 备注: 自定义表单组件 --> - - diff --git a/src/components/DesignForm/echarts/index.ts b/src/components/DesignForm/echarts/index.ts new file mode 100644 index 0000000..810bd21 --- /dev/null +++ b/src/components/DesignForm/echarts/index.ts @@ -0,0 +1,99 @@ +//表单组件 +export const echartsUnitList = [ + { + uuid:"", + icon: "bingtu", + type: "pie", + title: "饼图", + widthBox: 0, + y: [], + x: [], + filter: [], + timelength: 1, + search: { + state: false, + searchBut: ['search'], + factor: [], + }, + }, + { + uuid:"", + icon: "zhexiantu", + type: "line", + title: "折线图", + widthBox: 0, + y: [], + x: [], + filter: [], + timelength: 1, + search: { + state: false, + searchBut: ['search'], + factor: [], + }, + }, + { + uuid:"", + icon: "zhibiao", + type: "target", + title: "指标图", + widthBox: 0, + y: [], + x: [], + filter: [], + timelength: 1, + search: { + state: false, + searchBut: ['search'], + factor: [], + }, + }, + { + uuid:"", + icon: "zhu", + type: "bar", + title: "柱图", + widthBox: 0, + y: [], + x: [], + filter: [], + timelength: 1, + search: { + state: false, + searchBut: ['search'], + factor: [], + }, + }, + { + uuid:"", + icon: "paiming1", + type: "barRace", + title: "排行榜", + widthBox: 0, + y: [], + x: [], + filter: [], + timelength: 1, + search: { + state: false, + searchBut: ['search'], + factor: [], + }, + }, + { + uuid:"", + icon: "leidatu", + type: "radar", + title: "雷达图", + widthBox: 0, + y: [], + x: [], + filter: [], + timelength: 1, + search: { + state: false, + searchBut: ['search'], + factor: [], + }, + } +] diff --git a/src/components/DesignForm/public/form/formGroup.vue b/src/components/DesignForm/public/form/formGroup.vue index 5d58591..3ed1597 100644 --- a/src/components/DesignForm/public/form/formGroup.vue +++ b/src/components/DesignForm/public/form/formGroup.vue @@ -52,7 +52,7 @@ watch( () => props.data, (v: FormList[]) => { dataList.value = v; - // console.log("监听表单变化++++++++++>",v) + console.log("监听表单变化++++++++++>", v); }, { deep: true, @@ -142,11 +142,11 @@ const draggableAdd = (evt: any) => { const key = new Date().getTime().toString(); const obj: any = dataList.value[newIndex]; const isNested = evt.target && evt.target.getAttribute("data-type"); // 不能嵌套 - // console.log("设计拖拽事件-----1------->",newIndex) - // console.log("设计拖拽事件-----2------->",key) - // console.log("设计拖拽事件-----3------->",obj) - // console.log("设计拖拽事件-----4------->",isNested) - // console.log("设计拖拽事件-----4------->",dataList.value) + console.log("设计拖拽事件-----1------->", newIndex); + console.log("设计拖拽事件-----2------->", key); + console.log("设计拖拽事件-----3------->", obj); + console.log("设计拖拽事件-----4------->", isNested); + console.log("设计拖拽事件-----4------->", dataList.value); if ( (isNested === "not-nested" && notNested(obj.type)) || ((isNested === "not-table" || isNested === "not-flex") && diff --git a/src/store/DesignForm/designForm.ts b/src/store/DesignForm/designForm.ts index 6af14f9..909ab14 100644 --- a/src/store/DesignForm/designForm.ts +++ b/src/store/DesignForm/designForm.ts @@ -29,3 +29,33 @@ export const useDesignFormStore = defineStore('designForm', { }, } }) + +//图表 +export const useDesignEchartsStore = defineStore('designEcharts', { + state: () => { + return { + controlAttr: {}, + activeKey: '', + columnsCheck: getStorage('echartsColumns', true) || [], // 表格勾选的列 + //type: 1, //当前表单状态 1新增;2查看(表单模式) ;3查看; 4设计 + //isEdit: false, //编辑状态,type=1新增模式下有编辑状态,主要用于控制编辑模式下某些字段的禁用状态,即可新增但不能修改 + //model: {}, // 给form-group提供联动条件设置 + //hideField: [], // 设置了使用v-if隐藏的字段 + } + }, + actions: { + setControlAttr(data: any) { + this.controlAttr = data + }, + setActiveKey(key: string) { + this.activeKey = key + }, + setColumnsCheck(path: string, data: string[]) { + this.columnsCheck[path] = data + setStorage('echartsColumns', this.columnsCheck, 0) + }, + getColumnsCheck(path: string) { + return this.columnsCheck[path] || [] + }, + } +}) diff --git a/src/utils/workflow/const.ts b/src/utils/workflow/const.ts index 8514bcd..0ba376d 100644 --- a/src/utils/workflow/const.ts +++ b/src/utils/workflow/const.ts @@ -3,6 +3,7 @@ */ export let bgColors = ['87, 106, 149', '255, 148, 62', '50, 150, 250','255,102,0','255,255,255'] export let placeholderList = ["发起人", "审核人", "抄送人", "执行人"]; +export let timeSearch = [{value: 1, label: '近一天'},{value: 2, label: '近一周'},{value: 3, label: '近一月'},{value: 4, label: '近三月'},{value: 5, label: '近半年'},{value: 6, label: '近一年'}] export let setTypes = [ {value: 1, label: '指定成员'}, diff --git a/src/views/redirect/index.vue b/src/views/redirect/index.vue deleted file mode 100644 index 47cad96..0000000 --- a/src/views/redirect/index.vue +++ /dev/null @@ -1,15 +0,0 @@ - - - diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/dataBoard.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/dataBoard.vue new file mode 100644 index 0000000..6986644 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/dataBoard.vue @@ -0,0 +1,186 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/bar.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/bar.vue new file mode 100644 index 0000000..40856a4 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/bar.vue @@ -0,0 +1,223 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/barRace.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/barRace.vue new file mode 100644 index 0000000..b288366 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/barRace.vue @@ -0,0 +1,201 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/bar_test.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/bar_test.vue new file mode 100644 index 0000000..ddbe282 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/bar_test.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/line.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/line.vue new file mode 100644 index 0000000..2c9bfb7 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/line.vue @@ -0,0 +1,216 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/pie copy.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/pie copy.vue new file mode 100644 index 0000000..bffeb2f --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/pie copy.vue @@ -0,0 +1,217 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/pie.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/pie.vue new file mode 100644 index 0000000..6e65b7c --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/pie.vue @@ -0,0 +1,216 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/radar.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/radar.vue new file mode 100644 index 0000000..b87a456 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/radar.vue @@ -0,0 +1,222 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/target.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/target.vue new file mode 100644 index 0000000..6ffe143 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/chart/target.vue @@ -0,0 +1,23 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/container.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/container.vue new file mode 100644 index 0000000..98a9f79 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/container.vue @@ -0,0 +1,284 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/left.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/left.vue new file mode 100644 index 0000000..7453255 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/left.vue @@ -0,0 +1,105 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/right.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/right.vue new file mode 100644 index 0000000..65614b0 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/right.vue @@ -0,0 +1,396 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/dimMea.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/dimMea.vue new file mode 100644 index 0000000..78de78b --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/dimMea.vue @@ -0,0 +1,731 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/dimension.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/dimension.vue new file mode 100644 index 0000000..c7e00b5 --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/dimension.vue @@ -0,0 +1,106 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/filterPage.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/filterPage.vue new file mode 100644 index 0000000..0cf476e --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/filterPage.vue @@ -0,0 +1,255 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/measurement.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/measurement.vue new file mode 100644 index 0000000..b29ef4c --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/measurement.vue @@ -0,0 +1,131 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/searchPage.vue b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/searchPage.vue new file mode 100644 index 0000000..9ee106e --- /dev/null +++ b/src/views/sysworkflow/lowcodepage/appPage/appPageForm/echatesUnit/winBox/searchPage.vue @@ -0,0 +1,99 @@ + + + + diff --git a/src/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue b/src/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue index 8eb68f7..d237f3c 100644 --- a/src/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue +++ b/src/views/sysworkflow/lowcodepage/appPage/createAppFormPage.vue @@ -14,6 +14,7 @@ import PageFlow from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/pageFl import PageList from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/pageList.vue"; import PrintSetupPage from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/printSetupPage.vue"; import AiPage from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/aiPage.vue"; +import DataBpard from "@/views/sysworkflow/lowcodepage/appPage/appPageForm/dataBoard.vue"; const props = defineProps({ appCont: { @@ -116,6 +117,7 @@ const state = reactive({ source: route.source || "", formName: formConfigCont.formName, }, + echatsViews: [], }); const appPageInfo = ref(); /** @@ -222,7 +224,7 @@ onBeforeMount(() => { - + @@ -265,7 +267,7 @@ onBeforeMount(() => { v-model:app-page-key="appPageKey" v-model:form-version="formVersion" /> - { + const env = loadEnv(mode, process.cwd()); + return { + resolve: { + alias: { + "@": pathSrc + } + }, + css: { + // CSS 预处理器 + preprocessorOptions: { + //define global scss variable + scss: { + javascriptEnabled: true, + additionalData: ` + @use "@/styles/variables.scss" as *; + ` + } + } + }, + server: { + host: "0.0.0.0", + port: Number(env.VITE_APP_PORT), + open: true, + // 运行是否自动打开浏览器 + proxy: { + // 反向代理解决跨域 + [env.VITE_APP_BASE_API]: { + target: env.VITE_APP_BASE_URL, + // 线上接口地址 + // target: "http://vapi.youlai.tech", // 线上接口地址 + // target: 'http://localhost:8989', // 本地接口地址 , 后端工程仓库地址:https://gitee.com/youlaiorg/youlai-boot + changeOrigin: true, + rewrite: (path2) => path2.replace(new RegExp("^" + env.VITE_APP_BASE_API), "") + // 替换 /dev-api 为 target 接口地址 + } + // '/dev-api/kpiapi': { + // target: 'http://127.0.0.1:6666', + // changeOrigin: true, + // rewrite: (path) => + // path.replace(new RegExp("^" + '/dev-api/kpiapi'), ""), + // }, + // '/dev-api/systemapi': { + // target: 'http://127.0.0.1:17777', + // changeOrigin: true, + // rewrite: (path) => + // path.replace(new RegExp("^" + '/dev-api/systemapi'), ""), + // }, + // '/dev-api/hrapi': { + // target: 'http://127.0.0.1:39168', + // changeOrigin: true, + // rewrite: (path) => + // path.replace(new RegExp("^" + '/dev-api/hrapi'), ""), + // }, + // '/dev-api/api': { + // target: 'http://127.0.0.1:8888', + // changeOrigin: true, + // rewrite: (path) => + // path.replace(new RegExp("^" + '/dev-api/api'), ""), + // }, + // '/dev-api/javasys': { + // target: 'http://172.20.2.87:8111', + // changeOrigin: true, + // rewrite: (path) => + // path.replace(new RegExp("^" + '/dev-api/javasys'), ""), + // }, + // '/dev-api/javasys/lowCode ': { + // target: 'http://172.20.2.87:8112', + // changeOrigin: true, + // rewrite: (path) => + // path.replace(new RegExp("^" + '/dev-api/javasys/lowCode '), ""), + // } + } + }, + plugins: [ + vue(), + UnoCSS({ + /* options */ + }), + AutoImport({ + // 自动导入 Vue 相关函数,如:ref, reactive, toRef 等 + imports: ["vue", "@vueuse/core"], + //ignore: ['h'], // 自动添加 import { h } from '/node_modules/.vite/deps/vue.js 代码问题处理 + eslintrc: { + enabled: false, + // Default `false` + filepath: "./.eslintrc-auto-import.json", + // Default `./.eslintrc-auto-import.json` + globalsPropValue: true + // Default `true`, (true | false | 'readonly' | 'readable' | 'writable' | 'writeable') + }, + resolvers: [ + // 自动导入 Element Plus 相关函数,如:ElMessage, ElMessageBox... (带样式) + ElementPlusResolver(), + // 自动导入图标组件 + IconsResolver({}) + ], + vueTemplate: true, + // 是否在 vue 模板中自动导入 + dts: path.resolve(pathSrc, "types", "auto-imports.d.ts") + // 自动导入组件类型声明文件位置,默认根目录; false 关闭自动生成 + }), + Components({ + resolvers: [ + // 自动注册图标组件 + IconsResolver({ + enabledCollections: ["ep"] + //@iconify-json/ep 是 Element Plus 的图标库 + }), + // 自动导入 Element Plus 组件 + ElementPlusResolver() + ], + dts: path.resolve(pathSrc, "types", "components.d.ts") + // 自动导入组件类型声明文件位置,默认根目录; false 关闭自动生成 + }), + Icons({ + // 自动安装图标库 + autoInstall: true + }), + createSvgIconsPlugin({ + // 指定需要缓存的图标文件夹 + iconDirs: [path.resolve(pathSrc, "assets/icons")], + // 指定symbolId格式 + symbolId: "icon-[dir]-[name]" + }) + ], + optimizeDeps: { + include: [ + "vue", + "vue-router", + "pinia", + "axios", + "element-plus/es/components/form/style/css", + "element-plus/es/components/form-item/style/css", + "element-plus/es/components/button/style/css", + "element-plus/es/components/input/style/css", + "element-plus/es/components/input-number/style/css", + "element-plus/es/components/switch/style/css", + "element-plus/es/components/upload/style/css", + "element-plus/es/components/menu/style/css", + "element-plus/es/components/col/style/css", + "element-plus/es/components/icon/style/css", + "element-plus/es/components/row/style/css", + "element-plus/es/components/tag/style/css", + "element-plus/es/components/dialog/style/css", + "element-plus/es/components/loading/style/css", + "element-plus/es/components/radio/style/css", + "element-plus/es/components/radio-group/style/css", + "element-plus/es/components/popover/style/css", + "element-plus/es/components/scrollbar/style/css", + "element-plus/es/components/tooltip/style/css", + "element-plus/es/components/dropdown/style/css", + "element-plus/es/components/dropdown-menu/style/css", + "element-plus/es/components/dropdown-item/style/css", + "element-plus/es/components/sub-menu/style/css", + "element-plus/es/components/menu-item/style/css", + "element-plus/es/components/divider/style/css", + "element-plus/es/components/card/style/css", + "element-plus/es/components/link/style/css", + "element-plus/es/components/breadcrumb/style/css", + "element-plus/es/components/breadcrumb-item/style/css", + "element-plus/es/components/table/style/css", + "element-plus/es/components/tree-select/style/css", + "element-plus/es/components/table-column/style/css", + "element-plus/es/components/select/style/css", + "element-plus/es/components/option/style/css", + "element-plus/es/components/pagination/style/css", + "element-plus/es/components/tree/style/css", + "element-plus/es/components/alert/style/css", + "@vueuse/core", + "path-to-regexp", + "echarts", + "@wangeditor/editor", + "@wangeditor/editor-for-vue", + "vue-i18n" + ] + } + }; +}); +export { + vite_config_default as default +}; +//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidml0ZS5jb25maWcudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9kaXJuYW1lID0gXCJFOlxcXFxmX3BhbmdcXFxcb2JqZWN0XFxcXG15X29iamVjdF9odG1sXFxcXFNodXRvbmdJbnRlcmNvbm5lY3RlZENoZW1pY2FsQ2xvdWRQbGF0Zm9ybVwiO2NvbnN0IF9fdml0ZV9pbmplY3RlZF9vcmlnaW5hbF9maWxlbmFtZSA9IFwiRTpcXFxcZl9wYW5nXFxcXG9iamVjdFxcXFxteV9vYmplY3RfaHRtbFxcXFxTaHV0b25nSW50ZXJjb25uZWN0ZWRDaGVtaWNhbENsb3VkUGxhdGZvcm1cXFxcdml0ZS5jb25maWcudHNcIjtjb25zdCBfX3ZpdGVfaW5qZWN0ZWRfb3JpZ2luYWxfaW1wb3J0X21ldGFfdXJsID0gXCJmaWxlOi8vL0U6L2ZfcGFuZy9vYmplY3QvbXlfb2JqZWN0X2h0bWwvU2h1dG9uZ0ludGVyY29ubmVjdGVkQ2hlbWljYWxDbG91ZFBsYXRmb3JtL3ZpdGUuY29uZmlnLnRzXCI7aW1wb3J0IHZ1ZSBmcm9tIFwiQHZpdGVqcy9wbHVnaW4tdnVlXCI7XG5cbmltcG9ydCB7IFVzZXJDb25maWcsIENvbmZpZ0VudiwgbG9hZEVudiwgZGVmaW5lQ29uZmlnIH0gZnJvbSBcInZpdGVcIjtcblxuaW1wb3J0IEF1dG9JbXBvcnQgZnJvbSBcInVucGx1Z2luLWF1dG8taW1wb3J0L3ZpdGVcIjtcbmltcG9ydCBDb21wb25lbnRzIGZyb20gXCJ1bnBsdWdpbi12dWUtY29tcG9uZW50cy92aXRlXCI7XG5pbXBvcnQgeyBFbGVtZW50UGx1c1Jlc29sdmVyIH0gZnJvbSBcInVucGx1Z2luLXZ1ZS1jb21wb25lbnRzL3Jlc29sdmVyc1wiO1xuXG5pbXBvcnQgSWNvbnMgZnJvbSBcInVucGx1Z2luLWljb25zL3ZpdGVcIjtcbmltcG9ydCBJY29uc1Jlc29sdmVyIGZyb20gXCJ1bnBsdWdpbi1pY29ucy9yZXNvbHZlclwiO1xuXG5pbXBvcnQgeyBjcmVhdGVTdmdJY29uc1BsdWdpbiB9IGZyb20gXCJ2aXRlLXBsdWdpbi1zdmctaWNvbnNcIjtcblxuaW1wb3J0IFVub0NTUyBmcm9tIFwidW5vY3NzL3ZpdGVcIjtcblxuaW1wb3J0IHBhdGggZnJvbSBcInBhdGhcIjtcbmNvbnN0IHBhdGhTcmMgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCBcInNyY1wiKTtcblxuZXhwb3J0IGRlZmF1bHQgZGVmaW5lQ29uZmlnKCh7IG1vZGUgfTogQ29uZmlnRW52KTogVXNlckNvbmZpZyA9PiB7XG4gIGNvbnN0IGVudiA9IGxvYWRFbnYobW9kZSwgcHJvY2Vzcy5jd2QoKSk7XG4gIHJldHVybiB7XG4gICAgcmVzb2x2ZToge1xuICAgICAgYWxpYXM6IHtcbiAgICAgICAgXCJAXCI6IHBhdGhTcmMsXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3NzOiB7XG4gICAgICAvLyBDU1MgXHU5ODg0XHU1OTA0XHU3NDA2XHU1NjY4XG4gICAgICBwcmVwcm9jZXNzb3JPcHRpb25zOiB7XG4gICAgICAgIC8vZGVmaW5lIGdsb2JhbCBzY3NzIHZhcmlhYmxlXG4gICAgICAgIHNjc3M6IHtcbiAgICAgICAgICBqYXZhc2NyaXB0RW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBhZGRpdGlvbmFsRGF0YTogYFxuICAgICAgICAgICAgQHVzZSBcIkAvc3R5bGVzL3ZhcmlhYmxlcy5zY3NzXCIgYXMgKjtcbiAgICAgICAgICBgLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHNlcnZlcjoge1xuICAgICAgaG9zdDogXCIwLjAuMC4wXCIsXG4gICAgICBwb3J0OiBOdW1iZXIoZW52LlZJVEVfQVBQX1BPUlQpLFxuICAgICAgb3BlbjogdHJ1ZSwgLy8gXHU4RkQwXHU4ODRDXHU2NjJGXHU1NDI2XHU4MUVBXHU1MkE4XHU2MjUzXHU1RjAwXHU2RDRGXHU4OUM4XHU1NjY4XG4gICAgICBwcm94eToge1xuICAgICAgICAvLyBcdTUzQ0RcdTU0MTFcdTRFRTNcdTc0MDZcdTg5RTNcdTUxQjNcdThERThcdTU3REZcbiAgICAgICAgW2Vudi5WSVRFX0FQUF9CQVNFX0FQSV06IHtcbiAgICAgICAgICB0YXJnZXQ6IGVudi5WSVRFX0FQUF9CQVNFX1VSTCwgLy8gXHU3RUJGXHU0RTBBXHU2M0E1XHU1M0UzXHU1NzMwXHU1NzQwXG4gICAgICAgICAgLy8gdGFyZ2V0OiBcImh0dHA6Ly92YXBpLnlvdWxhaS50ZWNoXCIsIC8vIFx1N0VCRlx1NEUwQVx1NjNBNVx1NTNFM1x1NTczMFx1NTc0MFxuICAgICAgICAgIC8vIHRhcmdldDogJ2h0dHA6Ly9sb2NhbGhvc3Q6ODk4OScsICAvLyBcdTY3MkNcdTU3MzBcdTYzQTVcdTUzRTNcdTU3MzBcdTU3NDAgLCBcdTU0MEVcdTdBRUZcdTVERTVcdTdBMEJcdTRFRDNcdTVFOTNcdTU3MzBcdTU3NDBcdUZGMUFodHRwczovL2dpdGVlLmNvbS95b3VsYWlvcmcveW91bGFpLWJvb3RcbiAgICAgICAgICBjaGFuZ2VPcmlnaW46IHRydWUsXG4gICAgICAgICAgcmV3cml0ZTogKHBhdGgpID0+XG4gICAgICAgICAgICBwYXRoLnJlcGxhY2UobmV3IFJlZ0V4cChcIl5cIiArIGVudi5WSVRFX0FQUF9CQVNFX0FQSSksIFwiXCIpLCAvLyBcdTY2RkZcdTYzNjIgL2Rldi1hcGkgXHU0RTNBIHRhcmdldCBcdTYzQTVcdTUzRTNcdTU3MzBcdTU3NDBcbiAgICAgICAgfSxcbiAgICAgICAgLy8gJy9kZXYtYXBpL2twaWFwaSc6IHtcbiAgICAgICAgLy8gICB0YXJnZXQ6ICdodHRwOi8vMTI3LjAuMC4xOjY2NjYnLFxuICAgICAgICAvLyAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgLy8gICByZXdyaXRlOiAocGF0aCkgPT5cbiAgICAgICAgLy8gICAgIHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKFwiXlwiICsgJy9kZXYtYXBpL2twaWFwaScpLCBcIlwiKSxcbiAgICAgICAgLy8gfSxcblxuICAgICAgICAvLyAnL2Rldi1hcGkvc3lzdGVtYXBpJzoge1xuICAgICAgICAvLyAgIHRhcmdldDogJ2h0dHA6Ly8xMjcuMC4wLjE6MTc3NzcnLFxuICAgICAgICAvLyAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgLy8gICByZXdyaXRlOiAocGF0aCkgPT5cbiAgICAgICAgLy8gICAgIHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKFwiXlwiICsgJy9kZXYtYXBpL3N5c3RlbWFwaScpLCBcIlwiKSxcbiAgICAgICAgLy8gfSxcbiAgICAgICAgLy8gJy9kZXYtYXBpL2hyYXBpJzoge1xuICAgICAgICAvLyAgIHRhcmdldDogJ2h0dHA6Ly8xMjcuMC4wLjE6MzkxNjgnLFxuICAgICAgICAvLyAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgLy8gICByZXdyaXRlOiAocGF0aCkgPT5cbiAgICAgICAgLy8gICAgIHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKFwiXlwiICsgJy9kZXYtYXBpL2hyYXBpJyksIFwiXCIpLFxuICAgICAgICAvLyB9LFxuICAgICAgICAvLyAnL2Rldi1hcGkvYXBpJzoge1xuICAgICAgICAvLyAgIHRhcmdldDogJ2h0dHA6Ly8xMjcuMC4wLjE6ODg4OCcsXG4gICAgICAgIC8vICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuICAgICAgICAvLyAgIHJld3JpdGU6IChwYXRoKSA9PlxuICAgICAgICAvLyAgICAgcGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoXCJeXCIgKyAnL2Rldi1hcGkvYXBpJyksIFwiXCIpLFxuICAgICAgICAvLyB9LFxuICAgICAgICAvLyAnL2Rldi1hcGkvamF2YXN5cyc6IHtcbiAgICAgICAgLy8gICB0YXJnZXQ6ICdodHRwOi8vMTcyLjIwLjIuODc6ODExMScsXG4gICAgICAgIC8vICAgY2hhbmdlT3JpZ2luOiB0cnVlLFxuICAgICAgICAvLyAgIHJld3JpdGU6IChwYXRoKSA9PlxuICAgICAgICAvLyAgICAgcGF0aC5yZXBsYWNlKG5ldyBSZWdFeHAoXCJeXCIgKyAnL2Rldi1hcGkvamF2YXN5cycpLCBcIlwiKSxcbiAgICAgICAgLy8gfSxcbiAgICAgICAgLy8gJy9kZXYtYXBpL2phdmFzeXMvbG93Q29kZSAnOiB7XG4gICAgICAgIC8vICAgdGFyZ2V0OiAnaHR0cDovLzE3Mi4yMC4yLjg3OjgxMTInLFxuICAgICAgICAvLyAgIGNoYW5nZU9yaWdpbjogdHJ1ZSxcbiAgICAgICAgLy8gICByZXdyaXRlOiAocGF0aCkgPT5cbiAgICAgICAgLy8gICAgIHBhdGgucmVwbGFjZShuZXcgUmVnRXhwKFwiXlwiICsgJy9kZXYtYXBpL2phdmFzeXMvbG93Q29kZSAnKSwgXCJcIiksXG4gICAgICAgIC8vIH1cbiAgICAgIH0sXG4gICAgfSxcblxuICAgIHBsdWdpbnM6IFtcblxuICAgICAgdnVlKCksXG4gICAgICBVbm9DU1Moe1xuICAgICAgICAvKiBvcHRpb25zICovXG4gICAgICB9KSxcbiAgICAgIEF1dG9JbXBvcnQoe1xuICAgICAgICAvLyBcdTgxRUFcdTUyQThcdTVCRkNcdTUxNjUgVnVlIFx1NzZGOFx1NTE3M1x1NTFGRFx1NjU3MFx1RkYwQ1x1NTk4Mlx1RkYxQXJlZiwgcmVhY3RpdmUsIHRvUmVmIFx1N0I0OVxuICAgICAgICBpbXBvcnRzOiBbXCJ2dWVcIiwgXCJAdnVldXNlL2NvcmVcIl0sXG4gICAgICAgIC8vaWdub3JlOiBbJ2gnXSwgLy8gXHU4MUVBXHU1MkE4XHU2REZCXHU1MkEwIGltcG9ydCB7IGggfSBmcm9tICcvbm9kZV9tb2R1bGVzLy52aXRlL2RlcHMvdnVlLmpzIFx1NEVFM1x1NzgwMVx1OTVFRVx1OTg5OFx1NTkwNFx1NzQwNlxuICAgICAgICBlc2xpbnRyYzoge1xuICAgICAgICAgIGVuYWJsZWQ6IGZhbHNlLCAvLyAgRGVmYXVsdCBgZmFsc2VgXG4gICAgICAgICAgZmlsZXBhdGg6IFwiLi8uZXNsaW50cmMtYXV0by1pbXBvcnQuanNvblwiLCAvLyBEZWZhdWx0IGAuLy5lc2xpbnRyYy1hdXRvLWltcG9ydC5qc29uYFxuICAgICAgICAgIGdsb2JhbHNQcm9wVmFsdWU6IHRydWUsIC8vIERlZmF1bHQgYHRydWVgLCAodHJ1ZSB8IGZhbHNlIHwgJ3JlYWRvbmx5JyB8ICdyZWFkYWJsZScgfCAnd3JpdGFibGUnIHwgJ3dyaXRlYWJsZScpXG4gICAgICAgIH0sXG4gICAgICAgIHJlc29sdmVyczogW1xuICAgICAgICAgIC8vIFx1ODFFQVx1NTJBOFx1NUJGQ1x1NTE2NSBFbGVtZW50IFBsdXMgXHU3NkY4XHU1MTczXHU1MUZEXHU2NTcwXHVGRjBDXHU1OTgyXHVGRjFBRWxNZXNzYWdlLCBFbE1lc3NhZ2VCb3guLi4gKFx1NUUyNlx1NjgzN1x1NUYwRilcbiAgICAgICAgICBFbGVtZW50UGx1c1Jlc29sdmVyKCksXG4gICAgICAgICAgLy8gXHU4MUVBXHU1MkE4XHU1QkZDXHU1MTY1XHU1NkZFXHU2ODA3XHU3RUM0XHU0RUY2XG4gICAgICAgICAgSWNvbnNSZXNvbHZlcih7fSksXG4gICAgICAgIF0sXG4gICAgICAgIHZ1ZVRlbXBsYXRlOiB0cnVlLCAvLyBcdTY2MkZcdTU0MjZcdTU3MjggdnVlIFx1NkEyMVx1Njc3Rlx1NEUyRFx1ODFFQVx1NTJBOFx1NUJGQ1x1NTE2NVxuICAgICAgICBkdHM6IHBhdGgucmVzb2x2ZShwYXRoU3JjLCBcInR5cGVzXCIsIFwiYXV0by1pbXBvcnRzLmQudHNcIiksIC8vICBcdTgxRUFcdTUyQThcdTVCRkNcdTUxNjVcdTdFQzRcdTRFRjZcdTdDN0JcdTU3OEJcdTU4RjBcdTY2MEVcdTY1ODdcdTRFRjZcdTRGNERcdTdGNkVcdUZGMENcdTlFRDhcdThCQTRcdTY4MzlcdTc2RUVcdTVGNTU7IGZhbHNlIFx1NTE3M1x1OTVFRFx1ODFFQVx1NTJBOFx1NzUxRlx1NjIxMFxuICAgICAgfSksXG5cbiAgICAgIENvbXBvbmVudHMoe1xuICAgICAgICByZXNvbHZlcnM6IFtcbiAgICAgICAgICAvLyBcdTgxRUFcdTUyQThcdTZDRThcdTUxOENcdTU2RkVcdTY4MDdcdTdFQzRcdTRFRjZcbiAgICAgICAgICBJY29uc1Jlc29sdmVyKHtcbiAgICAgICAgICAgIGVuYWJsZWRDb2xsZWN0aW9uczogW1wiZXBcIl0sIC8vQGljb25pZnktanNvbi9lcCBcdTY2MkYgRWxlbWVudCBQbHVzIFx1NzY4NFx1NTZGRVx1NjgwN1x1NUU5M1xuICAgICAgICAgIH0pLFxuICAgICAgICAgIC8vIFx1ODFFQVx1NTJBOFx1NUJGQ1x1NTE2NSBFbGVtZW50IFBsdXMgXHU3RUM0XHU0RUY2XG4gICAgICAgICAgRWxlbWVudFBsdXNSZXNvbHZlcigpLFxuICAgICAgICBdLFxuICAgICAgICBkdHM6IHBhdGgucmVzb2x2ZShwYXRoU3JjLCBcInR5cGVzXCIsIFwiY29tcG9uZW50cy5kLnRzXCIpLCAvLyAgXHU4MUVBXHU1MkE4XHU1QkZDXHU1MTY1XHU3RUM0XHU0RUY2XHU3QzdCXHU1NzhCXHU1OEYwXHU2NjBFXHU2NTg3XHU0RUY2XHU0RjREXHU3RjZFXHVGRjBDXHU5RUQ4XHU4QkE0XHU2ODM5XHU3NkVFXHU1RjU1OyBmYWxzZSBcdTUxNzNcdTk1RURcdTgxRUFcdTUyQThcdTc1MUZcdTYyMTBcbiAgICAgIH0pLFxuXG4gICAgICBJY29ucyh7XG4gICAgICAgIC8vIFx1ODFFQVx1NTJBOFx1NUI4OVx1ODhDNVx1NTZGRVx1NjgwN1x1NUU5M1xuICAgICAgICBhdXRvSW5zdGFsbDogdHJ1ZSxcbiAgICAgIH0pLFxuXG4gICAgICBjcmVhdGVTdmdJY29uc1BsdWdpbih7XG4gICAgICAgIC8vIFx1NjMwN1x1NUI5QVx1OTcwMFx1ODk4MVx1N0YxM1x1NUI1OFx1NzY4NFx1NTZGRVx1NjgwN1x1NjU4N1x1NEVGNlx1NTkzOVxuICAgICAgICBpY29uRGlyczogW3BhdGgucmVzb2x2ZShwYXRoU3JjLCBcImFzc2V0cy9pY29uc1wiKV0sXG4gICAgICAgIC8vIFx1NjMwN1x1NUI5QXN5bWJvbElkXHU2ODNDXHU1RjBGXG4gICAgICAgIHN5bWJvbElkOiBcImljb24tW2Rpcl0tW25hbWVdXCIsXG4gICAgICB9KSxcbiAgICBdLFxuXG4gICAgb3B0aW1pemVEZXBzOiB7XG4gICAgICBpbmNsdWRlOiBbXG4gICAgICAgIFwidnVlXCIsXG4gICAgICAgIFwidnVlLXJvdXRlclwiLFxuICAgICAgICBcInBpbmlhXCIsXG4gICAgICAgIFwiYXhpb3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9mb3JtL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2Zvcm0taXRlbS9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9idXR0b24vc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvaW5wdXQvc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvaW5wdXQtbnVtYmVyL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3N3aXRjaC9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy91cGxvYWQvc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvbWVudS9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9jb2wvc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvaWNvbi9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9yb3cvc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvdGFnL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2RpYWxvZy9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9sb2FkaW5nL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3JhZGlvL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3JhZGlvLWdyb3VwL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3BvcG92ZXIvc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvc2Nyb2xsYmFyL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3Rvb2x0aXAvc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvZHJvcGRvd24vc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvZHJvcGRvd24tbWVudS9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9kcm9wZG93bi1pdGVtL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3N1Yi1tZW51L3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL21lbnUtaXRlbS9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9kaXZpZGVyL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2NhcmQvc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvbGluay9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9icmVhZGNydW1iL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL2JyZWFkY3J1bWItaXRlbS9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy90YWJsZS9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy90cmVlLXNlbGVjdC9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy90YWJsZS1jb2x1bW4vc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvc2VsZWN0L3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL29wdGlvbi9zdHlsZS9jc3NcIixcbiAgICAgICAgXCJlbGVtZW50LXBsdXMvZXMvY29tcG9uZW50cy9wYWdpbmF0aW9uL3N0eWxlL2Nzc1wiLFxuICAgICAgICBcImVsZW1lbnQtcGx1cy9lcy9jb21wb25lbnRzL3RyZWUvc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiZWxlbWVudC1wbHVzL2VzL2NvbXBvbmVudHMvYWxlcnQvc3R5bGUvY3NzXCIsXG4gICAgICAgIFwiQHZ1ZXVzZS9jb3JlXCIsXG5cbiAgICAgICAgXCJwYXRoLXRvLXJlZ2V4cFwiLFxuICAgICAgICBcImVjaGFydHNcIixcbiAgICAgICAgXCJAd2FuZ2VkaXRvci9lZGl0b3JcIixcbiAgICAgICAgXCJAd2FuZ2VkaXRvci9lZGl0b3ItZm9yLXZ1ZVwiLFxuICAgICAgICBcInZ1ZS1pMThuXCIsXG4gICAgICBdLFxuICAgIH0sXG4gIH07XG59KTtcbiJdLAogICJtYXBwaW5ncyI6ICI7QUFBMFosT0FBTyxTQUFTO0FBRTFhLFNBQWdDLFNBQVMsb0JBQW9CO0FBRTdELE9BQU8sZ0JBQWdCO0FBQ3ZCLE9BQU8sZ0JBQWdCO0FBQ3ZCLFNBQVMsMkJBQTJCO0FBRXBDLE9BQU8sV0FBVztBQUNsQixPQUFPLG1CQUFtQjtBQUUxQixTQUFTLDRCQUE0QjtBQUVyQyxPQUFPLFlBQVk7QUFFbkIsT0FBTyxVQUFVO0FBZmpCLElBQU0sbUNBQW1DO0FBZ0J6QyxJQUFNLFVBQVUsS0FBSyxRQUFRLGtDQUFXLEtBQUs7QUFFN0MsSUFBTyxzQkFBUSxhQUFhLENBQUMsRUFBRSxLQUFLLE1BQTZCO0FBQy9ELFFBQU0sTUFBTSxRQUFRLE1BQU0sUUFBUSxJQUFJLENBQUM7QUFDdkMsU0FBTztBQUFBLElBQ0wsU0FBUztBQUFBLE1BQ1AsT0FBTztBQUFBLFFBQ0wsS0FBSztBQUFBLE1BQ1A7QUFBQSxJQUNGO0FBQUEsSUFDQSxLQUFLO0FBQUE7QUFBQSxNQUVILHFCQUFxQjtBQUFBO0FBQUEsUUFFbkIsTUFBTTtBQUFBLFVBQ0osbUJBQW1CO0FBQUEsVUFDbkIsZ0JBQWdCO0FBQUE7QUFBQTtBQUFBLFFBR2xCO0FBQUEsTUFDRjtBQUFBLElBQ0Y7QUFBQSxJQUNBLFFBQVE7QUFBQSxNQUNOLE1BQU07QUFBQSxNQUNOLE1BQU0sT0FBTyxJQUFJLGFBQWE7QUFBQSxNQUM5QixNQUFNO0FBQUE7QUFBQSxNQUNOLE9BQU87QUFBQTtBQUFBLFFBRUwsQ0FBQyxJQUFJLGlCQUFpQixHQUFHO0FBQUEsVUFDdkIsUUFBUSxJQUFJO0FBQUE7QUFBQTtBQUFBO0FBQUEsVUFHWixjQUFjO0FBQUEsVUFDZCxTQUFTLENBQUNBLFVBQ1JBLE1BQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxJQUFJLGlCQUFpQixHQUFHLEVBQUU7QUFBQTtBQUFBLFFBQzVEO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsTUFzQ0Y7QUFBQSxJQUNGO0FBQUEsSUFFQSxTQUFTO0FBQUEsTUFFUCxJQUFJO0FBQUEsTUFDSixPQUFPO0FBQUE7QUFBQSxNQUVQLENBQUM7QUFBQSxNQUNELFdBQVc7QUFBQTtBQUFBLFFBRVQsU0FBUyxDQUFDLE9BQU8sY0FBYztBQUFBO0FBQUEsUUFFL0IsVUFBVTtBQUFBLFVBQ1IsU0FBUztBQUFBO0FBQUEsVUFDVCxVQUFVO0FBQUE7QUFBQSxVQUNWLGtCQUFrQjtBQUFBO0FBQUEsUUFDcEI7QUFBQSxRQUNBLFdBQVc7QUFBQTtBQUFBLFVBRVQsb0JBQW9CO0FBQUE7QUFBQSxVQUVwQixjQUFjLENBQUMsQ0FBQztBQUFBLFFBQ2xCO0FBQUEsUUFDQSxhQUFhO0FBQUE7QUFBQSxRQUNiLEtBQUssS0FBSyxRQUFRLFNBQVMsU0FBUyxtQkFBbUI7QUFBQTtBQUFBLE1BQ3pELENBQUM7QUFBQSxNQUVELFdBQVc7QUFBQSxRQUNULFdBQVc7QUFBQTtBQUFBLFVBRVQsY0FBYztBQUFBLFlBQ1osb0JBQW9CLENBQUMsSUFBSTtBQUFBO0FBQUEsVUFDM0IsQ0FBQztBQUFBO0FBQUEsVUFFRCxvQkFBb0I7QUFBQSxRQUN0QjtBQUFBLFFBQ0EsS0FBSyxLQUFLLFFBQVEsU0FBUyxTQUFTLGlCQUFpQjtBQUFBO0FBQUEsTUFDdkQsQ0FBQztBQUFBLE1BRUQsTUFBTTtBQUFBO0FBQUEsUUFFSixhQUFhO0FBQUEsTUFDZixDQUFDO0FBQUEsTUFFRCxxQkFBcUI7QUFBQTtBQUFBLFFBRW5CLFVBQVUsQ0FBQyxLQUFLLFFBQVEsU0FBUyxjQUFjLENBQUM7QUFBQTtBQUFBLFFBRWhELFVBQVU7QUFBQSxNQUNaLENBQUM7QUFBQSxJQUNIO0FBQUEsSUFFQSxjQUFjO0FBQUEsTUFDWixTQUFTO0FBQUEsUUFDUDtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFFQTtBQUFBLFFBQ0E7QUFBQSxRQUNBO0FBQUEsUUFDQTtBQUFBLFFBQ0E7QUFBQSxNQUNGO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFDRixDQUFDOyIsCiAgIm5hbWVzIjogWyJwYXRoIl0KfQo=