ソースを参照

修改统计-增加时段

shaogen1995 6 ヶ月 前
コミット
25e9be7736

+ 58 - 20
后台管理/src/pages/A6record/LocStat.tsx

@@ -4,11 +4,16 @@ import { Button, Modal } from 'antd'
 import { A6FromDataType } from './type'
 import { B2FromDataType } from '../B2exhiLog/type'
 import { Loc_APIlist } from '@/store/action/A6record'
-import MyTable from '@/components/MyTable'
+
+type ListTimeType = {
+  time: string
+  num: number
+}
 
 type ListType = {
   id: string
-  num: number
+  numAll: number
+  timeArr: ListTimeType[]
 }
 
 type Props = {
@@ -32,15 +37,26 @@ function LocStat({ type, apiObj, closeFu }: Props) {
     if (res.code === 0) {
       const listTemp: ListType[] = []
 
-      const resList: any[] = res.data
-      resList.forEach((obj: any) => {
-        for (const k in obj) {
-          listTemp.push({
-            id: k,
-            num: obj[k]
-          })
+      const resObj: any = res.data || {}
+      // const resObj: any = {
+      //   '广东省-珠海市': { am: 1, pm: 1 }
+      // }
+
+      for (const k1 in resObj) {
+        let objOne: any = {}
+        objOne.id = k1
+        let numAll = 0
+        let arr1: any = []
+        for (const k2 in resObj[k1]) {
+          numAll += resObj[k1][k2]
+          arr1.push({ time: k2, num: resObj[k1][k2] })
         }
-      })
+        objOne.timeArr = arr1
+        objOne.numAll = numAll
+        listTemp.push(objOne)
+      }
+      // console.log('-----', listTemp)
+
       setList(listTemp)
     }
   }, [apiObj, type])
@@ -58,16 +74,38 @@ function LocStat({ type, apiObj, closeFu }: Props) {
         [] // 设置footer为空,去掉 取消 确定默认按钮
       }
     >
-      <MyTable
-        list={list}
-        columnsTemp={[
-          ['txt', '地区', 'id'],
-          ['txt', '预约记录', 'num']
-        ]}
-        lastBtn={[]}
-        pagingInfo={false}
-      />
-
+      <div className='LocList'>
+        {list && list.length ? (
+          list.map(item => (
+            <div key={item.id} className='LocRow'>
+              <div className='LocRow1'>
+                <div className='LocRow1Wei'>地区:</div>
+                <div>{item.id}</div>&emsp;
+                <div className='LocRow1Wei'>总人数:</div>
+                <div>{item.numAll}</div>
+              </div>
+              <div className='LocRow1'>
+                <div className='LocRow1Wei'>时段人数:</div>
+                {item.timeArr.map(item2 => (
+                  <div key={item2.time}>
+                    (
+                    <span>
+                      {item2.time === 'am'
+                        ? '上午'
+                        : item2.time === 'pm'
+                        ? '下午'
+                        : item2.time}
+                    </span>
+                    :{item2.num})
+                  </div>
+                ))}
+              </div>
+            </div>
+          ))
+        ) : (
+          <div className='LocNull'>暂无数据</div>
+        )}
+      </div>
       <div className='Locbtn'>
         <Button onClick={closeFu}>关闭</Button>
       </div>

+ 28 - 2
后台管理/src/pages/A6record/index.module.scss

@@ -60,7 +60,9 @@
     .ant-modal-close {
       display: none;
     }
-
+    .ant-modal {
+      width: 1000px !important;
+    }
     .ant-modal-body {
       border-top: 1px solid #ccc;
       padding-top: 15px !important;
@@ -68,9 +70,33 @@
       .ant-table-cell {
         text-align: center !important;
       }
-      .ant-table-body {
+      .LocList {
         max-height: 500px;
         overflow-y: auto;
+        .LocRow {
+          margin-bottom: 8px;
+          border-bottom: 1px solid #ccc;
+          .LocRow1 {
+            display: flex;
+            margin-bottom: 5px;
+            flex-wrap: wrap;
+            .LocRow1Wei {
+              font-weight: 700;
+            }
+            // span {
+            //   font-weight: 700;
+            // }
+          }
+        }
+      }
+      .LocNull {
+        font-size: 22px;
+        letter-spacing: 4px;
+        font-weight: 700;
+        height: 200px;
+        display: flex;
+        justify-content: center;
+        align-items: center;
       }
     }
     .Locbtn {

+ 4 - 1
展示端/src/pages/A3selectDay/index.tsx

@@ -33,7 +33,10 @@ function A3selectDay() {
 
         let arr: A3ListType[] = []
 
-        const arrTime = getWeekList('YYYY-MM-DD', 8)
+        // const arrTime = getWeekList('YYYY-MM-DD', 8)
+
+        // 暂时去掉 只能看到从今天开始的往后第7天开始算
+        const arrTime = getWeekList('YYYY-MM-DD', 1)
 
         // 上午obj
         const AMobj = baseList[0]

+ 30 - 24
展示端/src/pages/B3start/index.tsx

@@ -17,6 +17,22 @@ function B3start() {
 
   const [loding, setLoding] = useState(false)
 
+  // 点击顶部的切换日期
+  const cutTopFu = useCallback(async (val: string) => {
+    const varRes = val.replaceAll('.', '-')
+
+    const res = await B1_APIgetInfoByDay(varRes)
+
+    if (res.code === 0) {
+      // 切换顶部选中
+      setNowTime(val)
+      // 清空底部索引选中
+      setAcInd(-1)
+      // 设置入馆时间数组
+      setList(res.data.time)
+    }
+  }, [])
+
   // 获取日期信息(过滤掉不可预约日期)
   const getTimeRes = useCallback(async () => {
     const res = await B1_APIgetInfoByDay(dayjs().format('YYYY-MM-DD'))
@@ -40,12 +56,15 @@ function B3start() {
       const arr = getWeekList(undefined, undefined, xiaoShi8)
 
       let arrRes: TimeChageResType[] = []
-      arr.forEach(v => {
+
+      arr.forEach((v, i) => {
         if (!noTimeArr.includes(v.date)) {
-          arrRes.push(v)
+          // arrRes.push(v)
           // 只有周六日可以约
-          // const num = dayjs(v.timeStamp).day()
-          // if ([6, 0].includes(num)) arrRes.push(v)
+          const num = dayjs(v.timeStamp).day()
+          if ([6, 0].includes(num)) {
+            arrRes.push(v)
+          }
         }
       })
 
@@ -53,11 +72,7 @@ function B3start() {
 
       // 设置顶部数组
       setZhouArr(arrRes)
-
       setLoding(true)
-
-      // 设置入馆时间数组
-      setList(res.data.time)
     }
   }, [])
 
@@ -89,6 +104,13 @@ function B3start() {
   // 顶部一共七天日期数组
   const [zhouArr, setZhouArr] = useState<TimeChageResType[]>([])
 
+  // 初始进入页面 设置 第一个日期的 入馆时间 数组
+  useEffect(() => {
+    if (zhouArr && zhouArr.length) {
+      cutTopFu(zhouArr[0].date)
+    }
+  }, [cutTopFu, zhouArr])
+
   // 选中的顶部索引
   const [acInd, setAcInd] = useState(-1)
 
@@ -111,22 +133,6 @@ function B3start() {
     [nowTime]
   )
 
-  // 点击顶部的切换日期
-  const cutTopFu = useCallback(async (val: string) => {
-    const varRes = val.replaceAll('.', '-')
-
-    const res = await B1_APIgetInfoByDay(varRes)
-
-    if (res.code === 0) {
-      // 切换顶部选中
-      setNowTime(val)
-      // 清空底部索引选中
-      setAcInd(-1)
-      // 设置入馆时间数组
-      setList(res.data.time)
-    }
-  }, [])
-
   return (
     <div className={styles.B3start}>
       <div className='B3main'>