From 2667b6698161d233c150c588bcee6e0daafe6f44 Mon Sep 17 00:00:00 2001
From: whycq <10027870+whycq@user.noreply.gitee.com>
Date: 星期三, 15 十一月 2023 14:59:49 +0800
Subject: [PATCH] #
---
pages/business/goBusiness/reimburseOnline.vue | 23 +
pages/business/goBusiness/reimburseOnlineDetl.vue | 117 +---------
pages.json | 9
pages/business/goBusiness/modiReimburseOnlineDetl.vue | 466 ++++++++++++++++++++++++++++++++++++++++++
pages/business/goBusiness/goBusiness.vue | 1
5 files changed, 504 insertions(+), 112 deletions(-)
diff --git a/pages.json b/pages.json
index 83dfd35..1e16a80 100644
--- a/pages.json
+++ b/pages.json
@@ -223,6 +223,15 @@
"navigationBarTitleText" : "娴嬭瘯",
"enablePullDownRefresh" : false
}
+ },
+ {
+ "path" : "pages/business/goBusiness/modiReimburseOnlineDetl",
+ "style" :
+ {
+ "navigationBarTitleText" : "淇敼鎶ラ攢瀹℃壒",
+ "enablePullDownRefresh" : false,
+ "navigationStyle": "custom"
+ }
}
],
"globalStyle": {
diff --git a/pages/business/goBusiness/goBusiness.vue b/pages/business/goBusiness/goBusiness.vue
index fb0f68f..7629127 100644
--- a/pages/business/goBusiness/goBusiness.vue
+++ b/pages/business/goBusiness/goBusiness.vue
@@ -72,7 +72,6 @@
},
methods: {
goDetl(e) {
- console.log(e);
uni.navigateTo({
url: '/pages/business/goBusiness/goBusinessDetil',
success: function(res) {
diff --git a/pages/business/goBusiness/modiReimburseOnlineDetl.vue b/pages/business/goBusiness/modiReimburseOnlineDetl.vue
new file mode 100644
index 0000000..d26d288
--- /dev/null
+++ b/pages/business/goBusiness/modiReimburseOnlineDetl.vue
@@ -0,0 +1,466 @@
+<template>
+ <view>
+ <view class="status_bar">
+ <!-- 杩欓噷鏄姸鎬佹爮 -->
+ </view>
+ <uni-nav-bar left-icon="left" :title="title" @clickLeft="back" @clickRight="scan" :fixed="true"
+ :border="false" rightWidth="160rpx" leftWidth="160rpx"
+ >
+ <!-- <block slot="right">
+ <view class="city">
+ <view>
+ <text class="uni-nav-bar-text">{{user.username}}</text>
+ </view>
+ <uni-icons type="arrowdown" color="#333333" size="20" />
+ </view>
+ </block> -->
+ </uni-nav-bar>
+ <view class="container">
+ <view style="height: 16rpx;"></view>
+ <view class="card" v-for="(item,index) in form">
+ <view class="card-select" v-show="item.inputType != 'table'" style="width: 100%;">
+ <view class="flex">
+ <view class="card-required" v-show="item.required">*</view>
+ <view >{{item.name}}</view>
+ </view>
+ <uni-combox :candidates="orderIds" placeholder="璇烽�夋嫨椤圭洰" v-model="orderId"
+ @input="getOrderId()" v-if="item.inputType == 'chose'">
+ </uni-combox>
+ <view class="flex">
+ <!-- 杈撳叆妗� -->
+ <view v-if="item.inputType != 'table'" style="flex:1">
+ <input type="text" :placeholder="item.placeholder" v-model="item.value" v-if="item.inputType != 'chose'">
+ </view>
+ <!-- 閫夋嫨鎸夐挳 -->
+ <view class="flex" style="width: 50rpx;" v-if="item.inputType == 'select'" @click="showPicker(item.type)">
+ <uni-icons type="right" color="#000" ></uni-icons>
+ </view>
+ </view>
+ </view>
+ <!-- 琛ㄦ牸 -->
+ <view style="display: flex;flex-direction: column;width: 100%;font-size: 24rpx;" v-show="item.inputType == 'table'">
+ <view >{{item.name}}:</view>
+ <view style="width: 100%; overflow-x: scroll;border: 1px solid #bebebe;" v-if="item.inputType == 'table'">
+ <table cellpadding="0" cellspacing="0" style="">
+ <thead>
+ <tr style="background-color: #949494;color: #FFF;">
+ <td class="scroll-item" v-for="(item,index) in table">
+ <view class="item-content">{{item.name}}</view>
+ </td>
+ </tr>
+ </thead>
+ <tbody>
+ <tr v-for="(item,index) in tableData">
+ <td class="scroll-item" v-for="(subitem,i) in table">
+ <view class="item-content" v-if="subitem.type != 'options'">
+ <input type="text" v-model="item[subitem.type]">
+ </view>
+
+ <view v-if="subitem.type == 'options'" style="color: red;" @click="delItem(index)">鍒犻櫎</view>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <view style="height: 16rpx;"></view>
+ <view style="position: sticky;width: 100%;left: 0;text-align: center;height: 70rpx;line-height: 70rpx;" v-show="tableData.length == 0">鏃犳暟鎹�...</view>
+ </view>
+ </view>
+ </view>
+ <view style="height: 16rpx;"></view>
+ <view style="text-align: center;display: flex;align-items: center;justify-content: center;">
+
+ <view style="background-color: #2d8cf0;width: 200rpx;height:50rpx;color: #fff;line-height: 50rpx;border-radius: 15rpx;" @click="addDetl('bottom')">
+ <uni-icons type="plusempty" color="#fff"></uni-icons>
+ <text>娣诲姞鏄庣粏</text>
+ </view>
+ </view>
+
+
+ <view style="height: 16rpx;"></view>
+ </view>
+
+ <view>
+
+ </view>
+
+ <u-picker :show="reimburseId" :columns="reimburseIds" @confirm="reimburseIdConfirm"></u-picker>
+ <u-picker :show="checkData" :columns="checkDatas" @confirm="checkDataConfirm"></u-picker>
+
+ <view>
+ <!-- 鏅�氬脊绐� -->
+ <uni-popup ref="popup">
+ <view class="popup">
+ <view class="pop-title"> 娣诲姞鏄庣粏 </view>
+ <view class="pop-subtitle">
+ 璐圭敤绫诲瀷
+ </view>
+ <view class="pop-body">
+ <u-radio-group v-model="radiovalue2" placement="column" shape="square" @change="popChange">
+ <u-radio :customStyle="{marginBottom: '8px'}" v-for="(item, index) in radiolist2"
+ @change="radioChange" :key="index" :label="item.name" :name="item.name" >
+ </u-radio>
+ </u-radio-group>
+ </view>
+ </view>
+ </uni-popup>
+ </view>
+
+ <view class="floor">
+ <view class="default">閲嶇疆</view>
+ <view class="primary" @click="submit()">淇濆瓨</view>
+ </view>
+ </view>
+</template>
+
+<script>
+import colorGradient from '../../../uni_modules/uview-ui/libs/function/colorGradient';
+ export default {
+ data() {
+ return {
+ title: '淇敼鎶ラ攢瀹℃壒',
+ radiolist2: [{
+ name: '椁愯垂',
+ disabled: false
+ },
+ {
+ name: '浣忓璐�',
+ disabled: false
+ },
+ {
+ name: '杞﹁垂',
+ disabled: false
+ }, {
+ name: '娌硅垂',
+ disabled: false
+ }, {
+ name: '鍏朵粬',
+ disabled: false
+ }
+ ],
+ radiovalue2: '椁愯垂',
+ form: [
+ {name: '椤圭洰鍚�',placeholder: '璇烽�夋嫨',inputType: 'chose',type: 'orderId',value: '',submitVal: ''},
+ {name: '鎶ラ攢绫诲瀷',placeholder: '璇烽�夋嫨',required:true,inputType: 'select',type: 'reimburseId',value: '',submitVal: ''},
+ {name: '鏄惁鍐茶处',placeholder: '璇烽�夋嫨',required:true,inputType: 'select',type: 'checkData',value: '',submitVal: ''},
+ {name: '鎶ラ攢鏄庣粏',placeholder: '璇烽�夋嫨',inputType: 'table'}
+ ],
+ table: [
+ {name:'浜嬬敱',type: 'occupation'},
+ {name:'璐圭敤绫诲瀷',type: 'expenseType$'},
+ {name:'绋庣巼',type: 'taxRate'},
+ {name:'鏈◣鏈竵閲戦',type: 'untaxedAmountInLocalCurrency'},
+ {name:'鏈◣閲戦',type: 'untaxedAmount'},
+ {name:'绋庨',type: 'taxAmount'},
+ {name:'鍙戠エ閲戦',type: 'invoiceValue'},
+ {name:'鍙戠エ鏈竵閲戦',type: 'invoiceAmountInLocalCurrency'},
+ {name:'鎶ラ攢姣斾緥',type: 'reimbursementRatio'},
+ {name:'鎶ラ攢閲戦',type: 'reimbursementAmount'},
+ {name:'鎶ラ攢鏈竵閲戦',type: 'reimbursementAmountInLocalCurrency'},
+ {name:'鍑虹撼纭閲戦',type: 'cashierConfirmationAmount'},
+ {name:'鍒楁敮浜哄憳',type: 'userId$'},
+ {name:'鍒楁敮閮ㄩ棬',type: 'deptId$'},
+ {name:'鏇存柊鏃ユ湡',type: 'updateTime'},
+ {name:'鏇存柊浜哄憳鍚嶅瓧',type: 'updateUserName'},
+ {name:'鎿嶄綔',type: 'options'}
+ ],
+ tableData: [
+ {
+ occupation: 'CRMREIMBURSE1699507854268',
+ expenseType$: '1',
+ taxRate: '0.0',
+ untaxedAmountInLocalCurrency: '1.1',
+ untaxedAmount: '1.3',
+ taxAmount: 'aaa',
+ invoiceValue: '213',
+ invoiceAmountInLocalCurrency: '123213',
+ reimbursementRatio: '0.0',
+ reimbursementAmount: 11,
+ reimbursementAmountInLocalCurrency:12,
+ cashierConfirmationAmount: 123,
+ userId$: '123',
+ deptId$: '璐㈠姟閮�',
+ updateTime: '2023-11-11',
+ updateUserName: 'name'
+ },
+ {
+ occupation: '璇烽�夋嫨',
+ expenseType$: '1',
+ taxRate: '0.0',
+ untaxedAmountInLocalCurrency: '1.1',
+ untaxedAmount: '1.3',
+ taxAmount: 'aaa',
+ invoiceValue: '213',
+ invoiceAmountInLocalCurrency: 'CRMREIMBURSE1699507854268',
+ reimbursementRatio: '0.0',
+ reimbursementAmount: 11,
+ reimbursementAmountInLocalCurrency:12,
+ cashierConfirmationAmount: 123,
+ userId$: '123',
+ deptId$: '璐㈠姟閮�',
+ updateTime: '2023-11-11',
+ updateUserName: 'name'
+ },
+ ],
+ dataRule: [
+ {occupation: ''}
+ ],
+ reimburseId: false,
+ reimburseIds: [['椤圭洰鏈畬鎴�','椤圭洰宸插畬鎴愬湪璐ㄤ繚鏈熷唴','闈為」鐩瀷鎶ラ攢','鍏朵粬']],
+ checkData: false,
+ checkDatas: [['鏄�','鍚�']],
+ orderId: '',
+ orderIds: [],
+ orderIds2: [],
+ orderIdList: [],
+ newDetl: {
+ occupation: '',
+ expenseType$: '1',
+ taxRate: '0.0',
+ untaxedAmountInLocalCurrency: '1.1',
+ untaxedAmount: '1.3',
+ taxAmount: 'aaa',
+ invoiceValue: '213',
+ invoiceAmountInLocalCurrency: '123213',
+ reimbursementRatio: '0.0',
+ reimbursementAmount: 11,
+ reimbursementAmountInLocalCurrency:12,
+ cashierConfirmationAmount: 123,
+ userId$: '123',
+ deptId$: '璐㈠姟閮�',
+ updateTime: '2023-11-11',
+ updateUserName: 'name'
+ },
+ }
+ },
+ onLoad(option) {
+ let _this = this
+ _this.list = []
+ const eventChannel = this.getOpenerEventChannel();
+ eventChannel.on('reimburseOnlineDetl', function(data) {
+ if (data.data == 'add') {
+ _this.title = '娣诲姞鎶ラ攢瀹℃壒'
+ }
+ console.log(data)
+ console.log(_this.title)
+ })
+ this.getOrderId('')
+ },
+ methods: {
+ addDetl(type) {
+ this.type = type
+ // open 鏂规硶浼犲叆鍙傛暟 绛夊悓鍦� uni-popup 缁勪欢涓婄粦瀹� type灞炴��
+ this.$refs.popup.open(type)
+ },
+ popChange(n) {
+ // var detl=JSON.parse(JSON.stringify(this.newDetl)); // 鐗涢��
+ let detl = {...this.newDetl} // 鐗涢��
+ console.log('groupChange', n);
+ console.log(this.radiovalue2);
+ detl.expenseType$ = this.radiovalue2
+ this.tableData.push(detl)
+ this.$refs.popup.close()
+ },
+ radioChange(n) {
+ console.log('radioChange', n);
+ },
+ showPicker(e) {
+ switch(e) {
+ case 'reimburseId':
+ this.reimburseId = true
+ break;
+ case 'orderId':
+ this.orderId = true
+ this.getOrderId();
+ break
+ case 'checkData':
+ this.checkData = true
+ break
+ }
+ },
+ getOrderId(condition) {
+ let _this = this
+ uni.request({
+ url: `${_this.baseUrl}/orderQueryName/auth`,
+ header: { 'token': uni.getStorageSync('token') },
+ method: 'POST',
+ data: {condition: condition},
+ success(res) {
+ res = res.data
+ _this.orderIds = []
+ _this.orderIdList = []
+ if (res.code === 200 && res.data) {
+ _this.orderIds2 = res.data
+ for (let k of res.data) {
+ _this.orderIds.push(k.value)
+ _this.orderIdList.push(k)
+ }
+
+ }
+ }
+
+ })
+ },
+ delItem(index) {
+ this.tableData.splice(index,1)
+ },
+ reimburseIdConfirm(e) {
+ console.log('confirm', e)
+ this.form[1].value = e.value[0]
+ this.form[1].submitVal = e.indexs[0]
+ this.reimburseId = false
+ console.log(this.form);
+ },
+ checkDataConfirm(e) {
+ console.log('confirm', e)
+ this.form[2].value = e.value[0]
+ this.form[2].submitVal = e.indexs[0]
+ this.checkData = false
+ console.log(this.form);
+ },
+ // 琛ㄥ崟鎻愪氦
+ submit() {
+ let param = {
+ orderId: '',
+ checkData: '鍚�',
+ docType: null,
+ reimburseId: null,
+ templateName: '椤圭洰鏈畬鎴�',
+ reimburseOnlineDetls: [
+
+ ]
+ }
+ for (let element of this.orderIdList) {
+ if(element.value == this.orderId) {
+ param.orderId = element.id + ''
+ }
+ }
+ for (let k of this.form) {
+ if (k.type == 'reimburseId') {
+ param.reimburseId = k.submitVal
+ }
+ if (k.type == 'checkData') {
+ param.checkData = k.value
+ }
+ }
+ console.log(this.form);
+ console.log(param);
+ param.reimburseOnlineDetls = this.tableData
+ if (param.reimburseId == null || param.reimburseId === '') {
+ uni.showToast({title: '鎶ラ攢绫诲瀷涓嶈兘涓虹┖', icon: "none", position: 'top'})
+ return
+ }
+ if (param.checkData == '') {
+ uni.showToast({title: '鏄惁鍐茶处涓嶈兘涓虹┖', icon: "none", position: 'top'})
+ return
+ }
+ if (param.reimburseOnlineDetls.length == 0) {
+ uni.showToast({title: '璇锋坊鍔犳姤閿�鏄庣粏', icon: "none", position: 'top'})
+ return
+ }
+ // console.log(this.orderIdList);
+ // console.log(this.orderIds);
+ console.log(param);
+ },
+
+ back() {
+ uni.navigateBack({})
+ },
+ scan() {
+ uni.navigateTo({
+ url: '/pages/authority/authority'
+ })
+ },
+ }
+ }
+</script>
+
+<style>
+ .flex {
+ display: flex;
+ align-items: center;
+ }
+ .flex-column {
+ display: flex;
+ flex-direction: column;
+ }
+ .container {
+ margin: 16rpx;
+ background-color: #fff;
+ }
+ .card {
+ display: flex;
+ margin: 8rpx 16rpx;
+ }
+ .card-select {
+ display: flex;
+ flex-direction: column;
+ }
+ .card-required {
+ color: red;
+ padding-right: 4rpx;
+ }
+ .scroll-item {
+ min-width: 150rpx;
+ padding: 10rpx;
+ text-align: center;
+ }
+ .scroll-item:last-child > .item-content {
+ min-width: 150rpx;
+ border-right: none;
+ }
+ .item-content {
+ min-width: 150rpx;
+ height: 30rpx;
+ line-height: 30rpx;
+ padding-right: 10rpx;
+ border-right: 1px solid #d3d3d3;
+ }
+
+ .popup {
+ background-color: #fff;
+ border-radius: 50rpx 50rpx 0rpx 0rpx;
+ height: 70vh;
+ }
+ .pop-title {
+ width: 100%;
+ height: 100rpx;
+ line-height: 100rpx;
+ text-align: center;
+ font-size: 40rpx;
+ }
+ .pop-subtitle {
+ margin: 32rpx;
+ font-size: 32rpx;
+ }
+ .pop-body {
+ margin: 32rpx;
+ }
+
+ .floor {
+ height: 100rpx;
+ line-height: 100rpx;
+ width: 100%;
+ background-color: #fff;
+ position: fixed;
+ bottom: 0;
+ left: 0;
+ display: flex;
+ align-items: center;
+ text-align: center;
+ letter-spacing: 10rpx;
+ }
+ .default {
+ flex: 2;
+ }
+ .default:active {
+ background-color: #eff0f1;
+ }
+ .primary {
+ flex: 3;
+ background-color: #2d8cf0;
+ color: #fff;
+ }
+ .primary:active {
+ background-color: #007dea;
+ }
+</style>
diff --git a/pages/business/goBusiness/reimburseOnline.vue b/pages/business/goBusiness/reimburseOnline.vue
index c519295..54b8497 100644
--- a/pages/business/goBusiness/reimburseOnline.vue
+++ b/pages/business/goBusiness/reimburseOnline.vue
@@ -23,6 +23,9 @@
</view>
+ <view class="fxbtn">
+ <uni-icons type="plusempty" color="#fff" @click="add()" ></uni-icons>
+ </view>
</view>
</template>
@@ -44,12 +47,14 @@
this.getReimburseOnline()
},
methods: {
- back() {
- uni.navigateBack({})
- },
- scan() {
+ add() {
uni.navigateTo({
- url: '/pages/authority/authority'
+ url: '/pages/business/goBusiness/modiReimburseOnlineDetl',
+ success: function(res) {
+ res.eventChannel.emit('reimburseOnlineDetl', {
+ data: 'add'
+ })
+ }
})
},
goDetl(e) {
@@ -84,6 +89,14 @@
}
})
},
+ back() {
+ uni.navigateBack({})
+ },
+ scan() {
+ uni.navigateTo({
+ url: '/pages/authority/authority'
+ })
+ },
}
}
</script>
diff --git a/pages/business/goBusiness/reimburseOnlineDetl.vue b/pages/business/goBusiness/reimburseOnlineDetl.vue
index 1c27638..84d43b9 100644
--- a/pages/business/goBusiness/reimburseOnlineDetl.vue
+++ b/pages/business/goBusiness/reimburseOnlineDetl.vue
@@ -123,116 +123,12 @@
<view class="item-content">{{item.updateTime}}</view>
</td>
<td class="scroll-item">
- <view class="item-content">{{item.updateUserName}}</view>
+ <view class="item-content-last">{{item.updateUserName}}</view>
</td>
</tr>
</tbody>
</table>
</view>
- <!-- <scroll-view class="box-scroll" scroll-x="true" >
- <view class="scroll-head">
- <view class="scroll-item scroll-head">
- <view class="item-content">浜嬬敱</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">璐圭敤绫诲瀷</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">绋庣巼</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鏈◣鏈竵閲戦</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鏈◣閲戦</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">绋庨</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鍙戠エ閲戦</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鍙戠エ鏈竵閲戦</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鎶ラ攢姣斾緥</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鎶ラ攢閲戦</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鎶ラ攢鏈竵閲戦</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鍑虹撼纭閲戦</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鍒楁敮浜哄憳</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鍒楁敮閮ㄩ棬</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content">鏇存柊鏃ユ湡</view>
- </view>
- <view class="scroll-item scroll-head">
- <view class="item-content-last">鏇存柊浜哄憳鍚嶅瓧</view>
- </view>
- </view>
- <view style="border-top: 1px solid #e7e7e7;" v-for="(item, index) in onlineDetl" :key="index">
- <view class="scroll-item">
- <view class="item-content">{{item.occupation}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.expenseType$}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.taxRate}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.untaxedAmountInLocalCurrency}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.untaxedAmount}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.taxAmount}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.invoiceValue}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.invoiceAmountInLocalCurrency}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.reimbursementRatio}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.reimbursementAmount}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.reimbursementAmountInLocalCurrency}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.cashierConfirmationAmount}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.userId$}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.deptId$}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content">{{item.updateTime}}</view>
- </view>
- <view class="scroll-item">
- <view class="item-content-last">{{item.updateUserName}}</view>
- </view>
- </view>
- <view style="height: 10rpx;"></view>
- </scroll-view> -->
-
</view>
</view>
@@ -255,10 +151,14 @@
</u-steps>
</view>
</view>
+
+ <view style="height: 70rpx;">
+
+ </view>w
<view class="floor">
<view class="wran">鍒犻櫎</view>
- <view class="default">缂栬緫</view>
+ <view class="default" @click="modiReimburse()">缂栬緫</view>
<view class="primary" @click="submit()">瀹℃壒</view>
</view>
</view>
@@ -345,6 +245,11 @@
}
},
methods: {
+ modiReimburse() {
+ uni.navigateTo({
+ url: '/pages/business/goBusiness/modiReimburseOnlineDetl'
+ })
+ },
back() {
uni.navigateBack({})
},
--
Gitblit v1.9.1