liyongli hai 5 meses
pai
achega
513c8c10e2
Modificáronse 2 ficheiros con 31 adicións e 18 borrados
  1. 12 7
      src/views/AdvertisingSpaceDatePage.vue
  2. 19 11
      src/views/OriginalityPage.vue

+ 12 - 7
src/views/AdvertisingSpaceDatePage.vue

@@ -53,8 +53,8 @@
         ');background-color: ' +
         (v ? '#409eff' : '#ffffff00')
       "
-      v-for="v in item.datesList"
-      :key="v"
+      v-for="(v, i) in item.datesList"
+      :key="i + 'level2'"
     >
       <el-tooltip v-if="v" effect="dark" :content="v" placement="top-start">
         <div style="width: 100%; height: 100%"></div>
@@ -84,16 +84,21 @@ const firstDay = ref<Date>()
 
 const changeDate = (date: string[][]): string[] => {
   if (!firstDay.value) return []
-  const list: string[] = new Array(dayCha.value)
-  const e = dayCha.value || 0
-  for (let i = 0; i < e; i++) {
+  const list: string[] = new Array(dayCha.value || 0)
+  for (let i = 0; i < list.length; i++) {
     const li: string[] = []
     const D = firstDay.value.getTime() + 86400000 * i
     for (let p = 0; p < date.length; p++) {
       const v = date[p]
+      const timeInterval = v[3] || ''
       const s = new Date(v[0] + ' 00:00:00').getTime()
       const e = new Date(v[1] + ' 23:59:59').getTime()
-      if (D >= s && D <= e) {
+      // 判定当前日期D是否与date[3]冲突
+      let DDate = new Date(D).getDay()
+      if (DDate === 0) DDate = 6
+      else DDate--
+      const isTrue = timeInterval.slice(DDate * 24, DDate * 24 + 24).includes('1')
+      if (D >= s && D <= e && isTrue) {
         li.push(v[2])
       }
     }
@@ -123,7 +128,7 @@ const getDataList = () => {
       dayCha.value = DateDifference(from.value.datas[0], from.value.datas[1])
       dataList.value = records.map((item: AsSpaceItem) => {
         const dates = item.creativesList.map((v: CreativesList) => {
-          return [v.startDate, v.endDate, v.creativeName]
+          return [v.startDate, v.endDate, v.creativeName, v.timeInterval]
         })
         const datesList: string[] = changeDate(dates)
         return {

+ 19 - 11
src/views/OriginalityPage.vue

@@ -115,7 +115,21 @@
           >
         </el-checkbox-group>
       </el-form-item>
-      <el-form-item label="交替时长" prop="showIntervalTime">
+      <el-form-item label="投放形式" prop="showType">
+        <el-select filterable v-model="form.showType">
+          <el-option
+            v-for="item in typeOptions"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          />
+        </el-select>
+      </el-form-item>
+      <el-form-item
+        v-if="form.showType !== 3"
+        :label="form.showType == 1 ? '轮播间隔' : '交替时长'"
+        prop="showIntervalTime"
+      >
         <el-input-number v-model="form.showIntervalTime" :min="0" />
         {{ form.showType == 1 ? '秒' : '分钟' }}
       </el-form-item>
@@ -168,16 +182,6 @@
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="投放形式" prop="showType">
-        <el-select filterable v-model="form.showType">
-          <el-option
-            v-for="item in typeOptions"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          />
-        </el-select>
-      </el-form-item>
       <el-form-item>
         <el-button type="primary" @click="createOrUpdate">确定</el-button>
         <el-button v-if="form.creativeId" type="primary" @click="linkSourceMaterial">
@@ -239,6 +243,10 @@ const typeOptions = [
     value: 2,
     label: '交替',
   },
+  {
+    value: 3,
+    label: '单项',
+  },
 ]
 
 const tableData = ref<OriginalityList>([])