DESKTOP-O04BTUJ\muzen hace 3 años
padre
commit
9dd3f13378

+ 12 - 0
src/api/device/version.js

@@ -53,3 +53,15 @@ export function getClientTypeList(data) {
     data: data
   })
 }
+
+// 
+export function upload(data){
+  return request({
+    url: `/system/file/file/upload`,
+    method: 'post',
+    data: data,
+    headers:{
+      'Content-Type': 'multipart/form-data'
+    }
+  })
+}

+ 27 - 0
src/api/project/list.js

@@ -26,3 +26,30 @@ export function edit(data) {
     data: data
   })
 }
+
+// 应用分页
+export function updatePage(query){
+  return request({
+    url: `/project/update/page`,
+    method: 'get',
+    params: query
+  })
+}
+
+// 新增
+export function updateAdd(data) {
+  return request({
+    url: `/project/update/add`,
+    method: 'post',
+    data: data
+  })
+}
+
+// 更新
+export function update(data){
+  return request({
+    url: `/project/update/edit`,
+    method: 'post',
+    data: data
+  })
+}

+ 4 - 6
src/components/Upload/index.vue

@@ -2,7 +2,7 @@
   <div>
     <el-upload v-if="type === 'file' ? true : hideUpload" :action="action" :headers="headers" :data="data"
       :show-file-list="false" :list-type="type === 'file' ? '':'picture-card'" :before-upload="beforeUpload"
-      :on-success="onSuccess" :on-change="handleChange">
+      :on-success="onSuccess">
       <el-button v-if="type === 'file'" type="primary" style="margin:0">上传文件</el-button>
       <i v-else slot="default" class="el-icon-plus" />
     </el-upload>
