|
|
|
<template>
|
|
|
|
<!-- <view class="deliver-container">p-deliver</view> -->
|
|
|
|
<!-- TODO: if 是测试用的 -->
|
|
|
|
<view class="my-2 bg-white p-2 rounded-md relative" @longpress.prevent="showMask = true" v-if="deliverRef">
|
|
|
|
<!-- 插件名称输入和提交 -->
|
|
|
|
<view class="flex item-center justify-between py-3 pl-2" >
|
|
|
|
<!-- <u-input v-model="iptValue" type="text" :border="false" placeholder="请编辑交付物名称" /> -->
|
|
|
|
<!-- TODO: 可能会有多个交付物 需要遍历 或者展示第一个 -->
|
|
|
|
<!-- TODO: 应该是交付物的名称 -->
|
|
|
|
<view class="flex-1">
|
|
|
|
<span class="relative px-1">
|
|
|
|
<u-badge :is-dot="true" is-center v-if="uBadgeShow"></u-badge>
|
|
|
|
{{ task.name }}
|
|
|
|
</span>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<u-button type="primary" size="mini" @click="submit" class="self-center" :disabled="submitState" v-show="!uBadgeShow">提交</u-button>
|
|
|
|
|
|
|
|
<!-- 查看提交历史的按钮 -->
|
|
|
|
<u-icon name="arrow-right" class="ml-3" @click="openDeliverHistory"></u-icon>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<!-- 插件上传方式 -->
|
|
|
|
<view>
|
|
|
|
<u-input v-model="linkValue" type="text" :border="true" placeholder="请输入交付物地址/链接"> </u-input>
|
|
|
|
<view class="mt-3">
|
|
|
|
<u-button size="mini" :plain="true" class="mr-3 btns" @click="paste">粘贴</u-button>
|
|
|
|
<u-button size="mini" :plain="true" class="mr-3 btns" @click="uploadFile">文件</u-button>
|
|
|
|
<u-button size="mini" :plain="true" class="mr-3 btns" @click="uploadPhoto">拍照</u-button>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- 编辑和删除的遮罩层 -->
|
|
|
|
<view class="mask flex items-center justify-center bg-grey" v-show="showMask" @click="showMask = false">
|
|
|
|
<view class="bg-yellow-500 text-white w-12 h-12 text-center leading-12 rounded-w-12 mx-8" @click.stop="showEditModal = true">修改</view>
|
|
|
|
<view class="bg-red-500 text-white w-12 h-12 text-center leading-12 rounded-w-12 mx-8" @click.stop="deleteDeliver">删除</view>
|
|
|
|
<!-- 删除的二次提示modal -->
|
|
|
|
<u-modal v-model="showDeleteModal" :content="content" :show-cancel-button="true" @confirm="confirmDelete"></u-modal>
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<!-- 编辑交付物标题的modal -->
|
|
|
|
<u-mask :show="showEditModal" @click="showEditModal = false">
|
|
|
|
<view class="warp">
|
|
|
|
<view class="rect rounded-md" @tap.stop>
|
|
|
|
<view class="text-center my-7 font-semibold"> 交付物标题名称 </view>
|
|
|
|
<view class="">
|
|
|
|
<u-input :border="true" class="m-5" placeholder="请输入交付物名称" v-model="newInputRef"></u-input>
|
|
|
|
</view>
|
|
|
|
<!-- TODO: 边框 -->
|
|
|
|
<view class="flex justify-around h-12 mt-7 justify-self-stretch boxModalBorder">
|
|
|
|
<view class="leading-12 flex-1 text-center deleteModalBorder" @click="showEditModal = false"> 取消 </view>
|
|
|
|
<view class="text-blue-700 leading-12 flex-1 text-center" @click="confirmEditDeliverName"> 确定 </view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</view>
|
|
|
|
</u-mask>
|
|
|
|
|
|
|
|
<!-- 删除二次提示的modal -->
|
|
|
|
|
|
|
|
<!-- 插件审核人员选择 -->
|
|
|
|
<Reviewer ref="reviewerData"></Reviewer>
|
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
|
|
import { ref, computed} from 'vue';
|
|
|
|
|
|
|
|
const taskRef = defineProps({ task: { type: Object, default: () => {} } })
|
|
|
|
// console.log(taskRef.task.name)
|
|
|
|
|
|
|
|
|
|
|
|
// 插件名称
|
|
|
|
const deliverRef = ref(true); // 交付物插件的显示与销毁
|
|
|
|
const textValue = ref('入职插件V0.8原型输出'); // 插件名的值
|
|
|
|
const linkValue = ref(''); // 链接的值
|
|
|
|
const historyIcon = ref(false); // 查看历史记录的图标
|
|
|
|
const showMask = ref(false); // 编辑和删除页面
|
|
|
|
const showEditModal = ref(false); // 编辑交付物标题的modal
|
|
|
|
const newInputRef = ref(taskRef.task.name); // 修改的插件名的值
|
|
|
|
// const reviewerData = ref(); // 获取选中的审核人
|
|
|
|
const showDeleteModal = ref(false) // 删除二次提示的modal
|
|
|
|
const content = ref('是否确定删除')
|
|
|
|
const uBadgeShow = ref(false) //u-badge的显示与隐藏
|
|
|
|
|
|
|
|
// 判断提交按钮的状态
|
|
|
|
const submitState = computed(() => !linkValue.value);
|
|
|
|
|
|
|
|
|
|
|
|
// 提交后验证链接并修改状态
|
|
|
|
function submit() {
|
|
|
|
const reg = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?$/;
|
|
|
|
if (!reg.test(linkValue.value)) {
|
|
|
|
// 显示toast信息
|
|
|
|
uni.$ui.showToast('请输入正确的链接');
|
|
|
|
} else {
|
|
|
|
|
|
|
|
uBadgeShow.value = true
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// 查看历史记录
|
|
|
|
function openDeliverHistory() {
|
|
|
|
uni.navigateTo({ url: '/pages/submitList/submitList'});
|
|
|
|
}
|
|
|
|
|
|
|
|
// 粘贴上传
|
|
|
|
function paste() {
|
|
|
|
uni.getClipboardData({
|
|
|
|
success(res) {
|
|
|
|
linkValue.value = res.data;
|
|
|
|
},
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// 文件上传
|
|
|
|
|
|
|
|
async function uploadFile(){
|
|
|
|
try{
|
|
|
|
const data = await uni.$upload.chooseAndUpload('https://test.tall.wiki/filedeal/file/upload/multiple',{}, ['.xls', '.xlsx','.zip','.exe','.pdf','.doc','.docx','.ppt','.pptx'] , 'files')
|
|
|
|
// console.log(data[0])
|
|
|
|
linkValue.value = data[0].visitUrl
|
|
|
|
}catch(error){
|
|
|
|
console.error('error: ', error);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// 拍照上传
|
|
|
|
async function uploadPhoto() {
|
|
|
|
|
|
|
|
try{
|
|
|
|
const data = await uni.$upload.chooseAndUpload('https://test.tall.wiki/filedeal/file/upload/multiple',{}, ['.xls', '.xlsx','.zip','.exe','.pdf','.doc','.docx','.ppt','.pptx'] , 'files')
|
|
|
|
// console.log(data[0])
|
|
|
|
linkValue.value = data[0].visitUrl
|
|
|
|
}catch(error){
|
|
|
|
console.error('error: ', error);
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
// 确定修改交付物名称
|
|
|
|
function confirmEditDeliverName() {
|
|
|
|
// TODO: 发请求 请求成功后更新task里的交付物信息
|
|
|
|
if (!newInputRef.value) {
|
|
|
|
//TODO: 提示不能为空
|
|
|
|
uni.$ui.showToast("输入不能为空");
|
|
|
|
}else{
|
|
|
|
// 请求成功 才会清空 请求失败保留
|
|
|
|
showEditModal.value = false
|
|
|
|
showMask.value = false
|
|
|
|
uBadgeShow.value = false
|
|
|
|
newInputRef.value = '';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// 删除交付物按钮
|
|
|
|
|
|
|
|
function deleteDeliver(){
|
|
|
|
showDeleteModal.value = true
|
|
|
|
}
|
|
|
|
// 删除二次确认
|
|
|
|
async function confirmDelete() {
|
|
|
|
// TODO: 删除二次确认
|
|
|
|
// TODO: 确定后 发删除交付物的请求
|
|
|
|
try {
|
|
|
|
showDeleteModal.value = true
|
|
|
|
await uni.$u.api.deleteDeliver();
|
|
|
|
uni.$ui.showToast("删除交付物成功");
|
|
|
|
} catch (error) {
|
|
|
|
console.error('error: ', error);
|
|
|
|
}
|
|
|
|
deliverRef.value = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
|
.box {
|
|
|
|
border-radius: 8px;
|
|
|
|
background: #fff;
|
|
|
|
padding: 16px;
|
|
|
|
overflow: hidden;
|
|
|
|
}
|
|
|
|
|
|
|
|
.warp {
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
height: 80%;
|
|
|
|
}
|
|
|
|
.rect {
|
|
|
|
width: 80%;
|
|
|
|
height: 380rpx;
|
|
|
|
background-color: #fff;
|
|
|
|
}
|
|
|
|
</style>
|