Bladeren bron

fix: 视频帮办模块调整

zhangying 1 dag geleden
bovenliggende
commit
0785735383

+ 12 - 12
jeecgboot-vue3/src/views/spbb/video/SppbVideoList.vue

@@ -46,18 +46,18 @@
 </template>
 </template>
 
 
 <script lang="ts" name="spbb-sppbVideo" setup>
 <script lang="ts" name="spbb-sppbVideo" setup>
-import { reactive, ref } from 'vue';
-import { BasicTable, TableAction } from '/@/components/Table';
-import { useListPage } from '/@/hooks/system/useListPage';
-import { columns, superQuerySchema } from './SppbVideo.data';
-import { batchDelete, deleteOne, getExportUrl, getImportUrl, list } from './SppbVideo.api';
-import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
-import SppbVideoModal from './components/SppbVideoModal.vue';
-import { useUserStore } from '/@/store/modules/user';
-import { useMessage } from '/@/hooks/web/useMessage';
-import { getDateByPicker } from '/@/utils';
-
-const fieldPickers = reactive({});
+  import { reactive, ref } from 'vue';
+  import { BasicTable, TableAction } from '/@/components/Table';
+  import { useListPage } from '/@/hooks/system/useListPage';
+  import { columns, superQuerySchema } from './SppbVideo.data';
+  import { batchDelete, deleteOne, getExportUrl, getImportUrl, list } from './SppbVideo.api';
+  import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
+  import SppbVideoModal from './components/SppbVideoModal.vue';
+  import { useUserStore } from '/@/store/modules/user';
+  import { useMessage } from '/@/hooks/web/useMessage';
+  import { getDateByPicker } from '/@/utils';
+
+  const fieldPickers = reactive({});
 
 
   const formRef = ref();
   const formRef = ref();
   const queryParam = reactive<any>({});
   const queryParam = reactive<any>({});

+ 177 - 146
jeecgboot-vue3/src/views/spbb/video/components/SppbVideoForm.vue

@@ -4,111 +4,146 @@
       <template #detail>
       <template #detail>
         <a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" name="SppbVideoForm">
         <a-form ref="formRef" class="antd-modal-form" :labelCol="labelCol" :wrapperCol="wrapperCol" name="SppbVideoForm">
           <a-row>
           <a-row>
