| | |
| | | <view class="full-page "> |
| | | <view class="list"> |
| | | <up-form labelPosition="left" :model="state.publicJob" ref="formRef" labelWidth='140rpx'> |
| | | <view class="content c-p-l-24 c-p-b-120"> |
| | | <up-form-item label="申请日期" prop="planStartTime" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="state.publicJob.planStartTime" border="none" placeholder="请点击选择部门" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="部门" prop="departmentId" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="state.publicJob.depart.name" border="none" placeholder="请点击选择部门" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="姓名" prop="name" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="state.publicJob.planPeople" border="none" placeholder="请填写姓名" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="请示类别" prop="name" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="leibie" border="none" placeholder="请填写姓名" readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="金额" prop="planMoney" :borderBottom='false' ref="item1"> |
| | | <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-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 |
| | | <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.planStartTime" border="none" placeholder="请点击选择日期" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="部门" prop="departmentId" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="state.publicJob.depart.name" border="none" placeholder="请点击选择部门" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="姓名" prop="name" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="state.publicJob.planPeople" border="none" placeholder="请填写姓名" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="请示类别" prop="name" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="leibie" border="none" placeholder="请填写姓名" readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="金额" prop="planMoney" :borderBottom='false' ref="item1"> |
| | | <up-input v-model="state.publicJob.planMoney" border="none" placeholder="请填写金额" |
| | | type="digit"></up-input> |
| | | </up-form-item> |
| | | <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" autoHeight |
| | | placeholder="请填写摘要"></up-textarea> |
| | | </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> |
| | | <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> |
| | | <view class="" v-else> |
| | | 未上传附件 |
| | | </view> |
| | | </up-form-item> |
| | | <!-- </view> --> |
| | | </up-form-item> |
| | | <up-form-item label="审批意见" prop="approvalContent" :borderBottom='false' ref="item1" |
| | | v-if="state.publicJob.approvalStatus == 'unApproval'"> |
| | | <!-- <view class="c-p-b-20"> --> |
| | | <up-textarea v-model="state.publicJob.approvalContent" border="none" autoHeight |
| | | placeholder="请填写审批意见"></up-textarea> |
| | | <!-- </view> --> |
| | | </up-form-item> |
| | | <up-form-item label="发票" prop="idCardFace" v-if='state.publicJob.houbufapiaoStatus!=="Wu"'> |
| | | <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> |
| | | {{state.publicJob.houbufapiaoStatus=="Wu"?'无发票':null}} |
| | | </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 v-if="state.publicJob.approvalStatus !== 'unApproval'"> |
| | | <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="item.approvalStatus=='Yes'?'success':'warning'" |
| | | :text="item.approvalStatus=='Yes'?'批准':'不批准'"></u--text> |
| | | </view> |
| | | <view class="chuany-width64"> |
| | | <u-text :text='item.approvalContent'></u-text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="c-p-t-20"> |
| | | <u--text :type="state.publicJob.approvalStatus=='Yes'?'success':'warning'" |
| | | :text="state.publicJob.approvalStatus=='Yes'?'批准':'不批准'"></u--text> |
| | | </view> --> |
| | | </template> |
| | | </view> |
| | | </view> |
| | | </up-form> |
| | | </view> |
| | | <view class="tabbtns"> |
| | | <view class="tabbtns" v-if="state.publicJob.approvalStatus == 'unApproval'"> |
| | | <view class="chuany-flex"> |
| | | <up-button type='success' class="text-69" :text="'批准'" :loading='isLoading' :loadingText="'批准中'" |
| | | <up-button type='success' :text="'批准'" :loading='isLoading' :loadingText="'批准中'" |
| | | @click="saveOrder('Yes')"></up-button> |
| | | <up-button color='#fece01' class="text-69" :text="'不批准'" :loading='isLoading' :loadingText="'提交中'" |
| | | <up-button color='#fece01' :text="'不批准'" :loading='isLoading' :loadingText="'提交中'" |
| | | @click="saveOrder('No')"></up-button> |
| | | </view> |
| | | |
| | | </view> |
| | | <u-picker :show="kemuPicker" :columns="kemuList" keyName="subjectName" @cancel='openKemuPicker' |
| | | :defaultIndex='defaultIndex' @confirm='confirmKemuPicker'></u-picker> |
| | | |
| | | </view> |
| | | </template> |
| | |
| | | invoice: [], |
| | | file: [] |
| | | }) |
| | | let defaultIndex = ref([0]) |
| | | let kemuList = ref() |
| | | let kemuPicker = ref(false) |
| | | onLoad((options) => { |
| | | let data = $db.get('userInfo').userCompany |
| | | role.value = options.role |
| | | detailId.value = options.detailId |
| | | getRolePlaneList() |
| | | $api.getKeMuList().then(res => { |
| | | kemuList = [res.data] |
| | | getRolePlaneList() |
| | | }) |
| | | }) |
| | | |
| | | const formRef = ref(null); |
| | |
| | | getList(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 |
| | |
| | | } |
| | | let obj = { |
| | | oA_WorkPlanId: state.publicJob.keyid, |
| | | approvalStatus |
| | | approvalStatus, |
| | | rewardResult: state.publicJob.rewardResult, |
| | | planContent: state.publicJob.planContent, |
| | | planMoney: state.publicJob.planMoney, |
| | | approvalContent: state.publicJob.approvalContent |
| | | } |
| | | functionOrder(obj).then(res => { |
| | | if (res.code == 1) { |
| | |
| | | .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> |