@@ -38,11 +38,12 @@ export default {
     return {
       // 额外参数
       data: {
-        multipartFile: ""
+        multipartFile: new FormData()
       },
       // 请求头
       headers: {
-        Authorization: "Bearer " + getToken()},
+        Authorization: "Bearer " + getToken()
+      },
       // 上传地址
       action: '',
       // 隐藏上传按钮
@@ -70,9 +71,6 @@ export default {
       `${process.env.VUE_APP_BASE_API}/system/file/file/upload`
   },
   methods: {
-    handleChange(file) {
-      console.log(file);
-    },
     // 上传服务器之前提交文件
     beforeUpload(file) {
       this.data.multipartFile = file

+ 9 - 2
src/views/device/version/detail.vue

@@ -59,7 +59,7 @@
 </template>
 
 <script>
-import { getDetailInfo, updateEdit, getVersionAdd } from '@/api/device/version';
+import { getDetailInfo, updateEdit, getVersionAdd, upload } from '@/api/device/version';
 import Upload from "@/components/Upload/index";
 import { typeMixin, clientTypeMixin } from '../mixin/index'
 export default {
@@ -121,7 +121,6 @@ export default {
           required: true, message: '请选择推送类型', trigger: 'change'
         }]
       },
-
     }
   },
   mounted() {
@@ -141,6 +140,14 @@ export default {
     getUpload(e) {
       this.form.url = e
     },
+    getFile(e) {
+      console.log(e.target.files[0]);
+      upload({
+        multipartFile: e.target.files[0]
+      }).then(res => {
+        console.log(res);
+      })
+    },
     // 提交
     getSubmit() {
       this.$refs.form.validate((valid) => {

+ 112 - 26
src/views/project/list/detail.vue

@@ -8,22 +8,22 @@
         <Upload :url="form_create.pic" @success="getUpload" @delete="getUpload" />
         <span style="fontSize:12px; color:#909399">图片规格为256*256,大小在1MB以内的PNG图片</span>
       </el-form-item>
-      <el-form-item v-if="this.$route.query.key === 'edit'" label="版本管理:" style="width:1000px">
+      <el-form-item v-if="this.$route.query.key === 'edit'" label="版本管理:" style="width:1500px">
         <el-button type="primary" icon="el-icon-plus" @click="dialogVisible_create = true">新增</el-button>
-        <el-table :data="tableData_version">
+        <el-table :data="tableData_version" v-loading="loading" height="318px">
           <el-table-column type="index" label="序号" align="center" />
-          <el-table-column label="应用名称" align="center" />
-          <el-table-column label="最新版本" align="center" />
-          <el-table-column label="更新内容" align="center" />
-          <el-table-column label="系统类型" align="center" />
-          <el-table-column label="更新时间" align="center" />
-          <el-table-column label="当前状态" align="center" />
+          <el-table-column prop="name" label="应用名称" align="center" />
+          <el-table-column prop="version" label="最新版本" align="center" />
+          <el-table-column prop="updateContent" label="更新内容" align="center" show-overflow-tooltip />
+          <el-table-column prop="os" label="系统类型" align="center" />
+          <el-table-column prop="updateTimeText" label="更新时间" align="center" />
+          <el-table-column prop="status" label="当前状态" align="center" :formatter="statusFormatter" />
           <el-table-column label="操作" align="center">
             <template slot-scope="scope">
               <!-- <el-button type="text">上架</el-button>
               <el-button type="text">下架</el-button> -->
               <el-button type="text">发布</el-button>
-              <el-button type="text" @click="dialogVisible_update = true">更新</el-button>
+              <el-button type="text" @click="getChange(scope.row)">更新</el-button>
               <el-dropdown @command="getCommand" style="margin-left: 10px">
                 <el-button type="text">更多</el-button>
                 <el-dropdown-menu slot="dropdown">
@@ -35,6 +35,8 @@
             </template>
           </el-table-column>
         </el-table>
+        <pagination v-show="version_total>0" :total="version_total" :page.sync="form_version.pageNum"
+          :limit.sync="form_version.pageSize" @pagination="getPage" />
       </el-form-item>
     </el-form>
     <div class="form-btn">
@@ -43,23 +45,23 @@
     </div>
     <!-- 新增 -->
     <el-dialog :visible.sync="dialogVisible_create" title="新增" width="500px">
-      <el-form label-width="100px">
+      <el-form :model="formCreate" ref="formCreate" label-width="100px">
         <el-form-item label="应用名称:">
-          <el-input placeholder="请输入应用名称" />
+          <el-input v-model="formCreate.name" placeholder="请输入应用名称" />
         </el-form-item>
         <el-form-item label="系统类别:">
-          <el-select placeholder="请选择系统类别">
-            <el-option />
+          <el-select v-model="formCreate.os" placeholder="请选择系统类别">
+            <el-option v-for="item in osOptions" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
         </el-form-item>
         <el-form-item label="应用Logo:">
-          <Upload />
+          <Upload :url="formCreate.pic" @sucess="getUpload($event, 'formCreate')" @delete="getUpload($event, 'formCreate')" />
         </el-form-item>
         <el-form-item label="版本号:">
-          <el-input placeholder="请输入版本号" />
+          <el-input v-model="formCreate.version" placeholder="请输入版本号" />
         </el-form-item>
         <el-form-item label="更新内容:">
-          <el-input type="textarea" rows="4" placeholder="请输入更新内容" />
+          <el-input v-model="formCreate.updateContent" type="textarea" rows="4" placeholder="请输入更新内容" />
         </el-form-item>
         <el-form-item label="安装包:">
           <Upload type="file" />
@@ -67,18 +69,18 @@
       </el-form>
       <div slot="footer">
         <el-button>取消</el-button>
-        <el-button type="primary">确定</el-button>
+        <el-button type="primary" @click="getAdd">确定</el-button>
       </div>
     </el-dialog>
 
     <!-- 更新版本 -->
     <el-dialog :visible.sync="dialogVisible_update" title="更新版本" width="500px">
-      <el-form label-width="100px">
+      <el-form :model="formUpdate" label-width="100px">
         <el-form-item label="版本号:">
-          <el-input placeholder="请输入版本号" />
+          <el-input v-model="formUpdate.version" placeholder="请输入版本号" />
         </el-form-item>
         <el-form-item label="更新内容:">
-          <el-input type="textarea" rows="4" placeholder="请输入更新内容" />
+          <el-input v-model="formUpdate.updateContent" type="textarea" rows="4" placeholder="请输入更新内容" />
         </el-form-item>
         <el-form-item label="安装包:">
           <Upload type="file" />
@@ -86,7 +88,7 @@
       </el-form>
       <div slot="footer">
         <el-button>取消</el-button>
-        <el-button type="primary">确定</el-button>
+        <el-button type="primary" @click="getUpdate">确定</el-button>
       </div>
     </el-dialog>
 
@@ -131,7 +133,7 @@
 </template>
 
 <script>
-import { add, edit } from '@/api/project/list'
+import { add, edit, update, updateAdd, updatePage } from '@/api/project/list'
 import Upload from '@/components/Upload'
 export default {
   components: {
@@ -139,15 +141,40 @@ export default {
   },
   data() {
     return {
+      // 遮罩层
+      loading: true,
       // 表单
       form_create: {},
+      form_version: {
+        pageNum: 1,
+        pageSize: 10
+      },
+      formUpdate: {},
+      formCreate: {
+        size: 100
+      },
       // 列表
       tableData_version: [{
         name: '测试'
       }],
+      version_total: 0,
       tableData_history: [{
         version: 0.1
       }],
+      statusOptions: [{
+        value: 0,
+        label: '未发布'
+      }, {
+        value: 1,
+        label: '已发布'
+      }],
+      osOptions: [{
+        value: 'IOS',
+        label: 'IOS '
+      }, {
+        value: 'Android',
+        label: 'Android'
+      }],
       // 弹窗
       dialogVisible_create: false,
       dialogVisible_update: false,
@@ -158,6 +185,8 @@ export default {
   mounted() {
     if (this.$route.query.row) {
       this.form_create = this.$route.query.row
+      this.formCreate.projectId = this.form_version.projectId = this.$route.query.row.id
+      this.getPage()
     }
   },
   methods: {
@@ -173,8 +202,61 @@ export default {
     },
 
     // 上传图标
-    getUpload(e) {
-      this.form_create.pic = e
+    getUpload(e, key) {
+      if (key === 'formCreate') {
+        this.formCreate.pic = e
+        console.log(e);
+      } else {
+        this.form_create.pic = e
+      }
+    },
+
+    // 应用分页
+    getPage() {
+      this.loading = true
+      updatePage(this.form_version).then(res => {
+        if (res.code === 0) {
+          this.tableData_version = res.data.records
+          this.version_total = res.data.total
+          this.loading = false
+        }
+      })
+    },
+
+    // 新增
+    getAdd() {
+      updateAdd(this.formCreate).then(res => {
+        console.log(res);
+        if (res.code === 0) {
+          this.$message.success('新增成功!')
+          this.dialogVisible_create = false
+          this.getPage()
+        }
+      })
+    },
+
+    // 更新弹窗
+    getChange(row) {
+      this.dialogVisible_update = true
+      this.formUpdate = {
+        id: row.id,
+        version: row.version,
+        updateContent: row.updateContent,
+        os: row.os,
+        name: row.name,
+        size: row.size
+      }
+    },
+
+    // 更新
+    getUpdate() {
+      update(this.formUpdate).then(res => {
+        if (res.code === 0) {
+          this.$message.success('更新成功!')
+          this.dialogVisible_update = false
+          this.getPage()
+        }
+      })
     },
 
     // 确定
@@ -195,10 +277,14 @@ export default {
         })
       }
     },
-    
+
     // 取消
-    getCancel(){
+    getCancel() {
       this.$tab.closeOpenPage("/project/list");
+    },
+
+    statusFormatter(row) {
+      return this.selectDictLabel(this.statusOptions, row.status)
     }
   }
 }

+ 1 - 4
src/views/project/list/index.vue

@@ -48,10 +48,7 @@ export default {
       },
       total: 0,
       // 列表
-      tableData: [{
-        name: '猫王',
-        createTime: '',
-      }]
+      tableData: []
     }
   },
   mounted() {