-						<a-col :span="24">
-							<a-form-item id="SppbVideoForm-title" :labelCol="{ xs: { span: 24 }, sm: { span: 3 } }" :wrapperCol="{ xs: { span: 24 }, sm: { span: 20 } }" label="视频标题" name="title" v-bind="validateInfos.title">
-								<a-input v-model:value="formData.title" placeholder="请输入视频标题"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="视频封面" v-bind="validateInfos.cover" id="SppbVideoForm-cover" name="cover">
-								<JImageUpload v-model:value="formData.cover" :fileMax="1" bizPath="cover" :disabled="disabled" />
-							</a-form-item>
-						</a-col>
-						<a-col v-if="disabled && videoUrl" :span="24">
-							<a-form-item id="SppbVideoForm-videoFile-detail" :labelCol="{ xs: { span: 24 }, sm: { span: 3 } }" :wrapperCol="{ xs: { span: 24 }, sm: { span: 20 } }" label="视频文件" name="videoFile">
-								<video :src="videoUrl" controls preload="metadata" style="width: 70%; max-height: 500px; border-radius: 8px; background: #000;" />
-							</a-form-item>
-						</a-col>
-						<a-col v-else :span="12">
-							<a-form-item label="视频文件" v-bind="validateInfos.videoFile" id="SppbVideoForm-videoFile" name="videoFile">
-								<JUpload v-model:value="formData.videoFile" :maxCount="1" :multiple="false" bizPath="video" :disabled="disabled" :beforeUpload="beforeVideoUpload" accept="video/*" />
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="视频格式" v-bind="validateInfos.format" id="SppbVideoForm-format" name="format">
-								<a-input v-model:value="formData.format" placeholder="请输入视频格式"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="视频文件大小" v-bind="validateInfos.fileSize" id="SppbVideoForm-fileSize" name="fileSize">
-								<a-input v-model:value="formData.fileSize" placeholder="请输入视频文件大小"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="视频时长" v-bind="validateInfos.duration" id="SppbVideoForm-duration" name="duration">
-								<a-input v-model:value="formData.duration" placeholder="请输入视频时长"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="关联业务ID" v-bind="validateInfos.dataId" id="SppbVideoForm-dataId" name="dataId">
-								<a-input v-model:value="formData.dataId" placeholder="请输入关联业务ID"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="关联业务名称" v-bind="validateInfos.dataName" id="SppbVideoForm-dataName" name="dataName">
-								<a-input v-model:value="formData.dataName" placeholder="请输入关联业务名称"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="操作步骤摘要" v-bind="validateInfos.stepSummary" id="SppbVideoForm-stepSummary" name="stepSummary">
-								<a-input v-model:value="formData.stepSummary" placeholder="请输入操作步骤摘要"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="视频内容描述" v-bind="validateInfos.contentDesc" id="SppbVideoForm-contentDesc" name="contentDesc">
-								<a-input v-model:value="formData.contentDesc" placeholder="请输入视频内容描述"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="录制时间" v-bind="validateInfos.recordingTime" id="SppbVideoForm-recordingTime" name="recordingTime">
-								<a-date-picker placeholder="请选择录制时间"  v-model:value="formData.recordingTime" showTime value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%"  allow-clear />
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="视频内容更新时间" v-bind="validateInfos.videoUpdateTime" id="SppbVideoForm-videoUpdateTime" name="videoUpdateTime">
-								<a-date-picker placeholder="请选择视频内容更新时间"  v-model:value="formData.videoUpdateTime" showTime value-format="YYYY-MM-DD HH:mm:ss" style="width: 100%"  allow-clear />
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="视频状态" v-bind="validateInfos.state" id="SppbVideoForm-state" name="state">
-								<a-input-number v-model:value="formData.state" placeholder="请输入视频状态" style="width: 100%" />
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="业务分类" v-bind="validateInfos.businessCategory" id="SppbVideoForm-businessCategory" name="businessCategory">
-								<a-input-number v-model:value="formData.businessCategory" placeholder="请输入业务分类" style="width: 100%" />
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="关键词" v-bind="validateInfos.keyword" id="SppbVideoForm-keyword" name="keyword">
-								<a-input v-model:value="formData.keyword" placeholder="请输入关键词"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
-						<a-col :span="12">
-							<a-form-item label="适用人群" v-bind="validateInfos.targetAudience" id="SppbVideoForm-targetAudience" name="targetAudience">
-								<a-input v-model:value="formData.targetAudience" placeholder="请输入适用人群"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
-<!--						<a-col :span="12">-->
-<!--							<a-form-item label="播放次数" v-bind="validateInfos.playCount" id="SppbVideoForm-playCount" name="playCount">-->
-<!--								<a-input-number v-model:value="formData.playCount" placeholder="请输入播放次数" style="width: 100%" />-->
-<!--							</a-form-item>-->
-<!--						</a-col>-->
-<!--						<a-col :span="12">-->
-<!--							<a-form-item label="收藏次数" v-bind="validateInfos.favoriteCount" id="SppbVideoForm-favoriteCount" name="favoriteCount">-->
-<!--								<a-input-number v-model:value="formData.favoriteCount" placeholder="请输入收藏次数" style="width: 100%" />-->
-<!--							</a-form-item>-->
-<!--						</a-col>-->
-<!--						<a-col :span="12">-->
-<!--							<a-form-item label="播放完成率" v-bind="validateInfos.playCompletionRate" id="SppbVideoForm-playCompletionRate" name="playCompletionRate">-->
-<!--								<a-input v-model:value="formData.playCompletionRate" placeholder="请输入播放完成率"  allow-clear ></a-input>-->
-<!--							</a-form-item>-->
-<!--						</a-col>-->
-						<a-col :span="12">
-							<a-form-item label="备注说明" v-bind="validateInfos.remark" id="SppbVideoForm-remark" name="remark">
-								<a-input v-model:value="formData.remark" placeholder="请输入备注说明"  allow-clear ></a-input>
-							</a-form-item>
-						</a-col>
+            <a-col :span="24">
+              <a-form-item
+                id="SppbVideoForm-title"
+                :labelCol="{ xs: { span: 24 }, sm: { span: 3 } }"
+                :wrapperCol="{ xs: { span: 24 }, sm: { span: 20 } }"
+                label="视频标题"
+                name="title"
+                v-bind="validateInfos.title"
+              >
+                <a-input v-model:value="formData.title" allow-clear placeholder="请输入视频标题"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-cover" label="视频封面" name="cover" v-bind="validateInfos.cover">
+                <JImageUpload v-model:value="formData.cover" :disabled="disabled" :fileMax="1" bizPath="cover" />
+              </a-form-item>
+            </a-col>
+            <a-col v-if="disabled && videoUrl" :span="24">
+              <a-form-item
+                id="SppbVideoForm-videoFile-detail"
+                :labelCol="{ xs: { span: 24 }, sm: { span: 3 } }"
+                :wrapperCol="{ xs: { span: 24 }, sm: { span: 20 } }"
+                label="视频文件"
+                name="videoFile"
+              >
+                <video :src="videoUrl" controls preload="metadata" style="width: 70%; max-height: 500px; border-radius: 8px; background: #000" />
+              </a-form-item>
+            </a-col>
+            <a-col v-else :span="12">
+              <a-form-item id="SppbVideoForm-videoFile" label="视频文件" name="videoFile" v-bind="validateInfos.videoFile">
+                <JUpload
+                  v-model:value="formData.videoFile"
+                  :beforeUpload="beforeVideoUpload"
+                  :disabled="disabled"
+                  :maxCount="1"
+                  :multiple="false"
+                  accept="video/*"
+                  bizPath="video"
+                />
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-format" label="视频格式" name="format" v-bind="validateInfos.format">
+                <a-input v-model:value="formData.format" allow-clear placeholder="请输入视频格式"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-fileSize" label="视频文件大小" name="fileSize" v-bind="validateInfos.fileSize">
+                <a-input v-model:value="formData.fileSize" allow-clear placeholder="请输入视频文件大小"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-duration" label="视频时长" name="duration" v-bind="validateInfos.duration">
+                <a-input v-model:value="formData.duration" allow-clear placeholder="请输入视频时长"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-dataId" label="关联业务ID" name="dataId" v-bind="validateInfos.dataId">
+                <a-input v-model:value="formData.dataId" allow-clear placeholder="请输入关联业务ID"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-dataName" label="关联业务名称" name="dataName" v-bind="validateInfos.dataName">
+                <a-input v-model:value="formData.dataName" allow-clear placeholder="请输入关联业务名称"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-stepSummary" label="操作步骤摘要" name="stepSummary" v-bind="validateInfos.stepSummary">
+                <a-input v-model:value="formData.stepSummary" allow-clear placeholder="请输入操作步骤摘要"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-contentDesc" label="视频内容描述" name="contentDesc" v-bind="validateInfos.contentDesc">
+                <a-input v-model:value="formData.contentDesc" allow-clear placeholder="请输入视频内容描述"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-recordingTime" label="录制时间" name="recordingTime" v-bind="validateInfos.recordingTime">
+                <a-date-picker
+                  v-model:value="formData.recordingTime"
+                  allow-clear
+                  placeholder="请选择录制时间"
+                  showTime
+                  style="width: 100%"
+                  value-format="YYYY-MM-DD HH:mm:ss"
+                />
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-videoUpdateTime" label="视频内容更新时间" name="videoUpdateTime" v-bind="validateInfos.videoUpdateTime">
+                <a-date-picker
+                  v-model:value="formData.videoUpdateTime"
+                  allow-clear
+                  placeholder="请选择视频内容更新时间"
+                  showTime
+                  style="width: 100%"
+                  value-format="YYYY-MM-DD HH:mm:ss"
+                />
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-state" label="视频状态" name="state" v-bind="validateInfos.state">
+                <a-input-number v-model:value="formData.state" placeholder="请输入视频状态" style="width: 100%" />
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-businessCategory" label="业务分类" name="businessCategory" v-bind="validateInfos.businessCategory">
+                <a-input-number v-model:value="formData.businessCategory" placeholder="请输入业务分类" style="width: 100%" />
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-keyword" label="关键词" name="keyword" v-bind="validateInfos.keyword">
+                <a-input v-model:value="formData.keyword" allow-clear placeholder="请输入关键词"></a-input>
+              </a-form-item>
+            </a-col>
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-targetAudience" label="适用人群" name="targetAudience" v-bind="validateInfos.targetAudience">
+                <a-input v-model:value="formData.targetAudience" allow-clear placeholder="请输入适用人群"></a-input>
+              </a-form-item>
+            </a-col>
+            <!--						<a-col :span="12">-->
+            <!--							<a-form-item label="播放次数" v-bind="validateInfos.playCount" id="SppbVideoForm-playCount" name="playCount">-->
+            <!--								<a-input-number v-model:value="formData.playCount" placeholder="请输入播放次数" style="width: 100%" />-->
+            <!--							</a-form-item>-->
+            <!--						</a-col>-->
+            <!--						<a-col :span="12">-->
+            <!--							<a-form-item label="收藏次数" v-bind="validateInfos.favoriteCount" id="SppbVideoForm-favoriteCount" name="favoriteCount">-->
+            <!--								<a-input-number v-model:value="formData.favoriteCount" placeholder="请输入收藏次数" style="width: 100%" />-->
+            <!--							</a-form-item>-->
+            <!--						</a-col>-->
+            <!--						<a-col :span="12">-->
+            <!--							<a-form-item label="播放完成率" v-bind="validateInfos.playCompletionRate" id="SppbVideoForm-playCompletionRate" name="playCompletionRate">-->
+            <!--								<a-input v-model:value="formData.playCompletionRate" placeholder="请输入播放完成率"  allow-clear ></a-input>-->
+            <!--							</a-form-item>-->
+            <!--						</a-col>-->
+            <a-col :span="12">
+              <a-form-item id="SppbVideoForm-remark" label="备注说明" name="remark" v-bind="validateInfos.remark">
+                <a-input v-model:value="formData.remark" allow-clear placeholder="请输入备注说明"></a-input>
+              </a-form-item>
+            </a-col>
           </a-row>
           </a-row>
         </a-form>
         </a-form>
       </template>
       </template>
