tangning 2 лет назад
Родитель
Сommit
1f0c6f306c
3 измененных файлов с 41 добавлено и 24 удалено
  1. 2 2
      src/views/scenes/room.vue
  2. 38 21
      src/views/scenes/roomDetail.vue
  3. 1 1
      src/views/staff/detailsModal.vue

+ 2 - 2
src/views/scenes/room.vue

@@ -315,10 +315,10 @@
           record: {
             ...toRaw(record),
             launchPeriod: [
-              record.effectiveEndTime &&
-                dayjs(record.effectiveEndTime).format('YYYY-MM-DD HH:mm:ss'),
               record.effectiveStartTime &&
                 dayjs(record.effectiveStartTime).format('YYYY-MM-DD HH:mm:ss'),
+              record.effectiveEndTime &&
+                dayjs(record.effectiveEndTime).format('YYYY-MM-DD HH:mm:ss'),
             ],
           },
         });

+ 38 - 21
src/views/scenes/roomDetail.vue

@@ -29,8 +29,9 @@
   import { staffListApi } from '/@/api/staff/list';
   import { ListApi } from '/@/api/scene/live';
   import { bindUserList, createOrUpdate } from '/@/api/scene/list';
-  import dayjs from 'dayjs';
+  import { dateUtil } from '/@/utils/dateUtil';
   import { cloneDeep } from 'lodash-es';
+  const now = dateUtil();
   const { t } = useI18n();
   export default defineComponent({
     components: { BasicModal, BasicForm },
@@ -103,6 +104,7 @@
             showSearch: true,
             resultField: 'list',
             labelField: 'name',
+            optionFilterProp: 'label',
             valueField: 'id',
             immediate: true,
             params: {
@@ -151,28 +153,19 @@
               // @ts-ignore
               validator: async (rule, value) => {
                 if (!value) {
-                  return Promise.reject('请选择开播时间段');
+                  return Promise.reject('请选择时间段');
                 }
-                if (modalTitle.value == '查看') {
-                  return Promise.resolve();
-                }
-                let start, end;
-                if (dayjs(value[0]).isAfter(dayjs(value[1]))) {
-                  start = dayjs(value[1]);
-                  end = dayjs(value[0]);
-                } else {
-                  end = dayjs(value[1]);
-                  start = dayjs(value[0]);
+                // console.log('check', rule, value, record);
+                console.log('value[1]', value[1].unix(), value);
+                if (value[0].unix() > value[1].unix()) {
+                  return Promise.reject('开始时间要小于结束时间');
                 }
-                console.log('start', start.format('YYYY-MM-DD'), end.format('YYYY-MM-DD'), value);
-                if (end.isSame(start, 'minute')) {
-                  return Promise.reject('结束时间应大于开始时间');
-                } else if (dayjs().isAfter(dayjs(end))) {
-                  return Promise.reject('结束时间应大于当前时间');
-                } else {
-                  return Promise.resolve();
+                if (value[0].unix() > value[1].unix() - 300) {
+                  return Promise.reject('时间段最小5分钟');
                 }
+                return Promise.resolve();
               },
+
               trigger: 'change',
             },
           ],
@@ -183,9 +176,26 @@
                 incrementEndTime: '',
               });
             },
-            // valueFormat: 'YYYY-MM-DD HH:mm',
             format: 'YYYY-MM-DD HH:mm',
             showTime: true,
+            disabledDate(current) {
+              return current && current < now;
+            },
+            disabledTime(_) {
+              // if (type === 'start') {
+              //   return {
+              //     // ...Array(dateUtil().minute()).keys()
+              //     disabledHours: () => [...Array(dateUtil().hour()).keys()],
+              //     disabledMinutes: () => [],
+              //     disabledSeconds: () => [],
+              //   };
+              // }
+              return {
+                disabledHours: () => [...Array(dateUtil().hour()).keys()],
+                disabledMinutes: () => [],
+                disabledSeconds: () => [],
+              };
+            },
             // disabledDate: validateStartTime,
           },
         },
@@ -270,6 +280,7 @@
         modalTitle.value = data.isSetData ? '查看' : data.isUpdate ? '编辑' : '新增';
         // const  = ref('编辑');
         isPropsData.record = data.record || {};
+        console.log('setFieldsValue', data.record);
         if (data.isUpdate) {
           //编辑
           setFieldsValue({
@@ -296,7 +307,6 @@
         } else if (data.isSetData) {
           //查看
           let setSchemas = [];
-          console.log('setFieldsValue', data.record);
           schemas.map((ele) => {
             let setSchemasItem = {
               ...ele,
@@ -331,6 +341,13 @@
         const values = await validate();
         const { launchPeriod } = values;
         console.log('validate', values, launchPeriod);
+        if (
+          values.launchPeriod[0].valueOf() < dateUtil().valueOf() ||
+          values.launchPeriod[1].valueOf() < dateUtil().valueOf()
+        ) {
+          createMessage.warn('开始或结束时间不能少于当前时间');
+          return;
+        }
         let apiData = {
           ...values,
           effectiveEndTime:

+ 1 - 1
src/views/staff/detailsModal.vue

@@ -114,7 +114,7 @@
               required: true,
               // @ts-ignore
               validator: async (rule, value) => {
-                var reg_tel = /^[a-zA-Z\u4e00-\u9fa5]+$/;
+                var reg_tel = /^[a-zA-Z0-9\u4e00-\u9fa5]{4,15}$/;
                 // var reg = /\S+@\S+\.\S+/;
                 if (!value) {
                   return Promise.reject('请输入员工名称');