Commit 810282754545ae25e0251a8c4c3dcc4950377e23

Authored by 刘淇
1 parent 83c49479

发票

common/common.js
1 1 import md5 from './md5.min.js';
2 2 // 江阴正式环境
3   -var serverUrl = "https://bus.jycrtc.com";
  3 +var serverUrl = "http://test.jycrtc.com:8096";
  4 +// 测试 http://test.jycrtc.com:8096 正式 https://bus.jycrtc.com
  5 +var serverPayUrl = ''
4 6 // 测试环境
5 7 // var serverUrl = "http://test.jycrtc.com:8096";
6 8 //江阴微信小程序appid
... ... @@ -51,7 +53,26 @@ const createCouponOrder = serverUrl + "/business/h5/coupon/createCouponOrder";
51 53 // 商户卡券-使用余额购买
52 54 const accountPay = serverUrl + "/business/h5/pay/busAccount/accountPay";
53 55  
  56 +// 获取发票抬头列表
  57 +const queryCustInvoiceInfoList = serverUrl + "/business/h5/pay/invoice/queryCustInvoiceInfoList";
  58 +// 新增一条客户发票抬头信息
  59 +const insertCustInvoiceInfo = serverUrl + "/business/h5/pay/invoice/insertCustInvoiceInfo";
  60 +// 通过主键更新一条客户发票抬头信息
  61 +const updateCustInvoiceInfo = serverUrl + "/business/h5/pay/invoice/updateCustInvoiceInfo";
  62 +// 删除一条客户发票抬头信息
  63 +const deleteCustInvoiceInfoByID = serverUrl + "/business/h5/pay/invoice/deleteCustInvoiceInfoByID";
54 64  
  65 +// 获取开票订单列表
  66 +const queryRntPayOrderForInvoice = serverUrl + "/business/h5/pay/invoice/queryRntPayOrderForInvoice";
  67 +
  68 +// 记录客户开发票历史信息及开票历史详情信息
  69 +const openTicketForCustInvoiceHisInfo = serverUrl + "/business/h5/pay/invoice/openTicketForCustInvoiceHisInfo";
  70 +
  71 +// 查询客户所有发票历史
  72 +const queryCustInvoiceHistoryList = serverUrl + "/business/h5/pay/invoice/queryCustInvoiceHistoryList";
  73 +
  74 +// 重发邮件
  75 +const resendInvoiceMail = serverUrl + "/business/h5/pay/invoice/resendInvoiceMail";
55 76  
56 77  
57 78  
... ... @@ -223,8 +244,43 @@ var cardTypeFormat = function(num){
223 244 return '折扣券'
224 245 }
225 246 }
  247 +
  248 +var formatDate = function(dataStr) {
  249 + var time = new Date(dataStr);
  250 +
  251 + function timeAdd0(str) {
  252 +
  253 + if (str < 10) {
  254 +
  255 + str = '0' + str;
  256 +
  257 + }
  258 +
  259 + return str
  260 +
  261 + }
  262 +
  263 + var y = time.getFullYear();
  264 +
  265 + var m = time.getMonth() + 1;
  266 +
  267 + var d = time.getDate();
  268 +
  269 + var h = time.getHours();
  270 +
  271 + var mm = time.getMinutes();
  272 +
  273 + var s = time.getSeconds();
  274 +
  275 + return y + '-' + timeAdd0(m) + '-' + timeAdd0(d) + ' '
  276 +
  277 + + timeAdd0(h) + ':' + timeAdd0(mm) + ':' + timeAdd0(s);
  278 +
  279 +
  280 +};
