1.省级-月结缴费
2.去除三级协会显示
Showing
9 changed files
with
418 additions
and
12 deletions
| ... | @@ -1163,4 +1163,26 @@ export function getMyCertStage() { | ... | @@ -1163,4 +1163,26 @@ export function getMyCertStage() { |
| 1163 | url: `/member/certified/getMyCertStage`, | 1163 | url: `/member/certified/getMyCertStage`, |
| 1164 | method: 'get' | 1164 | method: 'get' |
| 1165 | }) | 1165 | }) |
| 1166 | } | ||
| 1167 | // 月结列表 | ||
| 1168 | export function mentDocList(data) { | ||
| 1169 | return request({ | ||
| 1170 | url: '/person/paymentDocYj/list', | ||
| 1171 | method: 'get', | ||
| 1172 | params: data | ||
| 1173 | }) | ||
| 1174 | } | ||
| 1175 | // 个人会员月结缴费单 | ||
| 1176 | export function downJiaoYJFei(arr) { | ||
| 1177 | return request({ | ||
| 1178 | url: `/person/paymentDocYj/downJiaoFei/${arr}`, | ||
| 1179 | method: 'post' | ||
| 1180 | }) | ||
| 1181 | } | ||
| 1182 | |||
| 1183 | export function queryProcess(id) { | ||
| 1184 | return request({ | ||
| 1185 | url: `/system/fileInfo/queryProcess/${id}`, | ||
| 1186 | method: 'get' | ||
| 1187 | }) | ||
| 1166 | } | 1188 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -4,12 +4,12 @@ | ... | @@ -4,12 +4,12 @@ |
| 4 | 4 | ||
| 5 | // staging 会员系统 | 5 | // staging 会员系统 |
| 6 | // const baseUrl_api = "http://22yidpjzjifv.ngrok.xiaomiqiu123.top/stage-api/"; | 6 | // const baseUrl_api = "http://22yidpjzjifv.ngrok.xiaomiqiu123.top/stage-api/"; |
| 7 | // const baseUrl_api = "http://123.60.96.243/stage-api/"; | 7 | // const baseUrl_api = "http://36.153.235.222:7899/stage-api"; |
| 8 | // const baseUrl_api = 'http://192.168.1.130:8787' | 8 | // const baseUrl_api = 'http://192.168.1.130:8787' |
| 9 | // const baseUrl_api = 'https://ztx.itechtop.cn/stage-api' | 9 | // const baseUrl_api = 'https://ztx.itechtop.cn/stage-api' |
| 10 | // const baseUrl_api = 'https://tkcn.19wk.cn:8443/stage-api' | 10 | const baseUrl_api = 'https://tkcn.19wk.cn:8443/stage-api' |
| 11 | 11 | ||
| 12 | const baseUrl_api = 'https://system.taekwondo.org.cn/stage-api' | 12 | // const baseUrl_api = 'https://system.taekwondo.org.cn/stage-api' |
| 13 | export default { | 13 | export default { |
| 14 | baseUrl_api | 14 | baseUrl_api |
| 15 | } | 15 | } | ... | ... |
| ... | @@ -64,7 +64,8 @@ | ... | @@ -64,7 +64,8 @@ |
| 64 | dType: 4, | 64 | dType: 4, |
| 65 | status: 2 | 65 | status: 2 |
| 66 | }) | 66 | }) |
| 67 | const navs = ref(['道馆', '三级协会', '二级协会', '一级协会']) | 67 | const navs = ref(['道馆', '二级协会', '一级协会']) |
| 68 | // const navs = ref(['道馆', '三级协会', '二级协会', '一级协会']) | ||
| 68 | const list = ref([]) | 69 | const list = ref([]) |
| 69 | const paging = ref(null) | 70 | const paging = ref(null) |
| 70 | const forms = ref({}) | 71 | const forms = ref({}) |
| ... | @@ -79,9 +80,11 @@ | ... | @@ -79,9 +80,11 @@ |
| 79 | deptType.value = app.globalData.deptType | 80 | deptType.value = app.globalData.deptType |
| 80 | // 部门类型 1:中跆协 2:省 3:直属 4:市 5:区 6: 团体 | 81 | // 部门类型 1:中跆协 2:省 3:直属 4:市 5:区 6: 团体 |
| 81 | if (deptType.value == 2 || deptType.value == 3) { | 82 | if (deptType.value == 2 || deptType.value == 3) { |
| 82 | navs.value = ['道馆', '三级协会', '二级协会'] | 83 | // navs.value = ['道馆', '三级协会', '二级协会'] |
| 84 | navs.value = ['道馆', '二级协会'] | ||
| 83 | } else if (deptType.value == 4) { | 85 | } else if (deptType.value == 4) { |
| 84 | navs.value = ['道馆', '三级协会'] | 86 | // navs.value = ['道馆', '三级协会'] |
| 87 | navs.value = ['道馆'] | ||
| 85 | } | 88 | } |
| 86 | getList() | 89 | getList() |
| 87 | getGroupInfo() | 90 | getGroupInfo() | ... | ... |
| ... | @@ -354,6 +354,30 @@ | ... | @@ -354,6 +354,30 @@ |
| 354 | "navigationBarTitleText" : "合并审核", | 354 | "navigationBarTitleText" : "合并审核", |
| 355 | "enablePullDownRefresh" : false | 355 | "enablePullDownRefresh" : false |
| 356 | } | 356 | } |
| 357 | }, | ||
| 358 | { | ||
| 359 | "path" : "monthFee", | ||
| 360 | "style" : | ||
| 361 | { | ||
| 362 | "navigationBarTitleText" : "月结缴费", | ||
| 363 | "enablePullDownRefresh" : false | ||
| 364 | } | ||
| 365 | }, | ||
| 366 | { | ||
| 367 | "path" : "webview/webview", | ||
| 368 | "style" : | ||
| 369 | { | ||
| 370 | "navigationBarTitleText" : "下载", | ||
| 371 | "enablePullDownRefresh" : false | ||
| 372 | } | ||
| 373 | }, | ||
| 374 | { | ||
| 375 | "path" : "monthFeeDetail", | ||
| 376 | "style" : | ||
| 377 | { | ||
| 378 | "navigationBarTitleText" : "月结详情", | ||
| 379 | "enablePullDownRefresh" : false | ||
| 380 | } | ||
| 357 | }] | 381 | }] |
| 358 | }, { | 382 | }, { |
| 359 | "root": "group", | 383 | "root": "group", | ... | ... |
| ... | @@ -80,7 +80,11 @@ | ... | @@ -80,7 +80,11 @@ |
| 80 | </view> | 80 | </view> |
| 81 | <view @click="goPath('/personalVip/feeBill')"> | 81 | <view @click="goPath('/personalVip/feeBill')"> |
| 82 | <image :src="config.baseUrl_api+'/fs/static/icon/6.png'" /> | 82 | <image :src="config.baseUrl_api+'/fs/static/icon/6.png'" /> |
| 83 | 会员缴费单 | 83 | 缴费单 |
| 84 | </view> | ||
| 85 | <view @click="goPath('/personalVip/monthFee')"> | ||
| 86 | <image :src="config.baseUrl_api+'/fs/static/icon/30.png'" /> | ||
| 87 | 月结缴费 | ||
| 84 | </view> | 88 | </view> |
| 85 | <view @click="goPath('/personalVip/changeVip')"> | 89 | <view @click="goPath('/personalVip/changeVip')"> |
| 86 | <image :src="config.baseUrl_api+'/fs/static/icon/25.png'" /> | 90 | <image :src="config.baseUrl_api+'/fs/static/icon/25.png'" /> | ... | ... |
| ... | @@ -494,22 +494,22 @@ | ... | @@ -494,22 +494,22 @@ |
| 494 | if(baseFormData.value.idcType=='4'){ | 494 | if(baseFormData.value.idcType=='4'){ |
| 495 | baseFormData.value.idcType='0' | 495 | baseFormData.value.idcType='0' |
| 496 | } | 496 | } |
| 497 | api.addPersonToMyDept(baseFormData.value).then(res => { | 497 | api.addPersonToMyDept(baseFormData.value).then(Response => { |
| 498 | if (res.data == 0) { | 498 | if (Response.data == 0) { |
| 499 | let msg = '该成员,实名认证未通过,注册失败!' | 499 | let msg = '该成员,实名认证未通过,注册失败!' |
| 500 | uni.showModal({ | 500 | uni.showModal({ |
| 501 | content: msg, | 501 | content: msg, |
| 502 | title: '提示', | 502 | title: '提示', |
| 503 | success: function(res) {} | 503 | success: function() {} |
| 504 | }) | 504 | }) |
| 505 | return | 505 | return |
| 506 | } | 506 | } |
| 507 | if (res.data * 1 < 0) { | 507 | if (Response.data * 1 < 0) { |
| 508 | // 会员调入弹出 | 508 | // 会员调入弹出 |
| 509 | uni.showModal({ | 509 | uni.showModal({ |
| 510 | content: '该会员已存在其他道馆,如需添加,请发起会员调动', | 510 | content: '该会员已存在其他道馆,如需添加,请发起会员调动', |
| 511 | title: '提示', | 511 | title: '提示', |
| 512 | success: function(res) {} | 512 | success: function() {} |
| 513 | }) | 513 | }) |
| 514 | return | 514 | return |
| 515 | } | 515 | } | ... | ... |
personalVip/monthFee.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <!-- 月结 --> | ||
| 4 | <view class="appList"> | ||
| 5 | <view class="appItem" v-for="(item,index) in list" :key="index"> | ||
| 6 | <view class="status" @click="goDetail(item)"> | ||
| 7 | <text v-if="item.settleFlag == 0" class="text-warning">已结算</text> | ||
| 8 | <text v-if="item.settleFlag == 1 && item.payFlag == 0" class="text-success">已上传</text> | ||
| 9 | <text v-if="item.settleFlag == 1 && item.payFlag == 1" class="text-danger">未上传</text> | ||
| 10 | </view> | ||
| 11 | <view class="date" @click="goDetail(item)"> | ||
| 12 | <uni-icons type="calendar-filled" size="16" color="#AD181F"></uni-icons> | ||
| 13 | <text v-if="item.yjTime">下发日期 {{item.yjTime?.slice(0,10)}}</text> | ||
| 14 | </view> | ||
| 15 | <view class="text-primary" @click="goDetail(item)">{{item.yjCode}}</view> | ||
| 16 | <view class="name mt0" @click="goDetail(item)">{{item.yjName}}</view> | ||
| 17 | |||
| 18 | <view class="flexbox" style="margin-bottom: 20rpx;" @click="goDetail(item)"> | ||
| 19 | <view> | ||
| 20 | 缴费凭证 | ||
| 21 | <view> | ||
| 22 | <text v-if="item.payFlag == 0" class="text-success">已上传</text> | ||
| 23 | <text v-else class="text-danger">未上传</text> | ||
| 24 | </view> | ||
| 25 | </view> | ||
| 26 | <view> | ||
| 27 | 结算单数量 | ||
| 28 | <view>{{item.recordCount}}</view> | ||
| 29 | </view> | ||
| 30 | <view> | ||
| 31 | 费用合计 | ||
| 32 | <view> <text>¥{{item.recordTotalFee}}</text></view> | ||
| 33 | </view> | ||
| 34 | |||
| 35 | </view> | ||
| 36 | <view class="pp"> | ||
| 37 | 结算单日期范围:{{item.timeRange}} | ||
| 38 | </view> | ||
| 39 | <view class="pp"> | ||
| 40 | <text v-if="item.payTime">结算日期:{{item.payTime?.slice(0,10)}}</text> | ||
| 41 | </view> | ||
| 42 | <view class="func"> | ||
| 43 | <button | ||
| 44 | @click="handleUpdate(item)" v-if="item.settleFlag != 0">上传凭证 | ||
| 45 | </button> | ||
| 46 | <button @click="handleDownload(item)" >下载缴费通知单</button> | ||
| 47 | </view> | ||
| 48 | </view> | ||
| 49 | </view> | ||
| 50 | <view class="nodata" v-if="list.length==0"> | ||
| 51 | <image mode="aspectFit" src="/static/nodata.png"></image> | ||
| 52 | <text>暂无数据</text> | ||
| 53 | </view> | ||
| 54 | <view style="height:200rpx;"></view> | ||
| 55 | <!-- 上传凭证 --> | ||
| 56 | <uni-popup ref="UpPop" type="bottom" background-color="#fff" animation> | ||
| 57 | <view class="popBody"> | ||
| 58 | <uni-forms v-model="form"> | ||
| 59 | <uni-forms-item label="缴费日期" required> | ||
| 60 | <uni-datetime-picker v-model="form.payTime"></uni-datetime-picker> | ||
| 61 | </uni-forms-item> | ||
| 62 | <uni-forms-item label="缴费凭证" required> | ||
| 63 | |||
| 64 | <uni-file-picker limit="1" file-mediatype="all" file-extname="png,jpg,jpeg,pdf,zip" | ||
| 65 | @select="selectFile" | ||
| 66 | @progress="fileProgress" @delete="delSupplementFile(index)"></uni-file-picker> | ||
| 67 | </uni-forms-item> | ||
| 68 | <uni-forms-item label="备注"> | ||
| 69 | <uni-easyinput v-model="form.remark" type="textarea"></uni-easyinput> | ||
| 70 | </uni-forms-item> | ||
| 71 | </uni-forms> | ||
| 72 | |||
| 73 | <button class="btn-red" @click="uploadSure">确定</button> | ||
| 74 | </view> | ||
| 75 | </uni-popup> | ||
| 76 | </view> | ||
| 77 | </template> | ||
| 78 | |||
| 79 | <script setup> | ||
| 80 | import * as api from '@/common/api.js' | ||
| 81 | import config from '@/config.js' | ||
| 82 | import { | ||
| 83 | onMounted, | ||
| 84 | ref | ||
| 85 | } from 'vue' | ||
| 86 | import { | ||
| 87 | onShow | ||
| 88 | } from '@dcloudio/uni-app' | ||
| 89 | const app = getApp(); | ||
| 90 | const list = ref([]) | ||
| 91 | const deptType = ref('') | ||
| 92 | const UpPop = ref(null) | ||
| 93 | const form = ref({ | ||
| 94 | docId:'', | ||
| 95 | payTime:'', | ||
| 96 | url:'', | ||
| 97 | remark:'' | ||
| 98 | }) | ||
| 99 | onShow(() => { | ||
| 100 | if (app.globalData.isLogin) { | ||
| 101 | init() | ||
| 102 | } else { | ||
| 103 | app.firstLoadCallback = () => { | ||
| 104 | init() | ||
| 105 | }; | ||
| 106 | } | ||
| 107 | }) | ||
| 108 | |||
| 109 | function init() { | ||
| 110 | getList() | ||
| 111 | } | ||
| 112 | |||
| 113 | function getList() { | ||
| 114 | api.mentDocList().then(res => { | ||
| 115 | list.value = res.rows | ||
| 116 | }) | ||
| 117 | } | ||
| 118 | |||
| 119 | function handleUpdate(item) { | ||
| 120 | form.value.yjId = item.yjId | ||
| 121 | UpPop.value.open() | ||
| 122 | } | ||
| 123 | let selectFileValue = {} | ||
| 124 | function selectFile(e) { | ||
| 125 | let file = e.tempFiles[0] | ||
| 126 | if(!file){ | ||
| 127 | return | ||
| 128 | } | ||
| 129 | api.uploadFile(e).then(data => { | ||
| 130 | selectFileValue = { | ||
| 131 | url: data.msg, | ||
| 132 | name: file.name, | ||
| 133 | extname: file.extname | ||
| 134 | } | ||
| 135 | |||
| 136 | form.value.url=JSON.stringify([selectFileValue]) | ||
| 137 | }); | ||
| 138 | } | ||
| 139 | function fileProgress(e) { | ||
| 140 | console.log('progress:'+ e) | ||
| 141 | } | ||
| 142 | function delSupplementFile(index) { | ||
| 143 | selectFileValue = {} | ||
| 144 | } | ||
| 145 | function uploadSure(){ | ||
| 146 | console.log(form.value) | ||
| 147 | api.commitPaymentVoucher(form.value).then(res=>{ | ||
| 148 | UpPop.value.close() | ||
| 149 | form.value = {} | ||
| 150 | uni.showToast({ | ||
| 151 | icon:'none', | ||
| 152 | title:'操作成功' | ||
| 153 | }) | ||
| 154 | getList() | ||
| 155 | }) | ||
| 156 | } | ||
| 157 | function goDetail(item) { | ||
| 158 | //详情 | ||
| 159 | console.log(item.yjId) | ||
| 160 | // let path = `/personalVip/feeBillDetail?docId=${item.docId}` | ||
| 161 | let path = `/personalVip/monthFeeDetail?id=${item.yjId}` | ||
| 162 | uni.navigateTo({ | ||
| 163 | url: path | ||
| 164 | }); | ||
| 165 | } | ||
| 166 | function handleDownload(item){ | ||
| 167 | // let url = `/download?arr=${item.yjId}&type=batchMemberYJFeeBill` | ||
| 168 | uni.showLoading({ | ||
| 169 | title:'加载中' | ||
| 170 | }) | ||
| 171 | api.downJiaoYJFei(item.yjId).then(res=>{ | ||
| 172 | circulation(res.data) | ||
| 173 | }) | ||
| 174 | } | ||
| 175 | function circulation(id) { | ||
| 176 | api.queryProcess(id).then(res=>{ | ||
| 177 | if (res.data.url) { | ||
| 178 | uni.hideLoading() | ||
| 179 | goWebView(config.baseUrl_api + res.data.url) | ||
| 180 | } else { | ||
| 181 | circulation(id) | ||
| 182 | } | ||
| 183 | }) | ||
| 184 | } | ||
| 185 | function goWebView(url) { | ||
| 186 | url = url.replace("http://", "https://") | ||
| 187 | uni.showLoading({ | ||
| 188 | title: '下载中' | ||
| 189 | }); | ||
| 190 | uni.downloadFile({ | ||
| 191 | url: url, | ||
| 192 | success: function(res) { | ||
| 193 | uni.hideLoading(); | ||
| 194 | var filePath = res.tempFilePath; | ||
| 195 | uni.showLoading({ | ||
| 196 | title: '正在打开' | ||
| 197 | }); | ||
| 198 | uni.openDocument({ | ||
| 199 | filePath: filePath, | ||
| 200 | showMenu: true, | ||
| 201 | success: function(res) { | ||
| 202 | uni.hideLoading(); | ||
| 203 | }, | ||
| 204 | fail: function(err) { | ||
| 205 | uni.hideLoading(); | ||
| 206 | uni.showToast({ | ||
| 207 | title: err, | ||
| 208 | icon: 'none', | ||
| 209 | duration: 2000 | ||
| 210 | }); | ||
| 211 | } | ||
| 212 | }); | ||
| 213 | }, | ||
| 214 | fail: function(error) { | ||
| 215 | uni.hideLoading(); | ||
| 216 | uni.showToast({ | ||
| 217 | title: `下载失败`, | ||
| 218 | icon: 'none', | ||
| 219 | duration: 2000 | ||
| 220 | }); | ||
| 221 | } | ||
| 222 | }); | ||
| 223 | } | ||
| 224 | </script> | ||
| 225 | |||
| 226 | <style scoped lang="scss"> | ||
| 227 | .popBody { | ||
| 228 | font-size: 28rpx; | ||
| 229 | line-height: 1.5; | ||
| 230 | overflow: auto; | ||
| 231 | padding: 30rpx; | ||
| 232 | |||
| 233 | .btn-red { | ||
| 234 | margin: 50rpx 0 30rpx; | ||
| 235 | } | ||
| 236 | } | ||
| 237 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
personalVip/monthFeeDetail.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <view class="appList"> | ||
| 4 | <view class="appItem" v-for="(item,index) in list" :key="index"> | ||
| 5 | <view class="status" @click="goDetail(item)"> | ||
| 6 | <text v-if="item.record.auditStatus==0" class="text-primary">审核中</text> | ||
| 7 | <text v-if="item.record.auditStatus==1" class="text-success"> 审核通过</text> | ||
| 8 | <text v-if="item.record.auditStatus==2" class="text-danger"> 审核拒绝</text> | ||
| 9 | <text v-if="item.record.auditStatus==3" class="text-warning">已撤回</text> | ||
| 10 | </view> | ||
| 11 | <view class="date" @click="goDetail(item)"> | ||
| 12 | <text v-if="item.record?.overDate">{{item.record?.overDate?.slice(0,10)}} 审核</text> | ||
| 13 | </view> | ||
| 14 | <view class="text-primary" @click="goDetail(item)">{{item.wfCode}}</view> | ||
| 15 | <view class="name mt0" @click="goDetail(item)">{{item.finalDocName}}</view> | ||
| 16 | <view class="flexbox" @click="goDetail(item)"> | ||
| 17 | <view v-if="item.payNoticeSendTime"> | ||
| 18 | 下发日期 | ||
| 19 | <view>{{item.payNoticeSendTime?.slice(0,10)}}</view> | ||
| 20 | </view> | ||
| 21 | <view> | ||
| 22 | 人数 | ||
| 23 | <view>{{item.personCount}}</view> | ||
| 24 | </view> | ||
| 25 | <view> | ||
| 26 | 年限合计 | ||
| 27 | <view>{{item.yearCount}}</view> | ||
| 28 | </view> | ||
| 29 | <view> | ||
| 30 | 费用合计 | ||
| 31 | <view>¥{{item.allPrice}}</view> | ||
| 32 | </view> | ||
| 33 | |||
| 34 | </view> | ||
| 35 | </view> | ||
| 36 | </view> | ||
| 37 | <view class="nodata" v-if="list.length==0"> | ||
| 38 | <image mode="aspectFit" src="/static/nodata.png"></image> | ||
| 39 | <text>暂无数据</text> | ||
| 40 | </view> | ||
| 41 | <view style="height:200rpx;"></view> | ||
| 42 | </view> | ||
| 43 | </template> | ||
| 44 | |||
| 45 | <script setup> | ||
| 46 | import * as api from '@/common/api.js' | ||
| 47 | import config from '@/config.js' | ||
| 48 | import {ref} from 'vue' | ||
| 49 | import { onLoad } from '@dcloudio/uni-app' | ||
| 50 | const app = getApp() | ||
| 51 | const list = ref([]) | ||
| 52 | const queryParams = ref({ | ||
| 53 | yjId:'' | ||
| 54 | }) | ||
| 55 | const statistical = ref({}) | ||
| 56 | onLoad((option) => { | ||
| 57 | if (app.globalData.isLogin) { | ||
| 58 | queryParams.value.yjId = option.id | ||
| 59 | init() | ||
| 60 | } else { | ||
| 61 | app.firstLoadCallback = () => { | ||
| 62 | queryParams.value.yjId = option.id | ||
| 63 | init() | ||
| 64 | }; | ||
| 65 | } | ||
| 66 | |||
| 67 | }) | ||
| 68 | function init(){ | ||
| 69 | uni.showLoading({ | ||
| 70 | title:"加载中" | ||
| 71 | }) | ||
| 72 | api.getFeeBillList(queryParams.value).then(res=>{ | ||
| 73 | list.value = res.rows | ||
| 74 | list.value.forEach(item => { | ||
| 75 | item.payEvidence = JSON.parse(item.payEvidence) | ||
| 76 | try { | ||
| 77 | item.record.content = JSON.parse(item.record.content) | ||
| 78 | } catch (e) { | ||
| 79 | console.log(e) | ||
| 80 | } | ||
| 81 | uni.hideLoading() | ||
| 82 | }) | ||
| 83 | }) | ||
| 84 | } | ||
| 85 | function goDetail(item) { | ||
| 86 | //详情 | ||
| 87 | console.log(item.docId) | ||
| 88 | let path = `/personalVip/feeBillDetail?docId=${item.docId}` | ||
| 89 | uni.navigateTo({ | ||
| 90 | url: path | ||
| 91 | }); | ||
| 92 | } | ||
| 93 | </script> | ||
| 94 | |||
| 95 | <style lang="scss" scoped> | ||
| 96 | |||
| 97 | </style> |
personalVip/webview/webview.vue
0 → 100644
| 1 | <template> | ||
| 2 | <view> | ||
| 3 | <web-view :src="config.baseUrl_api + downloadUrl"></web-view> | ||
| 4 | </view> | ||
| 5 | </template> | ||
| 6 | |||
| 7 | <script setup> | ||
| 8 | import {ref} from 'vue' | ||
| 9 | import {onLoad} from '@dcloudio/uni-app' | ||
| 10 | import config from '@/config.js' | ||
| 11 | const downloadUrl = ref('') | ||
| 12 | onLoad(option => { | ||
| 13 | downloadUrl.value = option.downloadUrl | ||
| 14 | }) | ||
| 15 | </script> | ||
| 16 | |||
| 17 | <style scoped lang="scss"> | ||
| 18 | |||
| 19 | </style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or sign in to post a comment