262 lines
7.3 KiB
Vue

<template>
<el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :modal-append-to-body="false" :title="title"
:visible.sync="open"
v-bind="$attrs"
width="700px"
@close="onClose"
@open="onOpen"
v-on="$listeners"
>
<el-form ref="form" :model="form" label-width="120px">
<el-form-item label="Appid">
<el-input v-model="form.applyId" placeholder="请输入APPid" readonly/>
</el-form-item>
<el-form-item label="APP名称">
<el-input v-model="form.appName" placeholder="请输入APP名称" readonly/>
</el-form-item>
<el-form-item label="选择系统" prop="grayFlag">
<el-radio-group v-model="form.systemType">
<el-radio-button label="android">android</el-radio-button>
<el-radio-button label="IOS">IOS</el-radio-button>
<el-radio-button label="HarmonyOS">HarmonyOS</el-radio-button>
</el-radio-group>
<!-- <div class="tag-group">-->
<!-- <el-tag :type="form.systemType=='android'?'':'info'" @click="changeSys('android')">安卓</el-tag>-->
<!-- <el-tag :type="form.systemType=='IOS'?'':'info'" @click="changeSys('IOS')">IOS</el-tag>-->
<!-- <el-tag :type="form.systemType=='HarmonyOS'?'':'info'" @click="changeSys('HarmonyOS')">鸿蒙</el-tag>-->
<!-- </div>-->
</el-form-item>
<el-form-item v-if="form.systemType!='IOS'" label="安装包" prop="apkId">
{{ form.apkId }}
<!-- <el-input v-model="form.apkId" class="input-with-select" placeholder="请选择包" readonly>-->
<!-- </el-input>-->
</el-form-item>
<el-form-item v-if="form.systemType=='IOS'" label="app store地址" prop="appStoreAddress">
{{ form.appStoreAddress }}
</el-form-item>
<el-form-item label="版本号" prop="version">
{{ form.version }}
</el-form-item>
<el-form-item label="版本说明" prop="versionDesc">
{{ form.versionDesc }}
</el-form-item>
<el-form-item label="发布环境" prop="publishEnvironment">
<el-select v-model="form.publishEnvironment" disabled>
<el-option
v-for="dict in environmentList"
:key="dict.id"
:label="dict.name"
:value="parseInt(dict.id)"
/>
</el-select>
</el-form-item>
<el-form-item label="发布策略" prop="publishStrategy">
<el-select v-model="form.publishStrategy" disabled>
<el-option
v-for="dict in dict.type.release_strategy"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
/>
</el-select>
</el-form-item>
<el-form-item label="结果通知" prop="resultNotify">
<el-switch
v-model="form.resultNotify"
:active-value="1"
:inactive-value="0"
disabled
/>
</el-form-item>
<el-form-item label="公开版" prop="publicVersion">
<el-switch
v-model="form.publicVersion"
:active-value="1"
:inactive-value="0"
disabled
/>
</el-form-item>
<el-form-item label="强制更新" prop="forceUpdate">
<el-switch
v-model="form.forceUpdate"
:active-value="1"
:inactive-value="0"
disabled
/>
</el-form-item>
<el-form-item label="下载验证" prop="downloadVerification">
<el-switch
v-model="form.downloadVerification"
:active-value="1"
:inactive-value="0"
disabled
/>
</el-form-item>
<!-- <el-form-item label="更新对象(-1: 不限制, 白名单id)" prop="updateObject">-->
<!-- <el-form-item label="更新对象" prop="updateObject">-->
<!-- <el-select v-model="form.publishStrategy" disabled>-->
<!-- <el-option-->
<!-- v-for="dict in dict.type.release_user_type"-->
<!-- :key="dict.value"-->
<!-- :label="dict.label"-->
<!-- :value="parseInt(dict.value)"-->
<!-- />-->
<!-- </el-select>-->
<!-- </el-form-item>-->
<el-form-item label="有效期" prop="validityStartTime">
{{ form.validityStartTime }}{{ form.validityEndTime }}
</el-form-item>
<el-form-item label="备注" prop="remark">
{{ form.remark }}
</el-form-item>
<el-form-item label="下载地址:">
<el-input v-model="form.moduleUrl" class="input-with-select" readonly>
<el-button slot="append" @click="copyIt(form.moduleUrl)">复制</el-button>
</el-input>
</el-form-item>
<el-form-item label="创建人" prop="created">
{{ form.created }}
</el-form-item>
</el-form>
</el-dialog>
</template>
<script>
import { getPublish } from '@/api/deployment/publish'
import { listEnvironment } from '@/api/deployment/environment'
export default {
name: 'AddPack',
dicts: ['release_environment', 'sys_yes_no', 'release_strategy', 'release_user_type'],
props: {
detailId: {
type: String | Number,
default: ''
},
openDetail: {
type: Boolean,
default: false
}
},
data() {
return {
// 遮罩层
title: '添加安装包',
loading: true,
configName: undefined,
form: {},
moduleList: [],
// 显示搜索条件
showSearch: true,
total: 0,
open: true,
detailIds: '',
environmentList: [],
// 白名单配置表单验证
queryParams: {
pageNum: 1,
pageSize: 10,
sysApkName: null
},
queryParamsEnvironment: {
pageNum: 1,
pageSize: 999
}
}
},
watch: {
detailId: {
handler: function(val, oldVal) {
if (val) {
this.detailIds = val
this.getPublishList(val)
this.getEnvironmentList()
}
},
immediate: true
}
},
mounted() {
},
methods: {
/** 查询参数列表 */
getPublishList(id) {
this.loading = true
getPublish(id).then(response => {
this.form = response.data
this.open = true
this.title = '详情'
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.dateRange = []
this.resetForm('queryForm')
this.handleQuery()
},
/** 查询环境维护列表 */
getEnvironmentList() {
this.loading = true
listEnvironment(this.queryParamsEnvironment).then(response => {
this.environmentList = response.rows
})
},
/** 新增当前包的按钮 */
addPack(id, version, sysType) {
this.$emit('addPack', {
apkId: id,
version: version,
sysType: sysType
})
},
onOpen() {
this.active = this.current
this.key = ''
},
onClose() {
this.$emit('close')
},
// 选择系统做一些逻辑判断
changeSys(sysType) {
this.form.systemType = sysType
}
}
}
</script>
<style lang="scss" scoped>
.tag-group {
.el-tag {
cursor: pointer;
}
}
.el-tag + .el-tag {
margin-left: 10px
}
</style>