xuhuajiao
9 months ago
15 changed files with 725 additions and 8 deletions
-
10src/assets/iconfonts/light/iconfont.css
-
2src/assets/iconfonts/light/iconfont.js
-
7src/assets/iconfonts/light/iconfont.json
-
BINsrc/assets/iconfonts/light/iconfont.ttf
-
BINsrc/assets/iconfonts/light/iconfont.woff
-
BINsrc/assets/iconfonts/light/iconfont.woff2
-
9src/views/collectReorganizi/batchConnection/index.vue
-
40src/views/collectReorganizi/batchConnection/module/form.vue
-
16src/views/system/baseConfig/index.vue
-
16src/views/system/categoryConfig/index.vue
-
303src/views/system/database/index.vue
-
16src/views/system/fileLibraryConfig/index.vue
-
16src/views/system/otherConfig/index.vue
-
282src/views/system/remoteConnection/index.vue
-
16src/views/system/serviceConfig/index.vue
2
src/assets/iconfonts/light/iconfont.js
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,16 @@ |
|||
<template> |
|||
<div> |
|||
<router-view /> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name: 'BaseConfig', |
|||
data() { |
|||
return { |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
</style> |
@ -0,0 +1,16 @@ |
|||
<template> |
|||
<div> |
|||
<router-view /> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name: 'CategoryConfig', |
|||
data() { |
|||
return { |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
</style> |
@ -0,0 +1,303 @@ |
|||
<template> |
|||
<div class="app-container row-container"> |
|||
<div class="head-container"> |
|||
<div class="head-search"> |
|||
<!-- 搜索 --> |
|||
<el-input v-model="query.search" clearable size="small" placeholder="输入关键字搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
|||
<date-range-picker v-model="blurryTime" class="date-item" /> |
|||
<rrOperation> |
|||
<template v-slot:right> |
|||
<el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery()">重置</el-button> |
|||
</template> |
|||
</rrOperation> |
|||
</div> |
|||
<crudOperation :permission="permission"> |
|||
<template v-slot:middle> |
|||
<el-button slot="reference" size="mini" :loading="crud.delAllLoading" :disabled="crud.selections.length === 0" @click="toVerify('del')"> |
|||
<i class="iconfont icon-shanchu" /> |
|||
删除 |
|||
</el-button> |
|||
</template> |
|||
<template v-slot:right> |
|||
<el-button :loading="crud.downloadLoading" size="mini" :disabled="crud.selections.length !== 1" @click="toVerify('download')"> |
|||
<i class="iconfont icon-daochu" /> |
|||
导出 |
|||
</el-button> |
|||
<el-button size="mini" :disabled="crud.selections.length !== 1" @click="toVerify('return')"> |
|||
<i class="iconfont icon-huifu" /> |
|||
还原 |
|||
</el-button> |
|||
</template> |
|||
</crudOperation> |
|||
</div> |
|||
<div class="container-wrap"> |
|||
<span class="right-top-line" /> |
|||
<span class="left-bottom-line" /> |
|||
<!--表格渲染--> |
|||
<el-table |
|||
ref="table" |
|||
v-loading="crud.loading" |
|||
:data="crud.data" |
|||
style="width: 100%;" |
|||
@selection-change="crud.selectionChangeHandler" |
|||
> |
|||
<el-table-column type="selection" align="center" width="55" /> |
|||
<el-table-column prop="name" :show-overflow-tooltip="true" label="备份文件名" min-width="240" /> |
|||
<el-table-column prop="remark" :show-overflow-tooltip="true" label="备注" min-width="200" /> |
|||
<el-table-column prop="file_size" label="大小" min-width="85"> |
|||
<!-- <template slot-scope="scope"> |
|||
{{ getFileSize(scope.row.file_size) }} |
|||
</template> --> |
|||
</el-table-column> |
|||
<el-table-column prop="createBy" label="操作人" align="center" width="100" /> |
|||
<el-table-column prop="createTime" label="操作时间" align="center" width="180"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.createTime | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!--分页组件--> |
|||
<pagination /> |
|||
</div> |
|||
|
|||
<el-dialog class="tip-dialog tip-middle-dialog" title="操作提示" :close-on-click-modal="false" :modal-append-to-body="false" append-to-body :visible.sync="verifyDialogVisible" :before-close="handleClose"> |
|||
<div class="setting-dialog"> |
|||
<div class="tip-content"> |
|||
<p class="tipMsg">这里为技术人员维护系统时使用,普通用户无需设置</p> |
|||
<p class="delt-tip"><span>注意:强行修改会导致系统数据异常或丢失!如因用户强行修改,本系统不负责因此导致的相关后果!</span></p> |
|||
</div> |
|||
<el-form :model="form" style="margin-top:30px;" @submit.native.prevent> |
|||
<el-form-item label="维护验证码" label-width="110px"> |
|||
<el-input v-model="form.verifyCode" show-password style="width: 480px;" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button @click="verifyDialogVisible=false">取消 </el-button> |
|||
<el-button type="primary" @click.native="handleConfirm">确定</el-button> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
|
|||
<!-- form --> |
|||
<el-dialog append-to-body :close-on-click-modal="false" :modal-append-to-body="false" :before-close="crud.cancelCU" :visible="crud.status.cu > 0" :title="crud.status.title"> |
|||
<span class="dialog-right-top" /> |
|||
<span class="dialog-left-bottom" /> |
|||
<div class="setting-dialog"> |
|||
<el-form ref="form" :rules="rules" :model="form" size="small" label-width="100px"> |
|||
<el-form-item label="备份名称" prop="name"> |
|||
<el-input v-model="form.name" style="width: 580px;" /> |
|||
</el-form-item> |
|||
<el-form-item label="备注" prop="remark"> |
|||
<el-input v-model="form.remark" type="textarea" :rows="4" style="width: 580px;" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button type="text" @click="crud.cancelCU">取消</el-button> |
|||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">保存</el-button> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import { verifyMaintenance } from '@/api/system/field' |
|||
import { encrypt } from '@/utils/rsaEncrypt' |
|||
import crudNotify from '@/api/system/notify' |
|||
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
|||
import crudOperation from '@crud/CRUD.operation' |
|||
import rrOperation from '@crud/RR.operation' |
|||
import DateRangePicker from '@/components/DateRangePicker' |
|||
import pagination from '@crud/Pagination' |
|||
import { mapGetters } from 'vuex' |
|||
// import { exportFile } from '@/utils/index' |
|||
// import qs from 'qs' |
|||
|
|||
const defaultForm = { id: null, name: '', remark: null } |
|||
|
|||
export default { |
|||
name: 'Database', |
|||
components: { crudOperation, rrOperation, DateRangePicker, pagination }, |
|||
cruds() { |
|||
return CRUD({ |
|||
title: '数据备份', |
|||
url: 'api/notice/initNotice', |
|||
crudMethod: { ...crudNotify }, |
|||
sort: [], |
|||
optShow: { |
|||
add: true, |
|||
edit: false, |
|||
del: false, |
|||
download: false, |
|||
group: false, |
|||
reset: false |
|||
} |
|||
}) |
|||
}, |
|||
mixins: [presenter(), header(), form(defaultForm), crud()], |
|||
data() { |
|||
return { |
|||
permission: { |
|||
add: ['admin', 'database:add'], |
|||
edit: ['admin', 'database:edit'], |
|||
del: ['admin', 'database:del'] |
|||
}, |
|||
verifyDialogVisible: false, |
|||
form: { |
|||
verifyCode: '' |
|||
}, |
|||
btn: '', |
|||
showVerifyDialog: true, |
|||
blurryTime: null, |
|||
rules: { |
|||
name: [ |
|||
{ required: true, message: '备份名称不可为空', trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
...mapGetters([ |
|||
'baseApi' |
|||
]) |
|||
}, |
|||
created() { |
|||
}, |
|||
methods: { |
|||
[CRUD.HOOK.beforeToCU](crud, form, btn) { |
|||
if (this.showVerifyDialog) { |
|||
// 打开输入验证码对话框 |
|||
this.verifyDialogVisible = true |
|||
this.btn = btn |
|||
return false |
|||
} |
|||
}, |
|||
getFileSize(fileSize) { |
|||
const fileSizeInKB = (fileSize / 1024).toFixed(2) + 'kB' |
|||
const fileSizeInB = fileSize + 'B' |
|||
return (fileSize / 1024) <= 0.01 ? fileSizeInB : fileSizeInKB |
|||
}, |
|||
[CRUD.HOOK.beforeRefresh]() { |
|||
if (this.blurryTime) { |
|||
this.crud.query.startTime = this.blurryTime[0] |
|||
this.crud.query.endTime = this.blurryTime[1] |
|||
} else { |
|||
this.crud.query.startTime = null |
|||
this.crud.query.endTime = null |
|||
} |
|||
}, |
|||
// 提交前的验证 |
|||
[CRUD.HOOK.afterValidateCU](crud) { |
|||
console.log(crud.form) |
|||
return true |
|||
}, |
|||
resetQuery() { |
|||
this.crud.query.search = '' |
|||
this.blurryTime = null |
|||
this.crud.query.startTime = null |
|||
this.crud.query.endTime = null |
|||
this.crud.toQuery() |
|||
}, |
|||
toVerify(btn) { |
|||
if (this.showVerifyDialog) { |
|||
// 打开输入验证码对话框 |
|||
this.verifyDialogVisible = true |
|||
this.btn = btn |
|||
return false |
|||
} |
|||
}, |
|||
handleConfirm() { |
|||
verifyMaintenance(encrypt(this.form.verifyCode)).then((res) => { |
|||
if (res) { |
|||
// 关闭输入验证码对话框 |
|||
this.verifyDialogVisible = false |
|||
this.form.verifyCode = '' |
|||
this.showVerifyDialog = false |
|||
if (this.btn === 'add') { |
|||
this.crud.toAdd() |
|||
} else if (this.btn === 'edit') { |
|||
this.crud.toEdit(this.crud.selections[0]) |
|||
} else if (this.btn === 'del') { |
|||
this.toDelete(this.crud.selections) |
|||
} else if (this.btn === 'download') { |
|||
this.doExport(this.crud.selections[0]) |
|||
} else if (this.btn === 'return') { |
|||
this.toReturn(this.crud.selections[0]) |
|||
} |
|||
this.showVerifyDialog = true |
|||
} else { |
|||
this.$message({ message: '验证码错误!', type: 'error', offset: 8 }) |
|||
} |
|||
}) |
|||
}, |
|||
handleClose(done) { |
|||
this.form.verifyCode = '' |
|||
done() |
|||
}, |
|||
toDelete(data) { |
|||
this.$confirm('此操作将删除当前所选数据' + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '继续', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
// const ids = data.map(item => item.id) |
|||
// const params = { |
|||
// 'ids': ids, |
|||
// 'operator': this.user.username |
|||
// } |
|||
// crudEditing.del(params).then((res) => { |
|||
// console.log(res) |
|||
// if (res.code !== 500) { |
|||
// this.$message({ message: '删除成功', type: 'success', offset: 8 }) |
|||
// } else { |
|||
// this.$message({ message: res.message, type: 'error', offset: 8 }) |
|||
// } |
|||
// this.initData() |
|||
// }).catch(err => { |
|||
// console.log(err) |
|||
// }) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
doExport(data) { |
|||
// 只可导出一个 |
|||
this.crud.downloadLoading = true |
|||
this.$confirm('此操作将导出所选数据' + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '继续', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
// const params = { |
|||
// 'isType': this.isType |
|||
// } |
|||
// exportFile(this.baseApi + '/api/categoryField/download?' + qs.stringify(params, { indices: false })) |
|||
this.crud.downloadLoading = false |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
toReturn(data) { |
|||
// 只可恢复一个 |
|||
this.$confirm('此操作将还原当前所选备份' + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '继续', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
// const params = { |
|||
// 'isType': this.isType |
|||
// } |
|||
// exportFile(this.baseApi + '/api/categoryField/download?' + qs.stringify(params, { indices: false })) |
|||
}).catch(() => { |
|||
}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
::v-deep div.el-dialog__footer { |
|||
text-align: center; |
|||
} |
|||
</style> |
@ -0,0 +1,16 @@ |
|||
<template> |
|||
<div> |
|||
<router-view /> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name: 'FileLibraryConfig', |
|||
data() { |
|||
return { |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
</style> |
@ -0,0 +1,16 @@ |
|||
<template> |
|||
<div> |
|||
<router-view /> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name: 'OtherConfig', |
|||
data() { |
|||
return { |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
</style> |
@ -0,0 +1,282 @@ |
|||
<template> |
|||
<div class="app-container row-container"> |
|||
<div class="head-container"> |
|||
<div class="head-search"> |
|||
<!-- 搜索 --> |
|||
<el-input v-model="query.search" clearable size="small" placeholder="输入关键字搜索" prefix-icon="el-icon-search" style="width: 200px;" class="filter-item" @keyup.enter.native="crud.toQuery" /> |
|||
<el-select v-model="query.type" placeholder="请选择协议" style="width: 140px;" @change="crud.toQuery"> |
|||
<el-option |
|||
v-for="item in options" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value" |
|||
/> |
|||
</el-select> |
|||
<date-range-picker v-model="blurryTime" class="date-item" /> |
|||
<rrOperation> |
|||
<template v-slot:right> |
|||
<el-button class="filter-item filter-refresh" size="mini" type="warning" icon="el-icon-refresh-left" @click="resetQuery()">重置</el-button> |
|||
</template> |
|||
</rrOperation> |
|||
</div> |
|||
<crudOperation :permission="permission"> |
|||
<template v-slot:middle> |
|||
<el-button slot="reference" size="mini" :loading="crud.delAllLoading" :disabled="crud.selections.length === 0" @click="toDelete(crud.selections)"> |
|||
<i class="iconfont icon-shanchu" /> |
|||
删除 |
|||
</el-button> |
|||
</template> |
|||
<template v-slot:right> |
|||
<el-button :loading="crud.downloadLoading" size="mini" :disabled="crud.selections.length === 0" @click="doExport(crud.selections)"> |
|||
<i class="iconfont icon-daochu" /> |
|||
导出 |
|||
</el-button> |
|||
</template> |
|||
</crudOperation> |
|||
</div> |
|||
<!--表格渲染--> |
|||
<div class="container-wrap"> |
|||
<span class="right-top-line" /> |
|||
<span class="left-bottom-line" /> |
|||
<el-table |
|||
ref="table" |
|||
v-loading="crud.loading" |
|||
:data="crud.data" |
|||
style="width: 100%;" |
|||
@selection-change="crud.selectionChangeHandler" |
|||
> |
|||
<el-table-column type="selection" align="center" width="55" /> |
|||
<el-table-column prop="name" label="名称" min-width="160" /> |
|||
<el-table-column prop="type" label="协议" min-width="100" /> |
|||
<el-table-column prop="location" label="地址" min-width="100" /> |
|||
<el-table-column prop="port" label="端口" min-width="85" /> |
|||
<el-table-column prop="file_size" label="根目录" min-width="85" /> |
|||
<el-table-column prop="createBy" label="操作人" align="center" width="100" /> |
|||
<el-table-column prop="createTime" label="操作时间" align="center" width="180"> |
|||
<template slot-scope="scope"> |
|||
<div>{{ scope.row.createTime | parseTime }}</div> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<!--分页组件--> |
|||
<pagination /> |
|||
</div> |
|||
|
|||
<!-- form --> |
|||
<el-dialog append-to-body :close-on-click-modal="false" :modal-append-to-body="false" :before-close="crud.cancelCU" :visible="crud.status.cu > 0" :title="crud.status.title"> |
|||
<span class="dialog-right-top" /> |
|||
<span class="dialog-left-bottom" /> |
|||
<div class="setting-dialog"> |
|||
<el-form ref="form" :rules="rules" :model="form" size="small" label-width="100px"> |
|||
<el-form-item label="名称" prop="name"> |
|||
<el-input v-model="form.name" placeholder="请输入" style="width: 580px;" /> |
|||
</el-form-item> |
|||
<el-form-item label="协议" prop="protocol"> |
|||
<el-radio-group v-model="form.protocol" style="width: 580px;"> |
|||
<el-radio :label="0">服务器磁盘</el-radio> |
|||
<el-radio :label="1">FTP</el-radio> |
|||
<el-radio :label="2">SFTP</el-radio> |
|||
</el-radio-group> |
|||
</el-form-item> |
|||
<el-form-item label="地址" prop="location"> |
|||
<el-input v-model="form.location" placeholder="请输入" style="width: 580px;" /> |
|||
</el-form-item> |
|||
<el-form-item label="端口" prop="port"> |
|||
<el-input v-model="form.port" placeholder="请输入" style="width: 580px;" /> |
|||
</el-form-item> |
|||
<el-form-item label="账号" prop="account"> |
|||
<el-input v-model="form.account" placeholder="请输入" style="width: 580px;" /> |
|||
</el-form-item> |
|||
<el-form-item label="密码" prop="password"> |
|||
<el-input v-model="form.password" placeholder="请输入" style="width: 580px;" /> |
|||
</el-form-item> |
|||
<el-form-item label="根目录" prop="root"> |
|||
<el-input v-model="form.root" placeholder="请输入" style="width: 580px;" /> |
|||
</el-form-item> |
|||
<el-form-item label="成功后操作" prop="operate"> |
|||
<el-radio-group v-model="form.operate"> |
|||
<el-radio :label="0">保留文件</el-radio> |
|||
<el-radio :label="1">移除文件</el-radio> |
|||
</el-radio-group> |
|||
</el-form-item> |
|||
<el-form-item label="备注" prop="remark"> |
|||
<el-input v-model="form.remark" type="textarea" placeholder="请输入" :rows="4" style="width: 580px;" /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div slot="footer" class="dialog-footer"> |
|||
<el-button type="text" @click="crud.cancelCU">取消</el-button> |
|||
<el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">保存</el-button> |
|||
</div> |
|||
</div> |
|||
</el-dialog> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import crudNotify from '@/api/system/notify' |
|||
import CRUD, { presenter, header, form, crud } from '@crud/crud' |
|||
import crudOperation from '@crud/CRUD.operation' |
|||
import rrOperation from '@crud/RR.operation' |
|||
import DateRangePicker from '@/components/DateRangePicker' |
|||
import pagination from '@crud/Pagination' |
|||
import { mapGetters } from 'vuex' |
|||
// import { exportFile } from '@/utils/index' |
|||
// import qs from 'qs' |
|||
|
|||
const defaultForm = { id: null, name: '', protocol: 0, location: null, port: null, account: null, password: null, root: null, operate: null, remark: null } |
|||
|
|||
export default { |
|||
name: 'RemoteConnection', |
|||
components: { crudOperation, rrOperation, DateRangePicker, pagination }, |
|||
cruds() { |
|||
return CRUD({ |
|||
title: '远程设置', |
|||
url: 'api/notice/initNotice', |
|||
crudMethod: { ...crudNotify }, |
|||
sort: [], |
|||
optShow: { |
|||
add: true, |
|||
edit: true, |
|||
del: false, |
|||
download: false, |
|||
group: false, |
|||
reset: false |
|||
} |
|||
}) |
|||
}, |
|||
mixins: [presenter(), header(), form(defaultForm), crud()], |
|||
data() { |
|||
return { |
|||
permission: { |
|||
add: ['admin', 'remoteConnection:add'], |
|||
edit: ['admin', 'remoteConnection:edit'], |
|||
del: ['admin', 'remoteConnection:del'] |
|||
}, |
|||
blurryTime: null, |
|||
options: [ |
|||
{ |
|||
value: 1, |
|||
label: '服务端磁盘' |
|||
}, |
|||
{ |
|||
value: 2, |
|||
label: 'FTP' |
|||
}, |
|||
{ |
|||
value: 3, |
|||
label: 'SFTP' |
|||
} |
|||
], |
|||
rules: { |
|||
name: [ |
|||
{ required: true, message: '名称不可为空', trigger: 'blur' } |
|||
], |
|||
protocol: [ |
|||
{ required: true, message: '请选择', trigger: 'change' } |
|||
], |
|||
location: [ |
|||
{ required: true, message: '地址不可为空', trigger: 'blur' } |
|||
], |
|||
port: [ |
|||
{ required: true, message: '端口不可为空', trigger: 'blur' } |
|||
], |
|||
account: [ |
|||
{ required: true, message: '账号不可为空', trigger: 'blur' } |
|||
], |
|||
password: [ |
|||
{ required: true, message: '密码不可为空', trigger: 'blur' } |
|||
], |
|||
root: [ |
|||
{ required: true, message: '根目录不可为空', trigger: 'blur' } |
|||
], |
|||
operate: [ |
|||
{ required: true, message: '请选择', trigger: 'change' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
...mapGetters([ |
|||
'baseApi' |
|||
]) |
|||
}, |
|||
created() { |
|||
}, |
|||
methods: { |
|||
[CRUD.HOOK.beforeRefresh]() { |
|||
if (this.blurryTime) { |
|||
this.crud.query.startTime = this.blurryTime[0] |
|||
this.crud.query.endTime = this.blurryTime[1] |
|||
} else { |
|||
this.crud.query.startTime = null |
|||
this.crud.query.endTime = null |
|||
} |
|||
}, |
|||
// 提交前的验证 |
|||
[CRUD.HOOK.afterValidateCU](crud) { |
|||
console.log(crud.form) |
|||
return true |
|||
}, |
|||
resetQuery() { |
|||
this.crud.query.search = '' |
|||
this.crud.query.type = null |
|||
this.blurryTime = null |
|||
this.crud.query.startTime = null |
|||
this.crud.query.endTime = null |
|||
this.crud.toQuery() |
|||
}, |
|||
toDelete(data) { |
|||
this.$confirm('此操作将删除当前所选设置' + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '继续', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
// const ids = data.map(item => item.id) |
|||
// const params = { |
|||
// 'ids': ids, |
|||
// 'operator': this.user.username |
|||
// } |
|||
// crudEditing.del(params).then((res) => { |
|||
// console.log(res) |
|||
// if (res.code !== 500) { |
|||
// this.$message({ message: '删除成功', type: 'success', offset: 8 }) |
|||
// } else { |
|||
// this.$message({ message: res.message, type: 'error', offset: 8 }) |
|||
// } |
|||
// this.initData() |
|||
// }).catch(err => { |
|||
// console.log(err) |
|||
// }) |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
doExport(data) { |
|||
this.crud.downloadLoading = true |
|||
this.$confirm('此操作将导出所选数据' + '<span>你是否还要继续?</span>', '提示', { |
|||
confirmButtonText: '继续', |
|||
cancelButtonText: '取消', |
|||
type: 'warning', |
|||
dangerouslyUseHTMLString: true |
|||
}).then(() => { |
|||
// const params = { |
|||
// 'isType': this.isType |
|||
// } |
|||
// exportFile(this.baseApi + '/api/categoryField/download?' + qs.stringify(params, { indices: false })) |
|||
this.crud.downloadLoading = false |
|||
}).catch(() => { |
|||
this.crud.downloadLoading = false |
|||
}) |
|||
}, |
|||
handleClose(done) { |
|||
done() |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
::v-deep div.el-dialog__footer { |
|||
text-align: center; |
|||
} |
|||
</style> |
@ -0,0 +1,16 @@ |
|||
<template> |
|||
<div> |
|||
<router-view /> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
export default { |
|||
name: 'ServiceConfig', |
|||
data() { |
|||
return { |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue