app发布管理(vue+element)

<template>  
    <div>  
        <el-button type="primary" size="medium" style="height: 36.5px;margin-left:80px;" @click="addissue">新增发布</el-button>  
        <div class="hr" />  
        <!--新增发布-->  
        <el-dialog :title="titles" :visible.sync="showTrial" :close-on-click-modal="false">  
            <el-form :model="trialForm" label-width="120px" :rules="trialFormRules" ref="trialForm">  
                <el-form-item label="App名称:" prop="appType">  
                     <el-radio-group v-model="trialForm.appType">  
                            <el-radio label="1">ngc客户端</el-radio>  
                            <el-radio label="2">ngc资产端</el-radio>  
                     </el-radio-group>  
                </el-form-item>  
                <el-form-item label="标题:" prop="title">  
                    <el-input style="width:200px" v-model="trialForm.title" auto-complete="off" clearable>  
                    </el-input>  
                </el-form-item>  
                <el-form-item label="系统类型:" prop="osType">  
                    <el-radio-group v-model="trialForm.osType">  
                        <el-radio label="2">ios</el-radio>  
                        <el-radio label="1">Android</el-radio>  
                    </el-radio-group>  
                </el-form-item>  
                <el-form-item label="版本号:" prop="version">  
                    <el-input style="width:200px" v-model="trialForm.version" clearable>  
                    </el-input>  
                </el-form-item>  
                <el-form-item label="安装包大小(M):" prop="size">  
                    <el-input style="width:200px" v-model="trialForm.size" clearable>  
                    </el-input>  
                </el-form-item>  
                <el-form-item label="安装包路径:" prop="link">  
                    <el-input style="width:200px" v-model="trialForm.link" clearable>  
                    </el-input>  
                </el-form-item>  
                <el-form-item label="是否强制更新:" prop="isCompulsoryRenewal">  
                    <el-radio-group v-model="trialForm.isCompulsoryRenewal">  
                        <el-radio label="1">是</el-radio>  
                        <el-radio label="0">否</el-radio>  
                    </el-radio-group>  
                </el-form-item>  
                <el-form-item label="更新内容:" style="width:400px" prop="content">  
                 <p style="color:red;font-size:18px">注意多条更新内容请用"|"符号隔开</p>  
                    <el-input type="textarea" v-model="trialForm.content" style="width:100%;min-height:80px" placeholder="示例:1.解决已知bug;|2.优化性能体验;"></el-input>  
                </el-form-item>  
            </el-form>  
            <div slot="footer" class="dialog-footer">  
                <el-button @click.native="showTrial = false">取消</el-button>  
                <el-button type="primary" @click.native="editSubmit(trialForm)" :loading="disLoading" :disabled="role">保存</el-button>  
            </div>  
        </el-dialog>  
        <div class="form-b">  
            <el-table :data="tableData" style="width: 100%">  
                <el-table-column prop="id" label="ID" width="80">  
                </el-table-column>  
                <el-table-column prop="appType" label="APP名称" width="100">  
                </el-table-column>  
                <el-table-column prop="title" label="标题" width="110">  
                </el-table-column>  
                <el-table-column prop="content" label="更新内容" width="240">  
                </el-table-column>  
                <el-table-column prop="osType" label="系统类型" width="100">  
                </el-table-column>  
                <el-table-column prop="version" label="版本号" width="100">  
                </el-table-column>  
                <el-table-column prop="size" label="安装包大小(M)" width="120">  
                </el-table-column>  
                <el-table-column prop="link" label="安装包路径" width="320">  
                </el-table-column>  
                <el-table-column prop="isCompulsoryRenewal" label="是否强制更新" width="140">  
                </el-table-column>  
                <el-table-column prop="createTime" label="新增时间" width="180">  
                </el-table-column>  
                <el-table-column  
                  fixed="right"  
                  label="操作"  
                  width="100">  
                  <template slot-scope="scope">  
                    <el-button type="text" size="small" @click="handleClick(scope.row)">修改</el-button>  
                  </template>  
                </el-table-column>  
            </el-table>  
        </div>  
        <!--工具条-->  
        <el-col :span="24" class="toolbar">  
            <el-pagination layout="sizes,prev, pager, next" :page-sizes="[10, 20, 50,100, 200]" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page" :page-count="total" style="float:right;">  
            </el-pagination>  
        </el-col>  
    </div>  
