Commit ad7d1a78891d20834ff6f8bf64a82e09342edab6

Authored by 杨鑫
1 parent 53fc345a

'最新'

Showing 35 changed files with 3525 additions and 2698 deletions
admin-web-master/dist.zip
No preview for this file type
admin-web-master/public/canvas.html
... ... @@ -5,7 +5,8 @@
5 5 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6 6 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
7 7  
8   - <title><%= webpackConfig.name %></title>
  8 + <!-- <title><%= webpackConfig.name %></title> -->
  9 + <title>招商服务系统</title>
9 10 </head>
10 11 <body>
11 12 <noscript>
... ...
admin-web-master/public/index.html
... ... @@ -5,7 +5,8 @@
5 5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 6 <meta name="viewport" content="width=device-width,initial-scale=1.0">
7 7 <link rel="icon" href="<%= BASE_URL %>favicon.ico">
8   - <title><%= htmlWebpackPlugin.options.title %></title>
  8 + <!-- <title><%= htmlWebpackPlugin.options.title %></title> -->
  9 + <title>招商服务系统</title>
9 10 <!-- 删除: <script src="https://map.qq.com/api/js?v=2.exp&key=YOUR_API_KEY&callback=initMap"></script> -->
10 11 <script src="https://map.qq.com/api/js?v=2.exp&key=PGRBZ-Z3FRJ-DTYFB-XNX4X-DC6HZ-MCFYU"></script>
11 12 <script src="https://map.qq.com/api/gljs?v=1.exp&key=PGRBZ-Z3FRJ-DTYFB-XNX4X-DC6HZ-MCFYU"></script>
... ...
admin-web-master/src/api/online.js
... ... @@ -8,10 +8,18 @@ export function MerchantQRcode(data) {
8 8 })
9 9 }
10 10  
11   -// 对账明细
  11 +// 明细查询
