Browse Source

feat: 审核通过与驳回功能,修改变量和重查代码

deliver
Min5203 4 years ago
parent
commit
db96431312
  1. 1
      CHANGELOG.md
  2. 6
      apis/plugin.js
  3. 12
      common/styles/theme/default.scss
  4. 124
      components/Reviewer/Reviewer.vue
  5. 8
      plugins/p-deliver-checker/p-deliver-checker.vue
  6. 67
      plugins/p-deliver/p-deliver.vue

1
CHANGELOG.md

@ -11,6 +11,7 @@
- | 日历页首页 | [561c8e6](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/561c8e6)
- | 日历页添加 | [1b46a91](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/1b46a91)
- | 审核插件的基本信息展示 | [aa4f17f](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/aa4f17f)
- | 审核插件的通过与驳回功能 | [03a7c35](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/03a7c35)
- | 时间轴接口 | [a95d005](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/a95d005)
- | 时间轴页面 | [e926b75](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/e926b75)
- | 时间轴展示 | [8b1b380](https://101.201.226.163:50022/TALL/TALL-MUI-4/commits/8b1b380)

6
apis/plugin.js

@ -1,13 +1,12 @@
import Config from '@/common/js/config.js';
const apiUrl = Config.apiUrl;
const { apiUrl } = Config;
const defaultwbs = `${apiUrl}/defaultwbs`;
export function setupPlugin(app) {
uni.$u.api = { ...uni.$u.api } || {};
// 获取插件信息
uni.$u.api.getOtherPlugin = param =>
uni.$u.post(`${apiUrl}/pluginshop/plugin/query?pluginId=${param.pluginId}&styleType=${param.styleType}`);
uni.$u.api.getOtherPlugin = param => uni.$u.post(`${apiUrl}/pluginshop/plugin/query?pluginId=${param.pluginId}&styleType=${param.styleType}`);
// 查询子任务
uni.$u.api.findSonTask = param => uni.$u.post(`${defaultwbs}/task/findSonTask`, param);
@ -19,6 +18,7 @@ export function setupPlugin(app) {
uni.$u.api.queryDeliverOfTask = param => uni.$u.post(`${defaultwbs}/deliver/queryDeliverOfTask`, param);
// 检查交付物
uni.$u.api.checkDeliver = param => uni.$u.post(`${defaultwbs}/deliver/checkDeliver`, param);
// v4.0
// 根据任务id获取任务的交付物信息
uni.$u.api.getDeliverByTaskId = param => uni.$u.post(`${defaultwbs}/deliver/getDeliver`, param);
}

12
common/styles/theme/default.scss

@ -4,13 +4,7 @@
.u-card {
font-size: 16px !important;
background-color: #f3f3f3 !important;
.btns{
color: #007aff;
}
.active {
background-color: #2979ff;
color: #ffffff;
}
.mask {
position: absolute;
top: 0;
@ -19,10 +13,10 @@
height: 100%;
z-index: 100;
}
.boxModalBorder{
.box-modal-border{
border-top:1px solid #D1D5DB;
}
.deleteModalBorder{
.delete-modal-border{
border-right:1px solid #D1D5DB ;
}
}

124
components/Reviewer/Reviewer.vue

@ -1,110 +1,44 @@
<template>
<view class="deliverFoot border border-solid border-gray-300 rounded-md mt-3 p-2" @click="changeIcon">
<view class="border border-solid border-gray-300 rounded-md mt-3 p-2" @click="collapsed = !collapsed">
<view class="top flex justify-between">
<view class="mr-3 text-sm">
审核人
</view>
<view class="mr-3 text-sm">审核人</view>
<!-- 展示选择的审核人 -->
<view class="flex approver item-center truncate justify-end flex-1 text-sm" v-show="isUicon">
<view v-for="item in computedDelivers">
<view v-show="item.checked" class="mx-1 relative">
<view class="flex item-center truncate justify-end flex-1 text-sm">
<view v-for="item in showCheckers" class="mx-1">
<!-- <u-badge :is-dot="true" is-center></u-badge> -->
{{item.name}}
</view>
{{ item.name }}
</view>
<view class="mx-1" v-show="checkedDelivers.length > 3">...</view>
</view>
<!-- 点击更换图标 -->
<view>
<u-icon v-if="isUicon" name="arrow-down" ></u-icon>
<u-icon v-else="isUicon" name="arrow-up" ></u-icon>
</view>
<u-icon :name="collapsed ? 'arrow-down' : 'arrow-up'"></u-icon>
</view>
<!-- 隐藏的审核人选项 -->
<view v-show="!isUicon" class="foot mt-2 flex flex-wrap">
<u-button
v-for="item in delivers"
size="mini" class="my-1 mx-2"
@click="item.checked = !item.checked"
:class="item.checked ? 'active' : '' "
>
{{item.name}}
</u-button>
<view v-show="!collapsed" class="foot mt-2 flex flex-wrap">
<u-button v-for="item in delivers" :type="item.checked ? 'primary' : 'default'" size="mini" class="my-1 mx-2" @click="item.checked = !item.checked">{{ item.name }}</u-button>
</view>
</view>
</template>
<script setup>
import {ref , reactive , computed }from 'vue'
//
let isUicon = ref('true')
let arrList = ref([{
checked:true,
name:'冯教授'
}])
//
const delivers = reactive([
{
checked:true,
name:'冯教授'
},
{
checked:false,
name:'陈历珺'
},
{
checked:false,
name:'张野'
},
{
checked:false,
name:'宋瑞芳'
},
{
checked:false,
name:'张斌'
},
{
checked:false,
name:'孙方圆'
}
])
//
const computedDelivers = computed(()=>{
let arr = [];
delivers.forEach((item)=>{
if(item.checked){
arr.push(item)
}
if(arr.length>3){
arr = arr.splice(0,3)
arr[3] = {checked:true,name:'...'}
}
})
return arr
})
//
function changeIcon(){
isUicon.value = !isUicon.value
let arr = [];
delivers.forEach((item)=>{
if(item.checked){
arr.push(item)
}
})
arrList.value = arr
// console.log(arrList.value)
}
// defineExpose({
//   arrList
// })
import { ref, reactive, computed } from 'vue';
import { useStore } from 'vuex';
const store = useStore();
//
const collapsed = ref(true);
// store
//
const delivers = computed(() => store.state.role.members);
//
const checkedDelivers = computed(() => delivers.value.filter(item => item.checked));
//
const showCheckers = computed(() => {
return checkedDelivers.value.length > 3 ? checkedDelivers.value.slice(0, 3) : checkedDelivers.value;
})
</script>
<style lang="scss">
</style>

8
plugins/p-deliver-checker/p-deliver-checker.vue

@ -79,8 +79,8 @@
</view>
</view>
</view>
<view class="flex justify-around h-12 mt-7 justify-self-stretch boxModalBorder">
<view class="leading-12 flex-1 text-center deleteModalBorder" @click="approvedModal = false"> 取消 </view>
<view class="flex justify-around h-12 mt-7 justify-self-stretch box-modal-border">
<view class="leading-12 flex-1 text-center delete-modal-border" @click="approvedModal = false"> 取消 </view>
<view class="text-blue-700 leading-12 flex-1 text-center" @click="confirmAdvice"> 确定 </view>
</view>
</view>
@ -108,8 +108,8 @@
</view>
</view>
</view>
<view class="flex justify-around h-12 mt-7 justify-self-stretch boxModalBorder">
<view class="leading-12 flex-1 text-center deleteModalBorder" @click="rebutModal = false"> 取消 </view>
<view class="flex justify-around h-12 mt-7 justify-self-stretch box-modal-border">
<view class="leading-12 flex-1 text-center delete-modal-border" @click="rebutModal = false"> 取消 </view>
<view class="text-blue-700 leading-12 flex-1 text-center" @click="confirmReject"> 确定 </view>
</view>
</view>

67
plugins/p-deliver/p-deliver.vue

@ -22,13 +22,13 @@
<!-- 插件上传方式 -->
<view>
<view class="linkBox">
<u-input v-model="linkValue" type="text" :border="true" placeholder="请输入交付物地址/链接" class="input"> </u-input>
</view>
<view class="linkBox"
><u-input v-model="linkValue" type="text" :border="true" placeholder="请输入交付物地址/链接" class="input"></u-input
></view>
<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>
<u-button size="mini" :plain="true" type="primary" class="mr-3" @click="paste">粘贴</u-button>
<u-button size="mini" :plain="true" type="primary" class="mr-3" @click="uploadFile">文件</u-button>
<u-button size="mini" :plain="true" type="primary" class="mr-3" @click="uploadPhoto">拍照</u-button>
</view>
</view>
@ -39,30 +39,26 @@
>
<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>
<u-modal v-model="showDeleteModal" :content="content" :show-cancel-button="true" @confirm="confirmDeleDte"></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>
<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 class="flex justify-around h-12 mt-7 justify-self-stretch box-modal-border">
<view class="leading-12 flex-1 text-center delete-modal-border" @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>
<Reviewer/>
</view>
</template>
@ -71,13 +67,12 @@ import { ref, computed } from 'vue';
const props = defineProps({ task: { type: Object, default: () => {} } });
//
const deliverRef = ref(true); //
const linkValue = ref(''); //
const showMask = ref(false); //
const showEditModal = ref(false); // modal
const newInputRef = ref(''); //
const newInputRef = ref(props.task.name); //
const showDeleteModal = ref(false); // modal
const content = '是否确定删除';
const uBadgeShow = ref(false); // u-badge
@ -98,17 +93,31 @@ const submitState = computed(() => !linkValue.value);
console.log('error: ', error);
uni.$ui.showToast('获取交付物信息失败');
}
})();
}());
//
function submit() {
//
function validateDeliverForm() {
const reg = /^http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?$/;
if (!reg.test(linkValue.value)) {
// toast
uni.$ui.showToast('请输入正确的链接');
} else {
uBadgeShow.value = true;
return false;
}
//
if (!checkedDelivers.value || !checkedDelivers.value.length) {
uni.$ui.showToast('请选择检查人');
return false;
}
return true;
}
//
function submit() {
if (!validateDeliverForm()) return;
// else {
// //
// uBadgeShow.value = true;
// }
}
//
@ -164,7 +173,6 @@ function confirmEditDeliverName() {
// TODO:
uni.$ui.showToast('输入不能为空');
} else {
//
showEditModal.value = false;
showMask.value = false;
@ -178,20 +186,19 @@ function confirmEditDeliverName() {
function deleteDeliver() {
showDeleteModal.value = true;
}
//
async function confirmDelete() {
//
async function confirmDeleDte() {
// TODO:
// TODO:
try {
showDeleteModal.value = true;
deliverRef.value = false;
await uni.$u.api.deleteDeliver();
uni.$ui.showToast('删除交付物成功');
} catch (error) {
console.error('error: ', error);
}
deliverRef.value = false;
}
</script>
<style scoped lang="scss">
</style>
<style scoped lang="scss"></style>

Loading…
Cancel
Save