MrShi
2 天以前 eb82684152ffb0acddf67da92e4533a0190eb258
admin/src/components/business/OperaJkVersionWindow.vue
@@ -1,52 +1,43 @@
<template>
  <GlobalWindow
    :title="title"
    width="50%"
    :visible.sync="visible"
    :confirm-working="isWorking"
    @confirm="confirm"
  >
    <el-form :model="form" ref="form" :rules="rules">
      <el-form-item label="创建人编码" prop="creator">
        <el-input v-model="form.creator" placeholder="请输入创建人编码" v-trim/>
      </el-form-item>
      <el-form-item label="创建时间" prop="createDate">
        <el-date-picker v-model="form.createDate" value-format="yyyy-MM-dd" placeholder="请输入创建时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="更新人编码" prop="editor">
        <el-input v-model="form.editor" placeholder="请输入更新人编码" v-trim/>
      </el-form-item>
      <el-form-item label="更新时间" prop="editDate">
        <el-date-picker v-model="form.editDate" value-format="yyyy-MM-dd" placeholder="请输入更新时间"></el-date-picker>
      </el-form-item>
      <el-form-item label="是否删除0否 1是" prop="isdeleted">
        <el-input v-model="form.isdeleted" placeholder="请输入是否删除0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="备注" prop="info">
        <el-input v-model="form.info" placeholder="请输入备注" v-trim/>
      </el-form-item>
      <el-form-item label="版本号" prop="versionInfo">
        <el-input v-model="form.versionInfo" placeholder="请输入版本号" v-trim/>
      </el-form-item>
      <el-form-item label="安装包路径" prop="fileUrl">
        <el-input v-model="form.fileUrl" placeholder="请输入安装包路径" v-trim/>
      </el-form-item>
      <el-form-item label="安装版名称" prop="name">
        <el-input v-model="form.name" placeholder="请输入安装版名称" v-trim/>
      <el-form-item label="安装包" prop="fileUrl">
        <div style="width: 100%; height: 1px;"></div>
        <el-upload
          class="upload-demo"
          accept=".APK,.apk"
          :limit="1"
          :action="uploadImgUrl"
          :data="uploadData"
          :on-success="handleSuccess"
          :on-error="uploadError"
          :on-remove="handleRemove"
          :on-exceed="uploadExceed"
          :file-list="fileList">
          <el-button size="small" type="primary">点击上传</el-button>
          <div slot="tip" class="el-upload__tip">支持上传APK文件,单次上传<2GB</div>
        </el-upload>
      </el-form-item>
      <el-form-item label="更新描述" prop="content">
        <el-input v-model="form.content" placeholder="请输入更新描述" v-trim/>
        <el-input type="textarea" :rows="5" maxlength="100" show-word-limit v-model="form.content" placeholder="请输入更新描述" v-trim/>
      </el-form-item>
      <el-form-item label="排序码" prop="sortnum">
        <el-input v-model="form.sortnum" placeholder="请输入排序码" v-trim/>
      </el-form-item>
      <el-form-item label="更新标题" prop="title">
        <el-input v-model="form.title" placeholder="请输入更新标题" v-trim/>
      </el-form-item>
      <el-form-item label="是否强制更新 0否 1是" prop="isForce">
        <el-input v-model="form.isForce" placeholder="请输入是否强制更新 0否 1是" v-trim/>
      </el-form-item>
      <el-form-item label="平台类型 0Android 1IOS" prop="type">
        <el-input v-model="form.type" placeholder="请输入平台类型 0Android 1IOS" v-trim/>
      <el-form-item label="是否强制更新" prop="isForce">
        <el-switch
          v-model="form.isForce"
          active-color="#13ce66"
          inactive-color="#ff4949"
          :active-value="1"
          :inactive-value="0">
        </el-switch>
      </el-form-item>
    </el-form>
  </GlobalWindow>
@@ -61,26 +52,32 @@
  components: { GlobalWindow },
  data () {
    return {
      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload',
      // 表单数据
      form: {
        id: null,
        creator: '',
        createDate: '',
        editor: '',
        editDate: '',
        isdeleted: '',
        info: '',
        versionInfo: '',
        fileUrl: '',
        name: '',
        content: '',
        sortnum: '',
        title: '',
        isForce: '',
        type: ''
        fileSize: '',
        name: '',
        isForce: 1
      },
      // 验证规则
      rules: {
        versionInfo: [
          { required: true, message: '请输入版本号', trigger: 'blur' }
        ],
        fileUrl: [
          { required: true, message: '请上传安装包', trigger: 'blur' }
        ],
        content: [
          { required: true, message: '请输入更新描述', trigger: 'blur' }
        ]
      },
      fileList: [],
      uploadData: {
        folder: 'appFile'
      }
    }
  },
@@ -89,6 +86,70 @@
      api: '/business/jkVersion',
      'field.id': 'id'
    })
  },
  methods: {
    open (title, target) {
      this.title = title
      this.fileList = []
      this.form.fileSize = ''
      this.form.name = ''
      this.visible = true
      // 新建
      if (target == null) {
        this.$nextTick(() => {
          this.$refs.form.resetFields()
          this.form[this.configData['field.id']] = null
        })
        return
      }
      // 编辑
      this.$nextTick(() => {
        for (const key in this.form) {
          this.form[key] = target[key]
        }
        if (this.form.fileUrl) {
          this.fileList.push({
            name: this.form.name,
            url: target.fullFileUrl
          })
        }
      })
    },
    handleSuccess(res, file) {
      if (res.code == 200) {
        let { data } = res
        this.form.fileUrl = data.imgaddr
        this.form.fileSize = data.fileSize
        this.form.name = data.originname
        this.fileList.push({
          name: data.originname,
          url: data.url
        })
        this.$message.success('上传成功')
      } else {
        this.$message.error('上传失败')
        this.form.fileUrl = ''
        this.fileList = []
        this.form.name = ''
        this.form.fileSize = ''
      }
    },
    uploadError() {
      this.form.fileUrl = ''
      this.fileList = []
      this.form.name = ''
      this.form.fileSize = ''
      this.$message.error('上传失败')
    },
    uploadExceed() {
      this.$message.error('最多只能上传一个文件')
    },
    handleRemove() {
      this.form.fileUrl = ''
      this.fileList = []
      this.form.name = ''
      this.form.fileSize = ''
    }
  }
}
</script>