修改数据来源
This commit is contained in:
@@ -41,8 +41,8 @@ const form = reactive({
|
|||||||
id: ''
|
id: ''
|
||||||
})
|
})
|
||||||
const rules = {
|
const rules = {
|
||||||
name: [{ required: true, message: '角色名称不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '请输入角色名称', trigger: 'blur' }],
|
||||||
code: [{ required: true, message: '角色编码不能为空', trigger: 'blur' }]
|
code: [{ required: true, message: '请输入角色编码', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
|
|
||||||
const open = (text: string, data?: anyObj) => {
|
const open = (text: string, data?: anyObj) => {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ const tableStore = new TableStore({
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: '/user-boot/user/checkUserList',
|
url: '/user-boot/user/checkUserList',
|
||||||
column: [
|
column: [
|
||||||
// { width: '60', type: 'checkbox' },
|
{ width: '60', type: 'checkbox' },
|
||||||
{ title: '名称', field: 'name' },
|
{ title: '名称', field: 'name' },
|
||||||
{ title: '登录名', field: 'loginName' },
|
{ title: '登录名', field: 'loginName' },
|
||||||
{ title: '角色', field: 'roleName' },
|
{ title: '角色', field: 'roleName' },
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ const form: any = reactive({
|
|||||||
})
|
})
|
||||||
const rules = {
|
const rules = {
|
||||||
code: [
|
code: [
|
||||||
{ required: true, message: '标识不能为空', trigger: 'blur' },
|
{ required: true, message: '请输入标识', trigger: 'blur' },
|
||||||
{
|
{
|
||||||
pattern: /^[a-zA-Z_]{1}[a-zA-Z0-9_]{2,20}$/,
|
pattern: /^[a-zA-Z_]{1}[a-zA-Z0-9_]{2,20}$/,
|
||||||
message: '请输入至少3-20位英文',
|
message: '请输入至少3-20位英文',
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ const form = reactive({
|
|||||||
type: 0
|
type: 0
|
||||||
})
|
})
|
||||||
const rules = {
|
const rules = {
|
||||||
name: [{ required: true, message: '角色名称不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '请输入角色名称', trigger: 'blur' }],
|
||||||
code: [{ required: true, message: '角色编码不能为空', trigger: 'blur' }]
|
code: [{ required: true, message: '请输入角色编码', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const title = ref('新增菜单')
|
const title = ref('新增菜单')
|
||||||
|
|||||||
@@ -140,15 +140,15 @@ const form = reactive({
|
|||||||
})
|
})
|
||||||
const formRef = ref()
|
const formRef = ref()
|
||||||
const rules: Partial<Record<string, Arrayable<FormItemRule>>> = {
|
const rules: Partial<Record<string, Arrayable<FormItemRule>>> = {
|
||||||
name: [{ required: true, message: '用户名不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
|
||||||
role: [{ required: true, message: '角色不能为空', trigger: 'blur' }],
|
role: [{ required: true, message: '请输入角色', trigger: 'blur' }],
|
||||||
password: [{ required: true, message: '用户密码不能为空', trigger: 'blur' }],
|
password: [{ required: true, message: '请输入用户密码', trigger: 'blur' }],
|
||||||
loginName: [{ required: true, message: '登录名不能为空', trigger: 'blur' }],
|
loginName: [{ required: true, message: '请输入登录名', trigger: 'blur' }],
|
||||||
casualUser: [{ required: true, message: '用户类型不能为空', trigger: 'blur' }],
|
casualUser: [{ required: true, message: '请输入用户类型', trigger: 'blur' }],
|
||||||
smsNotice: [{ required: true, message: '短信通知不能为空', trigger: 'blur' }],
|
smsNotice: [{ required: true, message: '请输入短信通知', trigger: 'blur' }],
|
||||||
emailNotice: [{ required: true, message: '邮件通知不能为空', trigger: 'blur' }],
|
emailNotice: [{ required: true, message: '请输入邮件通知', trigger: 'blur' }],
|
||||||
email: [
|
email: [
|
||||||
{ required: false, message: '邮箱不能为空', trigger: 'blur' },
|
{ required: false, message: '请输入邮箱', trigger: 'blur' },
|
||||||
{
|
{
|
||||||
type: 'email',
|
type: 'email',
|
||||||
message: "'请输入正确的邮箱地址",
|
message: "'请输入正确的邮箱地址",
|
||||||
@@ -156,16 +156,16 @@ const rules: Partial<Record<string, Arrayable<FormItemRule>>> = {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
phone: [
|
phone: [
|
||||||
{ required: false, message: '手机号不能为空', trigger: 'blur' },
|
{ required: false, message: '请输入手机号', trigger: 'blur' },
|
||||||
{
|
{
|
||||||
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
|
||||||
message: '请输入正确的手机号码',
|
message: '请输入正确的手机号码',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
limitTime: [{ required: true, message: '时间段不能为空', trigger: 'blur' }],
|
limitTime: [{ required: true, message: '请选择时间段', trigger: 'blur' }],
|
||||||
limitIpStart: [
|
limitIpStart: [
|
||||||
{ required: true, message: '起始IP不能为空', trigger: 'blur' },
|
{ required: true, message: '请输入起始IP', trigger: 'blur' },
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
validator: (rule: any, value: string, callback: any) => {
|
validator: (rule: any, value: string, callback: any) => {
|
||||||
@@ -183,7 +183,7 @@ const rules: Partial<Record<string, Arrayable<FormItemRule>>> = {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
limitIpEnd: [
|
limitIpEnd: [
|
||||||
{ required: true, message: '结束IP不能为空', trigger: 'blur' },
|
{ required: true, message: '请输入结束IP', trigger: 'blur' },
|
||||||
{
|
{
|
||||||
required: true,
|
required: true,
|
||||||
validator: (rule: any, value: string, callback: any) => {
|
validator: (rule: any, value: string, callback: any) => {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
@change="sourceChange"
|
@change="sourceChange"
|
||||||
:options="deviceTreeOptions"
|
:options="deviceTreeOptions"
|
||||||
:show-all-levels="false"
|
:show-all-levels="false"
|
||||||
:props="{ checkStrictly: true }"
|
:props="{ checkStrictly: true, value: 'id', label: 'name' }"
|
||||||
clearable
|
clearable
|
||||||
></el-cascader>
|
></el-cascader>
|
||||||
<!-- <el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue" placeholder="请输入设备名称" /> -->
|
<!-- <el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue" placeholder="请输入设备名称" /> -->
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
@change="sourceChange"
|
@change="sourceChange"
|
||||||
:options="deviceTreeOptions"
|
:options="deviceTreeOptions"
|
||||||
:show-all-levels="false"
|
:show-all-levels="false"
|
||||||
:props="{ checkStrictly: true }"
|
:props="{ checkStrictly: true, value: 'id', label: 'name' }"
|
||||||
clearable
|
clearable
|
||||||
></el-cascader>
|
></el-cascader>
|
||||||
<!-- <el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue" placeholder="请输入设备名称" /> -->
|
<!-- <el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue" placeholder="请输入设备名称" /> -->
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
v-model.trim="tableStore.table.params.cascader"
|
v-model.trim="tableStore.table.params.cascader"
|
||||||
:options="deviceTreeOptions"
|
:options="deviceTreeOptions"
|
||||||
:show-all-levels="false"
|
:show-all-levels="false"
|
||||||
:props="{ checkStrictly: true }"
|
:props="{ checkStrictly: true, value: 'id', label: 'name' }"
|
||||||
clearable
|
clearable
|
||||||
></el-cascader>
|
></el-cascader>
|
||||||
<!-- <el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue" placeholder="请输入设备名称" /> -->
|
<!-- <el-input maxlength="32" show-word-limit v-model.trim="tableStore.table.params.searchValue" placeholder="请输入设备名称" /> -->
|
||||||
@@ -121,23 +121,24 @@ const tableStore = new TableStore({
|
|||||||
method: 'POST',
|
method: 'POST',
|
||||||
publicHeight: 65,
|
publicHeight: 65,
|
||||||
exportName: '暂态事件',
|
exportName: '暂态事件',
|
||||||
column: [ {
|
column: [
|
||||||
|
{
|
||||||
title: '序号',
|
title: '序号',
|
||||||
width: 80,
|
width: 80,
|
||||||
formatter: (row: any) => {
|
formatter: (row: any) => {
|
||||||
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
return (tableStore.table.params.pageNum - 1) * tableStore.table.params.pageSize + row.rowIndex + 1
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ title: '设备名称', field: 'equipmentName', minWidth: 120,align: 'center' },
|
{ title: '设备名称', field: 'equipmentName', minWidth: 120, align: 'center' },
|
||||||
{ title: '工程名称', field: 'engineeringName', minWidth: 120,align: 'center' },
|
{ title: '工程名称', field: 'engineeringName', minWidth: 120, align: 'center' },
|
||||||
{ title: '项目名称', field: 'projectName', minWidth: 120,align: 'center' },
|
{ title: '项目名称', field: 'projectName', minWidth: 120, align: 'center' },
|
||||||
{ title: '发生时刻', field: 'startTime', align: 'center', minWidth: 180,sortable: true },
|
{ title: '发生时刻', field: 'startTime', align: 'center', minWidth: 180, sortable: true },
|
||||||
{ title: '监测点名称', field: 'lineName', minWidth: 120,align: 'center' },
|
{ title: '监测点名称', field: 'lineName', minWidth: 120, align: 'center' },
|
||||||
{ title: '事件描述', field: 'showName', minWidth: 120,align: 'center' },
|
{ title: '事件描述', field: 'showName', minWidth: 120, align: 'center' },
|
||||||
{ title: '事件发生位置', field: 'evtParamPosition',minWidth: 150, align: 'center' },
|
{ title: '事件发生位置', field: 'evtParamPosition', minWidth: 150, align: 'center' },
|
||||||
{ title: '相别', field: 'evtParamPhase',minWidth: 80, align: 'center' },
|
{ title: '相别', field: 'evtParamPhase', minWidth: 80, align: 'center' },
|
||||||
{ title: '持续时间(s)', field: 'evtParamTm',minWidth: 80, align: 'center',sortable: true },
|
{ title: '持续时间(s)', field: 'evtParamTm', minWidth: 80, align: 'center', sortable: true },
|
||||||
{ title: '暂降(聚升)幅值(%)', minWidth: 100, field: 'evtParamVVaDepth', align: 'center',sortable: true },
|
{ title: '暂降(聚升)幅值(%)', minWidth: 100, field: 'evtParamVVaDepth', align: 'center', sortable: true },
|
||||||
|
|
||||||
{
|
{
|
||||||
title: '操作',
|
title: '操作',
|
||||||
@@ -234,24 +235,24 @@ const tableStore = new TableStore({
|
|||||||
icon: 'el-icon-DataLine',
|
icon: 'el-icon-DataLine',
|
||||||
render: 'basicButton',
|
render: 'basicButton',
|
||||||
disabled: row => {
|
disabled: row => {
|
||||||
return row.showName != '未知';
|
return row.showName != '未知'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'edit',
|
name: 'edit',
|
||||||
title: '波形补召',
|
title: '波形补召',
|
||||||
type: 'primary',
|
type: 'primary',
|
||||||
icon: 'el-icon-Check',
|
icon: 'el-icon-Check',
|
||||||
render: 'basicButton',
|
render: 'basicButton',
|
||||||
disabled: row => {
|
disabled: row => {
|
||||||
return row.wavePath || row.showName === '未知';
|
return row.wavePath || row.showName === '未知'
|
||||||
},
|
},
|
||||||
click: row => {
|
click: row => {
|
||||||
getFileByEventId(row.id).then(res => {
|
getFileByEventId(row.id).then(res => {
|
||||||
ElMessage.success(res.message)
|
ElMessage.success(res.message)
|
||||||
tableStore.index()
|
tableStore.index()
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -313,7 +314,6 @@ const sourceChange = (e: any) => {
|
|||||||
tableStore.table.params.engineeringid = e[1] || ''
|
tableStore.table.params.engineeringid = e[1] || ''
|
||||||
tableStore.table.params.projectId = e[2] || ''
|
tableStore.table.params.projectId = e[2] || ''
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// tableStore.table.params.engineeringid = e[1] || ''
|
// tableStore.table.params.engineeringid = e[1] || ''
|
||||||
|
|||||||
@@ -34,19 +34,19 @@ const deviceTree = ref([])
|
|||||||
const activeName = ref('1')
|
const activeName = ref('1')
|
||||||
const key = ref(0)
|
const key = ref(0)
|
||||||
getDeviceTree().then(res => {
|
getDeviceTree().then(res => {
|
||||||
res.data.forEach((item: any) => {
|
// res.data.forEach((item: any) => {
|
||||||
item.value = item.id
|
// item.value = item.id
|
||||||
item.label = item.name
|
// item.label = item.name
|
||||||
item.children.forEach((child: any) => {
|
// item.children.forEach((child: any) => {
|
||||||
child.value = child.id
|
// child.value = child.id
|
||||||
child.label = child.name
|
// child.label = child.name
|
||||||
child.children.forEach((grand: any) => {
|
// child.children.forEach((grand: any) => {
|
||||||
grand.value = grand.id
|
// grand.value = grand.id
|
||||||
grand.label = grand.name
|
// grand.label = grand.name
|
||||||
delete grand.children
|
// delete grand.children
|
||||||
})
|
// })
|
||||||
})
|
// })
|
||||||
})
|
// })
|
||||||
deviceTree.value = res.data
|
deviceTree.value = res.data
|
||||||
key.value += 1
|
key.value += 1
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -129,12 +129,12 @@ const form = reactive({
|
|||||||
ndid: ''
|
ndid: ''
|
||||||
})
|
})
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
name: [{ required: true, message: '设备名不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '请输入设备名', trigger: 'blur' }],
|
||||||
ndid: [{ required: true, message: '网络设备id不能为空', trigger: 'blur' }],
|
ndid: [{ required: true, message: '请输入网络设备id', trigger: 'blur' }],
|
||||||
devType: [{ required: true, message: '设备类型不能为空', trigger: 'change' }],
|
devType: [{ required: true, message: '请选择设备类型', trigger: 'change' }],
|
||||||
devModel: [{ required: true, message: '设备型号不能为空', trigger: 'change' }],
|
devModel: [{ required: true, message: '请选择设备型号', trigger: 'change' }],
|
||||||
devAccessMethod: [{ required: true, message: '接入方式不能为空', trigger: 'blur' }],
|
devAccessMethod: [{ required: true, message: '请输入接入方式', trigger: 'blur' }],
|
||||||
cntractNo: [{ required: true, message: '合同号不能为空', trigger: 'blur' }]
|
cntractNo: [{ required: true, message: '请输入合同号', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
const dialogFormVisible = ref(false)
|
const dialogFormVisible = ref(false)
|
||||||
const dialogTitle = ref('新增设备')
|
const dialogTitle = ref('新增设备')
|
||||||
|
|||||||
@@ -153,15 +153,15 @@ const form = reactive<any>({
|
|||||||
file: []
|
file: []
|
||||||
})
|
})
|
||||||
const rules = {
|
const rules = {
|
||||||
type: [{ required: true, message: '装置类型不能为空', trigger: 'change' }],
|
type: [{ required: true, message: '请选择装置类型', trigger: 'change' }],
|
||||||
devType: [{ required: true, message: '装置型号不能为空', trigger: 'change' }],
|
devType: [{ required: true, message: '请选择装置型号', trigger: 'change' }],
|
||||||
versionNo: [{ required: true, message: '版本号不能为空', trigger: 'blur' }],
|
versionNo: [{ required: true, message: '请输入版本号', trigger: 'blur' }],
|
||||||
versionType: [{ required: true, message: '版本类型不能为空', trigger: 'blur' }],
|
versionType: [{ required: true, message: '请输入版本类型', trigger: 'blur' }],
|
||||||
versionAgreement: [{ required: true, message: '版本协议不能为空', trigger: 'blur' }],
|
versionAgreement: [{ required: true, message: '请输入版本协议', trigger: 'blur' }],
|
||||||
versionDate: [{ required: true, message: '版本日期不能为空', trigger: 'blur' }],
|
versionDate: [{ required: true, message: '请输入版本日期', trigger: 'blur' }],
|
||||||
description: [{ required: true, message: '描述不能为空', trigger: 'blur' }],
|
description: [{ required: true, message: '请输入描述', trigger: 'blur' }],
|
||||||
crcInfo: [{ required: true, message: 'CRC校验不能为空', trigger: 'blur' }],
|
crcInfo: [{ required: true, message: '请输入CRC校验', trigger: 'blur' }],
|
||||||
file: [{ required: true, message: '升级文件不能为空', trigger: 'blur' }]
|
file: [{ required: true, message: '请输入升级文件', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
const typeChange = () => {
|
const typeChange = () => {
|
||||||
// console.log(form.type)
|
// console.log(form.type)
|
||||||
|
|||||||
@@ -233,13 +233,13 @@ const form = reactive({
|
|||||||
sort: 0
|
sort: 0
|
||||||
})
|
})
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
name: [{ required: true, message: '设备名不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '请输入设备名', trigger: 'blur' }],
|
||||||
ndid: [{ required: true, message: '网络设备id不能为空', trigger: 'blur' }],
|
ndid: [{ required: true, message: '请输入网络设备id', trigger: 'blur' }],
|
||||||
devType: [{ required: true, message: '设备类型不能为空', trigger: 'change' }],
|
devType: [{ required: true, message: '请选择设备类型', trigger: 'change' }],
|
||||||
devModel: [{ required: true, message: '设备型号不能为空', trigger: 'change' }],
|
devModel: [{ required: true, message: '请选择设备型号', trigger: 'change' }],
|
||||||
devAccessMethod: [{ required: true, message: '接入方式不能为空', trigger: 'blur' }],
|
devAccessMethod: [{ required: true, message: '请输入接入方式', trigger: 'blur' }],
|
||||||
cntractNo: [{ required: true, message: '合同号不能为空', trigger: 'blur' }],
|
cntractNo: [{ required: true, message: '请输入合同号', trigger: 'blur' }],
|
||||||
sort: [{ required: true, message: '排序不能为空', trigger: 'blur' }]
|
sort: [{ required: true, message: '请输入排序', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
const qrcodeFlag = ref(false)
|
const qrcodeFlag = ref(false)
|
||||||
const tableKey = ref(0)
|
const tableKey = ref(0)
|
||||||
|
|||||||
@@ -63,12 +63,12 @@ const form = reactive<any>({
|
|||||||
sort:100
|
sort:100
|
||||||
})
|
})
|
||||||
const rules = {
|
const rules = {
|
||||||
substationName: [{ required: true, message: '所属厂站名称不能为空', trigger: 'blur' }],
|
substationName: [{ required: true, message: '请输入所属厂站名称', trigger: 'blur' }],
|
||||||
name: [{ required: true, message: '敏感用户名称不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '请输入敏感用户名称', trigger: 'blur' }],
|
||||||
loadType: [{ required: true, message: '请选择敏感负荷类型', trigger: 'blur' }],
|
loadType: [{ required: true, message: '请输入请选择敏感负荷类型', trigger: 'blur' }],
|
||||||
installedCapacity: [{ required: true, message: '用户协议容量不能为空', trigger: 'blur' }],
|
installedCapacity: [{ required: true, message: '请输入用户协议容量', trigger: 'blur' }],
|
||||||
userAgreementCapacity: [{ required: true, message: '装机容量不能为空', trigger: 'blur' }],
|
userAgreementCapacity: [{ required: true, message: '请输入装机容量', trigger: 'blur' }],
|
||||||
sort: [{ required: true, message: '排序不能为空', trigger: 'blur' }]
|
sort: [{ required: true, message: '请输入排序', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
|
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
|
|||||||
@@ -127,12 +127,12 @@ const form = reactive({
|
|||||||
ndid: ''
|
ndid: ''
|
||||||
})
|
})
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
name: [{ required: true, message: '设备名不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '请输入设备名', trigger: 'blur' }],
|
||||||
ndid: [{ required: true, message: '网络设备id不能为空', trigger: 'blur' }],
|
ndid: [{ required: true, message: '请输入网络设备id', trigger: 'blur' }],
|
||||||
devType: [{ required: true, message: '设备类型不能为空', trigger: 'change' }],
|
devType: [{ required: true, message: '请选择设备类型', trigger: 'change' }],
|
||||||
devModel: [{ required: true, message: '设备型号不能为空', trigger: 'change' }],
|
devModel: [{ required: true, message: '请选择设备型号', trigger: 'change' }],
|
||||||
devAccessMethod: [{ required: true, message: '接入方式不能为空', trigger: 'blur' }],
|
devAccessMethod: [{ required: true, message: '请输入接入方式', trigger: 'blur' }],
|
||||||
cntractNo: [{ required: true, message: '合同号不能为空', trigger: 'blur' }]
|
cntractNo: [{ required: true, message: '请输入合同号', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
const dialogFormVisible = ref(false)
|
const dialogFormVisible = ref(false)
|
||||||
const dialogTitle = ref('新增设备')
|
const dialogTitle = ref('新增设备')
|
||||||
|
|||||||
@@ -128,12 +128,12 @@ const form = reactive({
|
|||||||
ndid: ''
|
ndid: ''
|
||||||
})
|
})
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
name: [{ required: true, message: '设备名不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '请输入设备名', trigger: 'blur' }],
|
||||||
ndid: [{ required: true, message: '网络设备id不能为空', trigger: 'blur' }],
|
ndid: [{ required: true, message: '请输入网络设备id', trigger: 'blur' }],
|
||||||
devType: [{ required: true, message: '设备类型不能为空', trigger: 'change' }],
|
devType: [{ required: true, message: '请选择设备类型', trigger: 'change' }],
|
||||||
devModel: [{ required: true, message: '设备型号不能为空', trigger: 'change' }],
|
devModel: [{ required: true, message: '请选择设备型号', trigger: 'change' }],
|
||||||
devAccessMethod: [{ required: true, message: '接入方式不能为空', trigger: 'blur' }],
|
devAccessMethod: [{ required: true, message: '请输入接入方式', trigger: 'blur' }],
|
||||||
cntractNo: [{ required: true, message: '合同号不能为空', trigger: 'blur' }]
|
cntractNo: [{ required: true, message: '请输入合同号', trigger: 'blur' }]
|
||||||
})
|
})
|
||||||
const dialogFormVisible = ref(false)
|
const dialogFormVisible = ref(false)
|
||||||
const dialogTitle = ref('新增设备')
|
const dialogTitle = ref('新增设备')
|
||||||
|
|||||||
@@ -1,42 +1,64 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog width="600px" v-model.trim='dialogVisible' :title='title'>
|
<el-dialog width="600px" v-model.trim="dialogVisible" :title="title">
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<el-form :inline='false' :model='form' label-width='auto' class="form-one" :rules='rules' ref='formRef'>
|
<el-form :inline="false" :model="form" label-width="auto" class="form-one" :rules="rules" ref="formRef">
|
||||||
<el-form-item label='名称:' class='top' prop='name'>
|
<el-form-item label="名称:" class="top" prop="name">
|
||||||
<el-input maxlength="32" show-word-limit v-model.trim='form.name' placeholder='请输入名称'></el-input>
|
<el-input
|
||||||
|
maxlength="32"
|
||||||
|
show-word-limit
|
||||||
|
v-model.trim="form.name"
|
||||||
|
placeholder="请输入名称"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label='计算值:' class='top'>
|
<el-form-item label="计算值:" class="top">
|
||||||
<el-input maxlength="32" show-word-limit v-model.trim='form.value' placeholder="请输入计算值"></el-input>
|
<el-input
|
||||||
|
maxlength="32"
|
||||||
|
show-word-limit
|
||||||
|
v-model.trim="form.value"
|
||||||
|
placeholder="请输入计算值"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item class='top' label='对应算法:' prop='algoDescribe' v-if='form.openDescribe == 1'>
|
<el-form-item class="top" label="对应算法:" prop="algoDescribe" v-if="form.openDescribe == 1">
|
||||||
<el-input maxlength="32" show-word-limit v-model.trim='form.algoDescribe'
|
<el-input
|
||||||
placeholder='请输入数字'></el-input>
|
maxlength="32"
|
||||||
|
show-word-limit
|
||||||
|
v-model.trim="form.algoDescribe"
|
||||||
|
placeholder="请输入数字"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item class='top' label='编码:' prop='code'>
|
<el-form-item class="top" label="编码:" prop="code">
|
||||||
<el-input maxlength="32" show-word-limit v-model.trim='form.code'></el-input>
|
<el-input
|
||||||
|
maxlength="32"
|
||||||
|
show-word-limit
|
||||||
|
v-model.trim="form.code"
|
||||||
|
placeholder="请输入编码"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label='排序:' prop='sort' class='top'>
|
<el-form-item label="排序:" prop="sort" class="top">
|
||||||
<el-input maxlength="32" show-word-limit-number v-model.trim='form.sort' :min='0' />
|
<el-input maxlength="32" show-word-limit-number v-model.trim="form.sort" :min="0" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if='form.openLevel === 1' label='事件等级:'>
|
<el-form-item v-if="form.openLevel === 1" label="事件等级:">
|
||||||
<el-select v-model.trim='form.level' placeholder='选择开启等级'>
|
<el-select v-model.trim="form.level" placeholder="选择开启等级">
|
||||||
<el-option v-for='item in EventOpenLevel' :key='item.value' :label='item.label'
|
<el-option
|
||||||
:value='item.value'>
|
v-for="item in EventOpenLevel"
|
||||||
</el-option>
|
:key="item.value"
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class='dialog-footer'>
|
<span class="dialog-footer">
|
||||||
<el-button @click='dialogVisible = false'>取消</el-button>
|
<el-button @click="dialogVisible = false">取消</el-button>
|
||||||
<el-button type='primary' @click='submit'>确认</el-button>
|
<el-button type="primary" @click="submit">确认</el-button>
|
||||||
</span>
|
</span>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
</template>
|
</template>
|
||||||
<script lang='ts' setup>
|
<script lang="ts" setup>
|
||||||
import { ref, inject } from 'vue'
|
import { ref, inject } from 'vue'
|
||||||
import { reactive } from 'vue'
|
import { reactive } from 'vue'
|
||||||
import TableStore from '@/utils/tableStore'
|
import TableStore from '@/utils/tableStore'
|
||||||
@@ -72,22 +94,16 @@ const EventOpenLevel = [
|
|||||||
]
|
]
|
||||||
const rules = {
|
const rules = {
|
||||||
algoDescribe: [
|
algoDescribe: [
|
||||||
{ required: false, message: '对应算法不能为空', trigger: 'blur' },
|
{ required: false, message: '请输入对应算法', trigger: 'blur' },
|
||||||
{
|
{
|
||||||
pattern: /^\d+$|^\d+[.]?\d+$/,
|
pattern: /^\d+$|^\d+[.]?\d+$/,
|
||||||
message: '请您数字对应算法',
|
message: '请您数字对应算法',
|
||||||
trigger: 'blur'
|
trigger: 'blur'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
name: [
|
name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
|
||||||
{ required: true, message: '名称不能为空', trigger: 'blur' }
|
code: [{ required: true, message: '请输入编码', trigger: 'blur' }],
|
||||||
],
|
sort: [{ required: true, message: '请输入排序', trigger: 'blur' }]
|
||||||
code: [
|
|
||||||
{ required: true, message: '编码不能为空', trigger: 'blur' }
|
|
||||||
],
|
|
||||||
sort: [
|
|
||||||
{ required: true, message: '排序不能为空', trigger: 'blur' }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const title = ref('新增')
|
const title = ref('新增')
|
||||||
|
|||||||
@@ -69,13 +69,14 @@ const form = reactive({
|
|||||||
id: ''
|
id: ''
|
||||||
})
|
})
|
||||||
const rules = {
|
const rules = {
|
||||||
name: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '请输入名称', trigger: 'blur' }],
|
||||||
sort: [{ required: true, message: '不能为空', trigger: 'blur' }],
|
sort: [{ required: true, message: '请输入排序', trigger: 'blur' }],
|
||||||
code: [{ required: true, message: '不能为空', trigger: 'blur' }]
|
code: [{ required: true, message: '请输入编码', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const title = ref('新增字典类型')
|
const title = ref('新增字典类型')
|
||||||
const open = (text: string, data?: anyObj) => {
|
const open = (text: string, data?: anyObj) => {
|
||||||
|
formRef.value?.resetFields()
|
||||||
title.value = text
|
title.value = text
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
if (data) {
|
if (data) {
|
||||||
|
|||||||
@@ -1,19 +1,41 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog class="cn-operate-dialog" width="500px" v-model.trim="dialogVisible" :title="title">
|
<el-dialog class="cn-operate-dialog" width="500px" v-model.trim="dialogVisible" :title="title">
|
||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<el-form :inline="false" :model="form" label-width="120px" :rules="rules">
|
<el-form :inline="false" :model="form" ref="formRef" label-width="120px" :rules="rules">
|
||||||
<el-form-item label="字典名称:" prop="name">
|
<el-form-item label="字典名称:" prop="name">
|
||||||
<el-input maxlength="32" show-word-limit v-model.trim="form.name" placeholder="请输入字典名称"></el-input>
|
<el-input
|
||||||
</el-form-item>
|
maxlength="32"
|
||||||
<el-form-item label="序号:" prop="sort" class="top">
|
show-word-limit
|
||||||
<el-input maxlength="32" show-word-limit v-model.trim="form.sort" placeholder="请输入序号"></el-input>
|
v-model.trim="form.name"
|
||||||
|
placeholder="请输入字典名称"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<el-form-item label="编码:" prop="code" class="top">
|
<el-form-item label="编码:" prop="code" class="top">
|
||||||
<el-input maxlength="32" show-word-limit v-model.trim="form.code" placeholder="请输入字典编码"></el-input>
|
<el-input
|
||||||
|
maxlength="32"
|
||||||
|
show-word-limit
|
||||||
|
v-model.trim="form.code"
|
||||||
|
placeholder="请输入字典编码"
|
||||||
|
></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="排序:" prop="sort" class="top">
|
||||||
|
<el-input
|
||||||
|
maxlength="32"
|
||||||
|
show-word-limit
|
||||||
|
v-model.number="form.sort"
|
||||||
|
placeholder="请输入排序"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="描述:" class="top">
|
<el-form-item label="描述:" class="top">
|
||||||
<el-input maxlength="32" :autosize="{ minRows: 2, maxRows: 4 }" type="textarea" show-word-limit v-model.trim="form.remark"
|
<el-input
|
||||||
placeholder="请输入字典描述"></el-input>
|
maxlength="32"
|
||||||
|
:autosize="{ minRows: 2, maxRows: 4 }"
|
||||||
|
type="textarea"
|
||||||
|
show-word-limit
|
||||||
|
v-model.trim="form.remark"
|
||||||
|
placeholder="请输入字典描述"
|
||||||
|
></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-scrollbar>
|
</el-scrollbar>
|
||||||
@@ -46,14 +68,16 @@ const form = reactive({
|
|||||||
pid: 0,
|
pid: 0,
|
||||||
id: ''
|
id: ''
|
||||||
})
|
})
|
||||||
|
const formRef = ref()
|
||||||
const rules = {
|
const rules = {
|
||||||
name: [{ required: true, message: '名称不能为空', trigger: 'blur' }],
|
name: [{ required: true, message: '请选择名称', trigger: 'blur' }],
|
||||||
sort: [{ required: true, message: '排序不能为空', trigger: 'blur' }],
|
sort: [{ required: true, message: '请选择排序', trigger: 'blur' }],
|
||||||
code: [{ required: true, message: '编码不能为空', trigger: 'blur' }]
|
code: [{ required: true, message: '请选择编码', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
const dialogVisible = ref(false)
|
const dialogVisible = ref(false)
|
||||||
const title = ref('新增菜单')
|
const title = ref('新增菜单')
|
||||||
const open = (text: string, data?: anyObj) => {
|
const open = (text: string, data?: anyObj) => {
|
||||||
|
formRef.value?.resetFields()
|
||||||
title.value = text
|
title.value = text
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
if (data) {
|
if (data) {
|
||||||
@@ -70,14 +94,18 @@ const open = (text: string, data?: anyObj) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
const submit = async () => {
|
const submit = async () => {
|
||||||
if (form.id) {
|
formRef.value.validate(async (valid: any) => {
|
||||||
await dicUpdate(form)
|
if (valid) {
|
||||||
} else {
|
if (form.id) {
|
||||||
await dicAdd(form)
|
await dicUpdate(form)
|
||||||
}
|
} else {
|
||||||
ElMessage.success('保存成功')
|
await dicAdd(form)
|
||||||
tableStore.index()
|
}
|
||||||
dialogVisible.value = false
|
ElMessage.success('保存成功')
|
||||||
|
tableStore.index()
|
||||||
|
dialogVisible.value = false
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
defineExpose({ open })
|
defineExpose({ open })
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-dialog draggable v-model.trim="dialogVisible" :title="title" :before-close="Cancel">
|
<el-dialog draggable v-model.trim="dialogVisible" :title="title" :before-close="Cancel">
|
||||||
<el-form :inline="false" :model="configStore" label-width="auto">
|
<el-form :inline="false" :model="configStore" ref="formRef" label-width="auto" :rules="rules">
|
||||||
<el-divider border-style="dashed">全局</el-divider>
|
<el-divider border-style="dashed">全局</el-divider>
|
||||||
<div class="layout-config-global form-two">
|
<div class="layout-config-global form-two">
|
||||||
<el-form-item label="组件主名称">
|
<el-form-item label="主题名称" prop="name">
|
||||||
<el-input v-model.trim="configStore.name" placeholder="请输入主题名称" />
|
<el-input v-model.trim="configStore.name" placeholder="请输入主题名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="后台页面切换动画">
|
<el-form-item label="后台页面切换动画">
|
||||||
@@ -29,9 +29,13 @@
|
|||||||
<el-form-item label="表格激活栏颜色">
|
<el-form-item label="表格激活栏颜色">
|
||||||
<el-color-picker v-model.trim="configStore.tableCurrent[0]" />
|
<el-color-picker v-model.trim="configStore.tableCurrent[0]" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="组件主描述">
|
<el-form-item label="组件主描述" prop="remark">
|
||||||
<el-input v-model.trim="configStore.remark" :autosize="{ minRows: 2, maxRows: 4 }" type="textarea"
|
<el-input
|
||||||
placeholder="请输入描述" />
|
v-model.trim="configStore.remark"
|
||||||
|
:autosize="{ minRows: 2, maxRows: 4 }"
|
||||||
|
type="textarea"
|
||||||
|
placeholder="请输入描述"
|
||||||
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</div>
|
</div>
|
||||||
<el-divider border-style="dashed">侧边栏</el-divider>
|
<el-divider border-style="dashed">侧边栏</el-divider>
|
||||||
@@ -62,10 +66,20 @@
|
|||||||
<el-color-picker v-model.trim="configStore.headerBarTabColor[0]" />
|
<el-color-picker v-model.trim="configStore.headerBarTabColor[0]" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="顶栏logo">
|
<el-form-item label="顶栏logo">
|
||||||
<el-image style="height: 50px" :src="logoFile.url" :preview-src-list="[logoFile.url]"
|
<el-image
|
||||||
v-if="logoFile.url" class="mr10"></el-image>
|
style="height: 50px"
|
||||||
<el-upload action="" :show-file-list="false" :auto-upload="false" accept=".png,.jpg"
|
:src="logoFile.url"
|
||||||
:on-change="chooseImage">
|
:preview-src-list="[logoFile.url]"
|
||||||
|
v-if="logoFile.url"
|
||||||
|
class="mr10"
|
||||||
|
></el-image>
|
||||||
|
<el-upload
|
||||||
|
action=""
|
||||||
|
:show-file-list="false"
|
||||||
|
:auto-upload="false"
|
||||||
|
accept=".png,.jpg"
|
||||||
|
:on-change="chooseImage"
|
||||||
|
>
|
||||||
<el-button type="primary">上传图片</el-button>
|
<el-button type="primary">上传图片</el-button>
|
||||||
</el-upload>
|
</el-upload>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -74,8 +88,8 @@
|
|||||||
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<div class="dialog-footer">
|
<div class="dialog-footer">
|
||||||
<el-button type="primary" @click="onSubmit">确定</el-button>
|
|
||||||
<el-button @click="Cancel">取消</el-button>
|
<el-button @click="Cancel">取消</el-button>
|
||||||
|
<el-button type="primary" @click="onSubmit">确定</el-button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@@ -89,6 +103,10 @@ const dialogVisible = ref(false)
|
|||||||
const title = ref('')
|
const title = ref('')
|
||||||
import { addTheme, updateTheme } from '@/api/system/subject/index'
|
import { addTheme, updateTheme } from '@/api/system/subject/index'
|
||||||
const emit = defineEmits(['Cancels'])
|
const emit = defineEmits(['Cancels'])
|
||||||
|
const rules = {
|
||||||
|
name: [{ required: true, message: '请输入主题名称', trigger: 'blur' }],
|
||||||
|
remark: [{ required: true, message: '请输入主题描述', trigger: 'blur' }]
|
||||||
|
}
|
||||||
const configStore = ref({
|
const configStore = ref({
|
||||||
// 后台主页面切换动画,可选值<slide-right|slide-left|el-fade-in-linear|el-fade-in|el-zoom-in-center|el-zoom-in-top|el-zoom-in-bottom>
|
// 后台主页面切换动画,可选值<slide-right|slide-left|el-fade-in-linear|el-fade-in|el-zoom-in-center|el-zoom-in-top|el-zoom-in-bottom>
|
||||||
mainAnimation: 'el-fade-in',
|
mainAnimation: 'el-fade-in',
|
||||||
@@ -124,8 +142,9 @@ const logoFile = reactive({
|
|||||||
url: '',
|
url: '',
|
||||||
raw: ''
|
raw: ''
|
||||||
})
|
})
|
||||||
|
const formRef = ref()
|
||||||
const open = (e: any) => {
|
const open = (e: any) => {
|
||||||
|
formRef.value?.resetFields()
|
||||||
title.value = e.text
|
title.value = e.text
|
||||||
dialogVisible.value = true
|
dialogVisible.value = true
|
||||||
if (e.text == '修改主题') {
|
if (e.text == '修改主题') {
|
||||||
@@ -153,60 +172,65 @@ const open = (e: any) => {
|
|||||||
}
|
}
|
||||||
// 确定主题
|
// 确定主题
|
||||||
const onSubmit = () => {
|
const onSubmit = () => {
|
||||||
configStore.value.faviconFile = configStore.value.logoFile
|
formRef.value.validate(async valid => {
|
||||||
configStore.value.color = configStore.value.elementUiPrimary[0]
|
if (valid) {
|
||||||
let form = new FormData()
|
configStore.value.faviconFile = configStore.value.logoFile
|
||||||
for (let k in configStore.value) {
|
configStore.value.color = configStore.value.elementUiPrimary[0]
|
||||||
if (
|
let form = new FormData()
|
||||||
k == 'logoFile' ||
|
for (let k in configStore.value) {
|
||||||
k == 'faviconFile' ||
|
if (
|
||||||
k == 'name' ||
|
k == 'logoFile' ||
|
||||||
k == 'color' ||
|
k == 'faviconFile' ||
|
||||||
k == 'remark' ||
|
k == 'name' ||
|
||||||
k == 'mainAnimation' ||
|
k == 'color' ||
|
||||||
k == 'id'
|
k == 'remark' ||
|
||||||
) {
|
k == 'mainAnimation' ||
|
||||||
form.append(k, configStore.value[k])
|
k == 'id'
|
||||||
} else if (k == 'logoUrl' || k == 'faviconUrl') {
|
) {
|
||||||
if (configStore.value.logoFile == null) {
|
form.append(k, configStore.value[k])
|
||||||
let str = configStore.value[k].match(/base64,([^"]+)/)[1]
|
} else if (k == 'logoUrl' || k == 'faviconUrl') {
|
||||||
let bin = atob(str)
|
if (configStore.value.logoFile == null) {
|
||||||
let arr = new Array(bin.length)
|
let str = configStore.value[k].match(/base64,([^"]+)/)[1]
|
||||||
for (let i = 0; i < bin.length; i++) {
|
let bin = atob(str)
|
||||||
arr[i] = bin.charCodeAt(i)
|
let arr = new Array(bin.length)
|
||||||
|
for (let i = 0; i < bin.length; i++) {
|
||||||
|
arr[i] = bin.charCodeAt(i)
|
||||||
|
}
|
||||||
|
let b = new Uint8Array(arr)
|
||||||
|
const blob = new Blob([b], { type: 'image/jpeg' })
|
||||||
|
form.append('faviconFile', blob)
|
||||||
|
form.append('logoFile', blob)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
form.append(k, JSON.stringify(configStore.value[k]))
|
||||||
}
|
}
|
||||||
let b = new Uint8Array(arr)
|
|
||||||
const blob = new Blob([b], { type: 'image/jpeg' })
|
|
||||||
form.append('faviconFile', blob)
|
|
||||||
form.append('logoFile', blob)
|
|
||||||
}
|
}
|
||||||
} else {
|
// if(){
|
||||||
form.append(k, JSON.stringify(configStore.value[k]))
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
if (title.value == '新增主题') {
|
||||||
|
addTheme(form).then(res => {
|
||||||
|
ElMessage.success('新增成功')
|
||||||
|
Cancel()
|
||||||
|
})
|
||||||
|
}
|
||||||
|
if (title.value == '修改主题') {
|
||||||
|
updateTheme(form).then(res => {
|
||||||
|
ElMessage.success('修改成功')
|
||||||
|
Cancel()
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
|
|
||||||
if (title.value == '新增主题') {
|
|
||||||
addTheme(form).then(res => {
|
|
||||||
ElMessage.success('新增成功')
|
|
||||||
Cancel()
|
|
||||||
|
|
||||||
})
|
|
||||||
}
|
|
||||||
if (title.value == '修改主题') {
|
|
||||||
updateTheme(form).then(res => {
|
|
||||||
ElMessage.success('修改成功')
|
|
||||||
Cancel()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
// 取消
|
// 取消
|
||||||
const Cancel = () => {
|
const Cancel = () => {
|
||||||
|
|
||||||
// dialogVisible.value = false
|
// dialogVisible.value = false
|
||||||
emit('Cancels')
|
emit('Cancels')
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
router.go(0)
|
router.go(0)
|
||||||
}, 500);
|
}, 500)
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 选择图片上传
|
* 选择图片上传
|
||||||
|
|||||||
Reference in New Issue
Block a user