feat: 新增新的安装包新增,新增渠道管理和APP管理页面和新增页面

This commit is contained in:
张洋川 2024-04-11 14:55:21 +08:00
parent 8fb318f5d9
commit cbb9766375
7 changed files with 857 additions and 225 deletions

View File

@ -0,0 +1,120 @@
<template>
<div class="app-container">
<el-container>
<el-header>
<div>新增渠道</div>
<el-divider/>
</el-header>
<el-main>
<el-form ref="elForm" :model="formData" :rules="rules" label-width="100px" size="medium">
<el-form-item label="APP" prop="field101">
<el-input v-model="formData.field101" :style="{width: '100%'}" clearable placeholder="请输入APP">
</el-input>
</el-form-item>
<el-form-item label="版本号" prop="field102">
<el-select v-model="formData.field102" :style="{width: '100%'}" clearable placeholder="请选择版本号">
<el-option v-for="(item, index) in field102Options" :key="index" :disabled="item.disabled"
:label="item.label" :value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="下载市场" prop="field103">
<el-radio-group v-model="formData.field103" size="medium">
<el-radio v-for="(item, index) in field103Options" :key="index" :disabled="item.disabled"
:label="item.value"
>{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item size="large">
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-form>
</el-main>
</el-container>
</div>
</template>
<script>
export default {
components: {},
props: [],
data() {
return {
formData: {
field101: undefined,
field102: undefined,
field103: undefined
},
rules: {
field101: [{
required: true,
message: '请输入APP',
trigger: 'blur'
}],
field102: [{
required: true,
message: '请选择版本号',
trigger: 'change'
}],
field103: [{
required: true,
message: '下载市场不能为空',
trigger: 'change'
}]
},
field102Options: [{
'label': '选项一',
'value': 1
}, {
'label': '选项二',
'value': 2
}],
field103Options: [{
'label': '应用市场',
'value': 1
}, {
'label': '阿里云',
'value': 2
}]
}
},
computed: {},
watch: {},
created() {
},
mounted() {
},
methods: {
submitForm() {
this.$refs['elForm'].validate(valid => {
if (!valid) return
// TODO
})
},
resetForm() {
this.$refs['elForm'].resetFields()
}
}
}
</script>
<style lang="scss" scoped>
.app-container {
background: #ffffff;
margin: 24px;
}
.form-main {
width: 700px;
margin: 0 auto;
}
::v-deep .el-input.is-disabled .el-input__inner, .el-textarea.is-disabled .el-textarea__inner {
border: 1px solid #E4E7ED !important;
}
.el-upload__tip {
line-height: 1.2;
}
</style>

View File

@ -0,0 +1,207 @@
<template>
<div class="app-container">
<el-form v-show="showSearch" ref="queryForm" :inline="true" :model="queryParams" label-width="90px" size="small">
<el-form-item label="选择APP" prop="sysApkName">
<el-input
v-model="queryParams.sysApkName"
clearable
placeholder="请输入APP"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="版本号" prop="version">
<el-input
v-model="queryParams.version"
clearable
placeholder="请输入版本号"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button icon="el-icon-search" size="mini" type="primary" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
v-hasPermi="['system:config:add']"
icon="el-icon-plus"
plain
size="mini"
type="primary"
@click="handleAdd"
>新建
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
v-hasPermi="['system:config:delete']"
:disabled="multiple"
icon="el-icon-plus"
plain
size="mini"
type="info"
@click="handleDelete"
>批量删除
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="INFOList" @selection-change="handleSelectionChange">
<el-table-column align="center" type="selection" width="55"/>
<el-table-column align="center" label="APP" prop="APP"/>
<el-table-column align="center" label="最新版本号" prop="version"/>
<el-table-column align="center" label="文件类型" prop="sysApk"/>
<el-table-column align="center" label="公开时间" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="请求次数" prop="sysApk"/>
<el-table-column align="center" label="注册时间" prop="sysApk"/>
<el-table-column align="center" class-name="small-padding fixed-width" label="操作" width="250">
<template slot-scope="scope">
<el-button
v-hasPermi="['system:config:dowmload']"
icon="el-icon-edit"
size="mini"
type="text"
@click="handleDown(scope.row)"
>下架
</el-button>
<el-button
v-hasPermi="['system:config:edit']"
icon="el-icon-edit"
size="mini"
type="text"
@click="handleEdit(scope.row)"
>编辑
</el-button>
<el-button
v-hasPermi="['system:config:delete']"
icon="el-icon-delete"
size="mini"
type="text"
@click="handleDelete(scope.row)"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:limit.sync="queryParams.pageSize"
:page.sync="queryParams.pageNum"
:total="total"
@pagination="getList"
/>
</div>
</template>
<script>
// import { listINFO, getINFO, delINFO, addINFO, updateINFO } from "@/api/deploy/INFO";
export default {
name: 'ChannelManagement',
dicts: ['sys_yes_no'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
INFOList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
sysApkName: null,
version: null
},
//
form: {}
}
},
created() {
this.getList()
},
methods: {
/** 查询安装包管理(新)列表 */
getList() {
this.loading = false
// listINFO(this.queryParams).then(response => {
// this.INFOList = response.rows
// this.total = response.total
// this.loading = false
// })
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.create_time = []
this.resetForm('queryForm')
this.handleQuery()
},
/** 新增按钮操作 */
handleAdd() {
this.$router.push({
path: 'install/add',
params: {
type: 'add',
activeTabs: this.activeTabs
}
})
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length != 1
this.multiple = !selection.length
},
/** 删除按钮操作 */
handleDelete(row) {
const configIds = row.id || this.ids
this.$modal.confirm('是否确认删除编号为"' + configIds + '"的数据项?').then(function() {
return delConfig(configIds)
}).then(() => {
this.getList()
this.$modal.msgSuccess('删除成功')
}).catch(() => {
})
},
/** 修改按钮操作 */
handleEdit(row) {
this.reset()
const configId = row.id || this.ids
getConfig(configId).then(response => {
this.$router.push({
path: 'install/add',
params: {
type: 'edit',
activeTabs: this.activeTabs
}
})
})
},
/** 下架操作 **/
handleDown() {
}
}
}
</script>

