This commit is contained in:
zpc 2025-11-04 22:21:28 +08:00
parent 762802ff4a
commit 97703fda3c
11 changed files with 767 additions and 16 deletions

View File

@ -14,4 +14,4 @@ VITE_APP_ROUTER_PREFIX = '/'
VITE_APP_UPLOAD_URL = 'Common/UploadFile'
#socket API
VITE_APP_SOCKET_API = 'http://localhost:11082/msghub'
VITE_APP_SOCKET_API = 'http://localhost:11082/msghub'

View File

@ -16,4 +16,4 @@ VITE_APP_UPLOAD_URL = 'Common/UploadFile'
VITE_APP_SOCKET_API = 'http://49.233.115.141:11082/msghub'
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip
VITE_BUILD_COMPRESS = gzip

19
.env.test Normal file
View File

@ -0,0 +1,19 @@
# 生产环境配置
ENV = 'production'
VITE_APP_API_HOST = 'https://odf.zpc-xy.com/'
# 生产环境
VITE_APP_BASE_API = 'https://odf.zpc-xy.com/'
# 路由前缀
VITE_APP_ROUTER_PREFIX = '/'
# 默认上传地址
VITE_APP_UPLOAD_URL = 'Common/UploadFile'
#socket API
VITE_APP_SOCKET_API = 'https://odf.zpc-xy.com/msghub'
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip

View File

