feat(content): 정산요율 항목 및 개별 삭제 플래그 추가
- 콘텐츠 리스트 테이블에 정산요율 컬럼 표시(null/빈값은 공란) - 수정 다이얼로그에 정산요율 입력 필드 추가(number, 빈값 허용) - isSettlementRatioDeleted 플래그 추가: 체크 시 입력 비활성화 및 요청 전송 제외 - 수정 요청 시 변경된 값만 전송, 삭제 플래그 true면 settlementRatio 미포함 - created/show/cancel 시 데이터 모델 초기화 로직 반영
This commit is contained in:
@@ -75,6 +75,9 @@
|
|||||||
<th class="text-center">
|
<th class="text-center">
|
||||||
가격
|
가격
|
||||||
</th>
|
</th>
|
||||||
|
<th class="text-center">
|
||||||
|
정산요율
|
||||||
|
</th>
|
||||||
<th class="text-center">
|
<th class="text-center">
|
||||||
한정판
|
한정판
|
||||||
</th>
|
</th>
|
||||||
@@ -157,6 +160,12 @@
|
|||||||
<td v-else>
|
<td v-else>
|
||||||
무료
|
무료
|
||||||
</td>
|
</td>
|
||||||
|
<td>
|
||||||
|
<!-- settlementRatio가 null 또는 빈값이면 빈칸으로 표시 -->
|
||||||
|
<span v-if="item.settlementRatio !== null && item.settlementRatio !== undefined && String(item.settlementRatio).trim() !== ''">
|
||||||
|
{{ item.settlementRatio }}
|
||||||
|
</span>
|
||||||
|
</td>
|
||||||
<td
|
<td
|
||||||
v-if="
|
v-if="
|
||||||
item.totalContentCount > 0 &&
|
item.totalContentCount > 0 &&
|
||||||
@@ -355,6 +364,36 @@
|
|||||||
</v-col>
|
</v-col>
|
||||||
</v-row>
|
</v-row>
|
||||||
</v-card-text>
|
</v-card-text>
|
||||||
|
<v-card-text>
|
||||||
|
<v-row align="center">
|
||||||
|
<v-col cols="4">
|
||||||
|
정산요율
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="8">
|
||||||
|
<v-text-field
|
||||||
|
v-model="audio_content.settlement_ratio"
|
||||||
|
label="정산요율"
|
||||||
|
placeholder="예: 30"
|
||||||
|
type="number"
|
||||||
|
hide-details="auto"
|
||||||
|
:disabled="audio_content.is_settlement_ratio_deleted"
|
||||||
|
/>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-card-text>
|
||||||
|
<v-card-text>
|
||||||
|
<v-row>
|
||||||
|
<v-col cols="4">
|
||||||
|
정산요율 삭제
|
||||||
|
</v-col>
|
||||||
|
<v-col cols="8">
|
||||||
|
<input
|
||||||
|
v-model="audio_content.is_settlement_ratio_deleted"
|
||||||
|
type="checkbox"
|
||||||
|
>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-card-text>
|
||||||
<v-card-text>
|
<v-card-text>
|
||||||
<v-row>
|
<v-row>
|
||||||
<v-col cols="4">
|
<v-col cols="4">
|
||||||
@@ -497,6 +536,8 @@ export default {
|
|||||||
is_adult: false,
|
is_adult: false,
|
||||||
is_comment_available: false,
|
is_comment_available: false,
|
||||||
is_default_cover_image: false,
|
is_default_cover_image: false,
|
||||||
|
is_settlement_ratio_deleted: false,
|
||||||
|
settlement_ratio: "",
|
||||||
};
|
};
|
||||||
await this.getAudioContentThemeList();
|
await this.getAudioContentThemeList();
|
||||||
await this.getAudioContent();
|
await this.getAudioContent();
|
||||||
@@ -531,6 +572,11 @@ export default {
|
|||||||
this.audio_content.is_adult = item.isAdult;
|
this.audio_content.is_adult = item.isAdult;
|
||||||
this.audio_content.is_comment_available = item.isCommentAvailable;
|
this.audio_content.is_comment_available = item.isCommentAvailable;
|
||||||
this.audio_content.is_default_cover_image = false;
|
this.audio_content.is_default_cover_image = false;
|
||||||
|
this.audio_content.is_settlement_ratio_deleted = false;
|
||||||
|
this.audio_content.settlement_ratio =
|
||||||
|
item.settlementRatio !== null && item.settlementRatio !== undefined
|
||||||
|
? String(item.settlementRatio)
|
||||||
|
: "";
|
||||||
|
|
||||||
this.image_preview = item.coverImageUrl;
|
this.image_preview = item.coverImageUrl;
|
||||||
this.cover_image_file = null;
|
this.cover_image_file = null;
|
||||||
@@ -590,6 +636,8 @@ export default {
|
|||||||
is_adult: false,
|
is_adult: false,
|
||||||
is_comment_available: false,
|
is_comment_available: false,
|
||||||
is_default_cover_image: false,
|
is_default_cover_image: false,
|
||||||
|
is_settlement_ratio_deleted: false,
|
||||||
|
settlement_ratio: "",
|
||||||
};
|
};
|
||||||
this.image_preview = null;
|
this.image_preview = null;
|
||||||
this.cover_image_file = null;
|
this.cover_image_file = null;
|
||||||
@@ -629,6 +677,7 @@ export default {
|
|||||||
const request = {
|
const request = {
|
||||||
id: this.audio_content.id,
|
id: this.audio_content.id,
|
||||||
isDefaultCoverImage: this.audio_content.is_default_cover_image,
|
isDefaultCoverImage: this.audio_content.is_default_cover_image,
|
||||||
|
isSettlementRatioDeleted: this.audio_content.is_settlement_ratio_deleted,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (
|
if (
|
||||||
@@ -657,6 +706,21 @@ export default {
|
|||||||
request.isCommentAvailable = this.audio_content.is_comment_available;
|
request.isCommentAvailable = this.audio_content.is_comment_available;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// settlementRatio 처리 (null/빈문자 케이스 포함)
|
||||||
|
const originalRatio =
|
||||||
|
this.selected_audio_content.settlementRatio !== null &&
|
||||||
|
this.selected_audio_content.settlementRatio !== undefined
|
||||||
|
? String(this.selected_audio_content.settlementRatio)
|
||||||
|
: "";
|
||||||
|
const newRatio =
|
||||||
|
this.audio_content.settlement_ratio !== null &&
|
||||||
|
this.audio_content.settlement_ratio !== undefined
|
||||||
|
? String(this.audio_content.settlement_ratio)
|
||||||
|
: "";
|
||||||
|
if (!this.audio_content.is_settlement_ratio_deleted && newRatio !== originalRatio) {
|
||||||
|
request.settlementRatio = newRatio;
|
||||||
|
}
|
||||||
|
|
||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append("request", JSON.stringify(request));
|
formData.append("request", JSON.stringify(request));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user