View File

@ -0,0 +1,120 @@
<template>
<div class="app-container">
<el-container>
<el-header>
<div>新增渠道</div>
<el-divider/>
</el-header>
<el-main>
<el-form ref="elForm" :model="formData" :rules="rules" label-width="100px" size="medium">
<el-form-item label="手机品牌" prop="field101">
<el-input v-model="formData.field101" :style="{width: '100%'}" clearable placeholder="请输入手机品牌">
</el-input>
</el-form-item>
<el-form-item label="版本号" prop="field102">
<el-select v-model="formData.field102" :style="{width: '100%'}" clearable placeholder="请选择版本号">
<el-option v-for="(item, index) in field102Options" :key="index" :disabled="item.disabled"
:label="item.label" :value="item.value"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="下载市场" prop="field103">
<el-radio-group v-model="formData.field103" size="medium">
<el-radio v-for="(item, index) in field103Options" :key="index" :disabled="item.disabled"
:label="item.value"
>{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item size="large">
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-form>
</el-main>
</el-container>
</div>
</template>
<script>
export default {
components: {},
props: [],
data() {
return {
formData: {
field101: undefined,
field102: undefined,
field103: undefined
},
rules: {
field101: [{
required: true,
message: '请输入手机品牌',
trigger: 'blur'
}],
field102: [{
required: true,
message: '请选择版本号',
trigger: 'change'
}],
field103: [{
required: true,
message: '下载市场不能为空',
trigger: 'change'
}]
},
field102Options: [{
'label': '选项一',
'value': 1
}, {
'label': '选项二',
'value': 2
}],
field103Options: [{
'label': '应用市场',
'value': 1
}, {
'label': '阿里云',
'value': 2
}]
}
},
computed: {},
watch: {},
created() {
},
mounted() {
},
methods: {
submitForm() {
this.$refs['elForm'].validate(valid => {
if (!valid) return
// TODO
})
},
resetForm() {
this.$refs['elForm'].resetFields()
}
}
}
</script>
<style lang="scss" scoped>
.app-container {
background: #ffffff;
margin: 24px;
}
.form-main {
width: 700px;
margin: 0 auto;
}
::v-deep .el-input.is-disabled .el-input__inner, .el-textarea.is-disabled .el-textarea__inner {
border: 1px solid #E4E7ED !important;
}
.el-upload__tip {
line-height: 1.2;
}
</style>

View File

@ -0,0 +1,210 @@
<template>
<div class="app-container">
<el-form v-show="showSearch" ref="queryForm" :inline="true" :model="queryParams" label-width="90px" size="small">
<el-form-item label="手机品牌" prop="sysApkName">
<el-input
v-model="queryParams.sysApkName"
clearable
placeholder="请输入手机品牌"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="版本号" prop="version">
<el-input
v-model="queryParams.version"
clearable
placeholder="请输入版本号"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button icon="el-icon-search" size="mini" type="primary" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
v-hasPermi="['system:config:add']"
icon="el-icon-plus"
plain
size="mini"
type="primary"
@click="handleAdd"
>新建
</el-button>
</el-col>
<el-col :span="1.5">
<el-button
v-hasPermi="['system:config:delete']"
:disabled="multiple"
icon="el-icon-plus"
plain
size="mini"
type="info"
@click="handleDelete"
>批量删除
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="INFOList" @selection-change="handleSelectionChange">
<el-table-column align="center" type="selection" width="55"/>
<el-table-column align="center" label="手机品牌" prop="sysApkName"/>
<el-table-column align="center" label="版本号" prop="version"/>
<el-table-column align="center" label="下载市场" prop="sysApk"/>
<el-table-column align="center" label="发布时间" prop="createTime" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
<el-table-column align="center" label="状态" prop="uploading_status">
<template slot-scope="scopeA">
<dict-tag :options="dict.type.sys_yes_no" :value="scopeA.row.type"/>
</template>
</el-table-column>
<el-table-column align="center" class-name="small-padding fixed-width" label="操作" width="250">
<template slot-scope="scope">
<el-button
v-hasPermi="['system:config:dowmload']"
icon="el-icon-edit"
size="mini"
type="text"
@click="handleDown(scope.row)"
>下架
</el-button>
<el-button
v-hasPermi="['system:config:edit']"
icon="el-icon-edit"
size="mini"
type="text"
@click="handleEdit(scope.row)"
>编辑
</el-button>
<el-button
v-hasPermi="['system:config:delete']"
icon="el-icon-delete"
size="mini"
type="text"
@click="handleDelete(scope.row)"
>删除
</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:limit.sync="queryParams.pageSize"
:page.sync="queryParams.pageNum"
:total="total"
@pagination="getList"
/>
</div>
</template>
<script>
// import { listINFO, getINFO, delINFO, addINFO, updateINFO } from "@/api/deploy/INFO";
export default {
name: 'ChannelManagement',
dicts: ['sys_yes_no'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
INFOList: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
sysApkName: null,
version: null
},
//
form: {}
}
},
created() {
this.getList()
},
methods: {
/** 查询安装包管理(新)列表 */
getList() {
this.loading = false
// listINFO(this.queryParams).then(response => {
// this.INFOList = response.rows
// this.total = response.total
// this.loading = false
// })
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.create_time = []
this.resetForm('queryForm')
this.handleQuery()
},
/** 新增按钮操作 */
handleAdd() {
this.$router.push({
path: 'install/add',
params: {
type: 'add',
activeTabs: this.activeTabs
}
})
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length != 1
this.multiple = !selection.length
},
/** 删除按钮操作 */
handleDelete(row) {
const configIds = row.id || this.ids
this.$modal.confirm('是否确认删除编号为"' + configIds + '"的数据项?').then(function() {
return delConfig(configIds)
}).then(() => {
this.getList()
this.$modal.msgSuccess('删除成功')
}).catch(() => {
})
},
/** 修改按钮操作 */
handleEdit(row) {
this.reset()
const configId = row.id || this.ids
getConfig(configId).then(response => {
this.$router.push({
path: 'install/add',
params: {
type: 'edit',
activeTabs: this.activeTabs
}
})
})
},
/** 下架操作 **/
handleDown() {
}
}
}
</script>

