leisure-travel 0.4.99

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/index.js +85 -0
  2. package/le-travel-agency/index.js +7 -0
  3. package/le-travel-agency/src/main.vue +458 -0
  4. package/le-travel-agency-info/index.js +7 -0
  5. package/le-travel-agency-info/src/main.vue +263 -0
  6. package/le-travel-buy/index.js +7 -0
  7. package/le-travel-buy/src/main.vue +161 -0
  8. package/le-travel-buy/src/sub.vue +522 -0
  9. package/le-travel-dict/index.js +7 -0
  10. package/le-travel-dict/src/main.vue +122 -0
  11. package/le-travel-hotel/index.js +7 -0
  12. package/le-travel-hotel/src/main.vue +154 -0
  13. package/le-travel-hotel/src/sub.vue +238 -0
  14. package/le-travel-hotel-package/index.js +7 -0
  15. package/le-travel-hotel-package/src/main.vue +168 -0
  16. package/le-travel-hotel-package/src/sub.vue +200 -0
  17. package/le-travel-introduce/index.js +7 -0
  18. package/le-travel-introduce/src/main.vue +132 -0
  19. package/le-travel-introduce/src/sub.vue +122 -0
  20. package/le-travel-menus/index.js +7 -0
  21. package/le-travel-menus/src/main.vue +75 -0
  22. package/le-travel-menus/src/sub.vue +111 -0
  23. package/le-travel-narrator/index.js +13 -0
  24. package/le-travel-narrator/src/main.vue +358 -0
  25. package/le-travel-narrator/src/mp3.vue +558 -0
  26. package/le-travel-order/index.js +13 -0
  27. package/le-travel-order/src/list_audio.vue +311 -0
  28. package/le-travel-order/src/main.vue +316 -0
  29. package/le-travel-order/src/statistics.vue +248 -0
  30. package/le-travel-order/src/sub.vue +324 -0
  31. package/le-travel-pcategory/index.js +7 -0
  32. package/le-travel-pcategory/src/main.vue +90 -0
  33. package/le-travel-pcategory/src/sub.vue +180 -0
  34. package/le-travel-product/index.js +7 -0
  35. package/le-travel-product/src/main.vue +667 -0
  36. package/le-travel-product/src/sub.vue +50 -0
  37. package/le-travel-product-drange/index.js +7 -0
  38. package/le-travel-product-drange/src/main.vue +248 -0
  39. package/le-travel-product-drange/src/sub.vue +0 -0
  40. package/le-travel-strategy/index.js +13 -0
  41. package/le-travel-strategy/src/clist.vue +165 -0
  42. package/le-travel-strategy/src/csub.vue +264 -0
  43. package/le-travel-strategy/src/main.vue +175 -0
  44. package/le-travel-strategy/src/sub.vue +449 -0
  45. package/le-travel-study/index.js +12 -0
  46. package/le-travel-study/src/clist.vue +150 -0
  47. package/le-travel-study/src/csub.vue +112 -0
  48. package/le-travel-study/src/main.vue +165 -0
  49. package/le-travel-study/src/sub.vue +233 -0
  50. package/le-travel-ticket/index.js +7 -0
  51. package/le-travel-ticket/src/main.vue +681 -0
  52. package/le-travel-ticket/src/sub.vue +64 -0
  53. package/le-travel-voice/index.js +12 -0
  54. package/le-travel-voice/src/main.vue +276 -0
  55. package/le-travel-voice/src/sub.vue +304 -0
  56. package/le-travel-voice/src/subject_list.vue +403 -0
  57. package/package.json +20 -0
