From 0027df1e43c4e1bdfc2646987e85210a695647e1 Mon Sep 17 00:00:00 2001 From: luobisheng <727299681@qq.com> Date: 星期三, 16 十一月 2022 17:06:09 +0800 Subject: [PATCH] 图片,视频资源部分 --- src/views/operate/video/updateInterface/index.vue | 254 +++++++++++++++++++++++--------------------------- 1 files changed, 115 insertions(+), 139 deletions(-) diff --git a/src/views/operate/video/updateInterface/index.vue b/src/views/operate/video/updateInterface/index.vue index 63f233f..beec037 100644 --- a/src/views/operate/video/updateInterface/index.vue +++ b/src/views/operate/video/updateInterface/index.vue @@ -2,160 +2,143 @@ <div class="updateUser"> <main> <div class="mainContent"> - <el-form ref="user" style="width: 100%;"> - <el-form-item prop="code" label="鎵�灞炰簨浠剁紪鍙�"> - <el-input v-model="imagedata.code"></el-input> + <el-form :model="videoData" :rules="rules" :disabled="isDisabled" ref="user" style="width: 100%;"> + <el-form-item prop="baseId" label="鎵�灞炰簨浠剁紪鍙�"> + <el-input v-model="videoData.baseId"></el-input> </el-form-item> - <el-form-item prop="code" label="澶х被鍚嶇О"> - <el-input v-model="imagedata.questionType"></el-input> + <el-form-item prop="eventSource" label="浜嬩欢鏉ユ簮"> + <el-input v-model="videoData.eventSource"></el-input> </el-form-item> - <el-form-item prop="code" label="灏忕被鍚嶇О"> - <el-input v-model="imagedata.bigType"></el-input> + <el-form-item prop="category" label="闂绫诲埆"> + <el-input v-model="videoData.category"></el-input> </el-form-item> - <el-form-item prop="code" label="瑙嗛Id"> - <el-input v-model="imagedata.videoId"></el-input> + <el-form-item prop="type" label="绫诲瀷"> + <el-select v-model="videoData.type"> + <el-option v-for="item in getResourceType()" :key="item.value" :label="item.label" :value="item.value" /> + </el-select> </el-form-item> - <el-form-item prop="code" label="涓婁紶鏃堕棿"> - <el-input v-model="imagedata.uploadTime"></el-input> + <el-form-item prop="regionName" label="绀惧尯鍚嶇О"> + <el-input v-model="videoData.regionName"></el-input> </el-form-item> - <el-form-item prop="code" label="瑙嗛锛�"> - <video id="my-video" class="video-js" controls preload="auto" width="210px" height="150px" - :poster="imagedata.imageUrl" data-setup="{}"> - <source :src="imagedata.videoUrl" type="video/mp4" /> - </video> + <el-form-item prop="id" label="瑙嗛Id"> + <el-input v-model="videoData.id"></el-input> </el-form-item> - <!-- <el-form-item v-if="updateFlag"> --> - <div class="optionBtn"> - <el-button type="primary" class="btn submit" @click.native.prevent="handleUser">鎻愪氦 - </el-button> + <el-form-item prop="url" label="瑙嗛" min-width="8"> + <el-upload + class="avatar-uploader" + action="" + ref="image" + :show-file-list="false" + :auto-upload="true" + :http-request="videoUpload"> + <video v-if="videoData.url" :src="videoData.url" class="avatar" /> + <i v-else class="el-icon-plus avatar-uploader-icon"></i> + </el-upload> + </el-form-item> + <div v-if="!isDisabled" class="optionBtn"> + <el-button type="primary" class="btn submit" @click.native.prevent="onSubmit">鎻愪氦</el-button> </div> - <!-- </el-form-item> --> </el-form> </div> </main> </div> </template> -<script src="https://vjs.zencdn.net/7.20.3/video.min.js"></script> <script> -import { getTypeList } from "@/utils/helper"; +import { deepClone, RESOURCE_TYPE } from "@/utils/helper"; +import videoManagement from "@/api/operate/videoManagement"; +import { FILE_ORIGINAL_URL } from "@/utils"; +import imageManagement from "@/api/operate/imageManagement"; + + export default { data() { - + const validateVideoUrl = (rule, value, callback) => { + if (this.videoData.url) { + callback(); + } else { + callback(new Error('璇蜂笂浼犺棰�')); + } + }; return { - - imagedata: { - code: "SJ202211010001", - questionType: "杩濊", - bigType: "杩濆弽鍥藉鏈夊叧鏍囧噯缂栧埗鍩庝埂瑙勫垝", - smallType: "鍦ㄥ眳姘戜綇瀹呮ゼ銆佹湭閰嶅璁剧珛涓撶敤鐑熼亾鐨勫晢浣忕患鍚堟ゼ銆佸晢浣忕患鍚堟ゼ鍐呬笌灞呬綇灞傜浉閭荤殑鍟嗕笟妤煎眰鍐呮柊寤恒�佹敼寤恒�佹墿寤轰骇鐢熸补鐑熴�佸紓鍛炽�佸簾姘旂殑椁愰ギ鏈嶅姟椤圭洰", - videoId: "1", - uploadTime: "2022-10-31 20:20:01", - imageUrl:"https://img0.baidu.com/it/u=1063261925,3306857657&fm=253&fmt=auto&app=138&f=JPEG?w=669&h=500", - videoUrl:"http://vali-g1.cp31.ott.cibntv.net/youku/65730720cb94e7220271a3c96/0300080100632D30A3E43019FD116537F5162F-1035-48AC-BE1B-602DF0E92893.mp4?sid=166729534400010004780_00_Bda935cf9a33346c593fc27da8e694df3&sign=db39289573d143cf6e1ad8d8dff36682&ctype=50&si=183&psid=c732c4364319e7ef4685d8f1a568015941346" + videoData: { + baseId: '', + eventSource: '', + regionName: '', + category: '', + id: '', + url: '', + type: '' }, + rules: { + baseId: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ユ墍灞炰簨浠剁紪鍙�' }], + eventSource: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ヤ簨浠舵潵婧�' }], + regionName: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ョぞ鍖哄悕绉�' }], + id: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ュ浘鐗嘔d' }], + category: [{ required: true, trigger: 'blue', message: '璇疯緭鍏ラ棶棰樼被鍨�' }], + url: [{ required: true, validator: validateVideoUrl }], + type: [{ required: true, trigger: ['blur', 'change'], message: '璇烽�夋嫨绫诲瀷' }] + }, + isDisabled: false } }, + created() { - // const that = this; - // this.user = JSON.parse(JSON.stringify(that.userInfo)); - // console.log(this.user); - // this.user.parentId = this.user.parentId === 0 ? '鏆傛棤涓婄骇閮ㄩ棬' : this.user.parentId; - // this.checkedList = this.user.userInfoDTOS; - // this.checkedList.forEach((e) => { - // this.checkedUser.push(e.userId); - // }); - // console.log(this.checkedUser) - // this.$axios({ - // method: "get", - // url: "sccg/depart/tree", - // }).then((res) => { - // that.departList = res.data; - // }); - // this.getUserList(this.user.id); - // // 鑾峰彇閮ㄩ棬绫诲瀷 - // this.getDepartType(); + this.videoData = deepClone(this.dialogData); + this.videoData.url = this.videoData.url ? this.videoData.url.split(',')[0] : ''; + this.isDisabled = !this.isUpdate; }, methods: { - // handleUser() { - // this.$refs["user"].validate((valid) => { - // if (valid) { - // const { user, checkedList } = this; - // const arr = []; - // checkedList.forEach((item) => { - // arr.push({ leader: item.leader, userId: item.id ? item.id : item.userId }); - // }); - // if (arr.length === 0) { - // this.$message({ - // type: 'warning', - // message: '璇烽�夋嫨閮ㄩ棬浜哄憳', - // }) - // } else { - // this.$axios - // .post("sccg/depart/update", { - // id: user.id, - // departName: user.departName, - // parentId: user.parentId === '鏆傛棤涓婄骇閮ㄩ棬' ? 0 : user.parentId, - // departDes: user.departDes, - // departManagerList: arr, - // }) - // .then((res) => { - // this.$message({ - // message: res.message, - // type: res.code === 200 ? "success" : "warning", - // }); - // this.$emit("changeDialog", { flag: false }); - // this.getDepartList(); - // }); - // } - // } else { - // return false; - // } - // }); - // }, - // // 鑾峰彇閮ㄩ棬绫诲瀷 - // async getDepartType() { - // this.typeList = await getTypeList(1, "08"); - // }, - - // // 璁剧疆棰嗗 - // setLeader(idx) { - // if (this.updateFlag) { - // this.checkedList.forEach((item, index) => { - // item.leader = index === idx; - // }); - // } - // }, - - // // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭� - // getUserList(id) { - // // 鑾峰彇鎵�鏈夌敤鎴蜂俊鎭�佺敤鎴锋煡璇�(鏆傛椂鏀寔鐢佃瘽鍙风爜) - // this.$axios.get(`/sccg/depart/query_surplus_exist_user?id=`+id).then((res) => { - // if (res.code === 200) { - // this.userList = res.data; - // } - // }); - // }, - // addUser() { - // this.checkedList = []; - // this.userList.forEach((item) => { - // this.checkedUser.forEach((child) => { - // if (item.id == child) { - // this.checkedList.push({ - // id: item.id, - // username: item.username, - // leader: false, - // }); - // } - // }); - // }); - // this.checkedList[0].leader = true; - // console.log(this.checkedList); - // this.openUser = false; - // }, - // }, - // props: ["userInfo", "updateFlag", "getDepartList", "changeDialog"], + onSubmit() { + this.$refs.user.validate(valid => { + if (valid) { + if (this.dialogType === 'create') { + videoManagement.addVideoResource(this.videoData) + .then(() => { + this.$message.success('鎿嶄綔鎴愬姛'); + this.$emit('closeDialog'); + }) + .catch(err => this.$message.error(`${err}`)) + } else { + videoManagement.updateVideoResource(this.videoData) + .then(() => { + this.$message.success('鎿嶄綔鎴愬姛'); + this.$emit('closeDialog'); + }) + .catch(err => this.$message.error(`${err}`)) + } + } else { + this.$message.warning('璇锋鏌ュ繀濉」'); + } + }) + }, + videoUpload(file) { + const formData = new FormData(); + formData.append('file', file.file); + imageManagement.importImage(formData) + .then(res => { + this.$refs.image.clearFiles(); + this.$set(this.videoData, 'url', FILE_ORIGINAL_URL + res.url1); + this.$message.success('涓婁紶鎴愬姛'); + }) + .catch(err => { + this.$message.error(`${err}`); + this.$refs.image.clearFiles(); + }) + }, + getResourceType(value) { + return value ? RESOURCE_TYPE.find(item => item.value === value) : RESOURCE_TYPE; + } }, - props: ['updateFlag'] + props: { + dialogData: { + type: Object, + default: () => null + }, + isUpdate: { + type: Boolean, + default: () => false + } + } }; </script> <style lang="scss" scoped> @@ -169,13 +152,6 @@ padding: 0 55px; background-color: #09152f; padding-bottom: 50px; - - // .mainTitle { - // color: #4b9bb7; - // font-weight: 600; - // line-height: 100px; - // font-size: 14px; - // } .mainContent { display: flex; @@ -311,7 +287,7 @@ color: red; } -.el-input { +.el-input, .el-select { width: 280px !important; } </style> \ No newline at end of file -- Gitblit v1.8.0