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