@ -9,6 +9,7 @@
"dev": "vite",
"build:prod": "vite build",
"build:stage": "vite build --mode staging",
"build:test": "vite build --mode test",
"preview": "vite preview"
},
"repository": {

View File

@ -0,0 +1,69 @@
import request from '@/utils/request'
/**
* App 更新表分页查询
* @param {查询条件} data
*/
export function listOdfAppUpdates(query) {
return request({
url: 'business/OdfAppUpdates/list',
method: 'get',
params: query,
})
}
/**
* 新增App 更新表
* @param data
*/
export function addOdfAppUpdates(data) {
return request({
url: 'business/OdfAppUpdates/add',
method: 'post',
data: data,
})
}
/**
*修改App 更新表状态
* @param {*} data {id:0,IsActive:true}
* @returns
*/
export function OdfAppStatus(data) {
return request({
url: 'business/OdfAppUpdates/status',
method: 'post',
data: data,
})
}
/**
* 修改App 更新表
* @param data
*/
export function updateOdfAppUpdates(data) {
return request({
url: 'business/OdfAppUpdates',
method: 'PUT',
data: data,
})
}
/**
* 获取App 更新表详情
* @param {Id}
*/
export function getOdfAppUpdates(id) {
return request({
url: 'business/OdfAppUpdates/' + id,
method: 'get'
})
}
/**
* 删除App 更新表
* @param {主键} pid
*/
export function delOdfAppUpdates(pid) {
return request({
url: 'business/OdfAppUpdates/delete/' + pid,
method: 'POST'
})
}

View File

@ -68,12 +68,12 @@ const props = defineProps({
// (MB)
fileSize: {
type: Number,
default: 5
default: 50
},
// , ['png', 'jpg', 'jpeg']
fileType: {
type: Array,
default: () => ['doc', 'xls', 'ppt', 'txt', 'pdf']
default: () => ['doc', 'xls', 'ppt', 'txt', 'pdf', 'apk']
},
//
isShowTip: {

View File

@ -30,18 +30,105 @@
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="设备型号" prop="equipmentModel">
<el-select v-model="form.equipmentModel" placeholder="请选择设备型号">
<el-option
v-for="item in options.odf_ports_unit_type"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="业务类型" prop="businessType">
<el-select v-model="form.businessType" placeholder="请选择业务类型">
<el-option
v-for="item in options.odf_ports_business_type"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="业务名称" prop="businessName">
<el-input v-model="form.businessName" placeholder="请输入业务名称(不提交)" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="1号端口" prop="port1">
<el-input v-model="form.port1" placeholder="请输入1号端口不提交" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="2号端口" prop="port2">
<el-input v-model="form.port2" placeholder="请输入2号端口不提交" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="3号端口" prop="port3">
<el-input v-model="form.port3" placeholder="请输入3号端口不提交" />
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="备注" prop="remarks">
<el-input type="textarea" v-model="form.remarks" placeholder="请输入备注" />
<el-input type="textarea" v-model="form.remarks" placeholder="系统自动生成,禁止修改" disabled />
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="历史故障表" prop="historyRemarks">
<el-input type="textarea" v-model="form.historyRemarks" placeholder="请输入历史故障表" />
<el-form-item label="历史故障记录" prop="historyFault">
<div class="fault-records" style="width: 100%">
<div v-for="(record, index) in form.historyFault" :key="index" class="fault-record-item">
<el-row :gutter="24">
<el-col :span="8">
<el-form-item :prop="`historyFault.${index}.faultTime`" :rules="[]">
<el-date-picker
v-model="record.faultTime"
type="datetime"
placeholder="选择故障时间"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
style="width: 100%" />
</el-form-item>
</el-col>
<el-col :span="14">
<el-form-item :prop="`historyFault.${index}.faultReason`" :rules="[]">
<el-input v-model="record.faultReason" placeholder="请输入故障原因" />
</el-form-item>
</el-col>
<el-col :span="2">
<div class="fault-actions">
<el-button
type="danger"
size="small"
icon="Delete"
circle
@click="removeFaultRecord(index)"
:disabled="form.historyFault.length <= 0" />
</div>
</el-col>
</el-row>
</div>
<div class="add-fault-record">
<el-button type="primary" size="small" icon="Plus" @click="addFaultRecord"> 添加故障记录 </el-button>
</div>
</div>
</el-form-item>
</el-col>
<!-- <el-col :lg="24">
<el-form-item label="历史故障说明" prop="historyRemarks">
<el-input type="textarea" v-model="form.historyRemarks" placeholder="请输入历史故障表" />
</el-form-item>
</el-col> -->
<!-- 分隔线 -->
<el-col :lg="24">
<el-divider content-position="left">
@ -132,8 +219,20 @@ const form = ref({
portNumber: null,
status: null,
opticalAttenuation: null,
equipmentModel: null,
businessType: null,
businessName: null,
port1: null,
port2: null,
port3: null,
remarks: null,
historyRemarks: null,
historyFault: [
{
faultTime: null,
faultReason: null
}
],
createdAt: null,
updatedAt: null
})
@ -151,15 +250,24 @@ const rules = {
//
const options = reactive({
odf_ports_status: []
odf_ports_status: [],
// eg:{ dictLabel: '', dictValue: '0'}
odf_ports_unit_type: [],
// eg:{ dictLabel: '', dictValue: '0'}
odf_ports_business_type: []
})
//
var dictParams = ['odf_ports_status']
var dictParams = ['odf_ports_status', 'odf_ports_unit_type', 'odf_ports_business_type']
proxy.getDicts(dictParams).then((response) => {
response.data.forEach((element) => {
options[element.dictType] = element.list
})
console.debug('[OdfPortForm] dicts loaded:', {
statusLen: options.odf_ports_status.length,
unitTypeLen: options.odf_ports_unit_type.length,
businessTypeLen: options.odf_ports_business_type.length
})
})
//
@ -178,8 +286,20 @@ function resetForm() {
portNumber: null,
status: null,
opticalAttenuation: null,
equipmentModel: null,
businessType: null,
businessName: null,
port1: null,
port2: null,
port3: null,
remarks: null,
historyRemarks: null,
historyFault: [
{
faultTime: null,
faultReason: null
}
],
createdAt: null,
updatedAt: null
}
@ -190,11 +310,15 @@ function resetForm() {
//
function loadData() {
console.log('[OdfPortForm] loadData merged form:')
if (props.id) {
getOdfPorts(props.id).then((res) => {
const { code, data } = res
if (code == 200) {
form.value = { ...data }
//
form.value = { ...form.value, ...data }
console.log('[OdfPortForm] loadData merged form:', { form: { ...form.value } })
parseRemarksToFields()
}
})
} else {
@ -208,8 +332,15 @@ function submitForm() {
if (valid) {
submitLoading.value = true
//
const payload = { ...form.value }
delete payload.businessName
delete payload.port1
delete payload.port2
delete payload.port3
if (isEdit.value) {
updateOdfPorts(form.value)
updateOdfPorts(payload)
.then((res) => {
proxy.$modal.msgSuccess('修改成功')
handleSuccess()
@ -218,7 +349,7 @@ function submitForm() {
submitLoading.value = false
})
} else {
addOdfPorts(form.value)
addOdfPorts(payload)
.then((res) => {
proxy.$modal.msgSuccess('新增成功')
handleSuccess()
@ -243,6 +374,21 @@ function handleClose() {
resetForm()
}
//
function addFaultRecord() {
form.value.historyFault.push({
faultTime: null,
faultReason: null
})
}
//
function removeFaultRecord(index) {
if (form.value.historyFault.length > 0) {
form.value.historyFault.splice(index, 1)
}
}
//
watch(
() => props.visible,
@ -252,4 +398,164 @@ watch(
}
}
)
//
function getDictLabel(list, value) {
if (!Array.isArray(list)) return ''
const hit = list.find((x) => String(x.dictValue) === String(value))
return hit ? hit.dictLabel : ''
}
function updateRemarks() {
const equipmentLabel = getDictLabel(options.odf_ports_unit_type, form.value.equipmentModel)
const businessTypeLabel = getDictLabel(options.odf_ports_business_type, form.value.businessType)
const businessName = (form.value.businessName || '').trim()
const p1 = (form.value.port1 || '').trim()
const p2 = (form.value.port2 || '').trim()
const p3 = (form.value.port3 || '').trim()
const ports = [p1, p2, p3].filter((x) => x).join('/')
const parts = [businessName, equipmentLabel, businessTypeLabel, ports].filter((x) => x)
console.debug('[OdfPortForm] updateRemarks inputs:', {
businessName,
equipmentModel: form.value.equipmentModel,
equipmentLabel,
businessType: form.value.businessType,
businessTypeLabel,
p1,
p2,
p3,
ports,
parts
})
form.value.remarks = parts.join(' ')
console.debug('[OdfPortForm] updateRemarks result:', form.value.remarks)
}
//
watch(
() => [form.value.equipmentModel, form.value.businessType, form.value.businessName, form.value.port1, form.value.port2, form.value.port3],
() => updateRemarks()
)
// ----- -----
const parsedFromRemarks = ref(false)
function areOptionsReady() {
return (
Array.isArray(options.odf_ports_unit_type) &&
options.odf_ports_unit_type.length > 0 &&
Array.isArray(options.odf_ports_business_type) &&
options.odf_ports_business_type.length > 0
)
}
function getDictValueByLabel(list, label) {
if (!Array.isArray(list)) return null
const hit = list.find((x) => String(x.dictLabel) === String(label))
return hit ? hit.dictValue : null
}
function parseRemarksToFields() {
const raw = form.value.remarks || ''
if (!raw) return
// /
let remarks = raw
.replace(/[\r\n\t]+/g, ' ')
.replace(/\s+/g, ' ')
.trim()
if (!remarks) return
remarks = remarks.replace(/^端口备注信息\s*/, '')
console.debug('[OdfPortForm] parse start:', { raw, normalized: remarks })
//
const lastSpaceIdx = remarks.lastIndexOf(' ')
if (lastSpaceIdx === -1) return
const beforePorts = remarks.substring(0, lastSpaceIdx).trim()
const portsStr = remarks.substring(lastSpaceIdx + 1).trim()
console.debug('[OdfPortForm] parse split:', { beforePorts, portsStr })
const [p1, p2, p3] = portsStr.split('/')
form.value.port1 = p1 || ''
form.value.port2 = p2 || ''
form.value.port3 = p3 || ''
// [] []
const tokens = beforePorts.split(' ').filter((x) => x)
if (tokens.length >= 2) {
const equipmentLabel = tokens[tokens.length - 2] || ''
const businessTypeLabel = tokens[tokens.length - 1] || ''
const nameTokens = tokens.slice(0, Math.max(0, tokens.length - 2))
let businessName = nameTokens.join(' ').trim()
form.value.businessName = businessName
const equipmentValue = getDictValueByLabel(options.odf_ports_unit_type, equipmentLabel)
const businessTypeValue = getDictValueByLabel(options.odf_ports_business_type, businessTypeLabel)
form.value.equipmentModel = equipmentValue
form.value.businessType = businessTypeValue
console.debug('[OdfPortForm] parse mapped:', {
equipmentLabel,
businessTypeLabel,
businessName,
p1: form.value.port1,
p2: form.value.port2,
p3: form.value.port3,
equipmentValue,
businessTypeValue
})
}
}
function tryParseRemarks() {
if (parsedFromRemarks.value) return
if (!props.id) return
if (!form.value.remarks) return
if (!areOptionsReady()) return
console.debug('[OdfPortForm] tryParseRemarks conditions ok, start parse')
parseRemarksToFields()
parsedFromRemarks.value = true
console.debug('[OdfPortForm] tryParseRemarks done. parsedFromRemarks=', parsedFromRemarks.value)
}
//
watch(
() => [options.odf_ports_unit_type.length, options.odf_ports_business_type.length, form.value.remarks, props.visible],
() => {
if (props.visible) tryParseRemarks()
}
)
</script>
<style scoped>
.fault-records {
border: 1px solid #dcdfe6;
border-radius: 4px;
padding: 16px;
background-color: #fafafa;
}
.fault-record-item {
margin-bottom: 16px;
padding: 12px;
background-color: #fff;
border-radius: 4px;
border: 1px solid #e4e7ed;
}
.fault-record-item:last-child {
margin-bottom: 0;
}
.fault-actions {
display: flex;
align-items: center;
justify-content: center;
height: 32px;
}
.add-fault-record {
text-align: center;
margin-top: 16px;
padding-top: 16px;
border-top: 1px solid #e4e7ed;
}
</style>

View File

@ -38,7 +38,11 @@
<el-input type="textarea" v-model="form.remarks" :disabled="isView" placeholder="请输入备注" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="排序" prop="remarks">
<el-input v-model.number="form.orderby" :disabled="isView" placeholder="请输入序号" />
</el-form-item>
</el-col>
<!-- 高级 -->
<el-col v-if="isAdd" :lg="24">
<el-divider content-position="left">
@ -173,7 +177,8 @@ const form = ref({
framesCount: 9,
rowCount: 6,
portsCount: 12,
defaultStatus: 0
defaultStatus: 0,
orderby: 0
})
//

View File

@ -15,7 +15,7 @@ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: import.meta.env.VITE_APP_BASE_API,
// 超时
timeout: 30000
timeout: 300000
})
// request拦截器

View File

@ -0,0 +1,335 @@
<!--
* @Descripttion: (App 更新表/odf_app_updates)
* @Author: (admin)
* @Date: (2025-09-23)
-->
<template>
<div>
<el-form :model="queryParams" label-position="right" inline ref="queryRef" v-show="showSearch" @submit.prevent>
<el-form-item label="版本号" prop="versionCode">
<el-input v-model.number="queryParams.versionCode" placeholder="请输入版本号" />
</el-form-item>
<el-form-item>
<el-button icon="search" type="primary" @click="handleQuery">{{ $t('btn.search') }}</el-button>
<el-button icon="refresh" @click="resetQuery">{{ $t('btn.reset') }}</el-button>
</el-form-item>
</el-form>
<!-- 工具区域 -->
<el-row :gutter="15" class="mb10">
<el-col :span="1.5">
<el-button type="primary" v-hasPermi="['odfappupdates:add']" plain icon="plus" @click="handleAdd">
{{ $t('btn.add') }}
</el-button>
</el-col>
<right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
</el-row>
<el-table
:data="dataList"
v-loading="loading"
ref="table"
border
header-cell-class-name="el-table-header-cell"
highlight-current-row
@sort-change="sortChange">
<el-table-column prop="id" label="Id" align="center" v-if="columns.showColumn('id')" />
<el-table-column prop="versionCode" label="版本号" align="center" v-if="columns.showColumn('versionCode')" />
<el-table-column prop="updateType" label="更新类型" align="center" v-if="columns.showColumn('updateType')">
<template #default="scope">
<dict-tag :options="options.updateTypeOptions" :value="scope.row.updateType" />
</template>
</el-table-column>
<el-table-column prop="downloadUrl" label="下载地址" align="center" :show-overflow-tooltip="true" v-if="columns.showColumn('downloadUrl')" />
<el-table-column prop="isActive" label="是否启用" align="center" v-if="columns.showColumn('isActive')">
<template #default="scope">
<el-switch v-model="scope.row.isActive" :before-change="() => handleStatusBeforeChange(scope.row)" />
</template>
</el-table-column>
<el-table-column label="操作" width="160">
<template #default="scope">
<el-button
type="success"
size="small"
icon="edit"
title="编辑"
v-hasPermi="['odfappupdates:edit']"
@click="handleUpdate(scope.row)"></el-button>
<el-button
type="danger"
size="small"
icon="delete"
title="删除"
v-hasPermi="['odfappupdates:delete']"
@click="handleDelete(scope.row)"></el-button>
</template>
</el-table-column>
</el-table>
<pagination :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
<el-dialog :title="title" :lock-scroll="false" v-model="open">
<el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
<el-row :gutter="20">
<el-col :lg="12">
<el-form-item label="版本号" prop="versionCode">
<el-input v-model.number="form.versionCode" placeholder="请输入版本号" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="更新类型" prop="updateType">
<el-select v-model="form.updateType" placeholder="请选择更新类型">
<el-option
v-for="item in options.updateTypeOptions"
:key="item.dictValue"
:label="item.dictLabel"
:value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :lg="24">
<el-form-item label="下载地址" prop="downloadUrl">
<UploadFile v-model="form.downloadUrl" :data="{ uploadType: 1 }" :limit="1" />
</el-form-item>
</el-col>
<el-col :lg="12">
<el-form-item label="是否启用" prop="isActive">
<el-switch v-model="form.isActive" />
</el-form-item>
</el-col>
</el-row>
</el-form>
<template #footer v-if="opertype != 3">
<el-button text @click="cancel">{{ $t('btn.cancel') }}</el-button>
<el-button type="primary" :loading="state.submitLoading" @click="submitForm">{{ $t('btn.submit') }}</el-button>
</template>
</el-dialog>
</div>
</template>
<script setup name="odfappupdates">
import {
listOdfAppUpdates,
addOdfAppUpdates,
delOdfAppUpdates,
updateOdfAppUpdates,
getOdfAppUpdates,
OdfAppStatus
} from '@/api/business/odfappupdates.js'
const { proxy } = getCurrentInstance()
const ids = ref([])
const loading = ref(false)
const showSearch = ref(true)
const queryParams = reactive({
pageNum: 1,
pageSize: 10,
sort: 'IsActive',
sortType: 'desc',
versionCode: undefined
})
const columns = ref([
{ visible: true, align: 'center', type: '', prop: 'id', label: 'Id' },
{ visible: true, align: 'center', type: '', prop: 'versionCode', label: '版本号' },
{ visible: true, align: 'center', type: 'dict', prop: 'updateType', label: '更新类型', showOverflowTooltip: true },
{ visible: true, align: 'center', type: '', prop: 'downloadUrl', label: '下载地址', showOverflowTooltip: true },
{ visible: true, align: 'center', type: '', prop: 'isActive', label: '是否启用' }
//{ visible: false, prop: 'actions', label: '', type: 'slot', width: '160' }
])
const total = ref(0)
const dataList = ref([])
const queryRef = ref()
const defaultTime = ref([new Date(2000, 1, 1, 0, 0, 0), new Date(2000, 2, 1, 23, 59, 59)])
var dictParams = []
function getList() {
loading.value = true
listOdfAppUpdates(queryParams).then((res) => {
const { code, data } = res
if (code == 200) {
dataList.value = data.result
total.value = data.totalNum
loading.value = false
}
})
}
//
function handleQuery() {
queryParams.pageNum = 1
getList()
}
//
function resetQuery() {
proxy.resetForm('queryRef')
handleQuery()
}
//
function sortChange(column) {
var sort = undefined
var sortType = undefined
if (column.prop != null && column.order != null) {
sort = column.prop
sortType = column.order
}
queryParams.sort = sort
queryParams.sortType = sortType
handleQuery()
}
/*************** form操作 ***************/
const formRef = ref()
const title = ref('')
// 1add 2edit 3view
const opertype = ref(0)
const open = ref(false)
const state = reactive({
single: true,
multiple: true,
submitLoading: false,
form: {},
rules: {
versionCode: [{ required: true, message: '版本号不能为空', trigger: 'blur', type: 'number' }],
updateType: [{ required: true, message: '更新类型不能为空', trigger: 'change' }],
downloadUrl: [{ required: true, message: '下载地址不能为空', trigger: 'blur' }],
isActive: [{ required: true, message: '是否启用不能为空', trigger: 'blur' }]
},
options: {
// eg:{ dictLabel: '', dictValue: '0'}
updateTypeOptions: [
{ dictLabel: '可选更新', dictValue: '0' },
{ dictLabel: '强制更新', dictValue: '1' }
]
}
})
const { form, rules, options, single, multiple } = toRefs(state)
// dialog
function cancel() {
open.value = false
reset()
}
//
function reset() {
form.value = {
id: null,
versionCode: null,
updateType: null,
downloadUrl: null,
isActive: null,
createTime: null
}
proxy.resetForm('formRef')
}
//
function handleAdd() {
reset()
open.value = true
state.submitLoading = false
title.value = '添加App 更新表'
opertype.value = 1
}
//
function handleUpdate(row) {
reset()
state.submitLoading = false
const id = row.id || ids.value
getOdfAppUpdates(id).then((res) => {
const { code, data } = res
if (code == 200) {
open.value = true
title.value = '修改App 更新表'
opertype.value = 2
form.value = {
...data
}
}
})
}
// &
function submitForm() {
proxy.$refs['formRef'].validate((valid) => {
if (valid) {
state.submitLoading = true
if (form.value.id != undefined && opertype.value === 2) {
updateOdfAppUpdates(form.value).then((res) => {
proxy.$modal.msgSuccess('修改成功')
open.value = false
getList()
})
} else {
addOdfAppUpdates(form.value)
.then((res) => {
proxy.$modal.msgSuccess('新增成功')
open.value = false
getList()
})
.finally(() => {
setTimeout(() => {
state.submitLoading = false
}, 800)
})
}
}
})
}
//
function handleDelete(row) {
const Ids = row.id || ids.value
proxy
.$confirm('是否确认删除参数编号为"' + Ids + '"的数据项?', '警告', {
confirmButtonText: proxy.$t('common.ok'),
cancelButtonText: proxy.$t('common.cancel'),
type: 'warning'
})
.then(function () {
return delOdfAppUpdates(Ids)
})
.then(() => {
getList()
proxy.$modal.msgSuccess('删除成功')
})
}
// Promise
function handleStatusBeforeChange(row) {
const target = row.isActive === true ? false : true
const text = target ? '启用' : '停用'
return new Promise((resolve, reject) => {
proxy
.$confirm('确认要"' + text + '"该版本吗?', '警告', {
confirmButtonText: proxy.$t('common.ok'),
cancelButtonText: proxy.$t('common.cancel'),
type: 'warning'
})
.then(() => {
const payload = { id: row.id, IsActive: target === true }
OdfAppStatus(payload)
.then(() => {
proxy.$modal.msgSuccess(text + '成功')
row.isActive = target
getList()
resolve(true)
})
.catch(() => {
reject(false)
})
})
.catch(() => reject(false))
})
}
handleQuery()
</script>

View File

@ -188,6 +188,20 @@
align="center"
:show-overflow-tooltip="true"
v-if="columns.showColumn('opticalCableOffRemarks')" />
<el-table-column
prop="equipmentModel"
width="150"
label="设备型号"
align="center"
:show-overflow-tooltip="true"
v-if="columns.showColumn('equipmentModel')" />
<el-table-column
prop="businessType"
width="150"
label="业务类型"
align="center"
:show-overflow-tooltip="true"
v-if="columns.showColumn('businessType')" />
<el-table-column prop="createdAt" label="数据信息" width="180" :show-overflow-tooltip="true" v-if="columns.showColumn('createdAt')">
<template #default="scope">
<div class="time-info">
@ -754,6 +768,8 @@ const columns = ref([
{ visible: true, align: 'center', type: '', prop: 'opticalAttenuation', label: '光衰值dB', showOverflowTooltip: true },
{ visible: true, align: 'center', type: '', prop: 'historyRemarks', label: '历史故障表', showOverflowTooltip: true },
{ visible: true, align: 'center', type: '', prop: 'opticalCableOffRemarks', label: '光缆段信息', showOverflowTooltip: true },
{ visible: true, align: 'center', type: '', prop: 'equipmentModel', label: '设备型号', showOverflowTooltip: true, width: '200' },
{ visible: true, align: 'center', type: '', prop: 'businessType', label: '业务类型', showOverflowTooltip: true, width: '200' },
{ visible: true, align: 'center', type: '', prop: 'createdAt', label: '数据信息', showOverflowTooltip: true }
//{ visible: false, prop: 'actions', label: '', type: 'slot', width: '160' }
])