@@ -117,46 +152,46 @@
 </template>
 </template>
 
 
 <script lang="ts" setup>
 <script lang="ts" setup>
-import { computed, defineExpose, defineProps, nextTick, reactive, ref } from 'vue';
-import { useMessage } from '/@/hooks/web/useMessage';
-import { getDateByPicker, getValueType } from '/@/utils';
-import { saveOrUpdate } from '../SppbVideo.api';
-import JImageUpload from '/@/components/Form/src/jeecg/components/JImageUpload.vue';
-import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
-import { Form } from 'ant-design-vue';
-import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
-import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
+  import { computed, defineExpose, defineProps, nextTick, reactive, ref } from 'vue';
+  import { useMessage } from '/@/hooks/web/useMessage';
+  import { getDateByPicker, getValueType } from '/@/utils';
+  import { saveOrUpdate } from '../SppbVideo.api';
+  import JImageUpload from '/@/components/Form/src/jeecg/components/JImageUpload.vue';
+  import JUpload from '/@/components/Form/src/jeecg/components/JUpload/JUpload.vue';
+  import { Form } from 'ant-design-vue';
+  import JFormContainer from '/@/components/Form/src/container/JFormContainer.vue';
+  import { getFileAccessHttpUrl } from '/@/utils/common/compUtils';
 
 
-const props = defineProps({
+  const props = defineProps({
     formDisabled: { type: Boolean, default: false },
     formDisabled: { type: Boolean, default: false },
-    formData: { type: Object, default: () => ({})},
-    formBpm: { type: Boolean, default: true }
+    formData: { type: Object, default: () => ({}) },
+    formBpm: { type: Boolean, default: true },
   });
   });
   const formRef = ref();
   const formRef = ref();
   const useForm = Form.useForm;
   const useForm = Form.useForm;
   const emit = defineEmits(['register', 'ok']);
   const emit = defineEmits(['register', 'ok']);
   const formData = reactive<Record<string, any>>({
   const formData = reactive<Record<string, any>>({
     id: '',
     id: '',
-    title: '',   
-    cover: '',   
-    videoFile: '',   
-    format: '',   
-    fileSize: '',   
-    duration: '',   
-    dataId: '',   
-    dataName: '',   
-    stepSummary: '',   
-    contentDesc: '',   
-    recordingTime: '',   
-    videoUpdateTime: '',   
+    title: '',
+    cover: '',
+    videoFile: '',
+    format: '',
+    fileSize: '',
+    duration: '',
+    dataId: '',
+    dataName: '',
+    stepSummary: '',
+    contentDesc: '',
+    recordingTime: '',
+    videoUpdateTime: '',
     state: undefined,
     state: undefined,
     businessCategory: undefined,
     businessCategory: undefined,
-    keyword: '',   
-    targetAudience: '',   
+    keyword: '',
+    targetAudience: '',
     playCount: undefined,
     playCount: undefined,
     favoriteCount: undefined,
     favoriteCount: undefined,
-    playCompletionRate: '',   
-    remark: '',   
+    playCompletionRate: '',
+    remark: '',
   });
   });
   const { createMessage } = useMessage();
   const { createMessage } = useMessage();
   const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 6 } });
   const labelCol = ref<any>({ xs: { span: 24 }, sm: { span: 6 } });
