Pārlūkot izejas kodu

feat: 调整说明书处理

Damon 7 mēneši atpakaļ
vecāks
revīzija
a7ad005226

+ 3 - 3
src/api/music/list.js

@@ -19,7 +19,7 @@ export function submit(data) {
 }
 
 // 详情
-export function detail(id){
+export function detail(id) {
   return request({
     url: `/admin/program/queryById/${id}`,
     method: 'get'
@@ -35,7 +35,7 @@ export function remove(id) {
 }
 
 // 上下架
-export function change(id, status){
+export function change(id, status) {
   return request({
     url: `/admin/program/hitOrSold/${id}/${status}`,
     method: 'get'
@@ -43,7 +43,7 @@ export function change(id, status){
 }
 
 // 批量上传歌曲
-export function upload(data){
+export function upload(data) {
   return request({
     url: `/admin/program/batch/upload`,
     method: 'post',

+ 136 - 77
src/components/Upload/index.vue

@@ -1,9 +1,24 @@
 <template>
   <div class="upload">
-    <el-upload v-if="isBtn()" :action="action" :headers="headers" :multiple="multiple" :data="data" :name="name"
-      :show-file-list="showFileList" :drag="drag" :accept="accept" :listType="listType" :autoUpload="autoUpload"
-      :disabled="disabled" :before-upload="beforeUpload" :on-progress="onProgress" :on-success="onSuccess"
-      :on-error="onError">
+    <el-upload
+      v-if="isBtn()"
+      :platformId="platformId"
+      :action="action"
+      :headers="headers"
+      :multiple="multiple"
+      :data="data"
+      :name="name"
+      :show-file-list="showFileList"
+      :drag="drag"
+      :accept="accept"
+      :listType="listType"
+      :autoUpload="autoUpload"
+      :disabled="disabled"
+      :before-upload="beforeUpload"
+      :on-progress="onProgress"
+      :on-success="onSuccess"
+      :on-error="onError"
+    >
       <el-button v-if="listType !== 'picture-card'" :type="type" ref="upload">
         <slot v-if="percentage <= 0 && !form.file">点击上传</slot>
         <span v-if="percentage > 0 && !form.file">{{ title }}</span>
@@ -13,8 +28,14 @@
         <i class="el-icon-plus" />
       </div>
     </el-upload>
-    <el-progress v-if="isPercentage()" type="circle" :percentage="percentage" :status="status"
-      @click.native="handleUpload" :width="146" />
+    <el-progress
+      v-if="isPercentage()"
+      type="circle"
+      :percentage="percentage"
+      :status="status"
+      @click.native="handleUpload"
+      :width="146"
+    />
     <div class="img" v-if="isImg()">
       <i class="el-icon-delete" v-if="!disabled" @click="onDelete" />
       <el-image :src="form.file" />
@@ -23,8 +44,8 @@
 </template>
 
 <script>
-const baseUrl = process.env.VUE_APP_BASE_API
-import { getToken } from '@/utils/auth'
+const baseUrl = process.env.VUE_APP_BASE_API;
+import { getToken } from "@/utils/auth";
 export default {
   props: {
     // 回显图片
@@ -32,197 +53,235 @@ export default {
     // 是否支持多选文件
     multiple: {
       type: Boolean,
-      default: false
+      default: false,
     },
     // 是否显示文件列表
     showFileList: {
       type: Boolean,
-      default: false
+      default: false,
     },
     // 是否支持拖拽上传
     drag: {
       type: Boolean,
-      default: false
+      default: false,
     },
     // 上传类型
     listType: {
       type: String,
-      default: 'text'
+      default: "text",
     },
+    // platformId: {
+    //   type: Number,
+    //   default: "",
+    // },
     // 是否支持自动上传
     autoUpload: {
       type: Boolean,
-      default: true
+      default: true,
     },
     // 是否禁用
     disabled: {
       type: Boolean,
-      default: false
+      default: false,
     },
     // 最大允许上传个数
     limit: Number,
     // 文件类型
     accept: {
       type: String,
-      default: ''
+      default: "",
     },
     // 文件名
     name: {
       type: String,
-      default: 'multipartFile'
+      default: "multipartFile",
     },
     // 图片尺寸
     width: {
       type: Number,
-      default: null
+      default: null,
     },
     height: {
       type: Number,
-      default: null
+      default: null,
     },
     // 文件大小
     size: {
       type: Number,
-      default: null
-    }
+      default: null,
+    },
   },
+
   data() {
     return {
       // 上传类型
       obj: {
-        'text': `${baseUrl}/system/file/file/upload`, // 文件上传
-        'picture-card': `${baseUrl}/system/file/picture/upload`, // 图片上传
-        'audio': `${baseUrl}/system/file/mp3/upload`, // 音频上传
-        'zip': `${baseUrl}/system/file/file/uploadFolderZip`, // 压缩包上传
-        'mp3': `${baseUrl}/admin/program/batch/upload` // 歌曲批量上传
+        text: `${baseUrl}/system/file/file/upload`, // 文件上传
+        "picture-card": `${baseUrl}/system/file/picture/upload`, // 图片上传
+        audio: `${baseUrl}/system/file/mp3/upload`, // 音频上传
+        zip: `${baseUrl}/system/file/file/uploadFolderZip`, // 压缩包上传
+        mp3: `${baseUrl}/admin/program/batch/upload`, // 歌曲批量上传
       },
       // 上传地址
-      action: '#',
+      action: "#",
+      platformId: 0,
       // 请求头部
       headers: {
-        Authorization: "Bearer " + getToken()
+        Authorization: "Bearer " + getToken(),
       },
       // 额外参数
-      data: {},
+      data: { platformId: 6 },
       // 进度条
       percentage: 0,
-      title: '',
+      title: "",
       // 进度条状态
       status: null,
-      type: 'primary',
+      type: "primary",
       // 表单
       form: {
         size: 0,
-        file: ''
-      }
-    }
+        file: "",
+      },
+    };
   },
+
   watch: {
     url(val) {
-      this.form.file = val
+      this.form.file = val;
       if (!val) {
-        this.percentage = 0
+        this.percentage = 0;
       }
     },
     listType(val) {
-      this.action = this.obj[val]
-    }
+      console.log("gasdfqwerqwerqwerwqr==xxxxx==" + val);
+      this.action = this.obj[val];
+    },
+
+    platformId(val) {
+      this.form.platformId = val;
+    },
   },
+
   created() {
     // 根据上传类型 变更 上传地址
-    this.action = this.obj[this.listType]
+    console.log("gasdfqwerqwerqwerwqr==yyyy==" + this.listType);
+    this.action = this.obj[this.listType];
     // 回显图片
-    this.form.file = this.url
+    this.form.file = this.url;
+    this.form.platformId = this.platformId;
+    this.data.platformId = this.platformId;
   },
   methods: {
     // 上传之前
     async beforeUpload(file) {
+      console.log("gasdfqwerqwerqwerwqr==111==" + JSON.stringify(file));
+      console.log("gasdfqwerqwerqwerwqr==aaa==" + JSON.stringify(this.form));
+      console.log("gasdfqwerqwerqwerwqr==bbb==" + JSON.stringify(this.data));
       if (this.width && this.height) {
-        const data = await this.readerImg(file)
-        let _width = data.width % this.width === 0 || this.width % data.width === 0 ? true : false
-        let _height = data.height % this.height === 0 || this.height % data.height === 0 ? true : false
+        const data = await this.readerImg(file);
+        let _width =
+          data.width % this.width === 0 || this.width % data.width === 0
+            ? true
+            : false;
+        let _height =
+          data.height % this.height === 0 || this.height % data.height === 0
+            ? true
+            : false;
         if (!_width || !_height) {
-          this.$message.error(`请上传${this.width}x${this.height}尺寸或同比例倍数的图片`)
-          return Promise.reject(false)
+          this.$message.error(
+            `请上传${this.width}x${this.height}尺寸或同比例倍数的图片`
+          );
+          return Promise.reject(false);
         }
       }
 
-      if (this.size && (file.size / 1024 / 1024 > this.size)) {
-        this.$message.error(`文件大小不得超过${this.size}MB`)
-        return Promise.reject(false)
+      if (this.size && file.size / 1024 / 1024 > this.size) {
+        this.$message.error(`文件大小不得超过${this.size}MB`);
+        return Promise.reject(false);
       }
 
-      this.form.size = file.size
+      this.form.size = file.size;
     },
 
     readerImg(file) {
+      console.log("gasdfqwerqwerqwerwqr==222==" + file);
       return new Promise((resolve, reject) => {
-        const reader = new FileReader()
-        reader.readAsDataURL(file)
+        const reader = new FileReader();
+        reader.readAsDataURL(file);
         reader.onload = () => {
-          const img = new Image()
-          img.src = reader.result
+          const img = new Image();
+          img.src = reader.result;
           img.onload = () => {
             resolve({
               width: img.width,
-              height: img.height
-            })
-          }
-        }
-      })
+              height: img.height,
+            });
+          };
+        };
+      });
     },
 
     // 上传过程中
     onProgress(file) {
-      this.percentage = parseInt(file.percent - 1)
-      this.title = `已上传 ${parseInt(file.percent - 1)}%`
+      this.percentage = parseInt(file.percent - 1);
+      this.title = `已上传 ${parseInt(file.percent - 1)}%`;
     },
 
     // 上传成功
     onSuccess(file) {
+      console.log("gasdfqwerqwerqwerwqr==333==" + JSON.stringify(file));
       if (file.code === 0) {
-        this.form.file = file.data
-        this.$emit('upload', this.form)
-        this.title = '上传成功'
-        this.type = 'success'
+        this.form.file = file.data;
+        this.$emit("upload", this.form);
+        this.title = "上传成功";
+        this.type = "success";
       } else {
-        this.onError()
+        this.onError();
       }
     },
 
     // 上传失败
     onError() {
-      this.status = 'exception'
-      this.type = 'danger'
-      this.title = '上传失败'
+      this.status = "exception";
+      this.type = "danger";
+      this.title = "上传失败";
     },
 
     // 删除
     onDelete() {
-      this.form.file = ''
-      this.percentage = 0
-      this.$emit('upload', this.form)
+      this.form.file = "";
+      this.percentage = 0;
+      this.$emit("upload", this.form);
     },
 
     // 如果上传失败 重新上传
     handleUpload() {
-      this.percentage = 0
+      this.percentage = 0;
     },
 
     // 上传按钮
     isBtn() {
-      return ['text', 'audio', 'zip', 'mp3'].includes(this.listType) || (this.listType === 'picture-card' && this.percentage == 0 && !this.form.file)
+      return (
+        ["text", "audio", "zip", "mp3"].includes(this.listType) ||
+        (this.listType === "picture-card" &&
+          this.percentage == 0 &&
+          !this.form.file)
+      );
     },
     // 显示进度条
     isPercentage() {
-      return this.listType === 'picture-card' && this.percentage !== 0 && !this.form.file
+      return (
+        this.listType === "picture-card" &&
+        this.percentage !== 0 &&
+        !this.form.file
+      );
     },
     // 显示图片
     isImg() {
-      return this.listType === 'picture-card' && this.form.file
-    }
-  }
-}
+      return this.listType === "picture-card" && this.form.file;
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>

+ 1 - 0
src/utils/request.js

@@ -67,6 +67,7 @@ service.interceptors.request.use(config => {
 
       // console.log("gadfadsqwerqewrwqr=aaa==" + JSON.stringify(config));
 
+
       ///活动管理-新增赠送流量特殊处理
       if (config.url === "/admin/activity/doExchange") {
         interval = 2000;

+ 136 - 68
src/views/music/list/detail.vue

@@ -1,49 +1,93 @@
 <template>
   <div class="app-container">
-    <el-form :model="form" ref="form" :rules="rules" label-width="100px" :disabled="disabled">
+    <el-form
+      :model="form"
+      ref="form"
+      :rules="rules"
+      label-width="100px"
+      :disabled="disabled"
+    >
       <el-form-item label="歌曲名称:" prop="name">
         <el-input v-model="form.name" placeholder="请输入歌曲名称" />
       </el-form-item>
       <el-form-item label="歌手名称:" prop="singerId">
-        <el-select v-model="form.singerId" multiple filterable remote reserve-keyword placeholder="请输入歌手名称"
-          :remote-method="getSelect" no-data-text="请新增歌手">
-          <el-option v-for="item in singerOptions" :key="item.value" :value="item.value" :label="item.label" />
+        <el-select
+          v-model="form.singerId"
+          multiple
+          filterable
+          remote
+          reserve-keyword
+          placeholder="请输入歌手名称"
+          :remote-method="getSelect"
+          no-data-text="请新增歌手"
+        >
+          <el-option
+            v-for="item in singerOptions"
+            :key="item.value"
+            :value="item.value"
+            :label="item.label"
+          />
         </el-select>
       </el-form-item>
       <el-form-item label="歌曲语言:" prop="lanuage">
         <el-select v-model="form.lanuage" placeholder="请选择歌曲语言">
-          <el-option v-for="item in languageOptions" :key="item.value" :value="item.value" :label="item.label" />
+          <el-option
+            v-for="item in languageOptions"
+            :key="item.value"
+            :value="item.value"
+            :label="item.label"
+          />
         </el-select>
       </el-form-item>
       <el-form-item label="资源平台:" prop="platformId">
-        <el-select v-model="form.platformId" placeholder="请选择资源平台" :disabled="disabledPlatformId(form.platformId)">
-          <el-option v-for="item in platformOptions" :key="item.value" :value="item.value" :label="item.label"
-            :disabled="disabledJoinType(item.joinType)" />
+        <el-select
+          v-model="form.platformId"
+          placeholder="请选择资源平台"
+          :disabled="disabledPlatformId(form.platformId)"
+        >
+          <el-option
+            v-for="item in platformOptions"
+            :key="item.value"
+            :value="item.value"
+            :label="item.label"
+            :disabled="disabledJoinType(item.joinType)"
+          />
         </el-select>
       </el-form-item>
       <el-form-item label="音频封面:" prop="thumbUrl">
-        <Upload listType="picture-card" :url="form.thumbUrl" @upload="upload($event, 'thumbUrl')" :disabled="disabled" />
+        <Upload
+          listType="picture-card"
+          :url="form.thumbUrl"
+          @upload="upload($event, 'thumbUrl')"
+          :disabled="disabled"
+        />
       </el-form-item>
       <el-form-item label="音频文件:" prop="realName">
         <el-input v-model="form.realName" readonly>
           <template slot="suffix">
-            <Upload listType="audio" :size="100" @upload="upload($event, 'progaramUrl')" />
+            <Upload
+              listType="audio"
+              :size="100"
+              @upload="upload($event, 'progaramUrl')"
+            />
           </template>
         </el-input>
-        <div style="color:#909399">单个上传音频文件不超过100MB</div>
+        <div style="color: #909399">单个上传音频文件不超过100MB</div>
       </el-form-item>
     </el-form>
     <div class="form-btn">
       <el-button @click="cancel">取消</el-button>
-      <el-button type="primary" @click="getSubmit" v-if="!disabled">确定</el-button>
+      <el-button type="primary" @click="getSubmit" v-if="!disabled"
+        >确定</el-button
+      >
     </div>
   </div>
 </template>
 
 <script>
-import { submit, detail } from '@/api/music/list'
-import { selectSinger } from '@/api/music/singer'
-import { platformMixin, languageMixin } from '@/mixin/index'
+import { detail, submit } from "@/api/music/list";
+import { selectSinger } from "@/api/music/singer";
+import { languageMixin, platformMixin } from "@/mixin/index";
 export default {
   mixins: [platformMixin, languageMixin],
   data() {
@@ -53,88 +97,112 @@ export default {
       // 表单
       form: {
         status: 1,
-        realName: ''
+        realName: "",
       },
       // 是否只读
       disabled: false,
       // 校验
       rules: {
-        name: [{
-          required: true, message: '请输入歌曲名称', trigger: 'blur'
-        }],
-        singerId: [{
-          required: true, message: '请输入歌手名称', trigger: 'blur'
-        }],
-        lanuage: [{
-          required: true, message: '请选择歌曲语言', trigger: 'blur'
-        }],
-        platformId: [{
-          required: true, message: '请选择资源平台', trigger: 'change'
-        }],
-        thumbUrl: [{
-          required: true, message: '请上传音频封面', trigger: 'change'
-        }],
-        realName: [{
-          required: true, message: '请上传音频文件', trigger: 'blur'
-        }]
-      }
+        name: [
+          {
+            required: true,
+            message: "请输入歌曲名称",
+            trigger: "blur",
+          },
+        ],
+        singerId: [
+          {
+            required: true,
+            message: "请输入歌手名称",
+            trigger: "blur",
+          },
+        ],
+        lanuage: [
+          {
+            required: true,
+            message: "请选择歌曲语言",
+            trigger: "blur",
+          },
+        ],
+        platformId: [
+          {
+            required: true,
+            message: "请选择资源平台",
+            trigger: "change",
+          },
+        ],
+        thumbUrl: [
+          {
+            required: true,
+            message: "请上传音频封面",
+            trigger: "change",
+          },
+        ],
+        realName: [
+          {
+            required: true,
+            message: "请上传音频文件",
+            trigger: "blur",
+          },
+        ],
+      },
     };
   },
   mounted() {
     // 获取资源平台
     this.getPlatform({
-      audioType: 11
-    })
+      audioType: 11,
+    });
     if (this.$route.query.id) {
-      this.form.id = this.$route.query.id
-      this.disabled = Boolean(this.$route.query.disabled)
-      this.getList()
+      this.form.id = this.$route.query.id;
+      this.disabled = Boolean(this.$route.query.disabled);
+      this.getList();
     }
   },
   methods: {
     // 详情
     getList() {
-      detail(this.form.id).then(res => {
+      detail(this.form.id).then((res) => {
         if (res.code === 0) {
-          this.form = res.data
-          this.form.singerId = res.data.singerId.split(',')
-          res.data.singerResp.map(i => {
+          this.form = res.data;
+          this.form.singerId = res.data.singerId.split(",");
+          res.data.singerResp.map((i) => {
             this.singerOptions.push({
               value: i.singerId,
-              label: i.singerName
-            })
-          })
+              label: i.singerName,
+            });
+          });
         }
-      })
+      });
     },
 
     // 查询歌手
     getSelect(e) {
       if (e) {
         setTimeout(() => {
-          this.singerOptions = []
-          selectSinger(e).then(res => {
+          this.singerOptions = [];
+          selectSinger(e).then((res) => {
             if (res.code === 0) {
-              res.data.map(i => {
+              res.data.map((i) => {
                 this.singerOptions.push({
                   value: i.id,
-                  label: i.name
-                })
-              })
+                  label: i.name,
+                });
+              });
             }
-          }, 500)
-        })
+          }, 500);
+        });
       }
     },
 
     // 上传
     upload(e, key) {
-      if (key === 'thumbUrl') {
-        this.form.thumbUrl = e.file
+      if (key === "thumbUrl") {
+        this.form.thumbUrl = e.file;
       } else {
-        this.form.progaramUrl = e.file.url
-        this.form.playTime = e.file.time
-        this.form.realName = e.file.realName
+        this.form.progaramUrl = e.file.url;
+        this.form.playTime = e.file.time;
+        this.form.realName = e.file.realName;
       }
     },
 
@@ -142,17 +210,17 @@ export default {
     getSubmit() {
       this.$refs.form.validate((valid) => {
         if (valid) {
-          this.form.singerId = this.form.singerId.join(',')
-          submit(this.form).then(res => {
+          this.form.singerId = this.form.singerId.join(",");
+          submit(this.form).then((res) => {
             if (res.code === 0) {
-              this.$message.success('提交成功!')
-              this.cancel()
+              this.$message.success("提交成功!");
+              this.cancel();
             }
-          })
+          });
         } else {
-          return false
+          return false;
         }
-      })
+      });
     },
 
     // 取消

