Browse Source

no message

DESKTOP-SVI9JE1\muzen 1 year atrás
parent
commit
0f757e4384

+ 9 - 3
src/hooks/index.js

@@ -222,19 +222,25 @@ export function useAreaSelect() {
 // 音频聚合列表
 import { audioList } from "../api/content/setting";
 
-export function useAudioSelect() {
+export function useAudioList() {
   const audioData = reactive({
     form: {
       pageNum: 1,
       pageSize: 10,
+      type: 0
     },
-    options: [],
+    tableData: [],
+    loading: false,
+    total: 0
   });
 
   const getAudio = () => {
+    audioData.loading = true
     audioList(audioData.form).then((res) => {
       if (res.code === 0) {
-        console.log(res);
+        audioData.tableData = res.data.records
+        audioData.total = res.data.total
+        audioData.loading = false
       }
     });
   };

+ 2 - 1
src/main.js

@@ -26,8 +26,8 @@ import './permission' // permission control
 
 import { useDict } from '@/utils/dict'
 import { parseTime, resetForm, addDateRange, handleTree, selectDictLabel, selectDictLabels } from '@/utils/ruoyi'
-
 import { hoursToSeconds } from '@/utils/hts.js'
+import { playTime } from '@/utils/playTime.js'
 
 // 分页组件
 import Pagination from '@/components/Pagination'
@@ -62,6 +62,7 @@ app.config.globalProperties.addDateRange = addDateRange
 app.config.globalProperties.selectDictLabel = selectDictLabel
 app.config.globalProperties.selectDictLabels = selectDictLabels
 app.config.globalProperties.hoursToSeconds = hoursToSeconds
+app.config.globalProperties.playTime = playTime
 
 // 全局组件挂载
 app.component('DictTag', DictTag)

+ 18 - 0
src/utils/playTime.js

@@ -0,0 +1,18 @@
+export function playTime(seconds) {
+  // const date = new Date(seconds * 1000);
+
+  // const hour = date.getHours();
+  // const minute = date.getMinutes();
+  // const second = date.getSeconds();
+  
+
+  // return `${hour.toString().padStart(2, "0")}:
+  //   ${minute.toString().padStart(2, "0")}:
+  //   ${second.toString().padStart(2, "0")}`;
+  const h = Math.floor(60 / 360)
+  const h_re = 60 % 360
+  console.log(h, h_re);
+  // const m = h >= 1 ? Math.floor(seconds % 360 / 60) : Math.floor(seconds / 60)
+  // const s = m > 1 ? Math.floor(seconds % 360 / 60) : ''
+  // console.log(h, m);
+}

+ 15 - 7
src/views/content/setting/detail.vue

@@ -89,13 +89,17 @@
           <el-button icon="Refresh">重置</el-button>
         </el-form-item>
       </el-form>
-      <el-table>
-        <el-table-column label="ID" align="center"></el-table-column>
-        <el-table-column label="名称" align="center"></el-table-column>
-        <el-table-column label="时长" align="center"></el-table-column>
-        <el-table-column label="分类" align="center"></el-table-column>
-        <el-table-column label="当前状态" align="center"></el-table-column>
-        <el-table-column label="更新时间" align="center"></el-table-column>
+      <el-table :data="audioData.tableData" v-loading="audioData.loading">
+        <el-table-column label="ID" prop="id" align="center"></el-table-column>
+        <el-table-column label="名称" prop="name" align="center"></el-table-column>
+        <el-table-column label="时长" prop="playTime" align="center">
+          <template #default="scope">
+            {{ playTime(scope.row.playTime) }}
+          </template>
+        </el-table-column>
+        <el-table-column label="分类" prop="sceneId" align="center"></el-table-column>
+        <el-table-column label="当前状态" prop="status" align="center"></el-table-column>
+        <el-table-column label="更新时间" prop="updateTime" align="center"></el-table-column>
         <el-table-column label="操作" align="center">
           <template #default="scope">
             <el-button type="primary" link>选择</el-button>
@@ -107,6 +111,10 @@
 </template>
 
 <script setup>
+import { useAudioList } from '@/hooks/index'
+const { audioData, getAudio } = useAudioList()
+getAudio()
+
 const { proxy } = getCurrentInstance();
 
 const data = reactive({

+ 31 - 71
src/views/content/setting/index.vue

@@ -9,32 +9,36 @@
         </template>
       </el-calendar>
       <div class="list">
-        <el-input placeholder="搜索" suffix-icon="Search" />
+        <el-input v-model="audioData.form.name" placeholder="搜索" clearable>
+          <template #append>
+            <el-button icon="Search" @click="getSearch" />
+          </template>
+        </el-input>
         <el-tabs v-model="activeName" @tab-click="handleChangeTabs">
-          <el-tab-pane v-for="item in data.tabOptions" :key="item.value" :label="item.label" :name="item.value"
-            v-loading="loading">
+          <el-tab-pane v-for="item in data.tabOptions" :key="item.value" :name="item.value" :label="item.label"
+            v-loading="audioData.loading">
             <el-scrollbar :height="220">
-              <draggable :class="['contentList', activeName !== 'scene' ? 'noScene' : 'scene']" v-model="data.tableData"
+              <draggable :class="['contentList', activeName !== 2 ? 'noScene' : 'scene']" v-model="audioData.tableData"
                 item-key="id" chosen-class="chosenClass" data-id="content"
                 :group="{ name: 'componentGroup', pull: 'clone', put: false }" :sort="false" :move="onMove"
                 @end="onEnd">
                 <template #item="{ element, index }">
                   <div class="item">
-                    <span v-show="activeName !== 'scene'" class="item_line" :title="element.name">
+                    <span v-show="activeName !== 2" class="item_line" :title="element.name">
                       <el-icon style="margin-right: 10px; line-height:40px">
                         <VideoPlay />
                       </el-icon>
                       {{ element.name }}
                     </span>
-                    <span v-show="activeName === 'scene'" class="item_box">
+                    <span v-show="activeName === 2" class="item_box">
                       <img src="@/assets/icons/svg/file.svg" width="50" height="50" />
-                      <span class="takeName">{{ element.takeName }}</span>
+                      <span class="takeName">{{ element.name }}</span>
                     </span>
                   </div>
                 </template>
               </draggable>
             </el-scrollbar>
-            <el-pagination v-show="total > 10" layout="prev,pager,next" :total="total"
+            <el-pagination v-show="audioData.total > 10" layout="prev,pager,next" :total="audioData.total"
               @current-change="handleChangeCurrent" />
           </el-tab-pane>
         </el-tabs>
@@ -50,29 +54,29 @@
 import { list as contentList } from '@/api/content/list'
 import { list as ohplayList } from '@/api/content/ohplay'
 import { list as sceneList } from '@/api/content/scene'
-import { useAudioSelect } from '@/hooks/index'
+import { useAudioList } from '@/hooks/index'
 import GanttChart from '@/components/GanttChart'
 
 const { proxy } = getCurrentInstance();
 
-const { audioData, getAudio } = useAudioSelect()
+const { audioData, getAudio } = useAudioList()
 getAudio()
 
 // 遮罩层
 const loading = ref(false)
 // tab页
-const activeName = ref("content")
+const activeName = ref(0)
 // 数据
 const data = reactive({
   // tab数组
   tabOptions: [{
-    value: 'content',
+    value: 0,
     label: '内容列表'
   }, {
-    value: 'ohplay',
+    value: 1,
     label: 'ohplay音频'
   }, {
-    value: 'scene',
+    value: 2,
     label: '场景预设'
   }],
   // 表单
@@ -80,13 +84,8 @@ const data = reactive({
     pageNum: 1,
     pageSize: 10
   },
-  // 列表
-  tableData: []
 })
 
-// 总数据
-const total = ref(0)
-
 
 // 日历
 const calendar = ref()
@@ -100,66 +99,27 @@ function getDate(e) {
   console.log(new Date().getTime());
 }
 
+// 切换tab
 const handleChangeTabs = (e) => {
-  activeName.value = e.props.name
-  data.form = {
+  audioData.tableData = []
+  audioData.form = {
     pageNum: 1,
-    pageSize: 10
+    pageSize: 10,
+    type: e.props.name
   }
-  data.tableData = []
-  modalChange(e.props.name)
-}
-
-// 内容列表
-const getContentList = () => {
-  loading.value = true
-  contentList(data.form).then(res => {
-    if (res.code === 0) {
-      data.tableData = res.data.records
-      total.value = res.data.total
-      loading.value = false
-    }
-  })
-}
-getContentList()
-
-// Ohplay音频
-const getOhplayList = () => {
-  loading.value = true
-  ohplayList(data.form).then(res => {
-    if (res.code === 0) {
-      data.tableData = res.data.records
-      total.value = res.data.total
-      loading.value = false
-    }
-  })
-}
-
-// 场景预设
-const getSceneList = () => {
-  loading.value = true
-  sceneList(data.form).then(res => {
-    if (res.code === 0) {
-      data.tableData = res.data.records
-      total.value = res.data.total
-      loading.value = false
-    }
-  })
+  getAudio()
 }
 
+// 翻页
 const handleChangeCurrent = (e) => {
-  data.form.pageNum = e
-  modalChange(activeName.value)
+  audioData.form.pageNum = e
+  getAudio()
 }
 
-const modalChange = (e) => {
-  if (e === 'content') {
-    getContentList()
-  } else if (e === 'ohplay') {
-    getOhplayList()
-  } else {
-    getSceneList()
-  }
+// 搜索
+const getSearch = () => {
+  audioData.form.pageNum = 1
+  getAudio()
 }
 
 // 拖拽内容

+ 26 - 10
src/views/store/list/index.vue

@@ -41,7 +41,7 @@
     <pagination v-show="total > 0" :total="total" v-model:page="data.form.pageNum" v-model:limit="data.form.pageSize"
       @pagination="getList" />
     <!-- 弹窗 -->
-    <el-dialog v-model="dialogVisible" :title="title" width="500">
+    <el-dialog v-model="dialogVisible" :title="title" width="500" :before-close="getClose">
       <el-form label-width="100px" :model="data.dialogForm" ref="dialogForm" :rules="data.rules">
         <el-form-item label="门店名称:" prop="name">
           <el-input v-model="data.dialogForm.name" placeholder="请输入门店名称" />
@@ -75,8 +75,8 @@
         </el-form-item>
       </el-form>
       <template #footer>
-        <el-button>取消</el-button>
-        <el-button type="primary">确定</el-button>
+        <el-button @click="getClose">取消</el-button>
+        <el-button type="primary" @click="getSubmit">确定</el-button>
       </template>
     </el-dialog>
   </div>
@@ -111,6 +111,9 @@ const data = reactive({
   tableData: [],
   // 弹窗表单
   dialogForm: {},
+  // 地区
+  areaList: [],
+  // 校验
   rules: {
     name: [{
       required: true, message: '请输入门店名称', trigger: 'blur'
@@ -125,7 +128,7 @@ const data = reactive({
       required: true, message: '请选择所属企业', trigger: 'change'
     }],
     provinceId: [{
-      required: true, message: '请选择所属城市', trigger: 'change'
+      required: true, message: '请选择所属城市', trigger: 'blur'
     }],
     groupId: [{
       required: true, message: '请选择门店分组', trigger: 'change'
@@ -164,10 +167,6 @@ const getRefresh = () => {
   getList()
 }
 
-
-
-
-
 // 弹窗
 const dialogVisible = ref(false)
 // 弹窗标题
@@ -187,6 +186,7 @@ const getDetail = (id) => {
   detail({ id: id }).then(res => {
     if (res.code === 0) {
       data.dialogForm = res.data
+      data.areaList = [res.data.provinceId, res.data.cityId, res.data.areaId]
     }
   })
 }
@@ -208,7 +208,7 @@ const getSubmit = () => {
   proxy.$refs.dialogForm.validate(valid => {
     if (valid) {
       if (data.dialogForm.id) {
-        edit(data.dialogForm.id).then(res => {
+        edit(data.dialogForm).then(res => {
           if (res.code === 0) {
             proxy.$modal.msgSuccess('编辑成功!')
             getClose()
@@ -216,7 +216,7 @@ const getSubmit = () => {
           }
         })
       } else {
-        submit().then(res => {
+        submit(data.dialogForm).then(res => {
           if (res.code === 0) {
             proxy.$modal.msgSuccess('新增成功!')
             getClose()
@@ -229,4 +229,20 @@ const getSubmit = () => {
     }
   })
 }
+
+// 取消
+const getClose = () => {
+  dialogVisible.value = false
+  data.dialogForm = {}
+  data.areaList = []
+  proxy.$refs.dialogForm.resetFields()
+}
+
+watch(() => data.areaList, (val) => {
+  if (val) {
+    data.dialogForm.provinceId = val[0]
+    data.dialogForm.cityId = val[1]
+    data.dialogForm.areaId = val[2]
+  }
+})
 </script>