|
@@ -1,41 +1,40 @@
|
|
|
<template>
|
|
|
<div class="video-setting">
|
|
|
<el-row :gutter="8">
|
|
|
- <el-col :span="8">
|
|
|
+ <el-col :span="6">
|
|
|
<tree @treeClick="reload"></tree>
|
|
|
</el-col>
|
|
|
- <el-col :span="16">
|
|
|
+ <el-col :span="18">
|
|
|
<el-card class="box-card">
|
|
|
<test ref="req" v-model="req" :form-config="queryForm"></test>
|
|
|
-
|
|
|
<el-table :data="tableList" v-loading="loading">
|
|
|
- <el-table-column :label="$t('management.video_setting.videoUrl')" align="center" prop="videoUrl" />
|
|
|
+ <!-- <el-table-column :label="$t('management.video_setting.videoUrl')" align="center" prop="videoUrl" /> -->
|
|
|
<el-table-column :label="$t('management.video_setting.title')" align="center" prop="title" />
|
|
|
<el-table-column :label="$t('management.video_setting.status')" align="center" prop="status" />
|
|
|
<el-table-column :label="$t('management.video_setting.duration')" align="center" prop="duration" width="120" />
|
|
|
<el-table-column :label="$t('management.video_setting.size')" align="center" prop="size" width="120" />
|
|
|
- <el-table-column :label="$t('create_time')" align="center" prop="create_time" />
|
|
|
- <el-table-column :label="$t('update_time')" align="center" prop="update_time" width="120" />
|
|
|
- <el-table-column :label="$t('operation')" align="center" width="80">
|
|
|
+ <el-table-column :label="$t('create_time')" align="center" prop="createTime" />
|
|
|
+ <el-table-column :label="$t('update_time')" align="center" prop="updateTime" width="120" />
|
|
|
+ <el-table-column :label="$t('operation')" align="center" width="200">
|
|
|
<template slot-scope="scope">
|
|
|
+ <!-- <el-button type="text" @click="toView(scope.row)">{{ $t('toView') }} </el-button> -->
|
|
|
+ <el-button type="text" @click="handleUpdate(scope.row)">{{ $t('edit') }} </el-button>
|
|
|
<el-button type="text" @click="handleDelete(scope.row)">{{ $t('delete') }} </el-button>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
-
|
|
|
<pagination v-show="total > 0" :total="total" :page.sync="req.pageNum" :limit.sync="req.pageSize" @pagination="getList" />
|
|
|
-
|
|
|
<el-dialog title="添加设备" :visible.sync="open" width="30%">
|
|
|
<test ref="form" v-model="dialogParams" :form-config="dialogForm" :insideRules="dialogRules"></test>
|
|
|
</el-dialog>
|
|
|
+ <el-dialog title="预览" :visible.sync="viewModal" width="500px">
|
|
|
+
|
|
|
+ </el-dialog>
|
|
|
</el-card>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
-
|
|
|
</div>
|
|
|
-
|
|
|
</template>
|
|
|
-
|
|
|
<script>
|
|
|
import * as API from '@/api/management/video-setting.js'
|
|
|
import * as APISelect from '@/api/Internet-of-things/select.js'
|
|
@@ -46,7 +45,7 @@
|
|
|
components: { test,tree },
|
|
|
data() {
|
|
|
return {
|
|
|
-
|
|
|
+ viewModal:false,
|
|
|
req: {
|
|
|
pageNum: 1,
|
|
|
pageSize: 10,
|
|
@@ -60,27 +59,6 @@
|
|
|
label: this.$t('management.video_setting.keyword'),
|
|
|
span: 4,
|
|
|
},
|
|
|
- // classifyId: {
|
|
|
- // span: 4,
|
|
|
- // label: this.$t('management.video_setting.type'),
|
|
|
- // type: 'select',
|
|
|
- // data: [
|
|
|
- // {
|
|
|
- // label: this.$t(
|
|
|
- // 'management.video_setting.treeAddType1'
|
|
|
- // ),
|
|
|
- // type: 1,
|
|
|
- // },
|
|
|
- // {
|
|
|
- // label: this.$t(
|
|
|
- // 'management.video_setting.treeAddType2'
|
|
|
- // ),
|
|
|
- // type: 2,
|
|
|
- // },
|
|
|
- // ],
|
|
|
- // keyName: 'type',
|
|
|
- // labelName: 'label',
|
|
|
- // },
|
|
|
operation: {
|
|
|
// 搜索按钮操作
|
|
|
query: () => {
|
|
@@ -119,19 +97,30 @@
|
|
|
},
|
|
|
dialogForm: {
|
|
|
loadingStatus: false,
|
|
|
+ title: {
|
|
|
+ label: '标题',
|
|
|
+ span: 1
|
|
|
+ },
|
|
|
fileInfoList: {
|
|
|
- label: this.$t('m'),
|
|
|
+ label: this.$t('分组名称'),
|
|
|
type: 'uploads',
|
|
|
data: [],
|
|
|
- tip:"最多选择6个视频文件"
|
|
|
- },
|
|
|
+ tip:"最多选择6个视频文件",
|
|
|
+ accept:".avi,.wmv,.mkv,.mp4,.mov",
|
|
|
+ fileList:[],
|
|
|
+ },
|
|
|
videoClassifyId: {
|
|
|
label: this.$t('分组名称'),
|
|
|
type: 'cascader',
|
|
|
+ props:{
|
|
|
+ label:"name",
|
|
|
+ value: 'id',
|
|
|
+ },
|
|
|
data: [],
|
|
|
- setData() {
|
|
|
- return API.videoClassifyTree({})
|
|
|
- }
|
|
|
+ },
|
|
|
+ richText:{
|
|
|
+ label: this.$t('图文说明书'),
|
|
|
+ type: 'editor',
|
|
|
},
|
|
|
|
|
|
otherButton: {
|
|
@@ -150,6 +139,7 @@
|
|
|
methodsText: 'submit',
|
|
|
type: 'primary',
|
|
|
submit: () => {
|
|
|
+ console.log(this.dialogParams)
|
|
|
this.handleSubmit()
|
|
|
},
|
|
|
},
|
|
@@ -157,12 +147,13 @@
|
|
|
},
|
|
|
},
|
|
|
dialogRules: {
|
|
|
- tdaApplicationId: [{ required: true, message: this.$t('management.video_setting.tdaApplicationIdRules'), trigger: 'change' }],
|
|
|
- tdaProductId: [{ required: true, message: this.$t('management.video_setting.tdaProductIdRules'), trigger: 'change' }],
|
|
|
- deviceName: [{ required: true, message: this.$t('management.video_setting.deviceNameRules'), trigger: 'blur' }],
|
|
|
- nodeId: [{ required: true, message: this.$t('management.video_setting.nodeIdRules'), trigger: 'blur' }],
|
|
|
- secret: [{ required: true, message: this.$t('management.video_setting.secretRules'), trigger: 'blur' }],
|
|
|
+ title: [{ required: true, message: this.$t('management.video_setting.deviceNameRules'), trigger: 'blur' }],
|
|
|
+ fileInfoList: [{ required: true, message: this.$t('management.video_setting.tdaApplicationIdRules'), trigger: 'change' }],
|
|
|
+ videoClassifyId: [{ required: true, message: this.$t('management.video_setting.tdaProductIdRules'), trigger: 'change' }],
|
|
|
+ richText: [{ required: true, message: this.$t('management.video_setting.deviceNameRules'), trigger: 'blur' }],
|
|
|
},
|
|
|
+ modalType:'Add',
|
|
|
+
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
@@ -170,25 +161,55 @@
|
|
|
},
|
|
|
mounted() {
|
|
|
this.getList()
|
|
|
- //this.getTree()
|
|
|
+ this.getTree()
|
|
|
},
|
|
|
watch: {
|
|
|
|
|
|
},
|
|
|
methods: {
|
|
|
+ toView(e){
|
|
|
+ console.log(e)
|
|
|
+ const v = this
|
|
|
+ },
|
|
|
+ handleUpdate(row){
|
|
|
+ const v = this
|
|
|
+ API.videoInfoDetails({id:row.id}).then(
|
|
|
+ (res) => {
|
|
|
+ for (let i = 0; i < res.data.data.fileInfoList.length; i++) {
|
|
|
+ const element = res.data.data.fileInfoList[i];
|
|
|
+ element.name = element.fileName
|
|
|
+ }
|
|
|
+ this.dialogParams = res.data.data
|
|
|
+ v.modalType = 'Edit'
|
|
|
+ this.open = true
|
|
|
+ },
|
|
|
+ (err) => {
|
|
|
+ console.log('tdaDevicePage: ' + err)
|
|
|
+ }
|
|
|
+ )
|
|
|
+ },
|
|
|
getTree() {
|
|
|
this.loading = true
|
|
|
API.videoClassifyTree(this.treeQuery).then(
|
|
|
(res) => {
|
|
|
- console.log(res)
|
|
|
+ //this.dataInit(res.data.data)
|
|
|
this.dialogForm.videoClassifyId.data = res.data.data
|
|
|
- console.log(this.dialogForm)
|
|
|
},
|
|
|
(err) => {
|
|
|
console.log('tdaDevicePage: ' + err)
|
|
|
}
|
|
|
)
|
|
|
},
|
|
|
+ dataInit(_data){
|
|
|
+ for (let i = 0; i < _data.length; i++) {
|
|
|
+ const element = _data[i];
|
|
|
+ element.label = element.name
|
|
|
+ element.value = element.id
|
|
|
+ if(element.children && element.children.length != 0){
|
|
|
+ this.dataInit(element.children)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
reload(row){
|
|
|
console.log(row)
|
|
|
this.req.pageNum = 1
|
|
@@ -210,12 +231,13 @@
|
|
|
)
|
|
|
},
|
|
|
handleSubmit() {
|
|
|
- this.$refs.test.$refs['form'].validate((valid) => {
|
|
|
+ const v = this
|
|
|
+ this.$refs.form.$refs['form'].validate((valid) => {
|
|
|
if (valid) {
|
|
|
this.dialogForm.loadingStatus = true
|
|
|
- API.videoInfoAdd(this.dialogParams).then(
|
|
|
+ API['videoInfo' + v.modalType](this.dialogParams).then(
|
|
|
() => {
|
|
|
- this.msgSuccess(this.$t('addSuccess'))
|
|
|
+ this.msgSuccess(this.$t(v.modalType == 'Add' ? 'addSuccess' : 'editSuccess'))
|
|
|
this.$refs.form.reset()
|
|
|
this.open = false
|
|
|
this.dialogForm.loadingStatus = false
|