| | |
| | | }, |
| | | "dependencies": { |
| | | "@element-plus/icons-vue": "2.3.1", |
| | | "@vitejs/plugin-basic-ssl": "^2.1.0", |
| | | "@vueup/vue-quill": "1.2.0", |
| | | "@vueuse/core": "13.3.0", |
| | | "axios": "1.9.0", |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | import { parseStrEmpty } from "@/utils/ruoyi"; |
| | | |
| | | // æ¥è¯¢æºåºå表 |
| | | export function listDock(query) { |
| | | return request({ |
| | | url: '/dock/device/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | import { parseStrEmpty } from "@/utils/ruoyi"; |
| | | |
| | | // æ¥è¯¢æå¡å¨å表 |
| | | export function listServer(query) { |
| | | return request({ |
| | | url: '/uav/server/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // æ¥è¯¢æå¡å¨è¯¦ç» |
| | | export function getServer(id) { |
| | | return request({ |
| | | url: '/uav/server/' + parseStrEmpty(id), |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // æ°å¢æå¡å¨ |
| | | export function addServer(data) { |
| | | return request({ |
| | | url: '/uav/server', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // ä¿®æ¹æå¡å¨ |
| | | export function updateServer(data) { |
| | | return request({ |
| | | url: '/uav/server', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // å 餿å¡å¨ |
| | | export function delServer(userId) { |
| | | return request({ |
| | | url: '/uav/server/' + userId, |
| | | method: 'delete' |
| | | }) |
| | | } |
| | |
| | | <el-table-column |
| | | label="设å¤åå·" |
| | | align="center" |
| | | key="deviceType" |
| | | prop="deviceType" |
| | | v-if="columns.ip.visible" |
| | | key="deviceName" |
| | | prop="deviceName" |
| | | v-if="columns.deviceName.visible" |
| | | /> |
| | | <el-table-column |
| | | label="设å¤SN" |
| | | align="center" |
| | | key="deviceSN" |
| | | prop="deviceSN" |
| | | v-if="columns.ip.visible" |
| | | key="deviceSn" |
| | | prop="deviceSn" |
| | | v-if="columns.deviceSn.visible" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | |
| | | align="center" |
| | | key="deviceName" |
| | | prop="deviceName" |
| | | v-if="columns.port.visible" |
| | | v-if="columns.deviceName.visible" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | |
| | | import { getToken } from "@/utils/auth"; |
| | | import useAppStore from "@/store/modules/app"; |
| | | import { |
| | | fetchCameraList, |
| | | delCamera, |
| | | getCameraDetail, |
| | | updateCamera, |
| | | addCamera, |
| | | fetchChannelList, |
| | | } from "@/api/device/camera"; |
| | | listDock, |
| | | } from "@/api/uav/dock"; |
| | | import { deptTreeSelect } from "@/api/system/user"; |
| | | import { Splitpanes, Pane } from "splitpanes"; |
| | | import "splitpanes/dist/splitpanes.css"; |
| | |
| | | const airPortList = ref([]); |
| | | // åæ¾éä¿¡æ¯ |
| | | const columns = ref({ |
| | | name: { label: "ç¸æºåç§°", visible: true }, |
| | | ip: { label: "IPå°å", visible: true }, |
| | | port: { label: "端å£", visible: true }, |
| | | factory: { label: "åå", visible: true }, |
| | | type: { label: "ç±»å", visible: true }, |
| | | chanNum: { label: "ééæ°", visible: true }, |
| | | chanNum: { label: "ééæ°", visible: true }, |
| | | state: { label: "ç¶æ", visible: true }, |
| | | deviceName: { label: "设å¤åç§°", visible: true }, |
| | | deviceSn: { label: "设å¤SN", visible: true }, |
| | | state: { label: "设å¤ç¶æ", visible: true }, |
| | | }); |
| | | |
| | | const data = reactive({ |
| | |
| | | function getList() { |
| | | loading.value = true; |
| | | |
| | | airPortList.value = [ |
| | | { |
| | | deviceType: "Dock", |
| | | deviceSN: "8888888", |
| | | deviceName: "æºåºåç§°", |
| | | deviceState: "设å¤ç©ºé²ä¸", |
| | | joinTime: "2025-12-01 12:00:00", |
| | | id: 1, |
| | | children: [ |
| | | { |
| | | id: 2, |
| | | deviceType: "M30T", |
| | | deviceSN: "9999", |
| | | deviceName: "é£è¡å¨åç§°", |
| | | deviceState: "è±å
å
³æº", |
| | | joinTime: "", |
| | | }, |
| | | ], |
| | | }, |
| | | ]; |
| | | // airPortList.value = [ |
| | | // { |
| | | // deviceType: "Dock", |
| | | // deviceSn: "8888888", |
| | | // deviceName: "æºåºåç§°", |
| | | // deviceState: "设å¤ç©ºé²ä¸", |
| | | // joinTime: "2025-12-01 12:00:00", |
| | | // id: 1, |
| | | // children: [ |
| | | // { |
| | | // id: 2, |
| | | // deviceType: "M30T", |
| | | // deviceSn: "9999", |
| | | // deviceName: "é£è¡å¨åç§°", |
| | | // deviceState: "è±å
å
³æº", |
| | | // joinTime: "", |
| | | // }, |
| | | // ], |
| | | // }, |
| | | // ]; |
| | | // loading.value = false; |
| | | |
| | | loading.value = false; |
| | | total.value = 1; |
| | | |
| | | // fetchCameraList(proxy.addDateRange(queryParams.value, dateRange.value)).then( |
| | | // (res) => { |
| | | // loading.value = false; |
| | | // serverList.value = res.rows; |
| | | // total.value = res.total; |
| | | // } |
| | | // ); |
| | | listDock(queryParams.value).then( |
| | | (res) => { |
| | | loading.value = false; |
| | | airPortList.value = res.data; |
| | | total.value = res.total; |
| | | } |
| | | ); |
| | | } |
| | | |
| | | /** æ¥è¯¢é¨é¨ä¸ææ ç»æ */ |
| | |
| | | v-show="showSearch" |
| | | label-width="68px" |
| | | > |
| | | <el-form-item label="åç§°" prop="userName"> |
| | | <el-form-item label="åç§°" prop="serverName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | v-model="queryParams.serverName" |
| | | placeholder="请è¾å
¥åç§°" |
| | | clearable |
| | | style="width: 240px" |
| | | @keyup.enter="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æä½ç³»ç»" prop="os"> |
| | | <el-select |
| | | v-model="queryParams.status" |
| | | placeholder="æä½ç³»ç»" |
| | | clearable |
| | | style="width: 240px" |
| | | > |
| | | <el-option |
| | | v-for="dict in sys_os_type" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ç¶æ" prop="status"> |
| | | <el-select |
| | |
| | | placeholder="æå¡å¨ç¶æ" |
| | | clearable |
| | | style="width: 240px" |
| | | @change="handleQuery" |
| | | > |
| | | <el-option |
| | | v-for="dict in sys_servers_status" |
| | |
| | | <el-table-column |
| | | label="ID" |
| | | align="center" |
| | | key="userId" |
| | | prop="userId" |
| | | v-if="columns.userId.visible" |
| | | key="id" |
| | | prop="id" |
| | | v-if="columns.id.visible" |
| | | /> |
| | | <el-table-column |
| | | label="åç§°" |
| | | align="center" |
| | | key="userId" |
| | | prop="userId" |
| | | v-if="columns.userId.visible" |
| | | key="serverName" |
| | | prop="serverName" |
| | | v-if="columns.serverName.visible" |
| | | /> |
| | | <el-table-column |
| | | label="IPå°å" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | v-if="columns.userName.visible" |
| | | key="host" |
| | | prop="host" |
| | | v-if="columns.host.visible" |
| | | /> |
| | | <el-table-column |
| | | label="HTTP端å£" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | v-if="columns.userName.visible" |
| | | key="httpPort" |
| | | prop="httpPort" |
| | | v-if="columns.httpPort.visible" |
| | | /> |
| | | <el-table-column |
| | | label="TCP端å£" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | v-if="columns.userName.visible" |
| | | key="tcpPort" |
| | | prop="tcpPort" |
| | | v-if="columns.tcpPort.visible" |
| | | /> |
| | | <!-- todo ç¶ææ²¡æ --> |
| | | <el-table-column |
| | | label="ç¶æ" |
| | | align="center" |
| | |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="status" label="æä½ç³»ç»"> |
| | | <template #default="scope"> |
| | | <dict-tag :options="sys_os_type" :value="scope.row.status" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="é¨é¨" |
| | | align="center" |
| | |
| | | prop="dept.deptName" |
| | | v-if="columns.deptName.visible" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <!-- <el-table-column |
| | | label="è¿è¡æ¶é´" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns.createTime.visible" |
| | | width="160" |
| | | > |
| | | <template #default="scope"> |
| | | <span>{{ parseTime(scope.row.createTime) }}</span> |
| | | {{ computedDeptName(scope.row.deptId) }} |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | |
| | | ref="userRef" |
| | | label-width="120px" |
| | | > |
| | | <el-form-item label="ID" prop="nickName"> |
| | | <!-- <el-form-item label="ID" prop="id"> |
| | | <el-input v-model="form.id" placeholder="请è¾å
¥æå¡å¨ID" /> |
| | | </el-form-item> --> |
| | | <el-form-item label="æå¡å¨åç§°" prop="serverName"> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | placeholder="请è¾å
¥æå¡å¨ID" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æå¡å¨åç§°" prop="nickName"> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | v-model="form.serverName" |
| | | placeholder="请è¾å
¥æå¡å¨åç§°" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="IPå°å" prop="nickName"> |
| | | <el-form-item label="IPå°å" prop="host"> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | v-model="form.host" |
| | | placeholder="ä¾å¦: 192.168.1.100" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="HTTP端å£" prop="nickName"> |
| | | <el-form-item label="HTTP端å£" prop="httpPort"> |
| | | <el-input |
| | | type="Number" |
| | | v-model="form.nickName" |
| | | v-model="form.httpPort" |
| | | placeholder="请è¾å
¥HTTP端å£" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="TCP端å£" prop="nickName"> |
| | | <el-form-item label="TCP端å£" prop="tcpPort"> |
| | | <el-input |
| | | type="Number" |
| | | v-model="form.nickName" |
| | | v-model="form.tcpPort" |
| | | placeholder="请è¾å
¥TCP端å£" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="æå¡å¨ç±»å" prop="nickName"> |
| | | <el-select v-model="form.sex" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="dict in sys_servers_type" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> --> |
| | | <el-form-item label="ç»åº¦" prop="longitude"> |
| | | <el-input |
| | | type="password" |
| | |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="é«ç¨" prop="location"> |
| | | <el-form-item label="é«ç¨" prop="altitude"> |
| | | <el-input |
| | | type="password" |
| | | v-model="form.altitude" |
| | |
| | | check-strictly |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="å¯é¥ID" prop="location"> |
| | | <el-form-item label="å¯é¥ID" prop="accessKeyId"> |
| | | <el-input |
| | | type="password" |
| | | v-model="form.altitude" |
| | | placeholder="" |
| | | maxlength="30" |
| | | v-model="form.accessKeyId" |
| | | placeholder="请è¾å
¥å¯é¥ID" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="访é®å¯é¥" prop="location"> |
| | | <el-form-item label="访é®å¯é¥" prop="accessKeySecret"> |
| | | <el-input |
| | | type="password" |
| | | v-model="form.altitude" |
| | | placeholder="" |
| | | maxlength="30" |
| | | v-model="form.accessKeySecret" |
| | | placeholder="请è¾å
¥è®¿é®å¯é¥" |
| | | /> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | </template> |
| | | </el-dialog> |
| | | |
| | | <el-dialog |
| | | title="é£è¡å¨å表" |
| | | v-model="aircraftOpen" |
| | | append-to-body |
| | | > |
| | | <el-dialog title="é£è¡å¨å表" v-model="aircraftOpen" append-to-body> |
| | | <el-table :data="aircraftListData"> |
| | | <el-table-column prop="name" label="ééåç§°"> </el-table-column> |
| | | <el-table-column prop="chanNo" label="ééå·"> </el-table-column> |
| | |
| | | import { getToken } from "@/utils/auth"; |
| | | import useAppStore from "@/store/modules/app"; |
| | | import { |
| | | changeUserStatus, |
| | | listUser, |
| | | resetUserPwd, |
| | | delUser, |
| | | getUser, |
| | | updateUser, |
| | | addUser, |
| | | deptTreeSelect, |
| | | } from "@/api/system/user"; |
| | | listServer, |
| | | delServer, |
| | | getServer, |
| | | updateServer, |
| | | addServer, |
| | | } from "@/api/uav/server"; |
| | | import { deptTreeSelect } from "@/api/system/user"; |
| | | import { Splitpanes, Pane } from "splitpanes"; |
| | | import "splitpanes/dist/splitpanes.css"; |
| | | import * as Cesium from "cesium"; |
| | |
| | | const multiple = ref(true); |
| | | const total = ref(0); |
| | | const title = ref(""); |
| | | const dateRange = ref([]); |
| | | const deptName = ref(""); |
| | | const deptOptions = ref(undefined); |
| | | const enabledDeptOptions = ref(undefined); |
| | | const roleOptions = ref([]); |
| | | // åæ¾éä¿¡æ¯ |
| | | const columns = ref({ |
| | | userId: { label: "æå¡å¨ç¼å·", visible: true }, |
| | | userName: { label: "æå¡å¨åç§°", visible: true }, |
| | | nickName: { label: "æå¡å¨æµç§°", visible: true }, |
| | | id: { label: "æå¡å¨ç¼å·", visible: true }, |
| | | serverName: { label: "æå¡å¨åç§°", visible: true }, |
| | | host: { label: "IPå°å", visible: true }, |
| | | httpPort: { label: "HTTP端å£", visible: true }, |
| | | tcpPort: { label: "TCP端å£", visible: true }, |
| | | deptName: { label: "é¨é¨", visible: true }, |
| | | phonenumber: { label: "ææºå·ç ", visible: true }, |
| | | status: { label: "ç¶æ", visible: true }, |
| | | createTime: { label: "å建æ¶é´", visible: true }, |
| | | }); |
| | | |
| | | const data = reactive({ |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | serverName: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | }, |
| | | rules: { |
| | | userName: [ |
| | | { required: true, message: "æå¡å¨åç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "æå¡å¨åç§°é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | id: [{ required: true, message: "请è¾å
¥æå¡å¨ID", trigger: "blur" }], |
| | | serverName: [ |
| | | { required: true, message: "请è¾å
¥æå¡å¨åç§°", trigger: "blur" }, |
| | | ], |
| | | nickName: [ |
| | | { required: true, message: "æå¡å¨æµç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | ], |
| | | password: [ |
| | | { required: true, message: "æå¡å¨å¯ç ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 5, |
| | | max: 20, |
| | | message: "æå¡å¨å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | { |
| | | pattern: /^[^<>"'|\\]+$/, |
| | | message: "ä¸è½å
å«éæ³å符ï¼< > \" ' \\\ |", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | email: [ |
| | | { |
| | | type: "email", |
| | | message: "请è¾å
¥æ£ç¡®çé®ç®±å°å", |
| | | trigger: ["blur", "change"], |
| | | }, |
| | | ], |
| | | phonenumber: [ |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请è¾å
¥æ£ç¡®çææºå·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | host: [{ required: true, message: "请è¾å
¥IPå°å", trigger: "blur" }], |
| | | httpPort: [{ required: true, message: "请è¾å
¥HTTP端å£", trigger: "blur" }], |
| | | tcpPort: [{ required: true, message: "请è¾å
¥TCP端å£", trigger: "blur" }], |
| | | longitude: [{ required: true, message: "è¯·éæ©ç¸æºä½ç½®", trigger: "blur" }], |
| | | latitude: [{ required: true, message: "è¯·éæ©ç¸æºä½ç½®", trigger: "blur" }], |
| | | altitude: [{ required: true, message: "è¯·éæ©ç¸æºä½ç½®", trigger: "blur" }], |
| | | deptId: [{ required: true, message: "è¯·éæ©æå±é¨é¨", trigger: "blur" }], |
| | | accessKeyId: [{ required: true, message: "请è¾å
¥å¯é¥ID", trigger: "blur" }], |
| | | accessKeySecret: [ |
| | | { required: true, message: "请è¾å
¥è®¿é®å¯é¥", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }); |
| | | |
| | | const { queryParams, form, rules } = toRefs(data); |
| | | |
| | | |
| | | const aircraftData = reactive({ |
| | | aircraftQueryParams: { |
| | |
| | | proxy.$refs["deptTreeRef"].filter(val); |
| | | }); |
| | | |
| | | function findNodeByIdRecursive(tree, targetId) { |
| | | for (const node of tree) { |
| | | if (node.id === targetId) { |
| | | return node; |
| | | } |
| | | |
| | | // 妿æåèç¹ï¼é彿¥æ¾ |
| | | if (node.children && node.children.length > 0) { |
| | | const found = findNodeByIdRecursive(node.children, targetId); |
| | | if (found) { |
| | | return found; |
| | | } |
| | | } |
| | | } |
| | | // æªæ¾å°è¿ånull |
| | | return null; |
| | | } |
| | | |
| | | function computedDeptName(deptId) { |
| | | const result1 = findNodeByIdRecursive(deptOptions.value, deptId); |
| | | return result1.label; |
| | | } |
| | | |
| | | /** æ¥è¯¢æå¡å¨å表 */ |
| | | function getList() { |
| | | loading.value = true; |
| | | listUser(proxy.addDateRange(queryParams.value, dateRange.value)).then( |
| | | (res) => { |
| | | loading.value = false; |
| | | serverList.value = res.rows; |
| | | total.value = res.total; |
| | | } |
| | | ); |
| | | listServer(queryParams.value).then((res) => { |
| | | loading.value = false; |
| | | res.rows.forEach((row) => { |
| | | row.ardDroneInfoList = [ |
| | | { |
| | | ardServerInfo: {}, |
| | | boxName: "", |
| | | boxSn: "", |
| | | boxVersion: "", |
| | | createBy: "", |
| | | createTime: "", |
| | | deptId: 0, |
| | | id: "", |
| | | lastTaskId: 0, |
| | | onLine: 0, |
| | | params: {}, |
| | | remark: "", |
| | | serverInfoId: "", |
| | | startTime: "", |
| | | updateBy: "", |
| | | updateTime: "", |
| | | userId: 0, |
| | | videoPort: 0, |
| | | videoServer: "", |
| | | }, |
| | | ]; |
| | | }); |
| | | serverList.value = res.rows; |
| | | total.value = res.total; |
| | | }); |
| | | } |
| | | |
| | | /** æ¥è¯¢é¨é¨ä¸ææ ç»æ */ |
| | |
| | | |
| | | /** éç½®æé®æä½ */ |
| | | function resetQuery() { |
| | | dateRange.value = []; |
| | | proxy.resetForm("queryRef"); |
| | | queryParams.value.deptId = undefined; |
| | | proxy.$refs.deptTreeRef.setCurrentKey(null); |
| | |
| | | proxy.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å 餿å¡å¨ç¼å·ä¸º"' + userIds + '"çæ°æ®é¡¹ï¼') |
| | | .then(function () { |
| | | return delUser(userIds); |
| | | return delServer(userIds); |
| | | }) |
| | | .then(() => { |
| | | getList(); |
| | |
| | | }) |
| | | .catch(() => {}); |
| | | } |
| | | |
| | | |
| | | /** éæ©æ¡æ° */ |
| | | function handleSelectionChange(selection) { |
| | |
| | | |
| | | /** éç½®æä½è¡¨å */ |
| | | function reset() { |
| | | form.value = { |
| | | userId: undefined, |
| | | deptId: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | password: undefined, |
| | | phonenumber: undefined, |
| | | email: undefined, |
| | | sex: undefined, |
| | | status: "0", |
| | | remark: undefined, |
| | | postIds: [], |
| | | roleIds: [], |
| | | }; |
| | | form.value = {}; |
| | | proxy.resetForm("userRef"); |
| | | } |
| | | |
| | |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | function handleUpdate(row) { |
| | | reset(); |
| | | const userId = row.userId || ids.value; |
| | | getUser(userId).then((response) => { |
| | | const id = row.id || ids.value; |
| | | getServer(id).then((response) => { |
| | | form.value = response.data; |
| | | roleOptions.value = response.roles; |
| | | form.value.postIds = response.postIds; |
| | | form.value.roleIds = response.roleIds; |
| | | open.value = true; |
| | | title.value = "ä¿®æ¹æå¡å¨"; |
| | | form.password = ""; |
| | | nextTick(() => { |
| | | useCesium.initCesium(cesiumRef); |
| | | initCesiumClickEvent(); |
| | | |
| | | useCesium.cesium.addPoint( |
| | | new Cesium.Cartesian3.fromDegrees( |
| | | 126.66115696371807, |
| | | 45.736627033013534, |
| | | 200 |
| | | form.value.longitude, |
| | | form.value.latitude, |
| | | form.value.altitude |
| | | ), |
| | | { |
| | | text: "ä½ç½®", |
| | |
| | | function submitForm() { |
| | | proxy.$refs["userRef"].validate((valid) => { |
| | | if (valid) { |
| | | if (form.value.userId != undefined) { |
| | | updateUser(form.value).then((response) => { |
| | | if (form.value.id != undefined) { |
| | | updateServer(form.value).then((response) => { |
| | | proxy.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | open.value = false; |
| | | getList(); |
| | | }); |
| | | } else { |
| | | addUser(form.value).then((response) => { |
| | | addServer(form.value).then((response) => { |
| | | proxy.$modal.msgSuccess("æ°å¢æå"); |
| | | open.value = false; |
| | | getList(); |
| | |
| | | port: 80, |
| | | host: true, |
| | | open: true, |
| | | // https: true, |
| | | proxy: { |
| | | // https://cn.vitejs.dev/config/#server-proxy |
| | | '/dev-api': { |
| | |
| | | import createCompression from './compression' |
| | | import createSetupExtend from './setup-extend' |
| | | import cesium from 'vite-plugin-cesium' |
| | | |
| | | import basicSsl from '@vitejs/plugin-basic-ssl' |
| | | export default function createVitePlugins(viteEnv, isBuild = false) { |
| | | const vitePlugins = [vue(), cesium()] |
| | | vitePlugins.push(createAutoImport()) |
| | | vitePlugins.push(createSetupExtend()) |
| | | vitePlugins.push(createSvgIcon(isBuild)) |
| | | vitePlugins.push(basicSsl()) |
| | | isBuild && vitePlugins.push(...createCompression(viteEnv)) |
| | | return vitePlugins |
| | | } |