<template>
  <div style="padding:10px;">
    <!-- 搜索栏 -->
    <div class="search">
      <el-form :inline="true">
        <el-form-item label="剧本标题:" style="margin-right:50px;">
          <el-input
            v-model="queryParams.query.title"
            style="height:30px;"
            placeholder="请输入剧本标题"
          />
        </el-form-item>
        <el-form-item label="工作室:" style="margin-right:50px;">
          <el-input
            v-model="queryParams.query.studioName"
            style="height:30px;"
            placeholder="请输入工作室"
          />
        </el-form-item>
        <el-form-item label="标签:" style="margin-right:50px;">
          <el-input
            v-model="queryParams.query.labelName"
            style="height:30px;"
            placeholder="请输入标签"
          />
        </el-form-item>
      </el-form>
      <div class="search-button">
        <el-button
          size="medium"
          type="primary"
          style="height:36px;width:100px;"
          @click="search"
          >搜索</el-button
        >
        <el-button
          size="medium"
          style="margin-left:20px;height:36px;width:100px;"
          @click="refresh"
          >重置</el-button
        >
      </div>
    </div>
    <div class="add-button">
      <el-button
        size="medium"
        type="primary"
        style="height:36px;width:100px;"
        @click="handleAdd"
        >新建</el-button
      >
    </div>
    <!-- 列表 -->
    <div class="content">
      <el-table
        v-loading="loading"
        ref="singleTable"
        :data="tableData"
        border
        style="width: 100%"
      >
        <el-table-column align="center" type="index" label="序号" width="50" />
        <el-table-column align="center" property="title" label="剧本标题" />
        <el-table-column align="center" property="studioName" label="工作室" />
        <el-table-column align="center" property="labelName" label="标签" />
        <el-table-column
          align="center"
          property="createTime"
          label="创建时间"
        />
        <el-table-column align="center" label="操作">
          <template slot-scope="scope">
            <el-button type="text" size="mini" @click="handleView(scope.row)"
              >查看</el-button
            >
            <el-button type="text" size="mini" @click="handleEdit(scope.row)"
              >编辑</el-button
            >
            <el-button type="text" size="mini" @click="handleTips(scope.row)"
              >Tips维护</el-button
            >
            <el-button type="text" size="mini" @click="hanDel(scope.row)"
              >删除</el-button
            >
          </template>
        </el-table-column>
      </el-table>
      <pagination
        v-show="total > 0"
        :total="total"
        :page.sync="queryParams.pageNum"
        :limit.sync="queryParams.pageSize"
        @pagination="queryList"
      />
    </div>
    <!-- 新增表单 -->
    <el-dialog :title="dialog.title" :visible.sync="dialog.Visible" width="1000px">
      <el-form
        ref="ruleForm"
        :model="ruleForm"
        :rules="rules"
        :inline="true"
        label-width="100px"
        class="demo-ruleForm"
      >
        <h3 class="form-title">基本信息</h3>
        <el-form-item label="剧本标题:" prop="title" style="width:45%">
          <el-input v-model="ruleForm.title" style="width:300px;" />
        </el-form-item>
        <el-form-item label="工作室:" prop="studioName" style="width:45%">
          <el-input v-model="ruleForm.studioName" style="width:300px;" />
        </el-form-item>
        <el-form-item label="标签:" prop="labelName" style="width:100%">
          <el-input v-model="ruleForm.labelName" style="width:300px;" />
        </el-form-item>
        <h3 class="form-title">剧本图片</h3>
        <el-form-item label="封面" prop="cover">
          <el-upload
            class="avatar-uploader"
            action
            :show-file-list="false"
            :auto-upload="false"
            :on-change="uploadImg"
            :on-success="handleAvatar"
            :before-upload="beforeAvatarUpload"
          >
            <img v-if="ruleForm.cover" :src="ruleForm.cover" class="avatar" />
            <i v-else class="el-icon-plus avatar-uploader-icon"></i>
          </el-upload>
        </el-form-item>
        <el-form-item label="其它图片" style="width:100%">
          <el-upload
            action
            class="avatar-uploader"
            list-type="picture-card"
            :auto-upload="false"
            :on-change="changeImgs"
            :on-success="handleAvatarSuccess"
            :before-upload="beforeAvatarUpload"
          >
            <i class="el-icon-plus" />
          </el-upload>
          <el-dialog :visible.sync="dialogVisible">
            <img width="100%" :src="dialogImageUrl" alt="" />
          </el-dialog>
        </el-form-item>
        <h3 class="form-title">剧本简介</h3>
        <el-form-item label="简介" style="width:100%">
          <!-- <el-input
            v-model="ruleForm.desc"
            style="width:500px"
            rows="10"
            type="textarea"
          /> -->
          <Tinymce
            ref="editor"
            v-model="ruleForm.introduction"
            :height="400"
            :width="700"
          />
        </el-form-item>
        <h3 class="form-title">开本流程</h3>
        <el-table
          v-if="type != 'view'"
          :header-cell-style="{ background: '#eee', color: '#606266' }"
          :data="ruleForm.processesList"
          border
          style="width: 90%;margin-left:30px;"
        >
          <el-table-column
            align="center"
            type="index"
            label="序号"
            width="50"
          />
          <el-table-column align="center" property="title" label="流程标题">
            <template slot-scope="scope">
              <el-input v-model="ruleForm.processesList[scope.$index].title" />
            </template>
          </el-table-column>
          <el-table-column align="center" property="code" label="流程编号">
            <template slot-scope="scope">
              <el-input v-model="ruleForm.processesList[scope.$index].code" />
            </template>
          </el-table-column>
          <el-table-column align="center" property="introduction" label="简介">
            <template slot-scope="scope">
              <el-input
                v-model="ruleForm.processesList[scope.$index].introduction"
              />
            </template>
          </el-table-column>
          <el-table-column align="center" property="sort" label="排序">
            <template slot-scope="scope">
              <el-input v-model="ruleForm.processesList[scope.$index].sort" />
            </template>
          </el-table-column>
          <el-table-column align="center" label="操作">
            <template slot-scope="scope">
              <el-button type="text" size="mini" @click="Del(scope.$index)"
                >删除</el-button
              >
            </template>
          </el-table-column>
        </el-table>
        <el-table
          v-if="type == 'view'"
          :header-cell-style="{ background: '#eee', color: '#606266' }"
          :data="ruleForm.processesList"
          border
          style="width: 90%;margin-left:30px;"
        >
          <el-table-column
            align="center"
            type="index"
            label="序号"
            width="50"
          />
          <el-table-column align="center" property="title" label="流程标题">
          </el-table-column>
          <el-table-column align="center" property="code" label="流程编号">
          </el-table-column>
          <el-table-column align="center" property="introduction" label="简介">
          </el-table-column>
          <el-table-column align="center" property="sort" label="排序">
          </el-table-column>
        </el-table>
        <div style="margin-top:15px;" v-if="type != 'view'">
          <el-button
            type="success"
            style="height:36px;width:100px;margin-left:30px;color:#fff;background:#33DB99"
            @click="handleAddK"
            >新增</el-button
          >
        </div>
        <h3 class="form-title">剧本资源</h3>
        <el-form-item label="图片" prop="imgUrls" style="width: 100%;">
          <el-radio-group v-model="radioImg" @change="changeImg">
            <el-radio :label="1">本地上传</el-radio>
            <el-radio :label="2">网易云地址</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item v-if="radioImg == 1">
          <div v-for="(item, i) in imgData" :key="i" class="imgdata">
            <el-image
              style="width: 146px; height: 146px"
              :src="item.url"
              fit="fill"
            >
            </el-image>
            <div class="imgdialog">
              <p>
                <i
                  class="el-icon-delete"
                  @click="deldialogimg(item, i, 'img')"
                  style="font-size: 20px; padding-left: 30px"
                ></i>
              </p>
            </div>
            <div class="sz_container" style="text-align:center">
              <span>{{ item.processName }}</span>
            </div>
            <div class="sz_container" style="text-align:center">
              <el-button size="mini" type="text" @click="setLc(item, i, 'img')"
                >关联流程</el-button
              >
            </div>
          </div>
          <el-upload
            v-if="type != 'view'"
            class="avatar-uploader"
            style="float:left;margin-left:60px"
            action
            list-type="picture-card"
            :show-file-list="false"
            :http-request="labeluploadimg"
          >
            <i class="el-icon-plus"></i>
          </el-upload>
          <el-dialog :visible.sync="dialogVisible">
            <img width="100%" :src="dialogImageUrl" alt="" />
          </el-dialog>
        </el-form-item>
        <el-form-item
          v-if="radioImg == 2"
          style="width: 100%;"
          class="urlTable"
        >
          <el-table
            v-if="type != 'view'"
            :data="ruleForm.radioImg"
            border
            style="width: 80%;margin-left:100px;"
          >
            <el-table-column
              align="center"
              type="index"
              label="序号"
              width="50"
            />
            <el-table-column align="center" property="date" label="资源标题">
              <template slot-scope="scope">
                <el-input v-model="ruleForm.radioImg[scope.$index].title" />
              </template>
            </el-table-column>
            <el-table-column align="center" property="url" label="资源URL">
              <template slot-scope="scope">
                <el-input v-model="ruleForm.radioImg[scope.$index].url" />
              </template>
            </el-table-column>
            <el-table-column
              align="center"
              property="processId"
              label="关联流程"
            >
              <template slot-scope="scope">
                <el-select
                  v-model="ruleForm.radioImg[scope.$index].processId"
                  clearable
                  multiple
                  @change="changePro('img')"
                  placeholder="请选择流程"
                >
                  <el-option
                    v-for="item in ruleForm.processesList"
                    :key="item.value"
                    :label="item.title"
                    :value="item.code"
                  >
                  </el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column align="center" label="操作">
              <template slot-scope="scope">
                <el-button type="text" size="mini" @click="DelImg(scope.$index)"
                  >删除</el-button
                >
              </template>
            </el-table-column>
          </el-table>
          <el-table
            v-if="type == 'view'"
            :data="ruleForm.radioImg"
            border
            style="width: 80%;margin-left:100px;"
          >
            <el-table-column
              align="center"
              type="index"
              label="序号"
              width="50"
            />
            <el-table-column align="center" property="title" label="资源标题" />
            <el-table-column align="center" property="url" label="资源URL" />
            <el-table-column
              align="center"
              property="processId"
              label="关联流程"
            >
              <template slot-scope="scope">
                {{ mapForChannel(scope.row.processId) }}
              </template>
            </el-table-column>
          </el-table>
          <div style="margin-top:15px;" v-if="type != 'view'">
            <el-button
              type="success"
              style="height:36px;width:100px;margin-left:30px;color:#fff;background:#33DB99"
              @click="handleAddImg"
              >新增</el-button
            >
          </div>
        </el-form-item>
        <el-form-item label="音频" prop="imgUrls" style="width: 100%;">
          <el-radio-group v-model="radioMusic" @change="changeMusic">
            <el-radio :label="1">本地上传</el-radio>
            <el-radio :label="2">网易云地址</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item v-if="radioMusic == 1">
          <div v-for="(item, i) in musicData" :key="i" class="imgdata">
            <el-image
              style="width: 146px; height: 146px"
              :src="item.url"
              fit="fill"
            >
            </el-image>
            <div class="imgdialog">
              <p>
                <i class="el-icon-zoom-in" style="font-size: 20px"></i>
                <i
                  class="el-icon-delete"
                  @click="deldialogimg(item, i, 'music')"
                  style="font-size: 20px; padding-left: 30px"
                ></i>
              </p>
            </div>
            <div class="sz_container" style="text-align:center">
              <span>{{ item.processName }}</span>
            </div>
            <div class="sz_container" style="text-align:center">
              <el-button
                size="mini"
                type="text"
                @click="setLc(item, i, 'music')"
                >关联流程</el-button
              >
            </div>
          </div>
          <el-upload
            v-if="type != 'view'"
            class="avatar-uploader"
            style="float:left;margin-left:60px"
            action
            list-type="picture-card"
            :show-file-list="false"
            :http-request="labeluploadmusic"
          >
            <i class="el-icon-plus"></i>
          </el-upload>
          <el-dialog :visible.sync="dialogVisible">
            <img width="100%" :src="dialogImageUrl" alt="" />
          </el-dialog>
        </el-form-item>
        <el-form-item
          v-if="radioMusic == 2"
          style="width: 100%;"
          class="urlTable"
        >
          <el-table
            v-if="type != 'view'"
            :data="ruleForm.radioMusic"
            border
            style="width: 80%;margin-left:100px;"
          >
            <el-table-column
              align="center"
              type="index"
              label="序号"
              width="50"
            />
            <el-table-column align="center" property="title" label="资源标题">
              <template slot-scope="scope">
                <el-input v-model="ruleForm.radioMusic[scope.$index].title" />
              </template>
            </el-table-column>
            <el-table-column align="center" property="url" label="资源URL">
              <template slot-scope="scope">
                <el-input v-model="ruleForm.radioMusic[scope.$index].url" />
              </template>
            </el-table-column>
            <el-table-column
              align="center"
              property="processId"
              label="关联流程"
            >
              <template slot-scope="scope">
                <el-select
                  v-model="ruleForm.radioMusic[scope.$index].processId"
                  clearable
                  multiple
                  @change="changePro('music')"
                  placeholder="请选择流程"
                >
                  <el-option
                    v-for="item in ruleForm.processesList"
                    :key="item.value"
                    :label="item.title"
                    :value="item.code"
                  >
                  </el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column align="center" label="操作">
              <template slot-scope="scope">
                <el-button
                  type="text"
                  size="mini"
                  @click="DelMusic(scope.$index)"
                  >删除</el-button
                >
              </template>
            </el-table-column>
          </el-table>
          <el-table
            v-if="type == 'view'"
            :data="ruleForm.radioMusic"
            border
            style="width: 80%;margin-left:100px;"
          >
            <el-table-column
              align="center"
              type="index"
              label="序号"
              width="50"
            />
            <el-table-column align="center" property="title" label="资源标题" />
            <el-table-column align="center" property="url" label="资源URL" />
            <el-table-column
              align="center"
              property="processId"
              label="关联流程"
            >
              <template slot-scope="scope">
                {{ mapForChannel(scope.row.processId) }}
              </template>
            </el-table-column>
          </el-table>
          <div style="margin-top:15px;" v-if="type != 'view'">
            <el-button
              type="success"
              style="height:36px;width:100px;margin-left:30px;color:#fff;background:#33DB99"
              @click="handleAddMusic"
              >新增</el-button
            >
          </div>
        </el-form-item>
        <el-form-item label="视频" prop="imgUrls" style="width: 100%;">
          <el-radio-group v-model="radioVideo" @change="changeVideo">
            <el-radio :label="1">本地上传</el-radio>
            <el-radio :label="2">网易云地址</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item v-if="radioVideo == 1">
          <div v-for="(item, i) in videoData" :key="i" class="imgdata">
            <el-image
              style="width: 146px; height: 146px"
              :src="item.url"
              fit="fill"
            >
            </el-image>
            <div class="imgdialog">
              <p>
                <i class="el-icon-zoom-in" style="font-size: 20px"></i>
                <i
                  class="el-icon-delete"
                  @click="deldialogimg(item, i, 'video')"
                  style="font-size: 20px; padding-left: 30px"
                ></i>
              </p>
            </div>
            <div class="sz_container" style="text-align:center">
              <span>{{ item.processName }}</span>
            </div>
            <div class="sz_container" style="text-align:center">
              <el-button
                size="mini"
                type="text"
                @click="setLc(item, i, 'video')"
                >关联流程</el-button
              >
            </div>
          </div>
          <el-upload
            v-if="type != 'view'"
            class="avatar-uploader"
            style="float:left;margin-left:60px"
            action
            list-type="picture-card"
            :show-file-list="false"
            :http-request="labeluploadvideo"
          >
            <i class="el-icon-plus"></i>
          </el-upload>
          <el-dialog :visible.sync="dialogVisible">
            <img width="100%" :src="dialogImageUrl" alt="" />
          </el-dialog>
        </el-form-item>
        <el-form-item
          v-if="radioVideo == 2"
          style="width: 100%;"
          class="urlTable"
        >
          <el-table
            v-if="type != 'view'"
            :data="ruleForm.radioVideo"
            border
            style="width: 80%;margin-left:100px;"
          >
            <el-table-column
              align="center"
              type="index"
              label="序号"
              width="50"
            />
            <el-table-column align="center" property="title" label="资源标题">
              <template slot-scope="scope">
                <el-input v-model="ruleForm.radioVideo[scope.$index].title" />
              </template>
            </el-table-column>
            <el-table-column align="center" property="url" label="资源URL">
              <template slot-scope="scope">
                <el-input v-model="ruleForm.radioVideo[scope.$index].url" />
              </template>
            </el-table-column>
            <el-table-column
              align="center"
              property="processId"
              label="关联流程"
            >
              <template slot-scope="scope">
                <el-select
                  v-model="ruleForm.radioVideo[scope.$index].processId"
                  clearable
                  multiple
                  @change="changePro('video')"
                  placeholder="请选择流程"
                >
                  <el-option
                    v-for="item in ruleForm.processesList"
                    :key="item.value"
                    :label="item.title"
                    :value="item.code"
                  >
                  </el-option>
                </el-select>
              </template>
            </el-table-column>
            <el-table-column align="center" label="操作">
              <template slot-scope="scope">
                <el-button
                  type="text"
                  size="mini"
                  @click="DelVideo(scope.$index)"
                  >删除</el-button
                >
              </template>
            </el-table-column>
          </el-table>
          <el-table
            v-if="type == 'view'"
            :data="ruleForm.radioVideo"
            border
            style="width: 80%;margin-left:100px;"
          >
            <el-table-column
              align="center"
              type="index"
              label="序号"
              width="50"
            />
            <el-table-column align="center" property="title" label="资源标题" />
            <el-table-column align="center" property="url" label="资源URL" />
            <el-table-column
              align="center"
              property="processId"
              label="关联流程"
            >
              <template slot-scope="scope">
                {{ mapForChannel(scope.row.processId) }}
              </template>
            </el-table-column>
          </el-table>
          <div v-if="type != 'view'" style="margin-top:15px;">
            <el-button
              type="success"
              style="height:36px;width:100px;margin-left:30px;color:#fff;background:#33DB99"
              @click="handleAddVideo"
              >新增</el-button
            >
          </div>
        </el-form-item>
        <!-- <el-form-item>
          <el-button type="primary" @click="submitForm('ruleForm')">立即创建</el-button>
          <el-button @click="resetForm('ruleForm')">重置</el-button>
        </el-form-item> -->
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="dialog.Visible = false">取 消</el-button>
        <el-button v-if="type != 'view'" type="primary" @click="subMit"
          >确 定</el-button
        >
      </span>
    </el-dialog>
    <!-- 关联流程 -->
    <el-dialog
      title="关联流程"
      :visible.sync="process.Visible"
      width="30%"
      center
    >
      <el-form>
        <el-form-item label="关联流程">
          <el-select
            v-model="processId"
            clearable
            multiple
            placeholder="请选择流程"
          >
            <el-option
              v-for="item in ruleForm.processesList"
              :key="item.value"
              :label="item.title"
              :value="item.code"
            >
            </el-option>
          </el-select>
        </el-form-item>
      </el-form>
      <span slot="footer" class="dialog-footer">
        <el-button @click="process.Visible = false">取 消</el-button>
        <el-button type="primary" @click="subMitLc">确 定</el-button>
      </span>
    </el-dialog>
  </div>