View File

@ -2,76 +2,53 @@
<div class="app-container">
<el-container>
<el-header>
<div>新增文件</div>
<div>新增安装包</div>
<el-divider/>
</el-header>
<el-main>
<div class="form-main">
<el-form ref="formAdd" v-loading="$store.state.app.isLoading" :model="form" :rules="rules"
label-width="120px"
>
<el-form-item label="上传方式" prop="debug">
<el-radio-group v-model="form.debug">
<el-radio
:key="1"
label="1"
>在线上传
</el-radio>
<el-radio
:key="2"
label="2"
>离线上传
<el-form ref="elForm" :model="formData" :rules="rules" label-width="100px" size="medium">
<el-form-item label="上传方式" prop="field102">
<el-radio-group v-model="formData.field102" size="medium">
<el-radio v-for="(item, index) in field102Options" :key="index" :disabled="item.disabled"
:label="item.value"
>{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item :label="activeTabs=='1'?'安装包名称':'模块包名称'" prop="configKey">
<el-input v-model="form.configKey" :placeholder="activeTabs=='1'?'请输入安装包名称':'请输入模块包名称'"/>
<el-form-item v-if="activeTabs===1" label="安装包名称" prop="field103">
<el-input v-model="formData.field103" :style="{width: '100%'}" clearable placeholder="请输入安装包名称">
</el-input>
</el-form-item>
<el-form-item label="版本号">
<el-input v-model="form.configName" placeholder="请输入版本号"/>
<el-form-item v-else label="模块包名称" prop="field107">
<el-input v-model="formData.field107" :style="{width: '100%'}" clearable placeholder="请输入模块包名称">
</el-input>
</el-form-item>
<el-form-item label="安装包文件">
<el-upload
ref="whiteListFiles"
:auto-upload="true"
:before-remove="beforeRemove"
:before-upload="beforeAvatarUpload"
:file-list="fileList"
:headers="{tokenId: tokenId}"
:multiple="false"
:on-success="handleSuccess"
accept=".zip"
action="https://jsonplaceholder.typicode.com/posts/"
class="upload"
limit="1"
<el-form-item label="版本号" prop="field104">
<el-input v-model="formData.field104" :style="{width: '100%'}" clearable placeholder="请输入版本号">
</el-input>
</el-form-item>
<el-form-item label="安装包文件" prop="field101">
<el-upload ref="field101" :action="field101Action" :before-upload="field101BeforeUpload"
:file-list="field101fileList"
>
<el-button slot="trigger" size="small" type="primary">上传文件</el-button>
<el-button icon="el-icon-upload" size="small" type="primary">上传文件</el-button>
</el-upload>
</el-form-item>
<el-form-item label="安装包大小">
<el-input v-model="form.configName" placeholder="请输入安装包版本号"/>
<el-form-item label="安装包大小" prop="field105">
<el-input v-model="formData.field105" :style="{width: '100%'}" clearable placeholder="请输入安装包大小">
</el-input>
</el-form-item>
<el-form-item label="适用系统">
<el-radio-group v-model="form.platform">
<el-radio
:key="1"
label="Android"
>Android
</el-radio>
<el-radio
:key="2"
label="鸿蒙"
>鸿蒙
</el-radio>
<el-radio
:key="3"
label="IOS"
>IOS
<el-form-item label="适用系统" prop="field106">
<el-radio-group v-model="formData.field106" size="medium">
<el-radio v-for="(item, index) in field106Options" :key="index" :disabled="item.disabled"
:label="item.value"
>{{ item.label }}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="activeTabs!='1'" label="适用模块" prop="configName">
<el-select v-model="form.uploadMode" clearable placeholder="请选择对应的模块">
<el-select v-model="formData.field108" clearable placeholder="请选择对应的模块">
<el-option
v-for="dict in dict.type.sys_yes_no"
:key="dict.value"
@ -80,95 +57,120 @@
/>
</el-select>
</el-form-item>
<el-form-item size="large">
<el-button type="primary" @click="submitForm">提交</el-button>
<el-button @click="resetForm">重置</el-button>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitAddForm()"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
<!-- <div slot="footer" class="dialog-footer">-->
<!-- <el-button type="primary" @click="submitAddForm()"> </el-button>-->
<!-- <el-button @click="cancel"> </el-button>-->
<!-- </div>-->
</el-main>
<!--安装包弹窗-->
</el-container>
</div>
</template>
<script>
import { addConfig, updateConfig } from '@/api/system/config'
export default {
name: 'InstallAdd',
dicts: ['sys_yes_no'],
data() {
return {
form: {},
tokenId: '',
//
fileList: [],
rules: {
configName: [
{ required: true, message: '上传方式不能为空', trigger: 'change' }
],
configKey: [
{ required: true, message: '安装包名称不能为空', trigger: 'blur' }
]
formData: {
field102: 1,
field103: undefined,
field104: undefined,
field101: null,
field105: undefined,
field106: 'Android',
field107: undefined,
field108: undefined
},
rules: {
field102: [{
required: true,
message: '上传方式不能为空',
trigger: 'change'
}],
field103: [{
required: true,
message: '请输入安装包名称',
trigger: 'blur'
}],
field107: [{
required: true,
message: '请输入模块包名称',
trigger: 'blur'
}],
field105: [],
field106: []
},
field101Action: 'https://jsonplaceholder.typicode.com/posts/',
field101fileList: [],
field102Options: [{
'label': '在线上传',
'value': 1
}, {
'label': '离线上传',
'value': 2
}],
field106Options: [{
'label': 'Android',
'value': 'Android'
}, {
'label': 'IOS',
'value': 'IOS'
}, {
'label': '鸿蒙',
'value': 'HarmonyOS'
}],
activeTabs: '1'
}
},
computed: {},
mounted() {
console.log(this.$route)
this.activeTabs = this.$route.params.activeTabs
},
methods: {
reset() {
this.form = {
whiteListType: undefined,
whiteListName: undefined,
remark: undefined
}
this.resetForm('form')
},
/** 提交按钮 */
submitAddForm: function() {
this.$refs['form'].validate(valid => {
if (valid) {
if (this.form.configId != undefined) {
updateConfig(this.form).then(response => {
this.$modal.msgSuccess('修改成功')
this.closeModal()
})
} else {
addConfig(this.form).then(response => {
this.$modal.msgSuccess('新增成功')
this.closeModal()
})
}
}
submitForm() {
this.$refs['elForm'].validate(valid => {
if (!valid) return
// TODO
})
},
/** 在上传之前进行校验 */
beforeAvatarUpload(file) {
const formatList = file.name.split('.')
const isFormat = file.type === 'text/plain' || formatList[formatList.length - 1] === 'txt'
if (!isFormat) {
this.$message.error(`上传格式只能是名称后缀为.txt的文本文件!`)
}
const isLt2M = file.size / 1024 / 1024 < 5
if (!isLt2M) {
this.$message.error(`上传文件大小不能超过5M!`)
}
return isLt2M && isFormat
// submitAddForm: function() {
// this.$refs['form'].validate(valid => {
// if (valid) {
// if (this.form.configId != undefined) {
// updateConfig(this.form).then(response => {
// this.$modal.msgSuccess('')
// this.closeModal()
// })
// } else {
// addConfig(this.form).then(response => {
// this.$modal.msgSuccess('')
// this.closeModal()
// })
// }
// }
// })
// },
//
resetForm() {
this.$refs['elForm'].resetFields()
},
/** 上传文件 */
handleSuccess(file) {
this.fileList = []
const nameList = file.context.path.split('/')
this.fileList.push({
name: file.context.name || nameList[nameList.length - 1],
url: file.context.path
})
this.addFormData.path = file.context.path
},
beforeRemove(files, filesList) {
return this.$confirm(`确定要移除${files.name}`)
field101BeforeUpload(file) {
let isRightSize = file.size / 1024 / 1024 < 2
if (!isRightSize) {
this.$message.error('文件大小超过 2MB')
}
return isRightSize
},
cancel() {
this.history.back()
@ -191,14 +193,7 @@ export default {
border: 1px solid #E4E7ED !important;
}
.tag-group {
.el-tag {
cursor: pointer;
}
}
.el-tag + .el-tag {
margin-left: 10px
.el-upload__tip {
line-height: 1.2;
}
</style>

View File

@ -10,16 +10,16 @@
<el-form ref="form" :model="form" label-width="150px" size="mini">
<el-row>
<el-col :span="24">
<el-form-item label="上传方式:">离线上传</el-form-item>
<el-form-item label="上传方式:">{{ form.uploading_type }}</el-form-item>
<el-form-item
label="安装包名称:"
>安装包11111
>{{ form.sys_apk_name }}
</el-form-item>
<el-form-item label="安装包文件名称:">安装包1111.excel</el-form-item>
<el-form-item label="安装包大小:">58.1kb</el-form-item>
<el-form-item label="适用系统:">安卓</el-form-item>
<el-form-item label="安装包文件名称:">{{ form.sys_apk }}</el-form-item>
<el-form-item label="安装包大小:">{{ form.sys_apk_size }}}</el-form-item>
<el-form-item label="适用系统:">{{ form.sys_type }}</el-form-item>
<el-form-item v-if="activeTabs!='1'" label="适用模块:">登录模块</el-form-item>
<el-form-item label="上传时间:">上传时间2024-04-07 1743</el-form-item>
<el-form-item label="上传时间:">{{ form.create_time }}</el-form-item>
<el-form-item label="上传状态:">已上传</el-form-item>
<el-form-item label="上传人员:">刮刮乐</el-form-item>
<el-form-item label="上传日志:">日志日志</el-form-item>

View File

@ -10,55 +10,60 @@
</el-tab-pane>
</el-tabs>
<el-form v-show="showSearch" ref="queryForm" :inline="true" :model="queryParams" label-width="90px" size="small">
<el-form-item label="安装包名称" prop="installpackName">
<el-form-item label="上传类型" prop="uploadingType">
<el-select v-model="queryParams.uploadingType" clearable placeholder="请选择上传类型">
<el-option
v-for="dict in dict.type.sys_apk_uploading_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="安装包名称" prop="sysApkName">
<el-input
v-model="queryParams.installpackName"
v-model="queryParams.sysApkName"
clearable
placeholder="请输入安装包名称"
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="版本" prop="versions">
<el-form-item label="版本" prop="version">
<el-input
v-model="queryParams.versions"
v-model="queryParams.version"
clearable
placeholder="请输入版本"
style="width: 240px"
placeholder="请输入版本号"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="上传方式" prop="uploadMode">
<el-select v-model="queryParams.uploadMode" clearable placeholder="请选择上传方式">
<el-form-item label="安装包类型" prop="sysType">
<el-select v-model="queryParams.sysType" clearable placeholder="请选择安装包类型">
<el-option
v-for="dict in dict.type.sys_yes_no"
v-for="dict in dict.type.sys_apk_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建时间">
<el-date-picker
v-model="dateRange"
end-placeholder="结束日期"
range-separator="-"
start-placeholder="开始日期"
style="width: 240px"
type="daterange"
value-format="yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item label="状态" prop="configType">
<el-select v-model="queryParams.status" clearable placeholder="请选择状态">
<el-form-item label="上传状态" prop="uploadingStatus">
<el-select v-model="queryParams.uploadingStatus" clearable placeholder="请选择上传状态">
<el-option
v-for="dict in dict.type.sys_yes_no"
v-for="dict in dict.type.uploading_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="创建人" prop="created">
<el-input
v-model="queryParams.created"
clearable
placeholder="请输入创建人"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button icon="el-icon-search" size="mini" type="primary" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@ -91,27 +96,38 @@
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="dataList" @selection-change="handleSelectionChange">
<el-table v-loading="loading" :data="INFOList" @selection-change="handleSelectionChange">
<el-table-column align="center" type="selection" width="55"/>
<template v-if="activeTabs=='1'">
<el-table-column align="center" label="离线包名称" prop="configId"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="版本" prop="configName"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="平台" prop="configValue"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="创建人" prop="configValue"/>
<el-table-column align="center" label="上传类型" prop="uploadingType">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_apk_uploading_type" :value="scope.row.uploadingType"/>
</template>
</el-table-column>
<el-table-column align="center" label="安装包名称" prop="sysApkName"/>
<el-table-column align="center" label="版本号" prop="version"/>
<el-table-column align="center" label="安装包" prop="sysApk"/>
<el-table-column align="center" label="安装包大小" prop="sysApkSize"/>
<el-table-column align="center" label="安装包类型" prop="sysType">
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_apk_type" :value="scope.row.sysType"/>
</template>
</el-table-column>
<el-table-column align="center" label="创建人" prop="created"/>
</template>
<template v-if="activeTabs=='2'">
<el-table-column align="center" label="安装包名称" prop="configId"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="版本号" prop="configName"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="安装包大小" prop="configKey"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="上传方式" prop="configValue"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="创建人" prop="configValue"/>
<el-table-column align="center" label="创建时间" prop="createTime" width="180">
<el-table-column :show-overflow-tooltip="true" align="center" label="版本号" prop="version"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="安装包大小" prop="sys_apk_size"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="上传方式" prop="uploading_type"/>
<el-table-column :show-overflow-tooltip="true" align="center" label="创建人" prop="created"/>
<el-table-column align="center" label="创建时间" prop="create_time" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
</template>
<el-table-column align="center" label="状态" prop="configType">
<el-table-column align="center" label="状态" prop="uploading_status">
<template slot-scope="scopeA">
<dict-tag :options="dict.type.sys_yes_no" :value="scopeA.row.type"/>
</template>
@ -163,8 +179,7 @@
</div>
</template>
<script>
import { delConfig, getConfig, listConfig } from '@/api/system/config'
// import { listINFO, getINFO, delINFO, addINFO, updateINFO } from "@/api/deploy/INFO";
export default {
name: 'InstallationList',
dicts: ['sys_yes_no'],
@ -182,20 +197,8 @@ export default {
showSearch: true,
//
total: 0,
//
dataList: [],
configList: [],
//
title: '',
//
addOpen: false,
//
detailOpen: false,
tokenId: '',
//
fileList: [],
//
INFOList: [],
packTabs: [{
name: '1',
title: 'APP安装包'
@ -204,14 +207,17 @@ export default {
title: 'H5模块包'
}],
//
dateRange: [],
create_time: [],
//
queryParams: {
pageNum: 1,
pageSize: 10,
configName: undefined,
configKey: undefined,
configType: undefined
uploadingType: null,
sysApkName: null,
version: null,
sysType: null,
uploadingStatus: null,
created: null
},
//
form: {},
@ -223,37 +229,14 @@ export default {
this.getList()
},
methods: {
/** 查询参数列表 */
/** 查询安装包管理(新)列表 */
getList() {
this.loading = true
listConfig(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.dataList = response.rows
this.total = response.total
this.loading = false
}
)
},
//
cancel(type) {
if (type === 1) {
this.addOpen = false
} else {
this.configOpen = false
}
this.reset()
},
//
reset() {
this.form = {
configId: undefined,
configName: undefined,
configKey: undefined,
configValue: undefined,
configType: 'Y',
remark: undefined
}
this.resetForm('form')
this.loading = false
// listINFO(this.queryParams).then(response => {
// this.INFOList = response.rows
// this.total = response.total
// this.loading = false
// })
},
/** 搜索按钮操作 */
handleQuery() {
@ -262,14 +245,12 @@ export default {
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.create_time = []
this.resetForm('queryForm')
this.handleQuery()
},
/** 新增按钮操作 */
handleAdd() {
this.reset()
this.$router.push({
path: 'install/add',
params: {
@ -280,14 +261,14 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.configId)
this.ids = selection.map(item => item.id)
this.single = selection.length != 1
this.multiple = !selection.length
},
/** 删除按钮操作 */
handleDelete(row) {
const configIds = row.configId || this.ids
const configIds = row.id || this.ids
this.$modal.confirm('是否确认删除编号为"' + configIds + '"的数据项?').then(function() {
return delConfig(configIds)
}).then(() => {
@ -296,11 +277,10 @@ export default {
}).catch(() => {
})
},
/** 修改按钮操作 */
handleEdit(row) {
this.reset()
const configId = row.configId || this.ids
const configId = row.id || this.ids
getConfig(configId).then(response => {
this.form = response.data
this.$router.push({
@ -329,7 +309,7 @@ export default {
/** 下载按钮 */
handleDownload(row) {
const configIds = row.configId || this.ids
const configIds = row.id || this.ids
this.$modal.confirm('是否确认下载编号为"' + configIds + '"的数据项?').then(function() {
return delConfig(configIds)
}).then(() => {