增加手动控制取消打包
This commit is contained in:
@@ -9,7 +9,7 @@ let baseURLs = {
|
||||
instance.defaults.baseURL = baseURLs[process.env.NODE_ENV]
|
||||
instance.interceptors.request.use(config => {
|
||||
if (config.url.startsWith("/node")) {
|
||||
config.baseURL = "/lns"
|
||||
config.baseURL = "/ns"
|
||||
} else if (/\/project\/beta/.test(location.pathname)) {
|
||||
config.baseURL = "/wg"
|
||||
} else if (/\/project\/sass/.test(location.pathname)) {
|
||||
|
||||
@@ -32,15 +32,16 @@
|
||||
<template slot-scope="{row}">
|
||||
<el-button type="text" @click="handleEdit(row)">编辑</el-button>
|
||||
<el-button type="text" @click="handleDelete(row.id)">删除</el-button>
|
||||
<el-button type="text" @click="handleZip(row)">打包更新</el-button>
|
||||
<el-button type="text" v-if="row.download&&row.target" @click="handleDownload(row)">下载</el-button>
|
||||
<el-button type="text" @click="handleZip(row)" v-if="row.count==0">打包更新</el-button>
|
||||
<el-button type="text" @click="handleCancelZip(row)" v-else>停止打包</el-button>
|
||||
<el-button type="text" v-if="row.target" @click="handleDownload(row)">下载</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</ai-table>
|
||||
</template>
|
||||
</ai-list>
|
||||
<ai-dialog :visible.sync="dialog" title="部署任务设置" width="700px" @close="form={}" @onConfirm="submit">
|
||||
<el-form ref="DialogForm" :model="form" size="small" label-width="120px" :rules="rules">
|
||||
<el-form ref="DialogForm" :model="form" size="small" label-width="100px" :rules="rules">
|
||||
<el-form-item label="项目/系统" prop="name">
|
||||
<el-input v-model="form.name" clearable placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
@@ -59,9 +60,12 @@
|
||||
<el-form-item label="打包地址" prop="webUrl">
|
||||
<el-input v-model="form.zipPath" clearable placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="开发环境nginx" prop="target">
|
||||
<el-form-item label="nginx路径" prop="target">
|
||||
<el-input v-model="form.target" clearable placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="node版本" prop="nodeVersion">
|
||||
<el-input v-model="form.nodeVersion" clearable placeholder="请输入"/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ai-dialog>
|
||||
</section>
|
||||
@@ -85,9 +89,10 @@ export default {
|
||||
return [
|
||||
{prop: "libShell", label: "打包脚本", width: 100},
|
||||
{prop: "updateShell", label: "更新脚本", width: 100},
|
||||
{prop: "zipPath", label: "打包地址", width: 100},
|
||||
{prop: "target", label: "nginx地址", width: 100},
|
||||
{prop: "zipPath", label: "打包地址", width: 100, isLine},
|
||||
{prop: "target", label: "nginx路径", width: 100, isLine},
|
||||
{prop: "webUrl", label: "项目URL", width: 100},
|
||||
{prop: "nodeVersion", label: "node打包版本", width: 100},
|
||||
]
|
||||
},
|
||||
},
|
||||
@@ -100,8 +105,7 @@ export default {
|
||||
{slot: "expand"},
|
||||
{label: "项目/系统名称", prop: "name", width: 200},
|
||||
{label: "系统类型", prop: "type", dict: "systemType", width: 80},
|
||||
{label: "项目URL", prop: "webUrl"},
|
||||
{label: "nginx地址", prop: "target"},
|
||||
{label: "nginx路径", prop: "target"},
|
||||
{slot: "process"},
|
||||
{slot: "options"}
|
||||
],
|
||||
@@ -109,7 +113,8 @@ export default {
|
||||
form: {},
|
||||
rules: {
|
||||
name: {required: true, message: "请输入项目/系统名称"},
|
||||
}
|
||||
},
|
||||
timer: {}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -144,29 +149,28 @@ export default {
|
||||
})
|
||||
},
|
||||
handleZip(row) {
|
||||
let {id} = row
|
||||
let {id} = row, {timer} = this
|
||||
this.instance.post("/node/autodeploy/getZip", null, {
|
||||
params: {id}
|
||||
}).then(res => {
|
||||
if (res?.code == 0) {
|
||||
row.count = 1
|
||||
let timer = setInterval(() => {
|
||||
timer[id] = setInterval(() => {
|
||||
if (row.count >= 100) {
|
||||
clearInterval(timer)
|
||||
clearInterval(timer[id])
|
||||
row.count = 0
|
||||
this.$message.error("打包失败!")
|
||||
} else if (row.count <= 20 && row.target) {
|
||||
} else if (row.count <= 10 && row.target) {
|
||||
row.count++
|
||||
} else this.handleConfirmZip(row).then(v => {
|
||||
if (v.error) {
|
||||
clearInterval(timer)
|
||||
clearInterval(timer[id])
|
||||
this.$message.error("打包失败!")
|
||||
row.download = v.download
|
||||
row.error = v.error
|
||||
this.refreshRow(row, v)
|
||||
row.count = 0
|
||||
} else if (v.download) {
|
||||
clearInterval(timer)
|
||||
row.download = v.download
|
||||
row.error = v.error
|
||||
clearInterval(timer[id])
|
||||
this.refreshRow(row, v)
|
||||
row.count = 0
|
||||
} else row.count++
|
||||
})
|
||||
@@ -174,6 +178,23 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
refreshRow(row, v) {
|
||||
row.error = v.error
|
||||
row.download = v.download
|
||||
row.zipTime = v.zipTime
|
||||
},
|
||||
handleCancelZip(row) {
|
||||
let {id} = row
|
||||
return this.instance.post("/node/autodeploy/cancelZip", null, {
|
||||
params: {id}
|
||||
}).then(res => {
|
||||
if (res?.code == 0) {
|
||||
clearInterval(this.timer[id])
|
||||
row.count = 0
|
||||
this.handleConfirmZip(row).then(v => this.refreshRow(row, v))
|
||||
}
|
||||
})
|
||||
},
|
||||
handleEdit(row) {
|
||||
this.form = JSON.parse(JSON.stringify(row))
|
||||
this.dialog = true
|
||||
@@ -220,6 +241,9 @@ export default {
|
||||
created() {
|
||||
this.dict.load("systemType")
|
||||
this.getTableData()
|
||||
},
|
||||
beforeDestroy() {
|
||||
Object.values(this.timer).map(t => clearInterval(t))
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user