修改
This commit is contained in:
parent
1cf66e67ea
commit
2e990cc89e
@ -78,3 +78,31 @@ export function importTaskSql(queryParams: any) {
|
|||||||
headers: { 'Content-Type': 'multipart/form-data' }
|
headers: { 'Content-Type': 'multipart/form-data' }
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
//
|
||||||
|
export function commonItems() {
|
||||||
|
return request({
|
||||||
|
url: '/api/common-items',
|
||||||
|
method: 'get'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export function addCommonItems(queryParams: any) {
|
||||||
|
return request({
|
||||||
|
url: '/api/common-items',
|
||||||
|
method: 'post',
|
||||||
|
data: queryParams,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export function delCommonItems(queryParams: any) {
|
||||||
|
return request({
|
||||||
|
url: '/api/common-items',
|
||||||
|
method: 'delete',
|
||||||
|
data: queryParams,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
export function batchCommonItems(queryParams: any) {
|
||||||
|
return request({
|
||||||
|
url: '/api/common-items/batch',
|
||||||
|
method: 'post',
|
||||||
|
data: queryParams,
|
||||||
|
});
|
||||||
|
}
|
||||||
BIN
web/src/assets/MenuIcon/save.png
Normal file
BIN
web/src/assets/MenuIcon/save.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 280 B |
BIN
web/src/assets/MenuIcon/select.png
Normal file
BIN
web/src/assets/MenuIcon/select.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 560 B |
BIN
web/src/assets/MenuIcon/set.png
Normal file
BIN
web/src/assets/MenuIcon/set.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 665 B |
@ -1,6 +1,6 @@
|
|||||||
import minimatch from "minimatch";
|
import minimatch from "minimatch";
|
||||||
import useRouterData from "@/components/file/useRouterData";
|
import useRouterData from "@/components/file/useRouterData";
|
||||||
import { removeDuplicateSlashes } from "fast-glob/out/managers/patterns";
|
// import { removeDuplicateSlashes } from "fast-glob/out/managers/patterns";
|
||||||
import common from "@/components/file/common";
|
import common from "@/components/file/common";
|
||||||
import { useStorage } from '@vueuse/core';
|
import { useStorage } from '@vueuse/core';
|
||||||
let { storageKey, currentPath } = useRouterData()
|
let { storageKey, currentPath } = useRouterData()
|
||||||
@ -8,7 +8,9 @@ let { storageKey, currentPath } = useRouterData()
|
|||||||
const zfilePasswordCache = useStorage('zfile-pwd-cache', {});
|
const zfilePasswordCache = useStorage('zfile-pwd-cache', {});
|
||||||
|
|
||||||
export default function useFilePwd() {
|
export default function useFilePwd() {
|
||||||
|
function removeDuplicateSlashes(path) {
|
||||||
|
return path.replace(/\\/g, '/').replace(/\/+/g, '/');
|
||||||
|
}
|
||||||
// 向缓存中写入当前路径密码
|
// 向缓存中写入当前路径密码
|
||||||
let putPathPwd = (pattern, password) => {
|
let putPathPwd = (pattern, password) => {
|
||||||
if (pattern) {
|
if (pattern) {
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
|
import JSEncrypt from 'jsencrypt';
|
||||||
// 密钥对生成 http://web.chacuo.net/netrsakeypair
|
// 密钥对生成 http://web.chacuo.net/netrsakeypair
|
||||||
|
|
||||||
const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' +
|
const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' +
|
||||||
|
|||||||
24
web/src/views/testdata/datamanagement/index.vue
vendored
24
web/src/views/testdata/datamanagement/index.vue
vendored
@ -154,7 +154,7 @@ function getProject() {
|
|||||||
setupWebSocket()
|
setupWebSocket()
|
||||||
ws2 = new WebSocket(userStore.WebSocketUrl + '/websocket/' + "id_extract_" + projectId.value)
|
ws2 = new WebSocket(userStore.WebSocketUrl + '/websocket/' + "id_extract_" + projectId.value)
|
||||||
setupWebSocket2()
|
setupWebSocket2()
|
||||||
gettreedata()
|
gettreedata('')
|
||||||
tonstatus(false)
|
tonstatus(false)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -179,7 +179,7 @@ function tonstatus(ready: any) {
|
|||||||
tonloading.value = true
|
tonloading.value = true
|
||||||
buttonmsg.value = '处理中...'
|
buttonmsg.value = '处理中...'
|
||||||
}
|
}
|
||||||
gettreedata()
|
gettreedata('')
|
||||||
|
|
||||||
})
|
})
|
||||||
//解压
|
//解压
|
||||||
@ -242,9 +242,13 @@ const treeForm = ref({
|
|||||||
//获取树数据
|
//获取树数据
|
||||||
const treeRef = ref();
|
const treeRef = ref();
|
||||||
const filepath = ref('')
|
const filepath = ref('')
|
||||||
function gettreedata() {
|
function gettreedata(type:string) {
|
||||||
treeloading.value = true
|
treeloading.value = true
|
||||||
treeForm.value.taskId = projectId.value
|
if(type == '节点搜索' && projectId.value !== ''){
|
||||||
|
treeForm.value.taskId = ''
|
||||||
|
}else{
|
||||||
|
treeForm.value.taskId = projectId.value
|
||||||
|
}
|
||||||
let keyar = projectArr.value.find(item => item.id === projectId.value);
|
let keyar = projectArr.value.find(item => item.id === projectId.value);
|
||||||
storageKey.value = keyar.key
|
storageKey.value = keyar.key
|
||||||
getTsNodesTree(treeForm.value).then((res: any) => {
|
getTsNodesTree(treeForm.value).then((res: any) => {
|
||||||
@ -252,6 +256,7 @@ function gettreedata() {
|
|||||||
treeloading.value = false
|
treeloading.value = false
|
||||||
if (treedata.value[0]) {
|
if (treedata.value[0]) {
|
||||||
pathid.value = treedata.value[0].nodeId
|
pathid.value = treedata.value[0].nodeId
|
||||||
|
projectId.value = treedata.value[0].taskId
|
||||||
nodename.value = res.data[0].nodeName
|
nodename.value = res.data[0].nodeName
|
||||||
if (nodename.value == '根节点') {
|
if (nodename.value == '根节点') {
|
||||||
filepath.value = res.data[0].path
|
filepath.value = res.data[0].path
|
||||||
@ -273,6 +278,7 @@ const pathid = ref()
|
|||||||
const nodename = ref('')
|
const nodename = ref('')
|
||||||
function handleNodeClick(data: any, node: any) {
|
function handleNodeClick(data: any, node: any) {
|
||||||
pathid.value = data.nodeId
|
pathid.value = data.nodeId
|
||||||
|
projectId.value = data.taskId
|
||||||
// filepath.value = data.path + data.nodeName + '/'
|
// filepath.value = data.path + data.nodeName + '/'
|
||||||
creatform.value.parentId = ''
|
creatform.value.parentId = ''
|
||||||
patharr.value.length = 0
|
patharr.value.length = 0
|
||||||
@ -349,7 +355,7 @@ async function submitForm(formEl: any) {
|
|||||||
if (projectForme.value.nodeId) {
|
if (projectForme.value.nodeId) {
|
||||||
updateTsNodes(projectForme.value).then((res: any) => {
|
updateTsNodes(projectForme.value).then((res: any) => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
gettreedata()
|
gettreedata('')
|
||||||
ElMessage.success("修改成功")
|
ElMessage.success("修改成功")
|
||||||
frame.value = false
|
frame.value = false
|
||||||
}
|
}
|
||||||
@ -358,7 +364,7 @@ async function submitForm(formEl: any) {
|
|||||||
} else {
|
} else {
|
||||||
addTsNodes(projectForme.value).then((res: any) => {
|
addTsNodes(projectForme.value).then((res: any) => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
gettreedata()
|
gettreedata('')
|
||||||
ElMessage.success("添加成功")
|
ElMessage.success("添加成功")
|
||||||
frame.value = false
|
frame.value = false
|
||||||
}
|
}
|
||||||
@ -393,7 +399,7 @@ function delSubItem(row: any) {
|
|||||||
loading.value = true
|
loading.value = true
|
||||||
deleteTsNodesById({ id: row.nodeId, path: row.path }).then((res: any) => {
|
deleteTsNodesById({ id: row.nodeId, path: row.path }).then((res: any) => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
gettreedata()
|
gettreedata('')
|
||||||
ElMessage({
|
ElMessage({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: '删除成功',
|
message: '删除成功',
|
||||||
@ -1863,12 +1869,12 @@ const configradio: any = ref(null)
|
|||||||
<div class="faulttemplate-box">
|
<div class="faulttemplate-box">
|
||||||
<aside id="silderLeft">
|
<aside id="silderLeft">
|
||||||
<div>
|
<div>
|
||||||
<el-select v-model="projectId" placeholder="请选择项目" @change="gettreedata()">
|
<el-select v-model="projectId" placeholder="请选择项目" @change="gettreedata('')">
|
||||||
<el-option v-for="item in projectArr" :key="item.id" :label="item.taskName" :value="item.id" />
|
<el-option v-for="item in projectArr" :key="item.id" :label="item.taskName" :value="item.id" />
|
||||||
</el-select>
|
</el-select>
|
||||||
<div class="tree_sou">
|
<div class="tree_sou">
|
||||||
<el-input v-model="treeForm.nodeName" style="width:100%;margin:10px 9px 10px 0px;"
|
<el-input v-model="treeForm.nodeName" style="width:100%;margin:10px 9px 10px 0px;"
|
||||||
placeholder="节点名称" clearable :suffix-icon="Search" @change="gettreedata()" />
|
placeholder="节点名称" clearable :suffix-icon="Search" @change="gettreedata('节点搜索')" />
|
||||||
<img src="@/assets/images/addNew.png" style="cursor: pointer;" title="新增子项目"
|
<img src="@/assets/images/addNew.png" style="cursor: pointer;" title="新增子项目"
|
||||||
@click="addSubItem({ nodeId: '00' })" alt="">
|
@click="addSubItem({ nodeId: '00' })" alt="">
|
||||||
<!-- <el-input v-model="treeForm.nodeName" style="width:100%;margin:10px 9px 10px 0px;"
|
<!-- <el-input v-model="treeForm.nodeName" style="width:100%;margin:10px 9px 10px 0px;"
|
||||||
|
|||||||
473
web/src/views/testdata/testtask/index.vue
vendored
473
web/src/views/testdata/testtask/index.vue
vendored
@ -11,11 +11,12 @@ import Page from '@/components/Pagination/page.vue'
|
|||||||
import {
|
import {
|
||||||
tstaskPage, addtsTask, updatetsTask, exportTaskSql, deleteTsTaskById,
|
tstaskPage, addtsTask, updatetsTask, exportTaskSql, deleteTsTaskById,
|
||||||
deleteTsTaskByIds, confirmDeleteTask, selectTsNodesById, getMaxTaskCode,
|
deleteTsTaskByIds, confirmDeleteTask, selectTsNodesById, getMaxTaskCode,
|
||||||
importTaskSql
|
importTaskSql, commonItems, addCommonItems, delCommonItems, batchCommonItems
|
||||||
} from "@/api/testtask";
|
} from "@/api/testtask";
|
||||||
import { storagesBytype } from "@/api/storage";
|
import { storagesBytype } from "@/api/storage";
|
||||||
import { getDict } from '@/api/dict'
|
import { getDict } from '@/api/dict'
|
||||||
import { getUserInfo } from '@/api/user';
|
import { getUserInfo } from '@/api/user';
|
||||||
|
import { st } from "vue-router/dist/router-CWoNjPRp.mjs";
|
||||||
///////
|
///////
|
||||||
let result2 = ref([])
|
let result2 = ref([])
|
||||||
let result1 = ref([
|
let result1 = ref([
|
||||||
@ -143,6 +144,7 @@ const frame = ref(false)
|
|||||||
//新增项目弹框
|
//新增项目弹框
|
||||||
function addproject() {
|
function addproject() {
|
||||||
frame.value = true
|
frame.value = true
|
||||||
|
customList.value = []
|
||||||
title.value = "新增试验任务"
|
title.value = "新增试验任务"
|
||||||
projectForme.value = {
|
projectForme.value = {
|
||||||
taskName: "",//任务名称
|
taskName: "",//任务名称
|
||||||
@ -172,6 +174,11 @@ function addproject() {
|
|||||||
//修改项目弹框
|
//修改项目弹框
|
||||||
function editproject(row: any) {
|
function editproject(row: any) {
|
||||||
projectForme.value = JSON.parse(JSON.stringify(row))
|
projectForme.value = JSON.parse(JSON.stringify(row))
|
||||||
|
if( projectForme.value.custom1 !== null&& projectForme.value.custom1 !== undefined && projectForme.value.custom1 !== ''){
|
||||||
|
customList.value = projectForme.value.custom1.split(',')
|
||||||
|
}else{
|
||||||
|
customList.value = []
|
||||||
|
}
|
||||||
formitemarr.value = projectForme.value.taskProps
|
formitemarr.value = projectForme.value.taskProps
|
||||||
projectForme.value.taskDate = [projectForme.value.taskStartdate, projectForme.value.taskEnddate]
|
projectForme.value.taskDate = [projectForme.value.taskStartdate, projectForme.value.taskEnddate]
|
||||||
title.value = "修改试验任务"
|
title.value = "修改试验任务"
|
||||||
@ -314,13 +321,14 @@ const projectForme: any = ref({
|
|||||||
carrierName: "",//载体名称
|
carrierName: "",//载体名称
|
||||||
deviceName: "",//设备名称
|
deviceName: "",//设备名称
|
||||||
taskCode: "",//任务编号
|
taskCode: "",//任务编号
|
||||||
deviceCode: ""//设备编号
|
deviceCode: "", //设备编号
|
||||||
, taskType: "",
|
taskType: "",
|
||||||
testDescribe: "",// 试验描述
|
testDescribe: "",// 试验描述
|
||||||
sensorDescribe: "",// 传感器描述
|
sensorDescribe: "",// 传感器描述
|
||||||
taskProps: "",//信息
|
taskProps: "",//信息
|
||||||
localStorageId: '',
|
localStorageId: '',
|
||||||
backupStorageId: ''
|
backupStorageId: '',
|
||||||
|
custom1: '',//试验标签项
|
||||||
})
|
})
|
||||||
//表单确定
|
//表单确定
|
||||||
async function submitForm(formEl: any) {
|
async function submitForm(formEl: any) {
|
||||||
@ -339,6 +347,12 @@ async function submitForm(formEl: any) {
|
|||||||
projectForme.value.taskStartdate = ''
|
projectForme.value.taskStartdate = ''
|
||||||
projectForme.value.taskEnddate = ''
|
projectForme.value.taskEnddate = ''
|
||||||
}
|
}
|
||||||
|
//试验标签项
|
||||||
|
if(customList.value.length>0){
|
||||||
|
projectForme.value.custom1 = customList.value.join(',')
|
||||||
|
}else{
|
||||||
|
projectForme.value.custom1 = ''
|
||||||
|
}
|
||||||
if (projectForme.value.id) {
|
if (projectForme.value.id) {
|
||||||
updatetsTask(projectForme.value).then((res: any) => {
|
updatetsTask(projectForme.value).then((res: any) => {
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
@ -364,7 +378,9 @@ async function submitForm(formEl: any) {
|
|||||||
const moderules = ref({
|
const moderules = ref({
|
||||||
taskType: [{ required: true, message: "请选择任务类型", trigger: "change" }],
|
taskType: [{ required: true, message: "请选择任务类型", trigger: "change" }],
|
||||||
taskDate: [{ required: true, message: "请选择任务时间", trigger: "change" }],
|
taskDate: [{ required: true, message: "请选择任务时间", trigger: "change" }],
|
||||||
taskPlace: [{ required: true, message: "请输入任务地点", trigger: "blur" }],
|
taskPlace: [{ required: true, message: "请选择任务地点", trigger: "change" }],
|
||||||
|
carrierName: [{ required: true, message: "请选择载机名称", trigger: "change" }],
|
||||||
|
deviceCode: [{ required: true, message: "请输入设备代号_编号", trigger: "blur" }],
|
||||||
localStorageId: [{ required: true, message: "请选择本地存储空间", trigger: "change" }],
|
localStorageId: [{ required: true, message: "请选择本地存储空间", trigger: "change" }],
|
||||||
backupStorageId: [{ required: true, message: "请选择minio存储空间", trigger: "change" }],
|
backupStorageId: [{ required: true, message: "请选择minio存储空间", trigger: "change" }],
|
||||||
});
|
});
|
||||||
@ -529,6 +545,317 @@ function importSubmit(formEl: any) {
|
|||||||
function importClose() {
|
function importClose() {
|
||||||
importDialog.value = false
|
importDialog.value = false
|
||||||
}
|
}
|
||||||
|
//输入框单选
|
||||||
|
const taskPlaceOptions = ref([])
|
||||||
|
const taskPlaceLoading = ref(false)
|
||||||
|
const selectDialog = ref(false)
|
||||||
|
const selectData = ref([])
|
||||||
|
const selectDataAll = ref([])
|
||||||
|
const selectKeyword = ref('')
|
||||||
|
const selectDialogLoading = ref(false)
|
||||||
|
const selectData2 = ref([])
|
||||||
|
const selectDataAll2 = ref([])
|
||||||
|
const selectKeyword2 = ref('')
|
||||||
|
// 载机名称
|
||||||
|
const aircraftOptions = ref([])
|
||||||
|
const aircraftLoading = ref(false)
|
||||||
|
// 传感器描述
|
||||||
|
const sensorDescribeOptions = ref([])
|
||||||
|
const sensorDescribeLoading = ref(false)
|
||||||
|
// 多选试验标签项
|
||||||
|
const customList = ref([])
|
||||||
|
const customMultpieOptions = ref([])
|
||||||
|
const customMultpieLoading = ref(false)
|
||||||
|
const iscustomMultpie = ref(false)
|
||||||
|
const selectionList = ref([])
|
||||||
|
const multipleTableRef = ref(null)
|
||||||
|
|
||||||
|
function remoteMethod(query) {
|
||||||
|
let list = []
|
||||||
|
commonItems().then((res: any) => {
|
||||||
|
if (res.data.taskLocation) {
|
||||||
|
list = res.data.taskLocation
|
||||||
|
}
|
||||||
|
if (query !== '') {
|
||||||
|
taskPlaceLoading.value = true;
|
||||||
|
setTimeout(() => {
|
||||||
|
taskPlaceLoading.value = false;
|
||||||
|
taskPlaceOptions.value = list.filter(item => item.includes(query));
|
||||||
|
}, 200);
|
||||||
|
} else {
|
||||||
|
taskPlaceOptions.value = list
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
function remoteMethod2(query) {
|
||||||
|
let list = []
|
||||||
|
commonItems().then((res: any) => {
|
||||||
|
if (res.data.aircraftName) {
|
||||||
|
list = res.data.aircraftName
|
||||||
|
}
|
||||||
|
if (query !== '') {
|
||||||
|
aircraftLoading.value = true;
|
||||||
|
setTimeout(() => {
|
||||||
|
aircraftLoading.value = false;
|
||||||
|
aircraftOptions.value = list.filter(item => item.includes(query));
|
||||||
|
}, 200);
|
||||||
|
} else {
|
||||||
|
aircraftOptions.value = list
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
function remoteMethod3(query) {
|
||||||
|
let list = []
|
||||||
|
commonItems().then((res: any) => {
|
||||||
|
if (res.data.sensorDescription) {
|
||||||
|
list = res.data.sensorDescription
|
||||||
|
}
|
||||||
|
if (query !== '') {
|
||||||
|
sensorDescribeLoading.value = true;
|
||||||
|
setTimeout(() => {
|
||||||
|
sensorDescribeLoading.value = false;
|
||||||
|
sensorDescribeOptions.value = list.filter(item => item.includes(query));
|
||||||
|
}, 200);
|
||||||
|
} else {
|
||||||
|
sensorDescribeOptions.value = list
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function remoteMethod4(query) {
|
||||||
|
let list = []
|
||||||
|
commonItems().then((res: any) => {
|
||||||
|
if (res.data.taskLabel) {
|
||||||
|
list = res.data.taskLabel
|
||||||
|
}
|
||||||
|
if (query !== '') {
|
||||||
|
aircraftLoading.value = true;
|
||||||
|
setTimeout(() => {
|
||||||
|
customMultpieLoading.value = false;
|
||||||
|
customMultpieOptions.value = list.filter(item => item.includes(query));
|
||||||
|
}, 200);
|
||||||
|
} else {
|
||||||
|
customMultpieOptions.value = list
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function saveSelect(type: string) {
|
||||||
|
let value = ''
|
||||||
|
if (type === 'taskLocation') {
|
||||||
|
value = projectForme.value.taskPlace
|
||||||
|
} else if (type === 'aircraftName') {
|
||||||
|
value = projectForme.value.carrierName
|
||||||
|
} else if (type === 'sensorDescription') {
|
||||||
|
value = projectForme.value.sensorDescribe
|
||||||
|
}
|
||||||
|
const params = {
|
||||||
|
label: value,
|
||||||
|
type: type
|
||||||
|
}
|
||||||
|
addCommonItems(params).then((res: any) => {
|
||||||
|
if (res.success) {
|
||||||
|
ElMessage.success('保存成功')
|
||||||
|
} else {
|
||||||
|
ElMessage.error('保存失败')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function showSelectList(type: string) {
|
||||||
|
querySelectList(type)
|
||||||
|
iscustomMultpie.value = false
|
||||||
|
selectDialog.value = true
|
||||||
|
}
|
||||||
|
function selectDataProcess(data: any, type: string) {
|
||||||
|
let list = []
|
||||||
|
data.forEach((item: any) => {
|
||||||
|
list.push({
|
||||||
|
name: item,
|
||||||
|
type: type
|
||||||
|
})
|
||||||
|
})
|
||||||
|
return list
|
||||||
|
}
|
||||||
|
function blurChange(type: string, e: any) {
|
||||||
|
if (type == 'taskLocation' && e.target.value !== '') {
|
||||||
|
projectForme.value.taskPlace = e.target.value
|
||||||
|
} else if (type == 'aircraftName' && e.target.value !== '') {
|
||||||
|
projectForme.value.carrierName = e.target.value
|
||||||
|
} else if (type == 'sensorDescription' && e.target.value !== '') {
|
||||||
|
projectForme.value.sensorDescribe = e.target.value
|
||||||
|
} else if (type == 'taskLabel' && e.target.value !== '') {
|
||||||
|
const issave = customList.value.indexOf(e.target.value) !== -1;
|
||||||
|
if (!issave) {
|
||||||
|
customList.value.push(e.target.value)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function selectKeywordChange(type: string) {
|
||||||
|
if (type == '1') {
|
||||||
|
const list = selectDataAll.value
|
||||||
|
if (selectKeyword.value !== '') {
|
||||||
|
selectData.value = list.filter(item => item.name.includes(selectKeyword.value))
|
||||||
|
} else {
|
||||||
|
selectData.value = selectDataAll.value
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
const list2 = selectDataAll2.value
|
||||||
|
if (selectKeyword2.value !== '') {
|
||||||
|
selectData2.value = list2.filter(item => item.name.includes(selectKeyword2.value))
|
||||||
|
} else {
|
||||||
|
selectData2.value = selectDataAll2.value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
function selectClose() {
|
||||||
|
selectDialog.value = false
|
||||||
|
}
|
||||||
|
function delSelect(row: any, type: string) {
|
||||||
|
const params = {
|
||||||
|
label: row.name,
|
||||||
|
type: row.type
|
||||||
|
}
|
||||||
|
delCommonItems(params).then((res: any) => {
|
||||||
|
if (res.success) {
|
||||||
|
ElMessage.success('删除成功')
|
||||||
|
if (type == '1') {
|
||||||
|
querySelectList(row.type)
|
||||||
|
} else {
|
||||||
|
customList.value.splice(customList.value.indexOf(row.name), 1)
|
||||||
|
queryCustomMultpieList()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
ElMessage.error('删除失败')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function submitSelect(row: any) {
|
||||||
|
if (row.type === 'taskLocation') {
|
||||||
|
projectForme.value.taskPlace = row.name
|
||||||
|
} else if (row.type === 'aircraftName') {
|
||||||
|
projectForme.value.carrierName = row.name
|
||||||
|
} else if (row.type === 'sensorDescription') {
|
||||||
|
projectForme.value.sensorDescribe = row.name
|
||||||
|
} else if (row.type === 'sensorDescription') {
|
||||||
|
projectForme.value.sensorDescribe = row.name
|
||||||
|
}
|
||||||
|
selectDialog.value = false
|
||||||
|
}
|
||||||
|
function querySelectList(type: string) {
|
||||||
|
selectDialogLoading.value = true
|
||||||
|
selectData.value = []
|
||||||
|
selectDataAll.value = []
|
||||||
|
commonItems().then((res: any) => {
|
||||||
|
if (type === 'taskLocation') {
|
||||||
|
if (res.data.taskLocation) {
|
||||||
|
selectData.value = selectDataProcess(res.data.taskLocation, 'taskLocation')
|
||||||
|
selectDataAll.value = selectDataProcess(res.data.taskLocation, 'taskLocation')
|
||||||
|
}
|
||||||
|
} else if ((type === 'aircraftName')) {
|
||||||
|
if (res.data.aircraftName) {
|
||||||
|
selectData.value = selectDataProcess(res.data.aircraftName, 'aircraftName')
|
||||||
|
selectDataAll.value = selectDataProcess(res.data.aircraftName, 'aircraftName')
|
||||||
|
}
|
||||||
|
} else if ((type === 'sensorDescription')) {
|
||||||
|
if (res.data.aircraftName) {
|
||||||
|
selectData.value = selectDataProcess(res.data.sensorDescription, 'sensorDescription')
|
||||||
|
selectDataAll.value = selectDataProcess(res.data.sensorDescription, 'sensorDescription')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
selectDialogLoading.value = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function queryCustomMultpieList() {
|
||||||
|
customMultpieOptions.value = []
|
||||||
|
commonItems().then((res: any) => {
|
||||||
|
if (res.data.taskLabel) {
|
||||||
|
customMultpieOptions.value = res.data.taskLabel
|
||||||
|
}
|
||||||
|
let list = []
|
||||||
|
customMultpieOptions.value.forEach((item: any) => {
|
||||||
|
list.push({
|
||||||
|
name: item,
|
||||||
|
type: 'taskLabel'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
selectData2.value = list
|
||||||
|
selectDataAll2.value = list
|
||||||
|
setTimeout(() => {
|
||||||
|
if (customList.value.length > 0) {
|
||||||
|
customList.value.forEach((item: any) => {
|
||||||
|
multipleTableRef.value!.toggleRowSelection(
|
||||||
|
{
|
||||||
|
name: item,
|
||||||
|
type: 'taskLabel',
|
||||||
|
},
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, 100)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function saveMultpieSelect() {
|
||||||
|
console.log(customList.value)
|
||||||
|
const params = {
|
||||||
|
type: 'taskLabel',
|
||||||
|
labels: customList.value
|
||||||
|
}
|
||||||
|
batchCommonItems(params).then((res: any) => {
|
||||||
|
if (res.success) {
|
||||||
|
ElMessage.success('保存成功')
|
||||||
|
customMultpieOptions.value = res.data.taskLabel
|
||||||
|
} else {
|
||||||
|
ElMessage.error('保存失败')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function showMultpieSelectList() {
|
||||||
|
commonItems().then((res: any) => {
|
||||||
|
if (res.data.taskLabel) {
|
||||||
|
customMultpieOptions.value = res.data.taskLabel
|
||||||
|
}
|
||||||
|
iscustomMultpie.value = true
|
||||||
|
let list = []
|
||||||
|
customMultpieOptions.value.forEach((item: any) => {
|
||||||
|
list.push({
|
||||||
|
name: item,
|
||||||
|
type: 'taskLabel'
|
||||||
|
})
|
||||||
|
})
|
||||||
|
selectData2.value = list
|
||||||
|
selectDataAll2.value = list
|
||||||
|
selectDialog.value = true
|
||||||
|
setTimeout(() => {
|
||||||
|
if (customList.value.length > 0) {
|
||||||
|
customList.value.forEach((item: any) => {
|
||||||
|
multipleTableRef.value!.toggleRowSelection(
|
||||||
|
{
|
||||||
|
name: item,
|
||||||
|
type: 'taskLabel',
|
||||||
|
},
|
||||||
|
)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, 100)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
function saveCustomMultpie() {
|
||||||
|
if (selectionList.value.length === 0) {
|
||||||
|
ElMessage.warning('请选择试验标签项')
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
const list = []
|
||||||
|
selectionList.value.forEach((item: any) => {
|
||||||
|
list.push(item.name)
|
||||||
|
})
|
||||||
|
customList.value = list
|
||||||
|
}
|
||||||
|
selectDialog.value = false
|
||||||
|
}
|
||||||
|
function customSelectionChange(val: any) {
|
||||||
|
selectionList.value = val
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
@ -650,7 +977,7 @@ function importClose() {
|
|||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column v-for="item in result2" :prop="item.code" :label="item.name"
|
<el-table-column v-for="item in result2" :key="item.code" :prop="item.code" :label="item.name"
|
||||||
width="180"></el-table-column>
|
width="180"></el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
<Page :total="total" v-model:size="queryParams.size" v-model:current="queryParams.current"
|
<Page :total="total" v-model:size="queryParams.size" v-model:current="queryParams.current"
|
||||||
@ -679,27 +1006,59 @@ function importClose() {
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="任务时间" prop="taskDate" style="width: 50%;margin-left: 15px;">
|
<el-form-item label="任务时间" prop="taskDate" style="width: 50%;margin-left: 15px;">
|
||||||
<el-date-picker :disabled="projectForme.id" v-model="projectForme.taskDate" type="daterange"
|
<el-date-picker :disabled="projectForme.modifiableStatus == '1' ? true : false"
|
||||||
range-separator="-" start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD"
|
v-model="projectForme.taskDate" type="daterange" range-separator="-"
|
||||||
|
start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD"
|
||||||
value-format="YYYY-MM-DD" />
|
value-format="YYYY-MM-DD" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
|
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
|
||||||
<el-form-item label="任务地点" prop="taskPlace" style="width: 50%;">
|
<el-form-item label="任务地点" prop="taskPlace" style="width: 50%;">
|
||||||
<el-input :disabled="projectForme.id" v-model="projectForme.taskPlace" maxlength="500"
|
<!-- <el-input :disabled="projectForme.id" v-model="projectForme.taskPlace" maxlength="500"
|
||||||
show-word-limit />
|
show-word-limit /> -->
|
||||||
|
<div style="display: flex;width: 100%;">
|
||||||
|
<el-select :disabled="projectForme.modifiableStatus == '1' ? true : false"
|
||||||
|
v-model="projectForme.taskPlace" filterable remote reserve-keyword
|
||||||
|
style="width:100%" placeholder="请选择任务地点" :remote-method="remoteMethod"
|
||||||
|
:loading="taskPlaceLoading" @blur="blurChange('taskLocation', $event)">
|
||||||
|
<el-option v-for="item in taskPlaceOptions" :key="item" :label="item" :value="item">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-button :disabled="projectForme.modifiableStatus == '1' ? true : false" style="padding: 0px 5px;margin-left: 5px;"
|
||||||
|
@click="saveSelect('taskLocation')"><img src="@/assets/MenuIcon/save.png" title="保存"
|
||||||
|
alt=""></el-button>
|
||||||
|
<el-button :disabled="projectForme.modifiableStatus == '1' ? true : false" style="padding: 0px 5px;margin-left: 5px;"
|
||||||
|
@click="showSelectList('taskLocation')"><img src="@/assets/MenuIcon/set.png"
|
||||||
|
title="" alt=""></el-button>
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="任务人员" style="width: 50%;margin-left: 15px;">
|
<el-form-item label="任务人员" style="width: 50%;margin-left: 15px;">
|
||||||
<el-input v-model="projectForme.taskPerson" maxlength="500" show-word-limit />
|
<el-input v-model="projectForme.taskPerson" maxlength="500" show-word-limit />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
|
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
|
||||||
<el-form-item label="载机名称" style="width: 50%;">
|
<el-form-item label="载机名称" prop="carrierName" style="width: 50%;">
|
||||||
<el-input :disabled="projectForme.id" v-model="projectForme.carrierName" maxlength="40"
|
<!-- <el-input :disabled="projectForme.id" v-model="projectForme.carrierName" maxlength="40"
|
||||||
show-word-limit />
|
show-word-limit /> -->
|
||||||
|
<div style="display: flex;width: 100%;">
|
||||||
|
<el-select :disabled="projectForme.id" v-model="projectForme.carrierName" filterable
|
||||||
|
remote reserve-keyword style="width:100%" placeholder="请选择载机名称"
|
||||||
|
:remote-method="remoteMethod2" :loading="aircraftLoading"
|
||||||
|
@blur="blurChange('aircraftName', $event)">
|
||||||
|
<el-option v-for="item in aircraftOptions" :key="item" :label="item" :value="item">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-button :disabled="projectForme.id" style="padding: 0px 5px;margin-left: 5px;"
|
||||||
|
@click="saveSelect('aircraftName')"><img src="@/assets/MenuIcon/save.png" title="保存"
|
||||||
|
alt=""></el-button>
|
||||||
|
<el-button :disabled="projectForme.id" style="padding: 0px 5px;margin-left: 5px;"
|
||||||
|
@click="showSelectList('aircraftName')"><img src="@/assets/MenuIcon/set.png"
|
||||||
|
title="" alt=""></el-button>
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="设备代号_编号" style="width: 50%;margin-left: 15px;">
|
<el-form-item label="设备代号_编号" prop="deviceCode" style="width: 50%;margin-left: 15px;">
|
||||||
<el-input :disabled="projectForme.id" v-model="projectForme.deviceCode" maxlength="40"
|
<el-input :disabled="projectForme.id" v-model="projectForme.deviceCode" maxlength="40"
|
||||||
show-word-limit />
|
show-word-limit />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -711,14 +1070,49 @@ function importClose() {
|
|||||||
<el-form-item label="试验描述">
|
<el-form-item label="试验描述">
|
||||||
<el-input v-model="projectForme.testDescribe" :rows="7" type="textarea" show-word-limit />
|
<el-input v-model="projectForme.testDescribe" :rows="7" type="textarea" show-word-limit />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="传感器描述">
|
<el-form-item label="试验标签项">
|
||||||
<el-input v-model="projectForme.sensorDescribe" :rows="7" type="textarea" show-word-limit />
|
<!-- <el-input v-model="projectForme.testDescribe" :rows="7" type="textarea" show-word-limit /> -->
|
||||||
|
<div style="display: flex;width: 100%;">
|
||||||
|
<!-- <el-select v-model="customList" multiple filterable allow-create default-first-option
|
||||||
|
placeholder="请选择试验标签项">
|
||||||
|
<el-option v-for="item in customMultpieOptions" :key="item" :label="item" :value="item">
|
||||||
|
</el-option>
|
||||||
|
</el-select> -->
|
||||||
|
<el-select :disabled="projectForme.id" v-model="customList" filterable remote
|
||||||
|
reserve-keyword style="width:100%" multiple placeholder="请选择试验标签项"
|
||||||
|
:remote-method="remoteMethod4" :loading="customMultpieLoading"
|
||||||
|
@blur="blurChange('taskLabel', $event)">
|
||||||
|
<el-option v-for="item in customMultpieOptions" :key="item" :label="item" :value="item">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-button :disabled="projectForme.id" style="padding: 0px 5px;margin-left: 5px;" @click="saveMultpieSelect"><img
|
||||||
|
src="@/assets/MenuIcon/save.png" title="保存" alt=""></el-button>
|
||||||
|
<el-button :disabled="projectForme.id" style="padding: 0px 5px;margin-left: 5px;" @click="showMultpieSelectList"><img
|
||||||
|
src="@/assets/MenuIcon/set.png" title="" alt=""></el-button>
|
||||||
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="传感器描述">
|
||||||
|
<!-- <el-input v-model="projectForme.sensorDescribe" :rows="7" type="textarea" show-word-limit /> -->
|
||||||
|
<div style="display: flex;width: 100%;">
|
||||||
|
<el-select :disabled="projectForme.id" v-model="projectForme.sensorDescribe" filterable
|
||||||
|
remote reserve-keyword style="width:100%" placeholder="请选择传感器描述"
|
||||||
|
:remote-method="remoteMethod3" :loading="aircraftLoading"
|
||||||
|
@blur="blurChange('sensorDescription', $event)">
|
||||||
|
<el-option v-for="item in sensorDescribeOptions" :key="item" :label="item" :value="item">
|
||||||
|
</el-option>
|
||||||
|
</el-select>
|
||||||
|
<el-button :disabled="projectForme.id" style="padding: 0px 5px;margin-left: 5px;"
|
||||||
|
@click="saveSelect('sensorDescription')"><img src="@/assets/MenuIcon/save.png"
|
||||||
|
title="保存" alt=""></el-button>
|
||||||
|
<el-button :disabled="projectForme.id" style="padding: 0px 5px;margin-left: 5px;"
|
||||||
|
@click="showSelectList('sensorDescription')"><img src="@/assets/MenuIcon/set.png"
|
||||||
|
title="" alt=""></el-button>
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<!-- <el-form-item label="设备名称">
|
<!-- <el-form-item label="设备名称">
|
||||||
<el-input v-model="projectForme.deviceName" maxlength="40" show-word-limit />
|
<el-input v-model="projectForme.deviceName" maxlength="40" show-word-limit />
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item v-for="(item, index) in formitemarr" :label="item.name">
|
<el-form-item v-for="(item, index) in formitemarr" :key="index" :label="item.name">
|
||||||
<div style="width: 100%;display: flex;align-items: center;justify-content: space-between;">
|
<div style="width: 100%;display: flex;align-items: center;justify-content: space-between;">
|
||||||
<el-input v-model="item.data" style="width: 92%;" />
|
<el-input v-model="item.data" style="width: 92%;" />
|
||||||
<el-button type="primary" @click="dellable(index)">删除</el-button>
|
<el-button type="primary" @click="dellable(index)">删除</el-button>
|
||||||
@ -813,6 +1207,49 @@ function importClose() {
|
|||||||
<el-button type="primary" @click="importSubmit(importFormRef)">导入</el-button>
|
<el-button type="primary" @click="importSubmit(importFormRef)">导入</el-button>
|
||||||
</div>
|
</div>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
|
<el-dialog title="选择" :close-on-click-modal="false" v-model="selectDialog" width="30%" :before-close="selectClose">
|
||||||
|
<div v-if="iscustomMultpie">
|
||||||
|
<el-input v-model="selectKeyword2" placeholder="请输入内容" @input="selectKeywordChange('2')"></el-input>
|
||||||
|
<el-table row-key="name" ref="multipleTableRef" :data="selectData2" border height="440"
|
||||||
|
style="width: 100%;margin-top:10px;" @selection-change="customSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column prop="name" label="名称">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column fixed="right" label="操作" width="60" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<span
|
||||||
|
style="display: flex;display: -webkit-flex;justify-content: space-around;-webkit-justify-content: space-around; ">
|
||||||
|
<img src="@/assets/MenuIcon/lbcz_sc.png" alt="" title="删除"
|
||||||
|
@click="delSelect(scope.row, '2')" style="cursor: pointer;">
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
<div style="width: 100%;display: flex;justify-content: end;margin-top: 10px;">
|
||||||
|
<el-button type="primary" @click="saveCustomMultpie">确定</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div v-else v-loading="selectDialogLoading" style="height: 500px;">
|
||||||
|
<el-input v-model="selectKeyword" placeholder="请输入内容" @input="selectKeywordChange('1')"></el-input>
|
||||||
|
<el-table :data="selectData" border height="440" style="width: 100%;margin-top:10px;">
|
||||||
|
<el-table-column prop="name" label="名称">
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column fixed="right" label="操作" width="80" align="center">
|
||||||
|
<template #default="scope">
|
||||||
|
<span
|
||||||
|
style="display: flex;display: -webkit-flex;justify-content: space-around;-webkit-justify-content: space-around; ">
|
||||||
|
<img src="@/assets/MenuIcon/select.png" alt="" title="选择"
|
||||||
|
@click="submitSelect(scope.row)" style="cursor: pointer;">
|
||||||
|
<img src="@/assets/MenuIcon/lbcz_sc.png" alt="" title="删除"
|
||||||
|
@click="delSelect(scope.row, '1')" style="cursor: pointer;">
|
||||||
|
</span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</el-dialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -28,7 +28,7 @@ export default ({ mode }: ConfigEnv): UserConfig => {
|
|||||||
//线上API地址
|
//线上API地址
|
||||||
//target: 'https://edu.mmhyvision.com:8443',
|
//target: 'https://edu.mmhyvision.com:8443',
|
||||||
// 本地API地址
|
// 本地API地址
|
||||||
target: 'http://192.168.1.166:8087',
|
target: 'http://192.168.1.213:8087',
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
rewrite: path =>
|
rewrite: path =>
|
||||||
path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')
|
path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user