226 281 export default {
227 282 // deviceInfo,
  283 + formatDate,
228 284 hs_wxPay_appId,
229 285 public_orgId,
230 286 appName,
... ... @@ -254,6 +310,23 @@ export default {
254 310 accountPay,
255 311  
256 312  
  313 + // 获取发票抬头列表
  314 + queryCustInvoiceInfoList,
  315 + // 新增一条客户发票抬头信息
  316 + insertCustInvoiceInfo,
  317 + // 通过主键更新一条客户发票抬头信息
  318 + updateCustInvoiceInfo,
  319 + // 删除一条客户发票抬头信息
  320 + deleteCustInvoiceInfoByID,
  321 + // 获取开票订单列表
  322 + queryRntPayOrderForInvoice,
  323 + // 记录客户开发票历史信息及开票历史详情信息
  324 + openTicketForCustInvoiceHisInfo,
  325 + // 查询客户所有发票历史
  326 + queryCustInvoiceHistoryList,
  327 + // 重发邮件
  328 + resendInvoiceMail,
  329 +
257 330 //陈彪接口
258 331 rechargeList,
259 332 walletKindType,
... ...
common/uni.css
... ... @@ -1857,4 +1857,11 @@ checkbox-group label {
1857 1857  
1858 1858 .marginRightArrow{
1859 1859 margin-right: 10px;
1860   -}
1861 1860 \ No newline at end of file
  1861 +}
  1862 +
  1863 +.novipcard_Mid{
  1864 + text-align: center;
  1865 +}
  1866 +
  1867 +
  1868 +
... ...
pages/addTitle/addTitle.vue
1 1 <template>
2   - <view>
3   - <uni-section title="抬头类型" type="line">
4   - <view class="uni-list">
5   - <radio-group @change="radioChange">
6   - <label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" :key="item.value">
7   - <view>
8   - <radio :value="item.value" :checked="index === current" />
9   - </view>
10   - <view style="flex: 1;">{{item.name}}</view>
11   - </label>
12   - </radio-group>
13   - </view>
14   - </uni-section>
15   - <uni-section title="发票详情" type="line">
16   - <view class="paddinglr30">
17   - <!-- 基础用法,不包含校验规则 -->
18   - <uni-forms ref="baseForm" :rules="rules" :modelValue="baseFormData">
19   - <uni-forms-item label="发票抬头" name="invoicetitle" required>
20   - <uni-easyinput v-model="baseFormData.invoicetitle" placeholder="请输入发票抬头" />
21   - </uni-forms-item>
22   - <uni-forms-item label="纳税人识别号" name="userId" required>
23   - <uni-easyinput v-model="baseFormData.userId" placeholder="请输入纳税人识别号" />
24   - </uni-forms-item>
25   - <uni-forms-item label="注册地址">
26   - <uni-easyinput v-model="baseFormData.address" placeholder="请输入注册地址" />
27   - </uni-forms-item>
28   - <uni-forms-item label="注册电话">
29   - <uni-easyinput v-model="baseFormData.telphone" placeholder="请输入注册电话" />
30   - </uni-forms-item>
31   - <uni-forms-item label="开户行">
32   - <uni-easyinput v-model="baseFormData.bank" placeholder="请输入开户行" />
33   - </uni-forms-item>
34   - <uni-forms-item label="开户账号">
35   - <uni-easyinput v-model="baseFormData.bankAccount" placeholder="请输入开户账号" />
36   - </uni-forms-item>
37   - <uni-forms-item label="电子邮箱" name="email" required>
38   - <uni-easyinput v-model="baseFormData.email" placeholder="请输入电子邮箱" />
39   - </uni-forms-item>
40   - <uni-forms-item label="备注">
41   - <uni-easyinput type="textarea" v-model="baseFormData.remark" placeholder="备注" />
42   - </uni-forms-item>
43   - <uni-section title="纸质票邮寄方式" type="line">
44   - <uni-forms-item label="邮寄地址" name="emsAdress" required="">
45   - <uni-easyinput v-model="baseFormData.emsAdress" placeholder="请输入邮寄地址" />
46   - </uni-forms-item>
47   - <uni-forms-item label="联系人">
48   - <uni-easyinput v-model="baseFormData.emsUsername" placeholder="请输入联系人" />
49   - </uni-forms-item>
50   - <uni-forms-item label="联系方式">
51   - <uni-easyinput v-model="baseFormData.emsTel" placeholder="请输入联系方式" />
52   - </uni-forms-item>
53   - </uni-section>
54   - </uni-forms>
  2 + <view>
  3 + <uni-section title="抬头类型" type="line">
  4 + <view class="uni-list">
  5 + <radio-group @change="radioChange">
  6 + <label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" :key="item.value">
  7 + <view>
  8 + <radio :value="item.value" :checked="index === current"/>
  9 + </view>
  10 + <view style="flex: 1;">{{item.name}}</view>
  11 + </label>
  12 + </radio-group>
  13 + </view>
  14 + </uni-section>
55 15  
56   - </view>
57   - </uni-section>
58   - <view class="paddinglr30 margin-top-30 uni-common-mb">
59   - <button type="primary" @click="submit('baseForm')">确认</button>
60   - </view>
61   - </view>
  16 +
  17 + <!--个人-->
  18 + <uni-section title="个人发票详情" type="line" v-if="current==0">
  19 + <view class="paddinglr30 margin-top-30">
  20 + <!-- 基础用法,不包含校验规则 -->
  21 + <uni-forms ref="baseFormPerson" :rules="rulesPerson" :modelValue="baseFormDataPerson">
  22 + <uni-forms-item label="发票抬头" name="invoicetitle" required>
  23 + <uni-easyinput v-model="baseFormDataPerson.invoicetitle" placeholder="请输入发票抬头"/>
  24 + </uni-forms-item>
  25 +
  26 + <uni-forms-item label="电子邮箱" name="email" required>
  27 + <uni-easyinput v-model="baseFormDataPerson.email" placeholder="请输入电子邮箱"/>
  28 + </uni-forms-item>
  29 +
  30 + <uni-forms-item label="备注信息">
  31 + <uni-easyinput type="textarea" v-model="baseFormDataPerson.remark" placeholder="备注"/>
  32 + </uni-forms-item>
  33 + </uni-forms>
  34 +
  35 + </view>
  36 + </uni-section>
  37 +
  38 + <!--企业-->
  39 + <uni-section title="发票详情" type="line" v-if="current==1">
  40 + <view class="paddinglr30 margin-top-30">
  41 + <!-- 基础用法,不包含校验规则 -->
  42 + <uni-forms ref="baseForm" :rules="rules" :modelValue="baseFormData">
  43 + <uni-forms-item label="发票抬头" name="invoicetitle" required>
  44 + <uni-easyinput v-model="baseFormData.invoicetitle" placeholder="请输入发票抬头"/>
  45 + </uni-forms-item>
  46 + <uni-forms-item label="纳税人识别号" name="userId" required>
  47 + <uni-easyinput v-model="baseFormData.userId" placeholder="请输入纳税人识别号"/>
  48 + </uni-forms-item>
  49 + <uni-forms-item label="注册地址">
  50 + <uni-easyinput v-model="baseFormData.address" placeholder="请输入注册地址"/>
  51 + </uni-forms-item>
  52 + <uni-forms-item label="注册电话">
  53 + <uni-easyinput v-model="baseFormData.telphone" placeholder="请输入注册电话"/>
  54 + </uni-forms-item>
  55 + <uni-forms-item label="开户行">
  56 + <uni-easyinput v-model="baseFormData.bank" placeholder="请输入开户行"/>
  57 + </uni-forms-item>
  58 + <uni-forms-item label="开户账号">
  59 + <uni-easyinput v-model="baseFormData.bankAccount" placeholder="请输入开户账号"/>
  60 + </uni-forms-item>
  61 + <uni-forms-item label="电子邮箱" name="email" required>
  62 + <uni-easyinput v-model="baseFormData.email" placeholder="请输入电子邮箱"/>
  63 + </uni-forms-item>
  64 + <uni-forms-item label="备注">
  65 + <uni-easyinput type="textarea" v-model="baseFormData.remark" placeholder="备注"/>
  66 + </uni-forms-item>
  67 + <!--<uni-section title="纸质票邮寄方式" type="line">-->
  68 + <!--<uni-forms-item label="邮寄地址" name="emsAdress" required="">-->
  69 + <!--<uni-easyinput v-model="baseFormData.emsAdress" placeholder="请输入邮寄地址"/>-->
  70 + <!--</uni-forms-item>-->
  71 + <!--<uni-forms-item label="联系人">-->
  72 + <!--<uni-easyinput v-model="baseFormData.emsUsername" placeholder="请输入联系人"/>-->
  73 + <!--</uni-forms-item>-->
  74 + <!--<uni-forms-item label="联系方式">-->
  75 + <!--<uni-easyinput v-model="baseFormData.emsTel" placeholder="请输入联系方式"/>-->
  76 + <!--</uni-forms-item>-->
  77 + <!--</uni-section>-->
  78 + </uni-forms>
  79 +
  80 + </view>
  81 + </uni-section>
  82 + <view class="paddinglr30 margin-top-30 uni-common-mb">
  83 + <button type="primary" @click="submit()">确认</button>
  84 + </view>
  85 + </view>
62 86 </template>
63 87  
64 88 <script>
65   - export default {
66   - data() {
67   - return {
68   - items: [{
69   - value: '1',
70   - name: '个人'
71   - },
72   - {
73   - value: '2',
74   - name: '企业'
75   - },
76   - {
77   - value: '3',
78   - name: '非企业性单位'
79   - },
80   - ],
81   - current: 0,
82   - baseFormData: {
83   - invoicetitle: '',
84   - userId: '',
85   - address: '',
86   - telphone: '',
87   - bank: '',
88   - bankAccount: '',
89   - email: '',
90   - remark: '',
91   - emsAdress: '',
92   - emsUsername: '',
93   - emsTel: '',
94   - },
95   - // 校验规则
96   - rules: {
97   - invoicetitle: {
98   - rules: [{
99   - required: true,
100   - errorMessage: '发票抬头不能为空'
101   - }]
102   - },
103   - userId: {
104   - rules: [{
105   - required: true,
106   - errorMessage: '纳税人识别号不能为空'
107   - }, {
108   - format: 'number',
109   - errorMessage: '纳税人识别号只能输入数字'
110   - }]
111   - },
112   - email: {
113   - rules: [{
114   - required: true,
115   - errorMessage: '电子邮箱不能为空'
116   - }, ]
117   - },
118   - emsAdress: {
119   - rules: [{
120   - required: true,
121   - errorMessage: '邮寄地址不能为空'
122   - }, ]
123   - },
124   - },
125   - };
126   - },
127   - onLoad() {},
  89 +export default {
  90 + data() {
  91 + return {
  92 + items: [{
  93 + value: '1',
  94 + name: '个人'
  95 + },
  96 + {
  97 + value: '2',
  98 + name: '企业'
  99 + },
  100 + // {
  101 + // value: '3',
  102 + // name: '非企业性单位'
  103 + // },
  104 + ],
  105 + current: 0,
  106 + baseFormDataPerson: {
  107 + invoicetitle: '',
  108 + email: '',
  109 + remark: '',
  110 + },
  111 + baseFormData: {
  112 + invoicetitle: '',
  113 + userId: '',
  114 + address: '',
  115 + telphone: '',
  116 + bank: '',
  117 + bankAccount: '',
  118 + email: '',
  119 + remark: '',
  120 + // emsAdress: '',
  121 + // emsUsername: '',
  122 + // emsTel: '',
  123 + },
  124 + // 校验规则
  125 + rulesPerson: {
  126 + invoicetitle: {
  127 + rules: [{
  128 + required: true,
  129 + errorMessage: '发票抬头不能为空'
  130 + }]
  131 + },
  132 +
  133 + email: {
  134 + rules: [{
  135 + required: true,
  136 + errorMessage: '电子邮箱不能为空'
  137 + },]
  138 + },
  139 +
  140 + },
  141 + // 校验规则
  142 + rules: {
  143 + invoicetitle: {
  144 + rules: [{
  145 + required: true,
  146 + errorMessage: '发票抬头不能为空'
  147 + }]
  148 + },
  149 + userId: {
  150 + rules: [{
  151 + required: true,
  152 + errorMessage: '纳税人识别号不能为空'
  153 + }, {
  154 + format: 'number',
  155 + errorMessage: '纳税人识别号只能输入数字'
  156 + }]
  157 + },
  158 + email: {
  159 + rules: [{
  160 + required: true,
  161 + errorMessage: '电子邮箱不能为空'
  162 + },]
  163 + },
  164 + emsAdress: {
  165 + rules: [{
  166 + required: true,
  167 + errorMessage: '邮寄地址不能为空'
  168 + },]
  169 + },
  170 + },
  171 + };
  172 + },
  173 + onLoad() {
  174 + },
  175 + onReady() {
  176 + // 设置自定义表单校验规则,必须在节点渲染完毕后执行
  177 + // this.$refs.baseForm.setRules(this.rules)
  178 + // this.$refs.baseFormPerson.setRules(this.rulesPerson)
  179 + },
  180 + methods: {
  181 + radioChange: function (evt) {
  182 + for (let i = 0; i < this.items.length; i++) {
  183 + if (this.items[i].value === evt.detail.value) {
  184 + this.current = i;
  185 + break;
  186 + }
  187 + }
  188 + console.log(this.current)
  189 + },
  190 + submit() {
  191 + console.log()
  192 + if(this.current==0){
  193 + this.$refs['baseFormPerson'].validate().then(res => {
  194 + console.log('success', res);
128 195  
129   - onReady() {
130   - // 设置自定义表单校验规则,必须在节点渲染完毕后执行
131   - this.$refs.baseForm.setRules(this.rules)
132   - },
  196 + let insertCustInvoiceInfo = this.$common.insertCustInvoiceInfo;
  197 + let jsondata = {
  198 + name: this.baseFormDataPerson.invoicetitle,
  199 + email: this.baseFormDataPerson.email,
  200 + remark: this.baseFormDataPerson.remark,
  201 + isDefault: '1',// 是否默认客户抬头信息,1表示是默认抬头信息,0不是默认抬头信息(默认0)
  202 + invoiceType: '0', // 发票类型(个人、公司),0 表示个人,1表示公司
  203 + };
  204 + uni.request({
  205 + url: insertCustInvoiceInfo,
  206 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  207 + dataType: "json",
  208 + method: "POST",
  209 + success: (res) => {
  210 + console.log(res)
  211 + if (res.data.code == 0) {
  212 + uni.showToast({
  213 + icon:'none',
  214 + title: `新增个人发票抬头成功`
  215 + })
  216 + uni.navigateBack({
  217 + delta:1,//返回层数,2则上上页
  218 + })
  219 + }else{
  220 + uni.showToast({
  221 + icon:'none',
  222 + title: res.data.message
  223 + })
  224 + }
  225 + if(res.code=='1001'){
  226 + uni.showToast({
  227 + icon:'none',
  228 + title: res.message
  229 + })
  230 + }
  231 + }
  232 + })
  233 + }).catch(err => {
  234 + console.log('err', err);
  235 + })
  236 + }
  237 + if(this.current==1){
  238 + this.$refs['baseForm'].validate().then(res => {
  239 + console.log('success', res);
  240 + let insertCustInvoiceInfo = this.$common.insertCustInvoiceInfo;
  241 + let jsondata = {
  242 + name: this.baseFormData.invoicetitle,
  243 + email: this.baseFormData.email,
  244 + remark: this.baseFormData.remark,
  245 + isDefault: '1',// 是否默认客户抬头信息,1表示是默认抬头信息,0不是默认抬头信息(默认0)
  246 + invoiceType: '1', // 发票类型(个人、公司),0 表示个人,1表示公司
  247 + bankName: this.baseFormData.bank,
  248 + taxid: this.baseFormData.userId,
  249 + cardNo: this.baseFormData.bankAccount,
  250 + address: this.baseFormData.address,
  251 + phone: this.baseFormData.telphone,
  252 + };
  253 + uni.request({
  254 + url: insertCustInvoiceInfo,
  255 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  256 + dataType: "json",
  257 + method: "POST",
  258 + success: (res) => {
  259 + console.log(res)
  260 + if (res.data.code == 0) {
  261 + uni.showToast({
  262 + icon:'none',
  263 + title: `新增企业发票抬头成功`
  264 + })
  265 + uni.navigateBack({
  266 + delta:1,//返回层数,2则上上页
  267 + })
  268 + }else{
  269 + uni.showToast({
  270 + icon:'none',
  271 + title: res.data.message
  272 + })
  273 + }
  274 + if(res.code=='1001'){
  275 + uni.showToast({
  276 + icon:'none',
  277 + title: res.message
  278 + })
  279 + }
  280 + }
  281 + })
  282 + }).catch(err => {
  283 + console.log('err', err);
  284 + })
  285 + }
133 286  
134   - methods: {
135   - radioChange: function(evt) {
136   - for (let i = 0; i < this.items.length; i++) {
137   - if (this.items[i].value === evt.detail.value) {
138   - this.current = i;
139   - break;
140   - }
141   - }
142   - },
143   - submit(ref) {
144   - this.$refs[ref].validate().then(res => {
145   - console.log('success', res);
146   - uni.showToast({
147   - title: `校验通过`
148   - })
149   - }).catch(err => {
150   - console.log('err', err);
151   - })
152   - }
153   - },
154   - }
  287 + }
  288 + },
  289 +}
155 290 </script>
156 291  
157 292 <style lang="scss">
... ...
pages/billing/billing.vue
1 1 <template>
2   - <view>
3   - <view class="billing-content">
4   - <view class="uni-title uni-common-mt uni-common-pl">开票类型</view>
5   - <view class="uni-list">
6   - <radio-group @change="typeChange">
7   - <label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" :key="item.value">
8   - <view>
9   - <radio :value="item.value" :checked="index === current" />
10   - </view>
11   - <view>{{item.name}}</view>
12   - </label>
13   - </radio-group>
14   - </view>
15   -
16   - <view class="paddinglr30 bg-white uni-text border-bottom-1 pos-rel" @click="detailClick">
17   - <view class="jy-fix-height34">
18   - <text class="color-black">抬头类型:</text>
19   - <text class="color-black">公司</text>
20   - </view>
21   - <view class="jy-fix-height34">
22   - <text class="color-black">发票抬头:</text>
23   - <text class="color-black">111</text>
24   - </view>
25   - <view class="jy-fix-height34">
26   - <text class="color-black">纳税人识别号:</text>
27   - <text class="color-black">1111</text>
28   - </view>
29   - <view class="jy-fix-height34" v-if="current === 0">
30   - <text class="color-black">电子邮箱:</text>
31   - <text class="color-black">111</text>
32   - </view>
33   - <view class="jy-fix-height34" v-if="current === 1">
34   - <text class="color-black">邮寄地址:</text>
35   - <text class="color-black">北京市海淀区玲珑路中关村产业园15A三层</text>
36   - </view>
37   - <view class="jy-fix-height34" v-if="current === 1">
38   - <text class="color-black">联系方式:</text>
39   - <text class="color-black">王旭 13810587647</text>
40   - </view>
41   - <view class="jy-fix-height34">
42   - <text class="color-black">备注:</text>
43   - <text class="color-black">111</text>
44   - </view>
45   -
46   - <view class="uni-icon pos-abs icon-arrowright uni-icon-arrowright">
47   - </view>
48   - </view>
49   -
50   - <!-- 每项选择 -->
51   - <view class="billing-list">
52   - <checkbox-group name="check" @change="changeCheck" class="check">
53   - <!-- 注意v-for不要设在checkbox-group上 -->
54   - <label class="uni-list paddingl10 pos-rel" v-for="(item, index) in content" :key="item.id">
55   - <view class="jy-fix-height34">
56   - <checkbox :value="item.value" :checked="item.checked" /><text
57   - class="margin-left-5">余额充值</text>
58   - </view>
59   - <view class="jy-fix-height34 paddinglr30 margin-left-5">{{item.name}}</view>
60   - <view class="jy-fix-height34 paddinglr30 margin-left-5">{{item.time}}</view>
61   - <view class="pos-abs billing-money">
62   - {{item.money}}
63   - </view>
64   - </label>
65   - </checkbox-group>
66   - </view>
67   - <view class="billing-total">
68   - 您已选中0笔交易,共0元
69   - </view>
70   - <!-- 全选 -->
71   - <checkbox-group name="allCheck" @change="changeAll">
72   - <label class="billing-all paddinglr30">
73   - <checkbox :value="allCheck.value" :checked="allCheck.checked" /><text>{{allCheck.name}}</text>
74   - <button type="primary" class="billing-submit" @click="billingSubmit">提交发票</button>
75   - </label>
76   - </checkbox-group>
77   -
78   - </view>
79   - </view>
  2 + <view>
  3 + <view class="billing-content">
  4 + <!--<view class="uni-title uni-common-mt uni-common-pl">开票类型</view>-->
  5 + <!--<view class="uni-list">-->
  6 + <!--<radio-group @change="typeChange">-->
  7 + <!--<label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" :key="item.value">-->
  8 + <!--<view>-->
  9 + <!--<radio :value="item.value" :checked="index === current" />-->
  10 + <!--</view>-->
  11 + <!--<view>{{item.name}}</view>-->
  12 + <!--</label>-->
  13 + <!--</radio-group>-->
  14 + <!--</view>-->
  15 +
  16 + <view class="paddinglr30 bg-white uni-text border-bottom-1 pos-rel" @click="detailClick">
  17 + <view class="jy-fix-height34 commonText">
  18 + <text class="color-black">抬头类型:</text>
  19 + <text class="color-black">{{invoiceType==0?'个人':'企业'}}</text>
  20 + </view>
  21 + <view class="jy-fix-height34 commonText">
  22 + <text class="color-black">发票抬头:</text>
  23 + <text class="color-black">{{name}}</text>
  24 + </view>
  25 + <!--<view class="jy-fix-height34 commonText">-->
  26 + <!--<text class="color-black">纳税人识别号:</text>-->
  27 + <!--<text class="color-black">1111</text>-->
  28 + <!--</view>-->
  29 + <view class="jy-fix-height34 commonText" v-if="current === 1">
  30 + <text class="color-black">电子邮箱:</text>
  31 + <text class="color-black">{{email}}</text>
  32 + </view>
  33 + <!--<view class="jy-fix-height34 commonText" v-if="current === 1">-->
  34 + <!--<text class="color-black">邮寄地址:</text>-->
  35 + <!--<text class="color-black ">北京市海淀区玲珑路中关村产业园15A三层北京市海淀区玲珑路中关村产业园15A三层</text>-->
  36 + <!--</view>-->
  37 + <!--<view class="jy-fix-height34 commonText" v-if="current === 1">-->
  38 + <!--<text class="color-black">联系方式:</text>-->
  39 + <!--<text class="color-black">王旭 13810587647</text>-->
  40 + <!--</view>-->
  41 + <view class="jy-fix-height34 commonText">
  42 + <text class="color-black">备注:</text>
  43 + <text class="color-black">{{remark}}</text>
  44 + </view>
  45 +
  46 + <view class="uni-icon pos-abs icon-arrowright uni-icon-arrowright">
  47 + </view>
  48 + </view>
  49 +
  50 + <!-- 每项选择 -->
  51 + <view class="billing-list" v-if="content.length>0">
  52 + <checkbox-group name="check" @change="changeCheck" class="check">
  53 + <!-- 注意v-for不要设在checkbox-group上 -->
  54 + <label class="uni-list paddingl10 pos-rel " v-for="(item, index) in content" :key="item.id">
  55 + <view class="pos-abs billing-check">
  56 + <checkbox :value="item.rltOrderId" :checked="item.checked"/>
  57 + </view>
  58 + <view class="">
  59 + <view class="jy-fix-height34 paddinglr30 margin-left-5" v-if="type=='1'">停车缴费</view>
  60 + <view class="jy-fix-height34 paddinglr30 margin-left-5" v-else-if="type=='2'">会员卡缴费</view>
  61 + <view class="jy-fix-height34 paddinglr30 margin-left-5" v-else>账户充值</view>
  62 +
  63 + <view class="jy-fix-height34 paddinglr30 margin-left-5" v-if="type=='1'">{{item.carNumber}}</view>
  64 + <view class="jy-fix-height34 paddinglr30 margin-left-5" v-else-if="type=='2'">{{item.carNumber}}</view>
  65 + <view class="jy-fix-height34 paddinglr30 margin-left-5" v-else>充值金额</view>
  66 +
  67 +
  68 + <view class="jy-fix-height34 paddinglr30 margin-left-5" v-if="item.terminalSource=='4'">充值渠道:云平台</view>
  69 + <view class="jy-fix-height34 paddinglr30 margin-left-5" v-else-if="item.terminalSource=='11'">充值渠道:微信小程序</view>
  70 + <view class="jy-fix-height34 paddinglr30 margin-left-5" v-else>充值渠道:商户端微信小程序</view>
  71 +
  72 +
  73 + <view class="pos-abs billing-money">
  74 + {{(item.orderActFee/100).toFixed(2)}} 元
  75 + </view>
  76 + </view>
  77 +
  78 + </label>
  79 + </checkbox-group>
  80 + </view>
  81 +
  82 + <view v-else class="novipcard_Mid" style="padding-top: 20px;">
  83 + <image class="novipcard" src="../../static/vipcard/novipcard.png" mode="aspectFit"></image>
  84 + <view class="novipcard_txt">
  85 + 暂无记录
  86 + </view>
  87 +
  88 + </view>
  89 +
  90 + <view class="billing-total">
  91 + 您已选中{{payNum}}笔交易,共{{(moneyTotal/100).toFixed(2)}}元
  92 + </view>
  93 + <!-- 全选 -->
  94 + <checkbox-group name="allCheck" @change="changeAll">
  95 + <label class="billing-all paddinglr30">
  96 + <checkbox :value="allCheck.value" :checked="allCheck.checked"/>
  97 + <text>{{allCheck.name}}</text>
  98 + <button type="primary" class="billing-submit" @click="billingSubmit">提交发票</button>
  99 + </label>
  100 + </checkbox-group>
  101 +
  102 + </view>
  103 + </view>
80 104 </template>
81 105  
82 106 <script>
83   - export default {
84   - data() {
85   - return {
86   - items: [{
87   - value: '1',
88   - name: '增值税电子普通发票',
89   - checked: 'true'
90   - },
91   - {
92   - value: '2',
93   - name: '增值税纸质专用发票',
94   -
95   - }
96   - ],
97   - current: 0,
98   - allCheck: {
99   - name: '全选',
100   - value: 'all',
101   - checked: false
102   - },
103   - content: [{
104   - name: '微信支付',
105   - value: '1',
106   - id: 1,
107   - money: '5000',
108   - time: '2022-01-12',
109   - whether: true
110   - },
111   - {
112   - name: '微信支付',
113   - value: '2',
114   - money: '5000',
115   - time: '2022-01-12',
116   - id: 2,
117   - whether: true
118   - },
119   - {
120   - name: '微信支付',
121   - value: '2',
122   - money: '5000',
123   - time: '2022-01-12',
124   - id: 2,
125   - whether: true
126   - },
127   - {
128   - name: '微信支付',
129   - value: '2',
130   - money: '5000',
131   - time: '2022-01-12',
132   - id: 2,
133   - whether: true
134   - },
135   - {
136   - name: '线下公对公',
137   - value: '3',
138   - money: '5000',
139   - time: '2022-01-12',
140   - id: 3,
141   - whether: true
142   - }
143   - ]
144   -
145   - }
146   - },
147   - methods: {
148   - typeChange: function(evt) {
149   - for (let i = 0; i < this.items.length; i++) {
150   - if (this.items[i].value === evt.detail.value) {
151   - this.current = i;
152   - break;
153   - }
154   - }
155   - },
156   - detailClick() {
157   - uni.navigateTo({
158   - url: '../invoiceTitle/invoiceTitle'
159   -
160   - });
161   - },
162   - // 全选
163   - changeAll: function(e) {
164   - if (e.detail.value.length == 0) {
165   - this.content.map(item => this.$set(item, 'checked', false));
166   - this.$set(this.allCheck, 'checked', false);
167   - } else {
168   - this.content.map(item => this.$set(item, 'checked', true));
169   - this.$set(this.allCheck, 'checked', true);
170   - }
171   - },
172   - // 多选
173   - changeCheck: function(e) {
174   - var items = this.content;
175   - var len = this.content.length;
176   - var values = e.detail.value;
177   - // console.log(values)
178   - for (var i = 0; i < len; i++) {
179   - var item = items[i];
180   - if (values.includes(item.value)) {
181   - this.$set(item, 'checked', true);
182   - } else {
183   - this.$set(item, 'checked', false);
184   - }
185   - }
186   - // 判断选中状态
187   - var arr = [];
188   - this.content.forEach(item => item.whether == true ? arr.push(item) : '');
189   - var isAll = arr.every(item => item.checked == true);
190   - isAll ? this.$set(this.allCheck, 'checked', true) : this.$set(this.allCheck, 'checked', false)
191   - },
192   - billingSubmit() {
193   -
194   - },
195   -
196   - }
197   - }
  107 +export default {
  108 + data() {
  109 + return {
  110 +
  111 +
  112 + custName: '', // 购买方填写名称(开发票个人或公司名称)公司必填
  113 + invoiceType: '', // 发票类型(个人、公司),0 表示个人,1表示公司,2表示非企业性质单位
  114 + custTaxid: '', // 纳税人识别号(税号) 公司必填
  115 + custEmail: '', // 客户电子邮箱
  116 +
  117 + payNum: 0,
  118 + moneyTotal: 0,
  119 + items: [{
  120 + value: '1',
  121 + name: '增值税电子普通发票',
  122 + checked: 'true'
  123 + },
  124 + {
  125 + value: '2',
  126 + name: '增值税纸质专用发票',
  127 + }
  128 + ],
  129 + current: 0,
  130 + allCheck: {
  131 + name: '全选',
  132 + value: 'all',
  133 + checked: false
  134 + },
  135 + content: [
  136 + // {
  137 + // name: '微信支付',
  138 + // value: '1',
  139 + // id: 1,
  140 + // money: '5000',
  141 + // time: '2022-01-12',
  142 + // whether: true
  143 + // },
  144 + // {
  145 + // name: '微信支付',
  146 + // value: '2',
  147 + // money: '5000',
  148 + // time: '2022-01-12',
  149 + // id: 2,
  150 + // whether: true
  151 + // },
  152 + // {
  153 + // name: '微信支付',
  154 + // value: '3',
  155 + // money: '5000',
  156 + // time: '2022-01-12',
  157 + // id: 3,
  158 + // whether: true
  159 + // },
  160 + // {
  161 + // name: '微信支付',
  162 + // value: '4',
  163 + // money: '5000',
  164 + // time: '2022-01-12',
  165 + // id: 4,
  166 + // whether: true
  167 + // },
  168 + // {
  169 + // name: '线下公对公',
  170 + // value: '5',
  171 + // money: '5000',
  172 + // time: '2022-01-12',
  173 + // id: 5,
  174 + // whether: true
  175 + // }
  176 + ],
  177 + invoiceType:0, // 发票类型
  178 + email:'', // 发票邮箱
  179 + name:'', // 发票抬头
  180 + remark:'', // 备注
  181 + type:'1', //
  182 + useTitleIfo:{}
  183 + }
  184 + },
  185 + onLoad(params){
  186 + console.log(params)
  187 + // invoiceType='+i.invoiceType+'&email='+i.email+'&name'+i.name+'&remark'+i.remark
  188 + this.invoiceType = params.invoiceType
  189 + this.custEmail = params.email
  190 + this.custName = params.name
  191 + this.remark = params.remark
  192 + this.useTitleIfo = JSON.parse(uni.getStorageSync('useTitleIfo'))
  193 + this.custTaxid = this.useTitleIfo.taxid
  194 + this.name = params.name
  195 +
  196 + this.type = uni.getStorageSync('type') // 发票类型。1-停车记录,2-会员卡,3-余额充值
  197 + console.log(this.type)
  198 + console.log(this.custTaxid)
  199 + console.log(this.useTitleIfo)
  200 +
  201 + },
  202 + onShow() {
  203 + this.queryRntPayOrderForInvoice()
  204 + },
  205 + methods: {
  206 + queryRntPayOrderForInvoice() {
  207 + var queryRntPayOrderForInvoice = this.$common.queryRntPayOrderForInvoice;
  208 + var jsondata = {
  209 + invoiceType: this.type,
  210 + };
  211 + uni.request({
  212 + url: queryRntPayOrderForInvoice,
  213 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  214 + dataType: "json",
  215 + method: "POST",
  216 + success: (res) => {
  217 + console.log(res)
  218 + if (res.data.code == 0) {
  219 + this.content = res.data.data
  220 + console.log(this.content)
  221 + }
  222 + }
  223 + })
  224 + },
  225 + typeChange: function (evt) {
  226 + for (let i = 0; i < this.items.length; i++) {
  227 + if (this.items[i].value === evt.detail.value) {
  228 + this.current = i;
  229 + break;
  230 + }
  231 + }
  232 + },
  233 + detailClick() {
  234 + uni.navigateTo({
  235 + url: '../invoiceTitle/invoiceTitle'
  236 + });
  237 + },
  238 + // 全选
  239 + changeAll: function (e) {
  240 + console.log(e.detail.value)
  241 + let me = this
  242 + if (e.detail.value.length == 0) {
  243 + this.content.map(item => this.$set(item, 'checked', false));
  244 + this.$set(this.allCheck, 'checked', false);
  245 + this.payNum = 0
  246 + this.moneyTotal = 0
  247 + } else {
  248 + this.content.forEach(function (item, index) {
  249 + console.log(item);
  250 + me.$set(item, 'checked', true)
  251 + me.payNum++
  252 + me.moneyTotal += item.orderActFee
  253 + });
  254 + this.$set(this.allCheck, 'checked', true);
  255 + }
  256 + },
  257 + // 多选
  258 + changeCheck: function (e) {
  259 + let me = this
  260 + var items = this.content;
  261 + var len = this.content.length;
  262 + var values = e.detail.value;
  263 + console.log(values)
  264 + for (var i = 0; i < len; i++) {
  265 + var item = items[i];
  266 + if (values.includes(item.rltOrderId)) {
  267 + this.$set(item, 'checked', true);
  268 + } else {
  269 + this.$set(item, 'checked', false);
  270 + }
  271 + }
  272 + console.log(items)
  273 + // 判断选中状态
  274 + var arr = [];
  275 + this.payNum = 0
  276 + this.moneyTotal = 0
  277 + // this.content.forEach(item => item.checked == true ? arr.push(item) : '');
  278 + this.content.forEach(function (item, index) {
  279 + console.log(item);
  280 + if (item.checked == true) {
  281 + me.payNum++
  282 + me.moneyTotal += item.orderActFee
  283 + }
  284 + });
  285 + var isAll = this.content.every(item => item.checked == true);
  286 + isAll ? this.$set(this.allCheck, 'checked', true) : this.$set(this.allCheck, 'checked', false)
  287 + },
  288 + billingSubmit() {
  289 + let orderList = []
  290 + this.content.forEach(function (item, index) {
  291 + if (item.checked == true) {
  292 + orderList.push(item)
  293 + }
  294 + });
  295 + if(orderList.length==0){
  296 + uni.showToast({
  297 + icon:'none',
  298 + title: `请至少选择一条再提交`
  299 + })
  300 + return
  301 + }
  302 +
  303 + var openTicketForCustInvoiceHisInfo = this.$common.openTicketForCustInvoiceHisInfo;
  304 + var jsondata = {
  305 + orderList: JSON.stringify(orderList),
  306 + invoiceTotalFee: this.moneyTotal,
  307 + custName: this.useTitleIfo.name, // 购买方填写名称(开发票个人或公司名称)公司必填
  308 + invoiceType: this.invoiceType, // 发票类型(个人、公司),0 表示个人,1表示公司,2表示非企业性质单位
  309 + custTaxid: this.custTaxid, // 纳税人识别号(税号) 公司必填
  310 + custEmail: this.custEmail, // 客户电子邮箱
  311 + invoiceKind: '0', // 发票种类:0 普通发票,1增值发票
  312 + orgId: this.$common.public_orgId,
  313 + saleTaxid:'91320281MA1X8C486Y',
  314 + address:this.useTitleIfo.address,
  315 +
  316 + invoiceState:this.useTitleIfo.dataState,
  317 + custBankName:this.useTitleIfo.bankName,
  318 + custCardNo:this.useTitleIfo.cardNo,
  319 + custAddress:this.useTitleIfo.address,
  320 + custPhone:this.useTitleIfo.phone,
  321 + remark:this.useTitleIfo.remark
  322 + // this.useTitleIfo
  323 +
  324 + };
  325 + uni.request({
  326 + url: openTicketForCustInvoiceHisInfo,
  327 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  328 + dataType: "json",
  329 + method: "POST",
  330 + success: (res) => {
  331 + console.log(res)
  332 + if (res.data.code == 0) {
  333 + this.queryRntPayOrderForInvoice()
  334 + uni.showToast({
  335 + icon:'none',
  336 + title: `提交成功`
  337 + })
  338 + }
  339 + }
  340 + })
  341 +
  342 + },
  343 + moneyCount() {
  344 + },
  345 + }
  346 +}
198 347 </script>
199 348  
200   -<style lang="scss">
201   - .icon-arrowright {
202   - color: #bbb;
203   - // font-size: 20px;
204   - right: 2upx;
205   - top: 73px;
206   - }
207   -
208   - .billing-list {
209   - width: 100%;
210   - margin-bottom: 82px;
211   - }
212   -
213   - .billing-money {
214   - top: 34px;
215   - right: 20px;
216   - height: 34px;
217   - list-height: 34px;
218   - // z-index: 1;
219   - }
220   -
221   - .billing-total {
222   - position: fixed;
223   - bottom: 46px;
224   - left: 0;
225   - width: 100%;
226   - height: 34px;
227   - line-height: 34px;
228   - // color: #51c24e;
229   - background-color: #f2fded;
230   - }
231   -
232   - .billing-all {
233   - position: fixed;
234   - bottom: 0;
235   - left: 0;
236   - width: 100%;
237   - height: 46px;
238   - line-height: 46px;
239   - // font-size: 24px;
240   - background-color: #f6f6f6;
241   - }
242   -
243   - .billing-submit {
244   - position: fixed;
245   - bottom: 0;
246   - right: 0;
247   - width: 100px;
248   - height: 46px;
249   - line-height: 46px;
250   - }
  349 +<style lang="scss" scoped>
  350 + .icon-arrowright {
  351 + color: #bbb;
  352 + // font-size: 20px;
  353 + right: 2px;
  354 + top: 33px;
  355 + }
  356 +
  357 + .billing-list {
  358 + width: 100%;
  359 + margin-bottom: 82px;
  360 + }
  361 +
  362 + .billing-check {
  363 + top: 38px;
  364 + left: 4px;
  365 + height: 34px;
  366 + list-height: 34px;
  367 + // z-index: 1;
  368 + }
  369 +
  370 + .billing-money {
  371 + top: 38px;
  372 + right: 20px;
  373 + height: 34px;
  374 + list-height: 34px;
  375 + // z-index: 1;
  376 + }
  377 +
  378 + .billing-total {
  379 + padding-left: 30px;
  380 + position: fixed;
  381 + bottom: 46px;
  382 + left: 0;
  383 + width: 100%;
  384 + height: 34px;
  385 + line-height: 34px;
  386 + // color: #51c24e;
  387 + background-color: #f2fded;
  388 + z-index: 11;
  389 + }
  390 +
  391 + .billing-all {
  392 + position: fixed;
  393 + bottom: 0;
  394 + left: 0;
  395 + width: 100%;
  396 + height: 46px;
  397 + line-height: 46px;
  398 + // font-size: 24px;
  399 + background-color: #f6f6f6;
  400 + z-index: 11;
  401 + }
  402 +
  403 + .billing-submit {
  404 + position: fixed;
  405 + bottom: 0;
  406 + right: 0;
  407 + width: 100px;
  408 + height: 46px;
  409 + line-height: 46px;
  410 + }
  411 +
  412 + .commonText {
  413 + overflow: hidden;
  414 + white-space: nowrap;
  415 + text-overflow: ellipsis;
  416 + width: 100%;
  417 + }
  418 +
251 419 </style>
... ...
pages/companyMsg/companyMsg.vue
1 1 <template>
2   - <view>
3   - <view class="paddinglr30 bg-white uni-text margin-bottom-5">
4   - <view class="jy-fix-height34">
5   - <text class="color-black">抬头类型:</text>
6   - <text class="color-black">公司</text>
7   - </view>
8   - </view>
9   - <uni-section title="发票详情" type="line">
10   - <view class="uni-list">
11   - <view class="uni-list-cell jy-fix-height34">
12   - <view class="uni-list-cell-left">
13   - <text class="is-required">*</text>发票抬头:
14   - </view>
15   - <view class="uni-list-cell-db">
16   - 中兴智能交通股份有限公司
17   - </view>
18   - </view>
19   - <view class="uni-list-cell jy-fix-height34">
20   - <view class="uni-list-cell-left">
21   - <text class="is-required">*</text>纳税人识别号:
22   - </view>
23   - <view class="uni-list-cell-db">
24   - 123333
25   - </view>
26   - </view>
27   - <view class="uni-list-cell">
28   - <view class="uni-list-cell-left jy-fix-height34">
29   - 注册地址:
30   - </view>
31   - <view class="uni-list-cell-db uni-ellipsis-2">
32   - 北京市海淀区玲珑路中关村产业园北京市海淀区玲珑路中关村产业园
33   - </view>
34   - </view>
35   - <view class="uni-list-cell jy-fix-height34">
36   - <view class="uni-list-cell-left">
37   - 注册电话:
38   - </view>
39   - <view class="uni-list-cell-db">
40   - 123
41   - </view>
42   - </view>
43   - <view class="uni-list-cell">
44   - <view class="uni-list-cell-left jy-fix-height34">
45   - 开户行:
46   - </view>
47   - <view class="uni-list-cell-db uni-ellipsis-2">
48   - 北京市海淀区玲珑路中关村产业园北京市海淀区玲珑路中关村产业园
49   - </view>
50   - </view>
51   - <view class="uni-list-cell jy-fix-height34">
52   - <view class="uni-list-cell-left">
53   - 开户账号:
54   - </view>
55   - <view class="uni-list-cell-db">
56   - 1123村产业园
57   - </view>
58   - </view>
59   - <view class="uni-list-cell jy-fix-height34">
60   - <view class="uni-list-cell-left">
61   - <text class="is-required">*</text>电子邮箱:
62   - </view>
63   - <view class="uni-list-cell-db">
64   - 1123@qq.com
65   - </view>
66   - </view>
67   - <view class="uni-list-cell jy-fix-height34">
68   - <view class="uni-list-cell-left">
69   - 备注:
70   - </view>
71   - <view class="uni-list-cell-db">
72   - 备注
73   - </view>
74   - </view>
75   - </view>
76   - </uni-section>
  2 + <view>
  3 + <view class=" bg-white uni-text margin-bottom-5" style="padding-left: 15px">
  4 + <view class="jy-fix-height34">
  5 + <text class="color-black">抬头类型:</text>
  6 + <text class="color-black">{{titleIfo.invoiceType==0?'个人':'企业'}}</text>
  7 + </view>
  8 + </view>
  9 + <uni-section title="发票详情" type="line">
  10 + <view class="uni-list">
  11 + <view class="uni-list-cell jy-fix-height34">
  12 + <view class="uni-list-cell-left">
  13 + <text class="is-required">*</text>
  14 + 发票抬头:
  15 + </view>
  16 + <view class="uni-list-cell-db">
  17 + {{titleIfo.name}}
  18 + </view>
  19 + </view>
  20 + <view class="uni-list-cell jy-fix-height34" v-if="titleIfo.invoiceType==1">
  21 + <view class="uni-list-cell-left">
  22 + <text class="is-required">*</text>
  23 + 纳税人识别号:
  24 + </view>
  25 + <view class="uni-list-cell-db">
  26 + {{titleIfo.taxid}}
  27 + </view>
  28 + </view>
  29 + <view class="uni-list-cell" v-if="titleIfo.invoiceType==1">
  30 + <view class="uni-list-cell-left jy-fix-height34" >
  31 + 注册地址:
  32 + </view>
  33 + <view class="uni-list-cell-db uni-ellipsis-2">
  34 + {{titleIfo.address}}
  35 + </view>
  36 + </view>
  37 + <view class="uni-list-cell jy-fix-height34" v-if="titleIfo.invoiceType==1">
  38 + <view class="uni-list-cell-left">
  39 + 注册电话:
  40 + </view>
  41 + <view class="uni-list-cell-db">
  42 + {{titleIfo.phone}}
  43 + </view>
  44 + </view>
  45 + <view class="uni-list-cell" v-if="titleIfo.invoiceType==1">
  46 + <view class="uni-list-cell-left jy-fix-height34">
  47 + 开户行:
  48 + </view>
  49 + <view class="uni-list-cell-db uni-ellipsis-2">
  50 + {{titleIfo.bankName}}
  51 + </view>
  52 + </view>
  53 + <view class="uni-list-cell jy-fix-height34" v-if="titleIfo.invoiceType==1">
  54 + <view class="uni-list-cell-left">
  55 + 开户账号:
  56 + </view>
  57 + <view class="uni-list-cell-db">
  58 + {{titleIfo.taxid}}
  59 + </view>
  60 + </view>
  61 + <view class="uni-list-cell jy-fix-height34" >
  62 + <view class="uni-list-cell-left">
  63 + <text class="is-required">*</text>
  64 + 电子邮箱:
  65 + </view>
  66 + <view class="uni-list-cell-db">
  67 + {{titleIfo.email}}
  68 + </view>
  69 + </view>
  70 + <view class="uni-list-cell jy-fix-height34" >
  71 + <view class="uni-list-cell-left">
  72 + 备注:
  73 + </view>
  74 + <view class="uni-list-cell-db">
  75 + {{titleIfo.remark}}
  76 + </view>
  77 + </view>
  78 + </view>
  79 + </uni-section>
77 80  
78   - <uni-section title="纸质票邮寄方式" type="line">
79   - <view class="uni-list">
80   - <view class="uni-list-cell">
81   - <view class="uni-list-cell-left jy-fix-height34">
82   - 邮寄地址:
83   - </view>
84   - <view class="uni-list-cell-db uni-ellipsis-2">
85   - 北京市海淀区玲珑路中关村产业园北京市海淀区玲珑路中关村产业园
86   - </view>
87   - </view>
88   - <view class="uni-list-cell jy-fix-height34">
89   - <view class="uni-list-cell-left">
90   - 联系人:
91   - </view>
92   - <view class="uni-list-cell-db">
93   - 中兴智能交通股份有限公司
94   - </view>
95   - </view>
96   - <view class="uni-list-cell jy-fix-height34">
97   - <view class="uni-list-cell-left">
98   - 联系方式:
99   - </view>
100   - <view class="uni-list-cell-db">
101   - 13113131212
102   - </view>
103   - </view>
104   - </view>
105   - </uni-section>
106   - </view>
  81 +
  82 + </view>
107 83 </template>
108 84  
109 85 <script>
110   - export default {
111   - data() {
112   - return {
113   -
114   - };
115   - }
116   - }
  86 +export default {
  87 + data() {
  88 + return {
  89 + titleIfo:{}
  90 + };
  91 + },
  92 + onLoad(){
  93 + this.titleIfo = JSON.parse(uni.getStorageSync('companyMsg'))
  94 + console.log(this.titleIfo)
  95 + }
  96 +}
117 97 </script>
118 98  
119 99 <style lang="scss">
... ...
pages/editTitle/editTitle.vue
1 1 <template>
2   - <view>
3   - <uni-section title="抬头类型" type="line">
4   - <view class="uni-list">
5   - <radio-group @change="radioChange">
6   - <label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" :key="item.value">
7   - <view>
8   - <radio :value="item.value" :checked="index === current" />
9   - </view>
10   - <view style="flex: 1;">{{item.name}}</view>
11   - </label>
12   - </radio-group>
13   - </view>
14   - </uni-section>
15   - <uni-section title="发票详情" type="line">
16   - <view class="paddinglr30">
17   - <!-- 包含校验规则 -->
18   - <uni-forms ref="baseForm" :rules="rules" :modelValue="baseFormData">
19   - <uni-forms-item label="发票抬头" name="invoicetitle" required>
20   - <uni-easyinput v-model="baseFormData.invoicetitle" placeholder="请输入发票抬头" />
21   - </uni-forms-item>
22   - <uni-forms-item label="电子邮箱" name="email" required>
23   - <uni-easyinput v-model="baseFormData.email" placeholder="请输入电子邮箱" />
24   - </uni-forms-item>
25   - <uni-forms-item label="备注">
26   - <uni-easyinput type="textarea" v-model="baseFormData.remark" placeholder="备注" />
27   - </uni-forms-item>
28   - <uni-section title="纸质票邮寄方式" type="line">
29   - <uni-forms-item label="邮寄地址" name="emsAdress" required="">
30   - <uni-easyinput v-model="baseFormData.emsAdress" placeholder="请输入邮寄地址" />
31   - </uni-forms-item>
32   - <uni-forms-item label="联系人">
33   - <uni-easyinput v-model="baseFormData.emsUsername" placeholder="请输入联系人" />
34   - </uni-forms-item>
35   - <uni-forms-item label="联系方式">
36   - <uni-easyinput v-model="baseFormData.emsTel" placeholder="请输入联系方式" />
37   - </uni-forms-item>
38   - </uni-section>
39   - </uni-forms>
40   -
41   - </view>
42   - </uni-section>
43   - <view class="paddinglr30 margin-top-30 uni-common-mb">
44   - <button type="primary" @click="submit('baseForm')">确认</button>
45   - </view>
46   - </view>
  2 + <view>
  3 + <uni-section title="抬头类型" type="line">
  4 + <view class="uni-list">
  5 + <radio-group @change="radioChange">
  6 + <label class="uni-list-cell uni-list-cell-pd" v-for="(item, index) in items" :key="item.value">
  7 + <view>
  8 + <radio :value="item.value" :checked="index === current"/>
  9 + </view>
  10 + <view style="flex: 1;">{{item.name}}</view>
  11 + </label>
  12 + </radio-group>
  13 + </view>
  14 + </uni-section>
  15 +
  16 + <!--个人-->
  17 + <uni-section title="发票详情" type="line" v-if="current==0">
  18 + <view class="paddinglr30 margin-top-30">
  19 + <!-- 包含校验规则 -->
  20 + <uni-forms ref="baseFormPerson" :rules="rulesPerson" :modelValue="baseFormDataPerson">
  21 + <uni-forms-item label="发票抬头" name="invoicetitle" required>
  22 + <uni-easyinput v-model="baseFormDataPerson.invoicetitle" placeholder="请输入发票抬头"/>
  23 + </uni-forms-item>
  24 +
  25 + <uni-forms-item label="电子邮箱" name="email" required>
  26 + <uni-easyinput v-model="baseFormDataPerson.email" placeholder="请输入电子邮箱"/>
  27 + </uni-forms-item>
  28 +
  29 + <uni-forms-item label="备注信息">
  30 + <uni-easyinput type="textarea" v-model="baseFormDataPerson.remark" placeholder="备注"/>
  31 + </uni-forms-item>
  32 + </uni-forms>
  33 + </view>
  34 + </uni-section>
  35 +
  36 +
  37 + <!--企业-->
  38 + <uni-section title="发票详情" type="line" v-if="current==1">
  39 + <view class="paddinglr30 margin-top-30">
  40 + <!-- 基础用法,不包含校验规则 -->
  41 + <uni-forms ref="baseForm" :rules="rules" :modelValue="baseFormData">
  42 + <uni-forms-item label="发票抬头" name="invoicetitle" required>
  43 + <uni-easyinput v-model="baseFormData.invoicetitle" placeholder="请输入发票抬头"/>
  44 + </uni-forms-item>
  45 + <uni-forms-item label="纳税人识别号" name="userId" required>
  46 + <uni-easyinput v-model="baseFormData.userId" placeholder="请输入纳税人识别号"/>
  47 + </uni-forms-item>
  48 + <uni-forms-item label="注册地址">
  49 + <uni-easyinput v-model="baseFormData.address" placeholder="请输入注册地址"/>
  50 + </uni-forms-item>
  51 + <uni-forms-item label="注册电话">
  52 + <uni-easyinput v-model="baseFormData.phone" placeholder="请输入注册电话"/>
  53 + </uni-forms-item>
  54 + <uni-forms-item label="开户行">
  55 + <uni-easyinput v-model="baseFormData.bank" placeholder="请输入开户行"/>
  56 + </uni-forms-item>
  57 + <uni-forms-item label="开户账号">
  58 + <uni-easyinput v-model="baseFormData.bankAccount" placeholder="请输入开户账号"/>
  59 + </uni-forms-item>
  60 + <uni-forms-item label="电子邮箱" name="email" required>
  61 + <uni-easyinput v-model="baseFormData.email" placeholder="请输入电子邮箱"/>
  62 + </uni-forms-item>
  63 + <uni-forms-item label="备注">
  64 + <uni-easyinput type="textarea" v-model="baseFormData.remark" placeholder="备注"/>
  65 + </uni-forms-item>
  66 + <!--<uni-section title="纸质票邮寄方式" type="line">-->
  67 + <!--<uni-forms-item label="邮寄地址" name="emsAdress" required="">-->
  68 + <!--<uni-easyinput v-model="baseFormData.emsAdress" placeholder="请输入邮寄地址"/>-->
  69 + <!--</uni-forms-item>-->
  70 + <!--<uni-forms-item label="联系人">-->
  71 + <!--<uni-easyinput v-model="baseFormData.emsUsername" placeholder="请输入联系人"/>-->
  72 + <!--</uni-forms-item>-->
  73 + <!--<uni-forms-item label="联系方式">-->
  74 + <!--<uni-easyinput v-model="baseFormData.emsTel" placeholder="请输入联系方式"/>-->
  75 + <!--</uni-forms-item>-->
  76 + <!--</uni-section>-->
  77 + </uni-forms>
  78 +
  79 + </view>
  80 + </uni-section>
  81 +
  82 + <view class="paddinglr30 margin-top-30 uni-common-mb">
  83 + <button type="primary" @click="submit">确认</button>
  84 + </view>
  85 + </view>
47 86 </template>
48 87  
49 88 <script>
50   - export default {
51   - data() {
52   - return {
53   - items: [{
54   - value: '1',
55   - name: '个人'
56   - },
57   - {
58   - value: '2',
59   - name: '企业'
60   - },
61   - {
62   - value: '3',
63   - name: '非企业性单位'
64   - },
65   - ],
66   - current: 0,
67   - baseFormData: {
68   - invoicetitle: '',
69   - email: '',
70   - remark: '',
71   - emsAdress: '',
72   - emsUsername: '',
73   - emsTel: '',
74   - },
75   - // 校验规则
76   - rules: {
77   - invoicetitle: {
78   - rules: [{
79   - required: true,
80   - errorMessage: '发票抬头不能为空'
81   - }]
82   - },
83   - email: {
84   - rules: [{
85   - required: true,
86   - errorMessage: '电子邮箱不能为空'
87   - }, ]
88   - },
89   - emsAdress: {
90   - rules: [{
91   - required: true,
92   - errorMessage: '邮寄地址不能为空'
93   - }, ]
94   - },
95   - },
96   - };
97   - },
98   - onLoad() {},
99   -
100   - onReady() {
101   - // 设置自定义表单校验规则,必须在节点渲染完毕后执行
102   - this.$refs.baseForm.setRules(this.rules)
103   - },
104   -
105   - methods: {
106   - radioChange: function(evt) {
107   - for (let i = 0; i < this.items.length; i++) {
108   - if (this.items[i].value === evt.detail.value) {
109   - this.current = i;
110   - break;
111   - }
112   - }
113   - },
114   - submit(ref) {
115   - this.$refs[ref].validate().then(res => {
116   - console.log('success', res);
117   - uni.showToast({
118   - title: `校验通过`
119   - })
120   - }).catch(err => {
121   - console.log('err', err);
122   - })
123   - }
124   - },
125   - }
  89 +export default {
  90 + data() {
  91 + return {
  92 + titleIfo:'',
  93 + items: [{
  94 + value: '1',
  95 + name: '个人'
  96 + },
  97 + {
  98 + value: '2',
  99 + name: '企业'
  100 + },
  101 + // {
  102 + // value: '3',
  103 + // name: '非企业性单位'
  104 + // },
  105 + ],
  106 + current: 0,
  107 + baseFormDataPerson: {
  108 + invoicetitle: '',
  109 + email: '',
  110 + remark: '',
  111 + },
  112 + baseFormData: {
  113 + invoicetitle: '',
  114 + userId: '',
  115 + address: '',
  116 + phone: '',
  117 + bank: '',
  118 + bankAccount: '',
  119 + email: '',
  120 + remark: '',
  121 + // emsAdress: '',
  122 + // emsUsername: '',
  123 + // emsTel: '',
  124 + },
  125 + // 校验规则
  126 + rulesPerson: {
  127 + invoicetitle: {
  128 + rules: [{
  129 + required: true,
  130 + errorMessage: '发票抬头不能为空'
  131 + }]
  132 + },
  133 +
  134 + email: {
  135 + rules: [{
  136 + required: true,
  137 + errorMessage: '电子邮箱不能为空'
  138 + },]
  139 + },
  140 +
  141 + },
  142 + // 校验规则
  143 + rules: {
  144 + invoicetitle: {
  145 + rules: [{
  146 + required: true,
  147 + errorMessage: '发票抬头不能为空'
  148 + }]
  149 + },
  150 + userId: {
  151 + rules: [{
  152 + required: true,
  153 + errorMessage: '纳税人识别号不能为空'
  154 + }, {
  155 + format: 'number',
  156 + errorMessage: '纳税人识别号只能输入数字'
  157 + }]
  158 + },
  159 + email: {
  160 + rules: [{
  161 + required: true,
  162 + errorMessage: '电子邮箱不能为空'
  163 + },]
  164 + },
  165 + emsAdress: {
  166 + rules: [{
  167 + required: true,
  168 + errorMessage: '邮寄地址不能为空'
  169 + },]
  170 + },
  171 + },
  172 + };
  173 + },
  174 + onLoad() {
  175 + this.titleIfo = JSON.parse(uni.getStorageSync('titleIfo'))
  176 + console.log(this.titleIfo)
  177 + if(this.titleIfo.invoiceType == '0'){
  178 + this.current = 0
  179 +
  180 + this.baseFormDataPerson.invoicetitle = this.titleIfo.name
  181 + this.baseFormDataPerson.email = this.titleIfo.email
  182 + this.baseFormDataPerson.remark = this.titleIfo.remark
  183 +
  184 + }else{
  185 + this.current = 1
  186 +
  187 + this.baseFormData.invoicetitle = this.titleIfo.name
  188 + this.baseFormData.email = this.titleIfo.email
  189 + this.baseFormData.remark = this.titleIfo.remark
  190 + this.baseFormData.bank = this.titleIfo.bankName
  191 + this.baseFormData.bankAccount = this.titleIfo.cardNo
  192 + this.baseFormData.address = this.titleIfo.address
  193 + this.baseFormData.userId = this.titleIfo.taxid
  194 + this.baseFormData.phone = this.titleIfo.phone
  195 +
  196 + }
  197 + },
  198 + onReady() {
  199 + // 设置自定义表单校验规则,必须在节点渲染完毕后执行
  200 + // this.$refs.baseForm.setRules(this.rules)
  201 + },
  202 + methods: {
  203 + radioChange: function (evt) {
  204 + for (let i = 0; i < this.items.length; i++) {
  205 + if (this.items[i].value === evt.detail.value) {
  206 + this.current = i;
  207 + break;
  208 + }
  209 + }
  210 + },
  211 + submit(ref) {
  212 + console.log()
  213 + if(this.current==0){
  214 + this.$refs['baseFormPerson'].validate().then(res => {
  215 + console.log('success', res);
  216 +
  217 +
  218 + let updateCustInvoiceInfo = this.$common.updateCustInvoiceInfo;
  219 + let jsondata = {
  220 + id: this.titleIfo.id,
  221 + name: this.baseFormDataPerson.invoicetitle,
  222 + email: this.baseFormDataPerson.email,
  223 + remark: this.baseFormDataPerson.remark,
  224 + invoiceType:'0',
  225 + isDefault:this.titleIfo.isDefault
  226 +
  227 + };
  228 + uni.request({
  229 + url: updateCustInvoiceInfo,
  230 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  231 + dataType: "json",
  232 + method: "POST",
  233 + success: (res) => {
  234 + console.log(res)
  235 + if (res.data.code == 0) {
  236 + uni.showToast({
  237 + icon:'none',
  238 + title: `编辑成功`
  239 + })
  240 + uni.navigateBack({
  241 + delta: 1
  242 + })
  243 + }else{
  244 + uni.showToast({
  245 + icon:'none',
  246 + title: res.data.message
  247 + })
  248 +
  249 + }
  250 + }
  251 + })
  252 +
  253 + }).catch(err => {
  254 + console.log('err', err);
  255 + })
  256 + }
  257 + if(this.current==1){
  258 + this.$refs['baseForm'].validate().then(res => {
  259 +
  260 + let updateCustInvoiceInfo = this.$common.updateCustInvoiceInfo;
  261 + let jsondata = {
  262 +
  263 + id: this.titleIfo.id,
  264 + name: this.baseFormData.invoicetitle,
  265 + email: this.baseFormData.email,
  266 + remark: this.baseFormData.remark,
  267 + invoiceType:'1',
  268 + isDefault:this.titleIfo.isDefault,
  269 + taxid:this.baseFormData.userId,
  270 + bankName:this.baseFormData.bank,
  271 + cardNo:this.baseFormData.bankAccount,
  272 + address:this.baseFormData.address,
  273 + phone:this.baseFormData.phone,
  274 + };
  275 + uni.request({
  276 + url: updateCustInvoiceInfo,
  277 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  278 + dataType: "json",
  279 + method: "POST",
  280 + success: (res) => {
  281 + console.log(res)
  282 + if (res.data.code == 0) {
  283 + uni.showToast({
  284 + icon:'none',
  285 + title: `编辑成功`
  286 + })
  287 + uni.navigateBack({
  288 + delta: 1
  289 + })
  290 + }else{
  291 + uni.showToast({
  292 + icon:'none',
  293 + title: res.data.message
  294 + })
  295 +
  296 + }
  297 + }
  298 + })
  299 +
  300 + }).catch(err => {
  301 + console.log('err', err);
  302 + })
  303 + }
  304 + }
  305 + },
  306 +}
126 307 </script>
127 308  
128 309 <style lang="scss">
... ...
pages/elecRecord/elecRecord.vue
1 1 <template>
2 2 <view>
3 3 <view class="elec-content">
4   - <view class="elec-card bg-white">
  4 + <view class="elec-card bg-white" v-for="(i, index) in custInvoiceHisDetailDTOList">
5 5 <view class="elec-card-left float-left">
6   - <view class="elec-card-msg">黄石肯特科技发展有限公司</view>
7   - <view class="elec-card-msg">折扣券</view>
8   - <view class="elec-card-msg">万达车场8折折扣券</view>
9   - <view class="elec-card-msg">¥5元/张 X 15张</view>
  6 + <view class="elec-card-msg">{{i.plName}}</view>
  7 + <view class="elec-card-msg">{{i.carNumber}}</view>
  8 + <view class="elec-card-msg">{{$common.formatDate(i.orderDate)}}</view>
  9 + <!--<view class="elec-card-msg">应收¥{{(i.orderTotalFee/100).toFixed(2)}}</view>-->
10 10 </view>
11 11 <view class="elec-card-right float-right">
12 12 <view class="elec-card-text">
13   - 75.00元
14   - </view>
15   - </view>
16   - </view>
17   - <view class="elec-card bg-white">
18   - <view class="elec-card-left float-left">
19   - <view class="elec-card-msg">黄石肯特科技发展有限公司</view>
20   - <view class="elec-card-msg">折扣券</view>
21   - <view class="elec-card-msg">万达车场8折折扣券</view>
22   - <view class="elec-card-msg">¥5元/张 X 15张</view>
23   - </view>
24   - <view class="elec-card-right float-right">
25   - <view class="elec-card-text">
26   - 75.00元
  13 + 实收 ¥{{(i.orderActFee/100).toFixed(2)}}元
27 14 </view>
28 15 </view>
29 16 </view>
  17 + <!--<view class="elec-card bg-white">-->
  18 + <!--<view class="elec-card-left float-left">-->
  19 + <!--<view class="elec-card-msg">黄石肯特科技发展有限公司</view>-->
  20 + <!--<view class="elec-card-msg">折扣券</view>-->
  21 + <!--<view class="elec-card-msg">万达车场8折折扣券</view>-->
  22 + <!--<view class="elec-card-msg">¥5元/张 X 15张</view>-->
  23 + <!--</view>-->
  24 + <!--<view class="elec-card-right float-right">-->
  25 + <!--<view class="elec-card-text">-->
  26 + <!--75.00元-->
  27 + <!--</view>-->
  28 + <!--</view>-->
  29 + <!--</view>-->
  30 +
  31 + <!--<view class="novipcard_Mid">-->
  32 + <!--<image class="novipcard" src="../../static/vipcard/novipcard.png" mode="aspectFit"></image>-->
  33 + <!--<view class="novipcard_txt">-->
  34 + <!--暂无记录-->
  35 + <!--</view>-->
  36 +
  37 + <!--</view>-->
  38 +
30 39 </view>
31 40 </view>
32 41 </template>
33 42  
34 43 <script>
35   - export default {
36   - data() {
37   - return {
38   -
39   - }
40   - },
41   - methods: {
42   -
43   - }
44   - }
  44 +export default {
  45 + data() {
  46 + return {
  47 + custInvoiceHisDetailDTOList:'',
  48 + index:0,
  49 + }
  50 + },
  51 + onLoad(params) {
  52 + var pages = getCurrentPages();//当前页
  53 + var beforePage = pages[pages.length - 3];//上二个页面
  54 + console.log(beforePage.$vm.list)
  55 + console.log(params)
  56 + this.index = params.index
  57 + this.custInvoiceHisDetailDTOList = beforePage.$vm.list[this.index].custInvoiceHisDetailDTOList
  58 + console.log(this.custInvoiceHisDetailDTOList)
  59 + },
  60 + methods: {}
  61 +}
45 62 </script>
46 63  
47 64 <style lang="scss">
... ... @@ -52,22 +69,23 @@
52 69  
53 70 .elec-card {
54 71 width: 100%;
55   - height: 200upx;
  72 + /*height: 200upx;*/
56 73 padding: 22upx 30upx;
57 74 line-height: 32upx;
58 75 border-bottom: 1px solid #e5e5e5;
  76 + overflow: hidden;
59 77 }
60 78  
61 79 .elec-card-left {
62 80 width: 70%;
63   - height: 200upx;
  81 + /*height: 200upx;*/
64 82  
65 83 }
66 84  
67 85 .elec-card-right {
68 86 width: 30%;
69   - height: 200upx;
70   - line-height: 200upx;
  87 + /*height: 200upx;*/
  88 + /*line-height: 200upx;*/
71 89 }
72 90  
73 91 .elec-card-msg {
... ...
pages/index/index.vue
... ... @@ -182,16 +182,16 @@
182 182 });
183 183 },
184 184 toInvoicePage() {
185   - uni.showToast({
186   - title: '正在开发中...',
187   - icon: 'none',
188   - duration: 2000
189   - })
  185 + // uni.showToast({
  186 + // title: '正在开发中...',
  187 + // icon: 'none',
  188 + // duration: 2000
  189 + // })
190 190  
191   - // uni.navigateTo({
192   - // url: '../invoiceClaim/invoiceClaim'
  191 + uni.navigateTo({
  192 + url: '../invoiceClaim/invoiceClaim'
193 193  
194   - // });
  194 + });
195 195 },
196 196 toBusinessCardPage() {
197 197 uni.navigateTo({
... ...
pages/invoiceClaim/invoiceClaim.vue
1 1 <template>
2   - <view>
3   - <view class="claim-content">
4   - <uni-list>
5   - <uni-list-item title="充值发票" note="支持账户余额充值金额开具发票" clickable showArrow @click="payCell()" />
6   - <uni-list-item title="开票历史" clickable showArrow @click="recordCell()" />
7   - </uni-list>
8   - </view>
9   - </view>
  2 + <view>
  3 + <view class="claim-content">
  4 + <uni-list>
  5 + <uni-list-item title="充值发票" note="支持账户余额充值金额开具发票" clickable showArrow @click="payCell('3')"/>
  6 + <uni-list-item title="开票历史" clickable showArrow @click="recordCell"/>
  7 + </uni-list>
  8 + </view>
  9 + </view>
10 10 </template>
11 11  
12 12 <script>
13   - export default {
14   - data() {
15   - return {
  13 +export default {
  14 + data() {
  15 + return {}
  16 + },
  17 + methods: {
  18 + payCell(i) {
  19 + // invoiceType 是 Integer 发票类型。1-停车记录,2-会员卡,3-余额充值
  20 + uni.setStorageSync('type',i) // 存储点击的是 什么类型。 1-停车记录,2-会员卡,3-余额充值
  21 + uni.navigateTo({
  22 + url: '../invoiceTitle/invoiceTitle'
16 23  
17   - }
18   - },
19   - methods: {
20   - payCell(){
21   - uni.navigateTo({
22   - url: '../billing/billing'
23   -
24   - });
25   - },
26   - recordCell() {
27   - uni.navigateTo({
28   - url: '../invoiceRecord/invoiceRecord'
29   -
30   - });
31   - }
32   - }
33   - }
  24 + });
  25 + },
  26 + recordCell() {
  27 + uni.navigateTo({
  28 + url: '../invoiceRecord/invoiceRecord'
  29 + });
  30 + }
  31 + }
  32 +}
34 33 </script>
35 34  
36 35 <style>
... ...
pages/invoiceForm/invoiceForm.vue
1 1 <template>
2   - <view>
3   - <uni-notice-bar backgroundColor="#f2fded" color="#51c24e" single showIcon text="已发送电子邮箱"></uni-notice-bar>
4   - <uni-list>
5   - <uni-list-item title="发票预览" clickable showArrow @click="previewCell" />
6   - </uni-list>
  2 + <view>
  3 + <!--<uni-notice-bar backgroundColor="#f2fded" color="#51c24e" single showIcon text="已发送电子邮箱"></uni-notice-bar>-->
  4 + <uni-list>
  5 + <uni-list-item title="发票预览" clickable showArrow @click="previewCell"/>
7 6  
8   - <uni-list>
9   - <view class="recordCon uni-list-cell-pd">
10   - <text class="color-black">发票信息</text>
11   - </view>
12   - <view class="recordCon uni-list-cell-pd">
13   - <text>电子邮箱:{{invoiceInfo.email}}</text>
14   - </view>
15   - </uni-list>
  7 + </uni-list>
16 8  
17   - <view class="bg-white border-bottom-1 pos-rel" @click="recordClick">
18   - <view class="recordCon uni-list-cell-pd">
19   - <text class="color-black">发票包含内容</text>
20   - </view>
21   - <view class="recordCon uni-list-cell-pd">
22   - <text>该发票包含{{invoiceInfo.number}}笔交易</text>
23   - </view>
24   - <view class="uni-icon pos-abs icon-arrowright uni-icon-arrowright">
25   - </view>
26   - </view>
  9 + <uni-list>
  10 + <view class="recordCon uni-list-cell-pd">
  11 + <text class="color-black">发票信息</text>
  12 + </view>
  13 + <view class="recordCon uni-list-cell-pd">
  14 + <text>电子邮箱:{{invoiceInfo.email}}</text>
  15 + </view>
  16 + </uni-list>
27 17  
28   - <view class="margin-top-30">
29   - <button type="primary" class="tel-btn">重发邮件</button>
30   - <button class="tel-btn" v-if="tel.length>0" type="primary" plain="true" @click="call">客服电话:{{tel}}</button>
31   - </view>
  18 + <view class="bg-white border-bottom-1 pos-rel" @click="recordClick">
  19 + <view class="recordCon uni-list-cell-pd">
  20 + <text class="color-black">发票包含内容</text>
  21 + </view>
  22 + <view class="recordCon uni-list-cell-pd">
  23 + <text>该发票包含{{len}}笔交易</text>
  24 + </view>
  25 + <view class="uni-icon pos-abs icon-arrowright uni-icon-arrowright">
  26 + </view>
  27 + </view>
32 28  
33   - </view>
  29 + <view class="margin-top-30">
  30 + <button type="primary" class="tel-btn" @click="sentEmail">重发邮件</button>
  31 + </view>
  32 +
  33 + <view class="margin-top-30">
  34 + <button class="tel-btn" v-if="tel.length>0" type="primary" plain="true" @click="call">客服电话:{{tel}}</button>
  35 + </view>
  36 +
  37 + </view>
34 38 </template>
35 39  
36 40 <script>
37   - export default {
38   - data() {
39   - return {
40   - invoiceInfo: {
41   - email: '123456@qq.com',
42   - number: 0
43   - },
44   - tel: '400-6345688'
45   - }
46   - },
47   - methods: {
48   - previewCell() {
49   - uni.navigateTo({
50   - url: '../invoicePreview/invoicePreview'
51   -
52   - });
53   - },
54   - recordClick() {
55   - uni.navigateTo({
56   - url: '../elecRecord/elecRecord'
  41 +export default {
  42 + data() {
  43 + return {
  44 + invoiceInfo: {
  45 + email: '123456@qq.com',
  46 + number: 0
  47 + },
  48 + tel: '400-6345688',
  49 + invoiceId:'',
  50 + invoiceUrl:'',
  51 + index:0,
  52 + len:0
  53 + }
  54 + },
  55 + onLoad(params){
  56 + var pages = getCurrentPages();//当前页
  57 + var beforePage = pages[pages.length - 2];//上个页面
  58 + console.log(beforePage.$vm.list)
  59 + console.log(params)
57 60  
58   - });
59   - },
60   - }
61   - }
  61 + this.invoiceInfo.email = params.custEmail
  62 + this.invoiceId = params.invoiceId
  63 + this.index = params.index
  64 + this.invoiceUrl =beforePage.$vm.list[this.index].invoiceUrl
  65 + this.len = params.len
  66 + },
  67 + methods: {
  68 + call(){
  69 + var me = this;
  70 + uni.makePhoneCall({
  71 + phoneNumber: me.tel //仅为示例
  72 + });
  73 + },
  74 + previewCell() {
  75 + uni.navigateTo({
  76 + url: '../invoicePreview/invoicePreview?index='+this.index
  77 + });
  78 + // window.open(this.invoiceUrl)
  79 + },
  80 + recordClick() {
  81 + uni.navigateTo({
  82 + url: '../elecRecord/elecRecord?index='+this.index
  83 + });
  84 + },
  85 + sentEmail(){
  86 + var resendInvoiceMail = this.$common.resendInvoiceMail;
  87 + var jsondata = {
  88 + invoiceId:this.invoiceId,
  89 + orgId:this.$common.public_orgId
  90 + };
  91 + uni.request({
  92 + url: resendInvoiceMail,
  93 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  94 + dataType: "json",
  95 + method: "POST",
  96 + success: (res) => {
  97 + console.log(res)
  98 + console.log(res.data)
  99 + console.log(res.code)
  100 + if (res.data.code == 0) {
  101 + uni.showToast({
  102 + icon:'none',
  103 + title: `邮件发送成功`
  104 + })
  105 + }
  106 + }
  107 + })
  108 + }
  109 + }
  110 +}
62 111 </script>
63 112  
64   -<style lang="scss">
65   - .icon-arrowright {
66   - color: #bbb;
67   - font-size: 20px;
68   - right: 2upx;
69   - top: 60upx;
70   - }
  113 +<style scoped>
  114 + .icon-arrowright {
  115 + color: #bbb;
  116 + font-size: 20px;
  117 + right: 15upx;
  118 + top: 60upx;
  119 + }
  120 +
  121 + .tel-btn {
  122 + width: 90%;
  123 + margin: 30upx auto;
  124 + }
  125 +
  126 + >>> .uni-list-cell__content-title {
  127 + margin-left: 0 !important;
  128 + }
71 129  
72   - .tel-btn {
73   - width: 90%;
74   - margin: 30upx auto;
75   - }
76 130 </style>
... ...
pages/invoicePreview/invoicePreview.vue
1 1 <template>
2 2 <view>
3   -
  3 + <!--<image style="width: 100%" mode="scaleToFill" :src="src"-->
  4 + <!--@error="imageError"></image>-->
  5 + <web-view :src="invoiceUrl"></web-view>
4 6 </view>
5 7 </template>
6 8  
7 9 <script>
8   - export default {
9   - data() {
10   - return {
11   -
12   - };
13   - }
14   - }
  10 +export default {
  11 + data() {
  12 + return {
  13 + src: '',
  14 + invoiceUrl:'',
  15 + index:0,
  16 + };
  17 + },
  18 + onLoad(params) {
  19 + var pages = getCurrentPages();//当前页
  20 + var beforePage = pages[pages.length - 3];//上二个页面
  21 + console.log(beforePage.$vm.list)
  22 + console.log(params)
  23 + this.index = params.index
  24 + this.invoiceUrl = beforePage.$vm.list[this.index].invoiceUrl
  25 + console.log(this.invoiceUrl)
  26 + },
  27 +}
15 28 </script>
16 29  
17 30 <style lang="scss">
... ...
pages/invoiceRecord/invoiceRecord.vue
1 1 <template>
2   - <view>
3   - <view class="record-content">
4   - <view class="bg-white border-bottom-1 pos-rel" @click="payClick">
5   - <view class="recordCon uni-list-cell-pd">
6   - <text class="color-black">余额充值</text>
7   - <text>已发送电子邮箱</text>
8   - </view>
9   - <view class="recordCon uni-list-cell-pd">
10   - <text>2020-10-01 01:01:01</text>
11   - <text>¥3.00</text>
12   - </view>
13   - <view class="uni-icon pos-abs icon-arrowright uni-icon-arrowright">
14   - </view>
15   - </view>
16   - <view class="bg-white pos-rel" @click="payClick">
17   - <view class="recordCon uni-list-cell-pd">
18   - <text class="color-black">余额充值</text>
19   - <text>已发送电子邮箱</text>
20   - </view>
21   - <view class="recordCon uni-list-cell-pd">
22   - <text>2020-10-01 01:01:01</text>
23   - <text>¥3.00</text>
24   - </view>
25   - <view class="uni-icon pos-abs icon-arrowright uni-icon-arrowright">
26   - </view>
27   - </view>
28   -
29   - </view>
30   - </view>
  2 + <view>
  3 + <view class="record-content">
  4 + <view v-if="list.length>0">
  5 + <view class="bg-white border-bottom-1 pos-rel" v-for="(i, index) in list" @click="payClick(i,index)">
  6 +
  7 + <view class="recordCon uni-list-cell-pd">
  8 + <text class="color-black">{{i.invoiceBigType=='100'?'停车':i.invoiceBigType=='200'?'充值':'会员卡'}}</text>
  9 + <!--发票状态,1 待开票,3已开票 2 已邮寄 4已下载(这是开票接口的过渡状态,给用户展示已开票)-->
  10 + <text v-if="i.invoiceState==1">待开票</text>
  11 + <text v-else-if="i.invoiceState==2">已邮寄 </text>
  12 + <text v-else-if="i.invoiceState==3">已开票</text>
  13 + <text v-else>已下载</text>
  14 + </view>
  15 + <view class="recordCon uni-list-cell-pd">
  16 + <!--<text>{{$common.formatDate(new Date(i.custInvoiceHisDetailDTOList[0].orderDate * 1000),'yyyy-MM-dd hh:mm')}}</text>-->
  17 + <text>{{$common.formatDate(i.custInvoiceHisDetailDTOList[0].orderDate)}}</text>
  18 + <text>¥{{(i.invoiceTotalFee/100).toFixed(2)}}</text>
  19 +
  20 + </view>
  21 + <view class="uni-icon pos-abs icon-arrowright uni-icon-arrowright">
  22 + </view>
  23 + </view>
  24 + </view>
  25 +
  26 + <!--<view style="padding: 30px;text-align: center" v-else>暂无记录!</view>-->
  27 +
  28 + <view class="novipcard_Mid" style="padding-top: 20px;" v-else>
  29 + <image class="novipcard" :src="noIcon" mode="aspectFit"></image>
  30 + <view class="novipcard_txt">
  31 + 暂无记录
  32 + </view>
  33 +
  34 + </view>
  35 +
  36 +
  37 + </view>
  38 + </view>
31 39 </template>
32 40  
33 41 <script>
34   - export default {
35   - data() {
36   - return {
37   -
38   - }
39   - },
40   - methods: {
41   - payClick() {
42   - uni.navigateTo({
43   - url: '../invoiceForm/invoiceForm'
44   -
45   - });
46   - },
47   - }
48   - }
  42 +export default {
  43 + data() {
  44 + return {
  45 + list:[],
  46 + noIcon:require('static/vipcard/novipcard.png'),
  47 + }
  48 + },
  49 + onShow(){
  50 + this.queryCustInvoiceHistoryList()
  51 + },
  52 + methods: {
  53 + queryCustInvoiceHistoryList() {
  54 +
  55 + var queryCustInvoiceHistoryList = this.$common.queryCustInvoiceHistoryList;
  56 + var jsondata = {};
  57 + uni.request({
  58 + url: queryCustInvoiceHistoryList,
  59 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  60 + dataType: "json",
  61 + method: "POST",
  62 + success: (res) => {
  63 + if (res.data.code == 0) {
  64 + this.list = res.data.data
  65 + console.log(this.list)
  66 + }
  67 + }
  68 + })
  69 + },
  70 + payClick(i,index) {
  71 + console.log(index)
  72 + uni.navigateTo({
  73 + url: '../invoiceForm/invoiceForm?custEmail='+i.custEmail+'&invoiceId='+i.invoiceId+'&index='+index+'&len='+i.custInvoiceHisDetailDTOList.length
  74 + });
  75 + },
  76 + }
  77 +}
49 78 </script>
50 79  
51 80 <style lang="scss">
52   - .icon-arrowright {
53   - color: #bbb;
54   - font-size: 20px;
55   - right: 2upx;
56   - top: 60upx;
57   - }
  81 + .icon-arrowright {
  82 + color: #bbb;
  83 + font-size: 20px;
  84 + right: 2upx;
  85 + top: 60upx;
  86 + }
58 87 </style>
... ...
pages/invoiceTitle/invoiceTitle.vue
1 1 <template>
2   - <view>
3   - <view>
4   -
5   - <view class="uni-list">
6   - <radio-group @change="titleChange">
7   - <label class="display-block border-bottom-5" v-for="(item, index) in items" :key="item.value">
8   - <view class="elec-card bg-white">
9   - <view class="elec-card-left float-left">
10   - <view class="elec-card-msg">黄石肯特科技发展有限公司</view>
11   - <view class="elec-card-msg">发票类型:公司</view>
12   - </view>
13   - <view class="elec-card-right float-right">
14   - <button class="mini-btn color-62c7ee" type="primary" size="mini">去使用</button>
15   - </view>
16   - </view>
17   - <view class="uni-list-cell uni-list-cell-pd">
18   - <view>
19   - <radio :value="item.value" :checked="index === current" />
20   - </view>
21   - <view style="flex:1;">默认抬头</view>
22   - <view>
23   - <button class="mini-btn margin-left-5" type="primary" size="mini"
24   - @click="detailLookBtn">查看</button>
25   - <button class="mini-btn margin-left-5" type="default" size="mini"
26   - @click="detailEditBtn">编辑</button>
27   - <button class="mini-btn margin-left-5" type="warn" size="mini"
28   - @click="detailDelBtn">删除</button>
29   - </view>
30   - </view>
31   - </label>
32   - </radio-group>
33   - </view>
34   - <view class="billing-all">
35   - <button type="primary" class="title-submit" @click="addInvoiceTitle">添加发票抬头</button>
36   - </view>
37   - </view>
38   - </view>
  2 + <view>
  3 + <view>
  4 +
  5 + <view class="uni-list" v-if="items.length>0">
  6 + <radio-group @change="titleChange">
  7 + <label class="display-block border-bottom-5" v-for="(item, index) in items" :key="item.value">
  8 + <view class="elec-card bg-white">
  9 + <view class="elec-card-left float-left" >
  10 + <view class="elec-card-msg">{{item.name}}</view>
  11 + <view class="elec-card-msg">发票类型:{{item.invoiceType | invoiceTypeFilter}}</view>
  12 + </view>
  13 + <view class="elec-card-right float-right" @click="toUse(JSON.stringify(item))">
  14 + <button class="mini-btn color-62c7ee" type="primary" size="mini" >
  15 + 去使用
  16 + </button>
  17 + </view>
  18 + </view>
  19 + <view class="uni-list-cell uni-list-cell-pd">
  20 + <view>
  21 + <radio :value="JSON.stringify(item)" :checked="item.isDefault == 1"/>
  22 + </view>
  23 + <view style="flex:1;">默认抬头</view>
  24 + <view>
  25 + <button class="mini-btn margin-left-5" type="primary" size="mini"
  26 + @click="detailLookBtn(JSON.stringify(item), index)">查看
  27 + </button>
  28 + <button class="mini-btn margin-left-5" type="default" size="mini"
  29 + @click="detailEditBtn(JSON.stringify(item), index)">编辑
  30 + </button>
  31 + <button class="mini-btn margin-left-5" type="warn" size="mini"
  32 + @click="detailDelBtn(JSON.stringify(item), index)">删除
  33 + </button>
  34 + </view>
  35 + </view>
  36 + </label>
  37 + </radio-group>
  38 + </view>
  39 +
  40 + <view style="padding: 30px;text-align: center" v-else>暂无抬头,请先添加!</view>
  41 + <view class="billing-all">
  42 + <button type="primary" class="title-submit" @click="addInvoiceTitle">添加发票抬头</button>
  43 + </view>
  44 + </view>
  45 + </view>
39 46 </template>
40 47  
41 48 <script>
42   - export default {
43   - data() {
44   - return {
45   - items: [{
46   - value: '1',
47   - checked: 'true'
48   -
49   - },
50   - {
51   - value: '2'
52   -
53   - },
54   - {
55   - value: '3'
56   -
57   - },
58   - ],
59   - current: 0,
60   - };
61   - },
62   - methods: {
63   - titleChange: function(evt) {
64   - for (let i = 0; i < this.items.length; i++) {
65   - if (this.items[i].value === evt.detail.value) {
66   - this.current = i;
67   - break;
68   - }
69   - }
70   - },
71   - detailLookBtn() {
72   - uni.navigateTo({
73   - url: '../companyMsg/companyMsg'
74   - });
75   - },
76   - detailEditBtn() {
77   - uni.navigateTo({
78   - url: '../editTitle/editTitle'
79   - });
80   - },
81   - detailDelBtn() {
82   -
83   - },
84   - addInvoiceTitle() {
85   - uni.navigateTo({
86   - url: '../addTitle/addTitle'
87   - });
88   - },
89   - }
90   - }
  49 +export default {
  50 + data() {
  51 + return {
  52 + items: [
  53 + // {
  54 + // value: '1',
  55 + // checked: 'true'
  56 + // },
  57 + // {
  58 + // value: '2'
  59 + // },
  60 + // {
  61 + // value: '3'
  62 + // },
  63 + ],
  64 + current: 0,
  65 + };
  66 + },
  67 + onLoad(params) {
  68 +
  69 + },
  70 + onShow(){
  71 + this.queryCustInvoiceInfoList()
  72 + },
  73 + methods: {
  74 + queryCustInvoiceInfoList() {
  75 + let that = this
  76 + var queryCustInvoiceInfoList = this.$common.queryCustInvoiceInfoList;
  77 + var jsondata = {};
  78 + uni.request({
  79 + url: queryCustInvoiceInfoList,
  80 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  81 + dataType: "json",
  82 + method: "POST",
  83 + success: (res) => {
  84 + console.log(res)
  85 + if (res.data.code == 0) {
  86 + this.items = res.data.data
  87 + }
  88 + }
  89 + })
  90 + },
  91 + titleChange: function (evt) {
  92 + console.log(JSON.parse(evt.detail.value))
  93 + let jsonData = JSON.parse(evt.detail.value)
  94 + // for (let i = 0; i < this.items.length; i++) {
  95 + // if (this.items[i].default === evt.detail.value) {
  96 + // this.current = i;
  97 + // break;
  98 + // }
  99 + // }
  100 + var updateCustInvoiceInfo = this.$common.updateCustInvoiceInfo;
  101 + var jsondata = {
  102 + address:jsonData.address,
  103 + bankName:jsonData.bankName,
  104 + cardNo:jsonData.cardNo,
  105 + isDefault:'1',
  106 + phone:jsonData.phone,
  107 + taxid:jsonData.taxid,
  108 + name:jsonData.name,
  109 + invoiceType:jsonData.invoiceType,
  110 + id:jsonData.id,
  111 + remark:jsonData.remark,
  112 + email:jsonData.email,
  113 +
  114 +
  115 + // name: this.baseFormDataPerson.invoicetitle,
  116 + // email: this.baseFormDataPerson.email,
  117 + // remark: this.baseFormDataPerson.remark,
  118 + // isDefault: '1',// 是否默认客户抬头信息,1表示是默认抬头信息,0不是默认抬头信息(默认0)
  119 + // invoiceType: '0', // 发票类型(个人、公司),0 表示个人,1表示公司
  120 +
  121 +
  122 + };
  123 + uni.request({
  124 + url: updateCustInvoiceInfo,
  125 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  126 + dataType: "json",
  127 + method: "POST",
  128 + success: (res) => {
  129 + console.log(res)
  130 + if (res.data.code == 0) {
  131 + uni.showToast({
  132 + icon:'none',
  133 + title: `设置成功`
  134 + })
  135 + }
  136 + }
  137 + })
  138 + },
  139 + detailLookBtn(val) {
  140 + uni.setStorageSync('companyMsg',val)
  141 + uni.navigateTo({
  142 + url: '../companyMsg/companyMsg'
  143 + });
  144 + },
  145 + detailEditBtn(val,i) {
  146 + uni.setStorageSync('titleIfo',val)
  147 + uni.navigateTo({
  148 + url: '../editTitle/editTitle'
  149 + });
  150 + },
  151 + detailDelBtn(val,i) {
  152 + console.log(val)
  153 + console.log(i)
  154 + var deleteCustInvoiceInfoByID = this.$common.deleteCustInvoiceInfoByID;
  155 + var jsondata = {
  156 + id: JSON.parse(val).id,
  157 + };
  158 + uni.request({
  159 + url: deleteCustInvoiceInfoByID,
  160 + data: JSON.stringify(this.$common.requestSign(jsondata)),
  161 + dataType: "json",
  162 + method: "POST",
  163 + success: (res) => {
  164 + console.log(res)
  165 + if (res.data.code == 0) {
  166 + this.queryCustInvoiceInfoList()
  167 + uni.showToast({
  168 + icon:'none',
  169 + title: `删除成功`
  170 + })
  171 + }
  172 + }
  173 + })
  174 + },
  175 + addInvoiceTitle() {
  176 + uni.navigateTo({
  177 + url: '../addTitle/addTitle'
  178 + });
  179 + },
  180 + toUse(val) {
  181 + console.log(val)
  182 + uni.setStorageSync('useTitleIfo',val)
  183 + let i = JSON.parse(val)
  184 + uni.navigateTo({
  185 + url: '../billing/billing?invoiceType='+i.invoiceType+'&email='+i.email+'&name='+i.name+'&remark='+i.remark
  186 + });
  187 + }
  188 + },
  189 + filters:{
  190 + invoiceTypeFilter(val){
  191 + console.log(val)
  192 + if(val=='0'){
  193 + return '个人'
  194 + }
  195 + if(val=='1'){
  196 + return '企业'
  197 + }
  198 + }
  199 + }
  200 +}
91 201 </script>
92 202  
93 203 <style lang="scss">
94   - .elec-card {
95   - width: 100%;
96   - height: 64upx;
97   - padding: 22upx 30upx;
98   -
99   - border-bottom: 1px solid #e5e5e5;
100   - }
101   -
102   - .elec-card-left {
103   - width: 70%;
104   - height: 64upx;
105   -
106   - }
107   -
108   - .elec-card-right {
109   - width: 30%;
110   - height: 64upx;
111   - line-height: 64upx;
112   - }
113   -
114   - .elec-card-msg {
115   - line-height: 32upx;
116   - color: rgba(0, 0, 0, .7);
117   -
118   - }
119   -
120   - .billing-all {
121   - position: fixed;
122   - bottom: 0;
123   - left: 0;
124   - width: 100%;
125   - height: 46px;
126   - line-height: 46px;
127   - // font-size: 24px;
128   -
129   - }
  204 + .elec-card {
  205 + width: 100%;
  206 + height: 64upx;
  207 + padding: 22upx 30upx;
  208 +
  209 + border-bottom: 1px solid #e5e5e5;
  210 + }
  211 +
  212 + .elec-card-left {
  213 + width: 70%;
  214 + height: 64upx;
  215 +
  216 + }
  217 +
  218 + .elec-card-right {
  219 + width: 26%;
  220 + height: 64upx;
  221 + line-height: 64upx;
  222 + }
  223 +
  224 + .elec-card-msg {
  225 + line-height: 32upx;
  226 + color: rgba(0, 0, 0, .7);
  227 +
  228 + }
  229 +
  230 + .billing-all {
  231 + position: fixed;
  232 + bottom: 0;
  233 + left: 0;
  234 + width: 100%;
  235 + height: 46px;
  236 + line-height: 46px;
  237 + // font-size: 24px;
  238 +
  239 + }
130 240 </style>
... ...