| | |
| | | <up-input v-model="state.publicJob.planMoney" border="none" placeholder="请填写金额" |
| | | type="digit"></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="科目" prop="rewardContent" :borderBottom='false' ref="item1"> |
| | | <up-form-item label="科目" prop="rewardContent" required :borderBottom='false' ref="item1" |
| | | @click='openKemuPicker'> |
| | | <up-input v-model="state.publicJob.rewardContent" border="none" placeholder="请点击选择科目" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="摘要" prop="planContent" :borderBottom='false' ref="item1"> |
| | | <view class="c-p-b-20"> |
| | | <up-textarea v-model="state.publicJob.planContent" border="none" readonly |
| | | <up-form-item label="摘要" prop="planContent" required :borderBottom='false' ref="item1"> |
| | | <!-- <view class="c-p-b-20"> --> |
| | | <up-textarea v-model="state.publicJob.planContent" border="none" autoHeight |
| | | placeholder="请填写摘要"></up-textarea> |
| | | </view> |
| | | <!-- </view> --> |
| | | </up-form-item> |
| | | <up-form-item label="发票" prop="idCardFace" v-if='state.publicJob.houbufapiaoStatus!=="Wu"'> |
| | | <view class="" v-if="state.invoice&&state.invoice.length>0"> |
| | | <image class="fui-upload__img" v-for="(item,index) in state.invoice" |
| | | :style="{width:200+'rpx',height:200+'rpx'}" :key="item.keyid" :src="item" |
| | | mode="aspectFill" @tap.stop="previewImage(index,'invoice')"></image> |
| | | <view class="fui-upload__wrap" v-if="state.invoice&&state.invoice.length>0"> |
| | | <view class="fui-upload__item" v-for="(item,index) in state.invoice" :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" :style="{width:200+'rpx',height:200+'rpx'}" v-else |
| | | :src="item" mode="aspectFill" |
| | | @tap.stop="previewImage(index,'invoice')"></image> |
| | | </view> |
| | | </view> |
| | | <view class="" v-else> |
| | | 未上传发票 |
| | | </view> |
| | | </up-form-item> |
| | | <up-form-item label="附件" prop="idCardFace"> |
| | | <view class="" v-if="state.file&&state.file.length>0"> |
| | | <image class="fui-upload__img" v-for="(item,index) in state.file" |
| | | :style="{width:200+'rpx',height:200+'rpx'}" :key="item.keyid" :src="item" |
| | | mode="aspectFill" @tap.stop="previewImage(index)"></image> |
| | | <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> |
| | | <up-form-item label="账户" prop="firmAccountId" required :borderBottom='false' ref="item1" |
| | | @click='openzhanghuPicker'> |
| | | <up-input v-model="state.publicJob.firmAccountName" border="none" placeholder="请点击选择账户" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <template v-if="state.publicJob.evaluationStatus=='NotReimbursed'"> |
| | | <up-form-item label="账户类型" prop="firmAccountId" required :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" required :borderBottom='false' ref="item1" |
| | | @click='openzhanghuPicker'> |
| | | <up-input v-model="state.publicJob.firmAccountName" border="none" placeholder="请点击选择账户" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | </template> |
| | | <template v-else> |
| | | <u--text type="success" text="已报销"></u--text> |
| | | </template> |
| | | |
| | | </view> |
| | | </up-form> |
| | | </view> |
| | | <view class="tabbtns"> |
| | | <view class="tabbtns" v-if="state.publicJob.evaluationStatus=='NotReimbursed'"> |
| | | <view class="chuany-flex"> |
| | | <up-button type='success' class="text-69" :text="'付款'" :loading='isLoading' :loadingText="'付款中'" |
| | | @click="saveOrder('Yes')"></up-button> |
| | |
| | | |
| | | </view> |
| | | <u-picker :show="zhanghuPicker" :columns="zhanghuList" keyName="accountName" @cancel='openzhanghuPicker' |
| | | :defaultIndex='defaultIndex' @confirm='confirmzhanghuPicker'></u-picker> |
| | | :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> |
| | |
| | | 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([6]) |
| | | let defaultIndexAccount = ref([0]) |
| | | let state = reactive({ |
| | | publicJob: { |
| | | departmentId: '', //部门Id |
| | |
| | | planContent: '', //摘要 |
| | | houbufapiaoStatus: 'You', //有无发票 |
| | | workPlanAttachments: [], //附件&发票 |
| | | firmAccountId: '' |
| | | firmAccountId: '', |
| | | accountType: '' |
| | | }, |
| | | invoice: [], |
| | | file: [] |
| | | 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) => { |
| | | let data = $db.get('userInfo').userCompany |
| | |
| | | detailId.value = options.detailId |
| | | getRolePlaneList() |
| | | $api.GetFirmAccountList().then(res => { |
| | | zhanghuList = [res.data] |
| | | res.data.forEach(item => { |
| | | state.zhanghuListType.push(item.accountType) |
| | | }) |
| | | state.zhanghuListType = [Array.from(new Set(state.zhanghuListType))] |
| | | allZhanghuList = res.data |
| | | }) |
| | | |
| | | $api.getKeMuList().then(res => { |
| | | kemuList = [res.data] |
| | | |
| | | }) |
| | | |
| | | }) |
| | | |
| | | const formRef = ref(null); |
| | |
| | | |
| | | } |
| | | 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 getRolePlaneList = () => { |
| | | let getList = null |
| | |
| | | $api.caiWuGetPlanInfo(detailId.value).then(res => { |
| | | state.publicJob = res.data |
| | | state.publicJob.planStartTime = $util.formatDate(state.publicJob.planStartTime) |
| | | let index = kemuList[0].findIndex(item => { |
| | | return item.keyid == state.publicJob.rewardResult |
| | | }) |
| | | defaultIndex = [index] |
| | | state.publicJob.workPlanAttachments.forEach(item => { |
| | | if (item.attachmentType == 1) { |
| | | state.invoice.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 |
| | |
| | | // functionOrder = $api.BaoxiaoPlan |
| | | // } |
| | | let obj = { |
| | | oA_WorkPlanId: state.publicJob.keyid, |
| | | firmAccountId: state.publicJob.firmAccountId |
| | | 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 => { |
| | |
| | | .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: 20rpx 20rpx 20rpx 0; |
| | | /* margin-bottom: 20rpx; */ |
| | | /* #ifdef H5 */ |
| | | cursor: pointer; |
| | | /* #endif */ |
| | | position: relative; |
| | | |
| | | /* #ifndef APP-NVUE */ |
| | | box-sizing: border-box; |
| | | /* #endif */ |
| | | } |
| | | </style> |