<template>
|
<view class="full-page ">
|
<view class="list">
|
<up-form labelPosition="left" :model="state.publicJob" ref="formRef" labelWidth='140rpx'>
|
<view class="c-p-b-134">
|
<view class="content c-p-l-24 c-p-b-24">
|
<up-form-item label="日期" prop="planStartTime" :borderBottom='false' ref="item1">
|
<up-input v-model="state.publicJob.deliverTime" border="none"
|
readonly></up-input>
|
</up-form-item>
|
<up-form-item label="司机" prop="name" :borderBottom='false' ref="item1">
|
<up-input v-model="state.publicJob.driver.name" border="none"
|
readonly></up-input>
|
</up-form-item>
|
<up-form-item label="客户名称" prop="companyName" :borderBottom='false' ref="item1">
|
<up-input v-model="state.publicJob.companyName" border="none" readonly></up-input>
|
</up-form-item>
|
<up-form-item label="联系人" prop="lianxiren" :borderBottom='false' ref="item1">
|
<up-input v-model="state.publicJob.lianxiren" border="none" readonly></up-input>
|
</up-form-item>
|
<up-form-item label="联系电话" prop="dianhua" :borderBottom='false' ref="item1">
|
<up-input v-model="state.publicJob.dianhua" border="none" readonly></up-input>
|
</up-form-item>
|
<up-form-item label="送货地址" prop="dizhi" :borderBottom='false' ref="item1">
|
<up-input v-model="state.publicJob.dizhi" border="none" readonly></up-input>
|
</up-form-item>
|
<up-form-item label="送货事由" prop="remark" :borderBottom='false' ref="item1">
|
<up-textarea v-model="state.publicJob.remark" border="none" autoHeight></up-textarea>
|
</up-form-item>
|
<up-form-item label="送货情况" prop="deliveredstatus" :borderBottom='false' ref="item1">
|
<up-input v-model="state.publicJob.deliveredstatus" border="none" readonly></up-input>
|
</up-form-item>
|
<up-form-item label="意见反馈" prop="wentifankui" :borderBottom='false' ref="item1">
|
<up-textarea v-model="state.publicJob.wentifankui" border="none" autoHeight></up-textarea>
|
</up-form-item>
|
<!-- <up-form-item label="金额" prop="planMoney" :borderBottom='false' ref="item1">
|
<up-input v-model="state.publicJob.planMoney" border="none" readonly placeholder="请填写金额"
|
type="digit"></up-input>
|
</up-form-item>
|
<up-form-item label="科目" prop="rewardContent" :borderBottom='false' ref="item1">
|
<up-input v-model="state.publicJob.rewardContent" border="none" placeholder="请点击选择科目"
|
readonly></up-input>
|
</up-form-item> -->
|
<up-form-item label="送货单" prop="idCardFace">
|
<view class="fui-upload__wrap"
|
v-if="state.publicJob.attachments&&state.publicJob.attachments.length>0">
|
<view class="fui-upload__item" v-for="(item,index) in state.publicJob.attachments"
|
:key="item.keyid">
|
<image class="fui-upload__img" :style="{width:200+'rpx',height:200+'rpx'}"
|
:src="item.planAttachment" mode="aspectFill" @tap.stop="previewImage(index)">
|
</image>
|
</view>
|
</view>
|
<view class="" v-else>
|
{{'暂无'}}
|
</view>
|
</up-form-item>
|
<!-- <up-form-item label="附件" prop="idCardFace">
|
<view class="fui-upload__wrap" v-if="state.file&&state.file.length>0">
|
<view class="fui-upload__item" v-for="(item,index) in state.file" :key="item.keyid">
|
<u-tag :text="item.match(/\/([^\/]*)$/)[1]" size="mini"
|
@click="$util.previewWechat(item)"
|
v-if="$util.checkFileExtensions(item)"></u-tag>
|
<image class="fui-upload__img" v-else :style="{width:200+'rpx',height:200+'rpx'}"
|
:src="item" mode="aspectFill" @tap.stop="previewImage(index)"></image>
|
</view>
|
</view>
|
<view class="" v-else>
|
未上传附件
|
</view>
|
</up-form-item> -->
|
<!-- <template>
|
<view v-for="(item,index) in state.publicJob.oaWorkPlanShenpis" :key="item.index"
|
class="chuany-flex c-p-t-20">
|
<view class="chuany-flex chuany-width36">
|
<u-text :text='item.approvalStaff.name'></u-text>
|
<u-text type="success" text="已批准"></u-text>
|
</view>
|
<view class="chuany-width64">
|
<u-text :text='item.approvalContent'></u-text>
|
</view>
|
</view>
|
</template> -->
|
<!-- <template v-if="state.publicJob.evaluationStatus=='NotReimbursed'">
|
<up-form-item label="账户类型" prop="firmAccountId" :borderBottom='false' ref="item1"
|
@click='openzhanghuPickerType'>
|
<up-input v-model="state.publicJob.accountType" border="none" placeholder="请点击选择账户类型"
|
readonly></up-input>
|
</up-form-item>
|
<up-form-item label="账户" prop="firmAccountId" :borderBottom='false' ref="item1"
|
@click='openzhanghuPicker'>
|
<up-input v-model="state.publicJob.firmAccountName" border="none" placeholder="请点击选择账户"
|
readonly></up-input>
|
</up-form-item>
|
</template> -->
|
|
<!-- <view v-else class="c-p-t-20">
|
<u--text type="success" text="已付款"></u--text>
|
</view> -->
|
|
</view>
|
</view>
|
</up-form>
|
</view>
|
<view class="tabbtns" v-if="state.publicJob.evaluationStatus=='NotReimbursed'">
|
<view class="chuany-flex">
|
<up-button type='success' :text="'付款'" :loading='isLoading' :loadingText="'付款中'"
|
@click="saveOrder('Yes')"></up-button>
|
<!-- <up-button color='#fece01' class="text-69" :text="'不批准'" :loading='isLoading' :loadingText="'提交中'"
|
@click="saveOrder('No')"></up-button> -->
|
</view>
|
|
</view>
|
<u-picker :show="zhanghuPicker" :columns="zhanghuList" keyName="accountName" @cancel='openzhanghuPicker'
|
:defaultIndex='defaultIndexAccount' @confirm='confirmzhanghuPicker'></u-picker>
|
|
<u-picker :show="zhanghuPickerType" :columns="state.zhanghuListType" @cancel='openzhanghuPickerType'
|
@confirm='confirmzhanghuPickerType'></u-picker>
|
|
<u-picker :show="kemuPicker" :columns="kemuList" keyName="subjectName" @cancel='openKemuPicker'
|
:defaultIndex='defaultIndex' @confirm='confirmKemuPicker'></u-picker>
|
|
|
</view>
|
</template>
|
|
<script setup>
|
import {
|
apiBaseUrl
|
} from '@/common/setting/constVarsHelper.js';
|
import {
|
ref,
|
reactive,
|
getCurrentInstance,
|
onMounted,
|
computed
|
} from 'vue';
|
import {
|
onLoad,
|
onShow,
|
onReady,
|
onHide
|
} from "@dcloudio/uni-app";
|
const {
|
$upload,
|
$api,
|
$util,
|
$db
|
} = getCurrentInstance().appContext.config.globalProperties
|
let role = ref()
|
let keyid = ref()
|
let isAdmin = ref()
|
let leibie = '费用报销'
|
let zhanghuPicker = ref(false)
|
let zhanghuList = ref()
|
let allZhanghuList = ref()
|
let zhanghuPickerType = ref(false)
|
let kemuList = ref()
|
let kemuPicker = ref(false)
|
let defaultIndex = ref([0])
|
let defaultIndexAccount = ref([0])
|
let state = reactive({
|
publicJob: {
|
departmentId: '', //部门Id
|
departmentName: '',
|
depart: {},
|
name: '', //姓名
|
rewardResult: '', //科目id
|
rewardContent: '', //科目名称
|
planMoney: '', //金额
|
planContent: '', //摘要
|
houbufapiaoStatus: 'You', //有无发票
|
workPlanAttachments: [], //附件&发票
|
firmAccountId: '',
|
accountType: '',
|
driver:{}
|
},
|
invoice: [],
|
file: [],
|
zhanghuListType: []
|
})
|
let rules = {
|
accountType: {
|
required: true,
|
message: '账户类型不能为空',
|
trigger: ['blur', 'change']
|
},
|
firmAccountId: {
|
required: true,
|
message: '账户不能为空',
|
trigger: ['blur', 'change']
|
},
|
planContent: {
|
required: true,
|
message: '摘要不能为空',
|
trigger: ['blur', 'change']
|
},
|
rewardContent: {
|
required: true,
|
message: '科目不能为空',
|
trigger: ['blur', 'change']
|
}
|
}
|
onLoad((options) => {
|
keyid.value = options.KeyId
|
isAdmin.value = options.isAdmin
|
GetDeliverPlanInfo()
|
})
|
|
const formRef = ref(null);
|
// onReady(() => {
|
// formRef.value.setRules(rules);
|
// })
|
onShow(() => {})
|
// onMounted(() => {
|
// formRef.value.setRules(rules);
|
|
// });
|
let isLoading = ref(false)
|
const previewImage = (item) => {
|
uni.previewImage({
|
current: item,
|
loop: true,
|
urls: state.publicJob.imageList
|
})
|
}
|
const confirmzhanghuPicker = (arr) => {
|
defaultIndexAccount = arr.indexs
|
state.publicJob.firmAccountId = String(arr.value[0].keyid)
|
state.publicJob.firmAccountName = arr.value[0].accountName
|
openzhanghuPicker()
|
}
|
const confirmzhanghuPickerType = (arr) => {
|
defaultIndexAccount = [0]
|
state.publicJob.accountType = arr.value[0]
|
openzhanghuPickerType()
|
}
|
const openzhanghuPicker = () => {
|
if (!state.publicJob.accountType) {
|
return $util.showToast({
|
title: '请先选择账户类型!'
|
})
|
}
|
zhanghuList = allZhanghuList.filter(item => {
|
return item.accountType == state.publicJob.accountType
|
})
|
zhanghuList = [zhanghuList]
|
console.log(zhanghuList);
|
zhanghuPicker.value = !zhanghuPicker.value
|
}
|
const openzhanghuPickerType = () => {
|
zhanghuPickerType.value = !zhanghuPickerType.value
|
}
|
const GetDeliverPlanInfo = () => {
|
let getList = null
|
if (isAdmin.value) {
|
getList = $api.manageGetDeliverPlanInfo
|
} else {
|
getList = $api.workerGetDeliverPlanInfo
|
}
|
getList(keyid.value).then(res => {
|
state.publicJob = res.data
|
state.publicJob.deliverTime = $util.formatDate(state.publicJob.deliverTime)
|
state.publicJob.deliveredstatus = state.publicJob.deliveredstatus == 'Delivered' ? '已完成' : '未完成'
|
state.publicJob.imageList = []
|
state.publicJob.attachments.forEach(item => {
|
state.publicJob.imageList.push(item.planAttachment)
|
})
|
})
|
}
|
const confirmKemuPicker = (arr) => {
|
console.log('----', arr);
|
state.publicJob.rewardResult = String(arr.value[0].keyid)
|
state.publicJob.rewardContent = arr.value[0].subjectName
|
openKemuPicker()
|
}
|
const openKemuPicker = () => {
|
kemuPicker.value = !kemuPicker.value
|
}
|
const saveOrder = (approvalStatus) => {
|
isLoading.value = true
|
let functionOrder = null
|
// if (role.value == 'zhuGuan') {
|
// functionOrder = $api.ApprovalPlan
|
// } else {
|
// functionOrder = $api.BaoxiaoPlan
|
// }
|
let obj = {
|
keyid: state.publicJob.keyid,
|
firmAccountId: state.publicJob.firmAccountId,
|
planContent: state.publicJob.planContent,
|
accountType: state.publicJob.accountType
|
}
|
formRef.value.validate().then(res => {
|
$api.caiWuApprovalPlan(obj).then(res => {
|
if (res.code == 1) {
|
uni.navigateBack()
|
$util.showToast({
|
title: "付款成功!",
|
icon: "success"
|
})
|
} else {
|
$util.showToast({
|
title: res.error
|
})
|
}
|
isLoading.value = false
|
})
|
})
|
|
}
|
</script>
|
|
<style>
|
.list {}
|
|
.u-button {
|
width: 280rpx !important;
|
margin: 0;
|
}
|
|
.content {
|
width: 100%;
|
box-sizing: border-box;
|
background-color: #fff;
|
}
|
|
.u-textarea {
|
padding: 0 !important;
|
}
|
|
.u-form-item__body {
|
padding: 5px 0 !important;
|
}
|
|
.fui-upload__wrap {
|
/* #ifndef APP-NVUE */
|
display: flex;
|
/* #endif */
|
flex-direction: row;
|
flex-wrap: wrap;
|
}
|
|
.fui-upload__item {
|
/* #ifndef APP-NVUE */
|
display: flex;
|
/* #endif */
|
align-items: center;
|
justify-content: center;
|
/* margin-right: 20rpx; */
|
margin: 10rpx 10rpx 10rpx 0;
|
/* margin-bottom: 20rpx; */
|
/* #ifdef H5 */
|
cursor: pointer;
|
/* #endif */
|
position: relative;
|
|
/* #ifndef APP-NVUE */
|
box-sizing: border-box;
|
/* #endif */
|
}
|
</style>
|