</template>
<script>
import Tinymce from "@/components/Tinymce";
import {
  queryJbInfo,
  addJbInfo,
  updateJbInfo,
  queryJbDetail,
  deleteJbInfo,
  queryFindList
} from "@/api/sce/sce.js";
import { uploadFile, delFile } from "@/api/upload/upload.js";
const baseUrl = process.env.VUE_APP_BASE_API;
export default {
  components: { Tinymce },
  data() {
    return {
      baseUrl,
      loading: true,
      queryParams: {
        pageNum: 1,
        pageSize: 15,
        query: {
          title: undefined,
          studioName: undefined,
          labelName: undefined
        }
      },
      tableData: [],
      rules: {
        title: [{ required: true, message: "请输入标题名称", trigger: "blur" }],
        labelName: [
          { required: true, message: "请输入标签名称", trigger: "blur" }
        ],
        cover: [{ required: true, message: "请选择封面", trigger: "blur" }]
      },
      dialog: {
        title: "新增剧本",
        Visible: false
      },
      ruleForm: {
        processesList: [],
        imgUrl: "",
        imgUrls: [],
        radioImg: [],
        radioMusic: [],
        radioVideo: [],
        resourcesList: []
      },
      dialogVisible: false,
      active: "",
      imageUrl: "",
      total: 0,
      dialogVisible: false,
      dialogImageUrl: "",
      dataImg: [],
      lcData: [],
      radioImg: "1",
      radioMusic: "1",
      radioVideo: "1",
      type: "add",
      imgData: [],
      musicData: [],
      videoData: [],
      processId: [],
      process: {
        Visible: false
      },
      list: {},
      typeUrl: "",
      imgType: false,
      musicType: false,
      videoType: false,
      imgIndex: "",
      musicIdnex: "",
      videoIndex: "",
      dataList: {}
    };
  },
  mounted() {
    this.queryList();
    this.queryFindList();
  },
  methods: {
    mapForChannel(e) {
      for (var i = 0; i < this.lcData.length; i++) {
        if (this.lcData[i].id == e) {
          return this.lcData[i].title;
        }
      }
    },
    ForChannel(e) {
      var a = e.split(",");
      var tmp = [];
      for (var i = 0; i < this.ruleForm.processesList.length; i++) {
        for (var s = 0; s < a.length; s++) {
          if (this.ruleForm.processesList[i].code == e[s]) {
            tmp.push(this.ruleForm.processesList[i].title);
            return tmp;
          }
        }
      }
    },
    //获取列表
    async queryList() {
      this.loading = true;
      try {
        let res = await queryJbInfo(this.queryParams);
        console.log(res);
        this.tableData = res.data.rows;
        this.total = res.data.total;
        this.loading = false;
      } catch (err) {
        console.log(err);
      }
    },
    //搜索
    search() {
      this.queryList();
    },
    //重置
    refresh() {
      this.queryParams = {
        pageNum: 1,
        pageSize: 15,
        query: {
          title: undefined,
          studioName: undefined,
          labelName: undefined
        }
      };
      this.queryList();
    },
    //跳转Tips维护
    handleTips(row) {
      this.$router.push({
        name: "Tips/index",
        query: { scenarioId: row.id, type: "sceinfo" }
      });
    },
    //获取流程
    async queryFindList() {
      try {
        let res = await queryFindList({});
        // console.log(res.data, "流程列表");
        this.lcData = res.data;
      } catch (err) {
        console.log(err);
      }
    },
    //获取详情
    async queryListDetail(id) {
      try {
        this.ruleForm = {
          studioName: "",
          title: "",
          labelName: "",
          imgUrl: "",
          cover: "",
          introduction: "",
          processesList: [],
          imgUrl: "",
          radioImg: [],
          radioMusic: [],
          radioVideo: [],
          resourcesList: []
        };
        let res = await queryJbDetail(id);
        console.log(res, "详情");
        this.ruleForm = res.data;
        res.data.resourcesList.map(n => {
          var a = [];
          var b = [];
          var c = [];
          if (n.mediaType == 1 && n.sourceType == 2) {
            a.push(n);
            this.ruleForm.radioImg = a.map(n => {
              return {
                mediaType: n.mediaType,
                sourceType: n.sourceType,
                title: n.title,
                url: n.url,
                processId: n.processId.split(",")
              };
            });
            this.radioImg = n.sourceType;
          } else if (n.mediaType == 1 && n.sourceType == 1) {
            a.push(n);
            var tmp = []
            this.imgData = a
            
            this.radioImg = n.sourceType;
          }
          if (n.mediaType == 2 && n.sourceType == 1) {
            b.push(n);
            this.musicData = b;
            this.radioMusic = n.sourceType;
          } else if (n.mediaType == 2 && n.sourceType == 2) {
            console.log("进来了1");
            b.push(n);
            this.ruleForm.radioMusic = b.map(n => {
              return {
                mediaType: n.mediaType,
                sourceType: n.sourceType,
                title: n.title,
                url: n.url,
                processId: n.processId.split(",")
              };
            });
            this.radioMusic = n.sourceType;
          }
          if (n.mediaType == 3 && n.sourceType == 1) {
            c.push(n);
            this.videoData = c;
            this.radioVideo = n.sourceType;
          } else if (n.mediaType == 3 && n.sourceType == 2) {
            c.push(n);
            this.ruleForm.radioVideo = c.map(n => {
              return {
                mediaType: n.mediaType,
                sourceType: n.sourceType,
                title: n.title,
                url: n.url,
                processId: n.processId.split(",")
              };
            });
            this.radioVideo = n.sourceType;
          }
        });
        console.log(
          this.ruleForm,
          this.musicData,
          this.imgData,
          this.videoData,
          "处理后详情"
        );
      } catch (err) {
        console.log(err);
      }
    },
    // 新增
    handleAdd() {
      this.ruleForm = {
        studioName: "",
        title: "",
        labelName: "",
        imgUrl: "",
        cover: "",
        introduction: "",
        processesList: [],
        imgUrl: "",
        radioImg: [],
        radioMusic: [],
        radioVideo: [],
        resourcesList: []
      };
      this.imgData = []
      this.musicData = []
      this.videoData = []
      this.radioMusic = 1;
      this.radioVideo = 1;
      this.radioImg = 1;
      this.dialog.Visible = true;
      this.type = "add";
      this.dialog.title = "新增剧本";
    },
    async subMit() {
      console.log(this.imgType, this.musicType, this.videoType);
      console.log(this.radioImg, this.radioMusic, this.radioVideo);
      if (this.imgType == true && this.radioImg == 1) {
        this.$message({
          message: "请绑定图片相关流程",
          type: "error"
        });
        return false;
      }
      if (this.musicType == true && this.radioMusic == 1) {
        this.$message({
          message: "请绑定音频相关流程",
          type: "error"
        });
        return false;
      }
      if (this.videoType == true && this.radioVideo == 1) {
        this.$message({
          message: "请绑定视频相关流程",
          type: "error"
        });
        return false;
      }
      this.ruleForm.imgUrl = this.dataImg.join(",");
      if (this.radioImg == 1) {
        this.ruleForm.radioImg = this.imgData;
      }
      if (this.radioMusic == 1) {
        this.ruleForm.radioMusic = this.musicData;
      }
      if (this.radioVideo == 1) {
        this.ruleForm.radioVideo = this.videoData;
      }
      let data = this.ruleForm.radioImg
        .concat(this.ruleForm.radioMusic)
        .concat(this.ruleForm.radioVideo);
      let list = [];
      data.map(n => {
        if (n.url != "") {
          list.push(n);
        }
      });
      this.ruleForm.resourcesList = list.map(n => {
        return {
          mediaType: n.mediaType,
          sourceType: n.sourceType,
          title: n.title,
          url: n.url,
          processId: n.processId.join(",")
        };
      });
      console.log(this.imgData, "有变化吗");
      console.log(this.ruleForm, "参数");
      try {
        this.$refs["ruleForm"].validate(async valid => {
          if (valid) {
            if (this.type == "add") {
              var res = await addJbInfo(this.ruleForm);
            } else if (this.type == "edit") {
              var res = await updateJbInfo(this.ruleForm);
            }
            if (res.code == 200) {
              this.$message.success("新增成功");
              this.dialog.Visible = false;
              this.queryList();
            } else {
              this.$message({
                message: res.msg,
                type: "error"
              });
            }
          }
        });
      } catch (err) {
        console.log(err);
      }
    },
    dealRdata(attchments, keyname) {
      //attchments:数组，键值
      let list = [...attchments];
      let result = [];
      let obj = {};
      for (let i = 0; i < list.length; i++) {
        if (!obj[list[i][keyname]]) {
          result.push(list[i]);
          obj[list[i].wjDx] = true;
        }
      }
      return result;
    },
    // 编辑
    handleEdit(row) {
      this.queryListDetail(row.id);
      this.dialog.Visible = true;
      this.type = "edit";
      this.dialog.title = "编辑剧本";
    },
    // 查看
    handleView(row) {
      this.queryListDetail(row.id);
      this.type = "view";
      this.dialog.Visible = true;
    },
    // 删除
    async hanDel(row) {
      try {
        await this.$confirm("此操作将永久删除该剧本,是否继续?", "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        });
        let res = await deleteJbInfo(row.id);
        if (res.code == 200) {
          this.$message.success("删除成功");
          this.queryList();
        } else {
          this.$message({
            message: res.msg,
            type: "error"
          });
        }
      } catch (err) {
        console.log(err);
      }
    },
    handleAvatar(res, file, fileList) {
      console.log(res, file, "整个");
    },
    handleAvatarSuccess(res, file) {
      console.log(res, file, "成功了吗");
    },
    //上传图片
    async uploadImg(file, fileList) {
      try {
        let formData = new FormData();
        let type = file.raw.type;
        formData.append("file", file.raw);
        formData.append("type", type);
        let res = await uploadFile(formData);
        // this.ruleForm.cover = res.data.wjUrl;
        this.$set(this.ruleForm, "cover", res.data.wjUrl);
        console.log(this.ruleForm.cover);
      } catch (err) {
        console.log(err);
      }
    },
    async changeImgs(file, fileList) {
      try {
        let formData = new FormData();
        let type = file.raw.type;
        formData.append("file", file.raw);
        formData.append("type", type);
        let res = await uploadFile(formData);
        console.log(res, 142131);
        this.dataImg.push(res.data.wjUrl);
      } catch (err) {
        console.log(err);
      }
    },
    beforeAvatarUpload(file) {
      console.log(file, 41231);
      const isJPG = file.type;
      const isLt2M = file.size / 1024 / 1024 < 2;
      if (!isLt2M) {
        this.$message.error("上传头像图片大小不能超过 2MB!");
      }
      return isJPG && isLt2M;
    },
    // 开本流程新增
    handleAddK() {
      this.ruleForm.processesList.push({
        title: "",
        code: "",
        introduction: "",
        sort: ""
      });
    },
    // 开本流程删除
    Del(index) {
      this.ruleForm.processesList.splice(index, 1);
    },
    // 图片预览
    dialogimg(e) {
      console.log(e);
      this.dialogVisible = true;
      this.dialogImageUrl = this.ruleForm.imgUrls[e];
    },
    //资源删除
    DelImg(index) {
      this.ruleForm.radioImg.splice(index, 1);
    },
    DelMusic(index) {
      this.ruleForm.radioMusic.splice(index, 1);
    },
    DelVideo(index) {
      this.ruleForm.radioVideo.splice(index, 1);
    },
    // 图片删除
    deldialogimg(index) {
      this.ruleForm.imgUrls.splice(index, 1);
      var img = this.ruleForm.imgUrl[index];
      // proUpdate({ wjUrl: img }).then((res) => {
      //   if (res.code == 200) {
      //     that.back();
      //   }
      // });
    },
    changeImg(val) {
      this.radioImg = val;
      this.ruleForm.radioImg = [];
      this.imgData = [];
    },
    changeMusic(val) {
      this.radioMusic = val;
      this.ruleForm.radioMusic = [];
      this.musicData = [];
    },
    changeVideo(val) {
      this.radioVideo = val;
      this.ruleForm.radioVideo = [];
      this.videoData = [];
    },
    changePro(type) {
      if (type == "img") {
        this.imgType = false;
      } else if (type == "music") {
        this.musicType = false;
      } else if (type == "video") {
        this.videoType = false;
      }
    },
    //新增图片资源
    handleAddImg() {
      this.ruleForm.radioImg.push({
        title: "",
        url: "",
        processId: [],
        mediaType: 1,
        sourceType: this.radioImg
      });
    },
    handleAddMusic() {
      this.ruleForm.radioMusic.push({
        title: "",
        url: "",
        processId: [],
        mediaType: 2,
        sourceType: this.radioMusic
      });
    },
    handleAddVideo() {
      this.ruleForm.radioVideo.push({
        title: "",
        url: "",
        processId: [],
        mediaType: 3,
        sourceType: this.radioVideo
      });
    },
    // 上传资源蹄片
    labeluploadimg({ file }) {
      const formdata = new FormData();
      formdata.append("file", file);
      formdata.append("type", "product");
      uploadFile(formdata).then(res => {
        this.imgData.push({
          url: res.data.wjUrl,
          processName: "",
          title: res.data.wjDx
        });
        this.imgType = true;
      });
    },
    labeluploadmusic({ file }) {
      const formdata = new FormData();
      formdata.append("file", file);
      formdata.append("type", "product");
      uploadFile(formdata).then(res => {
        this.musicData.push({
          url: res.data.wjUrl,
          processName: "",
          title: res.data.wjDx
        });
        this.musicType = true;
      });
    },
    labeluploadvideo({ file }) {
      const formdata = new FormData();
      formdata.append("file", file);
      formdata.append("type", "product");
      uploadFile(formdata).then(res => {
        this.videoData.push({
          url: res.data.wjUrl,
          processName: "",
          title: res.data.wjDx
        });
        this.radioType = true;
      });
    },
    // 图片删除
    deldialogimg(item, index, type) {
      console.log(index, type);
      if (type == "img") {
        this.imgData.splice(index, 1);
      }
      if (type == "music") {
        this.musicData.splice(index, 1);
      }
      if (type == "video") {
        this.videoData.splice(index, 1);
      }
      console.log(item);
      delFile({ wjUrl: item.url }).then(res => {
        if (res.code == 200) {
          this.$message.success("删除成功");
        }
      });
    },
    //关联流程
    setLc(item, i, type) {
      console.log(item, i, this.imgData);
      if (this.ruleForm.processesList.length == 0) {
        this.$message({
          message: "请新建流程",
          type: "error"
        });
        return false;
      }
      if (type == "img") {
        this.imgIndex = i;
      } else if (type == "music") {
        this.musicIndex = i;
      } else if (type == "video") {
        this.videoIndex = i;
      }
      this.list = item;
      this.typeUrl = type;
      this.processId = "";
      this.process.Visible = true;
    },
    subMitLc() {
      this.process.Visible = false;
      if (this.typeUrl == "img") {
        this.imgType = false;
        var tmp = [];
        for (var i = 0; i < this.ruleForm.processesList.length; i++) {
          for (var s = 0; s < this.processId.length; s++) {
            if (this.ruleForm.processesList[i].code == this.processId[s]) {
              tmp.push(this.ruleForm.processesList[i].title);
            }
          }
        }
        this.imgData[this.imgIndex].processName = tmp.join(",");
        this.imgData[this.imgIndex].processId = this.processId;
        this.imgData[this.imgIndex].mediaType = 1;
        this.imgData[this.imgIndex].sourceType = this.radioImg;
        console.log(this.imgData, "处理后img数据");
      }
      if (this.typeUrl == "music") {
        this.musicType = false;
        var tmp = [];
        for (var i = 0; i < this.ruleForm.processesList.length; i++) {
          for (var s = 0; s < this.processId.length; s++) {
            if (this.ruleForm.processesList[i].code == this.processId[s]) {
              tmp.push(this.ruleForm.processesList[i].title);
            }
          }
        }
        this.musicData[this.musicIndex].processName = tmp.join(",");
        this.musicData[this.musicIndex].processId = this.processId;
        this.musicData[this.musicIndex].mediaType = 2;
        this.musicData[this.musicIndex].sourceType = this.radioMusic;
      }
      if (this.typeUrl == "video") {
        this.videoType = false;
        var tmp = [];
        for (var i = 0; i < this.ruleForm.processesList.length; i++) {
          for (var s = 0; s < this.processId.length; s++) {
            if (this.ruleForm.processesList[i].code == this.processId[s]) {
              tmp.push(this.ruleForm.processesList[i].title);
            }
          }
        }
        this.videoData[this.videoIndex].processName = tmp.join(",");
        this.videoData[this.videoIndex].processId = this.processId;
        this.videoData[this.videoIndex].mediaType = 3;
        this.videoData[this.videoIndex].sourceType = this.radioVideo;
      }
    }
  }
};
</script>
<style scoped>
.content {
  background: #fff;
  margin-top: 15px;
}
.add-button {
  margin-top: 15px;
}
/deep/ .el-input__inner {
  height: 30px;
}
.search-button {
  display: flex;
}
.form-title {
  margin-left: 30px;
  padding-bottom: 10px;
  border-bottom: 1px solid #000;
}
/deep/ .avatar-uploader .el-upload {
  border: 1px dashed #000;
  border-radius: 6px;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
/deep/ .avatar-uploader .el-upload:hover {
  border-color: #409eff;
}
.avatar-uploader-icon {
  font-size: 28px;
  color: #8c939d;
  width: 178px;
  height: 178px;
  line-height: 178px;
  text-align: center;
}
.avatar {
  width: 178px;
  height: 178px;
  display: block;
}
.urlTable /deep/ .el-form-item__content {
  width: 100%;
}
</style>
<style lang="scss" scope>
.imgdata {
  position: relative;
  // display: inline-block;
  float: left;
  margin-left: 60px;

  .imgdialog {
    width: 146px;
    height: 146px;
    display: none;
    position: absolute;
    background: rgba(127, 127, 127, 0.5);
    top: 0;
    left: 0;
    justify-content: space-between;
    align-content: center;

    p {
      margin: auto;

      i {
        cursor: pointer;
        color: white;
      }
    }
  }
}

.imgdata:hover .imgdialog {
  display: flex !important;
}
</style>
