lex 2 vuotta sitten
vanhempi
commit
a313ecd08f

+ 12 - 0
src/school/orchestra/compontent/photo.module.less

@@ -14,7 +14,19 @@
   justify-content: space-between;
   flex-wrap: wrap;
   .item {
+    position: relative;
     padding-top: 12px;
+    .more {
+      display: inline-block;
+      position: absolute;
+      top: 18px;
+      right: 6px;
+      background: url('../images/icon_more.png') center center no-repeat;
+      background-size: contain;
+      width: 24px;
+      height: 24px;
+      z-index: 9;
+    }
     .img {
       width: 170px;
       height: 170px;

+ 109 - 21
src/school/orchestra/compontent/photo.tsx

@@ -1,6 +1,17 @@
 import OEmpty from '@/components/o-empty'
 import request from '@/helpers/request'
-import { Button, Dialog, Field, Image, List, Popup, showToast } from 'vant'
+import {
+  ActionSheet,
+  Button,
+  Dialog,
+  Field,
+  Image,
+  List,
+  Popover,
+  Popup,
+  showConfirmDialog,
+  showToast
+} from 'vant'
 import { defineComponent, onMounted, reactive } from 'vue'
 import { useRoute, useRouter } from 'vue-router'
 import styles from './photo.module.less'
@@ -12,6 +23,7 @@ export default defineComponent({
     const route = useRoute()
     const router = useRouter()
     const state = reactive({
+      oPopover: false,
       status: false,
       isLoading: false,
       photoName: null, // 相册名称
@@ -21,11 +33,12 @@ export default defineComponent({
         loading: false,
         finished: false
       },
-
       params: {
         page: 1,
         rows: 20
-      }
+      },
+      selectItem: {} as any,
+      selectType: 'add'
     })
 
     const onAddPhoto = async () => {
@@ -35,30 +48,47 @@ export default defineComponent({
           state.status = true
           return
         }
-        await request.post('/api-school/orchestraPhotoAlbum/save', {
-          data: {
-            orchestraId: route.query.id,
-            name: state.photoName
-          }
-        })
+        if (state.selectType === 'add') {
+          await request.post('/api-school/orchestraPhotoAlbum/save', {
+            data: {
+              orchestraId: route.query.id,
+              name: state.photoName
+            }
+          })
+          setTimeout(() => {
+            showToast('添加成功')
+          }, 100)
+        } else {
+          await request.post('/api-school/orchestraPhotoAlbum/update', {
+            data: {
+              id: state.selectItem.id,
+              orchestraId: route.query.id,
+              name: state.photoName
+            }
+          })
+          setTimeout(() => {
+            showToast('修改成功')
+          }, 100)
+        }
+        state.status = false
         setTimeout(() => {
-          showToast('添加成功')
-          state.status = false
           state.photoName = null
-        }, 100)
-        setTimeout(() => {
-          state.params.page = 1
-          state.list = []
-          state.listState.dataShow = true // 判断是否有数据
-          state.listState.loading = false
-          state.listState.finished = false
-          getList()
+          onSearch()
         }, 1100)
       } catch {
         //
       }
     }
 
+    const onSearch = () => {
+      state.params.page = 1
+      state.list = []
+      state.listState.dataShow = true // 判断是否有数据
+      state.listState.loading = false
+      state.listState.finished = false
+      getList()
+    }
+
     // 班级列表
     const getList = async () => {
       try {
@@ -100,12 +130,49 @@ export default defineComponent({
       })
     }
 
+    const onRename = async () => {
+      state.photoName = state.selectItem.name
+      state.status = true
+    }
+
+    const onRemove = async () => {
+      showConfirmDialog({
+        message: '您确认删除该相册吗?'
+      }).then(async () => {
+        try {
+          await request.post('/api-school/orchestraPhotoAlbum/remove', {
+            requestType: 'form',
+            data: {
+              id: state.selectItem.id
+            }
+          })
+          setTimeout(() => {
+            showToast('删除成功')
+          }, 100)
+
+          setTimeout(() => {
+            onSearch()
+          }, 1100)
+        } catch {
+          //
+        }
+      })
+    }
+
     onMounted(() => {
       getList()
     })
     return () => (
       <div class={styles.phone}>
-        <Button icon="plus" block class={styles.addPhone} onClick={() => (state.status = true)}>
+        <Button
+          icon="plus"
+          block
+          class={styles.addPhone}
+          onClick={() => {
+            state.status = true
+            state.selectType = 'add'
+          }}
+        >
           新建相册
         </Button>
 
@@ -120,6 +187,17 @@ export default defineComponent({
             <div class={styles.phoneContainer}>
               {state.list.map((item: any) => (
                 <div class={styles.item} onClick={() => onDetail(item)}>
+                  {/* <i class={styles.more}></i> */}
+                  <i
+                    class={styles.more}
+                    onClick={(e: any) => {
+                      e.stopPropagation()
+                      state.oPopover = true
+                      state.selectItem = item
+                      state.selectType = 'update'
+                    }}
+                  ></i>
+
                   {item.coverUrl ? (
                     <Image class={styles.img} src={item.coverUrl} />
                   ) : (
@@ -142,7 +220,7 @@ export default defineComponent({
           <div class={styles.container}>
             <div class={styles.dialogTitle}>
               <i></i>
-              新建相册
+              {state.selectType === 'add' ? '新建相册' : '重命名相册'}
             </div>
             <Field
               class={styles.phoneName}
@@ -169,6 +247,16 @@ export default defineComponent({
             </div>
           </div>
         </Popup>
+
+        <ActionSheet
+          cancelText="取消"
+          v-model:show={state.oPopover}
+          closeOnClickAction
+          actions={[
+            { name: '重命名', callback: () => onRename() },
+            { name: '删除', color: '#F44541', callback: () => onRemove() }
+          ]}
+        />
       </div>
     )
   }

BIN
src/school/orchestra/images/icon_more.png


+ 18 - 19
src/school/train-planning/component/course-preview/index.tsx

@@ -208,24 +208,23 @@ export default defineComponent({
             ))}
           </Tabs>
 
-          {state.courseValue && (
-            <Tabs
-              swipeThreshold={3}
-              class={styles.courseTabs}
-              v-model:active={state.courseValue}
-              lineHeight={0}
-              shrink
-              lazyRender
-              ref={courseTabsRef}
-              onChange={(val: any) => {
-                state.selectCourse = forms.planList.course[val]
-              }}
-            >
-              {state.selectClasses.map((item: any) => (
-                <Tab title={item.className} name={item.classGroupId}></Tab>
-              ))}
-            </Tabs>
-          )}
+          {/* {state.courseValue && ( */}
+          <Tabs
+            swipeThreshold={3}
+            class={styles.courseTabs}
+            v-model:active={state.courseValue}
+            lineHeight={0}
+            shrink
+            ref={courseTabsRef}
+            onChange={(val: any) => {
+              state.selectCourse = forms.planList.course[val]
+            }}
+          >
+            {state.selectClasses.map((item: any) => (
+              <Tab title={item.className} name={item.classGroupId}></Tab>
+            ))}
+          </Tabs>
+          {/* )} */}
         </OSticky>
 
         {state.selectCourse.map((item: any) => (
@@ -290,7 +289,7 @@ export default defineComponent({
             </div>
             <Cell center class={styles.cellTeacher}>
               {{
-                icon: () => <Image src={iconTeacher} class={styles.img} />,
+                icon: () => <Image src={item.teacherAvatar || iconTeacher} class={styles.img} />,
                 title: () => (
                   <div class={styles.teacherInfo}>
                     <p class={styles.teacherName}>{item.teacherName}</p>

+ 1 - 1
src/school/train-planning/component/practice-detail/index.tsx

@@ -243,10 +243,10 @@ export default defineComponent({
           v-model:modelValue={forms.classStatus}
           position="bottom"
           style={{ background: '#f6f6f6' }}
-          destroy
         >
           <PracticeClass
             onClose={() => (forms.classStatus = false)}
+            classType={f.selectItem.classType}
             onConfirm={(val: any) => {
               console.log(val, 'val')
               f.selectItem.classIdList = val

+ 10 - 1
src/school/train-planning/component/practice/index.tsx

@@ -123,10 +123,15 @@ export default defineComponent({
             inputAlign="right"
             placeholder="请选择课程周次"
             readonly
-            isLink
             modelValue={weekFormat(forms.week)}
+            isLink
             onClick={() => {
               forms.weekStatus = true
+
+              // if (!forms.trainStartDate) {
+              //   showToast('请选择课程开始日期')
+              //   return
+              // }
             }}
           />
 
@@ -191,6 +196,10 @@ export default defineComponent({
             onConfirm={(date: any) => {
               forms.calendarStatus = false
               forms.trainStartDate = date.selectedValues.join('-')
+
+              // const days = dayjs(forms.trainStartDate).day()
+              // const selectDays = weekdays[days === 0 ? 6 : days - 1]
+              // forms.week = selectDays.value
             }}
           />
         </Popup>

+ 5 - 4
src/school/train-planning/component/standard/index.tsx

@@ -195,12 +195,8 @@ export default defineComponent({
             label="训练周次"
             placeholder="请选择训练周次"
             modelValue={weekFormat(forms.week)}
-            isLink
             inputAlign="right"
             readonly
-            onClick={() => {
-              forms.weekStatus = true
-            }}
           />
           <Cell
             title="训练次数"
@@ -278,6 +274,11 @@ export default defineComponent({
             onSelect={(date: any) => {
               forms.calendarStatus = false
               forms.trainStartDate = date
+
+              const days = dayjs(date).day()
+              const selectDays = weekdays[days === 0 ? 6 : days - 1]
+              forms.week = selectDays.value
+
               forms.calendarList.forEach((item: any) => {
                 if (dayjs(item.calendarDate).isSame(date)) {
                   forms.timerList = { ...item }

+ 1 - 1
src/school/train-planning/create.ts

@@ -52,7 +52,7 @@ const original = () => {
     classStatus: false, // 班级设置伴学老师
     timerStatus: false, // 时间状态
     skipHoliday: 1, // 是否节假日
-    week: null, // 周次
+    week: null as any, // 周次
     times: 16, // 训练次数
     trainTimer: 120, // 默认120分钟
     classList: [] as any, // 没有设置伴学指导的数据

+ 8 - 1
src/school/train-planning/modal/practice-class/index.tsx

@@ -24,6 +24,12 @@ import OEmpty from '@/components/o-empty'
 
 export default defineComponent({
   name: 'practice-class',
+  props: {
+    classType: {
+      type: String,
+      default: ''
+    }
+  },
   emits: ['close', 'confirm'],
   setup(props, { slots, attrs, emit }) {
     const forms = reactive({
@@ -84,7 +90,8 @@ export default defineComponent({
             page: 1,
             rows: 20,
             schoolId: baseState.user.data.school.id,
-            orchestraId: forms.orchestraId
+            orchestraId: forms.orchestraId,
+            classType: props.classType
             // orchestraType: 'DELIVERY'
           }
         })