增加管理员版本管理页面
This commit is contained in:
parent
18b6509b26
commit
7d3251f1d6
|
|
@ -0,0 +1,32 @@
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
class API {
|
||||||
|
constructor(url, req) {
|
||||||
|
const map = {
|
||||||
|
add: 'POST',
|
||||||
|
del: 'DELETE',
|
||||||
|
update: 'PUT',
|
||||||
|
get: 'GET'
|
||||||
|
}
|
||||||
|
this.url = url
|
||||||
|
for (let key in map) {
|
||||||
|
this[key] = function (data) {
|
||||||
|
data = Array.isArray(data) ? data : {
|
||||||
|
...data, shopId: localStorage.getItem("shopId"),
|
||||||
|
}
|
||||||
|
if (key === 'del') {
|
||||||
|
delete data.shopId
|
||||||
|
}
|
||||||
|
const par={ url, method: map[key] }
|
||||||
|
if(key==='get'){
|
||||||
|
par.params=data
|
||||||
|
}else{
|
||||||
|
par.data=data
|
||||||
|
}
|
||||||
|
return request(par)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default API
|
||||||
|
|
@ -0,0 +1,38 @@
|
||||||
|
import $api from './class-api'
|
||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export const $version = new $api('/api/tbVersion')
|
||||||
|
/**
|
||||||
|
* 修改当前选中 版本
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function $upSel(data) {
|
||||||
|
return request({
|
||||||
|
url: 'upSel',
|
||||||
|
method: "put",
|
||||||
|
data: {
|
||||||
|
shopId: localStorage.getItem("shopId"),
|
||||||
|
...data
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 上传版本文件
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export function $uploadVersionFile(file, par) {
|
||||||
|
var data = new FormData()
|
||||||
|
data.append('file', file)
|
||||||
|
for(let i in par){
|
||||||
|
if(i!=='file'){
|
||||||
|
data.append(i, par[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return request({
|
||||||
|
url: 'api/qiNiuContent/uploadVersionFile',
|
||||||
|
method: "post",
|
||||||
|
data
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -17,6 +17,7 @@ const getters = {
|
||||||
fileUploadApi: state => state.api.fileUploadApi,
|
fileUploadApi: state => state.api.fileUploadApi,
|
||||||
updateAvatarApi: state => state.api.updateAvatarApi,
|
updateAvatarApi: state => state.api.updateAvatarApi,
|
||||||
qiNiuUploadApi: state => state.api.qiNiuUploadApi,
|
qiNiuUploadApi: state => state.api.qiNiuUploadApi,
|
||||||
|
versionUploadApi: state => state.api.versonUploadApi,
|
||||||
sqlApi: state => state.api.sqlApi,
|
sqlApi: state => state.api.sqlApi,
|
||||||
swaggerApi: state => state.api.swaggerApi,
|
swaggerApi: state => state.api.swaggerApi,
|
||||||
sidebarRouters: state => state.permission.sidebarRouters
|
sidebarRouters: state => state.permission.sidebarRouters
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,8 @@ const api = {
|
||||||
swaggerApi: baseUrl + '/doc.html',
|
swaggerApi: baseUrl + '/doc.html',
|
||||||
// 文件上传
|
// 文件上传
|
||||||
fileUploadApi: baseUrl + '/api/localStorage',
|
fileUploadApi: baseUrl + '/api/localStorage',
|
||||||
|
// 上传版本文件
|
||||||
|
versonUploadApi: baseUrl + '/api/uploadVersionFile',
|
||||||
// baseUrl,
|
// baseUrl,
|
||||||
baseApi: baseUrl
|
baseApi: baseUrl
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,157 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
:title="title"
|
||||||
|
width="500px"
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
@close="diaClose"
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
ref="form"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
label-width="120px"
|
||||||
|
label-position="left"
|
||||||
|
>
|
||||||
|
<el-form-item label="版本文件">
|
||||||
|
<uploadFile ref="uploadImg" :limit="1" @remove="uploadRemove" />
|
||||||
|
<div class="tips"></div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="版本号" prop="name">
|
||||||
|
<el-input v-model="form.name"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<span slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="onSubmitHandle">确 定 上 传</el-button>
|
||||||
|
</span>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import uploadFile from "./upload-file";
|
||||||
|
import { $uploadVersionFile } from "@/api/version";
|
||||||
|
|
||||||
|
const form = {
|
||||||
|
file: "",
|
||||||
|
name: "",
|
||||||
|
};
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
uploadFile,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
title: "",
|
||||||
|
dialogVisible: false,
|
||||||
|
rules: {
|
||||||
|
name: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "版本号必填",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
form: { ...form },
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
restForm() {
|
||||||
|
console.log("restForm");
|
||||||
|
console.log(form);
|
||||||
|
this.form = { ...form };
|
||||||
|
this.$refs.uploadImg.clearFiles();
|
||||||
|
},
|
||||||
|
diaClose() {
|
||||||
|
this.restForm();
|
||||||
|
},
|
||||||
|
uploadSuccess(res) {
|
||||||
|
this.form.img = res[0];
|
||||||
|
console.log(this.form.img);
|
||||||
|
},
|
||||||
|
uploadRemove() {
|
||||||
|
this.form.img = "";
|
||||||
|
},
|
||||||
|
// 提交
|
||||||
|
onSubmitHandle() {
|
||||||
|
console.log(this.form);
|
||||||
|
this.$refs.form.validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
try {
|
||||||
|
let res = "";
|
||||||
|
if (this.form.id) {
|
||||||
|
//编辑
|
||||||
|
|
||||||
|
res = await tbShopSongEdit(this.form);
|
||||||
|
this.$notify({
|
||||||
|
title: "成功",
|
||||||
|
message: `修改成功`,
|
||||||
|
type: "success",
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
//添加
|
||||||
|
const file=this.$refs.uploadImg.getFileList()[0]
|
||||||
|
console.log(this.form)
|
||||||
|
res = await $uploadVersionFile(file,this.form);
|
||||||
|
this.$notify({
|
||||||
|
title: "成功",
|
||||||
|
message: `添加成功`,
|
||||||
|
type: "success",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.close();
|
||||||
|
|
||||||
|
this.$emit("success", res);
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async show(obj = {}) {
|
||||||
|
console.log(obj);
|
||||||
|
// this.form=this.$options.data().form
|
||||||
|
this.dialogVisible = true;
|
||||||
|
this.title = "上传版本文件";
|
||||||
|
|
||||||
|
if (obj && obj.id) {
|
||||||
|
this.title = "编辑版本文件";
|
||||||
|
this.form = {
|
||||||
|
...obj,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
if (obj && obj.hasOwnProperty("img") && obj.img) {
|
||||||
|
console.log(obj.img);
|
||||||
|
this.form.img = obj.img;
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
this.$refs.uploadImg.fileList = [
|
||||||
|
{
|
||||||
|
url: obj.img,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.restForm();
|
||||||
|
this.dialogVisible = false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.goods_info {
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
padding: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.info {
|
||||||
|
flex: 1;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,211 @@
|
||||||
|
<template>
|
||||||
|
<el-dialog
|
||||||
|
:title="title"
|
||||||
|
width="500px"
|
||||||
|
:visible.sync="dialogVisible"
|
||||||
|
@close="diaClose"
|
||||||
|
>
|
||||||
|
<el-form
|
||||||
|
v-loading="loading"
|
||||||
|
:element-loading-text="loadingText"
|
||||||
|
element-loading-spinner="el-icon-loading"
|
||||||
|
ref="form"
|
||||||
|
:model="form"
|
||||||
|
:rules="rules"
|
||||||
|
label-width="120px"
|
||||||
|
label-position="left"
|
||||||
|
>
|
||||||
|
<el-form-item label="平台">
|
||||||
|
<el-select
|
||||||
|
v-model="form.source"
|
||||||
|
placeholder="请选择平台"
|
||||||
|
style="width: 100%"
|
||||||
|
>
|
||||||
|
<el-option
|
||||||
|
:label="item.label"
|
||||||
|
:value="item.value"
|
||||||
|
v-for="item in sources"
|
||||||
|
:key="item.value"
|
||||||
|
/>
|
||||||
|
</el-select>
|
||||||
|
<div class="tips"></div>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="版本号" prop="version">
|
||||||
|
<el-input v-model="form.version"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="是否强制更新" prop="isUp">
|
||||||
|
<el-radio-group v-model="form.isUp">
|
||||||
|
<el-radio :label="1">是</el-radio>
|
||||||
|
<el-radio :label="0">否</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="更新提示内容" prop="message">
|
||||||
|
<el-input type="textarea" v-model="form.message"></el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="版本文件">
|
||||||
|
<uploadFile ref="uploadFile" @success="changeHasUpload" :limit="1" @remove="uploadRemove" />
|
||||||
|
<div class="tips"></div>
|
||||||
|
</el-form-item>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="dialogVisible = false">取 消</el-button>
|
||||||
|
<el-button type="primary" @click="onSubmitHandle">确 定</el-button>
|
||||||
|
</div>
|
||||||
|
</el-form>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import uploadFile from "./upload-file";
|
||||||
|
import { $uploadVersionFile, $version } from "@/api/version";
|
||||||
|
|
||||||
|
const form = {
|
||||||
|
source: "PC",
|
||||||
|
version: "",
|
||||||
|
isUp: 0,
|
||||||
|
message: "",
|
||||||
|
url: "",
|
||||||
|
};
|
||||||
|
export default {
|
||||||
|
components: {
|
||||||
|
uploadFile,
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
loading: false,
|
||||||
|
loadingText:'',
|
||||||
|
sources: [
|
||||||
|
{ label: "PC", value: "PC" },
|
||||||
|
{ label: "APP", value: "APP" },
|
||||||
|
],
|
||||||
|
title: "",
|
||||||
|
dialogVisible: false,
|
||||||
|
rules: {
|
||||||
|
version: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: "版本号必填",
|
||||||
|
trigger: "blur",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
form: { ...form },
|
||||||
|
//文件是否已经上传过
|
||||||
|
hasUpload:true
|
||||||
|
};
|
||||||
|
},
|
||||||
|
mounted() {},
|
||||||
|
methods: {
|
||||||
|
changeHasUpload(){
|
||||||
|
this.hasUpload=false
|
||||||
|
},
|
||||||
|
restForm() {
|
||||||
|
console.log("restForm");
|
||||||
|
console.log(form);
|
||||||
|
this.form = { ...form };
|
||||||
|
this.loadingText=''
|
||||||
|
this.loading=false
|
||||||
|
this.$refs.uploadFile.clearFiles();
|
||||||
|
},
|
||||||
|
diaClose() {
|
||||||
|
this.restForm();
|
||||||
|
},
|
||||||
|
uploadSuccess(res) {
|
||||||
|
this.form.img = res[0];
|
||||||
|
console.log(this.form.img);
|
||||||
|
},
|
||||||
|
uploadRemove() {
|
||||||
|
this.form.img = "";
|
||||||
|
},
|
||||||
|
// 提交
|
||||||
|
onSubmitHandle() {
|
||||||
|
console.log(this.form);
|
||||||
|
this.$refs.form.validate(async (valid) => {
|
||||||
|
if (valid) {
|
||||||
|
try {
|
||||||
|
const { version } = this.form;
|
||||||
|
let fileRes=''
|
||||||
|
const file = this.$refs.uploadFile.getFileList();
|
||||||
|
if(!this.hasUpload&&file){
|
||||||
|
this.loadingText='文件上传中,请耐心等待。。。!'
|
||||||
|
this.loading = true;
|
||||||
|
fileRes = await $uploadVersionFile(file, { name:version });
|
||||||
|
this.loading = false;
|
||||||
|
}
|
||||||
|
let res = "";
|
||||||
|
if (this.form.id) {
|
||||||
|
//编辑
|
||||||
|
res = await $version.update({...this.form,url:fileRes?fileRes.data:this.form.url});
|
||||||
|
this.$notify({
|
||||||
|
title: "成功",
|
||||||
|
message: `修改成功`,
|
||||||
|
type: "success",
|
||||||
|
});
|
||||||
|
|
||||||
|
} else {
|
||||||
|
//添加
|
||||||
|
if (file) {
|
||||||
|
console.log(1);
|
||||||
|
}
|
||||||
|
res = await $version.add({...this.form,url:fileRes?fileRes.data:this.form.url});
|
||||||
|
this.$notify({
|
||||||
|
title: "成功",
|
||||||
|
message: `添加成功`,
|
||||||
|
type: "success",
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.close();
|
||||||
|
|
||||||
|
this.$emit("success", res);
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async show(obj = {}) {
|
||||||
|
console.log(obj);
|
||||||
|
// this.form=this.$options.data().form
|
||||||
|
this.dialogVisible = true;
|
||||||
|
this.title = "新增版本";
|
||||||
|
|
||||||
|
if (obj && obj.id) {
|
||||||
|
this.title = "编辑版本";
|
||||||
|
this.form = {
|
||||||
|
...obj,
|
||||||
|
};
|
||||||
|
requestAnimationFrame(()=>{
|
||||||
|
this.$refs.uploadFile.fileList = [{
|
||||||
|
url: obj.url,
|
||||||
|
name: obj.url,
|
||||||
|
}]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
},
|
||||||
|
close() {
|
||||||
|
this.restForm();
|
||||||
|
this.dialogVisible = false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.dialog-footer{
|
||||||
|
display: flex;
|
||||||
|
margin-top: 30px;
|
||||||
|
justify-content: right;
|
||||||
|
}
|
||||||
|
.goods_info {
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
padding: 10px;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.info {
|
||||||
|
flex: 1;
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
@ -0,0 +1,125 @@
|
||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<el-upload
|
||||||
|
ref="upload"
|
||||||
|
:action="versionUploadApi"
|
||||||
|
:auto-upload="true"
|
||||||
|
:headers="headers"
|
||||||
|
:file-list="fileList"
|
||||||
|
:limit="limit"
|
||||||
|
:show-file-list="true"
|
||||||
|
:http-request="uploadVersionFile"
|
||||||
|
:list-type="type"
|
||||||
|
:multiple="limit > 1"
|
||||||
|
:on-success="handleSuccess"
|
||||||
|
:on-error="handleError"
|
||||||
|
:on-exceed="onExceed"
|
||||||
|
:on-remove="handleRemove"
|
||||||
|
:before-upload="beforeUpload"
|
||||||
|
>
|
||||||
|
<el-button size="small" type="primary">选择文件</el-button>
|
||||||
|
</el-upload>
|
||||||
|
<el-dialog :visible.sync="dialogVisible" :z-index="99">
|
||||||
|
<img width="100%" :src="dialogImageUrl" alt="" />
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { mapGetters } from "vuex";
|
||||||
|
import { getToken } from "@/utils/auth";
|
||||||
|
import { Notification } from "element-ui";
|
||||||
|
export default {
|
||||||
|
computed: {
|
||||||
|
...mapGetters(["versionUploadApi"]),
|
||||||
|
},
|
||||||
|
props: {
|
||||||
|
type: {
|
||||||
|
type: String,
|
||||||
|
default: "text",
|
||||||
|
},
|
||||||
|
limit: {
|
||||||
|
type: Number,
|
||||||
|
default: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dialogImageUrl: "",
|
||||||
|
dialogVisible: false,
|
||||||
|
fileList: [],
|
||||||
|
// files: [],
|
||||||
|
headers: {
|
||||||
|
Authorization: getToken(),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
beforeUpload(file) {
|
||||||
|
// const isExe = file.name.endsWith(".exe");
|
||||||
|
// if (!isExe) {
|
||||||
|
// this.$message.error("只允许上传.exe文件!");
|
||||||
|
// return false; // 阻止上传
|
||||||
|
// }
|
||||||
|
return true; // 允许上传
|
||||||
|
},
|
||||||
|
uploadVersionFile(e) {
|
||||||
|
this.fileList.push(e.file);
|
||||||
|
this.$emit("success");
|
||||||
|
},
|
||||||
|
getFileList() {
|
||||||
|
if (this.limit == 1) {
|
||||||
|
return this.fileList[0];
|
||||||
|
} else {
|
||||||
|
return this.fileList;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleSuccess(response, file, fileList) {
|
||||||
|
console.log("handleSuccess");
|
||||||
|
setTimeout(() => {
|
||||||
|
this.fileList.push({
|
||||||
|
url: response.data[0],
|
||||||
|
id: response.data.id,
|
||||||
|
});
|
||||||
|
}, 100);
|
||||||
|
// this.files = response.data
|
||||||
|
this.$emit("success", response.data);
|
||||||
|
},
|
||||||
|
// 监听上传失败
|
||||||
|
handleError(e, file, fileList) {
|
||||||
|
// console.log(e)
|
||||||
|
const m = JSON.parse(e.message);
|
||||||
|
Notification.error({
|
||||||
|
title: m.message,
|
||||||
|
duration: 5000,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handlePictureCardPreview(file) {
|
||||||
|
this.dialogImageUrl = file.url;
|
||||||
|
this.dialogVisible = true;
|
||||||
|
},
|
||||||
|
onExceed() {
|
||||||
|
this.$notify.error({
|
||||||
|
title: "错误",
|
||||||
|
message: `最多上传${this.limit}个文件`,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
handleRemove(file, fileList) {
|
||||||
|
console.log(file);
|
||||||
|
let arr = fileList.map((item) => item.url);
|
||||||
|
// 删除数据
|
||||||
|
let index = this.fileList.findIndex((ele) => ele.url == file.url);
|
||||||
|
this.fileList.splice(index, 1);
|
||||||
|
this.$emit("remove", arr);
|
||||||
|
},
|
||||||
|
clearFiles() {
|
||||||
|
this.$refs.upload.clearFiles();
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
/* .el-upload-list__item {
|
||||||
|
transition: none;
|
||||||
|
} */
|
||||||
|
</style>
|
||||||
|
|
@ -0,0 +1,245 @@
|
||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<div class="head-container">
|
||||||
|
<el-row :gutter="20">
|
||||||
|
<el-col :span="3">
|
||||||
|
<el-input
|
||||||
|
v-model="query.version"
|
||||||
|
size="small"
|
||||||
|
clearable
|
||||||
|
placeholder="请输入版本号"
|
||||||
|
style="width: 100%"
|
||||||
|
class="filter-item"
|
||||||
|
@keyup.enter.native="getTableData"
|
||||||
|
/>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-button type="primary" @click="queryHandle">查询</el-button>
|
||||||
|
<el-button @click="resetHandle">重置</el-button>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
<div class="head-container">
|
||||||
|
<el-row>
|
||||||
|
<el-col>
|
||||||
|
<el-button @click="addVersionShow" type="primary" icon="el-icon-plus"
|
||||||
|
>新增版本</el-button
|
||||||
|
>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
<div class="head-container" id="table_drag">
|
||||||
|
<el-table
|
||||||
|
ref="table"
|
||||||
|
:data="tableData.data"
|
||||||
|
v-loading="tableData.loading"
|
||||||
|
row-key="id"
|
||||||
|
>
|
||||||
|
<el-table-column prop="id" label="ID" width="50px"></el-table-column>
|
||||||
|
<el-table-column prop="source" label="平台"></el-table-column>
|
||||||
|
|
||||||
|
<el-table-column prop="version" label="版本号"></el-table-column>
|
||||||
|
<el-table-column label="当前选中版本" prop="sel">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-switch
|
||||||
|
v-if="scope.row.sel"
|
||||||
|
disabled
|
||||||
|
@change="changeSel($event, scope.row)"
|
||||||
|
v-model="scope.row.sel"
|
||||||
|
:active-value="1"
|
||||||
|
:inactive-value="0"
|
||||||
|
></el-switch>
|
||||||
|
<el-button @click="changeSel(scope.row)" v-else type="primary" size="mini">设置为当前版本</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="是否强制更新" prop="createdAt">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-switch
|
||||||
|
v-model="scope.row.isUp"
|
||||||
|
:active-value="1"
|
||||||
|
:inactive-value="0"
|
||||||
|
@change="changeIsup($event, scope.row)"
|
||||||
|
></el-switch>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="更新提示内容" prop="message"> </el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="下载地址" prop="url">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<a :href="scope.row.url">{{ scope.row.url }}</a>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
|
||||||
|
<el-table-column label="创建时间" prop="createdAt">
|
||||||
|
<template v-slot="scope">
|
||||||
|
{{ dayjs(scope.row.createdAt).format("YYYY-MM-DD HH:mm:ss") }}
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="更新时间" prop="updatedAt">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<span v-if="scope.row.updatedAt">{{
|
||||||
|
dayjs(scope.row.updatedAt).format("YYYY-MM-DD HH:mm:ss")
|
||||||
|
}}</span>
|
||||||
|
<span v-else></span>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
|
||||||
|
<el-table-column label="操作" width="200">
|
||||||
|
<template v-slot="scope">
|
||||||
|
<el-button type="text" @click="editClick(scope.row)" icon="el-icon-edit">编辑</el-button>
|
||||||
|
<el-popconfirm
|
||||||
|
title="确定删除吗?"
|
||||||
|
@confirm="delTableHandle([scope.row.id])"
|
||||||
|
>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
style="margin-left: 20px !important"
|
||||||
|
slot="reference"
|
||||||
|
>删除</el-button
|
||||||
|
>
|
||||||
|
</el-popconfirm>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</div>
|
||||||
|
<div class="head-container">
|
||||||
|
<el-pagination
|
||||||
|
:total="tableData.total"
|
||||||
|
@size-change="handleSizeChange"
|
||||||
|
:current-page="tableData.page + 1"
|
||||||
|
:page-size="tableData.size"
|
||||||
|
@current-change="paginationChange"
|
||||||
|
layout="total, sizes, prev, pager, next, jumper"
|
||||||
|
></el-pagination>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<add-version ref="refAddVersion" @success="refresh"></add-version>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
import { $version,$upSel } from "@/api/version";
|
||||||
|
import addVersion from "./components/add-version";
|
||||||
|
export default {
|
||||||
|
components: { addVersion },
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
dayjs,
|
||||||
|
query: {
|
||||||
|
version: "",
|
||||||
|
},
|
||||||
|
categorys: [],
|
||||||
|
tableData: {
|
||||||
|
data: [],
|
||||||
|
page: 0,
|
||||||
|
size: 30,
|
||||||
|
loading: false,
|
||||||
|
total: 0,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
async mounted() {
|
||||||
|
await this.getTableData();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
|
||||||
|
addVersionShow() {
|
||||||
|
this.$refs.refAddVersion.show();
|
||||||
|
},
|
||||||
|
editClick(item){
|
||||||
|
this.$refs.refAddVersion.show(item);
|
||||||
|
},
|
||||||
|
// 选择分类
|
||||||
|
queryHandle() {
|
||||||
|
localStorage.setItem("shopIndexQuery", JSON.stringify(this.query));
|
||||||
|
this.getTableData();
|
||||||
|
},
|
||||||
|
async changeIsup(e,item){
|
||||||
|
const res= await $version.update(item)
|
||||||
|
this.getTableData()
|
||||||
|
},
|
||||||
|
async changeSel(item){
|
||||||
|
const res= await $upSel(item)
|
||||||
|
this.getTableData()
|
||||||
|
},
|
||||||
|
|
||||||
|
// 重置查询
|
||||||
|
resetHandle() {
|
||||||
|
this.query.name = "";
|
||||||
|
this.query.categoryId = "";
|
||||||
|
this.query.typeEnum = "";
|
||||||
|
this.query.productId = "";
|
||||||
|
this.tableData.page = 0;
|
||||||
|
this.getTableData();
|
||||||
|
},
|
||||||
|
// 分页回调
|
||||||
|
paginationChange(e) {
|
||||||
|
this.tableData.page = e - 1;
|
||||||
|
this.getTableData();
|
||||||
|
},
|
||||||
|
refresh(){
|
||||||
|
this.tableData.page=0
|
||||||
|
this.getTableData()
|
||||||
|
},
|
||||||
|
// 获取商品列表
|
||||||
|
async getTableData() {
|
||||||
|
try {
|
||||||
|
this.tableData.loading = true;
|
||||||
|
const res = await $version.get({
|
||||||
|
page: this.tableData.page,
|
||||||
|
pageSize: this.tableData.size,
|
||||||
|
version: this.query.version,
|
||||||
|
});
|
||||||
|
this.tableData.loading = false;
|
||||||
|
this.tableData.data = res.content;
|
||||||
|
this.tableData.total = res.totalElements;
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
handleSizeChange(val) {
|
||||||
|
this.tableData.size = val;
|
||||||
|
this.getTableData();
|
||||||
|
},
|
||||||
|
// 删除商品
|
||||||
|
async delTableHandle(ids) {
|
||||||
|
try {
|
||||||
|
await $version.del(ids);
|
||||||
|
this.getTableData();
|
||||||
|
} catch (error) {
|
||||||
|
console.log(error);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped lang="scss">
|
||||||
|
.handle {
|
||||||
|
font-size: 18px;
|
||||||
|
color: #999;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
cursor: grab;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.shop_info {
|
||||||
|
display: flex;
|
||||||
|
|
||||||
|
.info {
|
||||||
|
flex: 1;
|
||||||
|
padding-left: 8px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
|
||||||
|
.tag_wrap {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
Loading…
Reference in New Issue