| | |
| | | <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="departmentId" required :borderBottom='false' ref="item1"> |
| | | <up-input v-model="state.publicJob.departmentName" border="none" placeholder="请点击选择部门" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="姓名" prop="name" required :borderBottom='false' ref="item1"> |
| | | <up-input v-model="state.publicJob.name" border="none" placeholder="请填写姓名" readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="金额" prop="planMoney" required :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" required :borderBottom='false' ref="item1"> |
| | | <view class="c-p-b-20"> |
| | | <up-textarea v-model="state.publicJob.planContent" border="none" placeholder="请填写摘要" count |
| | | maxlength='200'></up-textarea> |
| | | </view> |
| | | </up-form-item> |
| | | <up-form-item label="发票" prop="houbufapiaoStatus" required :borderBottom='false' ref="item1"> |
| | | <u-radio-group v-model="state.publicJob.houbufapiaoStatus" placement="row" |
| | | @change="checkboxChange"> |
| | | <u-radio :customStyle="{marginBottom: '8px',marginRight:'8px'}" label="有发票" name="You" |
| | | usedAlone /> |
| | | <u-radio :customStyle="{marginBottom: '8px',marginRight:'8px'}" label="候补发票" |
| | | name="HouBuFaPiao" usedAlone /> |
| | | <u-radio :customStyle="{marginBottom: '8px'}" label="没发票" name="Wu" usedAlone /> |
| | | </u-radio-group> |
| | | </up-form-item> |
| | | <up-form-item label="上传发票" prop="idCardFace" required |
| | | v-if='state.publicJob.houbufapiaoStatus!=="Wu"'> |
| | | <fui-upload immediate :url="`${apiBaseUrl}/api/UpFile/UpdateFile`" ref="uploadF" |
| | | @success="success('Invoice',$event)" @error="errorInvoice" |
| | | @complete="completeInvoice('Invoice',$event)"> |
| | | </fui-upload> |
| | | </up-form-item> |
| | | <up-form-item label="上传附件" prop="idCardFace"> |
| | | <tem-upload-file immediate :url="`${apiBaseUrl}/api/UpFile/UpdateFile`" ref="uploadB" |
| | | @success="success('File',$event)" @error="errorInvoice" |
| | | @complete="completeInvoice('',$event)"> |
| | | </tem-upload-file> |
| | | </up-form-item> |
| | | <view class="c-p-b-134"> |
| | | <view class="content c-p-l-24 c-p-b-24"> |
| | | <up-form-item label="部门" prop="departmentId" required :borderBottom='false' ref="item1"> |
| | | <up-input v-model="state.publicJob.departmentName" border="none" placeholder="请点击选择部门" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="姓名" prop="name" required :borderBottom='false' ref="item1"> |
| | | <up-input v-model="state.publicJob.name" border="none" placeholder="请填写姓名" |
| | | readonly></up-input> |
| | | </up-form-item> |
| | | <up-form-item label="金额" prop="planMoney" required :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" required :borderBottom='false' ref="item1"> |
| | | <!-- <view class="c-p-b-20"> --> |
| | | <up-textarea v-model="state.publicJob.planContent" border="none" height='35' |
| | | placeholder="请填写摘要"></up-textarea> |
| | | <!-- </view> --> |
| | | </up-form-item> |
| | | <up-form-item label="发票" prop="houbufapiaoStatus" required :borderBottom='false' ref="item1"> |
| | | <u-radio-group v-model="state.publicJob.houbufapiaoStatus" placement="row" |
| | | @change="checkboxChange"> |
| | | <u-radio :customStyle="{marginBottom: '8px',marginRight:'8px'}" label="有发票" name="You" |
| | | usedAlone /> |
| | | <u-radio :customStyle="{marginBottom: '8px',marginRight:'8px'}" label="后补发票" |
| | | name="HouBuFaPiao" usedAlone /> |
| | | <u-radio :customStyle="{marginBottom: '8px'}" label="没发票" name="Wu" usedAlone /> |
| | | </u-radio-group> |
| | | </up-form-item> |
| | | <up-form-item label="上传发票" prop="idCardFace" required |
| | | v-if='state.publicJob.houbufapiaoStatus=="You"'> |
| | | <tem-upload-file immediate :url="`https://appimchat.oss-cn-chengdu.aliyuncs.com`" ref="uploadF" |
| | | :formData="state.formData" fileType='all' @success="success('Invoice',$event)" |
| | | @error="errorInvoice" @complete="completeInvoice('Invoice',$event)"> |
| | | </tem-upload-file> |
| | | </up-form-item> |
| | | <up-form-item label="上传附件" prop="idCardFace"> |
| | | <tem-upload-file immediate :url="`https://appimchat.oss-cn-chengdu.aliyuncs.com`" |
| | | ref="uploadB" fileType="all" @success="success('File',$event)" @error="errorInvoice" |
| | | @complete="completeInvoice('',$event)"> |
| | | </tem-upload-file> |
| | | </up-form-item> |
| | | <template v-if="state.publicJob.approvalStatus=='No'"> |
| | | <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"> |
| | | <up-text :text='item.approvalStaff.name'></up-text> |
| | | <up-text :type="item.approvalStatus=='Yes'?'success':'warning'" |
| | | :text="item.approvalStatus=='Yes'?'批准':'不批准'"></up-text> |
| | | </view> |
| | | <view class="chuany-width64"> |
| | | <up-text :text='item.approvalContent'></up-text> |
| | | </view> |
| | | </view> |
| | | <!-- <view class="c-p-t-20"> |
| | | <up-text :type="state.publicJob.approvalStatus=='Yes'?'success':'warning'" |
| | | :text="state.publicJob.approvalStatus=='Yes'?'批准':'不批准'"></up-text> |
| | | </view> --> |
| | | </template> |
| | | </view> |
| | | </view> |
| | | |
| | | </up-form> |
| | | </view> |
| | | |
| | | <view class="tabbtns"> |
| | | <view class="chuany-flex"> |
| | | <up-button color='#fece01' class="text-69" :text="'继续报销'" :loading='isLoading' :loadingText="'提交中'" |
| | | @click="saveOrder('continue')"></up-button> |
| | | <up-button color='#fece01' class="text-69" :text="planId?'修改报销':'提交报销'" :loading='isLoading' |
| | | :loadingText="planId?'修改中':'提交中'" @click="saveOrder"></up-button> |
| | | <up-button type="primary" :text="'保存报销'" :loading='isLoading' :loadingText="'保存中'" |
| | | @click="saveOrder('Uncommitted')" v-if='state.publicJob.approvalStatus=="Uncommitted"'></up-button> |
| | | <up-button color='#fece01' v-if="state.publicJob.approvalStatus=='No'" text="重新申请" :loading='isLoading' |
| | | :loadingText="'申请中'" @click="saveOrder('unApproval',true)"></up-button> |
| | | <up-button color='#fece01' |
| | | v-if="state.publicJob.approvalStatus=='unApproval'||state.publicJob.approvalStatus=='Uncommitted'" |
| | | :text="state.publicJob.approvalStatus!=='Uncommitted'?'修改报销':'提交报销'" :loading='isLoading' |
| | | :loadingText="state.publicJob.approvalStatus!=='Uncommitted'?'修改中':'提交中'" |
| | | @click="saveOrder('unApproval')"></up-button> |
| | | |
| | | </view> |
| | | |
| | | </view> |
| | |
| | | const store = useStore() |
| | | let departList = ref() |
| | | let kemuList = ref() |
| | | let defaultIndex = ref([6]) |
| | | let defaultIndex = ref([0]) |
| | | let planId = ref('') |
| | | let state = reactive({ |
| | | publicJob: { |
| | |
| | | planMoney: '', //金额 |
| | | planContent: '', //摘要 |
| | | houbufapiaoStatus: 'You', //有无发票 |
| | | workPlanAttachments: [] //附件&发票 |
| | | workPlanAttachments: [], //附件&发票 |
| | | approvalStatus: 'Uncommitted' |
| | | }, |
| | | formData: {} |
| | | }) |
| | | onLoad((options) => { |
| | | let data = $db.get('userInfo').userCompany |
| | |
| | | // }) |
| | | // defaultIndex = [index] |
| | | // }) |
| | | |
| | | $api.getKeMuList().then(res => { |
| | | kemuList = [res.data] |
| | | let obj = kemuList[0].find(item => { |
| | | return item.subjectName == '差旅费' |
| | | }) |
| | | state.publicJob.rewardResult = String(obj.keyid) |
| | | state.publicJob.rewardContent = obj.subjectName |
| | | dataPlan(planId.value) |
| | | }) |
| | | }) |
| | |
| | | planMoney: String(res.data.planMoney), //金额 |
| | | planContent: res.data.planContent, //摘要 |
| | | houbufapiaoStatus: res.data.houbufapiaoStatus, //有无发票 |
| | | workPlanAttachments: res.data.workPlanAttachments //附件&发票 |
| | | workPlanAttachments: res.data.workPlanAttachments, //附件&发票 |
| | | approvalStatus: res.data.approvalStatus, |
| | | oaWorkPlanShenpis: res.data.oaWorkPlanShenpis |
| | | } |
| | | state.publicJob.workPlanAttachments.forEach(item => { |
| | | if (item.attachmentType == 1) { |
| | |
| | | const checkboxChange = () => { |
| | | |
| | | } |
| | | const saveOrder = (val) => { |
| | | const saveOrder = (val, flag) => { |
| | | if (state.publicJob.houbufapiaoStatus == "You") { |
| | | let index = state.publicJob.workPlanAttachments.findIndex(item => { |
| | | return item.attachmentType == 1 |
| | |
| | | formRef.value.validate().then(res => { |
| | | isLoading.value = true |
| | | let functionOrder = null |
| | | if (planId.value) { |
| | | if (planId.value && !flag) { |
| | | functionOrder = $api.EditOder |
| | | } else { |
| | | functionOrder = $api.CreatOder |
| | | } |
| | | let oldStatus = state.publicJob.approvalStatus |
| | | val ? state.publicJob.approvalStatus = val : '' |
| | | functionOrder(state.publicJob).then(res => { |
| | | if (res.code == 1) { |
| | | if (editItem) { |
| | | uni.navigateBack() |
| | | } else if (val == 'continue') { |
| | | state.publicJob = { |
| | | departmentId: $db.get('userInfo').oaPermissions.departId, //部门Id |
| | | departmentName: $db.get('userInfo').oaPermissions.departmentName, |
| | | name: $db.get('userInfo').oaPermissions.name, //姓名 |
| | | rewardResult: '', //科目id |
| | | rewardContent: '', //科目名称 |
| | | planMoney: '', //金额 |
| | | planContent: '', //摘要 |
| | | houbufapiaoStatus: 'You', //有无发票 |
| | | workPlanAttachments: [], //附件&发票 |
| | | } |
| | | uploadB.value.urls = [] |
| | | uploadB.value.status = [] |
| | | uploadF.value.urls = [] |
| | | uploadF.value.status = [] |
| | | } else { |
| | | uni.navigateTo({ |
| | | url: '/pages/reimbursement/myreim' |
| | | }) |
| | | } |
| | | $util.showToast({ |
| | | title: editItem ? '修改成功!' : "保存成功!", |
| | | title: state.publicJob.approvalStatus == 'Uncommitted' ? '保存成功!' : |
| | | "提交成功!", |
| | | icon: "success" |
| | | }) |
| | | // if (editItem) { |
| | | // uni.navigateBack() |
| | | // } else if (val == 'continue') { |
| | | state.publicJob = { |
| | | departmentId: $db.get('userInfo').oaPermissions.departId, //部门Id |
| | | departmentName: $db.get('userInfo').oaPermissions.departmentName, |
| | | name: $db.get('userInfo').oaPermissions.name, //姓名 |
| | | rewardResult: '', //科目id |
| | | rewardContent: '', //科目名称 |
| | | planMoney: '', //金额 |
| | | planContent: '', //摘要 |
| | | houbufapiaoStatus: 'You', //有无发票 |
| | | workPlanAttachments: [], //附件&发票 |
| | | approvalStatus: 'Uncommitted', |
| | | } |
| | | uploadB.value.urls = [] |
| | | uploadB.value.status = [] |
| | | uploadF.value.urls = [] |
| | | uploadF.value.status = [] |
| | | // } else { |
| | | // uni.redirectTo({ |
| | | // url: '/pages/reimbursement/myreim' |
| | | // }) |
| | | // } |
| | | |
| | | } else { |
| | | state.publicJob.approvalStatus = oldStatus |
| | | $util.showToast({ |
| | | title: res.error |
| | | }) |
| | |
| | | let obj = {} |
| | | //e.res 为服务器返回数据 |
| | | //上传成功回调,处理服务器返回数据【此处根据实际返回数据进行处理】 |
| | | let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}") |
| | | if (res.code == 1) { |
| | | let res = e.res |
| | | console.log(res); |
| | | // let res = JSON.parse(e.res.data.replace(/\ufeff/g, "") || "{}") |
| | | if (res.statusCode == 200) { |
| | | if (res.data && text == 'Invoice') { |
| | | obj.attachmentType = 1 |
| | | obj.planAttachment = res.data //发票 |
| | |
| | | }) |
| | | uploadF.value.status.push('success') |
| | | uploadF.value.status.length = uploadF.value.urls.length |
| | | console.log(uploadF.value.status); |
| | | } else { |
| | | obj.attachmentType = 2 |
| | | obj.planAttachment = res.data //附件 |
| | |
| | | }) |
| | | uploadB.value.status.push('success') |
| | | uploadB.value.status.length = uploadB.value.urls.length |
| | | console.log(uploadB.value.status); |
| | | } |
| | | state.publicJob.workPlanAttachments.push(obj) |
| | | console.log(state.publicJob.workPlanAttachments); |
| | | } else { |
| | | uni.$u.toast(res.error) |
| | | if (text == 'Invoice') { |
| | |
| | | background-color: #fff; |
| | | } |
| | | |
| | | .u-textarea { |
| | | .up-textarea { |
| | | padding: 0 !important; |
| | | } |
| | | |
| | | .u-form-item__body { |
| | | padding: 5px 0 !important; |
| | | } |
| | | </style> |