+ 1 - 0
src/views/music/list/index.vue

@@ -69,6 +69,7 @@
         >
         <Upload
           listType="mp3"
+          platformId="6"
           multiple
           name="multipartFiles"
           @upload="getList()"

+ 10 - 5
src/views/operation/explain/detail.vue

@@ -23,13 +23,16 @@
         </el-select>
       </el-form-item>
 
-      <el-form-item label="二维码图片:" prop="codeUrl">
-        <Upload
+      <!-- @upload="uploadCode($event, 'codeUrl')" -->
+      <!-- {{ form.codeUrl }} -->
+      <el-form-item v-if="form.state > 0" label="二维码图片:" prop="codeUrl">
+        <!-- <Upload
           listType="picture-card"
           :url="form.codeUrl"
+          :disabled="true"
           @upload="uploadCode($event, 'codeUrl')"
-          :disabled="disabled"
-        />
+        /> -->
+        <el-image :src="form.codeUrl" />
       </el-form-item>
 
       <el-form-item label="说明书文件:" prop="fileUrl">
@@ -111,10 +114,12 @@ export default {
   methods: {
     // 详情
     getDetail() {
-      if (this.form.state != 0) {
+      var state = this.form.state;
+      if (state != 0) {
         detail(this.form.id).then((res) => {
           if (res.code === 0) {
             this.form = res.data;
+            this.form.state = state;
           }
         });
       }