|
@@ -1,7 +1,14 @@
|
|
|
import { defineComponent, onMounted, reactive } from 'vue';
|
|
|
import styles from './index.module.less';
|
|
|
import Item from './item';
|
|
|
-import { Button, Cell, Field, Skeleton, SkeletonParagraph, showToast } from 'vant';
|
|
|
+import {
|
|
|
+ Button,
|
|
|
+ Cell,
|
|
|
+ Field,
|
|
|
+ Skeleton,
|
|
|
+ SkeletonParagraph,
|
|
|
+ showToast
|
|
|
+} from 'vant';
|
|
|
import MSticky from '@/components/m-sticky';
|
|
|
import MHeader from '@/components/m-header';
|
|
|
import SkeletionDetailItem from './skeletion-detail-item';
|
|
@@ -12,6 +19,7 @@ import {
|
|
|
api_musicGroupQuitAuditReject,
|
|
|
api_musicGroupQuitGetDetail
|
|
|
} from '../api';
|
|
|
+import { STUDENTSTATUS } from '@/helpers/constant';
|
|
|
|
|
|
export default defineComponent({
|
|
|
name: 'schedule-manage-detail',
|
|
@@ -19,12 +27,15 @@ export default defineComponent({
|
|
|
const route = useRoute();
|
|
|
const detailData = reactive({
|
|
|
student: {} as MusicGroupQuitDetailDto,
|
|
|
- skeleton: true
|
|
|
+ skeleton: true,
|
|
|
+ /** 审核意见 */
|
|
|
+ reason: '',
|
|
|
+ musicGroupQuitId: route.query.musicGroupQuitId as any
|
|
|
});
|
|
|
|
|
|
/** 获取退团详情 */
|
|
|
const getDetail = async () => {
|
|
|
- const musicGroupQuitId: string = route.query.musicGroupQuitId as any;
|
|
|
+ const musicGroupQuitId: string = detailData.musicGroupQuitId;
|
|
|
api_musicGroupQuitGetDetail(musicGroupQuitId)
|
|
|
.then(res => {
|
|
|
const data: MusicGroupQuitDetailDto = res?.data || {};
|
|
@@ -37,19 +48,27 @@ export default defineComponent({
|
|
|
|
|
|
/** 通过 */
|
|
|
const musicGroupQuitAuditPass = async () => {
|
|
|
- await api_musicGroupQuitAuditPass(
|
|
|
- detailData.student.musicGroupQuitId,
|
|
|
- detailData.student.reasonEnum
|
|
|
+ if (!detailData.reason) return showToast('请填写审核意见');
|
|
|
+ const res = await api_musicGroupQuitAuditPass(
|
|
|
+ detailData.musicGroupQuitId,
|
|
|
+ detailData.reason
|
|
|
);
|
|
|
- showToast('操作成功')
|
|
|
+ showToast('操作成功');
|
|
|
+ if (res.code === 200) {
|
|
|
+ getDetail();
|
|
|
+ }
|
|
|
};
|
|
|
/** 拒绝 */
|
|
|
const musicGroupQuitAuditReject = async () => {
|
|
|
- await api_musicGroupQuitAuditReject(
|
|
|
- detailData.student.musicGroupQuitId,
|
|
|
- detailData.student.reasonEnum
|
|
|
+ if (!detailData.reason) return showToast('请填写审核意见');
|
|
|
+ const res = await api_musicGroupQuitAuditReject(
|
|
|
+ detailData.musicGroupQuitId,
|
|
|
+ detailData.reason
|
|
|
);
|
|
|
- showToast('操作成功')
|
|
|
+ showToast('操作成功');
|
|
|
+ if (res.code === 200) {
|
|
|
+ getDetail();
|
|
|
+ }
|
|
|
};
|
|
|
onMounted(() => {
|
|
|
getDetail();
|
|
@@ -67,7 +86,7 @@ export default defineComponent({
|
|
|
<SkeletionDetailItem />
|
|
|
</div>
|
|
|
),
|
|
|
- default: () => <Item />
|
|
|
+ default: () => <Item item={detailData.student} />
|
|
|
}}
|
|
|
</Skeleton>
|
|
|
|
|
@@ -84,7 +103,11 @@ export default defineComponent({
|
|
|
<SkeletonParagraph />
|
|
|
</div>
|
|
|
),
|
|
|
- default: () => <div class={styles.info}>{detailData.student.userComment}</div>
|
|
|
+ default: () => (
|
|
|
+ <div class={styles.info}>
|
|
|
+ {STUDENTSTATUS[detailData.student.reasonEnum]}
|
|
|
+ </div>
|
|
|
+ )
|
|
|
}}
|
|
|
</Skeleton>
|
|
|
|
|
@@ -102,9 +125,7 @@ export default defineComponent({
|
|
|
</div>
|
|
|
),
|
|
|
default: () => (
|
|
|
- <div class={styles.info}>
|
|
|
- {detailData.student.userComment}
|
|
|
- </div>
|
|
|
+ <div class={styles.info}>{detailData.student.userComment}</div>
|
|
|
)
|
|
|
}}
|
|
|
</Skeleton>
|
|
@@ -134,6 +155,7 @@ export default defineComponent({
|
|
|
type="textarea"
|
|
|
placeholder="请输入审批意见"
|
|
|
border={false}
|
|
|
+ v-model:modelValue={detailData.reason}
|
|
|
/>
|
|
|
) : (
|
|
|
<div class={styles.info}>
|
|
@@ -146,17 +168,18 @@ export default defineComponent({
|
|
|
</Skeleton>
|
|
|
</div>
|
|
|
|
|
|
- {!detailData.skeleton && detailData.student.status !== 'ING' && (
|
|
|
- <div class={styles.item}>
|
|
|
- <div class={styles.itemTitleDes}>
|
|
|
- <div class={styles.line}></div>
|
|
|
- <div>审批时间</div>
|
|
|
+ {/* {!detailData.skeleton &&
|
|
|
+ ['PASS', 'REJECT'].includes(detailData.student.status) && (
|
|
|
+ <div class={styles.item}>
|
|
|
+ <div class={styles.itemTitleDes}>
|
|
|
+ <div class={styles.line}></div>
|
|
|
+ <div>审批时间</div>
|
|
|
+ </div>
|
|
|
+ <div class={styles.info}>{}</div>
|
|
|
</div>
|
|
|
- <div class={styles.info}>2023-03-24 14:20:32</div>
|
|
|
- </div>
|
|
|
- )}
|
|
|
+ )} */}
|
|
|
|
|
|
- {detailData.skeleton && detailData.student.status === 'ING' && (
|
|
|
+ {!detailData.skeleton && detailData.student.status === 'ING' && (
|
|
|
<div class={[styles.btns, 'van-safe-area-bottom']}>
|
|
|
<Button
|
|
|
class={styles.cancelBtn}
|