修改
This commit is contained in:
parent
1cf66e67ea
commit
2e990cc89e
@ -78,3 +78,31 @@ export function importTaskSql(queryParams: any) {
|
||||
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 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 { useStorage } from '@vueuse/core';
|
||||
let { storageKey, currentPath } = useRouterData()
|
||||
@ -8,7 +8,9 @@ let { storageKey, currentPath } = useRouterData()
|
||||
const zfilePasswordCache = useStorage('zfile-pwd-cache', {});
|
||||
|
||||
export default function useFilePwd() {
|
||||
|
||||
function removeDuplicateSlashes(path) {
|
||||
return path.replace(/\\/g, '/').replace(/\/+/g, '/');
|
||||
}
|
||||
// 向缓存中写入当前路径密码
|
||||
let putPathPwd = (pattern, password) => {
|
||||
if (pattern) {
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
|
||||
import JSEncrypt from 'jsencrypt';
|
||||
// 密钥对生成 http://web.chacuo.net/netrsakeypair
|
||||
|
||||
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()
|
||||
ws2 = new WebSocket(userStore.WebSocketUrl + '/websocket/' + "id_extract_" + projectId.value)
|
||||
setupWebSocket2()
|
||||
gettreedata()
|
||||
gettreedata('')
|
||||
tonstatus(false)
|
||||
})
|
||||
}
|
||||
@ -179,7 +179,7 @@ function tonstatus(ready: any) {
|
||||
tonloading.value = true
|
||||
buttonmsg.value = '处理中...'
|
||||
}
|
||||
gettreedata()
|
||||
gettreedata('')
|
||||
|
||||
})
|
||||
//解压
|
||||
@ -242,9 +242,13 @@ const treeForm = ref({
|
||||
//获取树数据
|
||||
const treeRef = ref();
|
||||
const filepath = ref('')
|
||||
function gettreedata() {
|
||||
function gettreedata(type:string) {
|
||||
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);
|
||||
storageKey.value = keyar.key
|
||||
getTsNodesTree(treeForm.value).then((res: any) => {
|
||||
@ -252,6 +256,7 @@ function gettreedata() {
|
||||
treeloading.value = false
|
||||
if (treedata.value[0]) {
|
||||
pathid.value = treedata.value[0].nodeId
|
||||
projectId.value = treedata.value[0].taskId
|
||||
nodename.value = res.data[0].nodeName
|
||||
if (nodename.value == '根节点') {
|
||||
filepath.value = res.data[0].path
|
||||
@ -273,6 +278,7 @@ const pathid = ref()
|
||||
const nodename = ref('')
|
||||
function handleNodeClick(data: any, node: any) {
|
||||
pathid.value = data.nodeId
|
||||
projectId.value = data.taskId
|
||||
// filepath.value = data.path + data.nodeName + '/'
|
||||
creatform.value.parentId = ''
|
||||
patharr.value.length = 0
|
||||
@ -349,7 +355,7 @@ async function submitForm(formEl: any) {
|
||||
if (projectForme.value.nodeId) {
|
||||
updateTsNodes(projectForme.value).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
gettreedata()
|
||||
gettreedata('')
|
||||
ElMessage.success("修改成功")
|
||||
frame.value = false
|
||||
}
|
||||
@ -358,7 +364,7 @@ async function submitForm(formEl: any) {
|
||||
} else {
|
||||
addTsNodes(projectForme.value).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
gettreedata()
|
||||
gettreedata('')
|
||||
ElMessage.success("添加成功")
|
||||
frame.value = false
|
||||
}
|
||||
@ -393,7 +399,7 @@ function delSubItem(row: any) {
|
||||
loading.value = true
|
||||
deleteTsNodesById({ id: row.nodeId, path: row.path }).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
gettreedata()
|
||||
gettreedata('')
|
||||
ElMessage({
|
||||
type: 'success',
|
||||
message: '删除成功',
|
||||
@ -1863,12 +1869,12 @@ const configradio: any = ref(null)
|
||||
<div class="faulttemplate-box">
|
||||
<aside id="silderLeft">
|
||||
<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-select>
|
||||
<div class="tree_sou">
|
||||
<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="新增子项目"
|
||||
@click="addSubItem({ nodeId: '00' })" alt="">
|
||||
<!-- <el-input v-model="treeForm.nodeName" style="width:100%;margin:10px 9px 10px 0px;"
|
||||
|
||||
475
web/src/views/testdata/testtask/index.vue
vendored
475
web/src/views/testdata/testtask/index.vue
vendored
@ -11,11 +11,12 @@ import Page from '@/components/Pagination/page.vue'
|
||||
import {
|
||||
tstaskPage, addtsTask, updatetsTask, exportTaskSql, deleteTsTaskById,
|
||||
deleteTsTaskByIds, confirmDeleteTask, selectTsNodesById, getMaxTaskCode,
|
||||
importTaskSql
|
||||
importTaskSql, commonItems, addCommonItems, delCommonItems, batchCommonItems
|
||||
} from "@/api/testtask";
|
||||
import { storagesBytype } from "@/api/storage";
|
||||
import { getDict } from '@/api/dict'
|
||||
import { getUserInfo } from '@/api/user';
|
||||
import { st } from "vue-router/dist/router-CWoNjPRp.mjs";
|
||||
///////
|
||||
let result2 = ref([])
|
||||
let result1 = ref([
|
||||
@ -143,6 +144,7 @@ const frame = ref(false)
|
||||
//新增项目弹框
|
||||
function addproject() {
|
||||
frame.value = true
|
||||
customList.value = []
|
||||
title.value = "新增试验任务"
|
||||
projectForme.value = {
|
||||
taskName: "",//任务名称
|
||||
@ -172,6 +174,11 @@ function addproject() {
|
||||
//修改项目弹框
|
||||
function editproject(row: any) {
|
||||
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
|
||||
projectForme.value.taskDate = [projectForme.value.taskStartdate, projectForme.value.taskEnddate]
|
||||
title.value = "修改试验任务"
|
||||
@ -314,13 +321,14 @@ const projectForme: any = ref({
|
||||
carrierName: "",//载体名称
|
||||
deviceName: "",//设备名称
|
||||
taskCode: "",//任务编号
|
||||
deviceCode: ""//设备编号
|
||||
, taskType: "",
|
||||
deviceCode: "", //设备编号
|
||||
taskType: "",
|
||||
testDescribe: "",// 试验描述
|
||||
sensorDescribe: "",// 传感器描述
|
||||
taskProps: "",//信息
|
||||
localStorageId: '',
|
||||
backupStorageId: ''
|
||||
backupStorageId: '',
|
||||
custom1: '',//试验标签项
|
||||
})
|
||||
//表单确定
|
||||
async function submitForm(formEl: any) {
|
||||
@ -339,6 +347,12 @@ async function submitForm(formEl: any) {
|
||||
projectForme.value.taskStartdate = ''
|
||||
projectForme.value.taskEnddate = ''
|
||||
}
|
||||
//试验标签项
|
||||
if(customList.value.length>0){
|
||||
projectForme.value.custom1 = customList.value.join(',')
|
||||
}else{
|
||||
projectForme.value.custom1 = ''
|
||||
}
|
||||
if (projectForme.value.id) {
|
||||
updatetsTask(projectForme.value).then((res: any) => {
|
||||
if (res.code == 0) {
|
||||
@ -364,7 +378,9 @@ async function submitForm(formEl: any) {
|
||||
const moderules = ref({
|
||||
taskType: [{ 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" }],
|
||||
backupStorageId: [{ required: true, message: "请选择minio存储空间", trigger: "change" }],
|
||||
});
|
||||
@ -529,6 +545,317 @@ function importSubmit(formEl: any) {
|
||||
function importClose() {
|
||||
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>
|
||||
|
||||
<template>
|
||||
@ -650,7 +977,7 @@ function importClose() {
|
||||
</span>
|
||||
</template>
|
||||
</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>
|
||||
</el-table>
|
||||
<Page :total="total" v-model:size="queryParams.size" v-model:current="queryParams.current"
|
||||
@ -679,27 +1006,59 @@ function importClose() {
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="任务时间" prop="taskDate" style="width: 50%;margin-left: 15px;">
|
||||
<el-date-picker :disabled="projectForme.id" v-model="projectForme.taskDate" type="daterange"
|
||||
range-separator="-" start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD"
|
||||
<el-date-picker :disabled="projectForme.modifiableStatus == '1' ? true : false"
|
||||
v-model="projectForme.taskDate" type="daterange" range-separator="-"
|
||||
start-placeholder="开始时间" end-placeholder="结束时间" format="YYYY-MM-DD"
|
||||
value-format="YYYY-MM-DD" />
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
|
||||
<el-form-item label="任务地点" prop="taskPlace" style="width: 50%;">
|
||||
<el-input :disabled="projectForme.id" v-model="projectForme.taskPlace" maxlength="500"
|
||||
show-word-limit />
|
||||
<!-- <el-input :disabled="projectForme.id" v-model="projectForme.taskPlace" maxlength="500"
|
||||
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 label="任务人员" style="width: 50%;margin-left: 15px;">
|
||||
<el-input v-model="projectForme.taskPerson" maxlength="500" show-word-limit />
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div style="width: 100%;display: flex;justify-content: space-between;align-items: center;">
|
||||
<el-form-item label="载机名称" style="width: 50%;">
|
||||
<el-input :disabled="projectForme.id" v-model="projectForme.carrierName" maxlength="40"
|
||||
show-word-limit />
|
||||
<el-form-item label="载机名称" prop="carrierName" style="width: 50%;">
|
||||
<!-- <el-input :disabled="projectForme.id" v-model="projectForme.carrierName" maxlength="40"
|
||||
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 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"
|
||||
show-word-limit />
|
||||
</el-form-item>
|
||||
@ -711,14 +1070,49 @@ function importClose() {
|
||||
<el-form-item label="试验描述">
|
||||
<el-input v-model="projectForme.testDescribe" :rows="7" type="textarea" show-word-limit />
|
||||
</el-form-item>
|
||||
<el-form-item label="传感器描述">
|
||||
<el-input v-model="projectForme.sensorDescribe" :rows="7" type="textarea" show-word-limit />
|
||||
<el-form-item label="试验标签项">
|
||||
<!-- <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 label="设备名称">
|
||||
<el-input v-model="projectForme.deviceName" maxlength="40" show-word-limit />
|
||||
</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;">
|
||||
<el-input v-model="item.data" style="width: 92%;" />
|
||||
<el-button type="primary" @click="dellable(index)">删除</el-button>
|
||||
@ -800,7 +1194,7 @@ function importClose() {
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<div style="width: 100%;display: flex;align-items: center;">
|
||||
|
||||
|
||||
<el-upload v-model="fileList" :auto-upload="false" :show-file-list="false" class="upload-demo"
|
||||
action="" :on-change="fileChange">
|
||||
<el-button type="primary" style="padding: 0px 5px;">上传导入文件</el-button>
|
||||
@ -813,6 +1207,49 @@ function importClose() {
|
||||
<el-button type="primary" @click="importSubmit(importFormRef)">导入</el-button>
|
||||
</div>
|
||||
</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>
|
||||
</template>
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ export default ({ mode }: ConfigEnv): UserConfig => {
|
||||
//线上API地址
|
||||
//target: 'https://edu.mmhyvision.com:8443',
|
||||
// 本地API地址
|
||||
target: 'http://192.168.1.166:8087',
|
||||
target: 'http://192.168.1.213:8087',
|
||||
changeOrigin: true,
|
||||
rewrite: path =>
|
||||
path.replace(new RegExp('^' + env.VITE_APP_BASE_API), '')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user