This commit is contained in:
jingna 2026-01-07 13:44:09 +08:00
parent 1cf66e67ea
commit 2e990cc89e
9 changed files with 505 additions and 32 deletions

View File

@ -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,
});
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

View File

@ -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) {

View File

@ -1,4 +1,4 @@
import JSEncrypt from 'jsencrypt/bin/jsencrypt.min'
import JSEncrypt from 'jsencrypt';
// 密钥对生成 http://web.chacuo.net/netrsakeypair
const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' +

View File

@ -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;"

View File

@ -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>

View File

@ -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), '')