lex 1 year ago
parent
commit
e7baad8c04

+ 1 - 1
src/styles/index.less

@@ -10,7 +10,7 @@
 
 // 默认输入框光标颜色
 input {
-  caret-color: var(--k-font-primary);
+  caret-color: var(--k-font-primary) !important;
 }
 
 .van-skeleton {

BIN
src/views/download/images/btn-bg.png


+ 47 - 2
src/views/site-management/index.module.less

@@ -4,8 +4,6 @@
   // --van-dropdown-menu-height: 44px;
 
   :global {
-
-
     .van-dropdown-menu__item {
       &:last-child {
         .van-dropdown-menu__title {
@@ -17,6 +15,10 @@
         }
       }
     }
+
+    .van-nav-bar__right {
+      padding-right: 15px;
+    }
   }
 
   .iconSetting {
@@ -68,7 +70,23 @@
   }
 
   .address {
+    display: flex;
+    align-items: center;
+    justify-content: flex-end;
     color: var(--k-gray-1);
+
+    .overhide {
+      max-width: 120px;
+    }
+
+    .iconEdit {
+      font-size: 16px;
+      margin-left: 4px;
+    }
+
+    .red {
+      color: #FF5A56;
+    }
   }
 
   .iconTeacher {
@@ -195,4 +213,31 @@
     }
 
   }
+}
+
+.popupContainer {
+  width: 315px;
+
+  h2 {
+    text-align: center;
+    padding-top: 20px;
+    padding-bottom: 25px;
+    font-weight: 600;
+    font-size: 18px;
+    color: var(--k-gray-1);
+  }
+
+  .field {
+    width: auto;
+    margin: 0 18px;
+    background: #F6F6F6;
+    height: 47px;
+    border-radius: 6px;
+
+    input {
+      &::placeholder {
+        color: var(--k-gray-4);
+      }
+    }
+  }
 }

+ 100 - 12
src/views/site-management/index.tsx

@@ -2,13 +2,17 @@ import MHeader from '@/components/m-header';
 import MSticky from '@/components/m-sticky';
 import {
   ActionBar,
+  Button,
   Cell,
   CellGroup,
   DropdownItem,
   DropdownMenu,
+  Field,
   Icon,
   Image,
-  List
+  List,
+  Popup,
+  showToast
 } from 'vant';
 import { defineComponent, onMounted, reactive, ref } from 'vue';
 import styles from './index.module.less';
@@ -24,7 +28,7 @@ import MFullRefresh from '@/components/m-full-refresh';
 import { useRouter } from 'vue-router';
 import request from '@/helpers/request';
 import dayjs from 'dayjs';
-
+import iconEdit from '@/common/images/icon-edit.png';
 export default defineComponent({
   name: 'site-management',
   setup() {
@@ -54,7 +58,10 @@ export default defineComponent({
       startPosition: 0,
       imagePreview: [] as string[],
       pointCourseStatus: false, // 红点
-      list: []
+      list: [],
+      showAddressPopup: false,
+      siteName: '',
+      selectSite: {} as any
     });
 
     const getInitTimer = (week = 4) => {
@@ -120,10 +127,12 @@ export default defineComponent({
       } catch {
         forms.listState.finished = true;
       } finally {
-        forms.listState.dataShow = forms.list.length > 0;
-        forms.listState.refreshing = false;
-        forms.listState.loading = false;
-        forms.isClick = false;
+        setTimeout(() => {
+          forms.listState.dataShow = forms.list.length > 0;
+          forms.listState.refreshing = false;
+          forms.listState.loading = false;
+          forms.isClick = false;
+        }, 500);
       }
     };
 
@@ -156,6 +165,27 @@ export default defineComponent({
       }
     };
 
+    const onSubmitUpdateSite = async () => {
+      try {
+        if (!forms.siteName) {
+          showToast('请输入场地名称');
+          return;
+        }
+        await request.post('/api-web/classGroup/teachingPointCourseSchedule', {
+          hideLoading: false,
+          data: {
+            courseScheduleId: forms.selectSite.courseId,
+            teachingPoint: forms.siteName
+          }
+        });
+        forms.showAddressPopup = false;
+        forms.listState.refreshing = true;
+        onRefresh();
+      } catch {
+        //
+      }
+    };
+
     const onRefresh = () => {
       forms.params.page = 1;
       getList();
@@ -251,11 +281,37 @@ export default defineComponent({
                                 </p>
                               </div>
                             ),
-                            default: () => (
-                              <p class={[styles.address, styles.overhide]}>
-                                {item.teachingPoint}
-                              </p>
-                            )
+                            default: () =>
+                              item.courseStatus === 'OVER' ? (
+                                <p
+                                  class={[styles.address]}
+                                  onClick={() => {
+                                    if (item.teachingPoint) return;
+                                    forms.selectSite = item;
+                                    forms.siteName = item.teachingPoint;
+                                    forms.showAddressPopup = true;
+                                  }}>
+                                  <p
+                                    class={[
+                                      styles.overhide,
+                                      item.teachingPoint ? '' : styles.red
+                                    ]}>
+                                    {item.teachingPoint || '未设置场地'}
+                                  </p>
+                                  {item.teachingPoint ? (
+                                    ''
+                                  ) : (
+                                    <Icon
+                                      name={iconEdit}
+                                      class={styles.iconEdit}
+                                    />
+                                  )}
+                                </p>
+                              ) : (
+                                <p class={[styles.address, styles.overhide]}>
+                                  {item.teachingPoint}
+                                </p>
+                              )
                           }}
                         </Cell>
                         <Cell center class={styles.username}>
@@ -379,6 +435,38 @@ export default defineComponent({
           images={forms.imagePreview}
           startPosition={forms.startPosition}
         />
+
+        <Popup
+          v-model:show={forms.showAddressPopup}
+          round
+          onClose={() => {
+            forms.siteName = '';
+            forms.selectSite = {};
+          }}>
+          <div class={styles.popupContainer}>
+            <h2>设置场地</h2>
+            <Field
+              placeholder="请输入场地名称"
+              v-model={forms.siteName}
+              border={false}
+              class={styles.field}
+              maxlength={15}
+              autocomplete="off"
+            />
+            <div class={['btnGroupPopup']}>
+              <Button
+                round
+                onClick={() => {
+                  forms.showAddressPopup = false;
+                }}>
+                取消
+              </Button>
+              <Button type="primary" round onClick={onSubmitUpdateSite}>
+                确定
+              </Button>
+            </div>
+          </div>
+        </Popup>
       </div>
     );
   }

+ 4 - 0
src/views/teacher-attendance/index.module.less

@@ -97,6 +97,10 @@
       padding-left: 12px;
       padding-right: 12px;
     }
+
+    .van-dropdown-item {
+      margin-top: 0;
+    }
   }
 
   .className {