package/index.js ADDED
@@ -0,0 +1,85 @@
1
+ import leTravelMenus from "./le-travel-menus/index.js";
2
+ import leTravelDict from "./le-travel-dict/index.js";
3
+ import LeTravelPcategory from "./le-travel-pcategory/index.js";
4
+ import LeTravelProduct from "./le-travel-product/index.js";
5
+ import LeTravelProductDrange from "./le-travel-product-drange/index.js";
6
+ import LeTravelTicket from "./le-travel-ticket/index.js";
7
+ import LeTravelOrder, {
8
+ LeTravelOrderStatistics,
9
+ } from "./le-travel-order/index.js";
10
+ import LeTravelVoice, {
11
+ LeTravelVoiceSubject,
12
+ } from "./le-travel-voice/index.js";
13
+ import LeTravelStrategy, {
14
+ LeTravelStrategyCategory,
15
+ } from "./le-travel-strategy/index.js";
16
+ import LeTravelStudy, {
17
+ LeTravelStudyCategory,
18
+ } from "./le-travel-study/index.js";
19
+ import LeTravelAgency from "./le-travel-agency/index.js";
20
+ import LeTravelHotel from "./le-travel-hotel/index.js";
21
+ import LeTravelHotelPackage from "./le-travel-hotel-package/index.js";
22
+ import LeTravelIntroduce from "./le-travel-introduce/index.js";
23
+ import LeTravelAgencyInfo from "./le-travel-agency-info/index.js";
24
+ import LeTravelBuy from "./le-travel-buy/index.js";
25
+ import LeTravelNarrator, {
26
+ LeTravelNarratorMp3,
27
+ } from "./le-travel-narrator/index.js";
28
+ const components = [
29
+ leTravelMenus,
30
+ leTravelDict,
31
+ LeTravelPcategory,
32
+ LeTravelProduct,
33
+ LeTravelProductDrange,
34
+ LeTravelTicket,
35
+ LeTravelOrder,
36
+ LeTravelOrderStatistics,
37
+ LeTravelVoice,
38
+ LeTravelVoiceSubject,
39
+ LeTravelStrategy,
40
+ LeTravelStrategyCategory,
41
+ LeTravelStudy,
42
+ LeTravelStudyCategory,
43
+ LeTravelAgency,
44
+ LeTravelHotel,
45
+ LeTravelHotelPackage,
46
+ LeTravelIntroduce,
47
+ LeTravelAgencyInfo,
48
+ LeTravelBuy,
49
+ LeTravelNarrator,
50
+ LeTravelNarratorMp3,
51
+ ];
52
+
53
+ const install = function (Vue) {
54
+ if (install.installed) return;
55
+
56
+ components.forEach((component) => {
57
+ Vue.component(component.name, component);
58
+ });
59
+ };
60
+
61
+ export default {
62
+ install,
63
+ leTravelMenus,
64
+ leTravelDict,
65
+ LeTravelPcategory,
66
+ LeTravelProduct,
67
+ LeTravelProductDrange,
68
+ LeTravelTicket,
69
+ LeTravelOrder,
70
+ LeTravelOrderStatistics,
71
+ LeTravelVoice,
72
+ LeTravelVoiceSubject,
73
+ LeTravelStrategy,
74
+ LeTravelStrategyCategory,
75
+ LeTravelStudy,
76
+ LeTravelStudyCategory,
77
+ LeTravelAgency,
78
+ LeTravelHotel,
79
+ LeTravelHotelPackage,
80
+ LeTravelIntroduce,
81
+ LeTravelAgencyInfo,
82
+ LeTravelBuy,
83
+ LeTravelNarrator,
84
+ LeTravelNarratorMp3,
85
+ };
@@ -0,0 +1,7 @@
1
+ import LeTravelAgency from "./src/main.vue";
2
+
3
+ LeTravelAgency.install = function (Vue) {
4
+ Vue.component(LeTravelAgency.name, LeTravelAgency);
5
+ };
6
+
7
+ export default LeTravelAgency;
@@ -0,0 +1,458 @@
1
+ <template>
2
+ <div class="page-container">
3
+ <el-form :inline="true" class="demo-form-inline">
4
+ <el-form-item>
5
+ <el-input
6
+ clearable
7
+ v-model="searchName"
8
+ placeholder="请输入旅行社名称"
9
+ ></el-input>
10
+ </el-form-item>
11
+ <el-form-item>
12
+ <el-button type="primary" @click="gettravelAgencyList()">
13
+ 查询
14
+ </el-button>
15
+ <el-button type="info" @click="resetSearch()">重置</el-button>
16
+ <el-button type="success" @click="addtravelAgency()">
17
+ 添加旅行社
18
+ </el-button>
19
+ </el-form-item>
20
+ </el-form>
21
+ <el-table :data="tableData" border row-key="id" stripe style="width: 100%">
22
+ <el-table-column prop="name" label="旅行社名称" align="center">
23
+ </el-table-column>
24
+ <el-table-column prop="account" label="账号" align="center">
25
+ </el-table-column>
26
+ <el-table-column label="审核状态" align="center">
27
+ <template slot-scope="scope">
28
+ <span v-if="scope.row.check_status == 0">未审核</span>
29
+ <span v-if="scope.row.check_status == 1">审核通过</span>
30
+ </template>
31
+ </el-table-column>
32
+ <el-table-column prop="contacts" label="联系人" align="center">
33
+ </el-table-column>
34
+ <el-table-column prop="phone" label="联系电话" align="center">
35
+ </el-table-column>
36
+ <el-table-column prop="address" label="地址" align="center">
37
+ </el-table-column>
38
+ <el-table-column prop="cdate" label="创建日期" align="center">
39
+ <template slot-scope="scope">
40
+ <span>{{ parseTime(scope.row.cdate) }}</span>
41
+ </template>
42
+ </el-table-column>
43
+
44
+ <el-table-column fixed="right" label="操作" align="center" width="280">
45
+ <template slot-scope="scope">
46
+ <el-button
47
+ type="primary"
48
+ size="small"
49
+ @click="edittravelAgency(scope.row)"
50
+ >编辑</el-button
51
+ >
52
+ <el-popconfirm
53
+ :title="`该操作不可逆,确定删除?`"
54
+ @confirm="del(scope.row.id)"
55
+ >
56
+ <template #reference>
57
+ <el-button type="danger" size="small" style="margin-left: 10px"
58
+ >删除
59
+ </el-button>
60
+ </template>
61
+ </el-popconfirm>
62
+ </template>
63
+ </el-table-column>
64
+ </el-table>
65
+
66
+ <div style="text-align: center; margin-top: 30px" v-if="total > 0">
67
+ <el-pagination
68
+ background
69
+ layout="prev, pager, next"
70
+ :current-page="pageNo"
71
+ :total="total"
72
+ :page-size="pageSize"
73
+ @current-change="current_change"
74
+ >
75
+ </el-pagination>
76
+ </div>
77
+
78
+ <el-dialog
79
+ v-el-drag-dialog
80
+ title="添加/编辑旅行社"
81
+ :visible.sync="showAddPageModal"
82
+ :close-on-click-modal="false"
83
+ width="70%"
84
+ @close="handleClose"
85
+ >
86
+ <el-form
87
+ :model="ruleForm"
88
+ :rules="rules"
89
+ ref="ruleForm"
90
+ label-width="140px"
91
+ >
92
+ <el-form-item label="旅行社名称" prop="name">
93
+ <el-input v-model="ruleForm.name"></el-input>
94
+ </el-form-item>
95
+ <el-form-item label="旅行社账号" prop="account">
96
+ <el-input v-model="ruleForm.account"></el-input>
97
+ </el-form-item>
98
+ <el-form-item label="支付宝账号" prop="alipay">
99
+ <el-input v-model="ruleForm.alipay"></el-input>
100
+ </el-form-item>
101
+ <!-- <el-form-item label="账号密码" prop="password">
102
+ <el-input show-password v-model="ruleForm.password"></el-input>
103
+ </el-form-item> -->
104
+ <el-form-item label="联系人" prop="contacts">
105
+ <el-input v-model="ruleForm.contacts"></el-input>
106
+ </el-form-item>
107
+ <el-form-item label="联系电话" prop="phone">
108
+ <el-input v-model="ruleForm.phone"></el-input>
109
+ </el-form-item>
110
+ <el-form-item label="营业执照">
111
+ <div v-if="ruleForm.cob">
112
+ <le-image
113
+ :src="ruleForm.cob"
114
+ :preview-src-list="srcList"
115
+ style="width: 100px; height: 100px"
116
+ >
117
+ </le-image>
118
+ <span style="margin-left: 10px">双击查看大图</span>
119
+ </div>
120
+ </el-form-item>
121
+ <el-form-item label="备注" phone>
122
+ <el-input
123
+ type="textarea"
124
+ placeholder="请输入内容"
125
+ maxlength="100"
126
+ show-word-limit
127
+ v-model="ruleForm.note"
128
+ >
129
+ </el-input>
130
+ </el-form-item>
131
+ <el-form-item label="审核状态">
132
+ <el-radio-group v-model="ruleForm.check_status">
133
+ <el-radio :label="0">不通过</el-radio>
134
+ <el-radio :label="1">通过</el-radio>
135
+ </el-radio-group>
136
+ </el-form-item>
137
+ <el-form-item label="导游列表">
138
+ <el-table border :data="accounts" ref="refAccount">
139
+ <el-table-column label="手机号" min-width="130" align="center">
140
+ <template slot-scope="scope">
141
+ <el-form-item>
142
+ <el-input v-model="scope.row.phone"></el-input>
143
+ </el-form-item>
144
+ </template>
145
+ </el-table-column>
146
+ <el-table-column label="姓名" min-width="130" align="center">
147
+ <template slot-scope="scope">
148
+ <el-form-item>
149
+ <el-input v-model="scope.row.name"></el-input>
150
+ </el-form-item>
151
+ </template>
152
+ </el-table-column>
153
+ <el-table-column label="支付宝" min-width="130" align="center">
154
+ <template slot-scope="scope">
155
+ <el-form-item>
156
+ <el-input v-model="scope.row.alipay"></el-input>
157
+ </el-form-item>
158
+ </template>
159
+ </el-table-column>
160
+ <el-table-column label="账号状态" min-width="100" align="center">
161
+ <template slot-scope="scope">
162
+ <el-form-item>
163
+ <el-select v-model="scope.row.check_status">
164
+ <el-option label="待审核" :value="0" :key="0"></el-option>
165
+ <el-option label="审核通过" :value="1" :key="1"></el-option>
166
+ <el-option
167
+ label="审核不通过"
168
+ :value="2"
169
+ :key="2"
170
+ ></el-option>
171
+ </el-select>
172
+ </el-form-item>
173
+ </template>
174
+ </el-table-column>
175
+ <el-table-column label="日期" min-width="120" align="center">
176
+ <template slot-scope="scope">
177
+ <el-form-item>
178
+ <!-- <el-input v-model="scope.row.cdate"></el-input> -->
179
+ <span>{{ parseTime(scope.row.cdate) }}</span>
180
+ </el-form-item>
181
+ </template>
182
+ </el-table-column>
183
+ <el-table-column label="操作" min-width="160" align="center">
184
+ <template slot-scope="scope">
185
+ <el-button
186
+ type="primary"
187
+ size="small"
188
+ @click="saveAccount(scope)"
189
+ >保存</el-button
190
+ >
191
+ <el-popconfirm
192
+ :title="`该操作不可逆,确定删除?`"
193
+ @confirm="handleDelAccountRow(scope)"
194
+ >
195
+ <template #reference>
196
+ <el-button
197
+ type="danger"
198
+ style="margin-left: 10px"
199
+ size="small"
200
+ >删除</el-button
201
+ >
202
+ </template>
203
+ </el-popconfirm>
204
+ </template>
205
+ </el-table-column>
206
+ </el-table>
207
+ </el-form-item>
208
+ </el-form>
209
+ <span slot="footer" class="dialog-footer">
210
+ <el-button @click="handleAddGuide">新增导游</el-button>
211
+ <el-button @click="handleClose">取 消</el-button>
212
+ <el-button type="primary" @click="savetravelAgency">确 定</el-button>
213
+ </span>
214
+ </el-dialog>
215
+ </div>
216
+ </template>
217
+ <script>
218
+ import {
219
+ travelAgencyCreate,
220
+ travelAgencyDel,
221
+ travelAgencyEdit,
222
+ travelAgencyList,
223
+ travelAgencyUserList,
224
+ editAgencyUserInfo,
225
+ delGuideUserInfo,
226
+ } from "@/api/travelAgency";
227
+ import { edit as userEdit } from "@/api/user";
228
+
229
+ export default {
230
+ name: "le-travel-agency",
231
+ components: {},
232
+ data() {
233
+ return {
234
+ searchName: "",
235
+ pageNo: 1,
236
+ total: 0,
237
+ pageSize: 10,
238
+ tableData: [],
239
+ accounts: [],
240
+ ruleForm: {
241
+ id: "",
242
+ name: "",
243
+ account: "",
244
+ contacts: "",
245
+ cob: "",
246
+ phone: "",
247
+ address: "",
248
+ alipay: "",
249
+ note: "",
250
+ check_status: 1,
251
+ },
252
+ srcList: [],
253
+ rules: {
254
+ name: [
255
+ { required: true, message: "请输入旅行社名称", trigger: "blur" },
256
+ {
257
+ min: 1,
258
+ max: 100,
259
+ message: "长度在 1 到 100 个字符",
260
+ trigger: "blur",
261
+ },
262
+ ],
263
+ account: [
264
+ { required: true, message: "请输入旅行社账号 ", trigger: "blur" },
265
+ {
266
+ min: 1,
267
+ max: 30,
268
+ message: "长度在 1 到 30 个字符",
269
+ trigger: "blur",
270
+ },
271
+ ],
272
+ alipay: [
273
+ { required: true, message: "请输入支付宝账号", trigger: "blur" },
274
+ {
275
+ min: 1,
276
+ max: 20,
277
+ message: "长度在 1 到 20 个字符",
278
+ trigger: "blur",
279
+ },
280
+ ],
281
+ contacts: [
282
+ { required: false, message: "请输入旅行社账号 ", trigger: "blur" },
283
+ {
284
+ min: 1,
285
+ max: 20,
286
+ message: "长度在 1 到 20 个字符",
287
+ trigger: "blur",
288
+ },
289
+ ],
290
+ phone: [
291
+ { required: true, message: "请输入旅行社手机号", trigger: "blur" },
292
+ {
293
+ min: 1,
294
+ max: 13,
295
+ message: "长度在 1 到 13 个字符",
296
+ trigger: "blur",
297
+ },
298
+ ],
299
+ password: [
300
+ { required: true, message: "请输入账号密码", trigger: "blur" },
301
+ {
302
+ min: 1,
303
+ max: 12,
304
+ message: "长度在 1 到 12 个字符",
305
+ trigger: "blur",
306
+ },
307
+ ],
308
+ note: [
309
+ { required: false, message: "请输入账号密码", trigger: "blur" },
310
+ {
311
+ min: 1,
312
+ max: 100,
313
+ message: "长度在 1 到 100个字符",
314
+ trigger: "blur",
315
+ },
316
+ ],
317
+ },
318
+ showAddPageModal: false,
319
+ isEdittravelAgency: false,
320
+ travelAgencyEditId: "",
321
+ };
322
+ },
323
+ computed: {},
324
+ mounted() {
325
+ this.gettravelAgencyList();
326
+ },
327
+ methods: {
328
+ resetSearch() {
329
+ this.pageNo = 1;
330
+ this.searchName = "";
331
+ this.gettravelAgencyList();
332
+ },
333
+ current_change(page) {
334
+ this.pageNo = page;
335
+ this.gettravelAgencyList();
336
+ },
337
+ approveAccountStatus(status) {
338
+ this.ruleForm.approved = status;
339
+ let params = {};
340
+ params.id = this.ruleForm.aguid; //用户表里面的uid
341
+ params.approved = this.ruleForm.approved;
342
+ params.note = this.ruleForm.reson;
343
+ userEdit(params).then((res) => {});
344
+ },
345
+ addtravelAgency() {
346
+ this.ruleForm.cdate = new Date();
347
+ this.showAddPageModal = true;
348
+ this.travelAgencyEditId = "";
349
+ this.isEdittravelAgency = false;
350
+ },
351
+ edittravelAgency(row) {
352
+ this.ruleForm = JSON.parse(JSON.stringify(row));
353
+ if (this.ruleForm.cob) {
354
+ this.srcList = [];
355
+ this.srcList.push(this.ruleForm.cob);
356
+ }
357
+ this.showAddPageModal = true;
358
+ this.travelAgencyEditId = row.id;
359
+ this.isEdittravelAgency = true;
360
+ this.getAgencyUserList(row.id);
361
+ },
362
+ getAgencyUserList(aid) {
363
+ let params = {};
364
+ params.aid = aid;
365
+ travelAgencyUserList(params).then((res) => {
366
+ this.accounts = res.data.data;
367
+ });
368
+ },
369
+ savetravelAgency() {
370
+ let params = JSON.parse(JSON.stringify(this.ruleForm));
371
+ this.$refs["ruleForm"].validate((valid) => {
372
+ if (valid) {
373
+ if (this.isEdittravelAgency) {
374
+ delete params.uid;
375
+ params.id = this.travelAgencyEditId;
376
+ travelAgencyEdit(params).then(() => {
377
+ this.$message.success("修改旅行社成功~");
378
+ this.gettravelAgencyList(this.pageNo);
379
+ this.handleClose();
380
+ });
381
+ } else {
382
+ travelAgencyCreate(params).then(() => {
383
+ this.$message.success("添加旅行社成功~");
384
+ this.gettravelAgencyList(this.pageNo);
385
+ this.handleClose();
386
+ });
387
+ }
388
+ } else {
389
+ return false;
390
+ }
391
+ });
392
+ },
393
+ handleClose() {
394
+ this.showAddPageModal = false;
395
+ this.travelAgencyEditId = "";
396
+ this.ruleForm.name = "";
397
+ this.ruleForm.account = "";
398
+ this.ruleForm.contacts = "";
399
+ this.ruleForm.phone = "";
400
+ this.ruleForm.alipay = "";
401
+ this.ruleForm.password = "";
402
+ this.ruleForm.note = "";
403
+ this.ruleForm.address = "";
404
+ this.ruleForm.cob = "";
405
+ this.ruleForm.check_status = 1;
406
+ delete this.ruleForm.id;
407
+ },
408
+ gettravelAgencyList() {
409
+ let params = {
410
+ pageNo: this.pageNo,
411
+ name: this.searchName,
412
+ };
413
+ travelAgencyList(params).then((res) => {
414
+ this.tableData = res.data.data.list || [];
415
+ this.total = res.data.data.count || 0;
416
+ this.pageSize = res.data.data.pageSize || 10;
417
+ });
418
+ },
419
+ del(id) {
420
+ travelAgencyDel({
421
+ id: id,
422
+ }).then((response) => {
423
+ this.gettravelAgencyList(this.pageNo);
424
+ this.$message.success("删除旅行社成功");
425
+ });
426
+ },
427
+ saveAccount(item) {
428
+ let account = item.row;
429
+ let params = {};
430
+ params.id = account.id;
431
+ params.name = account.name;
432
+ params.aid = this.ruleForm.id;
433
+ params.phone = account.phone;
434
+ params.check_status = account.check_status;
435
+ params.alipay = account.alipay;
436
+ params.note = "后台增加";
437
+ editAgencyUserInfo(params).then((res) => {
438
+ this.getAgencyUserList(params.aid);
439
+ this.$message.success("状态变更成功!");
440
+ });
441
+ },
442
+ handleAddGuide() {
443
+ let guide = {};
444
+ this.accounts.push(guide);
445
+ },
446
+ handleDelAccountRow(item) {
447
+ let account = item.row;
448
+ let params = {};
449
+ params.guid = account.id;
450
+ if (!params.guid || !params.guid) return;
451
+ delGuideUserInfo(params).then((res) => {
452
+ this.getAgencyUserList(account.aid);
453
+ this.$message.success("删除旅行社成功");
454
+ });
455
+ },
456
+ },
457
+ };
458
+ </script>
@@ -0,0 +1,7 @@
1
+ import LeTravelAgencyInfo from "./src/main.vue";
2
+
3
+ LeTravelAgencyInfo.install = function (Vue) {
4
+ Vue.component(LeTravelAgencyInfo.name, LeTravelAgencyInfo);
5
+ };
6
+
7
+ export default LeTravelAgencyInfo;