h5
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

89 lines
2.8 KiB

<template>
<!-- 审核通过的modal -->
<u-mask :show="data.mode !== 'HIDE'" @click="handleHide">
<view class="modal-content-wrap" @click.stop>
<!-- 通过modal的标题 -->
<view class="modal-content-head"> {{ data.mode === 'RESOLVE' ? '审核通过' : '审核驳回' }} </view>
<view class="modal-content-body">
<!-- 评分 -->
<view class="flex justify-between mb-4" v-show="data.mode === 'RESOLVE'">
<u-number-box v-model="score" size="30" input-width="50" :max="100" :min="0" :step="1"></u-number-box>
<view class="w-32 pt-4">
<u-slider v-model="score" active-color="#34D399" :max="100" :min="0" :step="1"></u-slider>
</view>
</view>
<u-input v-model="commit" type="textarea" :border="true" :auto-height="true" />
<view class="common-list">
<view v-for="item in words" class="leading-12" @click="commit = item">
{{ item }}
</view>
</view>
</view>
<view class="modal-content-foot">
<view class="cancel" @click="handleHide"> 取消 </view>
<view class="confirm" @click="handleSubmit(data.mode)"> 确定 </view>
</view>
</view>
</u-mask>
</template>
<script setup>
import { ref, computed, watch, inject } from 'vue';
import { useStore } from 'vuex';
import { quickWords } from '@/config/deliver';
const props = defineProps({
data: { type: Object, default: {} },
msgId: { default: '', type: String },
});
const emits = defineEmits(['hide', 'submit-end']);
const store = useStore();
const words = computed(() => quickWords[props.data.mode]); // 快捷用语
const projectId = computed(() => store.getters['project/projectId']);
const roleId = computed(() => store.state.role.roleId);
const task = inject('task');
const commit = ref(''); // 提交的信息
const score = ref(100); // 评分
/**
* 提交评审信息
* 提交成功后隐藏modal 重置表单控件
* 给父组件信息 更新值
* @param {string} mode 'RESOLVE'|'REJECT'
*/
async function handleSubmit(mode) {
try {
const deliverRecordId = props.data.deliverRecordId();
const param = {
projectId: projectId.value,
roleId: roleId.value,
deliverRecordId,
type: mode === 'RESOLVE' ? 1 : 2,
remark: commit.value,
score: mode === 'RESOLVE' ? score.value : '',
msgId: task.msgId,
};
await uni.$u.api.checkDeliver(param);
handleHide(); // 隐藏 + 重置
uni.$ui.showToast('审核信息提交成功');
// 通知父组件评审成功 更新信息
emits('submit-end', param);
} catch (error) {
console.error('error: ', error);
uni.$ui.showToast('审核信息提交失败, 请稍后重试');
}
}
// 隐藏及 重置
function handleHide() {
emits('hide');
// 重置相关数据
score.value = 100;
commit.value = '';
}
</script>