</template>  
[javascript] view plain copy
export default {  
    data() {  
        const validateTitle = (rule, value, callback) => {  
            if (value === '') {  
                callback(new Error('请输入标题'));  
            } else if (!/^[\u4e00-\u9fa5_a-zA-Z0-9.*]{1,20}$/.test(value)) {  
                callback(new Error('*请输入20位以内中英文'));  
  
            } else {  
                callback();  
            }  
        };  
        const validateVersion = (rule, value, callback) => {  
            if (value === '') {  
                callback(new Error('请输入版本号'));  
            } else if (!/^[a-zA-Z0-9.*]{1,20}$/.test(value)) {  
                callback(new Error('*请输入20位以内英文数字或字符'));  
  
            } else {  
                callback();  
            }  
        };  
        const validateSize = (rule, value, callback) => {  
            if (value === '') {  
                callback(new Error('请输入数字'));  
            } else if (!/^[1-9]\d{0,3}(\.\d{0,2})?$/.test(value)) {  
                callback(new Error('*请输入整数不得超过4位,小数不得超过2位'));  
  
            } else {  
                callback();  
            }  
        };  
        const validatelink = (rule, value, callback) => {  
            if (value === '') {  
                callback(new Error('请输入安装包路径'));  
            } else if (!/^[\u4e00-\u9fa5_a-zA-Z0-9\s\S]{1,100}$/.test(value)) {  
                callback(new Error('*请输入100位以内中英文字符或数字'));  
  
            } else {  
                callback();  
            }  
        };  
        const validateContent = (rule, value, callback) => {  
            if (value === '') {  
                callback(new Error('请输入更新内容'));  
            } else if (!/^[\u4e00-\u9fa5_a-zA-Z0-9\s\S]{1,500}$/.test(value)) {  
                callback(new Error('*请输入500位以内中英文字符或数字'));  
  
            } else {  
                callback();  
            }  
        };  
        const validateAppType = (rule, value, callback) => {  
            if (value === '') {  
                callback(new Error('必选项'));  
            } else {  
                callback();  
            }  
        };  
        return {  
            titles: '新增发布',  
            showTrial: false,  
            disLoading: false,  
            role: false,  
            trialForm: {  
                appType: '',  
                title: '',  
                osType: '',  
                version: '',  
                size: '',  
                link: '',  
                isCompulsoryRenewal: '',  
                content:''  
            },  
            trialFormRules: {  
                appType: [  
                    { required: true, validator: validateAppType, trigger: 'change' }  
                ],  
                osType: [  
                    { required: true, validator: validateAppType, trigger: 'change' }  
                ],  
                isCompulsoryRenewal: [  
                    { required: true,validator: validateAppType, trigger: 'change' }  
                ],  
                title: [  
                    { required: true,validator: validateTitle, trigger: 'change' }  
                ],  
                version: [  
                    {required: true, validator: validateVersion, trigger: 'change' }  
                ],  
                size: [  
                    {required: true, validator: validateSize, trigger: 'change' }  
                ],  
                link: [  
                    { required: true,validator: validatelink, trigger: 'change' }  
                ],  
                content: [  
                    { required: true,validator: validateContent, trigger: 'change' }  
                ]  
            },  
            tableData: [],  
            page: 1,  
            size: 10,  
            total: 1,  
            ID:'',  
            showS:false,  
            showConnent:""  
        }  
    },  
    methods: {  
        addissue() {  
                this.titles = '新增发布';  
                this.showTrial = true;  
                this.showS = false  
                this.trialForm = {  
                    appType: '',  
                    title: '',  
                    osType: '',  
                    version: '',  
                    size: '',  
                    link: '',  
                    isCompulsoryRenewal: '',  
                    content:''  
                };  
        },  
        //每页多少条  
        handleSizeChange(val) {  
            this.size = val;  
            this.getUsers();  
        },  
        //点击页数  
        handleCurrentChange(val) {  
            this.page = val;  
            this.getUsers();  
        },  
        editSubmit: function(trialForm) {  
            this.$refs.trialForm.validate((valid) => {  
                if (valid) {  
                    this.$confirm('确认保存提交吗?', '提示', {  
                          confirmButtonText: '确定',  
                          cancelButtonText: '取消',  
                          type: 'warning'  
                    }).then(() => {  
                        this.disLoading = true;  
                        if (this.showS) {  
                            let paraS = this.trialForm;  
                            paraS.id = this.ID;  
                            paraS.appType = (~~paraS.appType);  
                            paraS.isCompulsoryRenewal = (~~paraS.isCompulsoryRenewal);  
                            paraS.osType = (~~paraS.osType);  
                            paraS.size = parseFloat(paraS.size);  
                        createOrUpdateAppVersionInfo(paraS).then((res) => {  
                            if (res.status == 1) {  
                                this.disLoading = false;  
                                this.showTrial = false;  
                                this.$message({  
                                    message: '保存提交成功',  
                                    type: 'success'  
                                });  
                                this.$refs.trialForm.resetFields();  
                                this.getUsers();  
                            };  
                        });  
                        this.showS = false;  
                        }else{  
                            let para = this.trialForm;  
                        para.appType = (~~para.appType);  
                        para.isCompulsoryRenewal = (~~para.isCompulsoryRenewal);  
                        para.osType = (~~para.osType);  
                        para.size = parseFloat(para.size);  
                        createOrUpdateAppVersionInfo(para).then((res) => {  
                            if (res.status == 1) {  
                                this.disLoading = false;  
                                this.showTrial = false;  
                                this.$message({  
                                    message: '保存提交成功',  
                                    type: 'success'  
                                });  
                                this.$refs.trialForm.resetFields();  
                                this.getUsers();  
                            };  
                        });  
                    }  
                }).catch(() => {  
                      this.$message({  
                        type: 'info',  
                        message: '已取消'  
                      });  
                    });  
                }  
            });  
        },  
        getUsers: function() {  
            let par = {  
                page: this.page,  
                size: this.size  
            };  
            getAppVersionList(par).then((res) => {  
                if (res.status === 1) {  
                    this.total = res.message.totalPages;  
                    this.tableData = (res.message.content);  
                    this.tableData.forEach((item) => {  
                        if (item.appType == 1) {  
                            item.appType = "ngc客户端"  
                        } else {  
                            item.appType = "ngc资产端"  
                        };  
                        if (item.osType == 1) {  
                            item.osType = "Android"  
                        } else {  
                            item.osType = "ios"  
                        };  
                        if (item.isCompulsoryRenewal) {  
                            item.isCompulsoryRenewal = "是"  
                        } else {  
                            item.isCompulsoryRenewal = "否"  
                        };  
                        if (item.content.indexOf("|") != -1) {  
                            item.content = item.content.split("|")  
                        };  
  
                    })  
  
                } else {  
                    alert("无版本内容,或服务器异常,请联系管理员!")  
                }  
            })  
        },  
        handleClick(row){  
          this.trialForm={  
             appType: '',  
             title: '',  
             osType: '',  
             version: '',  
             size: '',  
             link: '',  
             isCompulsoryRenewal: '',  
             content:''  
          };  
          this.titles = '修改发布';  
          this.showTrial = true;  
          this.showS = true;  
          if (this.showS) {  
            if (row.appType=="ngc客户端") {  
                this.trialForm.appType = "1"  
            }else if(row.appType=="ngc资产端"){  
                this.trialForm.appType = "2"  
            };  
            if (row.osType=="Android") {  
                this.trialForm.osType = "1"  
            }else{  
                this.trialForm.osType = "2"  
            };  
            if (row.isCompulsoryRenewal=="是") {  
                 this.trialForm.isCompulsoryRenewal = "1"  
            }else{  
                this.trialForm.isCompulsoryRenewal = "0"  
            };  
            if (Array.prototype.isPrototypeOf(row.content)) {  
                row.content.forEach(item=>{  
                    this.trialForm.content += item + "|";  
                });  
                this.trialForm.content = this.trialForm.content.substring(0, this.trialForm.content.length - 1);  
            }else{  
                    this.trialForm.content = row.content  
            };  
            this.trialForm.link = row.link;  
            this.trialForm.size = row.size;  
            this.trialForm.title = row.title;  
            this.trialForm.version = row.version;  
            this.ID = row.id  
          };  
        }  
    },  
    created() {  
        let par = {  
            page: this.page,  
            size: this.size  
        }  
        getAppVersionList(par).then((res) => {  
            this.total = res.message.totalPages;  
            if (res.status === 1) {  
                this.tableData = (res.message.content)  
                this.tableData.forEach((item) => {  
                    if (item.appType == 1) {  
                        item.appType = "ngc客户端"  
                    } else {  
                        item.appType = "ngc资产端"  
                    };  
                    if (item.osType == 1) {  
                        item.osType = "Android"  
                    } else {  
                        item.osType = "ios"  
                    };  
                    if (item.isCompulsoryRenewal) {  
                        item.isCompulsoryRenewal = "是"  
                    } else {  
                        item.isCompulsoryRenewal = "否"  
                    };  
                    if (item.content.indexOf("|") != -1) {  
                        item.content = item.content.split("|")  
                    };  
  
                })  
  
            } else {  
                alert("无版本内容,或服务器异常,请联系管理员!")  
            }  
        })  
    }  
}  

猜你喜欢

转载自www.cnblogs.com/xiaomuyu/p/9183302.html