| | |
| | | <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 controls v-if="videoData.url" :src="videoData.url" /> |
| | | <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: '请输入图片Id' }], |
| | | 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.isUpdate && !this.dialogData) { |
| | | 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> |
| | |
| | | padding: 0 55px; |
| | | background-color: #09152f; |
| | | padding-bottom: 50px; |
| | | |
| | | // .mainTitle { |
| | | // color: #4b9bb7; |
| | | // font-weight: 600; |
| | | // line-height: 100px; |
| | | // font-size: 14px; |
| | | // } |
| | | |
| | | .mainContent { |
| | | display: flex; |
| | |
| | | color: red; |
| | | } |
| | | |
| | | .el-input { |
| | | .el-input, .el-select { |
| | | width: 280px !important; |
| | | } |
| | | </style> |