@@ -173,19 +208,17 @@ const props = defineProps({
   }
   }
 
 
   //表单验证
   //表单验证
-  const validatorRules = reactive({
-  });
+  const validatorRules = reactive({});
   const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
   const { resetFields, validate, validateInfos } = useForm(formData, validatorRules, { immediate: false });
   //日期个性化选择
   //日期个性化选择
-  const fieldPickers = reactive({
-  });
+  const fieldPickers = reactive({});
 
 
   // 表单禁用
   // 表单禁用
-  const disabled = computed(()=>{
-    if(props.formBpm === true){
-      if(props.formData.disabled === false){
+  const disabled = computed(() => {
+    if (props.formBpm === true) {
+      if (props.formData.disabled === false) {
         return false;
         return false;
-      }else{
+      } else {
         return true;
         return true;
       }
       }
     }
     }
@@ -199,7 +232,6 @@ const props = defineProps({
     return '';
     return '';
   });
   });
 
 
-  
   /**
   /**
    * 新增
    * 新增
    */
    */
@@ -215,10 +247,10 @@ const props = defineProps({
       resetFields();
       resetFields();
       const tmpData = {};
       const tmpData = {};
       Object.keys(formData).forEach((key) => {
       Object.keys(formData).forEach((key) => {
-        if(record.hasOwnProperty(key)){
-          tmpData[key] = record[key]
+        if (record.hasOwnProperty(key)) {
+          tmpData[key] = record[key];
         }
         }
-      })
+      });
       //赋值
       //赋值
       Object.assign(formData, tmpData);
       Object.assign(formData, tmpData);
     });
     });
@@ -274,7 +306,6 @@ const props = defineProps({
       });
       });
   }
   }
 
 
-
   defineExpose({
   defineExpose({
     add,
     add,
     edit,
     edit,

+ 2 - 2
jeecgboot-vue3/src/views/spbb/video/components/SppbVideoModal.vue

@@ -19,10 +19,10 @@
 </template>
 </template>
 
 
 <script lang="ts" setup>
 <script lang="ts" setup>
-import {defineExpose, nextTick, ref} from 'vue';
+import { defineExpose, nextTick, ref } from 'vue';
 import SppbVideoForm from './SppbVideoForm.vue';
 import SppbVideoForm from './SppbVideoForm.vue';
 import JModal from '/@/components/Modal/src/JModal/JModal.vue';
 import JModal from '/@/components/Modal/src/JModal/JModal.vue';
-import {useMessage} from '/@/hooks/web/useMessage';
+import { useMessage } from '/@/hooks/web/useMessage';
 
 
 const { createMessage } = useMessage();
 const { createMessage } = useMessage();
   const title = ref<string>('');
   const title = ref<string>('');