feat(master): 创建歌曲
Showing
5 changed files
with
80 additions
and
13 deletions
| ... | @@ -5,7 +5,7 @@ | ... | @@ -5,7 +5,7 @@ |
| 5 | <link rel="shortcut icon" type="image/x-icon" href="https://hising-cdn.hikoon.com/file/20231201/nyaagyzd92c1701419974050pv0hv2xlsme.ico"> | 5 | <link rel="shortcut icon" type="image/x-icon" href="https://hising-cdn.hikoon.com/file/20231201/nyaagyzd92c1701419974050pv0hv2xlsme.ico"> |
| 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0"/> | 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0"/> |
| 7 | <meta name="referrer" content="no-referrer"/> | 7 | <meta name="referrer" content="no-referrer"/> |
| 8 | <title>海星试唱</title> | 8 | <title>泡泡留声</title> |
| 9 | </head> | 9 | </head> |
| 10 | <body> | 10 | <body> |
| 11 | <div id="app"></div> | 11 | <div id="app"></div> | ... | ... |
| ... | @@ -3,7 +3,7 @@ | ... | @@ -3,7 +3,7 @@ |
| 3 | <div class="left-side"> | 3 | <div class="left-side"> |
| 4 | <a-space> | 4 | <a-space> |
| 5 | <img alt="logo" src="//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/dfdba5317c0c20ce20e64fac803d52bc.svg~tplv-49unhts6dw-image.image" /> | 5 | <img alt="logo" src="//p3-armor.byteimg.com/tos-cn-i-49unhts6dw/dfdba5317c0c20ce20e64fac803d52bc.svg~tplv-49unhts6dw-image.image" /> |
| 6 | <a-typography-title :heading="5" :style="{ margin: 0, fontSize: '18px' }"> 海星试唱</a-typography-title> | 6 | <a-typography-title :heading="5" :style="{ margin: 0, fontSize: '18px' }"> 泡泡留声</a-typography-title> |
| 7 | </a-space> | 7 | </a-space> |
| 8 | </div> | 8 | </div> |
| 9 | <ul class="right-side"> | 9 | <ul class="right-side"> | ... | ... |
| ... | @@ -6,7 +6,7 @@ | ... | @@ -6,7 +6,7 @@ |
| 6 | <div class="content"> | 6 | <div class="content"> |
| 7 | <div class="content-inner"> | 7 | <div class="content-inner"> |
| 8 | <div class="login-form-wrapper"> | 8 | <div class="login-form-wrapper"> |
| 9 | <div class="login-form-title">海星试唱</div> | 9 | <div class="login-form-title">泡泡留声</div> |
| 10 | <div class="login-form-sub-title">运营管理后台</div> | 10 | <div class="login-form-sub-title">运营管理后台</div> |
| 11 | <a-card :bordered="true" :hoverable="true" :style="{ width: '360px' }"> | 11 | <a-card :bordered="true" :hoverable="true" :style="{ width: '360px' }"> |
| 12 | <a-tabs v-model:active-key="loginType" :justify-="true" :animation="true"> | 12 | <a-tabs v-model:active-key="loginType" :justify-="true" :animation="true"> | ... | ... |
| ... | @@ -12,9 +12,11 @@ | ... | @@ -12,9 +12,11 @@ |
| 12 | import dayjs, { OpUnitType } from 'dayjs'; | 12 | import dayjs, { OpUnitType } from 'dayjs'; |
| 13 | import { promiseToBoolean } from '@/utils'; | 13 | import { promiseToBoolean } from '@/utils'; |
| 14 | import PushLevelChildrenTable from '@/views/operation/broker/components/push-level-children-table.vue'; | 14 | import PushLevelChildrenTable from '@/views/operation/broker/components/push-level-children-table.vue'; |
| 15 | import usePermission from '@/hooks/permission'; | ||
| 15 | 16 | ||
| 16 | const { get, update, send, rollback, destroy, statusOption } = usePushLevelRecordApi; | 17 | const { get, update, send, rollback, destroy, statusOption } = usePushLevelRecordApi; |
| 17 | const { loading, setLoading } = useLoading(false); | 18 | const { loading, setLoading } = useLoading(false); |
| 19 | const { checkPermission } = usePermission(); | ||
| 18 | const tableRef = ref(); | 20 | const tableRef = ref(); |
| 19 | const filter = ref({ title: '', userName: '', sendBetween: [], status: '' }); | 21 | const filter = ref({ title: '', userName: '', sendBetween: [], status: '' }); |
| 20 | 22 | ||
| ... | @@ -151,15 +153,58 @@ | ... | @@ -151,15 +153,58 @@ |
| 151 | <filter-table-column title="结束时间" data-index="end_at" :width="180" /> | 153 | <filter-table-column title="结束时间" data-index="end_at" :width="180" /> |
| 152 | <filter-table-column title="发送时间" data-index="publish_at" :width="200" /> | 154 | <filter-table-column title="发送时间" data-index="publish_at" :width="200" /> |
| 153 | <enum-table-column title="发送状态" data-index="status" :option="statusOption" :width="120" /> | 155 | <enum-table-column title="发送状态" data-index="status" :option="statusOption" :width="120" /> |
| 154 | <space-table-column title="操作" :width="120"> | 156 | <space-table-column |
| 157 | v-if=" | ||
| 158 | checkPermission([ | ||
| 159 | 'operation-broker-level-record-show', | ||
| 160 | 'operation-broker-level-record-edit', | ||
| 161 | 'operation-broker-level-record-send', | ||
| 162 | 'operation-broker-level-record-delete', | ||
| 163 | ]) | ||
| 164 | " | ||
| 165 | title="操作" | ||
| 166 | :width="120" | ||
| 167 | > | ||
| 155 | <template #default="{ record }: { record: { status: number } }"> | 168 | <template #default="{ record }: { record: { status: number } }"> |
| 156 | <a-link class="link-hover" :hoverable="false" @click="onView(record)">查看</a-link> | 169 | <a-link v-permission="['operation-broker-level-record-show']" class="link-hover" :hoverable="false" @click="onView(record)"> |
| 157 | <a-link v-if="record.status === 0" class="link-hover" :hoverable="false" @click="onUpdate(record)">编辑</a-link> | 170 | 查看 |
| 158 | <a-link v-if="[-1, 3].includes(record.status)" class="link-hover" :hoverable="false" @click="onSend(record)"> | 171 | </a-link> |
| 172 | <a-link | ||
| 173 | v-if="record.status === 0" | ||
| 174 | v-permission="['operation-broker-level-record-edit']" | ||
| 175 | class="link-hover" | ||
| 176 | :hoverable="false" | ||
| 177 | @click="onUpdate(record)" | ||
| 178 | > | ||
| 179 | 编辑 | ||
| 180 | </a-link> | ||
| 181 | <a-link | ||
| 182 | v-if="[-1, 3].includes(record.status)" | ||
| 183 | v-permission="['operation-broker-level-record-send']" | ||
| 184 | class="link-hover" | ||
| 185 | :hoverable="false" | ||
| 186 | @click="onSend(record)" | ||
| 187 | > | ||
| 159 | {{ record.status === -1 ? '重试' : '发送' }} | 188 | {{ record.status === -1 ? '重试' : '发送' }} |
| 160 | </a-link> | 189 | </a-link> |
| 161 | <a-link v-if="record.status === 2" class="link-hover" :hoverable="false" @click="onRollback(record)">撤回</a-link> | 190 | <a-link |
| 162 | <a-link v-if="record.status !== 1" class="link-hover" :hoverable="false" @click="onDelete(record)">删除</a-link> | 191 | v-if="record.status === 2" |
| 192 | v-permission="['operation-broker-level-record-send']" | ||
| 193 | class="link-hover" | ||
| 194 | :hoverable="false" | ||
| 195 | @click="onRollback(record)" | ||
| 196 | > | ||
| 197 | 撤回 | ||
| 198 | </a-link> | ||
| 199 | <a-link | ||
| 200 | v-if="record.status !== 1" | ||
| 201 | v-permission="['operation-broker-level-record-delete']" | ||
| 202 | class="link-hover" | ||
| 203 | :hoverable="false" | ||
| 204 | @click="onDelete(record)" | ||
| 205 | > | ||
| 206 | 删除 | ||
| 207 | </a-link> | ||
| 163 | </template> | 208 | </template> |
| 164 | </space-table-column> | 209 | </space-table-column> |
| 165 | </filter-table> | 210 | </filter-table> | ... | ... |
| ... | @@ -10,6 +10,7 @@ | ... | @@ -10,6 +10,7 @@ |
| 10 | import { Input, TableData, Textarea } from '@arco-design/web-vue'; | 10 | import { Input, TableData, Textarea } from '@arco-design/web-vue'; |
| 11 | import { createFormItemVNode, createFormVNode, createModalVNode } from '@/utils/createVNode'; | 11 | import { createFormItemVNode, createFormVNode, createModalVNode } from '@/utils/createVNode'; |
| 12 | import { promiseToBoolean } from '@/utils'; | 12 | import { promiseToBoolean } from '@/utils'; |
| 13 | import usePermission from '@/hooks/permission'; | ||
| 13 | 14 | ||
| 14 | const { loading, setLoading } = useLoading(false); | 15 | const { loading, setLoading } = useLoading(false); |
| 15 | 16 | ||
| ... | @@ -135,11 +136,32 @@ | ... | @@ -135,11 +136,32 @@ |
| 135 | <filter-table-column data-index="read_at" title="用户行为" :width="100"> | 136 | <filter-table-column data-index="read_at" title="用户行为" :width="100"> |
| 136 | <template #default="{ record }: { record: { read_at?: string } }">{{ record.read_at ? '已查看' : '未查看' }}</template> | 137 | <template #default="{ record }: { record: { read_at?: string } }">{{ record.read_at ? '已查看' : '未查看' }}</template> |
| 137 | </filter-table-column> | 138 | </filter-table-column> |
| 138 | <space-table-column data-index="operation" title="操作" :width="100"> | 139 | <space-table-column |
| 140 | v-if="usePermission().checkPermission(['operation-broker-confirm-record-show', 'operation-broker-confirm-record-send'])" | ||
| 141 | data-index="operation" | ||
| 142 | title="操作" | ||
| 143 | :width="100" | ||
| 144 | > | ||
| 139 | <template #default="{ record }: { record: { status: number } }"> | 145 | <template #default="{ record }: { record: { status: number } }"> |
| 140 | <a-link class="link-hover" :hoverable="false" @click="onView(record)">查看</a-link> | 146 | <a-link v-permission="['operation-broker-confirm-record-show']" class="link-hover" :hoverable="false" @click="onView(record)"> |
| 141 | <a-link v-if="record.status === 1" class="link-hover" :hoverable="false" @click="onRollback(record)">撤销</a-link> | 147 | 查看 |
| 142 | <a-link v-if="[-1, 2].includes(record.status)" class="link-hover" :hoverable="false" @click="onSend(record)"> | 148 | </a-link> |
| 149 | <a-link | ||
| 150 | v-if="record.status === 1" | ||
| 151 | v-permission="['operation-broker-confirm-record-send']" | ||
| 152 | class="link-hover" | ||
| 153 | :hoverable="false" | ||
| 154 | @click="onRollback(record)" | ||
| 155 | > | ||
| 156 | 撤销 | ||
| 157 | </a-link> | ||
| 158 | <a-link | ||
| 159 | v-if="[-1, 2].includes(record.status)" | ||
| 160 | v-permission="['operation-broker-confirm-record-send']" | ||
| 161 | class="link-hover" | ||
| 162 | :hoverable="false" | ||
| 163 | @click="onSend(record)" | ||
| 164 | > | ||
| 143 | {{ record.status === -1 ? '重试' : '发送' }} | 165 | {{ record.status === -1 ? '重试' : '发送' }} |
| 144 | </a-link> | 166 | </a-link> |
| 145 | </template> | 167 | </template> | ... | ... |
-
Please register or sign in to post a comment