doum
2 天以前 19823a9b024ad614ab3c8e1511b65a6c71001c79
支付宝支付ddd
已添加3个文件
已修改1个文件
310 ■■■■■ 文件已修改
admin/src/api/business/appersion.js 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/components/business/OperaAppversionWindow.vue 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/views/business/appversion.vue 106 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
small-program/pages/itinerary/itinerary.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
admin/src/api/business/appersion.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
import request from '../../utils/request'
// æŸ¥è¯¢
export function fetchList (data) {
  return request.post('/business/appVersion/page', data, {
    trim: true
  })
}
// å¯¼å‡ºExcel
export function exportExcel (data) {
  return request.post('/business/appVersion/exportExcel', data, {
    trim: true,
    download: true
  })
}
// åˆ›å»º
export function create (data) {
  return request.post('/business/appVersion/create', data)
}
// ä¿®æ”¹
export function updateById (data) {
  return request.post('/business/appVersion/updateById', data)
}
// åˆ é™¤
export function deleteById (id) {
  return request.get(`/business/appVersion/delete/${id}`)
}
// æ‰¹é‡åˆ é™¤
export function deleteByIdInBatch (ids) {
  return request.get('/business/appVersion/delete/batch', {
    params: {
      ids
    }
  })
}
admin/src/components/business/OperaAppversionWindow.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,162 @@
<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="versionNum">
        <el-input v-model="form.versionNum" type="number" 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">
        <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 type="textarea" :rows="5" maxlength="100" show-word-limit v-model="form.content" placeholder="请输入更新描述" v-trim/>
      </el-form-item>
      <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>
</template>
<script>
import BaseOpera from '@/components/base/BaseOpera'
import GlobalWindow from '@/components/common/GlobalWindow'
export default {
  name: 'OperaJkVersionWindow',
  extends: BaseOpera,
  components: { GlobalWindow },
  data () {
    return {
      uploadImgUrl: process.env.VUE_APP_API_PREFIX + '/visitsAdmin/cloudService/public/upload',
      // è¡¨å•数据
      form: {
        id: null,
        versionInfo: '',
        fileUrl: '',
        content: '',
        fileSize: '',
        name: '',
        isForce: 1,
        versionNum: ''
      },
      // éªŒè¯è§„则
      rules: {
        versionNum: [
          { required: true, message: '请输入版本号', trigger: 'blur' }
        ],
        versionInfo: [
          { required: true, message: '请输入版本名称', trigger: 'blur' }
        ],
        fileUrl: [
          { required: true, message: '请上传安装包', trigger: 'blur' }
        ],
        content: [
          { required: true, message: '请输入更新描述', trigger: 'blur' }
        ]
      },
      fileList: [],
      uploadData: {
        folder: 'appFile'
      }
    }
  },
  created () {
    this.config({
      api: '/business/appversion',
      '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>
admin/src/views/business/appversion.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,106 @@
<template>
  <TableLayout :permissions="['business:appversion:query']">
    <!-- æœç´¢è¡¨å• -->
    <el-form ref="searchForm" slot="search-form" :model="searchForm" label-width="100px" inline>
      <el-form-item label="版本号" prop="versionInfo">
        <el-input v-model="searchForm.versionInfo" placeholder="请输入版本号" @keypress.enter.native="search"></el-input>
      </el-form-item>
      <el-form-item label="是否强制更新" prop="isForce">
        <el-select v-model="searchForm.isForce" placeholder="请选择" @change="search">
          <el-option label="全部" value=""></el-option>
          <el-option label="否" :value="0"></el-option>
          <el-option label="是" :value="1"></el-option>
        </el-select>
      </el-form-item>
      <section>
        <el-button type="primary" @click="search">搜索</el-button>
        <el-button @click="reset">重置</el-button>
      </section>
    </el-form>
    <!-- è¡¨æ ¼å’Œåˆ†é¡µ -->
    <template v-slot:table-wrap>
      <ul class="toolbar" v-permissions="['business:appversion:create', 'business:appversion:delete']">
        <li><el-button type="primary" @click="$refs.operaAppversionWindow.open('新建版本')" icon="el-icon-plus" v-permissions="['business:appversion:create']">新建</el-button></li>
      </ul>
      <el-table
        :height="tableHeightNew"
        v-loading="isWorking.search"
        :data="tableData.list"
        stripe
      >
        <el-table-column prop="versionNum" label="版本号" min-width="100px"></el-table-column>
        <el-table-column prop="versionInfo" label="版本名称" min-width="100px"></el-table-column>
        <el-table-column label="平台类型" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.type === 0">Android</span>
            <span v-if="row.type === 1">IOS</span>
          </template>
        </el-table-column>
        <el-table-column prop="content" label="更新描述" min-width="100px"></el-table-column>
        <el-table-column prop="name" label="安装包" min-width="100px"></el-table-column>
        <el-table-column label="文件大小" min-width="100px">
          <template slot-scope="{row}">
            {{row.fileSizeMb}}mb
          </template>
        </el-table-column>
        <el-table-column label="是否强制更新" min-width="100px">
          <template slot-scope="{row}">
            <span v-if="row.isForce === 0">否</span>
            <span v-if="row.isForce === 1">是</span>
          </template>
        </el-table-column>
        <el-table-column prop="createUserName" label="创建者" min-width="100px"></el-table-column>
        <el-table-column prop="createDate" label="创建时间" min-width="100px"></el-table-column>
        <el-table-column
          v-if="containPermissions(['business:appversion:update', 'business:appversion:delete'])"
          label="操作"
          min-width="120"
          fixed="right"
        >
          <template slot-scope="{row}">
            <el-button type="text" @click="$refs.operaAppversionWindow.open('编辑版本', row)" icon="el-icon-edit" v-permissions="['business:appversion:update']">编辑</el-button>
            <el-button type="text" @click="deleteById(row)" icon="el-icon-delete" v-permissions="['business:appversion:delete']">删除</el-button>
          </template>
        </el-table-column>
      </el-table>
      <pagination
        @size-change="handleSizeChange"
        @current-change="handlePageChange"
        :pagination="tableData.pagination"
      >
      </pagination>
    </template>
    <!-- æ–°å»º/修改 -->
    <OperaAppversionWindow ref="operaAppversionWindow" @success="handlePageChange"/>
  </TableLayout>
</template>
<script>
import BaseTable from '@/components/base/BaseTable'
import TableLayout from '@/layouts/TableLayout'
import Pagination from '@/components/common/Pagination'
import OperaAppversionWindow from '@/components/business/OperaAppversionWindow'
export default {
  name: 'JkVersion',
  extends: BaseTable,
  components: { TableLayout, Pagination, OperaAppversionWindow },
  data () {
    return {
      // æœç´¢
      searchForm: {
        versionInfo: '',
        isForce: ''
      }
    }
  },
  created () {
    this.config({
      module: '客户端版本管理',
      api: '/business/appversion',
      'field.id': 'id',
      'field.main': 'id'
    })
    this.search()
  }
}
</script>
small-program/pages/itinerary/itinerary.vue
@@ -302,7 +302,7 @@
            if (orderStatus != null &&orderStatus != undefined ) {
                if( Number(orderStatus) === -2){
                    this.activeTab = 0
                } else{
                } else if( Number(orderStatus) !== 0 ){
                    this.activeTab =  Number(orderStatus)
                }
            }