多媒体信息发布平台
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

678 lines
23 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. <template>
  2. <div class="app-container theme_main">
  3. <!-- 右上角btn -->
  4. <div class="home_publish_btn">
  5. <el-button round class="el_button_green" @click="addEditClassify(0)">新增</el-button>
  6. <el-button round type="primary" @click="addEditClassify(1)">编辑</el-button>
  7. <el-button round class="el_button_red" @click="uploadTheme()">上传</el-button>
  8. </div>
  9. <div style="position:relative">
  10. <!-- 主题库list -->
  11. <ThemeGalleryList
  12. ref="ThemeGalleryList"
  13. :is-multi-selected="isMultiSelected"
  14. :mulit-text="mulitText"
  15. :show-item-info="showItemInfo"
  16. :tab-item="tabItem"
  17. @changedMultiSelected="changedMultiSelected"
  18. />
  19. <div class="material_btn">
  20. <el-button round type="primary" @click="uploadHistoryVisible=true">上传历史</el-button>
  21. <el-button round @click="multiSelectBtn">{{ mulitText }}</el-button>
  22. </div>
  23. </div>
  24. <!-- 平台技术人员-新增/编辑分类 -->
  25. <div class="upload_layer">
  26. <el-dialog append-to-body :show-close="false" :visible.sync="addDialogVisible" :close-on-click-modal="false" :title="layerTitle" width="620px">
  27. <el-form ref="classifyForm" inline :model="classifyForm" size="small" label-width="80px">
  28. <el-form-item
  29. v-if="isAddEdit==0"
  30. label="类别名称"
  31. prop="class_name"
  32. :rules="[
  33. { required: true, message: '请输入类别名称', trigger: 'blur' }
  34. ]"
  35. >
  36. <el-input v-model="classifyForm.class_name" style="width: 360px;" />
  37. </el-form-item>
  38. <el-form-item
  39. v-else
  40. label="类别名称"
  41. prop="class_name"
  42. :rules="[
  43. { required: true, message: '请选择类别名称', trigger: 'change' }
  44. ]"
  45. >
  46. <el-select v-model="classifyForm.class_name" placeholder="请选择" value-key="class_name" style="width: 360px;" @change="selectName">
  47. <el-option v-for="item in tabItem" :key="item.id" :label="item.class_name" :value="item" />
  48. </el-select>
  49. </el-form-item>
  50. <el-form-item
  51. label="所属机构"
  52. prop="searchClassify"
  53. >
  54. <el-select v-model="searchClassify" multiple placeholder="请选择" style="width: 360px;" @change="changeSelect">
  55. <el-option
  56. v-for="item in organOptions"
  57. :key="item.value"
  58. :label="item.label"
  59. :value="item.id"
  60. />
  61. </el-select>
  62. </el-form-item>
  63. </el-form>
  64. <div slot="footer" class="dialog-footer">
  65. <el-button type="primary" round @click="submitForm('classifyForm')"> </el-button>
  66. <el-button round @click="resetForm('classifyForm')"> </el-button>
  67. </div>
  68. </el-dialog>
  69. </div>
  70. <!-- 平台技术人员-上传 -->
  71. <el-dialog append-to-body :show-close="false" :visible.sync="uploadDialogVisible" :close-on-click-modal="false" :title="uploadTitle" class="upload_layer">
  72. <el-form ref="uploadForm" :model="uploadForm" size="small" label-width="80px">
  73. <el-form-item label="类别名称" prop="selectClassifyList">
  74. <el-checkbox-group v-model="selectClassifyList">
  75. <el-checkbox v-for="item in tabItem" :key="item.id" :label="item.id" :value="item.id">{{ item.class_name }}</el-checkbox>
  76. </el-checkbox-group>
  77. </el-form-item>
  78. <el-form-item label="设备方向" prop="device_direction">
  79. <el-radio-group v-model="uploadForm.device_direction">
  80. <el-radio :label="1" value="1">横屏</el-radio>
  81. <el-radio :label="2" value="2">竖屏</el-radio>
  82. </el-radio-group>
  83. </el-form-item>
  84. <el-form-item v-if="isUploadThemeType == 1" prop="material_name" label="文件名称">
  85. <el-input v-model="uploadForm.material_name" style="width:336px" />
  86. </el-form-item>
  87. <el-form-item class="upload_source" label="上传内容" prop="deposit_url">
  88. <div v-if="formatType != -1" class="source_cont">
  89. <img v-if="formatType==0" :src="uploadForm.deposit_url" alt="" width="150" />
  90. <video v-if="formatType==1" :src="uploadForm.deposit_url" controls width="200"></video>
  91. <audio v-if="formatType==2" :src="uploadForm.deposit_url" controls></audio>
  92. <!-- <p>文件名{{ fileNames }}</p> -->
  93. </div>
  94. <Upload ref="uploadMaterial" :is-theme="isTheme" @saveMaterial="saveMaterial" @uploadSubmit="uploadSubmit" />
  95. </el-form-item>
  96. <el-form-item v-if="formatType != 0" label="添加封面" prop="img_path">
  97. <UploadCover ref="childUpload" />
  98. </el-form-item>
  99. </el-form>
  100. <div slot="footer" class="dialog-footer">
  101. <el-button type="primary" round @click="uploadSubmit('uploadForm')"> </el-button>
  102. <el-button round @click="resetForm('uploadForm')"> </el-button>
  103. </div>
  104. </el-dialog>
  105. <!-- 上传历史layer -->
  106. <div class="upload_layer">
  107. <el-dialog title="上传历史" :close-on-click-modal="false" :visible.sync="uploadHistoryVisible" width="1100px">
  108. <!-- 上传历史 - 搜索 -->
  109. <el-form ref="form" :model="queryForm" label-width="80px" class="query_history">
  110. <el-form-item label="文件名称">
  111. <el-input v-model="queryForm.name" style="width:200px" @keyup.enter.native="getThemeHistoryList(pager = 1)" @blur="getThemeHistoryList(pager = 1)" />
  112. </el-form-item>
  113. <el-form-item label="时间">
  114. <el-date-picker v-model="queryForm.date" type="daterange" value-format="yyyy-MM-dd" range-separator="" start-placeholder="开始日期" end-placeholder="结束日期" @change="getThemeHistoryList(pager = 1)" @blur="getThemeHistoryList(pager = 1)" />
  115. </el-form-item>
  116. </el-form>
  117. <!-- 上传历史 - table-list -->
  118. <el-table :data="uploadHistoryListData" :header-cell-style="{ color: '#333' }">
  119. <el-table-column align="center" prop="material_name" label="文件名称" />
  120. <el-table-column align="center" prop="cover" label="发布内容">
  121. <template slot-scope="scope">
  122. <div v-if="scope.row.img_path">
  123. <img width="48px" height="64px" size="medium" :src="scope.row.img_path" />
  124. </div>
  125. </template>
  126. </el-table-column>
  127. <el-table-column align="center" prop="classes" label="类别名称" width="180">
  128. <template slot-scope="scope">
  129. <div class="tag_list">
  130. <el-tag v-for="tag in scope.row.classes.split(',')" :key="tag" type="primary">{{ tag }}</el-tag>
  131. </div>
  132. </template>
  133. </el-table-column>
  134. <el-table-column align="center" prop="device_direction" label="设备方向">
  135. <template slot-scope="scope">
  136. {{ scope.row.device_direction==2 ? "竖屏" : "横屏" }}
  137. </template>
  138. </el-table-column>
  139. <!-- <el-table-column align="center" prop="agency" label="所属机构" /> -->
  140. <el-table-column align="center" prop="create_time" label="上传时间" width="150">
  141. <template slot-scope="{row}">
  142. <div>{{ row.create_time | parseTime }}</div>
  143. </template>
  144. </el-table-column>
  145. <el-table-column align="center" prop="create_by" label="发布人" />
  146. <el-table-column align="center" prop="handle" label="操作">
  147. <template slot-scope="scope">
  148. <el-button type="primary" round class="edit_btn" @click="editUploadTheme(scope.row)">编辑</el-button>
  149. <el-button type="primary" round :class="['start_btn', { stop_btn: scope.row.is_state == 1 }]" @click="isStopHandle(scope.row)">{{ scope.row.is_state == 1 ? "停用" : "恢复" }}</el-button>
  150. </template>
  151. </el-table-column>
  152. </el-table>
  153. <!-- 分页器 -->
  154. <el-pagination style="margin-top: 20px;" background :current-page="page" :total="total" :page-size="size" :pager-count="5" :page-sizes="[3, 5, 10]" layout="prev, pager, next, jumper,->,sizes,total" @current-change="getThemeHistoryList" @size-change="handleSizeChange" />
  155. </el-dialog>
  156. </div>
  157. </div>
  158. </template>
  159. <script>
  160. import { FetchAddOrEdit, FetchThemeHistoryList, FetchUpdateThemeState } from '@/api/theme/theme.js'
  161. import { saveMaterial } from '@/api/material/material'
  162. import ThemeGalleryList from '../components/ThemeGalleryList.vue'
  163. import Upload from '../components/upload'
  164. import UploadCover from '../components/upload_cover'
  165. import { parseTime } from '@/utils/index.js'
  166. export default {
  167. name: 'ThemeGallery',
  168. components: { ThemeGalleryList, UploadCover, Upload },
  169. filters: {
  170. parseTime(time, cFormat) {
  171. return parseTime(time, cFormat)
  172. }
  173. },
  174. data() {
  175. return {
  176. isTheme: true,
  177. orga_id: '133221333123111', // 机构ID
  178. addDialogVisible: false, // 新增编辑-分类弹框
  179. layerTitle: '新增',
  180. isAddEdit: 0, // 判断分类菜单是新增还是编辑
  181. classifyForm: { // 主题库分类菜单form
  182. class_name: '',
  183. is_all: false,
  184. id: '',
  185. orga_ids: []
  186. },
  187. tabItem: [], // 分类菜单data
  188. searchClassify: [], // 机构选择多选操作
  189. oldSearchClassify: [],
  190. organOptions: [ // 机构list-data
  191. {
  192. label: '全部',
  193. value: 'ALL_SELECT',
  194. id: 'ALL_SELECT'
  195. },
  196. {
  197. label: '武汉图书馆',
  198. value: '01',
  199. id: '133221333123111'
  200. }
  201. ],
  202. mulitText: '多选', // 主题库list - 多选操作
  203. isMultiSelected: false,
  204. showItemInfo: true, // 判断是否显示画册
  205. uploadDialogVisible: false, // 上传主题内容 - 弹框
  206. uploadHistoryVisible: false, // 上传主题历史 - 弹框
  207. uploadTitle: '上传', // 上传-弹框内
  208. isUploadThemeType: 0, // 判断上传-新增还是编辑
  209. uploadForm: { // 上传素材
  210. class_ids: [
  211. // 素材类id集合
  212. ],
  213. deposit_url: null, // 素材存放路径
  214. device_direction: null, // 横竖屏 1.横屏 2.竖屏,
  215. duration: null, // 时长s
  216. material_id: null,
  217. folder_id: null, // 文件夹id
  218. img_path: null, // 封面图片id
  219. material_name: null, // 素材名称
  220. material_type: null, // 素材类别
  221. file_size: null, // 文件大小
  222. orga_id: null, // 机构id
  223. store_type: null // 库类型 1.素材库 2.主题库
  224. },
  225. fileNames: '',
  226. formatType: -1,
  227. materialImgPath: null,
  228. materialDuration: null,
  229. selectClassifyList: [],
  230. queryForm: { // 历史list - 搜索
  231. name: '',
  232. date: []
  233. },
  234. uploadHistoryListData: [], // 上传历史list
  235. isEditTheme: false,
  236. page: 1,
  237. size: 10,
  238. total: 0
  239. }
  240. },
  241. watch: {
  242. },
  243. mounted() {
  244. // 上传历史list
  245. this.getThemeHistoryList()
  246. },
  247. methods: {
  248. // 机构选择 全选 / 多选
  249. changeSelect(val) {
  250. const allValues = []
  251. // 保留所有值
  252. for (const item of this.organOptions) {
  253. allValues.push(item.id)
  254. }
  255. // 用来储存上一次的值,可以进行对比
  256. const oldVal = this.oldSearchClassify.length === 1 ? this.oldSearchClassify[0] : []
  257. // 若是全部选择
  258. if (val.includes('ALL_SELECT')) this.searchClassify = allValues
  259. // 取消全部选中 上次有 当前没有 表示取消全选
  260. if (oldVal.includes('ALL_SELECT') && !val.includes('ALL_SELECT')) this.searchClassify = []
  261. // 点击非全部选中 需要排除全部选中 以及 当前点击的选项
  262. // 新老数据都有全部选中
  263. if (oldVal.includes('ALL_SELECT') && val.includes('ALL_SELECT')) {
  264. const index = val.indexOf('ALL_SELECT')
  265. val.splice(index, 1) // 排除全选选项
  266. this.searchClassify = val
  267. }
  268. // 全选未选 但是其他选项全部选上 则全选选上 上次和当前 都没有全选
  269. if (!oldVal.includes('ALL_SELECT') && !val.includes('ALL_SELECT')) {
  270. if (val.length === allValues.length - 1) this.searchClassify = ['ALL_SELECT'].concat(val)
  271. }
  272. // 储存当前最后的结果 作为下次的老数据
  273. this.oldSearchClassify[0] = this.searchClassify
  274. },
  275. // 编辑分类 - 类型名称选择
  276. selectName(vId) {
  277. this.classifyForm.id = vId.id
  278. this.classifyForm.class_name = vId.class_name
  279. },
  280. // 主题库分类菜单 - 新增 / 编辑
  281. addEditClassify(index) {
  282. this.addDialogVisible = true
  283. if (index == 1) {
  284. this.layerTitle = '编辑'
  285. this.isAddEdit = 1
  286. this.tabItem = this.$refs.ThemeGalleryList.tabItem
  287. this.activeIndex = this.$refs.ThemeGalleryList.activeIndex
  288. this.classifyForm.class_name = this.tabItem[this.activeIndex].class_name
  289. this.classifyForm.id = this.tabItem[this.activeIndex].id
  290. // if (this.classifyForm.is_all) {
  291. // this.classifyForm.is_all_name == '全部'
  292. // this.classifyForm.orga_ids = []
  293. // } else {
  294. // this.classifyForm.is_all_name == '武汉图书馆'
  295. // }
  296. } else {
  297. this.layerTitle = '新增'
  298. this.isAddEdit = 0
  299. this.classifyForm.id = null
  300. this.classifyForm.class_name = ''
  301. }
  302. },
  303. // 新增/编辑 - 分类菜单 - 提交
  304. submitForm(formName) {
  305. this.classifyForm.is_all = !!this.searchClassify.includes('ALL_SELECT')
  306. this.classifyForm.orga_ids = this.searchClassify.includes('ALL_SELECT') ? [] : this.searchClassify
  307. this.$refs[formName].validate((valid) => {
  308. if (valid) {
  309. if (this.searchClassify.length == 0) {
  310. this.$message.error('请选择所属机构!')
  311. return false
  312. }
  313. FetchAddOrEdit(this.classifyForm).then(res => {
  314. if (res.code == 200) {
  315. this.$message({
  316. type: 'success',
  317. message: this.classifyForm.id ? '编辑成功' : '新增成功'
  318. })
  319. this.addDialogVisible = false
  320. this.searchClassify = []
  321. this.$refs.ThemeGalleryList.getThemeClassList()
  322. }
  323. })
  324. } else {
  325. console.log('error submit!!')
  326. return false
  327. }
  328. })
  329. },
  330. // 表单 - 关闭btn
  331. resetForm(formName) {
  332. this.addDialogVisible = false
  333. this.uploadDialogVisible = false
  334. this.searchClassify = []
  335. // 上传表单重置
  336. this.selectClassifyList = []
  337. this.uploadForm.device_direction = 0
  338. this.uploadForm.deposit_url = null
  339. this.formatType = -1
  340. this.uploadForm.material_type = null
  341. this.uploadForm.img_path = null
  342. this.materialImgPath = null
  343. this.$nextTick(() => {
  344. this.$refs.uploadMaterial.filePercent = 0
  345. if (this.$refs.childUpload) {
  346. this.$refs.childUpload.imageUrl = null
  347. }
  348. })
  349. this.$refs[formName].resetFields()
  350. },
  351. // list - 多选btn
  352. multiSelectBtn() {
  353. this.isMultiSelected = !this.isMultiSelected
  354. if (this.isMultiSelected) {
  355. this.mulitText = '取消'
  356. } else {
  357. this.mulitText = '多选'
  358. }
  359. },
  360. // 新增 - 上传
  361. uploadTheme() {
  362. this.isEditTheme = false
  363. this.$nextTick(() => {
  364. this.tabItem = this.$refs.ThemeGalleryList.tabItem
  365. })
  366. this.uploadDialogVisible = true
  367. this.isUploadThemeType = 0
  368. this.uploadTitle = '新增'
  369. this.uploadForm.device_direction = 0
  370. },
  371. // 编辑 - 上传
  372. editUploadTheme(row) {
  373. this.isEditTheme = true
  374. this.uploadDialogVisible = true
  375. this.isUploadThemeType = 1
  376. this.uploadTitle = '编辑'
  377. this.$nextTick(() => {
  378. this.tabItem = this.$refs.ThemeGalleryList.tabItem
  379. const classifyListName = row.classes.split(',')
  380. if (classifyListName) {
  381. this.selectClassifyList = []
  382. this.tabItem.filter(item => {
  383. if (classifyListName.indexOf(item.class_name) != -1) {
  384. this.selectClassifyList.push(item.id)
  385. }
  386. })
  387. }
  388. })
  389. this.uploadForm.device_direction = row.device_direction
  390. this.uploadForm.material_name = row.material_name
  391. this.fileNames = row.material_name
  392. this.uploadForm.deposit_url = row.deposit_url
  393. this.formatType = row.material_type
  394. if (this.formatType != 0) {
  395. this.$nextTick(() => {
  396. if (this.$refs.childUpload) {
  397. this.$refs.childUpload.imageUrl = row.img_path
  398. }
  399. })
  400. } else {
  401. this.uploadForm.img_path = row.deposit_url
  402. }
  403. this.uploadForm.material_type = this.formatType
  404. this.uploadForm.duration = row.duration
  405. this.uploadForm.file_size = row.file_size
  406. this.uploadForm.material_id = row.material_id
  407. },
  408. // 素材上传完之后 - 获取相关info
  409. saveMaterial() {
  410. const formatType = this.$refs.uploadMaterial.formatType
  411. const uploadFileUrl = this.$refs.uploadMaterial.uploadFileUrl
  412. // 视频和音频的时长
  413. const duration = this.$refs.uploadMaterial.duration
  414. switch (formatType) {
  415. case 'image':
  416. this.formatType = 0
  417. this.materialImgPath = uploadFileUrl
  418. this.materialDuration = 0
  419. break
  420. case 'video':
  421. this.formatType = 1
  422. this.materialDuration = duration
  423. this.materialImgPath = null
  424. break
  425. case 'audio':
  426. this.formatType = 2
  427. this.materialDuration = duration
  428. this.materialImgPath = null
  429. break
  430. }
  431. this.uploadForm.deposit_url = uploadFileUrl
  432. this.fileNames = this.$refs.uploadMaterial.fileNames
  433. this.uploadForm.material_name = this.$refs.uploadMaterial.fileNames
  434. this.uploadForm.material_type = this.formatType
  435. this.uploadForm.file_size = this.$refs.uploadMaterial.fileSize
  436. this.uploadForm.img_path = this.materialImgPath
  437. this.uploadForm.duration = this.materialDuration
  438. },
  439. // 上传 - 提交btn
  440. uploadSubmit(formName) {
  441. if (this.isEditTheme) {
  442. this.$nextTick(() => {
  443. if (this.$refs.childUpload) {
  444. this.uploadForm.img_path = this.$refs.childUpload.imageUrl
  445. }
  446. })
  447. }
  448. this.uploadForm.class_ids = this.selectClassifyList
  449. // this.uploadForm.orga_id = this.orga_id
  450. this.uploadForm.store_type = 2
  451. this.$refs[formName].validate((valid) => {
  452. if (valid) {
  453. setTimeout(() => {
  454. saveMaterial(this.uploadForm).then(res => {
  455. if (res.code === 200) {
  456. this.$message({
  457. message: '上传素材成功',
  458. type: 'success'
  459. })
  460. this.uploadDialogVisible = false
  461. this.getThemeHistoryList()
  462. // 上传表单重置
  463. this.selectClassifyList = []
  464. this.uploadForm.device_direction = 0
  465. this.uploadForm.deposit_url = null
  466. this.formatType = -1
  467. this.uploadForm.material_type = null
  468. this.uploadForm.img_path = null
  469. this.materialImgPath = null
  470. this.$nextTick(() => {
  471. this.$refs.uploadMaterial.filePercent = 0
  472. if (this.$refs.childUpload) {
  473. this.$refs.childUpload.imageUrl = null
  474. }
  475. })
  476. this.$refs.uploadForm.resetFields()
  477. } else {
  478. this.$message.error(res.msg)
  479. }
  480. })
  481. }, 200)
  482. } else {
  483. console.log('error submit!!')
  484. return false
  485. }
  486. })
  487. },
  488. // 上传历史list - 主题库
  489. getThemeHistoryList(pager = 1) {
  490. this.page = pager
  491. let start_time = ''
  492. let end_time = ''
  493. if (this.queryForm.date) {
  494. start_time = this.queryForm.date[0]
  495. end_time = this.queryForm.date[1]
  496. } else {
  497. start_time = end_time = null
  498. }
  499. const params = {
  500. theme_name: this.queryForm.name,
  501. theme_class: null,
  502. device_direction: null,
  503. orga_id: null,
  504. start_time: start_time,
  505. end_time: end_time,
  506. folder_id: null,
  507. page: this.page,
  508. size: this.size
  509. }
  510. FetchThemeHistoryList(params).then(res => {
  511. if (res.code === 200) {
  512. this.uploadHistoryListData = res.data.content
  513. this.total = res.data.totalElements
  514. } else {
  515. this.$message.error(res.msg)
  516. }
  517. })
  518. },
  519. // 每条显示数据改变时的事件
  520. handleSizeChange(size) {
  521. // 整理参数
  522. this.size = size
  523. this.getThemeHistoryList()
  524. },
  525. // 上传历史-停用/恢复
  526. isStopHandle(row) {
  527. row.is_state = row.is_state == 1 ? 2 : 1
  528. const params = {
  529. id: row.material_id,
  530. state: row.is_state
  531. }
  532. FetchUpdateThemeState(params).then(res => {
  533. if (res.code == 200) {
  534. this.$message.success(res.msg)
  535. this.getThemeHistoryList()
  536. } else {
  537. this.$message.error(res.msg)
  538. }
  539. })
  540. },
  541. // 有选择中的文件夹时,同时存在素材多选操作时,素材多选操作取消
  542. changedMultiSelected() {
  543. if (this.isMultiSelected) {
  544. this.isMultiSelected = false
  545. this.mulitText = '多选'
  546. }
  547. }
  548. }
  549. }
  550. </script>
  551. <style lang="scss" scoped>
  552. .theme_main {
  553. position: relative;
  554. padding: 0;
  555. background: none;
  556. ::v-deep .el-tabs {
  557. height: 55px;
  558. padding: 0 24px;
  559. margin-bottom: 24px;
  560. line-height: 55px;
  561. background: #fff;
  562. }
  563. ::v-deep .el-tabs__nav-wrap::after {
  564. display: none;
  565. }
  566. ::v-deep .el-tabs__active-bar {
  567. display: none;
  568. }
  569. ::v-deep .theme_item_tab {
  570. margin-bottom: 0;
  571. .el-tabs__header {
  572. margin-bottom: 0;
  573. border-bottom: 1px solid #eee;
  574. }
  575. }
  576. ::v-deep .theme_img {
  577. align-content: flex-start;
  578. height: calc(100vh - 246px);
  579. padding: 18px 24px 0 24px;
  580. overflow-y: auto;
  581. background: #fff;
  582. }
  583. .material_btn {
  584. top: 93px;
  585. }
  586. }
  587. .upload_layer {
  588. .query_history {
  589. display: flex;
  590. margin-top: -16px;
  591. }
  592. ::v-deep .el-dialog__body {
  593. .el-form-item__label {
  594. height: 30px;
  595. line-height: 30px;
  596. }
  597. .el-input__inner {
  598. height: 30px;
  599. line-height: 30px;
  600. }
  601. .el-range-separator {
  602. line-height: 26px;
  603. }
  604. .el-checkbox__label {
  605. line-height: 30px;
  606. }
  607. }
  608. }
  609. .upload_source {
  610. ::v-deep .el-form-item__content{
  611. display: flex;
  612. }
  613. .source_cont{
  614. margin-right: 20px;
  615. p{
  616. font-size: 12px;
  617. padding: 0 10px;
  618. line-height: 32px;
  619. }
  620. }
  621. video{
  622. display: block;
  623. }
  624. audio{
  625. display: block;
  626. }
  627. img{
  628. display: block;
  629. }
  630. }
  631. ::v-deep .components_upload{
  632. display: flex;
  633. flex-direction: column;
  634. justify-content: center;
  635. align-content: center;
  636. text-align: center;
  637. width: 128px;
  638. height: 120px;
  639. font-size: 14px;
  640. border: 1px dashed #dcdde3;
  641. background: #f2f7ff;
  642. border-radius: 6px;
  643. .cont_upload_btn{
  644. display: block;
  645. width: 100px;
  646. height: 34px;
  647. font-size: 14px;
  648. left: 50%;
  649. top: 14px;
  650. margin-left: -50px;
  651. }
  652. #upFile{
  653. margin: 0 auto;
  654. }
  655. .start_upload{
  656. display: block;
  657. width: 100px;
  658. height: 34px;
  659. color: #fff;
  660. text-align: center;
  661. border: none;
  662. background: linear-gradient(to right, #fc8c6f, #fa544e);
  663. border-radius: 34px;
  664. margin: 10px auto;
  665. }
  666. }
  667. .tag_list{
  668. ::v-deep .el-tag{
  669. margin: 0 5px 5px 0;
  670. }
  671. }
  672. </style>