|
@@ -24,9 +24,10 @@
|
|
|
<template #default="scope">
|
|
|
<el-form-item :prop="`tpresetContentInfoReq.${scope.$index}.tenantId`"
|
|
|
:rules="{ required: true, trigger: 'change' }">
|
|
|
- <el-select v-model="scope.row.tenantId" placeholder="请选择企业" style="width: 200px" filterable remote
|
|
|
- :remote-method="businessRemote" remote-show-suffix @change="handleChangeTenant">
|
|
|
- <el-option v-for="item in businessData.options" :key="item.id" :value="item.id.toString()" :label="item.name" />
|
|
|
+ <el-select v-model="scope.row.tenantId" placeholder="请搜索并选择企业" style="width: 200px" filterable remote
|
|
|
+ :remote-method="businessRemote" remote-show-suffix @change="handleChangeTenant($event, scope.$index)">
|
|
|
+ <el-option v-for="item in businessData.options" :key="item.id" :value="item.id.toString()"
|
|
|
+ :label="item.name" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
@@ -35,9 +36,10 @@
|
|
|
<template #default="scope">
|
|
|
<el-form-item :prop="`tpresetContentInfoReq.${scope.$index}.storeId`"
|
|
|
:rules="{ required: true, trigger: 'change' }">
|
|
|
- <el-select v-model="scope.row.storeId" placeholder="请选择门店" style="width: 200px" filterable remote
|
|
|
+ <el-select v-model="scope.row.storeId" placeholder="请搜索并选择门店" style="width: 200px" filterable remote
|
|
|
:remote-method="storeRemote" remote-show-suffix>
|
|
|
- <el-option v-for="item in storeData.options" :key="item.id" :value="item.id.toString()" :label="item.name" />
|
|
|
+ <el-option v-for="item in data.business_store[scope.$index]" :key="item.id"
|
|
|
+ :value="item.id.toString()" :label="item.name" />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</template>
|
|
@@ -85,6 +87,7 @@
|
|
|
<script setup>
|
|
|
import { list, timeDetail, timeSubmit } from '@/api/content/scene.js'
|
|
|
import { useBusinessSelect, useStoreSelect, useDeviceList } from '@/hooks/index.js'
|
|
|
+import { computed } from 'vue'
|
|
|
|
|
|
// 公共方法
|
|
|
const { deviceOptions } = useDeviceList()
|
|
@@ -105,7 +108,7 @@ const data = reactive({
|
|
|
rules: {
|
|
|
takeId: [{ required: true, message: '请选择预设音频', trigger: 'change' }],
|
|
|
listDate: [{ type: 'array', required: true, message: '请选择播放时间', trigger: 'change' }],
|
|
|
- tpresetContentInfoReq: [{ type: 'array', required: true, message: '请新增关联设备', trigger: 'change'}]
|
|
|
+ tpresetContentInfoReq: [{ type: 'array', required: true, message: '请新增关联设备', trigger: 'change' }]
|
|
|
},
|
|
|
dialogForm: {
|
|
|
pageNum: 1,
|
|
@@ -115,7 +118,7 @@ const data = reactive({
|
|
|
dateList: [[]],
|
|
|
tableData: [],
|
|
|
// 企业—门店
|
|
|
- business_store: []
|
|
|
+ business_store: [],
|
|
|
})
|
|
|
|
|
|
const total = ref(0)
|
|
@@ -123,8 +126,8 @@ const total = ref(0)
|
|
|
const getAudioList = () => {
|
|
|
if (proxy.$route.query.audioList) {
|
|
|
let e = JSON.parse(proxy.$route.query.audioList)
|
|
|
- data.form.takeId = e.id
|
|
|
- data.form.takeName = e.name
|
|
|
+ data.form.takeId = e.takeId
|
|
|
+ data.form.takeName = e.takeName
|
|
|
}
|
|
|
}
|
|
|
getAudioList()
|
|
@@ -132,16 +135,16 @@ getAudioList()
|
|
|
// 详情
|
|
|
const getDetail = (id) => {
|
|
|
let e = proxy.$route.query
|
|
|
- if(e.id) {
|
|
|
- timeDetail({ id: e.id, storeId: e.storeId}).then(res => {
|
|
|
- if(res.code === 0){
|
|
|
- data.form = res.data
|
|
|
- data.dateList = []
|
|
|
+ if (e.id) {
|
|
|
+ timeDetail({ id: e.id, storeId: e.storeId }).then(res => {
|
|
|
+ if (res.code === 0) {
|
|
|
+ data.form = res.data
|
|
|
+ data.dateList = []
|
|
|
res.data.listDate.map(i => {
|
|
|
data.dateList.push([i.startTime, i.endTime])
|
|
|
})
|
|
|
- }
|
|
|
- })
|
|
|
+ }
|
|
|
+ })
|
|
|
}
|
|
|
}
|
|
|
getDetail()
|
|
@@ -160,10 +163,15 @@ function getList() {
|
|
|
|
|
|
// 弹窗
|
|
|
const dialogVisible = ref(false)
|
|
|
+
|
|
|
// 打开弹窗
|
|
|
function getDialog() {
|
|
|
- dialogVisible.value = true
|
|
|
- getList()
|
|
|
+ if (!proxy.$route.query.disabled) {
|
|
|
+ dialogVisible.value = true
|
|
|
+ getList()
|
|
|
+ } else {
|
|
|
+ proxy.$modal.msgError('不可编辑已选音频')
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 选择预设音频
|
|
@@ -223,11 +231,40 @@ const getAdd = () => {
|
|
|
}
|
|
|
|
|
|
// 所属企业
|
|
|
-const handleChangeTenant = (e) => {
|
|
|
+const index = ref(0)
|
|
|
+const handleChangeTenant = (e, i) => {
|
|
|
storeData.form.tenantId = e
|
|
|
+ index.value = i
|
|
|
getStore()
|
|
|
}
|
|
|
|
|
|
+watch(() => data.form.tpresetContentInfoReq, (val) => {
|
|
|
+ if (val.length > 0) {
|
|
|
+ val.map(i => {
|
|
|
+ if (!businessData.options.find(j => j.id == i.tenantId)) {
|
|
|
+ businessData.options.push({
|
|
|
+ id: i.tenantId,
|
|
|
+ name: i.tenantName
|
|
|
+ })
|
|
|
+ }
|
|
|
+ storeData.form.tenantId = i.tenantId
|
|
|
+ getStore()
|
|
|
+ })
|
|
|
+ }
|
|
|
+})
|
|
|
+
|
|
|
+watch(() => storeData.options, (val) => {
|
|
|
+ data.business_store[index.value] = val
|
|
|
+ data.form.tpresetContentInfoReq.map(i => {
|
|
|
+ if (!val.find(j => j.id == i.storeId)) {
|
|
|
+ storeData.options.push({
|
|
|
+ id: i.storeId,
|
|
|
+ name: i.storeName
|
|
|
+ })
|
|
|
+ }
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
// 删除关联设备
|
|
|
const getDelete = (index) => {
|
|
|
data.form.tpresetContentInfoReq.splice(index, 1)
|