12 12 export function merchantQueries(data) {
13 13 return request({
14   - url: '/aggregationPayment/merchantQueriesOrderDetails',
  14 + url: '/onlineTransaction/detailQuery',
  15 + method: 'post',
  16 + data
  17 + })
  18 +}
  19 +// 对账明细
  20 +export function reconciliationDetail(data) {
  21 + return request({
  22 + url: '/onlineTransaction/reconciliationDetail',
15 23 method: 'post',
16 24 data
17 25 })
... ... @@ -70,13 +78,20 @@ export function consumerTrends(data) {
70 78 // 报表导出
71 79 export function excelMerchantQueriesOrderDetails(data) {
72 80 return request({
73   - url: '/aggregationPayment/excelMerchantQueriesOrderDetails',
  81 + url: '/onlineTransaction/excelReportDownload',
74 82 method: 'post',
75 83 data,
76 84 responseType: 'blob'
77 85 })
78 86 }
79   -
  87 +// 报表下载列表
  88 +export function reportDownload(data) {
  89 + return request({
  90 + url: '/onlineTransaction/reportDownload',
  91 + method: 'post',
  92 + data,
  93 + })
  94 +}
80 95 // 对账
81 96 export function reconciliation(data) {
82 97 return request({
... ... @@ -101,3 +116,19 @@ export function excelGetAll(data) {
101 116 responseType: 'blob'
102 117 })
103 118 }
  119 +// 对账订单
  120 +export function orderGetAll(data) {
  121 + return request({
  122 + url: '/order/getAllS',
  123 + method: 'post',
  124 + data
  125 + })
  126 +}
  127 +// 对账分析
  128 +export function reconciliationAnalysis(data) {
  129 + return request({
  130 + url: '/onlineTransaction/reconciliationAnalysis',
  131 + method: 'post',
  132 + data
  133 + })
  134 +}
104 135 \ No newline at end of file
... ...
admin-web-master/src/settings.js
1 1 module.exports = {
2 2  
3   - title: '锦江绿道-平台端',
  3 + title: '招商服务系统',
4 4  
5 5 /**
6 6 * @type {boolean} true | false
... ...
admin-web-master/src/utils/get-page-title.js
... ... @@ -4,7 +4,8 @@ const title = defaultSettings.title || &#39;Vue Admin Template&#39;
4 4  
5 5 export default function getPageTitle(pageTitle) {
6 6 if (pageTitle) {
7   - return `${pageTitle} - ${title}`
  7 + // return `${pageTitle} - ${title}`
  8 + return `${title}`
8 9 }
9 10 return `${title}`
10 11 }
... ...
admin-web-master/src/utils/request.js
... ... @@ -18,7 +18,7 @@ if(host === &#39;localhost:8080&#39; || host === &#39;localhost:8081&#39; || host === &#39;localhost
18 18  
19 19 // baseURL = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/admin-server';
20 20 // baseURL = process.env.VUE_APP_DOMAIN_PREFIX_1;
21   - baseURL = 'http://128.10.249.48:9003';
  21 + baseURL = 'http://128.10.249.26:9003';
22 22  
23 23 } else {
24 24 console.error('---------------------')
... ... @@ -31,12 +31,12 @@ if(host === &#39;localhost:8080&#39; || host === &#39;localhost:8081&#39; || host === &#39;localhost
31 31 // const baseURL = process.env.VUE_APP_DOMAIN_PREFIX
32 32 // create an axios instance
33 33 Vue.prototype.axios = axios
34   -axios.defaults.timeout = 1000000
  34 +axios.defaults.timeout = 100000
35 35 const service = axios.create({
36 36 // baseURL:'/cdwlMall/meserver/admin-server/', // url = base url + request url
37 37 baseURL, // url = base url + request url
38 38 // withCredentials: true, // send cookies when cross-domain requests
39   - timeout: 1000000 // request timeout
  39 + timeout: 100000 // request timeout
40 40 })
41 41 // export const upurl = baseURL
42 42 export const uploadUrl = `${baseURL}/miniio/upload`
... ...
admin-web-master/src/views/online/chartAnalysis/index.vue
... ... @@ -24,7 +24,7 @@
24 24 </el-form-item>
25 25 </el-form>
26 26 </div>
27   - <div class="zhuti">
  27 + <div style="padding: 10px 0;">
28 28 <div style="display: flex;">
29 29 <div style="width:100%;background-color: #fff;padding:20px 20px 10px 20px;margin-right:20px;">
30 30 <div style="">支付渠道监控</div>
... ... @@ -32,6 +32,23 @@
32 32 <div style="height:350px;width:100%" ref="shopBing">
33 33 </div>
34 34 </div>
  35 + <div style="width:100%;background-color: #fff;padding:20px 20px 10px 20px;">
  36 + <div>交易成功率</div>
  37 + <div style="background-color: #F4F4F4;height: 2px;margin:20px 0 10px 0"></div>
  38 + <div class="card_body">{{transactionSuccessRates.totalSuccessRate}}%</div>
  39 +
  40 + <div style="display:flex;justify-content: space-between;" class="card_tu">
  41 + <div style="width:100%;height:15px;position: relative;background-color: #F1F2F5;margin-top: 20px;">
  42 + <div style="position: absolute;top: 0;left: 0;background-color: #448EF7;height:15px;" :style="`width:${transactionSuccessRates.thisWeekSuccessRate?transactionSuccessRates.totalSuccessRate:0}%`"></div>
  43 + </div>
  44 + </div>
  45 + <div style="background-color: #F4F4F4;height: 2px;margin:20px 0 10px 0"></div>
  46 + <div>
  47 + 周同比<i class="el-icon-caret-top" v-if="transactionSuccessRates.changeDirection&&transactionSuccessRates.changeDirection=='上升'" style="color:green;padding: 0 5px;"></i><i class="el-icon-caret-top" v-if="transactionSuccessRates.changeDirection&&transactionSuccessRates.changeDirection=='下降'" style="color:red;padding: 0 5px;"></i><span :style="transactionSuccessRates.changeDirection&&transactionSuccessRates.changeDirection=='上升'?'color:green':transactionSuccessRates.changeDirection&&transactionSuccessRates.changeDirection=='下降'?'color:red':''">{{transactionSuccessRates.changeAmount}}</span>
  48 +
  49 + </div>
  50 + </div>
  51 + </div>
35 52  
36 53 </div>
37 54  
... ... @@ -62,10 +79,11 @@
62 79 tabTitle: '',
63 80 jiaosucc:78,
64 81 pageindex:{
65   - startTime:"2024-09-11",
  82 + startTime:"2020-09-11",
66 83 endTime:"2024-11-09"
67 84 },
68   - Time:[]
  85 + Time:[],
  86 + transactionSuccessRates:{}
69 87 }
70 88 },
71 89 computed: {},
... ... @@ -73,11 +91,19 @@
73 91  
74 92 },
75 93 mounted() {
  94 + const now = new Date();
  95 + const year = now.getFullYear();
  96 + const month = String(now.getMonth() + 1).padStart(2, '0')
  97 + const day = String(now.getDate()).padStart(2, '0')
  98 + this.pageindex.endTime= `${year}-${month}-${day}`
76 99 this.getAll()
  100 +
  101 +
77 102 },
78 103 methods: {
79 104 getAll(){
80 105 chartAnalysis(this.pageindex).then(res=>{
  106 + this.transactionSuccessRates = res.data.transactionSuccessRates
81 107 if(res.data.userTraffics &&res.data.paymentChannels ){
82 108 this.kong(res.data.userTraffics)
83 109 this.shopB(res.data.paymentChannels)
... ... @@ -93,6 +119,7 @@
93 119 shopB(datas){
94 120 let Dom = this.$refs.shopBing
95 121 let myChart = echarts.init(Dom)
  122 + let totalRevenue = datas.reduce((sum, item) => sum + item.price, 0);
96 123 let processedData = datas.map(item => {
97 124 let paymentModeName;
98 125 if (item.paymentMode === 1) {
... ... @@ -107,9 +134,11 @@
107 134 })
108 135  
109 136 let option = {
110   - tooltip: {
111   - trigger: 'item'
112   - },
  137 + tooltip: {
  138 + trigger: 'item',
  139 + // 设置提示框显示在右侧
  140 + position: 'right' ,
  141 + },
113 142 legend: {
114 143 top: '38%',
115 144 left: 'right',
... ... @@ -119,21 +148,22 @@
119 148 {
120 149 name: '营业额',
121 150 type: 'pie',
122   - radius: ['40%', '70%'],
  151 + radius: ['50%', '70%'],
123 152 avoidLabelOverlap: false,
124 153 itemStyle: {
125 154 borderRadius: 10,
126 155 borderColor: '#fff',
127   - borderWidth: 2
  156 + borderWidth: 1,
  157 + color: function(params) {
  158 + return 'green';
  159 + }
128 160 },
129 161 label: {
130 162 show: false,
131   - position: 'center',
132   - fontSize:'16px'
133 163 },
134 164 emphasis: {
135 165 label: {
136   - show: true,
  166 + show: false,
137 167 fontSize: 40,
138 168 }
139 169 },
... ... @@ -142,7 +172,20 @@
142 172 },
143 173 data:processedData
144 174 }
145   - ]
  175 + ],
  176 + // 在中间添加营业额文本
  177 + graphic: [
  178 + {
  179 + type: 'text',
  180 + left: 'center',
  181 + top: 'center',
  182 + style: {
  183 + text: `营业额${totalRevenue}`,
  184 + fontSize: 20,
  185 + fill: '#333'
  186 + }
  187 + }
  188 + ]
146 189 }
147 190 option && myChart.setOption(option)
148 191 },
... ... @@ -154,18 +197,36 @@
154 197 value: item.tradingVolume
155 198 }))
156 199 const option = {
157   - grid: { // 图表距离边框的距离,可用百分比和数字(px)配置
158   - top: '5%',
159   - left: '3%',
160   - right: '10%',
161   - bottom: '5%',
162   - containLabel: true
  200 + tooltip: {
  201 + trigger: 'axis', // 触发类型,折线图常用 axis
  202 + formatter: function (params) {
  203 + // params[0] 取第一个系列的数据(这里只有一个系列)
  204 + return `商家名称:${params[0].name}<br>销售额:${params[0].value}`;
  205 + }
  206 + },
  207 + grid: {
  208 + top: '5%',
  209 + left: '10%', // 增大左侧间距,给 X 轴更多显示空间
  210 + right: '10%',
  211 + bottom: '5%',
  212 + containLabel: true
163 213 },
164 214  
165 215 xAxis: {
166 216 name: '商家名称',
167 217 type: 'category',
168 218 data:processedData.map(item => item.name),
  219 + axisLabel: { interval: 0 }, // 0=显示所有刻度
  220 + axisTick: { interval: 0 }, // 同步显示所有刻度线
  221 + label: {
  222 + // 自定义文本显示规则
  223 + formatter: function (name) {
  224 + if (name.length > 3) { // 超过4字时截断
  225 + return `${name.slice(0, 3)}...`;
  226 + }
  227 + return name;
  228 + }
  229 + }
169 230 },
170 231  
171 232 yAxis: {
... ... @@ -370,6 +431,11 @@
370 431  
371 432 }
372 433  
  434 + .card_body {
  435 + font-size: 24px;
  436 + margin-top: 10px;
  437 + font-weight: 600;
  438 + }
373 439 .card_tree {
374 440 padding: 20px 20px 10px 20px;
375 441 margin-right: 20px;
... ... @@ -377,13 +443,9 @@
377 443  
378 444 .card_title {
379 445 color: #B0B0B0;
  446 + font-size: 16px;
380 447 }
381 448  
382   - .card_body {
383   - font-size: 24px;
384   - margin-top: 10px;
385   - font-weight: 600;
386   - }
387 449  
388 450 .card_tu {
389 451 height: 80px;
... ...
admin-web-master/src/views/online/detailQuery/index.vue
... ... @@ -21,7 +21,7 @@
21 21 placeholder="请输入订单号"
22 22  
23 23 style="width: 168px"
24   - v-model="pageindex.orderNo">
  24 + v-model="pageindex.orderFormId">
25 25 </el-input>
26 26 </el-form-item>
27 27  
... ... @@ -31,46 +31,47 @@
31 31 placeholder="请输入"
32 32  
33 33 style="width: 168px"
34   - v-model="pageindex.minOrderPrice">
  34 + v-model="pageindex.minPrice">
35 35 </el-input>
36 36
37 37 <el-input
38 38 placeholder="请输入"
39 39  
40 40 style="width:168px"
41   - v-model="pageindex.maxOrderPrice">
  41 + v-model="pageindex.maxPrice">
42 42 </el-input>
43 43 </div>
44 44 </el-form-item>
45 45 <el-form-item label="交易状态">
46 46 <el-select
47   - v-model="pageindex.payState "
  47 + v-model="pageindex.paymentState"
48 48 placeholder="请选择"
49 49  
50 50 style="width: 100px;"
51 51 >
52   - <el-option label="PAY_SUCCESS
53   -" value="PAY_SUCCESS
54   -" />
  52 + <el-option label="未支付
  53 +" value="0" />
  54 + <el-option label="已支付
  55 +" value="1" />
55 56 </el-select>
56 57 </el-form-item>
57   - <el-form-item>
58   - <el-button
59   - style="background-color: #3F9B6A;color: #fff;"
60   - @click="onSubmit"
61   - >查询
62   - </el-button>
63   - <el-button
64   -
65   -
66   - class="buttonHover"
67   - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
68   - @click="resetting"
69   - >重置
70   - </el-button>
71   - </el-form-item>
  58 +
72 59 </el-form>
73   -
  60 + <div>
  61 + <el-button
  62 + style="background-color: #3F9B6A;color: #fff;"
  63 + @click="onSubmit"
  64 + >查询
  65 + </el-button>
  66 + <el-button
  67 +
  68 +
  69 + class="buttonHover"
  70 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  71 + @click="resetting"
  72 + >重置
  73 + </el-button>
  74 + </div>
74 75 </div>
75 76 <!-- 表格 -->
76 77 <el-table
... ... @@ -87,7 +88,7 @@
87 88 </el-table-column>
88 89 <el-table-column
89 90 label="订单号"
90   - prop="orderNo"
  91 + prop="orderFormId"
91 92 min-width="12%"
92 93 >
93 94  
... ... @@ -97,65 +98,68 @@
97 98 prop="payId"
98 99 width="auto"
99 100 min-width="12%"
  101 + show-overflow-tooltip
100 102 >
101 103  
102 104 </el-table-column>
103 105 <el-table-column
104 106 label="账单金额"
105   - prop="realAmount"
  107 + prop="price"
106 108 width="auto"
107   - min-width="5%"
  109 + min-width="7%"
108 110 >
109 111  
110 112 </el-table-column>
111 113 <el-table-column
112 114 label="支付方式"
113   - prop="channel"
  115 + prop="paymentMode"
114 116 width="auto"
115 117 min-width="10%"
116 118  
117 119 >
  120 + <template slot-scope="scope">
  121 + {{scope.row.paymentMode=='1'?'微信':''}}
  122 +
  123 + </template>
118 124 </el-table-column>
119 125 <el-table-column
120   - prop="createDate"
  126 + prop="createTime"
121 127 label="交易创建时间"
122 128 width="auto"
123 129 min-width="10%"
124   -
  130 +show-overflow-tooltip
125 131 >
126 132  
127 133 </el-table-column>
128 134 <el-table-column
129   - prop="time"
  135 + prop="payType"
130 136 label="交易类型"
131 137 width="auto"
132 138 min-width="10%"
133 139  
134 140 >
135   -
  141 +<template slot-scope="scope">
  142 + {{scope.row.payType=='1'?'线上支付':''}}
  143 +
  144 + </template>
136 145 </el-table-column>
137 146 <el-table-column
138   - prop="payState"
  147 + prop="paymentState"
139 148 label="交易状态"
140 149 width="auto"
141 150 min-width="10%"
142 151  
143 152 >
144   -
145   - </el-table-column>
146   - <el-table-column
147   - prop="body"
148   - label="营业点"
149   - width="auto"
150   - min-width="10%"
151   -
152   - >
153   -
  153 + <template slot-scope="scope">
  154 + {{scope.row.paymentState=='1'?'已支付':'未支付'}}
  155 +
  156 + </template>
154 157 </el-table-column>
  158 +
155 159 <el-table-column
156 160 label="操作"
157 161 width="auto"
158   - min-width="17%">
  162 + min-width="5%">
159 163 <template slot-scope="scope">
160 164 <div @click="addbuss(scope.row)" class="tableBtn greens">查看</div>
161 165  
... ... @@ -163,16 +167,16 @@
163 167 </el-table-column>
164 168 </el-table>
165 169 <div class="fenye">
  170 + <div>共{{total}}条</div>
166 171 <el-pagination
167 172 class="pagination"
168 173 :hide-on-single-page="flag"
169 174 background
170   - small
171   - :current-page="currentPage"
  175 + :current-page="pageindex.pageNumber+1"
172 176 :page-sizes="[10, 20, 50, 100]"
173   - :page-size="pageSize"
174   - layout="total,sizes,prev, pager,next"
175   - :total="total "
  177 + :page-size="pageindex.pageSize"
  178 + layout="prev, pager,next"
  179 + :total="total"
176 180 @size-change="handleSizeChange"
177 181 @current-change="handleCurrentChange"
178 182 />
... ... @@ -182,20 +186,17 @@
182 186 <el-dialog title="详情" :visible.sync="ggXin" custom-class="diaslog_zhong" style="padding: 0;" width="80%" class="dialog_css_Xq" center :close-on-click-modal="false" :show-close="false" >
183 187 <div >
184 188 <el-descriptions :column="2">
185   - <el-descriptions-item label="用户名称">kooriookami</el-descriptions-item>
186   - <el-descriptions-item label="商户号">18100000000</el-descriptions-item>
187   - <el-descriptions-item label="交易类型">苏州市</el-descriptions-item>
188   - <el-descriptions-item label="交易状态"></el-descriptions-item>
189   - <el-descriptions-item label="订单金额(元)">12</el-descriptions-item>
190   - <el-descriptions-item label="交易金额(元)">12</el-descriptions-item>
191   - <el-descriptions-item label="优惠金额(元)">12</el-descriptions-item>
192   - <el-descriptions-item label="手续费金额(元)">12</el-descriptions-item>
193   - <el-descriptions-item label="交易币种"></el-descriptions-item>
194   - <el-descriptions-item label="交易创建时间"></el-descriptions-item>
195   - <el-descriptions-item label="交易完成时间"></el-descriptions-item>
196   - <el-descriptions-item label="支付工具"></el-descriptions-item>
197   - <el-descriptions-item label="商户订单号"></el-descriptions-item>
198   - <el-descriptions-item label="系统交易订单号"></el-descriptions-item>
  189 + <el-descriptions-item label="用户名称">{{rules.shopName}}</el-descriptions-item>
  190 + <el-descriptions-item label="商户号">{{rules.shopCode}}</el-descriptions-item>
  191 + <el-descriptions-item label="交易类型">{{rules.payType=='1'?'线上支付':''}}</el-descriptions-item>
  192 + <el-descriptions-item label="交易状态">{{rules.payStatus}}</el-descriptions-item>
  193 + <el-descriptions-item label="订单金额(元)">{{rules.price}}</el-descriptions-item>
  194 + <el-descriptions-item label="交易金额(元)">{{rules.realPrice}}</el-descriptions-item>
  195 + <el-descriptions-item label="交易创建时间">{{rules.createTime}}</el-descriptions-item>
  196 + <el-descriptions-item label="交易完成时间">{{rules.payTime}}</el-descriptions-item>
  197 + <el-descriptions-item label="支付工具">{{rules.paymentMode=='1'?'微信':''}}</el-descriptions-item>
  198 + <el-descriptions-item label="商户订单号">{{rules.orderFormId}}</el-descriptions-item>
  199 + <el-descriptions-item label="系统交易订单号">{{rules.subOrderId}}</el-descriptions-item>
199 200 </el-descriptions>
200 201  
201 202 <div style="display: flex;justify-content: flex-end;">
... ... @@ -216,27 +217,17 @@ export default {
216 217 data () {
217 218 return {
218 219 rules: {},
219   - currentPage: 1,
220   - total: 100,
  220 + total: 0,
221 221 flag: false,
222   - pageSize: 10,
223 222 ggXin: false,
224   - formInline: {
225   -paryTime:[]
226   - },
227 223 pageindex: {
228   - orderNo:'',
229   - payState:'',
230   - merchantId:'9E602E5977EC48DEA06D42C67F4C93F0',
231   - page: 1,
232   - limit: 10,
233   - minOrderPrice:'',
234   - maxOrderPrice:'',
235   - orderTimeStart:'2024-1-1 00:00:00',
236   - orderTimeEnd:'',
  224 + orderFormId:'',
  225 + paymentState:'',
  226 + pageSize: 10,
  227 + pageNumber: 0,
  228 + minPrice:'',
  229 + maxPrice:'',
237 230 },
238   - minMach:'',
239   - maxMach:'',
240 231 tableData: []
241 232 }
242 233 },
... ... @@ -246,11 +237,9 @@ paryTime:[]
246 237 },
247 238 methods: {
248 239 async getOrder(){
249   - // this.getFirstDayOfYear()
250   - this.getLastDayOfYear()
251 240 const res = await merchantQueries(this.pageindex)
252   - this.tableData = res.data
253   - this.total = res.data.length
  241 + this.tableData = res.data.content
  242 + this.total = res.data.totalElements
254 243  
255 244 },
256 245 getFirstDayOfYear() {
... ... @@ -276,42 +265,33 @@ paryTime:[]
276 265 },
277 266 addbuss (item) {
278 267 this.ggXin = true
  268 + this.rules = item
279 269 },
280 270  
281 271 onSubmit(){
282 272  
283 273  
284 274 this.getOrder()
285   - // if(this.formInline.paryTime.length !=0){
286   - // this.pageindex.orderTimeStart = this.formInline.paryTime[0]
287   - // this.pageindex.orderTimeEnd = this.formInline.paryTime[1]
288   - // const res = merchantQueries(this.pageindex).then(res=>{
289   - // this.tableData = JSON.parse(res.data).records
290   - // this.total = JSON.parse(res.data).records.length
291   - // })
292   - // }
293 275  
294 276 },
295 277 resetting(){
296 278 this.pageindex={
297   - orderNo:'',
298   - payState:'',
299   - merchantId:'9E602E5977EC48DEA06D42C67F4C93F0',
300   - page: 1,
301   - limit: 10,
302   - minOrderPrice:'',
303   - maxOrderPrice:'',
304   - orderTimeStart:'',
305   - orderTimeEnd:'',
  279 + orderFormId:'',
  280 + paymentState:'',
  281 + pageSize: 10,
  282 + pageNumber: 0,
  283 + minPrice:'',
  284 + maxPrice:'',
306 285 }
307 286 this.getOrder()
308 287  
309 288 },
310   - handleSizeChange(){
  289 + handleSizeChange(val){
311 290  
312 291 },
313   - handleCurrentChange(){
314   -
  292 + handleCurrentChange(val){
  293 + this.pageindex.pageNumber = val-1
  294 + this.getOrder()
315 295 },
316 296 closeFn () {
317 297 this.ggXin = false
... ... @@ -365,7 +345,7 @@ paryTime:[]
365 345 .fenye {
366 346 margin-top: 20px;
367 347 display: flex;
368   - justify-content: flex-start;
  348 + justify-content:space-between;
369 349 position: relative;
370 350 }
371 351  
... ... @@ -425,21 +405,7 @@ paryTime:[]
425 405 /deep/ .el-pagination__total{
426 406 margin-top:4px;
427 407 }
428   -/deep/ .btn-prev{
429   - position:absolute ;
430   - top: 4px;
431   - right: 266px;
432   -}
433   -/deep/ .el-pager{
434   - position:absolute ;
435   - top: 4px;
436   - right: 40px;
437   -}
438   -/deep/ .btn-next{
439   - position:absolute;
440   - top: 4px;
441   - right: 10px;
442   -}
  408 +
443 409 ::v-deep .buttonHover:hover {
444 410 color: #3f9b6a !important;
445 411 border-color: #c5e1d2 !important;
... ...
admin-web-master/src/views/online/reconciliationAnalysis/index.vue
1 1 <template>
2   - <div style="background-color:#f7f7f7;padding:10px 10px;">
3   - <div style="padding: 0 20px;background-color:#fff;">
4   - <div style="height:58px;line-height:58px;">
5   - <div style="color:#0006"> <span>联机交易</span> <span style="padding:0 5px;">></span> <span style="color:#000000e6">对账分析</span></div>
6   - </div>
7   - <el-calendar v-model="value">
8   - </el-calendar>
9   - </div>
10   - </div>
  2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div class="zhuti" v-if="ontype == '1'">
  4 + <div style="height:58px;line-height:58px;">
  5 + <div style="color:#0006"> <span>联机交易</span> <span style="padding:0 5px;">></span> <span
  6 + style="color:#000000e6">对账分析</span></div>
  7 + </div>
  8 + <!-- 搜索 -->
  9 + <div class="formSearch">
  10 + <el-form :inline="true" :model="formSel">
  11 + <el-form-item label="年月">
  12 + <el-date-picker style="width: 100%;" v-model="formSel.yytime" value-format="yyyy-MM"
  13 + type="month" placeholder="选择日期">
  14 + </el-date-picker>
  15 + </el-form-item>
  16 +
  17 +
  18 + </el-form>
  19 + <div>
  20 + <el-button style="background-color: #3F9B6A;color: #fff" @click="onSubmit">查询
  21 + </el-button>
  22 + <el-button class="buttonHover"
  23 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;" @click="resetting">重置
  24 + </el-button>
  25 + </div>
  26 +
  27 + </div>
  28 +
  29 + <div>
  30 + <el-calendar v-model="morenCard">
  31 + <template slot="dateCell" slot-scope="{date, data}">
  32 + {{data.day.split("-").slice(2).join("-")}}
  33 + <div style="overflow: auto;height:75px;">
  34 + <div style="width:100%," v-for="(item,index) in tableData"
  35 + @click="genjinMsg(item,data.day)">
  36 + <div style="font-size:12px;margin-top:10px;">
  37 +
  38 + <div v-if="item.nowDay == data.day && val.count!=0"
  39 + v-for="val in item.checkTypes"
  40 + :style="val.checkType==0?'color:red':val.checkType==1?'color:green':val.checkType==2?'':''">
  41 + {{val.checkType==0?'未对账':val.checkType==1?'平账':val.checkType==2?'金额不符':''}}:{{val.count}}
  42 + </div>
  43 +
  44 + </div>
  45 + </div>
  46 + </div>
  47 + </template>
  48 + </el-calendar>
  49 + </div>
  50 + <div>
  51 + <el-button class="buttonHover" style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  52 + @click="closeGenjin">返回
  53 + </el-button>
  54 + </div>
  55 + </div>
  56 + <div class="zhuti" v-if="ontype == '3'">
  57 + <div style="height:58px;line-height:58px;">
  58 + <div style="color:#0006"> <span>联机交易</span> <span style="padding:0 5px;">></span> <span
  59 + style="color:#000000e6">对账明细</span></div>
  60 + </div>
  61 + <div class="formSearch">
  62 + <el-form :inline="true" :model="listIndex" label-position="left">
  63 + <el-form-item label="账单金额">
  64 + <div>
  65 + <el-input placeholder="请输入" style="width: 168px" v-model="listIndex.minPrice">
  66 + </el-input>
  67 + 至
  68 + <el-input placeholder="请输入" style="width:168px" v-model="listIndex.maxPrice">
  69 + </el-input>
  70 + </div>
  71 + </el-form-item>
  72 +
  73 + <el-form-item label="核对状态">
  74 + <el-select v-model="listIndex.checkType" placeholder="请选择" style="width: 100px;">
  75 + <el-option label="未对账" value="0" />
  76 + <el-option label="平账" value="1" />
  77 + <el-option label="金额不符" value="2" />
  78 + </el-select>
  79 + </el-form-item>
  80 + <el-form-item>
  81 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="listSubmit">查询
  82 + </el-button>
  83 + <el-button class="buttonHover"
  84 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  85 + @click="listResetting">重置
  86 + </el-button>
  87 + </el-form-item>
  88 + </el-form>
  89 +
  90 + </div>
  91 + <div>
  92 + <el-table :data="addziyuanData"
  93 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  94 + style="width: 100%">
  95 + <el-table-column label="序号" min-width="4%">
  96 + <template slot-scope="scope">
  97 + {{scope.$index+1}}
  98 + </template>
  99 + </el-table-column>
  100 + <el-table-column prop="orderFormId" label="订单号" width="auto" min-width="10%">
  101 +
  102 + </el-table-column>
  103 + <el-table-column prop="payId" label="交易号" width="auto" min-width="10%" show-overflow-tooltip>
  104 +
  105 + </el-table-column>
  106 + <el-table-column label="支付金额" prop="price" width="auto" min-width="12%">
  107 +
  108 + </el-table-column>
  109 +
  110 +
  111 + <el-table-column prop="payChannel" label="支付渠道" width="auto" min-width="10%">
  112 +
  113 + </el-table-column>
  114 +
  115 + <el-table-column prop="payTime" label="支付完成时间" width="auto" min-width="10%" show-overflow-tooltip>
  116 + <template slot-scope="scope">
  117 + {{formatIsoToDateTime(scope.row.payTime)}}
  118 + </template>
  119 + </el-table-column>
  120 + <el-table-column prop="reconciliationTime" label="对账日期" width="auto" min-width="10%"
  121 + show-overflow-tooltip>
  122 +
  123 + <template slot-scope="scope">
  124 + {{formatIsoToDateTime(scope.row.reconciliationTime)}}
  125 + </template>
  126 + </el-table-column>
  127 + <el-table-column prop="checkType" label="核对状态" width="auto" min-width="10%">
  128 + <template slot-scope="scope">
  129 + {{scope.row.checkType == '0'?'未对账':scope.row.checkType == '1'?'平账':scope.row.checkType == '2'?'金额不符':''}}
  130 + </template>
  131 + </el-table-column>
  132 +
  133 + </el-table>
  134 + <div class="fenye">
  135 + <div style="line-height: 34px">共{{total}}条</div>
  136 + <el-pagination class="pagination" :hide-on-single-page="flag" background :current-page="listIndex.pageNumber+1"
  137 + :page-sizes="[10, 20, 50, 100]" :page-size="listIndex.pageSize" layout="prev, pager,next" :total="total"
  138 + @size-change="handleSizeChange" @current-change="handleCurrentChange" />
  139 + </div>
  140 + </div>
  141 + <div style="display: flex;">
  142 + <el-button @click="closeFn" class="buttonHover"
  143 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;">返回</el-button>
  144 + </div>
  145 + </div>
  146 +
  147 + </div>
11 148 </template>
12 149  
13 150 <script>
14   - export default {
15   - data() {
16   - return {
17   - value: new Date()
18   - }
19   - }
20   - }
  151 + import {
  152 + reconciliationAnalysis,reconciliationDetail
  153 + } from '../../../api/online.js'
  154 + export default {
  155 + data() {
  156 + return {
  157 + ontype: "1",
  158 + formSel: {
  159 + yytime: ''
  160 + },
  161 + addziyuanData: [],
  162 + morenCard: new Date(),
  163 + pageSize: 10,
  164 + currentPage: 1,
  165 + flag:false,
  166 + total: 0,
  167 + pageindex: {
  168 + startTime: '',
  169 + endTime: '',
  170 + pageNumber: 0,
  171 + pageSize: 10,
  172 + },
  173 + listIndex:{
  174 + minPrice: '',
  175 + maxPrice: '',
  176 + checkType: '',
  177 + pageSize: 10,
  178 + pageNumber: 0,
  179 + nowTime:'',
  180 + },
  181 + tableData: [],
  182 + }
  183 + },
  184 + created() {
  185 +
  186 + },
  187 + mounted() {
  188 + this.getCurrentMonthStartAndEnd()
  189 + this.getAll()
  190 + },
  191 + methods: {
  192 + getCurrentMonthStartAndEnd() {
  193 + let date = new Date();
  194 + let year = date.getFullYear();
  195 + let month = date.getMonth() + 1;
  196 + if(month > 12){
  197 + month = 1;
  198 + year++;
  199 + }
  200 + if (month < 10) {
  201 + month = '0' + month
  202 + }
  203 + let monthLastDay = new Date(year, month, 0).getDate();
  204 + let firstDate = year + '-' + month + '-' + '01';
  205 + let lastDate = year + '-' + month + '-' + monthLastDay;
  206 + this.pageindex.startTime =firstDate
  207 + this.pageindex.endTime =lastDate
  208 +
  209 + },
  210 + changimg(e, type) {
  211 + this.formInline[type] = e
  212 + },
  213 + async getAll() {
  214 + const res = await reconciliationAnalysis(this.pageindex)
  215 + this.tableData = res.data.onlineTransactionTimeByNowDayVOS
  216 +
  217 + },
  218 + async genjinMsg(item, data) {
  219 + this.listIndex.nowTime = data
  220 + this.ontype = '3'
  221 + const res = await reconciliationDetail(this.listIndex)
  222 + this.addziyuanData = res.data.content
  223 + this.total = res.data.totalElements
  224 + },
  225 + onSubmit() {
  226 + this.morenCard = this.formSel.yytime
  227 + if(this.formSel.yytime != ''){
  228 + this.getfirstDateAndlastDate(this.formSel.yytime)
  229 + }
  230 +
  231 + this.getAll()
  232 + },
  233 + resetting() {
  234 + this.morenCard = new Date()
  235 + this.formSel.yytime = ''
  236 + this.getCurrentMonthStartAndEnd()
  237 + this.getAll()
  238 + },
  239 + getfirstDateAndlastDate(dateStr){
  240 + let date = new Date(dateStr);
  241 + let year = date.getFullYear();
  242 + let month = date.getMonth() + 1;
  243 + if(month > 12){
  244 + month = 1;
  245 + year++;
  246 + }
  247 + if (month < 10) {
  248 + month = '0' + month
  249 + }
  250 + let monthLastDay = new Date(year, month, 0).getDate();
  251 + let firstDate = year + '-' + month + '-' + '01';
  252 + let lastDate = year + '-' + month + '-' + monthLastDay;
  253 + this.pageindex.startTime =firstDate
  254 + this.pageindex.endTime =lastDate
  255 + },
  256 +
  257 + closeGenjin() {
  258 + this.ontype = '1'
  259 + this.addziyuanData = []
  260 + },
  261 +
  262 + closeFn(val) {
  263 + this.addziyuanData = []
  264 + this.ontype = '1'
  265 + },
  266 + handleSizeChange(){
  267 +
  268 + },
  269 + handleCurrentChange(val) {
  270 + this.listIndex.pageNumber = val
  271 + this.getAll()
  272 + },
  273 + formatIsoToDateTime(isoTime) {
  274 + // 1. 空值/非法值处理
  275 + if (!isoTime) return '';
  276 + if (typeof isoTime !== 'string') return '时间格式错误';
  277 +
  278 + // 2. 解析时间(兼容带时区的ISO格式,如2025-03-11T14:19:54+08:00)
  279 + const date = new Date(isoTime.replace('T', ' ').replace(/-/g, '/'));
  280 + if (isNaN(date.getTime())) return '时间格式错误';
  281 +
  282 + // 3. 补零函数(确保两位数)
  283 + const pad = (num) => num.toString().padStart(2, '0');
  284 +
  285 + // 4. 提取时间分量(注意:月份从0开始,需+1)
  286 + return [
  287 + date.getFullYear(), // 年
  288 + pad(date.getMonth() + 1), // 月(0→1月)
  289 + pad(date.getDate()), // 日
  290 + pad(date.getHours()), // 时
  291 + pad(date.getMinutes()), // 分
  292 + pad(date.getSeconds()) // 秒
  293 + ].join('-').replace(/(\d{4})-(\d{2})-(\d{2})/, '$1-$2-$3 ').slice(0, 19);
  294 + // 最终格式:YYYY-MM-DD HH:mm:ss(精确到秒,共19位)
  295 + },
  296 + async listSubmit(){
  297 + const res = await reconciliationDetail(this.listIndex)
  298 + this.addziyuanData = res.data.content
  299 + this.total = res.data.totalElements
  300 + },
  301 + async listResetting(){
  302 + this.listIndex={
  303 + minPrice: '',
  304 + maxPrice: '',
  305 + checkType: '',
  306 + pageSize: 10,
  307 + pageNumber: 0,
  308 + nowTime:'',
  309 + }
  310 + const res = await reconciliationDetail(this.listIndex)
  311 + this.addziyuanData = res.data.content
  312 + this.total = res.data.totalElements
  313 + },
  314 + }
  315 + }
21 316 </script>
22 317  
23   -<style>
24   -</style>
  318 +<style lang="scss" scoped>
  319 + .fenye {
  320 + margin-top: 20px;
  321 + display: flex;
  322 + justify-content: space-between;
  323 + position: relative;
  324 + }
  325 +
  326 + ::v-deep .el-calendar button-group {
  327 + display: none;
  328 + }
  329 +
  330 + .zhuti {
  331 + padding: 0 20px 20px 20px;
  332 + min-height: calc(100vh - 50px - 20px);
  333 + background-color: #fff;
  334 + box-sizing: border-box;
  335 + }
  336 +
  337 + .formSearch {
  338 +
  339 + display: flex;
  340 + width: 100%;
  341 + font-size: 14px;
  342 + justify-content: space-between;
  343 +
  344 + }
  345 +
  346 + ::v-deep .el-calendar-table:not(.is-range)td.next {
  347 + display: none;
  348 + }
  349 +
  350 + ::v-deep .el-calendar-table:not(.is-range)td.prev {
  351 + visibility: hidden;
  352 + }
  353 +
  354 + ::v-deep .el-calendar__button-group {
  355 + display: none;
  356 + }
  357 +</style>
25 358 \ No newline at end of file
... ...
admin-web-master/src/views/online/reconciliationAnalysis/index11.vue 0 → 100644
  1 +<template>
  2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div style="padding: 0 20px;background-color:#fff;">
  4 + <div style="height:58px;line-height:58px;">
  5 + <div style="color:#0006"> <span>联机交易</span> <span style="padding:0 5px;">></span> <span style="color:#000000e6">对账分析</span></div>
  6 + </div>
  7 + <el-calendar v-model="value">
  8 + </el-calendar>
  9 + </div>
  10 + </div>
  11 +</template>
  12 +
  13 +<script>
  14 + export default {
  15 + data() {
  16 + return {
  17 + value: new Date()
  18 + }
  19 + }
  20 + }
  21 +</script>
  22 +
  23 +<style>
  24 +</style>
... ...
admin-web-master/src/views/online/reconciliationDetails/index.vue
1 1 <template>
2   - <div style="background-color:#f7f7f7;padding:10px 10px;">
3   - <div class="zhuti">
4   - <div style="height:58px;line-height:58px;">
5   - <div style="color:#0006"> <span>交易联机</span> <span style="padding:0 5px;">></span> <span
6   - style="color:#000000e6">对账明细</span></div>
7   - </div>
8   - <div>
9   -
10   - <!-- 搜索 -->
11   - <div class="formSearch">
12   - <el-form
13   - :inline="true"
14   - :model="pageindex"
15   -
16   - label-position="left"
17   - >
18   - <el-form-item label="账单金额">
19   - <div>
20   - <el-input
21   - placeholder="请输入"
22   -
23   - style="width: 168px"
24   - v-model="pageindex.minOrderPrice">
25   - </el-input>
26   - 至
27   - <el-input
28   - placeholder="请输入"
29   -
30   - style="width:168px"
31   - v-model="pageindex.maxOrderPrice">
32   - </el-input>
33   - </div>
34   - </el-form-item>
35   - <el-form-item label="交易状态">
36   - <el-select
37   - v-model="pageindex.payState "
38   - placeholder="请选择"
39   -
40   - style="width: 100px;"
41   - >
42   - <el-option label="PAY_SUCCESS" value="PAY_SUCCESS" />
43   - </el-select>
44   - </el-form-item>
45   - <el-form-item>
46   - <el-button
47   - style="background-color: #3F9B6A;color: #fff;"
48   - @click="onSubmit"
49   - >查询
50   - </el-button>
51   - <el-button
52   -
53   -
54   - class="buttonHover"
55   - style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
56   - @click="resetting"
57   - >重置
58   - </el-button>
59   - </el-form-item>
60   - </el-form>
61   -
62   - </div>
63   - <!-- 表格 -->
64   - <el-table
65   - :data="tableData"
66   - :header-cell-style="{fontSize: '12px', backgroundColor: '#FAFAFA',color:'#000',fontWeight: 'normal'}"
67   - :border="true"
68   - style="width: 100%"
69   - >
70   - <el-table-column
71   - label="序号"
72   - min-width="4%"
73   - >
74   - <template slot-scope="scope">
75   - {{scope.$index+1}}
76   - </template>
77   - </el-table-column>
78   - <el-table-column
79   - label="营业点"
80   - prop="body"
81   - width="auto"
82   - min-width="12%"
83   - >
84   - </el-table-column>
85   - <el-table-column
86   - label="支付金额"
87   - prop="realAmount"
88   - width="auto"
89   - min-width="12%"
90   - >
91   -
92   - </el-table-column>
93   - <el-table-column
94   - label="手续费"
95   - prop="platformCouponAmount"
96   - width="auto"
97   - min-width="5%"
98   - >
99   -
100   - </el-table-column>
101   - <el-table-column
102   - label="调整金额"
103   - prop="totalDiscountAmount"
104   - width="auto"
105   - min-width="10%"
106   -
107   - >
108   - </el-table-column>
109   - <el-table-column
110   - prop="channel"
111   - label="支付渠道"
112   - width="auto"
113   - min-width="10%"
114   -
115   - >
116   -
117   - </el-table-column>
118   - <el-table-column
119   - prop="orderNo"
120   - label="订单号"
121   - width="auto"
122   - min-width="10%"
123   -
124   - >
125   -
126   - </el-table-column>
127   -<el-table-column
128   - prop="payId"
129   - label="交易号"
130   - width="auto"
131   - min-width="10%"
132   -
133   - >
134   -
135   - </el-table-column>
136   - <el-table-column
137   - prop="createDate"
138   - label="支付完成时间"
139   - width="auto"
140   - min-width="10%"
141   -
142   - >
143   -
144   - </el-table-column>
145   - <el-table-column
146   - prop="time"
147   - label="对账日期"
148   - width="auto"
149   - min-width="10%"
150   -
151   - >
152   -
153   - </el-table-column>
154   - <el-table-column
155   - prop="payState"
156   - label="状态"
157   - width="auto"
158   - min-width="10%"
159   -
160   - >
161   -
162   - </el-table-column>
163   -
164   - </el-table>
165   - <!-- <div class="fenye">
166   - <div style="line-height: 34px">显示第1到第10条记录</div>
167   - <el-pagination
168   - class="pagination"
169   - :hide-on-single-page="flag"
170   - background
171   - small
172   - :current-page="currentPage"
173   - :page-sizes="[10, 20, 50, 100]"
174   - :page-size="pageSize"
175   - layout="total,sizes,prev, pager,next"
176   - :total="total "
177   - @size-change="handleSizeChange"
178   - @current-change="handleCurrentChange"
179   - />
180   - </div> -->
181   -
182   - </div>
183   - </div>
184   -
185   - </div>
  2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div class="zhuti">
  4 + <div style="height:58px;line-height:58px;">
  5 + <div style="color:#0006"> <span>交易联机</span> <span style="padding:0 5px;">></span> <span
  6 + style="color:#000000e6">对账明细</span></div>
  7 + </div>
  8 + <div>
  9 +
  10 + <!-- 搜索 -->
  11 + <div class="formSearch">
  12 + <el-form :inline="true" :model="pageindex" label-position="left">
  13 + <el-form-item label="账单金额">
  14 + <div>
  15 + <el-input placeholder="请输入" style="width: 168px" v-model="pageindex.minPrice">
  16 + </el-input>
  17 + 至
  18 + <el-input placeholder="请输入" style="width:168px" v-model="pageindex.maxPrice">
  19 + </el-input>
  20 + </div>
  21 + </el-form-item>
  22 +
  23 + <el-form-item label="核对状态">
  24 + <el-select v-model="pageindex.checkType" placeholder="请选择" style="width: 100px;">
  25 + <el-option label="未对账" value="0" />
  26 + <el-option label="平账" value="1" />
  27 + <el-option label="金额不符" value="2" />
  28 + </el-select>
  29 + </el-form-item>
  30 + <el-form-item>
  31 + <el-button style="background-color: #3F9B6A;color: #fff;" @click="onSubmit">查询
  32 + </el-button>
  33 + <el-button class="buttonHover"
  34 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  35 + @click="resetting">重置
  36 + </el-button>
  37 + </el-form-item>
  38 + </el-form>
  39 +
  40 + </div>
  41 + <!-- 表格 -->
  42 + <el-table :data="tableData"
  43 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  44 + style="width: 100%">
  45 + <el-table-column label="序号" min-width="4%">
  46 + <template slot-scope="scope">
  47 + {{scope.$index+1}}
  48 + </template>
  49 + </el-table-column>
  50 + <el-table-column prop="orderFormId" label="订单号" width="auto" min-width="10%">
  51 +
  52 + </el-table-column>
  53 + <el-table-column prop="payId" label="交易号" width="auto" min-width="10%" show-overflow-tooltip>
  54 +
  55 + </el-table-column>
  56 + <el-table-column label="支付金额" prop="price" width="auto" min-width="12%">
  57 +
  58 + </el-table-column>
  59 +
  60 +
  61 + <el-table-column prop="payChannel" label="支付渠道" width="auto" min-width="10%">
  62 +
  63 + </el-table-column>
  64 +
  65 + <el-table-column prop="payTime" label="支付完成时间" width="auto" min-width="10%" show-overflow-tooltip>
  66 + <template slot-scope="scope">
  67 + {{formatIsoToDateTime(scope.row.payTime)}}
  68 + </template>
  69 + </el-table-column>
  70 + <el-table-column prop="reconciliationTime" label="对账日期" width="auto" min-width="10%" show-overflow-tooltip>
  71 +
  72 + <template slot-scope="scope">
  73 + {{formatIsoToDateTime(scope.row.reconciliationTime)}}
  74 + </template>
  75 + </el-table-column>
  76 + <el-table-column prop="checkType" label="核对状态" width="auto" min-width="10%">
  77 +<template slot-scope="scope">
  78 + {{scope.row.checkType == '0'?'未对账':scope.row.checkType == '1'?'平账':scope.row.checkType == '2'?'金额不符':''}}
  79 + </template>
  80 + </el-table-column>
  81 +
  82 + </el-table>
  83 + <div class="fenye">
  84 + <div style="line-height: 34px">共{{total}}条</div>
  85 + <el-pagination class="pagination" :hide-on-single-page="flag" background :current-page="currentPage"
  86 + :page-sizes="[10, 20, 50, 100]" :page-size="pageSize" layout="prev, pager,next" :total="total"
  87 + @size-change="handleSizeChange" @current-change="handleCurrentChange" />
  88 + </div>
  89 +
  90 + </div>
  91 + </div>
  92 +
  93 + </div>
186 94 </template>
187 95  
188 96 <script>
189   -import {merchantQueries} from '../../../api/online.js'
190   -export default {
191   - data () {
192   - return {
193   - rules: {},
194   - currentPage: 1,
195   - total: 100,
196   - flag: false,
197   - pageSize: 10,
198   - ggXin: false,
199   - tableData: [],
200   - pageindex: {
201   - minOrderPrice:'',
202   - maxOrderPrice:'',
203   - payState:'',
204   - merchantId:'9E602E5977EC48DEA06D42C67F4C93F0',
205   - page: 1,
206   - limit: 10,
207   - orderTimeStart:'2024-1-1 00:00:00',
208   - orderTimeEnd:'',
209   - },
210   - }
211   - },
212   - computed: {},
213   - mounted(){
214   - this.getOrder()
215   - },
216   - methods: {
217   - async getOrder(){
218   - // this.getFirstDayOfYear()
219   - this.getLastDayOfYear()
220   - const res = await merchantQueries(this.pageindex)
221   - this.tableData = res.data
222   - this.total = res.data.length
223   -
224   - },
225   - getFirstDayOfYear() {
226   - const now = new Date();
227   - const year = now.getFullYear();
228   - const firstDay = new Date(year, 0, 1, 0, 0, 0, 0);
229   - this.pageindex.orderTimeStart = this.formatDate(firstDay);
230   - },
231   - getLastDayOfYear() {
232   - const now = new Date()
233   - const year = now.getFullYear()
234   - const lastDay = new Date(year, 11, 31, 23, 59, 59, 999)
235   - this.pageindex.orderTimeEnd = this.formatDate(lastDay)
236   - },
237   - formatDate(date) {
238   - const year = date.getFullYear()
239   - const month = String(date.getMonth() + 1).padStart(2, '0')
240   - const day = String(date.getDate()).padStart(2, '0')
241   - const hours = String(date.getHours()).padStart(2, '0')
242   - const minutes = String(date.getMinutes()).padStart(2, '0')
243   - const seconds = String(date.getSeconds()).padStart(2, '0')
244   - return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
245   - },
246   - onSubmit(){
247   - this.getOrder()
248   - },
249   - resetting(){
250   -
251   - this.pageindex={
252   - orderNo:'',
253   - payState:'',
254   - merchantId:'9E602E5977EC48DEA06D42C67F4C93F0',
255   - page: 1,
256   - limit: 10,
257   - minOrderPrice:'',
258   - maxOrderPrice:'',
259   - orderTimeStart:'',
260   - orderTimeEnd:'',
261   - }
262   - this.getOrder()
263   -
264   -
265   - },
266   - handleSizeChange(){
267   -
268   - },
269   - handleCurrentChange(){
270   -
271   - }
272   - }
273   -}
  97 + import {
  98 + reconciliationDetail
  99 + } from '../../../api/online.js'
  100 + export default {
  101 + data() {
  102 + return {
  103 + rules: {},
  104 + currentPage: 1,
  105 + total: 100,
  106 + flag: false,
  107 + pageSize: 10,
  108 + ggXin: false,
  109 + tableData: [],
  110 + pageindex: {
  111 + minPrice: '',
  112 + maxPrice: '',
  113 + checkType: '',
  114 + pageSize: 10,
  115 + pageNumber: 0,
  116 + },
  117 + }
  118 + },
  119 + computed: {},
  120 + mounted() {
  121 + this.getOrder()
  122 + },
  123 + methods: {
  124 + async getOrder() {
  125 + // this.getFirstDayOfYear()
  126 + // this.getLastDayOfYear()
  127 + const res = await reconciliationDetail(this.pageindex)
  128 + this.tableData = res.data.content
  129 + this.total = res.data.totalElements
  130 +
  131 + },
  132 + getFirstDayOfYear() {
  133 + const now = new Date();
  134 + const year = now.getFullYear();
  135 + const firstDay = new Date(year, 0, 1, 0, 0, 0, 0);
  136 + this.pageindex.orderTimeStart = this.formatDate(firstDay);
  137 + },
  138 + getLastDayOfYear() {
  139 + const now = new Date()
  140 + const year = now.getFullYear()
  141 + const lastDay = new Date(year, 11, 31, 23, 59, 59, 999)
  142 + this.pageindex.orderTimeEnd = this.formatDate(lastDay)
  143 + },
  144 + formatDate(date) {
  145 + const year = date.getFullYear()
  146 + const month = String(date.getMonth() + 1).padStart(2, '0')
  147 + const day = String(date.getDate()).padStart(2, '0')
  148 + const hours = String(date.getHours()).padStart(2, '0')
  149 + const minutes = String(date.getMinutes()).padStart(2, '0')
  150 + const seconds = String(date.getSeconds()).padStart(2, '0')
  151 + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
  152 + },
  153 + formatIsoToDateTime(isoTime) {
  154 + // 1. 空值/非法值处理
  155 + if (!isoTime) return '';
  156 + if (typeof isoTime !== 'string') return '时间格式错误';
  157 +
  158 + // 2. 解析时间(兼容带时区的ISO格式,如2025-03-11T14:19:54+08:00)
  159 + const date = new Date(isoTime.replace('T', ' ').replace(/-/g, '/'));
  160 + if (isNaN(date.getTime())) return '时间格式错误';
  161 +
  162 + // 3. 补零函数(确保两位数)
  163 + const pad = (num) => num.toString().padStart(2, '0');
  164 +
  165 + // 4. 提取时间分量(注意:月份从0开始,需+1)
  166 + return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`
  167 + // return [
  168 + // date.getFullYear(), // 年
  169 + // pad(date.getMonth() + 1), // 月(0→1月)
  170 + // pad(date.getDate()), // 日
  171 + // pad(date.getHours()), // 时
  172 + // pad(date.getMinutes()), // 分
  173 + // pad(date.getSeconds()) // 秒
  174 + // ].join('-').replace(/(\d{4})-(\d{2})-(\d{2})/, '$1-$2-$3 ').slice(0, 19);
  175 + // 最终格式:YYYY-MM-DD HH:mm:ss(精确到秒,共19位)
  176 + },
  177 + onSubmit() {
  178 + this.getOrder()
  179 + },
  180 + resetting() {
  181 +
  182 + this.pageindex = {
  183 + minPrice: '',
  184 + maxPrice: '',
  185 + checkType: '',
  186 + pageSize: 10,
  187 + pageNumber: 0,
  188 + }
  189 + this.getOrder()
  190 +
  191 +
  192 + },
  193 + handleSizeChange() {
  194 +
  195 + },
  196 + handleCurrentChange(val) {
  197 + this.pageindex.pageNumber = val
  198 + this.getOrder()
  199 + }
  200 + }
  201 + }
274 202 </script>
275 203  
276   -<style scoped >
277   -.zhuti {
278   - padding: 0 20px 20px 20px;
279   - min-height: calc(100vh - 50px - 20px);
280   - background-color: #Fff;
281   - position: relative;
282   - }
283   -
284   -/deep/ .el-form-item__content {
285   - line-height: 0;
286   -}
287   -
288   -.tableBtn {
289   - display: inline-block;
290   - margin-right: 10px;
291   -}
292   -
293   -::v-deep .formSearch {
294   - position: relative;
295   - margin-bottom: 20px;
296   - display: flex;
297   - width: 100%;
298   - height: 30px;
299   - font-size: 12px;
300   - justify-content: space-between;
301   - .el-form-item__label{
302   - line-height: 28px;
303   - font-size: 12px;
304   - color: #000;
305   - font-weight: 100;
306   - }
307   -}
308   -
309   -.greens {
310   - color: #3F9B6A;
311   -}
312   -
313   -/deep/ .el-table__row {
314   - font-size: 14px;
315   -}
316   -
317   -.fenye {
318   - margin-top: 20px;
319   - display: flex;
320   - justify-content: flex-start;
321   - position: relative;
322   -}
323   -
324   -/deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
325   - background-color: #3F9B6A;
326   -}
327   -
328   -.el-row {
329   - margin-bottom: 20px;
330   -}
331   -:last-child {
332   - margin-bottom: 0;
333   -}
334   -
335   -.el-col {
336   - border-radius: 4px;
337   -}
338   -
339   -.bg-purple-dark {
340   - background: #99a9bf;
341   -}
342   -
343   -.bg-purple {
344   - background: #d3dce6;
345   -}
346   -
347   -.bg-purple-light {
348   - background: #e5e9f2;
349   -}
350   -
351   -.grid-content {
352   - border-radius: 4px;
353   - min-height: 36px;
354   -}
355   -
356   -.row-bg {
357   - padding: 10px 0;
358   - background-color: #f9fafc;
359   -}
360   -
361   -/deep/ .bg-purple[data-v-0e3fe4ec] {
362   - background: #fff;
363   - height: 50px;
364   -}
365   -
366   -/deep/ .el-form--label-top .el-form-item__label {
367   - padding: 0;
368   -}
369   -.demo-input-suffix{
370   - display: flex;
371   - margin-right: 20px;
372   -}
373   -.pagination{
374   - text-align:right;
375   - line-height: 20px;
376   -}
377   -/deep/ .el-pagination__total{
378   - margin-top:4px;
379   -}
380   -/deep/ .btn-prev{
381   - position:absolute ;
382   - top: 4px;
383   - right: 266px;
384   -}
385   -/deep/ .el-pager{
386   - position:absolute ;
387   - top: 4px;
388   - right: 40px;
389   -}
390   -/deep/ .btn-next{
391   - position:absolute;
392   - top: 4px;
393   - right: 10px;
394   -}
395   -::v-deep .btn .el-button:focus,
396   -.el-button:hover {
397   - border: 1px solid #3F9B6A;
398   -}
399   - ::v-deep .el-select .el-input.is-focus .el-input__inner{
400   - border-color:#3F9B6A
401   - }
402   - ::v-deep .dialog_css_Xq{
403   - .el-dialog__header{
404   - background-color:#fafafa;
405   -
406   - }
407   - .el-dialog__title{
408   - color:#000
409   - }
410   - }
411   -</style>
  204 +<style scoped>
  205 + .zhuti {
  206 + padding: 0 20px 20px 20px;
  207 + min-height: calc(100vh - 50px - 20px);
  208 + background-color: #Fff;
  209 + position: relative;
  210 + }
  211 +
  212 + /deep/ .el-form-item__content {
  213 + line-height: 0;
  214 + }
  215 +
  216 + .tableBtn {
  217 + display: inline-block;
  218 + margin-right: 10px;
  219 + }
  220 +
  221 + ::v-deep .formSearch {
  222 + position: relative;
  223 + margin-bottom: 20px;
  224 + display: flex;
  225 + width: 100%;
  226 + height: 30px;
  227 + font-size: 14px;
  228 + justify-content: space-between;
  229 +
  230 + }
  231 +
  232 + .greens {
  233 + color: #3F9B6A;
  234 + }
  235 +
  236 + /deep/ .el-table__row {
  237 + font-size: 14px;
  238 + }
  239 +
  240 + .fenye {
  241 + margin-top: 20px;
  242 + display: flex;
  243 + justify-content: space-between;
  244 + position: relative;
  245 + }
  246 +
  247 + /deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  248 + background-color: #3F9B6A;
  249 + }
  250 +
  251 + .el-row {
  252 + margin-bottom: 20px;
  253 + }
  254 +
  255 + :last-child {
  256 + margin-bottom: 0;
  257 + }
  258 +
  259 + .el-col {
  260 + border-radius: 4px;
  261 + }
  262 +
  263 + .bg-purple-dark {
  264 + background: #99a9bf;
  265 + }
  266 +
  267 + .bg-purple {
  268 + background: #d3dce6;
  269 + }
  270 +
  271 + .bg-purple-light {
  272 + background: #e5e9f2;
  273 + }
  274 +
  275 + .grid-content {
  276 + border-radius: 4px;
  277 + min-height: 36px;
  278 + }
  279 +
  280 + .row-bg {
  281 + padding: 10px 0;
  282 + background-color: #f9fafc;
  283 + }
  284 +
  285 + /deep/ .bg-purple[data-v-0e3fe4ec] {
  286 + background: #fff;
  287 + height: 50px;
  288 + }
  289 +
  290 + /deep/ .el-form--label-top .el-form-item__label {
  291 + padding: 0;
  292 + }
  293 +
  294 + .demo-input-suffix {
  295 + display: flex;
  296 + margin-right: 20px;
  297 + }
  298 +
  299 + .pagination {
  300 + text-align: right;
  301 + line-height: 20px;
  302 + }
  303 +
  304 + ::v-deep .btn .el-button:focus,
  305 + .el-button:hover {
  306 + border: 1px solid #3F9B6A;
  307 + }
  308 +
  309 + ::v-deep .el-select .el-input.is-focus .el-input__inner {
  310 + border-color: #3F9B6A
  311 + }
  312 +
  313 + ::v-deep .dialog_css_Xq {
  314 + .el-dialog__header {
  315 + background-color: #fafafa;
  316 +
  317 + }
  318 +
  319 + .el-dialog__title {
  320 + color: #000
  321 + }
  322 + }
  323 +</style>
412 324 \ No newline at end of file
... ...
admin-web-master/src/views/online/reconciliationProcessing/index.vue
... ... @@ -115,7 +115,7 @@
115 115 </template>
116 116 </el-table-column>
117 117  
118   - <el-table-column label="操作" show-overflow-tooltip>
  118 + <el-table-column label="操作">
119 119 <template slot-scope="scope">
120 120 <div class="btnList">
121 121 <div class="tableBtn greens" @click="addbuss(scope.row)" v-if="scope.row.isReconciliation == 0" >对账</div>
... ... @@ -144,8 +144,8 @@
144 144 </template>
145 145  
146 146 <script>
147   -import {merchantQueries,reconciliation,excelGetAll} from '../../../api/online.js'
148   -import { orderGetAll , orderExport} from '@/api/order'
  147 +import {merchantQueries,reconciliation,excelGetAll,orderGetAll} from '../../../api/online.js'
  148 +import { orderExport} from '@/api/order'
149 149 export default {
150 150 data () {
151 151 return {
... ... @@ -153,7 +153,7 @@ export default {
153 153 formInline: {
154 154 searchType: '1',
155 155 search: '', // 搜索字段
156   - state: '4',
  156 + state: [2,3,4],
157 157 // afterState: '', // 售后状态 0-无售后 1-售后中 2-售后成功 3-售后关闭
158 158 dates: [], // 下单时间数组
159 159 page: 1,
... ... @@ -242,13 +242,9 @@ getFirstDayOfYear() {
242 242 },
243 243 addbuss(item) {
244 244 let obj ={
245   - orderNo:item.orderFormid,
246   - payState:"",
247   - merchantId:"9E602E5977EC48DEA06D42C67F4C93F0",
248   - page:1,
249   - limit:10,
250   - orderTimeStart:this.orderTimeStart,
251   - orderTimeEnd:this.orderTimeEnd
  245 + merchantId: "9E602E5977EC48DEA06D42C67F4C93F0",
  246 +   payId: item.payId
  247 +
252 248 }
253 249 const h = this.$createElement;
254 250 this.$msgbox({
... ... @@ -304,7 +300,7 @@ getFirstDayOfYear() {
304 300  
305 301 searchType: '1',
306 302 search: '', // 搜索字段
307   - state: '4',
  303 + state: [2,3,4],
308 304 // afterState: '', // 售后状态 0-无售后 1-售后中 2-售后成功 3-售后关闭
309 305 dates: [], // 下单时间数组
310 306 page: 1,
... ...
admin-web-master/src/views/online/reportDownload/index.vue
... ... @@ -14,7 +14,7 @@
14 14 >
15 15 <el-form-item label="支付状态">
16 16 <el-select
17   - v-model="pageindex.payState"
  17 + v-model="pageindex.payStatus"
18 18 placeholder="请选择"
19 19 style="width: 168px;"
20 20 >
... ... @@ -24,8 +24,8 @@
24 24 <el-form-item label="选择日期">
25 25 <el-date-picker
26 26 v-model="createDate"
27   - type="datetimerange"
28   - value-format="yyyy-MM-dd HH:mm:ss"
  27 + type="daterange"
  28 + value-format="yyyy-MM-dd"
29 29 style="width: 200px;"
30 30 range-separator="至"
31 31 start-placeholder="开始日期"
... ... @@ -75,7 +75,7 @@
75 75 </el-table-column>
76 76 <el-table-column
77 77 label="订单号"
78   - prop="orderNo"
  78 + prop="orderFormId"
79 79 width="auto"
80 80 min-width="12%"
81 81 >
... ... @@ -85,42 +85,45 @@
85 85 prop="payId"
86 86 width="auto"
87 87 min-width="12%"
  88 + show-overflow-tooltip
88 89 >
89 90 </el-table-column>
90 91 <el-table-column
91 92 label="账单金额"
92   - prop="realAmount"
  93 + prop="price"
93 94 width="auto"
94 95 min-width="12%"
95 96 >
96 97 </el-table-column>
97 98 <el-table-column
98 99 label="平台流水"
99   - prop="realAmount"
  100 + prop="realPrice"
100 101 width="auto"
101   - min-width="5%"
  102 + min-width="7%"
102 103 >
103 104  
104 105 </el-table-column>
105 106 <el-table-column
106 107 label="交易流水"
107   - prop="realAmount"
  108 + prop="realPrice"
108 109 width="auto"
109   - min-width="10%"
  110 + min-width="7%"
110 111  
111 112 >
112 113 </el-table-column>
113 114 <el-table-column
114   - prop="createDate"
  115 + prop="payTime"
115 116 label="支付时间"
116 117 width="auto"
117 118 min-width="10%"
118   -
  119 + show-overflow-tooltip
119 120 >
120   -
  121 + <template slot-scope="scope">
  122 + {{formatIsoToDateTime(scope.row.payTime)}}
  123 + </template>
121 124 </el-table-column>
122 125 <el-table-column
123   - prop="channel"
  126 + prop="payChannel"
124 127 label="支付方式"
125 128 width="auto"
126 129 min-width="10%"
... ... @@ -128,19 +131,9 @@
128 131 >
129 132  
130 133 </el-table-column>
131   -<el-table-column
132   - prop="body"
133   - label="营业点"
134   - width="auto"
135   - min-width="10%"
136   -
137   - >
138   -
139   - </el-table-column>
140   -
141 134  
142 135 <el-table-column
143   - prop="payState"
  136 + prop="payStatus"
144 137 label="交易状态"
145 138 width="auto"
146 139 min-width="10%"
... ... @@ -150,22 +143,21 @@
150 143 </el-table-column>
151 144  
152 145 </el-table>
153   - <!-- <div class="fenye">
154   - <div style="line-height: 34px">显示第1到第10条记录</div>
  146 + <div class="fenye">
  147 + <div style="line-height: 34px">共{{total}}条</div>
155 148 <el-pagination
156 149 class="pagination"
157 150 :hide-on-single-page="flag"
158 151 background
159   - small
160   - :current-page="currentPage"
  152 + :current-page="pageindex.pageNumber+1"
161 153 :page-sizes="[10, 20, 50, 100]"
162   - :page-size="pageSize"
163   - layout="total,sizes,prev, pager,next"
164   - :total="total "
  154 + :page-size="pageindex.pageSize"
  155 + layout="prev, pager,next"
  156 + :total="total"
165 157 @size-change="handleSizeChange"
166 158 @current-change="handleCurrentChange"
167 159 />
168   - </div> -->
  160 + </div>
169 161  
170 162 </div>
171 163 </div>
... ... @@ -174,26 +166,20 @@
174 166 </template>
175 167  
176 168 <script>
177   -import {merchantQueries,excelMerchantQueriesOrderDetails} from '../../../api/online.js'
  169 +import {reportDownload,excelMerchantQueriesOrderDetails} from '../../../api/online.js'
178 170 export default {
179 171 data () {
180 172 return {
181   - currentPage: 1,
182   - total: 100,
  173 + total: 0,
183 174 flag: false,
184   - pageSize: 10,
185   - activeName: 'zfb',
186   - tabTitle:'',
187 175 tableData: [],
188 176 createDate:[],
189 177 pageindex: {
190   - payState:'',
191   - createDate:'',
192   - merchantId:'9E602E5977EC48DEA06D42C67F4C93F0',
193   - page: 1,
194   - limit: 10,
195   - orderTimeStart:'2024-1-1 00:00:00',
196   - orderTimeEnd:'',
  178 + payStatus:'',
  179 + pageSize: 10,
  180 + pageNumber: 0,
  181 + startTime:'',
  182 + endTime:'',
197 183 },
198 184 }
199 185 },
... ... @@ -203,37 +189,12 @@ export default {
203 189 },
204 190 methods: {
205 191 async getOrder(){
206   - // this.getFirstDayOfYear()
207   - this.getLastDayOfYear()
208   - const res = await merchantQueries(this.pageindex)
209   - this.tableData = res.data
210   - this.total = res.data.length
  192 + const res = await reportDownload(this.pageindex)
  193 + this.tableData = res.data.content
  194 + this.total = res.data.totalElements
211 195  
212 196 },
213   - getFirstDayOfYear() {
214   - const now = new Date();
215   - const year = now.getFullYear();
216   - const firstDay = new Date(year, 0, 1, 0, 0, 0, 0);
217   - this.pageindex.orderTimeStart = this.formatDate(firstDay);
218   - },
219   - getLastDayOfYear() {
220   - const now = new Date()
221   - const year = now.getFullYear()
222   - const lastDay = new Date(year, 11, 31, 23, 59, 59, 999)
223   - this.pageindex.orderTimeEnd = this.formatDate(lastDay)
224   - },
225   - formatDate(date) {
226   - const year = date.getFullYear()
227   - const month = String(date.getMonth() + 1).padStart(2, '0')
228   - const day = String(date.getDate()).padStart(2, '0')
229   - const hours = String(date.getHours()).padStart(2, '0')
230   - const minutes = String(date.getMinutes()).padStart(2, '0')
231   - const seconds = String(date.getSeconds()).padStart(2, '0')
232   - return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`
233   - },
234 197 async downloadImage(){
235   - this.getFirstDayOfYear()
236   - this.getLastDayOfYear()
237 198 let res = await excelMerchantQueriesOrderDetails(this.pageindex)
238 199 if(!res){
239 200 return
... ... @@ -267,28 +228,53 @@ export default {
267 228 // link.click(); // 触发点击事件
268 229 // document.body.removeChild(link); // 下载完成后移除<a>标签
269 230 },
  231 + formatIsoToDateTime(isoTime) {
  232 + // 1. 空值/非法值处理
  233 + if (!isoTime) return '';
  234 + if (typeof isoTime !== 'string') return '';
  235 +
  236 + // 2. 解析时间(兼容带时区的ISO格式,如2025-03-11T14:19:54+08:00)
  237 + const date = new Date(isoTime.replace('T', ' ').replace(/-/g, '/'));
  238 + if (isNaN(date.getTime())) return '';
  239 +
  240 + // 3. 补零函数(确保两位数)
  241 + const pad = (num) => num.toString().padStart(2, '0');
  242 +
  243 + // 4. 提取时间分量(注意:月份从0开始,需+1)
  244 + return `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())} ${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}`
  245 + // [
  246 + // date.getFullYear(), // 年
  247 + // pad(date.getMonth() + 1), // 月(0→1月)
  248 + // pad(date.getDate()), // 日
  249 + // pad(date.getHours()), // 时
  250 + // pad(date.getMinutes()), // 分
  251 + // pad(date.getSeconds()) // 秒
  252 + // ].join('-').replace(/(\d{4})-(\d{2})-(\d{2})/, '$1-$2-$3 ').slice(0, 19);
  253 + // 最终格式:YYYY-MM-DD HH:mm:ss(精确到秒,共19位)
  254 + },
270 255 handleSizeChange(){
271 256  
272 257 },
273   - handleCurrentChange(){
274   -
  258 +
  259 + handleCurrentChange(val){
  260 + this.pageindex.pageNumber = val -1
  261 + this.getOrder()
275 262 },
276 263 onSubmit(){
277 264 if(this.createDate.length !=0){
278   - this.pageindex.createDate = this.createDate.join(',')
  265 + this.pageindex.startTime =this.createDate[0]
  266 + this.pageindex.endTime =this.createDate[1]
279 267 }
280 268 this.getOrder()
281 269 },
282 270 resetting(){
283 271 this.createDate= [],
284 272 this.pageindex = {
285   - payState:'',
286   - createDate:'',
287   - merchantId:'9E602E5977EC48DEA06D42C67F4C93F0',
288   - page: 1,
289   - limit: 10,
290   - orderTimeStart:'',
291   - orderTimeEnd:'',
  273 + payStatus:'',
  274 + pageSize: 10,
  275 + pageNumber: 0,
  276 + startTime:'',
  277 + endTime:'',
292 278 }
293 279 this.getOrder(this.pageindex)
294 280 },
... ... @@ -339,7 +325,7 @@ export default {
339 325 .fenye {
340 326 margin-top: 20px;
341 327 display: flex;
342   - justify-content: flex-start;
  328 + justify-content: space-between;
343 329 position: relative;
344 330 }
345 331  
... ... @@ -396,24 +382,7 @@ export default {
396 382 text-align:right;
397 383 line-height: 20px;
398 384 }
399   -/deep/ .el-pagination__total{
400   - margin-top:4px;
401   -}
402   -/deep/ .btn-prev{
403   - position:absolute ;
404   - top: 4px;
405   - right: 266px;
406   -}
407   -/deep/ .el-pager{
408   - position:absolute ;
409   - top: 4px;
410   - right: 40px;
411   -}
412   -/deep/ .btn-next{
413   - position:absolute;
414   - top: 4px;
415   - right: 10px;
416   -}
  385 +
417 386 ::v-deep .btn .el-button:focus,
418 387 .el-button:hover {
419 388 border: 1px solid #3F9B6A;
... ...
admin-web-master/src/views/online/summaryQuery/index.vue
... ... @@ -5,7 +5,7 @@
5 5 <div style="color:#0006"> <span>联机交易</span> <span style="padding:0 5px;">></span> <span
6 6 style="color:#000000e6">汇总查询</span></div>
7 7 </div>
8   - <div class="filter-container">
  8 + <!-- <div class="filter-container">
9 9 <div style="display:flex;justify-content: space-between;background-color: #f5f5f5;padding:10px">
10 10 <div style="line-height:200%">筛选查询</div>
11 11 <div>
... ... @@ -23,23 +23,14 @@
23 23  
24 24 </el-select>
25 25 </el-form-item>
26   - <!-- <el-form-item label="交易项目" prop="affiliation">
27   - <el-select v-model="formInline.affiliation" placeholder="请选择" style="width: 168px;margin-right: 10px">
28   - <el-option label="1" value="1" />
29   - </el-select>
30   - </el-form-item>
31   - <el-form-item label="商户名称">
32   - <el-input v-model="formInline.eqwe" placeholder="请输入"
33   - style="width: 168px;margin-right: 10px;" />
34   - </el-form-item> -->
35   -
  26 +
36 27  
37 28 </el-form>
38 29 </div>
39   - </div>
  30 + </div> -->
40 31  
41   - <div style="display:flex;">
42   - <!-- <div style="width:50%">
  32 + <!-- <div style="display:flex;">
  33 + <div style="width:50%">
43 34 <div style="display:flex;">
44 35 <div style="width:50%;padding:20px;">
45 36 <div>最高营业额</div>
... ... @@ -88,15 +79,15 @@
88 79 </el-table-column>
89 80 </el-table>
90 81 </div>
91   - </div> -->
  82 + </div>
92 83  
93 84 <div style="width:100%;">
94 85 <div ref="tongji" style="height:300px"></div>
95 86 </div>
96   - </div>
  87 + </div> -->
97 88  
98 89 <div style="margin-top:20px;">
99   - <div style="padding:0 20px 20px 20px ;border-bottom:1px solid #F2F3F5">交易流水</div>
  90 + <!-- <div style="padding:0 20px 20px 20px ;border-bottom:1px solid #F2F3F5">交易流水</div> -->
100 91 <!-- <div style="display:flex;padding: 10px 0">
101 92 <el-form :inline="true" :model="formInline" label-width="auto">
102 93 <el-form-item label="用户名">
... ... @@ -120,8 +111,8 @@
120 111 </template>
121 112 </el-table-column>
122 113 <el-table-column
123   - label="合同编号"
124   - prop="contractNumber"
  114 + label="商家编号"
  115 + prop="shopId"
125 116 min-width="12%"
126 117 >
127 118 </el-table-column>
... ... @@ -132,14 +123,7 @@
132 123 min-width="12%"
133 124 >
134 125 </el-table-column>
135   - <el-table-column
136   - label="品牌"
137   - prop="name"
138   - width="auto"
139   - min-width="12%"
140   - >
141   -
142   - </el-table-column>
  126 +
143 127 <el-table-column
144 128 label="营业期间"
145 129 prop=""
... ... @@ -152,13 +136,27 @@
152 136 </el-table-column>
153 137 <el-table-column
154 138 label="营业额(元)"
155   - prop="name"
  139 + prop="price"
156 140 width="auto"
157 141 min-width="12%"
158 142 >
159 143  
160 144 </el-table-column>
161 145 </el-table>
  146 + <div class="fenye">
  147 + <div>共{{total}}条</div>
  148 + <el-pagination
  149 + class="pagination"
  150 + :hide-on-single-page="flag"
  151 + background
  152 + :current-page="pageindex.pageNumber+1"
  153 + :page-sizes="[10, 20, 50, 100]"
  154 + :page-size="pageindex.pageSize"
  155 + layout="prev, pager,next"
  156 + :total="total"
  157 + @current-change="handleCurrentChange"
  158 + />
  159 + </div>
162 160 </div>
163 161 </div>
164 162 </div>
... ... @@ -177,8 +175,11 @@
177 175 fut: true,
178 176 lvdaoList:[],
179 177 tableData: [],
  178 + total:0,
  179 + flag:false,
180 180 pageindex: {
181   - belongingGreenwaySection:'LDQD0029',
  181 + pageSize:10,
  182 + pageNumber:0,
182 183 },
183 184 }
184 185 },
... ... @@ -190,16 +191,19 @@
190 191 },
191 192 methods: {
192 193 async getAll(){
193   - const lvdao = await lvdaoduan()
194   - this.lvdaoList = lvdao.data
  194 + // const lvdao = await lvdaoduan()
  195 + // this.lvdaoList = lvdao.data
195 196 const res= await aggregateQuery(this.pageindex)
196   - this.tableData = res.data
197   -
198   - this.tong(res.data)
  197 + this.tableData = res.data.content
  198 + this.total = res.data.totalElements // this.tong(res.data)
199 199 },
200 200 toggleFilter() {
201 201 this.fut = !this.fut
202 202 },
  203 + handleCurrentChange(val){
  204 + this.pageindex.pageNumber = val
  205 + this.getAll()
  206 + },
203 207 // max() {
204 208 // var chartDom = this.$refs.maxYe
205 209 // var myChart = echarts.init(chartDom);
... ... @@ -408,6 +412,11 @@ this.getAll()
408 412 </script>
409 413  
410 414 <style lang="scss" scoped>
  415 + .fenye {
  416 + margin-top: 20px;
  417 + display: flex;
  418 + justify-content: space-between;
  419 + }
411 420 .filter-container {
412 421 border: 1px solid #EBEEF5;
413 422  
... ...
admin-web-master/src/views/renovation/brand/index.vue
... ... @@ -35,7 +35,7 @@
35 35 label="Logo"
36 36 >
37 37 <template v-slot="scope">
38   - <el-image :src="$baseURL+scope.row.brandLogo" :preview-src-list="[scope.row.brandLogo]" style="width: 100px;height: 100px" />
  38 + <el-image :src="$baseURL+scope.row.brandLogo" :preview-src-list="[`${$baseURL+scope.row.brandLogo}`]" style="width: 100px;height: 100px" />
39 39 </template>
40 40 </el-table-column>
41 41 <el-table-column
... ...
admin-web-master/src/views/serve/salesReport.vue 0 → 100644
  1 +<template>
  2 + <div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div class="zhuti">
  4 + <div style="height:58px;line-height:58px;">
  5 + <div style="color:#0006"> <span>客服服务管理</span> <span style="padding:0 5px;">></span> <span
  6 + style="color:#000000e6">销售上报</span></div>
  7 + </div>
  8 + <div>
  9 +
  10 + <!-- 搜索 -->
  11 + <div class="formSearch">
  12 + <el-form
  13 + :inline="true"
  14 + :model="pageIndex"
  15 +
  16 + label-position="left"
  17 + >
  18 + <el-form-item label="品牌">
  19 + <el-input
  20 + placeholder="请输入"
  21 +
  22 + v-model="pageIndex.shopName">
  23 + </el-input>
  24 + </el-form-item>
  25 + <el-form-item label="上报状态">
  26 + <el-select
  27 + v-model="pageIndex.isReconciliation"
  28 + placeholder="请选择"
  29 +
  30 + style="width: 100px;"
  31 + >
  32 + <el-option label="未对账" value="0" />
  33 + <el-option label="对账成功" value="1" />
  34 + <el-option label="对账失败" value="2" />
  35 +
  36 + </el-select>
  37 + </el-form-item>
  38 +
  39 +
  40 + <el-form-item label="商品名称">
  41 + <el-input
  42 + placeholder="请输入"
  43 +
  44 + v-model="pageIndex.shopName">
  45 + </el-input>
  46 + </el-form-item>
  47 +
  48 + </el-form>
  49 + <div>
  50 + <el-button
  51 + style="background-color: #3F9B6A;color: #fff;"
  52 + @click="search"
  53 + >查询
  54 + </el-button>
  55 + <el-button
  56 + class="buttonHover"
  57 + style="color: #606266;border: 1px solid #dddfe5;background-color: #fff;"
  58 + @click="resetting"
  59 + >重置
  60 + </el-button>
  61 + </div>
  62 + </div>
  63 + <!-- <div style="padding-bottom:20px;">
  64 + <el-button
  65 + style="background-color: #3F9B6A;color: #fff;"
  66 + @click="daochu"
  67 + >导出
  68 + </el-button>
  69 +
  70 + </div> -->
  71 + <!-- 表格 -->
  72 +
  73 + <div class="tableBox">
  74 + <el-table
  75 + ref="multipleTable"
  76 + :data="tableData"
  77 + :header-cell-style="{fontSize: '14px',color:'#0009',fontWeight: 'normal',backgroundColor:'#F2F3F5'}"
  78 + tooltip-effect="dark"
  79 +
  80 + >
  81 + <el-table-column label="序号" width="150">
  82 + <template slot-scope="scope">{{ scope.$index +1 }}</template>
  83 + </el-table-column>
  84 + <el-table-column prop="number" label="商品名称" width="100" />
  85 + <el-table-column prop="shopName" label="品牌" width="220" show-overflow-tooltip />
  86 + <el-table-column prop="customerName" label="商品类型" show-overflow-tooltip />
  87 + <el-table-column prop="receiveName" label="单价" show-overflow-tooltip />
  88 + <el-table-column prop="receivePhone" label="销售时间" show-overflow-tooltip />
  89 + <el-table-column label="上报状态" show-overflow-tooltip>
  90 + <template slot-scope="scope">
  91 + <span v-if="scope.row.isReconciliation == 0" >未发布</span>
  92 + <span v-if="scope.row.isReconciliation == 2" >已上报</span>
  93 +
  94 + </template>
  95 + </el-table-column>
  96 +
  97 + <el-table-column label="操作" fixed="right">
  98 + <template slot-scope="scope">
  99 + <div class="btnList">
  100 + <div class="tableBtn greens" @click="addbuss(scope.row)" v-if="scope.row.isReconciliation == 0">上报</div>
  101 + <div class="tableBtn greens" @click="addbuss(scope.row)" v-if="scope.row.isReconciliation == 0">删除</div>
  102 + </div>
  103 + </template>
  104 + </el-table-column>
  105 + </el-table>
  106 + <div class="fenye">
  107 + <el-pagination
  108 + :current-page="pageIndex.page"
  109 + :page-sizes="[10, 20, 50, 100]"
  110 + :page-size="pageIndex.pageSize"
  111 + layout="total, prev, pager, next"
  112 + background
  113 + :total="total"
  114 + @current-change="handleCurrentChange"
  115 + />
  116 + </div>
  117 + </div>
  118 +
  119 +
  120 + </div>
  121 + </div>
  122 +
  123 + </div>
  124 +</template>
  125 +
  126 +<script>
  127 +
  128 +export default {
  129 + data () {
  130 + return {
  131 + pageIndex: {
  132 + searchType: '1',
  133 + search: '', // 搜索字段
  134 + state: '',
  135 + page: 1,
  136 + shopName: '',
  137 + pageSize: 10
  138 +
  139 + },
  140 + total: 0,
  141 + flag: false,
  142 + tableData:[]
  143 + }
  144 + },
  145 + computed: {},
  146 + mounted(){
  147 +
  148 + },
  149 + methods: {
  150 + search(){
  151 +
  152 + },
  153 + resetting(){
  154 + this.pageIndex={
  155 + searchType: '1',
  156 + search: '', // 搜索字段
  157 + state: '',
  158 + page: 1,
  159 + shopName: '',
  160 + pageSize: 10
  161 + }
  162 + },
  163 + handleCurrentChange(val){
  164 + this.pageIndex.currentPage = val
  165 + }
  166 + }
  167 +}
  168 +</script>
  169 +
  170 +<style scoped >
  171 +.zhuti {
  172 + padding: 0 20px 20px 20px;
  173 + min-height: calc(100vh - 50px - 20px);
  174 + background-color: #Fff;
  175 + position: relative;
  176 + }
  177 +
  178 +/deep/ .el-form-item__content {
  179 + line-height: 0;
  180 +}
  181 +
  182 +.tableBtn {
  183 + display: inline-block;
  184 + margin-right: 10px;
  185 +}
  186 +
  187 +::v-deep .formSearch {
  188 + position: relative;
  189 + margin: 20px 0;
  190 + display: flex;
  191 + width: 100%;
  192 + font-size: 14px;
  193 + justify-content: space-between;
  194 + .el-form-item__label{
  195 + font-size: 14px;
  196 + color: #000;
  197 + }
  198 +}
  199 +
  200 +.greens {
  201 + color: #3F9B6A;
  202 +}
  203 +
  204 +
  205 +.fenye {
  206 + margin-top: 20px;
  207 + display: flex;
  208 + justify-content: flex-start;
  209 + position: relative;
  210 +}
  211 +
  212 +/deep/ .el-pagination.is-background .el-pager li:not(.disabled).active {
  213 + background-color: #3F9B6A;
  214 +}
  215 +
  216 +.el-row {
  217 + margin-bottom: 20px;
  218 +}
  219 +:last-child {
  220 + margin-bottom: 0;
  221 +}
  222 +
  223 +.el-col {
  224 + border-radius: 4px;
  225 +}
  226 +
  227 +.bg-purple-dark {
  228 + background: #99a9bf;
  229 +}
  230 +
  231 +.bg-purple {
  232 + background: #d3dce6;
  233 +}
  234 +
  235 +.bg-purple-light {
  236 + background: #e5e9f2;
  237 +}
  238 +
  239 +.grid-content {
  240 + border-radius: 4px;
  241 + min-height: 36px;
  242 +}
  243 +
  244 +.row-bg {
  245 + padding: 10px 0;
  246 + background-color: #f9fafc;
  247 +}
  248 +
  249 +/deep/ .bg-purple[data-v-0e3fe4ec] {
  250 + background: #fff;
  251 + height: 50px;
  252 +}
  253 +
  254 +/deep/ .el-form--label-top .el-form-item__label {
  255 + padding: 0;
  256 +}
  257 +.demo-input-suffix{
  258 + display: flex;
  259 + margin-right: 20px;
  260 +}
  261 +.pagination{
  262 + text-align:right;
  263 + line-height: 20px;
  264 +}
  265 +
  266 +</style>
  267 +<style lang="scss" scoped>
  268 +
  269 + ::v-deep .buttonHover:hover {
  270 + color: #3f9b6a !important;
  271 + border-color: #c5e1d2 !important;
  272 + background-color: #ecf5f0 !important;
  273 + outline: none;
  274 + }
  275 +
  276 +
  277 +</style>
... ...
admin-web-master/src/views/stockControl/stocksForewarn/index.vue
... ... @@ -311,7 +311,7 @@ border:1px solid #EBEEF5;
311 311 .fenye {
312 312 margin-top: 20px;
313 313 display: flex;
314   - justify-content: flex-end;
  314 + justify-content: flex-start;
315 315 }
316 316 ::v-deep .setclass{
317 317 .el-dialog__header{
... ...
ceres-uniapp-master/App.vue
... ... @@ -8,10 +8,10 @@ import API from &quot;@/config/api&quot;;
8 8  
9 9 export default {
10 10 onLoad: function (options) {
11   -
12   -
  11 +
13 12 },
14 13 onLaunch: function (options) {
  14 +
15 15 if (options.query.token) {
16 16 // 将 token 存入本地缓存
17 17 uni.setStorageSync('storage_key', options.query);
... ... @@ -75,6 +75,29 @@ export default {
75 75 isIphone: false,
76 76 }
77 77 ,
  78 + methods:{
  79 + //绑定关系
  80 + bindSalesCustomer(salesId, storeId) {
  81 + if (salesId && storeId) {
  82 + //如果已登录,静默绑定客户关系,否则跳转到登录页面
  83 + NET.request(API.BindSalesCustomer, {
  84 + shopId: storeId,
  85 + distributorId: salesId
  86 + }, 'POST').then(res => {
  87 + uni.showToast({
  88 + title: "绑定成功",
  89 + icon: "none"
  90 + })
  91 + }).catch(res => {
  92 + uni.showToast({
  93 + title: res.data.message,
  94 + icon: "none"
  95 + })
  96 + })
  97 +
  98 + }
  99 + }
  100 + }
78 101 }
79 102 ;
80 103 </script>
... ...
ceres-uniapp-master/config/api.js
... ... @@ -5,8 +5,8 @@
5 5 // const DOMAIN_PREFIX = 'https://zhgw-uat.028wlkj.com/cdwlMall/meserver/api'
6 6  
7 7 const TIAOZHUAN = 'https://jy.scjysm.asia:18086/cdwlMall/'
8   -const DOMAIN_PREFIXPING = 'http://128.10.249.48:9003'
9   -const DOMAIN_PREFIX = 'http://128.10.249.48:9007'
  8 +const DOMAIN_PREFIXPING = 'http://128.10.249.26:9003'
  9 +const DOMAIN_PREFIX = 'http://128.10.249.26:9007'
10 10 // const host = `${window.location.protocol}//${window.location.host}`
11 11 // const DOMAIN_PREFIXPING = `${host}/cdwlMall/meserver/admin-server`
12 12 // const DOMAIN_PREFIX =`${host}/cdwlMall/meserver/api`
... ...
ceres-uniapp-master/pages/tabbar/index/index.vue
... ... @@ -60,7 +60,7 @@
60 60 </view>
61 61 </view>
62 62 <!-- #endif -->
63   - <!--<category-list @tabChange="tabChange"></category-list>-->
  63 + <!-- <category-list @tabChange="tabChange"></category-list> -->
64 64 </view>
65 65 </u-sticky>
66 66 <canvas-page ref="canvasPage"
... ... @@ -135,7 +135,28 @@ export default {
135 135 onReachBottom() {
136 136 this.HandleLoadMoreProduct()
137 137 },
138   - onLoad() {
  138 + onLoad(options) {
  139 + console.log(options.phone,'phjas')
  140 + if(options.phone&&options.phone!=''){
  141 + NET.request(API.Login, {
  142 + phone: options.phone,
  143 + verificationCode:'wGnknz0SpYZ0YkFTCqnWXDWqoNRJm3w2f3BVrUvEpbk='
  144 + }, 'POST').then(res => {
  145 + uni.hideLoading()
  146 + const item = res.data
  147 + uni.setStorageSync('storage_key', item);
  148 + if (uni.getStorageSync("salesId")) {
  149 + NET.request(API.huiyuanList, {phone:options.phone}, 'POST').then(item => {
  150 + uni.setStorageSync('memerId', JSON.parse(item.data).data.id);
  151 + })
  152 + let salesId = uni.getStorageSync("salesId")
  153 + let shopId = uni.getStorageSync("shopId")
  154 + this.bindSalesCustomer(salesId, shopId)
  155 + uni.removeStorageSync('salesId');
  156 + uni.removeStorageSync('shopId');
  157 + }
  158 + })
  159 + }
139 160 const homePageUrl = window.location.href
140 161 localStorage.setItem('homePageUrl', homePageUrl)
141 162 if (!uni.getStorageSync('storage_key')) {
... ... @@ -160,6 +181,27 @@ export default {
160 181 this.topLeft = e.scrollTop
161 182 },
162 183 methods: {
  184 + //绑定关系
  185 + bindSalesCustomer(salesId, storeId) {
  186 + if (salesId && storeId) {
  187 + //如果已登录,静默绑定客户关系,否则跳转到登录页面
  188 + NET.request(API.BindSalesCustomer, {
  189 + shopId: storeId,
  190 + distributorId: salesId
  191 + }, 'POST').then(res => {
  192 + uni.showToast({
  193 + title: "绑定成功",
  194 + icon: "none"
  195 + })
  196 + }).catch(res => {
  197 + uni.showToast({
  198 + title: res.data.message,
  199 + icon: "none"
  200 + })
  201 + })
  202 +
  203 + }
  204 + },
163 205 // 读取画布
164 206 canvasGet() {
165 207 var _this = this
... ...
ceres-uniapp-master/pages_category_page1/customer/chatBox.vue
... ... @@ -3,7 +3,7 @@
3 3 <view class="uni-padding-wrap">
4 4 <view class="" style="position:fixed;bottom: 0rpx;left: 0;width: 100%;">
5 5 <form @submit="commitComments">
6   - <view style="display: flex;">
  6 + <view style="display: flex;justify-content: space-between;;padding: 10px;">
7 7 <input class="contentTextArea" name="commentContent" v-model="commentContent" placeholder="请输入"></input>
8 8 <button class="commitButton" formType="submit">发送</button>
9 9 </view>
... ... @@ -43,6 +43,9 @@
43 43 },
44 44 mounted() {
45 45 },
  46 + onLoad(option) {
  47 + console.log(option.shopId)
  48 + },
46 49 methods:{
47 50  
48 51 }
... ... @@ -99,7 +102,7 @@
99 102 }
100 103  
101 104 .uni-comment-top text {
102   - color: #0A98D5;
  105 + color: #3F9B6A;
103 106 margin-right: 20rpx;
104 107 font-size: 24upx;
105 108 }
... ... @@ -127,22 +130,24 @@
127 130 }
128 131 .commitButton{
129 132 height: 64rpx;
130   - color: white;
  133 + color: #fff;
131 134 width: 20%;
132 135 margin: 0rpx auto;
133 136 font-size: 27rpx;
134   - color: #000;
135   - background: #fff;
  137 + border-radius: 10px;
  138 + line-height: 64rpx;
  139 + background-color: #3F9B6A;
136 140 }
137 141 .contentTextArea{
  142 +
138 143 font-size: 30rpx;
139 144 background-color: #fff;
140 145 border:1rpx solid #e9e7ef;
141 146 border-right: 0px solid transparent;
142   - width: 80%;
  147 + width: 72%;
143 148 height: 40rpx;
144 149 margin: 0rpx auto;
145 150 padding: 10rpx 0 10rpx 20rpx;
146   - border-radius: 6rpx;
  151 + border-radius: 10px;
147 152 }
148 153 </style>
149 154 \ No newline at end of file
... ...
ceres-uniapp-master/pages_category_page1/goodsModule/goodsDetails.vue
1 1 <template>
2   - <view
3   - class="container u-skeleton"
4   - @scroll="handlePageScroll"
5   - >
6   - <global-loading/>
7   - <view class="">
8   - <!-- 拼团滚动-->
9   - <view class="news-box">
10   - <view class="news-bg">
11   - <swiper
12   - class="goodsImgswiper-box"
13   - :vertical="true"
14   - :circular="true"
15   - interval="8000"
16   - duration="2000"
17   - :autoplay="true"
18   - >
19   - <swiper-item
20   - v-for="(item, index) of broadCastList"
21   - :key="index"
22   - >
23   - <view class="news-item flex-items">
24   - <image
25   - class="item-avatar"
26   - :src="item.headImage"
27   - ></image>
28   - <view class="news-item-user">{{ item.name }}</view>
29   - <view class="news-item-info">{{ item.timeStr }}</view>
30   - <view
31   - class="news-item-info"
32   - v-if="item.type === 1"
33   - >给了好评
34   - </view>
35   - <view
36   - class="news-item-info"
37   - v-if="item.type === 2"
38   - >正在拼单
39   - </view>
40   - <view
41   - class="news-item-info"
42   - v-if="item.type === 3"
43   - >拼单成功
44   - </view>
45   - <view
46   - class="news-item-info"
47   - v-if="item.type === 4"
48   - >下单
49   - </view>
50   - </view>
51   - </swiper-item>
52   - </swiper>
53   - </view>
54   - </view>
55   -
56   - <!-- 轮播图+分享+价格名称+活动倒计时+优惠券 -->
57   - <GoodActivityDetail
58   - ref="goodActivityDetail"
59   - :sku-select="selectedSku"
60   - :product-info="productData"
61   - :time-active-type="timeActiveType"
62   - :mark-tools="markTools"
63   - :shop-mark-tools="shopMarkTools"
64   - @activityEnd="handleActivityEnd"
65   - @couponClick="handleShowCoupon"
66   - />
67   -
68   - <!-- 发货 -->
69   - <view class="express-box flex-items flex-row fs24 u-skeleton-fillet">
70   - <label class="fs24 font-color-999 mar-right-20 ">发货</label>
71   - <image
72   - src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/mapIcon.png"
73   - v-if="productData.receive && productData.receive.receiveAdress"
74   - ></image>
75   - <label
76   - class="mar-left-10 mapName mar-right-30"
77   - v-if="productData.receive && productData.receive.receiveAdress"
78   - >{{
  2 + <view class="container u-skeleton" @scroll="handlePageScroll">
  3 + <global-loading />
  4 + <view class="">
  5 + <!-- 拼团滚动-->
  6 + <view class="news-box">
  7 + <view class="news-bg">
  8 + <swiper class="goodsImgswiper-box" :vertical="true" :circular="true" interval="8000" duration="2000"
  9 + :autoplay="true">
  10 + <swiper-item v-for="(item, index) of broadCastList" :key="index">
  11 + <view class="news-item flex-items">
  12 + <image class="item-avatar" :src="item.headImage"></image>
  13 + <view class="news-item-user">{{ item.name }}</view>
  14 + <view class="news-item-info">{{ item.timeStr }}</view>
  15 + <view class="news-item-info" v-if="item.type === 1">给了好评
  16 + </view>
  17 + <view class="news-item-info" v-if="item.type === 2">正在拼单
  18 + </view>
  19 + <view class="news-item-info" v-if="item.type === 3">拼单成功
  20 + </view>
  21 + <view class="news-item-info" v-if="item.type === 4">下单
  22 + </view>
  23 + </view>
  24 + </swiper-item>
  25 + </swiper>
  26 + </view>
  27 + </view>
  28 +
  29 + <!-- 轮播图+分享+价格名称+活动倒计时+优惠券 -->
  30 + <GoodActivityDetail ref="goodActivityDetail" :sku-select="selectedSku" :product-info="productData"
  31 + :time-active-type="timeActiveType" :mark-tools="markTools" :shop-mark-tools="shopMarkTools"
  32 + @activityEnd="handleActivityEnd" @couponClick="handleShowCoupon" />
  33 +
  34 + <!-- 发货 -->
  35 + <view class="express-box flex-items flex-row fs24 u-skeleton-fillet">
  36 + <label class="fs24 font-color-999 mar-right-20 ">发货</label>
  37 + <image src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/mapIcon.png"
  38 + v-if="productData.receive && productData.receive.receiveAdress"></image>
  39 + <label class="mar-left-10 mapName mar-right-30"
  40 + v-if="productData.receive && productData.receive.receiveAdress">{{
79 41 productData.receive.receiveAdress
80 42 }}</label>
81   - <label>快递:¥ {{ productData.logisticsPrice || 0 }}</label>
82   - </view>
83   -
84   - <!-- 选择SKU -->
85   - <view
86   - class="fs24 chooseSize-box flex-start"
87   - @click=" handleShowGoodsSkuSelect(6)"
88   - >
89   - <view class="chooseSize-content flex-items flex-row flex-sp-between u-skeleton-fillet">
90   - <view class="flex-row-plus ">
91   - <label class="fs26 mar-left-30 font-color-999">选择</label>
92   - <view class="valueBox mar-left-20 flex-items">
93   - <view
94   - class="mar-right-10"
95   - v-for="(item, index) of currentSuk"
96   - :key="index"
97   - >{{ item.skuText || '-' }}
98   - </view>
99   - </view>
100   - </view>
101   - <image
102   - class="arrow-icon"
103   - src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/img//user/arrow.png"
104   - ></image>
105   - </view>
106   - </view>
107   -
108   - <!--结合销售-->
109   - <combined-sales
110   - :pid="productId"
111   - :productData="productData"
112   - ></combined-sales>
113   - <!--拼团-->
114   - <view
115   - v-if="selectedSku.activityType === 1"
116   - class="borRig-line-20"
117   - ></view>
118   - <!-- 拼单列表 -->
119   - <view
120   - v-if="selectedSku.activityType === 1&&topThreeCollageOrders.length > 0"
121   - class="goodsDiscount"
122   - >
123   - <view class="questionTit mar-left-30 flex-items flex-row flex-sp-between">
124   - <label class="">这些人正在拼单</label>
125   - <view class="allMoreBox">
126   - <view
127   - class="allMore"
128   - @click="handleOpenGroupBookingList"
129   - >查看全部
130   - </view>
131   - <image
132   - class="evaluateAllArrow-icon mar-left-10"
133   - src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/img//user/arrow.png"
134   - ></image>
135   - </view>
136   - </view>
137   - <view
138   - class="groupBuy"
139   - v-for="(Gitem, index) in topThreeCollageOrders"
140   - :key="index"
141   - >
142   - <view
143   - class="groupBuyList"
144   - v-if="Gitem.time > 0"
145   - >
146   - <view class="groupBuyItem">
147   - <view class="leftAvatar">
148   - <img
149   - :src="Gitem.headImage"
150   - alt=""
151   - >
152   - <span>{{ Gitem.name }}</span>
153   - </view>
154   - <view class="rightInfo">
155   - <view
156   - class="groupBuyTime"
157   - style="width: 70%;"
158   - >
159   - <view class="needPeople flex-row-plus">还差<b>{{ Gitem.person }}人</b>拼成</view>
160   - <view class="endDate">剩余{{ handleGetDownTime(Gitem.time) }}</view>
161   - </view>
162   - <view
163   - class="groupBuyBtn"
164   - @click="handleGoGroupBooking(Gitem.collageId)"
165   - >和Ta拼
166   - </view>
167   - </view>
168   - </view>
169   - </view>
170   - </view>
171   - </view>
172   - <!-- 评价 -->
173   - <GoodEvaluateAndQuestion
174   - ref="goodEvaluateAndQuestion"
175   - class=" u-skeleton-fillet"
176   - :product-info="productData"
177   - :comment-list="commentList"
178   - />
179   - <!-- 店铺 -->
180   - <view class="inStore-box flex-items flex-row flex-sp-between u-skeleton-fillet">
181   - <view class="flex-display flex-row">
182   - <view>
183   - <image
184   - @click="handleJumpToStore"
185   - class="inStore-logo default-img"
186   - :src="$baseURL+productData.shopLogo"
187   - ></image>
188   - </view>
189   - <view class="flex-display flex-column mar-left-20">
190   - <label @click="handleJumpToStore">{{ productData.shopName }}</label>
191   - <view class="flex-display flex-row fs24 font-color-999 mar-top-5">
192   - <label>商品总类:{{ productData.classifyNumber }}</label>
193   - <label class="mar-left-30">已售:{{ productData.number }}件</label>
194   - </view>
195   - </view>
196   - </view>
197   - <view
198   - class="inStore-but"
199   - @click="handleJumpToStore"
200   - >去逛逛
201   - </view>
202   - </view>
203   - <!-- 详细信息 -->
204   - <view class="goodsDetails-box u-skeleton-fillet">
205   - <view class="goodsDetails-title">
206   - <view class="goodsDetails-Line"></view>
207   - <label class="goodsDetails-text">宝贝详情</label>
208   - <view class="goodsDetails-Line"></view>
209   - </view>
210   - <view class="goodsDetailsimg-box">
211   - <view class="">
212   - <rich-text :nodes="sellDescList"></rich-text>
213   - </view>
214   - </view>
215   - </view>
216   - </view>
217   - <!-- 底部购买 -->
218   - <view class="buygoods-box">
219   - <view
220   - class="buygoodsBut-box flex-row-plus"
221   - :style="{'height':(isIphone === true? 160:130)+'rpx'}"
222   - >
223   - <view class="btns_container">
224   - <view
225   - class="btns flex-column-plus"
226   - @click="handleJumpToStore"
227   - >
228   - <image
229   - class="store-icon"
230   - src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/storeIcon.png"
231   - ></image>
232   - <label class="fs22">店铺</label>
233   - </view>
234   - <!-- #ifdef MP-WEIXIN || APP-PLUS || H5 -->
235   -
236   - <!-- #endif -->
237   - <view
238   - class="btns flex-column-plus mar-left-10 flex-items Cart"
239   - @click="handleJumpToShopCart"
240   - >
241   - <view
242   - class="cartAllNum"
243   - v-if="allCartNum>0"
244   - >{{ allCartNum }}
245   - </view>
246   - <image
247   - class="store-icon"
248   - src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/gouwuche.png"
249   - ></image>
250   - <label class="fs22">购物车</label>
251   - </view>
252   - </view>
253   - <view class="btns_container">
254   - <view
255   - class="flex-row-plus offShelf"
256   - v-if="productData.shelveState === 0"
257   - >
258   - 商品已下架
259   - </view>
260   - <view
261   - class="flex-row-plus flex-items"
262   - v-else-if="selectedSku.activityType === 1"
263   - >
264   - <view
265   - class="joinShopCartBut"
266   - @click=" handleShowGoodsSkuSelect(4)"
267   - >单独购买
268   - </view>
269   - <view
270   - class="buyNowBut"
271   - @click=" handleShowGoodsSkuSelect(3)"
272   - >我要开团
273   - </view>
274   - </view>
275   - <view
276   - class="flex-row-plus flex-items"
277   - v-else
278   - >
279   - <view
280   - class="joinShopCartBut"
281   - @click=" handleShowGoodsSkuSelect(1)"
282   - >加入购物车
283   - </view>
284   - <view
285   - class="buyNowBut"
286   - @click=" handleShowGoodsSkuSelect(2)"
287   - >立即购买
288   - </view>
289   - </view>
290   - </view>
291   - </view>
292   - </view>
293   - <!-- 回到顶部 -->
294   - <view class="returnTopService-box">
295   - <view
296   - class="returnTop-box flex-items-plus flex-column"
297   - @click="handleReturnTop"
298   - :style="{'display':(returnTopFlag===true? 'flex':'none')}"
299   - >
300   - <image
301   - class="returnTopImg"
302   - src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/backTop.png"
303   - ></image>
304   - </view>
305   - </view>
306   - <!-- SKU选择器 -->
307   - <GoodSkuSelect
308   - ref="skuSelect"
309   - :product-data="productData"
310   - :selected-sku="selectedSku"
311   - :collage-id="collageId"
312   - @postSelectSku="selectSkuPostProcessor"
313   - @getCurrentSku="handleSelectSku"
314   - @changeCartNum="(num)=>allCartNum = num"
315   - />
316   - <!-- 优惠券选择器 -->
317   - <coupon-popup
318   - ref="couponPopup"
319   - :markTools="markTools"
320   - :shopMarkTools="shopMarkTools"
321   - :setTop="topLeft"
322   - :currentActive="0"
323   - ></coupon-popup>
324   - <!-- 拼单弹框 -->
325   - <u-popup
326   - class="popupDiscount"
327   - v-model="showGroupBuyList"
328   - mode="center"
329   - border-radius="14"
330   - close-icon-pos="top-right"
331   - close-icon-size="20"
332   - >
333   - <view class="popupDiscountTit">这些人正在拼单</view>
334   - <view class="groupBuy">
335   - <view class="groupBuyList">
336   - <scroll-view
337   - style="height: 480upx;"
338   - scroll-y
339   - >
340   - <view
341   - class="groupBuyItem1"
342   - v-for="(aitem,index) in selectedSku.collageOrders"
343   - :key="index"
344   - >
345   - <view
346   - class="leftAvatar"
347   - v-if="aitem.time > 0"
348   - >
349   - <img
350   - :src="aitem.headImage"
351   - alt=""
352   - >
353   - <view class="groupBuyTime">
354   - <view class="needPeople"><span>{{ aitem.name }}</span>还差<b>{{ aitem.person }}人</b>
355   - </view>
356   - <view class="endDate">剩余{{ handleGetDownTime(aitem.time) }}</view>
357   - </view>
358   - </view>
359   - <view
360   - class="rightInfo"
361   - v-if="aitem.time > 0"
362   - >
363   - <view
364   - class="groupBuyBtn"
365   - @click="handleGoGroupBooking(aitem.collageId)"
366   - >和Ta拼
367   - </view>
368   - </view>
369   - </view>
370   - </scroll-view>
371   - </view>
372   - </view>
373   - </u-popup>
374   - <!-- 骨架屏 -->
375   - <Skeleton
376   - el-color="#efefef"
377   - bg-color="#fff"
378   - :loading="isFirstComeIn&&loading"
379   - :animation="true"
380   - ></Skeleton>
381   - </view>
  43 + <label>快递:¥ {{ productData.logisticsPrice || 0 }}</label>
  44 + </view>
  45 +
  46 + <!-- 选择SKU -->
  47 + <view class="fs24 chooseSize-box flex-start" @click=" handleShowGoodsSkuSelect(6)">
  48 + <view class="chooseSize-content flex-items flex-row flex-sp-between u-skeleton-fillet">
  49 + <view class="flex-row-plus ">
  50 + <label class="fs26 mar-left-30 font-color-999">选择</label>
  51 + <view class="valueBox mar-left-20 flex-items">
  52 + <view class="mar-right-10" v-for="(item, index) of currentSuk" :key="index">
  53 + {{ item.skuText || '-' }}
  54 + </view>
  55 + </view>
  56 + </view>
  57 + <image class="arrow-icon"
  58 + src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/img//user/arrow.png">
  59 + </image>
  60 + </view>
  61 + </view>
  62 +
  63 + <!--结合销售-->
  64 + <combined-sales :pid="productId" :productData="productData"></combined-sales>
  65 + <!--拼团-->
  66 + <view v-if="selectedSku.activityType === 1" class="borRig-line-20"></view>
  67 + <!-- 拼单列表 -->
  68 + <view v-if="selectedSku.activityType === 1&&topThreeCollageOrders.length > 0" class="goodsDiscount">
  69 + <view class="questionTit mar-left-30 flex-items flex-row flex-sp-between">
  70 + <label class="">这些人正在拼单</label>
  71 + <view class="allMoreBox">
  72 + <view class="allMore" @click="handleOpenGroupBookingList">查看全部
  73 + </view>
  74 + <image class="evaluateAllArrow-icon mar-left-10"
  75 + src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/img//user/arrow.png">
  76 + </image>
  77 + </view>
  78 + </view>
  79 + <view class="groupBuy" v-for="(Gitem, index) in topThreeCollageOrders" :key="index">
  80 + <view class="groupBuyList" v-if="Gitem.time > 0">
  81 + <view class="groupBuyItem">
  82 + <view class="leftAvatar">
  83 + <img :src="Gitem.headImage" alt="">
  84 + <span>{{ Gitem.name }}</span>
  85 + </view>
  86 + <view class="rightInfo">
  87 + <view class="groupBuyTime" style="width: 70%;">
  88 + <view class="needPeople flex-row-plus">还差<b>{{ Gitem.person }}人</b>拼成</view>
  89 + <view class="endDate">剩余{{ handleGetDownTime(Gitem.time) }}</view>
  90 + </view>
  91 + <view class="groupBuyBtn" @click="handleGoGroupBooking(Gitem.collageId)">和Ta拼
  92 + </view>
  93 + </view>
  94 + </view>
  95 + </view>
  96 + </view>
  97 + </view>
  98 + <!-- 评价 -->
  99 + <GoodEvaluateAndQuestion ref="goodEvaluateAndQuestion" class=" u-skeleton-fillet"
  100 + :product-info="productData" :comment-list="commentList" />
  101 + <!-- 店铺 -->
  102 + <view class="inStore-box flex-items flex-row flex-sp-between u-skeleton-fillet">
  103 + <view class="flex-display flex-row">
  104 + <view>
  105 + <image @click="handleJumpToStore" class="inStore-logo default-img"
  106 + :src="$baseURL+productData.shopLogo"></image>
  107 + </view>
  108 + <view class="flex-display flex-column mar-left-20">
  109 + <label @click="handleJumpToStore">{{ productData.shopName }}</label>
  110 + <view class="flex-display flex-row fs24 font-color-999 mar-top-5">
  111 + <label>商品总类:{{ productData.classifyNumber }}</label>
  112 + <label class="mar-left-30">已售:{{ productData.number }}件</label>
  113 + </view>
  114 + </view>
  115 + </view>
  116 + <view class="inStore-but" @click="handleJumpToStore">去逛逛
  117 + </view>
  118 + </view>
  119 + <!-- 详细信息 -->
  120 + <view class="goodsDetails-box u-skeleton-fillet">
  121 + <view class="goodsDetails-title">
  122 + <view class="goodsDetails-Line"></view>
  123 + <label class="goodsDetails-text">宝贝详情</label>
  124 + <view class="goodsDetails-Line"></view>
  125 + </view>
  126 + <view class="goodsDetailsimg-box">
  127 + <view class="">
  128 + <rich-text :nodes="sellDescList"></rich-text>
  129 + </view>
  130 + </view>
  131 + </view>
  132 + </view>
  133 + <!-- 底部购买 -->
  134 + <view class="buygoods-box">
  135 + <view class="buygoodsBut-box flex-row-plus" :style="{'height':(isIphone === true? 160:130)+'rpx'}">
  136 + <view class="btns_container">
  137 + <view class="btns flex-column-plus" @click="handleJumpToStore">
  138 + <image class="store-icon"
  139 + src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/storeIcon.png">
  140 + </image>
  141 + <label class="fs22">店铺</label>
  142 + </view>
  143 + <view class="btns flex-column-plus" @click="kefu">
  144 + <image class="store-icon"
  145 + src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/storeIcon.png">
  146 + </image>
  147 + <label class="fs22">客服</label>
  148 + </view>
  149 + <!-- #ifdef MP-WEIXIN || APP-PLUS || H5 -->
  150 +
  151 + <!-- #endif -->
  152 + <view class="btns flex-column-plus mar-left-10 flex-items Cart" @click="handleJumpToShopCart">
  153 + <view class="cartAllNum" v-if="allCartNum>0">{{ allCartNum }}
  154 + </view>
  155 + <image class="store-icon"
  156 + src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/gouwuche.png">
  157 + </image>
  158 + <label class="fs22">购物车</label>
  159 + </view>
  160 + </view>
  161 + <view class="btns_container">
  162 + <view class="flex-row-plus offShelf" v-if="productData.shelveState === 0">
  163 + 商品已下架
  164 + </view>
  165 + <view class="flex-row-plus flex-items" v-else-if="selectedSku.activityType === 1">
  166 + <view class="joinShopCartBut" @click=" handleShowGoodsSkuSelect(4)">单独购买
  167 + </view>
  168 + <view class="buyNowBut" @click=" handleShowGoodsSkuSelect(3)">我要开团
  169 + </view>
  170 + </view>
  171 + <view class="flex-row-plus flex-items" v-else>
  172 + <view class="joinShopCartBut" @click=" handleShowGoodsSkuSelect(1)">加入购物车
  173 + </view>
  174 + <view class="buyNowBut" @click=" handleShowGoodsSkuSelect(2)">立即购买
  175 + </view>
  176 + </view>
  177 + </view>
  178 + </view>
  179 + </view>
  180 + <!-- 回到顶部 -->
  181 + <view class="returnTopService-box">
  182 + <view class="returnTop-box flex-items-plus flex-column" @click="handleReturnTop"
  183 + :style="{'display':(returnTopFlag===true? 'flex':'none')}">
  184 + <image class="returnTopImg"
  185 + src="https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/backTop.png"></image>
  186 + </view>
  187 + </view>
  188 + <!-- SKU选择器 -->
  189 + <GoodSkuSelect ref="skuSelect" :product-data="productData" :selected-sku="selectedSku" :collage-id="collageId"
  190 + @postSelectSku="selectSkuPostProcessor" @getCurrentSku="handleSelectSku"
  191 + @changeCartNum="(num)=>allCartNum = num" />
  192 + <!-- 优惠券选择器 -->
  193 + <coupon-popup ref="couponPopup" :markTools="markTools" :shopMarkTools="shopMarkTools" :setTop="topLeft"
  194 + :currentActive="0"></coupon-popup>
  195 + <!-- 拼单弹框 -->
  196 + <u-popup class="popupDiscount" v-model="showGroupBuyList" mode="center" border-radius="14"
  197 + close-icon-pos="top-right" close-icon-size="20">
  198 + <view class="popupDiscountTit">这些人正在拼单</view>
  199 + <view class="groupBuy">
  200 + <view class="groupBuyList">
  201 + <scroll-view style="height: 480upx;" scroll-y>
  202 + <view class="groupBuyItem1" v-for="(aitem,index) in selectedSku.collageOrders" :key="index">
  203 + <view class="leftAvatar" v-if="aitem.time > 0">
  204 + <img :src="aitem.headImage" alt="">
  205 + <view class="groupBuyTime">
  206 + <view class="needPeople"><span>{{ aitem.name }}</span>还差<b>{{ aitem.person }}人</b>
  207 + </view>
  208 + <view class="endDate">剩余{{ handleGetDownTime(aitem.time) }}</view>
  209 + </view>
  210 + </view>
  211 + <view class="rightInfo" v-if="aitem.time > 0">
  212 + <view class="groupBuyBtn" @click="handleGoGroupBooking(aitem.collageId)">和Ta拼
  213 + </view>
  214 + </view>
  215 + </view>
  216 + </scroll-view>
  217 + </view>
  218 + </view>
  219 + </u-popup>
  220 + <!-- 骨架屏 -->
  221 + <Skeleton el-color="#efefef" bg-color="#fff" :loading="isFirstComeIn&&loading" :animation="true"></Skeleton>
  222 + </view>
382 223 </template>
383 224  
384 225 <script>
385   -import Skeleton from "../../components/Skeleton";
386   -import UButton from "../../uview-ui/components/u-button/u-button";
387   -import CombinedSales from "@/components/activities/combinedSales";
388   -import CouponPopup from "../../components/goodsDetalils/coupon-popup";
389   -import { Services } from "../../utils/services";
390   -import GoodEvaluateAndQuestion from "./components/GoodEvaluateAndQuestion";
391   -import GoodActivityDetail from "./components/GoodActivityDetail";
392   -import GoodSkuSelect from "./components/GoodSkuSelect";
393   -import { TimeFormatting } from "../../utils/timeUtil";
394   -import USkeleton from "../../uview-ui/components/u-skeleton/u-skeleton";
395   -
396   -const NET = require('../../utils/request')
397   -const API = require('../../config/api')
398   -export default {
399   - components: {
400   - USkeleton,
401   - Skeleton,
402   - CouponPopup,
403   - CombinedSales,
404   - UButton,
405   - GoodEvaluateAndQuestion, GoodActivityDetail, GoodSkuSelect
406   - },
407   - data() {
408   - return {
409   - isFirstComeIn: true,
410   - loading: true,
411   - isIphone: "",
412   - returnTopFlag: false, // 回到顶部
413   - productId: '', // 商品ID,有可能屎缓存数据
414   - shopGroupWorkId: null,// 拼团数据ID
415   - topThreeCollageOrders: {}, //当前商品拼单数据
416   - collageId: 0, // 去拼团时的拼单ID
417   - broadCastList: [], // 拼团滚动数据
418   - showGroupBuyList: false, // 是否展示拼单弹窗
419   - shopGroupWorkTicker: null, // 拼团倒计时定时器
420   - paramSkuId: null, // 秒杀商品ID
421   - // 商品详情
422   - productData: {},
423   - // 当前选中SKU
424   - selectedSku: {},
425   - currentSuk: [], // 选中的SKU(子组件给当前页面做数据渲染)
426   - buyNum: 1,// 当前选取的SKU购买数量
427   - storeId: '',// 店铺ID
428   - commentList: [], // 商品评价列表
429   - sellDescList: '', // 商品详情长图(富文本)
430   - timeActiveType: true,// 是否开启活动(非则预热)
431   - btnType: 1, // 拉起SKU窗口的按钮类型 1加入购物车 2立即购买 3开团 4单独购买 6选择SKU
432   - allCartNum: 0, // 购物车数量
433   - markTools: [], //平台优惠券
434   - shopMarkTools: [], //店铺优惠券
435   - currentActive: 0, // 优惠券选项卡类型
436   - topLeft: 0, // 距离顶部(返回顶部使用)
437   - // 埋点对象
438   - pointOption: {
439   - inTime: null,
440   - data: {
441   - eventType: 1,
442   - productIds: '',
443   - }
444   - }
445   - }
446   - },
447   - created() {
448   - if (this.ticker) { //这一段是防止进入页面出去后再进来计时器重复启动
449   - clearInterval(this.ticker);
450   - }
451   - if (this.allCartNum > 99) {
452   - this.allCartNum = '...'
453   - }
454   - },
455   - beforeDestroy() {
456   -
457   -
458   - },
459   - onShow() {
460   -
461   - },
462   - onLoad(options) {
463   - // 页面滚动条归0,不然骨架屏有问题
464   - uni.pageScrollTo({
465   - scrollTop:0,
466   - duration:0
467   - })
468   - this.productData = {
469   - logisticsPrice: 0,
470   - images: ['123', '123', '123'],
471   - productName: '....',
472   - ifCollect: 1,
473   - }
474   - this.selectedSku = {
475   - activityType: 0,
476   - originalPrice: 0
477   - }
478   - if(options.detail){
479   - options = this.$getJumpParam(options)
480   - }
481   - this.isFirstComeIn = true
482   - this.loading = true
483   - let salesId = null
484   - this.pointOption.inTime = new Date().getTime()
485   - this.isIphone = getApp().globalData.isIphone;
486   - let item = getApp().globalData.productShareItem
487   - if (item) {
488   - const item = getApp().globalData.productShareItem
489   - this.shopId = parseInt(item.shopId)
490   - this.productId = item.productId
491   - this.paramSkuId = item.skuId
492   - salesId = parseInt(item.salesId)
493   - getApp().globalData.productShareItem = undefined
494   - } else {
495   - this.shopId = parseInt(options.shopId)
496   - this.productId = options.productId
497   - this.paramSkuId = options.skuId
498   - salesId = parseInt(options.salesId)
499   - }
500   - // 判断是否是拼团
501   - if (options.shopGroupWorkId) {
502   - this.shopGroupWorkId = options.shopGroupWorkId
503   - }
504   - this.handleGetProductDetail()
505   - // 绑定分销关系
506   - salesId && this.shopId ? this.bindSalesCustomer(salesId, this.shopId) : ''
507   - this.allCartNum = uni.getStorageSync('allCartNum')
508   - },
509   - onUnload() {
510   - // 判断是否要埋点
511   - const nowTime = new Date().getTime()
512   - if (nowTime - this.pointOption.inTime >= 5000) {
513   - // 埋点
514   - this.pointOption.data.productIds = this.productId
515   - this.$store.dispatch('doPointer', this.pointOption.data)
516   - }
517   - // 销毁平团倒计时计时器
518   - if (this.shopGroupWorkTicker) {
519   - clearInterval(this.shopGroupWorkTicker)
520   - this.shopGroupWorkTicker = null
521   - }
522   - },
523   - mounted() {
524   -
525   - },
526   - onPageScroll(e) {
527   - this.returnTopFlag = e.scrollTop > 600;
528   - this.topLeft = e.scrollTop
529   - },
530   - methods: {
531   - /**
532   - * 页面滚动事件
533   - * @param e
534   - */
535   - handlePageScroll(e) {
536   - this.topLeft = e.scrollTop
537   - },
538   -
539   - /**
540   - * 选取sku
541   - * @param skuObj:{currentSuk:object,selectedSku:object,buyNum:number}
542   - */
543   - handleSelectSku(skuObj) {
544   - this.currentSuk = skuObj.currentSku
545   - this.selectedSku = skuObj.skuItem
546   - this.buyNum = skuObj.buyNum
547   - },
548   -
549   - /**
550   - * 选择sku后置方法
551   - * 判断有无活动等操作
552   - */
553   - selectSkuPostProcessor() {
554   - const ifEnable = this.selectedSku['ifEnable']
555   - if (this.selectedSku.activityType === 1 && ifEnable === 0) {
556   - this.topThreeCollageOrders = this.selectedSku.collageOrders.slice(0, 3)
557   - }
558   - if ([1, 2, 3, 4, 5].includes(this.selectedSku.activityType) && ifEnable === 0) {
559   - this.$refs.goodActivityDetail.handleGetCountDownNumber(this.selectedSku.endTime)
560   - }
561   - this.timeActiveType = ifEnable === 0;
562   - },
563   -
564   - /**
565   - * 获取拼团滚动数据
566   - */
567   - async handleGetGroupBookingRollList() {
568   - let param = {
569   - productId: this.productId,
570   - shopGroupWorkId: this.shopGroupWorkId ?? undefined,
571   - }
572   - const res = await NET.request(API.GetBroadCastList, param, 'GET')
573   - this.broadCastList = res.data
574   - },
575   -
576   - /**
577   - * 和他人拼单
578   - * @param collageId 已存在的拼团订单ID
579   - */
580   - handleGoGroupBooking(collageId) {
581   - this.showGroupBuyList = false
582   - this.collageId = collageId
583   - this.$refs.skuSelect.goodsDetailShowFlag = true
584   - },
585   -
586   - /**
587   - * 设置拼团倒计时
588   - */
589   - handleSetDownTime() { //这个计时器是每秒减去数组中指定字段的时间
590   - let productHaveCollageOrder = false
591   - // 判断sku组合中是否存在拼单
592   - const skuCollects = this.productData.map
593   - for (const skuCollectItemKey in skuCollects) {
594   - const collageOrders = skuCollects[skuCollectItemKey]['collageOrders']
595   - if (collageOrders && collageOrders.length > 0) {
596   - productHaveCollageOrder = true
597   - break
598   - }
599   - }
600   - if (!productHaveCollageOrder) return
601   -
602   - this.shopGroupWorkTicker = setInterval(() => {
603   - for (const skuCollectItemKey in skuCollects) {
604   - const collageOrders = skuCollects[skuCollectItemKey]['collageOrders']
605   - if (collageOrders && collageOrders.length > 0) {
606   - collageOrders.forEach(collageItem => {
607   - collageItem.time > 0 ? collageItem.time -= 1000 : ''
608   - })
609   - }
610   - }
611   - }, 1000);
612   - },
613   -
614   - /**
615   - * 根据时间戳获取格式化时间(处理计时器)
616   - * @param remainMillSecs 毫秒,还有多久结束
617   - * @return {string}
618   - */
619   - handleGetDownTime(remainMillSecs) {
620   - if (remainMillSecs <= 0) {
621   - clearInterval(this.shopGroupWorkTicker)
622   - this.shopGroupWorkTicker = null
623   - this.handleGetProductDetail()
624   - }
625   - const timeFormatting = TimeFormatting(remainMillSecs / 1000);
626   - return `${ timeFormatting.hour }:${ timeFormatting.min }:${ timeFormatting.sec }`;
627   - },
628   -
629   - /**
630   - * 跳转到购物车
631   - */
632   - handleJumpToShopCart() {
633   - this.$jumpToTabbar('../../pages/tabbar/cart/index')
634   - },
635   -
636   - /**
637   - * 跳转到店铺
638   - */
639   - handleJumpToStore() {
640   - this.$jump(`../store/index?storeId=${ this.shopId }`)
641   - },
642   -
643   - /**
644   - * 返回头部
645   - */
646   - handleReturnTop() {
647   - uni.pageScrollTo({
648   - scrollTop: 0,
649   - duration: 300
650   - });
651   - },
652   -
653   - /**
654   - * 打开SKU弹窗
655   - * @param type 1加入购物车 2立即购买 3开团 4单独购买 6选择SKU
656   - */
657   - handleShowGoodsSkuSelect(type) {
658   - // 为type情况时,绝不可能为和他人拼单
659   - this.collageId = 0
660   - this.$refs.skuSelect.btnType = type
661   - this.$refs.skuSelect.goodsDetailShowFlag = true
662   - },
663   -
664   - /**
665   - * 打开优惠券弹窗
666   - */
667   - handleShowCoupon() {
668   - this.$refs.couponPopup.showActivity = true
669   - },
670   -
671   - /**
672   - * 活动商品时间到后置方法
673   - * 供GoodActivityDetail组件调用
674   - */
675   - handleActivityEnd() {
676   - this.selectedSku.activityType = 0
677   - location.reload()
678   - },
679   -
680   - /**
681   - * 获取商品详情
682   - */
683   - async handleGetProductDetail() {
684   - this.loading = true
685   - // uni.showLoading({
686   - // title: '加载中...',
687   - // mask: true
688   - // })
689   - try {
690   - let postData = {
691   - shopId: this.shopId,
692   - productId: this.productId,
693   - skuId: this.paramSkuId,
694   - terminal: 1
695   - }
696   - const res = await NET.request(API.QueryProductDetail, postData, "GET")
697   - this.isFirstComeIn = false
698   - this.loading = false
699   - this.productData = res.data
700   - this.markTools = res.data.markTools //平台优惠券
701   - console.log('平台优惠券',res.data.markTools)
702   - this.shopMarkTools = res.data.shopMarkTools //店铺优惠券
703   - this.currentActive = this.markTools.length === 0 && this.shopMarkTools.length > 0 ? 1 : 0
704   - //处理单规格商品,如果是单款式商品,需要特殊处理productData.names
705   - const skuCollectionList = this.productData.map
706   - const skuCollectionListKeys = Object.keys(skuCollectionList)
707   - if (skuCollectionListKeys.length === 1 && skuCollectionListKeys[0] === '单款项') {
708   - this.productData.names[0].values.push({
709   - skuValue: this.productData.names[0].skuName,
710   - valueCode: '单款项'
711   - })
712   - }
713   -
714   - //如果sku的图像为空,设置为商品的图像
715   - for (const key in skuCollectionList) {
716   - if (!skuCollectionList[key].image) {
717   - skuCollectionList[key].image = this.productData.images[0]
718   - }
719   - }
720   -
721   - // 评价
722   - this.commentList = res.data.comments
723   - // 宝贝详情
724   - this.sellDescList = res.data.text.replace(/\<img/gi,
725   - '<img style="max-width:100%;height:auto" ')
726   -
727   - //渲染商详之后,如果参数传了skuId,则选中该skuId,否则选中第一个规格
728   - this.$nextTick(async () => {
729   - if (this.paramSkuId) {
730   - this.$refs.skuSelect.handleSelectBySkuId(this.paramSkuId)
731   - } else {
732   - // 默认选中第0个
733   - for (const skuRowItem of this.productData.names) {
734   - this.$refs.skuSelect.handleClickSkuItem(skuRowItem.nameCode, skuRowItem.values[0].valueCode)
735   - }
736   - }
737   - //如果是拼团,设置拼团id
738   - if (this.productData.activityType === 1) {
739   - this.shopGroupWorkId = this.productData.shopGroupWorkId
740   - await this.handleGetGroupBookingRollList()
741   - this.handleSetDownTime();
742   - }
743   - await this.$refs.goodEvaluateAndQuestion.handleGetProblemList()
744   - })
745   - } finally {
746   - uni.hideLoading()
747   - // this.loading = false
748   - }
749   - },
750   -
751   - /**
752   - * 绑定分销关系
753   - * @param salesId 分销员ID
754   - * @param storeId 店铺ID
755   - */
756   - bindSalesCustomer(salesId, storeId) {
757   - //如果已登录,静默绑定客户关系,否则跳转到登录页面
758   - if (!uni.getStorageSync('storage_key')) {
759   - uni.setStorageSync('salesId', salesId)
760   - uni.setStorageSync("shopId", storeId)
761   - uni.navigateTo({
762   - url: '../../pages_category_page2/userModule/login'
763   - })
764   - return
765   - }
766   - NET.request(API.BindSalesCustomer, {
767   - shopId: storeId,
768   - distributorId: salesId
769   - }, 'POST').then(res => {
770   - console.log('分销关系绑定成功!')
771   - })
772   - }
773   - ,
774   -
775   - /**
776   - * 打开拼团列表
777   - */
778   - handleOpenGroupBookingList() {
779   - if (this.topThreeCollageOrders.length > 0) {
780   - this.showGroupBuyList = true
781   - } else {
782   - uni.showToast({
783   - title: "还没有人拼单,快去拼单吧!",
784   - icon: "none"
785   - })
786   - }
787   - }
788   - ,
789   -
790   - /**
791   - * 打开客服
792   - * @return {Promise<void>}
793   - */
794   - async flyToService() {
795   - // (await Services(this.shopId)).flyToService()
796   - uni.navigateTo({
797   - url: '/pages_category_page1/customer/chatBox'
798   - });
799   - }
800   - ,
801   -
802   - }
803   -}
  226 + import Skeleton from "../../components/Skeleton";
  227 + import UButton from "../../uview-ui/components/u-button/u-button";
  228 + import CombinedSales from "@/components/activities/combinedSales";
  229 + import CouponPopup from "../../components/goodsDetalils/coupon-popup";
  230 + import {
  231 + Services
  232 + } from "../../utils/services";
  233 + import GoodEvaluateAndQuestion from "./components/GoodEvaluateAndQuestion";
  234 + import GoodActivityDetail from "./components/GoodActivityDetail";
  235 + import GoodSkuSelect from "./components/GoodSkuSelect";
  236 + import {
  237 + TimeFormatting
  238 + } from "../../utils/timeUtil";
  239 + import USkeleton from "../../uview-ui/components/u-skeleton/u-skeleton";
  240 +
  241 + const NET = require('../../utils/request')
  242 + const API = require('../../config/api')
  243 + export default {
  244 + components: {
  245 + USkeleton,
  246 + Skeleton,
  247 + CouponPopup,
  248 + CombinedSales,
  249 + UButton,
  250 + GoodEvaluateAndQuestion,
  251 + GoodActivityDetail,
  252 + GoodSkuSelect
  253 + },
  254 + data() {
  255 + return {
  256 + isFirstComeIn: true,
  257 + loading: true,
  258 + isIphone: "",
  259 + returnTopFlag: false, // 回到顶部
  260 + productId: '', // 商品ID,有可能屎缓存数据
  261 + shopGroupWorkId: null, // 拼团数据ID
  262 + topThreeCollageOrders: {}, //当前商品拼单数据
  263 + collageId: 0, // 去拼团时的拼单ID
  264 + broadCastList: [], // 拼团滚动数据
  265 + showGroupBuyList: false, // 是否展示拼单弹窗
  266 + shopGroupWorkTicker: null, // 拼团倒计时定时器
  267 + paramSkuId: null, // 秒杀商品ID
  268 + // 商品详情
  269 + productData: {},
  270 + // 当前选中SKU
  271 + selectedSku: {},
  272 + currentSuk: [], // 选中的SKU(子组件给当前页面做数据渲染)
  273 + buyNum: 1, // 当前选取的SKU购买数量
  274 + storeId: '', // 店铺ID
  275 + commentList: [], // 商品评价列表
  276 + sellDescList: '', // 商品详情长图(富文本)
  277 + timeActiveType: true, // 是否开启活动(非则预热)
  278 + btnType: 1, // 拉起SKU窗口的按钮类型 1加入购物车 2立即购买 3开团 4单独购买 6选择SKU
  279 + allCartNum: 0, // 购物车数量
  280 + markTools: [], //平台优惠券
  281 + shopMarkTools: [], //店铺优惠券
  282 + currentActive: 0, // 优惠券选项卡类型
  283 + topLeft: 0, // 距离顶部(返回顶部使用)
  284 + // 埋点对象
  285 + pointOption: {
  286 + inTime: null,
  287 + data: {
  288 + eventType: 1,
  289 + productIds: '',
  290 + }
  291 + }
  292 + }
  293 + },
  294 + created() {
  295 + if (this.ticker) { //这一段是防止进入页面出去后再进来计时器重复启动
  296 + clearInterval(this.ticker);
  297 + }
  298 + if (this.allCartNum > 99) {
  299 + this.allCartNum = '...'
  300 + }
  301 + },
  302 + beforeDestroy() {
  303 +
  304 +
  305 + },
  306 + onShow() {
  307 +
  308 + },
  309 + onLoad(options) {
  310 + // 页面滚动条归0,不然骨架屏有问题
  311 + uni.pageScrollTo({
  312 + scrollTop: 0,
  313 + duration: 0
  314 + })
  315 + this.productData = {
  316 + logisticsPrice: 0,
  317 + images: ['123', '123', '123'],
  318 + productName: '....',
  319 + ifCollect: 1,
  320 + }
  321 + this.selectedSku = {
  322 + activityType: 0,
  323 + originalPrice: 0
  324 + }
  325 + if (options.detail) {
  326 + options = this.$getJumpParam(options)
  327 + }
  328 + this.isFirstComeIn = true
  329 + this.loading = true
  330 + let salesId = null
  331 + this.pointOption.inTime = new Date().getTime()
  332 + this.isIphone = getApp().globalData.isIphone;
  333 + let item = getApp().globalData.productShareItem
  334 + if (item) {
  335 + const item = getApp().globalData.productShareItem
  336 + this.shopId = parseInt(item.shopId)
  337 + this.productId = item.productId
  338 + this.paramSkuId = item.skuId
  339 + salesId = parseInt(item.salesId)
  340 + getApp().globalData.productShareItem = undefined
  341 + } else {
  342 + this.shopId = parseInt(options.shopId)
  343 + this.productId = options.productId
  344 + this.paramSkuId = options.skuId
  345 + salesId = parseInt(options.salesId)
  346 + }
  347 + // 判断是否是拼团
  348 + if (options.shopGroupWorkId) {
  349 + this.shopGroupWorkId = options.shopGroupWorkId
  350 + }
  351 + this.handleGetProductDetail()
  352 + // 绑定分销关系
  353 + salesId && this.shopId ? this.bindSalesCustomer(salesId, this.shopId) : ''
  354 + this.allCartNum = uni.getStorageSync('allCartNum')
  355 + },
  356 + onUnload() {
  357 + // 判断是否要埋点
  358 + const nowTime = new Date().getTime()
  359 + if (nowTime - this.pointOption.inTime >= 5000) {
  360 + // 埋点
  361 + this.pointOption.data.productIds = this.productId
  362 + this.$store.dispatch('doPointer', this.pointOption.data)
  363 + }
  364 + // 销毁平团倒计时计时器
  365 + if (this.shopGroupWorkTicker) {
  366 + clearInterval(this.shopGroupWorkTicker)
  367 + this.shopGroupWorkTicker = null
  368 + }
  369 + },
  370 + mounted() {
  371 +
  372 + },
  373 + onPageScroll(e) {
  374 + this.returnTopFlag = e.scrollTop > 600;
  375 + this.topLeft = e.scrollTop
  376 + },
  377 + methods: {
  378 + /**
  379 + * 页面滚动事件
  380 + * @param e
  381 + */
  382 + handlePageScroll(e) {
  383 + this.topLeft = e.scrollTop
  384 + },
  385 +
  386 + /**
  387 + * 选取sku
  388 + * @param skuObj:{currentSuk:object,selectedSku:object,buyNum:number}
  389 + */
  390 + handleSelectSku(skuObj) {
  391 + this.currentSuk = skuObj.currentSku
  392 + this.selectedSku = skuObj.skuItem
  393 + this.buyNum = skuObj.buyNum
  394 + },
  395 +
  396 + /**
  397 + * 选择sku后置方法
  398 + * 判断有无活动等操作
  399 + */
  400 + selectSkuPostProcessor() {
  401 + const ifEnable = this.selectedSku['ifEnable']
  402 + if (this.selectedSku.activityType === 1 && ifEnable === 0) {
  403 + this.topThreeCollageOrders = this.selectedSku.collageOrders.slice(0, 3)
  404 + }
  405 + if ([1, 2, 3, 4, 5].includes(this.selectedSku.activityType) && ifEnable === 0) {
  406 + this.$refs.goodActivityDetail.handleGetCountDownNumber(this.selectedSku.endTime)
  407 + }
  408 + this.timeActiveType = ifEnable === 0;
  409 + },
  410 +
  411 + /**
  412 + * 获取拼团滚动数据
  413 + */
  414 + async handleGetGroupBookingRollList() {
  415 + let param = {
  416 + productId: this.productId,
  417 + shopGroupWorkId: this.shopGroupWorkId ?? undefined,
  418 + }
  419 + const res = await NET.request(API.GetBroadCastList, param, 'GET')
  420 + this.broadCastList = res.data
  421 + },
  422 +
  423 + /**
  424 + * 和他人拼单
  425 + * @param collageId 已存在的拼团订单ID
  426 + */
  427 + handleGoGroupBooking(collageId) {
  428 + this.showGroupBuyList = false
  429 + this.collageId = collageId
  430 + this.$refs.skuSelect.goodsDetailShowFlag = true
  431 + },
  432 +
  433 + /**
  434 + * 设置拼团倒计时
  435 + */
  436 + handleSetDownTime() { //这个计时器是每秒减去数组中指定字段的时间
  437 + let productHaveCollageOrder = false
  438 + // 判断sku组合中是否存在拼单
  439 + const skuCollects = this.productData.map
  440 + for (const skuCollectItemKey in skuCollects) {
  441 + const collageOrders = skuCollects[skuCollectItemKey]['collageOrders']
  442 + if (collageOrders && collageOrders.length > 0) {
  443 + productHaveCollageOrder = true
  444 + break
  445 + }
  446 + }
  447 + if (!productHaveCollageOrder) return
  448 +
  449 + this.shopGroupWorkTicker = setInterval(() => {
  450 + for (const skuCollectItemKey in skuCollects) {
  451 + const collageOrders = skuCollects[skuCollectItemKey]['collageOrders']
  452 + if (collageOrders && collageOrders.length > 0) {
  453 + collageOrders.forEach(collageItem => {
  454 + collageItem.time > 0 ? collageItem.time -= 1000 : ''
  455 + })
  456 + }
  457 + }
  458 + }, 1000);
  459 + },
  460 +
  461 + /**
  462 + * 根据时间戳获取格式化时间(处理计时器)
  463 + * @param remainMillSecs 毫秒,还有多久结束
  464 + * @return {string}
  465 + */
  466 + handleGetDownTime(remainMillSecs) {
  467 + if (remainMillSecs <= 0) {
  468 + clearInterval(this.shopGroupWorkTicker)
  469 + this.shopGroupWorkTicker = null
  470 + this.handleGetProductDetail()
  471 + }
  472 + const timeFormatting = TimeFormatting(remainMillSecs / 1000);
  473 + return `${ timeFormatting.hour }:${ timeFormatting.min }:${ timeFormatting.sec }`;
  474 + },
  475 +
  476 + /**
  477 + * 跳转到购物车
  478 + */
  479 + handleJumpToShopCart() {
  480 + this.$jumpToTabbar('../../pages/tabbar/cart/index')
  481 + },
  482 +
  483 + /**
  484 + * 跳转到店铺
  485 + */
  486 + handleJumpToStore() {
  487 + this.$jump(`../store/index?storeId=${ this.shopId }`)
  488 + },
  489 +
  490 + /**
  491 + * 返回头部
  492 + */
  493 + handleReturnTop() {
  494 + uni.pageScrollTo({
  495 + scrollTop: 0,
  496 + duration: 300
  497 + });
  498 + },
  499 +
  500 + /**
  501 + * 打开SKU弹窗
  502 + * @param type 1加入购物车 2立即购买 3开团 4单独购买 6选择SKU
  503 + */
  504 + handleShowGoodsSkuSelect(type) {
  505 + // 为type情况时,绝不可能为和他人拼单
  506 + this.collageId = 0
  507 + this.$refs.skuSelect.btnType = type
  508 + this.$refs.skuSelect.goodsDetailShowFlag = true
  509 + },
  510 +
  511 + /**
  512 + * 打开优惠券弹窗
  513 + */
  514 + handleShowCoupon() {
  515 + this.$refs.couponPopup.showActivity = true
  516 + },
  517 +
  518 + /**
  519 + * 活动商品时间到后置方法
  520 + * 供GoodActivityDetail组件调用
  521 + */
  522 + handleActivityEnd() {
  523 + this.selectedSku.activityType = 0
  524 + location.reload()
  525 + },
  526 +
  527 + /**
  528 + * 获取商品详情
  529 + */
  530 + async handleGetProductDetail() {
  531 + this.loading = true
  532 + // uni.showLoading({
  533 + // title: '加载中...',
  534 + // mask: true
  535 + // })
  536 + try {
  537 + let postData = {
  538 + shopId: this.shopId,
  539 + productId: this.productId,
  540 + skuId: this.paramSkuId,
  541 + terminal: 1
  542 + }
  543 + const res = await NET.request(API.QueryProductDetail, postData, "GET")
  544 + this.isFirstComeIn = false
  545 + this.loading = false
  546 + this.productData = res.data
  547 + this.markTools = res.data.markTools //平台优惠券
  548 + console.log('平台优惠券', res.data.markTools)
  549 + this.shopMarkTools = res.data.shopMarkTools //店铺优惠券
  550 + this.currentActive = this.markTools.length === 0 && this.shopMarkTools.length > 0 ? 1 : 0
  551 + //处理单规格商品,如果是单款式商品,需要特殊处理productData.names
  552 + const skuCollectionList = this.productData.map
  553 + const skuCollectionListKeys = Object.keys(skuCollectionList)
  554 + if (skuCollectionListKeys.length === 1 && skuCollectionListKeys[0] === '单款项') {
  555 + this.productData.names[0].values.push({
  556 + skuValue: this.productData.names[0].skuName,
  557 + valueCode: '单款项'
  558 + })
  559 + }
  560 +
  561 + //如果sku的图像为空,设置为商品的图像
  562 + for (const key in skuCollectionList) {
  563 + if (!skuCollectionList[key].image) {
  564 + skuCollectionList[key].image = this.productData.images[0]
  565 + }
  566 + }
  567 +
  568 + // 评价
  569 + this.commentList = res.data.comments
  570 + // 宝贝详情
  571 + this.sellDescList = res.data.text.replace(/\<img/gi,
  572 + '<img style="max-width:100%;height:auto" ')
  573 +
  574 + //渲染商详之后,如果参数传了skuId,则选中该skuId,否则选中第一个规格
  575 + this.$nextTick(async () => {
  576 + if (this.paramSkuId) {
  577 + this.$refs.skuSelect.handleSelectBySkuId(this.paramSkuId)
  578 + } else {
  579 + // 默认选中第0个
  580 + for (const skuRowItem of this.productData.names) {
  581 + this.$refs.skuSelect.handleClickSkuItem(skuRowItem.nameCode, skuRowItem
  582 + .values[0].valueCode)
  583 + }
  584 + }
  585 + //如果是拼团,设置拼团id
  586 + if (this.productData.activityType === 1) {
  587 + this.shopGroupWorkId = this.productData.shopGroupWorkId
  588 + await this.handleGetGroupBookingRollList()
  589 + this.handleSetDownTime();
  590 + }
  591 + await this.$refs.goodEvaluateAndQuestion.handleGetProblemList()
  592 + })
  593 + } finally {
  594 + uni.hideLoading()
  595 + // this.loading = false
  596 + }
  597 + },
  598 +
  599 + /**
  600 + * 绑定分销关系
  601 + * @param salesId 分销员ID
  602 + * @param storeId 店铺ID
  603 + */
  604 + bindSalesCustomer(salesId, storeId) {
  605 + //如果已登录,静默绑定客户关系,否则跳转到登录页面
  606 + if (!uni.getStorageSync('storage_key')) {
  607 + uni.setStorageSync('salesId', salesId)
  608 + uni.setStorageSync("shopId", storeId)
  609 + uni.navigateTo({
  610 + url: '../../pages_category_page2/userModule/login'
  611 + })
  612 + return
  613 + }
  614 + NET.request(API.BindSalesCustomer, {
  615 + shopId: storeId,
  616 + distributorId: salesId
  617 + }, 'POST').then(res => {
  618 + console.log('分销关系绑定成功!')
  619 + })
  620 + },
  621 +
  622 + /**
  623 + * 打开拼团列表
  624 + */
  625 + handleOpenGroupBookingList() {
  626 + if (this.topThreeCollageOrders.length > 0) {
  627 + this.showGroupBuyList = true
  628 + } else {
  629 + uni.showToast({
  630 + title: "还没有人拼单,快去拼单吧!",
  631 + icon: "none"
  632 + })
  633 + }
  634 + },
  635 + kefu() {
  636 + NET.request(API.GetUser, {}, 'GET').then(res => {
  637 + if(res.code != '20004'){
  638 + uni.navigateTo({
  639 + url: `/pages_category_page1/customer/chatBox?shopId=${this.shopId}`
  640 + })
  641 + }
  642 +
  643 + })
  644 +
  645 + },
  646 + /**
  647 + * 打开客服
  648 + * @return {Promise<void>}
  649 + */
  650 +
  651 + async flyToService() {
  652 + // (await Services(this.shopId)).flyToService()
  653 + uni.navigateTo({
  654 + url: '/pages_category_page1/customer/chatBox'
  655 + });
  656 + },
  657 +
  658 + }
  659 + }
804 660 </script>
805 661 <style>
806   -.page {
807   -background-color: #F7F7F7;
808   -}
809   -</style>
810   -<style
811   - scoped
812   - lang="scss"
813   ->
814   -.page {
815   - background-color: #F7F7F7;
816   -}
817   -
818   -.news-box {
819   - position: fixed;
820   - left: 20rpx;
821   - top: 200rpx;
822   - z-index: 9999;
823   -
824   - .news-bg {
825   - width: 450rpx;
826   - height: 70rpx;
827   - overflow: hidden;
828   -
829   - .news-item {
830   - background: rgba(0, 0, 0, 0.75);
831   - border-radius: 16rpx;
832   - height: 70rpx;
833   - color: #FFFFFF;
834   - font-size: 24rpx;
835   - padding: 0 20rpx;
836   - width: 450rpx;
837   -
838   - .item-avatar {
839   - width: 50rpx;
840   - height: 50rpx;
841   - border-radius: 50%;
842   - margin-right: 20rpx;
843   - }
844   - }
845   - }
846   -}
847   -
848   -
849   -.tabsbox {
850   - width: 100%;
851   - margin-top: 20rpx;
852   - background-color: #FFFFFF;
853   -}
854   -
855   -
856   -.checkimg {
857   - width: 40rpx;
858   - height: 40rpx;
859   - margin-right: 30rpx;
860   -}
861   -
862   -.container {
863   - padding-bottom: 180upx;
864   -
865   - .arrow-icon {
866   - width: 16rpx;
867   - height: 24rpx;
868   - margin-right: 25rpx;
869   - }
870   -
871   - .goodgDes-box {
872   - background-color: #FFFFFF;
873   - width: 100%;
874   - padding-bottom: 25rpx;
875   -
876   - .priceBuyNum-box {
877   - width: 677rpx;
878   - margin-top: 30rpx;
879   - }
880   -
881   - .nameContainer {
882   - display: flex;
883   -
884   - .goodsName-box {
885   - width: 677rpx;
886   - height: 85rpx;
887   -
888   - .img618-cion {
889   - width: 70rpx;
890   - height: 36rpx;
891   - }
892   - }
893   -
894   - .collectBox {
895   - width: 80rpx;
896   - margin: 0 30rpx 0 15rpx;
897   - display: flex;
898   - flex-direction: column;
899   - justify-content: center;
900   - align-items: center;
901   - }
902   -
903   - .store-icon {
904   - width: 48rpx;
905   - height: 48rpx;
906   - }
907   - }
908   -
909   - .discounts-box {
910   - margin-top: 20rpx;
911   -
912   - .discounts-text {
913   - margin-left: 10rpx;
914   - color: #FF7800;
915   - background-color: #FFE4CC;
916   - padding: 6rpx 12rpx;
917   - border-radius: 4rpx;
918   - }
919   - }
920   -
921   - .activity-box {
922   - display: flex;
923   - flex-direction: row;
924   - justify-content: center;
925   - align-items: flex-end;
926   - border-top: 1upx solid #EDEDED;
927   -
928   - .activity-content {
929   - width: 614rpx;
930   - padding-top: 20rpx;
931   -
932   - .activity-text {
933   - color: #FF7700;
934   - border: 1rpx solid #FF7700;
935   - padding: 6rpx 23rpx;
936   - }
937   -
938   - .coupon-arrow {
939   - width: 16rpx;
940   - height: 24rpx;
941   - margin-left: 15rpx;
942   - }
943   - }
944   - }
945   - }
946   -
947   - .express-box {
948   - height: 100rpx;
949   - background-color: #FFFFFF;
950   - padding-left: 30rpx;
951   - border-top: 12rpx solid #F8F8F8;
952   - border-bottom: 12rpx solid #F8F8F8;
953   -
954   - image {
955   - width: 21rpx;
956   - height: 27rpx;
957   - }
958   -
959   - .expressSite-icon {
960   - width: 30rpx;
961   - height: 30rpx;
962   - }
963   -
964   - .mapName {
965   - position: relative;
966   -
967   - &:before {
968   - content: '';
969   - width: 2rpx;
970   - height: 30rpx;
971   - background: #CCCCCC;
972   - display: block;
973   - position: absolute;
974   - right: -16rpx;
975   - top: 5rpx;
976   - }
977   - }
978   - }
979   -
980   - .chooseSize-box {
981   - height: 90rpx;
982   - background-color: #FFFFFF;
983   - margin: 10rpx 0;
984   -
985   - .chooseSize-content {
986   - width: 100%;
987   - }
988   - }
989   -
990   - .questionTit {
991   - height: 90rpx;
992   - border-bottom: 1rpx solid #EEEEEE;
993   - margin-right: 35rpx;
994   - color: #333333;
995   - font-size: 30rpx;
996   -
997   - .allMoreBox {
998   - display: flex;
999   - align-items: center;
1000   - color: #999999;
1001   - font-size: 24rpx;
1002   -
1003   - .evaluateAllArrow-icon {
1004   - width: 18rpx;
1005   - height: 24rpx;
1006   - }
1007   - }
1008   - }
1009   -
1010   - .shopEvaList {
1011   - display: flex;
1012   - padding: 30rpx;
1013   - flex-wrap: wrap;
1014   - border-bottom: 20rpx solid #EEEEEE;
1015   -
1016   - .shopEvaItem {
1017   - padding: 0 14rpx;
1018   - height: 60rpx;
1019   - background: #ffe4cc;
1020   - border-radius: 6rpx;
1021   - line-height: 60rpx;
1022   - text-align: center;
1023   - font-size: 28rpx;
1024   - color: #666666;
1025   - margin: 0 20rpx 20rpx 0;
1026   - }
1027   - }
1028   -
1029   - .storeEvaluate-box {
1030   - background-color: #FFFFFF;
1031   - margin-top: 20rpx;
1032   -
1033   - .storeEvaluate {
1034   - width: 690rpx;
1035   - padding: 20rpx 0;
1036   - border-bottom: 1rpx solid #EDEDED;
1037   - }
1038   -
1039   - .storeEvaluateTag-box {
1040   - margin-top: 10rpx;
1041   - margin-left: 10rpx;
1042   - padding-bottom: 30rpx;
1043   - display: flex;
1044   - flex-wrap: wrap;
1045   -
1046   - .storeEvaluateTag-text {
1047   - background-color: #FFE4CC;
1048   - border-radius: 6rpx;
1049   - padding: 16rpx 14rpx;
1050   - color: #656565;
1051   - margin-left: 20rpx;
1052   - margin-top: 20rpx;
1053   - }
1054   - }
1055   - }
1056   -
1057   - .inStore-box {
1058   - background-color: #FFFFFF;
1059   - margin-top: 20rpx;
1060   - padding: 20rpx 30rpx;
1061   -
1062   - .inStore-logo {
1063   - width: 70rpx;
1064   - height: 70rpx;
1065   - }
1066   -
1067   - .inStore-but {
1068   - width: 140rpx;
1069   - height: 60rpx;
1070   - line-height: 60rpx;
1071   - text-align: center;
1072   - font-size: 24rpx;
1073   - color: #fff;
1074   - background: #2ca536;
1075   - /*padding-left: 20rpx;*/
1076   - position: relative;
1077   -
1078   - }
1079   - }
1080   -
1081   - .goodsDetails-box {
1082   - background-color: #FFFFFF;
1083   - margin-top: 20rpx;
1084   - padding: 20rpx 30rpx;
1085   -
1086   - .goodsDetails-title {
1087   - display: flex;
1088   - flex-direction: row;
1089   - align-items: center;
1090   -
1091   - .goodsDetails-Line {
1092   - width: 265rpx;
1093   - border-bottom: 1rpx solid #EDEDED;
1094   - }
1095   -
1096   - .goodsDetails-text {
1097   - padding: 0 22rpx;
1098   - }
1099   - }
1100   -
1101   - .goodsDetailsimg-box {
1102   - }
1103   - }
1104   -
1105   - .priceExplain-box {
1106   - background-color: #FFFFFF;
1107   - margin-top: 20rpx;
1108   - padding: 20rpx 30rpx;
1109   -
1110   - .priceExplain-title {
1111   - display: flex;
1112   - flex-direction: row;
1113   - align-items: center;
1114   -
1115   - .priceExplain-Line {
1116   - width: 265rpx;
1117   - border-bottom: 1rpx solid #EDEDED;
1118   - }
1119   -
1120   - .priceExplain-text {
1121   - padding: 0 22rpx;
1122   - }
1123   - }
1124   -
1125   - .priceExplain-dot {
1126   - width: 9rpx;
1127   - height: 9rpx;
1128   - border: 1rpx solid #FF7700;
1129   - border-radius: 50%;
1130   - background-color: #FF7700;
1131   - }
1132   - }
1133   -
1134   - .buygoods-box {
1135   - position: fixed;
1136   - bottom: 0rpx;
1137   - box-sizing: border-box;
1138   - z-index: 999;
1139   - .groupByInfo {
1140   - background: #fffbe9;
1141   - padding: 0 30rpx;
1142   - height: 80rpx;
1143   -
1144   - .groupByInfoBox {
1145   - height: 80rpx;
1146   - }
1147   -
1148   - .groupByLeft {
1149   - .groupByAvatar {
1150   - margin-right: 15rpx;
1151   - }
1152   -
1153   - img {
1154   - width: 50rpx;
1155   - height: 50rpx;
1156   - }
1157   -
1158   - .name {
1159   - font-size: 24rpx;
1160   - }
1161   -
1162   - .groupByNum {
1163   - margin-right: 10rpx;
1164   - }
1165   -
1166   - .groupByTime {
1167   - color: #333333;
1168   - }
1169   - }
1170   -
1171   - .groupByBtn {
1172   - height: 60rpx;
1173   - background: #333333;
1174   - color: #FFEBC4;
1175   - font-size: 14rpx;
1176   - line-height: 60rpx;
1177   - text-align: center;
1178   - padding: 0 20rpx;
1179   - }
1180   - }
1181   -
1182   - .buygoodsBut-box {
1183   - background-color: #FFFFFF;
1184   - width: 750rpx;
1185   - padding: 20rpx 32rpx;
1186   - box-shadow: 0rpx 0rpx 10rpx 1rpx #EDEDED;
1187   - box-sizing: border-box;
1188   - display: flex;
1189   - justify-content: space-between;
1190   -
1191   - .btns_container {
1192   - display: flex;
1193   - align-items: center;
1194   - }
1195   -
1196   - .btns {
1197   - width: 80rpx;
1198   - }
1199   -
1200   - .Cart {
1201   - position: relative;
1202   -
1203   - .cartAllNum {
1204   - position: absolute;
1205   - width: 30rpx;
1206   - height: 30rpx;
1207   - line-height: 30rpx;
1208   - text-align: center;
1209   - font-size: 17rpx;
1210   - color: #FFFFFF;
1211   - background: #2ea436;
1212   - border-radius: 50%;
1213   - opacity: 1;
1214   - z-index: 999;
1215   - }
1216   -
1217   - // #ifdef APP-PLUS
1218   - .cartAllNum {
1219   - right: -6rpx;
1220   - top: -6rpx;
1221   - }
1222   -
1223   - // #endif
1224   - /* #ifdef H5 */
1225   - .cartAllNum {
1226   - right: -10rpx;
1227   - top: -6rpx;
1228   - }
1229   -
1230   - /* #endif */
1231   - /* #ifdef MP-WEIXIN */
1232   - .cartAllNum {
1233   - right: -3rpx;
1234   - top: 0;
1235   - }
1236   -
1237   - /* #endif */
1238   - }
1239   -
1240   - .store-icon {
1241   - width: 48rpx;
1242   - height: 48rpx;
1243   - }
1244   -
1245   - .joinShopCartBut {
1246   - width: 190rpx;
1247   - height: 80rpx;
1248   - background-color: #FFFFFF;
1249   - color: #333333;
1250   - font-size: 28rpx;
1251   - line-height: 80rpx;
1252   - border: 2rpx solid #333333;
1253   - text-align: center;
1254   - margin-left: 40rpx;
1255   - box-sizing: border-box;
1256   - }
1257   -
1258   - .buyNowBut {
1259   - width: 190rpx;
1260   - height: 80rpx;
1261   - background: #2ea436;
1262   - color: #fff;
1263   - font-size: 28rpx;
1264   - line-height: 80rpx;
1265   - text-align: center;
1266   - margin-left: 16rpx;
1267   - }
1268   -
1269   - .offShelf {
1270   - background: #b7b7b7;
1271   - border-radius: 50rpx;
1272   - width: 360rpx;
1273   - margin-left: 50rpx;
1274   - line-height: 80rpx;
1275   - height: 80rpx;
1276   - justify-content: center;
1277   - color: #333333;
1278   - }
1279   - }
1280   - }
1281   -
1282   - .returnTopService-box {
1283   - position: fixed;
1284   - bottom: 160rpx;
1285   - right: 30rpx;
1286   -
1287   - .fs16 {
1288   - font-size: 16rpx;
1289   - }
1290   -
1291   - .returnTop-box {
1292   - width: 88rpx;
1293   - height: 88rpx;
1294   - border-radius: 50%;
1295   - background: #FFFFFF;
1296   - opacity: 0.8;
1297   -
1298   - .returnTopImg {
1299   - width: 58rpx;
1300   - height: 58rpx;
1301   - }
1302   - }
1303   -
1304   - .serviceImg-box {
1305   - width: 90rpx;
1306   - height: 90rpx;
1307   - border-radius: 50%;
1308   - background-color: #FFFFFF;
1309   - box-shadow: 0rpx 0rpx 5rpx 3rpx #999999;
1310   -
1311   - .serviceImg {
1312   - width: 36rpx;
1313   - height: 36rpx;
1314   - display: block;
1315   - background: url("https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/serviceImg.png") no-repeat center center;
1316   - background-size: contain;
1317   - }
1318   - }
1319   - }
1320   -
1321   -
1322   - .parameterShow-box {
1323   - .parameter-title {
1324   - width: 100%;
1325   - text-align: center;
1326   - padding-bottom: 36rpx;
1327   - }
1328   -
1329   - .parameter-modle {
1330   - width: 690rpx;
1331   - padding-bottom: 36rpx;
1332   - font-size: 26rpx;
1333   - }
1334   -
1335   - .parameterTruebut-box {
1336   - background-color: #FFFFFF;
1337   - padding: 20rpx 0;
1338   -
1339   - .parameterTruebut {
1340   - width: 690rpx;
1341   - height: 80rpx;
1342   - background-image: linear-gradient(135deg, #FFA100 10%, #FF7911 100%);
1343   - color: #FFFFFF;
1344   - border-radius: 40rpx;
1345   - line-height: 80rpx;
1346   - text-align: center;
1347   - font-size: 26rpx;
1348   - }
1349   - }
1350   - }
1351   -
1352   - .couponShow-box {
1353   - .couponShow {
1354   - z-index: 333;
1355   - height: 1000rpx;
1356   -
1357   - .couponTitle-box {
1358   - width: 100%;
1359   - }
1360   -
1361   - .coupon-title-active {
1362   - color: #FF7700;
1363   - border-bottom: 2rpx solid #FF7700;
1364   - padding-bottom: 30rpx;
1365   - }
1366   -
1367   - .usableCoupon-content {
1368   - padding: 30rpx 0;
1369   -
1370   - .usableCoupon-box {
1371   - width: 690rpx;
1372   - height: 140rpx;
1373   - border-radius: 10rpx;
1374   - background-color: #FFE9D8;
1375   -
1376   - .immediateUse-but {
1377   - color: #FF7800;
1378   - border-radius: 30rpx;
1379   - padding: 0 40rpx;
1380   - border-left: 3rpx solid #EBD7C7;
1381   - height: 140rpx;
1382   - border-radius: 60rpx;
1383   - line-height: 140rpx;
1384   - font-weight: bold;
1385   - }
1386   - }
1387   - }
1388   - }
1389   - }
1390   -
1391   - .succeedShow-box {
1392   - position: absolute;
1393   - top: 220rpx;
1394   - left: 185rpx;
1395   -
1396   - .succeedShow {
1397   - background-color: #7F7F7F;
1398   - width: 380rpx;
1399   - height: 280rpx;
1400   - border-radius: 10rpx;
1401   - opacity: 0.8;
1402   -
1403   - .couponSucceedImg {
1404   - width: 200rpx;
1405   - height: 130rpx;
1406   - }
1407   - }
1408   - }
1409   -
1410   -}
1411   -
1412   -.activity-box {
1413   - display: flex;
1414   - flex-direction: column;
1415   - width: 100%;
1416   - height: 100%;
1417   -
1418   - .title-box {
1419   - width: 100%;
1420   - height: 100upx;
1421   - display: flex;
1422   - flex-direction: row;
1423   - align-items: center;
1424   - justify-content: center;
1425   - position: relative;
1426   - border-bottom: solid 1px #EEEEEE;
1427   - }
1428   -}
1429   -
1430   -.activity-coupon-box {
1431   - display: flex;
1432   - flex-direction: column;
1433   - width: 100%;
1434   - overflow: auto;
1435   - flex: 1;
1436   -}
1437   -
1438   -.content-box {
1439   - width: 100%;
1440   - box-sizing: border-box;
1441   - display: flex;
1442   - flex-direction: column;
1443   - padding: 30rpx;
1444   -}
1445   -
1446   -.tag-box {
1447   - width: 100%;
1448   - box-sizing: border-box;
1449   - height: 80rpx;
1450   - line-height: 80rpx;
1451   - font-size: 28rpx;
1452   - font-weight: 500;
1453   - color: #FF7911;
1454   -}
1455   -
1456   -.label-lingqu {
1457   - width: 100%;
1458   - font-weight: 500;
1459   - color: rgba(51, 51, 51, 1);
1460   -}
1461   -
1462   -.coupon-item {
1463   - width: 690rpx;
1464   - height: 120rpx;
1465   - border-radius: 10rpx;
1466   - display: flex;
1467   - flex-direction: row;
1468   - justify-content: space-between;
1469   - align-items: center;
1470   - margin-top: 20rpx;
1471   - flex-shrink: 0;
1472   - background-color: #FFE9D8;
1473   -}
1474   -
1475   -.money-box {
1476   - width: 160rpx;
1477   - box-sizing: border-box;
1478   - padding-left: 30rpx;
1479   - font-weight: 500;
1480   - color: #FF7911;
1481   -}
1482   -
1483   -.info-box {
1484   - display: flex;
1485   - flex-direction: column;
1486   - align-items: flex-start;
1487   - color: rgba(255, 121, 17, 1);
1488   -}
1489   -
1490   -.receive-btn {
1491   - width: 200rpx;
1492   - height: 120rpx;
1493   - background: rgba(255, 233, 216, 1);
1494   - box-shadow: 0px 0px 5rpx 0px rgba(102, 102, 102, 0.35);
1495   - line-height: 120rpx;
1496   - text-align: center;
1497   - font-size: 28rpx;
1498   - font-weight: bold;
1499   - color: rgba(255, 121, 17, 1);
1500   - border-bottom-right-radius: 10rpx;
1501   - border-top-right-radius: 10rpx;
1502   - border-top-left-radius: 120rpx;
1503   - border-bottom-left-radius: 120rpx;
1504   -}
1505   -
1506   -.received {
1507   - background: #f1f1f1;
1508   - color: #999;
1509   -}
1510   -
1511   -
1512   -.canvas-box {
1513   - display: block;
1514   - position: absolute;
1515   - top: 100rpx;
1516   -}
1517   -
1518   -.sceneMarketingBox {
1519   - width: 100%;
1520   - background: url("https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/5f85fe4782e34c10b15b04f76c571d12_sceneMarketingDetailsIcon.png"
1521   - ) no-repeat center;
1522   - padding: 20rpx 30rpx;
1523   - background-size: cover;
1524   - display: flex;
1525   - justify-content: space-between;
1526   - align-items: center;
1527   -
1528   - .sceneNameBox {
1529   - width: 220rpx;
1530   - text-align: center;
1531   - color: #C83732;
1532   - font-size: 20rpx;
1533   - }
1534   -}
1535   -
1536   -
1537   -.goodsDiscount {
1538   - .groupBuy {
1539   - .groupBuyList {
1540   - .groupBuyItem {
1541   - padding: 0 30rpx;
1542   - height: 116rpx;
1543   - display: flex;
1544   - align-items: center;
1545   - justify-content: space-between;
1546   - border-bottom: 1rpx solid #EEEEEE;
1547   -
1548   - .leftAvatar {
1549   - display: flex;
1550   - align-items: center;
1551   - width: 50%;
1552   -
1553   - img {
1554   - width: 72rpx;
1555   - height: 72rpx;
1556   - margin-right: 10rpx;
1557   - border-radius: 50%;
1558   - }
1559   - }
1560   -
1561   - .rightInfo {
1562   - display: flex;
1563   - align-items: center;
1564   - width: 50%;
1565   -
1566   - .groupBuyTime {
1567   - .needPeople {
1568   - font-size: 28rpx;
1569   - color: #333333;
1570   - margin-bottom: 10rpx;
1571   - font-weight: 400;
1572   -
1573   - b {
1574   - color: #C5AA7B;
1575   - font-weight: 400;
1576   - }
1577   - }
1578   -
1579   - .endDate {
1580   - color: #666666;
1581   - }
1582   - }
1583   -
1584   - .groupBuyBtn {
1585   - width: 140rpx;
1586   - height: 60rpx;
1587   - line-height: 60rpx;
1588   - background: #333333;
1589   - text-align: center;
1590   - color: #FFEBC4;
1591   - font-size: 24rpx;
1592   - }
1593   - }
1594   - }
1595   - }
1596   - }
1597   -}
1598   -
1599   -.popupDiscount {
1600   - padding-bottom: 70rpx;
1601   -
1602   - .popupDiscountTit {
1603   - font-size: 36rpx;
1604   - color: #333333;
1605   - height: 105rpx;
1606   - line-height: 105rpx;
1607   - text-align: center;
1608   - border-bottom: 1rpx solid #EEEEEE;
1609   - }
1610   -
1611   - .groupBuy {
1612   - padding-bottom: 80rpx;
1613   -
1614   - .groupBuyList {
1615   - .groupBuyItem1 {
1616   - padding: 0 30rpx;
1617   - height: 116rpx;
1618   - display: flex;
1619   - align-items: center;
1620   - justify-content: space-between;
1621   - border-bottom: 1rpx solid #EEEEEE;
1622   -
1623   - .leftAvatar {
1624   - display: flex;
1625   - align-items: center;
1626   -
1627   - img {
1628   - width: 72rpx;
1629   - height: 72rpx;
1630   - margin-right: 10rpx;
1631   - border-radius: 50%;
1632   - }
1633   -
1634   - .groupBuyTime {
1635   - margin-right: 80rpx;
1636   - margin-bottom: 10rpx;
1637   - width: 320rpx;
1638   -
1639   - .needPeople {
1640   - font-size: 26rpx;
1641   - color: #333333;
1642   -
1643   - span {
1644   - color: #333333;
1645   - padding-right: 10rpx;
1646   - }
1647   -
1648   - b {
1649   - color: #C5AA7B;
1650   - font-weight: 400;
1651   - }
1652   - }
1653   -
1654   - .endDate {
1655   - color: #333333;
1656   - opacity: 0.7;
1657   - font-size: 24rpx;
1658   - }
1659   - }
1660   - }
1661   -
1662   - .rightInfo {
1663   - display: flex;
1664   - align-items: center;
1665   -
1666   - .groupBuyBtn {
1667   - width: 140rpx;
1668   - height: 70rpx;
1669   - line-height: 70rpx;
1670   - background: #333333;
1671   - text-align: center;
1672   - color: #FFEBC4;
1673   - font-weight: 400;
1674   - }
1675   - }
1676   - }
1677   - }
1678   - }
1679   -}
1680   -
1681   -.combination {
1682   - padding: 0 20rpx;
1683   -
1684   - .combinationList {
1685   - width: 100%;
1686   - height: 680rpx;
1687   - background: #333333;
1688   - box-shadow: 0 20rpx 30rpx rgba(0, 0, 0, 0.3);
1689   - border-radius: 20rpx;
1690   -
1691   - .combinationTitle {
1692   - padding: 32rpx 20rpx 0 30rpx;
1693   -
1694   - image {
1695   - width: 211rpx;
1696   - height: 33rpx;
1697   - }
1698   -
1699   - .combinationPrice {
1700   - padding: 0 20px;
1701   - height: 50rpx;
1702   - background: linear-gradient(90deg, #C83732 0%, #E25C44 100%);
1703   - box-shadow: 0 6rpx 12rpx rgba(233, 0, 0, 0.3);
1704   - border-radius: 26rpx;
1705   - line-height: 50rpx;
1706   - text-align: center;
1707   - color: #FFFFFF;
1708   - opacity: 0.8;
1709   - }
1710   - }
1711   -
1712   - .buyBtn {
1713   - width: 96%;
1714   - height: 84rpx;
1715   - line-height: 84rpx;
1716   - border: 2rpx solid rgba(0, 0, 0, 0);
1717   - background: linear-gradient(88deg, #C5AA7B 0%, #FFEBC4 100%);
1718   - text-align: center;
1719   - color: #333333;
1720   - margin: 0 auto;
1721   - }
1722   - }
1723   -}
  662 + .page {
  663 + background-color: #F7F7F7;
  664 + }
1724 665 </style>
  666 +<style scoped lang="scss">
  667 + .page {
  668 + background-color: #F7F7F7;
  669 + }
  670 +
  671 + .news-box {
  672 + position: fixed;
  673 + left: 20rpx;
  674 + top: 200rpx;
  675 + z-index: 9999;
  676 +
  677 + .news-bg {
  678 + width: 450rpx;
  679 + height: 70rpx;
  680 + overflow: hidden;
  681 +
  682 + .news-item {
  683 + background: rgba(0, 0, 0, 0.75);
  684 + border-radius: 16rpx;
  685 + height: 70rpx;
  686 + color: #FFFFFF;
  687 + font-size: 24rpx;
  688 + padding: 0 20rpx;
  689 + width: 450rpx;
  690 +
  691 + .item-avatar {
  692 + width: 50rpx;
  693 + height: 50rpx;
  694 + border-radius: 50%;
  695 + margin-right: 20rpx;
  696 + }
  697 + }
  698 + }
  699 + }
  700 +
  701 +
  702 + .tabsbox {
  703 + width: 100%;
  704 + margin-top: 20rpx;
  705 + background-color: #FFFFFF;
  706 + }
  707 +
  708 +
  709 + .checkimg {
  710 + width: 40rpx;
  711 + height: 40rpx;
  712 + margin-right: 30rpx;
  713 + }
  714 +
  715 + .container {
  716 + padding-bottom: 180upx;
  717 +
  718 + .arrow-icon {
  719 + width: 16rpx;
  720 + height: 24rpx;
  721 + margin-right: 25rpx;
  722 + }
  723 +
  724 + .goodgDes-box {
  725 + background-color: #FFFFFF;
  726 + width: 100%;
  727 + padding-bottom: 25rpx;
  728 +
  729 + .priceBuyNum-box {
  730 + width: 677rpx;
  731 + margin-top: 30rpx;
  732 + }
  733 +
  734 + .nameContainer {
  735 + display: flex;
  736 +
  737 + .goodsName-box {
  738 + width: 677rpx;
  739 + height: 85rpx;
  740 +
  741 + .img618-cion {
  742 + width: 70rpx;
  743 + height: 36rpx;
  744 + }
  745 + }
  746 +
  747 + .collectBox {
  748 + width: 80rpx;
  749 + margin: 0 30rpx 0 15rpx;
  750 + display: flex;
  751 + flex-direction: column;
  752 + justify-content: center;
  753 + align-items: center;
  754 + }
  755 +
  756 + .store-icon {
  757 + width: 48rpx;
  758 + height: 48rpx;
  759 + }
  760 + }
  761 +
  762 + .discounts-box {
  763 + margin-top: 20rpx;
  764 +
  765 + .discounts-text {
  766 + margin-left: 10rpx;
  767 + color: #FF7800;
  768 + background-color: #FFE4CC;
  769 + padding: 6rpx 12rpx;
  770 + border-radius: 4rpx;
  771 + }
  772 + }
  773 +
  774 + .activity-box {
  775 + display: flex;
  776 + flex-direction: row;
  777 + justify-content: center;
  778 + align-items: flex-end;
  779 + border-top: 1upx solid #EDEDED;
  780 +
  781 + .activity-content {
  782 + width: 614rpx;
  783 + padding-top: 20rpx;
  784 +
  785 + .activity-text {
  786 + color: #FF7700;
  787 + border: 1rpx solid #FF7700;
  788 + padding: 6rpx 23rpx;
  789 + }
  790 +
  791 + .coupon-arrow {
  792 + width: 16rpx;
  793 + height: 24rpx;
  794 + margin-left: 15rpx;
  795 + }
  796 + }
  797 + }
  798 + }
  799 +
  800 + .express-box {
  801 + height: 100rpx;
  802 + background-color: #FFFFFF;
  803 + padding-left: 30rpx;
  804 + border-top: 12rpx solid #F8F8F8;
  805 + border-bottom: 12rpx solid #F8F8F8;
  806 +
  807 + image {
  808 + width: 21rpx;
  809 + height: 27rpx;
  810 + }
  811 +
  812 + .expressSite-icon {
  813 + width: 30rpx;
  814 + height: 30rpx;
  815 + }
  816 +
  817 + .mapName {
  818 + position: relative;
  819 +
  820 + &:before {
  821 + content: '';
  822 + width: 2rpx;
  823 + height: 30rpx;
  824 + background: #CCCCCC;
  825 + display: block;
  826 + position: absolute;
  827 + right: -16rpx;
  828 + top: 5rpx;
  829 + }
  830 + }
  831 + }
  832 +
  833 + .chooseSize-box {
  834 + height: 90rpx;
  835 + background-color: #FFFFFF;
  836 + margin: 10rpx 0;
  837 +
  838 + .chooseSize-content {
  839 + width: 100%;
  840 + }
  841 + }
  842 +
  843 + .questionTit {
  844 + height: 90rpx;
  845 + border-bottom: 1rpx solid #EEEEEE;
  846 + margin-right: 35rpx;
  847 + color: #333333;
  848 + font-size: 30rpx;
  849 +
  850 + .allMoreBox {
  851 + display: flex;
  852 + align-items: center;
  853 + color: #999999;
  854 + font-size: 24rpx;
  855 +
  856 + .evaluateAllArrow-icon {
  857 + width: 18rpx;
  858 + height: 24rpx;
  859 + }
  860 + }
  861 + }
  862 +
  863 + .shopEvaList {
  864 + display: flex;
  865 + padding: 30rpx;
  866 + flex-wrap: wrap;
  867 + border-bottom: 20rpx solid #EEEEEE;
  868 +
  869 + .shopEvaItem {
  870 + padding: 0 14rpx;
  871 + height: 60rpx;
  872 + background: #ffe4cc;
  873 + border-radius: 6rpx;
  874 + line-height: 60rpx;
  875 + text-align: center;
  876 + font-size: 28rpx;
  877 + color: #666666;
  878 + margin: 0 20rpx 20rpx 0;
  879 + }
  880 + }
  881 +
  882 + .storeEvaluate-box {
  883 + background-color: #FFFFFF;
  884 + margin-top: 20rpx;
  885 +
  886 + .storeEvaluate {
  887 + width: 690rpx;
  888 + padding: 20rpx 0;
  889 + border-bottom: 1rpx solid #EDEDED;
  890 + }
  891 +
  892 + .storeEvaluateTag-box {
  893 + margin-top: 10rpx;
  894 + margin-left: 10rpx;
  895 + padding-bottom: 30rpx;
  896 + display: flex;
  897 + flex-wrap: wrap;
  898 +
  899 + .storeEvaluateTag-text {
  900 + background-color: #FFE4CC;
  901 + border-radius: 6rpx;
  902 + padding: 16rpx 14rpx;
  903 + color: #656565;
  904 + margin-left: 20rpx;
  905 + margin-top: 20rpx;
  906 + }
  907 + }
  908 + }
  909 +
  910 + .inStore-box {
  911 + background-color: #FFFFFF;
  912 + margin-top: 20rpx;
  913 + padding: 20rpx 30rpx;
  914 +
  915 + .inStore-logo {
  916 + width: 70rpx;
  917 + height: 70rpx;
  918 + }
  919 +
  920 + .inStore-but {
  921 + width: 140rpx;
  922 + height: 60rpx;
  923 + line-height: 60rpx;
  924 + text-align: center;
  925 + font-size: 24rpx;
  926 + color: #fff;
  927 + background: #2ca536;
  928 + /*padding-left: 20rpx;*/
  929 + position: relative;
  930 +
  931 + }
  932 + }
  933 +
  934 + .goodsDetails-box {
  935 + background-color: #FFFFFF;
  936 + margin-top: 20rpx;
  937 + padding: 20rpx 30rpx;
  938 +
  939 + .goodsDetails-title {
  940 + display: flex;
  941 + flex-direction: row;
  942 + align-items: center;
  943 +
  944 + .goodsDetails-Line {
  945 + width: 265rpx;
  946 + border-bottom: 1rpx solid #EDEDED;
  947 + }
  948 +
  949 + .goodsDetails-text {
  950 + padding: 0 22rpx;
  951 + }
  952 + }
  953 +
  954 + .goodsDetailsimg-box {}
  955 + }
  956 +
  957 + .priceExplain-box {
  958 + background-color: #FFFFFF;
  959 + margin-top: 20rpx;
  960 + padding: 20rpx 30rpx;
  961 +
  962 + .priceExplain-title {
  963 + display: flex;
  964 + flex-direction: row;
  965 + align-items: center;
  966 +
  967 + .priceExplain-Line {
  968 + width: 265rpx;
  969 + border-bottom: 1rpx solid #EDEDED;
  970 + }
  971 +
  972 + .priceExplain-text {
  973 + padding: 0 22rpx;
  974 + }
  975 + }
  976 +
  977 + .priceExplain-dot {
  978 + width: 9rpx;
  979 + height: 9rpx;
  980 + border: 1rpx solid #FF7700;
  981 + border-radius: 50%;
  982 + background-color: #FF7700;
  983 + }
  984 + }
  985 +
  986 + .buygoods-box {
  987 + position: fixed;
  988 + bottom: 0rpx;
  989 + box-sizing: border-box;
  990 + z-index: 999;
  991 +
  992 + .groupByInfo {
  993 + background: #fffbe9;
  994 + padding: 0 30rpx;
  995 + height: 80rpx;
  996 +
  997 + .groupByInfoBox {
  998 + height: 80rpx;
  999 + }
  1000 +
  1001 + .groupByLeft {
  1002 + .groupByAvatar {
  1003 + margin-right: 15rpx;
  1004 + }
  1005 +
  1006 + img {
  1007 + width: 50rpx;
  1008 + height: 50rpx;
  1009 + }
  1010 +
  1011 + .name {
  1012 + font-size: 24rpx;
  1013 + }
  1014 +
  1015 + .groupByNum {
  1016 + margin-right: 10rpx;
  1017 + }
  1018 +
  1019 + .groupByTime {
  1020 + color: #333333;
  1021 + }
  1022 + }
  1023 +
  1024 + .groupByBtn {
  1025 + height: 60rpx;
  1026 + background: #333333;
  1027 + color: #FFEBC4;
  1028 + font-size: 14rpx;
  1029 + line-height: 60rpx;
  1030 + text-align: center;
  1031 + padding: 0 20rpx;
  1032 + }
  1033 + }
  1034 +
  1035 + .buygoodsBut-box {
  1036 + background-color: #FFFFFF;
  1037 + width: 750rpx;
  1038 + padding: 20rpx 32rpx;
  1039 + box-shadow: 0rpx 0rpx 10rpx 1rpx #EDEDED;
  1040 + box-sizing: border-box;
  1041 + display: flex;
  1042 + justify-content: space-between;
  1043 +
  1044 + .btns_container {
  1045 + display: flex;
  1046 + align-items: center;
  1047 + }
  1048 +
  1049 + .btns {
  1050 + width: 80rpx;
  1051 + }
  1052 +
  1053 + .Cart {
  1054 + position: relative;
  1055 +
  1056 + .cartAllNum {
  1057 + position: absolute;
  1058 + width: 30rpx;
  1059 + height: 30rpx;
  1060 + line-height: 30rpx;
  1061 + text-align: center;
  1062 + font-size: 17rpx;
  1063 + color: #FFFFFF;
  1064 + background: #2ea436;
  1065 + border-radius: 50%;
  1066 + opacity: 1;
  1067 + z-index: 999;
  1068 + }
  1069 +
  1070 + // #ifdef APP-PLUS
  1071 + .cartAllNum {
  1072 + right: -6rpx;
  1073 + top: -6rpx;
  1074 + }
  1075 +
  1076 + // #endif
  1077 + /* #ifdef H5 */
  1078 + .cartAllNum {
  1079 + right: -10rpx;
  1080 + top: -6rpx;
  1081 + }
  1082 +
  1083 + /* #endif */
  1084 + /* #ifdef MP-WEIXIN */
  1085 + .cartAllNum {
  1086 + right: -3rpx;
  1087 + top: 0;
  1088 + }
  1089 +
  1090 + /* #endif */
  1091 + }
  1092 +
  1093 + .store-icon {
  1094 + width: 48rpx;
  1095 + height: 48rpx;
  1096 + }
  1097 +
  1098 + .joinShopCartBut {
  1099 + width: 190rpx;
  1100 + height: 80rpx;
  1101 + background-color: #FFFFFF;
  1102 + color: #333333;
  1103 + font-size: 28rpx;
  1104 + line-height: 80rpx;
  1105 + border: 2rpx solid #333333;
  1106 + text-align: center;
  1107 + margin-left: 40rpx;
  1108 + box-sizing: border-box;
  1109 + }
  1110 +
  1111 + .buyNowBut {
  1112 + width: 190rpx;
  1113 + height: 80rpx;
  1114 + background: #2ea436;
  1115 + color: #fff;
  1116 + font-size: 28rpx;
  1117 + line-height: 80rpx;
  1118 + text-align: center;
  1119 + margin-left: 16rpx;
  1120 + }
  1121 +
  1122 + .offShelf {
  1123 + background: #b7b7b7;
  1124 + border-radius: 50rpx;
  1125 + width: 360rpx;
  1126 + margin-left: 50rpx;
  1127 + line-height: 80rpx;
  1128 + height: 80rpx;
  1129 + justify-content: center;
  1130 + color: #333333;
  1131 + }
  1132 + }
  1133 + }
  1134 +
  1135 + .returnTopService-box {
  1136 + position: fixed;
  1137 + bottom: 160rpx;
  1138 + right: 30rpx;
  1139 +
  1140 + .fs16 {
  1141 + font-size: 16rpx;
  1142 + }
  1143 +
  1144 + .returnTop-box {
  1145 + width: 88rpx;
  1146 + height: 88rpx;
  1147 + border-radius: 50%;
  1148 + background: #FFFFFF;
  1149 + opacity: 0.8;
  1150 +
  1151 + .returnTopImg {
  1152 + width: 58rpx;
  1153 + height: 58rpx;
  1154 + }
  1155 + }
  1156 +
  1157 + .serviceImg-box {
  1158 + width: 90rpx;
  1159 + height: 90rpx;
  1160 + border-radius: 50%;
  1161 + background-color: #FFFFFF;
  1162 + box-shadow: 0rpx 0rpx 5rpx 3rpx #999999;
  1163 +
  1164 + .serviceImg {
  1165 + width: 36rpx;
  1166 + height: 36rpx;
  1167 + display: block;
  1168 + background: url("https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/serviceImg.png") no-repeat center center;
  1169 + background-size: contain;
  1170 + }
  1171 + }
  1172 + }
  1173 +
  1174 +
  1175 + .parameterShow-box {
  1176 + .parameter-title {
  1177 + width: 100%;
  1178 + text-align: center;
  1179 + padding-bottom: 36rpx;
  1180 + }
  1181 +
  1182 + .parameter-modle {
  1183 + width: 690rpx;
  1184 + padding-bottom: 36rpx;
  1185 + font-size: 26rpx;
  1186 + }
  1187 +
  1188 + .parameterTruebut-box {
  1189 + background-color: #FFFFFF;
  1190 + padding: 20rpx 0;
  1191 +
  1192 + .parameterTruebut {
  1193 + width: 690rpx;
  1194 + height: 80rpx;
  1195 + background-image: linear-gradient(135deg, #FFA100 10%, #FF7911 100%);
  1196 + color: #FFFFFF;
  1197 + border-radius: 40rpx;
  1198 + line-height: 80rpx;
  1199 + text-align: center;
  1200 + font-size: 26rpx;
  1201 + }
  1202 + }
  1203 + }
  1204 +
  1205 + .couponShow-box {
  1206 + .couponShow {
  1207 + z-index: 333;
  1208 + height: 1000rpx;
  1209 +
  1210 + .couponTitle-box {
  1211 + width: 100%;
  1212 + }
  1213 +
  1214 + .coupon-title-active {
  1215 + color: #FF7700;
  1216 + border-bottom: 2rpx solid #FF7700;
  1217 + padding-bottom: 30rpx;
  1218 + }
  1219 +
  1220 + .usableCoupon-content {
  1221 + padding: 30rpx 0;
  1222 +
  1223 + .usableCoupon-box {
  1224 + width: 690rpx;
  1225 + height: 140rpx;
  1226 + border-radius: 10rpx;
  1227 + background-color: #FFE9D8;
  1228 +
  1229 + .immediateUse-but {
  1230 + color: #FF7800;
  1231 + border-radius: 30rpx;
  1232 + padding: 0 40rpx;
  1233 + border-left: 3rpx solid #EBD7C7;
  1234 + height: 140rpx;
  1235 + border-radius: 60rpx;
  1236 + line-height: 140rpx;
  1237 + font-weight: bold;
  1238 + }
  1239 + }
  1240 + }
  1241 + }
  1242 + }
  1243 +
  1244 + .succeedShow-box {
  1245 + position: absolute;
  1246 + top: 220rpx;
  1247 + left: 185rpx;
  1248 +
  1249 + .succeedShow {
  1250 + background-color: #7F7F7F;
  1251 + width: 380rpx;
  1252 + height: 280rpx;
  1253 + border-radius: 10rpx;
  1254 + opacity: 0.8;
  1255 +
  1256 + .couponSucceedImg {
  1257 + width: 200rpx;
  1258 + height: 130rpx;
  1259 + }
  1260 + }
  1261 + }
  1262 +
  1263 + }
  1264 +
  1265 + .activity-box {
  1266 + display: flex;
  1267 + flex-direction: column;
  1268 + width: 100%;
  1269 + height: 100%;
  1270 +
  1271 + .title-box {
  1272 + width: 100%;
  1273 + height: 100upx;
  1274 + display: flex;
  1275 + flex-direction: row;
  1276 + align-items: center;
  1277 + justify-content: center;
  1278 + position: relative;
  1279 + border-bottom: solid 1px #EEEEEE;
  1280 + }
  1281 + }
  1282 +
  1283 + .activity-coupon-box {
  1284 + display: flex;
  1285 + flex-direction: column;
  1286 + width: 100%;
  1287 + overflow: auto;
  1288 + flex: 1;
  1289 + }
  1290 +
  1291 + .content-box {
  1292 + width: 100%;
  1293 + box-sizing: border-box;
  1294 + display: flex;
  1295 + flex-direction: column;
  1296 + padding: 30rpx;
  1297 + }
  1298 +
  1299 + .tag-box {
  1300 + width: 100%;
  1301 + box-sizing: border-box;
  1302 + height: 80rpx;
  1303 + line-height: 80rpx;
  1304 + font-size: 28rpx;
  1305 + font-weight: 500;
  1306 + color: #FF7911;
  1307 + }
  1308 +
  1309 + .label-lingqu {
  1310 + width: 100%;
  1311 + font-weight: 500;
  1312 + color: rgba(51, 51, 51, 1);
  1313 + }
  1314 +
  1315 + .coupon-item {
  1316 + width: 690rpx;
  1317 + height: 120rpx;
  1318 + border-radius: 10rpx;
  1319 + display: flex;
  1320 + flex-direction: row;
  1321 + justify-content: space-between;
  1322 + align-items: center;
  1323 + margin-top: 20rpx;
  1324 + flex-shrink: 0;
  1325 + background-color: #FFE9D8;
  1326 + }
  1327 +
  1328 + .money-box {
  1329 + width: 160rpx;
  1330 + box-sizing: border-box;
  1331 + padding-left: 30rpx;
  1332 + font-weight: 500;
  1333 + color: #FF7911;
  1334 + }
  1335 +
  1336 + .info-box {
  1337 + display: flex;
  1338 + flex-direction: column;
  1339 + align-items: flex-start;
  1340 + color: rgba(255, 121, 17, 1);
  1341 + }
  1342 +
  1343 + .receive-btn {
  1344 + width: 200rpx;
  1345 + height: 120rpx;
  1346 + background: rgba(255, 233, 216, 1);
  1347 + box-shadow: 0px 0px 5rpx 0px rgba(102, 102, 102, 0.35);
  1348 + line-height: 120rpx;
  1349 + text-align: center;
  1350 + font-size: 28rpx;
  1351 + font-weight: bold;
  1352 + color: rgba(255, 121, 17, 1);
  1353 + border-bottom-right-radius: 10rpx;
  1354 + border-top-right-radius: 10rpx;
  1355 + border-top-left-radius: 120rpx;
  1356 + border-bottom-left-radius: 120rpx;
  1357 + }
  1358 +
  1359 + .received {
  1360 + background: #f1f1f1;
  1361 + color: #999;
  1362 + }
  1363 +
  1364 +
  1365 + .canvas-box {
  1366 + display: block;
  1367 + position: absolute;
  1368 + top: 100rpx;
  1369 + }
  1370 +
  1371 + .sceneMarketingBox {
  1372 + width: 100%;
  1373 + background: url("https://jy.scjysm.asia:18086/cdwlMall/questionnaire/file/static/images/5f85fe4782e34c10b15b04f76c571d12_sceneMarketingDetailsIcon.png"
  1374 + ) no-repeat center;
  1375 + padding: 20rpx 30rpx;
  1376 + background-size: cover;
  1377 + display: flex;
  1378 + justify-content: space-between;
  1379 + align-items: center;
  1380 +
  1381 + .sceneNameBox {
  1382 + width: 220rpx;
  1383 + text-align: center;
  1384 + color: #C83732;
  1385 + font-size: 20rpx;
  1386 + }
  1387 + }
  1388 +
  1389 +
  1390 + .goodsDiscount {
  1391 + .groupBuy {
  1392 + .groupBuyList {
  1393 + .groupBuyItem {
  1394 + padding: 0 30rpx;
  1395 + height: 116rpx;
  1396 + display: flex;
  1397 + align-items: center;
  1398 + justify-content: space-between;
  1399 + border-bottom: 1rpx solid #EEEEEE;
  1400 +
  1401 + .leftAvatar {
  1402 + display: flex;
  1403 + align-items: center;
  1404 + width: 50%;
  1405 +
  1406 + img {
  1407 + width: 72rpx;
  1408 + height: 72rpx;
  1409 + margin-right: 10rpx;
  1410 + border-radius: 50%;
  1411 + }
  1412 + }
  1413 +
  1414 + .rightInfo {
  1415 + display: flex;
  1416 + align-items: center;
  1417 + width: 50%;
  1418 +
  1419 + .groupBuyTime {
  1420 + .needPeople {
  1421 + font-size: 28rpx;
  1422 + color: #333333;
  1423 + margin-bottom: 10rpx;
  1424 + font-weight: 400;
  1425 +
  1426 + b {
  1427 + color: #C5AA7B;
  1428 + font-weight: 400;
  1429 + }
  1430 + }
  1431 +
  1432 + .endDate {
  1433 + color: #666666;
  1434 + }
  1435 + }
  1436 +
  1437 + .groupBuyBtn {
  1438 + width: 140rpx;
  1439 + height: 60rpx;
  1440 + line-height: 60rpx;
  1441 + background: #333333;
  1442 + text-align: center;
  1443 + color: #FFEBC4;
  1444 + font-size: 24rpx;
  1445 + }
  1446 + }
  1447 + }
  1448 + }
  1449 + }
  1450 + }
  1451 +
  1452 + .popupDiscount {
  1453 + padding-bottom: 70rpx;
  1454 +
  1455 + .popupDiscountTit {
  1456 + font-size: 36rpx;
  1457 + color: #333333;
  1458 + height: 105rpx;
  1459 + line-height: 105rpx;
  1460 + text-align: center;
  1461 + border-bottom: 1rpx solid #EEEEEE;
  1462 + }
  1463 +
  1464 + .groupBuy {
  1465 + padding-bottom: 80rpx;
  1466 +
  1467 + .groupBuyList {
  1468 + .groupBuyItem1 {
  1469 + padding: 0 30rpx;
  1470 + height: 116rpx;
  1471 + display: flex;
  1472 + align-items: center;
  1473 + justify-content: space-between;
  1474 + border-bottom: 1rpx solid #EEEEEE;
  1475 +
  1476 + .leftAvatar {
  1477 + display: flex;
  1478 + align-items: center;
  1479 +
  1480 + img {
  1481 + width: 72rpx;
  1482 + height: 72rpx;
  1483 + margin-right: 10rpx;
  1484 + border-radius: 50%;
  1485 + }
  1486 +
  1487 + .groupBuyTime {
  1488 + margin-right: 80rpx;
  1489 + margin-bottom: 10rpx;
  1490 + width: 320rpx;
  1491 +
  1492 + .needPeople {
  1493 + font-size: 26rpx;
  1494 + color: #333333;
  1495 +
  1496 + span {
  1497 + color: #333333;
  1498 + padding-right: 10rpx;
  1499 + }
  1500 +
  1501 + b {
  1502 + color: #C5AA7B;
  1503 + font-weight: 400;
  1504 + }
  1505 + }
  1506 +
  1507 + .endDate {
  1508 + color: #333333;
  1509 + opacity: 0.7;
  1510 + font-size: 24rpx;
  1511 + }
  1512 + }
  1513 + }
  1514 +
  1515 + .rightInfo {
  1516 + display: flex;
  1517 + align-items: center;
  1518 +
  1519 + .groupBuyBtn {
  1520 + width: 140rpx;
  1521 + height: 70rpx;
  1522 + line-height: 70rpx;
  1523 + background: #333333;
  1524 + text-align: center;
  1525 + color: #FFEBC4;
  1526 + font-weight: 400;
  1527 + }
  1528 + }
  1529 + }
  1530 + }
  1531 + }
  1532 + }
  1533 +
  1534 + .combination {
  1535 + padding: 0 20rpx;
  1536 +
  1537 + .combinationList {
  1538 + width: 100%;
  1539 + height: 680rpx;
  1540 + background: #333333;
  1541 + box-shadow: 0 20rpx 30rpx rgba(0, 0, 0, 0.3);
  1542 + border-radius: 20rpx;
  1543 +
  1544 + .combinationTitle {
  1545 + padding: 32rpx 20rpx 0 30rpx;
  1546 +
  1547 + image {
  1548 + width: 211rpx;
  1549 + height: 33rpx;
  1550 + }
  1551 +
  1552 + .combinationPrice {
  1553 + padding: 0 20px;
  1554 + height: 50rpx;
  1555 + background: linear-gradient(90deg, #C83732 0%, #E25C44 100%);
  1556 + box-shadow: 0 6rpx 12rpx rgba(233, 0, 0, 0.3);
  1557 + border-radius: 26rpx;
  1558 + line-height: 50rpx;
  1559 + text-align: center;
  1560 + color: #FFFFFF;
  1561 + opacity: 0.8;
  1562 + }
  1563 + }
  1564 +
  1565 + .buyBtn {
  1566 + width: 96%;
  1567 + height: 84rpx;
  1568 + line-height: 84rpx;
  1569 + border: 2rpx solid rgba(0, 0, 0, 0);
  1570 + background: linear-gradient(88deg, #C5AA7B 0%, #FFEBC4 100%);
  1571 + text-align: center;
  1572 + color: #333333;
  1573 + margin: 0 auto;
  1574 + }
  1575 + }
  1576 + }
  1577 +</style>
1725 1578 \ No newline at end of file
... ...
lvdao-miniapp/pages.json
... ... @@ -239,6 +239,20 @@
239 239 }
240 240 },
241 241 {
  242 + "path": "pages/orderList/inventory",
  243 + "style": {
  244 + "navigationBarTitleText": "库存管理",
  245 + "navigationBarBackgroundColor": "#FFFFFF"
  246 + }
  247 + },
  248 + {
  249 + "path": "pages/orderList/aftersale",
  250 + "style": {
  251 + "navigationBarTitleText": "售后管理",
  252 + "navigationBarBackgroundColor": "#FFFFFF"
  253 + }
  254 + },
  255 + {
242 256 "path": "pages/salesSta/salesSta",
243 257 "style": {
244 258 "navigationBarTitleText": "销售统计",
... ... @@ -394,9 +408,8 @@
394 408 "subpackages": [{
395 409 "root": "pagesA",
396 410 "name": "pagesA",
397   - "pages": [
398   - {
399   - "path": "/payweb/payweb",
  411 + "pages": [{
  412 + "path": "payweb/payweb",
400 413 "style": {
401 414 "navigationBarBackgroundColor": "#FFFFFF",
402 415 "navigationBarTitleText": ""
... ... @@ -439,69 +452,69 @@
439 452 },
440 453  
441 454 {
442   - "path": "moreZu/moreZu",
443   - "style": {
444   - "navigationBarBackgroundColor": "#FFFFFF",
445   - "navigationBarTitleText": "租金方案"
446   - }
447   - },
448   - {
449   - "path": "myZiyuan/myZiyuan",
450   - "style": {
451   - "navigationBarBackgroundColor": "#FFFFFF",
452   - "navigationBarTitleText": "我租赁的资产"
453   - }
454   - },
455   - {
456   - "path": "myZiyuan/myZiDetails",
457   - "style": {
458   - "navigationBarBackgroundColor": "#FFFFFF",
459   - "navigationBarTitleText": "资产详情"
460   - }
461   - },
462   - {
463   - "path": "myZiyuan/myZiyuanQuit",
464   - "style": {
465   - "navigationBarBackgroundColor": "#FFFFFF",
466   - "navigationBarTitleText": "申请退租"
467   - }
468   - },
469   - {
470   - "path": "myZiyuan/addMyshop",
471   - "style": {
472   - "navigationBarBackgroundColor": "#FFFFFF",
473   - "navigationBarTitleText": "店铺信息"
474   - }
475   - },
476   - {
477   - "path": "rentPay/rentPay",
478   - "style": {
479   - "navigationBarBackgroundColor": "#FFFFFF",
480   - "navigationBarTitleText": "租金缴费"
481   - }
482   - },
483   - {
484   - "path": "rentPay/rentPayDetails",
485   - "style": {
486   - "navigationBarBackgroundColor": "#FFFFFF",
487   - "navigationBarTitleText": "缴费记录"
488   - }
489   - },
490   - {
491   - "path": "rentPay/goPay",
492   - "style": {
493   - "navigationBarBackgroundColor": "#FFFFFF",
494   - "navigationBarTitleText": "支付"
495   - }
496   - },
497   - {
498   - "path": "rentPay/webView",
499   - "style": {
500   - "navigationBarBackgroundColor": "#FFFFFF",
501   - "navigationBarTitleText": "支付中"
  455 + "path": "moreZu/moreZu",
  456 + "style": {
  457 + "navigationBarBackgroundColor": "#FFFFFF",
  458 + "navigationBarTitleText": "租金方案"
  459 + }
  460 + },
  461 + {
  462 + "path": "myZiyuan/myZiyuan",
  463 + "style": {
  464 + "navigationBarBackgroundColor": "#FFFFFF",
  465 + "navigationBarTitleText": "我租赁的资产"
  466 + }
  467 + },
  468 + {
  469 + "path": "myZiyuan/myZiDetails",
  470 + "style": {
  471 + "navigationBarBackgroundColor": "#FFFFFF",
  472 + "navigationBarTitleText": "资产详情"
  473 + }
  474 + },
  475 + {
  476 + "path": "myZiyuan/myZiyuanQuit",
  477 + "style": {
  478 + "navigationBarBackgroundColor": "#FFFFFF",
  479 + "navigationBarTitleText": "申请退租"
  480 + }
  481 + },
  482 + {
  483 + "path": "myZiyuan/addMyshop",
  484 + "style": {
  485 + "navigationBarBackgroundColor": "#FFFFFF",
  486 + "navigationBarTitleText": "店铺信息"
  487 + }
  488 + },
  489 + {
  490 + "path": "rentPay/rentPay",
  491 + "style": {
  492 + "navigationBarBackgroundColor": "#FFFFFF",
  493 + "navigationBarTitleText": "租金缴费"
  494 + }
  495 + },
  496 + {
  497 + "path": "rentPay/rentPayDetails",
  498 + "style": {
  499 + "navigationBarBackgroundColor": "#FFFFFF",
  500 + "navigationBarTitleText": "缴费记录"
  501 + }
  502 + },
  503 + {
  504 + "path": "rentPay/goPay",
  505 + "style": {
  506 + "navigationBarBackgroundColor": "#FFFFFF",
  507 + "navigationBarTitleText": "支付"
  508 + }
  509 + },
  510 + {
  511 + "path": "rentPay/webView",
  512 + "style": {
  513 + "navigationBarBackgroundColor": "#FFFFFF",
  514 + "navigationBarTitleText": "支付中"
  515 + }
502 516 }
503   - }
504   - ]
  517 + ]
505 518 }],
506 519 "globalStyle": {
507 520 "navigationBarTextStyle": "black"
... ...
lvdao-miniapp/pages/application/application.vue
... ... @@ -24,7 +24,7 @@
24 24 </view>
25 25 <view class="list">
26 26 <view class="title">
27   - <text>方案名称</text>
  27 + <text>宣传标题</text>
28 28 <text class="star">*</text>
29 29 </view>
30 30 <view class="content">
... ... @@ -55,7 +55,7 @@
55 55 <view class="feedback-data">
56 56 <view>
57 57 <view class="title">
58   - <text>渠道海报</text>
  58 + <text>宣传海报</text>
59 59 <text class="star">*</text>
60 60 </view>
61 61 </view>
... ...
lvdao-miniapp/pages/orderList/aftersale.vue 0 → 100644
  1 +<template>
  2 +</template>
  3 +
  4 +<script>
  5 +</script>
  6 +
  7 +<style>
  8 +</style>
0 9 \ No newline at end of file
... ...
lvdao-miniapp/pages/orderList/inventory.vue 0 → 100644
  1 +<template>
  2 +</template>
  3 +
  4 +<script>
  5 +</script>
  6 +
  7 +<style>
  8 +</style>
0 9 \ No newline at end of file
... ...
lvdao-miniapp/pages/orderList/orderList.vue
1 1 <template>
2 2 <view class="page">
3   - <u-collapse-item :title="`订单${item.orderId}`" v-for="(item, index) in list" :key="index">
4   - <view style="display: flex;justify-content: space-between;">
5   - <view>下单账号</view>
6   - <view>{{item.customerName}}</view>
7   - </view>
8   - <view style="display: flex;justify-content: space-between;">
9   - <view>支付单号</view>
10   - <view>{{item.transactionId}}</view>
11   - </view>
12   - <view style="display: flex;justify-content: space-between;">
13   - <view>支付时间</view>
14   - <view>{{item.paymentTime}}</view>
15   - </view>
16   - <view style="display: flex;justify-content: space-between;">
17   - <view>商品名称</view>
18   - <view>{{item.products[0].productName}}</view>
19   - </view>
20   - <view style="display: flex;justify-content: space-between;">
21   - <view>商品总价</view>
22   - <view>{{item.products[0].productPrice}}</view>
23   - </view>
24   - </u-collapse-item>
  3 + <view class="screen-list">
  4 + <view class="list" @click="show = true">
  5 + <text>日期:{{dataTime}}</text>
  6 + <image :src="$imgUrl('/down.png')"></image>
  7 + </view>
  8 + <view class="list">
  9 + <u-button type="info" style="height:26px;font-size:14px;" @click="close">重置</u-button>
  10 + </view>
25 11  
  12 + </view>
  13 + <u-collapse-item :title="`订单${item.orderId}`" v-for="(item, index) in list" :key="index">
  14 + <view style="display: flex;justify-content: space-between;">
  15 + <view>下单账号</view>
  16 + <view>{{item.customerName}}</view>
  17 + </view>
  18 + <view style="display: flex;justify-content: space-between;">
  19 + <view>支付单号</view>
  20 + <view>{{item.transactionId}}</view>
  21 + </view>
  22 + <view style="display: flex;justify-content: space-between;">
  23 + <view>支付时间</view>
  24 + <view>{{item.paymentTime}}</view>
  25 + </view>
  26 + <view style="display: flex;justify-content: space-between;">
  27 + <view>商品名称</view>
  28 + <view>{{item.products[0].productName}}</view>
  29 + </view>
  30 + <view style="display: flex;justify-content: space-between;">
  31 + <view>支付金额</view>
  32 + <view>{{item.price}}</view>
  33 + </view>
  34 + <view style="display: flex;justify-content: space-between;">
  35 + <view>订单状态</view>
  36 + <view>
  37 + <span v-if="item.state == 1">待付款</span>
  38 + <span v-if="item.state == 2">待发货</span>
  39 + <span v-if="item.state == 3">已发货</span>
  40 + <span v-if="item.state == 4">已完成</span>
  41 + <span v-if="item.state == 5">已关闭</span>
  42 + <span v-if="item.state == 6">待成团</span>
  43 + <span v-if="item.state == 7">待售后</span>
  44 + <span v-if="item.state == 8">已退款</span>
  45 + </view>
  46 + </view>
  47 + </u-collapse-item>
  48 + <u-calendar v-model="show" mode="range" @change="change" @close="handleClose" active-bg-color="#19be6b" active-color="#fff" range-bg-color="#19be6b" range-color="#fff" btn-type="success"></u-calendar>
26 49  
27 50 </view>
28 51 </template>
... ... @@ -31,37 +54,8 @@
31 54 export default {
32 55 data() {
33 56 return {
34   - action: 'http://8.130.38.56:8027/admin-server/file/upload',
35   - fileList: [],
36   - lableXian: '',
37   - rulform: {
38   - schemeTitle: '',
39   - classificationCode: '',
40   - createDate: '',
41   - createUser: '',
42   - promotionContent: '',
43   - coverImage: ''
44   - },
45   - params: {
46   - year: true,
47   - month: true,
48   - day: true,
49   - hour: true,
50   - minute: true,
51   - second: true,
52   - province: true,
53   - },
54 57 show: false,
55   - popup1: false,
56   - list: [{
57   - value: '1',
58   - label: '江'
59   - },
60   - {
61   - value: '2',
62   - label: '湖'
63   - }
64   - ],
  58 + list: [],
65 59 pageindex: {
66 60 afterState: "",
67 61 dates: [],
... ... @@ -71,7 +65,7 @@
71 65 searchType: "1",
72 66 state: ""
73 67 },
74   - Fenshow: true,
  68 + dataTime:''
75 69 };
76 70 },
77 71 mounted() {
... ... @@ -81,19 +75,20 @@
81 75  
82 76 },
83 77 methods: {
84   - padZero(num) {
85   - return num < 10 ? '0' + num : num;
  78 + change(e){
  79 + console.log(e)
  80 + this.dataTime = `${e.startDate}-${e.endDate}`
  81 + this.getALL()
86 82 },
87   - getCurrentTimeFormatted() {
88   - const now = new Date();
89   - return `${now.getFullYear()}-${this.padZero(now.getMonth() + 1)}-${this.padZero(now.getDate())} ${this.padZero(now.getHours())}:${this.padZero(now.getMinutes())}:${this.padZero(now.getSeconds())}`;
  83 + close(){
  84 + this.dataTime = ''
  85 + this.getALL()
90 86 },
91   -
92 87 getALL() {
93   - this.$http.sendRequest('/order/getAll', 'POST', this.pageindex, 2).then(res => {
94   - //成功回调
95   - this.list = res.data.data.list
96   - })
  88 + // this.$http.sendRequest('/order/getAll', 'POST', this.pageindex, 2).then(res => {
  89 + // //成功回调
  90 + // this.list = res.data.data.list
  91 + // })
97 92 }
98 93  
99 94 }
... ... @@ -102,10 +97,11 @@
102 97  
103 98 <style scoped lang="scss">
104 99 // @import 'application.scss';
105   -.page{
106   - background-color: #fff;
107   - padding: 20px;
108   -}
  100 + .page {
  101 + background-color: #fff;
  102 + padding: 20px;
  103 + }
  104 +
109 105 .juli {
110 106 padding: 10rpx;
111 107 display: flex;
... ... @@ -267,4 +263,40 @@
267 263 ::v-deep .u-input__input {
268 264 text-align: right;
269 265 }
  266 + .screen-list {
  267 + display: flex;
  268 + align-items: center;
  269 + justify-content: space-between;
  270 + width: 100%;
  271 + .zidong{
  272 + width: 160rpx;
  273 + background-color: #19be6b;
  274 + color: #fff;
  275 + padding: 10rpx;
  276 + border-radius: 30rpx;
  277 + font-size: 24rpx;
  278 + text-align: center;
  279 + }
  280 + .list {
  281 + display: flex;
  282 + justify-content: center;
  283 + align-items: center;
  284 + height: 100%;
  285 + text {
  286 + font-size: 26rpx;
  287 + color: #555555;
  288 + }
  289 + image {
  290 + width: 30rpx;
  291 + height: 30rpx;
  292 + margin-left: 10rpx;
  293 + }
  294 + }
  295 + .action {
  296 + text {
  297 + color: $base;
  298 + }
  299 + }
  300 + }
  301 +
270 302 </style>
271 303 \ No newline at end of file
... ...
lvdao-miniapp/pages/workbench/workbench.vue
1 1 <template>
2 2 <view class="page">
3 3 <view style="position: absolute; top: 0; width: 100%;">
4   - <image :src="$imgUrl('/bg.png')" style="width: 100%; height: 490rpx;border-radius: 0 0 40rpx 40rpx;"></image></view>
  4 + <image :src="$imgUrl('/bg.png')" style="width: 100%; height: 490rpx;border-radius: 0 0 40rpx 40rpx;">
  5 + </image>
  6 + </view>
5 7 <view class="my-top">
6 8 <view class="head" :style="'background-color: rgba(38,197,112,'+(scrollTop/50)+');'">
7 9 <view class="logo-title">
8 10 <image :src="$imgUrl('/logo.png')"></image>
9 11 </view>
10 12 <view class="title">
11   -
  13 +
12 14 </view>
13 15 <view class="setting-mess"></view>
14 16 </view>
... ... @@ -30,7 +32,9 @@
30 32 </view> -->
31 33 <view class="main">
32 34 <view class="bg-white" v-for="item in pageList2" :key="item.id">
33   - <view class="bidding-title"><view class="bidding-title-line"></view>{{item.title}}</view>
  35 + <view class="bidding-title">
  36 + <view class="bidding-title-line"></view>{{item.title}}
  37 + </view>
34 38 <view class="wallet-info">
35 39 <view class="list" v-for="v in item.children" :key="v.name" @click="toPath(v.path)">
36 40 <view class="icon">
... ... @@ -45,7 +49,9 @@
45 49 </view>
46 50 <view class="main">
47 51 <view class="bg-white" v-for="item in pageList3" :key="item.id">
48   - <view class="bidding-title"><view class="bidding-title-line"></view>{{item.title}}</view>
  52 + <view class="bidding-title">
  53 + <view class="bidding-title-line"></view>{{item.title}}
  54 + </view>
49 55 <view class="wallet-info">
50 56 <view class="list" v-for="v in item.children" :key="v.name" @click="toPath(v.path)">
51 57 <view class="icon">
... ... @@ -60,7 +66,26 @@
60 66 </view>
61 67 <view class="main">
62 68 <view class="bg-white" v-for="item in pageList4" :key="item.id">
63   - <view class="bidding-title"><view class="bidding-title-line"></view>{{item.title}}</view>
  69 + <view class="bidding-title">
  70 + <view class="bidding-title-line"></view>{{item.title}}
  71 + </view>
  72 + <view class="wallet-info">
  73 + <view class="list" v-for="v in item.children" :key="v.name" @click="toPath(v.path)">
  74 + <view class="icon">
  75 + <image :src="$imgUrl(`${v.img}`)"></image>
  76 + </view>
  77 + <view class="title">
  78 + <text>{{v.name}}</text>
  79 + </view>
  80 + </view>
  81 + </view>
  82 + </view>
  83 + </view>
  84 + <view class="main">
  85 + <view class="bg-white" v-for="item in pageList6" :key="item.id">
  86 + <view class="bidding-title">
  87 + <view class="bidding-title-line"></view>{{item.title}}
  88 + </view>
64 89 <view class="wallet-info">
65 90 <view class="list" v-for="v in item.children" :key="v.name" @click="toPath(v.path)">
66 91 <view class="icon">
... ... @@ -126,46 +151,105 @@
126 151 // ]
127 152 // },
128 153 ],
129   - pageList2: [
130   - {
131   - id: 1,
132   - title: '活动与意向申请',
133   - children: [
134   - { name: '问卷调查', img: '/wjdc.png', path: '/pages/questionnaire/questionnaire' },
135   - // { name: '招商方案', img: '/workbench2.png', path: '/pages/Iproposal/Iproposal' },
136   - { name: '活动参与', img: '/wdhd.png', path: '/pages/participation/participation' },
137   - { name: '活动申请', img: '/hdsq.png', path: '/pages/activityAdd/activityAdd' },
138   - { name: '意向申请', img: '/yxsq.png', path: '/pages/rsaManagement/rsaManagement' },
139   - ]
140   - },
141   - ],
142   - pageList3: [
143   - {
144   - id: 1,
  154 + pageList2: [{
  155 + id: 1,
  156 + title: '活动与意向申请',
  157 + children: [{
  158 + name: '问卷调查',
  159 + img: '/wjdc.png',
  160 + path: '/pages/questionnaire/questionnaire'
  161 + },
  162 + // { name: '招商方案', img: '/workbench2.png', path: '/pages/Iproposal/Iproposal' },
  163 + {
  164 + name: '活动参与',
  165 + img: '/wdhd.png',
  166 + path: '/pages/participation/participation'
  167 + },
  168 + {
  169 + name: '活动申请',
  170 + img: '/hdsq.png',
  171 + path: '/pages/activityAdd/activityAdd'
  172 + },
  173 + {
  174 + name: '意向申请',
  175 + img: '/yxsq.png',
  176 + path: '/pages/rsaManagement/rsaManagement'
  177 + },
  178 + ]
  179 + }, ],
  180 + pageList3: [{
  181 + id: 2,
145 182 title: '销售上报与统计',
146 183 children: [
147 184 // { name: '文件调查', img: '/workbench1.png', path: '/pages/questionnaire/questionnaire' },
148 185 // { name: '招商方案', img: '/workbench2.png', path: '/pages/Iproposal/Iproposal' },
149 186 // { name: '我的活动', img: '/workbench3.png', path: '/pages/participation/participation' },
150 187 // { name: '活动申请', img: '/workbench4.png', path: '/pages/mycreated/mycreated' },
151   - { name: '销售上报', img: '/xssb.png', path: '/pages/saleReport/saleReport' },
152   - { name: '销售统计', img: '/xstj.png', path: '/pages/salesReporting/salesReporting' },
153   - ]
154   - },
155   - ],
156   - pageList4: [
157   - {
158   - id: 1,
159   - title: '商铺缴费',
160   - children: [
161   - // { name: '文件调查', img: '/workbench1.png', path: '/pages/questionnaire/questionnaire' },
162   - // { name: '招商方案', img: '/workbench2.png', path: '/pages/Iproposal/Iproposal' },
163   - // { name: '我的活动', img: '/workbench3.png', path: '/pages/participation/participation' },
164   - // { name: '活动申请', img: '/wyjf.png', path: '/pages/mycreated/mycreated' },
165   - { name: '租金缴费', img: '/zjjf.png', path: '/pagesA/rentPay/rentPay' },
  188 + {
  189 + name: '销售上报',
  190 + img: '/xssb.png',
  191 + path: '/pages/saleReport/saleReport'
  192 + },
  193 + {
  194 + name: '销售统计',
  195 + img: '/xstj.png',
  196 + path: '/pages/salesReporting/salesReporting'
  197 + },
166 198 ]
167 199 },
  200 +
168 201 ],
  202 + pageList4: [{
  203 + id: 3,
  204 + title: '在线商城',
  205 + children: [{
  206 + name: '订单查询',
  207 + img: '/xssb.png',
  208 + path: '/pages/orderList/orderList'
  209 + },
  210 + {
  211 + name: '售后查询',
  212 + img: '/xssb.png',
  213 + path: '/pages/orderList/aftersale',
  214 + },
  215 + {
  216 + name: '商品库存',
  217 + img: '/xssb.png',
  218 + path: '/pages/orderList/inventory'
  219 + },
  220 + ]
  221 + }],
  222 +
  223 + pageList5: [{
  224 + id: 4,
  225 + title: '商铺缴费',
  226 + children: [
  227 + // { name: '文件调查', img: '/workbench1.png', path: '/pages/questionnaire/questionnaire' },
  228 + // { name: '招商方案', img: '/workbench2.png', path: '/pages/Iproposal/Iproposal' },
  229 + // { name: '我的活动', img: '/workbench3.png', path: '/pages/participation/participation' },
  230 + // { name: '活动申请', img: '/wyjf.png', path: '/pages/mycreated/mycreated' },
  231 + {
  232 + name: '租金缴费',
  233 + img: '/zjjf.png',
  234 + path: '/pagesA/rentPay/rentPay'
  235 + },
  236 + ]
  237 + }, ],
  238 +pageList6: [{
  239 + id: 5,
  240 + title: '推广管理',
  241 + children: [{
  242 + name: '推广申请',
  243 + img: '/xssb.png',
  244 + path: '/pages/application/application'
  245 + },
  246 + {
  247 + name: '我的推广',
  248 + img: '/xssb.png',
  249 + path: '/pages/projectManagement/projectManagement',
  250 + }
  251 + ]
  252 + }],
169 253 scrollTop: 0,
170 254 };
171 255 },
... ... @@ -178,12 +262,16 @@
178 262 })
179 263 } else {
180 264  
181   - this.$http.sendRequest('/cerePlatformMerchant/queryByPage', 'POST',{"pageSize":10,pageNumber:0,phone:uni.getStorageSync('user').phone}).then(res => {
182   - if(res.data.code == '20004' || res.data.code == '20003'){
183   - uni.navigateTo({
184   - url: '/pages/login/login'
185   - })
186   - }
  265 + this.$http.sendRequest('/cerePlatformMerchant/queryByPage', 'POST', {
  266 + "pageSize": 10,
  267 + pageNumber: 0,
  268 + phone: uni.getStorageSync('user').phone
  269 + }).then(res => {
  270 + if (res.data.code == '20004' || res.data.code == '20003') {
  271 + uni.navigateTo({
  272 + url: '/pages/login/login'
  273 + })
  274 + }
187 275 })
188 276 }
189 277  
... ... @@ -195,7 +283,7 @@
195 283 this.scrollTop = e.scrollTop;
196 284 },
197 285 methods: {
198   - toPath(path){
  286 + toPath(path) {
199 287 uni.navigateTo({
200 288 url: path,
201 289 })
... ... @@ -206,4 +294,4 @@
206 294  
207 295 <style scoped lang="scss">
208 296 @import 'workbench.scss';
209 297 -</style>
  298 +</style>
210 299 \ No newline at end of file
... ...
lvdao-miniapp/utils/request.js
... ... @@ -21,10 +21,10 @@ const sendRequest = (url, method = &#39;GET&#39;, data = {}, baseUrl,contentType) =&gt; {
21 21 // bases = 'https://zhgw.028wlkj.com:20443/cdwlMall/meserver/admin-server' + url;
22 22 // bases = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/admin-server' + url;
23 23  
24   - bases = 'http://128.10.249.18:9003/'+ url;
  24 + // bases = 'http://128.10.249.18:9003/'+ url;
25 25 // bases = 'https://zhld.028wlkj.com:49008/cdwlMall/admin-server' + url;
26 26  
27   - // bases = c1 + 'cdwlMall/meserver/admin-server' + url;
  27 + bases = c1 + 'cdwlMall/meserver/admin-server' + url;
28 28  
29 29 }else if(baseUrl == 3){
30 30 // bases = 'https://jy.scjysm.asia:18086/cdwlMall/meserver/api' + url;
... ...
merchant-web-master/src/utils/request.js
... ... @@ -19,8 +19,8 @@ let PREFIX;
19 19 if( host == 'localhost:9528' || host == '8.130.38.56:8027' || host == 'localhost:9529'|| host == 'localhost:9530'){
20 20 // 其他情况的默认值
21 21 // PREFIX = 'http://8.130.38.56:8027/business-server';
22   - // PREFIX = 'https://jy.scjysm.asia:18086/cdwlMall/business-server';
23   - PREFIX = 'http://128.10.249.48:9004';
  22 + PREFIX = 'https://jy.scjysm.asia:18086/cdwlMall/business-server';
  23 + // PREFIX = 'http://128.10.249.48:9004';
24 24 }else{
25 25 // PREFIX = '/merchant-business';
26 26 // PREFIX = 'http://8.130.38.56:9004';
... ...
merchant-web-master/src/views/commodity/commoditySystem/index.vue
... ... @@ -40,7 +40,7 @@
40 40 </div>
41 41 <div style="margin-bottom:20px;">
42 42 <el-button @click="add" style="background-color: #3F9B6A;color: #fff;">新增商品</el-button>
43   - <!-- <el-button @click="sends" style="background-color: #3F9B6A;color: #fff;">批量导入</el-button> -->
  43 + <el-button @click="sends" style="background-color: #3F9B6A;color: #fff;">批量导入</el-button>
44 44 <el-button @click="productDataExport" style="background-color: #3F9B6A;color: #fff;">导出商品</el-button>
45 45 </div>
46 46 <!-- 表格 -->
... ... @@ -134,7 +134,7 @@
134 134 :auto-upload="false"
135 135 accept=".xlsx"
136 136 :headers="headers"
137   - :action="UploadUrls"
  137 + :action="UploadUrl"
138 138 :before-upload="beforeUploadFile"
139 139 :on-change="fileChange"
140 140 :on-remove="batchRemove"
... ... @@ -145,7 +145,7 @@
145 145 >
146 146 <i class="el-icon-upload" />
147 147 <div class="el-upload__text">
148   - <em>点击上传</em>
  148 + <em style="color:#3F9B6A;">点击上传</em>
149 149 </div>
150 150 <div slot="tip" class="el-upload__tip">只能上传xlsx文件,且不超过10M</div>
151 151 <div slot="tip" class="el-upload__tip">
... ...
merchant-web-master/src/views/customerService/kefuMsg/index.vue 0 → 100644
  1 +<template>
  2 +<div style="background-color:#f7f7f7;padding:10px 10px;">
  3 + <div class="zhuti">
  4 + <div style="display:flex;border: 1px solid #d7d7d7;width: 100%;">
  5 + <div class="left_list">
  6 + <div :class="index == msgListIndex ?'cardClick' :'card'" v-for="index in 10" @click="getMsg(index)">
  7 + <div style="display:flex;justify-content: space-between; margin-bottom: 10px;">
  8 + <div class="name">我我去请问而且</div>
  9 + <div>2024-10-18 17:50:20</div>
  10 + </div>
  11 + <div class="const">这里是内容内容内容这里是内容内容内容这里是内容内容内容这里是内容内容内容</div>
  12 + </div>
  13 + </div>
  14 + <div class="right_list" v-if="msgListIndex!=null">
  15 + <div class="title_name">我我去请问而且我我去请问而且我我去请问而且</div>
  16 + <div class="neiBox">
  17 + <div class="kehu">Chat Bubble</div>
  18 + <div class="time">17:50:20</div>
  19 + </div>
  20 + <div class="zijiBox">
  21 + <div class="ziji">Chat Bubble</div>
  22 + <div class="time" style="text-align: right;">17:50:20</div>
  23 + </div>
  24 +
  25 + <div class="footput">
  26 + <el-input v-model="msg" placeholder="请输入" style="width:90%;margin-right: 15px;" />
  27 + <el-button @click="onSubmit" style="background-color: #3F9B6A;color: #fff">发送
  28 + </el-button>
  29 + </div>
  30 + </div>
  31 + </div>
  32 +
  33 + </div>
  34 + </div>
  35 +</template>
  36 +
  37 +<script>
  38 + export default {
  39 + data() {
  40 + return {
  41 + msg:'',
  42 + msgListIndex:null,
  43 + tableData:[]
  44 + }
  45 + },
  46 + created() {
  47 +
  48 + },
  49 + computed: {
  50 +
  51 + },
  52 + methods: {
  53 + getMsg(index){
  54 + console.log(index)
  55 + this.msgListIndex = index
  56 + }
  57 + }
  58 + }
  59 +</script>
  60 +
  61 +<style scoped>
  62 + /deep/ .first-column-bg {
  63 + background-color: #f4f4f5 !important;
  64 + }
  65 +
  66 + .zhuti {
  67 + padding: 20px;
  68 + background-color: #fff;
  69 + }
  70 +
  71 + /deep/ .el-form-item__content {
  72 + width: 80%;
  73 + }
  74 + .left_list{
  75 +border-right: 1px solid #d7d7d7;
  76 +width: 25%;
  77 +height: 80vh;
  78 + overflow-y: auto; /* 允许垂直滚动 */
  79 + }
  80 +.right_list{
  81 +width: 75%;
  82 +height: 80vh;
  83 +position: relative;
  84 + overflow-y: auto; /* 允许垂直滚动 */
  85 +}
  86 +.card{
  87 + padding:20px;
  88 + border-bottom:1px solid #d7d7d7 ;
  89 +}
  90 +.card:hover{
  91 + background-color: #DEEBE2;
  92 + color: #3F9B6A;
  93 +}
  94 +
  95 +.cardClick{
  96 + padding:20px;
  97 + border-bottom:1px solid #d7d7d7 ;
  98 + background-color: #3F9B6A;
  99 + color: #fff;
  100 +}
  101 +.cardClick:hover{
  102 + background-color: #3F9B6A;
  103 + color: #fff;
  104 +}
  105 +
  106 +/* 针对WebKit内核的浏览器(如Chrome和Safari)隐藏滚动条 */
  107 +.left_list::-webkit-scrollbar {
  108 + display: none;
  109 +}
  110 +
  111 +/* 对于Firefox,使用以下CSS属性隐藏滚动条 */
  112 +.left_list {
  113 + scrollbar-width: none; /* Firefox 64 */
  114 +}
  115 +/* 针对WebKit内核的浏览器(如Chrome和Safari)隐藏滚动条 */
  116 +.right_list::-webkit-scrollbar {
  117 + display: none;
  118 +}
  119 +
  120 +/* 对于Firefox,使用以下CSS属性隐藏滚动条 */
  121 +.right_list {
  122 + scrollbar-width: none; /* Firefox 64 */
  123 +}
  124 +.const{
  125 + width:80%;
  126 + white-space: nowrap; /* 防止文字换行 */
  127 + overflow: hidden; /* 隐藏溢出的文字 */
  128 + text-overflow: ellipsis; /* 显示省略号 */
  129 +}
  130 +.title_name{
  131 + border-bottom:1px solid #d7d7d7;
  132 + padding: 20px;
  133 +}
  134 +.neiBox{
  135 + padding: 20px;
  136 +}
  137 +.zijiBox{
  138 + padding: 20px;
  139 +align-content: flex-end;
  140 + flex-wrap: wrap;
  141 + flex-direction: column;
  142 + display: flex;
  143 +}
  144 +.footput{
  145 + display: flex;
  146 + position: absolute;
  147 + bottom:0;
  148 + left:0;
  149 + padding: 10px;
  150 + width: 100%;
  151 + align-items: center;
  152 +}
  153 + .kehu {
  154 + width: 30%; /* 假设消息框占据了屏幕宽度的80% */
  155 + padding: 16px; /* 消息框内的内边距 */
  156 + background-color: #F7F5F6; /* 蓝色背景 */
  157 + color: #000; /* 白色文字 */
  158 + position: relative; /* 为了定位右上角的表情符号 */
  159 + font-size: 16px; /* 字体大小 */
  160 + text-align: left; /* 文字左对齐 */
  161 + /* 移除圆角 */
  162 + border-radius: 0;
  163 + /* 只给右上角添加圆角(如果需要的话,这里设置为0表示不添加) */
  164 + border-top-right-radius: 22px; /* 可以根据需要调整或删除此行 */
  165 + border-bottom-right-radius: 22px; /* 同上 */
  166 + /* 只保留左下角的直角(实际上不需要特别设置,因为默认就是直角) */
  167 + /* 但为了明确,我们可以设置其他三个角为0(如果之前设置了圆角的话) */
  168 + border-top-left-radius: 40px;
  169 + border-bottom-left-radius: 0; /* 左下角保持直角,这其实是默认值 */
  170 + }
  171 + .ziji{
  172 + width: 30%; /* 假设消息框占据了屏幕宽度的80% */
  173 + padding: 16px; /* 消息框内的内边距 */
  174 + background-color: #3F9B6A; /* 蓝色背景 */
  175 + color: white; /* 白色文字 */
  176 + position: relative; /* 为了定位右上角的表情符号 */
  177 + font-size: 16px; /* 字体大小 */
  178 + text-align: left; /* 文字左对齐 */
  179 + /* 移除圆角 */
  180 + border-radius: 0;
  181 + /* 只给右上角添加圆角(如果需要的话,这里设置为0表示不添加) */
  182 + border-top-right-radius: 40px; /* 可以根据需要调整或删除此行 */
  183 + border-bottom-right-radius: 0px; /* 同上 */
  184 + /* 只保留左下角的直角(实际上不需要特别设置,因为默认就是直角) */
  185 + /* 但为了明确,我们可以设置其他三个角为0(如果之前设置了圆角的话) */
  186 + border-top-left-radius: 22px;
  187 + border-bottom-left-radius:22px; /* 左下角保持直角,这其实是默认值 */
  188 + }
  189 +.time{
  190 +padding:5px;
  191 +}
  192 +</style>
... ...
wenjuan-h5/pages_category_page1/question/question.vue
... ... @@ -711,11 +711,10 @@
711 711 uni.reLaunch({
712 712 url: `/pages_category_page1/question/succe?ids=${this.wenjuanIds}`
713 713 })
714   - if(this.wenjuan.rewardForParticipation !=''){
715   - // window.location.replace( `https://jy.scjysm.asia:18086/h5-web/#/activity/pages/lottery/index?detailId=${this.wenjuan.rewardForParticipation}&style=${this.wenjuan.style}`);
716   - window.location.replace( `https://jy.scjysm.asia:18086/h5-web/#/activity/pages/lottery/index?detailId=${this.wenjuan.rewardForParticipation}&style=${this.wenjuan.actStyle}`);
  714 + // if(this.wenjuan.rewardForParticipation !=''){
  715 + // window.location.replace( `https://jy.scjysm.asia:18086/h5-web/#/activity/pages/lottery/index?detailId=${this.wenjuan.rewardForParticipation}&style=${this.wenjuan.actStyle}`);
717 716  
718   - }
  717 + // }
719 718 }
720 719  
721 720 })
... ...
wenjuan-pc/src/views/investigation/index.vue
... ... @@ -359,8 +359,8 @@
359 359 fit="fill" />
360 360 <!-- <img :src="secondData.coverImage" alt="" style="width:25%" /> -->
361 361 </div>
362   - <div style="padding: 20px 0 ;">参与答卷奖励</div>
363   - <el-descriptions class="margin-top" :column="3" border :label-style="labelStylejiang"
  362 + <!-- <div style="padding: 20px 0 ;">参与答卷奖励</div> -->
  363 + <!-- <el-descriptions class="margin-top" :column="3" border :label-style="labelStylejiang"
364 364 :content-style="contentStylejiang">
365 365 <el-descriptions-item>
366 366 <template slot="label">
... ... @@ -379,7 +379,7 @@
379 379 style="padding: 0 20px;color: #3F9B6A;cursor: pointer;" @click="actGo(1)">查看</span>
380 380 </div>
381 381 </el-descriptions-item>
382   - </el-descriptions>
  382 + </el-descriptions> -->
383 383 <div style="padding: 20px 0 ;">问卷题目</div>
384 384 <el-table :data="wenData"
385 385 :header-cell-style="{ fontSize: '14px', color: '#0009', fontWeight: 'normal', backgroundColor: '#F2F3F5' }">
... ... @@ -565,7 +565,7 @@
565 565 </el-form>
566 566 </div>
567 567 <div>
568   - <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
  568 + <!-- <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
569 569 <div
570 570 style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">
571 571 <div>参与答卷奖励</div>
... ... @@ -574,18 +574,10 @@
574 574 style="padding:20px;">
575 575 <el-radio-group v-model="radioreward" @change="radioClick">
576 576 <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio>
577   - <!-- <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio> -->
578 577 <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio>
579   - <!-- <el-radio label="优惠券" value="优惠券">优惠券</el-radio> -->
580 578 </el-radio-group>
581   - </el-form>
582   - <!-- <div v-if="formInline.rewardForParticipation === '奖励积分'"
583   - style="padding: 0 0 20px 20px;">
584   - <div>
585   - 奖励 <el-input v-model="jifen" style="width:50px;" />积分
586   - </div>
587   - </div> -->
588   - <div v-if="radioreward === '转盘抽奖'" style="padding: 0 0 20px 20px;">
  579 + </el-form> -->
  580 + <!-- <div v-if="radioreward === '转盘抽奖'" style="padding: 0 0 20px 20px;">
589 581 <div v-if="jiangli.id && jiangli.id!=''" style="padding: 10px 0;">
590 582 <span>{{jiangli.actName}}</span>
591 583 <span style="padding: 0 20px;color: #3F9B6A;cursor: pointer;"
... ... @@ -597,15 +589,8 @@
597 589 <el-button style="color: #fff;background-color: #3F9B6A;"
598 590 @click="actGo(0)">创建活动</el-button>
599 591 </div>
600   - </div>
601   - <!-- <div v-if="formInline.rewardForParticipation === '优惠券'"
602   - style="padding: 0 0 20px 20px;">
603   - <div>
604   - <el-select v-model="yhq" placeholder="请选择" style="width:20%">
605   - <el-option v-for="item in yhqSel" :label="item" :value="item" />
606   - </el-select>
607   - </div>
608 592 </div> -->
  593 +
609 594 </div>
610 595  
611 596 </div>
... ... @@ -992,17 +977,15 @@
992 977 </el-form-item>
993 978 </el-form>
994 979 </div>
995   - <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
  980 + <!-- <div style="border:1px solid #DCDFE6;font-size:14px;margin-bottom:10px;">
996 981 <div
997 982 style="padding:10px 20px;border-bottom:1px solid #DCDFE6;display:flex;justify-content: space-between;">
998 983 <div>参与答卷奖励</div>
999   - </div>
1000   - <el-form ref="form" :model="secondData" label-width="140px" style="padding:20px;">
  984 + </div> -->
  985 + <!-- <el-form ref="form" :model="secondData" label-width="140px" style="padding:20px;">
1001 986 <el-radio-group v-model="radioreward" @change="radioClick">
1002 987 <el-radio label="不设置奖励" value="不设置奖励">不设置奖励</el-radio>
1003   - <!-- <el-radio label="奖励积分" value="奖励积分">奖励积分</el-radio> -->
1004 988 <el-radio label="转盘抽奖" value="转盘抽奖">转盘抽奖</el-radio>
1005   - <!-- <el-radio label="优惠券" value="优惠券">优惠券</el-radio> -->
1006 989 </el-radio-group>
1007 990 <div v-if="radioreward === '转盘抽奖'" style="padding: 0 0 20px 20px;">
1008 991 <div v-if="jiangli.id && jiangli.id!=''" style="padding: 10px 0;">
... ... @@ -1019,7 +1002,7 @@
1019 1002  
1020 1003  
1021 1004 </div>
1022   - </el-form>
  1005 + </el-form> -->
1023 1006 </div>
1024 1007 </div>
1025 1008 </el-tab-pane>
... ... @@ -1737,12 +1720,12 @@
1737 1720 iframaShow: false,
1738 1721 iframeWin: null,
1739 1722 jiangli: {
1740   - id: '1895043663592030209', //活动id
1741   - actName: '商业测试活动1', //活动名称
1742   - actStyle: '1', //抽奖样式 1:大转盘 2:砸金蛋 3:刮刮卡 4:翻牌乐 5:福袋 6:摇一摇
1743   - // id:'',
1744   - // actName:'',
1745   - // actStyle:'', //抽奖样式 1:大转盘 2:砸金蛋 3:刮刮卡 4:翻牌乐 5:福袋 6:摇一摇
  1723 + // id: '1895043663592030209', //活动id
  1724 + // actName: '商业测试活动1', //活动名称
  1725 + // actStyle: '1', //抽奖样式 1:大转盘 2:砸金蛋 3:刮刮卡 4:翻牌乐 5:福袋 6:摇一摇
  1726 + id:'',
  1727 + actName:'',
  1728 + actStyle:'', //抽奖样式 1:大转盘 2:砸金蛋 3:刮刮卡 4:翻牌乐 5:福袋 6:摇一摇
1746 1729 },
1747 1730 radioreward: '不设置奖励'
1748 1731 }
... ... @@ -2834,27 +2817,26 @@
2834 2817 this.options[index].index = index + 1
2835 2818 this.options.sort()
2836 2819 },
2837   - actGo(val) {
2838   - let token = localStorage.getItem('token');
2839   - if (token && token.startsWith('Bearer')) {
2840   - token = token.substring(7);
2841   - }
2842   - token =
2843   - 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3RfdXNlcl9pbmZvIjoie1wiYXBwSWRcIjoxLFwiYXJlYUNvZGVzXCI6W10sXCJjb21wYW55QWRtaW5cIjpmYWxzZSxcImNvbXBhbnlDb2RlXCI6XCJKSkxEXzAwMVwiLFwiZGVwdENvZGVcIjpcIjAwMlwiLFwiZGVwdFRhZ1wiOlwiXCIsXCJsb2dpblR5cGVcIjpcIlBDXCIsXCJtYWluRGVwdENvZGVcIjpcIjAwMlwiLFwibWFuYWdlclwiOnRydWUsXCJuYW1lXCI6XCLotoXnuqfnrqHnkIblkZhcIixcInBob25lXCI6XCIxMzU0MTMwNDkxMFwiLFwicm9sZXNcIjpbXCJyb2xlX3N1cGVyX2FkbWluXCIsXCJ2aXAtYWRtaW5cIl0sXCJzdXBlckFkbWluXCI6dHJ1ZSxcInRvcERlcHRDb2RlXCI6XCIwMDJcIixcInVzZXJJZFwiOjEsXCJ1c2VybmFtZVwiOlwic3VwZXItampsZFwifSIsImp0aSI6ImMxMWQ5ZjJjLTc1ZjItNDM5Yy05NjMzLTliYzU4MTc2NmZmYiIsImV4cCI6MTc0MDY2Mjg2NywiaWF0IjoxNzQwNjQ4NDY3LCJzdWIiOiJDRFdMIiwiaXNzIjoiT0EifQ.-2jv7Vq8pqn8PehIpd1lMXJrSqPsmCfhXp7fddL56qI'
2844   - this.iframaShow = true
2845   - if (val == 0) {
2846   - this.iframaUrl =
2847   - `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
2848   - } else if (val == 1) {
2849   - this.iframaUrl =
2850   - `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&id=${this.jiangli.id}&title=活动详情&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
2851   - } else if (val == 2) {
2852   - this.iframaUrl =
2853   - `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&id=${this.jiangli.id}&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
2854   - }
2855   -
2856   - // window.location.href =
2857   - },
  2820 + // actGo(val) {
  2821 + // let token = localStorage.getItem('token');
  2822 + // if (token && token.startsWith('Bearer')) {
  2823 + // token = token.substring(7);
  2824 + // }
  2825 + // token =
  2826 + // 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqd3RfdXNlcl9pbmZvIjoie1wiYXBwSWRcIjoxLFwiYXJlYUNvZGVzXCI6W10sXCJjb21wYW55QWRtaW5cIjpmYWxzZSxcImNvbXBhbnlDb2RlXCI6XCJKSkxEXzAwMVwiLFwiZGVwdENvZGVcIjpcIjAwMlwiLFwiZGVwdFRhZ1wiOlwiXCIsXCJsb2dpblR5cGVcIjpcIlBDXCIsXCJtYWluRGVwdENvZGVcIjpcIjAwMlwiLFwibWFuYWdlclwiOnRydWUsXCJuYW1lXCI6XCLotoXnuqfnrqHnkIblkZhcIixcInBob25lXCI6XCIxMzU0MTMwNDkxMFwiLFwicm9sZXNcIjpbXCJyb2xlX3N1cGVyX2FkbWluXCIsXCJ2aXAtYWRtaW5cIl0sXCJzdXBlckFkbWluXCI6dHJ1ZSxcInRvcERlcHRDb2RlXCI6XCIwMDJcIixcInVzZXJJZFwiOjEsXCJ1c2VybmFtZVwiOlwic3VwZXItampsZFwifSIsImp0aSI6ImMxMWQ5ZjJjLTc1ZjItNDM5Yy05NjMzLTliYzU4MTc2NmZmYiIsImV4cCI6MTc0MDY2Mjg2NywiaWF0IjoxNzQwNjQ4NDY3LCJzdWIiOiJDRFdMIiwiaXNzIjoiT0EifQ.-2jv7Vq8pqn8PehIpd1lMXJrSqPsmCfhXp7fddL56qI'
  2827 + // this.iframaShow = true
  2828 + // if (val == 0) {
  2829 + // this.iframaUrl =
  2830 + // `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
  2831 + // } else if (val == 1) {
  2832 + // this.iframaUrl =
  2833 + // `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&id=${this.jiangli.id}&title=活动详情&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
  2834 + // } else if (val == 2) {
  2835 + // this.iframaUrl =
  2836 + // `https://jy.scjysm.asia:18086/cdwltool/addEmptyLottery?token=${token}&id=${this.jiangli.id}&channel=shangye&thirdPartyUrl=http://localhost:9529/#/investigation/index`
  2837 + // }
  2838 +
  2839 + // },
2858 2840 getStatusText(val) {
2859 2841 switch (val) {
2860 2842 case '1':
... ...