Toggle navigation
Toggle navigation
This project
Loading...
Sign in
Hooke
/
tswj
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
hookehuyr
2022-06-20 16:55:30 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
e798407d9ead105b1c9429488a6434bfb57e72de
e798407d
1 parent
dc81e656
✨ feat(审核视频): 审核流程新增调整方言类型功能
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
81 additions
and
57 deletions
src/api/B/audit.js
src/components/BVideoCard/index.vue
src/utils/generateIcons.js
src/utils/generatePackage.js
src/api/B/audit.js
0 → 100644
View file @
e798407
/*
* @Date: 2022-06-20 16:33:35
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-20 16:35:56
* @FilePath: /tswj/src/api/B/audit.js
* @Description: 文件描述
*/
import
{
fn
,
fetch
}
from
'@/api/fn'
;
const
Api
=
{
CHECK_PROD
:
'/srv/?a=check_prod'
,
}
/**
* @description 审核作品
* @param {*} prod_id
* @param {*} status
* @param {*} check_note
* @returns {*} data
*/
export
const
checkProdAPI
=
(
params
)
=>
fn
(
fetch
.
post
(
Api
.
CHECK_PROD
,
params
));
src/components/BVideoCard/index.vue
View file @
e798407
...
...
@@ -18,7 +18,10 @@
<span style="font-size: 1.05rem; vertical-align: middle;">{{ item.name }}</span>
</van-col>
<van-col span="16">
<div style="color: #999999; text-align: right;">{{ item.book_name }} | {{ item.localism_type }}</div>
<div style="color: #999999; text-align: right;">
{{ item.book_name }} |
<span style="color: #11D2B1;" @click="setLocalism">{{ item.localism_type }}</span>
</div>
</van-col>
</van-row>
</div>
...
...
@@ -37,8 +40,7 @@
</div>
</div>
<div v-if="status === 'PROCESS'">
<div v-if="item.status === 'DISABLE'" class="van-hairline--top"
style="padding: 1rem; font-size: 0.85rem;">
<div v-if="item.status === 'DISABLE'" class="van-hairline--top" style="padding: 1rem; font-size: 0.85rem;">
<p style="color: #999999; margin-bottom: 0.25rem;">老师留言:</p>
<p>{{ item.check_note }}</p>
</div>
...
...
@@ -50,7 +52,7 @@
<van-icon name="close" /> 不通过
</div>
</van-col>
<van-col style="padding: 1rem;" @click="onPass()">
<van-col style="padding: 1rem;" @click="onPass(
'pass'
)">
<div class="agree-btn" style="">
<van-icon name="passed" /> 通过
</div>
...
...
@@ -72,8 +74,7 @@
</div>
<div>
<van-field v-model="message" rows="2" autosize label="" type="textarea" maxlength="200"
placeholder="请填写您对小朋友的温馨鼓励" show-word-limit @focus="focusInput"
@blur="blurInput" />
placeholder="请填写您对小朋友的温馨鼓励" show-word-limit @focus="focusInput" @blur="blurInput" />
</div>
<div style="margin-top: 3rem;">
<my-button type="primary" @on-click="handleAudit('disable')">确定</my-button>
...
...
@@ -86,29 +87,26 @@
@confirm="handleAudit('enable')" @cancel="onCancel">
<div style="padding: 1rem; text-align: center;">是否确认审核通过该视频 ?</div>
</van-dialog>
<localism-box :id="item.id" :title="localism_title" :type="trigger_type" :show-localism="showLocalism"
:localism="item.localism_type" @on-close="closeLocalism" @on-submit="submitLocalism" />
</template>
<script setup>
import icon_up from '@images/icon-guanbi@2x.png'
import icon_down from '@images/icon-zhankai@2x.png'
import icon_refuse from '@images/icon-jujue@2x.png'
import icon_apply from '@images/icon-shenhe@2x.png'
import icon_enable from '@images/icon-tongguo@2x.png'
import { icon_up, icon_down, icon_refuse, icon_apply, icon_enable } from '@/utils/generateIcons'
import MyButton from '@/components/MyButton/index.vue'
import { ref, reactive, onMounted, nextTick, watch, onUpdated } from 'vue'
import LocalismBox from '@/components/LocalismBox/index.vue'
import { checkProdAPI } from '@/api/B/audit'
import { ref, onMounted } from 'vue'
import 'mui-player/dist/mui-player.min.css'
import MuiPlayer from 'mui-player'
import axios from '@/utils/axios';
import _ from 'lodash';
import tools from '@/common/tool'
import { styleColor } from '@/constant.js';
import { useRoute, useRouter } from 'vue-router'
import { Toast } from 'vant';
const $route = useRoute();
const $router = useRouter();
const props = defineProps({
item: Object,
...
...
@@ -131,12 +129,16 @@ onMounted(() => {
}, 500);
})
const localism_title = ref('')
// 审核视频通过/不通过弹框
const showNotice = ref(false);
const show = ref(false);
const message = ref('');
const onPass = () => { // 通过审核
show.value = true;
const trigger_type = ref(''); // 点击入口判断,pass为点击通过按钮进入,空值为直接点击语言栏
const onPass = (type) => { // 通过审核
showLocalism.value = true;
localism_title.value = '请确认您的方言类别是否正确'
trigger_type.value = type;
}
const onCancel = () => {
show.value = false;
...
...
@@ -148,53 +150,40 @@ const closeNotice = () => {
const onRefuse = () => { // 不通过审核
showNotice.value = true;
}
const handleAudit = (status) => {
axios.post('/srv/?a=check_prod', {
prod_id: props.item.id,
status,
check_note: message.value,
})
.then(res => {
if (res.data.code === 1) {
const handleAudit = async (status) => {
const { code } = await checkProdAPI({ prod_id: props.item.id, status, check_note: message.value, })
if (code === 1) {
Toast.success('操作成功');
message.value = '';
showNotice.value = false;
show.value = false;
emit('on-click', props.item.id);
} else {
console.warn(res);
if (!res.data.show) return false;
Toast({
icon: 'close',
message: res.data.msg
});
}
})
.catch(err => {
console.error(err);
})
}
// 优化处理输入框弹出遮挡问题
let interval = ''
const focusInput = () => {
window.addEventListener("resize", function () {
if (
document.activeElement.tagName === "INPUT" ||
document.activeElement.tagName === "TEXTAREA"
) {
interval = window.setTimeout(function () {
if ("scrollIntoView" in document.activeElement) {
document.activeElement.scrollIntoView();
} else {
document.activeElement.scrollIntoViewIfNeeded();
}
}, 0);
}
});
}
const blurInput = () => {
clearInterval(interval);
}
// 修改语言种类
const showLocalism = ref(false);
const setLocalism = () => {
trigger_type.value = ''
localism_title.value = '设置方言类别'
showLocalism.value = true;
}
const closeLocalism = () => {
showLocalism.value = false;
}
const submitLocalism = (localism) => {
// 接口保存成功后,静态修改语言类型
props.item.localism_type = localism;
showLocalism.value = false;
// 通过按钮点击进入,需要走通过审核流程。
if (trigger_type.value) {
show.value = true;
}
}
</script>
...
...
src/utils/generateIcons.js
View file @
e798407
...
...
@@ -2,7 +2,7 @@
* @Author: hookehuyr hookehuyr@gmail.com
* @Date: 2022-05-17 11:34:35
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-
01 13:49:40
* @LastEditTime: 2022-06-
20 16:31:28
* @FilePath: /tswj/src/utils/generateIcons.js
* @Description: 图标集合
*/
...
...
@@ -27,6 +27,9 @@ import icon_ranking1 from '@images/1@2x.png'
import
icon_ranking2
from
'@images/2@2x.png'
import
icon_ranking3
from
'@images/3@2x.png'
import
icon_flower
from
'@images/xiaohua@2x.png'
import
icon_refuse
from
'@images/icon-jujue@2x.png'
import
icon_apply
from
'@images/icon-shenhe@2x.png'
import
icon_enable
from
'@images/icon-tongguo@2x.png'
export
{
icon_video
,
...
...
@@ -50,4 +53,7 @@ export {
icon_ranking2
,
icon_ranking3
,
icon_flower
,
icon_refuse
,
icon_apply
,
icon_enable
,
}
...
...
src/utils/generatePackage.js
View file @
e798407
/*
* @Date: 2022-05-17 11:26:03
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-06-20 14:00:13
* @FilePath: /tswj/src/utils/generatePackage.js
* @Description: 文件描述
*/
import
Cookies
from
'js-cookie'
import
$
from
'jquery'
import
_
from
'lodash'
import
axios
from
'@/utils/axios'
;
import
{
storeToRefs
}
from
'pinia'
import
{
mainStore
}
from
'@/store'
import
{
Toast
}
from
'vant'
;
import
{
Toast
,
Dialog
}
from
'vant'
;
import
{
wxInfo
,
hasEllipsis
}
from
'@/utils/tools'
;
import
{
useTitle
}
from
'@vueuse/core'
...
...
@@ -16,6 +23,7 @@ export {
storeToRefs
,
mainStore
,
Toast
,
Dialog
,
wxInfo
,
hasEllipsis
,
useTitle
...
...
Please
register
or
login
to post a comment